diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index 9e4e16f813..6b99cf8318 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -52,12 +52,16 @@ return /** - * Properly removes the component from `parent` and cleans up references - * Setting `force` makes it not check for and remove the component from the parent - * Setting `silent` deletes the component without sending a `COMSIG_COMPONENT_REMOVING` signal - */ + * Properly removes the component from `parent` and cleans up references + * + * Arguments: + * * force - makes it not check for and remove the component from the parent + * * silent - deletes the component without sending a [COMSIG_COMPONENT_REMOVING] signal + */ /datum/component/Destroy(force=FALSE, silent=FALSE) - if(!force && parent) + if(!parent) + return ..() + if(!force) _RemoveFromParent() if(!silent) SEND_SIGNAL(parent, COMSIG_COMPONENT_REMOVING, src) diff --git a/code/datums/components/acid.dm b/code/datums/components/acid.dm index 2e3784dc97..39e9b2cb63 100644 --- a/code/datums/components/acid.dm +++ b/code/datums/components/acid.dm @@ -38,9 +38,11 @@ /datum/component/acid/Destroy() STOP_PROCESSING(SSprocessing, src) - var/obj/O = parent level = 0 - O.update_overlays() + if(parent) // So, this is how you get runtimes fellas. + UnregisterSignal(parent, list(COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_ATOM_ATTACK_HAND)) // Don't worry about isitem checks, we don't need them. + var/atom/O = parent + O.update_icon(UPDATE_OVERLAYS) return ..() /datum/component/acid/process() diff --git a/code/game/atoms.dm b/code/game/atoms.dm index bc4e1d568e..f107243879 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -603,9 +603,13 @@ //SHOULD_CALL_PARENT(TRUE) return SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_ICON_STATE) -/// Updates the overlays of the atom +/** + * Builds a list of overlays for the atom, this will not apply them. + * If you need to update overlays, use [update_icon(UPDATE_OVERLAYS)], + * This proc is intended to be overridden. + */ /atom/proc/update_overlays() - //SHOULD_CALL_PARENT(TRUE) + SHOULD_CALL_PARENT(TRUE) . = list() SEND_SIGNAL(src, COMSIG_ATOM_UPDATE_OVERLAYS, .) diff --git a/code/game/objects/items/apc_frame.dm b/code/game/objects/items/apc_frame.dm index 3640db2d8a..7e9bea2c5d 100644 --- a/code/game/objects/items/apc_frame.dm +++ b/code/game/objects/items/apc_frame.dm @@ -95,7 +95,7 @@ /obj/item/wallframe/apc/try_build(turf/on_wall, user) if(!..()) return - var/turf/T = get_turf(on_wall) //the user is not where it needs to be. + var/turf/T = get_turf(user) var/area/A = get_area(T) if(A.get_apc()) to_chat(user, "This area already has an APC!") diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 5058060f54..42626c4a3b 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -763,6 +763,8 @@ if(isobj(target)) if(actually_paints) + if(istype(target, /obj/item/canvas)) //dont color our canvas neon green when im trying to paint please + return var/list/hsl = rgb2hsl(hex2num(copytext(paint_color,2,4)),hex2num(copytext(paint_color,4,6)),hex2num(copytext(paint_color,6,8))) var/static/whitelisted = typecacheof(list(/obj/structure/window, /obj/effect/decal/cleanable/crayon, diff --git a/code/game/objects/structures/loot_pile.dm b/code/game/objects/structures/loot_pile.dm index b6249ec1e4..dc3971fdd2 100644 --- a/code/game/objects/structures/loot_pile.dm +++ b/code/game/objects/structures/loot_pile.dm @@ -9,6 +9,7 @@ icon_state = "randompile" density = FALSE anchored = TRUE + max_integrity = 100 var/loot_amount = 5 var/delete_on_depletion = FALSE var/can_use_hands = TRUE diff --git a/html/changelog.html b/html/changelog.html index 4de7aada2a..98f6a77046 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -5,7 +5,7 @@ + + @@ -24,7 +24,7 @@
Traditional Games Space Station 13
- +

Forum | Wiki | Source

@@ -42,11 +42,11 @@
@@ -65,7 +65,10 @@

SandPoot updated:

+

shellspeed1 updated: