From 65fc980b202f50913b17a6d6f0d1880c13ee230a Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Thu, 4 Jun 2015 13:24:12 +0200 Subject: [PATCH 01/11] Stack splitting and cable merging fixes. Split stacks will now keep the same colors. Can now only join cables of the same color together, unless you are a borg. --- code/game/objects/items/stacks/stack.dm | 1 + code/modules/power/cable.dm | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index ab1f767a42..798b93955e 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -252,6 +252,7 @@ var/orig_amount = src.amount if (transfer && src.use(transfer)) var/obj/item/stack/newstack = new src.type(loc, transfer) + newstack.color = color if (prob(transfer/orig_amount * 100)) transfer_fingerprints_to(newstack) if(blood_DNA) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index d73d60926e..3058dc0696 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -613,6 +613,12 @@ obj/structure/cable/proc/cableColor(var/colorC) // Items usable on a cable coil : // - Wirecutters : cut them duh ! // - Cable coil : merge cables +/obj/item/stack/cable_coil/proc/can_merge(var/obj/item/stack/cable_coil/C) + return color == C.color + +/obj/item/stack/cable_coil/cyborg/can_merge() + return 1 + /obj/item/stack/cable_coil/attackby(obj/item/weapon/W, mob/user) ..() if( istype(W, /obj/item/weapon/wirecutters) && src.get_amount() > 1) @@ -623,6 +629,11 @@ obj/structure/cable/proc/cableColor(var/colorC) return else if(istype(W, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/C = W + + if(!can_merge(C)) + user << "These coils do not go together." + return + if(C.get_amount() >= get_max_amount()) user << "The coil is too long, you cannot add any more cable to it." return From 6aaacd6063ac70e51de66cec0997963f78bac2fb Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Thu, 4 Jun 2015 13:27:44 +0200 Subject: [PATCH 02/11] Changelog entry. --- html/changelogs/PsiOmegaDelta-StackFixes.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/PsiOmegaDelta-StackFixes.yml diff --git a/html/changelogs/PsiOmegaDelta-StackFixes.yml b/html/changelogs/PsiOmegaDelta-StackFixes.yml new file mode 100644 index 0000000000..a21e4c610b --- /dev/null +++ b/html/changelogs/PsiOmegaDelta-StackFixes.yml @@ -0,0 +1,6 @@ +author: PsiOmegaDelta +delete-after: True + +changes: + - bugfix: "Split stacks no longer lose their coloring." + - tweak: "Can no longer merge cables of different colors." From 2373eb4bdd454c21e830c7878d16b6ee4d8883d8 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Thu, 4 Jun 2015 14:40:45 +0200 Subject: [PATCH 03/11] Fixes #9664. Datum pool no longer creates a new object just for the sake of it when initializing pool lists. Also bandaids an issue where water could be qdeled while being sprayed and reagents nulled, because someone calls spawn() qdel in new. Datum pool now also adds excess pool objects on the trash pile instead of calling del directly. --- code/__HELPERS/datum_pool.dm | 7 +++++-- code/game/objects/effects/chem/water.dm | 21 ++++++++++++--------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/code/__HELPERS/datum_pool.dm b/code/__HELPERS/datum_pool.dm index 79970faf7b..5c13c0d8ba 100644 --- a/code/__HELPERS/datum_pool.dm +++ b/code/__HELPERS/datum_pool.dm @@ -29,7 +29,7 @@ var/global/list/GlobalPool = list() if(!D) // So the GC knows we're pooling this type. if(!GlobalPool[get_type]) - GlobalPool[get_type] = list(new get_type) + GlobalPool[get_type] = list() if(islist(second_arg)) return new get_type (arglist(second_arg)) else @@ -58,7 +58,10 @@ var/global/list/GlobalPool = list() #ifdef DEBUG_ATOM_POOL world << text("DEBUG_DATUM_POOL: PlaceInPool([]) exceeds []. Discarding.", D.type, ATOM_POOL_COUNT) #endif - del(D) + if(garbage_collector) + garbage_collector.AddTrash(D) + else + del(D) return if(D in GlobalPool[D.type]) diff --git a/code/game/objects/effects/chem/water.dm b/code/game/objects/effects/chem/water.dm index 4ae012cc9e..9f89842f0c 100644 --- a/code/game/objects/effects/chem/water.dm +++ b/code/game/objects/effects/chem/water.dm @@ -17,17 +17,20 @@ if(!target) return for(var/i = 1 to step_count) + if(!loc) + return step_towards(src, target) var/turf/T = get_turf(src) - reagents.touch_turf(T) - var/mob/M = locate() in T - if(M) - reagents.splash_mob(M, reagents.total_volume) - break - for(var/atom/A in T) - reagents.touch(A) - if(T == get_turf(target)) - break + if(T && reagents) + reagents.touch_turf(T) + var/mob/M = locate() in T + if(M) + reagents.splash_mob(M, reagents.total_volume) + break + for(var/atom/A in T) + reagents.touch(A) + if(T == get_turf(target)) + break sleep(delay) sleep(10) qdel(src) From 6fb1ea85e1228cdab1c762025e7b9f979575c1d5 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Thu, 4 Jun 2015 15:18:51 +0200 Subject: [PATCH 04/11] Adds a notice to StaffWho that adminhelps are also sent to IRC. --- code/game/verbs/who.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm index e96bc3b4da..d877001fad 100644 --- a/code/game/verbs/who.dm +++ b/code/game/verbs/who.dm @@ -98,6 +98,8 @@ else if (R_MOD & C.holder.rights || R_MENTOR & C.holder.rights) modmsg += "\t[C] is a [C.holder.rank]\n" num_mods_online++ - + if(config.admin_irc) + src << "Adminhelps are also sent to IRC. If no admins are available in game try anyway and an admin on IRC may see it and respond." msg = "Current Admins ([num_admins_online]):\n" + msg + "\n Current [config.mods_are_mentors ? "Mentors" : "Moderators"]([num_mods_online]):\n" + modmsg + src << msg From 05b4c97e1a62f99f5f9d406333e44c882d8e8a65 Mon Sep 17 00:00:00 2001 From: Dennok Date: Thu, 4 Jun 2015 16:40:31 +0300 Subject: [PATCH 05/11] fix #9666 up --- code/modules/shieldgen/shield_gen.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/shieldgen/shield_gen.dm b/code/modules/shieldgen/shield_gen.dm index 9f89ede039..544998ce61 100644 --- a/code/modules/shieldgen/shield_gen.dm +++ b/code/modules/shieldgen/shield_gen.dm @@ -214,7 +214,7 @@ for(var/turf/O in covered_turfs) var/obj/effect/energy_field/E = new(O) field.Add(E) - qdel(covered_turfs) + covered_turfs = null for(var/mob/M in view(5,src)) M << "\icon[src] You hear heavy droning start up." From 224cbb41bf022e149fa8e37ad7edb3c95c4676ba Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Thu, 4 Jun 2015 19:32:05 +0200 Subject: [PATCH 06/11] Garbage/qdel changes. Moves atom/Destroy() into atom/movable/Destroy(). Is now a /tg/ copy-paste. Means deleting turfs no longer wipes everything on that turf and that pulling is canceled. qdel no longer willingly accepts lists. --- code/controllers/Processes/garbage.dm | 8 +------- code/game/atoms.dm | 12 ------------ code/game/atoms_movable.dm | 9 ++++++++- 3 files changed, 9 insertions(+), 20 deletions(-) diff --git a/code/controllers/Processes/garbage.dm b/code/controllers/Processes/garbage.dm index 757729dfa6..ade159f1ac 100644 --- a/code/controllers/Processes/garbage.dm +++ b/code/controllers/Processes/garbage.dm @@ -85,14 +85,8 @@ var/list/delayed_garbage = list() /proc/qdel(var/datum/A) if(!A) return - if(istype(A, /list)) - var/list/L = A - for(var/E in L) - qdel(E) - return - if(!istype(A)) - //warning("qdel() passed object of type [A.type]. qdel() can only handle /datum types.") + warning("qdel() passed object of type [A.type]. qdel() can only handle /datum types.") del(A) if(garbage_collector) garbage_collector.dels++ diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 742c6389a9..79a531eb60 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -23,18 +23,6 @@ //Detective Work, used for the duplicate data points kept in the scanners var/list/original_atom -/atom/Destroy() - . = ..() - density = 0 - set_opacity(0) - - if(reagents) - qdel(reagents) - reagents = null - for(var/atom/movable/AM in contents) - qdel(AM) - invisibility = 101 - /atom/proc/assume_air(datum/gas_mixture/giver) return null diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index f86c135da4..95bf4aa94d 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -31,8 +31,15 @@ /atom/movable/Destroy() . = ..() - + if(reagents) + qdel(reagents) + for(var/atom/movable/AM in contents) + qdel(AM) loc = null + if (pulledby) + if (pulledby.pulling == src) + pulledby.pulling = null + pulledby = null /atom/movable/proc/initialize() return From 9ff27dc03840ee753b4dc68fa7afccbdd3b6e53a Mon Sep 17 00:00:00 2001 From: Karolis2011 Date: Thu, 4 Jun 2015 20:48:57 +0300 Subject: [PATCH 07/11] Now when welding sorting pipe, game update it's name --- code/modules/recycling/disposal-construction.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/recycling/disposal-construction.dm b/code/modules/recycling/disposal-construction.dm index c6c00a3dbb..d88d5cb594 100644 --- a/code/modules/recycling/disposal-construction.dm +++ b/code/modules/recycling/disposal-construction.dm @@ -289,6 +289,7 @@ SortP.sortType = sortType SortP.updatedir() SortP.updatedesc() + SortP.updatename() else if(ptype==6) // Disposal bin var/obj/machinery/disposal/P = new /obj/machinery/disposal(src.loc) From 2507a8007bacdd6ba05ebf649844975adda49b06 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Fri, 5 Jun 2015 01:10:15 +0100 Subject: [PATCH 08/11] Comments out a section that requires a single object to be both /mob/living/carbon/human and /obj/item/clothing/head --- code/game/objects/items/weapons/storage/briefcase.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/storage/briefcase.dm b/code/game/objects/items/weapons/storage/briefcase.dm index 0f534ade9e..4193ef281b 100644 --- a/code/game/objects/items/weapons/storage/briefcase.dm +++ b/code/game/objects/items/weapons/storage/briefcase.dm @@ -29,11 +29,14 @@ msg_admin_attack("[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (?)") if (M.stat < 2 && M.health < 50 && prob(90)) - var/mob/H = M + // I'm not entirely sure what this bit of code is trying to achieve, but it doesn't achieve anything due to requiring a single object to be both a human and a hat + // Commented out pending an implementation that doesn't require humans to be hats and doesn't use '8' instead of.... whatever the hell '8' is supposed to represent ~GN +/* var/mob/H = M // ******* Check if ((istype(H, /mob/living/carbon/human) && istype(H, /obj/item/clothing/head) && H.flags & 8 && prob(80))) M << "\red The helmet protects you from being hit hard in the head!" return +*/ var/time = rand(2, 6) if (prob(75)) M.Paralyse(time) From 67ccb6997b3a542e4eed478c7b963271bf083ac7 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Fri, 5 Jun 2015 09:00:19 +0100 Subject: [PATCH 09/11] Entirely removes briefcase instastun and pointless New() definition --- .../items/weapons/storage/briefcase.dm | 40 ------------------- 1 file changed, 40 deletions(-) diff --git a/code/game/objects/items/weapons/storage/briefcase.dm b/code/game/objects/items/weapons/storage/briefcase.dm index 4193ef281b..ff3d60aec8 100644 --- a/code/game/objects/items/weapons/storage/briefcase.dm +++ b/code/game/objects/items/weapons/storage/briefcase.dm @@ -10,43 +10,3 @@ w_class = 4 max_w_class = 3 max_storage_space = 16 - -/obj/item/weapon/storage/briefcase/New() - ..() - -/obj/item/weapon/storage/briefcase/attack(mob/living/M as mob, mob/living/user as mob) - //..() - - if ((CLUMSY in user.mutations) && prob(50)) - user << "\red The [src] slips out of your hand and hits your head." - user.take_organ_damage(10) - user.Paralyse(2) - return - - - M.attack_log += text("\[[time_stamp()]\] Has been attacked with [src.name] by [user.name] ([user.ckey])") - user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to attack [M.name] ([M.ckey])") - msg_admin_attack("[user.name] ([user.ckey]) attacked [M.name] ([M.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)]) (?)") - - if (M.stat < 2 && M.health < 50 && prob(90)) - // I'm not entirely sure what this bit of code is trying to achieve, but it doesn't achieve anything due to requiring a single object to be both a human and a hat - // Commented out pending an implementation that doesn't require humans to be hats and doesn't use '8' instead of.... whatever the hell '8' is supposed to represent ~GN -/* var/mob/H = M - // ******* Check - if ((istype(H, /mob/living/carbon/human) && istype(H, /obj/item/clothing/head) && H.flags & 8 && prob(80))) - M << "\red The helmet protects you from being hit hard in the head!" - return -*/ - var/time = rand(2, 6) - if (prob(75)) - M.Paralyse(time) - else - M.Stun(time) - if(M.stat != 2) M.stat = 1 - for(var/mob/O in viewers(M, null)) - O.show_message(text("\red [] has been knocked unconscious!", M), 1, "\red You hear someone fall.", 2) - else - M << text("\red [] tried to knock you unconcious!",user) - M.eye_blurry += 3 - - return From cb7fb3aea936156d334ff6a0e896e5777ef11f81 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Fri, 5 Jun 2015 10:23:44 +0200 Subject: [PATCH 10/11] Changelog update. --- html/changelog.html | 7 +++++++ html/changelogs/.all_changelog.yml | 4 ++++ html/changelogs/PsiOmegaDelta-StackFixes.yml | 6 ------ 3 files changed, 11 insertions(+), 6 deletions(-) delete mode 100644 html/changelogs/PsiOmegaDelta-StackFixes.yml diff --git a/html/changelog.html b/html/changelog.html index 01820bee35..3acfe08828 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,6 +56,13 @@ -->
+

