minecraft-expanded-datapack/data/undeadm-m1/functions/entity/tick/fire_blast.mcfunction

44 lines
1.6 KiB
Mcfunction

tellraw @a[scores={me-debugging=1..}] "undeadm-m1:tick/fire_blast"
## FireBlast CUSTOM ENTITY (VIA ARMOR STAND)
#
# Travels 20 blocks -> 10 bps during 2 seconds
# Collision with collisionable blocks
# Doesn't deal contact damage
# On death by collision, summon falling fires
#
# Particles:
# @tick: campfire_cozy_smoke: ~ ~ ~, 0 0 0, 0.0001, 1
# @death: lava: ^ ^ ^-0.15, 0 0 0, 0.1, 50
#
# Sounds:
# @death: entity.fire_blast.die: neutral, @a
## collision
# if no collison, move
execute if block ^ ^ ^0.5 #undeadm-core:no_collision run tp ^ ^ ^0.5
# if collision, dying
execute unless block ^ ^ ^0.5 #undeadm-core:no_collision run tag @s add Dying
# if it hits an entity, starts dying
execute if entity @s[tag=PostInit] if entity @e[gamemode=!spectator,tag=!FireBlast,dx=0,dy=0,dz=0] run tag @s add Dying
## some particles! (unless dying)
# first particle - cool smoke, makes the trail!
execute unless entity @s[tag=Dying] run particle minecraft:campfire_cosy_smoke ~ ~ ~ 0 0 0 0.001 1
## if dying
# reset owner's wand CD to 10 (only if greater than 10)
execute if entity @s[tag=Dying] as @a if score @s me-core_uid = @e[limit=1,sort=nearest,tag=FireBlast] me-core_uid if score @s me-weap_staffCD > $10 me-weap_staffCD run scoreboard players set @s me-weap_staffCD 10
# fire explosion! (little)
execute if entity @s[tag=Dying] run particle minecraft:lava ^ ^ ^-0.15 0 0 0 0.1 50
# summon fires!
execute if entity @s[tag=Dying] run function undeadm-m1:spawn/fire_blast_death
# play dead sound
execute if entity @s[tag=Dying] run playsound undeadm-m1:entity.fire_blast.die neutral @a
# die
execute if entity @s[tag=Dying] run kill @s