From 0872780f81c63f1c7f02674fc51f5706085cfd59 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 20 Nov 2018 01:18:06 -0800 Subject: [PATCH 001/237] Update tomato.dm --- code/modules/hydroponics/grown/tomato.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/hydroponics/grown/tomato.dm b/code/modules/hydroponics/grown/tomato.dm index 767de8011a..a143ccee2f 100644 --- a/code/modules/hydroponics/grown/tomato.dm +++ b/code/modules/hydroponics/grown/tomato.dm @@ -136,6 +136,7 @@ spawn(30) if(!QDELETED(src)) + investigate_log(INVESTIGATE_BOTANY, "[key_name(user)] released a killer tomato at [COORD(get_turf(src.loc))]") var/mob/living/simple_animal/hostile/killertomato/K = new /mob/living/simple_animal/hostile/killertomato(get_turf(src.loc)) K.maxHealth += round(seed.endurance / 3) K.melee_damage_lower += round(seed.potency / 10) From 611bdad58eec3f6463f90fccf773d4cc7247f83a Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 20 Nov 2018 10:57:56 -0800 Subject: [PATCH 002/237] Update tomato.dm --- code/modules/hydroponics/grown/tomato.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/hydroponics/grown/tomato.dm b/code/modules/hydroponics/grown/tomato.dm index a143ccee2f..16daa12f16 100644 --- a/code/modules/hydroponics/grown/tomato.dm +++ b/code/modules/hydroponics/grown/tomato.dm @@ -136,7 +136,7 @@ spawn(30) if(!QDELETED(src)) - investigate_log(INVESTIGATE_BOTANY, "[key_name(user)] released a killer tomato at [COORD(get_turf(src.loc))]") + investigate_log(INVESTIGATE_BOTANY, "[key_name(user)] released a killer tomato at [COORD(get_turf(src))]") var/mob/living/simple_animal/hostile/killertomato/K = new /mob/living/simple_animal/hostile/killertomato(get_turf(src.loc)) K.maxHealth += round(seed.endurance / 3) K.melee_damage_lower += round(seed.potency / 10) From 73ae6badb60106244f6c2f025fc8e69274092e0f Mon Sep 17 00:00:00 2001 From: deathride58 Date: Tue, 20 Nov 2018 22:24:47 -0500 Subject: [PATCH 003/237] actually fixes ghost role spawners leaving null entries in mob_spawners --- code/modules/awaymissions/corpse.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index afdbde128e..276c488bce 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -65,9 +65,9 @@ /obj/effect/mob_spawn/Destroy() GLOB.poi_list -= src - LAZYREMOVE(GLOB.mob_spawners[name], src) - if(!LAZYLEN(GLOB.mob_spawners[name])) - GLOB.mob_spawners -= name + LAZYREMOVE(GLOB.mob_spawners[job_description ? job_description : name], src) + if(!LAZYLEN(GLOB.mob_spawners[job_description ? job_description : name])) + GLOB.mob_spawners -= job_description ? job_description : name return ..() /obj/effect/mob_spawn/proc/special(mob/M) From 4e88980cf5485d27c73ae88533e02b8bbbb3db87 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Wed, 21 Nov 2018 01:56:20 -0500 Subject: [PATCH 004/237] readds the kitchen gun sprite (fixes the kitchen gun being invisible) --- icons/obj/guns/projectile.dmi | Bin 34134 -> 35103 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index 6309e5c084f3879142963254cb621224a67b6a39..0ee0e3d2d1f3f5ba589bb498fd320dc5872738ef 100644 GIT binary patch delta 15270 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 delta 14294 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 Xq9bd+C@rX}gKiXj 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 OkGk?>r7wzB;r|1HafSW> From 6177fabebd91369f710289f9990a6fb44bed0a03 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sat, 24 Nov 2018 18:08:14 -0500 Subject: [PATCH 005/237] buffs cult by making the majority of their spells be whispered instead of shouted and makes stun talisman stamcrit --- code/modules/antagonists/cult/blood_magic.dm | 11 ++++---- code/modules/antagonists/cult/cult_comms.dm | 2 +- code/modules/antagonists/cult/runes.dm | 28 ++++++++++---------- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 250434762a..845c66fb33 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -277,7 +277,7 @@ /datum/action/innate/cult/blood_spell/veiling name = "Conceal Presence" desc = "A multi-function spell that alternates between hiding and revealing nearby cult runes, structures, turf, and airlocks." - invocation = "Kla'atu barada nikt'o!" + invocation = "Kla'atu barada nikt'o." button_icon_state = "gone" charges = 10 var/revealing = FALSE //if it reveals or not @@ -326,7 +326,7 @@ /datum/action/innate/cult/blood_spell/manipulation name = "Blood Rites" desc = "A complex spell that allows you to gather blood and use it for healing or other powerful spells." - invocation = "Fel'th Dol Ab'orod!" + invocation = "Fel'th Dol Ab'orod." button_icon_state = "manip" charges = 5 magic_path = "/obj/item/melee/blood_magic/manipulator" @@ -402,7 +402,7 @@ /obj/item/melee/blood_magic/stun name = "Stunning Aura" color = RUNE_COLOR_RED - invocation = "Fuu ma'jin!" + invocation = "Fuu ma'jin." /obj/item/melee/blood_magic/stun/afterattack(atom/target, mob/living/carbon/user, proximity) if(!isliving(target) || !proximity) @@ -434,6 +434,7 @@ else to_chat(user, "In an brilliant flash of red, [L] falls to the ground!") L.Knockdown(160) + L.adjustStaminaLoss(140) //Ensures hard stamcrit L.flash_act(1,1) if(issilicon(target)) var/mob/living/silicon/S = L @@ -498,7 +499,7 @@ /obj/item/melee/blood_magic/shackles name = "Binding Aura" desc = "Allows you to bind a victim and temporarily silence them." - invocation = "In'totum Lig'abis!" + invocation = "In'totum Lig'abis." color = "#000000" // black /obj/item/melee/blood_magic/shackles/afterattack(atom/target, mob/living/carbon/user, proximity) @@ -548,7 +549,7 @@ /obj/item/melee/blood_magic/construction name = "Corrupting Aura" desc = "Corrupts metal and plasteel into more sinister forms." - invocation = "Ethra p'ni dedol!" + invocation = "Ethra p'ni dedol." color = "#000000" // black /obj/item/melee/blood_magic/construction/afterattack(atom/target, mob/user, proximity_flag, click_parameters) diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm index 375d250f59..8452f78ed3 100644 --- a/code/modules/antagonists/cult/cult_comms.dm +++ b/code/modules/antagonists/cult/cult_comms.dm @@ -27,7 +27,7 @@ var/my_message if(!message) return - user.whisper("O bidai nabora se[pick("'","`")]sma!", language = /datum/language/common) + user.whisper("O bidai nabora se[pick("'","`")]sma.", language = /datum/language/common) user.whisper(html_decode(message)) var/title = "Acolyte" var/span = "cult italic" diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index aff0292b87..51c8803cee 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -25,7 +25,7 @@ Runes can either be invoked by one's self or with many different cultists. Each layer = LOW_OBJ_LAYER color = RUNE_COLOR_RED - var/invocation = "Aiy ele-mayo!" //This is said by cultists when the rune is invoked. + var/invocation = "Aiy ele-mayo." //This is said by cultists when the rune is invoked. var/req_cultists = 1 //The amount of cultists required around the rune to invoke it. If only 1, any cultist can invoke it. var/req_cultists_text //if we have a description override for required cultists to invoke var/rune_in_use = FALSE // Used for some runes, this is for when you want a rune to not be usable when in use. @@ -163,7 +163,7 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/malformed cultist_name = "malformed rune" cultist_desc = "a senseless rune written in gibberish. No good can come from invoking this." - invocation = "Ra'sha yoka!" + invocation = "Ra'sha yoka." invoke_damage = 30 /obj/effect/rune/malformed/Initialize(mapload, set_keyword) @@ -180,7 +180,7 @@ structure_check() searches for nearby cultist structures required for the invoca cultist_name = "Offer" cultist_desc = "offers a noncultist above it to Nar'Sie, either converting them or sacrificing them." req_cultists_text = "2 for conversion, 3 for living sacrifices and sacrifice targets." - invocation = "Mah'weyh pleggh at e'ntrath!" + invocation = "Mah'weyh pleggh at e'ntrath." icon_state = "3" color = RUNE_COLOR_OFFER req_cultists = 1 @@ -213,7 +213,7 @@ structure_check() searches for nearby cultist structures required for the invoca var/datum/team/cult/Cult_team = C.cult_team var/is_convertable = is_convertable_to_cult(L,C.cult_team) if(L.stat != DEAD && (is_clock || is_convertable)) - invocation = "Mah'weyh pleggh at e'ntrath!" + invocation = "Mah'weyh pleggh at e'ntrath." ..() if(is_clock) L.visible_message("[L]'s eyes glow a defiant yellow!", \ @@ -223,7 +223,7 @@ structure_check() searches for nearby cultist structures required for the invoca else if(is_convertable) do_convert(L, invokers) else - invocation = "Barhah hra zar'garis!" + invocation = "Barhah hra zar'garis." ..() do_sacrifice(L, invokers) animate(src, color = oldcolor, time = 5) @@ -318,7 +318,7 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/empower cultist_name = "Empower" cultist_desc = "allows cultists to prepare greater amounts of blood magic at far less of a cost." - invocation = "H'drak v'loso, mir'kanas verbot!" + invocation = "H'drak v'loso, mir'kanas verbot." icon_state = "3" color = RUNE_COLOR_TALISMAN construct_invoke = FALSE @@ -332,7 +332,7 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/teleport cultist_name = "Teleport" cultist_desc = "warps everything above it to another chosen teleport rune." - invocation = "Sas'so c'arta forbici!" + invocation = "Sas'so c'arta forbici." icon_state = "2" color = RUNE_COLOR_TELEPORT req_keyword = TRUE @@ -509,7 +509,7 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/raise_dead cultist_name = "Revive" cultist_desc = "requires a dead, mindless, or inactive cultist placed upon the rune. Provided there have been sufficient sacrifices, they will be given a new life." - invocation = "Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!" //Depends on the name of the user - see below + invocation = "Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat." //Depends on the name of the user - see below icon_state = "1" color = RUNE_COLOR_MEDIUMRED var/static/revives_used = -SOULS_TO_REVIVE // Cultists get one "free" revive @@ -544,7 +544,7 @@ structure_check() searches for nearby cultist structures required for the invoca fail_invoke() return if(user.name == "Herbert West") - invocation = "To life, to life, I bring them!" + invocation = "To life, to life, I bring them." else invocation = initial(invocation) ..() @@ -600,7 +600,7 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/wall cultist_name = "Barrier" cultist_desc = "when invoked, makes a temporary invisible wall to block passage. Can be invoked again to reverse this." - invocation = "Khari'd! Eske'te tannin!" + invocation = "Khari'd. Eske'te tannin." icon_state = "4" color = RUNE_COLOR_DARKRED CanAtmosPass = ATMOS_PASS_DENSITY @@ -682,7 +682,7 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/summon cultist_name = "Summon Cultist" cultist_desc = "summons a single cultist to the rune. Requires 2 invokers." - invocation = "N'ath reth sh'yro eth d'rekkathnor!" + invocation = "N'ath reth sh'yro eth d'rekkathnor." req_cultists = 2 invoke_damage = 10 icon_state = "3" @@ -733,7 +733,7 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/blood_boil cultist_name = "Boil Blood" cultist_desc = "boils the blood of non-believers who can see the rune, rapidly dealing extreme amounts of damage. Requires 3 invokers." - invocation = "Dedo ol'btoh!" + invocation = "Dedo ol'btoh." icon_state = "4" color = RUNE_COLOR_BURNTORANGE light_color = LIGHT_COLOR_LAVA @@ -797,7 +797,7 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/manifest cultist_name = "Spirit Realm" cultist_desc = "manifests a spirit servant of the Geometer and allows you to ascend as a spirit yourself. The invoker must not move from atop the rune, and will take damage for each summoned spirit." - invocation = "Gal'h'rfikk harfrandid mud'gib!" //how the fuck do you pronounce this + invocation = "Gal'h'rfikk harfrandid mud'gib." //how the fuck do you pronounce this icon_state = "7" invoke_damage = 10 construct_invoke = FALSE @@ -924,7 +924,7 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/apocalypse cultist_name = "Apocalypse" cultist_desc = "a harbinger of the end times. Grows in strength with the cult's desperation - but at the risk of... side effects." - invocation = "Ta'gh fara'qha fel d'amar det!" + invocation = "Ta'gh fara'qha fel d'amar det." icon = 'icons/effects/96x96.dmi' icon_state = "apoc" pixel_x = -32 From b90c0714a687e7811ee1ee662950c0ce4fdbeb15 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sat, 24 Nov 2018 18:16:19 -0500 Subject: [PATCH 006/237] removes modular citadel changes to the blood spell as well --- modular_citadel/code/modules/antagonists/cult/blood_magic.dm | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 modular_citadel/code/modules/antagonists/cult/blood_magic.dm diff --git a/modular_citadel/code/modules/antagonists/cult/blood_magic.dm b/modular_citadel/code/modules/antagonists/cult/blood_magic.dm deleted file mode 100644 index 065216a2c7..0000000000 --- a/modular_citadel/code/modules/antagonists/cult/blood_magic.dm +++ /dev/null @@ -1,3 +0,0 @@ -/datum/action/innate/cult/blood_spell/stun - charges = 4 - health_cost = 3 From 55901a509dd77adc2135effac9e1c6ec2f7dae5f Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sat, 24 Nov 2018 19:04:22 -0500 Subject: [PATCH 007/237] vscode not saving the dme changes :sadcat: --- tgstation.dme | 1 - 1 file changed, 1 deletion(-) diff --git a/tgstation.dme b/tgstation.dme index 81a20ecee9..b17ba9363f 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2834,7 +2834,6 @@ #include "modular_citadel\code\modules\admin\holder2.dm" #include "modular_citadel\code\modules\admin\secrets.dm" #include "modular_citadel\code\modules\admin\topic.dm" -#include "modular_citadel\code\modules\antagonists\cult\blood_magic.dm" #include "modular_citadel\code\modules\arousal\arousal.dm" #include "modular_citadel\code\modules\arousal\organs\breasts.dm" #include "modular_citadel\code\modules\arousal\organs\eggsack.dm" From dc7ceff845da3dd97d1cead4ac195491e2df4131 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 26 Nov 2018 04:09:52 -0600 Subject: [PATCH 008/237] Automatic changelog generation for PR #7756 [ci skip] --- html/changelogs/AutoChangeLog-pr-7756.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7756.yml diff --git a/html/changelogs/AutoChangeLog-pr-7756.yml b/html/changelogs/AutoChangeLog-pr-7756.yml new file mode 100644 index 0000000000..6355b1a6ef --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7756.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - bugfix: "The Kitchen Gun (TM) is no longer invisible." From c6f14553f0594f7bf322969869da02f7c937e026 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 26 Nov 2018 04:10:12 -0600 Subject: [PATCH 009/237] Automatic changelog generation for PR #7754 [ci skip] --- html/changelogs/AutoChangeLog-pr-7754.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7754.yml diff --git a/html/changelogs/AutoChangeLog-pr-7754.yml b/html/changelogs/AutoChangeLog-pr-7754.yml new file mode 100644 index 0000000000..2599671fb5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7754.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - bugfix: "The bug where ghost role spawners leave null entries in glob.mob_spawners has actually been fixed" From fb446cdfa4b013806a1a06223c869225f997a2a1 Mon Sep 17 00:00:00 2001 From: BlackMajor Date: Mon, 26 Nov 2018 23:16:34 +1300 Subject: [PATCH 010/237] Adds a peep yep. --- modular_citadel/code/modules/mob/cit_emotes.dm | 14 ++++++++++++++ modular_citadel/sound/voice/peep.ogg | Bin 0 -> 9078 bytes 2 files changed, 14 insertions(+) create mode 100644 modular_citadel/sound/voice/peep.ogg diff --git a/modular_citadel/code/modules/mob/cit_emotes.dm b/modular_citadel/code/modules/mob/cit_emotes.dm index b80425e59a..c76b8f2c12 100644 --- a/modular_citadel/code/modules/mob/cit_emotes.dm +++ b/modular_citadel/code/modules/mob/cit_emotes.dm @@ -161,6 +161,20 @@ playsound(user, 'modular_citadel/sound/voice/weh.ogg', 50, 1, -1) . = ..() +/datum/emote/living/peep + key = "peep" + key_third_person = "peeps like a bird" + message = "peeps like a bird!" + emote_type = EMOTE_AUDIBLE + +/datum/emote/living/peep/run_emote(mob/living/user, params) + if(ishuman(user)) + if(user.nextsoundemote >= world.time) + return + user.nextsoundemote = world.time + 7 + playsound(user, 'modular_citadel/sound/voice/peep.ogg', 50, 1, -1) + . = ..() + /datum/emote/living/dab key = "dab" key_third_person = "suddenly hits a dab" diff --git a/modular_citadel/sound/voice/peep.ogg b/modular_citadel/sound/voice/peep.ogg new file mode 100644 index 0000000000000000000000000000000000000000..b6873006778ce111d8620a08eb05d7fb55c832f4 GIT binary patch literal 9078 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 hC@e?`sAh%0Doe731sPC8;paRu0QbtS!D&ud{tJIBNALgu literal 0 HcmV?d00001 From 18bc815b55e77eb768faf5fb4c0817e2cb011f20 Mon Sep 17 00:00:00 2001 From: Tupinambis Date: Wed, 28 Nov 2018 16:37:02 -0600 Subject: [PATCH 011/237] Replaces all missing textures with sandy plating as was intended. --- _maps/map_files/OmegaStation/OmegaStation.dmm | 42 ++++++++++++------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 5251bc4821..19df3bca53 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -1026,7 +1026,8 @@ /turf/closed/wall, /area/hallway/primary/starboard/fore) "abu" = ( -/turf/open/floor/plating/astplate, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, /area/asteroid/nearstation) "abv" = ( /turf/closed/wall, @@ -1271,7 +1272,8 @@ /area/asteroid/nearstation) "abS" = ( /obj/item/stack/ore/glass, -/turf/open/floor/plating/astplate, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, /area/asteroid/nearstation) "abT" = ( /turf/closed/wall, @@ -2090,7 +2092,8 @@ icon_state = "crateopen" }, /obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating/astplate, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, /area/asteroid/nearstation) "adw" = ( /turf/open/floor/plating{ @@ -3353,11 +3356,13 @@ "afM" = ( /obj/item/stack/ore/iron, /obj/structure/barricade/wooden, -/turf/open/floor/plating/astplate, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, /area/asteroid/nearstation) "afN" = ( /obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/astplate, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, /area/asteroid/nearstation) "afP" = ( /obj/structure/table/wood, @@ -3831,7 +3836,8 @@ "agE" = ( /obj/item/stack/ore/silver, /obj/item/stack/ore/iron, -/turf/open/floor/plating/astplate, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, /area/asteroid/nearstation) "agF" = ( /turf/closed/wall/r_wall, @@ -4771,7 +4777,8 @@ /area/quartermaster/storage) "aik" = ( /obj/structure/barricade/wooden, -/turf/open/floor/plating/astplate, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, /area/asteroid/nearstation) "aim" = ( /obj/structure/rack, @@ -5733,7 +5740,8 @@ /area/quartermaster/storage) "ajQ" = ( /obj/item/stack/ore/iron, -/turf/open/floor/plating/astplate, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, /area/asteroid/nearstation) "ajR" = ( /obj/structure/rack, @@ -9822,7 +9830,8 @@ /area/engine/atmos) "aqG" = ( /obj/structure/door_assembly/door_assembly_mhatch, -/turf/open/floor/plating/astplate, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, /area/maintenance/port/fore) "aqI" = ( /obj/structure/closet/secure_closet/security/sec, @@ -10343,7 +10352,8 @@ /turf/open/floor/plasteel, /area/engine/atmos) "arB" = ( -/turf/open/floor/plating/astplate, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, /area/maintenance/port/fore) "arC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -36271,7 +36281,8 @@ /turf/open/floor/plating, /area/engine/supermatter) "bvg" = ( -/turf/open/floor/plating/airless/astplate, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating/airless, /area/asteroid/nearstation) "bvh" = ( /obj/structure/closet/emcloset{ @@ -40507,7 +40518,8 @@ "sIA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/barricade/wooden, -/turf/open/floor/plating/astplate, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating, /area/engine/engineering) "sIB" = ( /turf/closed/wall/rust, @@ -41786,7 +41798,8 @@ dir = 8 }, /obj/effect/turf_decal/delivery, -/turf/open/floor/plating/airless/astplate, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating/airless, /area/ai_monitored/turret_protected/aisat_interior) "sNj" = ( /obj/effect/turf_decal/bot, @@ -42384,7 +42397,8 @@ /obj/structure/cable/white{ icon_state = "0-8" }, -/turf/open/floor/plating/airless/astplate, +/obj/effect/turf_decal/sand/plating, +/turf/open/floor/plating/airless, /area/asteroid/nearstation) "sOK" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ From fb704afb61c213908a22fc70060b31455827cdcf Mon Sep 17 00:00:00 2001 From: deathride58 Date: Wed, 28 Nov 2018 22:47:34 -0500 Subject: [PATCH 012/237] makes gloves of the northstar restore 2/3 of the stamina used up by harm intent punches on empty stam buffers (#7770) --- code/modules/clothing/gloves/miscellaneous.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 6c22334f78..b691074c27 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -69,6 +69,7 @@ if(M.a_intent == INTENT_HARM) M.changeNext_move(CLICK_CD_RAPID) + M.adjustStaminaLoss(-2) //Restore 2/3 of the stamina used assuming empty stam buffer. With proper stamina buffer management, this results in a net gain of +.5 stamina per click. if(warcry) M.say("[warcry]", ignore_spam = TRUE, forced = "north star warcry") .= FALSE From f59e91d65b4a1e496194762cb029d943962a589d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 28 Nov 2018 21:47:36 -0600 Subject: [PATCH 013/237] Automatic changelog generation for PR #7770 [ci skip] --- html/changelogs/AutoChangeLog-pr-7770.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7770.yml diff --git a/html/changelogs/AutoChangeLog-pr-7770.yml b/html/changelogs/AutoChangeLog-pr-7770.yml new file mode 100644 index 0000000000..d949f17161 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7770.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - balance: "The Gloves of the North Star now restore 2/3 of the stamina used up by punches when harm intent punching. With aggressive play and good stamina buffer management, this makes it entirely plausible to roughly double your stamina regeneration per mob life process tick." From 861dd61fe97bfe5953b0befe51a424d86d571cce Mon Sep 17 00:00:00 2001 From: Tupinambis <42078130+Tupinambis@users.noreply.github.com> Date: Wed, 28 Nov 2018 21:48:37 -0600 Subject: [PATCH 014/237] Adds a mixed closet to Delta Dorms, and a bottle of unstable mutagen to Botany. (#7772) --- _maps/map_files/Deltastation/DeltaStation2.dmm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 23c41131ea..3269d53588 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -29156,6 +29156,7 @@ name = "Station Intercom"; pixel_y = 26 }, +/obj/item/reagent_containers/glass/bottle/mutagen, /turf/open/floor/plasteel, /area/hydroponics) "bbZ" = ( @@ -78869,7 +78870,6 @@ /turf/open/floor/plasteel, /area/crew_quarters/locker) "cCb" = ( -/obj/structure/closet/wardrobe/green, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -78880,6 +78880,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/closet/wardrobe/mixed, /turf/open/floor/plasteel/dark, /area/crew_quarters/locker) "cCc" = ( @@ -81677,7 +81678,6 @@ /turf/open/floor/plating, /area/crew_quarters/toilet/restrooms) "cGL" = ( -/obj/machinery/vending/clothing, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -81688,6 +81688,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/closet/wardrobe/green, /turf/open/floor/plasteel/dark, /area/crew_quarters/locker) "cGM" = ( @@ -81719,6 +81720,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/machinery/vending/clothing, /turf/open/floor/plasteel/dark, /area/crew_quarters/locker) "cGO" = ( From 725d2166f6b4451165f6a4f4b871acefa596b03d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 28 Nov 2018 21:48:40 -0600 Subject: [PATCH 015/237] Automatic changelog generation for PR #7772 [ci skip] --- html/changelogs/AutoChangeLog-pr-7772.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7772.yml diff --git a/html/changelogs/AutoChangeLog-pr-7772.yml b/html/changelogs/AutoChangeLog-pr-7772.yml new file mode 100644 index 0000000000..5aa989cc93 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7772.yml @@ -0,0 +1,5 @@ +author: "Tupinambis" +delete-after: True +changes: + - tweak: "Adds a mixed clothing closet to Deltastation Dorms." + - tweak: "Adds a bottle of unstable mutagen to Botany, on account of its distance from Chemistry." From 20553efea5b24dd99fe1079bfa272b027ec57d00 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Wed, 28 Nov 2018 19:52:01 -0800 Subject: [PATCH 016/237] Update tomato.dm --- code/modules/hydroponics/grown/tomato.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/hydroponics/grown/tomato.dm b/code/modules/hydroponics/grown/tomato.dm index 16daa12f16..5a44cb78f8 100644 --- a/code/modules/hydroponics/grown/tomato.dm +++ b/code/modules/hydroponics/grown/tomato.dm @@ -136,7 +136,7 @@ spawn(30) if(!QDELETED(src)) - investigate_log(INVESTIGATE_BOTANY, "[key_name(user)] released a killer tomato at [COORD(get_turf(src))]") + investigate_log(INVESTIGATE_BOTANY, "[key_name(user)] released a killer tomato at [COORD(src)]") var/mob/living/simple_animal/hostile/killertomato/K = new /mob/living/simple_animal/hostile/killertomato(get_turf(src.loc)) K.maxHealth += round(seed.endurance / 3) K.melee_damage_lower += round(seed.potency / 10) From a6d9a4f721e13d607d42d687c5e00ab1ac5073fa Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Wed, 28 Nov 2018 21:14:30 -0800 Subject: [PATCH 017/237] Update reactive_armour.dm --- code/modules/clothing/suits/reactive_armour.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/clothing/suits/reactive_armour.dm b/code/modules/clothing/suits/reactive_armour.dm index 7c79aff143..7a1950d57c 100644 --- a/code/modules/clothing/suits/reactive_armour.dm +++ b/code/modules/clothing/suits/reactive_armour.dm @@ -126,7 +126,7 @@ /obj/item/clothing/suit/armor/reactive/stealth name = "reactive stealth armor" - reactivearmor_cooldown_duration = 300 + reactivearmor_cooldown_duration = 75 desc = "An experimental suit of armor that renders the wearer invisible on detection of imminent harm, and creates a decoy that runs away from the owner. You can't fight what you can't see." /obj/item/clothing/suit/armor/reactive/stealth/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) @@ -153,7 +153,7 @@ name = "reactive tesla armor" desc = "An experimental suit of armor with sensitive detectors hooked up to a huge capacitor grid, with emitters strutting out of it. Zap." siemens_coefficient = -1 - reactivearmor_cooldown_duration = 150 + reactivearmor_cooldown_duration = 25 var/tesla_power = 25000 var/tesla_range = 20 var/tesla_flags = TESLA_MOB_DAMAGE | TESLA_OBJ_DAMAGE @@ -187,7 +187,7 @@ /obj/item/clothing/suit/armor/reactive/repulse name = "reactive repulse armor" - reactivearmor_cooldown_duration = 200 + reactivearmor_cooldown_duration = 50 desc = "An experimental suit of armor that violently throws back attackers." /obj/item/clothing/suit/armor/reactive/repulse/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) @@ -213,7 +213,7 @@ /obj/item/clothing/suit/armor/reactive/table name = "reactive table armor" - reactivearmor_cooldown_duration = 500 + reactivearmor_cooldown_duration = 0 desc = "If you can't beat the memes, embrace them." var/tele_range = 10 From 02ec7a38ce05de3c0a4e580278a829e23bb41107 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Wed, 28 Nov 2018 21:16:30 -0800 Subject: [PATCH 018/237] Update reactive_armour.dm --- code/modules/clothing/suits/reactive_armour.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/clothing/suits/reactive_armour.dm b/code/modules/clothing/suits/reactive_armour.dm index 7a1950d57c..fe38d050cf 100644 --- a/code/modules/clothing/suits/reactive_armour.dm +++ b/code/modules/clothing/suits/reactive_armour.dm @@ -126,7 +126,7 @@ /obj/item/clothing/suit/armor/reactive/stealth name = "reactive stealth armor" - reactivearmor_cooldown_duration = 75 + reactivearmor_cooldown_duration = 65 desc = "An experimental suit of armor that renders the wearer invisible on detection of imminent harm, and creates a decoy that runs away from the owner. You can't fight what you can't see." /obj/item/clothing/suit/armor/reactive/stealth/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) @@ -153,7 +153,7 @@ name = "reactive tesla armor" desc = "An experimental suit of armor with sensitive detectors hooked up to a huge capacitor grid, with emitters strutting out of it. Zap." siemens_coefficient = -1 - reactivearmor_cooldown_duration = 25 + reactivearmor_cooldown_duration = 20 var/tesla_power = 25000 var/tesla_range = 20 var/tesla_flags = TESLA_MOB_DAMAGE | TESLA_OBJ_DAMAGE @@ -187,7 +187,7 @@ /obj/item/clothing/suit/armor/reactive/repulse name = "reactive repulse armor" - reactivearmor_cooldown_duration = 50 + reactivearmor_cooldown_duration = 35 desc = "An experimental suit of armor that violently throws back attackers." /obj/item/clothing/suit/armor/reactive/repulse/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) From 63bf5c54e1ad142599678920de093adcf508f9ee Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Wed, 28 Nov 2018 21:21:48 -0800 Subject: [PATCH 019/237] Update reactive_armour.dm --- code/modules/clothing/suits/reactive_armour.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/suits/reactive_armour.dm b/code/modules/clothing/suits/reactive_armour.dm index fe38d050cf..2516d446d6 100644 --- a/code/modules/clothing/suits/reactive_armour.dm +++ b/code/modules/clothing/suits/reactive_armour.dm @@ -187,7 +187,7 @@ /obj/item/clothing/suit/armor/reactive/repulse name = "reactive repulse armor" - reactivearmor_cooldown_duration = 35 + reactivearmor_cooldown_duration = 20 desc = "An experimental suit of armor that violently throws back attackers." /obj/item/clothing/suit/armor/reactive/repulse/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) From c56cf7885db5ca3736001bc7084f3efe7fcfcf52 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Thu, 29 Nov 2018 12:35:01 -0500 Subject: [PATCH 020/237] lets try fixing the fucking stamina bug - removes redundant update_stamina() calls and moves update_stamina() calls outside of if clauses --- code/modules/mob/living/carbon/damage_procs.dm | 1 - code/modules/mob/living/carbon/life.dm | 2 +- code/modules/mob/living/damage_procs.dm | 8 ++++---- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/code/modules/mob/living/carbon/damage_procs.dm b/code/modules/mob/living/carbon/damage_procs.dm index b22498670a..c21f9ce213 100644 --- a/code/modules/mob/living/carbon/damage_procs.dm +++ b/code/modules/mob/living/carbon/damage_procs.dm @@ -178,7 +178,6 @@ parts -= picked if(updating_health) updatehealth() - update_stamina() if(update) update_damage_overlays() update_stamina() //CIT CHANGE - makes sure update_stamina() always gets called after a health update diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index ef9c89cf1d..fa435d11c0 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -23,7 +23,7 @@ var/bprv = handle_bodyparts() if(bprv & BODYPART_LIFE_UPDATE_HEALTH) updatehealth() - update_stamina() + update_stamina() if(stat != DEAD) handle_brain_damage() diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index dfc81396e7..4e5c7decc5 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -243,7 +243,7 @@ adjustStaminaLoss(-stamina, FALSE) if(updating_health) updatehealth() - update_stamina() + update_stamina() // damage ONE external organ, organ gets randomly selected from damaged ones. /mob/living/proc/take_bodypart_damage(brute = 0, burn = 0, stamina = 0, updating_health = TRUE) @@ -252,7 +252,7 @@ adjustStaminaLoss(stamina, FALSE) if(updating_health) updatehealth() - update_stamina() + update_stamina() // heal MANY bodyparts, in random order /mob/living/proc/heal_overall_damage(brute = 0, burn = 0, stamina = 0, only_robotic = FALSE, only_organic = TRUE, updating_health = TRUE) @@ -261,7 +261,7 @@ adjustStaminaLoss(-stamina, FALSE) if(updating_health) updatehealth() - update_stamina() + update_stamina() // damage MANY bodyparts, in random order /mob/living/proc/take_overall_damage(brute = 0, burn = 0, stamina = 0, updating_health = TRUE) @@ -270,7 +270,7 @@ adjustStaminaLoss(stamina, FALSE) if(updating_health) updatehealth() - update_stamina() + update_stamina() //heal up to amount damage, in a given order /mob/living/proc/heal_ordered_damage(amount, list/damage_types) From 273c6de5ba20ff34450211ad1d9aa385b05cdc8b Mon Sep 17 00:00:00 2001 From: deathride58 Date: Thu, 29 Nov 2018 18:03:23 -0500 Subject: [PATCH 021/237] gets rid of the hardcoded "you remember the guy who flashed you" thing in revs, replaces it with something more in-line with the rest of the antags (#7771) --- code/modules/antagonists/revolution/revolution.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/antagonists/revolution/revolution.dm b/code/modules/antagonists/revolution/revolution.dm index a397fbb0d5..90df57f48b 100644 --- a/code/modules/antagonists/revolution/revolution.dm +++ b/code/modules/antagonists/revolution/revolution.dm @@ -202,10 +202,10 @@ /datum/antagonist/rev/farewell() if(ishuman(owner.current)) owner.current.visible_message("[owner.current] looks like [owner.current.p_theyve()] just remembered [owner.current.p_their()] real allegiance!", null, null, null, owner.current) - to_chat(owner, "You are no longer a brainwashed revolutionary! Your memory is hazy from the time you were a rebel...the only thing you remember is the name of the one who brainwashed you...") + to_chat(owner, "You are no longer a brainwashed revolutionary! Your memory is hazy from the time you were a rebel... You don't seem to be able to recall the names of your comrades, not even your leaders...") else if(issilicon(owner.current)) owner.current.visible_message("The frame beeps contentedly, purging the hostile memory engram from the MMI before initalizing it.", null, null, null, owner.current) - to_chat(owner, "The frame's firmware detects and deletes your neural reprogramming! You remember nothing but the name of the one who flashed you.") + to_chat(owner, "The frame's firmware detects and deletes your neural reprogramming! You remember nothing of your time spent reprogrammed, you can't even remember the names or identities of anyone involved...") //blunt trauma deconversions call this through species.dm spec_attacked_by() /datum/antagonist/rev/proc/remove_revolutionary(borged, deconverter) From 662ffa7a36e66e85dd1cda964a32f822b695a5a7 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 29 Nov 2018 17:03:25 -0600 Subject: [PATCH 022/237] Automatic changelog generation for PR #7771 [ci skip] --- html/changelogs/AutoChangeLog-pr-7771.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7771.yml diff --git a/html/changelogs/AutoChangeLog-pr-7771.yml b/html/changelogs/AutoChangeLog-pr-7771.yml new file mode 100644 index 0000000000..f537395993 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7771.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - balance: "Revs can no longer remember the name of the person who flashed them when deconverted. This brings it in-line with the other conversion antag deconversions." From 61659a5bac1a714b1b7068587b9672bca354bf79 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 30 Nov 2018 01:50:16 -0500 Subject: [PATCH 023/237] Buffs RPE and nerfs BSRPEs (#7766) * Buffs RPE and nerfs BSRPEs * half way --- code/datums/components/storage/concrete/rped.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/datums/components/storage/concrete/rped.dm b/code/datums/components/storage/concrete/rped.dm index 14f6fe28b3..adf08b089b 100644 --- a/code/datums/components/storage/concrete/rped.dm +++ b/code/datums/components/storage/concrete/rped.dm @@ -5,7 +5,7 @@ click_gather = TRUE max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = 100 - max_items = 50 + max_items = 75 display_numerical_stacking = TRUE /datum/component/storage/concrete/rped/can_be_inserted(obj/item/I, stop_messages, mob/M) @@ -22,7 +22,7 @@ click_gather = TRUE max_w_class = WEIGHT_CLASS_BULKY // can fit vending refills max_combined_w_class = 800 - max_items = 400 + max_items = 325 display_numerical_stacking = TRUE /datum/component/storage/concrete/bluespace/rped/can_be_inserted(obj/item/I, stop_messages, mob/M) From 9f294f523ef0e7f91c0d7b75d5d8f28a0db95dc5 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 30 Nov 2018 20:36:27 -0500 Subject: [PATCH 024/237] buffs and nerfs night vision trait --- code/__DEFINES/lighting.dm | 2 +- code/modules/surgery/organs/eyes.dm | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/lighting.dm b/code/__DEFINES/lighting.dm index 37203792f7..5db5c979e8 100644 --- a/code/__DEFINES/lighting.dm +++ b/code/__DEFINES/lighting.dm @@ -58,7 +58,7 @@ #define LIGHT_RANGE_FIRE 3 //How many tiles standard fires glow. #define LIGHTING_PLANE_ALPHA_VISIBLE 255 -#define LIGHTING_PLANE_ALPHA_NV_TRAIT 245 +#define LIGHTING_PLANE_ALPHA_NV_TRAIT 250 #define LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE 192 #define LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE 128 //For lighting alpha, small amounts lead to big changes. even at 128 its hard to figure out what is dark and what is light, at 64 you almost can't even tell. #define LIGHTING_PLANE_ALPHA_INVISIBLE 0 diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index bfe1b2dc3b..9f42cf0baa 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -28,6 +28,7 @@ eye_color = HMN.eye_color if(HMN.has_trait(TRAIT_NIGHT_VISION) && !lighting_alpha) lighting_alpha = LIGHTING_PLANE_ALPHA_NV_TRAIT + see_in_dark = 8 M.update_tint() owner.update_sight() From 55517ae32909d88a659a25ce7bf0dd579282675d Mon Sep 17 00:00:00 2001 From: Ignari_Coldstorm <35156514+KingAce77@users.noreply.github.com> Date: Fri, 30 Nov 2018 20:18:49 -0600 Subject: [PATCH 025/237] Adds a new PKA to the mining Vendor Miners are always going and saying that they amass so many points while mining, yet nothing is worthwhile enough to buy with said points so they sit there wasted usually. This adds a new premium Kinetic Accelerator with stronger base stats, meanwhile it costs 8K mining points. Will later be adding premium edition of Kinetic crusher. Ideal goal is to encourage miners to mine enough ore for station to get this gear before they go out to hunt for real. --- .../guns/energy/kinetic_accelerator.dm | 37 +++++++++++++++++- icons/mob/inhands/weapons/guns_lefthand.dmi | Bin 56342 -> 57002 bytes icons/mob/inhands/weapons/guns_righthand.dmi | Bin 60479 -> 61111 bytes icons/obj/guns/energy.dmi | Bin 36587 -> 36151 bytes 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 10ce341fec..ad2949892e 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -22,9 +22,44 @@ var/max_mod_capacity = 100 var/list/modkits = list() - + var/recharge_timerid +/obj/item/gun/energy/kinetic_accelerator/premiumka + name = "premium accelerator" + desc = "A premium kinetic accelerator fitted with an extended barrel and increased pressure tank." + icon_state = "premiumgun" + item_state = "premiumgun" + lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' + ammo_type = list(/obj/item/ammo_casing/energy/kinetic/premium) + +/obj/item/gun/energy/kinetic_accelerator/premiumka/dropped() + . = ..() + if(!QDELING(src) && !holds_charge) + // Put it on a delay because moving item from slot to hand + // calls dropped(). + addtimer(CALLBACK(src, .proc/empty_if_not_held), 1.60) + +/obj/item/ammo_casing/energy/kinetic/premium + projectile_type = /obj/item/projectile/kinetic/premium + +/obj/item/projectile/kinetic/premium + name = "kinetic force" + icon_state = null + damage = 50 + damage_type = BRUTE + flag = "bomb" + range = 5 + log_override = TRUE + +/obj/item/gun/energy/kinetic_accelerator/premiumka/update_icon() + ..() + if(!can_shoot()) + add_overlay("[icon_state]_empty") + else + cut_overlays() + /obj/item/gun/energy/kinetic_accelerator/examine(mob/user) ..() if(max_mod_capacity) diff --git a/icons/mob/inhands/weapons/guns_lefthand.dmi b/icons/mob/inhands/weapons/guns_lefthand.dmi index 5198f3bda970be0a463947a7f787fa3c93806a17..dae38612337eabd7b6397be80be7595e11c15193 100644 GIT binary patch delta 17115 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 delta 16450 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 b4#vS<%l0fCcKj6c5;YaANBIw4e*8ZGPR^ba diff --git a/icons/mob/inhands/weapons/guns_righthand.dmi b/icons/mob/inhands/weapons/guns_righthand.dmi index afbd091d132d4aae9e7b3ea5972945547758b46a..f3d5c4257016175e90be1b6ef3e8bd4955fb4872 100644 GIT binary patch delta 20611 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 delta 19796 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 bp2SOwTCpf{KKyZgZ;~FfudvJH{DZcm5 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 Date: Fri, 30 Nov 2018 21:31:43 -0500 Subject: [PATCH 026/237] makes it actually possible to click the stamina button on the hud and fixes the stambuffer displayed by the button --- modular_citadel/code/_onclick/hud/stamina.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modular_citadel/code/_onclick/hud/stamina.dm b/modular_citadel/code/_onclick/hud/stamina.dm index 1266e88158..781b7cb25f 100644 --- a/modular_citadel/code/_onclick/hud/stamina.dm +++ b/modular_citadel/code/_onclick/hud/stamina.dm @@ -6,12 +6,12 @@ name = "stamina" icon_state = "stamina0" screen_loc = ui_stamina - mouse_opacity = 0 + mouse_opacity = 1 /obj/screen/staminas/Click(location,control,params) if(isliving(usr)) var/mob/living/L = usr - to_chat(L, "You have [L.getStaminaLoss()] stamina loss.
Your stamina buffer can take [L.stambuffer] stamina loss, and will use 50% of that stamina loss when recharging.
Your stamina buffer is [(100/L.stambuffer)-(L.bufferedstam*(100/L.stambuffer))]% full.
") + to_chat(L, "You have [L.getStaminaLoss()] stamina loss.
Your stamina buffer can take [L.stambuffer] stamina loss, and will use 50% of that stamina loss when recharging.
Your stamina buffer is [(L.stambuffer*(100/L.stambuffer))-(L.bufferedstam*(100/L.stambuffer))]% full.
") /mob/living/carbon/human/proc/staminahudamount() if(stat == DEAD || recoveringstam) From fd000f7fb831f7787ca06938b47540eba9c1e056 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 30 Nov 2018 21:41:19 -0500 Subject: [PATCH 027/237] makes bone spears capable of reaching two whole tiles! --- code/game/objects/items/twohanded.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm index bd4ee0d35b..f0a233fea6 100644 --- a/code/game/objects/items/twohanded.dm +++ b/code/game/objects/items/twohanded.dm @@ -803,6 +803,7 @@ slot_flags = ITEM_SLOT_BACK force_unwielded = 11 force_wielded = 20 //I have no idea how to balance + reach = 2 throwforce = 22 throw_speed = 4 embedding = list("embedded_impact_pain_multiplier" = 3) From 70a1d1e175717f33c94dcde30bb11b1d53920b9d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 30 Nov 2018 21:47:55 -0600 Subject: [PATCH 028/237] Automatic changelog generation for PR #7778 [ci skip] --- html/changelogs/AutoChangeLog-pr-7778.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7778.yml diff --git a/html/changelogs/AutoChangeLog-pr-7778.yml b/html/changelogs/AutoChangeLog-pr-7778.yml new file mode 100644 index 0000000000..75362eca05 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7778.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - bugfix: "The bug where you can sometimes get permanently stuck in stamcrit should HOPEFULLY be fixed. I'm unable to reproduce the bug myself, but let's hope." From 3df8c04499e93cef6cae9cf732f76b3fc3c93399 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 30 Nov 2018 21:50:06 -0600 Subject: [PATCH 029/237] Automatic changelog generation for PR #7776 [ci skip] --- html/changelogs/AutoChangeLog-pr-7776.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7776.yml diff --git a/html/changelogs/AutoChangeLog-pr-7776.yml b/html/changelogs/AutoChangeLog-pr-7776.yml new file mode 100644 index 0000000000..43660c000a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7776.yml @@ -0,0 +1,4 @@ +author: "Tupinambis" +delete-after: True +changes: + - bugfix: "Omegastation should no longer have any turf with missing textures, as those spots have been replaced with playing covered in a sandy turf decal." From afdf7fd177fce50b3beb74eab1ba9d28676bab20 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 30 Nov 2018 21:52:40 -0600 Subject: [PATCH 030/237] Automatic changelog generation for PR #7765 [ci skip] --- html/changelogs/AutoChangeLog-pr-7765.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7765.yml diff --git a/html/changelogs/AutoChangeLog-pr-7765.yml b/html/changelogs/AutoChangeLog-pr-7765.yml new file mode 100644 index 0000000000..6d7c5c4075 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7765.yml @@ -0,0 +1,5 @@ +author: "deathride58" +delete-after: True +changes: + - balance: "The majority of cult spells no longer have exclamation marks at the end of their invocations. This means they will no longer be bound to the rules of shouting. Which means sec officers will no longer be able to hear culties sacrificing the captain from the complete opposite side of the maintenance tunnel the sacrifice is happening in. However, things like EMP pulses and runeless teleportation still have the effect due to their inherent loud nature." + - balance: "The stun blood spell now instantly causes hard stamcrit. However, to offset this, it now also only has one charge and has a higher cost." From 747f5a0a4e5c52fed7736bf18f2adcf0f98a3a41 Mon Sep 17 00:00:00 2001 From: Ignari_Coldstorm <35156514+KingAce77@users.noreply.github.com> Date: Sat, 1 Dec 2018 17:57:04 -0600 Subject: [PATCH 031/237] Update machine_vending.dm --- code/modules/mining/machine_vending.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index a9230195ac..80fdf71e4e 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -57,7 +57,8 @@ new /datum/data/mining_equipment("KA Range Increase", /obj/item/borg/upgrade/modkit/range, 1000), new /datum/data/mining_equipment("KA Damage Increase", /obj/item/borg/upgrade/modkit/damage, 1000), new /datum/data/mining_equipment("KA Cooldown Decrease", /obj/item/borg/upgrade/modkit/cooldown, 1000), - new /datum/data/mining_equipment("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/mobs, 2000) + new /datum/data/mining_equipment("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/mobs, 2000), + new /datum/data/mining_equipment("Premium Accelerator", /obj/item/gun/energy/kinetic_accelerator/premiumka, 8000) ) /datum/data/mining_equipment From 58b900fb0ebdc29eca99c8bd9ffa9e9a765cad57 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 1 Dec 2018 19:49:24 -0600 Subject: [PATCH 032/237] Automatic changelog generation for PR #7779 [ci skip] --- html/changelogs/AutoChangeLog-pr-7779.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7779.yml diff --git a/html/changelogs/AutoChangeLog-pr-7779.yml b/html/changelogs/AutoChangeLog-pr-7779.yml new file mode 100644 index 0000000000..4202149f90 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7779.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - balance: "The night vision trait now grants you darksight for an entire 1:1 screen, but the alpha of the lighting plane with the trait has been increased from 245 to 250 to balance it out" From e339bcd2ca8a7c7d8ee2662bd73dcce95f02452b Mon Sep 17 00:00:00 2001 From: Redtail Date: Sat, 1 Dec 2018 20:21:18 -0600 Subject: [PATCH 033/237] Added a new carpet Worked on adding a new carpet. It isn't -finished- yet and Trilby is going to help look over what I've done so I can make this work. --- code/__HELPERS/icons.dm | 2 +- .../objects/items/stacks/tiles/tile_types.dm | 8 ++++++++ .../game/turfs/simulated/floor/fancy_floor.dm | 5 +++++ code/modules/cargo/packs.dm | 2 ++ icons/obj/tiles.dmi | Bin 12273 -> 12694 bytes icons/turf/floors/carpet_red.dmi | Bin 0 -> 3805 bytes 6 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 icons/turf/floors/carpet_red.dmi diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index d2cb3baa6a..bb053dfbf9 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -36,7 +36,7 @@ icon/MaxColors(icon) The icon is blended with a second icon where the maximum of each RGB pixel is the result. Opacity may increase, as if the icons were blended with ICON_OR. You may supply a color in place of an icon. icon/Opaque(background = "#000000") - All alpha values are set to 255 throughout the icon. Transparent pixels become black, or whatever background color you specify. + All alpha values are set to 255 throughout the icon. Transparen pixels become black, or whatever background color you specify. icon/BecomeAlphaMask() You can convert a simple grayscale icon into an alpha mask to use with other icons very easily with this proc. The black parts become transparent, the white parts stay white, and anything in between becomes a translucent shade of white. diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 907b26c75c..5858c1debe 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -111,6 +111,14 @@ /obj/item/stack/tile/carpet/black/fifty amount = 50 +/obj/item/stack/tile/carpet/red + name = "red carpet" + icon_state = "tile-carpet-red" + turf_type = /turf/open/floor/carpet/red + +/obj/item/stack/tile/carpet/red/fifty + amount = 50 + /obj/item/stack/tile/fakespace name = "astral carpet" singular_name = "astral carpet" diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm index 195245d967..034fd0e606 100644 --- a/code/game/turfs/simulated/floor/fancy_floor.dm +++ b/code/game/turfs/simulated/floor/fancy_floor.dm @@ -182,6 +182,11 @@ floor_tile = /obj/item/stack/tile/carpet/black canSmoothWith = list(/turf/open/floor/carpet/black) +/turf/open/floor/carpet/red + icon = 'icons/turf/floors/carpet_red.dmi' + floor_tile = /obj/item/stack/tile/carpet/red + icon_state ="tile-carpet-red" + canSmoothWith = list(/turf/open/floor/carpet/red) /turf/open/floor/carpet/narsie_act(force, ignore_mobs, probability = 20) . = (prob(probability) || force) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index bb5e474f82..ef4f215db0 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -1439,6 +1439,8 @@ cost = 1000 contains = list(/obj/item/stack/tile/carpet/fifty, /obj/item/stack/tile/carpet/fifty, + /obj/item/stack/tile/carpet/red/fifty, + /obj/item/stack/tile/carpet/red/fifty, /obj/item/stack/tile/carpet/black/fifty, /obj/item/stack/tile/carpet/black/fifty) crate_name = "premium carpet crate" diff --git a/icons/obj/tiles.dmi b/icons/obj/tiles.dmi index 8b439d2bad382e60ef6e13b21d89d67192d6bffc..99f976a8737cbbb2637595c0c8e9df09bb6d74b4 100644 GIT binary patch literal 12694 zcmbt*bx<6^7v?VR5Q2x`vbYlnZh_$L?h+)pv$#tjxI+SAaSK5gCj@u5U?I5s?rnZo zS9f(+cXe0y$IeX6O!xHb{+{*wHdb9#9v6!O3jhG%zE_adM4Y?-{V>oFN6pm_=l}qa zz+YS6Q`W}A%H6@u)4|mR0PxLA|E!V}&W#hfutTKLZp$BHBuEd5lM6uINg=92BU~yr z4k1x!e05N-^kpLH`6#pTxz)J6-PtwY4^=}o-udWurM*J%#-<_h`GJ3q$T#m-@RT&; z;$Q*RkQ;BhoyN){zLr?TUR@!)DEf*(PbeywNHcQMpJuq&{3s)J29%`6_zgfGjk?B==zBWIipr|%26 zDgE;5B9FWbm84X*-WNn8Q67~9E5Fe0!)5RLWgfmwYlt_M^qKC@({tuGlP|#64C;f$ zEsRf3wDM~P%K!ixz&gATvlh7#mK#7ag*;O3pe5^T=*5mCF|E6DWLMx<* zL^t@!qhH&E+>QGuw@_S1H^pQLaXaC3)s6Fdd3)hw>Eppcc798KK{LvX8JXAZjM{{& z?aeJrbmCN_An@XS;N2hXZ={dNcV{1Ywy?p;Nl{z?@wXIRfV)5TcSxJ1rT@dt(08x# zD1~SM5d_~LaU~%8oWX;cav<63*I(5^G!aGm?5QKW+$w37^*_aKS4(}L!7UrX?J4_l zmYw-el!Q?hLh>dHFQmc@`-XZU#{0kqt> z$TAq7Ci??s&v5~#oh`f6TQ@7Nq{z?DHls-;MZYF2sUry%jV<$6klgl;3}CQRc$dus zIvyo~61CtTK_q489GkIWD(QEj*m~@B!R}&?ErYFI9t6{5zGA8neM@Orc=_4 z=PBS5oBEHeTMCtGGUEFx7);(?@xG!ieBNOwALB=kNuqbRG4U9UInIB0tSeyrH3Uo2 zfFTY5lyIrKY_lo;XqHFJPDdo5A!_gV11`|R}&OAPh0o~De%BESA;qyi3K zCB0{4m)j>vnxk0p?l!6{1(Uw-Cz(0Hwsc;&PO_KJhf;smC$~Bx0jyAW||mG zFcQ{P_dG7_5|}Ii*P`6?!r(gRm0cMsS&f zA@%gY69iIH!3tE7X*7d~LRcXsMUI9>VXsUUSRAo3^Nofgi^-$b|1dXiQI<#BVzL4K z%ec@vx({&QquKgT%~9^R5XFurO#0CNy?;DxODe&b{^at&E6hny%%xYPr&bICk_434 zQ(Wzk>SIJ`V7+ycK_z+UwfeWgMP5DuS=7(`_TUq6VHM#M0ATRMi%Ke zrQ=Pq zz$d;x)5KSGTlbIA(zN~wIPtQ>Xr)H3w5|z|%kEA&{IhLL?O!4=~ zKSX*0ypVaZ|%BTZ4MT>(1= z0j4Q+!XjHjZ@x?R(-y?^nQo?d)xBMI#*7(y$v_woTK;$X+emR~X=#Rtg;UTR3Cclk zB{=qLWV0jyNcR2J7YKy-jc;WoOMyEjw1pB33H(P(!IDu$c3~d@?k|Bn`c6s0=e_|auo$nU!_;o?ao0UkZl*Dp>g-8Jsf7N=X=A?ls zqEEx7f*fc+ZNl=}|Kemq{m4Jny+Jg?Ek^wrg(SO|0m3R$;x4~_q3#}$d9f4FuFr-w zI;f2`K$XEC?zM!2{fTM<3YBH!>Aq(?_1yNZ3jh_=HMbovE+$ZCX3$z(tESKt#Jt?V zj+NoxMVliA3@h^oR48(splqe1^@DugfD-j$8qTRM0iV+*#5tJxPcE_D` zPU{gx-Y3pPaN$UXkc!2J9eDYLDe++Cj(gm<(vr-NzZ8DWDB*_2IH#noLx7qXIYRPB z6HRpH)J!ogDI&((VU%3Tl1_!Qh&P4wi=~(>w(wpPz~s{Jf(KP+VUp*7Wlv}$3gKu5 z0kN`Sogb@c7UmxS3Q`LCz4dRXd{!BMlU!<1G0w`GFdI0U6H_v2_cWkQ<7yDq3Dope z-QaKFq4mod6=Y&Y#;-S&%723>YG9XU^UQY=TC$MsUEFim+vB~^V98-BUNW8TB)7DC zlWLkaG>eT>XeuvgkFcf)%M}rt@@pv&AfU~_)`mffgrY;xOY>SA^AI%ytt|%gb!Sl{ z!GR3%z;{rQ+n4K1yPrJOvK>_{z#~SykBhl69zVyPVr7?T4CrTx0Rsa+FKm8!w=ki} z)1=5J1Ha{Vt)RN&VrNe2u^zMxKUC!>5@?zS%TPt)#5-NGlQW^x%jvB%6zvF>!n4OV`Jk zvZqe$v+P|G#mU7D&_!A3lVdK7%zEL>$daM8=C$yHYYs62+{T*9g~_5qEy_(I3FdR~H!np#QvrLcK?C4kiB?=>88=rCB!6XlB-Vq|5 z6`jfak+lubRnD#34xQ#lXFiSPAgkd4d{LT>Aec=A3c9TRQFbDb?51)^uMe$&%wM6m zCp(a3&=AG{iIOT-KRcT{W+4I7q4&F~gu2~7@*cA!msyxEhi#+2dgEg4%{g+kYe)72 z@J=u5rzTFdyqoQrC^Gbbwn&!8Qh1g#a=m4qa8jn9WFHetGz6ab>P>2Xeu+pvEgM}# zSXf@!3n|77v)>$y350kA^D5GiK~3(23RdezR=N`ZGJMiEXfZ22)nX7E1K@84yjJ5p zp_}G`tAN{#2D!1K8h~}9fztMJ#k)T4$q!?-4ms(GJrp>6h)dFVvVjtMB2yX;aJOPh zj&u8-SCNY%fZLfxD-HhYmH;;B))wF zgl<_TBlo{np=!}8UQC*#H9s{y`286>c9c+nkMvs&fb6?cDFo7|3@K5c^s=kNRK$t# zlu~}V#{JW_k?sEb2+a|u_sOQ71`$#F*xE!8rwMH>$xm(^v~|joT%vbBx}UzO-sz+_ z9|T80(hNf~VE5u}wrB*;4skDfDC)aA2qHXBH#WF&_S)&pAt)Yof(*Wu_9@uj#eXK# zep#XQvPW5Z+IWUZA=eXiYhz>ZZDx1%4^W^3R@PdWyVH#yPy$|u){zC(rjaL#OuR
>Cn!4NFy^ zevNAe2=wF+1fESzouPKi%lDB2{@-s>%yT}iN(8$s1)i-cC;gnfXm)SSrktwQ;AQ5M zZFzUUE)U)JL-?GWkw4TD!Ff)#o!$l;+e67B`+a?VRc6q2zGrOcx=wZP-)QiVQ~o`YYlnIBWrg~IF}!c?c!40YsJYbS^rD5I;$Z()4+4NvhwoQn`I|* za&ikt$2i3B8v|}#lBmRfH7}TsoNo`2Q&H{h<+|?0G8ddNpa>$?F1X{DUv()mm-N}< zc)lgy8PNByAA4CaRTem36Ju4GtF{(B7*9k3pyu}?3?Wl2++VBPG||p*00Tu;OqZxt zEh0>^{?>^=RW3)qP*4=J2Olrc;KRD8rtVg4gAm1M66w~=KEp??yiKl?=itLfWI%!h zFP`LuTk4;APQg+^dZ4IQe0X5^~$q zSt^;XNjP$pQR8`|+2+agf}87rz7~tO>qDOzdnL3!ngjX5I-K!>46NhP3zI zM~gk1n?>6f9e2OulNb?!H&1E|N~5)h83QA1ssJWWKeWJ{Q&l}arZ7S0Wr4#lbc_*dZieW5yNXHrim z9g&f7lQjvNW1>tV0g-xWddvw_W-ub9bq@kp6#2CZpf!Lj;hCwE;lB5SF0a@OLic$Q zqekoAIe3o{gV%e7%t+9gwoO3sDo6tX`GR0@Pmh#*JGGeq=YMEMzT(gAqF9F!szquH3%3fnM8FeLDB+U$q{?XmbpK7!b23mH17$pkSw8hIz5UA^z+61}Vn~mh)26z%YrQ6t9CpN<{_B zKa;SzNi%Fc?LbXQY3=5gf-of9yu7^#lvtr!fB#7jX%$HCabvvHGYrl6=oIOc7M|bI ztM#H?3|+*dP7AGn+VJOh?;o;d4y~7sN=(vOqnrj?Cy|WAC=8_Rp$g+hB3=bXC^LYF zTUw@D7!jmXBJ#4Kxg!BRFHy@_%3X-kQK9std^C^U;ryR=y~NK)n97z$n;8-?uT)CP zd8pnVI@@A;ilGUwm_8ES%Ib50@9$V|?ht_=Ci#vF=|N(}n&E}L(^u1Dv5OSY>Eqa0 zGG=??j6u>YL>On7-m`FJFw`u@3JPlu0@INlA?s+Vuc#NVBgSEb!Jy3nF3E_Hb%g)w zr2AW3gUygF^d`+?H6NkUyD)goduFnXdTB?{TG(R^whGG|0x;m~Hoaxv$?~uq)A6MIy{%`6+9uA-C~i8%N40 z%wv)KBj!LgCvEHci5|H~6ISbOpXBJpKDvK3`@}NUOQN0}(@=Hd`D->%oViI$DCC#> zAeBQq`O?>^N(Y}?Q$he_dG$sg7xf>c5Hm8;@V4P~m4+Fn@H?7qU~Njp*sl)Q?CfWH z6c;C&A&ec+$6WOhLjLKi0@UIR!9q98o(Yqn0-rV4Oaj2@(z_s+VJv4mQsVYC3Jj6L zhKSu>!kZs;x1#o(nSGPhouDhrPtxM9=|Suylkup^GDDN`Wd1Kq7OJ1=J=ZuBYtu${ zUrpPC0Ik`^1~7>?Y1;@~Q<7pRZUYfe-+E}Ty**3M+`c>CR)xU_NX>Q-S0lWl7Y~1? zN&{~i3ptdMzXRu*0;+pzzoS516skiy58K=m=7QEv_`i+rR2}H36FHq>n->}N@Do2+ z=@vGN=?>aEbAiL``-H#&hT$%!A{IZNnRjeiZj{zN9{!_kz!a(KCcwqReE_>jnrNP9 zAROVkh0iBr8-%4zX$9a{SNtO0M{YG~!(Y<&Go@)~icW;3oh3QoFd5=n$J-SqjC9~f z8)KRYwJFnMuDaD^Y$bp$%uI(pz6kVvP_OzCf;2pEqryFI>p>E}qFba6N*S{q-gnOs zs7oHNRIjU!6cbi;HKu~P5ai_!7mJst<_=G(y!lidleT|awxSrm?yM4!5^h$(tTm5u zq3d)(N$vcME)@LqgKyssVLNT;q4f0hNr&47Fd7qj7M#O{TGwaf*}_9DC-=NZVKvSa zwoMLfmzLJ)B6FLd)rqygZ8ted>L2WE?S1)Z{!rB!7urLc)%pj;)lvHWRU*{M$WtI@ zCv`fW^?2AWn<4C!H96tdv~hF5#GwqSWN4aHHhcc7hZiJ#IU^>pjC*jQKx;qa z51!GkgD9ZqRrNQ|3M1VNa3-4|#i zU~Qe6Hj}I95Dk6_gI?dFpKX;=Ju!az-|db6PaEd%W^6P9pKj`0H^k4ok?}!~H^-Nv z<(gd+$oQg@Q38giqIdK?UT%SUhcf`ykH=|aD%guHu7!8KN?hk_PBmN4rvcQT+!k4% zEx2&>bej3e(W`_3Hz+&?ln{M(O%TbjZKJ5q5!uCaAgw;08NhM#uEwPIQM-%q`;0yY z!zFUyZI09OyOrmHE`rZ}KA{jvUbvbo+)24lHml5pRz)?M{q&Rw+tbN*z)-RT#2Q!D z>mz~R?j36=y=e>kNE5W3?_4Sdo8DhaV#MeY(Z<_A(k|+M+OX>TNfP1k_Ng4a9Sn-w z4g!3x1rzpKD9Y87_)O&G?Ci-D);eOcW`_tkgu7y{B7*$LK18p_-JJo@iKtH+%6--| zH_mv-5JYT#v`Q9VcBi?kR}1XD#19(bXc4-4mEM{XS|l2R$VH4wTyxOMSQf8DRsfZ(((Hti zI@P=2^uj(m2cCRu$(ab{t{4{cZGqF@W0}F>+z>9pCB%gLo_Z~ukC2+`do7=Kp0p9S zOSP=sIBeB)&f=sFGvJF|nH!-v3mhyEgNLYsv;*(xsSR`sZSJXy`+eQLk{ohGZ~m0_ z#uKc%k8sctV0>=xoQvodd`vGqNGp8$;=A)nURQO4D9MbLoV$p{Gcp|S<*zsCo{=D) zVp^1?4pnwShJ3bVS34VfM_M90xURj3XHJB5m#-+Ea>L!DwaN``MNC{3v(>jdK~L2DBR6u#R`JzPw^Up(X< zMLq`?8e*)Zr|9K=|1!hQaQStHWxP;AzF3`s2#ZrhRZUG~2;r)Jp9{sxTFNz1OciGN zMxLBdX;yq~8%m#ajZ<11K*@tS?cy;j9n;we`}0E0{`c~^sJsr6I(tj&iEPJQ6o-js&;St4|Y*-Gy$ zVB=0nFgZbpxbKVGPiDFo$<6PNL7M4YI$cD}G&;^`TEqhux^n}8IXK3-cO3jJ1IBX8 zhS(Xx`KkhAPZ#%lWNBPe0e60D{=6q(5m*tr5&~lOM*@22^e4A`|-1Zt+ z7s#~`>EVgqO=z*Q`w=Zc6r+e+CHjSmR@I00%ITq|VC;&4S3#8W0Nrfwc<6{Chh%%b zCiWydg}dX|n{PfQ*({FCg0Abv!q`PP_kmp>nr27r2+Cp|uy6uM!qP43CvtsFdv0c4 zFUSUGEEf))Ya{xp3`tKn1bbV3B`Gp!`U0s;FS~KHJ)A~X&40UVJOXHGK=J=lS;=u# z^~;heiX~6)5=Z~-+a3t(_GhJBZ!ym*RPbN%4;)Np9N6Yi7IV}e-Mo4V-vgqyqm5i* zX8WhPT>BI3;%SXuW+G`0q^DM)G0V06YC8OC=|oF%Xj+eI??cdm5aBzG{=C6wuC*HI z$$Gw#Y5U69+tLCyDRz=Z*q@SqvSviEteN59u$zoKze-`}Nqp}pn#H(fZC{k|!hue( zEvw0iHea=R5vfT8!?Xg`-iW|>cxP^$E%~D3wLX7__A- zn4FYB65Vu1PQ-i;dav_?R;8J^|c@58K?+AvzgacZOt?S-F{VfQQ74&X*-=J4=vgPoDo59W6a6m&$|8bk)Z zIsm39ND-uW8lughW1PT>LgW=%qa@KKZO=x-vFAABGRKRLk1sOwnt})3=2f6Lz3_Dd z=hAh>+iT`@MIFFkr4*H!(=WDB-XPk{ZnK70WzwFpv}C~CM-Ld7KS`S4LV=VCkDlt> z<>g}nkJuAj_UToCkUC{MKmQjCSJsDoL|$nn7M5AM6{r5A<)raY;^kD;Mg^v{fBVDd zLZ|)<--%V;d7N&~v+CvsYa!AqtG|jCZfa4LdBlH-5h+W9xFiD+UFL+5wE2ssKS*Vr z@53HFT8@w^SmT^B`;3cY%0Lk^z<8jFI?-XL&2s%t2?kc14N%4CWo}vbWc5=phqbeX zsq^v@F%uS*{~xK{e-={rZGE-LOtD^WunF*Pky*Uhc=Q?&jZdw6bF@UyKyTMzP}D@P z@KtSXZcdIV?IRiVYsDnEq{1FiGG)ywqsd&53RRZ!X>xVY>y3+kt#UNJsbEp{tYyoa zy@BQY-j30Jp#!E{pL6vJ0d022^RT{XeE9r9Wlj{NqT~Le@qJXj1ktBTvMR8%E+OiG9uBG*e1VgvvX2>jy$WMRWne`5W#`LqFZ#pi7rHq5cl z={4~FGyi+cS3lLDoY`z23g5&|Kn{SgM?ZCDn!3*))sQ&X%~Qg2p-hXRTmT()!Z2ua z850>3MnGtr8y~~xuVxHHkJRL&tXMwJ*M-_P!Lhs2lcvj?d?5mNNb1O%7|W6Vqg-1g zVcrX<7unFafxvI!ea=-l3o-YMUkILzUa|EJ-(F^i2nPaxplmImJs+V+2B z2>kabXlj<^J!zx(lZnsT+=cz0mac1#iL158msLdYGko}Fkkn83GGp*l)u5$|4R(S* zJu7t(w8uGQYLzI#aM91b<@&khH2fSL;sg13T2U=876Qi)zLZDW{IxaBJF-wVF?YoE z*eMv4R2X!h+`$nO8gE1mt7$(WRFio29D97T=J^u$1e;6R4G|{9grnoncR)kn!GG7F zyBS6idbD@vjTCR3TXeT^uQHbRNwy9?R$|?%tR&jpc5e<%IIix6-i)WU50p!^^xy7N z?Oh^=;B*H~eE6O8O3h<~FBk9!|7dIG&FXej`=jVx_!=St2t3P`APo6&s{{z#EyGoP zTqqRpbA|1?-ffAQ?ajAChug)U$oC75Zm-KH&U##_2ofWTim`WUCJGb{1b**oVB~GT za?SHhI`EA16&+WsekVXF>>fccpTsS0y4?6NFfb2sEp*Fv+L~ZH1Fe2bc z&)}iQ+uGrc-K*!atiC5WC#{8)qFSC~8|?Q%&*F>!DE_Q9>{oDg3DqUCKsL0YP!G{3 z897FMT~-P7P1{khS?#WWTVyvM>yv*A>bDL(ox_DVa@`n5-6BGlt(02-`Y>57r2pz; z(}q2q*%GwXE|scCE|I+ip#6?~68Z_9ex+ZhAO_&b0iw%z@(2HRa&miT(kw@}c7C5# z-<;D4v5tf(Hj_f{R>@kGLXWJaM1Rhd#}0Di3lf0t-c3{5J)`dLn<})+369>3VuN|l zLd%g!_S4q4PUvmBw;LW_83JqN8Edyl73aG=*VC|6;%|SnszXFJZBJ??f}(EWV@@`= zyIuko4iRNOab^goqvutJSpLt%J+H~hw{|nlyvf#rOr19XwL-pUG{x#MDV;64#p)m{ z_uJNXGZETGF*fL_7)BRjxv$hlGd1&HULs(6@pl9tRy5=&;oY)*GwOO69qTu76>`ZH z(pL@FT=$lfD`YbbjxajqG|{`MjV?nqNBC`%yPFp1@j;i~=;)|#8(b9(liz4TT6caP zIT>4VUR$87S{lL*_MONy>VkI}oqo83Wp<#R3E?5?4w)ap&yTkY9W8{~d-ugKA#evg zE#g)uoN~aP~%8gRO&%qHIS_)W)k&t3FKjT0)M3 zM;5!1)i&JJ4740lD$A?X45Bc=Uu|kM*?bqGCARNi7k78V{CXWvF*EzuJ|U@g5*{`N zZ?6v33b&eN&?&k?W~9y(Il3LcN*(gFrimrs?$PXKyk+Oj>YtJ`-Rw$!XpsNc3f35nLYFVK2Lx`nryrTHm*=!EHdI{3k2 zi6|yD-52mZ_?yi#FYdDa=LP523^^*1f?|XnE+&_Vk*$5=B)L>F{;-$HGWIEy0RGW& zogCjy#xYnJZL)^{+bf&<=eOb3YYVeU@w#D#Bt?csyIzgR7PuVXcJcPSGr_lQ>7H+Q zQQ8jY4Jgbs>;r=C;>VuQ@u{rguxHZ5`v7`YbMCjFZHh?Ok-IBwwgLapyup?T)SvK| z+3nV?e(E}!2^y2Kdx%)z|F(jpts3P~YFKDHr4Hcq4!V2i7wi`zFbH64UB^1>8a01N&ciz8so+(FOf~7n%N3qq6@& zV|z;KLJB~3Ld*N!itQorI1=nZx+iqC2E7rbezKgAK+w?u1kyzi*0>S`AIol{0M*>r zH%q!0Ob}*SuYlMX<5xjcz;9PQCLmK1LCc0kyl>yOL9T!&Kem%H=4DrXHi9yr{A1b< zfj7Zh-skA>U3|cg^UAO3cN2lf0!h!m$$Xx#v;q%r;YqK8Z_)lakkJLxZL^Sz+JdY} z6?k0u#>Zu|4Y=IDR|5*38KXDg>%0#Q8;6h3KiRNQWOM|fgVkxiYHK~<^ja1kP{=U{ z4BCyP)H5U9N+)$6dH8ixSsO3pObr_hV}3B_fsc;j7`3=~EvpuY4$oH`W#>05)*=GK z?|&OxjZacZ!`ev9&Bp+55RRtc-q4R@@Dvl zF$n$n;DMe~x1;A%j&`*81H@1VcrDJuB)cE{9v%-#{o)2J0m^D>e4?VtoS9bM-t&Iz zY(e1U=TjUdC8evU(WWFZv0eEk7+=~DjJ@s1k882bi;Y<|4`BY`Lsh~((ALiGHEqf> zpr-9F+RlPKesn!GQyBHqOk<41#wDAWGilVF-%8XUpyyJhy_2%#b{| zBqSyRNx}<7{oI$H)0ovVFk_EGDoR<1rxM;}=4^0KUI$*M7m+7&3P6p7_JR@X^yin{ zNw#uSSC_avMpzFGqH9&C@}T7pdwxZxw11f+qT*tJjG%Ry`fc^bWtmZ#`AIqFq5|T3 zh6V?P{4N-Rf`Ud)M!r`YwY=q=UIBWA6eF-`vusk5fxRPM+eBDxe$s24?Vb5;7pZlE zty-2XC7mfMs)|+nz%wT@5;c12@!=t6z!D*lWjz@mAD?Wg1{SJQI94r=kbuCzT;bp9 z86}0mlfy$R3kx8Kr?UfXU3U~;rA^YMWiPw7bI|O0$_n9}niGJ_ zxGhGP4=}Ea#SobJQji~q71-Ot)03!ZbnVlq1V8@{!psUGPCq0hm;5TP%=~BG3L zm7PX;2CR;rh}X{F9)qJ;|1NSRr8_)2{+sw_A<$Zu1uLB+w z-Z|cBRpY@m$zS=<;OP?;9i3fRXlHL9exTo zCw4(YC`?i^S0sXMo00fJLCFpFgCiN4 z2s#`m>IrlEH^LIZKPGQWc zDuz}o=y-%0Wihvq3G13YI`NabFx?HL1sM>yUU9s>UM!UJ+eMu#xMsQ5E%f+&e6mzz zdJrz~^*%}DguvZ0ccr>w9&H}HxnjWt;@6;B6Qd3}>CN+~ifA_}XbBMO9w_>k&CsGs z+1m7OaZATEeA1;wiLyWtO%Z~aEVRO5j~h2v8wY2IZEFP8B2)I^eorkzkChS5$Xch z1VHFGwn8r-=Ckfser8y>9-TZVYXWp5^?9DYVbeD>ERv^UTPSHep(YCnTDlYuG>-fB z3i&4ljpXu;S^B2ZN-bd7=s&F_O@N5nGooL|3Qm>49o7w`yB|9mdVsRBG6m(%WliT_ zh|eNKLfp)hk(ZZ`wUe0(f-$j6iX6^7p4C%)a{_XvKU|3iR+0S00x$gS4<hzSM0Pg$;NV)s|C1iD3kk?HUX9$ z{I8l`|7X%v_}P=Ymah+<+a$#~nJ84}g?-P83P*3xlOmxE)Bh)8Od=d##TuSzRPkv8 R@qY`zdpT9v8fo*e{{l0vew?Kg4?oNURcL@Y{mqvp-L4!B$?#*^)_Q&k( z+1Vfc>Ydl`Ro%LE{eDp@N-`K|#ApBj07FhzN)0x4!+v=vNU*COgSjC907UcF&~cTr zbTN0fb#k?JbN~Q6vyy*+qx(3}fA8HhN(t_@1lXle|Fp0%rW~q0iWI0#INrT+MEUEU zXaC`urAYbFH9U9Jtwl26-PmZoie7%mS+mEiJ!Ax()YmV=>K3$HCt753G1XJ5a!o(W zXBLDh^6ARN;F;`I{4JTLLH_<=H$#EM3M&6ofqCXf)I(p}XWc(mAw=y%fGY$6#xIP{NH$g`AtQ1VASYxE`bR_G6@ z?&?L)gD@Yw_Cqw=ZO|E+{?y=JXvi&@@JU@!E*F?+2n2v}D!=pDB0mHWS-1T4*>?P%~$>Zk3V|Kn2)JRWlsGlGnqSU;b0td6EO5()YT z^jNAlI`0~6ej1|MYCZ9s&8|+qOut;;j!mp6O?vmN7!$hP%_>hiTHQYR_!uSA=lbH1 zi_A06H9`R*z7@2-i08Fco6Lc6ZWzWu-wL~Xv<-8^K5YQ`5pfsXz0Ly4T)ETvhB%NS zR7_J7BrQJ6HIXfd+&wge5+(tpL>MqjFkp+Y%>cznpLX6E4ICkNTulgu32B3lP9S^n z9O!-ghi$P~aI;(wYj<6Hx=_7<*T$6Bja4xF;X>KB7vooO&Q9FfX97SJUq5agmy+2* zFQYQx>sB4w3Z}58c9&W?_3=heh?(mszJ{VC5CI>RTe^1QH;2B7Gb(PjaMpb3Ux;9P%#Xd!6uL;he#WNw`J|e(I584xgJg|j~ zzWg1Klxe*$JS#rL;IxzB#q-Ht?8`z67sngQ?>P$v9kmx2ZPwmtOIe#`3vFpWHos@@ zL_N>*2z6QjpVO*(h2*%u4KZKGz-d#x@6C{}h^NbwP>Y&MS4hD8xR0-!sP}D_e>UkE z`3&lZ9n1B^1#wyXVdAUZ9yz$pQ;SOzsn61^Kr%9jOQO^wzx8#mBL`>h8W1D~(3}OJ zAcdGD8BcRX{E$EiH8nvCGR+_i4`KjKaeWuds|qPaZT`7%JekiBtx1>MEA35*P+S=r zT~<)GM%5ukA(ok8?!1o%j|)F$B&c{-uKiV0&HV7BUMd=~clO0~w=c`*i9|bhHITzu zY8*ZNd-UEJISPWxcK~UaS5@dT;m~di31-s!0(3&gYtYz0aGG8y&^(AafzV1zW*^OP zlPXATG08VD2$N9RaI)z(mDt}($W6Gj;Nr27;>4HA6nk|hsKxMf(PxWRd)_4q!M^+o z%1u;oBw&(Ytmn^4NCQH_!VH6nPiU|>Ts~HhN@QL!_7qoee*8~{Xx_Ir8O1l0h7fH{ zJVi}Z8{&)?wH;MWRXjw^S-r%+`)x|9>Me&e0BxiaBHzx;x!(#|@3JT>5cbpBh#LTV zJah-?r&8K324t)_>14%6@^e>r3vQ&+*hSPQu9nUQloHxiVkJ2es&Fi>Qqx@fLzA53 zD1{)`M+wB;_Fju0dDag&%#;C~H}68exv;Qf4WjvNMIl7g4wEbMVNxXo@`R_ zfibx*3PPJUwa}rE=OG;E?>68{JBpgIw8EweGy*}s@pwlIa9RaY(OEG_iGffNI(-7K zQiZ|NSCNC2Q}mRT{=H4ts5qzIs4H9WPg|&?`dkbJyT&%o&WQ=*nXH${aIizr(4;l- zL6BBu*#Zto0MX%1Gi-{Z3XXD6DJ*|Q2b<~p4>X-eYXa>b!cBGdsz|!a;XWxT&G=Zs zN0)K5Ur-IWhm>1KFc5k*WXV~L(t5Mq)=p(xZ1{?nN(6N&yjW-?4NT~^!FT5DG|Nyk zh$-{P5GL6x6BJjeOXbsNQvboHO;qMA8JPM*RVoXT21SCL5ei6iAn=~!zzzyiPQgtC z-X@8D%ACkPk&PO+8m47S)W|_x8l0!VlFuW*hNlt|u$i-JD!V>22Y(ya?C!7Y)uRXm zpbMg_Y5o~`CnQljd^Xe&hvtrB&zxUYW|DzY%HeJoMeyz0H>Y$j{Hlx+4}oy2-yAerPmKd(BTg*Fjh$IpRb37~{1B_4K! zAQ}UD*{HeJVlOjH*6K>P=YIn;L1KOqLmp_m>F_R zMvoXzpKnp$)fxNrCrl@=>Gr=Z*~etD^!DWr$UHn3+cTUr70akN{kUJZo+!Sih4N(7 zLFM}sxou@%2kR3C1eNVKgMHW7pH!suvrKAdHu#%Bu3sXH>_&wjzRG^>zU;X8V1u zpjl{o1jtIu>WtK~lX>*gZs9*Lj^mUSSjDrj)}UdcYSwfFp-X}g?PHGO|3EkO#l;Nj zcD$n0S|F@~-l1h>phk`iBJ+)8te74S?a8nxX_v@I`DrfHao5DtF|78MC|5@^b#@L{ zhd}$O^XC^$O=(nk%H)^_z~^7GS`FB22q{weMKfkHlvvc*Fv4?SUpY&O%EviX8S$T zW@T$Q4@8{b3J~_u2~{*A8Ii)(`p1s;!^2DMK;u|IPBE=%3Z&0UGJiS;UrlxZ+CPqn z_VYFu@OB zz-PpdAq+Qdlx;C8t};)f>*W~Q>EMRnZ;P!FT=?XZ7Gg?B=w4rr)!TOFjoPlQx7ayt z#33RwA>o=LL7}+51+WO-*9}U4TYs^oY0$-{=&g_-p||rKj);$>MmQ}roB+xUDnvE9JAwi-#3(Ou+{a$O>vF6e|B=M4;5lDqJ1H{ea*HX#vd%ji&01`U99t z6c-=5XE=~cR&n*;8~6c+;(q~Yf2G6QFEWC2LKM{W|sZARZ&)|Uunga_F&#}dFkjY?l);nX(H+e0J#VoDYBz5%l* z3_5!KTo)3EGZ49>vH}uV->1%th-4kZ26;lEnLJ;p1Ucn=1SGYjP!JLM6{&;eS-?Z@ zC@L~THNFp+5UOhqS!qg1-LR0)^B_mA3|Fp}TY3SvXfWF)viNQrr62vCQuJbo z#T5~Utm;z+8Z(J8`o!v4!Ns;(cIaBxX{P%AojUyt_@qD2;SPWZS}x^`2xX=eT$MCL z1RFa3a{l}uhu_pKv6#Z4E8jTzE1!BL z(3k2LkacUC1-En`W!#DRvOWRDn)d4Fu+dHK;7QzXuxKi*s8XH#YiIVBG4i?bC~_yw ziIKc0Q5IQ+)ref%CDFR4++y2ke$Kvg%UIoa2%fx zl_L-BT^SI`;&4Y_8!SfJLR5RjX9ieSvytAd?NiRuq3jb!Gfd$}t1&bsEc+&OkkRg6 zJndb1nJs~=$nbp%(%R%yW~X9^s1S6}2T{@xKWV~CQet5yVD7tGqY+Y`krB?fkyD)N zT(+!&qDfImk#0|tD3wYRhqMYl{)YRb0qDcD)zEYsDq=!IH1rV2G>Hlv!s_RONsc{F zd!l1IdM}yDo{~SFw0Q04-fcbj2ZUTCux2^~0{S@8>|z2-amK`rWzRoOQxMooPUll652Av@DDBK(TX;1< zWS;x~mtCCWb^njA7M?DL zt2+Z@Cy(qrD2g4HmbiN*2RzmqDo!FVLZ|74U!m*5_hHdb)I+Tl(FHBHGE>=t#dlO&Fyu!CLWu4( z4sp^d@;bKdOTzKJ+aTyqVeO-3eokhOMN+`c|2u11`NF7lv3KWJ^6&x#z-T89ge1^R zSE@eVT_<_5_3iJf=H&Y4z>XoX5LB0=L0rw}|I7z~(QSTrx*AJGlO$JMTuewz4CnMi z!W&r1wKti2_e^BpQVD$;ja6Bq)?m`dUOS??zq-A^)Tg9bT9x1QKlR!mH4+8T!N227J z&p86OF(94z1;pv2qpNFqmQJ|OUfN!?m!ihd8Uh`<+=Eg%Z$XMyKxZ}@=bNb&U_E0P zR4Exka_!bT7CbyPWu-&bT1Dur)SUS&?i1!*N?2^GXZLGaUkVs1F&_-~z2cj;k8OXX z{Pn8pSk^(PQ2O47>$3yojk&%O0O5+@$4lA7xgPq0w(r)H}truI)X#Dk!iDxrDRt48UQg0HAy60yFTny>*OMBENO zMGU}-MS+EmgN`)K^<9O*f;HRGC+cI$UUezJYQnX`2S#RXr@4aBMk~6x&mbU;k5?Qf z;=gZW-?w@FfQiAhhm0JVocAN}@#%^5$p3ipy;6?Qa4e}HEH}SeZTE12DJJZ%>?3>z zasG=@)^$9%K{_|O~RDN zGEBlH1`Q=m4mFf9O&4oE@xfC+3Dw|9@)uK(Sa%&X!-`Ry!{$T zHSvnk3Kct@`WP+;Z9az1X6zU|jgjw#G>keTVq#~Z z&?o;ln@#sSWE)XvZbF4w*V{ENZ=B}c&gfD)LJd!8#*9qS2I`)(nTkzk7T7ox#XZLK zk_($x5e%o^;iXCBGneJPgX>%Bt?|-H5!!&jMOUKiw1=Wmq9DNS*ED?53VBkW!w3SX zDHqF<$$e<^0&y37`05a>{x;Xl_3D@9#X2dgEgtcz&|w3 zTg)(?ot>3{!MUV@?i@lwp8^8F+lUr+2{IaJb|Xof&X=h^LB(HXbZwGCvOT)hvD<}^ z1zl>?>H25%hw8LKrHXCCt~g`pB+|xM^bSswrSTAG_E^JYCv*kfjPwArfY3WOx;rSS ztWz}Xs;;tQ3_0t&x&bUDAt_@n+$|Z)(yiO#U3I}NArl$6jr(Hldc`0XMI}4*+|B&Z zBkxXIq?uZTtRQZY-o6Giar)v=d8Y`0}!vpGR9x5I{9lbGW1btG*|-**chW4pgTU&a}wiN zvWa}W*)F}=Q7*VYFJ7xq>4{QWB|dZf>0dC!lr!@{UihafapZeVD-JFr7A@2+Vfcw) zEk5-sgyftn1l#FV(|G&Gek}xT=MER{L{rVi4DMVTO?l^r>5f7J(5)!iK^UJab)XW5!^o- z$bXGckaMUzO5Vd9mpFZy!mZzW$Wba!E~)NAke*s$#476*YYr|zL0ZPp&}6edR&B~0 zVv8{vZfn0w1gQM^-85KM4uBaunCa7*FQXpqIlM`Z_e1zVevY=(pu1Kj%Flnm5VZ1c zNCa+4;V+fO6~YZmr?vDitMNfY`Ey+D>^;Lf{htVc`X=>U!v?jLbi@I+W`SO|5*EwW zy2w@b<4#hp)KSy@c_R=k=BLbUPVr;GpNc{JBsn-0L+FidxKQ~*?Ye42Y)qdzx{$1@ z4RoGuO}u^m>lzCaYi9`xox`_;t3o4+cYh(9%mCYNK;Wq7~=g)GNN8t^RyscHEPdcj$l@3VBto$$|9Bt<254>(*PAiu17%Q7y zFl{8faf4%s#J`4biQwM9?ZOTJ8zAA3Vg`l?ml*w1HcdeKocvpg>Rj+b9rrM`9R026 z%f79Wuy2{gw|H&YQBiL0fq#bT$l}96!2c_Y$mPjrY(O%WC;M{bH0I)URGf z6qA!PdPnRvy>ZMj0Ier*nGTt_s(nng-km05;+x8MCRyXVEWs;Ac`6L?<5t6a&MCY# zaTDb#HJxF?d`i_|A^&k2nBYqKDbey~7iPP|;)RlIaJG9n(KVUfV#x8cyl{G*cYL#6 z$lkrmm1y@rF1;6R_c&uacpxPsbC)2$J4YrWma|-}F_pX`&%4#h{T#CWchU<_R2c#HgylHCp<_6!9r7eDfRPXV-w}Hd0e(4eQ<3Z?o(alrDf$5X^(}lkyv0 zW@!(pW}nu`(6yZU2g5A;?E3oIT+(DCR`QR{sJgloda$zweYc{ec@P!bK>W$8N6TgK zT~qHH2DD+`3A2n*-c7EsV6!+JLt-dJlKPokjj4{0P|ID33JB3~K>^3K)wio&I;B%s zi%wq@`B%HpW6skp-*gtq!vPubNjSQf1-ldTF8uTJo~Q?8G$Hpif7)RvUWQ3LW*0uI zT*aXJ7HU-bW~iU0Sgb^5%HLB!v05gY*aJnunHetEj{Aya2u z-|Impx9=gTTo<|*?%{TF*1qZkjC}1&`i}AD-@Et63hWn^N7Z}6Xa2kiPK$bveK~|x zWrs5+BsISQi}3xBEfrXOU7}W&Cv&G2mp=Y%kGaSB9!&+2-s1#kE#i{ZRPZKQERlRe zf5CYD!_w*9b#flaA4LP0_$=CX<;a17YnpM3X6wvnVe4mIE7okORe?$qT~J`d2&j+xwh2e8zkdTn0f6N=_gj0iyE+l(mSn?@Ep zKxd#NQDchcZuNOQMrbC5ev(#JQG)*Yfzd_p1Zx@)#2zoxHo@PWJYl|zkm0~c8eeJV zN6^q*scWmORTK&8hLTfugL9Dvl`(<$5RZHZ zlH6do(y@{TDCZB z&eoJs?v@q4Q>1^oJnwtkC^fC6?yrdG`CL2Lk1TTEV|i51@=DEutvoUDUNLEq+~{LJZhY)+0FC-S&IvXj{x#Y_W)&ydjP+mBc2D*eISkAsRq zIkf9$mOyb}Fzqi`9#%{&v3XuC-9%j?E_*q!{S`2C0IJmyJa9d*P|(GX(H-5S!9l$} zeF;4;LnvnjS0TqkJgNuxb7Hj|-0-A(IKGv|5LY6cin>>HX1fY}heLNzxhHr18TRSy!iT{cCKu z+IN_ugQG3OxEr4lQ*TgGqfHY(hK_nKdePpXsPAcV;XUotEpme>_SFLa{2(>Rhm)P7 z3ZS*L;U=aHU}|ikdca@|r1_C~zH`Jazg2Bv`1|8daPrg_BBISs;}->gK6ec8)gQ3M z=y^@OS(*msgA~oy*Dq>>8u$NW~|U8a%wjPtPr z*D}+~QFE`zEyVwQTX^{n%1tx8s%6v#N&IsvP^kg{fWmZGkfM7b5Smx0b*}Xt`^5QJ zu3yfu%U+7b(x43sl1_Ov_Y2Wq{;;~aM=EVm1~0~+?675X%B#Z6>^uSV76z6}KEdvXh+QO?qyzHYJV6XB@q1H)_uq_`Ao>rSdtM2c_pWtol6w)xO%M(Q%34Ydw|df$`113#*!mhQ|K z&bxUjs4~}Dj;36y0%&0+7TV6AMj{~`il5X?77MW|@bRBIg7)x^`BqUCA=af(uPj;1 zWJ}&BZQW928*bQS#M0`;Z8I}-MyvLUUfoOe*4cLH8!7BTWVUv8Q9^c>?{WJ;6Xjpw z*hsT2G?TqXGWFeAEA-z2lFb)C(-^b9H32i4(6)5fsmP}IgyTl&n?^SDe_*SY`5iM5 z|0OCFM{VE_jV`JZ?g7(i)gO>P#y@rniU%9`@m4T>(IkWj*pc~MM8>r==;2yJ9p7+DV|TD z7JU!%4S-c4cvQ~lpyQcgQa=c$YgoZ|Yu-mQK5dExe!@aRW4n|7Ijq#w3Q3X~&*;&! z=M2)xVU!qMl@LQY1~tS>R&9NEPVkUp9r7Q2{w@`D$=Tu-f}pO_ZoT`CePJoDk96=Jwo-kLmyOL3(Wy$@Gdz4wN>Mc<82i$3#oe&)OkW#F zQ%k$~llE)e9iwrM9-HMV+V#!Ndrr>nhI16L+RAp^t2aSqwwMo{Ou6-(l!2>gg)1is z#Q;s6s`>^m?1giSBTkT8Qh}*i+PvC&<4_4f3>be&O{ox;sKTt()&-wqz*7?*#z&X4 z?Rge0eSb+Z00X64>xUNPzT`Nxn`jGI7DG;fgO)J5$4Xm+pyv#nU8CuFY0bn8(!d*N z95t;{kx~cs<_AiP;erOd9hZ(F+D{&~@9$#k}yGW?m!Oo64X_&9y z@iPNgo()q5tXqm!%s8~;rb3}UMS9fUz-+qI7fb8jydi5@0ads9kZv4f&uC3+^QQ%B zRhw~n>GMS}Z0hIbo$`$EveK-82W@-r!Idn^5eXE#bzD`jq-K)=FzaQ2Po>j# zu@hnB^Qb>%!nt*5>xOa^OGrq8OBw)xneq<{kcI#7{q+JXB(t(Ks+cj$Ho}2KXB>dIAy?wsRoD53;>nKCB-&%zyh-0A-T2KeuR&ws%Ua5YHJ z=vBQ9xLft$U48d>Qys8c?|TPDU>*>KZi{;7VqFHfN0AGa*T(BFArwwTjzp}P*W69M zdl#&VAvk&5)b)D%;`G=vl3e!J=kw9~$@N!1(^g+3#5)%6KovJ&NKaOcHm7}g%9~h)I!K{wzYeVvaff-*_cSLwKo(i@F{m`%&<9Y z8*0r1KSjFONAJ+J!055ywcp+jTgY>Lp^M!=U_BS^d_bR9V8__&5f1#k0N(Mr^A8d{ zeIRyx?WWK6saw;|>FR#!a#xvC4{oE3_wl>c7}29PA`9#0?}9!O?WHM|zyJXib9NfN z(}gnp-q#GUYUjz4=i{|)ESd1(Uv}`Gi1)u8@wx7+3|l-!MWIIAC!e;)8Bwyn9?gDv zeop4`Kd<=R?`n*?=_By<^ab|7DA$46YyJ(*!&!ip3+izD;GPW_8gKsaQ|$+HB!Pio zLw@Kz&W@#VhnqR-g?4bb3xJX$y+bPCHN0(bG_}0_m(_W!M@PuXN@dS*iE{4lPO5R0 zx8u|82`e?YUq<8-`=g8uFlO=fdGgiZW^I4pW^{<1a#)04f1}epGfiJdq_Vc1b0lDC zW*lOl4{_RMh4GS^_V)Ir$VgyAgSFaafpxE9>Q`7igpIzn!=1U8z;RUvheuOV z5-nb-gqRL2)b!c3NDqQsmI&@Js{bYJpU3ntdgL_#u@BnJ!Mb|G*d|ywdg|e(mtUff zDpbf)<>3=}>4R74-{S^uWTa=xc_qk`7hfC zTCL1y6KtPRy3qp7O8{)fUHlKOZcUtjXaBNsByV8ap0@3ftf%`~5KWIt=4yqBRVx`f z4;_E3#2WHjLs`2f18CvjHY7gdFr)ftg*?~4;Sk`HbbQkNh-~e-=cX$-&D!}oaa4ER zlxyg|{-$Ukb#P7rIi*8PH(UNjAIRGZzPv_UyK1gZ`J1|s{NpDX@fxH5PqIAC@(@yC z?*)WtV8qD#N+@ltaAq-I3>@QyUgFWFTPv5J_^w(0<8k_ zhd&yyfHf^F8lRE=LkSm+$#VIUc46CfJM6fPjk`FeuV%Hyd>NS~@Vq(iX**kY!s$?h z%{HFbICMhy`k6aqo(fjVtyBsRa6asigv!UWN?K1EZ;4KN$8`evUh-x$wjKT??A1|M z%yh!c#BnQmo|?=eOn`^#b32-fJ{j@OzCAC#1AK3~tw4Inzi@~Cp%LwNQjQ#6f?Lg2 zjX4hadDm>e-2E&ua=;#FuK-Em{UXo&Iu+$3+vytUpu>Y;Hmo3oqQAc0V84W}SDm_W zLP|sY1?@`7ivL$7Ihm2r3tCT6fh19e3evQzaW8*<0@Z}zm=O8il$-GP=Dcws5kZ^82rQP+Je zWK0qr&P$Jv8r>!q916J4R6WIgACiuWiNuTnWAqBJ-`>As6yg0iaN-XyQq$!cbW; z1nh7eTwGH5Dq<+&wK_DgLRkhKEO+-g>-6{o$rZF#R3RcF($#zbc&xf90qQAqdhp@#3@Xg~dOJQLtb3Nu4juu& zoUaQdOtHRZNUpn%7z>{BD?MK$_~g70$*f&f;XKr>*&&O-V0JKwTUhFjrniqz>si;6 z(D3VRNyrGB%3rS(LX>Ct@U z*qDw&H7rKd^yNt%{i7M&c#2Yf0E96FM&-igSgOK;SqJRSdCNojhe3$+qjlHw=cqbQ zab?H13nY(p)ui_Zau3`QUBgj#9pw;WmKm`7h70Y;7GhA~&6TUif)NCU7XWg=>Ta;~ zveh6qJ)LOJtNIcs@=QR4Pe5>RUu#P$C?FqK_dG}!_bTVQbY)cIcBG}0Er8g)xTu5r z0JO5QBB71H0j%9NH8)B@KbuMO2Wo^mhs7^6`yS{;Jj1Tbi8Vj*;-ginur43}acn4H zJm1kfrTRz!;Ns#kHqNSeo|BnLjUU5bU0TWr>sAd}eE6iOh>eZ}R1so}quddMu+#e` zZ%4dR&Eh;beEa?#h~G1r#b196P3N?h{~Zuc~5`K@IMqfc5#5IzRoUGTE*PL|S; z)In_{75!acH`V>(A|dP`^2^KZmi%;^U>m2G@@CH4W#{s-Z0c`Q(0CK{cW=k2fN0Dp zowfE9=Z^%%omXqB4U+TEs2*`UyfRmT@#p6b$!plsX0?PpCh03{?v;Xwv5D&rx0n2m#>2L}sanaDwaBOlCUZE&;p<6%tdCCL@f@zlnlgZ~B zav>vUW1~@$ygyD6+^_>CiF;kRONKeG56CunA3uHs$oG=UL3?_{>2Fg9{|(PT`H9Tr z*O51^bi!g2^}f6oi`#VVPaSHj&2Wbqzi>r`Rn1PADU;-`Zq{F(ep(;S8Kc7FSt_b= zuVi#xFiFk@B7Ek2n(dSg>uBhfvyVDi!`iy7t^7#H$Z{pKm>0l30sI(j6a*L+BD8Na zWyqNEK~SLL#MReoyhgu;JSM>#|^n=m0&*T)H}* zl#fk@jQX5<8*S35u;9Cx`If>kx3xuaV&1`{sq8)}Cn@V$$TqBH+;&=Zw{?yCm4V>` zy?_7dsPmhJ6dkB26dI8Y`<~wau#(isJ+$>JOaq)Te&%fUy`BwD2zzwq=&j`gzs1F| zGsg^=jg60EfB%?mhnmg|gY@=p)>yycgJE>s$Zfmu7*cI25n~6;XhW-|pn67|egieqDAEYz*&L6F8!d*aT=!}3F%U%GNk1(ru*h*cI zfea|Sg&#Uv!1SGPk2z6^Ow6E_r|4>;H3fo-FO?StEsM(J*`J5H&i zS6Y+EI&U6eP8v%M+oJpvAIV1))tOnQ&~6U&PqQ?+lZ8hDZ-vgg^^KsP%_}1$pPpde qPQ9WL?p~eB@BhYj{}(q16$K-^CwU4TaKfPc06A$TsVWJR;Qs{;p7Fo{ diff --git a/icons/turf/floors/carpet_red.dmi b/icons/turf/floors/carpet_red.dmi new file mode 100644 index 0000000000000000000000000000000000000000..e75ce04381b910e4a41a1d7960d2cc6d51e3aaad GIT binary patch literal 3805 zcmbVPc|4TgzkgNx*Fi+i-Vxxyu=;@)H^xx_q3{TzONl7 zCxo0{HJi+Iy}em<#gJ-P)cw**vbO|}n@3@s*}PdZUDDK~zTzzXav>aXfLPL=mDZA@ z_0afK2LBhQ*cvtY-<~}VymNf!33Pd%sI-yk?kDtCJ3=bKhOiY64_!1_gqD6Jj-k5T zBZ;hkxQEQ~Hn-46w2y-16c>>HV zjd{NF!w_nRor{Uj07N-vM-A+P2WRhh;szb0-peLzedL<=@P3D&m*msO2WMkG{q}$8 zXrSi)6MkgviR(jW>yCb?4<6TShES~KX`>m#f z{mA?39zRrskYr6*c)4y~sg0q8oi%~%pYtg0ZaZVMLk4y^vy}BLhWhSlaifN1c5&dv z?PFa_-?Rj!9XxCHYLUmZ1TSZz!8*-GkiF>UrrqSR)?W6fAOj_^`2k*7G`!6gE-H%c zWhwJv;VDq+cDcvprF#f+qE%SM21EFp5c(Foh9$J?Ao8&dtWYKYL-;NOn6X#_!qFRS zVRK5A=(BItk235p!VzYDSI;RnzwljOQ2yi3s{ zrQ?&iXl!+2ZgHa~W0L4Hn25M-3elg35AXI*7uaTAX1L0oBWNl6!rb1Y(G)sGc!7kV zR^k?F_4#qk#16(6bOxr}5%^2(Oa@_Pm!$xt0Vr2p%_3&JuDT9~tQu=4=?PR0S1-Al zY9Sjm8_puKr7e0RL&y=c#$ppm6in(wiEgyl+F|x9yf;@0bY&|+{d+ZaKqzHFyCrX% zB?#=_@%_Im>?@@3kc+G6Nw0`##Vit{#vL`ck9_CSsu@%ba|jn9_&~ra_os<)1y&Kl z#BM;VESC`Y(P8{i%um9rJQ-Ds^vJ zZx)-z1y$m`x61Djk^2T54{ULj0!vnd#{Wg$|J)}Ri14hbXhvh3d{X}l9OZ_Dew-BM zl#G%s%vp1E{NHRgfewu5d_0ryZlwS-C45CJ$YAbHQw|S_0TxQ)uIw~TLkes7;Xqp7 zX00sKPFfMhLTUR1SBf|V471SgeEu|pL)^T3MrY|-8evnl`ua%W5&=0iwSv5tRp?R` z0+&Trp!3QdA4o*bR_ueHv~=#izJ6;?xBeV+>0CG@?5_W-zQQ;#i zuN(bGGOvc=MdbPrV}b{U)M^m~*+=I&-Z!4HyQA<_$%F1U z5`uFu!macS4!fih+Gc(xgtuqOmlg4HTimd0!7BU9;{n08n;TauKdiC6xs->t2-CUK zbQN$mn!M%ERJF3s2gNLCOi;TVy5bReIrFj`(z?tphue+YAsI5macK;RAshaj@2bQN z2(<>QIVginxeQm-LmdV2UfC*F!v2`Pdti9@{*5``kvEMU9fH*~mO>}50_=;FRpo<- zrC(d$uFvVr%*?dmz3HphOdReYt(CWT&0e1*(!0C2>PN7T15eZRz+}n2q zE-d5qlPMI7?R?zgF_EC{tr?Hk7lIaRA0xcHxKg2WrUV`#897qt`1kK{;$(pxx}ayO z;hCy<3=H}(Nf#H4RVSr`RJn;>)s=DAlKxcR+0pSsn>SEaFc$T<2PvoKK?^PJF{pLS zdWoU;$~KrIf@iBIIB4&PTlu$U_dWHDB^v9`F%_|f8Rm{{js1Hmxz-_m^B8gdAM~;5 zlXdwy#~;?bFc196=Brw{E4*V$sY9oOsYozH{JQ>H`7Q-Slv;%aVAMLQY0$^l_5Ew} z@L?K~X7J}!pEoxcf)oA{HjLY-q`kR^c(j?J8G3^cgysHtFn3WEOQlSZU%!@8L0!mI z3g>JDT{xK2)s{TJ&RknA!|Qprdu*HV*Ix7-pq5!8F6G7rrsFD!TQ6$-c52-X+b&Od zm&0Ci<_o=6fsqOE=A2&$^>Y@tEXh@F^n2eV{U-o#k;xO+^F^%A)=9_B|0$Ms40 zl|3n~FlY773l}~(%+E!fH0TcmG-=wOLYZ(C-xAvW#q>cAp@~@R%+hCvNlMbxt z9wYkSQ^Y#b%%EFgmHka~b87rey#Ms8TXY|?Okd?Vs>NE7^yNvNdrBGrYxf@@a%N_{ zcfO_rqzgyqtpu(>kW;@=eJdl(GdBh>nYBXoJ*oGB!i=Hbd4A4wU@lMK<%<>0EAf`(mObFkvDNF@vzV}71UoBp{%J;>_@ofz z@)jTY$ZK0`CgmbHC~@N^gGSn~hLmH!mnR!Xqv#-90bPT=>@1 z><0|vv}|)LxMF`i^uLWmQD4oH?BC<1g^QHq@;xn z#^`u5hMm1$>roYVsgwBefX3!98vCB_TL3|`OT>opgc9tt5%dk*I}6j5^|nv#6(PN_ zG(E`iYjv2h70JX3-jxp7!9zs|cd(${lMXE{fgyUxl&Ixz5}0Ay4v{e*8atE0T>X5A za)ZVC4c-P1WzZxr9n4f-a{F|Xdibkx1#?TjFUqu_0a~Mb^XN1h8dnd`qn%c2s4f@k zWKJc?=0Ih=W0rsH(!i%HwLkU}D*)UP;v|GA{dYqGX^v@eF*2(n zQ?cOzvF74jNz|dhlX{T}olL(L7c}a5;@?Fpj}u%i?=6Ss@ij0L>f@NHp;0eG!h+vh z1+h#K!pUO}@#JF*;{PKR{bRXGM_0jyYG(z>l8EiAUtC zSU@~q2LB2V&)*_r9!Dey3(I}5a$`dNt%~{Z#os$b2-kxUKv)B10fh1!t%1Aj*pb~+ z#y2%hW2ojbE9}{MZ6G>~9VIQNG_eET>&n*-Otz0)k|JbftEP-=fq5aceMf*w2Vd-W zx)sMR@9FaVv`y{=2q9xPc0iA_vwl-*bZ!0@WFg?qQ(hV(1QP|Ar-m_-{0Uueb1XFt z(wIOB@8ZaQk;THhsvilEKdFUzb9GfmL2kiD8Eoi)chm;-ykZwN``x}!5+c9EbM0v{ zj0_2R*7)?I#Uyc3*!7<&E6d6@#e&r8N-E;;h#-^97!{kh!dq3?8W)DBOAm5EsNF09 z&r%WWP)E7CtZVmUYZ1aDZz*g-zsn_)fd}5giH`!L2-l*#N;=?u=)TOqV&TE2#7hKv r)YD86IvrD3lnYIJM4CdmpH?CYVtRSA*y1Sg-v*f(pE&x&&^78`T8_^~ literal 0 HcmV?d00001 From fdaf7c3ac188f179acedbecd2e7e11041900ec29 Mon Sep 17 00:00:00 2001 From: R3dtail <45108567+R3dtail@users.noreply.github.com> Date: Sun, 2 Dec 2018 13:35:56 -0600 Subject: [PATCH 034/237] Added back in the t Don't know what happened to the T. But it's back now! --- code/__HELPERS/icons.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index bb053dfbf9..d2cb3baa6a 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -36,7 +36,7 @@ icon/MaxColors(icon) The icon is blended with a second icon where the maximum of each RGB pixel is the result. Opacity may increase, as if the icons were blended with ICON_OR. You may supply a color in place of an icon. icon/Opaque(background = "#000000") - All alpha values are set to 255 throughout the icon. Transparen pixels become black, or whatever background color you specify. + All alpha values are set to 255 throughout the icon. Transparent pixels become black, or whatever background color you specify. icon/BecomeAlphaMask() You can convert a simple grayscale icon into an alpha mask to use with other icons very easily with this proc. The black parts become transparent, the white parts stay white, and anything in between becomes a translucent shade of white. From 23b7795039feb71117ac351e3ce1dc0b2088d958 Mon Sep 17 00:00:00 2001 From: nik707 <38332985+nik707@users.noreply.github.com> Date: Sun, 2 Dec 2018 19:47:38 -0600 Subject: [PATCH 035/237] untested lmao --- code/modules/buildmode/submodes/advanced.dm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/code/modules/buildmode/submodes/advanced.dm b/code/modules/buildmode/submodes/advanced.dm index 22eb998cdf..418f504777 100644 --- a/code/modules/buildmode/submodes/advanced.dm +++ b/code/modules/buildmode/submodes/advanced.dm @@ -8,6 +8,7 @@ /datum/buildmode_mode/advanced/show_help(client/c) to_chat(c, "***********************************************************") to_chat(c, "Right Mouse Button on buildmode button = Set object type") + to_chat(c, "Left Mouse Button + alt on turf/obj = Copy object type") to_chat(c, "Left Mouse Button on turf/obj = Place objects") to_chat(c, "Right Mouse Button = Delete objects") to_chat(c, "") @@ -32,7 +33,15 @@ var/list/pa = params2list(params) var/left_click = pa.Find("left") var/right_click = pa.Find("right") - if(left_click) + var/alt_click = pa.Find("alt") + + if(left_click && alt_click) + if (istype(object, /turf) || istype(object, /obj) || istype(object, /mob)) + objholder = object.type + to_chat(c, "[initial(object.name)] ([object.type]) selected.") + else + to_chat(c, "[initial(object.name)] is not a turf, object, or mob! Please select again.") + else if(left_click) if(ispath(objholder,/turf)) var/turf/T = get_turf(object) log_admin("Build Mode: [key_name(c)] modified [T] in [AREACOORD(object)] to [objholder]") @@ -47,4 +56,3 @@ if(isobj(object)) log_admin("Build Mode: [key_name(c)] deleted [object] at [AREACOORD(object)]") qdel(object) - \ No newline at end of file From dfb26da4f9101038bdb54f1031b0f882bacc8468 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 2 Dec 2018 21:52:05 -0600 Subject: [PATCH 036/237] Automatic changelog generation for PR #7783 [ci skip] --- html/changelogs/AutoChangeLog-pr-7783.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7783.yml diff --git a/html/changelogs/AutoChangeLog-pr-7783.yml b/html/changelogs/AutoChangeLog-pr-7783.yml new file mode 100644 index 0000000000..489f7ba055 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7783.yml @@ -0,0 +1,4 @@ +author: "R3dtail" +delete-after: True +changes: + - rscadd: "Added a new carpet. Red! Also added said carpet to the Premium Carpet crate from the cargo supply console. Trilby said she'd take care of the crafting recipe." From 325b6fb323baaffa6b34fdd62311fd3a6664327a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 3 Dec 2018 07:24:25 -0600 Subject: [PATCH 037/237] Automatic changelog generation for PR #7781 [ci skip] --- html/changelogs/AutoChangeLog-pr-7781.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7781.yml diff --git a/html/changelogs/AutoChangeLog-pr-7781.yml b/html/changelogs/AutoChangeLog-pr-7781.yml new file mode 100644 index 0000000000..d6f2ca5907 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7781.yml @@ -0,0 +1,5 @@ +author: "deathride58" +delete-after: True +changes: + - bugfix: "It's now actually possible to click the stamina hud button" + - bugfix: "The stamina hud button now displays your stamina buffer correctly" From 0ae43512939b5626bccede96ad82e94a870cc4fd Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 3 Dec 2018 09:54:43 -0600 Subject: [PATCH 038/237] Automatic changelog generation for PR #7782 [ci skip] --- html/changelogs/AutoChangeLog-pr-7782.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7782.yml diff --git a/html/changelogs/AutoChangeLog-pr-7782.yml b/html/changelogs/AutoChangeLog-pr-7782.yml new file mode 100644 index 0000000000..17986ac78f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7782.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - balance: "Bone spears now have a reach of 2 tiles." From cfc74acc4856777aa9e571ab3bf1181bf2cdd84d Mon Sep 17 00:00:00 2001 From: Qfunk4d <45174255+Qfunk4d@users.noreply.github.com> Date: Mon, 3 Dec 2018 19:49:20 -0700 Subject: [PATCH 039/237] Update chat_commands.dm even more new words --- modular_citadel/code/modules/admin/chat_commands.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modular_citadel/code/modules/admin/chat_commands.dm b/modular_citadel/code/modules/admin/chat_commands.dm index 7820ea8f4d..d5d66a1888 100644 --- a/modular_citadel/code/modules/admin/chat_commands.dm +++ b/modular_citadel/code/modules/admin/chat_commands.dm @@ -3,9 +3,9 @@ help_text = "What are Citadel Station 13 players salting about today? Spin the wheel and find out!" /datum/tgs_chat_command/wheelofsalt/Run(datum/tgs_chat_user/sender, params) - var/saltresult = "The wheel of salt [pick("clatters","vibrates","clanks","groans","moans","squeaks","emits a[pick(" god-forsaken"," lewd"," creepy"," generic","n orgasmic")] [pick("airhorn","bike horn","trumpet","clown","latex","vore","dog")] noise")] as it spins violently... And it seems the salt of the day is the " - var/saltprimarysubject = "[pick("combat","medical","grab","furry","wall","orgasm","cat","ERP","lizard","dog","latex","vision cone","atmospherics","table","chem","vore","dogborg","Skylar Lineman","Mekhi Anderson","Peppermint","rework","cum","dick","cockvore","Medihound","sleeper","belly sleeper","door wires","flightsuit","coder privilege","Developer abuse","ban reason","github self merge","red panda","beret","male catgirl","powergame","Discord server","Clitadel","Cargonia","Solarian Republic","Main and RP merger","Salt","chem dispenser theft","Botany","moth","BWOINK","anal vore","stamina","Mason Jakops","mining","noodle","Lavaland","Necropolis")]" - var/saltsecondarysubject = "[pick("rework","changes","r34","ban","removal","addition","leak","proposal","fanart","introduction","tabling","ERP","bikeshedding","sprites","semen keg","argument","theft","nerf","screeching","salt","creampie","lewding","murder","kissing")]" + var/saltresult = "The wheel of salt [pick("clatters","screams","vibrates","clanks","resonates","groans","moans","squeaks","emits a[pick(" god-forsaken"," lewd"," creepy"," generic","n orgasmic"," demonic")] [pick("airhorn","bike horn","trumpet","clown","latex","vore","dog","laughing")] noise")] as it spins violently... And it seems the salt of the day is the " + var/saltprimarysubject = "[pick("combat","medical","grab","furry","wall","orgasm","cat","ERP","lizard","dog","latex","vision cone","atmospherics","table","chem","vore","dogborg","Skylar Lineman","Mekhi Anderson","Peppermint","rework","cum","dick","cockvore","Medihound","sleeper","belly sleeper","door wires","flightsuit","coder privilege","Developer abuse","ban reason","github self merge","red panda","beret","male catgirl","powergame","hexacrocin","Discord server","Clitadel","Cargonia","Solarian Republic","Main and RP merger","bluespace","salt","chem dispenser theft","Botany","moth","BWOINK","anal vore","stamina","Mason Jakops","mining","noodle","milf","Lavaland","Necropolis","Ashwalker","Chase Redtail","Drew Mint","Pavel Marsk","Jecca Qua","Joker Amari","Durgit","chaplain","Antag","nanite","Syndicate","Nar-Sie","Ratvar","Cult","maint","Foam-Force","AI","cyborg","ghost","clockwork","cyberpunk","vaporwave","Clown","Leon Beech","Mime","security","research","Megafauna","Bubblegum","Ash Drake","Legion","Colossus","White Shuttle","Changeling","Cowboy","Space Ninja","Poly","Revolutionary","Skyrim","forbidden fruits","xenomorph","blob","Nuclear Operative","crossdressing")]" + var/saltsecondarysubject = "[pick("rework","changes","r34","ban","removal","addition","leak","proposal","fanart","introduction","tabling","ERP","bikeshedding","crossdressing","sprites","semen keg","argument","theft","nerf","screeching","salt","creampie","lewding","murder","kissing","marriage","replacement","fucking","ship","netflix adaptation","dance","remaster","system","voyeur","decoration","pre-order","bukkake","seduction","worship","gangbang","handholding")]" saltresult += "[saltprimarysubject] [saltsecondarysubject]" return "[saltresult]!" From dd0dfb751765b09e8efdcace7c8a439a7a5d0a42 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 4 Dec 2018 11:09:52 -0500 Subject: [PATCH 040/237] Buffs COC and Capo sword (#7762) * buffs COC and Capo sword * Update misc.dm --- code/game/objects/items/melee/misc.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 26712c2431..3a35f4d8ef 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -18,8 +18,8 @@ righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_BELT - force = 10 - throwforce = 7 + force = 14 + throwforce = 10 w_class = WEIGHT_CLASS_NORMAL attack_verb = list("flogged", "whipped", "lashed", "disciplined") hitsound = 'sound/weapons/chainhit.ogg' @@ -57,8 +57,8 @@ righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' flags_1 = CONDUCT_1 obj_flags = UNIQUE_RENAME - force = 15 - throwforce = 10 + force = 18 + throwforce = 15 w_class = WEIGHT_CLASS_BULKY block_chance = 50 armour_penetration = 75 From 17b5a6061a7f3d3e0db8cdb2c56405cab50fb632 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 4 Dec 2018 21:14:04 -0500 Subject: [PATCH 041/237] Cargo Hardsuit Packets as well as a pare of soft suits (DPO) (#7767) * Hardsuits and a set of softs * Ups sec suit to 3000 do to it being a sec suit * DropPodOnly! * Woops * Kev wishes --- code/modules/cargo/packs.dm | 42 +++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 54413bbfb5..8002562ec5 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -81,6 +81,21 @@ crate_name = "emergency crate" crate_type = /obj/structure/closet/crate/internals +/datum/supply_pack/emergency/soft_suit + name = "Emergency Space Suit " + desc = "Is there bombs going off left and right? Is there meteors shooting around the station? Well we have two fragile space suit for emergencys as well as air and masks." + cost = 1000 + contains = list(/obj/item/tank/internals/air, + /obj/item/tank/internals/air, + /obj/item/clothing/mask/gas, + /obj/item/clothing/mask/gas, + /obj/item/clothing/suit/space/fragile, + /obj/item/clothing/suit/space/fragile, + /obj/item/clothing/head/helmet/space/fragile, + /obj/item/clothing/head/helmet/space/fragile) + crate_name = "emergency crate" + crate_type = /obj/structure/closet/crate/internals + /datum/supply_pack/emergency/firefighting name = "Firefighting Crate" desc = "Only you can prevent station fires. Partner up with two firefighter suits, gas masks, flashlights, large oxygen tanks, extinguishers, and hardhats!" @@ -280,6 +295,15 @@ /obj/item/clothing/head/fedora/det_hat) crate_name = "forensics crate" +/datum/supply_pack/security/sechardsuit + name = "Sec Hardsuit" + desc = "One Sec Hardsuit with a small air tank and mask." + cost = 3000 // half of SWAT gear for have the armor and half the gear + contains = list(/obj/item/clothing/suit/space/hardsuit/security, + /obj/item/tank/internals/air, + /obj/item/clothing/mask/gas) + crate_name = "sec hardsuit crate" + /datum/supply_pack/security/helmets name = "Helmets Crate" desc = "Contains three standard-issue brain buckets. Requires Security access to open." @@ -633,6 +657,15 @@ /obj/item/clothing/glasses/meson/engine) crate_name = "engineering gear crate" +/datum/supply_pack/engineering/engihardsuit + name = "Engineering Hardsuit" + desc = "Poly 'Who stole all the hardsuits!' Well now you can get more hardsuits if needed! NOTE ONE HARDSUIT IS IN THIS CRATE, as well as one air tank and maks!" + cost = 2500 + contains = list(/obj/item/tank/internals/air, + /obj/item/clothing/mask/gas, + /obj/item/clothing/suit/space/hardsuit/engine) + crate_name = "engineering hardsuit" + /datum/supply_pack/engineering/powergamermitts name = "Insulated Gloves Crate" desc = "The backbone of modern society. Barely ever ordered for actual engineering. Contains three insulated gloves." @@ -1120,6 +1153,15 @@ /obj/item/storage/firstaid/regular) crate_name = "first aid kit crate" +/datum/supply_pack/medical/medicalhardsuit + name = "Medical Hardsuit" + desc = "Got people being spaced left and right? Hole in the same room as the dead body of Hos or cap? Fear not, now you can buy one medical hardsuit with a mask and air tank to save your fellow crewmembers." + cost = 2500 + contains = list(/obj/item/tank/internals/air, + /obj/item/clothing/mask/gas, + /obj/item/clothing/suit/space/hardsuit/medical) + crate_name = "medical hardsuit" + /datum/supply_pack/medical/iv_drip name = "IV Drip Crate" desc = "Contains a single IV drip for administering blood to patients." From 5e96cc492e9c7afda3d9f7cc9979bad556b54ee5 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 4 Dec 2018 20:30:15 -0800 Subject: [PATCH 042/237] Update ticker.dm --- code/controllers/subsystem/ticker.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 6f018424e8..d54f6fc3ef 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -454,7 +454,7 @@ SUBSYSTEM_DEF(ticker) if(CONFIG_GET(flag/tgstyle_maprotation)) INVOKE_ASYNC(SSmapping, /datum/controller/subsystem/mapping/.proc/maprotate) else - SSvote.initiate_vote("map","server") + SSvote.initiate_vote("map","server",TRUE) /datum/controller/subsystem/ticker/proc/HasRoundStarted() return current_state >= GAME_STATE_PLAYING From b230f1a1ea03f7c99c4d34d795e76c6983dcd285 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Wed, 5 Dec 2018 19:49:14 -0500 Subject: [PATCH 043/237] Fixes wavedashing --- code/game/turfs/open.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 2476419a1b..7aa1183512 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -19,7 +19,7 @@ var/mob/living/L = user if(L.resting && do_after(L, max(10, L.getStaminaLoss()*0.5), 0, src)) if(Adjacent(L, src)) - L.forceMove(src) + step(L, get_dir(L, src)) playsound(L, "rustle", 25, 1) /turf/open/indestructible From 2e675089a849dec45ca5dfe45a2055676085e57c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Dec 2018 23:59:34 -0600 Subject: [PATCH 044/237] Automatic changelog generation for PR #7791 [ci skip] --- html/changelogs/AutoChangeLog-pr-7791.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7791.yml diff --git a/html/changelogs/AutoChangeLog-pr-7791.yml b/html/changelogs/AutoChangeLog-pr-7791.yml new file mode 100644 index 0000000000..d2cde53ae0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7791.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - bugfix: "You can no longer phase through solid objects via scrambling" From 5f3d9cfa7ecba82daf0480b2c7b3f6447ac865ac Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 6 Dec 2018 18:24:46 -0500 Subject: [PATCH 045/237] syndicate bombs can now spawn in snack vests --- code/game/objects/items/storage/belt.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 249eb67c05..9fadbd3e38 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -369,7 +369,8 @@ /obj/item/reagent_containers/food/drinks/soda_cans/space_up, /obj/item/reagent_containers/food/drinks/soda_cans/pwr_game, /obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime, - /obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola + /obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola, + /obj/item/reagent_containers/food/drinks/drinkingglass/syndicatebomb )) new rig_snacks(src) From 964f2f75d30fecbbae4da5983d06535c1f3ea95d Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 6 Dec 2018 18:39:01 -0500 Subject: [PATCH 046/237] triv rethink --- code/game/objects/items/storage/belt.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 9fadbd3e38..7414e0d5c2 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -370,7 +370,7 @@ /obj/item/reagent_containers/food/drinks/soda_cans/pwr_game, /obj/item/reagent_containers/food/drinks/soda_cans/lemon_lime, /obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola, - /obj/item/reagent_containers/food/drinks/drinkingglass/syndicatebomb + /obj/item/reagent_containers/food/drinks/drinkingglass/filled/syndicatebomb )) new rig_snacks(src) From 4ad2b4d070ecdd066c74c880efbf0603f1c49c44 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 6 Dec 2018 19:26:37 -0500 Subject: [PATCH 047/237] Makes the glass --- code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm index c24b22ce71..9d173a34a5 100644 --- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -90,6 +90,10 @@ name = "Nuka Cola" list_reagents = list("nuka_cola" = 50) +/obj/item/reagent_containers/food/drinks/drinkingglass/filled/syndicatebomb + name = "Syndicat Bomb" + list_reagents = list("syndicatebomb" = 50) + /obj/item/reagent_containers/food/drinks/drinkingglass/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/reagent_containers/food/snacks/egg)) //breaking eggs var/obj/item/reagent_containers/food/snacks/egg/E = I From 1a2a8ec6aed3a03cb4039e18464b9fef73131434 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Thu, 6 Dec 2018 23:57:48 -0500 Subject: [PATCH 048/237] Citadel: The Forgotten Sweaters (#7786) Wakes up the sleeping Sweaters hidden in turtlenecks.dm --- .../code/modules/client/loadout/suit.dm | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/modular_citadel/code/modules/client/loadout/suit.dm b/modular_citadel/code/modules/client/loadout/suit.dm index 9d3a6b9a02..773366c81e 100644 --- a/modular_citadel/code/modules/client/loadout/suit.dm +++ b/modular_citadel/code/modules/client/loadout/suit.dm @@ -18,6 +18,42 @@ category = SLOT_WEAR_SUIT path = /obj/item/clothing/suit/hooded/cloak/david cost = 3 + +/datum/gear/creamsweater + name = "Cream Commando Sweater" + category = SLOT_WEAR_SUIT + path = /obj/item/clothing/under/bb_sweater + cost = 1 + +/datum/gear/blacksweater + name = "Black Commando Sweater" + category = SLOT_WEAR_SUIT + path = /obj/item/clothing/under/bb_sweater/black + cost = 1 + +/datum/gear/purpsweater + name = "Purple Commando Sweater" + category = SLOT_WEAR_SUIT + path = /obj/item/clothing/under/bb_sweater/purple + cost = 1 + +/datum/gear/greensweater + name = "Green Commando Sweater" + category = SLOT_WEAR_SUIT + path = /obj/item/clothing/under/bb_sweater/green + cost = 1 + +/datum/gear/redsweater + name = "Red Commando Sweater" + category = SLOT_WEAR_SUIT + path = /obj/item/clothing/under/bb_sweater/red + cost = 1 + +/datum/gear/bluesweater + name = "Navy Commando Sweater" + category = SLOT_WEAR_SUIT + path = /obj/item/clothing/under/bb_sweater/blue + cost = 1 /datum/gear/jacketbomber name = "Bomber jacket" From 44d0c051006c8bb5ca53514407886a4fb886f147 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 7 Dec 2018 13:40:37 -0800 Subject: [PATCH 049/237] Update toolbox.dm --- code/game/objects/items/storage/toolbox.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 6667cee76a..5c6bd7602a 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -87,8 +87,10 @@ /obj/item/storage/toolbox/mechanical/old/heirloom/afterattack(atom/A, mob/user, proximity) //Citadel Adds massive buff to machinery destruction . = ..() if(proximity) - if(isobj(A)) + if(isobj(A) && !isitem(A)) var/obj/O = A + if(O.damage_deflection >= 18) //Eh fine. + return O.take_damage(20) /obj/item/storage/toolbox/mechanical/old/heirloom/PopulateContents() From 629189fdc182820792c7c4471b2820c983ab0b72 Mon Sep 17 00:00:00 2001 From: Redtail Date: Fri, 7 Dec 2018 22:48:46 -0600 Subject: [PATCH 050/237] Added Another new carpet, and two tables, and a new cargo crate. Added: monochrome. Two new table sprites for the other new carpet. New cargo supply crate for the two new carpets. Changed: the name of the new carpet to "blackred" so it would avoid confusion with the original carpet. --- .../objects/items/stacks/tiles/tile_types.dm | 16 +++++++++---- code/game/objects/structures/table_frames.dm | 16 +++++++++++++ code/game/objects/structures/tables_racks.dm | 21 ++++++++++++++++-- .../game/turfs/simulated/floor/fancy_floor.dm | 18 ++++++++++----- code/modules/cargo/packs.dm | 14 +++++++++--- .../fancy_table_blackred.dmi | Bin 0 -> 3317 bytes .../fancy_table_monochrome.dmi | Bin 0 -> 3336 bytes icons/obj/structures.dmi | Bin 160002 -> 160981 bytes icons/obj/tiles.dmi | Bin 12694 -> 12842 bytes .../{carpet_red.dmi => carpet_blackred.dmi} | Bin icons/turf/floors/carpet_monochrome.dmi | Bin 0 -> 3765 bytes 11 files changed, 70 insertions(+), 15 deletions(-) create mode 100644 icons/obj/smooth_structures/fancy_table_blackred.dmi create mode 100644 icons/obj/smooth_structures/fancy_table_monochrome.dmi rename icons/turf/floors/{carpet_red.dmi => carpet_blackred.dmi} (100%) create mode 100644 icons/turf/floors/carpet_monochrome.dmi diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 5858c1debe..3b28c30402 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -111,12 +111,20 @@ /obj/item/stack/tile/carpet/black/fifty amount = 50 -/obj/item/stack/tile/carpet/red +/obj/item/stack/tile/carpet/blackred name = "red carpet" - icon_state = "tile-carpet-red" - turf_type = /turf/open/floor/carpet/red + icon_state = "tile-carpet-blackred" + turf_type = /turf/open/floor/carpet/blackred -/obj/item/stack/tile/carpet/red/fifty +/obj/item/stack/tile/carpet/blackred/fifty + amount = 50 + +/obj/item/stack/tile/carpet/monochrome + name = "monochrome carpet" + icon_state = "tile-carpet-monochrome" + turf_type = /turf/open/floor/carpet/monochrome + +/obj/item/stack/tile/carpet/monochrome/fifty amount = 50 /obj/item/stack/tile/fakespace diff --git a/code/game/objects/structures/table_frames.dm b/code/game/objects/structures/table_frames.dm index 1aaae691f8..e979d4f18e 100644 --- a/code/game/objects/structures/table_frames.dm +++ b/code/game/objects/structures/table_frames.dm @@ -68,6 +68,22 @@ to_chat(user, "You start adding [C] to [src]...") if(do_after(user, 20, target = src) && C.use(1)) make_new_table(/obj/structure/table/wood/fancy/black) + else if(istype(I, /obj/item/stack/tile/carpet/blackred)) + var/obj/item/stack/tile/carpet/blackred/C = I + if(C.get_amount() < 1) + to_chat(user, "You need one red carpet sheet to do this!") + return + to_chat(user, "You start adding [C] to [src]...") + if(do_after(user, 20, target = src) && C.use(1)) + make_new_table(/obj/structure/table/wood/fancy/blackred) + else if(istype(I, /obj/item/stack/tile/carpet/monochrome)) + var/obj/item/stack/tile/carpet/monochrome/C = I + if(C.get_amount() < 1) + to_chat(user, "You need one monochrome carpet sheet to do this!") + return + to_chat(user, "You start adding [C] to [src]...") + if(do_after(user, 20, target = src) && C.use(1)) + make_new_table(/obj/structure/table/wood/fancy/monochrome) else if(istype(I, /obj/item/stack/tile/carpet)) var/obj/item/stack/tile/carpet/C = I if(C.get_amount() < 1) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 78c8971759..8c29c1b2c5 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -298,7 +298,7 @@ frame = /obj/structure/table_frame framestack = /obj/item/stack/rods buildstack = /obj/item/stack/tile/carpet - canSmoothWith = list(/obj/structure/table/wood/fancy, /obj/structure/table/wood/fancy/black) + canSmoothWith = list(/obj/structure/table/wood/fancy, /obj/structure/table/wood/fancy/black, /obj/structure/table/wood/fancy/blackred, /obj/structure/table/wood/fancy/monochrome) /obj/structure/table/wood/fancy/New() // New() is used so that the /black subtype can override `icon` easily and @@ -314,11 +314,28 @@ icon_state = "fancy_table_black" buildstack = /obj/item/stack/tile/carpet/black +/obj/structure/table/wood/fancy/blackred + icon = 'icons/obj/structures.dmi' + icon_state = "fancy_table_blackred" + buildstack = /obj/item/stack/tile/carpet/blackred + +/obj/structure/table/wood/fancy/blackred/New() + . = ..() + icon = 'icons/obj/smooth_structures/fancy_table_blackred.dmi' + +/obj/structure/table/wood/fancy/monochrome + icon = 'icons/obj/structures.dmi' + icon_state = "fancy_table_monochrome" + buildstack = /obj/item/stack/tile/carpet/monochrome + +/obj/structure/table/wood/fancy/monochrome/New() + . = ..() + icon = 'icons/obj/smooth_structures/fancy_table_monochrome.dmi' + /obj/structure/table/wood/fancy/black/New() . = ..() // Ditto above. icon = 'icons/obj/smooth_structures/fancy_table_black.dmi' - /* * Reinforced tables */ diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm index 034fd0e606..fc1dec2acb 100644 --- a/code/game/turfs/simulated/floor/fancy_floor.dm +++ b/code/game/turfs/simulated/floor/fancy_floor.dm @@ -180,13 +180,19 @@ /turf/open/floor/carpet/black icon = 'icons/turf/floors/carpet_black.dmi' floor_tile = /obj/item/stack/tile/carpet/black - canSmoothWith = list(/turf/open/floor/carpet/black) + canSmoothWith = list(/turf/open/floor/carpet/black, /turf/open/floor/carpet/blackred, /turf/open/floor/carpet/monochrome) -/turf/open/floor/carpet/red - icon = 'icons/turf/floors/carpet_red.dmi' - floor_tile = /obj/item/stack/tile/carpet/red - icon_state ="tile-carpet-red" - canSmoothWith = list(/turf/open/floor/carpet/red) +/turf/open/floor/carpet/blackred + icon = 'icons/turf/floors/carpet_blackred.dmi' + floor_tile = /obj/item/stack/tile/carpet/blackred + icon_state = "tile-carpet-blackred" + canSmoothWith = list(/turf/open/floor/carpet/black, /turf/open/floor/carpet/blackred, /turf/open/floor/carpet/monochrome) + +/turf/open/floor/carpet/monochrome + icon = 'icons/turf/floors/carpet_monochrome.dmi' + floor_tile = /obj/item/stack/tile/carpet/monochrome + icon_state = "tile-carpet-monochrome" + canSmoothWith = list(/turf/open/floor/carpet/black, /turf/open/floor/carpet/blackred, /turf/open/floor/carpet/monochrome) /turf/open/floor/carpet/narsie_act(force, ignore_mobs, probability = 20) . = (prob(probability) || force) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index ef4f215db0..27f78b63cc 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -1435,16 +1435,24 @@ /datum/supply_pack/service/carpet name = "Premium Carpet Crate" - desc = "Plasteel floor tiles getting on your nerves? These stacks of extra soft carpet will tie any room together." + desc = "Plasteel floor tiles getting on your nerves? These stacks of extra soft carpet will tie any room together. Contains the classics." cost = 1000 contains = list(/obj/item/stack/tile/carpet/fifty, /obj/item/stack/tile/carpet/fifty, - /obj/item/stack/tile/carpet/red/fifty, - /obj/item/stack/tile/carpet/red/fifty, /obj/item/stack/tile/carpet/black/fifty, /obj/item/stack/tile/carpet/black/fifty) crate_name = "premium carpet crate" +/datum/supply_pack/service/carpet2 + name = "Premium Carpet Crate #2" + desc = "Plasteel floor tiles getting on your nerves? These stacks of extra soft carpet will tie any room together. Contains red, and monochrome" + cost = 1000 + contains = list(/obj/item/stack/tile/carpet/blackred/fifty, + /obj/item/stack/tile/carpet/blackred/fifty, + /obj/item/stack/tile/carpet/monochrome/fifty, + /obj/item/stack/tile/carpet/monochrome/fifty) + crate_name = "premium carpet crate #2" + /datum/supply_pack/service/lightbulbs name = "Replacement Lights" desc = "May the light of Aether shine upon this station! Or at least, the light of forty two light tubes and twenty one light bulbs as well as a light replacer." diff --git a/icons/obj/smooth_structures/fancy_table_blackred.dmi b/icons/obj/smooth_structures/fancy_table_blackred.dmi new file mode 100644 index 0000000000000000000000000000000000000000..0766c2f2f9a29de1e6332b18724b2394a7cab8cd GIT binary patch literal 3317 zcmai%c{G&&9><>^R-DLx=+a0B-a1 zC|kx@#<-rb9b??(>`@mP13AjxDIDb;<{9c29PSr%696KM?+?G=xUB+7S(w)AHeJEL z^BS_nFP7E9Z9KUfWD(_KO?2zk%b|_BF}oX%;eNHVhL)5U`P`%W`hK?6>hi~%D(`Fb z6$ub9O^P|lr%o0~=P`Q@+J(ysN~ke}(~DzUb(H<<{%_8|k$J;LODrMf=z;aIl0QJ( zPG!>Vj}k;X^!YyJRNO(BR{F8vHqF3hARo=RxU4>lR?+I&!CjC1_)7u}CMJwUd5o{l z3CSlx`T>A*%N%87A6dNq(EY|tuh2W#)lGjJiLs;yDQ;6z<<_l&DJ@>kQ6U_M$mm-{ z!5tF_c!gM6mEGm0AiUV=_K62yfMCrVE6{wwXQOG0QNri+WPCzUozyc*VNhqBV*4ZP zL8j04@Lw)KOyQ{InnSz#=Kbi$cPP)S6Hrn8b)avb=m6hIS;w`e@v+zv6ioI}8|sm$UrLYI_gH&`~dLr8-j(RmZI z2_LJBrw+DNwa8Z_P~#eFESeQ^wFS$);u#sa`W7Wkqv;CKK~ef98Py#3NbbDMK()2T_Sj7NChQA2D8)SI_LJj2-_Z5?Ct%yU3EX_|umw6{`(BrQCe#uHJFjt67=Kol?mE zY;3?|1*+0EFkmfnx64hV@AL1n8Uf=P4O=lup~at*R4nDd!ng0#$xlW7DqPG)*^vb+N7oPho|m=q?<(moP%@t1Ke2NY%|3e=SrbHl zkpySMsj(@?MMR`Vk%?m;<*gI)zbfc;66kGcZIMjP*X?_hC7o1YQLK6^fSVZo%ydis zRi@okej)6j0{}K6Rse%vbH7Ag!REouMQUVCs-+!-=2wH~3%XUs1k9o;OGan{SB(I3R&H8a*oBoZS&8`%Ek z!xtKjCMO89E(7ikwwU)b>BDXM-;?L5#+@t@8ZjzRUjaU1kzdb}eQA&1`ijcEYyEjS zT0`|ab_p4>CfQU(RYNJ*ez4w%_@~bkvbe|{Y6klLAKkuQG5Ec)7iW=r9Y5x2kE0$r>rB) zM7yKd#Yr_A#sXobC5jIh!m!v=!ux4IK5rHZPuk?kf+{SerKLS*94>JeM1!i-V{S$@ zyjY>mNo$dX+-~IMU}!AOYac>kv=~C4O^ZanQBPX%$f4%EC818Qe~fvh{LeVWG_<|s zioR0V@f9`vZH78EoGY*s4V%cEM%T%U>>R=1+I7xwp-c78N#^+O2#yV*@Y*-#_>PGG z-5|M#R@Lu!`3B;Y?KPi`z!-bNFbbp^b$=cL?|Xd5gNq~E#VE6^5M#*1a-In1yg32l z_BrJ_>(zg=-G9uEkGWkh)}6m$~mJ)mvDY<*3cC=uvt|DjGrWQYmgGa^`u1?yU1eQ&oL}qF|@c zMM#VBxB1HM@Os{nJb7e6gFp0G5G{@`2Mrblx9&}KB?7;r2bPo1ClAl^O^ckr#} z3572G++{RtKy&}_Y!un;ItJ4~#fkxCjL!gXUe*xl`<~RrScc46h`K{T6!zO4K%Tev zpT5qQ1);f&*_wT%j=8XVPkxy_Do03JvAntKcbwOBG)?#AXPC`X`wM~X{%`kgXb8D3 zfSQ_`${03710IY#YrXYpZwHIuXK{24}&sm8#wVVpwVMohKH&2&H~!oQd!8pnbxiiz(652duF5$jUrq&>~^& zYY{}E?^=~*a899?xlZ9;B_d}T?fFY(8u>EhWFd3fYTqD>Omv&oQlGckxXtBZ?1=Rl zI^>MvRzqy!)`P9lEJFYF6uxdq6_A4&*RW*lUP?+zMO=}u1)6Ep)Mpm)xm*S0gV8Q1 z$IG+|^l&|9ww8J0S4uacvGz0fGD?{`K@uZju-L9Gx1Q=_W19>pft{Z_om6uR<0fiXRl1A{yG1m zWp&ZaOXrKynMQA^=HkXx`w-6zkLEXA!^Ji;JKR)2k@A@`ssHMrkN-dy+~u6ZNiJDH z<`vS=Y@kqP8HyI+9cMq~^K)%n_uH!><6b&sC1@fqT*~kS_XELu!Gz!%k_WSo30&>< zw*+T#rzZ9u9A%)>`+}B)deyOMUCi$oaEl*D8QSAE#+jQ-7=}+^_lHN8m~$ndi4Sng z1o`!H-dUh+f^N%Rhx5ID0D3u_F_B76BaT#;z$?(Uw(C*yH)K+W^#rohI02NMwTMPvFE zcbZ86n*B|$a0X^%>s_AVM=Ez0Z)2b&m&tqo5M?I?kkthVRZq)}$y)aZq}WvSJ#6zo zNq>_;dcX{O#1J|yPH&=V&dG@3YpThD`ntL%WH;rPF{m&;5beK#zNTvUm1Z+-EtlGi zDei0=jG5;-1|&4;vi{ghlVZ4FPssfKS(nM~;Z8|C-Cs8*yd|Z|INpk;oE|<+`t3a= z-6O6^3IJPUsDk!SJIL83yrdBAT Iu}9Kh0n;=MOaK4? literal 0 HcmV?d00001 diff --git a/icons/obj/smooth_structures/fancy_table_monochrome.dmi b/icons/obj/smooth_structures/fancy_table_monochrome.dmi new file mode 100644 index 0000000000000000000000000000000000000000..54b1b17577711a15f6de03857bf03f0c392a3d54 GIT binary patch literal 3336 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 BPImwR literal 0 HcmV?d00001 diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi index 897508fa8cf0d84008cc3394719f7efe145516f3..2e1fdfa7a80d7972cc0bff9ecdc982b8c30bdd20 100644 GIT binary patch delta 13859 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 E1B3pl$^ZZW diff --git a/icons/obj/tiles.dmi b/icons/obj/tiles.dmi index 99f976a8737cbbb2637595c0c8e9df09bb6d74b4..9305e4b7bc284eb51238114f939c53e0dfa6e21d 100644 GIT binary patch literal 12842 zcma*OWn5d)(=M9e#Y=H$kwOVhDHMu36nA%b*Ftb9R;e8vp>{eUy_@N1l8BeXuZ)NA+Kh zm;eBf@{^{nr<9e4g}a@rr=5#40N|Vb?W?eJKNoI<%^|S_cgNoPL9wfSt zB(|`xTZcYe%hf#>Z-6w+=fdhX_g=Th&dpukI}}nMpw0DpoV6v(i)kb8ueVk;H8$K> z?xk_QnNs<)Q1_2$=1MzRtSfqv$(xBH#C`VZYFu$2LEo_pnqKQk^e(d7B#_ie%}9}V zU{7?u!PWi(r6m`f3ZQMYk@v&6&uWx0=9=SSi~FcX;D*N zcSTo)T?89zXXNvZ?3##7&AtkcQgZPR$kkNRy9G47ywCn^`FTAwTRkTh#YnL&xpAz! zvQ<_7%_1fVYcngk>_@Qye)liw6|AWE7!(+?No2aH`afoB!hckPv*7#3yH9(8pZu+D zY^+QDyYlxrx*ExkPh+T)*lZ!^2kkUFC$s35WCEW4NTEf#h@k#!X6fMdc00{<*zl| z?ebs(y_EHC!U@(SN@iZlWN32T{81Xr@Np@^2{W%o!K9p*(0ii?SZ{S%-I238LHX4ilf6@PdZhmQNziDbsvn1fO0eDOP8^A<$FUzGLXt3r0A-=l6Qj zfNHJKzapw!Nsq(7C^jRiL^OgXsP|lnLe|K3@wrwbbd5dz13sqEs&FN9!+VH(im8 z->Rc?$%+EISK;|3=vWaFWtkXa{L~m(wFQV^T)2vKT#7IHxd;d8GfSRh&+&5c zZq8q3K2paN>N=@|3>7)UdwxWys%dG?Wkr!;N7!my#9f(KuI>qx)Mn@3UyZdos#`o5 z!3N}|3tx13k``tMF5sr+=_hcV4@|Hv;l=Ep&|pWX#uL6A)Z>s@)=eApprd4T7|^r% zJ`Lka!LqP_J5S+Z7{|!vAt0f%7n6z=QJA}jT6Gwlbjj=J5Y)B_kNaM07H``b#4abC zC$AUhJR&yZ>~kqR(!hEME+=-Zytw84AhqDtV;)$3+vJ)q2a@6;q9ckXd=~Xgnm+vX z^S(?OIT)5KeQG{vjV<3Ub6&DN-9$@^M~m^ho$a;4H(4!dEn-cj3&z%Iubku(*QHx8 z!@pViClk&yRFfXp7PqXji$@i+6z zI`5&<=APTJo(Fcsj01+U)JkDr`q&x^K=NufPTzkz>U^ytx>htX|1iF;h!~=Mq#na& zs5i{BWErG$+)*i^Mop3zPnPr&Z7PY0k)j6$SAc9QVo32{U`JrtWp2f!OXO#i6nl}N z$4D!}q|SO#`1RKVF$M?!d|_oki>ZDr)*_4qis%N*G4y4OmFNoMr$Mh1dC@Y}3Vi}l zQ@|8NePUm+FQL*I%lrz^EIO&Rd?lT!qDbWQL`&^)HH<%JBKu-tZaPUdemStu?Sb`N zg7ewA43#ir4)Z&yXD{9n(J{z}_pPz_WZ>kA7Wy%yq#mXu>x)`B+z~VTK)zO=g>;R4 zwPL4aP`lvddH;TBqeO}HB1%H4&rDN`(b51-T8(W8Req439HWnCTJeSSg7CZG?*%N_ zG1a#u2K}tsn05P9k!Cp^=73rhE@b=6ltVSmh<&_WP!pA*$g0XTD1Te2AqxugaAx;d zO{o%uDYWZa9^D!@REz}d@~jr{=I*x)TY$t=I8=yJ3{}WVYBVGYn9`V5Ntv{NauqR7 z%@OVEQcDv@lU#)Veu>1GZ#=M**2=?s)Xmv3L{5VHTXx>S^RNfcQc;1B+eE-nF42@j)O>Sf~-mH?`S_dpnx4CN|lH#24 z_kKymQ6)>@?;(zXiMja~^s-o}F`V|f^miQ3D35Hu<RIdFrQ?-%mvRwCT@=9I&P3wZ-YqW&vz7Bc~+((9@a2 zF215oy-A;M$71#?yg}@wpUDA!(T{kJrAm8Zg^lASnxG4Np zaY=vG+tG1IMSd)?;S-X<6d6ArN6gYux`)|g2V1_$@KSRcN(<7KhOyE7;!$JVa-fVc zyCFgogl>rVfJ@AAXe7Qq!_uAZ(z%N%9@Vj7iC3a!iTmL0CC;0@MyVVN{?s}}V_wjbG6(uZxMrnS+4)rVy^L-2b zL0afkB1Tt`e?Tel201Zg0XL62?=a+w)&DA)qqjBBV~Sx*j1qn68u`A(k@O=y?;K?I zan>`r7(=_)OoD{Xfp(Qp8fdU3Fm8`H4dkNbSU&Gm1Q}kEz7&?w(vsIFo=~hip2ND> z1f@ZxJ`P-bPM06yiB|MV-XBlqZ%G=@L@6=;j<^(XH|xKE>u8ZMVoPaGl1P*#5q+4J z`9V%!6-tPaQ75m-$-NGfk=Wal&RNnWs{q{=1{c=vnB>w8|4<)kC?T#(V_-0IVHu(0 zyC_w+3bVXILW7v>^;jD7%4#M#b%@w2VT^p|J7=<=yljRtCgtBxQm*s_NnRKBj7Oqi z>+Q^wrt>Mr$YeH$ew5>^dqYJ>%|88}>a_}ru#k$x9JnBlw+JNvc`^~m7!hu63St}& z{o-t!-Yzo|N60PthZv72f5%I6wF5z*jq9q`7U}hp=b^pKa0|zYPraOYzlh^vgzyU%!5x-mYA)DZ%*-M2!6v8$G6&s9613KUY;;_@UK-K%^Z#ZdkyY z0j1c2SGaJi^)ieax4)+jRwIFR*nPazv@mGB*!0SEv$Ue3Ij$ zaoFWPuhR00F_ZghZOex(h1;uto=xD8yRT5S!yilnEBWhdYL*$60v{m7T_6X{Fxrb@ z*$)Az_?$gUc(G_L6Ml>?_GoH3+=Z$b zo@)rhqUPd($=cZTO0fmX_0z?QvAvYG|SYH2`O?3dl&nQ=_2U?w+i4 zJ74*QWxkkyq$7)&cB1SgvA5~shN2gzl)Z%p7+@x4_(>IpdD;keU3hes`}qv$cu)f@ zMe-s-OacDX8;K6#v{uE@hJ8r`*m(|25)Rm61*$zfxY!be4ex~2$vyqWuzRMwV#S?w zicJ$R{O82ntxKIV%bK^7m~{qoPf+=BIUQL|7mt&4a8yCWt*y?lA7hR&CBC2OFW1#`OOm6A*!InpT%!+xYl0`&noq0MjDS2 zy&eeQ5&y|%UO`EYU0@roC|4?IF!0&8rKfIr3-D1kh3QBW)co2LYq3M8oqt<`zELWE z9KC`W5P39HR&l_UQUN0NTBUFdMaPh8r!9$gCjaB!wjHn{O?Zta=yO^L!j4(pIo=gX zt4Y+su_VV3wz;!qihs_|{jTfg)s4cD7)eQHtM=w0Sr;i z$|ZG+jJ|bMkGRZ`QwP{*wOj#!D24}EsZtpK$IRkCrW^n1rdo^lrVZk(F?J_xm+5@q zj%`920x4={pxn&Ua z{<~3}W^5i1knK?0l^PNP92y$p4}9S7@HyGpn=bk{9%|9R?5C$d=eBLq+<^0s$oB6b zmIq7~*_>XU8`4;>*4s23G1drFAi;yPoPgJL8rUIO``cGnJy6r#`%ODe39g4ljx!S% z{H4k>#Y*y!p7P-sdU&)dA?P{~udiJ0V)0!h6Wz^P2xs&}7Un3+gBGc5SVV;C@pj$( z6EV}x#eMh6!xI3|pMa0bg&fY!Jb#z}rxB4ntFaRHPOdYQvuZbhEXY!nnaB9-Pl^hP z>*b!B_sQB3R^OjL3|m`UmvA^LzXV-%FmdKPn@Qh53@YbpL~qP%%@(Y=<AvfVe-LSdvg1^IK8c5)d?>kEUVYVwMoa~iHv3a zFM8^zjd?&E?@O)^m<|FYB|D}{n2Mz&p9Hnu*qAyoDNbZu!d*fKa}OKn7CbvLL>+ZN zX`yDBC0demYxLN(MD^I%Jn9s+-gX1&@()A&)@z=IxqmP8knlip{k{1DfV(O(@MrTQ zQcj@n<{H^gkvyk!2ToIW_vDv?-cu_phpj@KU6;ug&ye5%kdu>dAdxZ2t4rFCDJK(X z9{s*W`o{FufXs-KN*#vi**NPU*tRLs7b3 z=416Pdv|c>`8+WZMe|>3X)z)bGW@7&JY5O8AF7{K`4#!8Wnet?NuRX@)|-jqzwXvD z1CVn6xJSwv=}esXa{2jPs55XkN2(iuIZ4vl?ZUiMw-GK0+mm9z)$}EFOLF| zSolICI{D?LVD|m-#cGF-$HR>q@~0dJn(+MOGgjUX!8g94?&7+{1Z-rY!8y)H-PMJQ zk2^6>D;xWrP>KAqm?lw)*G zG@3I0^=2}?#?}C(?wn}8#Y<^ALV*!`GF4SjJ1i?rp*#FW(Exc4l6Xp*@*9x9Cs0U< z%GMRDM=x+sQ>8;IP{n#l+B{+J8WhvcK`3@t&XW?wwA5gSW3Om+c?n{ACDNO!WWW|5 zWYNjS`ojuF%4F~dJtZX-oq~#L3pw?d*Vo)1KJ5R1UtiCxtc)R5i^N2JOUpt%3b(;Hy2c|TpiYZR&3VP+{p~3*+aJo0}C*q1O(TIzNrp`Fb?05}Bad#fda)qKD4Qmw+ z+q1)yw%iv4d8YSF&5cMggSo{M6VF0)b}(5Nza{D$aSQ9B(69V@{Ks0N=@80aHOftg zqusfx<-ICqcAxfl1{~u}_OAz0$(d|PQ-{dXL6@HT-+C83^@f{XvVcOHjDqR+j!?8T zRKaDcCu@0q>}W(4q!Mam;ZpX9(Jp%Xf)X5t41UohpIQ|l$#Iadc3 zjBrN=j)65uO8wXWKlUtDY8T|zK25rHXnXffLiGroOUv87f|p#b;wbKlJ}jt1Pp+-S zTJ7ids-1`{B{EkzCF6&L3#Q^keE6gb*)@Q?BD3=Sb2VKgdpm9;qLKRQ3OM)UUOmjD8x7(tR~^)K*zO)T2R`zl)UyCa^p>BT%I!?OeNj#boj z0G6t(?7^LZo5l(Yim!4#0}z|CQ6J7uqZ>X*7}N10Zf^LIF4?t)iHRvk2ttgVf#C&x zehyT)h0|2|YIU4s(Q0B0d~*vC5{-Z?o0zuIknIAi9v~IEq~dCh@wNJJE%Z0L4_T(! zW83T)E!AT6x(sP!YCm_`9ZYF*bn0ylaQxk~jUhsT6SPR&%7Tp+ z9p5mzhBL2eF(F7-Q2qQ*_57a?A~O#Ju1LzXnS>s%c8tjcB7GJ0!m#k8c)N@``FyR( z`UC20?qTEXAAb0~P@7mya0^@O>W+L^=(j63$jSSKrUlP%bHR7u$1I?@f5P_NKu0y0 z{=IhyJ?*p|eR!W(g65+;+5V0ih?tr+zpc5K#Jh(T_T7Cn+>U(GFkc2UG! z4=S*QLd1=cC{d5J^+=0;tCI`t50$W^>z{xHVdXl1xbr_+4?G8p6lQV>sZHjbR%AjNJkY?xu^vr=YaV*k{=zDrDs>`w%tc>T*;y-2<( z1nspOlVXjX-%gV1U0>@i89tKdJNsP9Ap!|PtMvfJt-AtIRcY}ZTV$x_{AFb^ADHlIvW6}gnMe*vVy$Vg*pycnaytM;- zYrQTXDnb9d(xMXZw4HW)&AV{gP36Ks8n0h0`Zr>;qJl$l2+m= zy^R`5BN+M6DTYOgl!DPUV1Z*3%(9NstYL!1aDf_dpXm@#bo4YXhBf-URZNRE1Ht6; zfLCHhuL!G2d{Zi!3ipXYZ|7|^XQx#oCXv?IT*(VF>KIU$*sy*wqxFCpbx*$vy!CJ# zCJOI)$s%hCWU1?USU2nMAq}?^cqk3t3IxS$fdOA@gNgdgDqx@kS|Ehhl(;^x~>n_dRyn&0? z-U6!!9jdtB)6drlJksktc#0Zz`z_5tZLM%Aw(tu5F(7MRKfT@C97{1+xMM*$v*{M^ z$?tJwN91#4(f<_Q32#5V8I0wu;Xi^K`>Zys=C8OQzPc_L+oPqVqzFBnN_Jx{%g-RA zodnVA^qZ+D(atiFvEQP7C|e_QA4=@bZ!8j?aZ0!zR=32cf;5k>wO^pD{M8YGF^QZ# zJKHNt;K=J{riMsxo62d}#zww;^Oc5WAG^LMJd*Gawm`IQx?;CwQ1-V1J?tdgOFoH} z0vIjB1!Kxb0CxsYw3J|m;;p&DQmUNpwkvYgrDgqzc~c8ZJ2TJ-hc;u~C}Fybx?25^ zB_`C2T!EBVAOBa-UnzfNBMfx%#m=@WB2S?t+LRFh*98=zxNy9Rr-M<6v3XvkMY3FI z)|V+EXE4=ARfyhEdk;>(UcF;}rOkkRUjW^i|0t4CR{kdOr@PX(;@@U0>tR?B8Y%Z%?^=R#+Y99D|K;dmfvA zKh}>A>@g#kc1x#`HoM6C)usA`|I@m0(hnXb`ip0)V;?DgOmPHn(>XfXCHby`+M9TC zvdglI%vp=LJhf@fziA2<3xvUS3IOe7Z{G|QTD92Q%4cEgwqI{y`?prpE^+_{$u^4a z2IC^jhwWJ_$FCf^z}1~z@ihcl&|pGT&4$m@@7hHnt_@Axls>xk=dpfOO7^lz6#?bv z#r(i>`*-OTApFJ(jvbig#&VBKK^yxH_RM@{-FSv#yV*|Kusqoy4tIuU|2Stt{EW-Z zLZagF{P{Vff_BIK4IKag!j6_gA&#i8fBSReb-v?%@YB7B-J<;gb6iikW5Nzs@Yt zUGvt#Nw9k)RgYcprqZHc`;G^zW~w%3dk-y-utKAlMvkYs@> zh>HE{9Ji0>tx|{?RHBZX?b;9ZM5pf2bC@>?+HiTnpF4^i)^%-zAlNsdY)zWcPX)1zYtT>Gu~NNAw-s6rYdd^)Qx}fC8;8nv-4o>)szlp$P2-BWxVThP z?d*0E@aBI}+IW)OR*0rEZd%&r$33^BeXp;ytU#CYk#hy*<|P{E0?G|3nhv*L)5U0! z5F8b0YIJBPklURIsAr|r{U=k?V5K}r>_k`?POM~R0LI`)A$fHYXSpyM*4vtK5y4M=q-Ss$@76?U*bfND-R7ovkuE?xp0ZzOw!Yx zESJ8P6AMqzAAh?hXqS^{NfQX4Rf1yJI#~cOB(+qv%YF;YE^tCB?C>xANknXHBmjaqMJu;*8o?}VFuh#k0bb#yPm#&a z>fDOBFqSK$*xO6>eLe|;89QPmaeh~4MzX`nr-f!KB^i&Ct$8*iX-OgzD~khpGgp-OC8A%@)gL(DD?l|y_!omjnT3S$;cOT@;%ZgU zRJ&nxGHKOWb{yN~%tapbNat;Mn#3gO&bN{r1M9+#%_tgmXUL<5dE1MXhfMsgnM()k z9$C>RH!I!+RBDj`-K9pGgv7Y)iS6Ksm*OnogXZS<4NF!1H%dwo7{p4_8d{oKy*%i* zq4?OAvF$}*GH=Ez-^QZoRSIh6I0eMlCCBT31JuKR$Xr-w(@sXR@WyZ?YbB)y$LJQ0Gks*0man6s^-oY~htM=@r21zh4i4Z}sCTy>?R?myT4 zZmn!4j^(E@945{n=nkPT(NI*;aU@Q`4)&pDp>4dUw(i^@yb2szO)z`h%O+ zPMR(o+S5#A@NFd>GF+gI=;53-4}8`_cwlPb{3l|KG4L{b$S}|kCr-eEg~l(h_b6y>kvOin?&6R0;l0Z`WxWyrxBF>NJu9K)x~q4mKI`BX-<=Gb)Xt!b z2|kV8?o)cSmbFin{Jy6f$#D3|x=Qu^zwf6kXriB#w|0)^?K^WPBd+&9_*ySk^nowD zEvALJZl*mbTm198kV2f5Lnkj*_hoMkp)@G2h{mkeixSu`#NRi7c1i!6SvzQFd>3vY2u#-lV+AP;4-)RKt_~LcRGj=`}6^=ieoMA))c4 z*Rt97-{8MwYmoz@#UyyeX5c6)AaKAH*yMj)q$4+h*pZ@w1T@9d2$#MUsBezj^cQeD zemtLhzm{#w>R(GHw*x^eDOoA533E%{^J2c7;EX6#7wg;@eY&!W<5XL^-p=Ct`u53v z$`zLuO;I_ww8aO!x)p(=kX2@Vdh7$qI$Eh78R_ru?>rx6Rajf;26woObDq^FfaBN= zngOI12$<+2EE(SHxb&L}2_$QpEROT1g81=qcH{ZQRf=6vr(5cJI>%%4U^F1kr%DvECzwPS8WGBZugi!*50hSoZ#XKd%# zdj1+_X0)*x+$94Dmdc{0O2;_qN)UwAoxtl6|xo+|* zk3VBGM(35+UFX@c%IUAtS~i8KK%{MU2JVTiLS6X(#SXgVJhtpR-tQ3d#o`WcTe5B+ z@gsx0f5-Jd%+bD+ES=2W6;<|wcLB)*r$%;K8wJh{@x!$`e2_#Tlz^&9g>`>ELFIc4 z(@AX_IkX-Eu3eMnPdh^8xkPz#cTGO-V3O}ebGtmS*@LF3wl{L?ygLeNPJ-ppvoJ3^T{vJ zFNkpnz+jngzz*fi2rM1~h@6W!Xxm&xJ82sS<@Izmj5vsXwt891f5Tq-82@Op zfqb-nx6Q=$27JO^#ChLUkHE>@r{Q-M^JT7Wu%4hi?l=)qxrAI~L9cBk(i9GZ9D znFp$wEFs_bw)99c=*)do4uDNHI2UWeKxB~>%5$k4F*ZY@9r(M%Sa zNt$n?M8F5$md|~(_hTQ*>UL)w4utD2@#-r66Poh{Dd(OZte*rEGDvj~QJoJQ>~(Sb zixjH^BX)m%5fQ;{b{4Ao^Uklm!-33Co`DDumyiHkUsn;yvq8q6eh{5I0L|kV+r`C& z=fmueFE3wi%Pu`>qzof?y7wN9>ySbzXY&JlrlwRWE>IPfls-t%-UAK2=Crz}Og^%) zVkCyDG83NPmDC#Ub0L&W+8V~4&QR3}Scv++iw}bQMarafzeyC2<}51FkfV3Bp|j|C0D3z z?`b53X)IjoI;f+Fj%50?Oj_nTJ9SgQ)pq{#cn)5O0e?x*Lv8NfsPyrYV`@zehb&g# zCKvM6$`HqS^HyIW<@Z@uj*fA148QeIW$B+AgU^09q?^1l0jph2pac(YNJ>g(3;8A2 z)YM4BtyYlJ@{(*nCpZ%_bvd}teZ*1!73p?re-KTW-u?E>@J`bmMR(8B(T}#KWmUSo z($gyA&cJPKY{W0}@$yQNW59~)XCQj^=FOYW!&}6$^B5$?6t2kLD@B*ueynJ0`66*3 z0rjiJXQ!j+sH}`#TGBHO+27_p{bC+yJB8da;r%b@-4VRv?BJ}m!rkEeu1B8Sf`S_^toI>z=G`B065)#Lc>C9_8LMF9 z>Jverm)2~39t|t(dMP);L-&D%j1J?M)U4&tf*kt#6M7b9l!L*@ee7{ zn@cP1K%xbToH{TVY{^X#bq3rONRlJOj`+FlE>)yvvd5WrD=1L)NyvC#K`wIAk{e*P zzQT@ne9xqk>&dpeLg9tJahw;>uz!!ZxI;8PFje&A?gma@K4LcejY<5Z<)+4eCn$J` z)?SxL;r_0>^Z4&yJE~lsss3y*+t||ZOZ7jSpCRK zI}A(>AEq_bVkc1JZdpNKDsagct1tQgTApS_mA{+N2SCtFZEefgy7VT9H2qaXAikZy zk0RUO_TWLls6L24DOSV2oe#0YThDfLJMw7$8NDgg0|FA%F5*0CyZ4L83L%OP-`Y~3 z1AUXXvOt?5GHiA2edomYxWg6<(PgRDQ(75woE8M);f1%k!E|c=ys2S>Jp`TiCkViQ zJ$`xoW$?-vANkWiqeS0M-7G?!luio!Kyvlx3xIKPacuSq3`FDOF_s!8bh~RuxxvdO&5iLd0kK7Q|*WNt(966JJrJgl61b86FLwcu*awVNa z11H>`gz1g{s*2%l`aDvM!%)j;X@7Y>#<}~e%|lsW7UxmNL}>kzU#xylrGD)NlQJ?V z&%P{KdFd|MF3+T#?K|8mrlbcj9dQHrJtBDpE=1V;6&;XDjhVRM@)r@h8&YRDxolZT znG#mK-?+qf=9}%x|JPF3(vVixy=w|`*RBgA6+>jGP+9BbbH538pFk*6phpV4726hD zR8P&tJ5SBn6C-~kiu*l^@b5XHeiN|Cch>?^3zrjr3vZ9SeqCUNVs@- zNh6k{>1z{z+yfJZf=X`?Q(~lh0}upucYFSv!&~1bHH%vQvl9qPTC7HFZ)H5Ce~6jx z)m1Tslefd)II&abg9#QX+h@MJ)GwbNRJJEe4)mu@(~ND z{X7Ky|6+-|eG5=&lo!~vkJXv@IQ8;av6m9d$6`ABQ|G>USoMzgL!`m^@nCy>Kv_6MNN za54q`v`D0z3}@q8V6XxWFS^)#sVLXOP(!-PB>H)!$kPQhFi7um+c3We1+6S9lOvIB z3@??C0kejl*Aa@5gSqGar9qgtlZ$FL@9u^)H|Y9)EEn%U7W@E6dw-BBYjSjV$*Lq; qhBLctd;17P0opqKPn#V#hydo`+v)g$Kgj=p06t19OVvo2hW;-}`{JPh literal 12694 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 iX{*j_04G?caS%5Trn Date: Sat, 8 Dec 2018 04:13:16 -0800 Subject: [PATCH 051/237] Update human_defense.dm --- code/modules/mob/living/carbon/human/human_defense.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index aba8e98583..232e029bde 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -272,7 +272,10 @@ "[M] disarmed [src]!") else playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) - Knockdown(100) + if(!IsKnockdown()) //CITADEL EDIT + Knockdown(100, override_duration = 30, override_stam = 25) + else + Knockdown(100) log_combat(M, src, "tackled") visible_message("[M] has tackled down [src]!", \ "[M] has tackled down [src]!") From 6ba2d5643514b37616e67f71bfd299dcf5fd9455 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 8 Dec 2018 04:14:36 -0800 Subject: [PATCH 052/237] Update neurotoxin.dm --- code/modules/projectiles/projectile/special/neurotoxin.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/projectiles/projectile/special/neurotoxin.dm b/code/modules/projectiles/projectile/special/neurotoxin.dm index 46027e7bdf..def7ea187e 100644 --- a/code/modules/projectiles/projectile/special/neurotoxin.dm +++ b/code/modules/projectiles/projectile/special/neurotoxin.dm @@ -3,10 +3,12 @@ icon_state = "neurotoxin" damage = 5 damage_type = TOX - knockdown = 100 /obj/item/projectile/bullet/neurotoxin/on_hit(atom/target, blocked = FALSE) if(isalien(target)) knockdown = 0 nodamage = TRUE + else if(isliving(target)) + var/mob/living/L = target + L.Knockdown(100, override_duration = 30, override_stam = 25) return ..() From a2f91359516a361ee83a59c0d92181d588ec9dcb Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 8 Dec 2018 04:16:04 -0800 Subject: [PATCH 053/237] Update hydroitemdefines.dm --- code/modules/hydroponics/hydroitemdefines.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 591fdfd535..eea53cf94d 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -115,6 +115,7 @@ slot_flags = ITEM_SLOT_BACK attack_verb = list("chopped", "sliced", "cut", "reaped") hitsound = 'sound/weapons/bladeslice.ogg' + total_mass = 1.25 var/swiping = FALSE /obj/item/scythe/Initialize() From 7978daa37062487a2c3ae4de5c412137904232b0 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 8 Dec 2018 04:18:57 -0800 Subject: [PATCH 054/237] oopsies woopsies i made a fucky wucky --- code/modules/mob/living/carbon/human/human_defense.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 232e029bde..4185f8f3aa 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -272,7 +272,7 @@ "[M] disarmed [src]!") else playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) - if(!IsKnockdown()) //CITADEL EDIT + if(!lying) //CITADEL EDIT Knockdown(100, override_duration = 30, override_stam = 25) else Knockdown(100) From a347cd14e2a64dd426b3bcb2bfa89aef6b943378 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 8 Dec 2018 04:19:41 -0800 Subject: [PATCH 055/237] eh --- code/modules/hydroponics/hydroitemdefines.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index eea53cf94d..1824fdbfa7 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -115,7 +115,7 @@ slot_flags = ITEM_SLOT_BACK attack_verb = list("chopped", "sliced", "cut", "reaped") hitsound = 'sound/weapons/bladeslice.ogg' - total_mass = 1.25 + total_mass = 1.75 var/swiping = FALSE /obj/item/scythe/Initialize() From d049ecaecd418bbc76e7794423a273192e0ca0ce Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 8 Dec 2018 04:53:02 -0800 Subject: [PATCH 056/237] Update hydroitemdefines.dm --- code/modules/hydroponics/hydroitemdefines.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 1824fdbfa7..e3ca576944 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -115,7 +115,6 @@ slot_flags = ITEM_SLOT_BACK attack_verb = list("chopped", "sliced", "cut", "reaped") hitsound = 'sound/weapons/bladeslice.ogg' - total_mass = 1.75 var/swiping = FALSE /obj/item/scythe/Initialize() @@ -138,6 +137,7 @@ else var/turf/user_turf = get_turf(user) var/dir_to_target = get_dir(user_turf, get_turf(A)) + var/stam_gain = 0 swiping = TRUE var/static/list/scythe_slash_angles = list(0, 45, 90, -45, -90) for(var/i in scythe_slash_angles) @@ -145,7 +145,10 @@ for(var/obj/structure/spacevine/V in T) if(user.Adjacent(V)) melee_attack_chain(user, V) + stam_gain += 5 //should be hitcost swiping = FALSE + stam_gain += 2 //Initial hitcost + user.adjustStaminaLoss(-stam_gain) // ************************************* // Nutrient defines for hydroponics From 4c7075f1a8199b11281163f5915692d7a4cb56c1 Mon Sep 17 00:00:00 2001 From: Redtail Date: Sat, 8 Dec 2018 12:12:36 -0600 Subject: [PATCH 057/237] New medals added. add: Two new medals for engineering and medical to give out. --- code/_globalvars/lists/maintenance_loot.dm | 1 + code/game/objects/items/storage/lockbox.dm | 18 +++++++++++++++++ .../closets/secure/engineering.dm | 1 + .../crates_lockers/closets/secure/medical.dm | 1 + code/modules/clothing/under/accessories.dm | 19 ++++++++++++++++-- icons/obj/clothing/accessories.dmi | Bin 8652 -> 9081 bytes 6 files changed, 38 insertions(+), 2 deletions(-) diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index 2d3bc949c3..d0506c7dcb 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -38,6 +38,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list( /obj/item/clothing/suit/hazardvest = 1, /obj/item/clothing/under/rank/vice = 1, /obj/item/clothing/suit/hooded/flashsuit = 2, + /obj/item/clothing/accessory/medal/greytide = 1, /obj/item/assembly/prox_sensor = 4, /obj/item/assembly/timer = 3, /obj/item/flashlight = 4, diff --git a/code/game/objects/items/storage/lockbox.dm b/code/game/objects/items/storage/lockbox.dm index bce38548cc..4924051855 100644 --- a/code/game/objects/items/storage/lockbox.dm +++ b/code/game/objects/items/storage/lockbox.dm @@ -178,3 +178,21 @@ /obj/item/storage/lockbox/medal/sci/PopulateContents() for(var/i in 1 to 3) new /obj/item/clothing/accessory/medal/plasma/nobel_science(src) + +/obj/item/storage/lockbox/medal/engineering + name = "engineering medal box" + desc = "A locked box used to store medals to be given to the members of the engineering department." + req_access = list(ACCESS_CE) + +/obj/item/storage/lockbox/medal/engineering/PopulateContents() + for(var/i in 1 to 3) + new /obj/item/clothing/accessory/medal/engineer(src) + +/obj/item/storage/lockbox/medal/medical + name = "medical medal box" + desc = "A locked box used to store medals to be given to the members of the medical department." + req_access = list(ACCESS_CMO) + +/obj/item/storage/lockbox/medal/medical/PopulateContents() + for(var/i in 1 to 3) + new /obj/item/clothing/accessory/medal/ribbon/medical_doctor(src) \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 45216a6d95..dd2e8428b1 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -30,6 +30,7 @@ new /obj/item/circuitboard/machine/techfab/department/engineering(src) new /obj/item/extinguisher/advanced(src) new /obj/item/storage/photo_album/CE(src) + new /obj/item/storage/lockbox/medal/engineering(src) /obj/structure/closet/secure_closet/engineering_electrical name = "electrical supplies locker" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index 93da17b9b1..d424bcf876 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -77,6 +77,7 @@ new /obj/item/wallframe/defib_mount(src) new /obj/item/circuitboard/machine/techfab/department/medical(src) new /obj/item/storage/photo_album/CMO(src) + new /obj/item/storage/lockbox/medal/medical(src) /obj/structure/closet/secure_closet/animal name = "animal control" diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index dd0083a1b7..6bf96429b9 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -139,7 +139,7 @@ SSblackbox.record_feedback("associative", "commendation", 1, list("commender" = "[user.real_name]", "commendee" = "[M.real_name]", "medal" = "[src]", "reason" = input)) GLOB.commendations += "[user.real_name] awarded [M.real_name] the [name]! \n- [input]" commended = TRUE - desc += "
The inscription reads: [input] - [user.real_name]" + desc += "
The inscription reads: [input] - [user.real_name]" log_game("[key_name(M)] was given the following commendation by [key_name(user)]: [input]") message_admins("[key_name(M)] was given the following commendation by [key_name(user)]: [input]") @@ -157,6 +157,16 @@ desc = "A bronze heart-shaped medal awarded for sacrifice. It is often awarded posthumously or for severe injury in the line of duty." icon_state = "bronze_heart" +/obj/item/clothing/accessory/medal/engineer + name = "\"Shift's Best Electrician\" award" + desc = "An award bestowed upon engineers who have excelled at keeping the station running in the best possible condition against all odds." + icon_state = "engineer" + +/obj/item/clothing/accessory/medal/greytide + name = "\"Greytider of the shift\" award" + desc = "An award for only the most annoying of assistants. Locked doors mean nothing to you and behaving is not in your vocabulary" + icon_state = "greytide" + /obj/item/clothing/accessory/medal/ribbon name = "ribbon" desc = "A ribbon" @@ -167,6 +177,11 @@ name = "\"cargo tech of the shift\" award" desc = "An award bestowed only upon those cargotechs who have exhibited devotion to their duty in keeping with the highest traditions of Cargonia." +/obj/item/clothing/accessory/medal/ribbon/medical_doctor + name = "\"doctor of the shift\" award" + desc = "An award bestowed only upon the most capable doctors who have upheld the Hippocratic Oath to the best of their ability" + icon_state = "medical_doctor" + /obj/item/clothing/accessory/medal/silver name = "silver medal" desc = "A silver medal." @@ -280,7 +295,7 @@ desc = "Fills you with the conviction of JUSTICE. Lawyers tend to want to show it to everyone they meet." icon_state = "lawyerbadge" item_color = "lawyerbadge" - + /obj/item/clothing/accessory/lawyers_badge/attack_self(mob/user) if(prob(1)) user.say("The testimony contradicts the evidence!", forced = "attorney's badge") diff --git a/icons/obj/clothing/accessories.dmi b/icons/obj/clothing/accessories.dmi index 5da31a3a4f3a6d85b8f0b5cb81479cbeb37e2933..c35956687d7cbf45a9427cc3e172782c3c541504 100644 GIT binary patch literal 9081 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 Date: Sat, 8 Dec 2018 17:19:13 -0500 Subject: [PATCH 058/237] adds in white crayons --- code/modules/cargo/packs.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 8002562ec5..1c26a96742 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -2257,7 +2257,9 @@ /obj/item/canvas/twentythreeXtwentythree, /obj/item/storage/crayons, /obj/item/storage/crayons, - /obj/item/toy/crayon/rainbow) + /obj/item/toy/crayon/rainbow, + /obj/item/toy/crayon/white, + /obj/item/toy/crayon/white) crate_name = "art supply crate" crate_type = /obj/structure/closet/crate/wooden From a58da4c1c8ceb1d6a0812b26e856bf07835c187f Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 9 Dec 2018 14:09:04 -0500 Subject: [PATCH 059/237] Update all_nodes.dme.dm --- .../code/modules/research/techweb/all_nodes.dme.dm | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/modular_citadel/code/modules/research/techweb/all_nodes.dme.dm b/modular_citadel/code/modules/research/techweb/all_nodes.dme.dm index d968cfdcc7..113d4115ac 100644 --- a/modular_citadel/code/modules/research/techweb/all_nodes.dme.dm +++ b/modular_citadel/code/modules/research/techweb/all_nodes.dme.dm @@ -10,10 +10,6 @@ . = ..() design_ids += "xenobio_slimeadv" -/datum/techweb_node/ballistic_weapons/New() - . = ..() - design_ids += "mag_oldsmg_rubber" - /datum/techweb_node/computer_board_gaming id = "computer_board_gaming" display_name = "Games and Toys" @@ -22,12 +18,3 @@ design_ids = list("arcade_battle", "arcade_orion", "slotmachine", "autoylathe") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) export_price = 5000 - -/datum/techweb_node/advanced_illegl_ballistics - id = "advanced_illegal_ballistics" - display_name = "Advanced Illegal Ballistics - description = "Advanced Ballistic for Illegal weaponds." - design_ids = list("10mm","10mmap","10mminc","10mmhp","9mm","point_45","bolt_clip") - prereq_ids = list("ballistic_weapons","syndicate_basic","explosive_weapons") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 25000) //This gives sec lethal mags/clips for guns form traitors or space. - export_price = 7000 From 6481b27cbe83baa8b8f3a56cfa7bc71e70bc5a10 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 9 Dec 2018 15:04:13 -0500 Subject: [PATCH 060/237] Update all_nodes.dme.dm --- .../code/modules/research/techweb/all_nodes.dme.dm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/modular_citadel/code/modules/research/techweb/all_nodes.dme.dm b/modular_citadel/code/modules/research/techweb/all_nodes.dme.dm index 113d4115ac..16c70b50c6 100644 --- a/modular_citadel/code/modules/research/techweb/all_nodes.dme.dm +++ b/modular_citadel/code/modules/research/techweb/all_nodes.dme.dm @@ -10,6 +10,10 @@ . = ..() design_ids += "xenobio_slimeadv" +/datum/techweb_node/ballistic_weapons/New() + . = ..() + design_ids += "mag_oldsmg_rubber" + /datum/techweb_node/computer_board_gaming id = "computer_board_gaming" display_name = "Games and Toys" @@ -18,3 +22,13 @@ design_ids = list("arcade_battle", "arcade_orion", "slotmachine", "autoylathe") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) export_price = 5000 + +/datum/techweb_node/advanced_illegl_ballistics + id = "advanced_illegal_ballistics" + display_name = "Advanced Illegal Ballistics + description = "Advanced Ballistic for Illegal weaponds." + design_ids = list("10mm","10mmap","10mminc","10mmhp","9mm","point_45","bolt_clip") + prereq_ids = list("ballistic_weapons","syndicate_basic","explosive_weapons") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 25000) //This gives sec lethal mags/clips for guns form traitors or space. + export_price = 7000 + From bcfccda9862fc547ab240c870abf0d01e8b05d04 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 9 Dec 2018 15:04:47 -0500 Subject: [PATCH 061/237] Update all_nodes.dme.dm --- modular_citadel/code/modules/research/techweb/all_nodes.dme.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/modular_citadel/code/modules/research/techweb/all_nodes.dme.dm b/modular_citadel/code/modules/research/techweb/all_nodes.dme.dm index 16c70b50c6..d968cfdcc7 100644 --- a/modular_citadel/code/modules/research/techweb/all_nodes.dme.dm +++ b/modular_citadel/code/modules/research/techweb/all_nodes.dme.dm @@ -31,4 +31,3 @@ prereq_ids = list("ballistic_weapons","syndicate_basic","explosive_weapons") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 25000) //This gives sec lethal mags/clips for guns form traitors or space. export_price = 7000 - From 63ad6f11755f710874a8b6933bbc09836a8db36a Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 9 Dec 2018 15:15:23 -0500 Subject: [PATCH 062/237] Update vent_clog.dm --- code/modules/events/vent_clog.dm | 43 +++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm index 160304b1c3..1554e1ec72 100644 --- a/code/modules/events/vent_clog.dm +++ b/code/modules/events/vent_clog.dm @@ -79,12 +79,28 @@ typepath = /datum/round_event/vent_clog/beer max_occurrences = 0 +/datum/round_event/vent_clog/beer + reagentsAmount = 100 + /datum/round_event_control/vent_clog/plasma_decon name = "Plasma decontamination" typepath = /datum/round_event/vent_clog/plasma_decon max_occurrences = 0 -/datum/round_event/vent_clog/beer +/datum/round_event_control/vent_clog/female + name = "FemCum stationwide" + typepath = /datum/round_event/vent_clog/female + max_occurrences = 0 + +/datum/round_event/vent_clog/female + reagentsAmount = 100 + +/datum/round_event_control/vent_clog/male + name = "Semen stationwide" + typepath = /datum/round_event/vent_clog/male + max_occurrences = 0 + +/datum/round_event/vent_clog/male reagentsAmount = 100 /datum/round_event/vent_clog/beer/announce() @@ -102,6 +118,31 @@ foam.start() CHECK_TICK +/datum/round_event/vent_clog/male/start() + for(var/obj/machinery/atmospherics/components/unary/vent in vents) + if(vent && vent.loc) + var/datum/reagents/R = new/datum/reagents(1000) + R.my_atom = vent + R.add_reagent("semen", reagentsAmount) + + var/datum/effect_system/foam_spread/foam = new + foam.set_up(200, get_turf(vent), R) + foam.start() + CHECK_TICK + +/datum/round_event/vent_clog/female/start() + for(var/obj/machinery/atmospherics/components/unary/vent in vents) + if(vent && vent.loc) + var/datum/reagents/R = new/datum/reagents(1000) + R.my_atom = vent + R.add_reagent("femcum", reagentsAmount) + + var/datum/effect_system/foam_spread/foam = new + foam.set_up(200, get_turf(vent), R) + foam.start() + CHECK_TICK + + /datum/round_event/vent_clog/plasma_decon/announce() priority_announce("We are deploying an experimental plasma decontamination system. Please stand away from the vents and do not breathe the smoke that comes out.", "Central Command Update") From 170a8432889abd1b3d6fa4974beffa45195c3cad Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 9 Dec 2018 19:20:02 -0500 Subject: [PATCH 063/237] recheck --- code/modules/events/vent_clog.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm index 1554e1ec72..3945a12a40 100644 --- a/code/modules/events/vent_clog.dm +++ b/code/modules/events/vent_clog.dm @@ -142,7 +142,6 @@ foam.start() CHECK_TICK - /datum/round_event/vent_clog/plasma_decon/announce() priority_announce("We are deploying an experimental plasma decontamination system. Please stand away from the vents and do not breathe the smoke that comes out.", "Central Command Update") From 552a9622c77df54bb090dafd57d1ee8d9c6ae4f1 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 11 Dec 2018 01:09:03 -0800 Subject: [PATCH 064/237] Update human.dm --- code/modules/mob/living/carbon/human/human.dm | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 548381ba8a..7582d7fb0e 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -599,11 +599,7 @@ //Check for dresscode violations if(istype(head, /obj/item/clothing/head/wizard) || istype(head, /obj/item/clothing/head/helmet/space/hardsuit/wizard) || istype(head, /obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard) || istype(head, /obj/item/clothing/head/helmet/space/hardsuit/syndi) || istype(head, /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi)) - threatcount += 6 //fuk u antags <3 - - //Check for nonhuman scum - if(dna && dna.species.id && dna.species.id != "human") - threatcount += 1 + threatcount += 4 //fuk u antags <3 //no you //mindshield implants imply trustworthyness if(has_trait(TRAIT_MINDSHIELD)) From 900da0624bbb961026b50bbef671a09bc2ea3d6e Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 11 Dec 2018 01:53:27 -0800 Subject: [PATCH 065/237] Update toolbox.dm --- code/game/objects/items/storage/toolbox.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 5c6bd7602a..c28f7e2aaa 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -87,9 +87,9 @@ /obj/item/storage/toolbox/mechanical/old/heirloom/afterattack(atom/A, mob/user, proximity) //Citadel Adds massive buff to machinery destruction . = ..() if(proximity) - if(isobj(A) && !isitem(A)) - var/obj/O = A - if(O.damage_deflection >= 18) //Eh fine. + if(isobj(A)) + var/obj/machinery/door/O = A + if(istype(O) && (O.damage_deflection >= 18)) //Eh fine. //This is a meme cast do not do what I did! return O.take_damage(20) From 6b34cbe5eda305b75e7d86ae74be367aa005b577 Mon Sep 17 00:00:00 2001 From: izzyinbox <42829355+izzyinbox@users.noreply.github.com> Date: Tue, 11 Dec 2018 03:53:43 -0600 Subject: [PATCH 066/237] doubles the max say/emote size to match the RP server (#7807) --- code/__DEFINES/say.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__DEFINES/say.dm b/code/__DEFINES/say.dm index 102cc94fac..3d79d59d12 100644 --- a/code/__DEFINES/say.dm +++ b/code/__DEFINES/say.dm @@ -48,7 +48,7 @@ #define LINGHIVE_LINK 3 //Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam -#define MAX_MESSAGE_LEN 1024 +#define MAX_MESSAGE_LEN 2048 //CITADEL CHANGE - was 1024 #define MAX_NAME_LEN 42 #define MAX_BROADCAST_LEN 512 #define MAX_CHARTER_LEN 80 From ece617e40d7cd0af169b5a0cf62cce3b23e8538a Mon Sep 17 00:00:00 2001 From: izzyinbox <42829355+izzyinbox@users.noreply.github.com> Date: Tue, 11 Dec 2018 03:59:21 -0600 Subject: [PATCH 067/237] Revert "doubles the max say/emote size to match the RP server (#7807)" (#7810) This reverts commit 6b34cbe5eda305b75e7d86ae74be367aa005b577. --- code/__DEFINES/say.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__DEFINES/say.dm b/code/__DEFINES/say.dm index 3d79d59d12..102cc94fac 100644 --- a/code/__DEFINES/say.dm +++ b/code/__DEFINES/say.dm @@ -48,7 +48,7 @@ #define LINGHIVE_LINK 3 //Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam -#define MAX_MESSAGE_LEN 2048 //CITADEL CHANGE - was 1024 +#define MAX_MESSAGE_LEN 1024 #define MAX_NAME_LEN 42 #define MAX_BROADCAST_LEN 512 #define MAX_CHARTER_LEN 80 From 33f997c10d240624cf02295a2bc27850aeeb157b Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 11 Dec 2018 08:34:22 -0800 Subject: [PATCH 068/237] Update banana_spider.dm --- .../mob/living/simple_animal/banana_spider.dm | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/modular_citadel/code/modules/mob/living/simple_animal/banana_spider.dm b/modular_citadel/code/modules/mob/living/simple_animal/banana_spider.dm index 80e8234914..e896ca5bc2 100644 --- a/modular_citadel/code/modules/mob/living/simple_animal/banana_spider.dm +++ b/modular_citadel/code/modules/mob/living/simple_animal/banana_spider.dm @@ -38,7 +38,7 @@ return to_chat(user, "You decide to wake up the banana spider...") awakening = 1 - + spawn(30) if(!QDELETED(src)) var/mob/living/simple_animal/banana_spider/S = new /mob/living/simple_animal/banana_spider(get_turf(src.loc)) @@ -67,7 +67,7 @@ response_harm = "splats" speak_emote = list("chitters") mouse_opacity = 2 - density = FALSE + density = TRUE ventcrawler = VENTCRAWLER_ALWAYS gold_core_spawnable = FRIENDLY_SPAWN verb_say = "chitters" @@ -75,9 +75,9 @@ verb_exclaim = "chitters loudly" verb_yell = "chitters loudly" var/squish_chance = 50 + var/projectile_density = TRUE //griffons get shot del_on_death = 1 - /mob/living/simple_animal/banana_spider/Initialize() . = ..() var/area/A = get_area(src) @@ -85,9 +85,8 @@ notify_ghosts("A banana spider has been created in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE) GLOB.poi_list |= src - /mob/living/simple_animal/banana_spider/attack_ghost(mob/user) - if(src.key) + if(key) //please stop using src. without a good reason. return if(CONFIG_GET(flag/use_age_restriction_for_jobs)) if(!isnum(user.client.player_age)) @@ -104,11 +103,13 @@ /mob/living/simple_animal/banana_spider/ComponentInitialize() . = ..() - AddComponent(/datum/component/slippery, 80) + AddComponent(/datum/component/slippery, 40) - -/mob/living/simple_animal/banana_spider/Crossed(var/atom/movable/AM) +/mob/living/simple_animal/banana_spider/Crossed(atom/movable/AM) //no /var in proc headers . = ..() + if(istype(AM, /obj/item/projectile) && projectile_density) //forced projectile density + var/obj/item/projectile/P = AM + P.Bump(src) if(ismob(AM)) if(isliving(AM)) var/mob/living/A = AM @@ -147,4 +148,4 @@ /obj/item/reagent_containers/food/snacks/deadbanana_spider/Initialize() . = ..() - AddComponent(/datum/component/slippery, 80) + AddComponent(/datum/component/slippery, 20) From df55b465b1cad91134c316d5f66524bf68fe225d Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 11 Dec 2018 08:37:10 -0800 Subject: [PATCH 069/237] removes poi spam and cleans up code --- .../modules/mob/living/simple_animal/banana_spider.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modular_citadel/code/modules/mob/living/simple_animal/banana_spider.dm b/modular_citadel/code/modules/mob/living/simple_animal/banana_spider.dm index e896ca5bc2..d2006cd12c 100644 --- a/modular_citadel/code/modules/mob/living/simple_animal/banana_spider.dm +++ b/modular_citadel/code/modules/mob/living/simple_animal/banana_spider.dm @@ -55,7 +55,8 @@ icon_dead = "banana_peel" health = 1 maxHealth = 1 - turns_per_move = 5 + turns_per_move = 5 //this isn't player speed =| + speed = 2 //this is player speed loot = list(/obj/item/reagent_containers/food/snacks/deadbanana_spider) atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 270 @@ -76,14 +77,13 @@ verb_yell = "chitters loudly" var/squish_chance = 50 var/projectile_density = TRUE //griffons get shot - del_on_death = 1 + del_on_death = TRUE /mob/living/simple_animal/banana_spider/Initialize() . = ..() var/area/A = get_area(src) if(A) notify_ghosts("A banana spider has been created in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE) - GLOB.poi_list |= src /mob/living/simple_animal/banana_spider/attack_ghost(mob/user) if(key) //please stop using src. without a good reason. @@ -97,8 +97,8 @@ var/be_spider = alert("Become a banana spider? (Warning, You can no longer be cloned!)",,"Yes","No") if(be_spider == "No" || QDELETED(src) || !isobserver(user)) return - src.sentience_act() - src.key = user.key + sentience_act() + key = user.key density = TRUE /mob/living/simple_animal/banana_spider/ComponentInitialize() From 11402e5337e2f169822ac36fd8259382e3773377 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Tue, 11 Dec 2018 16:22:47 -0500 Subject: [PATCH 070/237] this shit is much too hard for tg to handle - makes hotspot_expose ignite plasma and tritium a lot easier --- code/modules/atmospherics/environmental/LINDA_fire.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/atmospherics/environmental/LINDA_fire.dm b/code/modules/atmospherics/environmental/LINDA_fire.dm index ebca252167..587c33e5b8 100644 --- a/code/modules/atmospherics/environmental/LINDA_fire.dm +++ b/code/modules/atmospherics/environmental/LINDA_fire.dm @@ -20,8 +20,8 @@ if(active_hotspot) if(soh) if((tox > 0.5 || trit > 0.5) && oxy > 0.5) - if(active_hotspot.temperature < exposed_temperature) - active_hotspot.temperature = exposed_temperature + if(active_hotspot.temperature < exposed_temperature*50) + active_hotspot.temperature = exposed_temperature*50 if(active_hotspot.volume < exposed_volume) active_hotspot.volume = exposed_volume return 1 @@ -36,7 +36,7 @@ return 0 active_hotspot = new /obj/effect/hotspot(src) - active_hotspot.temperature = exposed_temperature + active_hotspot.temperature = exposed_temperature*50 active_hotspot.volume = exposed_volume*25 active_hotspot.just_spawned = (current_cycle < SSair.times_fired) From 415c1de16d37dd57e2519c4211834ee7f12cdfde Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 13 Dec 2018 11:13:11 -0500 Subject: [PATCH 071/237] adds magboots --- code/game/machinery/suit_storage_unit.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index a157f9c485..43e8dff2b9 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -41,6 +41,7 @@ /obj/machinery/suit_storage_unit/engine suit_type = /obj/item/clothing/suit/space/hardsuit/engine mask_type = /obj/item/clothing/mask/breath + storage_type= /obj/item/clothing/shoes/magboots /obj/machinery/suit_storage_unit/ce suit_type = /obj/item/clothing/suit/space/hardsuit/engine/elite From fc3cca6a19ebd30b1418491fbd95d1603f20ecca Mon Sep 17 00:00:00 2001 From: deathride58 Date: Thu, 13 Dec 2018 14:48:57 -0500 Subject: [PATCH 072/237] lets try to fix heat not spreading - makes hotspot_expose force turf air updates (#7814) --- code/modules/atmospherics/environmental/LINDA_fire.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/atmospherics/environmental/LINDA_fire.dm b/code/modules/atmospherics/environmental/LINDA_fire.dm index 587c33e5b8..bf5d8efb13 100644 --- a/code/modules/atmospherics/environmental/LINDA_fire.dm +++ b/code/modules/atmospherics/environmental/LINDA_fire.dm @@ -47,6 +47,7 @@ heating.temperature = exposed_temperature heating.react() assume_air(heating) + air_update_turf() return igniting //This is the icon for fire on turfs, also helps for nurturing small fires until they are full tile From c9c8207c6cedf53973c9c06c13f3c729f936866b Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 13 Dec 2018 14:49:39 -0500 Subject: [PATCH 073/237] Makes Bubble Gum a male - Requested by LeglessLizard (#7820) * Makes Bubble Gum a male * var* * >uses a unused var --- .../mob/living/simple_animal/hostile/megafauna/bubblegum.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index c60dae6a35..45745bd84e 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -44,6 +44,7 @@ Difficulty: Hard ranged_cooldown_time = 10 ranged = 1 pixel_x = -32 + gender = MALE del_on_death = 1 crusher_loot = list(/obj/structure/closet/crate/necropolis/bubblegum/crusher) loot = list(/obj/structure/closet/crate/necropolis/bubblegum) From 33b16bbf71b7ad1fbaadd2c268e2aa47ca2d980c Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 13 Dec 2018 14:50:30 -0500 Subject: [PATCH 074/237] Update Sleeper.dm (#7797) --- code/game/machinery/Sleeper.dm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 4d3fd006d8..7137f28185 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -212,6 +212,17 @@ icon_state = "sleeper_s" controls_inside = TRUE +/obj/machinery/sleeper/syndie/Initialize() + . = ..() + component_parts = list() + component_parts += new /obj/item/circuitboard/machine/sleeper(null) + component_parts += new /obj/item/stock_parts/matter_bin/super(null) + component_parts += new /obj/item/stock_parts/manipulator/pico(null) + component_parts += new /obj/item/stack/sheet/glass(null) + component_parts += new /obj/item/stack/sheet/glass(null) + component_parts += new /obj/item/stack/cable_coil(null) + RefreshParts() + /obj/machinery/sleeper/syndie/fullupgrade/Initialize() . = ..() component_parts = list() From 3b247747142ba9c87b3b7f9febd46f28d0e1cb1d Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 13 Dec 2018 14:51:55 -0500 Subject: [PATCH 075/237] Buffs NanoMed Wall units! (#7794) * removes some rouge things * Kev wishes --- code/modules/vending/medical_wall.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/vending/medical_wall.dm b/code/modules/vending/medical_wall.dm index 84c4891589..018eb09d86 100644 --- a/code/modules/vending/medical_wall.dm +++ b/code/modules/vending/medical_wall.dm @@ -13,6 +13,7 @@ /obj/item/reagent_containers/medspray/sterilizine = 1) contraband = list(/obj/item/reagent_containers/pill/tox = 2, /obj/item/reagent_containers/pill/morphine = 2) + premium = list(/obj/item/reagent_containers/medspray/synthflesh = 2) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF refill_canister = /obj/item/vending_refill/wallmed @@ -26,3 +27,4 @@ /obj/item/reagent_containers/pill/patch/styptic = 1, /obj/item/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/reagent_containers/medspray/sterilizine = 1) + premium = list(/obj/item/reagent_containers/medspray/synthflesh = 2) From 9961d0e321a4fe89e1686f70d8a9d686e7b63d7c Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 13 Dec 2018 14:52:48 -0500 Subject: [PATCH 076/237] More heirlooms! Also changes Mime/Clown's (#7793) * More heirlooms * Update negative.dm WIP * makes the knife * dusty * Makes everone happy * grammer --- code/datums/traits/negative.dm | 14 ++++++++++++-- code/game/objects/items/extinguisher.dm | 12 ++++++++++++ code/game/objects/items/kitchen.dm | 9 +++++++++ 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 8e067fc47e..da0b811d03 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -38,15 +38,25 @@ var/obj/item/heirloom_type switch(quirk_holder.mind.assigned_role) if("Clown") + heirloom_type = /obj/item/paint/anycolor heirloom_type = /obj/item/bikehorn/golden if("Mime") - heirloom_type = /obj/item/reagent_containers/food/snacks/baguette + heirloom_type = /obj/item/toy/dummy + heirloom_type = /obj/item/paint/anycolor + if("Cook") + heirloom_type = /obj/item/kitchen/knife/scimitar + if("Medical Doctor") + heirloom_type = /obj/item/healthanalyzer/advanced + if("Station Engineer") + heirloom_type = /obj/item/wirecutters/brass + if("Atmospheric Technician") + heirloom_type = /obj/item/extinguisher/mini/family if("Lawyer") heirloom_type = /obj/item/gavelhammer if("Janitor") heirloom_type = /obj/item/mop if("Security Officer") - heirloom_type = /obj/item/book/manual/wiki/security_space_law + heirloom_type = /obj/item/clothing/accessory/medal/silver/valor if("Scientist") heirloom_type = /obj/item/toy/plush/slimeplushie if("Assistant") diff --git a/code/game/objects/items/extinguisher.dm b/code/game/objects/items/extinguisher.dm index 8e391d9559..a57bf47a2e 100644 --- a/code/game/objects/items/extinguisher.dm +++ b/code/game/objects/items/extinguisher.dm @@ -42,6 +42,18 @@ sprite_name = "miniFE" dog_fashion = null +/obj/item/extinguisher/mini/family + name = "pocket fire extinguisher" + desc = "A old fashen pocket fire extinguisher that has been modified with a larger water tank, and a small high-power sprayer. It feels cool to the touch and has a small humming to it..." + icon_state = "miniFE0" + item_state = "miniFE" + throwforce = 1 + w_class = WEIGHT_CLASS_SMALL + force = 2 + max_water = 40 + power = 7 + cooling_power = 3 + /obj/item/extinguisher/Initialize() . = ..() create_reagents(max_water) diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index bf7b0b1b3b..bf50e7546e 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -176,3 +176,12 @@ user.visible_message("[user] begins flattening [user.p_their()] head with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") return BRUTELOSS /* Trays moved to /obj/item/storage/bag */ + +/obj/item/kitchen/knife/scimitar + name = "Scimitar knife" + desc = "A knife used to cleanly butcher, its been modifed to be able to cut more meat then a normale knife. Do to the years of use its blade isnt as strong as it once was!" + attack_verb = list("cleaved", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + +/obj/item/kitchen/knife/scimiar/Initialize() + . = ..() + AddComponent(/datum/component/butchering, 90 - force, 100, force - 60) //bonus chance increases depending on force From f76d93a3687f4cd5719f770a342c9e355113f44e Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 14 Dec 2018 01:26:34 -0500 Subject: [PATCH 077/237] Update drinks.dm * Changes flavor text to reflect status as not a carton. --- code/modules/food_and_drinks/drinks/drinks.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 9256f5bdd1..3c541c7b3b 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -328,9 +328,9 @@ desc = "Milk for cool kids!" foodtype = SUGAR if("eggnog") - icon_state = "nog2" - name = "carton of eggnog" - desc = "For enjoying the most wonderful time of the year." + icon_state = "nog3" + name = "glass of eggnog" + desc = "The traditional way to get hammered at a Christmas party." foodtype = MEAT else icon_state = "juicebox" From 8dd8fb41674fe0eee7b7a5f08d349620afe452d0 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 14 Dec 2018 01:41:45 -0500 Subject: [PATCH 078/237] Update drinks.dmi Adds new icon for glass of eggnog as state nog3 --- icons/obj/drinks.dmi | Bin 71840 -> 72826 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index e6e8ff9eb71f5703747621ab8ac21accc9b37532..a32d0234d6832289a1d5e7bd54bf14a00f897e08 100644 GIT binary patch delta 16599 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 VSFQROKSO{?PD)v_O58N~{{RY%0dW8T delta 15605 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 From 517a6d71efc5c2b3105b75483ddd68dc9b647afc Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 14 Dec 2018 01:45:39 -0500 Subject: [PATCH 079/237] Revert "Update drinks.dm" This reverts commit f76d93a3687f4cd5719f770a342c9e355113f44e. --- code/modules/food_and_drinks/drinks/drinks.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 3c541c7b3b..9256f5bdd1 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -328,9 +328,9 @@ desc = "Milk for cool kids!" foodtype = SUGAR if("eggnog") - icon_state = "nog3" - name = "glass of eggnog" - desc = "The traditional way to get hammered at a Christmas party." + icon_state = "nog2" + name = "carton of eggnog" + desc = "For enjoying the most wonderful time of the year." foodtype = MEAT else icon_state = "juicebox" From 2b97d32dd27d949740ed8e2bca335e03f3200720 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 14 Dec 2018 01:49:05 -0500 Subject: [PATCH 080/237] Improves Eggnog Changes icon state to new icon, rather than standard glass of yellow juice. Also adds flavorful description. --- .../modules/reagents/chemistry/reagents/alcohol_reagents.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index f9dbd1928b..6e4d5e5a7d 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -1398,15 +1398,15 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/eggnog name = "Eggnog" id = "eggnog" - description = "For enjoying the most wonderful time of the year." + description = "The traditional way to get absolutely hammered at a Christmas party." color = "#fcfdc6" // rgb: 252, 253, 198 nutriment_factor = 2 * REAGENTS_METABOLISM boozepwr = 1 quality = DRINK_VERYGOOD taste_description = "custard and alcohol" - glass_icon_state = "glass_yellow" + glass_icon_state = "nog3" glass_name = "eggnog" - glass_desc = "For enjoying the most wonderful time of the year." + glass_desc = "The traditional way to get absolutely hammered at a Christmas party." /datum/reagent/consumable/ethanol/narsour From 941d5fcfba0486c8a411cab3c8293788dfe64ff8 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 14 Dec 2018 01:34:39 -0800 Subject: [PATCH 081/237] Update aooc.dm --- code/modules/client/verbs/aooc.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/verbs/aooc.dm b/code/modules/client/verbs/aooc.dm index 90c0dc5a55..893501a852 100644 --- a/code/modules/client/verbs/aooc.dm +++ b/code/modules/client/verbs/aooc.dm @@ -61,7 +61,7 @@ antaglisting |= M.current.client for(var/mob/M in GLOB.player_list) - if(M.client && (M.stat == DEAD || M.client.holder)) + if(M.client && (M.stat == DEAD || M.client.holder) && !istype(M, /mob/dead/new_player)) antaglisting |= M.client for(var/client/C in antaglisting) From 01c589f1724fd497fa1939395e9b2ca48186c53e Mon Sep 17 00:00:00 2001 From: Ragolution Date: Sat, 15 Dec 2018 06:38:32 -0500 Subject: [PATCH 082/237] 5th Port Sweater Adjustments Puts 5th port sweaters into the correct category and file. Fixes sweaters not spawning. --- .../code/modules/client/loadout/suit.dm | 36 ------------------- .../code/modules/client/loadout/uniform.dm | 36 +++++++++++++++++++ 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/modular_citadel/code/modules/client/loadout/suit.dm b/modular_citadel/code/modules/client/loadout/suit.dm index 773366c81e..9d3a6b9a02 100644 --- a/modular_citadel/code/modules/client/loadout/suit.dm +++ b/modular_citadel/code/modules/client/loadout/suit.dm @@ -18,42 +18,6 @@ category = SLOT_WEAR_SUIT path = /obj/item/clothing/suit/hooded/cloak/david cost = 3 - -/datum/gear/creamsweater - name = "Cream Commando Sweater" - category = SLOT_WEAR_SUIT - path = /obj/item/clothing/under/bb_sweater - cost = 1 - -/datum/gear/blacksweater - name = "Black Commando Sweater" - category = SLOT_WEAR_SUIT - path = /obj/item/clothing/under/bb_sweater/black - cost = 1 - -/datum/gear/purpsweater - name = "Purple Commando Sweater" - category = SLOT_WEAR_SUIT - path = /obj/item/clothing/under/bb_sweater/purple - cost = 1 - -/datum/gear/greensweater - name = "Green Commando Sweater" - category = SLOT_WEAR_SUIT - path = /obj/item/clothing/under/bb_sweater/green - cost = 1 - -/datum/gear/redsweater - name = "Red Commando Sweater" - category = SLOT_WEAR_SUIT - path = /obj/item/clothing/under/bb_sweater/red - cost = 1 - -/datum/gear/bluesweater - name = "Navy Commando Sweater" - category = SLOT_WEAR_SUIT - path = /obj/item/clothing/under/bb_sweater/blue - cost = 1 /datum/gear/jacketbomber name = "Bomber jacket" diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm index 7c592c60e1..63505d0814 100644 --- a/modular_citadel/code/modules/client/loadout/uniform.dm +++ b/modular_citadel/code/modules/client/loadout/uniform.dm @@ -123,6 +123,42 @@ category = SLOT_W_UNIFORM path = /obj/item/clothing/under/syndicate/cosmetic +/datum/gear/creamsweater + name = "Cream Commando Sweater" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/bb_sweater + cost = 1 + +/datum/gear/blacksweater + name = "Black Commando Sweater" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/bb_sweater/black + cost = 1 + +/datum/gear/purpsweater + name = "Purple Commando Sweater" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/bb_sweater/purple + cost = 1 + +/datum/gear/greensweater + name = "Green Commando Sweater" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/bb_sweater/green + cost = 1 + +/datum/gear/redsweater + name = "Red Commando Sweater" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/bb_sweater/red + cost = 1 + +/datum/gear/bluesweater + name = "Navy Commando Sweater" + category = SLOT_W_UNIFORM + path = /obj/item/clothing/under/bb_sweater/blue + cost = 1 + /datum/gear/polykilt name = "Polychromic Kilt" category = SLOT_W_UNIFORM From ff8a2337ca90afc2aa6edc234bbe5697bf32771d Mon Sep 17 00:00:00 2001 From: Ragolution Date: Sat, 15 Dec 2018 16:02:51 -0500 Subject: [PATCH 083/237] Removes outfitting cost Removes loadout cost from sweaters because they're just sweaters. --- modular_citadel/code/modules/client/loadout/uniform.dm | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm index 63505d0814..e4e2f063d3 100644 --- a/modular_citadel/code/modules/client/loadout/uniform.dm +++ b/modular_citadel/code/modules/client/loadout/uniform.dm @@ -118,6 +118,8 @@ category = SLOT_W_UNIFORM path = /obj/item/clothing/under/pants/track +// Pantsless Sweaters + /datum/gear/turtleneck name = "Tactitool Turtleneck" category = SLOT_W_UNIFORM @@ -127,37 +129,31 @@ name = "Cream Commando Sweater" category = SLOT_W_UNIFORM path = /obj/item/clothing/under/bb_sweater - cost = 1 /datum/gear/blacksweater name = "Black Commando Sweater" category = SLOT_W_UNIFORM path = /obj/item/clothing/under/bb_sweater/black - cost = 1 /datum/gear/purpsweater name = "Purple Commando Sweater" category = SLOT_W_UNIFORM path = /obj/item/clothing/under/bb_sweater/purple - cost = 1 /datum/gear/greensweater name = "Green Commando Sweater" category = SLOT_W_UNIFORM path = /obj/item/clothing/under/bb_sweater/green - cost = 1 /datum/gear/redsweater name = "Red Commando Sweater" category = SLOT_W_UNIFORM path = /obj/item/clothing/under/bb_sweater/red - cost = 1 /datum/gear/bluesweater name = "Navy Commando Sweater" category = SLOT_W_UNIFORM path = /obj/item/clothing/under/bb_sweater/blue - cost = 1 /datum/gear/polykilt name = "Polychromic Kilt" From 828b6315703100e6b9de3d0d4bcd5ce77523e196 Mon Sep 17 00:00:00 2001 From: Tupinambis Date: Sat, 15 Dec 2018 15:33:19 -0600 Subject: [PATCH 084/237] Increased Ash Walker resistances, makes them ash proof. Improves the Base. --- .../lavaland_surface_ash_walker1.dmm | 24 ++++++++++++++++--- .../datums/weather/weather_types/ash_storm.dm | 4 ++++ .../human/species_types/lizardpeople.dm | 2 ++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm index 7ad773e601..63d2acdf46 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm @@ -173,6 +173,7 @@ /obj/structure/stone_tile{ dir = 4 }, +/obj/item/t_scanner/adv_mining_scanner/lesser, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "aC" = ( @@ -186,6 +187,7 @@ }, /obj/structure/closet/crate/medical, /obj/item/storage/firstaid/regular, +/obj/item/storage/firstaid/ancient, /obj/item/reagent_containers/blood/random, /obj/item/reagent_containers/blood/lizard, /obj/item/reagent_containers/blood/lizard, @@ -269,6 +271,7 @@ /area/ruin/unpowered/ash_walkers) "aP" = ( /obj/structure/stone_tile, +/obj/item/shard, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "aQ" = ( @@ -575,6 +578,7 @@ /obj/item/stack/sheet/mineral/wood, /obj/item/stack/sheet/mineral/wood, /obj/item/seeds/tower, +/obj/item/seeds/tower, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) "bx" = ( @@ -1086,7 +1090,7 @@ dir = 8 }, /obj/structure/table/wood, -/obj/item/twohanded/spear, +/obj/item/kitchen/knife/combat/bone, /turf/open/indestructible/boss, /area/ruin/unpowered/ash_walkers) "cN" = ( @@ -1142,6 +1146,7 @@ /obj/structure/stone_tile{ dir = 1 }, +/obj/item/surgical_drapes, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/ash_walkers) "cX" = ( @@ -1301,6 +1306,7 @@ }, /obj/structure/stone_tile/center, /obj/effect/mapping_helpers/no_lava, +/obj/item/hatchet, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "du" = ( @@ -1392,6 +1398,18 @@ }, /turf/closed/mineral/volcanic/lava_land_surface, /area/lavaland/surface/outdoors) +"nS" = ( +/obj/item/toy/cards/deck/syndicate, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"Bv" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/effect/mapping_helpers/no_lava, +/obj/item/cultivator, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) (1,1,1) = {" aa @@ -1407,7 +1425,7 @@ ah ah aa aa -ah +nS ah ah ah @@ -1558,7 +1576,7 @@ ba bn bz ak -cb +Bv df bX co diff --git a/code/datums/weather/weather_types/ash_storm.dm b/code/datums/weather/weather_types/ash_storm.dm index 173f7e6b33..345212cc1b 100644 --- a/code/datums/weather/weather_types/ash_storm.dm +++ b/code/datums/weather/weather_types/ash_storm.dm @@ -93,6 +93,10 @@ /datum/weather/ash_storm/weather_act(mob/living/L) if(is_ash_immune(L)) return + if(is_species(L, /datum/species/lizard/ashwalker)) + if(L.getStaminaLoss() <= STAMINA_SOFTCRIT) + L.adjustStaminaLossBuffered(4) + return L.adjustFireLoss(4) diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 617e62773d..e3164e0dcb 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -92,3 +92,5 @@ limbs_id = "lizard" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,DIGITIGRADE) inherent_traits = list(TRAIT_NOGUNS,TRAIT_NOBREATH) + burnmod = 0.9 + brutemod = 0.9 \ No newline at end of file From 44acfd9858f3f24a3e6d60541b73023342e1fe46 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Sun, 16 Dec 2018 01:25:37 -0600 Subject: [PATCH 085/237] Re adds missed QOL with posibrain sounds christ --- code/modules/mob/living/brain/posibrain.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/brain/posibrain.dm b/code/modules/mob/living/brain/posibrain.dm index 90d20bc236..9e0bb0428b 100644 --- a/code/modules/mob/living/brain/posibrain.dm +++ b/code/modules/mob/living/brain/posibrain.dm @@ -36,7 +36,7 @@ GLOBAL_VAR(posibrain_notify_cooldown) /obj/item/mmi/posibrain/proc/ping_ghosts(msg, newlymade) if(newlymade || GLOB.posibrain_notify_cooldown <= world.time) - notify_ghosts("[name] [msg] in [get_area(src)]!", ghost_sound = !newlymade ? 'sound/effects/ghost2.ogg':null, enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK, flashwindow = FALSE, ignore_key = POLL_IGNORE_POSIBRAIN) + notify_ghosts("[name] [msg] in [get_area(src)]!", ghost_sound = !newlymade ? 'sound/misc/server-ready.ogg':null, enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK, flashwindow = FALSE, ignore_key = POLL_IGNORE_POSIBRAIN) if(!newlymade) GLOB.posibrain_notify_cooldown = world.time + askDelay From 1034a6ad0e0b7b396cdd96558ebf2aabc3526bda Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 16 Dec 2018 03:41:37 -0800 Subject: [PATCH 086/237] ball stuff --- code/game/area/areas/centcom.dm | 7 ++++ .../items/stacks/sheets/sheet_types.dm | 2 ++ code/game/objects/items/toys.dm | 1 + .../objects/structures/beds_chairs/chair.dm | 11 ++++++ code/game/objects/structures/fluff.dm | 15 ++++++++ code/game/objects/structures/mineral_doors.dm | 10 ++++++ .../objects/structures/signs/signs_maps.dm | 9 +++++ code/game/turfs/closed.dm | 8 +++++ code/game/turfs/open.dm | 14 ++++++++ .../awaymissions/mission_code/snowdin.dm | 6 +++- code/modules/holodeck/turfs.dm | 33 +++++++++++++++++- icons/obj/2x2.dmi | Bin 24355 -> 25962 bytes icons/obj/chairs.dmi | Bin 25121 -> 33141 bytes icons/obj/doors/mineral_doors.dmi | Bin 43115 -> 47856 bytes icons/obj/fluff.dmi | Bin 12352 -> 13260 bytes icons/turf/floors.dmi | Bin 311410 -> 318802 bytes 16 files changed, 114 insertions(+), 2 deletions(-) diff --git a/code/game/area/areas/centcom.dm b/code/game/area/areas/centcom.dm index d5c8a8c841..1241b7a240 100644 --- a/code/game/area/areas/centcom.dm +++ b/code/game/area/areas/centcom.dm @@ -29,6 +29,13 @@ /area/centcom/holding name = "Holding Facility" +/area/centcom/vip + name = "VIP Zone" + dynamic_lighting = DYNAMIC_LIGHTING_DISABLED + /area/centcom/winterball + name = "winterball Zone" + dynamic_lighting = DYNAMIC_LIGHTING_DISABLED + /area/centcom/supplypod name = "Supplypod Facility" icon_state = "supplypod" diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index bbace70bec..e63ddd1c02 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -190,8 +190,10 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ new/datum/stack_recipe("rolling pin", /obj/item/kitchen/rollingpin, 2, time = 30), \ new/datum/stack_recipe("wooden chair", /obj/structure/chair/wood/, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("winged wooden chair", /obj/structure/chair/wood/wings, 3, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("plywood chair", /obj/structure/chair/comfy/plywood, 4, time = 10, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("wooden barricade", /obj/structure/barricade/wooden, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("wooden door", /obj/structure/mineral_door/wood, 10, time = 20, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("rustic wooden door", /obj/structure/mineral_door/woodrustic, 10, time = 20, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("coffin", /obj/structure/closet/crate/coffin, 5, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("book case", /obj/structure/bookcase, 4, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("drying rack", /obj/machinery/smartfridge/drying_rack, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE), \ diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 7b52ca7af1..7aaee7c5d4 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -1039,6 +1039,7 @@ icon = 'icons/obj/toy.dmi' icon_state = "snowball" throwforce = 12 //pelt your enemies to death with lumps of snow + damtype = STAMINA /obj/item/toy/snowball/afterattack(atom/target as mob|obj|turf|area, mob/user) . = ..() diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 840ca74143..e944eb32da 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -192,6 +192,17 @@ /obj/structure/chair/comfy/lime color = rgb(255,251,0) +/obj/structure/chair/comfy/plywood + name = "plywood chair" + desc = "A relaxing plywood chair." + icon_state = "plywood_chair" + anchored = FALSE + buildstacktype = /obj/item/stack/sheet/mineral/wood + buildstackamount = 4 + +/obj/structure/chair/comfy/plywood/GetArmrest() + return mutable_appearance('icons/obj/chairs.dmi', "plywood_chair_armrest") + /obj/structure/chair/comfy/shuttle name = "shuttle seat" desc = "A comfortable, secure seat. It has a more sturdy looking buckling system, for smoother flights." diff --git a/code/game/objects/structures/fluff.dm b/code/game/objects/structures/fluff.dm index d9a4406acd..baf0cf312f 100644 --- a/code/game/objects/structures/fluff.dm +++ b/code/game/objects/structures/fluff.dm @@ -70,6 +70,13 @@ desc = "A towering basalt sculpture of a drake. Cracks run down its surface and parts of it have fallen off." icon_state = "drake_statue_falling" +/obj/structure/fluff/lightpost + name = "lightpost" + desc = "A homely lightpost adorned with festive decor." + icon = 'icons/obj/2x2.dmi' + icon_state = "lightpost" + deconstructible = FALSE + layer = EDGED_TURF_LAYER /obj/structure/fluff/bus name = "bus" @@ -167,3 +174,11 @@ desc = "A crudely-made sign with the words 'fok of' written in some sort of red paint." icon = 'icons/obj/fluff.dmi' icon_state = "fokof" + +/obj/structure/fluff/snowlegion + name = "snowlegion" + desc = "Looks like that weird kid with the tiger plushie has been round here again." + icon = 'icons/obj/fluff.dmi' + icon_state = "snowlegion" + anchored = TRUE + deconstructible = FALSE diff --git a/code/game/objects/structures/mineral_doors.dm b/code/game/objects/structures/mineral_doors.dm index 3c9b70e967..13ca421daa 100644 --- a/code/game/objects/structures/mineral_doors.dm +++ b/code/game/objects/structures/mineral_doors.dm @@ -223,6 +223,16 @@ max_integrity = 200 rad_insulation = RAD_VERY_LIGHT_INSULATION +/obj/structure/mineral_door/woodrustic + name = "rustic wood door" + icon_state = "woodrustic" + openSound = 'sound/effects/doorcreaky.ogg' + closeSound = 'sound/effects/doorcreaky.ogg' + sheetType = /obj/item/stack/sheet/mineral/wood + sheetAmount = 10 + max_integrity = 200 + rad_insulation = RAD_VERY_LIGHT_INSULATION + /obj/structure/mineral_door/paperframe name = "paper frame door" icon_state = "paperframe" diff --git a/code/game/objects/structures/signs/signs_maps.dm b/code/game/objects/structures/signs/signs_maps.dm index 8468516502..f3188b90c2 100644 --- a/code/game/objects/structures/signs/signs_maps.dm +++ b/code/game/objects/structures/signs/signs_maps.dm @@ -45,3 +45,12 @@ name = "command department" desc = "A direction sign, pointing out which way the Command department is." icon_state = "direction_bridge" + +/obj/structure/sign/directions/bar + name = "bar" + desc = "A direction sign, pointing out which way the Bar is." + icon_state = "direction_bar" + /obj/structure/sign/directions/cafe + name = "cafe" + desc = "A direction sign, pointing out which way the Cafe is." + icon_state = "direction_cafe" diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm index 2165dbd8db..bcffd728c6 100644 --- a/code/game/turfs/closed.dm +++ b/code/game/turfs/closed.dm @@ -49,6 +49,14 @@ baseturfs = /turf/closed/indestructible/sandstone smooth = SMOOTH_TRUE +/turf/closed/indestructible/wood + name = "wooden wall" + desc = "A wall with wooden plating. Stiff." + icon = 'icons/turf/walls/wood_wall.dmi' + icon_state = "wood" + baseturfs = /turf/closed/indestructible/wood + smooth = SMOOTH_TRUE + /turf/closed/indestructible/oldshuttle/corner icon_state = "corner" diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 7aa1183512..659a58b2dc 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -49,6 +49,20 @@ if(istype(AM)) playsound(src,sound,50,1) +/turf/open/indestructible/cobble/side + icon_state = "cobble_side" + +/turf/open/indestructible/cobble/corner + icon_state = "cobble_corner" + +/turf/open/indestructible/cobble + name = "cobblestone path" + desc = "A simple but beautiful path made of various sized stones." + icon = 'icons/turf/floors.dmi' + icon_state = "cobble" + baseturfs = /turf/open/indestructible/cobble + tiled_dirt = FALSE + /turf/open/indestructible/necropolis name = "necropolis floor" desc = "It's regarding you suspiciously." diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index 16ecae7a5f..7cb771737e 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -10,6 +10,10 @@ name = "Snowdin Tundra Plains" icon_state = "awaycontent25" +/area/awaymission/snowdin/outside/vip + name = "Snowdin Tundra Plains" + icon_state = "awaycontent25" + /area/awaymission/snowdin/post name = "Snowdin Outpost" icon_state = "awaycontent2" @@ -116,7 +120,7 @@ name = "Snowdin Main Base" icon_state = "awaycontent16" dynamic_lighting = DYNAMIC_LIGHTING_ENABLED - requires_power = TRUE + requires_power = FALSE /area/awaymission/snowdin/dungeon1 name = "Snowdin Depths" diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm index 2a36983561..67ae789a1b 100644 --- a/code/modules/holodeck/turfs.dm +++ b/code/modules/holodeck/turfs.dm @@ -122,7 +122,7 @@ /turf/open/floor/holofloor/wood icon_state = "wood" tiled_dirt = FALSE - + /turf/open/floor/holofloor/snow gender = PLURAL name = "snow" @@ -133,6 +133,15 @@ bullet_sizzle = TRUE bullet_bounce_sound = null tiled_dirt = FALSE + baseturfs = /turf/open/floor/holofloor/snow + +/turf/open/floor/holofloor/snow/attack_hand(mob/living/user) + . = ..() + if(.) + return + user.visible_message("[user] scroops up some snow from [src].", "You scoop up some snow from [src].") + var/obj/item/toy/snowball/S = new(get_turf(src)) + user.put_in_hands(S) /turf/open/floor/holofloor/snow/cold initial_gas_mix = "nob=7500;TEMP=2.7" @@ -143,3 +152,25 @@ icon = 'icons/turf/floors.dmi' icon_state = "asteroid" tiled_dirt = FALSE + +/turf/open/floor/holofloor/ice + name = "ice sheet" + desc = "A sheet of solid ice. Looks slippery." + icon = 'icons/turf/floors/ice_turf.dmi' + icon_state = "unsmooth" + baseturfs = /turf/open/floor/holofloor/ice + slowdown = 1 + footstep = FOOTSTEP_FLOOR + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY + +/turf/open/floor/holofloor/ice/smooth + icon_state = "smooth" + smooth = SMOOTH_MORE | SMOOTH_BORDER + canSmoothWith = list(/turf/open/floor/plating/ice/smooth, /turf/open/floor/plating/ice, /turf/open/floor/holofloor/ice) + baseturfs = /turf/open/floor/holofloor/ice/smooth + +/turf/open/floor/holofloor/ice/Initialize() + . = ..() + MakeSlippery(TURF_WET_PERMAFROST, INFINITY, 0, INFINITY, TRUE) diff --git a/icons/obj/2x2.dmi b/icons/obj/2x2.dmi index a72a86f3d8393062ac7df381140bc157ec5cd6b5..c5b1df680a25271552f82aec3dc65a6023765fc3 100644 GIT binary patch literal 25962 zcmXt91yoeg*1o_1LrRB&3_UaglEN^Aba%Ikk`mGkLkkj;(jcvLcb6z22#82XNO$*t zegAu`HH%rZ=FHvaoPGBG_V?`*sj03&gnu6&001H-MLBH%z>o%C02BxOqVb1ubM|Da2rEnB$pHS>Mu6& zix7d-glH}Xl#G1!Pz^1XCfq=jdt@WF#*cLv>vd}C)RzcyoQA3F&N5lI2*e4xtBO=- zslmng+lZoBYr=c|=od>b))I-h(tg)ysZZrgDseG>tYN%mCU|jqf3uv`BI9gUF{A2x z8UVlmB{`(7SH^ame>B~IH~aOc&De{d_v}+tcDbLk`WUb{8r8C-d3KAE4Xx8iJ9FbU z%X+zHU|GvWMyS}HyJPSMwqG2bU`S>D=|wHU$LL+E`0xq43;nx46vZVjeOxw)dS9Ht zt!$d`>-&f{7w_Yiqe%w6J%+hSorwv_2}y>Q8tXe$->JL7zrVZ7k~Qy5@4=ax=iiBA zpBzGQQL1d@UaiJun1Fh=lv-W}LQ0Al7<^V!tjozWTcBO?$!EF#6Sbe)fzH4$I;S_E z8AKm=E^@h5gg)HDmCJT!!#TJXCRfTP68QlS75EUXUnsAENqo_V>9slL!<%bt~oRq3+ zY8ZgNfkFBy0f(k^z~Y79LjnSV)a>km%}q|_0`2ws7rq@hGLXY4WtTRlXxJ#`O%g;S zL$qscZ4Cpc=(rW%ZCcA3y8~QSzfeXT9*Q9c%1xWdyuMvrcwJqd#z01~vKB}x(WT*zy!!V*&LN5@`B+GgCO1|1 z-_?JM`>AcKmoM>aYH9!!sYT{Y zJSiYuVCwYC!V~v)e4Gqi6C1P9>d&1wNy-I9K_sW4DU2$d;l%WZ_0&{U0H6>fL=cgO z_|i^&bA54?>*3y9E?seU|MVK0Gf8=tT0CVKoU3qK#L>}FYHDg{cehNG?md{xDM^0+ z{+9o$K=4%Hka(Nt&VEYd>kjZ|yMO&kn>NVX`!~A8xyq1GmuqO<<2q3Hy9{dS6`Odi zA-Axa89N&rAbO84{hLpRf~kOsv2k~AFXZXdr>)f2)Xr_#0FT@{yYz>1U~&2C%=c<| zRbXmrs#W~UuGp(ruRxcc&oMSJaocn+8n+&cK>pZ)?UUy`q3IjuB&Q-#_mkcl=+r<< z^OJr#!Kp*$q+D(1+q|!!)fIlx@ss@*M@-Zj8%&W=(Ez?Rd>uDT_!h$8y+Zo1h#uM8 z=6OcYx%IK~_K5kdx+bp#H;dQik25jg^Jfaz!&S?;rzaKoAv|T6I9HFeIB~dGu>-U|IXSuYaLF$yG7@i3{8l*1bBKn4 z;cQp7y`gbkE&yCLe3lYsg&4?t3*Cq#yN!FOH6jD-(sy7fBE*0Cj#5-9ABo5e$mP1zcHhU9PDL><;!3o(Mze^ zC+DoKIY&L^6Xj;NR}ruD925e2aP9~w*33gkL{vk^Hqxvn4prGESmvN@<|Ia!@uO=d zQZF-M5k=Wk%V4zF_spLrzVMSeUS15>r>J6Md2!hDV){wPOuib{`Q5bew znSXj{we30lDjF8tyH(M#8*f=u-NSFTPN}uam@t&1%junb4WGI)=eY*W-sdB<5*PBe zpmBBoM7;h+Lhgg;89laZ)^rk=!4t$Rq@815^6d9fd%3BF%KsR@mxW)Up%nlm02*o{!xW& z7VB$r{6e`0(icjV-yTW~d!kdBwD6KWK4GQ&W?sHB=`r+@G!+r?hhE z6w7Kl;MW_-J81qEk*GYIS+N1mW{s`YmrwLHH#O}&KCV>=$h;KH9$h|M9j=-cc>K6-m8G$9z1G*x?iDug zD1PhA3i|_5bToaiT#GLyLr7DTnDhSHYq7nG><(-kt%hrp-x@SkQ5$>U^5m3qvazxK z5@$5vOro;+0j3Fkef_v^&rEKksJ$23{Zq5D`d5cjByP`4CO^h$Xwu%f>neH){0S9n z3UA8nbqt5y!Oz;A7o>o9dOAq|P4@ocQ58MCJ+XnuS;qtwt%o?->9e?N&JV-y1rpy~ z1>O<<^CjoV=Am@VD^}_6$lH-*ESf=*+c$?%jPAZjDYSGAbERqj-WEH#?U=`}I<9r8 z5C~0JUtb>^ePp2Yy~DGdO{WH4<1EZKT(l9?4caA^K0eJGckTXHbe{s7wv(bTU5QD) zHInPIS>8Qrd{yLsl{OOT_O4Q3ZvG7X(i83DGy9C@>$sv$SEcG#RPU5#*9j{4%G{yay=NASY-fNkXzQV~`1I*IM047)v4G=((u-(U- z@D9c^L+vs>k_m`Q$PCla(&D*?;E=3Cd46rb3Beg#g7PS8drgOTX~bAHr>nnz6;~&+ zo@IA#&EQjgXTT<#g^7FN{e>hTCBWV1k)6yIWRICv;Hj-#iC{FOV5hL! z^%u<)@x{ZXd6BUu1oo0tMSyD1$GBWryWsNx!cM}nS7%OZnE}V&jlg_l+Bg;m?TOH2 zYcn5X!gw3R^yWp0?jclmSG1}*uS7=Ak&~G(lziMwf*Hk)al2I3VEj;b>;$M?mkB|n z!}(gMYZHK*u-I=b2(5k%bf&3ow>f`@wdB`g9nPdQmQ}d22WgwaZg^!%YxZUgJcK5! zczhQ2i}b90HomZC-1Q9ZS-FUSeW~01_~m(I|&Wcz$(3`V7S0>08oUt+2xai*MIsZ-Erv zn+2-KQ4OD?qbrwHWxrs}V&X9kw5xv-ngxcq9XJ}rf|_$}RdB_mM{r+2NWD`b=UV$$ zTOly^{iLKMH4$_jbAE(R>zF_Q7CtH&Alw-%i7|JN-zjf0N=-}KoLM{D|AUKl7Ov#y zO7er+;(94%znkE0_(~G7pn1<-)(pvMR^nDOSbRR5t zOv=68$wyqwwYdCwo^{MF%hn!%y5yt7K?Z<8Gpn6PQNi{0+I!`-*yqom7nk~?)WuR9 zAXSm!jJ{nB%pFNdlq;{BI_*PV^nfu$k~)Y#Ta4D~Y`Y;jjA%q%c?TBxc(9YSK(!+p zW|h47FAu>Y*FHil_9JrmHb`NnmsjvVW4W?enLE(;2}=9t2Md@58_Cs&;u{3i0e^3> z;}>8#m@&E}j~ADI|2Ad0nZdgEWXw91gs&Q=gn@KYh@rz1ihHu(i51`eUTc;uf0X~z z3wDvzoe1>}4E#{c(n-$#fq_|Na%pDHScI@`Y8IE19G&+QsQV}1EtHL`#(E+B?ZHDz ztxFxf$-z+qm;NqT!8XI~ez>U1qWN9}3>hTpd!J6W1l`o+{p93_2mn~zY-W2gxFIfx zIH8duXb`P38%2aP_^|&A?D1dZyHxnvemr8p9&2|z%-N=JG;B`}y!<`7aI44=+)6bz zPxSODMZslnuUtZC`^SrIoW>_f7+G5jlOQ75&mGtX6%iI9M0P6lTqS5|MiQRO_SrO9cv9 z*cj}_K{yJ0`qDJwOe{J!Hk>y*JuAyefUw`&yzR3y!u!yb?6K!Ufl39YG&w0|CQqk8 zw@eWBpD#(n=T{wfdsQcCJO?|g6iLXRdNR>g!}RmnkJ(XT4N1gg>H1>g*n^jVes- zL|WD(J$mgG=+0R!zGowcS8bQ`&KXX;BgYKq!k}AnXbs5|1FypTff^D$>(p(jSf zQ(G&tg}~dXH8WK9#%wn;Ge*~7y#LkQ6dfI1n`poGiB>@X|7z@{6pLcH zn!G!|BcS%9CR{E#;N$7@-)pQ;&5@QlqKE#+4MP(ecaQHK;`;slP=ouef$;RTD6~u`zt*assu1EfU zT=~((%b*K2#i(?la30~7LE`^3c>V*)ABKO?lFFUu`d^)Tv#bY}bocuGA!7-gT+P?4 zp4Djaxt^AIy`q@FrK#!ktch1_nPx0q9s0u4^{tHiPPY}Fk{<{KicC3s!a#KHwQCB< zcoYOss<+&3D_jqnXSbyiUn%WZ4X7`Dc%Ici`H46iOqSQ16#*m6vKR;H+Fr?)fT-Vj zjiFiF?v0e&UqWzu=H1@~#4*4~bGC7qi~c0Avfd3Z5Z@gqSoU{-{@7M=&|umIL9uaJ z{q){}C7=jrNR1V}0`k(+(_hW7%Tx__^c<&UCKFQOV}lV=ZYr|;^JhyZC*H~|^@EMx z;gx&k903F=>_}m0xBQHFhkE-VYm(lo!a>RM+>aAcVj?2pGPxw@4AS{h_z77OUF_Ho zk<4A!q)n>2AoOZ%@buSoB@YShS{Oi%cHeVVB`Niqzkx=wD!TYIU(l1VKt*kKHz&E~ zeQAW8`YtU1wUx8eS%dU1W##1{ggyzq22y~izNglI!Ad8VP>vWE^E_{3M$v(L_m*!fc)fV}Ad$ z;e&W5d?#)=;_9u>oz;F(3}rs`s<-!!d$vb~JrM*=$b5HbA%(8+TU`i##C|-f5qOy} z=%g&LaWN5hmT(OWks3>{$F+vTn|L7dIYi^1AY}|OdMMR(zb0V&jY_-q(*$nJDyFp!CyRIaZr+3lB_(3T|q7p`k95*OlviUzo0_-(Vjl_ zpd-0E!XxR!`B*mmOwYGA^r&f9ZzWE0Eq+B^w%WQMo<>AJ}G9q8T=vX2)h8hDT1AuVP7vC{()T(-iX*}@Z*~}!9N%DzF7S;z#mlYFE z`0LrHc#tx$g9m=yV^PjFx+?YXS)RNsuEI|AHQF49@z3zoYT=mvxVx&{ec}l-s;E9H z+<91S6eTU?;qY#(BE{LY=T)9edy2Xv$;z}6?zV+EeytB?$hWa2+qEdHM??XCLaB{o zZYC}KKiXwSd*-vd?6qZge-OliNi$;9O$1@gX<+mtOX9b_@Aqap^AkJeXJ-;Chn&PNjKrw&*gj8Y2PC8!Dtv;~`sFHg!ppJj79=Elve-EBuDDsr#A|rrC#}+ZF9*1DF8nAoiJkfTUWuU43 z2yi@UZ(BMl89wh=N8sIFH&>QlRS?V4}nM}ocuB=(mGbw6%Vv%u~ zUrWV>$}qZ=xsIvu{5HDYa#{8RuEAs=?J9HRuni%B0&8uzG^Fv%nUicm)-MuPZPLNn=UG>??lj7sy@z#p?$QzD@zL5?70-3AuVoQ20 z_5;IPu*XW?KK#iJO(iJ$A%<;gnR1ZS!SZ z;|_`X<<6yaNb^hF3)u;KN=3~NNYVvCgMs~@Stmh1Zbrnr5UrDeC6noxU{$S27T0jI z6?79^Fu`;SLsY%FdT(~Bq_vele_WOwxK1r8aA3lS(UHtU|!?$9y zz*AX~85RBz*pvF_^rNQqJrz5QD*4a=Z~9-c;%Up6?Sn%H^uDj&21Nh z9wz?V3$_QOAtw_RHd_?Ls&N*=>5eUI#)PMSQVX@)JkgLISVDH(COV(|!!@MqLNKR} z02fCnVG$%OrP>1n2hLyrtI#^Uw#t%MPOQ$zL_~`j+BWCqo^--7v}Top+G?3cHnWOv zXwSUyj?=G!#qbkUYN4@LX3}1>=Baf(eb9>H&py-_ch`X)%!_23%%p6zB_JMNN2y-KbMk-?)yk$7dqTgCYK~!Y&25 zZS_HF)Tit>LQ;oTXZT3A$srG#|q0f`%aNy(k2 zE_bxw=&0lwU8I2I?~#3@{$ROJN2m$D1{n*MO9XBf1Ww3kGL!mEIu%2%F#ieI;!&3-De2@OiN~h;#?orRmqpF8X(Q(+FNJ(^uV9IJ?2Kckl;Ks=jLo_ z^sR`b@+v#EQC)*NxUxw&+(@M5Rm8+MmfjtJy@Ty=cL`h!(XNCz zXPomC-e=N?JmS_jS6u@LQnh<~SFr}iEnLAvkgf4P1^GCtWp zj{>j=A3PR8AQqS~Vq#-`#}_s?Ulw=d5V{5=mbmCZ%OZ5vJU`vP9>|-b)$@sx$#I

vf(cGf-?&J7bKwNa@CSk%k$y`ofAY31-?M zNB8%X**(GaI1FvsZB5oM-$^62H7muI@=h6@852GyTjYisx#1u=^LBhHdhImCSDa<- z>cWyLD$}yR1@vg+gb`K4tdCTn)$Y?|Ml%Wl$hB~@BC{6sZVw;EWl`sxw7L@K)WfJd z>z!ISHMVtGopiQ`^K*=U`dubA%9%G{Gqq*!E@>1m9cRE^!LWUkKjMn&Rm+V(M^WJp z&dzw({M#3r%v3qGiR+zNPr#Ba|YFgBY7&*nv4{YTA$ zA-qlK2qYS2J-NBL<(k((x+WH`QlM>Vfp5T0tCgK%XEg7&YoNXedvf%3;(Tu5#@b?& zlggm-&0bdf56Tc}y#3>i3AxlEyAYzvN;}ydiVoK)t+$E~ks#5XM9kbVQKXRovN|pu zAUhToaRc9_m!8(Q%w=|>wwEU!o#dd?&-j61wa!v7w8FmU#@c1*As-r1gcq{VVmPD& zrw~6aDz14zXpQd&iXewSbS&01q%NKVs80qJi*EwYqRe*}_Wagb;kr7dBK{IguRB%!+3?TKDu+wQG&XL0PUqgu z{2o>%1`z%DecmwMckF*$roKUi$d2#T&L@9%L{9L7uL@m!{BH+Z8b^J1o1RY)N~z)X z+i-sI4T`&62`JJ37XQqS z+G7MF7K|uC7eJQ8o0uo3Kb3B~3HU5st8&l4?AY|)XU%AU zFN}D$>KeFOwVB-0lo4oV<$tt@8_(;Ky2y@Tq#x#Mp}Wro?QVNIRdYEYpL(l0h4(aw z+w98@*63ixD``?~jq?yDN5x8@P{4_hKZ0QC3ytT8<+c zvpQ)iJ6ZFT6p}U#9k#n}52&uCanJPJIb2XM%yz%RfIj%~+Cho5TPcx}&$eYF2Nu^z zGSM8+z6i#B(;W3D__mmP?i~Ubk@lN z2RpIjh4M%e1h-O*AalQamxatwFs*d=Q$Rh;LKPsXHE-n}=3Q3<*lRCRvTj%xp z@CE9wh@&i-4*34u7rGdVW9|B{{>$WCv(EMXjWwl4%WceI>w74FS%fO8TYm96@Vpm6 zTq!BZJUII4L58R+I*QfWS{n033z3jH8Wa*mEIxrWvo0S>afcLtd~T|Hy*Fp7rq zwM6%69l;mQGRfTAXwuu}nDVy=<|u`a}k~7`l{2gzXd%r!z+SlCaQ(@E;xpdZA-He5iV+G3zHQTFXt zSJ_wfI2aO5;-DwD-eg>sg$0b@0f`u`)$)!?aj-6)w`EM7Gebl4HK^rtlM;s?@g$aL z2%a#li9AX|yTqLefEN_&3QPTBG$dnDV`Yf%8jj#?6AEI-LwuMaVC zQ5zd{o_izg`m;RU`lO4Qz-vJIy+ZaPRnIUV-~LC1Sf7r6TF(>4uClH|@m{hAWh$caobaApZ7+DuhTlUphVnGkkwyX8eutyu)>kD(?GHbE z_S{ZY5(#LFH_&rTCK1OH6_@Vee!e1CrU>Xit%8yOg>Em7Y%@xSRP z3j*P#rJ59J3=bZp)6>$*7HEfArH*-&g+hB2HMA0G?E_^{cw{UQA%>9DZ_l24n1x%> zsO7%375H6cQ&?H=$$SqWCr=RM;@ZnK7kT!83^uBzEU0cONh|}WkpE^Y@G|BRu`(VT zo09@(Qa5Pj>n1aJ3YVzowjl;%ev$pJ&w0g_JBx;1cw~eR{{GEqZJ(Ivp*6eFM{;BS z@Zb@7^eD2f?q1GTgYT8|yaV^D2TS|eGr-c?`gOf|#Yc0I*F<=63p2&>C=!%5CThN9 zixXY|DwaWcqMwfc{*?+lo9D7#8_8^RT@F+5*>Eq6N74;CKC{k+;5GN1wV#=Bh@#Pb zeOw@mUV#a8_?)!$lC=&+$fMro&42h7lcRe{vb@|-M<+sv71L{wUFY~9%xZFMW`efEcggAr#NpY=bz z+4L#hv%e){i36pt&3J>7TG9`nv%HpE_gcdr`an_R?$_CO7j{5r#q}3tg(;oD6QASa zH}hc21R2@8pj3#W+lKr7w=(hH>i^alnp^=VKJ=3>Sq(l-R<+;$$t=;u2WZ;X>ePfkuu%k+Z_H)@D6^t))X8AH4vFVb-6IO0cB3$cf*JH=#$(~)(? zp>{^F5Lh}rM!~VVnT8mVL7nMGGh2NviZ`5@urAB}zv&(O^@xMWSl`(Ifkf8!<$*x1 z%5qQ;g8sJPrfRE=3t%E-Zrhs1O;|qDm*&P~3HkaWjoIGbc#B$13l1(k5;`;^EL&%s z`B;rSB#sucR_-qv2$%XUn-;Tx3AdRIci)(H2iwmVaPz*}V zUZ7r9Cj$=fTyPm#=%1nz#UaJ^zqkwVOD8u~+swg3<_(m)4+sLCV&O1ugS4-P$(coo zXl?AYLK!_u{(fmFQatmNMKWgwUllq;j!E+VGlzPmSfk6IzRnvfG7CCLXzShXn>*rr zlE-|l3kKz;r}gAZTMu1}IvL<^-y2Y{euOKlBtMsdimnw;z7!16)a6`lwKL);WX5ty zEySDkENrsI|4MT-sH-;_ZLgiLO+`~9siZZbJN<%*MG~d`KBYXJF+?9Pm%)AJ9v+!H z(SL+faLGGC(KHm)j@A%A2dwt0|dhg!znEL7=j+;L*9`ZV48yUbxtBvlJY8t zo;F_&J0)|{hs;a7pWq=WSrP26Xht$Fi^`JkbOh7D@qo9(TptKb2mSy!7 zv-2ncsm(;KW;~8Wl?fvDFI3Eu&W-t9=7TWOei?!>nu_W--_3lI<9i zl!M#`0PD1v6?RiI2$T`DAlmh3eW=eIszy1)Yn4*|8~iP%6}CPFc64qjJRh+9pxq3C z(X!&z)8P{To|Qpk8dS7zIqGcseeF1S=UkUa9x}~={R}-%k^)pju09*lP3){UGM}y^ zWP~JY|9JU0Iwt0$aaoS(yi0*-<9payVG}VF>dMk(T!u3v*J)g-A<}#Y0yWP$pUyPhcXwV3iB`x|o zPcaZ|AK34I;LPSk@`zM~%QW6CfG8%vu9wCF$E&N}XtMr+c4nddm=IC2-AD6^U^kqJ zTFW#x8k_O#9VIU`9qn=@H+hKYt7x8KnKJ#O!l7tamyuEcKjX*_C-DZ9am?Lqbh?H61_=4is}RaIN#rb@B_d$_G16(18`y| zh4m-Rf5e5bLNpsU5qk~rwRLJ*ctKWI2nqUiQ}nEpo4|A9WIR1R$wQlHY7EmF#};Tf zAvp^T9K-<$O-=rOu2qvvS3hmoCCU6YOFI5lAbW-)6Ei*Gh^Sb92ZoUhv0&f58{Of9 zl9G*(YaeM-OjBXPaDcuo3tL{Ri)P^beBHeBJJ!oIoY{Iw$sB&PrgAPEk|Fr!zUuGC z9rh$LmNYUlE0vCa)snVO?i2R757TH;^rfG2;1)UYQn`=zdJSM>l0au*!0aq_An{0p0N-U9C{t3P}j|;>uLhxdu zZFAxH6!J*61njjD3jOsHI)X=7A#awPQ7cbnyO`vdNxVgTZ1L*t161xW{O z@N+yI)IZ_3q{M7~Z+Reg`RfNkwQ0q{3Iv!W*fpfgeJ?jUcmb4SdL{RRw8EZxp6GY) zP}=xv6S-R)qa4Ol7kEGG-OR-^UwZ^U)lo%~a`e|bPFFj03#k>CzV&G%Mh4V7Qgg7X z0LicFjQ{N2-FC2ZA;}y#A$aAVg+66t<6*{-+Kgs_?HWymc1{Al{}BWmz+%4ewT{jN z*y5-$SfLT|3ep9_&uM@{SXeljsK-!1?c<3cSIdm0Ym|J50!CXGS`jBN6{0L|I zJ8iOESGB5P^2YtA+~E53)6rXk2`dk-SVZ@)z1Hr7%88FZZRc400*GMuRBB@aCTnII zlXe5ocAp&J3YSfaQc?3QgBoR{&xx|h;gQYWyyW}>m^IeYV;rdu$?Xy01zG&=NtC-Q zLj$isQN2U6M7PprKpp7(`4e7^kJUggXv-*LV>Eq|%Z%u}*vu9`@#n?4`51faxq{@%Zpfsw#QnZ& ze(5TBP{4O1b-TNFYckQ!aI+rx_~zNyJ?NY$n?}%0KD*6yxqa(Ff4XG7=lcGHlP~MK18*ws?A8bGx!|DoG2D29OxZ$B zdBee86K-Dfpui5ltbO(e!cc888r_zU$IF#*d8s&v<1tyDl{c5icMiV0u>n7BMS<4K z%~zrUe$7`nPE2q6@u!z zO-FfRYK@7A51Xj?frP;lVeMyx&!Etd(#&P-P%fACeH%aP!# z5MZ(nWV#qwQVHR|pwQ&#ionmOwA6LWmy_3eR7x6M@Ypap(uy5HJJ()0dm_)E+tTnV z@b~7rCtIbFV0IQBiHo9(wKXQ^A5F_1enOfsjCZt}sTi3L2DKm9TQh&;x78z-SuET7 z#z|)%%D8nqm#pvN`?Sx|Ug55&lv4;l-(#S|r6tY+Z9;(fd{3Bn0nw_rVG2ib9}8h8 z=WdB><68<0o89)uqw$hT0XITA92-qjN40O&t;KxyPS&~xIoj-GUn9QIzkEigH%*eK zh1NCRGjIdLD>T4xAzUNxPG_ouM>k&X$sXeJDT){hcRs%^k8!7 zg8h8yAPQ`5%wkBTSa=}`Kih~~zD&_=0O-x0HlGi+{qH zjqen$_SxR{sFMnF#C66mf4YXv-~|KB&n}e0FD4R`;=(qCH{)2BOzpFWP#!i91ad;G z=zuosProFiZ%!_L*k!am5|3-{sMnkW1!#sIIB@KN?;su8hu5zY;~N$C(?RGsAf%Rz zG5(ZX!R#l~j=$k^xXF#f&LU&fsZ1<(ZJ_sp5xbhjWl2ewYRTn0WWC9*f>DKd^m)jE zFcq$*Gadb}N@=H>u`P_9p%KKSg&BRc91pmmpI=kne`9J5g!j_m(qKr>tthrC-AwC_ zgqdVX=vcD7JF2d`VUfNA;uy(8?o$2c`8OJ`e}489IkPzua%u5{Imw@61GEBF7qLTY zj$F*p2s9_Ib~(hbR50Rrt)T!;_}4VDXQ_|aK?vK%D}k?tB|$@g7PaI_bx0_Jbk<0OFg1vy4?TH$9%@|DgBX^v_l6)xwq zR!be14^VU&EW``!8?j7Yg-Z&qk0UXnZNw;H-vQ{a9%4}{1XD=l*T`_1E# ziQhM~-?7<{Xh_ey_U0~V{seK09#3Zox^y*;(e2K`;wxfyj{VEv8Y_4}x^nnQFm);V z@NDsyXhftn>&A}RdjeIZ?x7MDC6Q>8dpk^W?CV4~8JGrodfyC_6GmnA9D!dQ-K(k^M2*Qpm721%7`j ztiv(s+V3ax(&>ZXmuH?^u}(wInkNpFVUkQf2s{@hy-7P6MGR@ZiQ3Y_4W}$i`m{o% zUS{uxby=m=4-68%+-AS%N9>Q9?TqvQy%8q)OrJi}Jz5M4uGhY700-E%4w;LEhhpgspN^rLNiSTKKt=h=9yN$9{siO7G1e|M;X zPx+R_!o{p($(@APK1uw9Nk3yZ*!?IkvLV!hMBwckvn4#OGd_Z<>**O3DFAU#7$F&0 zZ>?qZ^!V(>*WR%{j3#v%As7+HUGtl%!{qx=XasR7i* zJM}&fZW)btI7+#biI->_5YXtxY4A3l0_WTC#^#>TB zno{n0y#5^%_}%DAF5>h#$Zhxi!z1YEhaEB!nO4YVx7K|Zofl{d49pQ)(KQuNS+n_A z?RWI|TQ_)%FCl*&ubv+4ifzSDq0KFG?&!9iCa$kG4QkphAU2;OC6dw7rdn_W|nXV2a+ zCU}zr+Ac@Ejt&mCje z&*t8|F>>g*J}lr$6wj>?{O}aIeRA?H`RLy_SCcbAMpJR@c^v2=P96`y_i>gg{F-=` z^yUHHe>{QItP!iT-Ro~<;LR3D`nxvYvk^XC^Gqz%yLUv}zs2ertEvJDCcN=3V|f@m zQ!LDBI&My95qJQIiuc+K8f$&uwAWICY_%mp+(MJvOJV@LSJs*82q;2b2rBi+7EQ%7 zzhI2~vHYFpl=CZSa{00uCBr+aU2g={Ehiu&cY-Nq}C-cR)AW$VDq!mWH|v&`Yof-X6Vam2n;1$3>h68Qf8~?}vuS*}$m& z3Gjt|o+T7!u2;R}vA%1P;2HNG7I-f9ToCmU>xT!?*4FBEmSjttrU5v5{rgAr8;}N8 zQ4|96BZu(3e*Zxw(Atbao&I9@Dx1VU(`(WNU93 z+ytbKq`(HpTk#L-MOvR&6S5mYyONacriRXPnbRHR+~bG#BiSGFsj8~}#jteT>Hm6s z>;yj1K^BumtlzM|I>Qi^A^5XCsYJhwt^gA4`nhaQuFZS^EPUVgZPCyUbraR!SM&jA z`l}vWex^FfAI~~Z)201G-_jSV1{QH4wb{o40%)JMnD5`ed&=MRvOgD1OS}c7S9-JD z1=vc*Jl5_3PZbpQ|AdRUj!NRXTpZfP9)riP?TD!7H+cWlisqTKh!+79l?_eU2NRPP z@IoX#e{}!h+^loQ+^i={`~#<8Gk3@EcSYg54U8{`|}gvkH0?_PU91 z)^iEU%X>@K@@8%S_G-`O_3LrwHsdn!*<#!#kY|dIj~8u7uq1E+gE3o6pj7sNj>ZiS zun%_mmgm+(bd=d^W(b|;^Mh>E-V?HKorr6fB*LU(KXVWN>J!VRi0p*xNkc!dglsc~ zfTD(;o)+&kznHg#kQ&J7bPp;{B^(2=B;~!AKkPL?5;KtvnYaWBJ-_Nbo)>8MpPxIz zlcXHP%D2SnBKaPFf`haVD9Iq9CyKG!X;_PF%CB)yjwT>!nbF$CWWcXkF+GRC+H3bE z0-e65-Vp=%vRd8X2TvIKZBKJj$ZrBhxi<@Dr-NHD63>_tlCqDl&rdAgXa|EG!DfeF z`WSl{t`~9Vy)DkWsd1j>y_I=WQi>y=JNV3Gz_`sE7f3B^8m@OtEfm`riFs08?dVJ9 zavT7_-UpJ(u!#tlRyxk=-9_hUm-Gm!k;w213*#s!nUy5UqMEY~73;K1wzVk=I9jaH zFCvss+@RE9IZK$NyfyvI+8S58ghJqh18=6fmBV(u1h|agL@^+xrP6wnMx95f@I3fp zMzEU{7rUl51vW!KBXMUWp;?Kp<*a_Wsb~2s8jo1ri4Ax4{O_ujVi7W7nGqVW>^DLW z?k+9Xs#;BZqxjm<;H3b1;t+CBRZGW~SG6ZMVBlONF91zS&{2KAq1<0`%2Za<+ z=txk_Bzdb`@OC33UpL-&Oc#)5bAe`11b| zYFfbLZfBIR^rR$4Nx9^#>REJ?O_r+oatccOt*$btv7A-2J*zPyk@0*C3CAfB-(iY` z{KN()w&vF_M6Wa~WI|b9|Lxz_j(DqU!392i{ak3jm@x|UCY{DPtB2a-m+;;@jsGVFY?UlEjE@i%%k8#0mL$2@Ha;V2KGE&qTf8$C}F7VV+?gHhHw~zid zchtI1)F#}e!IH*J&uFj{$v}-thUWhJhteGO0-qaC>i(uEj#0USTF%-NP|JxH14XRA z+&03X?W!RBuru-omQ+$O76ZyMkc-L*w0e4n(U16_^$778CKDahf%!HoA6LjENNmk} z1Y;!OabJ3p*YgakOY}A-lh1hzweJcPx9&Mt50}_N|Fg-SdYP`ntxQW2$ z2zL-z(XFOLI_9N;fmUd0j!6dZJ?u#KO6*KCsW>8#>O9hOCU~Ysvc_}mqWkS_0_iXR zkXXN1j{v@MyfC;yfDXO1EnUADK?9+~p3%yWNk!tLAZKcJTYFgQhWXk*CP+L7WP+Bm z&E#GF#{`97QL4e(5AqFn{6i(CwId{Un@*Om|G#qX2KH<$P)koM5(kf=1KDD2%~}`z zQan}n?o_ZM((&bhrtQx*fihZ-mkBDZ$e04d$r>6RO5KrIG_viwgYo+m{tn;w>3;6A z(-|n?Wd)U+6Ygdf>91syLNwNAfBf?2^5ODnvelG%)9*(MI#g%>J2WoS!W4#Xyh>rI$-7jU zBQrY45o2s-W?*n_GdJMFHx(Ul7qcg{wIZXOr|fmZda~B`U6A8^jcI7cRPvx$1a5d( z+-D08*D1MvAylT{9(*5%h>W#W6O6TCiG&vl1F37-F5o5<+dxI*jEz^bSw#A*{>#2` zSYk)-|8y-kf-CpW=!eFIaQXv=f}iB^ASI$YSohzxmaME#S6+X__v#22CO$v@a!dU! zBe$O=)c+2H0aeF_)3WnD4 z2G+~|Ev z;CwK9%h97;)&s_!dSq^iDPB8uCEGwa0opbBKC_7e>fbXMp!ie9=_W;YU*uPJ?q%)x zSadzJJ*>!0W#UlVrAt+r;%mO(290_vRrdN#+$2g1-Ite1Cp>!Zwt~#N-x4?P{gi(``^B?oQmUrTj?_ z$act$N%g;t338lzLq+{abn$zFsTot>9SE>@i|_n0`p_KlK2zB;eFZw+sHN1DFW5`9 z7WT}z9_k_-#`%<8*Q0}P86wJ?El;y`$q>Mk*NB!__Az zOK}jnKcGZiDR5+p#V!mM(-!D+e&TE0IO)!4X=5`bvPXg?wymlM-H!jGoxX>mAlF*1eiag#!%bK*=v~Uv5nnu&(vI^#W-4 z$L5V={>SD~&D1CfDVKct%;M7=w4BJ_?9fKB9L6e7kv~65u-tz@vX;EfP&hgUlWANv zDUtHG@#|X$Lzy>6(=rWYdBynYe?(rRcF@^ot@h`-wy1MRr<6H@2LKa1st{kjrr5%c z=Nf#$4@sZr4^Uh9GJ2KmV$s6!=~|WWsPe#LIi{qnoYA$EA{wO_ys_9roH*?OD{|l3 zc{ar-_8MpXJ>sJ1=|RtP1TSBU8uT~Rm$IV5F>YU-h4h+Mg>_lba%i;`gl9lXdHpcE zRfYduY}NV$ktZf&T@GH|@yjQwSw&AhWT@4R(60rg^farjFqrV4Y=vJa?A@H4{8^R! zVJ5g79)Dao{r9zfK`?urPV^?rF8CPW{ve}*l!O3sjd5dR$4v{MA8XxR>3-Ae4LOAn z5-N48puDG2AzlXYTmE3C^m7Zia=8Hjp?MgqoRsrCp45wp3xsM3K3!@%B%GgCj9Sa&p>?W1eV_9Psk|v??@? zbd%)C500darcPSf{tz5Xqa$Rk=>kG+W@CAHHbFDc>@upu3I{TzL0qcFb95t_RItau zthx{sXu$2)d$w0ISpHOseYHD;(}P>TgL~3{q4}a`ZGYbG*53XK82Ig9HXnZaTmEa3 zIh7lH`kzS8NR$OWTBKu0lJ$4Ucz!CZahTx?bj(0BctC#q5wpxjvQAHB_LNbHL!PNL z3JQIY9%DQFsNXDvEm zx(z~xu|H<)NVQWwd)r;LZ(BI;uhqVrdqpZ6=>MN&(ZXiVN_xAi>(BK1dS+>xc#8gq zJMEfT_~HicU=<2?crjAOR8LNc#5t-R1z%zPPcKe(gLaBCGr;jx{K_Bad=c1q$Ou>}fKmL;+xF^5O`(Nf4}%ZKi5hm@5fkD+uW;Qq1=q1l z@_sA%_B-Q}JO_qJpCqpOGSv}(p8;@Qbw^wi4#|O7bjbLPtOF-GW8T*KZ>@b~TjLmt zy?Y-o) zxli7HI@v7Ac&q-Kme{8@5xaPzbJvUW1VbpKGyn|BTpuGx|A{lzp4#cw__2*&m!T&A7M!EA(ceh za33aQfEP@heDZ_@Lnc;MZ~D(U>|o|%geM^~v!vpk(WT$YIdK&3nZ#$F zq?B!2bEnhO(`+L8_NtL(#32l)z!=(ulWf=sP33N_JXTa}L7LtEVB*1NN_QFc&Wp2( zhbs@qz?qMgZTg0Ny>!Atd;N57L$2iL?y7g3;#q&(EtY8~u&TK4GC!J=;t*4Yfi` z|I&B#kwy>+JshTw56=vHLr;rdH39Bz1ndkwkDP zLr1yVXA=T=WgSPW|KRZn!Y1fUEW`c_!XoKx?3$+Q4D*IeUTXd^g|<)PKXLI=CN6BI9=ulLoztr@H? zxYwKT*!oS6tBe27a|=S!@^=Crb=fSv$iJI9;TfkW7eo=U>vfPv?z?lyt*Dr$fnb&4 z$*ZIwL>kXQnL0YH>A$=lbd1K)B_wnjedds+uhlc0M=|uupCF2w&L@NHgq%joXC}s7 zp2A=s-Fkb2uUa~fnx`lF6+U5ubsa3R15v3bv4{1WJBo=hk=odQ3o`7YdoWP6E@nu6 zpHB(U67q5-$*4o-=e;)r^0Ffz|F>!03aCKbE^c2X6=qNJAEPGY-}M~FoGHM@m*j%e zXBP`q9889W&V1)}qOGR~IWg$OFM$sd9Gv3KP~hyJ4_tmc4#i-ayfJ+tE&mj)X+N*+ zd@%!tA_6n7*>ZV-u`T107=Ou)cTl3hZOW9#WHynd^r<_4YXiN+jjexi{>`n&9C{*S z(KPOKE;Lut-$lX{qdR$@RkFi)(ERBYpW~}Ncte9LUU{6SIx($&+kIK3ZU4%MS6z_( zx|&*gbvojTheXvt$g#7t->}t-hyAoex`Vn6{qPZg^NH1;OQR)aTR9N8*_iamf`Kpw zgE7Oj`d<(m-tG(OWb`?@Qu%k~#~zK`zEVHos8AHYz+tr0Fz9cE0c&5(yKLXol-oL9 zXlZ0BS=SI2viy(muz-&Y!CNGzw0o`H`SNVuFo$ir?1cE;F5_qQfhD$y@~Kal=mwwG z+ATkuTy>!@9V?%+8Z2lp>Z{nIx`Q)dnG*_VE^YlKA69$3lD=b)5Jycf6!P5(E|(L9 zvy*+p9Kt}qbYeZKol@Pr?;9gy^(LXAM}l-@;<*!J&k;y^k*h*DPH;#S^Dw%DPc1mQ zz3&%swze)qWDH&wFXyAxED$S|z(_VJYk;ngVBud`%F+Np)zOEE zC%kCfH*n05zGA4x*adPVz}L3Sm;pm#==qExqhE=GJ0hfF6PN&4z1_m^$E0m!6vy|e z3VYRl^AQ#d&~S}jQXd4rP}71ovwaA1iHj}2qP|2tXi-dxU-0=iB6brKD)IUnZ(NbU zR+ea>Ig{f$&7kst{)7^?_?|J>>Mavzi11E5sn7d9=hdO}TK(rhY>cs^lKwV_%URTX zrB&@cU4&bd5L~^MA-A^}V5EV)dbg^u!$B}+J>X)|I_4<0o+U5p%?qWK2~N(`Qe(ML zr`nXc{pUhc|EC+QtH}_aa;lfYn1p;QcT-by66=-E__<}kx2EOJGk!5rx`)wzQfUKU zye!RT?PI%A{B9F!^4%_&?OU12qDmxwO6}T`$1T^}i!gjINb~bR4AbAUH9OMlamRW# z3`xWEKAb)0x-`MxIn-NPaUCadxbuSiN>?3=B%4(Zt{}f)6*^m)SA3C^v_%!DWrY=x zqsk$99;(dkF~Yx_7-do5UYYm`Dw@i^*yFx#)piih3|1L^7Qykj`D{*+>wy0@TzSxb zFqghGb4)ySERU#=5R1z$LwO7Kxav%h5`rf*=Brc|Lj&6;Hx!ASf@HdL@ylY&vC!1b*LY5S@F*ejioyThiMD7TU z_c^<})h>x!h4+bDH}@{K{}Nw+5;sxf1dxu7mFPe5CGVCb7?I?1ZuxMH>|0xF0m z6}8zRC+oWA1n5Y0l*X?Fs8B2>1<=q*gIc&ru@#2h%>`4|%ZT}NHMkEvLs6YUMl(?M=5NZOQkv)v$6DhLSE<)3fV!;6 z*Do{7BBe0_Gb#<97)&&E?LgWy2Q^jXi6{9T!35q;?;Sm!EileCA0G=|SvKmtS+>td zU_tO&u+a3q3YnJ@OJ#aVQi@M#%rD3sHk68{{wr`(0WeF%D-7%s`z zSETwq*87 z{K^$wVO+B4qIia|`}?Q0`|d>I&G67W9e=U<@FDN$0VrMC6-*bS_>vG2326hh!Ri`x zcYKkK;n~ky_fKv+!gIP??2`)XPfx-7ONTkr>2sHyq7s7@pt2aVheo4x`Z9xMvBX$H?Vxe-8kTuOIvzcS58-G38UE zsSW-8hzA|%GaYyGP>tSl^6TEYLU6mAmn|F&c7Y z6{P)iD6jb#ZJ|fXj~0hBc*Tp#2l-rauioO(&kYZ`)xS(0EdthJWniLnH)Iz0q(Yz} z9oi2v&&s%&V%OvMwM=%wy*j0Dm6-Gy_Pzs}bnkcS<-C?7wy*DB@xn+n(zW&m2=I5M zp}JTC0&kUx6VD*Pd3w<=`y>#L#BcM?_BctHy}wN+_gjmOv>s+yHrS6*Y@y|vt=b6g z>aH!g|DfYT?mQXrd!|+r>l)>7@sC@AyMR5{O?TX*IDeF zH8grArCGZFF&pQ=1fnURSVk2kip5!LrkPrAB15a~-SeHt70tBK2FB!zvb&G--N5|u zotMGF)0+W9R3>Sdm{QI^B7}M*Rj>Wb0IsOS$HsOo`$HFWR#44~{A9N~*M57xJl{g( zB;xk)UsJM3`HY86ppxw@CxzZ-!W#q{^h{bajh(;86uH%cs-&m#hMbG_%2Yh4jtW!y zt@<$7{lLhH7wa)u6H+(gLy7gtAm!BUoAS*G(4s~FnXZ4B>RO&KFXEi5FB}cc&0v6C zUEns?7(_$Y2`UHb{uTV!4Pii6mxj1Z&D3+S7&e~q_Abd{r4%YiM@LO5(>xMo5q57x zijnH;SCHN91s5sJ72CMzPOX%QAY5Ee(Yl6;^v2(>3om*M#|GL34Js%vRdr}Avp#DEOY>(B{IKG7=5?@G=GLd~2y zP&{^j1H9}ruh-5{CEXG9TlxLLV_>oAc)%vZFGP~8zYlF$;{I)Phx8jx$1)3%15Vjnp$)^eFHqx@;5cd_dDf!D z$1{6-kH`1r5;|4H_DBGc(ukZEcG>?(?s+dXzpY(qnqG?4)6=8*!$#rIZX%kIYvp;y zX1O!y(1L<0eP>4P+Uqwy#pA3Sj@v`c?ed|{G z&8}b}Qsr54dIIt!&injAwNq?C4wDdPM~Ty7rYAsrmtQg16ln5lA-<_XONog>K!-rOfQOiTMFYdlHEHumyv#-U=FD*=Z8xc~n0KE3GJ zF2DTmW)BspkVH|7DYuDk{eFUPBeP-GLbO9E?QxA@U#HrgLJbV`Q%~sBpeXH^A6v?Ngm`(DsF8E_ffiC`?&JS=2QvUYx?D%taOLy>X~z9N0wHt`T_9kn~^g zDgh>NF9nqvXT1pFwXxU1B0B6*5M2l(HD7$I5;PNWd>w16ckUV@f{W))fCzm5^-cT! z-LPl_yT%GU@!mTn3SRjhsBZko%a=CoiynGT5zcTi4_LGB2IDmzzW9^;G9Sv9HJ=Hi zj8Bmd!G@V&LtUy__j0FGIXK5Li6ly&5SU^m`UoGkw=rl^G@e zJp~Zx&@AU#84UNl0xW8Bhm!)6cV4%@x^;{*2ZAmaA?JTKuGKwWvqdHNsz9~il4&sg z_})3P8tV)27TpCR*R|ltPHv6(Z@N;Pv0>__XZf~H~ai(LNsTP<)qA}A?T}h zxGN7ex2&xBGa^01>f~4I-@R``Q~I`stx*A0H)Ij5h3PSc>FT0l%6v*5;)Kna+NF)L zQUGh^Ne841vIL#%8<#}u6yhp+4!J-TY-CneR-LG%(feZU;{dR;MPdDzO;v>2d51d$ zN&rijdlYx&0syJ}zjp)xU`k_Y@fdTIdiY&g^UZ0|P6Mu5BN3%r3N zlxvU0qC212xh^6ab)-ND6rBn3dp=*gx#{iSa*YC~^}2&PKalwppN`J7ZJl-PDOlHg zC@`rp&aKR6z#B7!ruLTJ4F&&kEyVkB9-TcEDtGkgDuqMP(=jOgL1<*A&1If<%lzQL z?>kB5n4XRxd%PaBR!Kwj0L$4imq&ydeN6Ix_6tveLk2h);C_qjl{s~} zk1r6p?S50_{Js1>|16jEbiC#5&%|5lKIfk@zJX=|f@px9ls3STnVVl7}hS8^ok=e-Z0 zYiGWDPa za0=nAqf_5Id2n<8-ZK{fRdFI*^=ff{*Z2cj@%@seLKhapX**szzW7Ymp0txkPiHk4 z6#+3#$&-DSj+V`TheIk!fs#g*Es^Bt~4HQ16XeJT-NWM^c@IgnFHwiZYC4Nc8-XU$EiAw6ue{(EQF^|pK89I zJ2iTK@2cY0tiy>)!sEf~$_SFHHOR%I%^BeKpV6Z|x!|0`gfH^}PRtGI;-=!U?h_%~ z^mlVm@#|0Z0GEdkC&BFjhH+#x$z16>zLJuXL|Z`LK)>?M_L5 z5Af$9Q$s|n3}|%Yvn*`vg>1p*;9Cb4n>KH@moIHDt;oOkbH!-7> z5#K<24WN(B1@7#zO2?DvP#ZRr_s|H$^W};7d{^Uf@O>C9M6C;#lwy|CXj{SZKR(}X zPllzh;3~*VYXSfS{1F0RqJtm$E=88$M~By| z*YBh)T+Ljpo!(hHIskxYMq+Fwb`TG-%;q}Blg4E1-&{%>5kdEXU;a>_@?t62Z7+Fj zFbE;Qs3mM~Vl zB~>k%q4@gIL-Th8M1^WEqsm0)leb|1&$KqR{?7;OMYExP5R2TQUnc|ttpGp^C`cn- zd1maj_(oDqxv^X~)k$2NNqnJ*78c)&+oFi8vKSz=5Dj0IXUyY43MHZ1!yJgM0?13G zyP2_@y&!`At^P(R>(;m|=;m?(?g2HKtUOS?^T*u!@8#JHncnD*PbrczMJuSddKD3T z*h#%FF2A`i5}l|kDQPURY_#&~yM_dPEo*e!oosO%62HiB9X5IN=+Rc_hbLb00Q_n4 zqZY&RDF`qu`SARs>%--xFhH909gifS>n@z2=#A&*f#k+HH+4?#q`i0p!HQMC}P98f=~H zDd|UH?{m&So12x5jS-6ZgzuH@52rAQgD%$yFSQAN(2^qW6;VKqU?(Rh08(hlhba4c zypa9@wLRn!8GK{IyR*!o-ihus75sbAgpGtVw2gswv9~1?Q&kgrv+!GN{p70bP$~9C z{-CMIwxuUmM^c6lp!cJ9@N%j%%Xzljui2%o@%7d04jQaPoR5Ec2jfMz{~t;J)n2`? zRwKfH$s8ZpM`)Pg-88o_Z#wxclg+34^)Qi7;L2oUNq^RVijPYq?7SMhCCEW^eBosz zm2tm|_PE+mnKl8EA?z#_9KH?Y6jy5FN`R}vBPR9;AjcX{rJ;ZTW7tPQIg@*K^f_C^mANX~aG1&N z%pk8PTfJnW(QhO~3UcMsy8j|0JG-~L8#_a4@FNg9=ESJu}4nbJ5rc%!HHqE!1t z%+20@(0@fSf7Ro$+o~lNLm#l-krSiE{F*lHC_vSc+#Cfi%n-YaYl~{aaX4ce#U{!B z&2IX=sNDXST>%FueFTp|K(is9)Kh*|=A)4p_~DHEn0j*_-bR2Qjm()5%=sOP%gnMz zM^K1)C(A0nU`m)#&+p&yYPZ20G(O0GUo$grehm$oT3cgH*i0~O>EhPdkUZP=sL}la zUT2hbz@n_Id^wC&n>x#6=HoN(kAJlgpG$U3BjF>QARj{|La2D_jJO!6mINN&^NnIi z2J(dGlfC^jym>`_r z7_$tMwVacCOprq(2?c^p;J`C(BdRA8b$@noUrI~!Rtr_J9kDtnv~-#ZFRw}`$oqin zyhxWk@LBWgWm1OlWO}KtXT%TFEhFOG$&tSeterD^E=5cGIeZF>VtDb9Q=nJ-NK(>P zKrhD&CEOO20O!Fs_~NG{1wUF1izaO<6OebEFYv_~bBWEW8j={1^^Jsto7<>(JM5T< zhgb)iTg&cyVcI~6e|~F|5PoX=F~?-*(J3 zX9t$eSAWt|($haOMzS(#61zq|X8pZ-fvPbaHc-*T3&~-6%p9V8tHD1yQ*GsZd1R6y z>Hh@Wa#qrhp4<7!P7ik%a`#L9(&K}oDD}Zl%uzHB7Fu>9J_;W;*Vl(_Z(CR zrwo4}d#aBtE>1~F+1d$ySu!D-Pzi45>o;!@64{5BYBYa4f-rc+#iLF(hc9kvz881X zwN~&UoHHyvQ1iH&XK>H+)}H1M1Mpp}v(F;1)-M$iEMBPB)VUbMh-Bq_`m{FHIS^H}Zz-s_ zX|5IXJyz`aaRi*kp;Wu;^z_}_Ll6djqjt8<1UDJRJA9a01BDjz`Yo@gHw((?O3P-5=A|It&1(xPQ0C3jwY~U#f$nv|LbvVt zGqUvsN=|e<$G2DP5*>Z~(Dze6)wOC$BlobCtG$JoQaB;Edzl`hmR~A1AzQB>#fhi) z5By1VAcU(Q*JXCASp+KQB!~0tpgv+x%1ua1RLob=jL3VHyO8c8Deb#{r+@In1XCkS z%o{(KT4AY)atw1a(Y!g3GG3Gspq*`CkjGI7%h4^liiUSX*KNVP9kYINc}eZDyyh_< z=ZTIpq}t)J%>Nu$WkC=J9Ud^sQUJlaKI3z2HRPc26Vt1GMD^iG`l zCDyyGHc(|6Gqtm0Ge>A_VZo$}0W(KYuunAMH-!YYQQ?_tqLKcr{?-h|{4wJnAqk0tU6WkPq@00sO9H{KIGq^ADLi2ws(gmu zp*hZ*@aG3Fy4$L%R?F+UCRwe9G7z8D+xz>mhcd-BlTN~-Fw-A1cq7~x?h_M9z{*9P zH)7W5{`UQnG@%85GQrsp!v6jE@~P%dumYzEcB`<(bv`t*3i@B79`u|dLP;;|w2Wtf zpYHjKuYh?{qDu$jp&dr)WbEMZbn^P@{^syd{nzLRW#vG4x9@sioI2Xd-Nh2kN2MNn zN(CAX-D5+`_JuIRl~J&k**O#K>FsSAVusu5Sn>!;kBbUzN6TM%)7rW3FQE3uFIJ?w zL)$Lu!^X0Ui+i4Mx8LEJ>;9E<^7E76GmpdhtGyGFZ0N@TR<gXb?yDKQuF1SLTS0VUj-lGgpiFbt(nFw2bkRT8WnH24BVsIqZ{9EZff4TW z)3Rr3#W#i7x7~*i!ipQLGA`x5#3oAch|eRo@8wthGc3%@-Mck{QMn3|hc}%M=0$G% zHzhtCA0NwKtZZ*@3;ytoKgLcA6kGNFN!Qp_p~nQ!rd-o>a<~OTLSl!O(xgL2QxF20UnZH!8u!|kJ35RS0p^ene*ZkX_qkPDo)-D`* z<|<=h%Qrss{Kn*TR3a|We@0iTy}SGhAuS{J*}K?~df^wcs=USyJ%Iw9!25{WLVe4! z!N3IdJ(w(Bl}yMp!*mEp6QF_41fST)!!EtU%fMpoMOu97;@%#o-}#W3!JrRVT2Wgx zUfD3FQsj}}X}bZZ2Io@adrL9y35xmCzt!gNl|>D^0oFs=Il`QD!irbySM;ySDUSN$ z7{oDJ^q;Q9G<*6R#n{yA^p^V^xQZK?1dy6xpFk4`zPp2g`#R3HiEZ@l%?6k+e3@al zMY+U6=7fn2ja0;1g5K^WESJp;a?#&YrMg`B``msKSOpv$@2|oIk9+7&9p(ZQ2-CB& z7BxA4m~_Q4$oaSmBIOMfoUrCfC2t5M>5~U)$dRD-U9bUui=(x}Q2*dSJSP9t|W0L!OC78U=Gg4EVnVywfKJ`IFNa%y+SK@0L_&14& z_$)6vS~MyIM@K(FgR(xOJw}UOokY=lh)W)9Z>^#dGq8-{MI68NSGc!nV0buIHaTl3 zWq?GAq4M&4gDW+*kgiAk*B42I>oeTh!yiHol2jNG(9D2!?+y4zVvm;OpZxNkr%maG zc{<;dm%W4cLvk+g8Sah6HFE!g0pKt>$`pmK)8!e;e(f4<-yS2zd)$LVOjNE-uSCc^ zz5z3jsk@2dE77`4QKayG?7)ck58nq?=!;FF(OwGfwoJ{(5=#VOa9jBYCdO)&*U|ZW{Gj#6U ztAx%QfJY5a2~(gk(x*XDG z5&5uOWd=R1Qbp7{yHB2ZEnsB)N zfluT7WD6}dRn{Q6=Fa}`@vkas!dGPQ^hG(e*+k=o$#!sYR|)-pS0Uap+~;`E@LZs-S{lHN5Ji-=S@t zmqh27h2a-L!BmUO^Wd7A8o^DvRIEO_)Fu(BkeMd7Z`I8UFVR!`-lEDo2_9HVV25TU z9Wt$Q6Jy_F(D%M5dc{soLv!e9SXU&eq@?6WoK}C(4zKr@f1O%!kq3 zSXIotGJBC@=*EM37xTn6GFI}d>Ks?E+vif=}S)X2`=YRe}Xtb6>-Z1Yx0y=Mxjzj1L(}>7izFJ=H&4hHF`wS=w z{Px3`nr^9mL3F$cf)j80w-q0Mn5NG;5)*|5D&Go}d>B;aJ0=RiU|4pa!^8c~ACRBV z=5@gR@UL36I&2<`Yi8Oph)3_mG%c}pjKF}g(8>$38FTE*uP#v3Nq&kZ3%E7D zJQ>y4VRsm zz{=HTwv~${qXI4|r}x2p!$_MSt*Ua%VD|#$ANTI<;lXIKs3z?1^quNm8#9Mqm|&{-z-$Mn341==>0jE2w-bCsEFB1+zAl31$(^sR74*cC} zKQtMp;5XjugGT0pJBilJm!B^f3O!HyaEJ`9LS;kkPpMooV`<)m0}WK*Z;ghdohI%_;{h7;^NVevoy)OGo_yLc)6Kn=qHTvv@J&$M$K-j36Cxh_Y{0Ag|5X5-!qa?*ud_BWiJ|Bo0A*0p^ zP#~yx9h`k4%?5Zg$)T-s#CMv~qw~`a_?<{kcbslJo6!??x(J5ak6_8lpz9_DOiXBj zRaI81<+TY`$|eow;VrgY*866*Gf*W=ncI$%4!koDwN_5&v*VZZ{! zhwjM=TDV#}Z;~d?#ZtH(ZET9W94RrE9?><~#Va|C49)GnH`!Rf15V2rA?q$858~EF z@C+5W$#8T$cA!%J;1+iLx0V}|5BMcPJByJ|P5BS03MI9)qQnj1P5C8U>^yXwVh+>4 zra1VVrg6w?1L(st`=TG^L|txRcA8TbE-~6@WJq1B_#*nrMer!!8;68A(?iD!|3h!6 zG;M3qwF`!R#D<5NQ@VeL z@e$PU*dr{BOe)#w4hpHP1u^QebMGSTb*fdC=+s-(3n5=Mb+3M>b06TOOZa+ zh~Xot?5V{^z!8gUIXBS$kDUJ!yYL^lkmf>-|IWZ}BtyK_V(lnb!M!nZn~oT{oijoA zxxd<+SzV0mzO+O>b$C;3GSi&Cbi#)EA-n_j3AA?O;RgiMyru7v*yO7J@p(B4*J^Uiw(fXK zx_vJQkIY(5`uih>SwZ)CYZU)gM|S?WigSR*%JlRzVf(*$xZWMNVA!hvRIX9Q{iP4% zab9%)-sAZ*<~p`8)>Z$1(t?OxS{gF z{;qucS453a{*{it`g2^`>xG}6KK(v&+f^%e<=<+60wd?nr<4l`#zFA9RHL4B$JTIh z?{l0lxLtucZ9(5CK|&@z)-^z@^y2kB8iff&H&?kh=r8WuRIt6^Jo&f0x8XVtuqD6v z3%r3K0`1AFZ_{gN-?XI`6xaM^@GA0fISvFA5?)q9;GkEp$nh+M9Y9>D_2!Wp9j zvRSC~~$8ME-m2H;rv5#bEk-W($=>l}~&`IS8CtgD$%}@0Qa|jcE91 z%IxO1O@L^peTWE(MtV>*91x`n@G2#-&iIO-3)cu{JK=+glU6B+^s#nMcAH46NiPg0 zzi6FQTTR|&WQG+|n^<_YIL4-;`#uXKDyQ)k?(jt04&>tGlwM?IP-gqBviB)G2~)5S zGZ%$2l%Vw+K@@|7gUs!&AdzgtqAbE4?VxXDhZmW1k=N|Zs?f)hGp3aS6TH+2W5DX` zrU~9tQBahNsN><~9W`l*OD)#NfT_xN7-R-9`%zRej{I-*ko;Fr-AH38j?Aj=KAPXq zWQ`^r5*xn$%m2PR#%!VD1!nb$1Ny&d&pJJa74d;P&UcAGFvnRJrqO~!%Z zEgGHJhtg$%!<9Z7Q~h8IW4x^0LLDRj_{DaPl(QA_)#zOokOccp)sC7p~a^ zQ2||LU=%`pO+=6@l#5c!1?aK(q3}Zf#xhvK+^BGRsS}jVJ?3>wC;#|!XXCT~46Od= zvU6c#J1MiRTGn9_&qa!zru}nHUhKPbapF>rU@tt~#SbJWU1gD0=sU&hhIYbaZV^3{ z?xj<&Pj?EXae%NN&_=qaL0eDac&Q%2AHuT#%`vdv3nnjEY`bDhJD^m-7LoGtzrL?Ft%w!jPpv-|!mi*3y; zOSabz<=rT0fqWdyS~@4QLqBhn6F|anfMURKVU#q#o-U3Lnc1k@1 zS`jvfS9_SKo(Bzw;bVnrH*NnOzKU*!QU_rLfTp-b(H|owy^Kh1|1134wPYhd=fbqg zeb2Lrx~j-Zl+9oG_f~U)t+yMJza&n63B6RH{ZUIl0by(>QoFTIiq7`=%WX!qnK7#_w>j{7~TJ+x%TT;Na?6F>%F}uBPG>jj;9yYM32R}HymQg zx_p`aIxhu6a6db%OW;J^8SG?9ER(81YzPH?7LQK&$BH_$l z4FAk)_a+?}J#y67`tQ1E%D?SpePOur@zb7i zBM%*|)zY#=_dfrXFgaO93Nbb{b+NSA;7e06t7U?Op=>_i>>+^}N50S)*MC|_N+pMM z4Gj-ZkNas3iW?wh!d*P^IGS2aTM9aAnV z;P6CE;!5kb{Nb#8HPxzBWL(tQU<#Xv=+kSx8(5=Xwg3HWO%g|&*qTum1Q{OwbH=hd z+;WWdJ0sw%S0anv0}N3Be(7Z;%Nb_o=Fo^$FYDn!Uz}v_Waj~{y5*gT5{Xf(>IQ9e zf}B_ZRFw!~xD@(PHjOz>@ei${A0Y@9$51);mV(|;R z@1^)Jb#`{Pr-bDe)om2s1;zaTX8}$aie5={US6tDPvLeU#nyzZ?B_yF$kBS8X@l2@ zTGoWofC|pB8~Ya;ubhS+Nn!HzfF?QMfj#=h$_9ef=%B{)HeP-|8V&>C|rB zwpW4Gbu}?t;PiJW>;naCC0q0?2KZG$4FuHbwsYGQaCZ&DnljIX~`FVc_Y~<()^!&V$xr) z_4+e>k7iwE>5J2NSjP9Gacn;J7qz^l9UUH~=?-~xOvvLv8d*u9;%cRU#^<_LTep-TtUr=B< zgv@Y@m6Fj*iv0LcKtM%r$kG*@ZWZmOQk6DPM#&O5QNWo$fmoY^5B*zt`6f;tM8}Q= z-MEey&_qEgd$p`c#vZKhQe52WoRPbRDUgm1YUx!_Y~#lRm(kcsD@Y^`;dZqB@MZdJ zOAPh01K$tXbkI2WprVYd@b~9{@@+;OVgP{ARX@#D?H=th{tHpQp({=1PmoQjRON!c zhWND%R5+ef-T7>-0ra&hW%FyY-o@1AQiX#?~O$QuNfY&EkAhfhF>0F}C zATXJp*U|5Q#;gDs9+liUg&C8URx-t!(%d2&oBK0#dPwtek1h2-86HaSE7$4^I?8=E zVnq9Yer*WFv=}lVc>d|QkY8<5dh7B1qz=77BZlfexkFCJ3ly_N3dXswVkcDSW7j8WF!!G(W8+`@L$Z00ndfik@Lp*l@a zT4+*$l(1XR>u}y$9OIw0nS4kkRKEw}DGEY4v;&g*wVx~xjr$jrj?I6pLZeXGDLEgE z?gt*`&RXqh{Q%ZSbWb}nt&^$bI8k%W=TsMJ^{N{StVaZJlPvOP?4&R;KwlS75e5e- zGxs=ZzdD?uoC8p^gD0p1RU>Z&ZY=`WFfmugAql~-0iZc`$x$bQxU%vqQ~S?PF_oKH zH(BdrOPynCk{kR1U>*g@aUs2m+f+~Mqu|6fWT24sP_T`g7I8!IR-5g z?Iu-3Czv(3P*XNfveC?NLJ@?4NPDq+&CfG-?L5lmkq{XTpGqT*OD4c#fG-*NqKzaD zuV7-L-G&A#FOSNpt!@`)cmDY3z}M~45NULsKYaBI32zhm0Gc`S=HLeHTbbdpf3~O_ zHn=*D-aU9QNgzSu_6QX?!pcZ#?~{KL0hav4>n`sxS0awSmw9kOqrZ&5%-KylytaK) zYfj-bJX5>N0MY>CIZ^?YAnV5<&RI+|(s!XM#4-M=yYL!aJ;K2&f;e-!iUgU`e)_H{ zH#!AaWFSD6>HqNj{4o1a@fOj1 zb0G7ehFejTN$=MQ8rCx)K~PXI3AgJtpGqEQaDBq?=4ZAH%eVe!c&UJaciT3{IaP1K z<`!t9#&4K82TqBDNbTkV*Xl))UM+Ys8nJ`*gaARCMXJ)Er7K1I2!UjXFHMqHEoIZj z-OV42qf*B^51(zNwkh`mTO(WRgNMtQHk2W-=_;-IOGqn!%2%fUX2#2`F6S(wX;Rz~AC9|;Tm ziw@TziL`R_sjxwYwSikQ>E^o?M&p$1J1l-7j);6%`QXnlIF@us$tM|GMlRh{_dCXU zL`RNR7d^P)_WsPszh+He?}h32^@AqKsF#KASrDMT3;&^@jcU4jlN78G)=3~}Wxt1c zaKN11Bg{DvT(E8LeFuS0J;NOR%>o=f5b3iajFrud8AKQPaA3zmkE4G3-#9+F{ZEYb zN2^@h!OFzo;WAg(lh^vq$mRD}tvNJ5E0AIFJVoxk+r6bcAqE7*r)D&B4Y=?H+Fhuu zoB8wGitgf>JnU5nPm;}a!mhAiOW=~)r}#ZTlCxr3u?7-T|D zyGqlOnhmGfHt<-85?b^ed79aveo8 zv%Eeh+Fnj>c6I84JFd1EFp)L zUG`aM5APNdw47X3f2h3ixGOJa z7r--jn`$$zgZW3S$SoxUMtvE*4~Peub4jrb)R4(1vRjSOktiwA8x0TG=EhPR?927o z5?#(Yo+UM*7FSL8Rh`{MW$=vy)pi1{`foD?McxtcD1P&*>!B9oh+V=aDU1s5_I8

q>S?*r$i~X(l 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 Xmmt9`)V2(&-b1>Yh8kt+Hevq*a3oad diff --git a/icons/obj/chairs.dmi b/icons/obj/chairs.dmi index 96e4a4228ecade21ad9c71e76e4e453ff00ff76e..3754ff052c08b0210ec481838fec39c2a840e2b3 100644 GIT binary patch literal 33141 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 literal 25121 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 delta 7675 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 q-d?;PmrZSXH%$ZbtMjW23e!T$qku4}~r diff --git a/icons/obj/fluff.dmi b/icons/obj/fluff.dmi index b476d252287ad3ef694a7f4eb4d25392c5343a6c..72edaa05283709e99722682396c6584edc87a23a 100644 GIT binary patch literal 13260 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 literal 12352 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

Q}Nv+MBWauGuhLZPqZE(1qUjb(;KopvW361V4W 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 AVgLXD delta 17679 zcmZ5`1yo#H5-kJ|Bv{bk!QI{63GVI?9D;KR?$)>mNC-hX!QI`R;O_2D|IW<3KlA@t zeR?gLUVYEKRkdsHs+w%Xz6iulprq#W(a>?1v~)9fwRLv4b#jD(@yb5V9En@xMe7?I zP{%)>sfrNFOO&SqNNx93G7Bhy*j9hYSd718qZZ(Z=`??jnkMXrtKe@G1W>VO*CR;22-~!?pZNI# zootwno9W`OP;7)dKzqg1u=~-7KFNiV72L|oMa`@RF;*XgH8d+f>J?ujDC-_3gPmWG zy5}(fbw(*R>r6gzlf1E0ywAK(=7*BD%kSrQaHF({EK!!U3RB!#ZGPFPj&5Pq<8b_d zcTCyNw>pcW)J|h`Mt{2<5dRJ~BZerLV0cjVw;xxvd4Y0TxQz=c+;6A+q@iRk4-Sj1 z%E8P6skd@Z&a~umnY{xI#(#WiX%$YhMru|hObxsMpXOO_+OK${q%5S~qtgZIKU_<8 z#|*#AkcjBerT&Z*6gcW>l$L4=od5=H_c~Gn$in%F%EXE#ti{B0Qph5kP@3}!4D)5M zk1rUGUp2u`IC_3FJlE10Ci{b4WOfs%u`X?OqkBm3AJSBKopx{DUcNM@bD?56X z`pvMtvKCbb*AsT=fZ0UXsB24*S4x2oRB6LO$G{D$G~l4K=K@uJIR3r1Vbf2cvTT#rk&pM^*9yHw z?aIB$@Tzydr0Ls}c&*p$eDNvgLVxE{?wwz0KLWRH#6ET$(Hc%M{q}$d^iVr%4(5F% z9nNQn2qiGZUl+|E&5z<{|SJB|!)u*IU^lj<-L) zaioSqKQ(9!?{9hN9>{@i|A%gb!CJ@hs9t~cL2x%o@+v&)qUd=5KiUJg@Pof#N2-i4 z=wjSjjpR{r(CHLV930>QT`cm0Tq{P3vK=_+b{7=~A3Hs_S&);2<)hwZxvF{$uzh9c z9^~;8N*P3_xH0+chfOyzI~}_bII1>r60zv!JGniIgi75L_ZpSDA&lnMr7`k!)56W{ zr_B*f6Yp~O0ClS|GEB=2do^4CG|!s2{Y-J$!{>8|!Yl;XptASB`l7s-l=rEGU%GckJ!nxCY`Ef=tfq=&cPeE6{Q=ZoKLPXyls$>%6k?QS9_v|yB6 zxa@W=cXrzmS@1-%^(8+_ZA@|OCV7mmOfZU}CX3HFrSj$?Z|p4q){YU_9Nc8v>4gn% zjrJAf^^FQ$eXzfJ-c|UEY0oUq=-0~c?!VawM=5?DuzW?txDX?8F_)pVOfbpiOOh+&s9yO4{B*;!-Muq%6IEqk%9y% znnwqw99c(~q-a0W2{4T(3V=7FwFdtcFs0Bl4;`1 z8j?IupHAdFd^4-9O>px-%;4xclMDUpdtXeTvO#FOB-n zYKN4UO;EAzdr#2)W11yKx-E*HvGH!7$jiC4eC=)|jKg-u90KyFHYf1Z+)kO9i4h%} zR`S+Sg(Dw3s3g+;IqSfCDnkR5oH2_!r7gr%789*lUPGpfIvM>*EK>l*E8)%k_73>G zB4R0^Lm0A#vj28^pALN4hrJh3u*kAk;6+@EKhp!#+3w++rl=H)d)b_D3flH z1s~$3KExIJV=z~!ci;f9BPMUOHF%TbWs^uWRX@1D5@hN25S(qnRVa{S*d>zb{rphG{& z5nk7leLmzuyq$($*KWOLS6*u;pXO$mPAf$_c~erMwYN%uYZwR&-{n1J_1!7OJ3aL( zH3}Hk23W?b^7LIBOe#k;Q6ks9s>F$e)0i!l&0rIb_;WYHB{-&eUdW~m81?{9czy5; zB%S3S%Mm%whsK32SN(4d10L&E@@!8_fV{cm-4SgF-RaX)+xEi@z+P28KL;2ojL}3w zj-8(Ky^O!7MFGkptc!?O$91dBwXiz&{@+I0H(i*hX~w65l1E>$B&iq zBAyx4`tI5bfU9oW70(?T-j7F;Jk89H*<0rSbP1exTfi!9xr#s5c>k&&RfAa0f!Z@OQkq|!vbE@%?0WfPe|&YFGF(` z7ofUgkdRoS?{bA(Zt-fj?PpSxid*ATbt9C!0&^pUQEQhcn)6Ela{v&F;rafV*dfFD zW56!^c`4UtP4Lyg__u;(@+#ucK!S4O7}1Ldq3+z) zN=Z!=U5Dj`2)gwf0yiQg@P^tq@z{j+ax9cccX*>elxGJT&HP{W%@f>h;z`FxeaUXe9FQr`PbDrSZ z`Z6H&Ip8AVIoSW<1ZDy&#>ZUvC0YfeVr?&&WM39b8!H=%pUXldFC)S-@l8<2wLSH~ z_kpX_>owsuJ3WR=3K(2z3QyR*TK*EnW1IM6a}{z9d-^=2vPW_wo3yU@)cYpBV=W?@ zCk+Z`WK=A3YlL2$m`wbmJ+3r+gX&g%qM^GK1A)Dz8+cxQqIo(4 zw?ZV(N9bC&znIA6koX>(*E*eIY0(=jEYZLAOtTjgdr^9fcf2l%F9!~EUjc+eHG#j> zGBP$w2b!4SPu`k0<`kOMYtP>l4z$rxDlV!t(0Z+~RjSoIpo8cLHt1vzg%XL;*mt|AtoZMDaHoDs(=$! z_pKoP%t4t`>vU-G*`Br)#|^N3qphU$0s}(^BPS`Qk^jKEd2Yiz&$F5S=!biL?Y??l ze$BB7b}GkXK;?fKnOj}EHued&`_|d}t@KF5N73FJf#vKxIAP|R%kG*##V(W+6w@nF zKwD5VNl~U@Gi!%dWO00fbF$K=QmD7vTf>x^rKB}CJHPa2ZE#zmz7<%Tc#){&EZp!e zV+Q}4RNDokx(+#rUKbfpy}+rLjtPFrFMeib;fk8mSKz8}GP3Y4QALhnF~dBwz3V^^ zXwMPw%-ug1aacITOMD7un{gN4K`)#MT6^=@g01c?ru*^AV*a9A^U_m@pjMG}WdD~> zN1k}`J$%$K;aq#O=Ve^USDJbL9A~=^K3Ai|Rc1iI+e_h5qOo6O8Dnt` zvG>`-Ite?9*IeLeTQPQUsP}Tz7@v17CmT6lzzTfok>cQQh1YwE*G##o}TliS0Y z;s-}ic3KrAL(%%RPvIwxcTYi?*!gvAp`A!wc_Tuty|QtU1^5J%yzJkw6y9zMv9Er( z%7izp|g&50j>l*bVFh-&VqNS_E)Q!A^dw+6p4d@`CBy<;v3 z++1Pv^?j_?(!!TAZ){=S8n>A)2_a7*Gbx!6{a*4AZXj_8)ed`}&1?nnfZWu-Z zLRH)a3s#ROZR_rLzT^T`!puIGdwv2O@3Wx=Fd$alS^8DjuIgHKI z8j^_D_o61oSDmcc-jHb77ctD931!6qdwnJP9E)8gHNp69Jc1i6*r~Rxt@(y~J+XF9 z*a}C)sE|&yiRlm>P;JnikWaCfif#hXTEgBRrc_849_nvdTT?itszs($RI_ct^a=0f z)8$gMKh3;nOO6~FSA%xTdKO3D4@bnF``FKBQVA?=C6(>iHm+#&<_@`=g0SBrD_du2 z7-bjh-rX;0mRB5tmx~$+hO_G`$yx->#n@K`OvUU*>&W)4y9{9I9=1=rId=U4$T*A9 z)b5XgI`6kV4FtEpW^HnHa0rgOL+|LLiJ45IKQ+~o5sd8&@A_T6y_gV~y3CB=@)x@D zpWFq58)~yMXro0yPlx6)pUqB4AMCO&@G2E2x$a4eTPQa3&;_csTID_V3CmN!xZr(< zYGmHSdcw_5?a%AP!Y7}qmVtQSczw)^w^73PDZ=q8-LblFvx7KJ1|2h_=w!P7k5@+N zkkhZ4n>VS!3SJEoPQMhKnvr-pgFVFSBQW z!P9;ANl5`~>p%wSueTS}`@-q&bJOm5jzy>=xuNv!j;k(%24A@fMo8|7^kwEYS~Ku( zwv2$ZoceAE3u0CeI)8s;;B+&p^Wu8ix!vP!aS{`7ipV^&+fh-Ia;Zote%2>kvPtga^8lc zlaRUb;@=QFGS>%b8~H@e%;1m+ub30b2>w}Kw-$MR@00Tu>6km?lp~1_^CR}#x;iHp zuV2MjXf=e|VBpi*>kd|e%d?3Ob}591hllWD{R^`SM^xrvRF4_d*FFfM`axIp?aebV z={Rq#c8tNa>A3loDg7G*s<^OyeSJ^c#xL7=sZVeS4KrKi*-8jev*Cm_(r#hxwwU=S zzVktak(ty659tLj7s>eVb%E#1mG6pAS8QC0odyYAD8Pl^Kae-bpuOWUH|BXRlnzaO{>Gfp6J0^B*-%p}S|BhY`_Di6U(l(EeXk_fXy2>a z8fB2*DVO)u-~QTzfQw-d^#b#*0yx!CF|4Q1o(gTkb)r$JY1d$TeZLLFnuKq z)p8*ouyTl&@D9N%`*@z_?2PY=BKHn+gJU!dKt}hO5dIw_YZ;QYebjw>A9YLEkB^5p zko&o-MX<={J{hKrA;tDc^DF`={0kI8e1Oom54& z%|4u{_sj)ATI94u2;;qvx8KC^w`4>%WZubax=bv~KscklM@B^!>rR!z{OQm7H+lYZQ8-pN=wLyPw?%J7qE4tDR*te15$3imuC=f=J_kLL*}jTkHL z7U36oVSz00*pL$cz63MoVbCzR@bJ2PmcCBpCBm+1AmBE=G%IV# z=k|EtgEgY@Mfc`z%pO6{5#=Ya$}!N^V;$_O1alTj1z}}^si+OY>d36=_|+r;S}xsL&H?QVh~$< z=y`S*>cq9)3YgN12m_zR^d#|$unhx;6Ga^?#BB%qZmQH{7=7KJX1&!i^zvIECHeiLP+Hbf`zo?)W$aeB6o2Lr3$`e7CcU^r3kOy3aETtsgf=ku- zUnNiWRfd7Nf-f(=Lejn;m|GhSx{U$<;K08dRmq*{nPOa7d(I_!=u4tZeb{nN*XB>PXxdyb{oGb2 z^;d(EH^r}&KHy1rX(|#q{e9jTbHJt<@y+)t*v~hM2EaXH8nZDuL3~Ml&^hf!7dkNN z0`8mDZi`}p$0H7Rz9cj)A8paElP$z_%$@o%vv(bSmn*ZyD;V$uRkMAcjM_%+javrP z%9V=&MTdrgWffuaA+;6%U8nmRCm_18aCDf9*I_RWxL>uh&cCSj0a`|EbH3!eZFoe} zgwwqWWMRBVvMR&PtlpMHAphPK8OLZPc5FlQeRiHXDpcxuo9_Pf8a2tWRzfhwgh@lv z@o*#>txT<7J(`aVm~Fn1)GqN|_-uu;a+2ibBBY-P*y*$;@oE*6?SsO2Y)) z8H9aFV5Z{c#eM@ava`yxGPV3=<>VPZbBbAXbEPXoE6*nn3a&*YqjF4v-enu>c&y5O zQ98xMh`OXmV)Wt7zn{1&Lg(ZxVh-yC<49fKiR?JLqmm1*)Sr=VBy2X3zj^l?96`wN z!oOUmKR6F!{SNDnuA-&~Gc@GkyW$!v=z!DM0$Mh2Zatb;i zfmD<(_%*(ocXm$mr$6K>5D+5rd>D%a7BBiQvYXf0PvQosgL_`7ps0-Dpv4$HZN~^H zM!TxmZ$vd4jQPui#M`&%UfVNs__vQsz#WXX)f%!zF1CiffuY_`=L5fP>c#nS{QRN_K=wnU zp{_~d@f^1PtfO4NU&D3169HOjwG~izo{T#9~ZssNns zlNoChy1(jx2<>BxV`P6Vh4g4IqJiTN$z{u$9O|?2-uZfzrly{E)6Fi~+#YxEb zlsE&wMrH=NT#-on(C@t=hCcIblLIb9;a%%*15PHKv!-+S<9l!Mhse2rx(+D_)@^~n zRTZ=9Bu#1A$7>0qb=H^<;+{z!&O`;g1py7xr#9`ux1{3_2kaVa6JsQs4J7v9nm?9`Og?2;)~5izjT>4C8)~a(Puhr`rR!uQyGGH*eoM6NNK48JR7`N1T42=C-Tm zPV?SfZS7+?WC0b?InuoVeZWh?XxH1URYL(xNEhIl$BJHm#lXAq1mH zE(o93LQZ}u4nrKHOw*{3_HsMphwzeRW?g$i-m{DxF;XKuM5f_A7o zL9Z`SiAM$e;_i-2SbGI&{#n!$3J{L&R;+_r@w5Ck9rvpW}_dQwj}W4$o~n0RdyTkA;ZV>rfG z6H7lp)l_*;Hu3Ea!`*YV)+EPC$rO{1~cw-bWW-oT}hQtJ>X2oDGHt<>J{ zV$C_sS!R>X7s^8sY#MNX`TO2>Pn#?Yzq6`(wqj6CH?$l#6Gz8us&DKzdaU2u2ioR@ znHPdS3#eaIJU_AOqkr@oRXCO$A`Xd~qcIa7WB<|1{5%mcXos`=wer#;W6SFiqi!3! zEX!*BQyQ=Q z@O?YqiAi=g=&DmML0KnIdFU?9n8yY8KJT_MlHmmhOJxR|lHDv>Mt1!pwuhZ^XaqbR z{NcJ~qit5EzBOfdJw-bvGeDujr%1A{_>zX2CaUoxivH`Ai6*?k8H*|o7exm9U>IjQ zRwSoVzhn?ch+d8Ku}{jmmtsQ5G;?Y0QO;stnUPV4n_=qgd&+ROv^Jkm(qzgcia z(sw%VTx?$98U@V_%Jsd%xAtlJ(+6CYj30y*b>{672a5JOIe1>au>s4sSV5Y3oL?9R z|2*`D7DtVdk;xM=x6G0$V;$%-aGY}~54A&9PG1HZsGl;s7b!P0{Zzt3N0RQOdRU_T z!(ApYk*%t36!ol9pP$=fXvZHjNc^i3{v5$*G+Y0PIuY_RAetLqIE)jSAQ}pzdwmt~ zJ@%Uc1I*N@jOjOVcYFX;Okgg()k^uER*g0!U#%p88fE>OpM6M{x@^Qv$UytY=lr+u z`dma8W{pm%17_oCAK+hU(hmQo#Ab_3u2&GQPkSbuFl+r9DuUTEWE?ga%{hrSUVj;8pX9WJoSO$c%mG~sp&lnEOMN}2-b5~!X-3wz zB|SCo^`Gv*0H-e#4SZX64+|JMU2>K2f~gLHOB=m9@YgR^Q$23Q${$q)_NKmeX%nfW zQ@yO@@|X(z0j$B7iTSYEz{aGQ}Y=+^i2%;#7s zZUfX4ZcW@LnH+B$qJ(%J@h7o9Ed17^0*SXwzal?JYq@hImdNSY6-@$?7l*Ma~kfdsC+!B`Kf|3OB)de+tL z7?lD~W_@mSu*4pGOdsa5DH4rG{lf*-LyK_X1oGIeY)%MooZM8*xAzJ~n<1Prkzpt) z(xH@c7#aHS*bndGok%|zd^v-c{d0Hnx?xyuGQ@*W1xMt7kJm%zG39mey0fEStn1G6 z-;NH>F(0r#(Cs>C4M{JCDkjaYb<56qSMS1_7mKJ?+GUP9^*(IG>kha9) zA}&;_pF9+*Qom3S@T>}y3$JY)VBL}k=F-W}VAzVMey_(quDV(v)a9`fBw@%>;rVcI zjlo0;@p;46pO{m$hX|kGPT@*-UP~|O`EDOI7=R(4rU&i5_JNzBu9~n(Tq3~nfM;Fg zpSoJknhM;tyjHpp8jCacxrol|Z50(e8jBgrzVqWg_t#!)3|f6;d12EA8?48_+(Ei7 z1szwK2aI3NR^2YId2AS2;G9i8a#{-E;@&PkwVb~Azl=eiflU!eI3%Ja$8eH!`_R}I z2yVM2^$V{99=L(Wsk-|EZR5@S-U$@3&ez-3qKi1up4mmW1PZff%++F*f~SfB7-Ng)s&X z?UBG}ue4Y_7YYk?j&eT*h~FcpCL93G;;RA~T{d8^v43aTDl%`F^0iI^jaM!}3jCG|M;iYVh)Gy<|P)k{<%n{4msUWsvha_MNx*9+u-HFj?6GlXpYLYfZ! zuFsTtxM_R22!tC#A|n=p;l!ogi`L@KOUg^5KxU?UQWNS zb9{SOd~S^kxoK+y?EC^D`@ns?iUCd4%=gM6MUERw$g_6qMM^^-EorGAQLI$&9Cx0p zH7RK8a5kUc4eTJX9kl9NYpm~I?Jrx0$_4O5`guoz<^KFFx3J$1(z{o#d9JWlov<<= zNmxCqJo~c#zT8p+yf3O8W15K8YCaU`+}{oaDx(o2=?TxEY8FsZ@nye$5=<+4b|HTa zC1dxaUhFO01$reE;QA|(gEb$LhU6lb!Sifp5ssDn!6zKp%Nnyqbt|NF0&pd?m4I7A z5+dUDBD#V6F&aC?WT{5%5Q;(MVZCFC4W(l&6^!K>@oaiuPq25*PP!{_8U!xbO_F}F^ z{?{|QED=4Zp<>C5oB={tBL0Qe5n13?{<#IXstnJn__i=30$S_6p~cj?se;aIxQ{1K za8>ZDN1MjNB5qCI|N7Xhp+ZwzWG_&Xp zVis*Z#jZf;4|_P>lI=;;m3HT4K0q=UGryWRiLtabVsj$cu~=pA$knFFkLLhCsx(}V zTVu8v(0qLNtW|tNZb-RA(o?Cdf$QMB0A@C(ox%wlcM<+na&8DPXM z_mf2STU8TOR7uVH{W(a zvkS~{!&s6M+1VaO4@-kZBQb^X4h#02!<(5F>Ulh@RQ+kYItlW59mDW=FD{$>X}*Jp z{@1U+w8l|4%tAT$!9q|Gc*GAiiNEze{rH$f=pHNTXev#fOz2uC=^oT{-mpYAjV}D7MDzr1^he>-u=~us+^5GxxBd=emJv)#_v<@C>t`Wnh6O zZ>$ywF}?IpqU>;>t4!VIyLXXhrcxX1Jk61hq?r!PFl2A1-2)BMN1UIv+ z>m=en6I{73oYMpcSsWB-!mJ}d)g&zVq__x}`LR-@VXgnTwPc>zS{Q&~B!{19rSN^= z-?LY5Tha(k7ScuQ#A3>uSjkUMMaA%H%}f_K?~P7vw01P!DA$TQ#9q#bil)?j@tU|u z%z>9d_ArF$m$QrmJj=yrm7*RI){w;xOPRuuK3JrZQ}?W#Bt>Nq#SZY7P(0T<%<)?pRG5!UvhTsw_;oV%al!b!l%P(HI$(SKUN~5$CF8iJzd!5k)n!JI zMcwvhBMB#bWf~Tun9Hd}MTJVek(5h2xL?Od8~!c;MdvM7U}^jYw}HNI>Y+5$@Ql}O^$oYS`IS%P16LvdmxuPVcDq&D!Z zboe+e5A0dX_Bn@;>AZ>Febas`SoukQ>r!sw^R-z{J+UgPg!JYQuTz#6Fwk`wc-59Y z8|($FjrgBd&kddC)INi{`3`GTd?9kRBBzJkFVUEgGV7=6&5^}jxlvD}Y!!jk%Okhh z8|xlj%G{mRn9G+Y_XS~<%i-+X20;f>rwIiN;DMLrfGn)i`eV+V08Q%i_fYyNd*MF~ zJ$k$h6^eN#{+m|ov7BT24#ltYEQI=cB+!V8hWqXLIEf@x){yK9?2{>Q58n{cSin$J()KPqe-m(55Nk)8QP|Lz|4HCqDQfN3|znocC)dgw1s z@(f)>p@Cn85vH?p$Z#zNB?bGPv$Sz8k3I!eFs>V)Ll!U2!+!RPW1By7{3*loG;^gJ zAPjQmBjYCo`Ek;QIopyKVOEsdHtK3e0&kpu0G5$OLKJY#mNn%~WeXBFq_-&;jcExM zQ$S31SYR%tr>GScxq(kS(m2LAMu^7ijx`jqS`js=R%}=hCCZ8N_gs|TqGQ=*j$r4; zA-fbZ&+ihQoN{ALbRBv%I;LlHuaXMcPAXMgwRP{R(<7Qt3@%@HqOT$4W^y(k0h`Q^ z-7(1Fu+TPs6A{@1UCuJ|hU}Uz37snW>pstiEv4cgLb5&*o$r;T?&3T2Q4(`PeibzC zMQG+#XQ}Ce6C?5GMzR>J7)!Nj6d zSIbc8Z$o+y+j_`4YgS4lSDDNSD460HWPpln&(RKd3Fze1@SM09L(&6quP?ucq^Tr* zmuDoBmQPmf4(XkGns{Lx=++HctG*q5e9%4JzogHryG2?le)-CC%V+;swV~7ehcz!t z>d0-uC08;~a3AVDdDe8Ixc8@HQ%_kgD?pm^Vjn{)n$bA@o)kJ@Ha=u_f5IHD z3O6+*8@a{@MjCs)v0qudfaA5Ef?6rylLA^X)7S~Eq? zeNh#vB1dy<%Iqh^R-vpfbFD5pU*ac21oJG`+@$h#aud=D&pF}RoGjJ^k^%&vr8GHi z@*`bp7Xc93lb5>{;z|a9L7|S+6{G-M2K)bOaGy9p1TJ6@R zvM}~?j9{8qZZI%U?tm=0!;xvRR+@64h$u`R+$Dz?z@edQOE$os@-+{m)i0rw5>BLb zs_*uh4pT73nFHL4QmV>| z(pPfl)FleI(*_cDZ3dbO250IbB5H!WPf7k`nudYY6JIyUW;-*`{MH^oXw5~96$fvc zRh8X6b;?L!5E`zLg_J_b&CvI`UcwXC|Dh2wwOqP zJ)FE!y^^1;5PQu^Mk?f2I#Udv2+UY9^O)kDCwIxC%q>!(cc#1mycRbuea`LE^8#urOoKLeU?3pIacsiP*{Anugwno{!V zesuqdFrf35l}Q%b(yFnlCh*GoQb%wXYO%(ptHL1vj$gb+o2y6Dqotxu4D?8CDgEpU zYDPRi#?)xeh-uY9bxHH1GCTP>o8_HZvcJo8=9kxuc+mlRJ{LYEeYkXVLg?Q>=r7pR zhrKZCdJRC2hjA(e4w~)rR%Md?J<`62);!YA!U&gF`$3KFtBPuLzJrG;#+s8RW<|7) z%lTX>8oGv3@RW1p$rYwJMlp)AGC5;X7qaI7ORI`r^N+`Mkny+l`7^0N9I`Q^Kt}#n z95USK?r3^Z!E`KXfr#}UsKDr3m0!H99Wg3W8y0=nQnpr{zej^`w+hdZ!PvOL3yi|V#-Cv;_wIIt zwE}fuFDT4ZUv*Dq1pK{HHQD^%n^{DA+F(C3#rUx+Cy&o>(SrPY`)7sN-$^0K2Y{BT zk%LMuXi=5HWnB-!hmSdH&c}(j$9S=#{5mjhlP^!yL7jZX zB-{Gf|Id+LV=nRcZ{P9=JzX$l~!X!*bSU+FYz6v3)GJc_Y>jI zxtTxvs(UQFw`yMejSvm3cdu*jEhwvN$e4PAEdE*<9ct))G{5B7{>pbO$j%o;bDD6s zL0UR!MIb=;dv2j(PE`{Tt1$k?+v(@o;JwKK4vN41Y?H|j1u}y)KN%&9(QlOU>OX_$ zO9pnI3;m%vT!I>UoL}ka|9(8D*5sms*5<+MH%xXp4%xA9W*_S6f%>T02AiybNO8^O z)XM&06@hV^Qsu-Pp32pkkw7BNke{YZvOshd83K>Q-w1<-nej(NVZNwyE%D~K#=3>D zUB;#eQ{~yns9oi1zkYTPCK~nHntrQ`?0xU|szh`h>6Bg)dFugbOBpXsh1zSJ0f{0D zDvi&&F3O85OVG%-{ve7=yt;88hC^m-1iN8tA9)j>=0Kg_UsLrPcCjuHW#ANGbuj1K zm&&W7a4oRq2FyBKxVfWZ>g2R?V&5Px)|DaHe!(r;O8O@(>ET$ub(0sn7OF1kw}EpD z&pRU8FH!vRG*5j!drR8nZUEp0$Ys0OFqJ@!h|*R zb>QX8#7o&N)SABufPOq(7+t~DU$3_2Q7}|Mi*^j@RQTt=u7>W!d1e^DWfRi|EvTt7IIqW2 zZ}FY0DrOfnI$1L7(lF)PE*uaf{-=3SLkOf%MtqS-E$Ti-CWr6P!wDyHVwB~O%arRR z+w%T`LlzBv#W^8F^jt=6!dVc+cuP@sz zT7H*ps}!3oe`VqMaA$9a<;jWpd0@+@-@t)JAacQ~N_@mawlcd+z+c$Ny?O7I#l*SF zzbuWxAZjEjr~tbG9gKTh7&gf7RC?45wQ<^edIcX{haV_{)h^tQohQt}Ir=@m_a^cI zQkNqcs9Fa#Np|I5UI+zy1k1I;u5`f>d=83Rs(CWHQSkp%M&sgU zTK<+sQGPFdF)0m`FcMVv*{D^tWUC(YKp;|J#{|hnHf`ap+DG@8Py9V(IW%&+H!j0@ zrqo=`T1wsre>0JnEs^jrb5I37=c3F{>$)z7S|#DIM4X5Gnfyd6phzPL^0ODygHEP{ z|AEi~_Os1kOx?^4ddIOzd;5dya~&a(<(MCH64icBhg{ucGM|$+gkdOiA`Il4%U@6A z2v##EPHFgs+obWO=Dqbee^Y!=&Jm0Y)}Tw{NsEn zUs&|ENfigeS4iSwE|&B#TYvxG*6N;%x=W3E&fd4 zaG!BET3T+4sFyD(I)Cy?y=iPgIZMy_y`Fj{v>^~(Ll)WL-~OLttzV9{+ndt3MK*7A ziY6(Clm?toCM})+2!-AMEopQMtT`H3oL#$}@C8{^c2YmRYtZdL;#IrN*{rUI?AVbo zR-lGL;RBb2{V)7(Ro~`)gE{BK^yL3q8Mm~MOAe8$C4T)FSM^&J!%?ZzKGwFFV8G!c zfD~OOlwI8$@i0Ur?c3uE?NQw8Cln2T`kSL15Cg;r?wremqQga;frKVD7p8DR-j-$z zOt~cJFq{q1Iv9~sPFxFVK9OTiV)+(7)i45^SKfv2z)c||v8V(qULoLIvBRwCWAa}N zVf*W0Ot`4f5Kx5O$WXT+rhP3p*I8ott^eZiIP*>RGM%p0{Fbhn@p7}_RrVaTrbJ{^ zgWC&rc~R6P;2&gThGQ|%7JAIks1?{>M}cL+^PJaywHEi#ydFyL{l>Lj|E8a&px3YU zJp)tGFh0Qkk!@irMKB+Ospgt~^G2gRJM{A9tH|k%Rv_blSO*Jt8H{cW%=zGoOA1#p zEi3V-RkhG>pijVaO;-DKQlabvefR|MlcM&S#5wxF>SMx3B|ptw!v4r8F^zx4qgpy( z^EZ7#nF{J)J5;!B_}DJyZ2D+u*&)wSDQ!eXxD%}ImmV%U|0vT+d_#o@zZ@Nqi`ONAMFzFXMG>ElGz z_6W-}Y9kv6gl75ie`k51fR4b1=t#rEn;oofBgSBRxZiwZ@$BakXg!W)=Y~& zfylu!bSr&j66x3tlgy)o42%)6hf%Ycu|vfAOHJwn(OpBJP|6_ailH@?_I*6 zlH47Oi2N+%qj+-myDv>gpu_}#)OxTp91E$ubO;SyT3&H)o=8FXWQ$`$lekS#B{HP= zzR=&u?2OWdk#VQvH5BJ}j_ncpS>A#_>6UP1_FU<5914zXsXT8(k-aQ*_)nl>mOQj( zka*9d4LAKcmSX5HAXJgX-XQ+>Sbp_H7{sx1!i4Wug#e*oi4O+a6#R!jXZZh-;u4YM zq9{Rv#gKZi*6s-v<$Q7s?;BVlxs$+Q3m4^IIz;}j$7t70X+<^Q? z+m7|G6kr6*T*ZtW8S0_&j0;z3gTh&xjcFbznMlN?{DB>>#;6qf|VKQAk^ ze)jt)r|yoA$o8*&^jLG{mbiG?%CycPT;ZXs97Cd;cGJ1Qhr0W&sLGZwRMt5yT-#H$ zD`nrt-`GA1zR7^XWv7|&e@J3pD9ky`hr+Tl&Y6)`v5z?3!*80RYcG-qEHWbSLYh{J z`O}j;+%&)10nq$h^S?B`r4P;q*#=ph9@&$EFqCYOv}D(p!US6STOOF^=t!?7F7ZuO ziuPXKPT*8$yE-s9kMUFwsO6O-63?z}X^4j^5b3{cz2_2|YFeA2 zx*%j~SR?vjBxuhbHBw!KFR>OdI?W@y6BV;N%0peoCBp`X|HHoe@qqtfUt`r-?Sq6=j;@s!8n@ARD=VQoR zvpm)h3A26ZG!3jH++aqE2#~j~i{{0Gj?2l12ms`dn*#n9-_?;&yX(+l1JqDFL#Pd3Y!|a0bzsd9`lBPD)f7P!tB0~t!7Pic zp*MTiyLW>rAIFPyuG0}0DqN3@=zu==4TPte>y)gZ1&H?R;|az>>~C%a0p_)sXPMnu-=wol`Rg{VB@0 zp36vUCQ-(Jmaxb>#Sx$OfBs}-Y<)^M?WjfWd5wYkpB2r*^BNbhD_w)q)Bk(<3-jJr z7K_fhP)kRI{(JSLy&rpnTJ>tH2g-x~S$U+N-jAc?hNTCjJ_;%w4qw*p3Nnlq=XB|w z=2$UB~o4>)bmZ14d=43DSHCI|@XZ|JGsD3;gHSbo_+9nE%h7 zF&wxo+Ba{z#n&|!Fbl=R^qKs&FxvV*d{NmQeE!yPgh#l$)A{-5tt&oTx%;urOYkrR z!m>9XTzEe0d24ol_g+y2;Gh8v)Y$!SGBD7tci8s_Sa3qYqtA`G%)eMH^fQ5>?|<3q z^Pabs^Hb)3{`SuPeNBUUXENLmIf<+X#2NIPkbx4jywfoub9<$RQ=C!E)g87jO^&hgfyQy2X&v0sp*iONI|6 zt&5-Q`q^stLDNiY>(TB8;arFF!4_5b9$ne|4awby9^E|Ly!>@c@x6Bz{-L{owFHu7 zHr6(R%r^PE&w>WZfO!cX{qy Date: Sun, 16 Dec 2018 03:45:15 -0800 Subject: [PATCH 087/237] shit we don't have --- code/modules/holodeck/turfs.dm | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm index 67ae789a1b..a4c89b8874 100644 --- a/code/modules/holodeck/turfs.dm +++ b/code/modules/holodeck/turfs.dm @@ -161,9 +161,6 @@ baseturfs = /turf/open/floor/holofloor/ice slowdown = 1 footstep = FOOTSTEP_FLOOR - barefootstep = FOOTSTEP_HARD_BAREFOOT - clawfootstep = FOOTSTEP_HARD_CLAW - heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/floor/holofloor/ice/smooth icon_state = "smooth" From 9c16527cd4423f20ef1894283e1524137139b7f2 Mon Sep 17 00:00:00 2001 From: Ignari-Coldstorm <43045900+Ignari-Coldstorm@users.noreply.github.com> Date: Sun, 16 Dec 2018 05:56:21 -0600 Subject: [PATCH 088/237] Mining Vendor and PPKA changes! (#7817) * Mining Vendor and PPKA changes! Adjusted the prices on a couple items as well as added in the pocket extinguisher to the vendor. Adjusted the Premium Proto-Kinetic Accelerator to have one less range. * Update machine_vending.dm --- code/modules/mining/machine_vending.dm | 7 +++++-- .../modules/projectiles/guns/energy/kinetic_accelerator.dm | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index ca1fd7f9bb..7010d081a5 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -19,14 +19,16 @@ new /datum/data/mining_equipment("Soap", /obj/item/soap/nanotrasen, 200), new /datum/data/mining_equipment("Laser Pointer", /obj/item/laser_pointer, 300), new /datum/data/mining_equipment("Alien Toy", /obj/item/clothing/mask/facehugger/toy, 300), - new /datum/data/mining_equipment("Stabilizing Serum", /obj/item/hivelordstabilizer, 400), new /datum/data/mining_equipment("Fulton Beacon", /obj/item/fulton_core, 400), new /datum/data/mining_equipment("Shelter Capsule", /obj/item/survivalcapsule, 400), new /datum/data/mining_equipment("GAR Meson Scanners", /obj/item/clothing/glasses/meson/gar, 500), new /datum/data/mining_equipment("Explorer's Webbing", /obj/item/storage/belt/mining, 500), new /datum/data/mining_equipment("Point Transfer Card", /obj/item/card/mining_point_card, 500), + new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/storage/firstaid/brute, 600), new /datum/data/mining_equipment("Survival Medipen", /obj/item/reagent_containers/hypospray/medipen/survival, 500), new /datum/data/mining_equipment("Tracking Implant Kit", /obj/item/storage/box/minertracker, 600), + new /datum/data/mining_equipment("Survival Medipen", /obj/item/reagent_containers/hypospray/medipen/survival, 750), + new /datum/data/mining_equipment("Stabilizing Serum", /obj/item/hivelordstabilizer, 750), new /datum/data/mining_equipment("Jaunter", /obj/item/wormhole_jaunter, 750), new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/twohanded/required/kinetic_crusher, 750), new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/gun/energy/kinetic_accelerator, 750), @@ -35,6 +37,7 @@ new /datum/data/mining_equipment("First-Aid Kit", /obj/item/storage/firstaid/regular, 800), new /datum/data/mining_equipment("Advanced Scanner", /obj/item/t_scanner/adv_mining_scanner, 800), new /datum/data/mining_equipment("Resonator", /obj/item/resonator, 800), + new /datum/data/mining_equipment("Mini Extinguisher", /obj/item/extinguisher/mini, 1000), new /datum/data/mining_equipment("Fulton Pack", /obj/item/extraction_pack, 1000), new /datum/data/mining_equipment("Lazarus Injector", /obj/item/lazarus_injector, 1000), new /datum/data/mining_equipment("Silver Pickaxe", /obj/item/pickaxe/silver, 1000), @@ -315,4 +318,4 @@ new /obj/item/clothing/mask/gas/seva(drop_location) SSblackbox.record_feedback("tally", "suit_voucher_redeemed", 1, selection) - qdel(voucher) \ No newline at end of file + qdel(voucher) diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index ad2949892e..fba355d738 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -50,7 +50,7 @@ damage = 50 damage_type = BRUTE flag = "bomb" - range = 5 + range = 4 log_override = TRUE /obj/item/gun/energy/kinetic_accelerator/premiumka/update_icon() From 8812ef9ddd4bc4dafe719b81acab3c5455c799d8 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 16 Dec 2018 11:05:26 -0800 Subject: [PATCH 089/237] exemption --- code/modules/jobs/job_types/job.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/jobs/job_types/job.dm b/code/modules/jobs/job_types/job.dm index 16e1ccdfb7..0e1daff5e0 100644 --- a/code/modules/jobs/job_types/job.dm +++ b/code/modules/jobs/job_types/job.dm @@ -127,6 +127,8 @@ return 0 if(!CONFIG_GET(flag/use_age_restriction_for_jobs)) return 0 + if(C.prefs.db_flags & DB_FLAG_EXEMPT) + return 0 if(!isnum(C.player_age)) return 0 //This is only a number if the db connection is established, otherwise it is text: "Requires database", meaning these restrictions cannot be enforced if(!isnum(minimal_player_age)) From c6f11fdf777b5e32879ec1a15ac060357381219b Mon Sep 17 00:00:00 2001 From: Poojawa Date: Mon, 17 Dec 2018 08:41:59 -0600 Subject: [PATCH 090/237] Fixes star trek memes --- .../code/modules/clothing/under/trek_under.dm | 20 ++++++++++-------- .../icons/mob/clothing/trek_mob_icon.dmi | Bin 8965 -> 8961 bytes .../icons/obj/clothing/trek_item_icon.dmi | Bin 0 -> 5381 bytes 3 files changed, 11 insertions(+), 9 deletions(-) create mode 100644 modular_citadel/icons/obj/clothing/trek_item_icon.dmi diff --git a/modular_citadel/code/modules/clothing/under/trek_under.dm b/modular_citadel/code/modules/clothing/under/trek_under.dm index 00f84b7583..ddcf0e6344 100644 --- a/modular_citadel/code/modules/clothing/under/trek_under.dm +++ b/modular_citadel/code/modules/clothing/under/trek_under.dm @@ -11,7 +11,7 @@ /obj/item/clothing/under/rank/trek name = "Section 31 Uniform" desc = "Oooh... right." - icon = 'modular_citadel/icons/mob/clothing/trek_item_icon.dmi' + icon = 'modular_citadel/icons/obj/clothing/trek_item_icon.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' item_state = "" can_adjust = FALSE //to prevent you from "wearing it casually" @@ -91,11 +91,12 @@ /obj/item/clothing/suit/storage/trek/ds9 name = "Padded Overcoat" desc = "The overcoat worn by all officers of the 2380s." - icon = 'modular_citadel/icons/mob/clothing/trek_item_icon.dmi' + icon = 'modular_citadel/icons/obj/clothing/trek_item_icon.dmi' icon_state = "trek_ds9_coat" alternate_worn_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' item_state = "trek_ds9_coat" body_parts_covered = CHEST|GROIN|ARMS + mutantrace_variation = NO_MUTANTRACE_VARIATION permeability_coefficient = 0.50 allowed = list( /obj/item/flashlight, /obj/item/analyzer, @@ -136,10 +137,11 @@ name = "Federation Uniform Jacket (Red)" desc = "A uniform jacket from the United Federation. Starfleet still uses this uniform and there are variations of it. Set phasers to awesome." - icon = 'modular_citadel/icons/mob/clothing/trek_item_icon.dmi' + icon = 'modular_citadel/icons/obj/clothing/trek_item_icon.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' icon_state = "fedcoat" item_state = "fedcoat" + mutantrace_variation = NO_MUTANTRACE_VARIATION blood_overlay_type = "coat" body_parts_covered = CHEST|GROIN|ARMS @@ -204,7 +206,7 @@ /obj/item/clothing/suit/storage/fluff/modernfedcoat name = "Modern Federation Uniform Jacket" desc = "A modern uniform jacket from the United Federation. Their Starfleet had recently started using these uniforms. Wearing this makes you feel like a competant commander." - icon = 'modular_citadel/icons/mob/clothing/trek_item_icon.dmi' + icon = 'modular_citadel/icons/obj/clothing/trek_item_icon.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' icon_state = "fedmodern" item_state = "fedmodern" @@ -237,20 +239,20 @@ /obj/item/clothing/head/caphat/formal/fedcover name = "Federation Officer's Cap" desc = "An officer's cap that demands discipline from the one who wears it." - icon = 'modular_citadel/icons/mob/clothing/trek_item_icon.dmi' + icon = 'modular_citadel/icons/obj/clothing/trek_item_icon.dmi' icon_state = "fedcapofficer" alternate_worn_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' - item_state = "fedcapofficer_mob" + item_state = "fedcapofficer" //Variants /obj/item/clothing/head/caphat/formal/fedcover/medsci icon_state = "fedcapsci" - item_state = "fedcapsci_mob" + item_state = "fedcapsci" /obj/item/clothing/head/caphat/formal/fedcover/eng icon_state = "fedcapeng" - item_state = "fedcapeng_mob" + item_state = "fedcapeng" /obj/item/clothing/head/caphat/formal/fedcover/sec icon_state = "fedcapsec" - item_state = "fedcapsec_mob" + item_state = "fedcapsec" diff --git a/modular_citadel/icons/mob/clothing/trek_mob_icon.dmi b/modular_citadel/icons/mob/clothing/trek_mob_icon.dmi index 9323ea9f3c046bac5c946a909a5c0e6b7ef2ceac..45045b05801e5cdbbef702007ba73a1dc2a9c3b2 100644 GIT binary patch delta 308 zcmV-40n7e{MuA4K$O3;HdQ@0+L}hbha%pgMX>V=-0C=3GmBCH}ArOYo@D!xIHl}X9 zc<^G{m>%paY!GIfJsHKB^#;lR&HVE-*Q3EU zt)+N%wv6?%>7*FJ9mn!{$we2a$3;nS>P_@s2fL8Mx|ETXVn~151D>zHi6I;_7@F3D z&BoER0p1F$_yn-5PXx!)CBCyPp`PUk0gfS?Z+Q(6;7ovez9C(B>Rww<-8SYMBfuFL z^~8Y(utuLLmA{nan$<8-8Hd3cNEEe?7E<_4DaKgxIpX(Vz3RHv<_Gra`33&NH^!pi zjilRnYa#z8`&cL6gA(xkc#tHwnVn(<$xZ5N&5f**%{EK5J8Y+)(+6jM`bG38(F?Qj G0~8;n&YjZ$ delta 312 zcmV-80muGV=-0C=3GmAh^OArM7t_zGmVR^+VH zq(~Flid@9Mu);9wMG0U5@#F8!Y`Q4f%&a?*?wPss5X{x<=54!E>-ViZLCP)$^`f30 zmQtLZEq%SL8Yy~khrWDYa?u6qaaIz1v?hA5gPloXUCPKx(ItQF0nd*=#1IY{3{C67 zX5(nu0GGlFJ^(E11HtihidU8;)UzBRz%gX=GcN%GoC;9SH>3+s-D>Np+s2$R0-S3ZhhQS)y6T@)i^^PyUrO%RKiCKDg31reJuGH@qJh>nr5;3h24LC!99E} z?;d<)rsMe7g8nN{wz1BI(%|XsL6V$iau;#Cs7dO2O>J2vN7KyJX15+bs~gEV0LUYo KrYy7V0~8-)y_i1$ diff --git a/modular_citadel/icons/obj/clothing/trek_item_icon.dmi b/modular_citadel/icons/obj/clothing/trek_item_icon.dmi new file mode 100644 index 0000000000000000000000000000000000000000..4ac77773a0160f2c105f1eaee059a79f65d5b453 GIT binary patch literal 5381 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 p8a0zw Date: Mon, 17 Dec 2018 20:28:04 -0600 Subject: [PATCH 091/237] Fixes duplicate medipen. Fixes a duplicate medipen showing up in vendor list. --- code/modules/mining/machine_vending.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 7010d081a5..1e77a907c6 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -25,7 +25,6 @@ new /datum/data/mining_equipment("Explorer's Webbing", /obj/item/storage/belt/mining, 500), new /datum/data/mining_equipment("Point Transfer Card", /obj/item/card/mining_point_card, 500), new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/storage/firstaid/brute, 600), - new /datum/data/mining_equipment("Survival Medipen", /obj/item/reagent_containers/hypospray/medipen/survival, 500), new /datum/data/mining_equipment("Tracking Implant Kit", /obj/item/storage/box/minertracker, 600), new /datum/data/mining_equipment("Survival Medipen", /obj/item/reagent_containers/hypospray/medipen/survival, 750), new /datum/data/mining_equipment("Stabilizing Serum", /obj/item/hivelordstabilizer, 750), @@ -34,7 +33,7 @@ new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/gun/energy/kinetic_accelerator, 750), new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/storage/firstaid/brute, 800), new /datum/data/mining_equipment("Burn First-Aid Kit", /obj/item/storage/firstaid/fire, 800), - new /datum/data/mining_equipment("First-Aid Kit", /obj/item/storage/firstaid/regular, 800), + new /datum/data/mining_equipment("First-Aid Kit", /obj/item/storage/firstaid/regular, 800), new /datum/data/mining_equipment("Advanced Scanner", /obj/item/t_scanner/adv_mining_scanner, 800), new /datum/data/mining_equipment("Resonator", /obj/item/resonator, 800), new /datum/data/mining_equipment("Mini Extinguisher", /obj/item/extinguisher/mini, 1000), From b079a5e8df19357adfb4af771b3434202dcdc645 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 18 Dec 2018 18:06:04 -0800 Subject: [PATCH 092/237] Update toolbox.dm --- code/game/objects/items/storage/toolbox.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index c28f7e2aaa..0a02cc0d4c 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -89,9 +89,9 @@ if(proximity) if(isobj(A)) var/obj/machinery/door/O = A - if(istype(O) && (O.damage_deflection >= 18)) //Eh fine. //This is a meme cast do not do what I did! + if(istype(O) && (O.damage_deflection >= 10)) //Eh fine. //This is a meme cast do not do what I did! return - O.take_damage(20) + O.take_damage(13) /obj/item/storage/toolbox/mechanical/old/heirloom/PopulateContents() return From a47426ef48b5b02984e34cfa64d772539aa67544 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Wed, 19 Dec 2018 00:25:40 -0500 Subject: [PATCH 093/237] Makes pinapple pizza eatable (#7821) >Not just removing it --- code/modules/food_and_drinks/food/snacks_pizza.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/food_and_drinks/food/snacks_pizza.dm b/code/modules/food_and_drinks/food/snacks_pizza.dm index a6b026ac30..5bf5abacb0 100644 --- a/code/modules/food_and_drinks/food/snacks_pizza.dm +++ b/code/modules/food_and_drinks/food/snacks_pizza.dm @@ -149,16 +149,16 @@ icon_state = "pineapplepizza" slice_path = /obj/item/reagent_containers/food/snacks/pizzaslice/pineapple bonus_reagents = list("nutriment" = 6, "vitamin" = 6) - tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pineapple" = 2, "ham" = 2) - foodtype = GRAIN | VEGETABLES | DAIRY | MEAT | FRUIT | PINEAPPLE + tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pineapple" = 6, "ham" = 2) + foodtype = PINEAPPLE //Over powering tast of gods fruit /obj/item/reagent_containers/food/snacks/pizzaslice/pineapple name = "\improper Hawaiian pizza slice" desc = "A slice of delicious controversy." icon_state = "pineapplepizzaslice" filling_color = "#FF4500" - tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pineapple" = 2, "ham" = 2) - foodtype = GRAIN | VEGETABLES | DAIRY | MEAT | FRUIT | PINEAPPLE + tastes = list("crust" = 1, "tomato" = 1, "cheese" = 1, "pineapple" = 6, "ham" = 2) + foodtype = PINEAPPLE //Over powering tast of gods fruit /obj/item/reagent_containers/food/snacks/pizza/arnold name = "\improper Arnold pizza" From 5f0462b604f307c29f6cc832a4bed039bead1aae Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 20 Dec 2018 01:00:36 -0800 Subject: [PATCH 094/237] Update river.dm --- code/game/turfs/simulated/river.dm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/code/game/turfs/simulated/river.dm b/code/game/turfs/simulated/river.dm index e451fe4892..83fade33b2 100644 --- a/code/game/turfs/simulated/river.dm +++ b/code/game/turfs/simulated/river.dm @@ -4,11 +4,14 @@ #define RANDOM_LOWER_X 50 #define RANDOM_LOWER_Y 50 +#define RIVERGEN_SAFETY_LOCK 1000000 + /proc/spawn_rivers(target_z, nodes = 4, turf_type = /turf/open/lava/smooth/lava_land_surface, whitelist_area = /area/lavaland/surface/outdoors/unexplored, min_x = RANDOM_LOWER_X, min_y = RANDOM_LOWER_Y, max_x = RANDOM_UPPER_X, max_y = RANDOM_UPPER_Y) var/list/river_nodes = list() var/num_spawned = 0 var/list/possible_locs = block(locate(min_x, min_y, target_z), locate(max_x, max_y, target_z)) - while(num_spawned < nodes && possible_locs.len) + var/safety = 0 + while(num_spawned < nodes && possible_locs.len && (safety++ < RIVERGEN_SAFETY_LOCK)) var/turf/T = pick(possible_locs) var/area/A = get_area(T) if(!istype(A, whitelist_area) || (T.flags_1 & NO_LAVA_GEN_1)) @@ -16,7 +19,8 @@ else river_nodes += new /obj/effect/landmark/river_waypoint(T) num_spawned++ - + + safety = 0 //make some randomly pathing rivers for(var/A in river_nodes) var/obj/effect/landmark/river_waypoint/W = A @@ -30,7 +34,7 @@ break var/detouring = 0 var/cur_dir = get_dir(cur_turf, target_turf) - while(cur_turf != target_turf) + while(cur_turf != target_turf && (safety++ < RIVERGEN_SAFETY_LOCK)) if(detouring) //randomly snake around a bit if(prob(20)) From f50b839c252c65c740991086bb8671acff16784b Mon Sep 17 00:00:00 2001 From: BlackMajor Date: Thu, 20 Dec 2018 22:04:51 +1300 Subject: [PATCH 095/237] Wizard objectives are shit and nobody follows them anyway. (#7835) * Update wizard.dm * Update wizard.dm * Update wizard.dm --- code/modules/antagonists/wizard/wizard.dm | 49 +++-------------------- 1 file changed, 6 insertions(+), 43 deletions(-) diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index 6fac9730f3..e6cae518b6 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -60,50 +60,13 @@ owner.current.forceMove(pick(GLOB.wizardstart)) /datum/antagonist/wizard/proc/create_objectives() - switch(rand(1,100)) - if(1 to 30) - var/datum/objective/assassinate/kill_objective = new - kill_objective.owner = owner - kill_objective.find_target() - objectives += kill_objective + var/datum/objective/new_objective = new("Cause as much creative mayhem as you can aboard the station! The more outlandish your methods of achieving this, the better! Make sure there's a decent amount of crew alive to tell of your tale.") + new_objective.owner = owner + objectives += new_objective - if (!(locate(/datum/objective/escape) in owner.objectives)) - var/datum/objective/escape/escape_objective = new - escape_objective.owner = owner - objectives += escape_objective - - if(31 to 60) - var/datum/objective/steal/steal_objective = new - steal_objective.owner = owner - steal_objective.find_target() - objectives += steal_objective - - if (!(locate(/datum/objective/escape) in owner.objectives)) - var/datum/objective/escape/escape_objective = new - escape_objective.owner = owner - objectives += escape_objective - - if(61 to 85) - var/datum/objective/assassinate/kill_objective = new - kill_objective.owner = owner - kill_objective.find_target() - objectives += kill_objective - - var/datum/objective/steal/steal_objective = new - steal_objective.owner = owner - steal_objective.find_target() - objectives += steal_objective - - if (!(locate(/datum/objective/survive) in owner.objectives)) - var/datum/objective/survive/survive_objective = new - survive_objective.owner = owner - objectives += survive_objective - - else - if (!(locate(/datum/objective/hijack) in owner.objectives)) - var/datum/objective/hijack/hijack_objective = new - hijack_objective.owner = owner - objectives += hijack_objective + var/datum/objective/escape/escape_objective = new + escape_objective.owner = owner + objectives += escape_objective for(var/datum/objective/O in objectives) owner.objectives += O From 4a63be40e56dc344309a04e1ada08aaed1c2607a Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 21 Dec 2018 18:53:49 -0800 Subject: [PATCH 096/237] Update who.dm --- .../code/modules/client/verbs/who.dm | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/modular_citadel/code/modules/client/verbs/who.dm b/modular_citadel/code/modules/client/verbs/who.dm index 091dd7bf79..8000e80f84 100644 --- a/modular_citadel/code/modules/client/verbs/who.dm +++ b/modular_citadel/code/modules/client/verbs/who.dm @@ -28,28 +28,37 @@ var/msg = "" var/list/Lines = list() + var/list/assembled = list() + var/admin_mode = check_rights_for(src, R_ADMIN) && isobserver(mob) + if(admin_mode) + log_admin("[key_name(usr)] checked advanced who in-round") if(length(GLOB.admins)) Lines += "Admins:" for(var/X in GLOB.admins) var/client/C = X if(C && C.holder && !C.holder.fakekey) - Lines += "\t [C.key][show_admin_info(C)] ([round(C.avgping, 1)]ms)" + assembled += "\t [C.key][admin_mode? "[show_admin_info(C)]":""] ([round(C.avgping, 1)]ms)" + Lines += sortList(assembled) + assembled.len = 0 if(length(GLOB.mentors)) - Lines += "Mentors:" + Lines += "Mentors:"https://github.com/Citadel-Station-13/Citadel-Station-13 for(var/X in GLOB.mentors) var/client/C = X - if(C) - Lines += "\t [C.key][show_admin_info(C)] ([round(C.avgping, 1)]ms)" - + if(C && (!C.holder || (C.holder && !C.holder.fakekey))) //>using stuff this complex instead of just using if/else lmao + assembled += "\t [C.key][admin_mode? "[show_admin_info(C)]":""] ([round(C.avgping, 1)]ms)" + Lines += sortList(assembled) + assembled.len = 0 Lines += "Players:" for(var/X in sortList(GLOB.clients)) var/client/C = X - if(!C) continue + if(!C) + continue var/key = C.key if(C.holder && C.holder.fakekey) key = C.holder.fakekey - Lines += "\t [key][show_admin_info(C)] ([round(C.avgping, 1)]ms)" - + assembled += "\t [key][admin_mode? "[show_admin_info(C)]":""] ([round(C.avgping, 1)]ms)" + Lines += sortList(assembled) + for(var/line in Lines) msg += "[line]\n" @@ -60,9 +69,6 @@ if(!C) return "" - if(!check_rights_for(src, R_ADMIN)) - return "" - var/entry = "" if(C.holder && C.holder.fakekey) entry += " (as [C.holder.fakekey])" From 721dd82c948c22ddcc670559aa6779305605fd84 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 21 Dec 2018 19:08:53 -0800 Subject: [PATCH 097/237] Update who.dm --- modular_citadel/code/modules/client/verbs/who.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_citadel/code/modules/client/verbs/who.dm b/modular_citadel/code/modules/client/verbs/who.dm index 8000e80f84..7640595e18 100644 --- a/modular_citadel/code/modules/client/verbs/who.dm +++ b/modular_citadel/code/modules/client/verbs/who.dm @@ -41,7 +41,7 @@ Lines += sortList(assembled) assembled.len = 0 if(length(GLOB.mentors)) - Lines += "Mentors:"https://github.com/Citadel-Station-13/Citadel-Station-13 + Lines += "Mentors:" for(var/X in GLOB.mentors) var/client/C = X if(C && (!C.holder || (C.holder && !C.holder.fakekey))) //>using stuff this complex instead of just using if/else lmao From 451dd8948add028823d3cb2e9adfb881536edb31 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 22 Dec 2018 11:22:48 -0500 Subject: [PATCH 098/237] Update bio.dm --- code/modules/clothing/suits/bio.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index cbc8f33e3a..d4a382ef3f 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -5,7 +5,7 @@ desc = "A hood that protects the head and face from biological contaminants." permeability_coefficient = 0.01 clothing_flags = THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT - armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 80, "fire" = 30, "acid" = 100) + armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 45, "fire" = 30, "acid" = 100) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE resistance_flags = ACID_PROOF flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH @@ -22,7 +22,7 @@ body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS slowdown = 1 allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/pen, /obj/item/flashlight/pen, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray) - armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 80, "fire" = 30, "acid" = 100) + armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 45, "fire" = 30, "acid" = 100) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAUR strip_delay = 70 equip_delay_other = 70 From 687bbb13976aaab02dca7720e99b63742ee09987 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 22 Dec 2018 11:36:20 -0500 Subject: [PATCH 099/237] makes them = --- code/modules/clothing/suits/bio.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index d4a382ef3f..6d9a02e05a 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -5,7 +5,7 @@ desc = "A hood that protects the head and face from biological contaminants." permeability_coefficient = 0.01 clothing_flags = THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT - armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 45, "fire" = 30, "acid" = 100) + armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 60, "fire" = 30, "acid" = 100) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE resistance_flags = ACID_PROOF flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH @@ -22,7 +22,7 @@ body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS slowdown = 1 allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/pen, /obj/item/flashlight/pen, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray) - armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 45, "fire" = 30, "acid" = 100) + armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 60, "fire" = 30, "acid" = 100) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAUR strip_delay = 70 equip_delay_other = 70 From 2de19690e28294aa26a3bed379ddbb14a488535a Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 23 Dec 2018 11:53:10 -0800 Subject: [PATCH 100/237] SDQL2 upgrades! --- code/__DEFINES/_tick.dm | 5 +- code/__DEFINES/flags.dm | 5 + code/__HELPERS/time.dm | 115 +- code/modules/admin/verbs/SDQL2/SDQL_2.dm | 1217 ++++++++++++----- .../admin/verbs/SDQL2/SDQL_2_parser.dm | 403 ++++-- .../admin/verbs/SDQL2/SDQL_2_wrappers.dm | 7 +- code/modules/mob/mob.dm | 7 +- 7 files changed, 1251 insertions(+), 508 deletions(-) diff --git a/code/__DEFINES/_tick.dm b/code/__DEFINES/_tick.dm index 20eb648fe6..10b815e547 100644 --- a/code/__DEFINES/_tick.dm +++ b/code/__DEFINES/_tick.dm @@ -7,4 +7,7 @@ #define TICK_USAGE_REAL world.tick_usage //to be used where the result isn't checked #define TICK_CHECK ( TICK_USAGE > Master.current_ticklimit ) -#define CHECK_TICK if TICK_CHECK stoplag() +#define CHECK_TICK ( TICK_CHECK ? stoplag() : 0 ) + +#define TICK_CHECK_HIGH_PRIORITY ( TICK_USAGE > 95 ) +#define CHECK_TICK_HIGH_PRIORITY ( TICK_CHECK_HIGH_PRIORITY? stoplag() : 0 ) diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index 1b64ce7e6c..ad9aef5a8b 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -4,6 +4,11 @@ #define ALL (~0) //For convenience. #define NONE 0 +//for convenience +#define ENABLE_BITFIELD(variable, flag) (variable |= (flag)) +#define DISABLE_BITFIELD(variable, flag) (variable &= ~(flag)) +#define CHECK_BITFIELD(variable, flag) (variable & flag) + GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768)) // for /datum/var/datum_flags diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm index 3ffb583332..aaf7ced922 100644 --- a/code/__HELPERS/time.dm +++ b/code/__HELPERS/time.dm @@ -63,96 +63,29 @@ GLOBAL_VAR_INIT(rollovercheck_last_timeofday, 0) //Takes a value of time in deciseconds. //Returns a text value of that number in hours, minutes, or seconds. -/proc/DisplayTimeText(time_value, truncate = FALSE) - var/second = (time_value)*0.1 - var/second_adjusted = null - var/second_rounded = FALSE - var/minute = null - var/hour = null - var/day = null - +/proc/DisplayTimeText(time_value, round_seconds_to = 0.1) + var/second = round(time_value * 0.1, round_seconds_to) if(!second) - return "0 seconds" - if(second >= 60) - minute = FLOOR(second/60, 1) - second = round(second - (minute*60), 0.1) - second_rounded = TRUE - if(second) //check if we still have seconds remaining to format, or if everything went into minute. - second_adjusted = round(second) //used to prevent '1 seconds' being shown - if(day || hour || minute) - if(second_adjusted == 1 && second >= 1) - second = " and 1 second" - else if(second > 1) - second = " and [second_adjusted] seconds" - else //shows a fraction if seconds is < 1 - if(second_rounded) //no sense rounding again if it's already done - second = " and [second] seconds" - else - second = " and [round(second, 0.1)] seconds" - else - if(second_adjusted == 1 && second >= 1) - second = "[truncate ? "second" : "1 second"]" - else if(second > 1) - second = "[second_adjusted] seconds" - else - if(second_rounded) - second = "[second] seconds" - else - second = "[round(second, 0.1)] seconds" - else - second = null - - if(!minute) - return "[second]" - if(minute >= 60) - hour = FLOOR(minute/60, 1) - minute = (minute - (hour*60)) - if(minute) //alot simpler from here since you don't have to worry about fractions - if(minute != 1) - if((day || hour) && second) - minute = ", [minute] minutes" - else if((day || hour) && !second) - minute = " and [minute] minutes" - else - minute = "[minute] minutes" - else - if((day || hour) && second) - minute = ", 1 minute" - else if((day || hour) && !second) - minute = " and 1 minute" - else - minute = "[truncate ? "minute" : "1 minute"]" - else - minute = null - - if(!hour) - return "[minute][second]" - if(hour >= 24) - day = FLOOR(hour/24, 1) - hour = (hour - (day*24)) + return "right now" + if(second < 60) + return "[second] second[(second != 1)? "s":""]" + var/minute = FLOOR(second / 60, 1) + second = MODULUS(second, 60) + var/secondT + if(second) + secondT = " and [second] second[(second != 1)? "s":""]" + if(minute < 60) + return "[minute] minute[(minute != 1)? "s":""][secondT]" + var/hour = FLOOR(minute / 60, 1) + minute = MODULUS(minute, 60) + var/minuteT + if(minute) + minuteT = " and [minute] minute[(minute != 1)? "s":""]" + if(hour < 24) + return "[hour] hour[(hour != 1)? "s":""][minuteT][secondT]" + var/day = FLOOR(hour / 24, 1) + hour = MODULUS(hour, 24) + var/hourT if(hour) - if(hour != 1) - if(day && (minute || second)) - hour = ", [hour] hours" - else if(day && (!minute || !second)) - hour = " and [hour] hours" - else - hour = "[hour] hours" - else - if(day && (minute || second)) - hour = ", 1 hour" - else if(day && (!minute || !second)) - hour = " and 1 hour" - else - hour = "[truncate ? "hour" : "1 hour"]" - else - hour = null - - if(!day) - return "[hour][minute][second]" - if(day > 1) - day = "[day] days" - else - day = "[truncate ? "day" : "1 day"]" - - return "[day][hour][minute][second]" + hourT = " and [hour] hour[(hour != 1)? "s":""]" + return "[day] day[(day != 1)? "s":""][hourT][minuteT][secondT]" diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index 603e4daf2d..06a1362b38 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -1,23 +1,195 @@ -// Code taken from /bay/station. -// Modified to allow consequtive querys in one invocation, terminated with ";" +#define SDQL_qdel_datum(d) qdel(d) + +//SDQL2 datumized, /tg/station special! -// Examples /* - -- Will call the proc for all computers in the world, thats dir is 2. - CALL ex_act(EXPLODE_DEVASTATE) ON /obj/machinery/computer IN world WHERE dir == 2 - -- Will open a window with a list of all the closets in the world, with a link to VV them. - SELECT /obj/structure/closet/secure_closet/security/cargo IN world WHERE icon_off == "secoff" - -- Will change all the tube lights to green - UPDATE /obj/machinery/light IN world SET color = "#0F0" WHERE icon_state == "tube1" - -- Will delete all pickaxes. "IN world" is not required. - DELETE /obj/item/pickaxe - -- Will flicker the lights once, then turn all mobs green. The semicolon is important to separate the consecutive querys, but is not required for standard one-query use - CALL flicker(1) ON /obj/machinery/light; UPDATE /mob SET color = "#00cc00" + Welcome admins, badmins and coders alike, to Structured Datum Query Language. + SDQL allows you to powerfully run code on batches of objects (or single objects, it's still unmatched + even there.) + When I say "powerfully" I mean it you're in for a ride. - --You can use operators other than ==, such as >, <=, != and etc.. + Ok so say you want to get a list of every mob. How does one do this? + "SELECT /mob" + This will open a list of every object in world that is a /mob. + And you can VV them if you need. + + What if you want to get every mob on a *specific z-level*? + "SELECT /mob WHERE z == 4" + + What if you want to select every mob on even numbered z-levels? + "SELECT /mob WHERE z % 2 == 0" + + Can you see where this is going? You can select objects with an arbitrary expression. + These expressions can also do variable access and proc calls (yes, both on-object and globals!) + Keep reading! + + Ok. What if you want to get every machine in the SSmachine process list? Looping through world is kinda + slow. + + "SELECT * IN SSmachines.machinery" + + Here "*" as type functions as a wildcard. + We know everything in the global SSmachines.machinery list is a machine. + + You can specify "IN " to return a list to operate on. + This can be any list that you can wizard together from global variables and global proc calls. + Every variable/proc name in the "IN" block is global. + It can also be a single object, in which case the object is wrapped in a list for you. + So yeah SDQL is unironically better than VV for complex single-object operations. + + You can of course combine these. + "SELECT * IN SSmachines.machinery WHERE z == 4" + "SELECT * IN SSmachines.machinery WHERE stat & 2" // (2 is NOPOWER, can't use defines from SDQL. Sorry!) + "SELECT * IN SSmachines.machinery WHERE stat & 2 && z == 4" + + The possibilities are endless (just don't crash the server, ok?). + + Oh it gets better. + + You can use "MAP " to run some code per object and use the result. For example: + + "SELECT /obj/machinery/power/smes MAP [charge / capacity * 100, RCon_tag, src]" + + This will give you a list of all the APCs, their charge AND RCon tag. Useful eh? + + [] being a list here. Yeah you can write out lists directly without > lol lists in VV. Color matrix + shenanigans inbound. + + After the "MAP" segment is executed, the rest of the query executes as if it's THAT object you just made + (here the list). + Yeah, by the way, you can chain these MAP / WHERE things FOREVER! + + "SELECT /mob WHERE client MAP client WHERE holder MAP holder" + + What if some dumbass admin spawned a bajillion spiders and you need to kill them all? + Oh yeah you'd rather not delete all the spiders in maintenace. Only that one room the spiders were + spawned in. + + "DELETE /mob/living/carbon/superior_animal/giant_spider WHERE loc.loc == marked" + + Here I used VV to mark the area they were in, and since loc.loc = area, voila. + Only the spiders in a specific area are gone. + + Or you know if you want to catch spiders that crawled into lockers too (how even?) + + "DELETE /mob/living/carbon/superior_animal/giant_spider WHERE global.get_area(src) == marked" + + What else can you do? + + Well suppose you'd rather gib those spiders instead of simply flat deleting them... + + "CALL gib() ON /mob/living/carbon/superior_animal/giant_spider WHERE global.get_area(src) == marked" + + Or you can have some fun.. + + "CALL forceMove(marked) ON /mob/living/carbon/superior_animal" + + You can also run multiple queries sequentially: + + "CALL forceMove(marked) ON /mob/living/carbon/superior_animal; CALL gib() ON + /mob/living/carbon/superior_animal" + + And finally, you can directly modify variables on objects. + + "UPDATE /mob WHERE client SET client.color = [0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0]" + + Don't crash the server, OK? + + A quick recommendation: before you run something like a DELETE or another query.. Run it through SELECT + first. + You'd rather not gib every player on accident. + Or crash the server. + + By the way, queries are slow and take a while. Be patient. + They don't hang the entire server though. + + With great power comes great responsability. + + Here's a slightly more formal quick reference. + + The 4 queries you can do are: + + "SELECT " + "CALL ON " + "UPDATE SET var=,var2=" + "DELETE " + + "" in this context is " [IN ] [chain of MAP/WHERE modifiers]" + + "IN" (or "FROM", that works too but it's kinda weird to read), + is the list of objects to work on. This defaults to world if not provided. + But doing something like "IN living_mob_list" is quite handy and can optimize your query. + All names inside the IN block are global scope, so you can do living_mob_list (a global var) easily. + You can also run it on a single object. Because SDQL is that convenient even for single operations. + + filters out objects of, well, that type easily. "*" is a wildcard and just takes everything in + the source list. + + And then there's the MAP/WHERE chain. + These operate on each individual object being ran through the query. + They're both expressions like IN, but unlike it the expression is scoped *on the object*. + So if you do "WHERE z == 4", this does "src.z", effectively. + If you want to access global variables, you can do `global.living_mob_list`. + Same goes for procs. + + MAP "changes" the object into the result of the expression. + WHERE "drops" the object if the expression is falsey (0, null or "") + + What can you do inside expressions? + + * Proc calls + * Variable reads + * Literals (numbers, strings, type paths, etc...) + * \ref referencing: {0x30000cc} grabs the object with \ref [0x30000cc] + * Lists: [a, b, c] or [a: b, c: d] + * Math and stuff. + * A few special variables: src (the object currently scoped on), usr (your mob), + marked (your marked datum), global(global scope) + + TG ADDITIONS START: + Add USING keyword to the front of the query to use options system + The defaults aren't necessarily implemented, as there is no need to. + Available options: (D) means default + PROCCALL = (D)ASYNC, BLOCKING + SELECT = FORCE_NULLS, (D)SKIP_NULLS + PRIORITY = HIGH, (D) NORMAL + AUTOGC = (D) AUTOGC, KEEP_ALIVE + + Example: USING PROCCALL = BLOCKING, SELECT = FORCE_NULLS, PRIORITY = HIGH SELECT /mob FROM world WHERE z == 1 */ + +#define SDQL2_STATE_ERROR 0 +#define SDQL2_STATE_IDLE 1 +#define SDQL2_STATE_PRESEARCH 2 +#define SDQL2_STATE_SEARCHING 3 +#define SDQL2_STATE_EXECUTING 4 +#define SDQL2_STATE_SWITCHING 5 +#define SDQL2_STATE_HALTING 6 + +#define SDQL2_VALID_OPTION_TYPES list("proccall", "select", "priority", "autogc") +#define SDQL2_VALID_OPTION_VALUES list("async", "blocking", "force_nulls", "skip_nulls", "high", "normal", "keep_alive") + +#define SDQL2_OPTION_SELECT_OUTPUT_SKIP_NULLS (1<<0) +#define SDQL2_OPTION_BLOCKING_CALLS (1<<1) +#define SDQL2_OPTION_HIGH_PRIORITY (1<<2) //High priority SDQL query, allow using almost all of the tick. +#define SDQL2_OPTION_DO_NOT_AUTOGC (1<<3) + +#define SDQL2_OPTIONS_DEFAULT (SDQL2_OPTION_SELECT_OUTPUT_SKIP_NULLS) + +#define SDQL2_IS_RUNNING (state == SDQL2_STATE_EXECUTING || state == SDQL2_STATE_SEARCHING || state == SDQL2_STATE_SWITCHING || state == SDQL2_STATE_PRESEARCH) +#define SDQL2_HALT_CHECK if(!SDQL2_IS_RUNNING) {state = SDQL2_STATE_HALTING; return FALSE;}; + +#define SDQL2_TICK_CHECK ((options & SDQL2_OPTION_HIGH_PRIORITY)? CHECK_TICK_HIGH_PRIORITY : CHECK_TICK) + +#define SDQL2_STAGE_SWITCH_CHECK if(state != SDQL2_STATE_SWITCHING){\ + if(state == SDQL2_STATE_HALTING){\ + state = SDQL2_STATE_IDLE;\ + return FALSE}\ + state = SDQL2_STATE_ERROR;\ + CRASH("SDQL2 fatal error");}; + /client/proc/SDQL2_query(query_text as message) set category = "Debug" if(!check_rights(R_DEBUG)) //Shouldn't happen... but just to be safe. @@ -25,139 +197,685 @@ log_admin("Non-admin [key_name(usr)] attempted to execute a SDQL query!") return FALSE var/list/results = world.SDQL2_query(query_text, key_name_admin(usr), "[key_name(usr)]") - for(var/I in 1 to 3) - to_chat(usr, results[I]) + if(length(results) == 3) + for(var/I in 1 to 3) + to_chat(usr, results[I]) SSblackbox.record_feedback("nested tally", "SDQL query", 1, list(ckey, query_text)) /world/proc/SDQL2_query(query_text, log_entry1, log_entry2) - var/query_log = "executed SDQL query: \"[query_text]\"." + var/query_log = "executed SDQL query(s): \"[query_text]\"." message_admins("[log_entry1] [query_log]") query_log = "[log_entry2] [query_log]" log_game(query_log) NOTICE(query_log) + + var/start_time_total = REALTIMEOFDAY + + if(!length(query_text)) + return + var/list/query_list = SDQL2_tokenize(query_text) + if(!length(query_list)) + return + var/list/querys = SDQL_parse(query_list) + if(!length(querys)) + return + var/list/datum/SDQL2_query/running = list() + for(var/list/query_tree in querys) + var/datum/SDQL2_query/query = new /datum/SDQL2_query(query_tree) + if(QDELETED(query)) + continue + running += query + var/msg = "Starting query #[query.id] - [query.get_query_text()]." + if(usr) + to_chat(usr, "[msg]") + log_admin(msg) + query.ARun() + var/finished = FALSE var/objs_all = 0 var/objs_eligible = 0 - var/start_time = REALTIMEOFDAY - - if(!query_text || length(query_text) < 1) - return - - - var/list/query_list = SDQL2_tokenize(query_text) - - if(!query_list || query_list.len < 1) - return - - var/list/querys = SDQL_parse(query_list) - - - if(!querys || querys.len < 1) - return - - var/list/refs = list() - var/where_used = FALSE - for(var/list/query_tree in querys) - var/list/from_objs = list() - var/list/select_types = list() - - switch(query_tree[1]) - if("explain") - SDQL_testout(query_tree["explain"]) - return - - if("call") - if("on" in query_tree) - select_types = query_tree["on"] + var/selectors_used = FALSE + var/list/combined_refs = list() + do + CHECK_TICK + finished = TRUE + for(var/i in running) + var/datum/SDQL2_query/query = i + if(QDELETED(query)) + running -= query + continue + else if(query.state != SDQL2_STATE_IDLE) + finished = FALSE + else if(query.state == SDQL2_STATE_ERROR) + if(usr) + to_chat(usr, "SDQL query [query.get_query_text()] errored. It will NOT be automatically garbage collected. Please remove manually.") + running -= query + else + if(query.finished) + if(length(query.select_text)) + var/text = islist(query.select_text)? query.select_text.Join() : query.select_text + var/static/result_offset = 0 + usr << browse(text, "window=SDQL-result-[result_offset++]") + objs_all += islist(query.obj_count_all)? length(query.obj_count_all) : query.obj_count_all + objs_eligible += islist(query.obj_count_eligible)? length(query.obj_count_eligible) : query.obj_count_eligible + selectors_used |= query.where_switched + combined_refs |= query.select_refs + if(usr) + to_chat(usr, "SDQL query results: [query.get_query_text()]
\ + SDQL query completed: [islist(query.obj_count_all)? length(query.obj_count_all) : query.obj_count_all] objects selected by path, and \ + [query.where_switched? "[islist(query.obj_count_eligible)? length(query.obj_count_eligible) : query.obj_count_eligible] objects executed on after WHERE keyword selection." : ""]
\ + SDQL query took [DisplayTimeText(query.end_time - query.start_time)] to complete.
") + running -= query + if(!CHECK_BITFIELD(query.options, SDQL2_OPTION_DO_NOT_AUTOGC)) + QDEL_IN(query, 50) else - return + if(usr) + to_chat(usr, "SDQL query [query.get_query_text()] was halted. It will NOT be automatically garbage collected. Please remove manually.") + running -= query + while(!finished) - if("select", "delete", "update") - select_types = query_tree[query_tree[1]] + var/end_time_total = REALTIMEOFDAY - start_time_total + return list("SDQL query combined results: [query_text]",\ + "SDQL query completed: [objs_all] objects selected by path, and [selectors_used ? objs_eligible : objs_all] objects executed on after WHERE filtering/MAPping if applicable.",\ + "SDQL combined querys took [DisplayTimeText(end_time_total)] to complete.") + combined_refs - from_objs = world.SDQL_from_objs(query_tree["from"]) +GLOBAL_LIST_INIT(sdql2_queries, GLOB.sdql2_queries || list()) +GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null, "VIEW VARIABLES (all)", null)) - var/list/objs = list() +/datum/SDQL2_query + var/list/query_tree + var/state = SDQL2_STATE_IDLE + var/options = SDQL2_OPTIONS_DEFAULT + var/superuser = FALSE //Run things like proccalls without using admin protections + var/allow_admin_interact = TRUE //Allow admins to do things to this excluding varedit these two vars + var/static/id_assign = 1 + var/id = 0 - for(var/type in select_types) - objs += SDQL_get_all(type, from_objs) - CHECK_TICK - objs_all = objs.len + var/qdel_on_finish = FALSE - if("where" in query_tree) - where_used = TRUE - var/objs_temp = objs - objs = list() - for(var/datum/d in objs_temp) - if(SDQL_expression(d, query_tree["where"])) - objs += d - objs_eligible++ - CHECK_TICK + //Last run + //General + var/finished = FALSE + var/start_time + var/end_time + var/where_switched = FALSE + //Select query only + var/list/select_refs + var/list/select_text + //Runtime tracked + //These three are weird. For best performance, they are only a number when they're not being changed by the SDQL searching/execution code. They only become numbers when they finish changing. + var/list/obj_count_all + var/list/obj_count_eligible + var/list/obj_count_finished - switch(query_tree[1]) - if("call") - for(var/datum/d in objs) - world.SDQL_var(d, query_tree["call"][1], source = d) - CHECK_TICK + //Statclick + var/obj/effect/statclick/SDQL2_delete/delete_click + var/obj/effect/statclick/SDQL2_action/action_click - if("delete") - for(var/datum/d in objs) - SDQL_qdel_datum(d) - CHECK_TICK +/datum/SDQL2_query/New(list/tree, SU = FALSE, admin_interact = TRUE, _options = SDQL2_OPTIONS_DEFAULT, finished_qdel = FALSE) + if(IsAdminAdvancedProcCall() || !LAZYLEN(tree)) + qdel(src) + return + LAZYADD(GLOB.sdql2_queries, src) + superuser = SU + allow_admin_interact = admin_interact + query_tree = tree + options = _options + id = id_assign++ + qdel_on_finish = finished_qdel - if("select") - var/text = "" - for(var/datum/t in objs) - text += SDQL_gen_vv_href(t) - refs[REF(t)] = TRUE - CHECK_TICK - usr << browse(text, "window=SDQL-result") +/datum/SDQL2_query/Destroy() + state = SDQL2_STATE_HALTING + query_tree = null + obj_count_all = null + obj_count_eligible = null + obj_count_finished = null + select_text = null + select_refs = null + GLOB.sdql2_queries -= src + return ..() - if("update") - if("set" in query_tree) - var/list/set_list = query_tree["set"] - for(var/datum/d in objs) - SDQL_internal_vv(d, set_list) - CHECK_TICK +/datum/SDQL2_query/proc/get_query_text() + var/list/out = list() + recursive_list_print(out, query_tree) + return out.Join() - var/end_time = REALTIMEOFDAY - end_time -= start_time - return list("SDQL query results: [query_text]",\ - "SDQL query completed: [objs_all] objects selected by path, and [where_used ? objs_eligible : objs_all] objects executed on after WHERE filtering if applicable.",\ - "SDQL query took [DisplayTimeText(end_time)] to complete.") + refs +/proc/recursive_list_print(list/output = list(), list/input, datum/callback/datum_handler, datum/callback/atom_handler) + output += "\[ " + for(var/i in 1 to input.len) + var/final = i == input.len + var/key = input[i] -/proc/SDQL_qdel_datum(datum/d) - qdel(d) - -/proc/SDQL_gen_vv_href(t) - var/text = "" - text += "
[REF(t)]" - if(istype(t, /atom)) - var/atom/a = t - var/turf/T = a.loc - var/turf/actual = get_turf(a) - if(istype(T)) - text += ": [t] at turf [T] [ADMIN_COORDJMP(T)]
" - else if(a.loc && istype(actual)) - text += ": [t] in [a.loc] at turf [actual] [ADMIN_COORDJMP(actual)]
" + //print the key + if(islist(key)) + recursive_list_print(output, key, datum_handler, atom_handler) + else if(is_proper_datum(key) && (datum_handler || (isatom(key) && atom_handler))) + if(isatom(key) && atom_handler) + output += atom_handler.Invoke(key) + else + output += datum_handler.Invoke(key) else - text += ": [t]
" - else - text += ": [t]
" - return text + output += "[key]" -/proc/SDQL_internal_vv(d, list/set_list) + //print the value + var/is_value = (!isnum(key) && !isnull(input[key])) + if(is_value) + var/value = input[key] + if(islist(value)) + recursive_list_print(output, value, datum_handler, atom_handler) + else if(is_proper_datum(value) && (datum_handler || (isatom(value) && atom_handler))) + if(isatom(value) && atom_handler) + output += atom_handler.Invoke(value) + else + output += datum_handler.Invoke(value) + else + output += " = [value]" + + if(!final) + output += " , " + + output += " \]" + +/datum/SDQL2_query/proc/text_state() + switch(state) + if(SDQL2_STATE_ERROR) + return "###ERROR" + if(SDQL2_STATE_IDLE) + return "####IDLE" + if(SDQL2_STATE_PRESEARCH) + return "PRESEARCH" + if(SDQL2_STATE_SEARCHING) + return "SEARCHING" + if(SDQL2_STATE_EXECUTING) + return "EXECUTING" + if(SDQL2_STATE_SWITCHING) + return "SWITCHING" + if(SDQL2_STATE_HALTING) + return "##HALTING" + +/datum/SDQL2_query/proc/generate_stat() + if(!allow_admin_interact) + return + if(!delete_click) + delete_click = new(null, "INITIALIZING", src) + if(!action_click) + action_click = new(null, "INITIALIZNG", src) + stat("[id] ", delete_click.update("DELETE QUERY | STATE : [text_state()] | ALL/ELIG/FIN \ + [islist(obj_count_all)? length(obj_count_all) : (isnull(obj_count_all)? "0" : obj_count_all)]/\ + [islist(obj_count_eligible)? length(obj_count_eligible) : (isnull(obj_count_eligible)? "0" : obj_count_eligible)]/\ + [islist(obj_count_finished)? length(obj_count_finished) : (isnull(obj_count_finished)? "0" : obj_count_finished)]")) + stat(" ", action_click.update("[SDQL2_IS_RUNNING? "HALT" : "RUN"]")) + +/datum/SDQL2_query/proc/delete_click() + admin_del(usr) + +/datum/SDQL2_query/proc/action_click() + if(SDQL2_IS_RUNNING) + admin_halt(usr) + else + admin_run(usr) + +/datum/SDQL2_query/proc/admin_halt(user = usr) + if(!SDQL2_IS_RUNNING) + return + var/msg = "[key_name(user)] has halted query #[id]" + message_admins(msg) + log_admin(msg) + state = SDQL2_STATE_HALTING + +/datum/SDQL2_query/proc/admin_run(user = usr) + if(SDQL2_IS_RUNNING) + return + var/msg = "[key_name(user)] has (re)started query #[id]" + message_admins(msg) + log_admin(msg) + ARun() + +/datum/SDQL2_query/proc/admin_del(user = usr) + var/msg = "[key_name(user)] has stopped + deleted query #[id]" + message_admins(msg) + log_admin(msg) + qdel(src) + +/datum/SDQL2_query/proc/set_option(name, value) + switch(name) + if("select") + switch(value) + if("force_nulls") + DISABLE_BITFIELD(options, SDQL2_OPTION_SELECT_OUTPUT_SKIP_NULLS) + if("proccall") + switch(value) + if("blocking") + ENABLE_BITFIELD(options, SDQL2_OPTION_BLOCKING_CALLS) + if("priority") + switch(value) + if("high") + ENABLE_BITFIELD(options, SDQL2_OPTION_HIGH_PRIORITY) + if("autogc") + switch(value) + if("keep_alive") + ENABLE_BITFIELD(options, SDQL2_OPTION_DO_NOT_AUTOGC) + +/datum/SDQL2_query/proc/ARun() + INVOKE_ASYNC(src, .proc/Run) + +/datum/SDQL2_query/proc/Run() + if(SDQL2_IS_RUNNING) + return FALSE + if(query_tree["options"]) + for(var/name in query_tree["options"]) + var/value = query_tree["options"][name] + set_option(name, value) + select_refs = list() + obj_count_all = 0 + obj_count_eligible = 0 + obj_count_finished = 0 + start_time = REALTIMEOFDAY + + state = SDQL2_STATE_PRESEARCH + var/list/search_tree = PreSearch() + SDQL2_STAGE_SWITCH_CHECK + + state = SDQL2_STATE_SEARCHING + var/list/found = Search(search_tree) + SDQL2_STAGE_SWITCH_CHECK + + state = SDQL2_STATE_EXECUTING + Execute(found) + SDQL2_STAGE_SWITCH_CHECK + + end_time = REALTIMEOFDAY + state = SDQL2_STATE_IDLE + finished = TRUE + . = TRUE + if(qdel_on_finish) + qdel(src) + +/datum/SDQL2_query/proc/PreSearch() + SDQL2_HALT_CHECK + switch(query_tree[1]) + if("explain") + SDQL_testout(query_tree["explain"]) + state = SDQL2_STATE_HALTING + return + if("call") + . = query_tree["on"] + if("select", "delete", "update") + . = query_tree[query_tree[1]] + state = SDQL2_STATE_SWITCHING + +/datum/SDQL2_query/proc/Search(list/tree) + SDQL2_HALT_CHECK + var/type = tree[1] + var/list/from = tree[2] + var/list/objs = SDQL_from_objs(from) + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + objs = SDQL_get_all(type, objs) + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + + // 1 and 2 are type and FROM. + var/i = 3 + while (i <= tree.len) + var/key = tree[i++] + var/list/expression = tree[i++] + switch (key) + if ("map") + for(var/j = 1 to objs.len) + var/x = objs[j] + objs[j] = SDQL_expression(x, expression) + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + + if ("where") + where_switched = TRUE + var/list/out = list() + obj_count_eligible = out + for(var/x in objs) + if(SDQL_expression(x, expression)) + out += x + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + objs = out + if(islist(obj_count_eligible)) + obj_count_eligible = objs.len + else + obj_count_eligible = obj_count_all + . = objs + state = SDQL2_STATE_SWITCHING + +/datum/SDQL2_query/proc/SDQL_from_objs(list/tree) + if(IsAdminAdvancedProcCall()) + if("world" in tree) + var/text = "[key_name(usr)] attempted to grab world with a procedure call to a SDQL datum." + message_admins(text) + log_admin(text) + return + if("world" in tree) + return world + return SDQL_expression(world, tree) + +/datum/SDQL2_query/proc/SDQL_get_all(type, location) + var/list/out = list() + obj_count_all = out + +// If only a single object got returned, wrap it into a list so the for loops run on it. + if(!islist(location) && location != world) + location = list(location) + + if(type == "*") + for(var/i in location) + var/datum/d = i + if(d.can_vv_get() || superuser) + out += d + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + return out + if(istext(type)) + type = text2path(type) + var/typecache = typecacheof(type) + + if(ispath(type, /mob)) + for(var/mob/d in location) + if(typecache[d.type] && (d.can_vv_get() || superuser)) + out += d + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + + else if(ispath(type, /turf)) + for(var/turf/d in location) + if(typecache[d.type] && (d.can_vv_get() || superuser)) + out += d + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + + else if(ispath(type, /obj)) + for(var/obj/d in location) + if(typecache[d.type] && (d.can_vv_get() || superuser)) + out += d + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + + else if(ispath(type, /area)) + for(var/area/d in location) + if(typecache[d.type] && (d.can_vv_get() || superuser)) + out += d + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + + else if(ispath(type, /atom)) + for(var/atom/d in location) + if(typecache[d.type] && (d.can_vv_get() || superuser)) + out += d + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + + else if(ispath(type, /datum)) + if(location == world) //snowflake for byond shortcut + for(var/datum/d) //stupid byond trick to have it not return atoms to make this less laggy + if(typecache[d.type] && (d.can_vv_get() || superuser)) + out += d + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + else + for(var/datum/d in location) + if(typecache[d.type] && (d.can_vv_get() || superuser)) + out += d + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + obj_count_all = out.len + return out + +/datum/SDQL2_query/proc/Execute(list/found) + SDQL2_HALT_CHECK + select_refs = list() + select_text = list() + switch(query_tree[1]) + if("call") + for(var/i in found) + if(!is_proper_datum(i)) + continue + world.SDQL_var(i, query_tree["call"][1], source = i, superuser) + obj_count_finished++ + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + + if("delete") + for(var/datum/d in found) + SDQL_qdel_datum(d) + obj_count_finished++ + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + + if("select") + var/list/text_list = list() + var/print_nulls = !(options & SDQL2_OPTION_SELECT_OUTPUT_SKIP_NULLS) + obj_count_finished = select_refs + for(var/i in found) + SDQL_print(i, text_list, print_nulls) + select_refs[REF(i)] = TRUE + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + select_text = text_list.Join() + + if("update") + if("set" in query_tree) + var/list/set_list = query_tree["set"] + for(var/d in found) + if(!is_proper_datum(d)) + continue + SDQL_internal_vv(d, set_list) + obj_count_finished++ + SDQL2_TICK_CHECK + SDQL2_HALT_CHECK + if(islist(obj_count_finished)) + obj_count_finished = obj_count_finished.len + state = SDQL2_STATE_SWITCHING + +/datum/SDQL2_query/proc/SDQL_print(object, list/text_list, print_nulls = TRUE) + if(is_proper_datum(object)) + text_list += "[REF(object)] : [object]" + if(istype(object, /atom)) + var/atom/A = object + var/turf/T = A.loc + var/area/a + if(istype(T)) + text_list += " at [T] [ADMIN_COORDJMP(T)]" + a = T.loc + else + var/turf/final = get_turf(T) //Recursive, hopefully? + if(istype(final)) + text_list += " at [final] [ADMIN_COORDJMP(final)]" + a = final.loc + else + text_list += " at nonexistant location" + if(a) + text_list += " in area [a]" + if(T.loc != a) + text_list += " inside [T]" + text_list += "
" + else if(islist(object)) + var/list/L = object + var/first = TRUE + text_list += "\[" + for (var/x in L) + if (!first) + text_list += ", " + first = FALSE + SDQL_print(x, text_list) + if (!isnull(x) && !isnum(x) && L[x] != null) + text_list += " -> " + SDQL_print(L[L[x]]) + text_list += "]
" + else + if(isnull(object)) + if(print_nulls) + text_list += "NULL
" + else + text_list += "[object]
" + +/datum/SDQL2_query/CanProcCall() + if(!allow_admin_interact) + return FALSE + return ..() + +/datum/SDQL2_query/vv_edit_var(var_name, var_value) + if(!allow_admin_interact) + return FALSE + if(var_name == NAMEOF(src, superuser) || var_name == NAMEOF(src, allow_admin_interact) || var_name == NAMEOF(src, query_tree)) + return FALSE + return ..() + +/datum/SDQL2_query/proc/SDQL_internal_vv(d, list/set_list) for(var/list/sets in set_list) var/datum/temp = d var/i = 0 for(var/v in sets) if(++i == sets.len) - temp.vv_edit_var(v, SDQL_expression(d, set_list[sets])) + if(superuser) + if(temp.vars.Find(v)) + temp.vars[v] = SDQL_expression(d, set_list[sets]) + else + temp.vv_edit_var(v, SDQL_expression(d, set_list[sets])) break - if(temp.vars.Find(v) && (istype(temp.vars[v], /datum))) + if(temp.vars.Find(v) && (istype(temp.vars[v], /datum) || istype(temp.vars[v], /client))) temp = temp.vars[v] else break +/datum/SDQL2_query/proc/SDQL_function_blocking(datum/object, procname, list/arguments, source) + var/list/new_args = list() + for(var/arg in arguments) + new_args[++new_args.len] = SDQL_expression(source, arg) + if(object == GLOB) // Global proc. + procname = "/proc/[procname]" + return superuser? (call(procname)(new_args)) : (WrapAdminProcCall(GLOBAL_PROC, procname, new_args)) + return superuser? (call(object, procname)(new_args)) : (WrapAdminProcCall(object, procname, new_args)) + +/datum/SDQL2_query/proc/SDQL_function_async(datum/object, procname, list/arguments, source) + set waitfor = FALSE + return SDQL_function_blocking(object, procname, arguments, source) + +/datum/SDQL2_query/proc/SDQL_expression(datum/object, list/expression, start = 1) + var/result = 0 + var/val + + for(var/i = start, i <= expression.len, i++) + var/op = "" + + if(i > start) + op = expression[i] + i++ + + var/list/ret = SDQL_value(object, expression, i) + val = ret["val"] + i = ret["i"] + + if(op != "") + switch(op) + if("+") + result = (result + val) + if("-") + result = (result - val) + if("*") + result = (result * val) + if("/") + result = (result / val) + if("&") + result = (result & val) + if("|") + result = (result | val) + if("^") + result = (result ^ val) + if("%") + result = (result % val) + if("=", "==") + result = (result == val) + if("!=", "<>") + result = (result != val) + if("<") + result = (result < val) + if("<=") + result = (result <= val) + if(">") + result = (result > val) + if(">=") + result = (result >= val) + if("and", "&&") + result = (result && val) + if("or", "||") + result = (result || val) + else + to_chat(usr, "SDQL2: Unknown op [op]") + result = null + else + result = val + + return result + +/datum/SDQL2_query/proc/SDQL_value(datum/object, list/expression, start = 1) + var/i = start + var/val = null + + if(i > expression.len) + return list("val" = null, "i" = i) + + if(istype(expression[i], /list)) + val = SDQL_expression(object, expression[i]) + + else if(expression[i] == "TRUE") + val = TRUE + + else if(expression[i] == "FALSE") + val = FALSE + + else if(expression[i] == "!") + var/list/ret = SDQL_value(object, expression, i + 1) + val = !ret["val"] + i = ret["i"] + + else if(expression[i] == "~") + var/list/ret = SDQL_value(object, expression, i + 1) + val = ~ret["val"] + i = ret["i"] + + else if(expression[i] == "-") + var/list/ret = SDQL_value(object, expression, i + 1) + val = -ret["val"] + i = ret["i"] + + else if(expression[i] == "null") + val = null + + else if(isnum(expression[i])) + val = expression[i] + + else if(ispath(expression[i])) + val = expression[i] + + else if(copytext(expression[i], 1, 2) in list("'", "\"")) + val = copytext(expression[i], 2, length(expression[i])) + + else if(expression[i] == "\[") + var/list/expressions_list = expression[++i] + val = list() + for(var/list/expression_list in expressions_list) + var/result = SDQL_expression(object, expression_list) + var/assoc + if(expressions_list[expression_list] != null) + assoc = SDQL_expression(object, expressions_list[expression_list]) + if(assoc != null) + // Need to insert the key like this to prevent duplicate keys fucking up. + var/list/dummy = list() + dummy[result] = assoc + result = dummy + val += result + else + val = world.SDQL_var(object, expression, i, object, superuser) + i = expression.len + + return list("val" = val, "i" = i) + /proc/SDQL_parse(list/query_list) var/datum/SDQL_parser/parser = new() var/list/querys = list() @@ -193,8 +911,6 @@ qdel(parser) return querys - - /proc/SDQL_testout(list/query_tree, indent = 0) var/static/whitespace = "    " var/spaces = "" @@ -220,182 +936,19 @@ else to_chat(usr, "[spaces][whitespace][query_tree[item]]") - - -/world/proc/SDQL_from_objs(list/tree) - if("world" in tree) - return src - return SDQL_expression(src, tree) - -/proc/SDQL_get_all(type, location) - var/list/out = list() - -// If only a single object got returned, wrap it into a list so the for loops run on it. - if(!islist(location) && location != world) - location = list(location) - - type = text2path(type) - var/typecache = typecacheof(type) - - if(ispath(type, /mob)) - for(var/mob/d in location) - if(typecache[d.type] && d.can_vv_get()) - out += d - CHECK_TICK - - else if(ispath(type, /turf)) - for(var/turf/d in location) - if(typecache[d.type] && d.can_vv_get()) - out += d - CHECK_TICK - - else if(ispath(type, /obj)) - for(var/obj/d in location) - if(typecache[d.type] && d.can_vv_get()) - out += d - CHECK_TICK - - else if(ispath(type, /area)) - for(var/area/d in location) - if(typecache[d.type] && d.can_vv_get()) - out += d - CHECK_TICK - - else if(ispath(type, /atom)) - for(var/atom/d in location) - if(typecache[d.type] && d.can_vv_get()) - out += d - CHECK_TICK - else if(ispath(type, /datum)) - if(location == world) //snowflake for byond shortcut - for(var/datum/d) //stupid byond trick to have it not return atoms to make this less laggy - if(typecache[d.type] && d.can_vv_get()) - out += d - CHECK_TICK - else - for(var/datum/d in location) - if(typecache[d.type] && d.can_vv_get()) - out += d - CHECK_TICK - - return out - - -/proc/SDQL_expression(datum/object, list/expression, start = 1) - var/result = 0 - var/val - - for(var/i = start, i <= expression.len, i++) - var/op = "" - - if(i > start) - op = expression[i] - i++ - - var/list/ret = SDQL_value(object, expression, i) - val = ret["val"] - i = ret["i"] - - if(op != "") - switch(op) - if("+") - result = (result + val) - if("-") - result = (result - val) - if("*") - result = (result * val) - if("/") - result = (result / val) - if("&") - result = (result & val) - if("|") - result = (result | val) - if("^") - result = (result ^ val) - if("=", "==") - result = (result == val) - if("!=", "<>") - result = (result != val) - if("<") - result = (result < val) - if("<=") - result = (result <= val) - if(">") - result = (result > val) - if(">=") - result = (result >= val) - if("and", "&&") - result = (result && val) - if("or", "||") - result = (result || val) - else - to_chat(usr, "SDQL2: Unknown op [op]") - result = null - else - result = val - - return result - -/proc/SDQL_value(datum/object, list/expression, start = 1) - var/i = start - var/val = null - - if(i > expression.len) - return list("val" = null, "i" = i) - - if(istype(expression[i], /list)) - val = SDQL_expression(object, expression[i]) - - else if(expression[i] == "!") - var/list/ret = SDQL_value(object, expression, i + 1) - val = !ret["val"] - i = ret["i"] - - else if(expression[i] == "~") - var/list/ret = SDQL_value(object, expression, i + 1) - val = ~ret["val"] - i = ret["i"] - - else if(expression[i] == "-") - var/list/ret = SDQL_value(object, expression, i + 1) - val = -ret["val"] - i = ret["i"] - - else if(expression[i] == "null") - val = null - - else if(isnum(expression[i])) - val = expression[i] - - else if(copytext(expression[i], 1, 2) in list("'", "\"")) - val = copytext(expression[i], 2, length(expression[i])) - - else if(expression[i] == "\[") - var/list/expressions_list = expression[++i] - val = list() - for(var/list/expression_list in expressions_list) - var/result = SDQL_expression(object, expression_list) - var/assoc - if(expressions_list[expression_list] != null) - assoc = SDQL_expression(object, expressions_list[expression_list]) - if(assoc != null) - // Need to insert the key like this to prevent duplicate keys fucking up. - var/list/dummy = list() - dummy[result] = assoc - result = dummy - val += result - else - val = world.SDQL_var(object, expression, i, object) - i = expression.len - - return list("val" = val, "i" = i) - -/world/proc/SDQL_var(datum/object, list/expression, start = 1, source) +//Staying as a world proc as this is called too often for changes to offset the potential IsAdminAdvancedProcCall checking overhead. +/world/proc/SDQL_var(object, list/expression, start = 1, source, superuser, datum/SDQL2_query/query) var/v + var/static/list/exclude = list("usr", "src", "marked", "global") var/long = start < expression.len - if(object == world && long && expression[start + 1] == ".") - to_chat(usr, "Sorry, but world variables are not supported at the moment.") + var/datum/D + if(is_proper_datum(object)) + D = object + + if (object == world && (!long || expression[start + 1] == ".") && !(expression[start] in exclude)) + to_chat(usr, "World variables are not allowed to be accessed. Use global.") return null + else if(expression [start] == "{" && long) if(lowertext(copytext(expression[start + 1], 1, 3)) != "0x") to_chat(usr, "Invalid pointer syntax: [expression[start + 1]]") @@ -405,12 +958,13 @@ to_chat(usr, "Invalid pointer: [expression[start + 1]]") return null start++ - else if((!long || expression[start + 1] == ".") && (expression[start] in object.vars)) - if(object.can_vv_get(expression[start])) - v = object.vars[expression[start]] + long = start < expression.len + else if(D != null && (!long || expression[start + 1] == ".") && (expression[start] in D.vars)) + if(D.can_vv_get(expression[start]) || superuser) + v = D.vars[expression[start]] else v = "SECRET" - else if(long && expression[start + 1] == ":" && hascall(object, expression[start])) + else if(D != null && long && expression[start + 1] == ":" && hascall(D, expression[start])) v = expression[start] else if(!long || expression[start + 1] == ".") switch(expression[start]) @@ -427,38 +981,70 @@ v = world if("global") v = GLOB + if("MC") + v = Master + if("FS") + v = Failsafe + if("CFG") + v = config + //Subsystem switches + if("SSgarbage") + v = SSgarbage + if("SSmachines") + v = SSmachines + if("SSobj") + v = SSobj + if("SSresearch") + v = SSresearch + if("SSprojectiles") + v = SSprojectiles + if("SSfastprocess") + v = SSfastprocess + if("SSticker") + v = SSticker + if("SStimer") + v = SStimer + if("SSradiation") + v = SSradiation + if("SSnpcpool") + v = SSnpcpool + if("SSmobs") + v = SSmobs + if("SSmood") + v = SSmood + if("SSquirks") + v = SSquirks + if("SSwet_floors") + v = SSwet_floors + if("SSshuttle") + v = SSshuttle + if("SSmapping") + v = SSmapping + if("SSevents") + v = SSevents + //End else return null else if(object == GLOB) // Shitty ass hack kill me. v = expression[start] if(long) if(expression[start + 1] == ".") - return SDQL_var(v, expression[start + 2], source = source) + return SDQL_var(v, expression[start + 2], source = source, superuser = superuser, query = query) else if(expression[start + 1] == ":") - return SDQL_function(object, v, expression[start + 2], source) + return (query.options & SDQL2_OPTION_BLOCKING_CALLS)? query.SDQL_function_async(object, v, expression[start + 2], source) : query.SDQL_function_blocking(object, v, expression[start + 2], source) else if(expression[start + 1] == "\[" && islist(v)) var/list/L = v - var/index = SDQL_expression(source, expression[start + 2]) + var/index = query.SDQL_expression(source, expression[start + 2]) if(isnum(index) && (!ISINTEGER(index) || L.len < index)) to_chat(usr, "Invalid list index: [index]") return null return L[index] return v -/proc/SDQL_function(var/datum/object, var/procname, var/list/arguments, source) - set waitfor = FALSE - var/list/new_args = list() - for(var/arg in arguments) - new_args += SDQL_expression(source, arg) - if(object == GLOB) // Global proc. - procname = "/proc/[procname]" - return WrapAdminProcCall(GLOBAL_PROC, procname, new_args) - return WrapAdminProcCall(object, procname, new_args) - /proc/SDQL2_tokenize(query_text) var/list/whitespace = list(" ", "\n", "\t") - var/list/single = list("(", ")", ",", "+", "-", ".", ";", "{", "}", "\[", "]", ":") + var/list/single = list("(", ")", ",", "+", "-", ".", "\[", "]", "{", "}", ";", ":") var/list/multi = list( "=" = list("", "="), "<" = list("", "=", ">"), @@ -560,3 +1146,20 @@ if(word != "") query_list += word return query_list + +/proc/is_proper_datum(thing) + return istype(thing, /datum) || istype(thing, /client) + +/obj/effect/statclick/SDQL2_delete/Click() + var/datum/SDQL2_query/Q = target + Q.delete_click() + +/obj/effect/statclick/SDQL2_action/Click() + var/datum/SDQL2_query/Q = target + Q.action_click() + +/obj/effect/statclick/SDQL2_VV_all + name = "VIEW VARIABLES" + +/obj/effect/statclick/SDQL2_VV_all/Click() + usr.client.debug_variables(GLOB.sdql2_queries) \ No newline at end of file diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm b/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm index 1bd95bc239..fb857bfb02 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm @@ -7,36 +7,34 @@ // // query : select_query | delete_query | update_query | call_query | explain // explain : 'EXPLAIN' query +// select_query : 'SELECT' object_selectors +// delete_query : 'DELETE' object_selectors +// update_query : 'UPDATE' object_selectors 'SET' assignments +// call_query : 'CALL' variable 'ON' object_selectors // Note here: 'variable' does function calls. This simplifies parsing. // -// select_query : 'SELECT' select_list [('FROM' | 'IN') from_list] ['WHERE' bool_expression] -// delete_query : 'DELETE' select_list [('FROM' | 'IN') from_list] ['WHERE' bool_expression] -// update_query : 'UPDATE' select_list [('FROM' | 'IN') from_list] 'SET' assignments ['WHERE' bool_expression] -// call_query : 'CALL' call_function ['ON' select_list [('FROM' | 'IN') from_list] ['WHERE' bool_expression]] +// select_item : '*' | object_type // -// select_list : select_item [',' select_list] -// select_item : '*' | select_function | object_type -// select_function : count_function -// count_function : 'COUNT' '(' '*' ')' | 'COUNT' '(' object_types ')' +// object_selectors : select_item [('FROM' | 'IN') from_item] [modifier_list] +// modifier_list : ('WHERE' bool_expression | 'MAP' expression) [modifier_list] // -// from_list : from_item [',' from_list] -// from_item : 'world' | object_type +// from_item : 'world' | expression // -// call_function : ['(' [arguments] ')'] +// call_function : '(' [arguments] ')' // arguments : expression [',' arguments] // -// object_type : | string +// object_type : // -// assignments : assignment, [',' assignments] +// assignments : assignment [',' assignments] // assignment : '=' expression -// variable : | '.' variable +// variable : | '.' variable | '[' ']' | '[' ']' '.' variable // // bool_expression : expression comparitor expression [bool_operator bool_expression] // expression : ( unary_expression | '(' expression ')' | value ) [binary_operator expression] // unary_expression : unary_operator ( unary_expression | value | '(' expression ')' ) // comparitor : '=' | '==' | '!=' | '<>' | '<' | '<=' | '>' | '>=' -// value : variable | string | number | 'null' +// value : variable | string | number | 'null' | object_type // unary_operator : '!' | '-' | '~' -// binary_operator : comparitor | '+' | '-' | '/' | '*' | '&' | '|' | '^' +// binary_operator : comparitor | '+' | '-' | '/' | '*' | '&' | '|' | '^' | '%' // bool_operator : 'AND' | '&&' | 'OR' | '||' // // string : ''' ''' | '"' '"' @@ -51,10 +49,9 @@ var/list/query var/list/tree - var/list/select_functions = list("count") var/list/boolean_operators = list("and", "or", "&&", "||") var/list/unary_operators = list("!", "-", "~") - var/list/binary_operators = list("+", "-", "/", "*", "&", "|", "^") + var/list/binary_operators = list("+", "-", "/", "*", "&", "|", "^", "%") var/list/comparitors = list("=", "==", "!=", "<>", "<", "<=", ">", ">=") /datum/SDQL_parser/New(query_list) @@ -62,12 +59,12 @@ /datum/SDQL_parser/proc/parse_error(error_message) error = 1 - to_chat(usr, "SQDL2 Parsing Error: [error_message]") + to_chat(usr, "SQDL2 Parsing Error: [error_message]") return query.len + 1 /datum/SDQL_parser/proc/parse() tree = list() - query(1, tree) + query_options(1, tree) if(error) return list() @@ -91,354 +88,546 @@ /datum/SDQL_parser/proc/tokenl(i) return lowertext(token(i)) +/datum/SDQL_parser/proc/query_options(i, list/node) + var/list/options = list() + if(tokenl(i) == "using") + i = option_assignment(i + 1, node, options) + query(i, node) + node["options"] = options + +//option_assignment: query_option '=' define +/datum/SDQL_parser/proc/option_assignment(var/i, var/list/node, var/list/assignment_list = list()) + var/type = tokenl(i) + if(!(type in SDQL2_VALID_OPTION_TYPES)) + parse_error("Invalid option type: [type]") + if(!(token(i + 1) == "=")) + parse_error("Invalid option assignment symbol: [token(i + 1)]") + var/val = tokenl(i + 2) + if(!(val in SDQL2_VALID_OPTION_VALUES)) + parse_error("Invalid optoin value: [val]") + assignment_list[type] = val + return (i + 3) + +//option_assignments: option_assignment, [',' option_assignments] +/datum/SDQL_parser/proc/option_assignments(i, list/node) + i = option_assignment(i, node) + + if(token(i) == ",") + i = option_assignments(i + 1, node) + + return i //query: select_query | delete_query | update_query /datum/SDQL_parser/proc/query(i, list/node) query_type = tokenl(i) + switch(query_type) if("select") select_query(i, node) + if("delete") delete_query(i, node) + if("update") update_query(i, node) + if("call") call_query(i, node) + if("explain") node += "explain" node["explain"] = list() query(i + 1, node["explain"]) -// select_query: 'SELECT' select_list [('FROM' | 'IN') from_list] ['WHERE' bool_expression] +// select_query: 'SELECT' object_selectors /datum/SDQL_parser/proc/select_query(i, list/node) var/list/select = list() - i = select_list(i + 1, select) - node += "select" + i = object_selectors(i + 1, select) + node["select"] = select - selectors(i, node) return i -//delete_query: 'DELETE' select_list [('FROM' | 'IN') from_list] ['WHERE' bool_expression] + +//delete_query: 'DELETE' object_selectors /datum/SDQL_parser/proc/delete_query(i, list/node) var/list/select = list() - i = select_list(i + 1, select) - node += "delete" + i = object_selectors(i + 1, select) + node["delete"] = select - selectors(i, node) + return i -//update_query: 'UPDATE' select_list [('FROM' | 'IN') from_list] 'SET' assignments ['WHERE' bool_expression] + +//update_query: 'UPDATE' object_selectors 'SET' assignments /datum/SDQL_parser/proc/update_query(i, list/node) var/list/select = list() - i = select_list(i + 1, select) - node += "update" + i = object_selectors(i + 1, select) + node["update"] = select + if(tokenl(i) != "set") i = parse_error("UPDATE has misplaced SET") + var/list/set_assignments = list() i = assignments(i + 1, set_assignments) - node += "set" + node["set"] = set_assignments - selectors(i, node) + return i -//call_query: 'CALL' call_function ['ON' select_list [('FROM' | 'IN') from_list] ['WHERE' bool_expression]] + +//call_query: 'CALL' call_function ['ON' object_selectors] /datum/SDQL_parser/proc/call_query(i, list/node) var/list/func = list() i = variable(i + 1, func) // Yes technically does anything variable() matches but I don't care, if admins fuck up this badly then they shouldn't be allowed near SDQL. - node += "call" + node["call"] = func + if(tokenl(i) != "on") - return i + return parse_error("You need to specify what to call ON.") + var/list/select = list() - i = select_list(i + 1, select) - node += "on" + i = object_selectors(i + 1, select) + node["on"] = select - selectors(i, node) + return i -//select_list: select_item [',' select_list] +// object_selectors: select_item [('FROM' | 'IN') from_item] [modifier_list] +/datum/SDQL_parser/proc/object_selectors(i, list/node) + i = select_item(i, node) + + if (tokenl(i) == "from" || tokenl(i) == "in") + i++ + var/list/from = list() + i = from_item(i, from) + node[++node.len] = from + + else + node[++node.len] = list("world") + + i = modifier_list(i, node) + return i + +// modifier_list: ('WHERE' bool_expression | 'MAP' expression) [modifier_list] +/datum/SDQL_parser/proc/modifier_list(i, list/node) + while (TRUE) + if (tokenl(i) == "where") + i++ + node += "where" + var/list/expr = list() + i = bool_expression(i, expr) + node[++node.len] = expr + + else if (tokenl(i) == "map") + i++ + node += "map" + var/list/expr = list() + i = expression(i, expr) + node[++node.len] = expr + + else + return i + +//select_list:select_item [',' select_list] /datum/SDQL_parser/proc/select_list(i, list/node) i = select_item(i, node) + if(token(i) == ",") i = select_list(i + 1, node) + return i //assignments: assignment, [',' assignments] /datum/SDQL_parser/proc/assignments(i, list/node) i = assignment(i, node) + if(token(i) == ",") i = assignments(i + 1, node) + return i + //select_item: '*' | select_function | object_type /datum/SDQL_parser/proc/select_item(i, list/node) - if(token(i) == "*") + if (token(i) == "*") node += "*" i++ - else if(tokenl(i) in select_functions) - i = select_function(i, node) - else + + else if (copytext(token(i), 1, 2) == "/") i = object_type(i, node) + + else + i = parse_error("Expected '*' or type path for select item") + return i // Standardized method for handling the IN/FROM and WHERE options. /datum/SDQL_parser/proc/selectors(i, list/node) while (token(i)) var/tok = tokenl(i) - if(tok in list("from", "in")) + if (tok in list("from", "in")) var/list/from = list() i = from_item(i + 1, from) + node["from"] = from continue - if(tok == "where") + + if (tok == "where") var/list/where = list() i = bool_expression(i + 1, where) + node["where"] = where continue + parse_error("Expected either FROM, IN or WHERE token, found [token(i)] instead.") return i + 1 - if(!node.Find("from")) + + if (!node.Find("from")) node["from"] = list("world") + return i -//from_item: 'world' | object_type +//from_item: 'world' | expression /datum/SDQL_parser/proc/from_item(i, list/node) if(token(i) == "world") node += "world" i++ + else i = expression(i, node) + return i + //bool_expression: expression [bool_operator bool_expression] /datum/SDQL_parser/proc/bool_expression(i, list/node) + var/list/bool = list() i = expression(i, bool) + node[++node.len] = bool + if(tokenl(i) in boolean_operators) i = bool_operator(i, node) i = bool_expression(i, node) + return i + //assignment: '=' expression /datum/SDQL_parser/proc/assignment(var/i, var/list/node, var/list/assignment_list = list()) assignment_list += token(i) + if(token(i + 1) == ".") i = assignment(i + 2, node, assignment_list) + else if(token(i + 1) == "=") var/exp_list = list() node[assignment_list] = exp_list + i = expression(i + 2, exp_list) + else parse_error("Assignment expected, but no = found") + return i -//variable: | '.' variable + +//variable: | '.' variable | '[' ']' | '[' ']' '.' variable /datum/SDQL_parser/proc/variable(i, list/node) var/list/L = list(token(i)) node[++node.len] = L + if(token(i) == "{") - L += token(i+1) + L += token(i + 1) i += 2 + if(token(i) != "}") parse_error("Missing } at end of pointer.") + if(token(i + 1) == ".") L += "." i = variable(i + 2, L) - else if(token(i + 1) == "(") // OH BOY PROC + + else if (token(i + 1) == "(") // OH BOY PROC var/list/arguments = list() i = call_function(i, null, arguments) L += ":" L[++L.len] = arguments - else if(token(i + 1) == "\[") + + else if (token(i + 1) == "\[") var/list/expression = list() i = expression(i + 2, expression) if (token(i) != "]") parse_error("Missing ] at the end of list access.") + L += "\[" L[++L.len] = expression i++ + else i++ + return i + +//object_type: +/datum/SDQL_parser/proc/object_type(i, list/node) + + if (copytext(token(i), 1, 2) != "/") + return parse_error("Expected type, but it didn't begin with /") + + var/path = text2path(token(i)) + if (path == null) + return parse_error("Nonexistant type path: [token(i)]") + + node += path + + return i + 1 + + +//comparitor: '=' | '==' | '!=' | '<>' | '<' | '<=' | '>' | '>=' +/datum/SDQL_parser/proc/comparitor(i, list/node) + + if(token(i) in list("=", "==", "!=", "<>", "<", "<=", ">", ">=")) + node += token(i) + + else + parse_error("Unknown comparitor [token(i)]") + + return i + 1 + + +//bool_operator: 'AND' | '&&' | 'OR' | '||' +/datum/SDQL_parser/proc/bool_operator(i, list/node) + + if(tokenl(i) in list("and", "or", "&&", "||")) + node += token(i) + + else + parse_error("Unknown comparitor [token(i)]") + + return i + 1 + + +//string: ''' ''' | '"' '"' +/datum/SDQL_parser/proc/string(i, list/node) + + if(copytext(token(i), 1, 2) in list("'", "\"")) + node += token(i) + + else + parse_error("Expected string but found '[token(i)]'") + + return i + 1 + //array: '[' expression, expression, ... ']' -/datum/SDQL_parser/proc/array(i, list/node) +/datum/SDQL_parser/proc/array(var/i, var/list/node) + // Arrays get turned into this: list("[", list(exp_1a = exp_1b, ...), ...), "[" is to mark the next node as an array. if(copytext(token(i), 1, 2) != "\[") parse_error("Expected an array but found '[token(i)]'") return i + 1 - node += token(i) + + node += token(i) // Add the "[" + var/list/expression_list = list() + i++ if(token(i) != "]") var/list/temp_expression_list = list() var/tok do tok = token(i) - if(tok == "," || tok == ":") - if(temp_expression_list == null) + if (tok == "," || tok == ":") + if (temp_expression_list == null) parse_error("Found ',' or ':' without expression in an array.") return i + 1 + expression_list[++expression_list.len] = temp_expression_list temp_expression_list = null - if(tok == ":") + if (tok == ":") temp_expression_list = list() i = expression(i + 1, temp_expression_list) expression_list[expression_list[expression_list.len]] = temp_expression_list temp_expression_list = null tok = token(i) - if(tok != ",") - if(tok == "]") + if (tok != ",") + if (tok == "]") break + parse_error("Expected ',' or ']' after array assoc value, but found '[token(i)]'") return i + + i++ continue + temp_expression_list = list() i = expression(i, temp_expression_list) + + // Ok, what the fuck BYOND? + // Not having these lines here causes the parser to die + // on an error saying that list/token() doesn't exist as a proc. + // These lines prevent that. + // I assume the compiler/VM is shitting itself and swapping out some variables internally? + // While throwing in debug logging it disappeared + // And these 3 lines prevent it from happening while being quiet. + // So.. it works. + // Don't touch it. + var/whatthefuck = i + whatthefuck = src.type + whatthefuck = whatthefuck + while(token(i) && token(i) != "]") - if(temp_expression_list) + + if (temp_expression_list) expression_list[++expression_list.len] = temp_expression_list + node[++node.len] = expression_list - return i + 1 -//object_type: | string -/datum/SDQL_parser/proc/object_type(i, list/node) - if(copytext(token(i), 1, 2) == "/") - node += token(i) - else - i = string(i, node) - return i + 1 - -//comparitor: '=' | '==' | '!=' | '<>' | '<' | '<=' | '>' | '>=' -/datum/SDQL_parser/proc/comparitor(i, list/node) - if(token(i) in list("=", "==", "!=", "<>", "<", "<=", ">", ">=")) - node += token(i) - else - parse_error("Unknown comparitor [token(i)]") - return i + 1 - -//bool_operator: 'AND' | '&&' | 'OR' | '||' -/datum/SDQL_parser/proc/bool_operator(i, list/node) - if(tokenl(i) in list("and", "or", "&&", "||")) - node += token(i) - else - parse_error("Unknown comparitor [token(i)]") - return i + 1 - -//string: ''' ''' | '"' '"' -/datum/SDQL_parser/proc/string(i, list/node) - if(copytext(token(i), 1, 2) in list("'", "\"")) - node += token(i) - else - parse_error("Expected string but found '[token(i)]'") return i + 1 //call_function: ['(' [arguments] ')'] /datum/SDQL_parser/proc/call_function(i, list/node, list/arguments) if(length(tokenl(i))) var/procname = "" - if(token(i) == "global" && token(i+1) == ".") + if(tokenl(i) == "global" && token(i + 1) == ".") // Global proc. i += 2 procname = "global." node += procname + token(i++) if(token(i) != "(") parse_error("Expected ( but found '[token(i)]'") + else if(token(i + 1) != ")") - var/list/expression_list_temp = list() + var/list/temp_expression_list = list() do - i = expression(i + 1, expression_list_temp) + i = expression(i + 1, temp_expression_list) if(token(i) == ",") - arguments[++arguments.len] = expression_list_temp - expression_list_temp = list() + arguments[++arguments.len] = temp_expression_list + temp_expression_list = list() continue + while(token(i) && token(i) != ")") - arguments[++arguments.len] = expression_list_temp + + arguments[++arguments.len] = temp_expression_list // The code this is copy pasted from won't be executed when it's the last param, this fixes that. else i++ else parse_error("Expected a function but found nothing") return i + 1 -//select_function: count_function -/datum/SDQL_parser/proc/select_function(i, list/node) - parse_error("Sorry, function calls aren't available yet") - return i //expression: ( unary_expression | '(' expression ')' | value ) [binary_operator expression] /datum/SDQL_parser/proc/expression(i, list/node) + if(token(i) in unary_operators) i = unary_expression(i, node) + else if(token(i) == "(") var/list/expr = list() + i = expression(i + 1, expr) + if(token(i) != ")") parse_error("Missing ) at end of expression.") + else i++ + node[++node.len] = expr + else i = value(i, node) + if(token(i) in binary_operators) i = binary_operator(i, node) i = expression(i, node) + else if(token(i) in comparitors) i = binary_operator(i, node) + var/list/rhs = list() i = expression(i, rhs) + node[++node.len] = rhs + + return i + //unary_expression: unary_operator ( unary_expression | value | '(' expression ')' ) /datum/SDQL_parser/proc/unary_expression(i, list/node) + if(token(i) in unary_operators) var/list/unary_exp = list() + unary_exp += token(i) i++ + if(token(i) in unary_operators) i = unary_expression(i, unary_exp) + else if(token(i) == "(") var/list/expr = list() + i = expression(i + 1, expr) + if(token(i) != ")") parse_error("Missing ) at end of expression.") + else i++ + unary_exp[++unary_exp.len] = expr + else i = value(i, unary_exp) + node[++node.len] = unary_exp + + else parse_error("Expected unary operator but found '[token(i)]'") + return i -//binary_operator: comparitor | '+' | '-' | '/' | '*' | '&' | '|' | '^' + +//binary_operator: comparitor | '+' | '-' | '/' | '*' | '&' | '|' | '^' | '%' /datum/SDQL_parser/proc/binary_operator(i, list/node) + if(token(i) in (binary_operators + comparitors)) node += token(i) + else parse_error("Unknown binary operator [token(i)]") + return i + 1 -//value: variable | string | number | 'null' + +//value: variable | string | number | 'null' | object_type /datum/SDQL_parser/proc/value(i, list/node) if(token(i) == "null") node += "null" i++ - else if(lowertext(copytext(token(i),1,3)) == "0x" && isnum(hex2num(copytext(token(i),3)))) - node += hex2num(copytext(token(i),3)) + + else if(lowertext(copytext(token(i), 1, 3)) == "0x" && isnum(hex2num(copytext(token(i), 3)))) + node += hex2num(copytext(token(i), 3)) i++ + else if(isnum(text2num(token(i)))) node += text2num(token(i)) i++ + else if(copytext(token(i), 1, 2) in list("'", "\"")) i = string(i, node) + else if(copytext(token(i), 1, 2) == "\[") // Start a list. i = array(i, node) + else if(copytext(token(i), 1, 2) == "/") + i = object_type(i, node) else i = variable(i, node) - return i -/*EXPLAIN SELECT * WHERE 42 = 6 * 9 OR val = - 5 == 7*/ + return i \ No newline at end of file diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm b/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm index 56faa1f6c4..a984e40fee 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm @@ -48,6 +48,12 @@ /proc/_image(icon, loc, icon_state, layer, dir) return image(icon, loc, icon_state, layer, dir) +/proc/_istype(object, type) + return istype(object, type) + +/proc/_ispath(path, type) + return ispath(path, type) + /proc/_length(E) return length(E) @@ -208,4 +214,3 @@ /proc/_step_away(ref, trg, max) step_away(ref, trg, max) - diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index a563aef86a..79215ff5f5 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -564,7 +564,12 @@ GLOB.cameranet.stat_entry() if(statpanel("Tickets")) GLOB.ahelp_tickets.stat_entry() - + if(length(GLOB.sdql2_queries)) + if(statpanel("SDQL2")) + stat("Access Global SDQL2 List", GLOB.sdql2_vv_statobj) + for(var/i in GLOB.sdql2_queries) + var/datum/SDQL2_query/Q = i + Q.generate_stat() if(listed_turf && client) if(!TurfAdjacent(listed_turf)) listed_turf = null From 53abb3c3dd67d6f4af63ab028a1a1f6b0fe42ac7 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 23 Dec 2018 12:42:41 -0800 Subject: [PATCH 101/237] THAT WAS CLOSE --- code/modules/admin/verbs/SDQL2/SDQL_2.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index 06a1362b38..7e87b266d0 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -635,7 +635,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null for(var/i in found) if(!is_proper_datum(i)) continue - world.SDQL_var(i, query_tree["call"][1], source = i, superuser) + world.SDQL_var(i, query_tree["call"][1], null, i, superuser, src) obj_count_finished++ SDQL2_TICK_CHECK SDQL2_HALT_CHECK @@ -871,7 +871,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null result = dummy val += result else - val = world.SDQL_var(object, expression, i, object, superuser) + val = world.SDQL_var(object, expression, i, object, superuser, src) i = expression.len return list("val" = val, "i" = i) @@ -1029,7 +1029,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null v = expression[start] if(long) if(expression[start + 1] == ".") - return SDQL_var(v, expression[start + 2], source = source, superuser = superuser, query = query) + return SDQL_var(v, expression[start + 2], null, source, superuser, query) else if(expression[start + 1] == ":") return (query.options & SDQL2_OPTION_BLOCKING_CALLS)? query.SDQL_function_async(object, v, expression[start + 2], source) : query.SDQL_function_blocking(object, v, expression[start + 2], source) else if(expression[start + 1] == "\[" && islist(v)) From a70691e8f0795997d3179c8ce483770739cbcda4 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 23 Dec 2018 13:04:38 -0800 Subject: [PATCH 102/237] Update SDQL_2_parser.dm --- code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm b/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm index fb857bfb02..087dc569c1 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm @@ -91,7 +91,7 @@ /datum/SDQL_parser/proc/query_options(i, list/node) var/list/options = list() if(tokenl(i) == "using") - i = option_assignment(i + 1, node, options) + i = option_assignments(i + 1, node, options) query(i, node) node["options"] = options @@ -630,4 +630,4 @@ else i = variable(i, node) - return i \ No newline at end of file + return i From 91ec7056c99c77b6f1578e2823226cab51505855 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 23 Dec 2018 14:32:12 -0800 Subject: [PATCH 103/237] Update time.dm --- code/__HELPERS/time.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm index aaf7ced922..5fe65af8f3 100644 --- a/code/__HELPERS/time.dm +++ b/code/__HELPERS/time.dm @@ -64,13 +64,13 @@ GLOBAL_VAR_INIT(rollovercheck_last_timeofday, 0) //Takes a value of time in deciseconds. //Returns a text value of that number in hours, minutes, or seconds. /proc/DisplayTimeText(time_value, round_seconds_to = 0.1) - var/second = round(time_value * 0.1, round_seconds_to) + var/second = FLOOR(time_value * 0.1, round_seconds_to) if(!second) return "right now" if(second < 60) return "[second] second[(second != 1)? "s":""]" var/minute = FLOOR(second / 60, 1) - second = MODULUS(second, 60) + second = FLOOR(MODULUS(second, 60), round_seconds_to) var/secondT if(second) secondT = " and [second] second[(second != 1)? "s":""]" From 59b4f87313fb98e0afb174ac2d4d43ada61c1ff1 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 23 Dec 2018 15:18:32 -0800 Subject: [PATCH 104/237] Update SDQL_2_parser.dm --- code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm b/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm index 087dc569c1..93250a3c85 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm @@ -93,7 +93,8 @@ if(tokenl(i) == "using") i = option_assignments(i + 1, node, options) query(i, node) - node["options"] = options + if(length(options)) + node["options"] = options //option_assignment: query_option '=' define /datum/SDQL_parser/proc/option_assignment(var/i, var/list/node, var/list/assignment_list = list()) From 0106867cac31898bd2c97e865b392463a9694623 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 23 Dec 2018 16:35:58 -0800 Subject: [PATCH 105/237] Update SDQL_2.dm --- code/modules/admin/verbs/SDQL2/SDQL_2.dm | 30 ++++++++++++++++-------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index 7e87b266d0..612b0b82de 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -224,6 +224,8 @@ var/datum/SDQL2_query/query = new /datum/SDQL2_query(query_tree) if(QDELETED(query)) continue + if(usr) + query.show_next_to_key = usr.ckey running += query var/msg = "Starting query #[query.id] - [query.get_query_text()]." if(usr) @@ -251,19 +253,10 @@ running -= query else if(query.finished) - if(length(query.select_text)) - var/text = islist(query.select_text)? query.select_text.Join() : query.select_text - var/static/result_offset = 0 - usr << browse(text, "window=SDQL-result-[result_offset++]") objs_all += islist(query.obj_count_all)? length(query.obj_count_all) : query.obj_count_all objs_eligible += islist(query.obj_count_eligible)? length(query.obj_count_eligible) : query.obj_count_eligible selectors_used |= query.where_switched combined_refs |= query.select_refs - if(usr) - to_chat(usr, "SDQL query results: [query.get_query_text()]
\ - SDQL query completed: [islist(query.obj_count_all)? length(query.obj_count_all) : query.obj_count_all] objects selected by path, and \ - [query.where_switched? "[islist(query.obj_count_eligible)? length(query.obj_count_eligible) : query.obj_count_eligible] objects executed on after WHERE keyword selection." : ""]
\ - SDQL query took [DisplayTimeText(query.end_time - query.start_time)] to complete.
") running -= query if(!CHECK_BITFIELD(query.options, SDQL2_OPTION_DO_NOT_AUTOGC)) QDEL_IN(query, 50) @@ -298,6 +291,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null var/start_time var/end_time var/where_switched = FALSE + var/show_next_to_key //Select query only var/list/select_refs var/list/select_text @@ -428,6 +422,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null var/msg = "[key_name(user)] has (re)started query #[id]" message_admins(msg) log_admin(msg) + show_next_to_key = user ARun() /datum/SDQL2_query/proc/admin_del(user = usr) @@ -466,6 +461,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null var/value = query_tree["options"][name] set_option(name, value) select_refs = list() + select_text = null obj_count_all = 0 obj_count_eligible = 0 obj_count_finished = 0 @@ -487,6 +483,18 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null state = SDQL2_STATE_IDLE finished = TRUE . = TRUE + if(show_next_to_key) + var/mob/showmob = GLOB.directory[show_next_to_key] + if(showmob) + to_chat(showmob, "SDQL query results: [query.get_query_text()]
\ + SDQL query completed: [islist(query.obj_count_all)? length(query.obj_count_all) : query.obj_count_all] objects selected by path, and \ + [query.where_switched? "[islist(query.obj_count_eligible)? length(query.obj_count_eligible) : query.obj_count_eligible] objects executed on after WHERE keyword selection." : ""]
\ + SDQL query took [DisplayTimeText(query.end_time - query.start_time)] to complete.
") + if(length(query.select_text)) + var/text = islist(query.select_text)? query.select_text.Join() : query.select_text + var/static/result_offset = 0 + showmob << browse(text, "window=SDQL-result-[result_offset++]") + show_next_to_key = null if(qdel_on_finish) qdel(src) @@ -1022,6 +1030,8 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null v = SSmapping if("SSevents") v = SSevents + if("SSeconomy") + v = SSeconomy //End else return null @@ -1162,4 +1172,4 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null name = "VIEW VARIABLES" /obj/effect/statclick/SDQL2_VV_all/Click() - usr.client.debug_variables(GLOB.sdql2_queries) \ No newline at end of file + usr.client.debug_variables(GLOB.sdql2_queries) From 32b4a5e75a7f12032d79e45839a48c37847d9adb Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 23 Dec 2018 16:37:19 -0800 Subject: [PATCH 106/237] Update SDQL_2.dm --- code/modules/admin/verbs/SDQL2/SDQL_2.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index 612b0b82de..60af10ff4e 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -1030,8 +1030,6 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null v = SSmapping if("SSevents") v = SSevents - if("SSeconomy") - v = SSeconomy //End else return null From 8531ff85951c93f4ad6a96dd06f6a6c14158d690 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 23 Dec 2018 16:43:27 -0800 Subject: [PATCH 107/237] Update SDQL_2.dm --- code/modules/admin/verbs/SDQL2/SDQL_2.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index 60af10ff4e..8155c6c6b4 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -486,12 +486,12 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null if(show_next_to_key) var/mob/showmob = GLOB.directory[show_next_to_key] if(showmob) - to_chat(showmob, "SDQL query results: [query.get_query_text()]
\ - SDQL query completed: [islist(query.obj_count_all)? length(query.obj_count_all) : query.obj_count_all] objects selected by path, and \ - [query.where_switched? "[islist(query.obj_count_eligible)? length(query.obj_count_eligible) : query.obj_count_eligible] objects executed on after WHERE keyword selection." : ""]
\ - SDQL query took [DisplayTimeText(query.end_time - query.start_time)] to complete.
") - if(length(query.select_text)) - var/text = islist(query.select_text)? query.select_text.Join() : query.select_text + to_chat(showmob, "SDQL query results: [get_query_text()]
\ + SDQL query completed: [islist(obj_count_all)? length(obj_count_all) : obj_count_all] objects selected by path, and \ + [where_switched? "[islist(obj_count_eligible)? length(obj_count_eligible) : obj_count_eligible] objects executed on after WHERE keyword selection." : ""]
\ + SDQL query took [DisplayTimeText(end_time - start_time)] to complete.
") + if(length(select_text)) + var/text = islist(select_text)? select_text.Join() : select_text var/static/result_offset = 0 showmob << browse(text, "window=SDQL-result-[result_offset++]") show_next_to_key = null From 03b88acbdb1d3091c8b38eba693e0496d9ea35dc Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 23 Dec 2018 18:19:21 -0800 Subject: [PATCH 108/237] Update SDQL_2.dm --- code/modules/admin/verbs/SDQL2/SDQL_2.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index 8155c6c6b4..78fbebf1c4 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -484,8 +484,9 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null finished = TRUE . = TRUE if(show_next_to_key) - var/mob/showmob = GLOB.directory[show_next_to_key] - if(showmob) + var/client/C = GLOB.directory[show_next_to_key] + if(C) + var/mob/showmob = C.mob to_chat(showmob, "SDQL query results: [get_query_text()]
\ SDQL query completed: [islist(obj_count_all)? length(obj_count_all) : obj_count_all] objects selected by path, and \ [where_switched? "[islist(obj_count_eligible)? length(obj_count_eligible) : obj_count_eligible] objects executed on after WHERE keyword selection." : ""]
\ @@ -493,8 +494,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null if(length(select_text)) var/text = islist(select_text)? select_text.Join() : select_text var/static/result_offset = 0 - showmob << browse(text, "window=SDQL-result-[result_offset++]") - show_next_to_key = null + showmob << browse(text, "window=SDQL-result-[result_offset++]") show_next_to_key = null if(qdel_on_finish) qdel(src) From 34c861368159b63718899cefaf507bd95d8d6407 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 23 Dec 2018 18:20:03 -0800 Subject: [PATCH 109/237] Update SDQL_2.dm --- code/modules/admin/verbs/SDQL2/SDQL_2.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index 78fbebf1c4..80b4484ec9 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -494,7 +494,8 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null if(length(select_text)) var/text = islist(select_text)? select_text.Join() : select_text var/static/result_offset = 0 - showmob << browse(text, "window=SDQL-result-[result_offset++]") show_next_to_key = null + showmob << browse(text, "window=SDQL-result-[result_offset++]") + show_next_to_key = null if(qdel_on_finish) qdel(src) From b40e1cd73186c08437c0eeeb0f706b57ef85f83f Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 23 Dec 2018 20:18:37 -0800 Subject: [PATCH 110/237] Update SDQL_2_parser.dm --- code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm b/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm index 93250a3c85..272bf83ca4 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2_parser.dm @@ -97,7 +97,7 @@ node["options"] = options //option_assignment: query_option '=' define -/datum/SDQL_parser/proc/option_assignment(var/i, var/list/node, var/list/assignment_list = list()) +/datum/SDQL_parser/proc/option_assignment(i, list/node, list/assignment_list = list()) var/type = tokenl(i) if(!(type in SDQL2_VALID_OPTION_TYPES)) parse_error("Invalid option type: [type]") @@ -110,11 +110,11 @@ return (i + 3) //option_assignments: option_assignment, [',' option_assignments] -/datum/SDQL_parser/proc/option_assignments(i, list/node) - i = option_assignment(i, node) +/datum/SDQL_parser/proc/option_assignments(i, list/node, list/store) + i = option_assignment(i, node, store) if(token(i) == ",") - i = option_assignments(i + 1, node) + i = option_assignments(i + 1, node, store) return i From 81f5bfa861caf3c7fb8283258a14a7a1f72b170f Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 23 Dec 2018 20:34:22 -0800 Subject: [PATCH 111/237] Update SDQL_2.dm --- code/modules/admin/verbs/SDQL2/SDQL_2.dm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index 80b4484ec9..d3cb654eeb 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -396,7 +396,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null stat("[id] ", delete_click.update("DELETE QUERY | STATE : [text_state()] | ALL/ELIG/FIN \ [islist(obj_count_all)? length(obj_count_all) : (isnull(obj_count_all)? "0" : obj_count_all)]/\ [islist(obj_count_eligible)? length(obj_count_eligible) : (isnull(obj_count_eligible)? "0" : obj_count_eligible)]/\ - [islist(obj_count_finished)? length(obj_count_finished) : (isnull(obj_count_finished)? "0" : obj_count_finished)]")) + [islist(obj_count_finished)? length(obj_count_finished) : (isnull(obj_count_finished)? "0" : obj_count_finished)] - [get_query_text()]")) stat(" ", action_click.update("[SDQL2_IS_RUNNING? "HALT" : "RUN"]")) /datum/SDQL2_query/proc/delete_click() @@ -416,13 +416,13 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null log_admin(msg) state = SDQL2_STATE_HALTING -/datum/SDQL2_query/proc/admin_run(user = usr) +/datum/SDQL2_query/proc/admin_run(mob/user = usr) if(SDQL2_IS_RUNNING) return var/msg = "[key_name(user)] has (re)started query #[id]" message_admins(msg) log_admin(msg) - show_next_to_key = user + show_next_to_key = user.ckey ARun() /datum/SDQL2_query/proc/admin_del(user = usr) @@ -665,7 +665,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null select_refs[REF(i)] = TRUE SDQL2_TICK_CHECK SDQL2_HALT_CHECK - select_text = text_list.Join() + select_text = text_list if("update") if("set" in query_tree) @@ -1031,6 +1031,8 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null v = SSmapping if("SSevents") v = SSevents + if("SSeconomy") + v = SSeconomy //End else return null From d7397d50195fced901a613d6d2760552826ac7d7 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 23 Dec 2018 20:44:32 -0800 Subject: [PATCH 112/237] Update SDQL_2.dm --- code/modules/admin/verbs/SDQL2/SDQL_2.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index d3cb654eeb..d2a106f917 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -683,7 +683,7 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null /datum/SDQL2_query/proc/SDQL_print(object, list/text_list, print_nulls = TRUE) if(is_proper_datum(object)) - text_list += "[REF(object)] : [object]" + text_list += "[REF(object)] : [object]" if(istype(object, /atom)) var/atom/A = object var/turf/T = A.loc From 502fb7cec8c1ed49d79d48d5702b15bc63ea716a Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 23 Dec 2018 20:44:50 -0800 Subject: [PATCH 113/237] Update SDQL_2.dm --- code/modules/admin/verbs/SDQL2/SDQL_2.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index d2a106f917..85866d5c51 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -1031,8 +1031,6 @@ GLOBAL_DATUM_INIT(sdql2_vv_statobj, /obj/effect/statclick/SDQL2_VV_all, new(null v = SSmapping if("SSevents") v = SSevents - if("SSeconomy") - v = SSeconomy //End else return null From 96b4171044f43f912d52dccea33640d0791931ae Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 24 Dec 2018 01:52:08 -0800 Subject: [PATCH 114/237] Update neurotoxin.dm --- code/modules/projectiles/projectile/special/neurotoxin.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/projectile/special/neurotoxin.dm b/code/modules/projectiles/projectile/special/neurotoxin.dm index def7ea187e..3a0bacd0f1 100644 --- a/code/modules/projectiles/projectile/special/neurotoxin.dm +++ b/code/modules/projectiles/projectile/special/neurotoxin.dm @@ -10,5 +10,5 @@ nodamage = TRUE else if(isliving(target)) var/mob/living/L = target - L.Knockdown(100, override_duration = 30, override_stam = 25) + L.Knockdown(100, override_hardstun = 30, override_stamdmg = 25) return ..() From 0d78a109f6a36be7ed07046cb11e90a98e7dd890 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 24 Dec 2018 01:52:24 -0800 Subject: [PATCH 115/237] Update human_defense.dm --- code/modules/mob/living/carbon/human/human_defense.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 4185f8f3aa..6e845330c8 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -273,7 +273,7 @@ else playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) if(!lying) //CITADEL EDIT - Knockdown(100, override_duration = 30, override_stam = 25) + Knockdown(100, override_hardstun = 30, override_stamdmg = 25) else Knockdown(100) log_combat(M, src, "tackled") From 1db9e44f5b5af24fc4ff9029f1b271098f47da41 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Fri, 28 Dec 2018 10:09:42 -0600 Subject: [PATCH 116/237] Adds two donation items --- icons/mob/custom_w.dmi | Bin 26388 -> 26662 bytes icons/obj/custom.dmi | Bin 19683 -> 20061 bytes .../code/modules/client/loadout/__donator.dm | 12 ++++++++++++ .../modules/custom_loadout/custom_items.dm | 10 ++++++++++ 4 files changed, 22 insertions(+) diff --git a/icons/mob/custom_w.dmi b/icons/mob/custom_w.dmi index dc79247d48cbc51bbe9296ebec85ae688f7b6a08..a3580bdc42f90926f0a49ff149497e7aab05bd1b 100644 GIT binary patch literal 26662 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 Z^NPCYGwL__0EkLKnyR`gpOkE0{2%eRVom@6 literal 26388 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 delta 19420 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򼻡PPapgb4+oR7|G-B~n$H5f6PVbU^(&|O+%9i*$VD)x5*ZVK zH_QY%gl@Oqx}ya=5W~+~W0>6xkcqF#l}AQ4f`VW+lHxEVaY$6v!_vIga7cfn*=T8k z1w~8UG=w-~Y)=Nq9@+YHlnFRqG59#aI%-;blR0S2MANQ^`5H>!;asQIi7;0JcPyD&rKKfs{hjYnsm)x0*(l%00)&PuHb1vysi|E6g~Up;qU z8-`}XA_j4iMRk0X=eb{mJ^E;Jc zAi3^AQajWShY?V{D4;ZOEUe*V#dRpau4h6x!anC@y2m?g`b)%j0o30Tjy?fK09 zJdknvrV8F}#)<*coP11J4+W4gQhd8f9{r=fNe66evEUckrR6(AOGx_mjyw2Th9Q3`0PZmA9r`hiaua+ci^7Ic=Hr+}wtdmtC z%C7{(341!2_&yw18H>Fn$-AQ(g!bVGzYkUSQja&ErwbXQg@5V+0l7?yMd^Edw!apj zTS70G@nM>b22i%Qw?S@oKEZaJI#>RP88wsiAC0Pq=;_�|Mw|4QIc9XSC4zULbn@ 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 diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm index eda53c0afe..4d9211f7a2 100644 --- a/modular_citadel/code/modules/client/loadout/__donator.dm +++ b/modular_citadel/code/modules/client/loadout/__donator.dm @@ -344,3 +344,15 @@ datum/gear/darksabresheath category = SLOT_WEAR_SUIT path = /obj/item/clothing/suit/hooded/ian_costume ckeywhitelist = list("cathodetherobot") + +/datum/gear/sharkcloth + name = "Leon's Skimpy Outfit" + category = SLOT_WEAR_SUIT + path = /obj/item/clothing/under/leoskimpy + ckeywhitelist = list("spectrosis") + +/datum/gear/mimemask + name = "Mime Mask" + category = SLOT_WEAR_MASK + path = /obj/item/clothing/mask/gas/mime + ckeywhitelist = list("pireamaineach") \ No newline at end of file diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm index 8e26f8014f..2b4935ae7b 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -420,3 +420,13 @@ item_state = "Divine_robes" icon_state = "Divine_robes" mutantrace_variation = NO_MUTANTRACE_VARIATION + +/obj/item/clothing/under/leoskimpy + name = "Leon's Skimpy Outfit" + icon = 'icons/obj/custom.dmi' + alternate_worn_icon = 'icons/obj/custom_w.dmi' + desc = "A rather skimpy outfit." + item_state = "shark_cloth" + icon_state = "shark_cloth" + mutantrace_variation = NO_MUTANTRACE_VARIATION + From a73d43a664b7d34149d4b2314f2873a5797db81d Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 28 Dec 2018 19:48:12 -0500 Subject: [PATCH 117/237] FIXES MASTER --- modular_citadel/code/modules/custom_loadout/custom_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm index 2b4935ae7b..0d9e81e15a 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -424,7 +424,7 @@ /obj/item/clothing/under/leoskimpy name = "Leon's Skimpy Outfit" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/obj/custom_w.dmi' + alternate_worn_icon = 'icons/mob/custom_w.dmi' desc = "A rather skimpy outfit." item_state = "shark_cloth" icon_state = "shark_cloth" From c1af846c58c6eca1b9a1700e0870e4af40c640fd Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 28 Dec 2018 20:26:38 -0500 Subject: [PATCH 118/237] fixes the syndicate mask --- modular_citadel/code/datums/components/phantomthief.dm | 2 +- modular_citadel/code/modules/clothing/glasses/phantomthief.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modular_citadel/code/datums/components/phantomthief.dm b/modular_citadel/code/datums/components/phantomthief.dm index c09d17d930..d34e16f6e9 100644 --- a/modular_citadel/code/datums/components/phantomthief.dm +++ b/modular_citadel/code/datums/components/phantomthief.dm @@ -39,7 +39,7 @@ if(!istype(user)) return if(!combattoggle_redir) - combattoggle_redir = user.AddComponent(/datum/component/redirect,list(COMSIG_COMBAT_TOGGLED),CALLBACK(src,.proc/handlefilterstuff)) + combattoggle_redir = user.AddComponent(/datum/component/redirect, list(COMSIG_COMBAT_TOGGLED = CALLBACK(src, .proc/handlefilterstuff))) /datum/component/phantomthief/proc/OnDropped(mob/user) if(!istype(user)) diff --git a/modular_citadel/code/modules/clothing/glasses/phantomthief.dm b/modular_citadel/code/modules/clothing/glasses/phantomthief.dm index e9d31f73d3..49eb089afa 100644 --- a/modular_citadel/code/modules/clothing/glasses/phantomthief.dm +++ b/modular_citadel/code/modules/clothing/glasses/phantomthief.dm @@ -36,7 +36,7 @@ if(!istype(user)) return if(!combattoggle_redir) - combattoggle_redir = user.AddComponent(/datum/component/redirect,list(COMSIG_COMBAT_TOGGLED),CALLBACK(src,.proc/injectadrenaline)) + combattoggle_redir = user.AddComponent(/datum/component/redirect, list(COMSIG_COMBAT_TOGGLED = CALLBACK(src, .proc/injectadrenaline))) /obj/item/clothing/glasses/phantomthief/syndicate/dropped(mob/user) . = ..() From 5c3eb5b00e26413bd72dc888ef6dfb466a3143b2 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 30 Dec 2018 22:22:45 -0800 Subject: [PATCH 119/237] Update neurotoxin.dm --- code/modules/projectiles/projectile/special/neurotoxin.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/projectile/special/neurotoxin.dm b/code/modules/projectiles/projectile/special/neurotoxin.dm index 3a0bacd0f1..baf1495abb 100644 --- a/code/modules/projectiles/projectile/special/neurotoxin.dm +++ b/code/modules/projectiles/projectile/special/neurotoxin.dm @@ -10,5 +10,5 @@ nodamage = TRUE else if(isliving(target)) var/mob/living/L = target - L.Knockdown(100, override_hardstun = 30, override_stamdmg = 25) + L.Knockdown(100, TRUE, FALSE, 30, 25) return ..() From 8bada7f96198e2e102419b94bc6aba2b433f97ee Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 30 Dec 2018 22:23:13 -0800 Subject: [PATCH 120/237] Update human_defense.dm --- code/modules/mob/living/carbon/human/human_defense.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 6e845330c8..ce906565d2 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -273,7 +273,7 @@ else playsound(loc, 'sound/weapons/pierce.ogg', 25, 1, -1) if(!lying) //CITADEL EDIT - Knockdown(100, override_hardstun = 30, override_stamdmg = 25) + Knockdown(100, TRUE, FALSE, 30, 25) else Knockdown(100) log_combat(M, src, "tackled") From addea6f21c325a3e534a069b4fef91e597f0132a Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 31 Dec 2018 06:05:39 -0500 Subject: [PATCH 121/237] Adds fans to each white ship hopefully at all doors leading to space! - Requested by Seras/Others (#7862) * Fixing updater * Adds fans * Adds fan * Update whiteship_meta.dmm * Update whiteship_delta.dmm --- _maps/shuttles/whiteship_box.dmm | 7 +++++++ _maps/shuttles/whiteship_delta.dmm | 7 +++++++ _maps/shuttles/whiteship_meta.dmm | 11 +++++++++++ _maps/shuttles/whiteship_pubby.dmm | 2 ++ 4 files changed, 27 insertions(+) diff --git a/_maps/shuttles/whiteship_box.dmm b/_maps/shuttles/whiteship_box.dmm index 8dc007ec95..3385f89dbd 100644 --- a/_maps/shuttles/whiteship_box.dmm +++ b/_maps/shuttles/whiteship_box.dmm @@ -14,6 +14,7 @@ /area/shuttle/abandoned/crew) "ae" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/docking_port/mobile{ callTime = 250; @@ -148,6 +149,7 @@ /area/shuttle/abandoned/crew) "ap" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, @@ -737,6 +739,7 @@ /obj/effect/turf_decal/bot, /obj/item/reagent_containers/glass/bucket, /obj/item/mop, +/obj/item/assembly/prox_sensor, /obj/item/storage/bag/trash{ pixel_x = 6 }, @@ -954,6 +957,7 @@ /area/shuttle/abandoned/engine) "bm" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -1130,6 +1134,7 @@ /area/shuttle/abandoned/bridge) "by" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/shuttle/abandoned/engine) @@ -2599,6 +2604,7 @@ /area/shuttle/abandoned/medbay) "do" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; @@ -2670,6 +2676,7 @@ /area/shuttle/abandoned/medbay) "dt" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, diff --git a/_maps/shuttles/whiteship_delta.dmm b/_maps/shuttles/whiteship_delta.dmm index 160f6adfd5..88027243fb 100644 --- a/_maps/shuttles/whiteship_delta.dmm +++ b/_maps/shuttles/whiteship_delta.dmm @@ -19,6 +19,7 @@ /area/shuttle/abandoned/crew) "ad" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/docking_port/mobile{ callTime = 250; @@ -439,6 +440,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/structure/fans, /obj/machinery/door/airlock/external/glass{ name = "E.V.A Access" }, @@ -624,6 +626,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/structure/fans, /obj/machinery/door/airlock/external/glass{ name = "E.V.A Access" }, @@ -2528,6 +2531,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/structure/fans, /obj/machinery/door/airlock/external/glass{ name = "E.V.A Access" }, @@ -2552,6 +2556,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/structure/fans, /obj/machinery/door/airlock/external/glass{ name = "E.V.A Access" }, @@ -2782,6 +2787,7 @@ /area/shuttle/abandoned/medbay) "dI" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; @@ -3103,6 +3109,7 @@ /area/shuttle/abandoned/cargo) "eb" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, diff --git a/_maps/shuttles/whiteship_meta.dmm b/_maps/shuttles/whiteship_meta.dmm index a7f977c34e..0a6a5d9b71 100644 --- a/_maps/shuttles/whiteship_meta.dmm +++ b/_maps/shuttles/whiteship_meta.dmm @@ -34,6 +34,7 @@ /area/shuttle/abandoned/crew) "ah" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/docking_port/mobile{ callTime = 250; @@ -458,6 +459,7 @@ /area/shuttle/abandoned/crew) "aI" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, @@ -583,6 +585,7 @@ name = "dust" }, /obj/machinery/door/airlock/external, +/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, @@ -704,6 +707,7 @@ name = "dust" }, /obj/machinery/door/airlock/external, +/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, @@ -1893,6 +1897,7 @@ /area/shuttle/abandoned/bridge) "ch" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, @@ -1915,6 +1920,7 @@ /area/shuttle/abandoned/engine) "cj" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, @@ -3094,6 +3100,7 @@ name = "dust" }, /obj/machinery/door/airlock/external, +/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, @@ -3164,6 +3171,7 @@ name = "dust" }, /obj/machinery/door/airlock/external, +/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, @@ -3432,6 +3440,7 @@ /obj/item/shovel, /obj/item/pickaxe, /obj/item/storage/box/lights/mixed, +/obj/item/storage/box/lights/mixed, /obj/item/mining_scanner, /obj/effect/turf_decal/bot, /turf/open/floor/plating, @@ -3514,6 +3523,7 @@ /area/shuttle/abandoned/bar) "dP" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; @@ -3808,6 +3818,7 @@ /area/shuttle/abandoned/cargo) "ej" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, diff --git a/_maps/shuttles/whiteship_pubby.dmm b/_maps/shuttles/whiteship_pubby.dmm index 11214ef260..25c3250668 100644 --- a/_maps/shuttles/whiteship_pubby.dmm +++ b/_maps/shuttles/whiteship_pubby.dmm @@ -15,6 +15,7 @@ /obj/machinery/door/airlock/public/glass{ name = "Shuttle Airlock" }, +/obj/structure/fans, /turf/open/floor/plasteel/dark, /area/shuttle/abandoned) "e" = ( @@ -96,6 +97,7 @@ preferred_direction = 1; width = 9 }, +/obj/structure/fans, /turf/open/floor/plasteel/dark, /area/shuttle/abandoned) "p" = ( From f2ae556ee4dbe658b7106b8c656bf44c29b3c861 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 31 Dec 2018 06:06:50 -0500 Subject: [PATCH 122/237] Adds two boxes of candles to DEEP (#7851) --- _maps/RandomRuins/SpaceRuins/deepstorage.dmm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm index 0ff30453f2..bf4f0dbfa6 100644 --- a/_maps/RandomRuins/SpaceRuins/deepstorage.dmm +++ b/_maps/RandomRuins/SpaceRuins/deepstorage.dmm @@ -170,6 +170,8 @@ /obj/item/storage/box/monkeycubes, /obj/item/storage/toolbox/drone, /obj/item/storage/toolbox/drone, +/obj/item/storage/fancy/candle_box, +/obj/item/storage/fancy/candle_box, /obj/effect/turf_decal/delivery, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, From cbae32f82d24ae01ed9ad373d1bbfd6fffe3c4fa Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 31 Dec 2018 06:07:20 -0500 Subject: [PATCH 123/237] [Ready] Cargo packets with RLD RCD and IRCD! (#7840) * *oh no* * I know I know * Update packs.dm * Last touches * "Not that op" * Update packs.dm * makes the IRCD * Update packs.dm --- code/game/objects/items/RCD.dm | 12 +++++++- code/modules/cargo/packs.dm | 52 ++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index a1f6639865..82315b8f35 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -445,13 +445,23 @@ RLD matter = 160 /obj/item/construction/rcd/combat - name = "industrial RCD" + name = "Combat RCD" + desc = "A device used to rapidly build and deconstruct. Reload with metal, plasteel, glass or compressed matter cartridges. This RCD has been upgraded to be able to remove Rwalls!" icon_state = "ircd" item_state = "ircd" max_matter = 500 matter = 500 canRturf = TRUE +/obj/item/construction/rcd/industrial + name = "industrial RCD" + icon_state = "ircd" + item_state = "ircd" + max_matter = 500 + matter = 500 + delay_mod = 0.6 + sheetmultiplier = 8 + /obj/item/rcd_ammo name = "compressed matter cartridge" desc = "Highly compressed matter for the RCD." diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 1bf41e3d25..a8874738f7 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -81,6 +81,15 @@ crate_name = "emergency crate" crate_type = /obj/structure/closet/crate/internals +/datum/supply_pack/emergency/rcds + name = "Emergency RCDs" + desc = "Bombs going off on station? SME blown and now you need to fix the hole it left behind? Well this crate has a pare of Rcds to be able to easily fix up any problem you may have!" + cost = 1500 + contains = list(/obj/item/construction/rcd, + /obj/item/construction/rcd) + crate_name = "emergency rcds" + crate_type = /obj/structure/closet/crate/internals + /datum/supply_pack/emergency/soft_suit name = "Emergency Space Suit " desc = "Is there bombs going off left and right? Is there meteors shooting around the station? Well we have two fragile space suit for emergencys as well as air and masks." @@ -666,6 +675,15 @@ /obj/item/clothing/suit/space/hardsuit/engine) crate_name = "engineering hardsuit" +/datum/supply_pack/engineering/industrialrcd + name = "Industrial RCD" + desc = "A industrial RCD in case the station has gone through more then one meteor storm and the CE needs to bring out the somthing a bit more reliable. Dose not contain spare ammo for the industrial RCD or any other RCD modles." + cost = 4500 + access = ACCESS_CE + contains = list(/obj/item/construction/rcd/industrial) + crate_name = "industrial rcd" + crate_type = /obj/structure/closet/crate/secure/engineering + /datum/supply_pack/engineering/powergamermitts name = "Insulated Gloves Crate" desc = "The backbone of modern society. Barely ever ordered for actual engineering. Contains three insulated gloves." @@ -1011,6 +1029,28 @@ contains = list(/obj/item/stack/sheet/mineral/wood/fifty) crate_name = "wood planks crate" +/datum/supply_pack/materials/rcdammo + name = "Spare RDC ammo" + desc = "This crate contains sixteen RCD ammo packs, to help with any holes or projects people mite be working on." + cost = 3750 + contains = list(/obj/item/rcd_ammo, + /obj/item/rcd_ammo, + /obj/item/rcd_ammo, + /obj/item/rcd_ammo, + /obj/item/rcd_ammo, + /obj/item/rcd_ammo, + /obj/item/rcd_ammo, + /obj/item/rcd_ammo, + /obj/item/rcd_ammo, + /obj/item/rcd_ammo, + /obj/item/rcd_ammo, + /obj/item/rcd_ammo, + /obj/item/rcd_ammo, + /obj/item/rcd_ammo, + /obj/item/rcd_ammo, + /obj/item/rcd_ammo) + crate_name = "rcd ammo" + /datum/supply_pack/materials/bz name = "BZ Canister Crate" desc = "Contains a canister of BZ. Requires Toxins access to open." @@ -1688,6 +1728,18 @@ crate_name = "hydroponics backpack crate" crate_type = /obj/structure/closet/crate/secure +/datum/supply_pack/organic/advlighting + name = "Advanced Lighting crate" + desc = "Thanks to advanced lighting tech we here at the Lamp Factor have be able to produce more lamps and lamp items! This crate has three lamps, a box of lights and a state of the art rapid-light-device!" + cost = 2500 //Fair + contains = list(/obj/item/construction/rld, + /obj/item/flashlight/lamp, + /obj/item/flashlight/lamp, + /obj/item/flashlight/lamp/green, + /obj/item/storage/box/lights/mixed) + crate_name = "advanced lighting crate" + crate_type = /obj/structure/closet/crate/secure + /datum/supply_pack/organic/pizza name = "Pizza Crate" desc = "Best prices on this side of the galaxy. All deliveries are guaranteed to be 99% anomaly-free!" From f2126c6d9e22440bc6efc493b8164573d6f0c349 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Mon, 31 Dec 2018 06:07:46 -0500 Subject: [PATCH 124/237] Makes stamcrit completely unaffected by health (#7865) * makes stamina completely unaffected by health * oh, and these lines too --- modular_citadel/code/modules/mob/living/living.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modular_citadel/code/modules/mob/living/living.dm b/modular_citadel/code/modules/mob/living/living.dm index 955263b7af..b07b8ed64b 100644 --- a/modular_citadel/code/modules/mob/living/living.dm +++ b/modular_citadel/code/modules/mob/living/living.dm @@ -102,9 +102,9 @@ return FALSE /mob/living/carbon/update_stamina() - var/total_health = (min(health*2,100) - getStaminaLoss()) - if(getStaminaLoss()) - if(!recoveringstam && total_health <= STAMINA_CRIT_TRADITIONAL && !stat) + var/total_health = getStaminaLoss() + if(total_health) + if(!recoveringstam && total_health >= STAMINA_CRIT && !stat) to_chat(src, "You're too exhausted to keep going...") resting = TRUE if(combatmode) @@ -112,7 +112,7 @@ recoveringstam = TRUE filters += CIT_FILTER_STAMINACRIT update_canmove() - if(recoveringstam && total_health >= STAMINA_SOFTCRIT_TRADITIONAL) + if(recoveringstam && total_health <= STAMINA_SOFTCRIT) to_chat(src, "You don't feel nearly as exhausted anymore.") recoveringstam = FALSE filters -= CIT_FILTER_STAMINACRIT From 35a914778df5c84a545ef23113854bd92ba5b2bc Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 31 Dec 2018 05:07:48 -0600 Subject: [PATCH 125/237] Automatic changelog generation for PR #7865 [ci skip] --- html/changelogs/AutoChangeLog-pr-7865.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7865.yml diff --git a/html/changelogs/AutoChangeLog-pr-7865.yml b/html/changelogs/AutoChangeLog-pr-7865.yml new file mode 100644 index 0000000000..a75282b293 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7865.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - balance: "Stamina is no longer affected by health at all." From be568777d2e4dc4f31eea9eabe706b19e17bcd7e Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 31 Dec 2018 06:10:47 -0500 Subject: [PATCH 126/237] [Ready] Buffs RPEDs (#7853) * Buffs RPEDs * maybe --- code/datums/components/storage/concrete/rped.dm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/code/datums/components/storage/concrete/rped.dm b/code/datums/components/storage/concrete/rped.dm index adf08b089b..e1cc4ff6ae 100644 --- a/code/datums/components/storage/concrete/rped.dm +++ b/code/datums/components/storage/concrete/rped.dm @@ -5,7 +5,7 @@ click_gather = TRUE max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = 100 - max_items = 75 + max_items = 100 display_numerical_stacking = TRUE /datum/component/storage/concrete/rped/can_be_inserted(obj/item/I, stop_messages, mob/M) @@ -22,7 +22,7 @@ click_gather = TRUE max_w_class = WEIGHT_CLASS_BULKY // can fit vending refills max_combined_w_class = 800 - max_items = 325 + max_items = 350 display_numerical_stacking = TRUE /datum/component/storage/concrete/bluespace/rped/can_be_inserted(obj/item/I, stop_messages, mob/M) @@ -31,3 +31,6 @@ if (!stop_messages) to_chat(M, "[parent] only accepts machine parts!") return FALSE + +/datum/component/storage/concrete/cyborg/rped + max_items = 150 From df2090a0872f224b6aacf353c4075c81b4b15cb7 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 31 Dec 2018 06:11:10 -0500 Subject: [PATCH 127/237] QM is a head (#7855) --- code/game/gamemodes/revolution/revolution.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index 5029eaa03a..09047b05a9 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -36,7 +36,7 @@ /////////////////////////// /datum/game_mode/revolution/announce() to_chat(world, "The current game mode is - Revolution!") - to_chat(world, "Some crewmembers are attempting to start a revolution!
\nRevolutionaries - Kill the Captain, HoP, HoS, CE, RD and CMO. Convert other crewmembers (excluding the heads of staff, and security officers) to your cause by flashing them. Protect your leaders.
\nPersonnel - Protect the heads of staff. Kill the leaders of the revolution, and brainwash the other revolutionaries (by beating them in the head).
") + to_chat(world, "Some crewmembers are attempting to start a revolution!
\nRevolutionaries - Kill the Captain, HoP, HoS, CE, RD, QM and CMO. Convert other crewmembers (excluding the heads of staff, and security officers) to your cause by flashing them. Protect your leaders.
\nPersonnel - Protect the heads of staff. Kill the leaders of the revolution, and brainwash the other revolutionaries (by beating them in the head).
") /////////////////////////////////////////////////////////////////////////////// From 1f1c5b371066ec9d65bfc520788991832a8c6519 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 31 Dec 2018 06:11:44 -0500 Subject: [PATCH 128/237] [Ready] Adds in a scatter shot Bulldog drum! (#7863) * Fixing updater * adds the ammo * Update uplink_items.dm * Update shotgun.dm * Update uplink_items.dm --- .../modules/projectiles/boxes_magazines/external/shotgun.dm | 5 +++++ code/modules/uplink/uplink_items.dm | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/code/modules/projectiles/boxes_magazines/external/shotgun.dm b/code/modules/projectiles/boxes_magazines/external/shotgun.dm index bb04446129..1fa3db28b5 100644 --- a/code/modules/projectiles/boxes_magazines/external/shotgun.dm +++ b/code/modules/projectiles/boxes_magazines/external/shotgun.dm @@ -34,3 +34,8 @@ name = "shotgun magazine (12g meteor slugs)" icon_state = "m12gbc" ammo_type = /obj/item/ammo_casing/shotgun/meteorslug + +/obj/item/ammo_box/magazine/m12g/scatter + name = "shotgun magazine (12g scatter laser shot slugs)" + icon_state = "m12gb" + ammo_type = /obj/item/ammo_casing/shotgun/laserslug diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 32eaf0cde9..ee4a0c3aad 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -506,6 +506,12 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/ammo_box/magazine/m12g/meteor include_modes = list(/datum/game_mode/nuclear) +/datum/uplink_item/ammo/shotgun/scatter + name = "12g Scatter Laser shot Slugs" + desc = "An alternative 8-round Scatter Laser Shot magazine for use in the Bulldog shotgun." + item = /obj/item/ammo_box/magazine/m12g/scatter + cost = 3 + /datum/uplink_item/ammo/shotgun/bag name = "12g Ammo Duffel Bag" desc = "A duffel bag filled with enough 12g ammo to supply an entire team, at a discounted price." From f140d56b437be725fbf2b9cc498bb0746f94f443 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 31 Dec 2018 23:41:01 -0800 Subject: [PATCH 129/237] Update coil.dm --- code/modules/power/tesla/coil.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm index 33ebefbf4c..2265f806a5 100644 --- a/code/modules/power/tesla/coil.dm +++ b/code/modules/power/tesla/coil.dm @@ -94,7 +94,7 @@ var/power = (powernet.avail/2) add_load(power) playsound(src.loc, 'sound/magic/lightningshock.ogg', 100, 1, extrarange = 5) - tesla_zap(src, 10, power/(coeff/2)) + tesla_zap(src, 10, power/(coeff/2), TESLA_FUSION_FLAGS) tesla_buckle_check(power/(coeff/2)) // Tesla R&D researcher @@ -174,4 +174,4 @@ flick("grounding_rodhit", src) tesla_buckle_check(power) else - ..() \ No newline at end of file + ..() From c620beec65ebae68ea6403f70e11f13347a14b44 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 1 Jan 2019 00:05:53 -0800 Subject: [PATCH 130/237] Update ninja_event.dm --- code/modules/ninja/ninja_event.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/ninja/ninja_event.dm b/code/modules/ninja/ninja_event.dm index 9fd8e4baf2..ccd9b765c1 100644 --- a/code/modules/ninja/ninja_event.dm +++ b/code/modules/ninja/ninja_event.dm @@ -33,7 +33,6 @@ Contents: control.occurrences-- return ..() - /datum/round_event/ghost_role/ninja/spawn_role() //selecting a spawn_loc if(!spawn_loc) @@ -74,6 +73,7 @@ Contents: spawned_mobs += Ninja message_admins("[ADMIN_LOOKUPFLW(Ninja)] has been made into a ninja by an event.") log_game("[key_name(Ninja)] was spawned as a ninja by an event.") + success_spawn = TRUE return SUCCESSFUL_SPAWN @@ -86,4 +86,4 @@ Contents: A.real_name = "[pick(GLOB.ninja_titles)] [pick(GLOB.ninja_names)]" A.copy_to(new_ninja) new_ninja.dna.update_dna_identity() - return new_ninja \ No newline at end of file + return new_ninja From ba24207f86c8827e887453127ae15fe206f2f509 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 1 Jan 2019 00:06:13 -0800 Subject: [PATCH 131/237] Update devil.dm --- code/modules/events/devil.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/events/devil.dm b/code/modules/events/devil.dm index 3760cbe05d..7d6e0bd441 100644 --- a/code/modules/events/devil.dm +++ b/code/modules/events/devil.dm @@ -39,6 +39,7 @@ var/datum/job/jobdatum = SSjob.GetJob("Assistant") devil.job = jobdatum.title jobdatum.equip(devil) + success_spawn = TRUE return SUCCESSFUL_SPAWN From de551bc0c6fa61db93866d6170bb1c87e569e0e1 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Wed, 2 Jan 2019 02:21:23 -0500 Subject: [PATCH 139/237] Revert "Adds fans to each white ship hopefully at all doors leading to space! - Requested by Seras/Others (#7862)" This reverts commit addea6f21c325a3e534a069b4fef91e597f0132a. --- _maps/shuttles/whiteship_box.dmm | 7 ------- _maps/shuttles/whiteship_delta.dmm | 7 ------- _maps/shuttles/whiteship_meta.dmm | 11 ----------- _maps/shuttles/whiteship_pubby.dmm | 2 -- 4 files changed, 27 deletions(-) diff --git a/_maps/shuttles/whiteship_box.dmm b/_maps/shuttles/whiteship_box.dmm index 3385f89dbd..8dc007ec95 100644 --- a/_maps/shuttles/whiteship_box.dmm +++ b/_maps/shuttles/whiteship_box.dmm @@ -14,7 +14,6 @@ /area/shuttle/abandoned/crew) "ae" = ( /obj/machinery/door/airlock/external, -/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/docking_port/mobile{ callTime = 250; @@ -149,7 +148,6 @@ /area/shuttle/abandoned/crew) "ap" = ( /obj/machinery/door/airlock/external, -/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, @@ -739,7 +737,6 @@ /obj/effect/turf_decal/bot, /obj/item/reagent_containers/glass/bucket, /obj/item/mop, -/obj/item/assembly/prox_sensor, /obj/item/storage/bag/trash{ pixel_x = 6 }, @@ -957,7 +954,6 @@ /area/shuttle/abandoned/engine) "bm" = ( /obj/machinery/door/airlock/external, -/obj/structure/fans, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -1134,7 +1130,6 @@ /area/shuttle/abandoned/bridge) "by" = ( /obj/machinery/door/airlock/external, -/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/shuttle/abandoned/engine) @@ -2604,7 +2599,6 @@ /area/shuttle/abandoned/medbay) "do" = ( /obj/machinery/door/airlock/external, -/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; @@ -2676,7 +2670,6 @@ /area/shuttle/abandoned/medbay) "dt" = ( /obj/machinery/door/airlock/external, -/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, diff --git a/_maps/shuttles/whiteship_delta.dmm b/_maps/shuttles/whiteship_delta.dmm index 88027243fb..160f6adfd5 100644 --- a/_maps/shuttles/whiteship_delta.dmm +++ b/_maps/shuttles/whiteship_delta.dmm @@ -19,7 +19,6 @@ /area/shuttle/abandoned/crew) "ad" = ( /obj/machinery/door/airlock/external, -/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/docking_port/mobile{ callTime = 250; @@ -440,7 +439,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/fans, /obj/machinery/door/airlock/external/glass{ name = "E.V.A Access" }, @@ -626,7 +624,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/fans, /obj/machinery/door/airlock/external/glass{ name = "E.V.A Access" }, @@ -2531,7 +2528,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/fans, /obj/machinery/door/airlock/external/glass{ name = "E.V.A Access" }, @@ -2556,7 +2552,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/fans, /obj/machinery/door/airlock/external/glass{ name = "E.V.A Access" }, @@ -2787,7 +2782,6 @@ /area/shuttle/abandoned/medbay) "dI" = ( /obj/machinery/door/airlock/external, -/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; @@ -3109,7 +3103,6 @@ /area/shuttle/abandoned/cargo) "eb" = ( /obj/machinery/door/airlock/external, -/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, diff --git a/_maps/shuttles/whiteship_meta.dmm b/_maps/shuttles/whiteship_meta.dmm index 0a6a5d9b71..a7f977c34e 100644 --- a/_maps/shuttles/whiteship_meta.dmm +++ b/_maps/shuttles/whiteship_meta.dmm @@ -34,7 +34,6 @@ /area/shuttle/abandoned/crew) "ah" = ( /obj/machinery/door/airlock/external, -/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/docking_port/mobile{ callTime = 250; @@ -459,7 +458,6 @@ /area/shuttle/abandoned/crew) "aI" = ( /obj/machinery/door/airlock/external, -/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, @@ -585,7 +583,6 @@ name = "dust" }, /obj/machinery/door/airlock/external, -/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, @@ -707,7 +704,6 @@ name = "dust" }, /obj/machinery/door/airlock/external, -/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, @@ -1897,7 +1893,6 @@ /area/shuttle/abandoned/bridge) "ch" = ( /obj/machinery/door/airlock/external, -/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, @@ -1920,7 +1915,6 @@ /area/shuttle/abandoned/engine) "cj" = ( /obj/machinery/door/airlock/external, -/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, @@ -3100,7 +3094,6 @@ name = "dust" }, /obj/machinery/door/airlock/external, -/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, @@ -3171,7 +3164,6 @@ name = "dust" }, /obj/machinery/door/airlock/external, -/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, @@ -3440,7 +3432,6 @@ /obj/item/shovel, /obj/item/pickaxe, /obj/item/storage/box/lights/mixed, -/obj/item/storage/box/lights/mixed, /obj/item/mining_scanner, /obj/effect/turf_decal/bot, /turf/open/floor/plating, @@ -3523,7 +3514,6 @@ /area/shuttle/abandoned/bar) "dP" = ( /obj/machinery/door/airlock/external, -/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; @@ -3818,7 +3808,6 @@ /area/shuttle/abandoned/cargo) "ej" = ( /obj/machinery/door/airlock/external, -/obj/structure/fans, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, diff --git a/_maps/shuttles/whiteship_pubby.dmm b/_maps/shuttles/whiteship_pubby.dmm index 25c3250668..11214ef260 100644 --- a/_maps/shuttles/whiteship_pubby.dmm +++ b/_maps/shuttles/whiteship_pubby.dmm @@ -15,7 +15,6 @@ /obj/machinery/door/airlock/public/glass{ name = "Shuttle Airlock" }, -/obj/structure/fans, /turf/open/floor/plasteel/dark, /area/shuttle/abandoned) "e" = ( @@ -97,7 +96,6 @@ preferred_direction = 1; width = 9 }, -/obj/structure/fans, /turf/open/floor/plasteel/dark, /area/shuttle/abandoned) "p" = ( From 02761a38c9487d36a6dfe31ff7655f40aa0579e2 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Wed, 2 Jan 2019 02:29:53 -0500 Subject: [PATCH 140/237] Correct fans --- _maps/shuttles/whiteship_box.dmm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/_maps/shuttles/whiteship_box.dmm b/_maps/shuttles/whiteship_box.dmm index 8dc007ec95..0404cede34 100644 --- a/_maps/shuttles/whiteship_box.dmm +++ b/_maps/shuttles/whiteship_box.dmm @@ -15,6 +15,7 @@ "ae" = ( /obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/fans/tiny, /obj/docking_port/mobile{ callTime = 250; dheight = 0; @@ -148,6 +149,7 @@ /area/shuttle/abandoned/crew) "ap" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, @@ -737,6 +739,7 @@ /obj/effect/turf_decal/bot, /obj/item/reagent_containers/glass/bucket, /obj/item/mop, +/obj/item/assembly/prox_sensor, /obj/item/storage/bag/trash{ pixel_x = 6 }, @@ -954,6 +957,7 @@ /area/shuttle/abandoned/engine) "bm" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -1130,6 +1134,7 @@ /area/shuttle/abandoned/bridge) "by" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/shuttle/abandoned/engine) @@ -2600,6 +2605,7 @@ "do" = ( /obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/structure/fans/tiny, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -2670,6 +2676,7 @@ /area/shuttle/abandoned/medbay) "dt" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, From fc5b9117f249d363ac562edbfd689b0dfb6feaf6 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Wed, 2 Jan 2019 02:35:23 -0500 Subject: [PATCH 141/237] Correct fans --- _maps/shuttles/whiteship_delta.dmm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/_maps/shuttles/whiteship_delta.dmm b/_maps/shuttles/whiteship_delta.dmm index 160f6adfd5..cc8eb19bab 100644 --- a/_maps/shuttles/whiteship_delta.dmm +++ b/_maps/shuttles/whiteship_delta.dmm @@ -19,6 +19,7 @@ /area/shuttle/abandoned/crew) "ad" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/docking_port/mobile{ callTime = 250; @@ -443,6 +444,7 @@ name = "E.V.A Access" }, /turf/open/floor/plasteel, +/obj/structure/fans/tiny, /area/shuttle/abandoned/crew) "aK" = ( /obj/effect/decal/cleanable/dirt{ @@ -628,6 +630,7 @@ name = "E.V.A Access" }, /obj/effect/decal/cleanable/dirt, +/obj/structure/fans/tiny, /turf/open/floor/plasteel, /area/shuttle/abandoned/bar) "aX" = ( @@ -2531,6 +2534,7 @@ /obj/machinery/door/airlock/external/glass{ name = "E.V.A Access" }, +/obj/structure/fans/tiny, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; name = "dust" @@ -2555,6 +2559,7 @@ /obj/machinery/door/airlock/external/glass{ name = "E.V.A Access" }, +/obj/structure/fans/tiny, /turf/open/floor/plasteel, /area/shuttle/abandoned/cargo) "ds" = ( @@ -2782,6 +2787,7 @@ /area/shuttle/abandoned/medbay) "dI" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; @@ -3103,6 +3109,7 @@ /area/shuttle/abandoned/cargo) "eb" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, From 0b556a46af2a345c65694430ba307146b48e1f91 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Wed, 2 Jan 2019 02:39:19 -0500 Subject: [PATCH 142/237] correct fans --- _maps/shuttles/whiteship_meta.dmm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/_maps/shuttles/whiteship_meta.dmm b/_maps/shuttles/whiteship_meta.dmm index a7f977c34e..84fff43a44 100644 --- a/_maps/shuttles/whiteship_meta.dmm +++ b/_maps/shuttles/whiteship_meta.dmm @@ -34,6 +34,7 @@ /area/shuttle/abandoned/crew) "ah" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/docking_port/mobile{ callTime = 250; @@ -458,6 +459,7 @@ /area/shuttle/abandoned/crew) "aI" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, @@ -583,6 +585,7 @@ name = "dust" }, /obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, @@ -704,6 +707,7 @@ name = "dust" }, /obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, @@ -1893,6 +1897,7 @@ /area/shuttle/abandoned/bridge) "ch" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, @@ -1915,6 +1920,7 @@ /area/shuttle/abandoned/engine) "cj" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, @@ -3094,6 +3100,7 @@ name = "dust" }, /obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, @@ -3164,6 +3171,7 @@ name = "dust" }, /obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, @@ -3432,6 +3440,7 @@ /obj/item/shovel, /obj/item/pickaxe, /obj/item/storage/box/lights/mixed, +/obj/item/storage/box/lights/mixed, /obj/item/mining_scanner, /obj/effect/turf_decal/bot, /turf/open/floor/plating, @@ -3514,6 +3523,7 @@ /area/shuttle/abandoned/bar) "dP" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/effect/decal/cleanable/dirt{ desc = "A thin layer of dust coating the floor."; @@ -3808,6 +3818,7 @@ /area/shuttle/abandoned/cargo) "ej" = ( /obj/machinery/door/airlock/external, +/obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, From 9618fecfb7133111cc4ee14a90c90172ae70d07e Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Wed, 2 Jan 2019 02:40:10 -0500 Subject: [PATCH 143/237] Correct fans --- _maps/shuttles/whiteship_pubby.dmm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_maps/shuttles/whiteship_pubby.dmm b/_maps/shuttles/whiteship_pubby.dmm index 11214ef260..fef3918e1d 100644 --- a/_maps/shuttles/whiteship_pubby.dmm +++ b/_maps/shuttles/whiteship_pubby.dmm @@ -15,6 +15,7 @@ /obj/machinery/door/airlock/public/glass{ name = "Shuttle Airlock" }, +/obj/structure/fans/tiny, /turf/open/floor/plasteel/dark, /area/shuttle/abandoned) "e" = ( @@ -96,6 +97,7 @@ preferred_direction = 1; width = 9 }, +/obj/structure/fans/tiny, /turf/open/floor/plasteel/dark, /area/shuttle/abandoned) "p" = ( From 2b2195baf5d63d4d6779c362c0ee847f171ffba1 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Wed, 2 Jan 2019 07:24:37 -0800 Subject: [PATCH 144/237] Update glowshroom.dm --- code/game/objects/effects/glowshroom.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm index 13497dfb8a..c009d3ec79 100644 --- a/code/game/objects/effects/glowshroom.dm +++ b/code/game/objects/effects/glowshroom.dm @@ -96,7 +96,7 @@ for(var/turf/open/floor/earth in view(3,src)) if(is_type_in_typecache(earth, blacklisted_glowshroom_turfs)) continue - if(!ownturf.CanAtmosPass(earth)) + if(!disease_air_spread_walk(ownturf, earth)) continue if(spreadsIntoAdjacent || !locate(/obj/structure/glowshroom) in view(1,earth)) possibleLocs += earth From b041f3318cb5df3e217ecf708fc7fb5c15475f5a Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 3 Jan 2019 04:29:36 -0800 Subject: [PATCH 145/237] Update electronics_designs.dm --- .../modules/research/designs/electronics_designs.dm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/code/modules/research/designs/electronics_designs.dm b/code/modules/research/designs/electronics_designs.dm index e9db641811..552976824d 100644 --- a/code/modules/research/designs/electronics_designs.dm +++ b/code/modules/research/designs/electronics_designs.dm @@ -118,3 +118,16 @@ build_path = /obj/item/disk/integrated_circuit/upgrade/clone category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +//CIT ADDITIONS +/datum/design/drone_shell + name = "Drone Shell" + desc = "A shell of a maintenance drone, an expendable robot built to perform station repairs." + id = "drone_shell" + build_type = MECHFAB | PROTOLATHE + materials = list(MAT_METAL = 800, MAT_GLASS = 350) + construction_time = 150 + build_path = /obj/item/drone_shell + category = list("Misc") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + From 906922a3e3ea06c452068a1622d3e5e8e17c5426 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 3 Jan 2019 04:30:24 -0800 Subject: [PATCH 146/237] Update all_nodes.dm --- code/modules/research/techweb/all_nodes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 826f8d05b8..04fed1a05c 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -254,7 +254,7 @@ display_name = "Basic Robotics Research" description = "Programmable machines that make our lives lazier." prereq_ids = list("base") - design_ids = list("paicard") + design_ids = list("paicard", "drone_shell") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) export_price = 5000 From 58347dad9b3e32822aa8aa2ea0ea6f09d9434166 Mon Sep 17 00:00:00 2001 From: Tupinambis <42078130+Tupinambis@users.noreply.github.com> Date: Thu, 3 Jan 2019 06:34:55 -0600 Subject: [PATCH 147/237] Stop self antagging you shits (#7878) --- .../LavaRuins/lavaland_surface_alien_nest.dmm | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm index 5c35c78274..6893a41517 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm @@ -34,11 +34,6 @@ /obj/structure/alien/weeds, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/ruin/unpowered/xenonest) -"ai" = ( -/obj/structure/alien/weeds, -/obj/structure/alien/egg, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) "aj" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, @@ -1219,12 +1214,12 @@ an ac ac aJ -ag +af ag ac ac ar -ai +ag ac an an @@ -1269,7 +1264,7 @@ an an ac Dd -ai +ag ak ag af @@ -1298,10 +1293,10 @@ aa ab ac ac -ai +ag ag at -ai +ag ac ag at @@ -1401,7 +1396,7 @@ ab ac af ag -af +ag ag af ac @@ -1807,7 +1802,7 @@ bD (25,1,1) = {" ab ac -ai +ag ag JM ag @@ -1816,7 +1811,7 @@ ac ag ar ag -ai +ag ac ab ab @@ -1860,7 +1855,7 @@ ab ac ac af -ai +ag af ag aF From b6488cb819b25f2a92305fd35ba97e9771e94763 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 3 Jan 2019 06:34:57 -0600 Subject: [PATCH 148/237] Automatic changelog generation for PR #7878 [ci skip] --- html/changelogs/AutoChangeLog-pr-7878.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7878.yml diff --git a/html/changelogs/AutoChangeLog-pr-7878.yml b/html/changelogs/AutoChangeLog-pr-7878.yml new file mode 100644 index 0000000000..6d10310d94 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7878.yml @@ -0,0 +1,4 @@ +author: "Tupinambis" +delete-after: True +changes: + - tweak: "Removed all living eggs from the xeno ruin because people self antag. Honk." From fd5908c081ecf7c86ea7f0e8ab65c7ba14b7e341 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Thu, 3 Jan 2019 07:35:17 -0500 Subject: [PATCH 149/237] Makes it possible to instantly get on your feet at the cost of 20 buffered stamina (#7866) --- .../mob/living/carbon/human/species.dm | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/modular_citadel/code/modules/mob/living/carbon/human/species.dm b/modular_citadel/code/modules/mob/living/carbon/human/species.dm index 8d50bf16b0..232725e320 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/species.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/species.dm @@ -13,11 +13,30 @@ H.visible_message("[M] attempted to touch [H]!") return TRUE switch(M.a_intent) - if("disarm") + if(INTENT_HELP) + if(M == H) + althelp(M, H, attacker_style) + return TRUE + return FALSE + if(INTENT_DISARM) altdisarm(M, H, attacker_style) return TRUE return FALSE +/datum/species/proc/althelp(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) + if(user == target && istype(user)) + if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) + to_chat(user, "You're too exhausted for that.") + return + if(!user.resting) + to_chat(user, "You can only force yourself up if you're on the ground.") + return + user.visible_message("[user] forces [p_them()]self up to [p_their()] feet!", "You force yourself up to your feet!") + user.resting = 0 + user.update_canmove() + user.adjustStaminaLossBuffered(user.stambuffer) //Rewards good stamina management by making it easier to instantly get up from resting + playsound(user, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + /datum/species/proc/altdisarm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) to_chat(user, "You're too exhausted.") From 2a3fb66410c31a96a5c22c81b2b4a06d7658f128 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 3 Jan 2019 06:35:19 -0600 Subject: [PATCH 150/237] Automatic changelog generation for PR #7866 [ci skip] --- html/changelogs/AutoChangeLog-pr-7866.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7866.yml diff --git a/html/changelogs/AutoChangeLog-pr-7866.yml b/html/changelogs/AutoChangeLog-pr-7866.yml new file mode 100644 index 0000000000..17435075e0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7866.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - rscadd: "You can now right-click yourself in help intent in combat mode to instantly get up from resting. This will cost stamina equal to your entire stamina buffer. Manage your stamina well, and you'll be able to shrug off a single stray golden bolt" From 6c8e0a67adfe0c1437100acae099612935e5d3f2 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Thu, 3 Jan 2019 07:35:45 -0500 Subject: [PATCH 151/237] Ports tgstation/tgstation#42035 - Notifies admins when Lone Op event chance is changed (#7876) * makes the nuke disk notify admins when the loneop event weight chance increases/decreases * oh and the logging too * fucking spaces sneaking into my ctrl+c > ctrl+v --- code/modules/antagonists/nukeop/equipment/nuclearbomb.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index e365f09b55..ade5458765 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -588,12 +588,18 @@ This is here to make the tiles around the station mininuke change when it's arme var/datum/round_event_control/operative/loneop = locate(/datum/round_event_control/operative) in SSevents.control if(istype(loneop)) loneop.weight += 1 + if(loneop.weight % 5 == 0) + message_admins("[src] is stationary in [ADMIN_VERBOSEJMP(newturf)]. The weight of Lone Operative is now [loneop.weight].") + log_game("[src] is stationary for too long in [loc_name(newturf)], and has increased the weight of the Lone Operative event to [loneop.weight].") else lastlocation = newturf last_disk_move = world.time var/datum/round_event_control/operative/loneop = locate(/datum/round_event_control/operative) in SSevents.control if(istype(loneop) && prob(loneop.weight)) loneop.weight = max(loneop.weight - 1, 0) + if(loneop.weight % 5 == 0) + message_admins("[src] is on the move (currently in [ADMIN_VERBOSEJMP(newturf)]). The weight of Lone Operative is now [loneop.weight].") + log_game("[src] being on the move has reduced the weight of the Lone Operative event to [loneop.weight].") /obj/item/disk/nuclear/examine(mob/user) . = ..() From 5c8d5484656772d18fdf69387e018c7cf7838edd Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 3 Jan 2019 06:35:47 -0600 Subject: [PATCH 152/237] Automatic changelog generation for PR #7876 [ci skip] --- html/changelogs/AutoChangeLog-pr-7876.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7876.yml diff --git a/html/changelogs/AutoChangeLog-pr-7876.yml b/html/changelogs/AutoChangeLog-pr-7876.yml new file mode 100644 index 0000000000..649c0cc916 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7876.yml @@ -0,0 +1,4 @@ +author: "coiax" +delete-after: True +changes: + - admin: "When the nuclear disk stays stationary long enough to trigger an increase for the lone op event chance, admins will be notified every five increments." From 09df2edf2588ee8f60fdfef45da6e7da548f83b1 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 3 Jan 2019 07:36:52 -0500 Subject: [PATCH 153/237] Update uplink_items.dm (#7877) --- code/modules/uplink/uplink_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index ee4a0c3aad..1e3060137a 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -510,7 +510,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "12g Scatter Laser shot Slugs" desc = "An alternative 8-round Scatter Laser Shot magazine for use in the Bulldog shotgun." item = /obj/item/ammo_box/magazine/m12g/scatter - cost = 3 + cost = 5 // most armor has less laser protection then bullet /datum/uplink_item/ammo/shotgun/bag name = "12g Ammo Duffel Bag" From 21f111b5e0169c6cf6fdcd5043819e986ed8c913 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 3 Jan 2019 07:38:10 -0500 Subject: [PATCH 154/237] [Ready] New mech weapon, Melon Seed Scatter shot! - Requested and helped made by Elllsiy (#7873) * Fixing updater * Adds the gunthingy * makes the bullet * Update mecha_designs.dm * Update all_nodes.dm * Fixes stam harm --- code/game/mecha/equipment/weapons/weapons.dm | 12 ++++++++++++ .../projectiles/projectile/bullets/shotgun.dm | 6 +++++- code/modules/research/designs/mecha_designs.dm | 10 ++++++++++ code/modules/research/techweb/all_nodes.dm | 9 +++++++++ 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 6c0795028b..d8c0fbeeb3 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -275,6 +275,18 @@ variance = 25 harmful = TRUE +/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/seedscatter + name = "\improper Melon Seed \"Scattershot\"" + desc = "A weapon for combat exosuits. Shoots a spread of pellets, shaped as seed." + icon_state = "mecha_scatter" + equip_cooldown = 30 + projectile = /obj/item/projectile/bullet/seed + projectiles = 4 + projectile_energy_cost = 55 + projectiles_per_shot = 10 + variance = 20 + harmful = TRUE + /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg name = "\improper Ultra AC 2" desc = "A weapon for combat exosuits. Shoots a rapid, three shot burst." diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm index 457ec78e9b..c8c4a73b3b 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -88,8 +88,12 @@ do_sparks(1, TRUE, src) ..() -// Mech Scattershot +// Mech Scattershots /obj/item/projectile/bullet/scattershot damage = 20 stamina = 65 + +/obj/item/projectile/bullet/seed + damage = 4 + stamina = 1 diff --git a/code/modules/research/designs/mecha_designs.dm b/code/modules/research/designs/mecha_designs.dm index cee0dc7413..3ee7d344dc 100644 --- a/code/modules/research/designs/mecha_designs.dm +++ b/code/modules/research/designs/mecha_designs.dm @@ -147,6 +147,16 @@ construction_time = 100 category = list("Exosuit Equipment") +/datum/design/mech_seedscatter + name = "Exosuit Weapon (Melon Seed \"Scattershot\")" + desc = "Allows for the construction of Melon Seed Scattershot." + id = "mech_seedscatter" + build_type = MECHFAB + build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/seedscatter + materials = list(MAT_METAL=10000, MAT_GLASS = 10000) + construction_time = 70 + category = list("Exosuit Equipment") + /datum/design/mech_carbine name = "Exosuit Weapon (FNX-99 \"Hades\" Carbine)" desc = "Allows for the construction of FNX-99 \"Hades\" Carbine." diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 826f8d05b8..28d9f6a202 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -724,6 +724,15 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 +/datum/techweb_node/mech_seedscatter + id = "mech_seedscatter" + display_name = "Exosuit Weapon (Melon Seed \"Scattershot\")" + description = "An advanced piece of mech weaponry" + prereq_ids = list("ballistic_weapons") + design_ids = list("mech_seedscatter") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + /datum/techweb_node/mech_carbine id = "mech_carbine" display_name = "Exosuit Weapon (FNX-99 \"Hades\" Carbine)" From c50ca750d8a5d13906715f5ded1512fed1c423af Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 3 Jan 2019 07:39:14 -0500 Subject: [PATCH 155/237] [Ready] Makes the YouTools and Vendomat more useful (#7870) * Fixing updater * Update youtool.dm * Update assist.dm --- code/modules/vending/assist.dm | 23 +++++++++++++++-------- code/modules/vending/youtool.dm | 29 +++++++++++++++-------------- 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/code/modules/vending/assist.dm b/code/modules/vending/assist.dm index de30109824..89c330789e 100644 --- a/code/modules/vending/assist.dm +++ b/code/modules/vending/assist.dm @@ -1,12 +1,19 @@ /obj/machinery/vending/assist - products = list(/obj/item/assembly/prox_sensor = 5, - /obj/item/assembly/igniter = 3, - /obj/item/assembly/signaler = 4, - /obj/item/wirecutters = 1, - /obj/item/cartridge/signal = 4) - contraband = list(/obj/item/assembly/timer = 2, - /obj/item/assembly/voice = 2, - /obj/item/assembly/health = 2) + products = list(/obj/item/assembly/prox_sensor = 7, + /obj/item/assembly/igniter = 6, + /obj/item/assembly/signaler = 6, + /obj/item/wirecutters = 3, + /obj/item/stock_parts/cell/crap = 6, + /obj/item/cartridge/signal = 6) + contraband = list(/obj/item/assembly/timer = 4, + /obj/item/assembly/voice = 4, + /obj/item/assembly/health = 4, + /obj/item/pressure_plate = 2, + /obj/item/multitool = 2, + /obj/item/stock_parts/cell/upgraded = 2) + premium = list(/obj/item/stock_parts/cell/upgraded/plus = 2, + /obj/item/flashlight/lantern = 2, + /obj/item/beacon = 2) product_ads = "Only the finest!;Have some tools.;The most robust equipment.;The finest gear in space!" armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF diff --git a/code/modules/vending/youtool.dm b/code/modules/vending/youtool.dm index 495d60a461..ebaad4d715 100644 --- a/code/modules/vending/youtool.dm +++ b/code/modules/vending/youtool.dm @@ -3,19 +3,20 @@ desc = "Tools for tools." icon_state = "tool" icon_deny = "tool-deny" - products = list(/obj/item/stack/cable_coil/random = 10, - /obj/item/crowbar = 5, - /obj/item/weldingtool = 3, - /obj/item/wirecutters = 5, - /obj/item/wrench = 5, - /obj/item/analyzer = 5, - /obj/item/t_scanner = 5, - /obj/item/screwdriver = 5, - /obj/item/flashlight/glowstick = 3, - /obj/item/flashlight/glowstick/red = 3, - /obj/item/flashlight = 5) - contraband = list(/obj/item/weldingtool/hugetank = 2, - /obj/item/clothing/gloves/color/fyellow = 2) - premium = list(/obj/item/clothing/gloves/color/yellow = 1) + products = list(/obj/item/stack/cable_coil/random = 15, + /obj/item/crowbar = 10, + /obj/item/weldingtool = 6, + /obj/item/wirecutters = 10, + /obj/item/wrench = 10, + /obj/item/analyzer = 10, + /obj/item/t_scanner = 10, + /obj/item/screwdriver = 10, + /obj/item/flashlight/glowstick = 6, + /obj/item/flashlight/glowstick/red = 6, + /obj/item/flashlight = 7) + contraband = list(/obj/item/weldingtool/largetank = 4, + /obj/item/clothing/gloves/color/fyellow = 4) + premium = list(/obj/item/clothing/gloves/color/yellow = 2, + /obj/item/weldingtool/hugetank = 2) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70) resistance_flags = FIRE_PROOF From a2ba37d6641e78b003321231ad4af9832527634d Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 3 Jan 2019 07:44:00 -0500 Subject: [PATCH 156/237] Update all_nodes.dm (#7864) --- code/modules/research/techweb/all_nodes.dm | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 28d9f6a202..af4f1ce3cc 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -43,6 +43,17 @@ description = "Various tools fit for basic mech units" design_ids = list("mech_drill", "mech_mscanner", "mech_extinguisher", "mech_cable_layer") + +/datum/techweb_node/surplus_lims + id = "surplus_lims" + display_name = "Basic Prosthetics" + description = "Basic fragile lims for the impaired." + starting_node = TRUE + prereq_ids = list("biotech") + design_ids = list("basic_l_arm", "basic_r_arm", "basic_r_leg", "basic_l_leg") + export_price = 5000 + + /////////////////////////Biotech///////////////////////// /datum/techweb_node/biotech id = "biotech" @@ -71,22 +82,13 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 -/datum/techweb_node/surplus_lims - id = "surplus_lims" - display_name = "Basic Prosthetics" - description = "Basic fragile lims for the impaired." - prereq_ids = list("biotech") - design_ids = list("basic_l_arm", "basic_r_arm", "basic_r_leg", "basic_l_leg") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) // You can knock them off with a glass shard... - export_price = 5000 - /datum/techweb_node/advance_lims id = "advance_lims" display_name = "Upgraded Prosthetics" description = "Reinforced prosthetics for the impaired." prereq_ids = list("adv_biotech", "surplus_lims") design_ids = list("adv_l_arm", "adv_r_arm", "adv_r_leg", "adv_l_leg") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1250) export_price = 5000 /////////////////////////Advanced Surgery///////////////////////// From e9ce54e397d3145c849b09858c53812ce565b14c Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 3 Jan 2019 07:32:39 -0800 Subject: [PATCH 157/237] Update snacks_bread.dm --- code/modules/food_and_drinks/food/snacks_bread.dm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm index 0638bfad25..99e561d338 100644 --- a/code/modules/food_and_drinks/food/snacks_bread.dm +++ b/code/modules/food_and_drinks/food/snacks_bread.dm @@ -185,6 +185,13 @@ icon_state = "" bitesize = 2 +GLOBAL_VAR_INIT(frying_hardmode, TRUE) +GLOBAL_LIST_INIT(frying_bad_chems, list( +"bad_food" = 10, +"clf3" = 2, +"aranesp" = 2 +)) + /obj/item/reagent_containers/food/snacks/deepfryholder/Initialize(mapload, obj/item/fried) . = ..() name = fried.name //We'll determine the other stuff when it's actually removed @@ -210,6 +217,11 @@ else fried.forceMove(src) trash = fried + if(!istype(fried, /obj/item/reagent_containers/food) && GLOB.frying_hardmode && GLOB.frying_bad_chems.len) + var/R = rand(1, GLOB.frying_bad_chems.len) + var/bad_chem = GLOB.frying_bad_chems[R] + var/bad_chem_amount = GLOB.frying_bad_chems[bad_chem] + add_reagent(bad_chem, bad_chem_amount) /obj/item/reagent_containers/food/snacks/deepfryholder/Destroy() if(trash) From bacb74ad470ac30e32450c796d6d9e877d473ab9 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 3 Jan 2019 07:34:09 -0800 Subject: [PATCH 158/237] Update snacks_bread.dm --- code/modules/food_and_drinks/food/snacks_bread.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm index 99e561d338..68d5cb8e99 100644 --- a/code/modules/food_and_drinks/food/snacks_bread.dm +++ b/code/modules/food_and_drinks/food/snacks_bread.dm @@ -189,7 +189,10 @@ GLOBAL_VAR_INIT(frying_hardmode, TRUE) GLOBAL_LIST_INIT(frying_bad_chems, list( "bad_food" = 10, "clf3" = 2, -"aranesp" = 2 +"aranesp" = 2, +"blackpowder" = 10, +"phlogiston" = 3, +"cyanide" = 3, )) /obj/item/reagent_containers/food/snacks/deepfryholder/Initialize(mapload, obj/item/fried) From a1836c98afa4a9960451e0b5956ef1c97cf555f5 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 3 Jan 2019 07:37:04 -0800 Subject: [PATCH 159/237] Update snacks_bread.dm --- code/modules/food_and_drinks/food/snacks_bread.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm index 68d5cb8e99..219c3dedf2 100644 --- a/code/modules/food_and_drinks/food/snacks_bread.dm +++ b/code/modules/food_and_drinks/food/snacks_bread.dm @@ -186,6 +186,7 @@ bitesize = 2 GLOBAL_VAR_INIT(frying_hardmode, TRUE) +GLOBAL_VAR_INIT(frying_bad_chem_add_volume, TRUE) GLOBAL_LIST_INIT(frying_bad_chems, list( "bad_food" = 10, "clf3" = 2, @@ -224,6 +225,8 @@ GLOBAL_LIST_INIT(frying_bad_chems, list( var/R = rand(1, GLOB.frying_bad_chems.len) var/bad_chem = GLOB.frying_bad_chems[R] var/bad_chem_amount = GLOB.frying_bad_chems[bad_chem] + if(GLOB.frying_bad_chem_add_volume) + reagents.maximum_volume += bad_chem_amount add_reagent(bad_chem, bad_chem_amount) /obj/item/reagent_containers/food/snacks/deepfryholder/Destroy() From 6dfd0ab32d05b4e2446dbfa2d43853f53d6f837c Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 3 Jan 2019 08:10:24 -0800 Subject: [PATCH 160/237] Update playsound.dm --- code/modules/admin/verbs/playsound.dm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/code/modules/admin/verbs/playsound.dm b/code/modules/admin/verbs/playsound.dm index 97cc991523..72da825e0c 100644 --- a/code/modules/admin/verbs/playsound.dm +++ b/code/modules/admin/verbs/playsound.dm @@ -4,10 +4,12 @@ if(!check_rights(R_SOUNDS)) return - var/freq = 1 var/vol = input(usr, "What volume would you like the sound to play at?",, 100) as null|num if(!vol) return + var/freq = input(usr, "What frequency would you like the sound to play at?",, 1) as null|num + if(!freq) + freq = 1 vol = CLAMP(vol, 1, 100) var/sound/admin_sound = new() @@ -96,13 +98,17 @@ if (data["webpage_url"]) webpage_url = "[title]" + var/freq = input(usr, "What frequency would you like the sound to play at?",, 1) as null|num + if(!freq) + freq = 1 + pitch = freq + var/res = alert(usr, "Show the title of and link to this song to the players?\n[title]",, "No", "Yes", "Cancel") switch(res) if("Yes") to_chat(world, "An admin played: [webpage_url]") if("Cancel") return - SSblackbox.record_feedback("nested tally", "played_url", 1, list("[ckey]", "[web_sound_input]")) log_admin("[key_name(src)] played web sound: [web_sound_input]") message_admins("[key_name(src)] played web sound: [web_sound_input]") From 71cf822138b82f8ba3403c22446082d1086b4e3e Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 3 Jan 2019 08:19:06 -0800 Subject: [PATCH 161/237] Update snacks_bread.dm --- code/modules/food_and_drinks/food/snacks_bread.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm index 219c3dedf2..0f11fc8ed2 100644 --- a/code/modules/food_and_drinks/food/snacks_bread.dm +++ b/code/modules/food_and_drinks/food/snacks_bread.dm @@ -227,7 +227,7 @@ GLOBAL_LIST_INIT(frying_bad_chems, list( var/bad_chem_amount = GLOB.frying_bad_chems[bad_chem] if(GLOB.frying_bad_chem_add_volume) reagents.maximum_volume += bad_chem_amount - add_reagent(bad_chem, bad_chem_amount) + reagents.add_reagent(bad_chem, bad_chem_amount) /obj/item/reagent_containers/food/snacks/deepfryholder/Destroy() if(trash) From b365db114fceec34130d7dbf7a7b1e4de31885d7 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 3 Jan 2019 08:32:12 -0800 Subject: [PATCH 162/237] Update food_reagents.dm --- code/modules/reagents/chemistry/reagents/food_reagents.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 685b37564a..52b212f8c5 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -112,7 +112,7 @@ /datum/reagent/consumable/cooking_oil/reaction_obj(obj/O, reac_volume) if(holder && holder.chem_temp >= fry_temperature) - if(isitem(O) && !istype(O, /obj/item/reagent_containers/food/snacks/deepfryholder)) + if(isitem(O) && !istype(O, /obj/item/reagent_containers/food/snacks/deepfryholder) && !(O.resistance_flags & (FIRE_PROOF|INDESTRUCTIBLE))) O.loc.visible_message("[O] rapidly fries as it's splashed with hot oil! Somehow.") var/obj/item/reagent_containers/food/snacks/deepfryholder/F = new(O.drop_location(), O) F.fry(volume) From e6b9c9c441696f1d715aef32ab8c11e78952bcf0 Mon Sep 17 00:00:00 2001 From: Lasshy KorshBot Date: Thu, 3 Jan 2019 10:40:43 -0600 Subject: [PATCH 163/237] Adds a squeak emote (#7871) * Adds a squeak emote Adds a cute squeak for insects * Update cit_emotes.dm * tabbed up last line, changed emote message. * Changed spaces from tabs, fixed compiling issues I don't know why they were spaces, should fix Compiling issues * Fixed tab stuff AGAIN Compiling should work now?? * Made audio file louder It was too quiet * Delete mothsqueak.ogg * Fixed the audio on the .ogg was too quiet * Fixed / at the end and removed if human * fixed indentation stuff again again --- modular_citadel/code/modules/mob/cit_emotes.dm | 17 ++++++++++++++++- modular_citadel/sound/voice/mothsqueak.ogg | Bin 0 -> 11207 bytes 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 modular_citadel/sound/voice/mothsqueak.ogg diff --git a/modular_citadel/code/modules/mob/cit_emotes.dm b/modular_citadel/code/modules/mob/cit_emotes.dm index c76b8f2c12..34c44be23f 100644 --- a/modular_citadel/code/modules/mob/cit_emotes.dm +++ b/modular_citadel/code/modules/mob/cit_emotes.dm @@ -194,4 +194,19 @@ user.apply_damage(20, BRUTE, def_zone) if(luck >= 95) user.adjustBrainLoss(100) - . = ..() \ No newline at end of file + . = ..() + + +/datum/emote/living/mothsqueak + key = "msqueak" + key_third_person = "lets out a tiny squeak" + message = "lets out a tiny squeak!" + emote_type = EMOTE_AUDIBLE + mob_type_allowed_typecache = list(/mob/living/carbon) + +/datum/emote/living/mothsqueak/run_emote(mob/living/user, params) + if(user.nextsoundemote >= world.time) + return + user.nextsoundemote = world.time + 7 + playsound(user, 'modular_citadel/sound/voice/mothsqueak.ogg', 50, 1, -1) + . = ..() diff --git a/modular_citadel/sound/voice/mothsqueak.ogg b/modular_citadel/sound/voice/mothsqueak.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c5ac979aed110d71709def15ba74266b5f04891c GIT binary patch literal 11207 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 Date: Thu, 3 Jan 2019 16:14:24 -0800 Subject: [PATCH 164/237] Update medicine_reagents.dm --- .../chemistry/reagents/medicine_reagents.dm | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 671e62a9e6..0f1bed8968 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -546,19 +546,14 @@ overdose_threshold = 45 addiction_threshold = 30 -/datum/reagent/medicine/ephedrine/on_mob_add(mob/living/L) - ..() - L.add_trait(TRAIT_GOTTAGOFAST, id) - -/datum/reagent/medicine/ephedrine/on_mob_delete(mob/living/L) - L.remove_trait(TRAIT_GOTTAGOFAST, id) - ..() - /datum/reagent/medicine/ephedrine/on_mob_life(mob/living/carbon/M) M.AdjustStun(-20, 0) M.AdjustKnockdown(-20, 0) M.AdjustUnconscious(-20, 0) - M.adjustStaminaLoss(-1*REM, 0) + M.adjustStaminaLoss(-4.5*REM, 0) + M.jitter = max(M.jitter + 2, 15) + if(prob(5)) + M.Confuse(3) ..() return TRUE From dc5f4ea67bf0350c00ccef27462201777ad6ffc2 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 3 Jan 2019 16:15:34 -0800 Subject: [PATCH 165/237] Update medicine_reagents.dm --- code/modules/reagents/chemistry/reagents/medicine_reagents.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 0f1bed8968..b4fa3676f7 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -552,8 +552,8 @@ M.AdjustUnconscious(-20, 0) M.adjustStaminaLoss(-4.5*REM, 0) M.jitter = max(M.jitter + 2, 15) - if(prob(5)) - M.Confuse(3) + if(prob(50)) + M.Confuse(1) ..() return TRUE From 5abdf53e35a2dac9505237c3df849e8391cc5994 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 3 Jan 2019 16:31:24 -0800 Subject: [PATCH 166/237] Update medicine_reagents.dm --- code/modules/reagents/chemistry/reagents/medicine_reagents.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index b4fa3676f7..02c5d61643 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -551,7 +551,7 @@ M.AdjustKnockdown(-20, 0) M.AdjustUnconscious(-20, 0) M.adjustStaminaLoss(-4.5*REM, 0) - M.jitter = max(M.jitter + 2, 15) + M.Jitter(10) if(prob(50)) M.Confuse(1) ..() From 52a68d212124fd3a229cd104ea681a9fc1cc2736 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 4 Jan 2019 01:19:06 -0500 Subject: [PATCH 167/237] Suicide_Acts for Dildos By request. --- .../code/modules/arousal/toys/dildos.dm | 41 +++++++++++++++++- sound/weapons/gagging.ogg | Bin 0 -> 45215 bytes 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 sound/weapons/gagging.ogg diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm index 587702762c..c99084fa39 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/modular_citadel/code/modules/arousal/toys/dildos.dm @@ -102,7 +102,6 @@ obj/item/dildo/random//totally random random_shape = TRUE random_size = TRUE - obj/item/dildo/knotted dildo_shape = "knotted" name = "knotted dildo" @@ -131,3 +130,43 @@ obj/item/dildo/custom random_color = TRUE random_shape = TRUE random_size = TRUE + +//Suicide acts, by request + +obj/item/dildo/suicide_act(mob/user) + user.visible_message("") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + return (OXYLOSS) + +obj/item/dildo/knotted/suicide_act(mob/user) + user.visible_message("") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + return (OXYLOSS) + +obj/item/dildo/human/suicide_act(mob/user) + user.visible_message("") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + return (OXYLOSS) + +obj/item/dildo/plain/suicide_act(mob/user) + user.visible_message("") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + return (OXYLOSS) + +obj/item/dildo/flared/suicide_act(mob/user) + user.visible_message("") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + return (OXYLOSS) + +obj/item/dildo/flared/huge/suicide_act(mob/user) + user.visible_message("") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + return (OXYLOSS) + + +obj/item/dildo/flared/huge/suicide_act(mob/user) + user.visible_message("") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + return (OXYLOSS) + + diff --git a/sound/weapons/gagging.ogg b/sound/weapons/gagging.ogg new file mode 100644 index 0000000000000000000000000000000000000000..0b0a3783f4479a1d3ed1f696e5e23a06d78af9e1 GIT binary patch literal 45215 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

Ln3n)85t4|CX!4ZfB< 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 literal 0 HcmV?d00001 From 6aed6d5612980cf218d7a8b97acca2b7ca8fc560 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 4 Jan 2019 01:55:33 -0500 Subject: [PATCH 168/237] Fixes all vg/5th port uniforms that aren't commented out for whatever reason. I'm pissy that this was so easy and nobody else bothered to do it. --- code/modules/clothing/under/vg_under.dm | 73 ++++++++++--------- .../code/modules/arousal/toys/dildos.dm | 18 ++--- 2 files changed, 46 insertions(+), 45 deletions(-) diff --git a/code/modules/clothing/under/vg_under.dm b/code/modules/clothing/under/vg_under.dm index 64bf75d5ac..f416f2ecc5 100644 --- a/code/modules/clothing/under/vg_under.dm +++ b/code/modules/clothing/under/vg_under.dm @@ -1,3 +1,6 @@ +// Fixed to work with Citadel code. Apparently none of them had NO_MUTANTRACE flags. +// I was pissy when I realised how to fix this because it's so fucking easy and nobody apparently had done it. + /obj/item/clothing/under/stripper_pink name = "pink stripper outfit" icon_state = "stripper_p" @@ -6,7 +9,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/stripper_green name = "green stripper outfit" @@ -16,8 +19,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/wedding/bride_orange name = "orange wedding dress" @@ -28,7 +30,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/wedding/bride_purple name = "purple wedding dress" @@ -39,7 +41,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/wedding/bride_blue name = "blue wedding dress" @@ -50,7 +52,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/wedding/bride_red name = "red wedding dress" @@ -61,7 +63,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/wedding/bride_white name = "white wedding dress" @@ -72,7 +74,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/mankini name = "pink mankini" @@ -82,6 +84,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION /* /obj/item/clothing/under/psysuit @@ -126,7 +129,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/russobluecamooutfit name = "russian blue camo" @@ -137,7 +140,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/stilsuit name = "stillsuit" @@ -148,7 +151,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/aviatoruniform name = "aviator uniform" @@ -159,7 +162,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/bikersuit name = "biker's outfit" @@ -169,7 +172,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/jacketsuit name = "richard's outfit" @@ -180,7 +183,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION obj/item/clothing/under/mega name = "\improper DRN-001 suit" @@ -191,7 +194,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/proto name = "The Prototype Suit" @@ -202,7 +205,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/megax name = "\improper Maverick Hunter regalia" @@ -213,7 +216,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/joe name = "The Sniper Suit" @@ -224,7 +227,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/roll name = "\improper DRN-002 Dress" @@ -235,7 +238,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/gokugidown name = "turtle hermit undershirt" @@ -246,7 +249,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/gokugi name = "turtle hermit outfit" @@ -257,7 +260,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/doomguy name = "\improper Doomguy's pants" @@ -268,7 +271,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/vault13 name = "vault 13 Jumpsuit" @@ -279,7 +282,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/vault name = "vault jumpsuit" @@ -290,7 +293,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/clownpiece name = "Clownpiece's Pierrot suit" @@ -301,7 +304,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/cia name = "casual IAA outfit" @@ -312,7 +315,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/greaser name = "greaser outfit" @@ -322,7 +325,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/greaser/New() var/greaser_colour = "default" @@ -341,6 +344,8 @@ obj/item/clothing/under/mega item_color = "greaser_[greaser_colour]" can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION + /obj/item/clothing/under/wintercasualwear name = "winter casualwear" @@ -351,8 +356,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/casualwear name = "spring casualwear" @@ -363,7 +367,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/keyholesweater name = "keyhole sweater" @@ -374,7 +378,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/casualhoodie name = "casual hoodie" @@ -385,8 +389,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/casualhoodie/skirt icon_state = "hoodieskirt" @@ -394,6 +397,8 @@ obj/item/clothing/under/mega item_color = "hoodieskirt" can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION + /* /obj/item/clothing/under/mummy_rags name = "mummy rags" @@ -427,3 +432,5 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION + diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm index c99084fa39..d6c2decb13 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/modular_citadel/code/modules/arousal/toys/dildos.dm @@ -133,38 +133,32 @@ obj/item/dildo/custom //Suicide acts, by request -obj/item/dildo/suicide_act(mob/user) - user.visible_message("") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) - return (OXYLOSS) - -obj/item/dildo/knotted/suicide_act(mob/user) +/obj/item/dildo/knotted/suicide_act(mob/user) user.visible_message("") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) return (OXYLOSS) -obj/item/dildo/human/suicide_act(mob/user) +/obj/item/dildo/human/suicide_act(mob/user) user.visible_message("") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) return (OXYLOSS) -obj/item/dildo/plain/suicide_act(mob/user) +/obj/item/dildo/plain/suicide_act(mob/user) user.visible_message("") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) return (OXYLOSS) -obj/item/dildo/flared/suicide_act(mob/user) +/obj/item/dildo/flared/suicide_act(mob/user) user.visible_message("") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) return (OXYLOSS) -obj/item/dildo/flared/huge/suicide_act(mob/user) +/obj/item/dildo/flared/huge/suicide_act(mob/user) user.visible_message("") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) return (OXYLOSS) - -obj/item/dildo/flared/huge/suicide_act(mob/user) +/obj/item/dildo/flared/huge/suicide_act(mob/user) user.visible_message("") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) return (OXYLOSS) From 2292b06ad14ca15c8492475a19490d7c473de673 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 4 Jan 2019 02:45:34 -0500 Subject: [PATCH 169/237] Improved attack verbs on dildos+ suicide improvements Adds a bracket that kept the suicide message from appearing and grants each dildo its own attack message, mostly. --- .../code/modules/arousal/toys/dildos.dm | 69 +++++++++++++------ 1 file changed, 48 insertions(+), 21 deletions(-) diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm index d6c2decb13..8d41933429 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/modular_citadel/code/modules/arousal/toys/dildos.dm @@ -1,7 +1,7 @@ ////////// //DILDOS// ////////// -obj/item/dildo +/obj/item/dildo name = "dildo" desc = "Floppy!" icon = 'modular_citadel/icons/obj/genitals/dildo.dmi' @@ -20,7 +20,7 @@ obj/item/dildo var/random_shape = FALSE //Lists moved to _cit_helpers.dm as globals so they're not instanced individually -obj/item/dildo/proc/update_appearance() +/obj/item/dildo/proc/update_appearance() icon_state = "[dildo_type]_[dildo_shape]_[dildo_size]" var/sizeword = "" switch(dildo_size) @@ -35,7 +35,7 @@ obj/item/dildo/proc/update_appearance() name = "[sizeword][dildo_shape] [can_customize ? "custom " : ""][dildo_type]" -obj/item/dildo/AltClick(mob/living/user) +/obj/item/dildo/AltClick(mob/living/user) if(QDELETED(src)) return if(!isliving(user)) @@ -46,7 +46,7 @@ obj/item/dildo/AltClick(mob/living/user) return customize(user) -obj/item/dildo/proc/customize(mob/living/user) +/obj/item/dildo/proc/customize(mob/living/user) if(!can_customize) return FALSE if(src && !user.incapacitated() && in_range(user,src)) @@ -75,7 +75,7 @@ obj/item/dildo/proc/customize(mob/living/user) update_appearance() return TRUE -obj/item/dildo/Initialize() +/obj/item/dildo/Initialize() . = ..() if(random_color == TRUE) var/randcolor = pick(GLOB.dildo_colors) @@ -91,32 +91,36 @@ obj/item/dildo/Initialize() pixel_y = rand(-7,7) pixel_x = rand(-7,7) -obj/item/dildo/examine(mob/user) +/obj/item/dildo/examine(mob/user) ..() if(can_customize) user << "Alt-Click \the [src.name] to customize it." -obj/item/dildo/random//totally random +/obj/item/dildo/random//totally random name = "random dildo"//this name will show up in vendors and shit so you know what you're vending(or don't, i guess :^)) random_color = TRUE random_shape = TRUE random_size = TRUE -obj/item/dildo/knotted +/obj/item/dildo/knotted dildo_shape = "knotted" name = "knotted dildo" + attack_verb = list("penetrated", "knotted", "slapped") obj/item/dildo/human dildo_shape = "human" name = "human dildo" + attack_verb = list("penetrated", "slapped") obj/item/dildo/plain dildo_shape = "plain" name = "plain dildo" + attack_verb = list("penetrated", "slapped") obj/item/dildo/flared dildo_shape = "flared" name = "flared dildo" + attack_verb = list("penetrated", "slapped", "neighed", "gaped", "prolapsed") obj/item/dildo/flared/huge name = "literal horse cock" @@ -133,34 +137,57 @@ obj/item/dildo/custom //Suicide acts, by request -/obj/item/dildo/knotted/suicide_act(mob/user) - user.visible_message("") +/obj/item/dildo/knotted/suicide_act(mob/living/user) + user.visible_message("[user] gags as they shove [src] down their throat! They swallowed the knot! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + user.Stun(150) + user.adjust_blurriness(8) + user.adjust_eye_damage(10) + sleep(15) return (OXYLOSS) -/obj/item/dildo/human/suicide_act(mob/user) - user.visible_message("") +/obj/item/dildo/human/suicide_act(mob/living/user) + user.visible_message("[user] gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + user.Stun(150) + user.adjust_blurriness(8) + user.adjust_eye_damage(10) + sleep(15) return (OXYLOSS) -/obj/item/dildo/plain/suicide_act(mob/user) - user.visible_message("") +/obj/item/dildo/plain/suicide_act(mob/living/user) + user.visible_message("[user] gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + user.Stun(150) + user.adjust_blurriness(8) + user.adjust_eye_damage(10) + sleep(15) return (OXYLOSS) -/obj/item/dildo/flared/suicide_act(mob/user) - user.visible_message("") +/obj/item/dildo/flared/suicide_act(mob/living/user) + user.visible_message("[user] gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + user.Stun(150) + user.adjust_blurriness(8) + user.adjust_eye_damage(10) + sleep(15) return (OXYLOSS) -/obj/item/dildo/flared/huge/suicide_act(mob/user) - user.visible_message("") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) +/obj/item/dildo/flared/huge/suicide_act(mob/living/user) + user.visible_message("[user] gags as they try to deepthroat the [src]! WHY WOULD THEY DO THAT? [user.p_theyre()] trying to commit suicide!!") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 2, -1) + user.Stun(150) + user.adjust_blurriness(8) + user.adjust_eye_damage(10) return (OXYLOSS) -/obj/item/dildo/flared/huge/suicide_act(mob/user) - user.visible_message("") +/obj/item/dildo/flared/custom/suicide_act(mob/living/user) + user.visible_message("[user] gags as they shove [src] down their throat! It looks like they wanted a custom death message!!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + user.Stun(150) + user.adjust_blurriness(8) + user.adjust_eye_damage(10) + sleep(15) return (OXYLOSS) From 302f8f00f41128ccfc610028a9253e0da506a4c7 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 4 Jan 2019 00:42:29 -0800 Subject: [PATCH 170/237] Update tomato.dm --- code/modules/hydroponics/grown/tomato.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/hydroponics/grown/tomato.dm b/code/modules/hydroponics/grown/tomato.dm index 5a44cb78f8..d07f5d4d08 100644 --- a/code/modules/hydroponics/grown/tomato.dm +++ b/code/modules/hydroponics/grown/tomato.dm @@ -136,7 +136,7 @@ spawn(30) if(!QDELETED(src)) - investigate_log(INVESTIGATE_BOTANY, "[key_name(user)] released a killer tomato at [COORD(src)]") + investigate_log("[key_name(user)] released a killer tomato at [COORD(src)]", INVESTIGATE_BOTANY) var/mob/living/simple_animal/hostile/killertomato/K = new /mob/living/simple_animal/hostile/killertomato(get_turf(src.loc)) K.maxHealth += round(seed.endurance / 3) K.melee_damage_lower += round(seed.potency / 10) From 246d6b391f132cb4bf29718dd9fdcd5e3644eaff Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 4 Jan 2019 00:47:02 -0800 Subject: [PATCH 171/237] Update medicine_reagents.dm --- code/modules/reagents/chemistry/reagents/medicine_reagents.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 02c5d61643..4e278d2ede 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -553,7 +553,7 @@ M.adjustStaminaLoss(-4.5*REM, 0) M.Jitter(10) if(prob(50)) - M.Confuse(1) + M.confused = max(M.confused, 1) ..() return TRUE From 277b589f1fb5536c974a5a743774499a8c90eedf Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 4 Jan 2019 03:44:47 -0800 Subject: [PATCH 172/237] Update weapon_designs.dm --- code/modules/research/designs/weapon_designs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index bf503c2653..2402967ff3 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -294,7 +294,7 @@ departmental_flags = DEPARTMENTAL_FLAG_SECURITY /datum/design/cryostatis_shotgun_dart - name = "Cryostatis Shotgun Dart" + name = "Cryostasis Shotgun Dart" desc = "A shotgun dart designed with similar internals to that of a cryostatis beaker, allowing reagents to not react when inside." id = "shotgundartcryostatis" build_type = PROTOLATHE From 5f019696bd39bdb627b061a91f34a4731e1925d0 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 4 Jan 2019 06:52:57 -0500 Subject: [PATCH 173/237] Spellcheck 2 Electric Boogaloo statis Misspelling of status. --- code/modules/projectiles/ammunition/ballistic/shotgun.dm | 2 +- code/modules/research/techweb/all_nodes.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index 39cf924169..7a8a186072 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -115,7 +115,7 @@ /obj/item/ammo_casing/shotgun/dart/noreact name = "cryostasis shotgun dart" - desc = "A dart for use in shotguns, using similar technology as cryostatis beakers to keep internal reagents from reacting. Can be injected with up to 10 units of any chemical." + desc = "A dart for use in shotguns, using similar technology as cryostasis beakers to keep internal reagents from reacting. Can be injected with up to 10 units of any chemical." icon_state = "cnrshell" reagent_amount = 10 reagent_react = FALSE diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 826f8d05b8..14d3c02284 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -580,7 +580,7 @@ display_name = "Medical Weaponry" description = "Weapons using medical technology." prereq_ids = list("adv_biotech", "adv_weaponry") - design_ids = list("rapidsyringe", "shotgundartcryostatis") + design_ids = list("rapidsyringe", "shotgundartcryostasis") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) export_price = 5000 From b3a5b2257846c36c586e33ec49c30f91b9dbf222 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 4 Jan 2019 07:18:28 -0500 Subject: [PATCH 174/237] TRAVIS LEAVE ME ALONE --- modular_citadel/code/modules/arousal/toys/dildos.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm index 8d41933429..b1fee37d3d 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/modular_citadel/code/modules/arousal/toys/dildos.dm @@ -189,5 +189,3 @@ obj/item/dildo/custom user.adjust_eye_damage(10) sleep(15) return (OXYLOSS) - - From e390f379983736b6ca0b821db0883a3329e58822 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 4 Jan 2019 07:36:32 -0500 Subject: [PATCH 175/237] Adjusts wording for grammar on cryo shotgun dart Travis is fucking bullying me. --- code/modules/projectiles/ammunition/ballistic/shotgun.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index 7a8a186072..d57edf154d 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -115,7 +115,7 @@ /obj/item/ammo_casing/shotgun/dart/noreact name = "cryostasis shotgun dart" - desc = "A dart for use in shotguns, using similar technology as cryostasis beakers to keep internal reagents from reacting. Can be injected with up to 10 units of any chemical." + desc = "A dart for use in shotguns. Uses technology similar to cryostasis beakers to keep internal reagents from reacting. Can be injected with up to 10 units of any chemical." icon_state = "cnrshell" reagent_amount = 10 reagent_react = FALSE From 6e30048029a47898d5bef1b55d3abde70037f909 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 4 Jan 2019 08:20:27 -0500 Subject: [PATCH 176/237] I guess it didn't like that. I don't know how to fix this so I'm changing it back uwu --- code/modules/research/techweb/all_nodes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 14d3c02284..826f8d05b8 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -580,7 +580,7 @@ display_name = "Medical Weaponry" description = "Weapons using medical technology." prereq_ids = list("adv_biotech", "adv_weaponry") - design_ids = list("rapidsyringe", "shotgundartcryostasis") + design_ids = list("rapidsyringe", "shotgundartcryostatis") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) export_price = 5000 From 2ab86321c359b1989f0a9f37811878d0fea3bdd9 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 4 Jan 2019 16:45:06 -0500 Subject: [PATCH 177/237] Conforms with changes requested by the BhjinBot Really cool bot I can't believe we have something so advanced for our codebase. --- .../code/modules/arousal/toys/dildos.dm | 56 ++++++++++--------- 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm index b1fee37d3d..0f73564cad 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/modular_citadel/code/modules/arousal/toys/dildos.dm @@ -105,22 +105,22 @@ /obj/item/dildo/knotted dildo_shape = "knotted" name = "knotted dildo" - attack_verb = list("penetrated", "knotted", "slapped") + attack_verb = list("penetrated", "knotted", "slapped", "inseminated") obj/item/dildo/human dildo_shape = "human" name = "human dildo" - attack_verb = list("penetrated", "slapped") + attack_verb = list("penetrated", "slapped", "inseminated") obj/item/dildo/plain dildo_shape = "plain" name = "plain dildo" - attack_verb = list("penetrated", "slapped") + attack_verb = list("penetrated", "slapped", "inseminated") obj/item/dildo/flared dildo_shape = "flared" name = "flared dildo" - attack_verb = list("penetrated", "slapped", "neighed", "gaped", "prolapsed") + attack_verb = list("penetrated", "slapped", "neighed", "gaped", "prolapsed", "inseminated") obj/item/dildo/flared/huge name = "literal horse cock" @@ -135,57 +135,63 @@ obj/item/dildo/custom random_shape = TRUE random_size = TRUE -//Suicide acts, by request +// Suicide acts, by request + +/obj/item/dildo/proc/manual_suicide(mob/living/user) + user.visible_message("[user] finally finishes deepthroating the [src], and their life.") + user.adjustOxyLoss(200) + user.death(0) /obj/item/dildo/knotted/suicide_act(mob/living/user) - user.visible_message("[user] gags as they shove [src] down their throat! They swallowed the knot! It looks like [user.p_theyre()] trying to commit suicide!") + user.visible_message("[user] tears-up and gags as they shove [src] down their throat! They swallowed the knot! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) user.Stun(150) user.adjust_blurriness(8) user.adjust_eye_damage(10) - sleep(15) - return (OXYLOSS) + addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) + return MANUAL_SUICIDE /obj/item/dildo/human/suicide_act(mob/living/user) - user.visible_message("[user] gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") + user.visible_message("[user] tears-up and gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) user.Stun(150) user.adjust_blurriness(8) user.adjust_eye_damage(10) - sleep(15) - return (OXYLOSS) + addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) + return MANUAL_SUICIDE -/obj/item/dildo/plain/suicide_act(mob/living/user) - user.visible_message("[user] gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") +/obj/item/dildo/plain/suicide_act(mob/living/user, delay = 150) + user.visible_message("[user] tears-up and gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) user.Stun(150) user.adjust_blurriness(8) user.adjust_eye_damage(10) - sleep(15) - return (OXYLOSS) + addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) + return MANUAL_SUICIDE /obj/item/dildo/flared/suicide_act(mob/living/user) - user.visible_message("[user] gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") + user.visible_message("[user] tears-up and gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) user.Stun(150) user.adjust_blurriness(8) user.adjust_eye_damage(10) - sleep(15) - return (OXYLOSS) + addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) + return MANUAL_SUICIDE /obj/item/dildo/flared/huge/suicide_act(mob/living/user) - user.visible_message("[user] gags as they try to deepthroat the [src]! WHY WOULD THEY DO THAT? [user.p_theyre()] trying to commit suicide!!") + user.visible_message("[user] tears-up and gags as they try to deepthroat the [src]! WHY WOULD THEY DO THAT? It looks like [user.p_theyre()] trying to commit suicide!!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 2, -1) - user.Stun(150) + user.Stun(300) user.adjust_blurriness(8) - user.adjust_eye_damage(10) - return (OXYLOSS) + user.adjust_eye_damage(15) + addtimer(CALLBACK(src, .proc/manual_suicide, user), 22) + return MANUAL_SUICIDE /obj/item/dildo/flared/custom/suicide_act(mob/living/user) user.visible_message("[user] gags as they shove [src] down their throat! It looks like they wanted a custom death message!!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) - user.Stun(150) + user.Stun(50) user.adjust_blurriness(8) user.adjust_eye_damage(10) - sleep(15) - return (OXYLOSS) + addtimer(CALLBACK(src, .proc/manual_suicide, user), 5) + return MANUAL_SUICIDE From 47d0cc7b1ba8e771c8e61b59d9b353c6d1808ae9 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 4 Jan 2019 22:02:22 -0800 Subject: [PATCH 178/237] Update implant_mindshield.dm --- code/game/objects/items/implants/implant_mindshield.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/game/objects/items/implants/implant_mindshield.dm b/code/game/objects/items/implants/implant_mindshield.dm index 2f76b0cdc3..2c197eb7ec 100644 --- a/code/game/objects/items/implants/implant_mindshield.dm +++ b/code/game/objects/items/implants/implant_mindshield.dm @@ -29,8 +29,12 @@ if(target.mind.has_antag_datum(/datum/antagonist/rev/head) || target.mind.unconvertable) if(!silent) target.visible_message("[target] seems to resist the implant!", "You feel something interfering with your mental conditioning, but you resist it!") + var/obj/item/implanter/I = loc removed(target, 1) qdel(src) + if(istype(I)) + I.imp = null + I.update_icon() return FALSE var/datum/antagonist/rev/rev = target.mind.has_antag_datum(/datum/antagonist/rev) From 87dee7ff8310cc40e1bf0fc2dee7c814eafa288a Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sat, 5 Jan 2019 11:01:21 -0600 Subject: [PATCH 179/237] mime overalls - donator --- icons/mob/custom_w.dmi | Bin 26662 -> 27560 bytes icons/obj/custom.dmi | Bin 20061 -> 20528 bytes .../code/modules/client/loadout/__donator.dm | 6 ++++++ .../modules/custom_loadout/custom_items.dm | 9 +++++++++ 4 files changed, 15 insertions(+) diff --git a/icons/mob/custom_w.dmi b/icons/mob/custom_w.dmi index a3580bdc42f90926f0a49ff149497e7aab05bd1b..1101f22d2e6b13e6c15e5466b35b2f03a732e5c2 100644 GIT binary patch delta 7337 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 Ppr4wOx?+jEssDcgq9{HS delta 6437 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 ZlQP*#KB9gz_X6ait7V}1LES#$zW_q8m6iYi diff --git a/icons/obj/custom.dmi b/icons/obj/custom.dmi index 1162fcc48fda9d3d6b7ad92272f9b3c73b60967b..a05fbb72ab18dca7d471bbcd8b1e4455ef9578b4 100644 GIT binary patch delta 20298 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 diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm index 4d9211f7a2..fac53fee5b 100644 --- a/modular_citadel/code/modules/client/loadout/__donator.dm +++ b/modular_citadel/code/modules/client/loadout/__donator.dm @@ -355,4 +355,10 @@ datum/gear/darksabresheath name = "Mime Mask" category = SLOT_WEAR_MASK path = /obj/item/clothing/mask/gas/mime + ckeywhitelist = list("pireamaineach") + +/datum/gear/mimeoveralls + name = "Mime's Overalls" + category = SLOT_WEAR_SUIT + path = /obj/item/clothing/under/mimeoveralls ckeywhitelist = list("pireamaineach") \ No newline at end of file diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm index 0d9e81e15a..5f0d8cfc00 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -430,3 +430,12 @@ icon_state = "shark_cloth" mutantrace_variation = NO_MUTANTRACE_VARIATION +/obj/item/clothing/under/mimeoveralls + name = "Mime's Overalls" + icon = 'icons/obj/custom.dmi' + alternate_worn_icon = 'icons/mob/custom_w.dmi' + desc = "A less-than-traditional mime's attire, completed by a set of dorky-looking overalls." + item_state = "moveralls" + icon_state = "moveralls" + mutantrace_variation = NO_MUTANTRACE_VARIATION + From eada20a1d9ee147dd2f3fc4826696ee0a916873e Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 5 Jan 2019 23:14:29 -0800 Subject: [PATCH 180/237] Update closed.dm --- code/game/turfs/closed.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm index bcffd728c6..6297cadc63 100644 --- a/code/game/turfs/closed.dm +++ b/code/game/turfs/closed.dm @@ -84,6 +84,7 @@ icon = 'icons/turf/walls/riveted.dmi' icon_state = "riveted" smooth = SMOOTH_TRUE + explosion_block = INFINITY /turf/closed/indestructible/riveted/uranium icon = 'icons/turf/walls/uranium_wall.dmi' From 9824bdb48077996101855f932a599939b4446fef Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 6 Jan 2019 01:26:59 -0800 Subject: [PATCH 181/237] Update RCD.dm --- code/game/objects/items/RCD.dm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index 82315b8f35..c3569be8b9 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -36,6 +36,7 @@ RLD var/no_ammo_message = "The \'Low Ammo\' light on the device blinks yellow." var/has_ammobar = FALSE //controls whether or not does update_icon apply ammo indicator overlays var/ammo_sections = 10 //amount of divisions in the ammo indicator overlay/number of ammo indicator states + var/custom_range = 7 /obj/item/construction/Initialize() . = ..() @@ -119,7 +120,7 @@ RLD return . /obj/item/construction/proc/range_check(atom/A, mob/user) - if(!(A in view(7, get_turf(user)))) + if(!(A in range(custom_range, get_turf(user)))) to_chat(user, "The \'Out of Range\' light on [src] blinks red.") return FALSE else @@ -519,8 +520,9 @@ RLD icon_state = "rld-5" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' - matter = 200 - max_matter = 200 + matter = 500 + max_matter = 500 + sheet_multiplier = 16 var/mode = LIGHT_MODE actions_types = list(/datum/action/item_action/pick_color) @@ -531,7 +533,7 @@ RLD var/walldelay = 10 var/floordelay = 10 - var/decondelay = 15 + var/decondelay = 10 var/color_choice = null From 3ae46ba2da6e5d7ce31d7d0beb92643ce97a0a61 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 6 Jan 2019 04:27:06 -0500 Subject: [PATCH 182/237] Moves RCLD to a proper place --- code/modules/cargo/packs.dm | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index a8874738f7..a6d32c088f 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -1493,6 +1493,18 @@ crate_name = "janitor backpack crate" crate_type = /obj/structure/closet/crate/secure +/datum/supply_pack/organic/advlighting + name = "Advanced Lighting crate" + desc = "Thanks to advanced lighting tech we here at the Lamp Factory have be able to produce more lamps and lamp items! This crate has three lamps, a box of lights and a state of the art rapid-light-device!" + cost = 2500 //Fair + contains = list(/obj/item/construction/rld, + /obj/item/flashlight/lamp, + /obj/item/flashlight/lamp, + /obj/item/flashlight/lamp/green, + /obj/item/storage/box/lights/mixed) + crate_name = "advanced lighting crate" + crate_type = /obj/structure/closet/crate/secure + /datum/supply_pack/service/mule name = "MULEbot Crate" desc = "Pink-haired Quartermaster not doing her job? Replace her with this tireless worker, today!" @@ -1728,18 +1740,6 @@ crate_name = "hydroponics backpack crate" crate_type = /obj/structure/closet/crate/secure -/datum/supply_pack/organic/advlighting - name = "Advanced Lighting crate" - desc = "Thanks to advanced lighting tech we here at the Lamp Factor have be able to produce more lamps and lamp items! This crate has three lamps, a box of lights and a state of the art rapid-light-device!" - cost = 2500 //Fair - contains = list(/obj/item/construction/rld, - /obj/item/flashlight/lamp, - /obj/item/flashlight/lamp, - /obj/item/flashlight/lamp/green, - /obj/item/storage/box/lights/mixed) - crate_name = "advanced lighting crate" - crate_type = /obj/structure/closet/crate/secure - /datum/supply_pack/organic/pizza name = "Pizza Crate" desc = "Best prices on this side of the galaxy. All deliveries are guaranteed to be 99% anomaly-free!" From a5ba768918f555079c3709315c4c92c6e1cc3019 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 6 Jan 2019 01:51:47 -0800 Subject: [PATCH 183/237] Update RCD.dm --- code/game/objects/items/RCD.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index c3569be8b9..795871d3b5 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -522,7 +522,7 @@ RLD righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' matter = 500 max_matter = 500 - sheet_multiplier = 16 + sheetmultiplier = 16 var/mode = LIGHT_MODE actions_types = list(/datum/action/item_action/pick_color) From 01c862eb38d44bbaa4b61e153aa701acf807cfb9 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 6 Jan 2019 14:31:46 -0600 Subject: [PATCH 184/237] Automatic changelog generation for PR #7860 [ci skip] --- html/changelogs/AutoChangeLog-pr-7860.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7860.yml diff --git a/html/changelogs/AutoChangeLog-pr-7860.yml b/html/changelogs/AutoChangeLog-pr-7860.yml new file mode 100644 index 0000000000..140f95aa40 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7860.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - bugfix: "The syndicate mask now works properly as intended." From 79f4b77b4a4cec89aafd25f43cea27ca938259b3 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 7 Jan 2019 21:27:23 -0500 Subject: [PATCH 185/237] Update engivend.dm --- code/modules/vending/engivend.dm | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/code/modules/vending/engivend.dm b/code/modules/vending/engivend.dm index 0e64e0a367..d715b5f4ba 100644 --- a/code/modules/vending/engivend.dm +++ b/code/modules/vending/engivend.dm @@ -4,21 +4,27 @@ icon_state = "engivend" icon_deny = "engivend-deny" req_access = list(ACCESS_ENGINE_EQUIP) - products = list(/obj/item/clothing/glasses/meson/engine = 2, - /obj/item/clothing/glasses/welding = 3, - /obj/item/multitool = 4, + products = list(/obj/item/clothing/glasses/meson/engine = 5, + /obj/item/clothing/glasses/welding = 5, + /obj/item/multitool = 5, /obj/item/construction/rcd/loaded = 3, /obj/item/grenade/chem_grenade/smart_metal_foam = 10, - /obj/item/geiger_counter = 5, + /obj/item/geiger_counter = 6, /obj/item/stock_parts/cell/high = 10, - /obj/item/electronics/airlock = 10, + /obj/item/electronics/airlock = 10, /obj/item/electronics/apc = 10, /obj/item/electronics/airalarm = 10, /obj/item/electronics/firealarm = 10, - /obj/item/electronics/firelock = 10 + /obj/item/electronics/firelock = 10, + /obj/item/rcd_ammo = 3 ) - contraband = list(/obj/item/stock_parts/cell/potato = 3) + contraband = list(/obj/item/stock_parts/cell/potato = 3, + /obj/item/stock_parts/cell/emproof = 5, + /obj/item/rcd_ammo = 2 + ) premium = list(/obj/item/storage/belt/utility = 3, - /obj/item/storage/box/smart_metal_foam = 1) + /obj/item/storage/box/smart_metal_foam = 3, + /obj/item/rcd_ammo/large = 5 + ) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF From 2e0e115b2454c5b5746efe1beea1c31c7aad4a51 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 8 Jan 2019 05:28:06 -0500 Subject: [PATCH 186/237] Adds 6 new colors to the unlimited paint chaining can (#7903) * Update paint.dm * I did this by hand and not Copy pasted, go me --- code/game/objects/items/paint.dm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/paint.dm b/code/game/objects/items/paint.dm index c81fd08274..a6f5830dd4 100644 --- a/code/game/objects/items/paint.dm +++ b/code/game/objects/items/paint.dm @@ -56,22 +56,34 @@ icon_state = "paint_neutral" /obj/item/paint/anycolor/attack_self(mob/user) - var/t1 = input(user, "Please select a color:", "Locking Computer", null) in list( "red", "blue", "green", "yellow", "violet", "black", "white") + var/t1 = input(user, "Please select a color:", "Locking Computer", null) in list( "red", "pink", "blue", "cyan", "green", "lime", "yellow", "orange", "violet", "purple", "black", "gray", "white") if ((user.get_active_held_item() != src || user.stat || user.restrained())) return switch(t1) if("red") item_color = "C73232" + if("pink") + item_color = "FFC0CD" if("blue") item_color = "5998FF" + if("cyan") + item_color = "00FFFF" if("green") item_color = "2A9C3B" + if("lime") + item_color = "00FF00" if("yellow") item_color = "CFB52B" + if("orange") + item_color = "fFA700" if("violet") item_color = "AE4CCD" + if("purple") + item_color = "800080" if("white") item_color = "FFFFFF" + if("gray") + item_color = "808080" if("black") item_color = "333333" icon_state = "paint_[t1]" From c2eafa3f73d3185e416d0d718085d3d1249ef278 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 8 Jan 2019 05:28:24 -0500 Subject: [PATCH 187/237] Adds condiments to the coffie vender with coins! (#7902) * Update coffee.dm * Update coffee.dm * Would help to double check --- code/modules/vending/coffee.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/modules/vending/coffee.dm b/code/modules/vending/coffee.dm index 6ac9dd648d..c30c087d7b 100644 --- a/code/modules/vending/coffee.dm +++ b/code/modules/vending/coffee.dm @@ -8,6 +8,11 @@ /obj/item/reagent_containers/food/drinks/mug/tea = 25, /obj/item/reagent_containers/food/drinks/mug/coco = 25) contraband = list(/obj/item/reagent_containers/food/drinks/ice = 12) + premium = list(/obj/item/reagent_containers/food/snacks/chocolatebar = 3, + /obj/item/reagent_containers/food/condiment/milk = 2, + /obj/item/reagent_containers/food/drinks/bottle/cream = 2, + /obj/item/reagent_containers/food/condiment/sugar = 1) + refill_canister = /obj/item/vending_refill/coffee /obj/item/vending_refill/coffee From eb7f5634d55ba78a58f8995b75c9343b044f8a87 Mon Sep 17 00:00:00 2001 From: Ignari-Coldstorm <43045900+Ignari-Coldstorm@users.noreply.github.com> Date: Tue, 8 Jan 2019 04:30:24 -0600 Subject: [PATCH 188/237] Changes Jukebox Availability (#7905) Changes the massive price of the jukebox to something much more affordable, as well as broadens access needed to use it. --- code/game/machinery/dance_machine.dm | 2 +- modular_citadel/code/modules/cargo/packs.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index 3a6cf2b922..7beb32eebb 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -5,7 +5,7 @@ icon_state = "jukebox" verb_say = "states" density = TRUE - req_access = list(ACCESS_BAR) + req_one_access = list(ACCESS_BAR, ACCESS_KITCHEN, ACCESS_HYDROPONICS, ACCESS_ENGINE, ACCESS_CARGO, ACCESS_THEATRE) var/active = FALSE var/list/rangers = list() var/stop = 0 diff --git a/modular_citadel/code/modules/cargo/packs.dm b/modular_citadel/code/modules/cargo/packs.dm index c03a049b60..6d39a51a76 100644 --- a/modular_citadel/code/modules/cargo/packs.dm +++ b/modular_citadel/code/modules/cargo/packs.dm @@ -23,6 +23,6 @@ /datum/supply_pack/misc/jukebox name = "Jukebox" - cost = 1000000 + cost = 35000 contains = list(/obj/machinery/jukebox) crate_name = "Jukebox" From 353713fcee2d6c76b9ee496734d012037e1cff2d Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 8 Jan 2019 05:30:47 -0500 Subject: [PATCH 189/237] ERT suits shouldnt die to acid (#7897) --- code/modules/clothing/spacesuits/miscellaneous.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 89f114f7e5..cd8efd74bf 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -168,6 +168,7 @@ Contains: strip_delay = 130 item_flags = NODROP brightness_on = 7 + resistance_flags = ACID_PROOF /obj/item/clothing/suit/space/hardsuit/ert name = "emergency response team suit" @@ -179,6 +180,7 @@ Contains: armor = list("melee" = 65, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 80) slowdown = 0 strip_delay = 130 + resistance_flags = ACID_PROOF //ERT Security /obj/item/clothing/head/helmet/space/hardsuit/ert/sec From 6701585888f065306d74e53d427fd6c73826bcac Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 8 Jan 2019 05:35:19 -0500 Subject: [PATCH 190/237] Update snack.dm (#7899) --- code/modules/vending/snack.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/vending/snack.dm b/code/modules/vending/snack.dm index 69e510ad5a..19138bad32 100644 --- a/code/modules/vending/snack.dm +++ b/code/modules/vending/snack.dm @@ -12,6 +12,9 @@ /obj/item/reagent_containers/food/snacks/spacetwinkie = 6, /obj/item/reagent_containers/food/snacks/cheesiehonkers = 6) contraband = list(/obj/item/reagent_containers/food/snacks/syndicake = 6) + premium = list(/obj/item/storage/box/donkpockets = 1, + /obj/item/reagent_containers/food/snacks/poppypretzel = 3) + refill_canister = /obj/item/vending_refill/snack var/chef_compartment_access = "28" //ACCESS_KITCHEN From c96b6dfee8012bc87c7925f473999c6b703b4711 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 8 Jan 2019 05:35:41 -0500 Subject: [PATCH 191/237] [Ready] Hunting, Anitviro and Russian gear crate! (#7796) * Cargo * grammar * Update packs.dm * reduce anitviro crate cost * No fun allowed * Update packs.dm --- code/modules/cargo/packs.dm | 60 +++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index a8874738f7..587ba0c110 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -265,6 +265,26 @@ crate_name = "weed control crate" crate_type = /obj/structure/closet/crate/secure/hydroponics +/datum/supply_pack/medical/anitvirus + name = "Virus Containment Crate" + desc = "Viro let out a death plague Mk II again? Someone didnt wash there hands? Old plagues born anew? Well this crate is for you! Hope you cure it before it brakes out of the station... This crate needs medical access to open and has two bio suits, a box of needles and beakers, five spaceacillin needles, and a medibot." + cost = 3000 + access = ACCESS_MEDICAL + contains = list(/mob/living/simple_animal/bot/medbot, + /obj/item/clothing/head/bio_hood, + /obj/item/clothing/head/bio_hood, + /obj/item/clothing/suit/bio_suit, + /obj/item/clothing/suit/bio_suit, + /obj/item/reagent_containers/syringe/antiviral, + /obj/item/reagent_containers/syringe/antiviral, + /obj/item/reagent_containers/syringe/antiviral, + /obj/item/reagent_containers/syringe/antiviral, + /obj/item/reagent_containers/syringe/antiviral, + /obj/item/storage/box/syringes, + /obj/item/storage/box/beakers) + crate_name = "virus containment unit crate" + crate_type = /obj/structure/closet/crate/secure/plasma + ////////////////////////////////////////////////////////////////////////////// //////////////////////////// Security //////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// @@ -395,6 +415,29 @@ /obj/item/melee/baton/loaded) crate_name = "stun baton crate" +/datum/supply_pack/security/russianclothing + name = "Russian Surplus Clothing" + desc = "An old russian crate full of surplus armor that they used to use! Has two sets of bulletproff armor, a few union suits and some warm hats!" + hidden = TRUE + contraband = TRUE + cost = 5000 // Its basicly sec suits, good boots/gloves + contains = list(/obj/item/clothing/suit/security/officer/russian, + /obj/item/clothing/suit/security/officer/russian, + /obj/item/clothing/shoes/combat, + /obj/item/clothing/shoes/combat, + /obj/item/clothing/head/ushanka, + /obj/item/clothing/head/ushanka, + /obj/item/clothing/suit/armor/bulletproof, + /obj/item/clothing/suit/armor/bulletproof, + /obj/item/clothing/head/helmet/alt, + /obj/item/clothing/head/helmet/alt, + /obj/item/clothing/gloves/combat, + /obj/item/clothing/gloves/combat, + /obj/item/clothing/mask/gas, + /obj/item/clothing/mask/gas) + crate_name = "surplus russian clothing" + crate_type = /obj/structure/closet/crate/internals + /datum/supply_pack/security/taser name = "Taser Crate" desc = "From the depths of stunbased combat, this order rises above, supreme. Contains three hybrid tasers, capable of firing both electrodes and disabling shots. Requires Security access to open." @@ -1320,6 +1363,7 @@ crate_type = /obj/structure/closet/crate/secure/plasma dangerous = TRUE + ////////////////////////////////////////////////////////////////////////////// //////////////////////////// Science ///////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// @@ -1703,6 +1747,22 @@ access = ACCESS_THEATRE crate_type = /obj/structure/closet/crate/secure +/datum/supply_pack/organic/hunting + name = "Huntting gear" + desc = "Even in space, we can fine prey to hunt, this crate contains everthing a fine hunter needs to have a sporting time. This crate needs armory access to open. A true huntter only needs a fine bottle of cognac, a nice coat, some good o' cigars, and of cource a huntting shotgun. " + cost = 3500 + contraband = TRUE + contains = list(/obj/item/clothing/head/flatcap, + /obj/item/clothing/suit/hooded/wintercoat/captain, + /obj/item/reagent_containers/food/drinks/bottle/cognac, + /obj/item/storage/fancy/cigarettes/cigars/havana, + /obj/item/clothing/gloves/color/white, + /obj/item/clothing/under/rank/curator, + /obj/item/gun/ballistic/shotgun/lethal) + access = ACCESS_ARMORY + crate_name = "sporting crate" + crate_type = /obj/structure/closet/crate/secure // Would have liked a wooden crate but access >:( + /datum/supply_pack/organic/hydroponics name = "Hydroponics Crate" desc = "Supplies for growing a great garden! Contains two bottles of ammonia, two Plant-B-Gone spray bottles, a hatchet, cultivator, plant analyzer, as well as a pair of leather gloves and a botanist's apron." From 7e8ba9a23ce2bf93c60af8e62909c23b4f1970d8 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 8 Jan 2019 05:36:43 -0500 Subject: [PATCH 192/237] [Ready] New adv surgery tools! (#7879) * Fixing updater * Update tools.dm * Update all_nodes.dm * Update medical_designs.dm * shit.jpg * Update medical_designs.dm * Update medical_designs.dm * Apply suggestions from code review Ragolutions' Grammar rework Co-Authored-By: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> * Apply suggestions from code review Reg being the best Co-Authored-By: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> * Huh --- .../research/designs/medical_designs.dm | 84 +++++++++++++++++++ code/modules/research/techweb/all_nodes.dm | 11 ++- code/modules/surgery/tools.dm | 84 ++++++++++++++++++- 3 files changed, 177 insertions(+), 2 deletions(-) diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index b7da52468b..ca3f2b420b 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -44,6 +44,16 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL +/datum/design/medicalkit + name = "Empty Medkit" + desc = "A plastic medical kit for storging medical items." + id = "medicalkit" + build_type = PROTOLATHE + materials = list(MAT_PLASTIC = 5000) + build_path = /obj/item/storage/firstaid //So we dont spawn medical items in it + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + /datum/design/xlarge_beaker name = "X-large Beaker" id = "xlarge_beaker" @@ -526,6 +536,80 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL +///////////////////// +//Adv Surgery Tools// +///////////////////// + +/datum/design/drapes + name = "Plastic Drapes" + desc = "A large surgery drape made of plastic." + id = "drapes" + build_type = PROTOLATHE + materials = list(MAT_PLASTIC = 2500) + build_path = /obj/item/surgical_drapes + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/retractor_adv + name = "Advanced Retractor" + desc = "A high-class, premium retractor, featuring precision crafted, silver-plated hook-ends and an electrum handle." + id = "retractor_adv" + build_type = PROTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 1500, MAT_GOLD = 1000) + build_path = /obj/item/retractor/adv + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/hemostat_adv + name = "Advanced Hemostat" + desc = "An exceptionally fine pair of arterial forceps. These appear to be plated in electrum and feel soft to the touch." + id = "hemostat_adv" + build_type = PROTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 1000, MAT_GOLD = 1500) + build_path = /obj/item/hemostat/adv + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/cautery_adv + name = "Electrocautery" //This is based on real-life science. + desc = "A high-tech unipolar Electrocauter. This tiny device contains an extremely powerful microbattery that uses arcs of electricity to painlessly sear wounds shut. It seems to recharge with the user's body-heat. Wow!" + id = "cautery_adv" + build_type = PROTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 1000, MAT_GOLD = 1500) + build_path = /obj/item/cautery/adv + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/surgicaldrill_adv + name = "Surgical Autodrill" + desc = "With a diamond tip and built-in depth and safety sensors, this drill alerts the user before overpenetrating a patient's skull or tooth. There also appears to be a disable switch." + id = "surgicaldrill_adv" + build_type = PROTOLATHE + materials = list(MAT_METAL = 2500, MAT_GLASS = 2500, MAT_SILVER = 6000, MAT_GOLD = 5500, MAT_DIAMOND = 3500) + build_path = /obj/item/surgicaldrill/adv + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/scalpel_adv + name = "Precision Scalpel" + desc = "A perfectly balanced electrum scalpel with a silicon-coated edge to eliminate wear and tear." + id = "scalpel_adv" + build_type = PROTOLATHE + materials = list(MAT_METAL = 1500, MAT_GLASS = 1500, MAT_SILVER = 4000, MAT_GOLD = 2500) + build_path = /obj/item/scalpel/adv + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/circular_saw_adv + name = "Diamond-Grit Circular Saw" + desc = "For those Assistants with REALLY thick skulls." + id = "circular_saw_adv" + build_type = PROTOLATHE + materials = list(MAT_METAL = 7500, MAT_GLASS = 6000, MAT_SILVER = 6500, MAT_GOLD = 7500, MAT_DIAMOND = 4500) + build_path = /obj/item/circular_saw/adv + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + ///////////////////// ///Surgery Designs/// ///////////////////// diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index af4f1ce3cc..fec2752a22 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -60,7 +60,7 @@ display_name = "Biological Technology" description = "What makes us tick." //the MC, silly! prereq_ids = list("base") - design_ids = list("chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag") + design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -91,6 +91,15 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1250) export_price = 5000 +/datum/techweb_node/advance_surgerytools + id = "advance_surgerytools" + display_name = "Advanced Surgery Tools" + description = "Refined and improved redesigns for the run-of-the-mill medical utensils." + prereq_ids = list("adv_biotech", "adv_surgery") + design_ids = list("drapes", "retractor_adv", "hemostat_adv", "cautery_adv", "surgicaldrill_adv", "scalpel_adv", "circular_saw_adv") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + /////////////////////////Advanced Surgery///////////////////////// /datum/techweb_node/adv_surgery id = "adv_surgery" diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index aaf859ee52..517dfb412a 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -7,6 +7,15 @@ flags_1 = CONDUCT_1 w_class = WEIGHT_CLASS_TINY +/obj/item/retractor/adv + name = "Advanced Retractor" + desc = "A high-class, premium retractor, featuring precision crafted, silver-plated hook-ends and an electrum handle." + icon = 'icons/obj/surgery.dmi' + icon_state = "retractor" + materials = list(MAT_METAL=6000, MAT_GLASS=3000) + flags_1 = CONDUCT_1 + w_class = WEIGHT_CLASS_TINY + toolspeed = 0.65 /obj/item/retractor/augment name = "retractor" @@ -18,7 +27,6 @@ w_class = WEIGHT_CLASS_TINY toolspeed = 0.5 - /obj/item/hemostat name = "hemostat" desc = "You think you have seen this before." @@ -29,6 +37,16 @@ w_class = WEIGHT_CLASS_TINY attack_verb = list("attacked", "pinched") +/obj/item/hemostat/adv + name = "Advanced Hemostat" + desc = "An exceptionally fine pair of arterial forceps. These appear to be plated in electrum and feel soft to the touch." + icon = 'icons/obj/surgery.dmi' + icon_state = "hemostat" + materials = list(MAT_METAL=5000, MAT_GLASS=2500) + flags_1 = CONDUCT_1 + w_class = WEIGHT_CLASS_TINY + toolspeed = 0.65 + attack_verb = list("attacked", "pinched") /obj/item/hemostat/augment name = "hemostat" @@ -52,6 +70,16 @@ w_class = WEIGHT_CLASS_TINY attack_verb = list("burnt") +/obj/item/cautery/adv + name = "Electrocautery" + desc = "A high-tech unipolar Electrocauter. This tiny device contains an extremely powerful microbattery that uses arcs of electricity to painlessly sear wounds shut. It seems to recharge with the user's body-heat. Wow!" + icon = 'icons/obj/surgery.dmi' + icon_state = "cautery" + materials = list(MAT_METAL=2500, MAT_GLASS=750) + flags_1 = CONDUCT_1 + w_class = WEIGHT_CLASS_TINY + toolspeed = 0.5 + attack_verb = list("burnt") /obj/item/cautery/augment name = "cautery" @@ -79,6 +107,21 @@ w_class = WEIGHT_CLASS_NORMAL attack_verb = list("drilled") +/obj/item/surgicaldrill/adv + name = "Surgical Autodrill" + desc = "With a diamond tip and built-in depth and safety sensors, this drill alerts the user before overpenetrating a patient's skull or tooth. There also appears to be a disable switch." + icon = 'icons/obj/surgery.dmi' + icon_state = "drill" + lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' + hitsound = 'sound/weapons/circsawhit.ogg' + materials = list(MAT_METAL=10000, MAT_GLASS=6000) + flags_1 = CONDUCT_1 + force = 13 //Damions are not ment for flesh cutting! + w_class = WEIGHT_CLASS_NORMAL + toolspeed = 0.65 + attack_verb = list("drilled") + sharpness = IS_SHARP_ACCURATE // Were making them use a damion for this... /obj/item/surgicaldrill/augment name = "surgical drill" @@ -116,6 +159,25 @@ . = ..() AddComponent(/datum/component/butchering, 80 * toolspeed, 100, 0) +/obj/item/scalpel/adv + name = "Precision Scalpel" + desc = "A perfectly balanced electrum scalpel with a silicon-coated edge to eliminate wear and tear." + icon = 'icons/obj/surgery.dmi' + icon_state = "scalpel" + lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' + flags_1 = CONDUCT_1 + force = 8 + w_class = WEIGHT_CLASS_TINY + throwforce = 7 + throw_speed = 3 + throw_range = 6 + materials = list(MAT_METAL=4000, MAT_GLASS=1000) + attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") + toolspeed = 0.65 + hitsound = 'sound/weapons/bladeslice.ogg' + sharpness = IS_SHARP_ACCURATE + /obj/item/scalpel/augment name = "scalpel" desc = "Ultra-sharp blade attached directly to your bone for extra-accuracy." @@ -161,6 +223,26 @@ . = ..() AddComponent(/datum/component/butchering, 40 * toolspeed, 100, 5, 'sound/weapons/circsawhit.ogg') //saws are very accurate and fast at butchering +/obj/item/circular_saw/adv + name = "Diamond-Grit Circular Saw" + desc = "For those Assistants with REALLY thick skulls." + icon = 'icons/obj/surgery.dmi' + icon_state = "saw" + lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' + hitsound = 'sound/weapons/circsawhit.ogg' + throwhitsound = 'sound/weapons/pierce.ogg' + flags_1 = CONDUCT_1 + force = 13 + w_class = WEIGHT_CLASS_NORMAL + throwforce = 6 + throw_speed = 1 + throw_range = 3 + materials = list(MAT_METAL=10000, MAT_GLASS=6000) + attack_verb = list("attacked", "slashed", "sawed", "cut") + toolspeed = 0.65 + sharpness = IS_SHARP + /obj/item/circular_saw/augment name = "circular saw" desc = "A small but very fast spinning saw. Edges dulled to prevent accidental cutting inside of the surgeon." From 889216c8f606fea03109e3b4b23a24a08d3ddbb4 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 8 Jan 2019 05:38:54 -0500 Subject: [PATCH 193/237] [Ready] New Mute quirk as well as Paper bin and crayon box to load-outs! - Requested by Suru (#7867) * Fixing updater * Update negative.dm * Update backpack.dm * Update negative.dm * Update negative.dm --- code/datums/traits/negative.dm | 18 ++++++++++++++++++ .../code/modules/client/loadout/backpack.dm | 12 +++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index da0b811d03..2187d61215 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -278,3 +278,21 @@ var/mob/living/carbon/human/H = quirk_holder phobia = new H.gain_trauma(phobia, TRAUMA_RESILIENCE_SURGERY) + +/datum/quirk/mute + name = "Mute" + desc = "Do to some accident caused you or by choice you have no voice to be heard!" + value = -2 //HALP MAINTS + gain_text = "I rather not say..." + lose_text = "I can speak once more." + medical_record_text = "Patient has an been unable to talk or use there voice." + var/datum/brain_trauma/severe/mute + +/datum/quirk/mute/add() + var/mob/living/carbon/human/H = quirk_holder + H.gain_trauma(mute, TRAUMA_RESILIENCE_SURGERY) + +/datum/quirk/mute/on_process() + if(quirk_holder.mind && LAZYLEN(quirk_holder.mind.antag_datums)) + to_chat(quirk_holder, "Your antagonistic nature has caused your voice to be heard.") + qdel(src) diff --git a/modular_citadel/code/modules/client/loadout/backpack.dm b/modular_citadel/code/modules/client/loadout/backpack.dm index b3a59425a9..886a2d4df9 100644 --- a/modular_citadel/code/modules/client/loadout/backpack.dm +++ b/modular_citadel/code/modules/client/loadout/backpack.dm @@ -56,4 +56,14 @@ /datum/gear/dildo name = "Customizable dildo" category = SLOT_IN_BACKPACK - path = /obj/item/dildo/custom \ No newline at end of file + path = /obj/item/dildo/custom + +/datum/gear/paperbin + name = "Paper Bin" + category = SLOT_IN_BACKPACK + path = /obj/item/paper_bin + +/datum/gear/crayons + name = "Box of crayons" + category = SLOT_IN_BACKPACK + path = /obj/item/storage/crayons From 2b68547f8d612acc8a8a4c4d4f4d7bd7a9bd8787 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 8 Jan 2019 05:41:12 -0500 Subject: [PATCH 194/237] [Ready] Makes synda paper mask correct eye sight and flash proof (#7858) * Wow this is worthless * Better tells --- .../code/modules/clothing/glasses/phantomthief.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modular_citadel/code/modules/clothing/glasses/phantomthief.dm b/modular_citadel/code/modules/clothing/glasses/phantomthief.dm index 49eb089afa..e5f58d4082 100644 --- a/modular_citadel/code/modules/clothing/glasses/phantomthief.dm +++ b/modular_citadel/code/modules/clothing/glasses/phantomthief.dm @@ -1,6 +1,8 @@ /obj/item/clothing/glasses/phantomthief name = "suspicious paper mask" - desc = "A cheap, Syndicate-branded paper face mask. They'll never see it coming." + desc = "A cheap, Syndicate-branded paper face mask with vision correction lens and flash proof! They'll never see it coming. This mask goes over your eyes." + flash_protect = 1 + vision_correction = 1 alternate_worn_icon = 'icons/mob/mask.dmi' icon = 'icons/obj/clothing/masks.dmi' icon_state = "s-ninja" @@ -12,7 +14,7 @@ /obj/item/clothing/glasses/phantomthief/syndicate name = "suspicious plastic mask" - desc = "A cheap, bulky, Syndicate-branded plastic face mask. You have to break in to break out." + desc = "A cheap, bulky, Syndicate-branded plastic face mask with vision correction lens and flash proof. You have to break in to break out. This mask goes over your eyes." var/nextadrenalinepop var/datum/component/redirect/combattoggle_redir From 4a50b86b478d1952690e7dd9b8d7ea4d0848a067 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 8 Jan 2019 10:09:48 -0800 Subject: [PATCH 195/237] Revert "[Ready] Makes synda paper mask correct eye sight and flash proof (#7858)" This reverts commit 2b68547f8d612acc8a8a4c4d4f4d7bd7a9bd8787. --- .../code/modules/clothing/glasses/phantomthief.dm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/modular_citadel/code/modules/clothing/glasses/phantomthief.dm b/modular_citadel/code/modules/clothing/glasses/phantomthief.dm index e5f58d4082..49eb089afa 100644 --- a/modular_citadel/code/modules/clothing/glasses/phantomthief.dm +++ b/modular_citadel/code/modules/clothing/glasses/phantomthief.dm @@ -1,8 +1,6 @@ /obj/item/clothing/glasses/phantomthief name = "suspicious paper mask" - desc = "A cheap, Syndicate-branded paper face mask with vision correction lens and flash proof! They'll never see it coming. This mask goes over your eyes." - flash_protect = 1 - vision_correction = 1 + desc = "A cheap, Syndicate-branded paper face mask. They'll never see it coming." alternate_worn_icon = 'icons/mob/mask.dmi' icon = 'icons/obj/clothing/masks.dmi' icon_state = "s-ninja" @@ -14,7 +12,7 @@ /obj/item/clothing/glasses/phantomthief/syndicate name = "suspicious plastic mask" - desc = "A cheap, bulky, Syndicate-branded plastic face mask with vision correction lens and flash proof. You have to break in to break out. This mask goes over your eyes." + desc = "A cheap, bulky, Syndicate-branded plastic face mask. You have to break in to break out." var/nextadrenalinepop var/datum/component/redirect/combattoggle_redir From ae8b026cf2f61e2dacde5494225abd4652a31bf1 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 8 Jan 2019 15:17:02 -0500 Subject: [PATCH 196/237] Update packs.dm --- code/modules/cargo/packs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index a6d32c088f..0fae034357 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -1493,7 +1493,7 @@ crate_name = "janitor backpack crate" crate_type = /obj/structure/closet/crate/secure -/datum/supply_pack/organic/advlighting +/datum/supply_pack/service/advlighting name = "Advanced Lighting crate" desc = "Thanks to advanced lighting tech we here at the Lamp Factory have be able to produce more lamps and lamp items! This crate has three lamps, a box of lights and a state of the art rapid-light-device!" cost = 2500 //Fair From 104a3406a0ae94b18b6bb5cf2590985af2588d9e Mon Sep 17 00:00:00 2001 From: deathride58 Date: Tue, 8 Jan 2019 16:19:12 -0500 Subject: [PATCH 197/237] Makes the server tagline a config option --- code/controllers/configuration/entries/general.dm | 3 +++ code/game/world.dm | 2 +- config/config.txt | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index 53f03ebfff..595e1d9ca0 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -7,6 +7,9 @@ /datum/config_entry/string/servername // server name (the name of the game window) +/datum/config_entry/string/servertagline + config_entry_value = "We forgot to set the server's tagline in config.txt" + /datum/config_entry/string/serversqlname // short form server name used for the DB /datum/config_entry/string/stationname // station name (the name of the station in-game) diff --git a/code/game/world.dm b/code/game/world.dm index e83a01e7f2..d8576206dd 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -263,7 +263,7 @@ GLOBAL_VAR(restart_counter) s += "Citadel" //Replace this with something else. Or ever better, delete it and uncomment the game version. CIT CHANGE - modifies the hub entry link s += "" s += ")\]" //CIT CHANGE - encloses the server title in brackets to make the hub entry fancier - s += "
That furry /TG/code server your mother warned you about.
" //CIT CHANGE - adds a tagline! + s += "
[CONFIG_GET(string/servertagline)]
" //CIT CHANGE - adds a tagline! var/n = 0 for (var/mob/M in GLOB.player_list) diff --git a/config/config.txt b/config/config.txt index 33bff862d9..3bc9f873a9 100644 --- a/config/config.txt +++ b/config/config.txt @@ -16,6 +16,9 @@ $include antag_rep.txt ## Server name: This appears at the top of the screen in-game and in the BYOND hub. Uncomment and replace 'tgstation' with the name of your choice. # SERVERNAME tgstation +## Server tagline: This will appear right below the server's title. +# SERVERTAGLINE A generic TG-based server + ## Server SQL name: This is the name used to identify the server to the SQL DB, distinct from SERVERNAME as it must be at most 32 characters. # SERVERSQLNAME tgstation From ecf2ed5639c67ffd4519b738c2e17e99d346ad32 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Wed, 9 Jan 2019 09:36:16 -0500 Subject: [PATCH 198/237] Grammar adjusts for negative traits. Improves grammar, spelling and legibility for Mute and Phobia traits. Also adds verbosity for their descriptions and acquisition/loss messages. --- code/datums/traits/negative.dm | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index da0b811d03..3a104502ef 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -267,14 +267,32 @@ /datum/quirk/phobia name = "Phobia" - desc = "You've had a traumatic past, that has scared you for life while dealing with your greatest fear." + desc = "You've had a traumatic past, one that has scarred you for life, and cripples you when dealing with your greatest fears." value = -2 // It can hardstun you. You can be a job that your phobia targets... - gain_text = "You feel your fears manifest themselfs." - lose_text = "You feel your fears fade away." - medical_record_text = "Patient has an extreme or irrational fear of or aversion to something." + gain_text = "You begin to tremble as an immeasurable fear grips your mind." + lose_text = "Your confidence wipes away the fear that had been plagueing you." + medical_record_text = "Patient has an extreme or irrational fear and aversion to an undefined stimuli." var/datum/brain_trauma/mild/phobia/phobia - + /datum/quirk/phobia/add() var/mob/living/carbon/human/H = quirk_holder phobia = new H.gain_trauma(phobia, TRAUMA_RESILIENCE_SURGERY) + + /datum/quirk/mute + name = "Mute" + desc = "Due to some accident, medical condition, or simply by choice, you are completely unable to speak." + + value = -2 //HALP MAINTS + gain_text = "You find yourself unable to speak!" + lose_text = "You feel a growing strength in your vocal chords." + medical_record_text = "Functionally mute, patient is unable to use their voice in any capacity." + var/datum/brain_trauma/severe/mute + + /datum/quirk/mute/add() + var/mob/living/carbon/human/H = quirk_holder + H.gain_trauma(mute, TRAUMA_RESILIENCE_SURGERY) + + /datum/quirk/mute/on_process() + if(quirk_holder.mind && LAZYLEN(quirk_holder.mind.antag_datums)) + to_chat(quirk_holder, "Your antagonistic nature has caused your voice to return.") From 39d75b93b1fcba0c9c4ca1a99ab5d30659f9c47a Mon Sep 17 00:00:00 2001 From: Ragolution Date: Wed, 9 Jan 2019 09:43:24 -0500 Subject: [PATCH 199/237] Git acting fucky --- code/datums/traits/negative.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index a214977bac..f1a4e07e41 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -278,7 +278,7 @@ var/mob/living/carbon/human/H = quirk_holder phobia = new H.gain_trauma(phobia, TRAUMA_RESILIENCE_SURGERY) - + /datum/quirk/mute name = "Mute" desc = "Due to some accident, medical condition, or simply by choice, you are completely unable to speak." From 7cca2e7fe9466f0c7fbc85586d02d5b565c9ecc4 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Wed, 9 Jan 2019 10:08:34 -0500 Subject: [PATCH 200/237] uhhh is this something that should be done because i have no idea --- code/datums/traits/negative.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index f1a4e07e41..095f75cb55 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -294,4 +294,4 @@ /datum/quirk/mute/on_process() if(quirk_holder.mind && LAZYLEN(quirk_holder.mind.antag_datums)) - to_chat(quirk_holder, "Your antagonistic nature has caused your voice to return.") \ No newline at end of file + to_chat(quirk_holder, "Your antagonistic nature has caused your voice to return.") qdel(src) From ff51bf470f1a1a5b34f0a37c8e900a0925a5eeca Mon Sep 17 00:00:00 2001 From: Ragolution Date: Wed, 9 Jan 2019 10:10:44 -0500 Subject: [PATCH 201/237] git still being weird --- code/datums/traits/negative.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 095f75cb55..aced161f48 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -294,4 +294,5 @@ /datum/quirk/mute/on_process() if(quirk_holder.mind && LAZYLEN(quirk_holder.mind.antag_datums)) - to_chat(quirk_holder, "Your antagonistic nature has caused your voice to return.") qdel(src) + to_chat(quirk_holder, "Your antagonistic nature has caused your voice to return.") + qdel(src) From 0ba384be86a791f2afc64290726268362b86b65a Mon Sep 17 00:00:00 2001 From: Ghommie Date: Wed, 9 Jan 2019 21:18:25 +0100 Subject: [PATCH 202/237] 1 --- code/modules/hydroponics/hydroitemdefines.dm | 50 ++++---------------- 1 file changed, 9 insertions(+), 41 deletions(-) diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index e3ca576944..1ea0068a1a 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -24,10 +24,7 @@ lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi' volume = 100 - -/obj/item/reagent_containers/spray/weedspray/Initialize() - . = ..() - reagents.add_reagent("weedkiller", 100) + list_reagents = list("weedkiller" = 100) /obj/item/reagent_containers/spray/weedspray/suicide_act(mob/user) user.visible_message("[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -42,10 +39,7 @@ lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi' volume = 100 - -/obj/item/reagent_containers/spray/pestspray/Initialize() - . = ..() - reagents.add_reagent("pestkiller", 100) + list_reagents = list("pestkiller" = 100) /obj/item/reagent_containers/spray/pestspray/suicide_act(mob/user) user.visible_message("[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -157,71 +151,45 @@ /obj/item/reagent_containers/glass/bottle/nutrient name = "bottle of nutrient" - icon = 'icons/obj/chemical.dmi' volume = 50 - w_class = WEIGHT_CLASS_TINY amount_per_transfer_from_this = 10 possible_transfer_amounts = list(1,2,5,10,15,25,50) /obj/item/reagent_containers/glass/bottle/nutrient/Initialize() . = ..() - src.pixel_x = rand(-5, 5) - src.pixel_y = rand(-5, 5) + pixel_x = rand(-5, 5) + pixel_y = rand(-5, 5) /obj/item/reagent_containers/glass/bottle/nutrient/ez name = "bottle of E-Z-Nutrient" desc = "Contains a fertilizer that causes mild mutations with each harvest." - icon = 'icons/obj/chemical.dmi' - -/obj/item/reagent_containers/glass/bottle/nutrient/ez/Initialize() - . = ..() - reagents.add_reagent("eznutriment", 50) + list_reagents = list("eznutriment" = 50) /obj/item/reagent_containers/glass/bottle/nutrient/l4z name = "bottle of Left 4 Zed" desc = "Contains a fertilizer that limits plant yields to no more than one and causes significant mutations in plants." - icon = 'icons/obj/chemical.dmi' - -/obj/item/reagent_containers/glass/bottle/nutrient/l4z/Initialize() - . = ..() - reagents.add_reagent("left4zednutriment", 50) + list_reagents = list("left4zednutriment" = 50) /obj/item/reagent_containers/glass/bottle/nutrient/rh name = "bottle of Robust Harvest" desc = "Contains a fertilizer that increases the yield of a plant by 30% while causing no mutations." - icon = 'icons/obj/chemical.dmi' - -/obj/item/reagent_containers/glass/bottle/nutrient/rh/Initialize() - . = ..() - reagents.add_reagent("robustharvestnutriment", 50) + list_reagents = list("robustharvestnutriment" = 50) /obj/item/reagent_containers/glass/bottle/nutrient/empty name = "bottle" - icon = 'icons/obj/chemical.dmi' /obj/item/reagent_containers/glass/bottle/killer - name = "bottle" - icon = 'icons/obj/chemical.dmi' volume = 50 - w_class = WEIGHT_CLASS_TINY amount_per_transfer_from_this = 10 possible_transfer_amounts = list(1,2,5,10,15,25,50) /obj/item/reagent_containers/glass/bottle/killer/weedkiller name = "bottle of weed killer" desc = "Contains a herbicide." - icon = 'icons/obj/chemical.dmi' - -/obj/item/reagent_containers/glass/bottle/killer/weedkiller/Initialize() - . = ..() - reagents.add_reagent("weedkiller", 50) + list_reagents = list("weedkiller" = 50) /obj/item/reagent_containers/glass/bottle/killer/pestkiller name = "bottle of pest spray" desc = "Contains a pesticide." - icon = 'icons/obj/chemical.dmi' - -/obj/item/reagent_containers/glass/bottle/killer/pestkiller/Initialize() - . = ..() - reagents.add_reagent("pestkiller", 50) + list_reagents = list("pestkiller" = 50) \ No newline at end of file From f981618f7eb6a45ade54899c24c5f2b083a1fd16 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Wed, 9 Jan 2019 17:21:58 -0500 Subject: [PATCH 203/237] oops --- code/datums/traits/negative.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index aced161f48..fad1c8e615 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -270,7 +270,7 @@ desc = "You've had a traumatic past, one that has scarred you for life, and cripples you when dealing with your greatest fears." value = -2 // It can hardstun you. You can be a job that your phobia targets... gain_text = "You begin to tremble as an immeasurable fear grips your mind." - lose_text = "Your confidence wipes away the fear that had been plagueing you." + lose_text = "Your confidence wipes away the fear that had been plaguing you." medical_record_text = "Patient has an extreme or irrational fear and aversion to an undefined stimuli." var/datum/brain_trauma/mild/phobia/phobia From 77a28abccf80daf8ffa39c774ca39163007fd632 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Wed, 9 Jan 2019 22:07:11 -0500 Subject: [PATCH 204/237] Code improvements Thanks to @Ghommie for the suggestion. --- .../code/modules/arousal/toys/dildos.dm | 36 +++++-------------- 1 file changed, 9 insertions(+), 27 deletions(-) diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm index 0f73564cad..87cc7a73c2 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/modular_citadel/code/modules/arousal/toys/dildos.dm @@ -142,6 +142,15 @@ obj/item/dildo/custom user.adjustOxyLoss(200) user.death(0) +/obj/item/dildo/suicide_act(mob/living/user) + user.visible_message("[user] tears-up and gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + user.Stun(150) + user.adjust_blurriness(8) + user.adjust_eye_damage(10) + addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) + return MANUAL_SUICIDE + /obj/item/dildo/knotted/suicide_act(mob/living/user) user.visible_message("[user] tears-up and gags as they shove [src] down their throat! They swallowed the knot! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) @@ -151,33 +160,6 @@ obj/item/dildo/custom addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) return MANUAL_SUICIDE -/obj/item/dildo/human/suicide_act(mob/living/user) - user.visible_message("[user] tears-up and gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) - user.Stun(150) - user.adjust_blurriness(8) - user.adjust_eye_damage(10) - addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) - return MANUAL_SUICIDE - -/obj/item/dildo/plain/suicide_act(mob/living/user, delay = 150) - user.visible_message("[user] tears-up and gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) - user.Stun(150) - user.adjust_blurriness(8) - user.adjust_eye_damage(10) - addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) - return MANUAL_SUICIDE - -/obj/item/dildo/flared/suicide_act(mob/living/user) - user.visible_message("[user] tears-up and gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) - user.Stun(150) - user.adjust_blurriness(8) - user.adjust_eye_damage(10) - addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) - return MANUAL_SUICIDE - /obj/item/dildo/flared/huge/suicide_act(mob/living/user) user.visible_message("[user] tears-up and gags as they try to deepthroat the [src]! WHY WOULD THEY DO THAT? It looks like [user.p_theyre()] trying to commit suicide!!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 2, -1) From ab5681e3c8939fb3de5314ff136fa32911751faa Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 10 Jan 2019 03:00:40 -0800 Subject: [PATCH 205/237] Update brand_intelligence.dm --- code/modules/events/brand_intelligence.dm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index e33cfbd25d..a838b62e0d 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -18,7 +18,14 @@ "Your money can buy happiness!", \ "Engage direct marketing!", \ "Advertising is legalized lying! But don't let that put you off our great deals!", \ - "You don't want to buy anything? Yeah, well, I didn't want to buy your mom either.") + "You don't want to buy anything? Yeah, well, I didn't want to buy your mom either.", + "Gamers, rise up!", + "Ok, now, this is epic.", + "HUMAN FUNNY.", + "But I'm already tracer!", + "How do I vore people?", + "ERP?", + "Not epic bros...") /datum/round_event/brand_intelligence/announce(fake) From 821c6f9db585624342485fa255072bfdf060ec67 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Thu, 10 Jan 2019 08:51:06 -0500 Subject: [PATCH 206/237] Found another one. TRILBYYYYYYYY --- code/game/objects/items/kitchen.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index bf50e7546e..11d6f264b8 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -179,7 +179,7 @@ /obj/item/kitchen/knife/scimitar name = "Scimitar knife" - desc = "A knife used to cleanly butcher, its been modifed to be able to cut more meat then a normale knife. Do to the years of use its blade isnt as strong as it once was!" + desc = "A knife used to cleanly butcher. Its razor-sharp edge has been honed for butchering, but has been poorly maintained over the years." attack_verb = list("cleaved", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") /obj/item/kitchen/knife/scimiar/Initialize() From e3e6a5a96a399320c89594a3e8439938fcdd88a4 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Thu, 10 Jan 2019 20:12:54 -0500 Subject: [PATCH 207/237] Ports tgstation/tgstation#41712 - Open storage by alt clicking --- code/datums/components/storage/storage.dm | 28 +++++++++++++++++------ 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 55af26b6b2..bd5702eef4 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -732,16 +732,30 @@ return hide_from(target) /datum/component/storage/proc/on_alt_click(datum/source, mob/user) - if(!isliving(user) || user.incapacitated() || !quickdraw || locked || !user.CanReach(parent)) + if(!isliving(user) || !user.CanReach(parent)) return - var/obj/item/I = locate() in real_location() - if(!I) + if(locked) + to_chat(user, "[parent] seems to be locked!") return - remove_from_storage(I, get_turf(user)) - if(!user.put_in_hands(I)) - to_chat(user, "You fumble for [I] and it falls on the floor.") + + var/atom/A = parent + if(!quickdraw) + A.add_fingerprint(user) + user_show_to_mob(user) + playsound(A, "rustle", 50, 1, -5) + return + + if(!user.incapacitated()) + var/obj/item/I = locate() in real_location() + if(!I) + return + A.add_fingerprint(user) + remove_from_storage(I, get_turf(user)) + if(!user.put_in_hands(I)) + to_chat(user, "You fumble for [I] and it falls on the floor.") + return + user.visible_message("[user] draws [I] from [parent]!", "You draw [I] from [parent].") return - user.visible_message("[user] draws [I] from [parent]!", "You draw [I] from [parent].") /datum/component/storage/proc/action_trigger(datum/signal_source, datum/action/source) gather_mode_switch(source.owner) From 4ed87f0f549b8782a4a00533406d166d29e95be5 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 11 Jan 2019 01:54:47 -0500 Subject: [PATCH 208/237] goonstyle attack animations - makes attacking rotate your character a little in the direction you're attacking --- code/game/atoms_movable.dm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index ba840d0771..e56f6d366c 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -622,8 +622,12 @@ else if(direction & WEST) pixel_x_diff = -8 - animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff, time = 2) - animate(src, pixel_x = pixel_x - pixel_x_diff, pixel_y = pixel_y - pixel_y_diff, time = 2) + var/matrix/OM = matrix(transform) + var/matrix/M = matrix(transform) + M.Turn(pixel_x_diff ? pixel_x_diff*2 : pick(-16, 16)) + + animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff, transform = M, time = 2) + animate(src, pixel_x = pixel_x - pixel_x_diff, pixel_y = pixel_y - pixel_y_diff, transform = OM, time = 2) /atom/movable/proc/do_item_attack_animation(atom/A, visual_effect_icon, obj/item/used_item) var/image/I From e03cd1e405ca1369f9b5633be4d53dadf0d4d670 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 11 Jan 2019 02:52:15 -0500 Subject: [PATCH 209/237] fancy throws - makes throws perform the attack animation and play a sound --- code/modules/mob/living/carbon/carbon.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 7bc0e281c5..ea13255dfe 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -188,6 +188,8 @@ if(thrown_thing) visible_message("[src] has thrown [thrown_thing].") src.log_message("has thrown [thrown_thing]", LOG_ATTACK) + do_attack_animation(target, no_effect = 1) + playsound(loc, 'sound/weapons/punchmiss.ogg', 50, 1, -1) newtonian_move(get_dir(target, src)) thrown_thing.throw_at(target, thrown_thing.throw_range, thrown_thing.throw_speed, src) From 0dc641f962044a8ddf6f08312342a89daea1cc06 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 11 Jan 2019 03:08:10 -0500 Subject: [PATCH 210/237] noisy flashlights - makes flashlights play a small sound when toggled on/off --- code/game/objects/items/devices/flashlight.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index d22ef23291..cbbd7a387a 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -35,6 +35,7 @@ /obj/item/flashlight/attack_self(mob/user) on = !on update_brightness(user) + playsound(user, on ? 'sound/weapons/magin.ogg' : 'sound/weapons/magout.ogg', 40, 1) for(var/X in actions) var/datum/action/A = X A.UpdateButtonIcon() From 37d90a780a74d1575e735ec1b8011cf4ee38d47e Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 11 Jan 2019 04:27:53 -0500 Subject: [PATCH 211/237] all items in disposal pipes now make small sounds when they hit corners. all mobs will make very audible sounds when they hit corners --- code/game/sound.dm | 4 ++++ code/modules/recycling/disposal/pipe.dm | 10 ++++++++++ code/modules/recycling/disposal/pipe_sorting.dm | 1 + sound/effects/clang1.ogg | Bin 0 -> 10149 bytes sound/effects/clang2.ogg | Bin 0 -> 12993 bytes sound/effects/clangsmall1.ogg | Bin 0 -> 8753 bytes sound/effects/clangsmall2.ogg | Bin 0 -> 8532 bytes 7 files changed, 15 insertions(+) create mode 100644 sound/effects/clang1.ogg create mode 100644 sound/effects/clang2.ogg create mode 100644 sound/effects/clangsmall1.ogg create mode 100644 sound/effects/clangsmall2.ogg diff --git a/code/game/sound.dm b/code/game/sound.dm index 84351cdb95..b7e4e4131e 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -200,5 +200,9 @@ 'sound/vore/prey/death_04.ogg','sound/vore/prey/death_05.ogg','sound/vore/prey/death_06.ogg', 'sound/vore/prey/death_07.ogg','sound/vore/prey/death_08.ogg','sound/vore/prey/death_09.ogg', 'sound/vore/prey/death_10.ogg') + if("clang") + soundin = pick('sound/effects/clang1.ogg', 'sound/effects/clang2.ogg') + if("clangsmall") + soundin = pick('sound/effects/clangsmall1.ogg', 'sound/effects/clangsmall2.ogg') //END OF CIT CHANGES return soundin diff --git a/code/modules/recycling/disposal/pipe.dm b/code/modules/recycling/disposal/pipe.dm index 6c269e44be..9f0fd930d7 100644 --- a/code/modules/recycling/disposal/pipe.dm +++ b/code/modules/recycling/disposal/pipe.dm @@ -1,5 +1,7 @@ // Disposal pipes +#define IFFY 2 + /obj/structure/disposalpipe name = "disposal pipe" desc = "An underfloor disposal pipe." @@ -16,6 +18,7 @@ var/dpdir = NONE // bitmask of pipe directions var/initialize_dirs = NONE // bitflags of pipe directions added on init, see \code\_DEFINES\pipe_construction.dm var/flip_type // If set, the pipe is flippable and becomes this type when flipped + var/canclank = FALSE // Determines if the pipe will cause a clank sound when holders pass by it. use the IFFY define for weird-ass edge cases like the segment subtype var/obj/structure/disposalconstruct/stored @@ -75,6 +78,8 @@ H.merge(H2) H.forceMove(P) + if(P.canclank == TRUE || (P.canclank == IFFY && P.dpdir != 3 && P.dpdir != 12)) + playsound(src, H.hasmob ? "clang" : "clangsmall", H.hasmob ? 50 : 25, 1) return P else // if wasn't a pipe, then they're now in our turf H.forceMove(get_turf(src)) @@ -184,6 +189,7 @@ /obj/structure/disposalpipe/segment icon_state = "pipe" initialize_dirs = DISP_DIR_FLIP + canclank = IFFY // A three-way junction with dir being the dominant direction @@ -191,6 +197,7 @@ icon_state = "pipe-j1" initialize_dirs = DISP_DIR_RIGHT | DISP_DIR_FLIP flip_type = /obj/structure/disposalpipe/junction/flip + canclank = TRUE // next direction to move // if coming in from secondary dirs, then next is primary dir @@ -229,6 +236,7 @@ //a trunk joining to a disposal bin or outlet on the same turf /obj/structure/disposalpipe/trunk icon_state = "pipe-t" + canclank = TRUE var/obj/linked // the linked obj/machinery/disposal or obj/disposaloutlet /obj/structure/disposalpipe/trunk/Initialize() @@ -299,3 +307,5 @@ /obj/structure/disposalpipe/broken/deconstruct() qdel(src) + +#undef IFFY diff --git a/code/modules/recycling/disposal/pipe_sorting.dm b/code/modules/recycling/disposal/pipe_sorting.dm index 5e26e9b767..d85c4bca78 100644 --- a/code/modules/recycling/disposal/pipe_sorting.dm +++ b/code/modules/recycling/disposal/pipe_sorting.dm @@ -5,6 +5,7 @@ desc = "An underfloor disposal pipe with a sorting mechanism." icon_state = "pipe-j1s" initialize_dirs = DISP_DIR_RIGHT | DISP_DIR_FLIP + canclank = TRUE /obj/structure/disposalpipe/sorting/nextdir(obj/structure/disposalholder/H) var/sortdir = dpdir & ~(dir | turn(dir, 180)) diff --git a/sound/effects/clang1.ogg b/sound/effects/clang1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..eef118e4d46d101991b24c7914134b52f697b298 GIT binary patch literal 10149 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 literal 0 HcmV?d00001 diff --git a/sound/effects/clang2.ogg b/sound/effects/clang2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..175fe98fd120f7711470353d09ca1a9df808eb49 GIT binary patch literal 12993 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 GVEupU(tw!& literal 0 HcmV?d00001 diff --git a/sound/effects/clangsmall2.ogg b/sound/effects/clangsmall2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..3211e66b75568f272ae2844d6eabfb74accbef1c GIT binary patch literal 8532 zcmaia2|Sc-_y29*8B9W!A=_BW*lK98q!@%@?4k)}k3p#vvWF~_harz`#yXO%kbU2? zuSI0Z5+x*+|2;g<`#%5o_xrrR`*XQI*L|JqI_Em)e9yVheH+7@H%$O);IE6x@o3;5 zuo*@rMCIq{jdjLRrlTvLy%8;`2Ul(O3h4S-v!vRF?;QzZiX^t4lfOHGz z+qX^`df$Y(Ib+QZ*~4^U3i1dAc?Eezn3SQrhx2W3N1UUF51hiAitcDDTvN-83Sb0h z5c;szz_)Q20Du61y%?N5(McCh#AizRC*yS}qgMIIWPD^R?~Q0g+ut2b$>A6P&;o%{ zOtIOEx-Nalo4k^--Wf>et7mgz3{l3jNT#N3i5niIa+0e@A6%S~&5{lP?V_$D5(-6A zI&6eU7%$j`3wU>k)-$8@L%3_Ob_J)Z+alaazc0!~Wy23Z}c1p@*>HGwPfP~Df%?w10+ z17e0>WsSL&2NbnUObsyL7REsP%ZL?QZCG-mt&g_kfvQ zN;^~?Mg?S?L?+F{vqbr`=8#!5Az?+-fCI%OFs1}ictW-=$;qYIIkoauVWoR_scd&C z>){g6r?iyQ02$5%(*I~qmPwBPcT>OBAq}X5wruwjX!jD+MvJw3%Q75VxB~!vs*aXz z^;WuqQ);KVb^uUE2()?$bb{7E%ME!eo8!)p;S9z=Q&24O z->;xUynu>`Ja9Nr;l}k}B&_=$55)Ma_Mxt0m14Emj1GVp(Mn#W59&>9}H~jw`WZ)Jlek zN2B1xqlf~X3Ui3lpyxXblCWg&E_f~&75{YHrdU6x;J`mx{}%ycE^)98D9D*8p2wJC z%>CRg|L~o96>2-~J2MtAGZtfaJnTP#^{>bQz@P~^j7dB;8quEi_^Kw;k%Rw^94}~l zyg+BXm|m%v!JusKS0%$Or2%ejVm=M z){&0q2S9`RXdnNl0|1~Qj#ck4j~JunM$pP5XgQ4O`Trg@xu11AvpD zlS3d;-f@~9=Pei!i(+({Nczkc-jG~~A}f+j)F)0u^8D)rWHam5EL!T=CH==S;%8!E zY)vE^-G#G^VA`Vvi~%4J(Sc~;_3qQ{%(&EtV0w=4KuQu52X*0cNxX`1aT3>!`Lygo z-Oe05uU^#i9IhLYWN;I}0RFLLzKuIZr49uEEGwEB9*Rfz!58DuU5Et%GzyuUX3~db z6b$J?&_90+ffEHx`rz#XAw3!kX^-D(NC5z>feQT7lu~lg1|X8a>}|3BL?u0_xE{B5 zKh$xI+hFXOQm>M-u_>mT8#7{xnc^|PREisL8yI{u#c*q5j$ww93@{b${Ys7#rkHm; zn2}1yDV~SsNxn0R2A1IMC`k1kOA4?Xb+=9aiprnuoLism%@2$#22JqA9cL` z%6CS}nc(b_l~+KJDk#V=sB|wVCR=AM7i1N5mEJ5UF6t_MQCRG@3Q~*n3QA=Q3SxlYC8@=QtCbrp&9bZ2w+o7k3rp81)N1l-o7ZZ!`~woan^d?`onKw; zv0ClbQ|T^{U9eIo-Q85uRl2cSeY)IN#2DlI4sSbe4(j1}+O}jaUOyX4yh#90T0l-MC|oV|kZCSj)ilNg*gkWdIb&;i++*fU zto2w-R>4ZObax#n2r=E}DNrLXU^}G(5}ucmSpsf!>@xMcPPKXMtIqHEX1`!%YJUo1 zgNlL;?k@FA5gF>hvs3`R$P&~9BHaq}fuL7lIi?7D5!_W&s{q~zVb??vbD(-CIkO%R$k~G$I{7(VCc60*AS+@Hj~)t93AOe>j0%7|a=5H@;cZY8 zceysg$u=0ss*@u8P{u+s9%PmBI01zsKTAOOq$N^VJ&r}`!YdO{`rxThsF$H=D>uYw z8rn@6JQc_)0p%vwW@W8k;R~^1IXo4)!pzl$+y)94C-Ul{URLn9dLS10QO;zF@cdRD z>sU~@iK{Yc)P+K@c0WH#z@f;a!{`{0aKpWJgm8c3Z_TkTa&4nnGDW!b%V!Co@Wn~1 zXe53R3$jW;M}s@8-Kt1QE+Bz`ep0bGiE~rl8MZ2-$j}3y5V)sR+h$nM^@oXDdmE!S%13WtMQ z$bogoVc60eM7B~fvsp3$m%u1)gMoR6o{z};_$_Y^^aezf$P4;~2)zN?mKVpaDb07I zPeTeGVuX^0heA-g;zY2(WflPIIk&fX3jy#zM|s4a70ZeUgZY>$NOOkhqa^c#K#P)n zK`0Pgd#qf@<>Ts%Y{ zShZPcp~$TkuEiq6QEZX&7zpBuMS?2|B)Ilg0l+jJ15iS9LR&?Wmq}X5;ZTV{7-+_5 zL>Lqsg;+|{VuZIQgEbC`mr{Cw4_Qk65e*W++cuDZToRykX}H*b7bgE6G5s$}?O_ z`B`KsIzrgNLa#X)JTbjsNEm!MCj@j)rWOh*B@Utl4hP`_Ml{|Em4ZW~rNxO!l+-b7 zg^~k#Gl&yM(Jr7ARYqd@Fh$h3h7O!KYV|}83^^2di;Y$eLxW3N$FW6-oIx}gpS(AU zzyPvx1&{732d@~#MpuCL2Q$Pd_KEVS6$>!yaT^HKDe($>mQ&U=Fnj205wO_SJhV3D z#Q+WZB7=e!kxM8LRTPYfgn({1nhS~h*BnH3=?GdNpq7r-;f*v8p~aX9&cOvikVzem z#K95MQ2}=d#t<&Bl*5CZkLK`Ppp3)v4v(fF5;P5ka0u1I5t9hTT!)KAj`mV&K@g%e zlq`I5SuDFt)J^F_6OGZW4ipf`3IJZ?F01g-4p?hiNRnPioHqn}iW41$yzP0+5(Y1n9E!{;|ph~^@^8A>WXc+k73!mkH>ql7U6@(>ZlAayDzZwDwSgcc5D zlr+3W*wE5` zcG?#f0;3g)Xr+S21wQ8XxI4#Y__~ovRh!6u_yRl&073wezy=c)B_LzjpK`=O;yDwz z61njpd;y?@Dv$#R6r+oXh;WL{Zl0$RyW|j()AEs4{E$rP7#WXVRcH^#M=!|gHb-R2 z3o=E_x!-T(1%xF;Psx;*)s|Nj=Ml?a7LamZ6qFT^i22#+Q3A@1hSqj7BWIiN$}q;h z;}QJEw8l@ljqmLr%p~|Tu&TZ~?P0k7)g1paJ=w%k(CB)}LyM63WA4Ly!&M3wZ%Lb9 ziO-;6Rc%kaDYgE{Kc$~1u*KdTr^ga5zwkhEc1lmtj!uL0i3;yAFEpDhe5E4&KD7=F z>Hg)!P6q|UAMW*22Y+5YCnv`5sGfXiGm%60$q&v#*)y-#={SJj zHMIlcWSJ9NVUzLJKc^qTfi_gubjgk^FjIc6mr%9skNvfJ#cA^N+D*jvg8kHemv?!( z7NghVT|GqNlNmZjXiMXi{2Ws39#vWnsPk%@PW~zifN*XerLB8Nje2rV6wvUeK>C%n@f0an)n9wPIA`+Wgl~~ zRqdO%OtbUKyOI=cbxmgO!m5Uc5Uu#YgUuwZTNfX zxj+0Es-@Cv%MPe-jaCViI*^H@gw*AyXNw;{5UtZ3(;PgC?rxU8OH_MtF~I8dPshnz+!us= zPnNRx#ej(F2R}S9A_u+669^`5+z0v<6)j)$Y^v0G?)TiqE0U}$gU^5H%PN`eqie&z z2-&I# zQX|t9z+B0xg!}j+)1B_PT{6sdv9_odm0KmqC^!y0WWCUOVsck8YrWmdM(wP1yGjbR ze3)K)3+FMq*@}DVr`H?%Pu%%BIdQzk?ID-B>z1;uN_LYpoh1DTQy%}4w~Kms|HZossLPc5_X zxE2ZD(Cga(!ohbf(<(Alk#+?~?<>r$gch9QEwa_H8 zHE`7q5~wmF)_aq)`)9=_D^jF-*D?ZX@DKJMkExxEy1$wQC2WNRwcjiBXL#azVO#!2 zYualXzxq~&>{s)#Oq~@c_ncf~8;WSEi7NHu`PJ5ZsHf9Ag6InH#HOD$0sFb&#^D=;ffmpH_e?CQBRi5;kff#5FrPs^hZ@$pssuU>mQJyi^;z; zRNi=Kk+o=&^|9Cdn&g4h6E@s&rCDf)B&u-;P0iH(3EjkvlnCUxe@lQ7%>8n|%vc;&> zd3mf$TvSzdj(N@BAD$PoG2veDmT8#kn0iA`qMWa@Q%i8kI|C2)G8dnztcm)H6QQ}< zub3~K`^-{rTyZ>BGc78yMezPgp8{jqbIUXBe&2?(j*rJ?(#lvET>OM}8lEXq@GQHtp4t9x{iot-PjLr_TGOmI{-wiPVi9$(Qtt-Em6eq6o9^BA z5+_p^iLFEZf~a5M>u@iYgiZ+F`6U{8kJW-cVee_G%wR7uo%P<(6+7)~HNL=C%ueow zwiMj^)E&j>x2lSgF0Gp#m>SG+e3Fd{)fMT@+AM|7i)EHlYbrwwO27rZ zbtjz8K1a`)_mdwi;U*K+=j`zX3E2tufc=k5;fn`*YVGyEe|;G_{b-yQ_pNz

-Q z2Dyp)rYF=Pfplay5D|XCuRVEJB*oO&c&h2mTl?2;nBngltY4p{i4hnFHwLP{sT*1( zc*L}D;$c~>_z)6}+MO!@k!y@xNvsFfKjo{`T5nOCN0=TDeqhmCV7+Q7b)}N?XDi{| zjnc%BG<$EXf#Tk09J{k-Q!iXkquR?QVBd{U>8_HBys|u_rQQD%QF6~B@N@i32CD?V~pL& z`z4pq%8ysjhyK!9# zbeku)CEVMZ{p`g0ZpPRVb=TWU4{9G2^sGHt;bmMnMh6)n8OX>*=9!@1=((WiFPmj; z%wPUELdsTot3%E6h`e{_TFj%7iseGB-ygZM3b#^2q!Q(~+BsXT>YW+Pt`v;2-l|#G zm_`kdBaMu88|lYYT21o)EUlrd-0nOEoxN?@4JpE6FL&CP1X0)hSerXD{)=I2|Ath_ zDEo`#3uY1wB(kYXk#7|B_q{I5#m2plT^mb=75fLDD;!c1*Jo;%hTsowh1sKDEZl0b zIABwtYVbMf`K_97t~RpbgTV05GwGir=iqPnmCJ2vl^$+&E=A2YwKTnFMXPcKS=<$? z_!u+Qu)&&_{O)*_MD#$o@bnLtd%s@k*QZF_zqQ$5P0wvBDE~n%gnGh=^fk!ywzC@I zZq!eLg42*NaBanH({PO~XrHB`dCEj-SHgl?AcN-nM5JRQv|-WEz5kwL-OS8SU)16s z{f`_rEJ?>xJA(|KS!VKdD3;sEhOGE$D8XE~0^dIo9<3eaTt_#`oVoy^F!esB=wI?6kad0pxTQ=U?tUjR&VE|wK=oIjZa&DC}v+2wmYusbWu zyf{L(3n^qZI(7Wl>?LERTDENC#!(p6wUxE+cC-E(H3zK7v8XdslbfQ<_H=iFKx%oK z1>^z(aO--oE4J|G!fnDybB4O76V`+WeM1|khEzH?LTfMq@fQT0sEvWRWS(t7+4@RgQ4VDO(of*zZK_TA?*P8USRI~eD zHagpVeQj{rUloH^$Hf&N}ijUXGBQ1cx^c7M84>+{iDR1`LO~Gnp)MA6~>+7 z%XKjNdSxz~W86I8HaXDMk1bgzbvB_^xgRuMDBjEF!&Hv^Q*-pS^3mz=a{qA=zUiDIn7A6?DG9_MfTw%>LpbPz~ zsoYuh-GXWACicOeswWZB-Bm7qfz*E;8_K-2kxFAM?S`P2KbNUEKhW42!ge7-cKVV1 z54OcEz1dNyu(=0Aq&$rqz|zq1q6MJ{oNX4d^!r*xG{kN7zk9w+o~G({#7*_-d@PS4 z!7;(8$lMWJkOCA=W$`}2M`@eHFZks`70W?<@2cK9)3uvs?@$#zbMNK1Jc3pAS!xuM zx8V&3cn(~N%msUF2h&&l7Iu4`MZ?eY{H;NbT{P_HH?}KuS2YXGs!IM9}ZeMQNv_c*v!xvdK zwFcaPYmskO4;sD+u5F2JjzBl|^9p1D#XvTr98nn(5Li|lcW?Q}qjhbaKDXqhuf+O= zxq|gG^Cip`_Kdwop)J!~8|b+~DfRpf78Pw}Uue_KBp3~An2NnIa4_ff@R2&}OOC;S zV_)$;W`R~Y^zTV$wW_|Ocv|1&4xXBNayI{UNYAHpV#8McM(V)f_XOH3kAHtppaF-} z8lrS`I9tmreCZKyRxZMJ1$&lKA;s`?<9I`$jjiD+9{lRC{uMLH@TWv9G3P>@%S7G6 zj}M;>PvxXYE4n!Kn9|bVrJ){ct8F|klDHmDEY~=lf6I@i^B{96Nj|T_d+}i(o4jur zIonKEd0>^kOZW3}I{v&g1P^2rig-g1hV-+i@9TYh0l$EdFah$ZY?r`)^Z*%~CGX!M z_>Qr}*I3z9WNuvDRW@n%@zg47D(olU&Um4FE<@sK>X%C$+p(9FuQot90O0CoZg8a` zuH%4!lQLox5(@ume<#QP4tG0uC}FObAYDiUxk~v}z~)2PAEdAY!CUiHy+aqf7u~lQ zwoasG3E6bQzaXxjj<{Zltge5L{q)w!mDWw#$?1$no+5i&HdTWaP3hNXRKUZ~pPYh& z(~X;9ggJjL0h)|{%7>ZF?alY$^@^$MGbBmf(+B7FCuG{{s%*N@g>KRB8N+@R#jOT! pT{s Date: Fri, 11 Jan 2019 04:58:11 -0500 Subject: [PATCH 212/237] makes the sound actually play at the right place --- code/modules/recycling/disposal/pipe.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/recycling/disposal/pipe.dm b/code/modules/recycling/disposal/pipe.dm index 9f0fd930d7..aed2310a7f 100644 --- a/code/modules/recycling/disposal/pipe.dm +++ b/code/modules/recycling/disposal/pipe.dm @@ -79,7 +79,7 @@ H.forceMove(P) if(P.canclank == TRUE || (P.canclank == IFFY && P.dpdir != 3 && P.dpdir != 12)) - playsound(src, H.hasmob ? "clang" : "clangsmall", H.hasmob ? 50 : 25, 1) + playsound(P, H.hasmob ? "clang" : "clangsmall", H.hasmob ? 50 : 25, 1) return P else // if wasn't a pipe, then they're now in our turf H.forceMove(get_turf(src)) From 2fa89d71b36e824046ee76c1d899ad740e6d31b2 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 11 Jan 2019 11:40:46 -0500 Subject: [PATCH 213/237] FIXES A BUG THAT MAKES THE GAME EXTREMELY UNPLAYABLE --- code/__DEFINES/lighting.dm | 1 + code/modules/atmospherics/machinery/airalarm.dm | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/lighting.dm b/code/__DEFINES/lighting.dm index 5db5c979e8..13dccc74fe 100644 --- a/code/__DEFINES/lighting.dm +++ b/code/__DEFINES/lighting.dm @@ -34,6 +34,7 @@ #define LIGHT_COLOR_BLUE "#6496FA" //Cold, diluted blue. rgb(100, 150, 250) #define LIGHT_COLOR_BLUEGREEN "#7DE1AF" //Light blueish green. rgb(125, 225, 175) +#define LIGHT_COLOR_PALEBLUE "#7DAFE1" //A pale blue-ish color. rgb(125, 175, 225) #define LIGHT_COLOR_CYAN "#7DE1E1" //Diluted cyan. rgb(125, 225, 225) #define LIGHT_COLOR_LIGHT_CYAN "#40CEFF" //More-saturated cyan. rgb(64, 206, 255) #define LIGHT_COLOR_DARK_BLUE "#6496FA" //Saturated blue. rgb(51, 117, 248) diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index bcb3752cbf..0a7b76cc79 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -650,7 +650,7 @@ if(0) add_overlay(AALARM_OVERLAY_GREEN) overlay_state = AALARM_OVERLAY_GREEN - light_color = LIGHT_COLOR_BLUEGREEN + light_color = LIGHT_COLOR_PALEBLUE set_light(brightness_on) if(1) add_overlay(AALARM_OVERLAY_WARN) From 236af6ae2bd06d765c37d964ea8991c889476ba7 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 11 Jan 2019 12:44:27 -0500 Subject: [PATCH 214/237] backpack jiggles - various interactions with backpacks will now make the backpack play an animation --- code/__HELPERS/unsorted.dm | 14 ++++++++++++++ code/datums/components/storage/storage.dm | 11 +++++++++++ 2 files changed, 25 insertions(+) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 620c592d93..87524c4ae6 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1239,6 +1239,20 @@ GLOBAL_REAL_VAR(list/stack_trace_storage) pixel_x = initialpixelx pixel_y = initialpixely +/atom/proc/do_jiggle(targetangle = 45) + var/matrix/OM = matrix(transform) + var/matrix/M = matrix(transform) + M.Turn(pick(-targetangle, targetangle)) + animate(src, transform = M, time = 10, easing = ELASTIC_EASING) + animate(src, transform = OM, time = 10, easing = ELASTIC_EASING) + +/atom/proc/do_squish(squishx = -1, squishy = 2) + var/matrix/OM = matrix(transform) + var/matrix/M = matrix(transform) + M.Scale(squishx, squishy) + animate(src, transform = M, time = 10, easing = ELASTIC_EASING) + animate(src, transform = OM, time = 10, easing = ELASTIC_EASING) + /proc/weightclass2text(var/w_class) switch(w_class) if(WEIGHT_CLASS_TINY) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 55af26b6b2..b969f35972 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -169,10 +169,12 @@ if(locked) to_chat(M, "[parent] seems to be locked!") return FALSE + var/atom/A = parent var/obj/item/I = O if(collection_mode == COLLECT_ONE) if(can_be_inserted(I, null, M)) handle_item_insertion(I, null, M) + A.do_squish() return if(!isturf(I.loc)) return @@ -189,6 +191,7 @@ stoplag(1) qdel(progress) to_chat(M, "You put everything you could [insert_preposition] [parent].") + A.do_squish(-1, 3) /datum/component/storage/proc/handle_mass_item_insertion(list/things, datum/component/storage/src_object, mob/user, datum/progressbar/progress) var/atom/source_real_location = src_object.real_location() @@ -246,6 +249,7 @@ while (do_after(M, 10, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress))) stoplag(1) qdel(progress) + A.do_squish(2, 0) /datum/component/storage/proc/mass_remove_from_storage(atom/target, list/things, datum/progressbar/progress, trigger_on_found = TRUE) var/atom/real_location = real_location() @@ -455,6 +459,7 @@ return FALSE if(dump_destination.storage_contents_dump_act(src, M)) playsound(A, "rustle", 50, 1, -5) + A.do_squish(2, 0) return TRUE return FALSE @@ -473,6 +478,8 @@ return TRUE return FALSE handle_item_insertion(I, FALSE, M) + var/atom/A = parent + A.do_squish() /datum/component/storage/proc/return_inv(recursive) var/list/ret = list() @@ -514,6 +521,7 @@ if(A.loc != M) return playsound(A, "rustle", 50, 1, -5) + A.do_jiggle() if(istype(over_object, /obj/screen/inventory/hand)) var/obj/screen/inventory/hand/H = over_object M.putItemFromInventoryInHandIfPossible(A, H.held_index) @@ -539,6 +547,8 @@ if(!L.incapacitated() && I == L.get_active_held_item()) if(!SEND_SIGNAL(I, COMSIG_CONTAINS_STORAGE) && can_be_inserted(I, FALSE)) //If it has storage it should be trying to dump, not insert. handle_item_insertion(I, FALSE, L) + var/atom/A = parent + A.do_squish() //This proc return 1 if the item can be picked up and 0 if it can't. //Set the stop_messages to stop it from printing messages @@ -712,6 +722,7 @@ to_chat(user, "[parent] seems to be locked!") else show_to(user) + A.do_jiggle() /datum/component/storage/proc/signal_on_pickup(datum/source, mob/user) var/atom/A = parent From db0af68bf14da23b04f0121df6b29b6e554e87d1 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sat, 12 Jan 2019 00:29:29 -0500 Subject: [PATCH 215/237] hold on what was i thinking let me adjust these values --- code/__HELPERS/unsorted.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 87524c4ae6..8c9873d8c8 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1246,7 +1246,7 @@ GLOBAL_REAL_VAR(list/stack_trace_storage) animate(src, transform = M, time = 10, easing = ELASTIC_EASING) animate(src, transform = OM, time = 10, easing = ELASTIC_EASING) -/atom/proc/do_squish(squishx = -1, squishy = 2) +/atom/proc/do_squish(squishx = 1.2, squishy = 0.6) var/matrix/OM = matrix(transform) var/matrix/M = matrix(transform) M.Scale(squishx, squishy) @@ -1544,4 +1544,4 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) . = list() for(var/i in L) if(condition.Invoke(i)) - . |= i \ No newline at end of file + . |= i From 27653fe4ac82eff19e6382fb6be3801f18684e40 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sat, 12 Jan 2019 00:31:24 -0500 Subject: [PATCH 216/237] grmbl grmbl --- code/datums/components/storage/storage.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index b969f35972..e2861d0a2b 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -191,7 +191,7 @@ stoplag(1) qdel(progress) to_chat(M, "You put everything you could [insert_preposition] [parent].") - A.do_squish(-1, 3) + A.do_squish(1.4, 0.4) /datum/component/storage/proc/handle_mass_item_insertion(list/things, datum/component/storage/src_object, mob/user, datum/progressbar/progress) var/atom/source_real_location = src_object.real_location() @@ -249,7 +249,7 @@ while (do_after(M, 10, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress))) stoplag(1) qdel(progress) - A.do_squish(2, 0) + A.do_squish(0.8, 1.2) /datum/component/storage/proc/mass_remove_from_storage(atom/target, list/things, datum/progressbar/progress, trigger_on_found = TRUE) var/atom/real_location = real_location() @@ -459,7 +459,7 @@ return FALSE if(dump_destination.storage_contents_dump_act(src, M)) playsound(A, "rustle", 50, 1, -5) - A.do_squish(2, 0) + A.do_squish(0.8, 1.2) return TRUE return FALSE From ee19fa5ea374c8a3ee75158228e3f466a6fa9abf Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sat, 12 Jan 2019 00:49:07 -0500 Subject: [PATCH 217/237] OH THERE WE GO --- code/__HELPERS/unsorted.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 8c9873d8c8..2f69b63ae9 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1250,8 +1250,8 @@ GLOBAL_REAL_VAR(list/stack_trace_storage) var/matrix/OM = matrix(transform) var/matrix/M = matrix(transform) M.Scale(squishx, squishy) - animate(src, transform = M, time = 10, easing = ELASTIC_EASING) - animate(src, transform = OM, time = 10, easing = ELASTIC_EASING) + animate(src, transform = M, time = 10, easing = BOUNCE_EASING) + animate(src, transform = OM, time = 10, easing = BOUNCE_EASING) /proc/weightclass2text(var/w_class) switch(w_class) From 18d2572e57b01b5358f27753942c21629a70fb15 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Sat, 12 Jan 2019 02:31:25 -0500 Subject: [PATCH 218/237] Code Improvements (again) Knowing what I know now makes me wanna go revamp every instance of suicide code but geez. --- .../code/modules/arousal/toys/dildos.dm | 63 ++++++++----------- 1 file changed, 25 insertions(+), 38 deletions(-) diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm index 87cc7a73c2..f69b0b1935 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/modular_citadel/code/modules/arousal/toys/dildos.dm @@ -105,7 +105,7 @@ /obj/item/dildo/knotted dildo_shape = "knotted" name = "knotted dildo" - attack_verb = list("penetrated", "knotted", "slapped", "inseminated") + attack_verb = list("penetrated", "knotted", "slapped", "inseminated") obj/item/dildo/human dildo_shape = "human" @@ -115,17 +115,18 @@ obj/item/dildo/human obj/item/dildo/plain dildo_shape = "plain" name = "plain dildo" - attack_verb = list("penetrated", "slapped", "inseminated") + attack_verb = list("penetrated", "slapped", "inseminated") obj/item/dildo/flared dildo_shape = "flared" name = "flared dildo" - attack_verb = list("penetrated", "slapped", "neighed", "gaped", "prolapsed", "inseminated") + attack_verb = list("penetrated", "slapped", "neighed", "gaped", "prolapsed", "inseminated") obj/item/dildo/flared/huge - name = "literal horse cock" - desc = "THIS THING IS HUGE!" - dildo_size = 4 + dildo_shape ="horse" + name = "literal horse cock" + desc = "THIS THING IS HUGE!" + dildo_size = 4 obj/item/dildo/custom name = "customizable dildo" @@ -137,43 +138,29 @@ obj/item/dildo/custom // Suicide acts, by request +var/is_knotted = (dildo_shape == knotted) ? "They swallowed the knot" : "Their face is turning blue" +var/is_horse = (dildo_shape == horse ) ? " + /obj/item/dildo/proc/manual_suicide(mob/living/user) - user.visible_message("[user] finally finishes deepthroating the [src], and their life.") - user.adjustOxyLoss(200) - user.death(0) + user.visible_message("[user] finally finishes deepthroating the [src], and their life.") + user.adjustOxyLoss(200) + user.death(0) /obj/item/dildo/suicide_act(mob/living/user) - user.visible_message("[user] tears-up and gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) - user.Stun(150) - user.adjust_blurriness(8) - user.adjust_eye_damage(10) - addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) - return MANUAL_SUICIDE - -/obj/item/dildo/knotted/suicide_act(mob/living/user) - user.visible_message("[user] tears-up and gags as they shove [src] down their throat! They swallowed the knot! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) - user.Stun(150) - user.adjust_blurriness(8) - user.adjust_eye_damage(10) - addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) + if(do_after(user,17,target=src)) + user.visible_message("[user] tears-up and gags as they shove [src] down their throat! [is_knotted]! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + user.Stun(150) + user.adjust_blurriness(8) + user.adjust_eye_damage(10) return MANUAL_SUICIDE /obj/item/dildo/flared/huge/suicide_act(mob/living/user) - user.visible_message("[user] tears-up and gags as they try to deepthroat the [src]! WHY WOULD THEY DO THAT? It looks like [user.p_theyre()] trying to commit suicide!!") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 2, -1) - user.Stun(300) - user.adjust_blurriness(8) - user.adjust_eye_damage(15) - addtimer(CALLBACK(src, .proc/manual_suicide, user), 22) + if(do_after(user,35,target=src)) + user.visible_message("[user] tears-up and gags as they try to deepthroat the [src]! WHY WOULD THEY DO THAT? It looks like [user.p_theyre()] trying to commit suicide!!") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 2, -1) + user.Stun(300) + user.adjust_blurriness(8) + user.adjust_eye_damage(15) return MANUAL_SUICIDE -/obj/item/dildo/flared/custom/suicide_act(mob/living/user) - user.visible_message("[user] gags as they shove [src] down their throat! It looks like they wanted a custom death message!!") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) - user.Stun(50) - user.adjust_blurriness(8) - user.adjust_eye_damage(10) - addtimer(CALLBACK(src, .proc/manual_suicide, user), 5) - return MANUAL_SUICIDE From 1fd7bfe969eab189da464b8a906d487c315bf882 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Sat, 12 Jan 2019 02:50:03 -0500 Subject: [PATCH 219/237] oh whoops --- modular_citadel/code/modules/arousal/toys/dildos.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm index f69b0b1935..885f6efc69 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/modular_citadel/code/modules/arousal/toys/dildos.dm @@ -139,7 +139,6 @@ obj/item/dildo/custom // Suicide acts, by request var/is_knotted = (dildo_shape == knotted) ? "They swallowed the knot" : "Their face is turning blue" -var/is_horse = (dildo_shape == horse ) ? " /obj/item/dildo/proc/manual_suicide(mob/living/user) user.visible_message("[user] finally finishes deepthroating the [src], and their life.") From 245b2c1968fefeb6fc4ea28bacc5900051b823f7 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Sat, 12 Jan 2019 03:45:25 -0500 Subject: [PATCH 220/237] Removed knot conditionals whatever --- modular_citadel/code/modules/arousal/toys/dildos.dm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm index 885f6efc69..4b0a7ad919 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/modular_citadel/code/modules/arousal/toys/dildos.dm @@ -18,6 +18,7 @@ var/random_color = TRUE var/random_size = FALSE var/random_shape = FALSE + var/is_knotted = FALSE //Lists moved to _cit_helpers.dm as globals so they're not instanced individually /obj/item/dildo/proc/update_appearance() @@ -123,7 +124,6 @@ obj/item/dildo/flared attack_verb = list("penetrated", "slapped", "neighed", "gaped", "prolapsed", "inseminated") obj/item/dildo/flared/huge - dildo_shape ="horse" name = "literal horse cock" desc = "THIS THING IS HUGE!" dildo_size = 4 @@ -138,16 +138,15 @@ obj/item/dildo/custom // Suicide acts, by request -var/is_knotted = (dildo_shape == knotted) ? "They swallowed the knot" : "Their face is turning blue" - /obj/item/dildo/proc/manual_suicide(mob/living/user) user.visible_message("[user] finally finishes deepthroating the [src], and their life.") user.adjustOxyLoss(200) user.death(0) /obj/item/dildo/suicide_act(mob/living/user) +// is_knotted = ((src.dildo_shape == "knotted")?"They swallowed the knot":"Their face is turning blue") if(do_after(user,17,target=src)) - user.visible_message("[user] tears-up and gags as they shove [src] down their throat! [is_knotted]! It looks like [user.p_theyre()] trying to commit suicide!") + user.visible_message("[user] tears-up and gags as they shove [src] down their throat! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) user.Stun(150) user.adjust_blurriness(8) From e485dfc8124883ebc7739dea7c0fddf28ae34274 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 12 Jan 2019 17:02:58 -0800 Subject: [PATCH 221/237] Update brain.dm --- code/modules/mob/living/brain/brain.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/brain/brain.dm b/code/modules/mob/living/brain/brain.dm index e8a15d70ae..76b416772e 100644 --- a/code/modules/mob/living/brain/brain.dm +++ b/code/modules/mob/living/brain/brain.dm @@ -15,7 +15,6 @@ OB.brainmob = src forceMove(OB) - /mob/living/brain/proc/create_dna() stored_dna = new /datum/dna/stored(src) if(!stored_dna.species) @@ -28,6 +27,7 @@ death(1) //Brains can die again. AND THEY SHOULD AHA HA HA HA HA HA if(mind) //You aren't allowed to return to brains that don't exist mind.current = null + mind.active = FALSE //No one's using it anymore. ghostize() //Ghostize checks for key so nothing else is necessary. container = null return ..() From 6d9c76ce3aa54e24f898c241fbcb520251e9512e Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 13 Jan 2019 01:31:20 -0500 Subject: [PATCH 222/237] Update engivend.dm --- code/modules/vending/engivend.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/vending/engivend.dm b/code/modules/vending/engivend.dm index d715b5f4ba..b66195151d 100644 --- a/code/modules/vending/engivend.dm +++ b/code/modules/vending/engivend.dm @@ -19,7 +19,6 @@ /obj/item/rcd_ammo = 3 ) contraband = list(/obj/item/stock_parts/cell/potato = 3, - /obj/item/stock_parts/cell/emproof = 5, /obj/item/rcd_ammo = 2 ) premium = list(/obj/item/storage/belt/utility = 3, From 913de5376076b030fa75f47374e89d48c24b7ccf Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 13 Jan 2019 01:42:11 -0500 Subject: [PATCH 223/237] Update engivend.dm --- code/modules/vending/engivend.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/vending/engivend.dm b/code/modules/vending/engivend.dm index b66195151d..9358d1652f 100644 --- a/code/modules/vending/engivend.dm +++ b/code/modules/vending/engivend.dm @@ -19,7 +19,9 @@ /obj/item/rcd_ammo = 3 ) contraband = list(/obj/item/stock_parts/cell/potato = 3, - /obj/item/rcd_ammo = 2 + /obj/item/rcd_ammo = 2, + /obj/item/circuitboard/computer/slot_machine = 1, + /obj/item/tank/internals/emergency_oxygen/double = 3 ) premium = list(/obj/item/storage/belt/utility = 3, /obj/item/storage/box/smart_metal_foam = 3, From f5382b4ff6562473733708d8da7a8e2620fb792f Mon Sep 17 00:00:00 2001 From: nik707 <38332985+nik707@users.noreply.github.com> Date: Sun, 13 Jan 2019 02:04:46 -0600 Subject: [PATCH 224/237] absolutely tested --- code/modules/power/generator.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index f3f960c0ee..8e121dc809 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -65,7 +65,7 @@ if(delta_temperature > 0 && cold_air_heat_capacity > 0 && hot_air_heat_capacity > 0) - var/efficiency = 0.65 + var/efficiency = 0.45 var/energy_transfer = delta_temperature*hot_air_heat_capacity*cold_air_heat_capacity/(hot_air_heat_capacity+cold_air_heat_capacity) From 0015e806abf01097b5d7dbe9f152dfa50c5a7920 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 13 Jan 2019 02:36:15 -0600 Subject: [PATCH 225/237] donation item --- .../code/datums/components/souldeath.dm | 35 ++++++++++++++++++ .../effects/temporary_visuals/souldeath.dm | 5 +++ modular_citadel/code/modules/clothing/neck.dm | 23 ++++++++++++ modular_citadel/icons/effects/souldeath.dmi | Bin 0 -> 1914 bytes modular_citadel/icons/mob/clothing/necks.dmi | Bin 0 -> 292 bytes .../icons/obj/clothing/cit_neck.dmi | Bin 526 -> 1016 bytes sound/misc/souldeath.ogg | Bin 0 -> 32643 bytes tgstation.dme | 1 + 8 files changed, 64 insertions(+) create mode 100644 modular_citadel/code/datums/components/souldeath.dm create mode 100644 modular_citadel/code/game/objects/effects/temporary_visuals/souldeath.dm create mode 100644 modular_citadel/code/modules/clothing/neck.dm create mode 100644 modular_citadel/icons/effects/souldeath.dmi create mode 100644 modular_citadel/icons/mob/clothing/necks.dmi create mode 100644 sound/misc/souldeath.ogg diff --git a/modular_citadel/code/datums/components/souldeath.dm b/modular_citadel/code/datums/components/souldeath.dm new file mode 100644 index 0000000000..5beddf3529 --- /dev/null +++ b/modular_citadel/code/datums/components/souldeath.dm @@ -0,0 +1,35 @@ +/datum/component/souldeath + var/mob/living/wearer + var/equip_slot + var/signal = FALSE + +/datum/component/souldeath/Initialize() + if(!isitem(parent)) + return COMPONENT_INCOMPATIBLE + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/equip) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/unequip) + +/datum/component/souldeath/proc/equip(datum/source, mob/living/equipper, slot) + if(!slot || equip_slot == slot) + wearer = equipper + RegisterSignal(wearer, COMSIG_MOB_DEATH, .proc/die, TRUE) + signal = TRUE + else + if(signal) + UnregisterSignal(wearer, COMSIG_MOB_DEATH) + signal = FALSE + return + +/datum/component/souldeath/proc/unequip() + UnregisterSignal(wearer, COMSIG_MOB_DEATH) + wearer = null + signal = FALSE + +/datum/component/souldeath/proc/die() + if(!wearer) + return //idfk + new/obj/effect/temp_visual/souldeath(wearer.loc, wearer) + playsound(wearer, 'modular_citadel/sound/misc/souldeath.ogg', 100, FALSE) + +/datum/component/souldeath/neck + equip_slot = SLOT_NECK diff --git a/modular_citadel/code/game/objects/effects/temporary_visuals/souldeath.dm b/modular_citadel/code/game/objects/effects/temporary_visuals/souldeath.dm new file mode 100644 index 0000000000..1ebf6fb2a6 --- /dev/null +++ b/modular_citadel/code/game/objects/effects/temporary_visuals/souldeath.dm @@ -0,0 +1,5 @@ +/obj/effect/temp_visual/souldeath + name = "soul death" + icon = 'modular_citadel/icons/effects/souldeath.dmi' + icon_state = "souldeath" + duration = 30 \ No newline at end of file diff --git a/modular_citadel/code/modules/clothing/neck.dm b/modular_citadel/code/modules/clothing/neck.dm new file mode 100644 index 0000000000..8d7d4747b7 --- /dev/null +++ b/modular_citadel/code/modules/clothing/neck.dm @@ -0,0 +1,23 @@ +/datum/action/item_action/zanderlocket + name = "Activate the locket" + +/obj/item/clothing/neck/undertale + name = "Sylphaen Heart Locket" + desc = "A heart shaped locket...The name: 'Zander Sylphaen is inscribed on the front. Something about this necklace fills you with determination." + icon = 'modular_citadel/icons/obj/clothing/cit_neck.dmi' + item_state = "undertale" + icon_state = "undertale" + alternate_worn_icon = 'modular_citadel/icons/mob/clothing/necks.dmi' + resistance_flags = FIRE_PROOF + actions_types = list(/datum/action/item_action/zanderlocket) + var/toggled = FALSE + var/obj/effect/heart/heart + +/datum/action/item_action/zanderlocket/Trigger() + new/obj/effect/temp_visual/souldeath(owner.loc, owner) + playsound(owner, 'modular_citadel/sound/misc/souldeath.ogg', 100, FALSE) + + +/obj/item/clothing/neck/undertale/Initialize() + ..() + AddComponent(/datum/component/souldeath/neck) diff --git a/modular_citadel/icons/effects/souldeath.dmi b/modular_citadel/icons/effects/souldeath.dmi new file mode 100644 index 0000000000000000000000000000000000000000..f225bd5321951b1a366d20449f46cb180bbf0a73 GIT binary patch literal 1914 zcma)7X*3%O7EX{vkf4-UDnmzFPo)@IwKVq9TC1_tPAx%E`;wAq=~GIywWRho#b|By zY}F-}6s2}*PfC;5_C4DOQW9QXf4nnuW`4|%yPtdRIrqEgyO|Dl7hodtA^-pYW^HAD znQtrjLJ$V?b+*5s0^i(Ay5bsR9uVyxg^P^AMT7$Y2_>HWT5thn3CmB9&e6&j3lNU- zSvWBTv!-Oo5ldw^8X)A=>-2mUmacH4#4d$cY-IGb)g#nC(e%Q+OO2#PpeGxohJcG4yfn64JBoas@W4A6rc z!WDrmBHgph^K?B1YUufQZ=p3o7mqUD(I=$wh=vprkSLY@MVw|dNWD-$v6}f>2oF~T zI}>xW_TPvPdGBR@yA#({O}rGQu!Go;+mP8%+OSZDHv;eiuat_~*izG{uLC`+_l1{u z5HR`}=sYMeW1$tW08=BdCw|n*79j`6ZX}kCp}e3!lH#jrE`k%=&2B47Ur$saL#Q-) zke=(0z#_ioxtA;OG*H7FO zNs!^lCrBs2Tw@dCnxX=ANh!%}Gx6hMQL^h?RjyC;2j*<)qeN?rFYl^Gg+$XR@ycIV zXjf=jfTgScH&FjwG)u;=SAt)Q6FH5}tq zB&a$n^^O$L1hK;^Zj$w!zSUdiUI19}*Ci)T%~!~#uL24VLh;z_ z!2(~)fTUVZyc}IRcQCahq>@se!|z`I6r_I#l7d{`iNz0*tP2Dw^eEm7GzYi=)I@}_ zqLdql9*R{#GY?J z9x3?}m$&B07$hcV+&sRlxFH_7$eit!)PG73=P?-OG%q@oq0ZgyF7xkn=3eEdLT9p@ zAZk1v_A{ZHS44WjcZoyE`xe}vIAbd1g_|ua&cS6^Qi{R0`kf&DK5pP`^}2UHMjn9A zBzfB}T%yp?H)#;*sxQX1|2MRkcSFf4k{;Fj8xH>*Z1#mX+#1g|)%f!?!T|LXi{Byw zYQ4$@)S1>9PqqlKisxCy6wzO*CJEPb?LSJ-g_zPHV(NDiWnBYnQRI5$pV0+%_i~d{ z2XMY$ap)@+`t^Oi%XD-36&n~o)B9M|rt5Zq=oogThX$7ntb2P4M;>L)+Kk}&(;hj; z2W#OS@YI_ZAN1YF@*RLutEJN!3lY?*P+;=rCop+^U(RBP6XU#R5R?JU9;mvvEa*%b zx~=xX$G?I@UG1y6+s9#m+^Kpe;^5 zX*n2_77KDC%>0v6d%5s$ol+%}}-VRoB00!OXQx~nB?{7l~D9S&^< zb8S(*I}LhoHQ*Sha#bU5#wnwXFm;bI`%8_*L$}D^C;C*5O-4bT0=ssw-Ka8Osm-E% z;B8g$PM>FT&jW{XE1f=MV}zFa7W9&isLa0;gbl1l*UC50m~2lNb1oS=kyI2;b89fE zRhjXBar7hdmL1Bfn9{aGe3`kp<+&OSV2+g_bgE*^OD1+3uhlR#7d>M3Bq*%lYcZoVFT=id(wF$cMaqCS`*^xIhFJ6_CrEf5Xk>L# zU*V9k?1BMD@-?0nU8ed9Caal48vZlPl00Kld{;vv;{ijmfz!*C28kSl=S#150nKIbboFyt=akR{02Tph{{R30 literal 0 HcmV?d00001 diff --git a/modular_citadel/icons/obj/clothing/cit_neck.dmi b/modular_citadel/icons/obj/clothing/cit_neck.dmi index ce115c2aa71e4ea76ce14e2da64d07419b0cf76d..abccd4a1153c9d282fc6b3d65bc22603f634ea21 100644 GIT binary patch literal 1016 zcmVV=-0C=2r$~y|fFc3x2TC<9W-G}^IH9;n*u=gOWNhG3JFq*{McVS4E?p`=O zZo}PAaHFR$OUreE#r1F`v*xG?7MC-b#QB+YpQb?>7F|nqe$BO%ARU>QrNQDv<{{zD zd;jcbi7Xll|C2q2$-#}DHu=se0yQh@BLDycGD$>1RA_?W1R_^0 zMd2_P1iud9u2FMo&ZKP$_nVIUzWcuSdG5LQ?!d>#$H&LV$19qq2~E?)?c@Iq$;;$a zDkT7Rc6Lw{1pw1D0ZHA2^QXO3YQb=PYL^~8CNzRg3o0n4&DKR+iB2rxJ}2tcV+ayBWI zO3qx{gj!;;n1HHjb_&{o9rJn#uzP|RTn$iFm2fyrp-_-&#WqWA+@sN`P*v~6)v~rV zEY-$b^gR_vZ}bpAWcA7Aiw2KJBN{frv9U2Ckw{AoY-VOgOifL-vV?;z?ESarKvj5T z^~q)JIj@g`YXZvUGNDk2cs!0Q%K{*m%Qe0D!oq?87#bSFvMkEwvX{DCS=$ z^u~>mP6`rR!=Be`Xn;*T9tS{GRROTOyDQcE^vz^4($dnBBOHEx546hw8|kDV*(OLQ zg?qnUTn(s)ZN$~pl~5FgVz}sx4SXL!(=;(MG6LXy5dBG75pLt!17ullcwsSIWc;zt z_+y>JmCrZKs7I?!@K52IfbH#VX>@c{M59sHi{HMg#`^WU#%AU7dG_}9I`W^O;aeb= z%SqX6mTWeAXYBavF>}j7K7E3h&&nKsJ-#z1pU-!+cxa*r9334=0J1C#S(cqX0I)n~ zvGO5!=bFRALoCZ;V`HOZh1+;8aB*=_7>0qOD11Eq=$xPEoxn6r`uqD?UtjNd;Wqa! m)a^CcS~)&GK0ZD^f0Liv-**Kd-y<{t0000fFDZ*Bkpc$`yKaB_9` z^iy#0_2eo`Eh^5;&r`5fFwryM;w;ZhDainGjE%TBGg33tGfE(w;*!LYR3KBSI3qtf zJ2^imC$UJ0i!&v&s2C_}$i0MAK8K~y-6 z<(Wqc3v%=|$Jv9&O7VLK3

wDn=$qsWYJy6NCu6OsQY0JvnL8e{T_hv&ABIPi&B?Mp`0hLk+k4FG12h=pp$^mZ& zQadoulLODg)~vQbFYBr;XfWtaUcCY9vKSznaBTAi)LJ9R^YPYZtNDBR0A{TX7AD6u QIsgCw07*qoM6N<$g6q1B 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 literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index b17ba9363f..c6f9251c63 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2798,6 +2798,7 @@ #include "modular_citadel\code\game\objects\items.dm" #include "modular_citadel\code\game\objects\tools.dm" #include "modular_citadel\code\game\objects\effects\spawner\spawners.dm" +#include "modular_citadel\code\game\objects\effects\temporary_visuals\souldeath.dm" #include "modular_citadel\code\game\objects\effects\temporary_visuals\projectiles\impact.dm" #include "modular_citadel\code\game\objects\effects\temporary_visuals\projectiles\muzzle.dm" #include "modular_citadel\code\game\objects\effects\temporary_visuals\projectiles\tracer.dm" From a99a7fb937a75f5542270f79e9321ebf19b174a1 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 13 Jan 2019 23:38:30 -0600 Subject: [PATCH 226/237] update --- modular_citadel/code/modules/client/loadout/__donator.dm | 8 +++++++- tgstation.dme | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm index fac53fee5b..a3df7d9f8e 100644 --- a/modular_citadel/code/modules/client/loadout/__donator.dm +++ b/modular_citadel/code/modules/client/loadout/__donator.dm @@ -361,4 +361,10 @@ datum/gear/darksabresheath name = "Mime's Overalls" category = SLOT_WEAR_SUIT path = /obj/item/clothing/under/mimeoveralls - ckeywhitelist = list("pireamaineach") \ No newline at end of file + ckeywhitelist = list("pireamaineach") + +/datum/gear/soulneck + name = "Soul Necklace" + category = SLOT_IN_BACKPACK + path = /obj/item/clothing/neck/undertale + ckeywhitelist = list("twilightic") \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index c6f9251c63..bca5c7512b 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2871,6 +2871,7 @@ #include "modular_citadel\code\modules\client\loadout\uniform.dm" #include "modular_citadel\code\modules\client\verbs\who.dm" #include "modular_citadel\code\modules\clothing\clothing.dm" +#include "modular_citadel\code\modules\clothing\neck.dm" #include "modular_citadel\code\modules\clothing\glasses\phantomthief.dm" #include "modular_citadel\code\modules\clothing\head\head.dm" #include "modular_citadel\code\modules\clothing\spacesuits\cydonian_armor.dm" From 0c4164459cebd826c635ac18c95795ecb1a6c757 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Jan 2019 02:55:16 -0600 Subject: [PATCH 227/237] cheat codes --- {sound => modular_citadel/sound}/misc/souldeath.ogg | Bin tgstation.dme | 1 + 2 files changed, 1 insertion(+) rename {sound => modular_citadel/sound}/misc/souldeath.ogg (100%) diff --git a/sound/misc/souldeath.ogg b/modular_citadel/sound/misc/souldeath.ogg similarity index 100% rename from sound/misc/souldeath.ogg rename to modular_citadel/sound/misc/souldeath.ogg diff --git a/tgstation.dme b/tgstation.dme index bca5c7512b..268d4f1ff9 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2772,6 +2772,7 @@ #include "modular_citadel\code\datums\uplink_items_cit.dm" #include "modular_citadel\code\datums\components\material_container.dm" #include "modular_citadel\code\datums\components\phantomthief.dm" +#include "modular_citadel\code\datums\components\souldeath.dm" #include "modular_citadel\code\datums\mood_events\generic_negative_events.dm" #include "modular_citadel\code\datums\mood_events\generic_positive_events.dm" #include "modular_citadel\code\datums\mood_events\moodular.dm" From 6e01f1920e101e2d277f48d94948fdb041c81310 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 20:52:05 -0600 Subject: [PATCH 228/237] Automatic changelog generation for PR #7914 [ci skip] --- html/changelogs/AutoChangeLog-pr-7914.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7914.yml diff --git a/html/changelogs/AutoChangeLog-pr-7914.yml b/html/changelogs/AutoChangeLog-pr-7914.yml new file mode 100644 index 0000000000..aac983d7ea --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7914.yml @@ -0,0 +1,4 @@ +author: "Ghom" +delete-after: True +changes: + - code_imp: "minor clean up on hydroponics reagent containers." From d15dcc1e3e2661b7c9579b9bd824d42ff256d615 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 21:09:45 -0600 Subject: [PATCH 229/237] Automatic changelog generation for PR #7930 [ci skip] --- html/changelogs/AutoChangeLog-pr-7930.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7930.yml diff --git a/html/changelogs/AutoChangeLog-pr-7930.yml b/html/changelogs/AutoChangeLog-pr-7930.yml new file mode 100644 index 0000000000..221a2af942 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7930.yml @@ -0,0 +1,4 @@ +author: "nicc" +delete-after: True +changes: + - balance: "teg less gay maybe" From 71d6ddd1a9fdba421137ee09c6e52db4bb1d3a19 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 22:21:05 -0600 Subject: [PATCH 230/237] Automatic changelog generation for PR #7921 [ci skip] --- html/changelogs/AutoChangeLog-pr-7921.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7921.yml diff --git a/html/changelogs/AutoChangeLog-pr-7921.yml b/html/changelogs/AutoChangeLog-pr-7921.yml new file mode 100644 index 0000000000..66a245257f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7921.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - rscadd: "Things in disposals will now emit sounds every single time they hit corners. This increases immersion." From 9478e28d5a0f43c066cbf39b3af5f6c3bcdd6ddc Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 22:21:23 -0600 Subject: [PATCH 231/237] Automatic changelog generation for PR #7920 [ci skip] --- html/changelogs/AutoChangeLog-pr-7920.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7920.yml diff --git a/html/changelogs/AutoChangeLog-pr-7920.yml b/html/changelogs/AutoChangeLog-pr-7920.yml new file mode 100644 index 0000000000..08b0ec1f13 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7920.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - rscadd: "flashlights will now make sounds when toggled on/off" From 566f54e60336d9b37691fc9c944a85455a089d09 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 22:21:45 -0600 Subject: [PATCH 232/237] Automatic changelog generation for PR #7919 [ci skip] --- html/changelogs/AutoChangeLog-pr-7919.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7919.yml diff --git a/html/changelogs/AutoChangeLog-pr-7919.yml b/html/changelogs/AutoChangeLog-pr-7919.yml new file mode 100644 index 0000000000..a62cc838c3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7919.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - rscadd: "Throwing items will now perform the attack animation and play a sound" From 94304200b24b947a22f8140b6f5c66faa3be1ed5 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 22:22:02 -0600 Subject: [PATCH 233/237] Automatic changelog generation for PR #7918 [ci skip] --- html/changelogs/AutoChangeLog-pr-7918.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7918.yml diff --git a/html/changelogs/AutoChangeLog-pr-7918.yml b/html/changelogs/AutoChangeLog-pr-7918.yml new file mode 100644 index 0000000000..b2340c2f67 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7918.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - rscadd: "Attack animations will now rotate your character slightly, similar to Goon." From 0ed4591e843765ae77838b556faf12d6c9a0f86f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 22:22:19 -0600 Subject: [PATCH 234/237] Automatic changelog generation for PR #7916 [ci skip] --- html/changelogs/AutoChangeLog-pr-7916.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7916.yml diff --git a/html/changelogs/AutoChangeLog-pr-7916.yml b/html/changelogs/AutoChangeLog-pr-7916.yml new file mode 100644 index 0000000000..888f327f72 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7916.yml @@ -0,0 +1,4 @@ +author: "Skoglol" +delete-after: True +changes: + - rscadd: "You can now alt click storage (bags, boxes, etc) to open it." From 4147b5767c641b8d9fe4c22207bf697003d28b3d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 22:23:31 -0600 Subject: [PATCH 235/237] Automatic changelog generation for PR #7912 [ci skip] --- html/changelogs/AutoChangeLog-pr-7912.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7912.yml diff --git a/html/changelogs/AutoChangeLog-pr-7912.yml b/html/changelogs/AutoChangeLog-pr-7912.yml new file mode 100644 index 0000000000..834ad80091 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7912.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - server: "The server's tagline is now a config option. People can now stop confusing us with BR cit" From 1816577ac8bf1087581f3316b82f9fbad76e09f7 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 22:24:10 -0600 Subject: [PATCH 236/237] Automatic changelog generation for PR #7923 [ci skip] --- html/changelogs/AutoChangeLog-pr-7923.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7923.yml diff --git a/html/changelogs/AutoChangeLog-pr-7923.yml b/html/changelogs/AutoChangeLog-pr-7923.yml new file mode 100644 index 0000000000..5cf6527dad --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7923.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - rscadd: "Backpacks and other storage items will now jiggle and squish when you interact with them, similar to the animations seen on Goon." From cbc2af1b4b630a4b8a400b2acc4be07c70bfe404 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 22:24:24 -0600 Subject: [PATCH 237/237] Automatic changelog generation for PR #7922 [ci skip] --- html/changelogs/AutoChangeLog-pr-7922.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7922.yml diff --git a/html/changelogs/AutoChangeLog-pr-7922.yml b/html/changelogs/AutoChangeLog-pr-7922.yml new file mode 100644 index 0000000000..08f06d7053 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7922.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - bugfix: "Air alarms now actually emit the proper light color when their status is okay."