05 June 2015

+

PsiOmegaDelta updated:

+
    +
  • Split stacks no longer lose their coloring.
  • +
  • Can no longer merge cables of different colors.
  • +
+

04 June 2015

PsiOmegaDelta updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 499233b5a8..a2b465ccab 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -1879,3 +1879,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. unless subverted/malfunctioning. - bugfix: Astral projecting mobs, such as wizards or cultists, may no longer respawn as something else while their body lives. +2015-06-05: + PsiOmegaDelta: + - bugfix: Split stacks no longer lose their coloring. + - tweak: Can no longer merge cables of different colors. diff --git a/html/changelogs/PsiOmegaDelta-StackFixes.yml b/html/changelogs/PsiOmegaDelta-StackFixes.yml deleted file mode 100644 index a21e4c610b..0000000000 --- a/html/changelogs/PsiOmegaDelta-StackFixes.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: PsiOmegaDelta -delete-after: True - -changes: - - bugfix: "Split stacks no longer lose their coloring." - - tweak: "Can no longer merge cables of different colors." From fdb27272d930008a91c80fca9d80b5470c1d73fd Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Fri, 5 Jun 2015 10:40:06 +0200 Subject: [PATCH 11/11] Changelog update. --- html/changelog.html | 7 +++++++ html/changelogs/.all_changelog.yml | 12 ++++++++++++ html/changelogs/PsiOmegaDelta-ExternalDamage.yml | 5 ----- html/changelogs/PsiOmegaDelta-SpiderGlow.yml | 5 ----- html/changelogs/Yoshax-emptypls.yml | 5 ----- html/changelogs/Yoshax-stafffixes.yml | 5 ----- 6 files changed, 19 insertions(+), 20 deletions(-) delete mode 100644 html/changelogs/PsiOmegaDelta-ExternalDamage.yml delete mode 100644 html/changelogs/PsiOmegaDelta-SpiderGlow.yml delete mode 100644 html/changelogs/Yoshax-emptypls.yml delete mode 100644 html/changelogs/Yoshax-stafffixes.yml diff --git a/html/changelog.html b/html/changelog.html index e2fac767ed..cb99a61602 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -61,6 +61,13 @@
    • Split stacks no longer lose their coloring.
    • Can no longer merge cables of different colors.
    • +
    • Blobs and simple mobs now attack all external organs instead of a subset. The overall damage remains the same but the number of fractures caused will, in general, be fewer.
    • +
    • Spider nurses now have a chance of injecting their victims with spider eggs which eventually hatch. If the limb is removed from the host, the host dies, or the spiderling has matured sufficiently it will crawl out into freedom. Medical scanners will pick upp eggs and spiderlings as foreign bodies.
    • +
    +

    Yoshax updated:

    +
      +
    • Makes hyposprays start empty instead of filled with Tricord.
    • +
    • Makes the special wizard projectile staffs, Animate, Change, Focus and any future ones only usable by wizards. Also makes it so only wizards can use spellbooks and teleportation scrolls.

    04 June 2015

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 4ce917d55d..af6233ae6c 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -1951,3 +1951,15 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. PsiOmegaDelta: - bugfix: Split stacks no longer lose their coloring. - tweak: Can no longer merge cables of different colors. + - tweak: Blobs and simple mobs now attack all external organs instead of a subset. + The overall damage remains the same but the number of fractures caused will, + in general, be fewer. + - rscadd: Spider nurses now have a chance of injecting their victims with spider + eggs which eventually hatch. If the limb is removed from the host, the host + dies, or the spiderling has matured sufficiently it will crawl out into freedom. + Medical scanners will pick upp eggs and spiderlings as foreign bodies. + Yoshax: + - tweak: Makes hyposprays start empty instead of filled with Tricord. + - tweak: Makes the special wizard projectile staffs, Animate, Change, Focus and + any future ones only usable by wizards. Also makes it so only wizards can use + spellbooks and teleportation scrolls. diff --git a/html/changelogs/PsiOmegaDelta-ExternalDamage.yml b/html/changelogs/PsiOmegaDelta-ExternalDamage.yml deleted file mode 100644 index 2fc23a20fd..0000000000 --- a/html/changelogs/PsiOmegaDelta-ExternalDamage.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: PsiOmegaDelta -delete-after: True - -changes: - - tweak: "Blobs and simple mobs now attack all external organs instead of a subset. The overall damage remains the same but the number of fractures caused will, in general, be fewer." diff --git a/html/changelogs/PsiOmegaDelta-SpiderGlow.yml b/html/changelogs/PsiOmegaDelta-SpiderGlow.yml deleted file mode 100644 index bccc54c320..0000000000 --- a/html/changelogs/PsiOmegaDelta-SpiderGlow.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: PsiOmegaDelta -delete-after: True - -changes: - - rscadd: "Spider nurses now have a chance of injecting their victims with spider eggs which eventually hatch. If the limb is removed from the host, the host dies, or the spiderling has matured sufficiently it will crawl out into freedom. Medical scanners will pick upp eggs and spiderlings as foreign bodies." diff --git a/html/changelogs/Yoshax-emptypls.yml b/html/changelogs/Yoshax-emptypls.yml deleted file mode 100644 index 2c90ae8008..0000000000 --- a/html/changelogs/Yoshax-emptypls.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Yoshax -delete-after: True - -changes: - - tweak: "Makes hyposprays start empty instead of filled with Tricord." \ No newline at end of file diff --git a/html/changelogs/Yoshax-stafffixes.yml b/html/changelogs/Yoshax-stafffixes.yml deleted file mode 100644 index 5e2c45a699..0000000000 --- a/html/changelogs/Yoshax-stafffixes.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Yoshax -delete-after: True - -changes: - - tweak: "Makes the special wizard projectile staffs, Animate, Change, Focus and any future ones only usable by wizards. Also makes it so only wizards can use spellbooks and teleportation scrolls."