From 33dc5697b90bb77531072eb30db891d9fd5e5a3e Mon Sep 17 00:00:00 2001 From: Kyep Date: Thu, 2 May 2019 19:20:14 -0700 Subject: [PATCH 01/39] fixes throw_at runtime in vendors --- code/game/atoms_movable.dm | 2 +- code/game/machinery/vending.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 2d3f01a139d..6005db646a6 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -299,7 +299,7 @@ pulledby.stop_pulling() // They are moving! Wouldn't it be cool if we calculated their momentum and added it to the throw? - if(thrower && thrower.last_move && thrower.client && thrower.client.move_delay >= world.time + world.tick_lag * 2) + if(thrower && istype(thrower) && thrower.last_move && thrower.client && thrower.client.move_delay >= world.time + world.tick_lag * 2) var/user_momentum = thrower.movement_delay() if(!user_momentum) // no movement_delay, this means they move once per byond tick, let's calculate from that instead user_momentum = world.tick_lag diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index d0872fa8f93..f510cdbdd51 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -738,7 +738,7 @@ break if(!throw_item) return - throw_item.throw_at(target, 16, 3, src) + throw_item.throw_at(target, 16, 3) visible_message("[src] launches [throw_item.name] at [target.name]!") /* From 4480f28abbf5678dcb8bc62bc5170340f9f2e5e7 Mon Sep 17 00:00:00 2001 From: Kyep Date: Thu, 2 May 2019 21:13:22 -0700 Subject: [PATCH 02/39] revert atoms_movable update --- code/game/atoms_movable.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 6005db646a6..2d3f01a139d 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -299,7 +299,7 @@ pulledby.stop_pulling() // They are moving! Wouldn't it be cool if we calculated their momentum and added it to the throw? - if(thrower && istype(thrower) && thrower.last_move && thrower.client && thrower.client.move_delay >= world.time + world.tick_lag * 2) + if(thrower && thrower.last_move && thrower.client && thrower.client.move_delay >= world.time + world.tick_lag * 2) var/user_momentum = thrower.movement_delay() if(!user_momentum) // no movement_delay, this means they move once per byond tick, let's calculate from that instead user_momentum = world.tick_lag From a015ab755f9ce052b98c2a6c876846b18408f953 Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Sun, 5 May 2019 13:14:00 +0200 Subject: [PATCH 03/39] Cuffs can't be used when you have antidrop on --- code/game/objects/items/weapons/handcuffs.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 6fa0c875333..28e73f29317 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -24,6 +24,10 @@ if(!istype(C)) return + if(flags & NODROP) + to_chat(user, "[src] is stuck to your hand!") + return + if((CLUMSY in user.mutations) && prob(50) && (!ignoresClumsy)) to_chat(user, "Uh... how do those things work?!") apply_cuffs(user, user) From f825a0850350a766c6cfa41c9d526296d5bb7442 Mon Sep 17 00:00:00 2001 From: joep van der velden Date: Sat, 11 May 2019 15:19:43 +0200 Subject: [PATCH 04/39] Fixes can_equip and refactors it --- .../mob/living/carbon/human/inventory.dm | 102 +++++------------- .../mob/living/carbon/human/species/monkey.dm | 2 + 2 files changed, 26 insertions(+), 78 deletions(-) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 79b41e47cc3..7774a59840a 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -44,9 +44,9 @@ return has_organ("chest") if(slot_wear_id) // the only relevant check for this is the uniform check - return 1 + return TRUE if(slot_wear_pda) - return 1 + return TRUE if(slot_l_ear) return has_organ("head") if(slot_r_ear) @@ -70,9 +70,9 @@ if(slot_s_store) return has_organ("chest") if(slot_in_backpack) - return 1 + return TRUE if(slot_tie) - return 1 + return TRUE // The actual dropping happens at the mob level - checks to prevent drops should // come here @@ -419,56 +419,34 @@ /mob/living/carbon/human/can_equip(obj/item/I, slot, disable_warning = 0) switch(dna.species.handle_can_equip(I, slot, disable_warning, src)) - if(1) return 1 - if(2) return 0 //if it returns 2, it wants no normal handling - + if(1) return TRUE + if(2) return FALSE //if it returns 2, it wants no normal handling + if(!has_organ_for_slot(slot)) + return FALSE + if(istype(I, /obj/item/clothing/under) || istype(I, /obj/item/clothing/suit)) if(FAT in mutations) //testing("[M] TOO FAT TO WEAR [src]!") if(!(I.flags_size & ONESIZEFITSALL)) if(!disable_warning) to_chat(src, "You're too fat to wear the [I].") - return 0 + return FALSE switch(slot) if(slot_l_hand) - if(l_hand) - return 0 - return !incapacitated() + return !l_hand && !incapacitated() if(slot_r_hand) - if(r_hand) - return 0 - return !incapacitated() + return !r_hand && !incapacitated() if(slot_wear_mask) - if(wear_mask) - return 0 - if(!(I.slot_flags & SLOT_MASK)) - return 0 - return 1 + return !wear_mask && (I.slot_flags & SLOT_MASK) if(slot_back) - if(back) - return 0 - if(!(I.slot_flags & SLOT_BACK)) - return 0 - return 1 + return !back && (I.slot_flags & SLOT_BACK) if(slot_wear_suit) - if(wear_suit) - return 0 - if(!(I.slot_flags & SLOT_OCLOTHING)) - return 0 - return 1 + return !wear_suit && (I.slot_flags & SLOT_OCLOTHING) if(slot_gloves) - if(gloves) - return 0 - if(!(I.slot_flags & SLOT_GLOVES)) - return 0 - return 1 + return !gloves && (I.slot_flags & SLOT_GLOVES) if(slot_shoes) - if(shoes) - return 0 - if(!(I.slot_flags & SLOT_FEET)) - return 0 - return 1 + return !shoes && (I.slot_flags & SLOT_FEET) if(slot_belt) if(belt) return 0 @@ -480,39 +458,15 @@ return return 1 if(slot_glasses) - if(glasses) - return 0 - if(!(I.slot_flags & SLOT_EYES)) - return 0 - return 1 + return !glasses && (I.slot_flags & SLOT_EYES) if(slot_head) - if(head) - return 0 - if(!(I.slot_flags & SLOT_HEAD)) - return 0 - return 1 + return !head && (I.slot_flags & SLOT_HEAD) if(slot_l_ear) - if(l_ear) - return 0 - if(!(I.slot_flags & SLOT_EARS)) - return 0 - if((I.slot_flags & SLOT_TWOEARS) && r_ear ) - return 0 - return 1 + return !l_ear && (I.slot_flags & SLOT_EARS) && !((I.slot_flags & SLOT_TWOEARS) && r_ear) if(slot_r_ear) - if(r_ear) - return 0 - if(!(I.slot_flags & SLOT_EARS)) - return 0 - if((I.slot_flags & SLOT_TWOEARS) && l_ear) - return 0 - return 1 + return !r_ear && (I.slot_flags & SLOT_EARS) && !((I.slot_flags & SLOT_TWOEARS) && l_ear) if(slot_w_uniform) - if(w_uniform) - return 0 - if(!(I.slot_flags & SLOT_ICLOTHING)) - return 0 - return 1 + return !w_uniform && (I.slot_flags & SLOT_ICLOTHING) if(slot_wear_id) if(wear_id) return 0 @@ -581,17 +535,9 @@ return 1 return 0 if(slot_handcuffed) - if(handcuffed) - return 0 - if(!istype(I, /obj/item/restraints/handcuffs)) - return 0 - return 1 + return !handcuffed && istype(I, /obj/item/restraints/handcuffs) if(slot_legcuffed) - if(legcuffed) - return 0 - if(!istype(I, /obj/item/restraints/legcuffs)) - return 0 - return 1 + return !legcuffed && istype(I, /obj/item/restraints/legcuffs) if(slot_in_backpack) if(back && istype(back, /obj/item/storage/backpack)) var/obj/item/storage/backpack/B = back diff --git a/code/modules/mob/living/carbon/human/species/monkey.dm b/code/modules/mob/living/carbon/human/species/monkey.dm index cac42a29cd2..7eedf2520a3 100644 --- a/code/modules/mob/living/carbon/human/species/monkey.dm +++ b/code/modules/mob/living/carbon/human/species/monkey.dm @@ -59,6 +59,8 @@ genemutcheck(H, MONKEYBLOCK, null, MUTCHK_FORCED) /datum/species/monkey/handle_can_equip(obj/item/I, slot, disable_warning = 0, mob/living/carbon/human/user) + if(!user.has_organ_for_slot(slot)) + return 2 switch(slot) if(slot_l_hand) if(user.l_hand) From cd3b25bd24cc282c913ff5c8ed185d7794803a21 Mon Sep 17 00:00:00 2001 From: Citinited Date: Sat, 11 May 2019 18:15:13 +0100 Subject: [PATCH 05/39] Boo affects APCs again Also reworks the boo code --- code/game/atoms.dm | 5 ++- code/game/machinery/status_display.dm | 6 ++++ code/game/turfs/turf.dm | 4 +++ code/modules/mob/dead/observer/spells.dm | 32 +++---------------- code/modules/mob/living/carbon/human/human.dm | 3 ++ code/modules/power/apc.dm | 26 +++++++-------- code/modules/power/lighting.dm | 3 ++ 7 files changed, 37 insertions(+), 42 deletions(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 0a1aa19bcf7..9c292e42fa6 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -333,6 +333,9 @@ if(AM && isturf(AM.loc)) step(AM, turn(AM.dir, 180)) +/atom/proc/get_spooked() + return + /atom/proc/add_hiddenprint(mob/living/M as mob) if(isnull(M)) return if(isnull(M.key)) return @@ -651,7 +654,7 @@ var/list/blood_splatter_icons = list() if(V.type == type) V.reagents.add_reagent(vomit_reagent, 5) return - + var/obj/effect/decal/cleanable/vomit/this = new type(src) // Make toxins vomit look different diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm index 05545e6a3d1..642676c6eff 100644 --- a/code/game/machinery/status_display.dm +++ b/code/game/machinery/status_display.dm @@ -78,6 +78,9 @@ set_picture("ai_bsod") ..(severity) +/obj/machinery/status_display/get_spooked() + spookymode = TRUE + // set what is displayed /obj/machinery/status_display/proc/update() if(friendc && !ignore_friendc) @@ -227,6 +230,9 @@ set_picture("ai_bsod") ..(severity) +/obj/machinery/ai_status_display/get_spooked() + spookymode = TRUE + /obj/machinery/ai_status_display/proc/update() if(mode==0) //Blank overlays.Cut() diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 677357cf170..828c266c145 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -282,6 +282,10 @@ /turf/proc/Bless() flags |= NOJAUNT +/turf/get_spooked() + for(var/atom/movable/AM in contents) + AM.get_spooked() + /turf/proc/burn_down() return diff --git a/code/modules/mob/dead/observer/spells.dm b/code/modules/mob/dead/observer/spells.dm index 620c1854e73..523e27c0621 100644 --- a/code/modules/mob/dead/observer/spells.dm +++ b/code/modules/mob/dead/observer/spells.dm @@ -1,6 +1,4 @@ - - -var/global/list/boo_phrases=list( +GLOBAL_LIST_INIT(boo_phrases, list( "You feel a chill run down your spine.", "You think you see a figure in your peripheral vision.", "What was that?", @@ -9,13 +7,13 @@ var/global/list/boo_phrases=list( "Something doesn't feel right...", "You feel a presence in the room.", "It feels like someone's standing behind you.", -) +)) /obj/effect/proc_holder/spell/aoe_turf/boo name = "Boo!" desc = "Fuck with the living." - ghost = 1 + ghost = TRUE school = "transmutation" charge_max = 600 @@ -27,26 +25,4 @@ var/global/list/boo_phrases=list( /obj/effect/proc_holder/spell/aoe_turf/boo/cast(list/targets, mob/user = usr) for(var/turf/T in targets) - for(var/atom/A in T.contents) - - // Bug humans - if(ishuman(A)) - var/mob/living/carbon/human/H = A - if(H && H.client) - to_chat(H, "[pick(boo_phrases)]") - - // Flicker unblessed lights in range - if(istype(A,/obj/machinery/light)) - var/obj/machinery/light/L = A - if(L) - L.flicker() - - // OH GOD BLUE APC (single animation cycle) - if(istype(A, /obj/machinery/power/apc)) - A:spookify() - - if(istype(A, /obj/machinery/status_display)) - A:spookymode=1 - - if(istype(A, /obj/machinery/ai_status_display)) - A:spookymode=1 \ No newline at end of file + T.get_spooked() diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index bd5817e8867..54ef65766e9 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1987,6 +1987,9 @@ Eyes need to have significantly high darksight to shine unless the mob has the X genemutcheck(src, block, null, MUTCHK_FORCED) dna.UpdateSE() +/mob/living/carbon/human/get_spooked() + to_chat(src, "[pick(GLOB.boo_phrases)]") + /mob/living/carbon/human/extinguish_light() // Parent function handles stuff the human may be holding ..() diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index c7adce7f533..f240a67df52 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -50,7 +50,6 @@ use_power = NO_POWER_USE req_access = list(access_engine_equip) siemens_strength = 1 - var/spooky=0 var/area/area var/areastring = null var/obj/item/stock_parts/cell/cell @@ -251,9 +250,9 @@ // update the APC icon to show the three base states // also add overlays for indicator lights -/obj/machinery/power/apc/update_icon() +/obj/machinery/power/apc/update_icon(force_update = FALSE) - if(!status_overlays) + if(!status_overlays || force_update) status_overlays = 1 status_overlays_lock = new status_overlays_charging = new @@ -294,10 +293,10 @@ var/update = check_updates() //returns 0 if no need to update icons. // 1 if we need to update the icon_state // 2 if we need to update the overlays - if(!update) + if(!update && !force_update) return - if(update & 1) // Updating the icon state + if(force_update || update & 1) // Updating the icon state if(update_state & UPSTATE_ALLGOOD) icon_state = "apc0" else if(update_state & (UPSTATE_OPENED1|UPSTATE_OPENED2)) @@ -325,7 +324,7 @@ - if(update & 2) + if(force_update || update & 2) if(overlays.len) overlays.len = 0 @@ -415,13 +414,14 @@ update_icon() updating_icon = 0 -/obj/machinery/power/apc/proc/spookify() - if(spooky) return // Fuck you we're already spooky - spooky=1 - update_icon() - spawn(10) - spooky=0 - update_icon() +/obj/machinery/power/apc/get_spooked() + if(opened || wiresexposed) + return + if(stat & (NOPOWER | BROKEN)) + return + addtimer(CALLBACK(src, .proc/update_icon, TRUE), 10) + overlays.Cut() + flick("apcemag", src) //attack with an item - open/close cover, insert cell, or (un)lock interface diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index a0bee89e0be..b186e862f01 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -232,6 +232,9 @@ on = FALSE return +/obj/machinery/light/get_spooked() + flicker() + // update the icon_state and luminosity of the light depending on its state /obj/machinery/light/proc/update(var/trigger = TRUE) switch(status) From 86d5b4b070b23f1bcfcfed44ce5a7bf7bdfc56d5 Mon Sep 17 00:00:00 2001 From: Citinited Date: Sat, 11 May 2019 23:32:32 +0100 Subject: [PATCH 06/39] Handles APC spoopiness differently --- code/modules/power/apc.dm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index f240a67df52..1733d54abb0 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -414,15 +414,17 @@ update_icon() updating_icon = 0 -/obj/machinery/power/apc/get_spooked() +/obj/machinery/power/apc/get_spooked(second_pass = FALSE) if(opened || wiresexposed) return if(stat & (NOPOWER | BROKEN)) return - addtimer(CALLBACK(src, .proc/update_icon, TRUE), 10) - overlays.Cut() - flick("apcemag", src) - + if(!second_pass) //The first time, we just cut overlays + addtimer(CALLBACK(src, .get_spooked, TRUE), 1) + cut_overlays() + else + flick("apcemag", src) //Second time we cause the APC to update its icon, then add a timer to update icon later + addtimer(CALLBACK(src, .proc/update_icon, TRUE), 10) //attack with an item - open/close cover, insert cell, or (un)lock interface /obj/machinery/power/apc/attackby(obj/item/W, mob/living/user, params) From 115f1910845814c3bd569e9b57453f07a850d33b Mon Sep 17 00:00:00 2001 From: Arkatos1 Date: Sun, 12 May 2019 13:19:52 +0200 Subject: [PATCH 07/39] blob split fix --- code/_onclick/hud/blob_overmind.dm | 2 +- code/game/gamemodes/blob/blobs/core.dm | 2 +- code/game/gamemodes/blob/powers.dm | 20 ++++++++++---------- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/code/_onclick/hud/blob_overmind.dm b/code/_onclick/hud/blob_overmind.dm index 6fe3a781642..802e698f069 100644 --- a/code/_onclick/hud/blob_overmind.dm +++ b/code/_onclick/hud/blob_overmind.dm @@ -126,7 +126,7 @@ /obj/screen/blob/Split icon_state = "ui_split" name = "Split consciousness (100)" - desc = "Creates another Blob Overmind at the nearest node. One use only.
Offsprings are be unable to use this ability." + desc = "Creates another Blob Overmind at the targetted node. One use only.
Offsprings are unable to use this ability." /obj/screen/blob/Split/Click() if(isovermind(usr)) diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm index 0482a8e19ae..fe59298cb3e 100644 --- a/code/game/gamemodes/blob/blobs/core.dm +++ b/code/game/gamemodes/blob/blobs/core.dm @@ -105,7 +105,7 @@ spawn() if(!new_overmind) - candidates = pollCandidates("Do you want to play as a blob?", ROLE_BLOB, 1) + candidates = pollCandidates("Do you want to play as a blob offspring?", ROLE_BLOB, 1) if(candidates.len) C = pick(candidates) else diff --git a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm index 61196c9862f..d71bb3a0102 100644 --- a/code/game/gamemodes/blob/powers.dm +++ b/code/game/gamemodes/blob/powers.dm @@ -350,31 +350,32 @@ BS.Goto(pick(surrounding_turfs), BS.move_to_delay) return - /mob/camera/blob/verb/split_consciousness() set category = "Blob" set name = "Split consciousness (100) (One use)" set desc = "Expend resources to attempt to produce another sentient overmind." + var/turf/T = get_turf(src) + if(!T) + return if(split_used) to_chat(src, "You have already produced an offspring.") return if(is_offspring) to_chat(src, "You cannot split as an offspring of another Blob.") return - if(!blob_nodes || !blob_nodes.len) - to_chat(src, "A node is required to birth your offspring...") - return - var/obj/structure/blob/node/N = locate(/obj/structure/blob) in blob_nodes - if(!N) - to_chat(src, "A node is required to birth your offspring...") - return + var/obj/structure/blob/N = (locate(/obj/structure/blob) in T) + if(!N) + to_chat(src, "A node is required to birth your offspring..") + return + if(!istype(N, /obj/structure/blob/node)) + to_chat(src, "A node is required to birth your offspring..") + return if(!can_buy(100)) return split_used = TRUE - new /obj/structure/blob/core/ (get_turf(N), 200, null, blob_core.point_rate, "offspring") qdel(N) @@ -382,7 +383,6 @@ var/datum/game_mode/blob/BL = ticker.mode BL.blobwincount += initial(BL.blobwincount) - /mob/camera/blob/verb/blob_broadcast() set category = "Blob" set name = "Blob Broadcast" From 8a1f3ced793867198f3f664549ca06be3ec980c2 Mon Sep 17 00:00:00 2001 From: Arkatos1 Date: Sun, 12 May 2019 13:55:16 +0200 Subject: [PATCH 08/39] Fix for admin spawned blob cores --- code/game/gamemodes/blob/blobs/core.dm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm index fe59298cb3e..91c6df639e5 100644 --- a/code/game/gamemodes/blob/blobs/core.dm +++ b/code/game/gamemodes/blob/blobs/core.dm @@ -105,7 +105,11 @@ spawn() if(!new_overmind) - candidates = pollCandidates("Do you want to play as a blob offspring?", ROLE_BLOB, 1) + if(is_offspring) + candidates = pollCandidates("Do you want to play as a blob offspring?", ROLE_BLOB, 1) + else + candidates = pollCandidates("Do you want to play as a blob?", ROLE_BLOB, 1) + if(candidates.len) C = pick(candidates) else @@ -123,7 +127,6 @@ if(is_offspring) B.is_offspring = TRUE - /obj/structure/blob/core/proc/lateblobtimer() addtimer(CALLBACK(src, .proc/lateblobcheck), 50) From a78cf680de5ea8bd2c8ebf36ed401b7338d88c0c Mon Sep 17 00:00:00 2001 From: Arkatos1 Date: Fri, 17 May 2019 14:02:38 +0200 Subject: [PATCH 09/39] grammar fixes --- code/_onclick/hud/blob_overmind.dm | 2 +- code/game/gamemodes/blob/powers.dm | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/_onclick/hud/blob_overmind.dm b/code/_onclick/hud/blob_overmind.dm index 802e698f069..1e8f99814df 100644 --- a/code/_onclick/hud/blob_overmind.dm +++ b/code/_onclick/hud/blob_overmind.dm @@ -126,7 +126,7 @@ /obj/screen/blob/Split icon_state = "ui_split" name = "Split consciousness (100)" - desc = "Creates another Blob Overmind at the targetted node. One use only.
Offsprings are unable to use this ability." + desc = "Creates another Blob Overmind at the targeted node. One use only.
Offspring are unable to use this ability." /obj/screen/blob/Split/Click() if(isovermind(usr)) diff --git a/code/game/gamemodes/blob/powers.dm b/code/game/gamemodes/blob/powers.dm index d71bb3a0102..e06a8c800b4 100644 --- a/code/game/gamemodes/blob/powers.dm +++ b/code/game/gamemodes/blob/powers.dm @@ -367,10 +367,10 @@ var/obj/structure/blob/N = (locate(/obj/structure/blob) in T) if(!N) - to_chat(src, "A node is required to birth your offspring..") + to_chat(src, "A node is required to birth your offspring.") return if(!istype(N, /obj/structure/blob/node)) - to_chat(src, "A node is required to birth your offspring..") + to_chat(src, "A node is required to birth your offspring.") return if(!can_buy(100)) return From c2a81675e4cb5d816e53b53db94513be61584e87 Mon Sep 17 00:00:00 2001 From: Dovixx Date: Fri, 17 May 2019 21:26:09 +0300 Subject: [PATCH 10/39] Add the path to cryopod preserve item list --- code/game/machinery/cryopod.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 0ab3d01ddf1..f9e9b744085 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -233,7 +233,8 @@ /obj/item/clothing/gloves/color/black/krav_maga/sec, /obj/item/storage/internal, /obj/item/spacepod_key, - /obj/item/nullrod + /obj/item/nullrod, + /obj/item/key ) // These items will NOT be preserved var/list/do_not_preserve_items = list ( From cb33ec04f8fde85fc33364b7cf91efcc39b0fc46 Mon Sep 17 00:00:00 2001 From: Dovixx Date: Fri, 17 May 2019 21:49:36 +0300 Subject: [PATCH 11/39] Fix headpocket being recovered --- code/game/machinery/cryopod.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index f9e9b744085..17965c12f4c 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -231,7 +231,6 @@ /obj/item/reagent_containers/hypospray/CMO, /obj/item/clothing/accessory/medal/gold/captain, /obj/item/clothing/gloves/color/black/krav_maga/sec, - /obj/item/storage/internal, /obj/item/spacepod_key, /obj/item/nullrod, /obj/item/key From da51a3315ce7f5c242f0ae56ecf9a1caeec9d400 Mon Sep 17 00:00:00 2001 From: Citinited Date: Sat, 18 May 2019 13:02:06 +0100 Subject: [PATCH 12/39] Fix for infinite boo --- code/datums/spell.dm | 19 +++++++++++++------ code/modules/mob/dead/observer/spells.dm | 1 + 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/code/datums/spell.dm b/code/datums/spell.dm index 813604a1431..33c84d2eba3 100644 --- a/code/datums/spell.dm +++ b/code/datums/spell.dm @@ -62,6 +62,7 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin var/charge_type = "recharge" //can be recharge or charges, see charge_max and charge_counter descriptions; can also be based on the holder's vars now, use "holder_var" for that var/charge_max = 100 //recharge time in deciseconds if charge_type = "recharge" or starting charges if charge_type = "charges" + var/starts_charged = TRUE //Does this spell start ready to go? var/charge_counter = 0 //can only cast spells if it equals recharge, ++ each decisecond if charge_type = "recharge" or -- each cast if charge_type = "charges" var/still_recharging_msg = "The spell is still recharging." @@ -193,9 +194,11 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin /obj/effect/proc_holder/spell/New() ..() action = new(src) - still_recharging_msg = "[name] is still recharging." - charge_counter = charge_max + if(starts_charged) + charge_counter = charge_max + else + start_recharge() /obj/effect/proc_holder/spell/Destroy() QDEL_NULL(action) @@ -212,10 +215,14 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin /obj/effect/proc_holder/spell/proc/start_recharge() if(action) action.UpdateButtonIcon() - while(charge_counter < charge_max) - sleep(1) - charge_counter++ - if(action) + addtimer(CALLBACK(src, .add_charge), 10) + +/obj/effect/proc_holder/spell/proc/add_charge() + charge_counter += 10 + if(charge_counter < charge_max) //Needs to charge some more + addtimer(CALLBACK(src, .add_charge), 10) + return + if(action) //We got this far, it's charged action.UpdateButtonIcon() /obj/effect/proc_holder/spell/proc/perform(list/targets, recharge = 1, mob/user = usr) //if recharge is started is important for the trigger spells diff --git a/code/modules/mob/dead/observer/spells.dm b/code/modules/mob/dead/observer/spells.dm index 523e27c0621..916ff9aa9b8 100644 --- a/code/modules/mob/dead/observer/spells.dm +++ b/code/modules/mob/dead/observer/spells.dm @@ -17,6 +17,7 @@ GLOBAL_LIST_INIT(boo_phrases, list( school = "transmutation" charge_max = 600 + starts_charged = FALSE clothes_req = 0 stat_allowed = 1 invocation = "" From d36cb324a00abce3e4414531ed9274321a65a074 Mon Sep 17 00:00:00 2001 From: Citinited Date: Sun, 19 May 2019 18:52:01 +0100 Subject: [PATCH 13/39] Spells now charge using the fast processing subsystem --- code/datums/spell.dm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/code/datums/spell.dm b/code/datums/spell.dm index 33c84d2eba3..c4ad1d54c4d 100644 --- a/code/datums/spell.dm +++ b/code/datums/spell.dm @@ -215,14 +215,15 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin /obj/effect/proc_holder/spell/proc/start_recharge() if(action) action.UpdateButtonIcon() - addtimer(CALLBACK(src, .add_charge), 10) + START_PROCESSING(SSfastprocess, src) -/obj/effect/proc_holder/spell/proc/add_charge() - charge_counter += 10 - if(charge_counter < charge_max) //Needs to charge some more - addtimer(CALLBACK(src, .add_charge), 10) +/obj/effect/proc_holder/spell/process() + charge_counter += 2 + if(charge_counter < charge_max) return - if(action) //We got this far, it's charged + STOP_PROCESSING(SSfastprocess, src) + charge_counter = charge_max + if(action) action.UpdateButtonIcon() /obj/effect/proc_holder/spell/proc/perform(list/targets, recharge = 1, mob/user = usr) //if recharge is started is important for the trigger spells From 1a93d052750384cd2c38e8a6c20123063e0efabc Mon Sep 17 00:00:00 2001 From: Mark van Alphen Date: Sun, 19 May 2019 20:04:26 +0200 Subject: [PATCH 14/39] Gamma borgs are now reset when security level is dropped below Gamma --- .../objects/items/robot/robot_upgrades.dm | 26 ++---------------- .../modules/mob/living/silicon/robot/robot.dm | 27 ++++++++++++++++++- .../security_levels/security levels.dm | 21 +++++++-------- 3 files changed, 37 insertions(+), 37 deletions(-) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 0b9f6c3aca9..a13bce6fb61 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -31,31 +31,9 @@ if(..()) return - R.notify_ai(2) + R.reset_module() - R.uneq_all() - R.sight_mode = null - R.hands.icon_state = "nomod" - R.icon_state = "robot" - R.module.remove_subsystems_and_actions(R) - QDEL_NULL(R.module) - - R.camera.network.Remove(list("Engineering", "Medical", "Mining Outpost")) - R.rename_character(R.real_name, R.get_default_name("Default")) - R.languages = list() - R.speech_synthesizer_langs = list() - - R.update_icons() - R.update_headlamp() - - R.speed = 0 // Remove upgrades. - R.ionpulse = 0 - R.magpulse = 0 - R.add_language("Robot Talk", 1) - - R.status_flags |= CANPUSH - - return 1 + return TRUE /obj/item/borg/upgrade/rename name = "cyborg reclassification board" diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index da793b2f3d3..d716c397111 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -287,7 +287,7 @@ var/list/robot_verbs_default = list( if(islist(force_modules) && force_modules.len) modules = force_modules.Copy() if(security_level == (SEC_LEVEL_GAMMA || SEC_LEVEL_EPSILON) || crisis) - to_chat(src, "Crisis mode active. Combat module available.") + to_chat(src, "Crisis mode active. The combat module is now available.") modules += "Combat" if(mmi != null && mmi.alien) modules = list("Hunter") @@ -415,6 +415,31 @@ var/list/robot_verbs_default = list( radio.config(module.channels) notify_ai(2) +/mob/living/silicon/robot/proc/reset_module() + notify_ai(2) + + uneq_all() + sight_mode = null + hands.icon_state = "nomod" + icon_state = "robot" + module.remove_subsystems_and_actions(src) + QDEL_NULL(module) + + camera.network.Remove(list("Engineering", "Medical", "Mining Outpost")) + rename_character(real_name, get_default_name("Default")) + languages = list() + speech_synthesizer_langs = list() + + update_icons() + update_headlamp() + + speed = 0 // Remove upgrades. + ionpulse = FALSE + magpulse = FALSE + add_language("Robot Talk", 1) + + status_flags |= CANPUSH + //for borg hotkeys, here module refers to borg inv slot, not core module /mob/living/silicon/robot/verb/cmd_toggle_module(module as num) set name = "Toggle Module" diff --git a/code/modules/security_levels/security levels.dm b/code/modules/security_levels/security levels.dm index 050326891fb..c24874cb39e 100644 --- a/code/modules/security_levels/security levels.dm +++ b/code/modules/security_levels/security levels.dm @@ -31,6 +31,15 @@ // Mark down this time to prevent shuttle cheese SSshuttle.emergency_sec_level_time = world.time + // Reset gamma borgs if the new security level is lower than Gamma. + if(level < SEC_LEVEL_GAMMA) + for(var/M in GLOB.silicon_mob_list) + if(isrobot(M)) + var/mob/living/silicon/robot/R = M + if(istype(R.module, /obj/item/robot_module/combat)) + R.reset_module() + to_chat(R, "Crisis mode deactivated. The combat module is no longer available and your module has been reset.") + switch(level) if(SEC_LEVEL_GREEN) security_announcement_down.Announce("All threats to the station have passed. All weapons need to be holstered and privacy laws are once again fully enforced.","Attention! Security level lowered to green.") @@ -176,15 +185,3 @@ return SEC_LEVEL_EPSILON if("delta") return SEC_LEVEL_DELTA - - -/*DEBUG -/mob/verb/set_thing0() - set_security_level(0) -/mob/verb/set_thing1() - set_security_level(1) -/mob/verb/set_thing2() - set_security_level(2) -/mob/verb/set_thing3() - set_security_level(3) -*/ From 1b14f705e00132d402fd5ec0f72a389e0e1b7d0e Mon Sep 17 00:00:00 2001 From: Mark van Alphen Date: Sun, 19 May 2019 20:08:19 +0200 Subject: [PATCH 15/39] Add crisis check --- code/modules/security_levels/security levels.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/security_levels/security levels.dm b/code/modules/security_levels/security levels.dm index c24874cb39e..3b1e56e0c2d 100644 --- a/code/modules/security_levels/security levels.dm +++ b/code/modules/security_levels/security levels.dm @@ -36,7 +36,7 @@ for(var/M in GLOB.silicon_mob_list) if(isrobot(M)) var/mob/living/silicon/robot/R = M - if(istype(R.module, /obj/item/robot_module/combat)) + if(istype(R.module, /obj/item/robot_module/combat) && !R.crisis) R.reset_module() to_chat(R, "Crisis mode deactivated. The combat module is no longer available and your module has been reset.") From 0e3645a27d6480e3fdbd3c9cba97913ff375ea36 Mon Sep 17 00:00:00 2001 From: Ty-Omaha Date: Sun, 19 May 2019 14:24:12 -0400 Subject: [PATCH 16/39] taketickets --- code/controllers/subsystem/tickets/tickets.dm | 7 ++++--- code/modules/admin/admin.dm | 7 +++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/code/controllers/subsystem/tickets/tickets.dm b/code/controllers/subsystem/tickets/tickets.dm index 73279033849..ea210b95ee7 100644 --- a/code/controllers/subsystem/tickets/tickets.dm +++ b/code/controllers/subsystem/tickets/tickets.dm @@ -335,8 +335,8 @@ UI STUFF return TRUE //Sends a message to the designated staff -/datum/controller/subsystem/tickets/proc/message_staff(var/msg) - message_adminTicket(msg) +/datum/controller/subsystem/tickets/proc/message_staff(var/msg, var/alt = FALSE) + message_adminTicket(msg, alt) /datum/controller/subsystem/tickets/Topic(href, href_list) @@ -404,5 +404,6 @@ UI STUFF /datum/controller/subsystem/tickets/proc/takeTicket(var/index) if(assignStaffToTicket(usr.client, index)) - message_staff("[span_text][usr.client] / ([usr]) has taken [ticket_name] number [index]") + span_text = "" + message_staff("[span_text][usr.client] / ([usr]) has taken [ticket_name] number [index]", TRUE) to_chat_safe(returnClient(index), "[span_text]Your [ticket_name] is being handled by [usr.client].") diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 2a981e8b9c4..1a9f38b1486 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -21,8 +21,11 @@ var/global/nologevent = 0 to_chat(C, msg) -/proc/message_adminTicket(var/msg) - msg = "ADMIN TICKET: [msg]" +/proc/message_adminTicket(var/msg, var/alt = FALSE) + if(alt) + msg = "ADMIN TICKET: [msg]" + else + msg = "ADMIN TICKET: [msg]" for(var/client/C in GLOB.admins) if(R_ADMIN & C.holder.rights) if(C.prefs && !(C.prefs.toggles & CHAT_NO_TICKETLOGS)) From 0a65713126b25114749470c409094713fdcb7604 Mon Sep 17 00:00:00 2001 From: Ty-Omaha Date: Sun, 19 May 2019 14:54:03 -0400 Subject: [PATCH 17/39] fix --- code/controllers/subsystem/tickets/tickets.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/controllers/subsystem/tickets/tickets.dm b/code/controllers/subsystem/tickets/tickets.dm index ea210b95ee7..7363d8e0ffd 100644 --- a/code/controllers/subsystem/tickets/tickets.dm +++ b/code/controllers/subsystem/tickets/tickets.dm @@ -404,6 +404,5 @@ UI STUFF /datum/controller/subsystem/tickets/proc/takeTicket(var/index) if(assignStaffToTicket(usr.client, index)) - span_text = "" - message_staff("[span_text][usr.client] / ([usr]) has taken [ticket_name] number [index]", TRUE) + message_staff("[usr.client] / ([usr]) has taken [ticket_name] number [index]", TRUE) to_chat_safe(returnClient(index), "[span_text]Your [ticket_name] is being handled by [usr.client].") From 94afabee9c7830d2de2903e9dd2b3e5cf9c531ef Mon Sep 17 00:00:00 2001 From: Ty-Omaha Date: Sun, 19 May 2019 15:13:00 -0400 Subject: [PATCH 18/39] fix2 --- code/controllers/subsystem/tickets/tickets.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/controllers/subsystem/tickets/tickets.dm b/code/controllers/subsystem/tickets/tickets.dm index 7363d8e0ffd..cf9aed29e83 100644 --- a/code/controllers/subsystem/tickets/tickets.dm +++ b/code/controllers/subsystem/tickets/tickets.dm @@ -404,5 +404,8 @@ UI STUFF /datum/controller/subsystem/tickets/proc/takeTicket(var/index) if(assignStaffToTicket(usr.client, index)) - message_staff("[usr.client] / ([usr]) has taken [ticket_name] number [index]", TRUE) + if(span_text == "") + message_staff("[span_text][usr.client] / ([usr]) has taken [ticket_name] number [index]") + else + message_staff("[usr.client] / ([usr]) has taken [ticket_name] number [index]", TRUE) to_chat_safe(returnClient(index), "[span_text]Your [ticket_name] is being handled by [usr.client].") From d0eca96d746204534c02bde3452b775624ceeb63 Mon Sep 17 00:00:00 2001 From: Couls Date: Tue, 21 May 2019 17:19:39 -0400 Subject: [PATCH 19/39] Fix typo in scanner code --- code/game/machinery/adv_med.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 679af70526e..b7e24014f1e 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -459,8 +459,8 @@ organData["germ_level"] = I.germ_level organData["damage"] = I.damage organData["maxHealth"] = I.max_damage - organData["bruised"] = I.min_broken_damage - organData["broken"] = I.min_bruised_damage + organData["bruised"] = I.min_bruised_damage + organData["broken"] = I.min_broken_damage organData["robotic"] = I.is_robotic() organData["dead"] = (I.status & ORGAN_DEAD) From b7fdc55bebc71ae748110d335ca56d6942afa2d5 Mon Sep 17 00:00:00 2001 From: Shadeykins Date: Wed, 22 May 2019 06:52:36 -0600 Subject: [PATCH 20/39] Fixes Plasmaman mask pixel clipping --- code/modules/clothing/masks/breath.dm | 5 +++-- code/modules/clothing/masks/gasmask.dm | 5 +++-- icons/mob/species/plasmaman/mask.dmi | Bin 0 -> 3798 bytes 3 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 icons/mob/species/plasmaman/mask.dmi diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index 55c305cf449..401e3dd949a 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -10,14 +10,15 @@ permeability_coefficient = 0.50 actions_types = list(/datum/action/item_action/adjust) burn_state = FIRE_PROOF - species_fit = list("Vox", "Unathi", "Tajaran", "Vulpkanin", "Grey" ) + species_fit = list("Vox", "Unathi", "Tajaran", "Vulpkanin", "Grey", "Plasmaman" ) sprite_sheets = list( "Vox" = 'icons/mob/species/vox/mask.dmi', "Unathi" = 'icons/mob/species/unathi/mask.dmi', "Tajaran" = 'icons/mob/species/tajaran/mask.dmi', "Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi', "Grey" = 'icons/mob/species/grey/mask.dmi', - "Drask" = 'icons/mob/species/drask/mask.dmi' + "Drask" = 'icons/mob/species/drask/mask.dmi', + "Plasmaman" = 'icons/mob/species/plasmaman/mask.dmi' ) /obj/item/clothing/mask/breath/attack_self(var/mob/user) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 38f54b1067a..bb2254799a9 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -10,14 +10,15 @@ gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 burn_state = FIRE_PROOF - species_fit = list("Vox", "Unathi", "Tajaran", "Vulpkanin", "Grey") + species_fit = list("Vox", "Unathi", "Tajaran", "Vulpkanin", "Grey", "Plasmaman" ) sprite_sheets = list( "Vox" = 'icons/mob/species/vox/mask.dmi', "Unathi" = 'icons/mob/species/unathi/mask.dmi', "Tajaran" = 'icons/mob/species/tajaran/mask.dmi', "Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi', "Drask" = 'icons/mob/species/drask/mask.dmi', - "Grey" = 'icons/mob/species/grey/mask.dmi' + "Grey" = 'icons/mob/species/grey/mask.dmi', + "Plasmaman" = 'icons/mob/species/plasmaman/mask.dmi' ) // **** Welding gas mask **** diff --git a/icons/mob/species/plasmaman/mask.dmi b/icons/mob/species/plasmaman/mask.dmi new file mode 100644 index 0000000000000000000000000000000000000000..623dfdb1127bf8d7c35876d74d212925f844ae52 GIT binary patch literal 3798 zcmcInXEhxTb`4tJ60lfWYlC&k)&hY4_0~#mra{ zmB7i?zMQWW8rH@QiX#?qZgP{>JhG=0svBMZ{IN+|W1me$tYDKl6aGgU>t^%JuEbOE zQJ>7;bs8fFe+UGNxT4!7JbWUk*oiE+DoXq$Q$5zcKWUvl$y1s>J2k;F?h>D+*wWL( zWg|srE<@F02$cp7zxrV#4$S^gRY_jkHHDP=&PHqGMtcKXYpxt~6(Pa&idGNLt8YVH zXw;O&%K9zp=@%e7?zX=>Cw-Q@g-#IA&5QjYAWyZ=!>io(Js$OZNCn|*zUCK9YyM_8 zr$yC*&GH7b2$n0vkG3`ZO6u9{6k+#cbww|_=g8v|%|`XiX7BQO{c_5?8yDdl>!W1| z8qFi4k5ELAk^&6jzjV@nn)@S=Nvv$NfU9QGZhfL!i@h>$!|9AkhU{&I!!=r!-?7E! zUWP)Uf2v;J9J$Z>S^9GS=Q`@VDZ}niV%W0=&${0(b1k&a=_|_WYK({Ukrp135Na5# z&*LNKs8gv)qOJF$B`fpJ(%bDq#cDD2 z%bCUQu&+2h?_M8kW4Ac*vkZ6?WVL-!f z+QK-iE#9WD;APYzqEGqxzZJ{Y!?C$B1UsbTPSOB@@0&FmXwxztl5VVaTIK)}2MAwV zw<&-Zgn6o497h=8p412JzFmGD9Ub1i%TR#)UIvH5A*wJP&t;?c*jAr?HHY|i{V zr{rf(oA1e2Q9tN^m&M+Db}orCGkeWRRcj<1gS7m)E0Z3PF9U>zhu`6g8JRln-T&JQ zv@JQ9(HFXxGUf5%;aZ2E{K8pdfnHfv{YA%Ods5e{uTu7CfD|u3pCBvRzm_lRZF&Je z*b_5wI4bPA+_Na19>_H9#Th;ZoseoO@nV8{lOA{y9^C|yaY^r3k*6I7shf#gX+jB( zr=Zu2jdQceH~?%hy!(2_G+y1}uqUCS_bI%*IRp%2AlWd8>tBG+>}?FJFShY5R(<)H zlDx{F9|3xIq~XcVi16&{wT>?KxL#R8;{H`tkA`Ox6!wDdX+` zc6&`4M!Vvr0l+#yXLVQQZr8siQEdysT|@<)ht)gtJ62hos)#Gz;4|V%(CQoQZh%wV z<^>?~?!e|#cD4Y?vw<5B!C*p%hyN)OlfxrTG}9m#&TksM#Dc!Lxnr#K@M;Ot99u_K zJpkK-ijuhDbQ3MT>Pv~WvZtQ1;oP!4xA27qm8FkTXJ<_SjpI|{ZuRxrU1JN3V<pr{B@ zkM>&qp%%M9-5ji|rR4|O8df_}fqCla=+r96>FBV5af%G9KkmI<@GkpYU|6{~dn@lx ziF#Qeq%-_WdxmnBri7GK2#5%fd-aMxMx~~|Uy~zD`4UgKnZuSf?hz}Dx*=^Zk$rWQ z{;TP$MM}T0&6tf1yQ0p+=Vx`Mud>4rMIHE928tCxr|#UbwwvwF((LuxIY-;=wTVSd zt_PjY#>s~-L}E0~R7K=}Ay*P+X)<}B%nFL&%7JH)qhY+}&3s)H;6dR41&a>Azb_K< zzcBcaC*A?D8r+oW-(L+*Qq(rn{34-SW}9OiVd=!=Vig^vH54d2yssh($^4KPFBcP+ z>sei*8gqR+UXY&muglYa<+wU!)SsuZjnot0mlFB)BUBhP@A@qK?2~hKqBwlPKf$(G z(vlhSCBzX(4XNN7&@Wj0!bun4kWrsT8m)Xn4IEviuUTB z4&=piCD-utTGU5RhQ9$>I!eF~qDMu=04QNSXU5MTsjA*#`~Vg)^NBC*|3j(&C$bFi z^`Bhc>dPI=Q2O0y>P0CEM4`6+aLd1WJ<)MPK4$=Kzk#NBR`^e5zSyp^(aXng&T^&R z%4S)?^4{Ek_Nj}vGJmwpKHcur4gUV1lRwdl@~eI!COd%t3LOs`ts@C}s)5or;>#Jtf{;-&D8;q@84ru)VCd^jj~E79%Yf2WBBqF+XwR{yp2sd!7V@rs|S(>B}(wq!{j?{(o8Zr#UwE(}uTebm%)= zYx8~-i@9Mb@-uZ~q702z4L|YmvWib*XkVfbz1CCb&XiL*E*aXK{tF>}1{%~#3;VGS zje^BXaUkqmNmNnnKW)V8qH?i+NG^OANU8V}$lVj3G<|JO6y3VZ1F@vXrs2f3HUCrd zl$20{qZ4|-Fg7`VrEP2z1>8#eksz z$m?ZZ&|#I03MX?-J0T%1bqAfDDG4U2~ ztc=%)ik6lFf>*oz4~dS|9QGbFcD|z|m-wWl;9tKU7o1pMNTv4%&XtOyBqW@MgoT9g zn}z0&qW!^_0Jzm492}>5AO^Jcu!HgOM6VJbVza&J&6_vhU9DSC(2f)-Cw!sn z`aO;WL6#g0nIK%B7y7=qb|)k<>*6s&2o}jwh`Aqi+Ct(ZA9n=t1y>7l3~o>0gO~|b z*W|iXqEJxgZC|(_>wh>>f{)dqoJb@p+Sv)Ec^r)T zd&(;l$1=7D4a%)_Fh+cq!S1jvSIo1LmsA+|6U=;)xZ}>@{{Af`V`U+hJRLoS!hLfo zO%H)7^Rkj`wFHGUh`YP{)>5*)l{m$ijd*-~d=A&inWy@`PtCr=&-y}qTMb`$fdDb~ zp|%O(q1N6txpIh&I47sa*|o&vdhM}^MKuxYk&_R|%x-g2Ha51)W1O6v=>CMu#?eTy zf;X9IX69N6_jGS-WeMx%ragEoBy&zS&DPLH9peBt*w;~;_4dHDMyOXkej-Srz{A6X zyu?0AHeTd6jOhb&jE;^L=&h`*bQ+Q!9&9O+mgc;;K?zUXg$iPJxKSw7i_NLJ5C7oH z#z~Kd>+0uo$xFjGPLVe{&K)?$e|G7#@_dJAPf{)~EFkjt#n1Z({4z6n4C~z4Bqb%Q z-1qNzPDwG{l$5NU)85-GU+SGL@cLZL^pxQ5_GD51`+Pe_wK;&Ey~+yP3Mzyu>(k8% ze_=GEtW9;O8p|zc@M`8yz|r!1r?TGNbpOXL^S0y))J=O)F)<&lgt!LquRsXF)qcLfCp7T^&wWNNa2O=e*wri B@l^l- literal 0 HcmV?d00001 From a6464edf248f3dbb651546f9855e5eabcfcbe1f4 Mon Sep 17 00:00:00 2001 From: Shadeykins Date: Wed, 22 May 2019 07:00:31 -0600 Subject: [PATCH 21/39] Minor pixel edit. --- icons/mob/species/plasmaman/mask.dmi | Bin 3798 -> 3791 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/species/plasmaman/mask.dmi b/icons/mob/species/plasmaman/mask.dmi index 623dfdb1127bf8d7c35876d74d212925f844ae52..1acdc5e581ffff9c6fa965ffed0c5dde0454280b 100644 GIT binary patch delta 848 zcmV-W1F!tn9nT$*$^r1P%SZ};+>;*wnwy)^(9nS5;$i^dnKzdA9aC-4T8D$Brlu;( zpz-zMc@U{_puRpKWx3@wr^#eemOi3C1p>lLkyu9K>1fFsGO=pK^cXa9zkm{h0RZ3P ztsQzj%SX5zW4p(LMAf9fefu^_OH1MN`LJfq8tzM<`O!7nPCkl~-O7a`c}G#KizIqLl|HlApNU1YaK+(IhdK1%o=C z+Yk|A5jO*9`6!ZR03u${V^EX)3oDbq2Ni!&e<}Xp!Gp}>@xWj(VE69bntws%z4zW@ zeSLk%&CSKL&pw;bFUV+J8#JDJt5&Uw$IB!wQO^J#j|VGOtboVkiDx|1Mo#{|zP^O$ z%g7}HwJJ-fwcbo8sxQUcY&N!Z=~BouKu=E(-hA^-%|<|*&BoHw(v)Mr-><1YaJPRR zPT9BB(0JFxku_zVvWO~dv1p1u1E@BD&1PexuRjBG)0aw{yL<^|?RsC6B(&LVtfHb~ zLVIIlqbB-t;!Bc*;^JZi0s&mScroS*Woq>0>eO@R&c(+cf2YbbLrKaJBEthdAqGTX3JyaP$E=@PtD68d@kjZYm4d0e# ze<+-`R`miB(kLjakXnPX~Z64OKVQ=qAmT+8J5`~7(E!3W3u zsm0SMxgxS$795DZI&my<08mI`Nkkkofw-1N)B?NR&d#4dKcRi)%9WZWK;+YyL?&H4 z;-GtgBtu??P1dee43Z?N-id?<@_UwdM~`e&j%EfU z1(X;J0QeSf?a=F4KEmY~+dUp6swVyI+qY3#S_+@fhc#=~a9{e|&qO9xAn(V)b#-;R zcx%Ko1IU~@bB3*W>@gUZED@$W_=_*TsEmBCyz+{WqyJ1GE(VYhtvoo9{KV}h`1;6* zCW*N$7}W9HhKLZ0xEVmpN0BrG5b=T@gA$XW2S0y_`b+T#4<2M5j|T>W0lRna*8B@9 z@4fdP>+9=7Zf-7~efHUeenCd-+Mw~&TeWIcJYFVgiFyX`csy9KVg)=NPdww9HgfX! z_4Or0Uq&tws8v})t@UO)QGF@iX0x%SOP4~P0eX6R@aCIuYBmDeY&MpbmZlv0{eDgL zfxCb8aLT@|hQ_-lj;tx`ltolwi$zoP89=oGY&IJkef=4jo4!=q+~rF!YuEdlB%#e_ zV-*z@6WSXa8#U3F6JL@f6c-mG5D4Jn#fvdlC{v>^SErskcP>8u_+zC|R5bcz02KzX z*=+2`hn~O#f4+v?h(fG=eSP@m7uon<7mL1a%sBBMp-SNgiLnh zZTPk{BX2S@Gl5f=mA|{)ZcTK@<955lv9$MN9s!`3dbSSFY470V1Eq zBr@sZ5eMA^BpLEDY_fK(Vvr Date: Wed, 22 May 2019 15:53:35 +0100 Subject: [PATCH 22/39] Fixes a pixel on the Leather Shoes --- icons/mob/feet.dmi | Bin 33442 -> 33447 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/feet.dmi b/icons/mob/feet.dmi index 7fa7b78561d5612b4ba9887ebe6c5fcae3d64130..db20e9a2a7964fde717d8eaa8944ca54b76da1c9 100644 GIT binary patch literal 33447 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 X=qjVKSOLgzg&rzv-Y-(Lc=dk(K*P)b literal 33442 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 Date: Thu, 23 May 2019 09:59:12 +0200 Subject: [PATCH 23/39] Re-added Venus Human Trap icon. --- icons/mob/animal.dmi | Bin 304020 -> 304965 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 241af99e4605f387eb701b6d8fa0138c821ec7ef..26cc4faf2ee7de1f647af662906ebca9e934fa40 100644 GIT binary patch delta 15473 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 From 2d85aff879ccefbbce1a5d6ca7638ca51f329f90 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Thu, 23 May 2019 10:05:24 -0400 Subject: [PATCH 24/39] Automatic changelog generation for PR #11582 [ci skip] --- html/changelogs/AutoChangeLog-pr-11582.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11582.yml diff --git a/html/changelogs/AutoChangeLog-pr-11582.yml b/html/changelogs/AutoChangeLog-pr-11582.yml new file mode 100644 index 00000000000..455dfcea14e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11582.yml @@ -0,0 +1,4 @@ +author: "uc_guy" +delete-after: True +changes: + - bugfix: "Fixed \"Venus Human Traps\" being invisible." From 165490c94d841481ed134afac1f9699e00f98394 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Thu, 23 May 2019 10:05:47 -0400 Subject: [PATCH 25/39] Automatic changelog generation for PR #11574 [ci skip] --- html/changelogs/AutoChangeLog-pr-11574.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11574.yml diff --git a/html/changelogs/AutoChangeLog-pr-11574.yml b/html/changelogs/AutoChangeLog-pr-11574.yml new file mode 100644 index 00000000000..0acc59e9621 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11574.yml @@ -0,0 +1,4 @@ +author: "Christasmurf" +delete-after: True +changes: + - bugfix: "Fixes a random pixel on the leather shoes" From 91bbde638cd763905f9bb134305b577aa758d645 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Thu, 23 May 2019 10:06:07 -0400 Subject: [PATCH 26/39] Automatic changelog generation for PR #11573 [ci skip] --- html/changelogs/AutoChangeLog-pr-11573.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11573.yml diff --git a/html/changelogs/AutoChangeLog-pr-11573.yml b/html/changelogs/AutoChangeLog-pr-11573.yml new file mode 100644 index 00000000000..bb4c67a6cc3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11573.yml @@ -0,0 +1,4 @@ +author: "Shadeykins" +delete-after: True +changes: + - bugfix: "Fixes rogue pixels on breath masks/gas masks for Plasmamen." From b53a2754e281ab11c625a4dad8144e74ea7acae2 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Thu, 23 May 2019 10:07:06 -0400 Subject: [PATCH 27/39] Automatic changelog generation for PR #11567 [ci skip] --- html/changelogs/AutoChangeLog-pr-11567.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11567.yml diff --git a/html/changelogs/AutoChangeLog-pr-11567.yml b/html/changelogs/AutoChangeLog-pr-11567.yml new file mode 100644 index 00000000000..8e0769768f9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11567.yml @@ -0,0 +1,4 @@ +author: "Couls" +delete-after: True +changes: + - bugfix: "t-t-t-typo!" From 49904ceb1f429ee1bc6948fea27f9e7c8df9c343 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Thu, 23 May 2019 10:08:22 -0400 Subject: [PATCH 28/39] Automatic changelog generation for PR #11536 [ci skip] --- html/changelogs/AutoChangeLog-pr-11536.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11536.yml diff --git a/html/changelogs/AutoChangeLog-pr-11536.yml b/html/changelogs/AutoChangeLog-pr-11536.yml new file mode 100644 index 00000000000..0fba2aa34e5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11536.yml @@ -0,0 +1,5 @@ +author: "dovydas12345" +delete-after: True +changes: + - bugfix: "Fixes cryopod removing ambulance, secway keys" + - bugfix: "Fixes cryopod recovering the invisible headpocket item" From 2673e71f56cc19493350497c44316a30cf416fe5 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Thu, 23 May 2019 10:09:46 -0400 Subject: [PATCH 29/39] Automatic changelog generation for PR #11521 [ci skip] --- html/changelogs/AutoChangeLog-pr-11521.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11521.yml diff --git a/html/changelogs/AutoChangeLog-pr-11521.yml b/html/changelogs/AutoChangeLog-pr-11521.yml new file mode 100644 index 00000000000..48a73a71cac --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11521.yml @@ -0,0 +1,5 @@ +author: "Arkatos" +delete-after: True +changes: + - tweak: "Blob split consciousness ability now requires you to directly target a node you want to turn into another sentient overmind instead of selecting a nearest one" + - spellcheck: "Fixed and improved some descriptions regarding Blob offspring" From 0ab245eaaf575aec048c17837400a824a85ec4c5 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Thu, 23 May 2019 11:49:49 -0400 Subject: [PATCH 30/39] Automatic changelog generation for PR #11520 [ci skip] --- html/changelogs/AutoChangeLog-pr-11520.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11520.yml diff --git a/html/changelogs/AutoChangeLog-pr-11520.yml b/html/changelogs/AutoChangeLog-pr-11520.yml new file mode 100644 index 00000000000..ffc477deba7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11520.yml @@ -0,0 +1,5 @@ +author: "Citinited" +delete-after: True +changes: + - bugfix: "Boo affects APCs again" + - bugfix: "Boo no longer fully charges when you enter your corpse" From b1acfe3c87ade45fb025c65b0201bf2d7b66b8c9 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Thu, 23 May 2019 11:50:32 -0400 Subject: [PATCH 31/39] Automatic changelog generation for PR #11518 [ci skip] --- html/changelogs/AutoChangeLog-pr-11518.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11518.yml diff --git a/html/changelogs/AutoChangeLog-pr-11518.yml b/html/changelogs/AutoChangeLog-pr-11518.yml new file mode 100644 index 00000000000..0ad85e1e84a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11518.yml @@ -0,0 +1,4 @@ +author: "farie82" +delete-after: True +changes: + - bugfix: "can_equip now checks if you have the limbs required to equip something" From 4ff9f25e5e76240af58b1911db8f69b173656300 Mon Sep 17 00:00:00 2001 From: Arkatos1 Date: Fri, 24 May 2019 00:53:02 +0200 Subject: [PATCH 32/39] initial commit --- code/game/gamemodes/changeling/evolution_menu.dm | 6 ++++++ code/modules/mob/living/login.dm | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/code/game/gamemodes/changeling/evolution_menu.dm b/code/game/gamemodes/changeling/evolution_menu.dm index e8d266d2dd5..13f19bcce30 100644 --- a/code/game/gamemodes/changeling/evolution_menu.dm +++ b/code/game/gamemodes/changeling/evolution_menu.dm @@ -422,3 +422,9 @@ var/list/sting_paths if(power.name == P.name) return 1 return 0 + +/datum/changeling/proc/regain_powers() //for when action buttons are lost and need to be regained, such as when the mind enters a new mob + for(var/power in purchasedpowers) + var/datum/action/changeling/S = power + if(istype(S) && S.needs_button) + S.Grant(src) diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm index d8e27df91fe..401136997e0 100644 --- a/code/modules/mob/living/login.dm +++ b/code/modules/mob/living/login.dm @@ -18,6 +18,10 @@ if(ranged_ability) ranged_ability.add_ranged_ability(src, "You currently have [ranged_ability] active!") + var/datum/changeling/changeling = mind.has_antag_datum(/datum/changeling) + if(changeling) + changeling.regain_powers() + //Should update regardless of if we can ventcrawl, since we can end up in pipes in other ways. update_pipe_vision() From 0a6768958233ebb83cd76fe15de10117472c338d Mon Sep 17 00:00:00 2001 From: Arkatos1 Date: Fri, 24 May 2019 03:40:19 +0200 Subject: [PATCH 33/39] the actual fix --- code/game/gamemodes/changeling/evolution_menu.dm | 6 ------ code/modules/mob/living/login.dm | 8 ++++++-- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/code/game/gamemodes/changeling/evolution_menu.dm b/code/game/gamemodes/changeling/evolution_menu.dm index 13f19bcce30..e8d266d2dd5 100644 --- a/code/game/gamemodes/changeling/evolution_menu.dm +++ b/code/game/gamemodes/changeling/evolution_menu.dm @@ -422,9 +422,3 @@ var/list/sting_paths if(power.name == P.name) return 1 return 0 - -/datum/changeling/proc/regain_powers() //for when action buttons are lost and need to be regained, such as when the mind enters a new mob - for(var/power in purchasedpowers) - var/datum/action/changeling/S = power - if(istype(S) && S.needs_button) - S.Grant(src) diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm index 401136997e0..580996e54d9 100644 --- a/code/modules/mob/living/login.dm +++ b/code/modules/mob/living/login.dm @@ -18,9 +18,13 @@ if(ranged_ability) ranged_ability.add_ranged_ability(src, "You currently have [ranged_ability] active!") - var/datum/changeling/changeling = mind.has_antag_datum(/datum/changeling) + //for when action buttons are lost and need to be regained, such as when the mind enters a new mob + var/datum/changeling/changeling = usr.mind.changeling if(changeling) - changeling.regain_powers() + for(var/power in changeling.purchasedpowers) + var/datum/action/changeling/S = power + if(istype(S) && S.needs_button) + S.Grant(src) //Should update regardless of if we can ventcrawl, since we can end up in pipes in other ways. update_pipe_vision() From c55888ac9422bc4fec50a8b2210c5e5f8d59c016 Mon Sep 17 00:00:00 2001 From: Arkatos1 Date: Fri, 24 May 2019 14:41:27 +0200 Subject: [PATCH 34/39] fixes the root cause --- .../gamemodes/changeling/evolution_menu.dm | 37 +++++++++++-------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/code/game/gamemodes/changeling/evolution_menu.dm b/code/game/gamemodes/changeling/evolution_menu.dm index e8d266d2dd5..b6a0213f82f 100644 --- a/code/game/gamemodes/changeling/evolution_menu.dm +++ b/code/game/gamemodes/changeling/evolution_menu.dm @@ -18,7 +18,6 @@ var/list/sting_paths var/dat = create_menu(changeling) usr << browse(dat, "window=powers;size=600x700")//900x480 - /datum/action/changeling/evolution_menu/proc/create_menu(var/datum/changeling/changeling) var/dat dat +="Changeling Evolution Menu" @@ -298,12 +297,10 @@ var/list/sting_paths ///// /datum/changeling/proc/purchasePower(var/mob/living/carbon/user, var/sting_name) - var/datum/action/changeling/thepower = null + var/list/all_powers = init_subtypes(/datum/action/changeling) - if(!sting_paths) - sting_paths = init_subtypes(/datum/action/changeling) - for(var/datum/action/changeling/cling_sting in sting_paths) + for(var/datum/action/changeling/cling_sting in all_powers) if(cling_sting.name == sting_name) thepower = cling_sting @@ -344,21 +341,19 @@ var/list/sting_paths to_chat(user, "We have removed our evolutions from this form, and are now ready to readapt.") user.remove_changeling_powers(1) canrespec = 0 - user.make_changeling() + user.make_changeling(FALSE) return 1 else to_chat(user, "You lack the power to readapt your evolutions!") return 0 -/mob/proc/make_changeling() +/mob/proc/make_changeling(var/get_free_powers = TRUE) if(!mind) return if(!ishuman(src)) return if(!mind.changeling) mind.changeling = new /datum/changeling(gender) - if(!sting_paths) - sting_paths = init_subtypes(/datum/action/changeling) if(mind.changeling.purchasedpowers) remove_changeling_powers(1) @@ -367,13 +362,23 @@ var/list/sting_paths for(var/language in languages) mind.changeling.absorbed_languages |= language - // purchase free powers. - for(var/datum/action/changeling/path in sting_paths) - //var/datum/action/changeling/S = new path() - if(!path.dna_cost) - if(!mind.changeling.has_sting(path)) - mind.changeling.purchasedpowers += path - path.on_purchase(src) + if(get_free_powers) + var/list/all_powers = init_subtypes(/datum/action/changeling) + for(var/datum/action/changeling/path in all_powers) // purchase free powers. + if(!path.dna_cost) + if(!mind.changeling.has_sting(path)) + mind.changeling.purchasedpowers += path + path.on_purchase(src) + else //for respec + var/datum/action/changeling/hivemind_upload/S1 = new + if(!mind.changeling.has_sting(S1)) + mind.changeling.purchasedpowers+=S1 + S1.Grant(src) + + var/datum/action/changeling/hivemind_download/S2 = new + if(!mind.changeling.has_sting(S2)) + mind.changeling.purchasedpowers+=S2 + S2.Grant(src) var/mob/living/carbon/C = src //only carbons have dna now, so we have to typecaste mind.changeling.absorbed_dna |= C.dna.Clone() From 21d2ea0723ed9b902761d9079ffa8c5498cb9c6a Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sat, 25 May 2019 00:27:57 -0400 Subject: [PATCH 35/39] Automatic changelog generation for PR #11585 [ci skip] --- html/changelogs/AutoChangeLog-pr-11585.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11585.yml diff --git a/html/changelogs/AutoChangeLog-pr-11585.yml b/html/changelogs/AutoChangeLog-pr-11585.yml new file mode 100644 index 00000000000..053b6deb819 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11585.yml @@ -0,0 +1,5 @@ +author: "Arkatos" +delete-after: True +changes: + - bugfix: "Changelings should now correctly receive their action buttons" + - bugfix: "Changelings now do not steal action buttons from other changelings" From 910fd32154abedb094cd3ecf1c00c62cbc190fe6 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sat, 25 May 2019 09:00:56 -0400 Subject: [PATCH 36/39] Automatic changelog generation for PR #11444 [ci skip] --- html/changelogs/AutoChangeLog-pr-11444.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11444.yml diff --git a/html/changelogs/AutoChangeLog-pr-11444.yml b/html/changelogs/AutoChangeLog-pr-11444.yml new file mode 100644 index 00000000000..08ad07a902d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11444.yml @@ -0,0 +1,4 @@ +author: "Kyep" +delete-after: True +changes: + - bugfix: "unanchored vending machines will no longer generate a runtime error when throwing products at people." From 7d74ae7392f184c7174c611fe91cef2c908f8f67 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sat, 25 May 2019 09:01:20 -0400 Subject: [PATCH 37/39] Automatic changelog generation for PR #11465 [ci skip] --- html/changelogs/AutoChangeLog-pr-11465.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11465.yml diff --git a/html/changelogs/AutoChangeLog-pr-11465.yml b/html/changelogs/AutoChangeLog-pr-11465.yml new file mode 100644 index 00000000000..a38d2a20e15 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11465.yml @@ -0,0 +1,4 @@ +author: "farie82" +delete-after: True +changes: + - bugfix: "Can't use cuffs now while you have antidrop" From b138ef11f5458c350e060d3d318c2f7a418eb42d Mon Sep 17 00:00:00 2001 From: Couls Date: Sun, 26 May 2019 22:00:26 -0400 Subject: [PATCH 38/39] Update mouse.dm player-controlled mice no longer randomly go unconscious --- code/modules/mob/living/simple_animal/friendly/mouse.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 3b9b2d720ca..4faa821701c 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -57,7 +57,7 @@ /mob/living/simple_animal/mouse/Life() ..() - if(prob(0.5)) + if(prob(0.5) && !ckey) stat = UNCONSCIOUS icon_state = "mouse_[mouse_color]_sleep" wander = 0 @@ -220,4 +220,4 @@ response_harm = "stamps on" gold_core_spawnable = CHEM_MOB_SPAWN_INVALID can_collar = 0 - butcher_results = list(/obj/item/stack/sheet/metal = 1) \ No newline at end of file + butcher_results = list(/obj/item/stack/sheet/metal = 1) From 83a71343967d0a50d044754166bad8f6c4c049e9 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Mon, 27 May 2019 06:15:57 -0400 Subject: [PATCH 39/39] Automatic changelog generation for PR #11553 [ci skip] --- html/changelogs/AutoChangeLog-pr-11553.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11553.yml diff --git a/html/changelogs/AutoChangeLog-pr-11553.yml b/html/changelogs/AutoChangeLog-pr-11553.yml new file mode 100644 index 00000000000..9954dccfd28 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11553.yml @@ -0,0 +1,4 @@ +author: "Ty-Omaha" +delete-after: True +changes: + - tweak: "Changed admin take ticket color from neon green to Asay pink"