mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-13 16:13:19 +01:00
Finalizes Changes
- Adds action buttons for Shadowling spells - Fixes bugs and runtimes found while testing. - Remove stupid snowflake check that allowed mobs with environment_smash >= 2 to smash reinforced walls, but not regular walls (what the actual fuck?).
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
icon = 'icons/mob/mob.dmi'
|
||||
icon_state = "shadowling_ascended"
|
||||
icon_living = "shadowling_ascended"
|
||||
speak = list("Azima'dox", "Mahz'kavek", "N'ildzak", "Kaz'vadosh")
|
||||
speak_emote = list("telepathically thunders", "telepathically booms")
|
||||
force_threshold = INFINITY //Can't die by normal means
|
||||
health = 100000
|
||||
@@ -13,6 +14,8 @@
|
||||
see_in_dark = 8
|
||||
see_invisible = SEE_INVISIBLE_MINIMUM
|
||||
|
||||
universal_speak = 1
|
||||
|
||||
response_help = "stares at"
|
||||
response_disarm = "flails at"
|
||||
response_harm = "flails at"
|
||||
|
||||
@@ -133,8 +133,8 @@ Made by Xhuis
|
||||
|
||||
/datum/game_mode/proc/finalize_shadowling(var/datum/mind/shadow_mind)
|
||||
var/mob/living/carbon/human/S = shadow_mind.current
|
||||
shadow_mind.current.AddSpell(/obj/effect/proc_holder/spell/wizard/targeted/shadowling_hatch)
|
||||
shadow_mind.current.AddSpell(/obj/effect/proc_holder/spell/wizard/targeted/enthrall)
|
||||
shadow_mind.AddSpell(new /obj/effect/proc_holder/spell/wizard/targeted/shadowling_hatch)
|
||||
shadow_mind.AddSpell(new /obj/effect/proc_holder/spell/wizard/targeted/enthrall)
|
||||
spawn(0)
|
||||
shadow_mind.current.add_language("Shadowling Hivemind")
|
||||
update_shadow_icons_added(shadow_mind)
|
||||
@@ -152,9 +152,9 @@ Made by Xhuis
|
||||
update_shadow_icons_added(new_thrall_mind)
|
||||
new_thrall_mind.current.attack_log += "\[[time_stamp()]\] <span class='danger'>Became a thrall</span>"
|
||||
new_thrall_mind.current.add_language("Shadowling Hivemind")
|
||||
new_thrall_mind.current.AddSpell(/obj/effect/proc_holder/spell/wizard/targeted/lesser_glare)
|
||||
new_thrall_mind.current.AddSpell(/obj/effect/proc_holder/spell/wizard/targeted/lesser_shadow_walk)
|
||||
//new_thrall_mind.current.AddSpell(/obj/effect/proc_holder/spell/wizard/targeted/thrall_vision) //Uncomment when vision code is unfucked.
|
||||
new_thrall_mind.current.AddSpell(new /obj/effect/proc_holder/spell/wizard/targeted/lesser_glare)
|
||||
new_thrall_mind.current.AddSpell(new /obj/effect/proc_holder/spell/wizard/targeted/lesser_shadow_walk)
|
||||
//new_thrall_mind.current.AddSpell(new /obj/effect/proc_holder/spell/wizard/targeted/thrall_vision) //Uncomment when vision code is unfucked.
|
||||
new_thrall_mind.current << "<span class='shadowling'><b>You see the truth. Reality has been torn away and you realize what a fool you've been.</b></span>"
|
||||
new_thrall_mind.current << "<span class='shadowling'><b>The shadowlings are your masters.</b> Serve them above all else and ensure they complete their goals.</span>"
|
||||
new_thrall_mind.current << "<span class='shadowling'>You may not harm other thralls or the shadowlings. However, you do not need to obey other thralls.</span>"
|
||||
@@ -168,10 +168,10 @@ Made by Xhuis
|
||||
/datum/game_mode/proc/remove_thrall(datum/mind/thrall_mind, var/kill = 0)
|
||||
if(!istype(thrall_mind) || !(thrall_mind in thralls) || !isliving(thrall_mind.current))
|
||||
return 0 //If there is no mind, the mind isn't a thrall, or the mind's mob isn't alive, return
|
||||
update_shadow_icons_removed(thrall_mind)
|
||||
thralls.Remove(thrall_mind)
|
||||
thrall_mind.current.attack_log += "\[[time_stamp()]\] <span class='danger'>Dethralled</span>"
|
||||
thrall_mind.special_role = null
|
||||
update_shadow_icons_removed(thrall_mind)
|
||||
thrall_mind.remove_spell(/obj/effect/proc_holder/spell/wizard/targeted/lesser_glare)
|
||||
thrall_mind.remove_spell(/obj/effect/proc_holder/spell/wizard/targeted/lesser_shadow_walk)
|
||||
//thrall_mind.remove_spell(/obj/effect/proc_holder/spell/targeted/thrall_vision) //uncomment when vision code is unfucked.
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
panel = "Shadowling Abilities"
|
||||
charge_max = 300
|
||||
clothes_req = 0
|
||||
action_icon_state = "glare"
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/targeted/glare/cast(list/targets)
|
||||
for(var/mob/living/carbon/human/target in targets)
|
||||
@@ -34,6 +35,7 @@
|
||||
panel = "Thrall Abilities"
|
||||
charge_max = 450
|
||||
clothes_req = 0
|
||||
action_icon_state = "glare"
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/targeted/lesser_glare/cast(list/targets)
|
||||
for(var/mob/living/carbon/human/target in targets)
|
||||
@@ -65,13 +67,14 @@
|
||||
clothes_req = 0
|
||||
range = 5
|
||||
var/blacklisted_lights = list(/obj/item/device/flashlight/flare, /obj/item/device/flashlight/slime)
|
||||
action_icon_state = "veil"
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/aoe_turf/veil/proc/extinguishItem(var/obj/item/I) //WARNING NOT SUFFICIENT TO EXTINGUISH AN ITEM HELD BY A MOB
|
||||
if(istype(I, /obj/item/device/flashlight))
|
||||
var/obj/item/device/flashlight/F = I
|
||||
if(F.on)
|
||||
if(is_type_in_list(I, blacklisted_lights))
|
||||
I.visible_message("<span class='danger'>[I] dims slightly, before the shadows around it scatter.</span>")
|
||||
I.visible_message("<span class='danger'>[I] dims slightly before scattering the shadows around it.</span>")
|
||||
return
|
||||
F.on = 0
|
||||
F.update_brightness()
|
||||
@@ -125,6 +128,7 @@
|
||||
clothes_req = 0
|
||||
range = -1
|
||||
include_user = 1
|
||||
action_icon_state = "shadow_walk"
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/targeted/shadow_walk/cast(list/targets)
|
||||
for(var/mob/living/user in targets)
|
||||
@@ -149,6 +153,7 @@
|
||||
clothes_req = 0
|
||||
range = -1
|
||||
include_user = 1
|
||||
action_icon_state = "shadow_walk"
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/targeted/lesser_shadow_walk/cast(list/targets)
|
||||
for(var/mob/living/user in targets)
|
||||
@@ -199,6 +204,7 @@
|
||||
range = 5
|
||||
charge_max = 1200
|
||||
clothes_req = 0
|
||||
action_icon_state = "icy_veins"
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/aoe_turf/flashfreeze/cast(list/targets)
|
||||
usr << "<span class='shadowling'>You freeze the nearby air.</span>"
|
||||
@@ -230,6 +236,7 @@
|
||||
clothes_req = 0
|
||||
range = 1 //Adjacent to user
|
||||
var/enthralling = 0
|
||||
action_icon_state = "enthrall"
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/targeted/enthrall/cast(list/targets)
|
||||
var/mob/living/carbon/human/user = usr
|
||||
@@ -319,6 +326,7 @@
|
||||
var/screech_acquired
|
||||
var/drainLifeAcquired
|
||||
var/reviveThrallAcquired
|
||||
action_icon_state = "collective_mind"
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/targeted/collective_mind/cast(list/targets)
|
||||
for(var/mob/living/user in targets)
|
||||
@@ -372,7 +380,7 @@
|
||||
M.mind.spell_list -= CM
|
||||
qdel(CM)
|
||||
M.mind.remove_spell(/obj/effect/proc_holder/spell/wizard/targeted/shadowling_hatch)
|
||||
M.AddSpell(/obj/effect/proc_holder/spell/wizard/targeted/shadowling_ascend)
|
||||
M.mind.AddSpell(new /obj/effect/proc_holder/spell/wizard/targeted/shadowling_ascend)
|
||||
if(M == usr)
|
||||
M << "<span class='shadowling'><i>You project this power to the rest of the shadowlings.</i></span>"
|
||||
else
|
||||
@@ -388,6 +396,7 @@
|
||||
clothes_req = 0
|
||||
range = -1
|
||||
include_user = 1
|
||||
action_icon_state = "black_smoke"
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/targeted/blindness_smoke/cast(list/targets) //Extremely hacky
|
||||
for(var/mob/living/user in targets)
|
||||
@@ -438,6 +447,7 @@ datum/reagent/shadowling_blindness_smoke/on_mob_life(var/mob/living/M as mob)
|
||||
range = 7
|
||||
charge_max = 300
|
||||
clothes_req = 0
|
||||
action_icon_state = "screech"
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/aoe_turf/unearthly_screech/cast(list/targets)
|
||||
usr.audible_message("<span class='warning'><b>[usr] lets out a horrible scream!</b></span>")
|
||||
@@ -458,7 +468,7 @@ datum/reagent/shadowling_blindness_smoke/on_mob_life(var/mob/living/M as mob)
|
||||
M.ear_damage += 3
|
||||
else if(issilicon(target))
|
||||
var/mob/living/silicon/S = target
|
||||
S << "<span class='warning'><b>ERROR $!(@ ERROR )#^! SENSOR OVERLOAD \[$(!@#</b></span>"
|
||||
S << "<span class='warning'><b>ERROR $!(@ ERROR )#^! SENSORY OVERLOAD \[$(!@#</b></span>"
|
||||
S << 'sound/misc/interference.ogg'
|
||||
playsound(S, 'sound/machines/warning-buzzer.ogg', 50, 1)
|
||||
var/datum/effect/effect/system/spark_spread/sp = new /datum/effect/effect/system/spark_spread
|
||||
@@ -479,12 +489,15 @@ datum/reagent/shadowling_blindness_smoke/on_mob_life(var/mob/living/M as mob)
|
||||
clothes_req = 0
|
||||
var/targetsDrained
|
||||
var/list/nearbyTargets
|
||||
action_icon_state = "drain_life"
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/aoe_turf/drainLife/cast(list/targets, var/mob/living/carbon/human/U = usr)
|
||||
targetsDrained = 0
|
||||
nearbyTargets = list()
|
||||
for(var/turf/T in targets)
|
||||
for(var/mob/living/carbon/M in T.contents)
|
||||
if(M == src)
|
||||
continue
|
||||
targetsDrained++
|
||||
nearbyTargets.Add(M)
|
||||
if(!targetsDrained)
|
||||
@@ -514,6 +527,7 @@ datum/reagent/shadowling_blindness_smoke/on_mob_life(var/mob/living/M as mob)
|
||||
clothes_req = 0
|
||||
include_user = 0
|
||||
var/list/thralls_in_world = list()
|
||||
action_icon_state = "revive_thrall"
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/targeted/reviveThrall/cast(list/targets)
|
||||
for(var/mob/living/carbon/human/thrallToRevive in targets)
|
||||
@@ -531,15 +545,15 @@ datum/reagent/shadowling_blindness_smoke/on_mob_life(var/mob/living/M as mob)
|
||||
if(ghost)
|
||||
ghost << "<span class='ghostalert'>Your masters are resuscitating you! Return to your corpse if you wish to be brought to life.</span> (Verbs -> Ghost -> Re-enter corpse)"
|
||||
ghost << 'sound/effects/genetics.ogg'
|
||||
if(!do_mob(usr, thrallToRevive, 100))
|
||||
if(!do_mob(usr, thrallToRevive, 30))
|
||||
usr << "<span class='warning'>Your concentration snaps. The flow of energy ebbs.</span>"
|
||||
charge_counter= charge_max
|
||||
return
|
||||
usr << "<span class='shadowling'><b><i>You release a massive surge of energy into [thrallToRevive]!</b></i></span>"
|
||||
usr << "<span class='shadowling'><b><i>You release a massive surge of power into [thrallToRevive]!</b></i></span>"
|
||||
usr.visible_message("<span class='boldannounce'><i>Red lightning surges from [usr]'s hands into [thrallToRevive]'s chest!</i></span>")
|
||||
playsound(thrallToRevive, 'sound/weapons/Egloves.ogg', 50, 1)
|
||||
playsound(thrallToRevive, 'sound/machines/defib_zap.ogg', 50, 1)
|
||||
sleep(20)
|
||||
sleep(10)
|
||||
thrallToRevive.revive()
|
||||
thrallToRevive.visible_message("<span class='boldannounce'>[thrallToRevive] draws in a huge breath, blinding violet light shining from their eyes.</span>", \
|
||||
"<span class='shadowling'><b><i>You have returned. One of your masters has brought you from the darkness beyond.</b></i></span>")
|
||||
@@ -556,6 +570,7 @@ datum/reagent/shadowling_blindness_smoke/on_mob_life(var/mob/living/M as mob)
|
||||
range = 7
|
||||
charge_max = 0
|
||||
clothes_req = 0
|
||||
action_icon_state = "annihilate"
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/targeted/annihilate/cast(list/targets)
|
||||
var/mob/living/simple_animal/ascendant_shadowling/SHA = usr
|
||||
@@ -585,6 +600,7 @@ datum/reagent/shadowling_blindness_smoke/on_mob_life(var/mob/living/M as mob)
|
||||
range = 7
|
||||
charge_max = 0
|
||||
clothes_req = 0
|
||||
action_icon_state = "enthrall"
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/targeted/hypnosis/cast(list/targets)
|
||||
var/mob/living/simple_animal/ascendant_shadowling/SHA = usr
|
||||
@@ -627,6 +643,7 @@ datum/reagent/shadowling_blindness_smoke/on_mob_life(var/mob/living/M as mob)
|
||||
include_user = 1
|
||||
charge_max = 15
|
||||
clothes_req = 0
|
||||
action_icon_state = "shadow_walk"
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/targeted/shadowling_phase_shift/cast(list/targets)
|
||||
var/mob/living/simple_animal/ascendant_shadowling/SHA = usr
|
||||
@@ -645,37 +662,33 @@ datum/reagent/shadowling_blindness_smoke/on_mob_life(var/mob/living/M as mob)
|
||||
|
||||
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/aoe_turf/glacial_blast
|
||||
name = "Glacial Blast"
|
||||
desc = "Extremely empowered version of Icy Veins."
|
||||
/obj/effect/proc_holder/spell/wizard/aoe_turf/ascendant_storm
|
||||
name = "Lightning Storm"
|
||||
desc = "Shocks everyone nearby."
|
||||
panel = "Ascendant"
|
||||
range = 5
|
||||
range = 6
|
||||
charge_max = 100
|
||||
clothes_req = 0
|
||||
action_icon_state = "lightning_storm"
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/aoe_turf/glacial_blast/cast(list/targets)
|
||||
/obj/effect/proc_holder/spell/wizard/aoe_turf/ascendant_storm/cast(list/targets)
|
||||
var/mob/living/simple_animal/ascendant_shadowling/SHA = usr
|
||||
if(SHA.phasing)
|
||||
usr << "<span class='warning'>You are not in the same plane of existence. Unphase first.</span>"
|
||||
charge_counter = charge_max
|
||||
return
|
||||
|
||||
usr << "<span class='shadowling'>You freeze the nearby air.</span>"
|
||||
playsound(usr.loc, 'sound/effects/ghost2.ogg', 100, 1)
|
||||
usr.visible_message("<span class='warning'><b>A massive ball of lightning appears in [usr]'s hands and flares out!</b></span>", \
|
||||
"<span class='shadowling'>You conjure a ball of lightning and release it.</span>")
|
||||
|
||||
for(var/turf/T in targets)
|
||||
for(var/mob/living/carbon/human/target in T.contents)
|
||||
if(is_shadow_or_thrall(target))
|
||||
if(target == usr) //No message for the user, of course
|
||||
continue
|
||||
else
|
||||
target << "<span class='danger'>You feel a blast of paralyzingly cold air wrap around you and flow past, but you are unaffected!</span>"
|
||||
continue
|
||||
target << "<span class='userdanger'>You are hit by a blast of cold unlike anything you have ever felt. Your limbs instantly lock in place and you feel frost burns across your body!</span>"
|
||||
target.Weaken(15)
|
||||
if(target.bodytemperature)
|
||||
target.bodytemperature -= INFINITY //:^)
|
||||
target.take_organ_damage(0,80)
|
||||
continue
|
||||
target << "<span class='userdanger'>You are struck by a bolt of lightning!</span>"
|
||||
playsound(target, 'sound/effects/eleczap.ogg', 50, 1)
|
||||
target.electrocute_act(80, "lightning bolt")
|
||||
usr.Beam(target,icon_state="red_lightning",icon='icons/effects/effects.dmi',time=1)
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/targeted/shadowlingAscendantTransmit
|
||||
name = "Ascendant Broadcast"
|
||||
@@ -685,10 +698,11 @@ datum/reagent/shadowling_blindness_smoke/on_mob_life(var/mob/living/M as mob)
|
||||
clothes_req = 0
|
||||
range = -1
|
||||
include_user = 1
|
||||
action_icon_state = "transmit"
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/targeted/shadowlingAscendantTransmit/cast(list/targets)
|
||||
for(var/mob/living/user in targets)
|
||||
var/text = stripped_input(user, "What do you want to say to everything on and near [world.name]?.", "Transmit to World", "")
|
||||
var/text = stripped_input(user, "What do you want to say to everything on and near [station_name()]?.", "Transmit to World", "")
|
||||
if(!text)
|
||||
return
|
||||
world << "<font size=4><span class='shadowling'><b>\"[text]\"</font></span>"
|
||||
|
||||
@@ -8,6 +8,7 @@ var/list/possibleShadowlingNames = list("U'ruan", "Y`shej", "Nex", "Hel-uae", "N
|
||||
clothes_req = 0
|
||||
range = -1
|
||||
include_user = 1
|
||||
action_icon_state = "hatch"
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/targeted/shadowling_hatch/cast(list/targets)
|
||||
if(usr.stat || !ishuman(usr) || !usr)
|
||||
@@ -24,10 +25,8 @@ var/list/possibleShadowlingNames = list("U'ruan", "Y`shej", "Nex", "Hel-uae", "N
|
||||
H.visible_message("<span class='warning'>[H]'s things suddenly slip off. They hunch over and vomit up a copious amount of purple goo which begins to shape around them!</span>", \
|
||||
"<span class='shadowling'>You remove any equipment which would hinder your hatching and begin regurgitating the resin which will protect you.</span>")
|
||||
|
||||
for(var/obj/item/I in H) //drops all items
|
||||
var/obj/item/organ/O = I
|
||||
if(!istype(O) || O.owner != src)
|
||||
H.unEquip(I)
|
||||
for(var/obj/item/I in H.contents - (H.organs | H.internal_organs)) //drops all items except organs
|
||||
H.unEquip(I)
|
||||
|
||||
sleep(50)
|
||||
var/turf/simulated/floor/F
|
||||
@@ -91,12 +90,13 @@ var/list/possibleShadowlingNames = list("U'ruan", "Y`shej", "Nex", "Hel-uae", "N
|
||||
|
||||
sleep(10)
|
||||
H << "<span class='shadowling'><b><i>Your powers are awoken. You may now live to your fullest extent. Remember your goal. Cooperate with your thralls and allies.</b></i></span>"
|
||||
H.AddSpell(/obj/effect/proc_holder/spell/wizard/targeted/shadowling_hatch)
|
||||
H.AddSpell(/obj/effect/proc_holder/spell/wizard/targeted/glare)
|
||||
H.AddSpell(/obj/effect/proc_holder/spell/wizard/aoe_turf/veil)
|
||||
H.AddSpell(/obj/effect/proc_holder/spell/wizard/targeted/shadow_walk)
|
||||
H.AddSpell(/obj/effect/proc_holder/spell/wizard/aoe_turf/flashfreeze)
|
||||
H.AddSpell(/obj/effect/proc_holder/spell/wizard/targeted/collective_mind)
|
||||
H.AddSpell(new /obj/effect/proc_holder/spell/wizard/targeted/shadowling_ascend)
|
||||
H.AddSpell(new /obj/effect/proc_holder/spell/wizard/targeted/glare)
|
||||
H.AddSpell(new /obj/effect/proc_holder/spell/wizard/aoe_turf/veil)
|
||||
H.AddSpell(new /obj/effect/proc_holder/spell/wizard/targeted/shadow_walk)
|
||||
H.AddSpell(new /obj/effect/proc_holder/spell/wizard/aoe_turf/flashfreeze)
|
||||
H.AddSpell(new /obj/effect/proc_holder/spell/wizard/targeted/collective_mind)
|
||||
H.mind.remove_spell(src)
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/targeted/shadowling_ascend
|
||||
name = "Ascend"
|
||||
@@ -106,6 +106,7 @@ var/list/possibleShadowlingNames = list("U'ruan", "Y`shej", "Nex", "Hel-uae", "N
|
||||
clothes_req = 0
|
||||
range = -1
|
||||
include_user = 1
|
||||
action_icon_state = "ascend"
|
||||
|
||||
/obj/effect/proc_holder/spell/wizard/targeted/shadowling_ascend/cast(list/targets)
|
||||
if(usr.stat || !ishuman(usr) || !usr)
|
||||
@@ -153,14 +154,14 @@ var/list/possibleShadowlingNames = list("U'ruan", "Y`shej", "Nex", "Hel-uae", "N
|
||||
for(var/obj/effect/proc_holder/spell/S in H.mind.spell_list)
|
||||
if(S == src) continue
|
||||
H.mind.remove_spell(S)
|
||||
H.AddSpell(/obj/effect/proc_holder/spell/wizard/targeted/annihilate)
|
||||
H.AddSpell(/obj/effect/proc_holder/spell/wizard/targeted/hypnosis)
|
||||
H.AddSpell(/obj/effect/proc_holder/spell/wizard/targeted/shadowling_phase_shift)
|
||||
H.AddSpell(/obj/effect/proc_holder/spell/wizard/aoe_turf/glacial_blast)
|
||||
H.AddSpell(/obj/effect/proc_holder/spell/wizard/targeted/shadowlingAscendantTransmit)
|
||||
H.mind.transfer_to(A)
|
||||
A.name = H.real_name
|
||||
A.languages = H.languages
|
||||
A.AddSpell(new /obj/effect/proc_holder/spell/wizard/targeted/annihilate)
|
||||
A.AddSpell(new /obj/effect/proc_holder/spell/wizard/targeted/hypnosis)
|
||||
A.AddSpell(new /obj/effect/proc_holder/spell/wizard/targeted/shadowling_phase_shift)
|
||||
A.AddSpell(new /obj/effect/proc_holder/spell/wizard/aoe_turf/ascendant_storm)
|
||||
A.AddSpell(new /obj/effect/proc_holder/spell/wizard/targeted/shadowlingAscendantTransmit)
|
||||
if(A.real_name)
|
||||
A.real_name = H.real_name
|
||||
H.invisibility = 60 //This is pretty bad, but is also necessary for the shuttle call to function properly
|
||||
|
||||
@@ -251,14 +251,13 @@
|
||||
M.changeNext_move(CLICK_CD_MELEE)
|
||||
M.do_attack_animation(src)
|
||||
if(M.environment_smash >= 2)
|
||||
if(istype(src, /turf/simulated/wall/r_wall))
|
||||
if(M.environment_smash == 3)
|
||||
dismantle_wall(1)
|
||||
M << "<span class='info'>You smash through the wall.</span>"
|
||||
else
|
||||
M << text("\blue You smash against the wall.")
|
||||
take_damage(rand(25, 75))
|
||||
return
|
||||
if(M.environment_smash == 3)
|
||||
dismantle_wall(1)
|
||||
M << "<span class='info'>You smash through the wall.</span>"
|
||||
else
|
||||
M << text("<span class='notice'>You smash against the wall.</span>")
|
||||
take_damage(rand(25, 75))
|
||||
return
|
||||
|
||||
M << "\blue You push the wall but nothing happens!"
|
||||
return
|
||||
|
||||
@@ -767,7 +767,7 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc
|
||||
if(isturf(loc))
|
||||
var/turf/T = loc
|
||||
light_amount = T.get_lumcount()*10
|
||||
if(light_amount > species.light_dam) //if there's enough light, start dying
|
||||
if(light_amount > species.light_dam && !incorporeal_move) //if there's enough light, start dying
|
||||
if(species.light_effect_amp)
|
||||
adjustFireLoss(5) //This gets doubled by Shadowling's innate fire weakness, so it ends up being 10.
|
||||
else
|
||||
@@ -1797,9 +1797,9 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc
|
||||
holder.icon_state = "mutineer"
|
||||
if("mutineer")
|
||||
holder.icon_state = "mutineer"
|
||||
if("Shadowling")
|
||||
if("shadowling")
|
||||
holder.icon_state = "hudshadowling"
|
||||
if("Shadowling Thrall")
|
||||
if("shadowling thrall")
|
||||
holder.icon_state = "hudshadowlingthrall"
|
||||
|
||||
hud_list[SPECIALROLE_HUD] = holder
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 271 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 42 KiB |
Reference in New Issue
Block a user