Merge branch 'master' into upstream-merge-27160

This commit is contained in:
LetterJay
2017-05-22 16:29:43 -05:00
committed by GitHub
175 changed files with 60580 additions and 60279 deletions
@@ -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")
+3 -3
View File
@@ -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)
+2 -2
View File
@@ -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
+2 -2
View File
@@ -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.
+2 -2
View File
@@ -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)