mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 19:44:09 +01:00
Pod Fixes and Some Runtime Fixes
Fixes sending pod pilots to the void when the pod explodes/is destroyed, as well as giving them damage warnings, just like passengers get. Also fixes it so if a guardian traps something, then dies, doesn't runtime. Lastly, fixes it so there isn't a randomly runtime from opening a critter crate, as well as cleaning up a little snowflake code, thanks to Crazylemon.
This commit is contained in:
@@ -629,7 +629,8 @@
|
||||
spawn(600)
|
||||
if(src)
|
||||
stored_obj.loc = get_turf(src.loc)
|
||||
to_chat(spawner, "<span class='danger'><B>Failure! Your trap on \the [stored_obj] didn't catch anyone this time.</B></span>")
|
||||
if(spawner)
|
||||
to_chat(spawner, "<span class='danger'><B>Failure! Your trap on \the [stored_obj] didn't catch anyone this time.</B></span>")
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/guardian_bomb/proc/detonate(var/mob/living/user)
|
||||
|
||||
@@ -25,21 +25,12 @@
|
||||
for(var/i = 1, i <= amount, i++)
|
||||
new content_mob(loc)
|
||||
already_opened = 1
|
||||
..()
|
||||
. = ..()
|
||||
|
||||
/obj/structure/closet/critter/close()
|
||||
..()
|
||||
return 1
|
||||
|
||||
/obj/structure/closet/critter/attack_hand(mob/user as mob)
|
||||
src.add_fingerprint(user)
|
||||
|
||||
if(src.loc == user.loc)
|
||||
to_chat(user, "<span class='notice'>It won't budge!</span>")
|
||||
toggle()
|
||||
else
|
||||
toggle()
|
||||
|
||||
/obj/structure/closet/critter/corgi
|
||||
name = "corgi crate"
|
||||
content_mob = /mob/living/simple_animal/pet/corgi
|
||||
|
||||
@@ -141,6 +141,9 @@
|
||||
qdel(ion_trail)
|
||||
ion_trail = null
|
||||
occupant_sanity_check()
|
||||
if(pilot)
|
||||
pilot.forceMove(get_turf(src))
|
||||
pilot = null
|
||||
if(passengers)
|
||||
for(var/mob/M in passengers)
|
||||
M.forceMove(get_turf(src))
|
||||
@@ -226,26 +229,36 @@
|
||||
health = max(0, health - damage)
|
||||
var/percentage = (health / initial(health)) * 100
|
||||
occupant_sanity_check()
|
||||
if(passengers && oldhealth > health && percentage <= 25 && percentage > 0)
|
||||
if(passengers | pilot && oldhealth > health && percentage <= 25 && percentage > 0)
|
||||
var/sound/S = sound('sound/effects/engine_alert2.ogg')
|
||||
S.wait = 0 //No queue
|
||||
S.channel = 0 //Any channel
|
||||
S.volume = 50
|
||||
for(var/mob/M in passengers)
|
||||
M << S
|
||||
if(passengers && oldhealth > health && !health)
|
||||
if(pilot)
|
||||
pilot << S
|
||||
if(passengers)
|
||||
for(var/mob/M in passengers)
|
||||
M << S
|
||||
if(passengers | pilot && oldhealth > health && !health)
|
||||
var/sound/S = sound('sound/effects/engine_alert1.ogg')
|
||||
S.wait = 0
|
||||
S.channel = 0
|
||||
S.volume = 50
|
||||
for(var/mob/M in passengers)
|
||||
M << S
|
||||
if(pilot)
|
||||
pilot << S
|
||||
if(passengers)
|
||||
for(var/mob/M in passengers)
|
||||
M << S
|
||||
if(!health)
|
||||
spawn(0)
|
||||
if(pilot)
|
||||
to_chat(pilot, "<span class='userdanger'>Critical damage to the vessel detected, core explosion imminent!</span>")
|
||||
if(passengers)
|
||||
for(var/mob/M in passengers)
|
||||
to_chat(M, "<span class='userdanger'>Critical damage to the vessel detected, core explosion imminent!</span>")
|
||||
for(var/i = 10, i >= 0; --i)
|
||||
if(pilot)
|
||||
to_chat(pilot, "<span class='warning'>[i]</span>")
|
||||
if(passengers)
|
||||
for(var/mob/M in passengers)
|
||||
to_chat(M, "<span class='warning'>[i]</span>")
|
||||
@@ -266,12 +279,13 @@
|
||||
occupant_sanity_check()
|
||||
switch(severity)
|
||||
if(1)
|
||||
for(var/mob/M in passengers)
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H)
|
||||
H.forceMove(get_turf(src))
|
||||
H.ex_act(severity + 1)
|
||||
to_chat(H, "<span class='warning'>You are forcefully thrown from \the [src]!</span>")
|
||||
if(passengers || pilot)
|
||||
for(var/mob/M in passengers | pilot)
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H)
|
||||
H.forceMove(get_turf(src))
|
||||
H.ex_act(severity + 1)
|
||||
to_chat(H, "<span class='warning'>You are forcefully thrown from \the [src]!</span>")
|
||||
qdel(ion_trail)
|
||||
qdel(src)
|
||||
if(2)
|
||||
@@ -283,14 +297,14 @@
|
||||
/obj/spacepod/emp_act(severity)
|
||||
occupant_sanity_check()
|
||||
cargo_hold.emp_act(severity)
|
||||
|
||||
|
||||
if(battery && battery.charge > 0)
|
||||
battery.use((battery.charge / 2) / severity)
|
||||
deal_damage(80 / severity)
|
||||
if(empcounter < (40 / severity))
|
||||
empcounter = 40 / severity
|
||||
processing_objects.Add(src)
|
||||
|
||||
processing_objects.Add(src)
|
||||
|
||||
switch(severity)
|
||||
if(1)
|
||||
if(pilot)
|
||||
|
||||
Reference in New Issue
Block a user