mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-02 04:52:10 +00:00
## About The Pull Request This takes all the gib related procs: - `gib()` - `spawn_gibs()` - `spill_organs()` - `spread_bodyparts()` And adds heavy documentation that communicates what the procs are used for and how the different bitflags affect them. The difference is noticeable: `gib(TRUE, FALSE, FALSE, null)` vs `gib(DROP_ORGANS|DROP_BODYPARTS)` The code is now much more legible which is important considering it's used in a lot of places! Another robust change, is that we had several places in the code where there were double negatives like so: ``` /mob/living/carbon/spill_organs(no_brain, no_organs, no_bodyparts) if(!no_bodyparts) // DOUBLE NEGATIVES ARE BAD M'KAY?!? // do stuff here ``` This is a mindfuck to untangle. I inverted a lot of these parts so we don't lose our sanity. Last thing that was changed was a big `if()` loop in the `spill_organ()` proc. This was refactored to just be a simple `for` loop with `continue` statements where we needed to skip enabled bitflags. It's now shorter and cleaner than before. The only slight gameplay change this affects is that gibbing a mob now guarantees to drop all items unless the `DROP_ITEMS` bitflag is deliberately omitted. Some places like admin gib self, we don't want this to happen. ## Why It's Good For The Game Gib code is very old. (~15 years) People kept adding more arguments to the procs when it should have been a bitflag initially. By doing it this way, there is more flexibility and readability when it comes to adding new code in the future. ## Changelog 🆑 refactor: Refactor gib code to be more robust. qol: Gibbing a mob will result in all items being dropped instead of getting deleted. There are a few exceptions (like admin gib self) where this will not take place. /🆑
90 lines
4.0 KiB
Plaintext
90 lines
4.0 KiB
Plaintext
// Embedded signaller used in anomalies.
|
|
/obj/item/assembly/signaler/anomaly
|
|
name = "anomaly core"
|
|
desc = "The neutralized core of an anomaly. It'd probably be valuable for research."
|
|
icon_state = "anomaly_core"
|
|
inhand_icon_state = "electronic"
|
|
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi'
|
|
resistance_flags = FIRE_PROOF
|
|
var/anomaly_type = /obj/effect/anomaly
|
|
|
|
/obj/item/assembly/signaler/anomaly/receive_signal(datum/signal/signal)
|
|
if(!signal)
|
|
return FALSE
|
|
if(signal.data["code"] != code)
|
|
return FALSE
|
|
if(suicider)
|
|
manual_suicide(suicider)
|
|
for(var/obj/effect/anomaly/A in get_turf(src))
|
|
A.anomalyNeutralize()
|
|
return TRUE
|
|
|
|
/obj/item/assembly/signaler/anomaly/manual_suicide(mob/living/carbon/user)
|
|
user.visible_message(span_suicide("[user]'s [src] is reacting to the radio signal, warping [user.p_their()] body!"))
|
|
user.set_suicide(TRUE)
|
|
user.gib(DROP_ALL_REMAINS)
|
|
|
|
/obj/item/assembly/signaler/anomaly/attack_self()
|
|
return
|
|
|
|
/obj/item/assembly/signaler/anomaly/attackby(obj/item/I, mob/user, params)
|
|
if(I.tool_behaviour == TOOL_ANALYZER)
|
|
to_chat(user, span_notice("Analyzing... [src]'s stabilized field is fluctuating along frequency [format_frequency(frequency)], code [code]."))
|
|
return ..()
|
|
|
|
//Anomaly cores
|
|
/obj/item/assembly/signaler/anomaly/pyro
|
|
name = "\improper pyroclastic anomaly core"
|
|
desc = "The neutralized core of a pyroclastic anomaly. It feels warm to the touch. It'd probably be valuable for research."
|
|
icon_state = "pyro_core"
|
|
anomaly_type = /obj/effect/anomaly/pyro
|
|
|
|
/obj/item/assembly/signaler/anomaly/grav
|
|
name = "\improper gravitational anomaly core"
|
|
desc = "The neutralized core of a gravitational anomaly. It feels much heavier than it looks. It'd probably be valuable for research."
|
|
icon_state = "grav_core"
|
|
anomaly_type = /obj/effect/anomaly/grav
|
|
|
|
/obj/item/assembly/signaler/anomaly/flux
|
|
name = "\improper flux anomaly core"
|
|
desc = "The neutralized core of a flux anomaly. Touching it makes your skin tingle. It'd probably be valuable for research."
|
|
icon_state = "flux_core"
|
|
anomaly_type = /obj/effect/anomaly/flux
|
|
|
|
/obj/item/assembly/signaler/anomaly/bluespace
|
|
name = "\improper bluespace anomaly core"
|
|
desc = "The neutralized core of a bluespace anomaly. It keeps phasing in and out of view. It'd probably be valuable for research."
|
|
icon_state = "anomaly_core"
|
|
anomaly_type = /obj/effect/anomaly/bluespace
|
|
|
|
/obj/item/assembly/signaler/anomaly/vortex
|
|
name = "\improper vortex anomaly core"
|
|
desc = "The neutralized core of a vortex anomaly. It won't sit still, as if some invisible force is acting on it. It'd probably be valuable for research."
|
|
icon_state = "vortex_core"
|
|
anomaly_type = /obj/effect/anomaly/bhole
|
|
|
|
/obj/item/assembly/signaler/anomaly/bioscrambler
|
|
name = "\improper bioscrambler anomaly core"
|
|
desc = "The neutralized core of a bioscrambler anomaly. It's squirming, as if moving. It'd probably be valuable for research."
|
|
icon_state = "bioscrambler_core"
|
|
anomaly_type = /obj/effect/anomaly/bioscrambler
|
|
|
|
/obj/item/assembly/signaler/anomaly/hallucination
|
|
name = "\improper hallucination anomaly core"
|
|
desc = "The neutralized core of a hallucination anomaly. It seems to be moving, but it's probably your imagination. It'd probably be valuable for research."
|
|
icon_state = "hallucination_core"
|
|
anomaly_type = /obj/effect/anomaly/hallucination
|
|
|
|
/obj/item/assembly/signaler/anomaly/dimensional
|
|
name = "\improper dimensional anomaly core"
|
|
desc = "The neutralized core of a dimensional anomaly. Objects reflected on its surface don't look quite right. It'd probably be valuable for research."
|
|
icon_state = "dimensional_core"
|
|
anomaly_type = /obj/effect/anomaly/dimensional
|
|
|
|
/obj/item/assembly/signaler/anomaly/ectoplasm
|
|
name = "\improper ectoplasm anomaly core"
|
|
desc = "The neutralized core of an ectoplasmic anomaly. When you hold it close, you can hear faint murmuring from inside. It'd probably be valuable for research."
|
|
icon_state = "dimensional_core"
|
|
anomaly_type = /obj/effect/anomaly/ectoplasm
|