Merge branch 'master' into upstream-merge-27160
This commit is contained in:
@@ -5,10 +5,10 @@
|
||||
new /obj/effect/gibspawner/xenobodypartless(loc,viruses)
|
||||
|
||||
/mob/living/carbon/alien/gib_animation()
|
||||
new /obj/effect/overlay/temp/gib_animation(loc, "gibbed-a")
|
||||
new /obj/effect/temp_visual/gib_animation(loc, "gibbed-a")
|
||||
|
||||
/mob/living/carbon/alien/spawn_dust()
|
||||
new /obj/effect/decal/remains/xeno(loc)
|
||||
|
||||
/mob/living/carbon/alien/dust_animation()
|
||||
new /obj/effect/overlay/temp/dust_animation(loc, "dust-a")
|
||||
new /obj/effect/temp_visual/dust_animation(loc, "dust-a")
|
||||
|
||||
@@ -13,10 +13,10 @@
|
||||
new /obj/effect/gibspawner/larvabodypartless(loc,viruses)
|
||||
|
||||
/mob/living/carbon/alien/larva/gib_animation()
|
||||
new /obj/effect/overlay/temp/gib_animation(loc, "gibbed-l")
|
||||
new /obj/effect/temp_visual/gib_animation(loc, "gibbed-l")
|
||||
|
||||
/mob/living/carbon/alien/larva/spawn_dust()
|
||||
new /obj/effect/decal/remains/xeno(loc)
|
||||
|
||||
/mob/living/carbon/alien/larva/dust_animation()
|
||||
new /obj/effect/overlay/temp/dust_animation(loc, "dust-l")
|
||||
new /obj/effect/temp_visual/dust_animation(loc, "dust-l")
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/mob/living/carbon/human/gib_animation()
|
||||
new /obj/effect/overlay/temp/gib_animation(loc, "gibbed-h")
|
||||
new /obj/effect/temp_visual/gib_animation(loc, "gibbed-h")
|
||||
|
||||
/mob/living/carbon/human/dust_animation()
|
||||
new /obj/effect/overlay/temp/dust_animation(loc, "dust-h")
|
||||
new /obj/effect/temp_visual/dust_animation(loc, "dust-h")
|
||||
|
||||
/mob/living/carbon/human/spawn_gibs(with_bodyparts)
|
||||
if(with_bodyparts)
|
||||
|
||||
@@ -664,7 +664,7 @@
|
||||
return
|
||||
|
||||
invisibility = INVISIBILITY_MAXIMUM //disappear before the animation
|
||||
new /obj/effect/overlay/temp/mummy_animation(get_turf(src))
|
||||
new /obj/effect/temp_visual/mummy_animation(get_turf(src))
|
||||
if(cloth_golem.revive(full_heal = TRUE, admin_revive = TRUE))
|
||||
cloth_golem.grab_ghost() //won't pull if it's a suicide
|
||||
sleep(20)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/mob/living/carbon/monkey/gib_animation()
|
||||
new /obj/effect/overlay/temp/gib_animation(loc, "gibbed-m")
|
||||
new /obj/effect/temp_visual/gib_animation(loc, "gibbed-m")
|
||||
|
||||
/mob/living/carbon/monkey/dust_animation()
|
||||
new /obj/effect/overlay/temp/dust_animation(loc, "dust-m")
|
||||
new /obj/effect/temp_visual/dust_animation(loc, "dust-m")
|
||||
|
||||
@@ -797,9 +797,6 @@
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/proc/update_stamina()
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/update_stamina()
|
||||
if(staminaloss)
|
||||
var/total_health = (health - staminaloss)
|
||||
if(total_health <= HEALTH_THRESHOLD_CRIT && !stat)
|
||||
@@ -808,6 +805,9 @@
|
||||
setStaminaLoss(health - 2)
|
||||
update_health_hud()
|
||||
|
||||
/mob/living/carbon/alien/update_stamina()
|
||||
return
|
||||
|
||||
/mob/living/proc/owns_soul()
|
||||
if(mind)
|
||||
return mind.soulOwner == mind
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
|
||||
/mob/living/silicon/robot/gib_animation()
|
||||
new /obj/effect/overlay/temp/gib_animation(loc, "gibbed-r")
|
||||
new /obj/effect/temp_visual/gib_animation(loc, "gibbed-r")
|
||||
|
||||
/mob/living/silicon/robot/dust()
|
||||
if(mmi)
|
||||
@@ -11,7 +11,7 @@
|
||||
new /obj/effect/decal/remains/robot(loc)
|
||||
|
||||
/mob/living/silicon/robot/dust_animation()
|
||||
new /obj/effect/overlay/temp/dust_animation(loc, "dust-r")
|
||||
new /obj/effect/temp_visual/dust_animation(loc, "dust-r")
|
||||
|
||||
/mob/living/silicon/robot/death(gibbed)
|
||||
if(stat == DEAD)
|
||||
|
||||
@@ -198,9 +198,9 @@
|
||||
/obj/item/weapon/robot_module/proc/do_transform_animation()
|
||||
var/mob/living/silicon/robot/R = loc
|
||||
R.notransform = TRUE
|
||||
var/obj/effect/overlay/temp/decoy/fading/fivesecond/ANM = new /obj/effect/overlay/temp/decoy/fading/fivesecond(R.loc, R)
|
||||
var/obj/effect/temp_visual/decoy/fading/fivesecond/ANM = new /obj/effect/temp_visual/decoy/fading/fivesecond(R.loc, R)
|
||||
ANM.layer = R.layer - 0.01
|
||||
new /obj/effect/overlay/temp/small_smoke(R.loc)
|
||||
new /obj/effect/temp_visual/small_smoke(R.loc)
|
||||
if(R.hat)
|
||||
R.hat.forceMove(get_turf(R))
|
||||
R.hat = null
|
||||
|
||||
@@ -299,7 +299,7 @@
|
||||
/mob/living/simple_animal/bot/emp_act(severity)
|
||||
var/was_on = on
|
||||
stat |= EMPED
|
||||
new /obj/effect/overlay/temp/emp(loc)
|
||||
new /obj/effect/temp_visual/emp(loc)
|
||||
if(paicard)
|
||||
paicard.emp_act(severity)
|
||||
src.visible_message("[paicard] is flies out of [bot_name]!","<span class='warning'>You are forcefully ejected from [bot_name]!</span>")
|
||||
|
||||
@@ -444,7 +444,7 @@ Auto Patrol[]"},
|
||||
if(severity==2 && prob(70))
|
||||
..(severity-1)
|
||||
else
|
||||
new /obj/effect/overlay/temp/emp(loc)
|
||||
new /obj/effect/temp_visual/emp(loc)
|
||||
var/list/mob/living/carbon/targets = new
|
||||
for(var/mob/living/carbon/C in view(12,src))
|
||||
if(C.stat==2)
|
||||
|
||||
@@ -216,7 +216,7 @@
|
||||
if(change)
|
||||
if(change > 0)
|
||||
if(M && stat != DEAD)
|
||||
new /obj/effect/overlay/temp/heart(loc)
|
||||
new /obj/effect/temp_visual/heart(loc)
|
||||
emote("me", 1, "purrs!")
|
||||
else
|
||||
if(M && stat != DEAD)
|
||||
|
||||
@@ -553,7 +553,7 @@
|
||||
if(change)
|
||||
if(change > 0)
|
||||
if(M && stat != DEAD) // Added check to see if this mob (the dog) is dead to fix issue 2454
|
||||
new /obj/effect/overlay/temp/heart(loc)
|
||||
new /obj/effect/temp_visual/heart(loc)
|
||||
emote("me", 1, "yaps happily!")
|
||||
else
|
||||
if(M && stat != DEAD) // Same check here, even though emote checks it as well (poor form to check it only in the help case)
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
var/laws = \
|
||||
"1. You may not involve yourself in the matters of another being, even if such matters conflict with Law Two or Law Three, unless the other being is another Drone.\n"+\
|
||||
"2. You may not harm any being, regardless of intent or circumstance.\n"+\
|
||||
"3. Your goals are to build, maintain, repair, improve, and power the station to the best of your abilities, You must never actively work against these goals."
|
||||
"3. Your goals are to build, maintain, repair, improve, and provide power to the best of your abilities, You must never actively work against these goals."
|
||||
var/light_on = 0
|
||||
var/heavy_emp_damage = 25 //Amount of damage sustained if hit by a heavy EMP pulse
|
||||
var/alarms = list("Atmosphere" = list(), "Fire" = list(), "Power" = list())
|
||||
|
||||
@@ -175,9 +175,9 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
|
||||
if(istype(summoner.loc, /obj/effect))
|
||||
Recall(TRUE)
|
||||
else
|
||||
new /obj/effect/overlay/temp/guardian/phase/out(loc)
|
||||
new /obj/effect/temp_visual/guardian/phase/out(loc)
|
||||
forceMove(summoner.loc)
|
||||
new /obj/effect/overlay/temp/guardian/phase(loc)
|
||||
new /obj/effect/temp_visual/guardian/phase(loc)
|
||||
|
||||
/mob/living/simple_animal/hostile/guardian/canSuicide()
|
||||
return 0
|
||||
@@ -315,7 +315,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
|
||||
return FALSE
|
||||
if(loc == summoner)
|
||||
forceMove(summoner.loc)
|
||||
new /obj/effect/overlay/temp/guardian/phase(loc)
|
||||
new /obj/effect/temp_visual/guardian/phase(loc)
|
||||
cooldown = world.time + 10
|
||||
return TRUE
|
||||
return FALSE
|
||||
@@ -323,7 +323,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
|
||||
/mob/living/simple_animal/hostile/guardian/proc/Recall(forced)
|
||||
if(!summoner || loc == summoner || (cooldown > world.time && !forced))
|
||||
return FALSE
|
||||
new /obj/effect/overlay/temp/guardian/phase/out(loc)
|
||||
new /obj/effect/temp_visual/guardian/phase/out(loc)
|
||||
|
||||
forceMove(summoner)
|
||||
cooldown = world.time + 10
|
||||
|
||||
@@ -71,7 +71,10 @@
|
||||
melee_damage_upper = 50
|
||||
armour_penetration = 100
|
||||
obj_damage = 0
|
||||
|
||||
|
||||
environment_smash = ENVIRONMENT_SMASH_NONE
|
||||
|
||||
new /obj/effect/temp_visual/guardian/phase/out(get_turf(src))
|
||||
alpha = 15
|
||||
if(!forced)
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/guardian/charger/Move()
|
||||
if(charging)
|
||||
new /obj/effect/overlay/temp/decoy/fading(loc,src)
|
||||
new /obj/effect/temp_visual/decoy/fading(loc,src)
|
||||
. = ..()
|
||||
|
||||
/mob/living/simple_animal/hostile/guardian/charger/snapback()
|
||||
|
||||
@@ -21,14 +21,14 @@
|
||||
if(. && prob(40) && isliving(target))
|
||||
var/mob/living/M = target
|
||||
if(!M.anchored && M != summoner && !hasmatchingsummoner(M))
|
||||
new /obj/effect/overlay/temp/guardian/phase/out(get_turf(M))
|
||||
new /obj/effect/temp_visual/guardian/phase/out(get_turf(M))
|
||||
do_teleport(M, M, 10)
|
||||
for(var/mob/living/L in range(1, M))
|
||||
if(hasmatchingsummoner(L)) //if the summoner matches don't hurt them
|
||||
continue
|
||||
if(L != src && L != summoner)
|
||||
L.apply_damage(15, BRUTE)
|
||||
new /obj/effect/overlay/temp/explosion(get_turf(M))
|
||||
new /obj/effect/temp_visual/explosion(get_turf(M))
|
||||
|
||||
/mob/living/simple_animal/hostile/guardian/bomb/AltClickOn(atom/movable/A)
|
||||
if(!istype(A))
|
||||
@@ -75,7 +75,7 @@
|
||||
var/turf/T = get_turf(src)
|
||||
stored_obj.forceMove(T)
|
||||
playsound(T,'sound/effects/Explosion2.ogg', 200, 1)
|
||||
new /obj/effect/overlay/temp/explosion(T)
|
||||
new /obj/effect/temp_visual/explosion(T)
|
||||
user.ex_act(2)
|
||||
qdel(src)
|
||||
else
|
||||
|
||||
@@ -63,6 +63,6 @@
|
||||
else
|
||||
to_chat(summoner, "<span class='holoparasite'>You moved out of range, and were pulled back! You can only move [range] meters from <font color=\"[namedatum.colour]\"><b>[real_name]</b></font>!</span>")
|
||||
summoner.visible_message("<span class='danger'>\The [summoner] jumps back to [summoner.p_their()] protector.</span>")
|
||||
new /obj/effect/overlay/temp/guardian/phase/out(get_turf(summoner))
|
||||
new /obj/effect/temp_visual/guardian/phase/out(get_turf(summoner))
|
||||
summoner.forceMove(get_turf(src))
|
||||
new /obj/effect/overlay/temp/guardian/phase(get_turf(summoner))
|
||||
new /obj/effect/temp_visual/guardian/phase(get_turf(summoner))
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
C.adjustFireLoss(-5)
|
||||
C.adjustOxyLoss(-5)
|
||||
C.adjustToxLoss(-5)
|
||||
var/obj/effect/overlay/temp/heal/H = new /obj/effect/overlay/temp/heal(get_turf(C))
|
||||
var/obj/effect/temp_visual/heal/H = new /obj/effect/temp_visual/heal(get_turf(C))
|
||||
if(namedatum)
|
||||
H.color = namedatum.colour
|
||||
if(C == summoner)
|
||||
@@ -136,11 +136,11 @@
|
||||
to_chat(src, "<span class='danger'><B>You need to hold still!</span></B>")
|
||||
return
|
||||
|
||||
new /obj/effect/overlay/temp/guardian/phase/out(T)
|
||||
new /obj/effect/temp_visual/guardian/phase/out(T)
|
||||
if(isliving(A))
|
||||
var/mob/living/L = A
|
||||
L.flash_act()
|
||||
A.visible_message("<span class='danger'>[A] disappears in a flash of light!</span>", \
|
||||
"<span class='userdanger'>Your vision is obscured by a flash of light!</span>")
|
||||
do_teleport(A, beacon, 0)
|
||||
new /obj/effect/overlay/temp/guardian/phase(get_turf(A))
|
||||
new /obj/effect/temp_visual/guardian/phase(get_turf(A))
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
melee_damage_upper = 20
|
||||
health = 1000
|
||||
maxHealth = 1000
|
||||
loot = list(/obj/effect/overlay/temp/paperwiz_dying)
|
||||
loot = list(/obj/effect/temp_visual/paperwiz_dying)
|
||||
projectiletype = /obj/item/projectile/temp
|
||||
projectilesound = 'sound/weapons/emitter.ogg'
|
||||
attack_sound = 'sound/hallucinations/growl1.ogg'
|
||||
@@ -129,7 +129,7 @@
|
||||
qdel(src) //I see through your ruse!
|
||||
|
||||
//fancy effects
|
||||
/obj/effect/overlay/temp/paper_scatter
|
||||
/obj/effect/temp_visual/paper_scatter
|
||||
name = "scattering paper"
|
||||
desc = "Pieces of paper scattering to the wind."
|
||||
layer = ABOVE_OPEN_TURF_LAYER
|
||||
@@ -139,7 +139,7 @@
|
||||
duration = 5
|
||||
randomdir = FALSE
|
||||
|
||||
/obj/effect/overlay/temp/paperwiz_dying
|
||||
/obj/effect/temp_visual/paperwiz_dying
|
||||
name = "craft portal"
|
||||
desc = "A wormhole sucking the wizard into the void. Neat."
|
||||
layer = ABOVE_OPEN_TURF_LAYER
|
||||
@@ -149,18 +149,18 @@
|
||||
duration = 18
|
||||
randomdir = FALSE
|
||||
|
||||
/obj/effect/overlay/temp/paperwiz_dying/Initialize()
|
||||
/obj/effect/temp_visual/paperwiz_dying/Initialize()
|
||||
. = ..()
|
||||
visible_message("<span class='boldannounce'>The wizard cries out in pain as a gate appears behind him, sucking him in!</span>")
|
||||
playsound(get_turf(src),'sound/magic/MandSwap.ogg', 50, 1, 1)
|
||||
playsound(get_turf(src),'sound/hallucinations/wail.ogg', 50, 1, 1)
|
||||
|
||||
/obj/effect/overlay/temp/paperwiz_dying/Destroy()
|
||||
/obj/effect/temp_visual/paperwiz_dying/Destroy()
|
||||
for(var/mob/M in range(7,src))
|
||||
shake_camera(M, 7, 1)
|
||||
var/turf/T = get_turf(src)
|
||||
playsound(T,'sound/magic/Summon_Magic.ogg', 50, 1, 1)
|
||||
new /obj/effect/overlay/temp/paper_scatter(T)
|
||||
new /obj/effect/temp_visual/paper_scatter(T)
|
||||
new /obj/item/clothing/suit/wizrobe/paper(T)
|
||||
new /obj/item/clothing/head/collectable/paper(T)
|
||||
return ..()
|
||||
|
||||
@@ -134,7 +134,7 @@ Difficulty: Hard
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/bubblegum/Move()
|
||||
if(charging)
|
||||
new /obj/effect/overlay/temp/decoy/fading(loc,src)
|
||||
new /obj/effect/temp_visual/decoy/fading(loc,src)
|
||||
DestroySurroundings()
|
||||
. = ..()
|
||||
if(!stat && .)
|
||||
@@ -150,12 +150,12 @@ Difficulty: Hard
|
||||
var/turf/T = get_turf(target)
|
||||
if(!T || T == loc)
|
||||
return
|
||||
new /obj/effect/overlay/temp/dragon_swoop/bubblegum(T)
|
||||
new /obj/effect/temp_visual/dragon_swoop/bubblegum(T)
|
||||
charging = TRUE
|
||||
DestroySurroundings()
|
||||
walk(src, 0)
|
||||
setDir(get_dir(src, T))
|
||||
var/obj/effect/overlay/temp/decoy/D = new /obj/effect/overlay/temp/decoy(loc,src)
|
||||
var/obj/effect/temp_visual/decoy/D = new /obj/effect/temp_visual/decoy(loc,src)
|
||||
animate(D, alpha = 0, color = "#FF0000", transform = matrix()*2, time = 3)
|
||||
sleep(3)
|
||||
throw_at(T, get_dist(src, T), 1, src, 0, callback = CALLBACK(src, .charge_end, bonus_charges))
|
||||
@@ -245,9 +245,9 @@ Difficulty: Hard
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/bloodsmack(turf/T, handedness)
|
||||
if(handedness)
|
||||
new /obj/effect/overlay/temp/bubblegum_hands/rightsmack(T)
|
||||
new /obj/effect/temp_visual/bubblegum_hands/rightsmack(T)
|
||||
else
|
||||
new /obj/effect/overlay/temp/bubblegum_hands/leftsmack(T)
|
||||
new /obj/effect/temp_visual/bubblegum_hands/leftsmack(T)
|
||||
sleep(2.5)
|
||||
for(var/mob/living/L in T)
|
||||
if(!faction_check_mob(L))
|
||||
@@ -259,11 +259,11 @@ Difficulty: Hard
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/bloodgrab(turf/T, handedness)
|
||||
if(handedness)
|
||||
new /obj/effect/overlay/temp/bubblegum_hands/rightpaw(T)
|
||||
new /obj/effect/overlay/temp/bubblegum_hands/rightthumb(T)
|
||||
new /obj/effect/temp_visual/bubblegum_hands/rightpaw(T)
|
||||
new /obj/effect/temp_visual/bubblegum_hands/rightthumb(T)
|
||||
else
|
||||
new /obj/effect/overlay/temp/bubblegum_hands/leftpaw(T)
|
||||
new /obj/effect/overlay/temp/bubblegum_hands/leftthumb(T)
|
||||
new /obj/effect/temp_visual/bubblegum_hands/leftpaw(T)
|
||||
new /obj/effect/temp_visual/bubblegum_hands/leftthumb(T)
|
||||
sleep(6)
|
||||
for(var/mob/living/L in T)
|
||||
if(!faction_check_mob(L))
|
||||
@@ -276,31 +276,31 @@ Difficulty: Hard
|
||||
addtimer(CALLBACK(src, .proc/devour, L), 2)
|
||||
sleep(1)
|
||||
|
||||
/obj/effect/overlay/temp/dragon_swoop/bubblegum
|
||||
/obj/effect/temp_visual/dragon_swoop/bubblegum
|
||||
duration = 10
|
||||
|
||||
/obj/effect/overlay/temp/bubblegum_hands
|
||||
/obj/effect/temp_visual/bubblegum_hands
|
||||
icon = 'icons/effects/bubblegum.dmi'
|
||||
duration = 9
|
||||
|
||||
/obj/effect/overlay/temp/bubblegum_hands/rightthumb
|
||||
/obj/effect/temp_visual/bubblegum_hands/rightthumb
|
||||
icon_state = "rightthumbgrab"
|
||||
|
||||
/obj/effect/overlay/temp/bubblegum_hands/leftthumb
|
||||
/obj/effect/temp_visual/bubblegum_hands/leftthumb
|
||||
icon_state = "leftthumbgrab"
|
||||
|
||||
/obj/effect/overlay/temp/bubblegum_hands/rightpaw
|
||||
/obj/effect/temp_visual/bubblegum_hands/rightpaw
|
||||
icon_state = "rightpawgrab"
|
||||
layer = BELOW_MOB_LAYER
|
||||
|
||||
/obj/effect/overlay/temp/bubblegum_hands/leftpaw
|
||||
/obj/effect/temp_visual/bubblegum_hands/leftpaw
|
||||
icon_state = "leftpawgrab"
|
||||
layer = BELOW_MOB_LAYER
|
||||
|
||||
/obj/effect/overlay/temp/bubblegum_hands/rightsmack
|
||||
/obj/effect/temp_visual/bubblegum_hands/rightsmack
|
||||
icon_state = "rightsmack"
|
||||
|
||||
/obj/effect/overlay/temp/bubblegum_hands/leftsmack
|
||||
/obj/effect/temp_visual/bubblegum_hands/leftsmack
|
||||
icon_state = "leftsmack"
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/bubblegum/proc/blood_warp()
|
||||
@@ -316,7 +316,7 @@ Difficulty: Hard
|
||||
if(!pools.len)
|
||||
return FALSE
|
||||
|
||||
var/obj/effect/overlay/temp/decoy/DA = new /obj/effect/overlay/temp/decoy(loc,src)
|
||||
var/obj/effect/temp_visual/decoy/DA = new /obj/effect/temp_visual/decoy(loc,src)
|
||||
DA.color = "#FF0000"
|
||||
var/oldtransform = DA.transform
|
||||
DA.transform = matrix()*2
|
||||
@@ -358,7 +358,7 @@ Difficulty: Hard
|
||||
new /obj/effect/decal/cleanable/blood/bubblegum(J)
|
||||
for(var/i in 1 to range)
|
||||
J = get_step(previousturf, targetdir)
|
||||
new /obj/effect/overlay/temp/dir_setting/bloodsplatter(previousturf, get_dir(previousturf, J))
|
||||
new /obj/effect/temp_visual/dir_setting/bloodsplatter(previousturf, get_dir(previousturf, J))
|
||||
playsound(previousturf,'sound/effects/splat.ogg', 100, 1, -1)
|
||||
if(!J || !previousturf.atmos_adjacent_turfs || !previousturf.atmos_adjacent_turfs[J])
|
||||
break
|
||||
|
||||
@@ -95,7 +95,7 @@ Difficulty: Very Hard
|
||||
..()
|
||||
internal = new/obj/item/device/gps/internal/colossus(src)
|
||||
|
||||
/obj/effect/overlay/temp/at_shield
|
||||
/obj/effect/temp_visual/at_shield
|
||||
name = "anti-toolbox field"
|
||||
desc = "A shimmering forcefield protecting the colossus."
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
@@ -105,14 +105,14 @@ Difficulty: Very Hard
|
||||
duration = 8
|
||||
var/target
|
||||
|
||||
/obj/effect/overlay/temp/at_shield/Initialize(mapload, new_target)
|
||||
/obj/effect/temp_visual/at_shield/Initialize(mapload, new_target)
|
||||
. = ..()
|
||||
target = new_target
|
||||
INVOKE_ASYNC(src, /atom/movable/proc/orbit, target, 0, FALSE, 0, 0, FALSE, TRUE)
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/colossus/bullet_act(obj/item/projectile/P)
|
||||
if(!stat)
|
||||
var/obj/effect/overlay/temp/at_shield/AT = new /obj/effect/overlay/temp/at_shield(src.loc, src)
|
||||
var/obj/effect/temp_visual/at_shield/AT = new /obj/effect/temp_visual/at_shield(src.loc, src)
|
||||
var/random_x = rand(-32, 32)
|
||||
AT.pixel_x += random_x
|
||||
|
||||
@@ -581,7 +581,7 @@ Difficulty: Very Hard
|
||||
if(..())
|
||||
for(var/i in range(1, src))
|
||||
if(isturf(i))
|
||||
new /obj/effect/overlay/temp/cult/sparks(i)
|
||||
new /obj/effect/temp_visual/cult/sparks(i)
|
||||
continue
|
||||
if(ishuman(i))
|
||||
var/mob/living/carbon/human/H = i
|
||||
@@ -675,7 +675,7 @@ Difficulty: Very Hard
|
||||
var/mob/living/L = target
|
||||
if(L.stat != DEAD)
|
||||
L.heal_overall_damage(heal_power, heal_power)
|
||||
new /obj/effect/overlay/temp/heal(get_turf(target), "#80F5FF")
|
||||
new /obj/effect/temp_visual/heal(get_turf(target), "#80F5FF")
|
||||
|
||||
/mob/living/simple_animal/hostile/lightgeist/ghostize()
|
||||
. = ..()
|
||||
@@ -699,7 +699,7 @@ Difficulty: Very Hard
|
||||
if(..())
|
||||
var/list/L = list()
|
||||
var/turf/T = get_step(src, dir)
|
||||
new /obj/effect/overlay/temp/emp/pulse(T)
|
||||
new /obj/effect/temp_visual/emp/pulse(T)
|
||||
for(var/i in T)
|
||||
if(istype(i, /obj/item) && !is_type_in_typecache(i, banned_items_typecache))
|
||||
var/obj/item/W = i
|
||||
|
||||
@@ -124,7 +124,7 @@ Difficulty: Medium
|
||||
target.visible_message("<span class='boldwarning'>Fire rains from the sky!</span>")
|
||||
for(var/turf/turf in range(9,get_turf(target)))
|
||||
if(prob(11))
|
||||
new /obj/effect/overlay/temp/target(turf)
|
||||
new /obj/effect/temp_visual/target(turf)
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/dragon/proc/fire_walls()
|
||||
playsound(get_turf(src),'sound/magic/Fireball.ogg', 200, 1)
|
||||
@@ -179,7 +179,7 @@ Difficulty: Medium
|
||||
negative = FALSE
|
||||
else if(target.x == initial_x) //if their x is the same, pick a direction
|
||||
negative = prob(50)
|
||||
var/obj/effect/overlay/temp/dragon_flight/F = new /obj/effect/overlay/temp/dragon_flight(loc, negative)
|
||||
var/obj/effect/temp_visual/dragon_flight/F = new /obj/effect/temp_visual/dragon_flight(loc, negative)
|
||||
|
||||
negative = !negative //invert it for the swoop down later
|
||||
|
||||
@@ -208,7 +208,7 @@ Difficulty: Medium
|
||||
if(L.stat == DEAD)
|
||||
break //target is dead and we're on em, slam they
|
||||
if(fire_rain)
|
||||
new /obj/effect/overlay/temp/target(loc, flame_hit)
|
||||
new /obj/effect/temp_visual/target(loc, flame_hit)
|
||||
forceMove(get_step(src, get_dir(src, target)))
|
||||
if(loc == get_turf(target))
|
||||
if(!fire_rain)
|
||||
@@ -228,8 +228,8 @@ Difficulty: Medium
|
||||
else
|
||||
if(IsInRange(x, initial_x - DRAKE_SWOOP_DIRECTION_CHANGE_RANGE, initial_x - 1))
|
||||
negative = TRUE
|
||||
new /obj/effect/overlay/temp/dragon_flight/end(loc, negative)
|
||||
new /obj/effect/overlay/temp/dragon_swoop(loc)
|
||||
new /obj/effect/temp_visual/dragon_flight/end(loc, negative)
|
||||
new /obj/effect/temp_visual/dragon_swoop(loc)
|
||||
animate(src, transform = oldtransform, time = 5)
|
||||
sleep(5)
|
||||
swooping &= ~SWOOP_INVULNERABLE
|
||||
@@ -271,7 +271,7 @@ Difficulty: Medium
|
||||
invisibility = 100
|
||||
|
||||
|
||||
/obj/effect/overlay/temp/fireball
|
||||
/obj/effect/temp_visual/fireball
|
||||
icon = 'icons/obj/wizard.dmi'
|
||||
icon_state = "fireball"
|
||||
name = "fireball"
|
||||
@@ -281,28 +281,28 @@ Difficulty: Medium
|
||||
duration = 9
|
||||
pixel_z = DRAKE_SWOOP_HEIGHT
|
||||
|
||||
/obj/effect/overlay/temp/fireball/Initialize()
|
||||
/obj/effect/temp_visual/fireball/Initialize()
|
||||
. = ..()
|
||||
animate(src, pixel_z = 0, time = duration)
|
||||
|
||||
/obj/effect/overlay/temp/target
|
||||
/obj/effect/temp_visual/target
|
||||
icon = 'icons/mob/actions.dmi'
|
||||
icon_state = "sniper_zoom"
|
||||
layer = BELOW_MOB_LAYER
|
||||
light_range = 2
|
||||
duration = 9
|
||||
|
||||
/obj/effect/overlay/temp/target/ex_act()
|
||||
/obj/effect/temp_visual/target/ex_act()
|
||||
return
|
||||
|
||||
/obj/effect/overlay/temp/target/Initialize(mapload, list/flame_hit)
|
||||
/obj/effect/temp_visual/target/Initialize(mapload, list/flame_hit)
|
||||
. = ..()
|
||||
INVOKE_ASYNC(src, .proc/fall, flame_hit)
|
||||
|
||||
/obj/effect/overlay/temp/target/proc/fall(list/flame_hit)
|
||||
/obj/effect/temp_visual/target/proc/fall(list/flame_hit)
|
||||
var/turf/T = get_turf(src)
|
||||
playsound(T,'sound/magic/Fireball.ogg', 80, 1)
|
||||
new /obj/effect/overlay/temp/fireball(T)
|
||||
new /obj/effect/temp_visual/fireball(T)
|
||||
sleep(duration)
|
||||
if(ismineralturf(T))
|
||||
var/turf/closed/mineral/M = T
|
||||
@@ -320,7 +320,7 @@ Difficulty: Medium
|
||||
else
|
||||
L.adjustFireLoss(10) //if we've already hit them, do way less damage
|
||||
|
||||
/obj/effect/overlay/temp/dragon_swoop
|
||||
/obj/effect/temp_visual/dragon_swoop
|
||||
name = "certain death"
|
||||
desc = "Don't just stand there, move!"
|
||||
icon = 'icons/effects/96x96.dmi'
|
||||
@@ -331,7 +331,7 @@ Difficulty: Medium
|
||||
color = "#FF0000"
|
||||
duration = 5
|
||||
|
||||
/obj/effect/overlay/temp/dragon_flight
|
||||
/obj/effect/temp_visual/dragon_flight
|
||||
icon = 'icons/mob/lavaland/dragon.dmi'
|
||||
icon_state = "dragon"
|
||||
layer = ABOVE_ALL_MOB_LAYER
|
||||
@@ -339,11 +339,11 @@ Difficulty: Medium
|
||||
duration = 10
|
||||
randomdir = FALSE
|
||||
|
||||
/obj/effect/overlay/temp/dragon_flight/Initialize(mapload, negative)
|
||||
/obj/effect/temp_visual/dragon_flight/Initialize(mapload, negative)
|
||||
. = ..()
|
||||
INVOKE_ASYNC(src, .proc/flight, negative)
|
||||
|
||||
/obj/effect/overlay/temp/dragon_flight/proc/flight(negative)
|
||||
/obj/effect/temp_visual/dragon_flight/proc/flight(negative)
|
||||
if(negative)
|
||||
animate(src, pixel_x = -DRAKE_SWOOP_HEIGHT*0.10, pixel_z = DRAKE_SWOOP_HEIGHT*0.15, time = 3, easing = BOUNCE_EASING)
|
||||
else
|
||||
@@ -355,12 +355,12 @@ Difficulty: Medium
|
||||
else
|
||||
animate(src, pixel_x = DRAKE_SWOOP_HEIGHT, pixel_z = DRAKE_SWOOP_HEIGHT, time = 7)
|
||||
|
||||
/obj/effect/overlay/temp/dragon_flight/end
|
||||
/obj/effect/temp_visual/dragon_flight/end
|
||||
pixel_x = DRAKE_SWOOP_HEIGHT
|
||||
pixel_z = DRAKE_SWOOP_HEIGHT
|
||||
duration = 5
|
||||
|
||||
/obj/effect/overlay/temp/dragon_flight/end/flight(negative)
|
||||
/obj/effect/temp_visual/dragon_flight/end/flight(negative)
|
||||
if(negative)
|
||||
pixel_x = -DRAKE_SWOOP_HEIGHT
|
||||
animate(src, pixel_x = -16, pixel_z = 0, time = 5)
|
||||
|
||||
@@ -150,7 +150,7 @@ Difficulty: Hard
|
||||
var/prevloc = loc
|
||||
. = ..()
|
||||
if(!stat && .)
|
||||
var/obj/effect/overlay/temp/hierophant/squares/HS = new /obj/effect/overlay/temp/hierophant/squares(prevloc)
|
||||
var/obj/effect/temp_visual/hierophant/squares/HS = new /obj/effect/temp_visual/hierophant/squares(prevloc)
|
||||
HS.dir = dir
|
||||
playsound(loc, 'sound/mecha/mechmove04.ogg', 150, 1, -4)
|
||||
if(target)
|
||||
@@ -250,7 +250,7 @@ Difficulty: Hard
|
||||
pickedtarget = pick_n_take(targets)
|
||||
if(!istype(pickedtarget) || pickedtarget.stat == DEAD)
|
||||
pickedtarget = target
|
||||
var/obj/effect/overlay/temp/hierophant/chaser/C = new /obj/effect/overlay/temp/hierophant/chaser(loc, src, pickedtarget, chaser_speed, FALSE)
|
||||
var/obj/effect/temp_visual/hierophant/chaser/C = new /obj/effect/temp_visual/hierophant/chaser(loc, src, pickedtarget, chaser_speed, FALSE)
|
||||
C.moving = 3
|
||||
C.moving_dir = pick_n_take(cardinal_copy)
|
||||
sleep(10)
|
||||
@@ -280,10 +280,10 @@ Difficulty: Hard
|
||||
else
|
||||
INVOKE_ASYNC(src, .proc/diagonal_blasts, target)
|
||||
else if(chaser_cooldown < world.time) //if chasers are off cooldown, fire some!
|
||||
var/obj/effect/overlay/temp/hierophant/chaser/C = new /obj/effect/overlay/temp/hierophant/chaser(loc, src, target, chaser_speed, FALSE)
|
||||
var/obj/effect/temp_visual/hierophant/chaser/C = new /obj/effect/temp_visual/hierophant/chaser(loc, src, target, chaser_speed, FALSE)
|
||||
chaser_cooldown = world.time + initial(chaser_cooldown)
|
||||
if((prob(anger_modifier) || target.Adjacent(src)) && target != src)
|
||||
var/obj/effect/overlay/temp/hierophant/chaser/OC = new /obj/effect/overlay/temp/hierophant/chaser(loc, src, target, max(1.5, 5 - anger_modifier * 0.07), FALSE)
|
||||
var/obj/effect/temp_visual/hierophant/chaser/OC = new /obj/effect/temp_visual/hierophant/chaser(loc, src, target, max(1.5, 5 - anger_modifier * 0.07), FALSE)
|
||||
OC.moving = 4
|
||||
OC.moving_dir = pick(GLOB.cardinal - C.moving_dir)
|
||||
else //just release a burst of power
|
||||
@@ -293,10 +293,10 @@ Difficulty: Hard
|
||||
var/turf/T = get_turf(victim)
|
||||
if(!T)
|
||||
return
|
||||
new /obj/effect/overlay/temp/hierophant/telegraph/diagonal(T, src)
|
||||
new /obj/effect/temp_visual/hierophant/telegraph/diagonal(T, src)
|
||||
playsound(T,'sound/effects/bin_close.ogg', 200, 1)
|
||||
sleep(2)
|
||||
new /obj/effect/overlay/temp/hierophant/blast(T, src, FALSE)
|
||||
new /obj/effect/temp_visual/hierophant/blast(T, src, FALSE)
|
||||
for(var/d in GLOB.diagonals)
|
||||
INVOKE_ASYNC(src, .proc/blast_wall, T, d)
|
||||
|
||||
@@ -304,10 +304,10 @@ Difficulty: Hard
|
||||
var/turf/T = get_turf(victim)
|
||||
if(!T)
|
||||
return
|
||||
new /obj/effect/overlay/temp/hierophant/telegraph/cardinal(T, src)
|
||||
new /obj/effect/temp_visual/hierophant/telegraph/cardinal(T, src)
|
||||
playsound(T,'sound/effects/bin_close.ogg', 200, 1)
|
||||
sleep(2)
|
||||
new /obj/effect/overlay/temp/hierophant/blast(T, src, FALSE)
|
||||
new /obj/effect/temp_visual/hierophant/blast(T, src, FALSE)
|
||||
for(var/d in GLOB.cardinal)
|
||||
INVOKE_ASYNC(src, .proc/blast_wall, T, d)
|
||||
|
||||
@@ -315,10 +315,10 @@ Difficulty: Hard
|
||||
var/turf/T = get_turf(victim)
|
||||
if(!T)
|
||||
return
|
||||
new /obj/effect/overlay/temp/hierophant/telegraph(T, src)
|
||||
new /obj/effect/temp_visual/hierophant/telegraph(T, src)
|
||||
playsound(T,'sound/effects/bin_close.ogg', 200, 1)
|
||||
sleep(2)
|
||||
new /obj/effect/overlay/temp/hierophant/blast(T, src, FALSE)
|
||||
new /obj/effect/temp_visual/hierophant/blast(T, src, FALSE)
|
||||
for(var/d in GLOB.alldirs)
|
||||
INVOKE_ASYNC(src, .proc/blast_wall, T, d)
|
||||
|
||||
@@ -327,7 +327,7 @@ Difficulty: Hard
|
||||
var/turf/previousturf = T
|
||||
var/turf/J = get_step(previousturf, set_dir)
|
||||
for(var/i in 1 to range)
|
||||
new /obj/effect/overlay/temp/hierophant/blast(J, src, FALSE)
|
||||
new /obj/effect/temp_visual/hierophant/blast(J, src, FALSE)
|
||||
previousturf = J
|
||||
J = get_step(previousturf, set_dir)
|
||||
|
||||
@@ -342,8 +342,8 @@ Difficulty: Hard
|
||||
INVOKE_ASYNC(src, .proc/arena_squares, T, d)
|
||||
for(var/t in RANGE_TURFS(11, T))
|
||||
if(t && get_dist(t, T) == 11)
|
||||
new /obj/effect/overlay/temp/hierophant/wall(t)
|
||||
new /obj/effect/overlay/temp/hierophant/blast(t, src, FALSE)
|
||||
new /obj/effect/temp_visual/hierophant/wall(t)
|
||||
new /obj/effect/temp_visual/hierophant/blast(t, src, FALSE)
|
||||
if(get_dist(src, T) >= 11) //hey you're out of range I need to get closer to you!
|
||||
INVOKE_ASYNC(src, .proc/blink, T)
|
||||
|
||||
@@ -351,7 +351,7 @@ Difficulty: Hard
|
||||
var/turf/previousturf = T
|
||||
var/turf/J = get_step(previousturf, set_dir)
|
||||
for(var/i in 1 to 10)
|
||||
var/obj/effect/overlay/temp/hierophant/squares/HS = new /obj/effect/overlay/temp/hierophant/squares(J)
|
||||
var/obj/effect/temp_visual/hierophant/squares/HS = new /obj/effect/temp_visual/hierophant/squares(J)
|
||||
HS.dir = set_dir
|
||||
previousturf = J
|
||||
J = get_step(previousturf, set_dir)
|
||||
@@ -362,19 +362,19 @@ Difficulty: Hard
|
||||
return
|
||||
var/turf/T = get_turf(victim)
|
||||
var/turf/source = get_turf(src)
|
||||
new /obj/effect/overlay/temp/hierophant/telegraph(T, src)
|
||||
new /obj/effect/overlay/temp/hierophant/telegraph(source, src)
|
||||
new /obj/effect/temp_visual/hierophant/telegraph(T, src)
|
||||
new /obj/effect/temp_visual/hierophant/telegraph(source, src)
|
||||
playsound(T,'sound/magic/Wand_Teleport.ogg', 200, 1)
|
||||
playsound(source,'sound/machines/AirlockOpen.ogg', 200, 1)
|
||||
blinking = TRUE
|
||||
sleep(2) //short delay before we start...
|
||||
new /obj/effect/overlay/temp/hierophant/telegraph/teleport(T, src)
|
||||
new /obj/effect/overlay/temp/hierophant/telegraph/teleport(source, src)
|
||||
new /obj/effect/temp_visual/hierophant/telegraph/teleport(T, src)
|
||||
new /obj/effect/temp_visual/hierophant/telegraph/teleport(source, src)
|
||||
for(var/t in RANGE_TURFS(1, T))
|
||||
var/obj/effect/overlay/temp/hierophant/blast/B = new /obj/effect/overlay/temp/hierophant/blast(t, src, FALSE)
|
||||
var/obj/effect/temp_visual/hierophant/blast/B = new /obj/effect/temp_visual/hierophant/blast(t, src, FALSE)
|
||||
B.damage = 30
|
||||
for(var/t in RANGE_TURFS(1, source))
|
||||
var/obj/effect/overlay/temp/hierophant/blast/B = new /obj/effect/overlay/temp/hierophant/blast(t, src, FALSE)
|
||||
var/obj/effect/temp_visual/hierophant/blast/B = new /obj/effect/temp_visual/hierophant/blast(t, src, FALSE)
|
||||
B.damage = 30
|
||||
animate(src, alpha = 0, time = 2, easing = EASE_OUT) //fade out
|
||||
sleep(1)
|
||||
@@ -396,11 +396,11 @@ Difficulty: Hard
|
||||
var/turf/T = get_turf(victim)
|
||||
if(!T)
|
||||
return
|
||||
new /obj/effect/overlay/temp/hierophant/telegraph(T, src)
|
||||
new /obj/effect/temp_visual/hierophant/telegraph(T, src)
|
||||
playsound(T,'sound/effects/bin_close.ogg', 200, 1)
|
||||
sleep(2)
|
||||
for(var/t in RANGE_TURFS(1, T))
|
||||
new /obj/effect/overlay/temp/hierophant/blast(t, src, FALSE)
|
||||
new /obj/effect/temp_visual/hierophant/blast(t, src, FALSE)
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/hierophant/proc/burst(turf/original) //release a wave of blasts
|
||||
playsound(original,'sound/machines/AirlockOpen.ogg', 200, 1)
|
||||
@@ -413,7 +413,7 @@ Difficulty: Hard
|
||||
if(dist > last_dist)
|
||||
last_dist = dist
|
||||
sleep(1 + min(burst_range - last_dist, 12) * 0.5) //gets faster as it gets further out
|
||||
new /obj/effect/overlay/temp/hierophant/blast(T, src, FALSE)
|
||||
new /obj/effect/temp_visual/hierophant/blast(T, src, FALSE)
|
||||
|
||||
/mob/living/simple_animal/hostile/megafauna/hierophant/AltClickOn(atom/A) //player control handler(don't give this to a player holy fuck)
|
||||
if(!istype(A) || get_dist(A, src) <= 2)
|
||||
@@ -421,29 +421,29 @@ Difficulty: Hard
|
||||
blink(A)
|
||||
|
||||
//Hierophant overlays
|
||||
/obj/effect/overlay/temp/hierophant
|
||||
/obj/effect/temp_visual/hierophant
|
||||
name = "vortex energy"
|
||||
layer = BELOW_MOB_LAYER
|
||||
var/mob/living/caster //who made this, anyway
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/Initialize(mapload, new_caster)
|
||||
/obj/effect/temp_visual/hierophant/Initialize(mapload, new_caster)
|
||||
. = ..()
|
||||
if(new_caster)
|
||||
caster = new_caster
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/squares
|
||||
/obj/effect/temp_visual/hierophant/squares
|
||||
icon_state = "hierophant_squares"
|
||||
duration = 3
|
||||
light_range = 1
|
||||
randomdir = FALSE
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/squares/Initialize(mapload, new_caster)
|
||||
/obj/effect/temp_visual/hierophant/squares/Initialize(mapload, new_caster)
|
||||
. = ..()
|
||||
if(ismineralturf(loc))
|
||||
var/turf/closed/mineral/M = loc
|
||||
M.gets_drilled(caster)
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/wall //smoothing and pooling were not friends, but pooling is dead.
|
||||
/obj/effect/temp_visual/hierophant/wall //smoothing and pooling were not friends, but pooling is dead.
|
||||
name = "vortex wall"
|
||||
icon = 'icons/turf/walls/hierophant_wall_temp.dmi'
|
||||
icon_state = "wall"
|
||||
@@ -451,21 +451,21 @@ Difficulty: Hard
|
||||
duration = 100
|
||||
smooth = SMOOTH_TRUE
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/wall/Initialize(mapload, new_caster)
|
||||
/obj/effect/temp_visual/hierophant/wall/Initialize(mapload, new_caster)
|
||||
. = ..()
|
||||
queue_smooth_neighbors(src)
|
||||
queue_smooth(src)
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/wall/Destroy()
|
||||
/obj/effect/temp_visual/hierophant/wall/Destroy()
|
||||
queue_smooth_neighbors(src)
|
||||
return ..()
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/wall/CanPass(atom/movable/mover, turf/target, height = 0)
|
||||
/obj/effect/temp_visual/hierophant/wall/CanPass(atom/movable/mover, turf/target, height = 0)
|
||||
if(mover == caster)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/chaser //a hierophant's chaser. follows target around, moving and producing a blast every speed deciseconds.
|
||||
/obj/effect/temp_visual/hierophant/chaser //a hierophant's chaser. follows target around, moving and producing a blast every speed deciseconds.
|
||||
duration = 98
|
||||
var/mob/living/target //what it's following
|
||||
var/turf/targetturf //what turf the target is actually on
|
||||
@@ -479,9 +479,9 @@ Difficulty: Hard
|
||||
var/currently_seeking = FALSE
|
||||
var/friendly_fire_check = FALSE //if blasts produced apply friendly fire
|
||||
var/monster_damage_boost = TRUE
|
||||
var/damage = 10
|
||||
var/damage = 10
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/chaser/Initialize(mapload, new_caster, new_target, new_speed, is_friendly_fire)
|
||||
/obj/effect/temp_visual/hierophant/chaser/Initialize(mapload, new_caster, new_target, new_speed, is_friendly_fire)
|
||||
. = ..()
|
||||
target = new_target
|
||||
friendly_fire_check = is_friendly_fire
|
||||
@@ -489,14 +489,14 @@ Difficulty: Hard
|
||||
speed = new_speed
|
||||
addtimer(CALLBACK(src, .proc/seek_target), 1)
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/chaser/proc/get_target_dir()
|
||||
/obj/effect/temp_visual/hierophant/chaser/proc/get_target_dir()
|
||||
. = get_cardinal_dir(src, targetturf)
|
||||
if((. != previous_moving_dir && . == more_previouser_moving_dir) || . == 0) //we're alternating, recalculate
|
||||
var/list/cardinal_copy = GLOB.cardinal.Copy()
|
||||
cardinal_copy -= more_previouser_moving_dir
|
||||
. = pick(cardinal_copy)
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/chaser/proc/seek_target()
|
||||
/obj/effect/temp_visual/hierophant/chaser/proc/seek_target()
|
||||
if(!currently_seeking)
|
||||
currently_seeking = TRUE
|
||||
targetturf = get_turf(target)
|
||||
@@ -523,33 +523,32 @@ Difficulty: Hard
|
||||
moving--
|
||||
sleep(speed)
|
||||
targetturf = get_turf(target)
|
||||
/obj/effect/overlay/temp/hierophant/chaser/proc/make_blast()
|
||||
var/obj/effect/overlay/temp/hierophant/blast/B = new(loc, caster, friendly_fire_check)
|
||||
B.damage = damage
|
||||
B.monster_damage_boost = monster_damage_boost
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/telegraph
|
||||
/obj/effect/temp_visual/hierophant/chaser/proc/make_blast()
|
||||
new /obj/effect/temp_visual/hierophant/blast(loc, caster, friendly_fire_check)
|
||||
|
||||
/obj/effect/temp_visual/hierophant/telegraph
|
||||
icon = 'icons/effects/96x96.dmi'
|
||||
icon_state = "hierophant_telegraph"
|
||||
pixel_x = -32
|
||||
pixel_y = -32
|
||||
duration = 3
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/telegraph/diagonal
|
||||
/obj/effect/temp_visual/hierophant/telegraph/diagonal
|
||||
icon_state = "hierophant_telegraph_diagonal"
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/telegraph/cardinal
|
||||
/obj/effect/temp_visual/hierophant/telegraph/cardinal
|
||||
icon_state = "hierophant_telegraph_cardinal"
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/telegraph/teleport
|
||||
/obj/effect/temp_visual/hierophant/telegraph/teleport
|
||||
icon_state = "hierophant_telegraph_teleport"
|
||||
duration = 9
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/telegraph/edge
|
||||
/obj/effect/temp_visual/hierophant/telegraph/edge
|
||||
icon_state = "hierophant_telegraph_edge"
|
||||
duration = 40
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/blast
|
||||
/obj/effect/temp_visual/hierophant/blast
|
||||
icon_state = "hierophant_blast"
|
||||
name = "vortex blast"
|
||||
light_range = 1
|
||||
@@ -561,7 +560,7 @@ Difficulty: Hard
|
||||
var/friendly_fire_check = FALSE
|
||||
var/bursting = FALSE //if we're bursting and need to hit anyone crossing us
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/blast/Initialize(mapload, new_caster, friendly_fire)
|
||||
/obj/effect/temp_visual/hierophant/blast/Initialize(mapload, new_caster, friendly_fire)
|
||||
. = ..()
|
||||
friendly_fire_check = friendly_fire
|
||||
if(new_caster)
|
||||
@@ -571,7 +570,7 @@ Difficulty: Hard
|
||||
M.gets_drilled(caster)
|
||||
INVOKE_ASYNC(src, .proc/blast)
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/blast/proc/blast()
|
||||
/obj/effect/temp_visual/hierophant/blast/proc/blast()
|
||||
var/turf/T = get_turf(src)
|
||||
if(!T)
|
||||
return
|
||||
@@ -582,12 +581,12 @@ Difficulty: Hard
|
||||
sleep(1.3) //slightly forgiving; the burst animation is 1.5 deciseconds
|
||||
bursting = FALSE //we no longer damage crossers
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/blast/Crossed(atom/movable/AM)
|
||||
/obj/effect/temp_visual/hierophant/blast/Crossed(atom/movable/AM)
|
||||
..()
|
||||
if(bursting)
|
||||
do_damage(get_turf(src))
|
||||
|
||||
/obj/effect/overlay/temp/hierophant/blast/proc/do_damage(turf/T)
|
||||
/obj/effect/temp_visual/hierophant/blast/proc/do_damage(turf/T)
|
||||
for(var/mob/living/L in T.contents - hit_things) //find and damage mobs...
|
||||
hit_things += L
|
||||
if((friendly_fire_check && caster && caster.faction_check_mob(L)) || L.stat == DEAD)
|
||||
@@ -634,7 +633,7 @@ Difficulty: Hard
|
||||
INVOKE_ASYNC(H, /obj/item/weapon/hierophant_club.proc/prepare_icon_update)
|
||||
if(do_after(user, 50, target = src))
|
||||
playsound(src,'sound/magic/Blind.ogg', 200, 1, -4)
|
||||
new /obj/effect/overlay/temp/hierophant/telegraph/teleport(get_turf(src), user)
|
||||
new /obj/effect/temp_visual/hierophant/telegraph/teleport(get_turf(src), user)
|
||||
to_chat(user, "<span class='hierophant_warning'>You collect [src], reattaching it to the club!</span>")
|
||||
H.beacon = null
|
||||
user.update_action_buttons_icon()
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
|
||||
/mob/living/simple_animal/hostile/stickman/Initialize(mapload, var/wizard_summoned)
|
||||
..()
|
||||
new /obj/effect/overlay/temp/paper_scatter(src)
|
||||
new /obj/effect/temp_visual/paper_scatter(src)
|
||||
summoned_by_wizard = wizard_summoned
|
||||
|
||||
/mob/living/simple_animal/hostile/stickman/death()
|
||||
|
||||
@@ -249,7 +249,7 @@
|
||||
|
||||
/mob/living/simple_animal/gib_animation()
|
||||
if(icon_gib)
|
||||
new /obj/effect/overlay/temp/gib_animation/animal(loc, icon_gib)
|
||||
new /obj/effect/temp_visual/gib_animation/animal(loc, icon_gib)
|
||||
|
||||
/mob/living/simple_animal/say_mod(input, message_mode)
|
||||
if(speak_emote && speak_emote.len)
|
||||
|
||||
@@ -293,14 +293,14 @@
|
||||
|
||||
if(!src || !isturf(src.loc) || !(A in view(src.loc)))
|
||||
return 0
|
||||
if(istype(A, /obj/effect/overlay/temp/point))
|
||||
if(istype(A, /obj/effect/temp_visual/point))
|
||||
return 0
|
||||
|
||||
var/tile = get_turf(A)
|
||||
if (!tile)
|
||||
return 0
|
||||
|
||||
new /obj/effect/overlay/temp/point(A,invisibility)
|
||||
new /obj/effect/temp_visual/point(A,invisibility)
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
@@ -242,12 +242,12 @@
|
||||
L.loc = locate(locx,locy,mobloc.z)
|
||||
var/limit = 2//For only two trailing shadows.
|
||||
for(var/turf/T in getline(mobloc, L.loc))
|
||||
new /obj/effect/overlay/temp/dir_setting/ninja/shadow(T, L.dir)
|
||||
new /obj/effect/temp_visual/dir_setting/ninja/shadow(T, L.dir)
|
||||
limit--
|
||||
if(limit<=0)
|
||||
break
|
||||
else
|
||||
new /obj/effect/overlay/temp/dir_setting/ninja/shadow(mobloc, L.dir)
|
||||
new /obj/effect/temp_visual/dir_setting/ninja/shadow(mobloc, L.dir)
|
||||
L.loc = get_step(L, direct)
|
||||
L.setDir(direct)
|
||||
if(3) //Incorporeal move, but blocked by holy-watered tiles and salt piles.
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
cut_overlays()
|
||||
invisibility = INVISIBILITY_MAXIMUM
|
||||
|
||||
new /obj/effect/overlay/temp/monkeyify(loc)
|
||||
new /obj/effect/temp_visual/monkeyify(loc)
|
||||
sleep(22)
|
||||
var/mob/living/carbon/monkey/O = new /mob/living/carbon/monkey( loc )
|
||||
|
||||
@@ -186,7 +186,7 @@
|
||||
icon = null
|
||||
cut_overlays()
|
||||
invisibility = INVISIBILITY_MAXIMUM
|
||||
new /obj/effect/overlay/temp/monkeyify/humanify(loc)
|
||||
new /obj/effect/temp_visual/monkeyify/humanify(loc)
|
||||
sleep(22)
|
||||
var/mob/living/carbon/human/O = new( loc )
|
||||
for(var/obj/item/C in O.loc)
|
||||
|
||||
Reference in New Issue
Block a user