|
27 | 27 | . = ..() |
28 | 28 | RegisterSignal(parent, COMSIG_ATOM_HITBY, PROC_REF(hitby)) |
29 | 29 | RegisterSignal(parent, COMSIG_ATOM_ENTERED, PROC_REF(Entered)) |
| 30 | + RegisterSignal(parent, COMSIG_TURF_MOB_FALL, PROC_REF(kersplash)) |
30 | 31 |
|
31 | 32 | /datum/component/lingering/UnregisterFromParent() |
32 | 33 | UnregisterSignal(parent, COMSIG_ATOM_HITBY) |
33 | 34 | UnregisterSignal(parent, COMSIG_ATOM_ENTERED) |
| 35 | + UnregisterSignal(parent, COMSIG_TURF_MOB_FALL) |
34 | 36 | STOP_PROCESSING(SSobj, src) |
35 | 37 | . = ..() |
36 | 38 |
|
|
49 | 51 | if(!affect_stuff(delta_time)) |
50 | 52 | STOP_PROCESSING(SSobj, src) |
51 | 53 |
|
| 54 | +/datum/component/lingering/proc/kersplash(datum/source, atom/movable/fallen_atom, turf/impacted_turf, levels = 1, impact_flags = NONE) |
| 55 | + fallen_atom.visible_message( |
| 56 | + span_danger("[fallen_atom] plunges into [parent]!"), |
| 57 | + span_userdanger("You plunge into [parent]!") |
| 58 | + ) |
| 59 | + playsound(parent, 'yogstation/sound/effects/splash.ogg', 50, 0) |
| 60 | + if(isliving(fallen_atom)) |
| 61 | + var/mob/living/cannonball = fallen_atom |
| 62 | + cannonball.Knockdown(2 SECONDS) |
| 63 | + return ZIMPACT_CANCEL_DAMAGE |
| 64 | + |
52 | 65 | //////////////////////////////////////////////////////////////////////////////////// |
53 | 66 | //---------------------------------safety check-----------------------------------// |
54 | 67 | //////////////////////////////////////////////////////////////////////////////////// |
|
0 commit comments