Date: 2019/02/14 20:15:41 UTC-08:00
Type: Denizen Script
Fire_Spell:
type: task
debug: true
definitions: Player|PlayerTarget|Range
script:
- define StartPosition <def[Player].location.add[0,1,0]>
- if <def[player].can_see[<def[PlayerTarget]>]> && <player.location.distance[<def[PlayerTarget].location>]> < <def[Range]> :
- define EndPosition <def[PlayerTarget].location.add[0,1,0]>
- else :
- foreach <def[Player].location.points_between[<def[PlayerTarget].location>]>:
- narrate <def[value].material>
- if <def[value].material> != m@air :
- define EndPosition <def[value]>
- foreach stop
- if <def[loop_index]> == <def[Range]> :
- define EndPosition <def[value]>
- foreach stop
- define string <def[StartPosition].points_between[<def[EndPosition]>].distance[0.02]>
- define pitch <def[player].eye_location.direction[<def[EndPosition]>].pitch.add[90].to_radians>
- define yaw <def[player].eye_location.direction[<def[EndPosition]>].yaw.mul[-1].to_radians>
- foreach <def[string]>:
- define vector <location[<def[loop_index].sin.div[1.5]>,0,<def[loop_index].cos.div[1.5]>]>
- if <def[loop_index].mod[3]> = 1:
- playeffect at:<def[value].add[<def[vector].rotate_around_x[<def[pitch]>].rotate_around_y[<def[yaw]>]>]> quantity:3 offset:0.01,0.01,0.01 visibility:50 effect:REDSTONE special_data:.3|255,<li@200|150|100.get[<def[loop_index].mod[4]>]>,0 data:0
- if <def[loop_index].mod[100]> == 1:
- wait 1t
- if <def[loop_index].mod[15]> == 1:
- playeffect at:<def[value]> effect:flame offset:0.2,0.2,0.2
- playeffect at:<def[value]> offset:0.1,0.1,0.1 visibility:50 effect:REDSTONE special_data:.5|255,<li@200|150|100.get[<def[loop_index].mod[4]>]>,0 data:0