From 9ee9f79fdcb4b25e39a3e4b03f01095c5b77a878 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 25 Jan 2020 23:52:33 -0700 Subject: [PATCH 001/190] checks --- code/game/gamemodes/clock_cult/clock_cult.dm | 7 +++++-- code/game/gamemodes/cult/cult.dm | 7 +++++-- code/modules/antagonists/clockcult/clockcult.dm | 4 ++++ code/modules/antagonists/cult/cult.dm | 3 +++ 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index a76e8234ba..dcf5779f97 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -45,8 +45,11 @@ Credit where due: // PROCS // /////////// -/proc/is_servant_of_ratvar(mob/M) - return istype(M) && !isobserver(M) && M.mind && M.mind.has_antag_datum(/datum/antagonist/clockcult) +/proc/is_servant_of_ratvar(mob/M, require_full_power = FALSE) + if(!istype(M) || isobserver(M)) + return FALSE + var/datum/antagonist/clockcult/D = M?.mind?.has_antag_datum(/datum/antagonist/clockcult) + return D && (!require_full_power || !D.neutered) /proc/is_eligible_servant(mob/M) if(!istype(M)) diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 497cc2f1c3..1b295bcc50 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -3,8 +3,11 @@ /datum/game_mode var/list/datum/mind/cult = list() -/proc/iscultist(mob/living/M) - return istype(M) && M.mind && M.mind.has_antag_datum(/datum/antagonist/cult) +/proc/iscultist(mob/living/M, require_full_power = FALSE) + if(!istype(M)) + return FALSE + var/datum/antagonist/cult/D = M?.mind?.has_antag_datum(/datum/antagonist/cult) + return D && (!require_full_power || !D.neutered) /datum/team/cult/proc/is_sacrifice_target(datum/mind/mind) for(var/datum/objective/sacrifice/sac_objective in objectives) diff --git a/code/modules/antagonists/clockcult/clockcult.dm b/code/modules/antagonists/clockcult/clockcult.dm index d68e9b594d..7462620287 100644 --- a/code/modules/antagonists/clockcult/clockcult.dm +++ b/code/modules/antagonists/clockcult/clockcult.dm @@ -8,11 +8,15 @@ var/datum/action/innate/hierophant/hierophant_network = new() var/datum/team/clockcult/clock_team var/make_team = TRUE //This should be only false for tutorial scarabs + var/neutered = FALSE //can not use round ending, gibbing, converting, or similar things with unmatched round impact /datum/antagonist/clockcult/silent silent = TRUE show_in_antagpanel = FALSE //internal +/datum/antagonist/clockcult/neutered + neutered = TRUE + /datum/antagonist/clockcult/Destroy() qdel(hierophant_network) return ..() diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index df2383f892..4dbdf6a7d5 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -12,7 +12,10 @@ var/ignore_implant = FALSE var/give_equipment = FALSE var/datum/team/cult/cult_team + var/neutered = FALSE //can not use round ending, gibbing, converting, or similar things with unmatched round impact +/datum/antagonist/cult/neutered + neutered = TRUE /datum/antagonist/cult/get_team() return cult_team From c3b916fb4dacb9dcd9080ebd94f4a1dadca43658 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Jan 2020 00:00:42 -0700 Subject: [PATCH 002/190] clockcult limits --- .../clockcult/clock_effects/clock_sigils.dm | 10 ++++++++-- code/modules/antagonists/clockcult/clock_scripture.dm | 10 ++++++++-- .../clockcult/clock_scriptures/scripture_drivers.dm | 3 ++- .../clockcult/clock_scriptures/scripture_scripts.dm | 5 ++++- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm b/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm index eb7f83735d..c9f8a53aab 100644 --- a/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm +++ b/code/modules/antagonists/clockcult/clock_effects/clock_sigils.dm @@ -278,9 +278,15 @@ sigil_name = "Vitality Matrix" var/revive_cost = 150 var/sigil_active = FALSE + var/min_drain_health = -INFINITY + var/can_dust = TRUE var/animation_number = 3 //each cycle increments this by 1, at 4 it produces an animation and resets var/static/list/damage_heal_order = list(CLONE, TOX, BURN, BRUTE, OXY) //we heal damage in this order +/obj/effect/clockwork/sigil/vitality/neutered + min_drain_health = 20 + can_dust = FALSE + /obj/effect/clockwork/sigil/vitality/examine(mob/user) . = ..() if(is_servant_of_ratvar(user) || isobserver(user)) @@ -305,7 +311,7 @@ animation_number++ if(!is_servant_of_ratvar(L)) var/vitality_drained = 0 - if(L.stat == DEAD && !consumed_vitality) + if(L.stat == DEAD && !consumed_vitality && can_dust) consumed_vitality = TRUE //Prevent the target from being consumed multiple times vitality_drained = L.maxHealth var/obj/effect/temp_visual/ratvar/sigil/vitality/V = new /obj/effect/temp_visual/ratvar/sigil/vitality(get_turf(src)) @@ -317,7 +323,7 @@ if(!L.dropItemToGround(W)) qdel(W) L.dust() - else + else if(L.health > min_drain_health) if(!GLOB.ratvar_awakens && L.stat == CONSCIOUS) vitality_drained = L.adjustToxLoss(1, forced = TRUE) else diff --git a/code/modules/antagonists/clockcult/clock_scripture.dm b/code/modules/antagonists/clockcult/clock_scripture.dm index 753de786dc..d2ee044e28 100644 --- a/code/modules/antagonists/clockcult/clock_scripture.dm +++ b/code/modules/antagonists/clockcult/clock_scripture.dm @@ -30,6 +30,7 @@ Applications: 8 servants, 3 caches, and 100 CV var/primary_component var/important = FALSE //important scripture will be italicized in the slab's interface var/sort_priority = 1 //what position the scripture should have in a list of scripture. Should be based off of component costs/reqs, but you can't initial() lists. + var/require_full_power = FALSE //requires the user to be a full, non neutered servant of ratvar //messages for offstation scripture recital, courtesy ratvar's generals(and neovgre) var/static/list/neovgre_penalty = list("Go to the station.", "Useless.", "Don't waste time.", "Pathetic.", "Wasteful.") @@ -77,6 +78,8 @@ Applications: 8 servants, 3 caches, and 100 CV /datum/clockwork_scripture/proc/can_recite() //If the words can be spoken if(!invoker || !slab || invoker.get_active_held_item() != slab) return FALSE + if(!is_servant_of_ratvar(invoker, require_full_power)) + return FALSE if(!invoker.can_speak_vocal()) to_chat(invoker, "You are unable to speak the words of the scripture!") return FALSE @@ -236,18 +239,21 @@ Applications: 8 servants, 3 caches, and 100 CV return FALSE return TRUE +/datum/clockwork_scripture/create_object/proc/get_spawn_path(mob/user) + return object_path + /datum/clockwork_scripture/create_object/scripture_effects() if(creator_message && observer_message) invoker.visible_message(observer_message, creator_message) else if(creator_message) to_chat(invoker, creator_message) - var/obj/O = new object_path (get_turf(invoker)) + var/to_spawn = get_spawn_path(invoker) + var/obj/O = new to_spawn(get_turf(invoker)) O.ratvar_act() //update the new object so it gets buffed if ratvar is alive if(isitem(O) && put_object_in_hands) invoker.put_in_hands(O) return TRUE - //Used specifically to create construct shells. /datum/clockwork_scripture/create_object/construct put_object_in_hands = FALSE diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_drivers.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_drivers.dm index 4ab481cfe2..6751f94588 100644 --- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_drivers.dm +++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_drivers.dm @@ -88,7 +88,7 @@ sort_priority = 4 quickbind = TRUE quickbind_desc = "Creates a Sigil of Submission, which will convert non-Servants that remain on it." - + requires_full_power = TRUE //Kindle: Charges the slab with blazing energy. It can be released to stun and silence a target. /datum/clockwork_scripture/ranged_ability/kindle @@ -211,6 +211,7 @@ quickbind = TRUE quickbind_desc = "Returns you to Reebe." var/client_color + requires_full_power = TRUE /datum/clockwork_scripture/abscond/check_special_requirements() if(is_reebe(invoker.z)) diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm index 4e1a5b42cb..fb32eda309 100644 --- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm +++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm @@ -50,7 +50,6 @@ return FALSE return ..() - //Vitality Matrix: Creates a sigil which will drain health from nonservants and can use that health to heal or even revive servants. /datum/clockwork_scripture/create_object/vitality_matrix descname = "Trap, Damage to Healing" @@ -77,6 +76,10 @@ return FALSE return ..() +/datum/clockwork_Scripture/create_object/vitality_matrix/get_spawn_path(mob/user) + if(!is_servant_of_ratvar(user, TRUE)) + return /obj/effect/clockwork/sigil/vitality/neutered + return ..() //Judicial Visor: Creates a judicial visor, which can smite an area. /datum/clockwork_scripture/create_object/judicial_visor From 4c69c73983e0f61e4d86e787e9bd5bada5015284 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Jan 2020 00:09:40 -0700 Subject: [PATCH 003/190] cult stuff --- .../modules/antagonists/clockcult/clock_scripture.dm | 1 + code/modules/antagonists/cult/ritual.dm | 3 +++ code/modules/antagonists/cult/runes.dm | 4 ++++ .../antagonists/wizard/equipment/soulstone.dm | 12 ++++++------ 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/code/modules/antagonists/clockcult/clock_scripture.dm b/code/modules/antagonists/clockcult/clock_scripture.dm index d2ee044e28..98b0fff084 100644 --- a/code/modules/antagonists/clockcult/clock_scripture.dm +++ b/code/modules/antagonists/clockcult/clock_scripture.dm @@ -79,6 +79,7 @@ Applications: 8 servants, 3 caches, and 100 CV if(!invoker || !slab || invoker.get_active_held_item() != slab) return FALSE if(!is_servant_of_ratvar(invoker, require_full_power)) + to_chat(invoker, "You aren't strongly connected enough to Ratvar to invoke this!") return FALSE if(!invoker.can_speak_vocal()) to_chat(invoker, "You are unable to speak the words of the scripture!") diff --git a/code/modules/antagonists/cult/ritual.dm b/code/modules/antagonists/cult/ritual.dm index ba2a96289d..6d4c8cd4b9 100644 --- a/code/modules/antagonists/cult/ritual.dm +++ b/code/modules/antagonists/cult/ritual.dm @@ -59,6 +59,9 @@ This file contains the cult dagger and rune list code rune_to_scribe = GLOB.rune_types[entered_rune_name] if(!rune_to_scribe) return + if(!iscultist(user, initial(rune_to_scribe.requires_full_power))) + to_chat(user, "You aren't strongly connected enough to Nar'sie to do draw this.") + return if(initial(rune_to_scribe.req_keyword)) chosen_keyword = stripped_input(user, "Enter a keyword for the new rune.", "Words of Power") if(!chosen_keyword) diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index 7948b30035..be5dae2c81 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -32,6 +32,7 @@ Runes can either be invoked by one's self or with many different cultists. Each var/scribe_delay = 40 //how long the rune takes to create var/scribe_damage = 0.1 //how much damage you take doing it + var/requires_full_power = FALSE //requires full power to draw or invoke var/invoke_damage = 0 //how much damage invokers take when invoking it var/construct_invoke = TRUE //if constructs can invoke it @@ -185,6 +186,7 @@ structure_check() searches for nearby cultist structures required for the invoca color = RUNE_COLOR_OFFER req_cultists = 1 rune_in_use = FALSE + requires_full_power = TRUE /obj/effect/rune/convert/do_invoke_glow() return @@ -458,6 +460,7 @@ structure_check() searches for nearby cultist structures required for the invoca pixel_y = -32 scribe_delay = 500 //how long the rune takes to create scribe_damage = 40.1 //how much damage you take doing it + requires_full_power = TRUE var/used = FALSE /obj/effect/rune/narsie/Initialize(mapload, set_keyword) @@ -942,6 +945,7 @@ structure_check() searches for nearby cultist structures required for the invoca color = RUNE_COLOR_DARKRED req_cultists = 3 scribe_delay = 100 + requires_full_power = TRUE /obj/effect/rune/apocalypse/invoke(var/list/invokers) if(rune_in_use) diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm index 962c2b2da4..114a7e41cd 100644 --- a/code/modules/antagonists/wizard/equipment/soulstone.dm +++ b/code/modules/antagonists/wizard/equipment/soulstone.dm @@ -31,12 +31,12 @@ /obj/item/soulstone/pickup(mob/living/user) ..() - if(!iscultist(user) && !iswizard(user) && !usability) + if(!iscultist(user, TRUE) && !iswizard(user) && !usability) to_chat(user, "An overwhelming feeling of dread comes over you as you pick up the soulstone. It would be wise to be rid of this quickly.") /obj/item/soulstone/examine(mob/user) . = ..() - if(usability || iscultist(user) || iswizard(user) || isobserver(user)) + if(usability || iscultist(user, TRUE) || iswizard(user) || isobserver(user)) if (old_shard) . += "A soulstone, used to capture a soul, either from dead humans or from freed shades." else @@ -53,7 +53,7 @@ //////////////////////////////Capturing//////////////////////////////////////////////////////// /obj/item/soulstone/attack(mob/living/carbon/human/M, mob/living/user) - if(!iscultist(user) && !iswizard(user) && !usability) + if(!iscultist(user, TRUE) && !iswizard(user) && !usability) user.Unconscious(100) to_chat(user, "Your body is wracked with debilitating pain!") return @@ -74,7 +74,7 @@ /obj/item/soulstone/attack_self(mob/living/user) if(!in_range(src, user)) return - if(!iscultist(user) && !iswizard(user) && !usability) + if(!iscultist(user, TRUE) && !iswizard(user) && !usability) user.Unconscious(100) to_chat(user, "Your body is wracked with debilitating pain!") return @@ -103,7 +103,7 @@ /obj/structure/constructshell/examine(mob/user) . = ..() - if(iscultist(user) || iswizard(user) || user.stat == DEAD) + if(iscultist(user, TRUE) || iswizard(user) || user.stat == DEAD) . += "A construct shell, used to house bound souls from a soulstone." . += "Placing a soulstone with a soul into this shell allows you to produce your choice of the following:" . += "An Artificer, which can produce more shells and soulstones, as well as fortifications." @@ -113,7 +113,7 @@ /obj/structure/constructshell/attackby(obj/item/O, mob/user, params) if(istype(O, /obj/item/soulstone)) var/obj/item/soulstone/SS = O - if(!iscultist(user) && !iswizard(user) && !SS.usability) + if(!iscultist(user, TRUE) && !iswizard(user) && !SS.usability) to_chat(user, "An overwhelming feeling of dread comes over you as you attempt to place the soulstone into the shell. It would be wise to be rid of this quickly.") user.Dizzy(30) return From 01152d6d0f368068f8698dd8df6c249f4d95d6dd Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Jan 2020 00:41:58 -0700 Subject: [PATCH 004/190] traitor items --- code/game/gamemodes/clock_cult/clock_cult.dm | 7 +++--- .../clockcult/clock_items/clockwork_slab.dm | 24 +++++++++++++++++++ code/modules/antagonists/cult/cult_items.dm | 24 +++++++++++++++++++ 3 files changed, 51 insertions(+), 4 deletions(-) diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index dcf5779f97..2f395cc149 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -73,12 +73,14 @@ Credit where due: return TRUE return FALSE -/proc/add_servant_of_ratvar(mob/L, silent = FALSE, create_team = TRUE) +/proc/add_servant_of_ratvar(mob/L, silent = FALSE, create_team = TRUE, neutered = FALSE) if(!L || !L.mind) return var/update_type = /datum/antagonist/clockcult if(silent) update_type = /datum/antagonist/clockcult/silent + if(neutered) //prioritizes + update_type = /datum/antagonist/clockcult/neutered var/datum/antagonist/clockcult/C = new update_type(L.mind) C.make_team = create_team C.show_in_roundend = create_team //tutorial scarabs begone @@ -108,9 +110,6 @@ Credit where due: L.playsound_local(get_turf(L), 'sound/ambience/antag/clockcultalr.ogg', 40, TRUE, frequency = 100000, pressure_affected = FALSE) flash_color(L, flash_color = list("#BE8700", "#BE8700", "#BE8700", rgb(0,0,0)), flash_time = 5) - - - /proc/remove_servant_of_ratvar(mob/L, silent = FALSE) if(!L || !L.mind) return diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm index b12c72b4af..b1539c0ad9 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm @@ -36,6 +36,30 @@ speed_multiplier = 0 no_cost = TRUE +/obj/item/clockwork/slab/traitor + var/spent = FALSE + +/obj/item/clockwork/slab/traitor/attack_self(mob/living/user) + if(!is_servant_of_ratvar(user) && !spent) + to_chat(user, "You press your hand onto [src], golden tendrils of light latching onto you. Was this the best of ideas?") + if(add_servant_of_ratvar(user, FALSE, FALSE, TRUE)) + spent = TRUE + else + var/has_mindshield = locate(/obj/item/implant/mindshield) in user + var/str = "It looks like your mind is protected. You can probably refund this with your uplink." + if(has_midnshield) + str = "It looks like your mind is shielded, offering you a choice." + to_chat(user, "[src] pulses, the tendrils wrapping around your head. [str]") + if(alert(user, "Would you like to attempt to force the shielding influence from your mind? This will destroy your mindshield implant.", "Destroy mindshield?", "Yes", "No") == "Yes") + if(spent || !user.CanReach(src) || user.incapacitated() || user.IsKnockdown() || user.IsStun()) + return + qdel(has_mindshield) + if(add_servant_of_ratvar(user, FALSE, FALSE, TRUE)) + spent = TRUE + else + to_chat(user, "[src] falls dark. It appears you weren't worthy.") + return ..() + //ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/clockwork/slab/debug/attack_hand(mob/living/user) if(!is_servant_of_ratvar(user)) diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index f14aeede9a..f63c99a9ed 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -6,6 +6,30 @@ throw_range = 5 w_class = WEIGHT_CLASS_SMALL +/obj/item/tome/traitor + var/spent = FALSE + +/obj/item/tome/traitor/attack_self(mob/living/user) + if(!iscultist(user) && !spent) + to_chat(user, "You press your hand onto [src], sinister tendrils of corrupted magic swirling around you. Was this the best of ideas?") + if(user.mind.add_antag_datum(/datum/antagonist/cult/neutered)) + spent = TRUE + else + var/has_mindshield = locate(/obj/item/implant/mindshield) in user + var/str = "It looks like your mind is protected. You can probably refund this with your uplink." + if(has_midnshield) + str = "It looks like your mind is shielded, offering you a choice." + to_chat(user, "[src] pulses, the tendrils wrapping around your head. [str]") + if(alert(user, "Would you like to attempt to force the shielding influence from your mind? This will destroy your mindshield implant.", "Destroy mindshield?", "Yes", "No") == "Yes") + if(spent || !user.CanReach(src) || user.incapacitated() || user.IsKnockdown() || user.IsStun()) + return + qdel(has_mindshield) + if(user.mind.add_antag_datum(/datum/antagonist/cult/neutered)) + spent = TRUE + else + to_chat(user, "[src] falls dark. It appears you weren't worthy.") + return ..() + /obj/item/melee/cultblade/dagger name = "ritual dagger" desc = "A strange dagger said to be used by sinister groups for \"preparing\" a corpse before sacrificing it to their dark gods." From 7e88d05b1d224d2ac907a8d49f056f7db8647c4c Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Jan 2020 00:50:26 -0700 Subject: [PATCH 005/190] items --- .../clockcult/clock_items/clockwork_slab.dm | 5 ++++- .../antagonists/clockcult/clock_scripture.dm | 4 ++-- .../clock_scriptures/scripture_scripts.dm | 2 +- code/modules/antagonists/cult/cult_items.dm | 5 ++++- code/modules/uplink/uplink_items/uplink_roles.dm | 16 ++++++++++++++++ 5 files changed, 27 insertions(+), 5 deletions(-) diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm index b1539c0ad9..f0e9ee4944 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm @@ -39,6 +39,9 @@ /obj/item/clockwork/slab/traitor var/spent = FALSE +/obj/item/clockwork/slab/traitor/check_uplink_validity() + return !spent + /obj/item/clockwork/slab/traitor/attack_self(mob/living/user) if(!is_servant_of_ratvar(user) && !spent) to_chat(user, "You press your hand onto [src], golden tendrils of light latching onto you. Was this the best of ideas?") @@ -47,7 +50,7 @@ else var/has_mindshield = locate(/obj/item/implant/mindshield) in user var/str = "It looks like your mind is protected. You can probably refund this with your uplink." - if(has_midnshield) + if(has_mindshield) str = "It looks like your mind is shielded, offering you a choice." to_chat(user, "[src] pulses, the tendrils wrapping around your head. [str]") if(alert(user, "Would you like to attempt to force the shielding influence from your mind? This will destroy your mindshield implant.", "Destroy mindshield?", "Yes", "No") == "Yes") diff --git a/code/modules/antagonists/clockcult/clock_scripture.dm b/code/modules/antagonists/clockcult/clock_scripture.dm index 98b0fff084..16d251fe92 100644 --- a/code/modules/antagonists/clockcult/clock_scripture.dm +++ b/code/modules/antagonists/clockcult/clock_scripture.dm @@ -30,7 +30,7 @@ Applications: 8 servants, 3 caches, and 100 CV var/primary_component var/important = FALSE //important scripture will be italicized in the slab's interface var/sort_priority = 1 //what position the scripture should have in a list of scripture. Should be based off of component costs/reqs, but you can't initial() lists. - var/require_full_power = FALSE //requires the user to be a full, non neutered servant of ratvar + var/requires_full_power = FALSE //requires the user to be a full, non neutered servant of ratvar //messages for offstation scripture recital, courtesy ratvar's generals(and neovgre) var/static/list/neovgre_penalty = list("Go to the station.", "Useless.", "Don't waste time.", "Pathetic.", "Wasteful.") @@ -78,7 +78,7 @@ Applications: 8 servants, 3 caches, and 100 CV /datum/clockwork_scripture/proc/can_recite() //If the words can be spoken if(!invoker || !slab || invoker.get_active_held_item() != slab) return FALSE - if(!is_servant_of_ratvar(invoker, require_full_power)) + if(!is_servant_of_ratvar(invoker, requires_full_power)) to_chat(invoker, "You aren't strongly connected enough to Ratvar to invoke this!") return FALSE if(!invoker.can_speak_vocal()) diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm index fb32eda309..d6296aeaa0 100644 --- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm +++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm @@ -76,7 +76,7 @@ return FALSE return ..() -/datum/clockwork_Scripture/create_object/vitality_matrix/get_spawn_path(mob/user) +/datum/clockwork_scripture/create_object/vitality_matrix/get_spawn_path(mob/user) if(!is_servant_of_ratvar(user, TRUE)) return /obj/effect/clockwork/sigil/vitality/neutered return ..() diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index f63c99a9ed..47762e366c 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -9,6 +9,9 @@ /obj/item/tome/traitor var/spent = FALSE +/obj/item/tome/traitor/check_uplink_validity() + return !spent + /obj/item/tome/traitor/attack_self(mob/living/user) if(!iscultist(user) && !spent) to_chat(user, "You press your hand onto [src], sinister tendrils of corrupted magic swirling around you. Was this the best of ideas?") @@ -17,7 +20,7 @@ else var/has_mindshield = locate(/obj/item/implant/mindshield) in user var/str = "It looks like your mind is protected. You can probably refund this with your uplink." - if(has_midnshield) + if(has_mindshield) str = "It looks like your mind is shielded, offering you a choice." to_chat(user, "[src] pulses, the tendrils wrapping around your head. [str]") if(alert(user, "Would you like to attempt to force the shielding influence from your mind? This will destroy your mindshield implant.", "Destroy mindshield?", "Yes", "No") == "Yes") diff --git a/code/modules/uplink/uplink_items/uplink_roles.dm b/code/modules/uplink/uplink_items/uplink_roles.dm index 89d3c25700..cf5f708093 100644 --- a/code/modules/uplink/uplink_items/uplink_roles.dm +++ b/code/modules/uplink/uplink_items/uplink_roles.dm @@ -92,6 +92,22 @@ restricted_roles = list("Chaplain") surplus = 5 //Very low chance to get it in a surplus crate even without being the chaplain +/datum/uplink_item/role_restricted/his_grace + name = "Clockwork Slab" + desc = "A reverse engineered clockwork slab. Is this really a good idea?." + item = /obj/item/clockwork/slab/traitor + cost = 20 + refundable = TRUE + restricted_roles = list("Chaplain") + +/datum/uplink_item/role_restricted/his_grace + name = "Arcane Tome" + desc = "A replica of a Nar'sian tome. This is probably a bad idea.." + item = /obj/item/tome/traitor + cost = 20 + refundable = TRUE + restricted_roles = list("Chaplain") + /datum/uplink_item/role_restricted/explosive_hot_potato name = "Exploding Hot Potato" desc = "A potato rigged with explosives. On activation, a special mechanism is activated that prevents it from being dropped. \ From fc5eb82a6b7e2786aa14ec23418b7728d3c9a685 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Jan 2020 00:56:38 -0700 Subject: [PATCH 006/190] limit summon ghost --- code/modules/antagonists/cult/runes.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index be5dae2c81..2da4b4d155 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -815,6 +815,7 @@ structure_check() searches for nearby cultist structures required for the invoca invoke_damage = 10 construct_invoke = FALSE color = RUNE_COLOR_DARKRED + requires_full_power = TRUE var/mob/living/affecting = null var/ghost_limit = 3 var/ghosts = 0 From c49da64f075fee16239c7571823c0216a3a688b2 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Jan 2020 13:24:51 -0700 Subject: [PATCH 007/190] <3 google --- code/modules/antagonists/cult/blood_magic.dm | 10 ++++++++-- code/modules/antagonists/cult/cult_items.dm | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 794010d9c0..95e6c50750 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -570,7 +570,9 @@ var/turf/T = get_turf(target) if(istype(target, /obj/item/stack/sheet/metal)) var/obj/item/stack/sheet/candidate = target - if(candidate.use(50)) + if(!iscultist(user, TRUE)) + to_chat(user, "You are not strongly connected enough to Nar'sie to use make constructs...") + else if(candidate.use(50)) uses-- to_chat(user, "A dark cloud emanates from your hand and swirls around the metal, twisting it into a construct shell!") new /obj/structure/constructshell(T) @@ -593,7 +595,9 @@ SEND_SOUND(user, sound('sound/effects/magic.ogg',0,1,25)) else if(istype(target,/mob/living/silicon/robot)) var/mob/living/silicon/robot/candidate = target - if(candidate.mmi) + if(!iscultist(user, TRUE)) + to_chat(user, "You are not strongly connected enough to Nar'sie to use make constructs...") + else if(candidate.mmi) user.visible_message("A dark cloud emanates from [user]'s hand and swirls around [candidate]!") playsound(T, 'sound/machines/airlock_alien_prying.ogg', 80, 1) var/prev_color = candidate.color @@ -812,6 +816,8 @@ if("Blood Beam (500)") if(uses < 500) to_chat(user, "You need 500 charges to perform this rite.") + else if(!iscultist(user, TRUE)) + to_chat(user, "You are not strongly connected to Nar'sie enough to use something of this power.") else var/obj/rite = new /obj/item/blood_beam() uses -= 500 diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index 47762e366c..5d7cb86ca4 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -524,7 +524,7 @@ var/static/curselimit = 0 /obj/item/shuttle_curse/attack_self(mob/living/user) - if(!iscultist(user)) + if(!iscultist(user, TRUE)) user.dropItemToGround(src, TRUE) user.Knockdown(100) to_chat(user, "A powerful force shoves you away from [src]!") From f5b60b52bf1671ecce97c097b9d61ba633c18398 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Jan 2020 13:51:10 -0700 Subject: [PATCH 008/190] fuck woops --- code/modules/uplink/uplink_items/uplink_roles.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/uplink/uplink_items/uplink_roles.dm b/code/modules/uplink/uplink_items/uplink_roles.dm index cf5f708093..2e3665cd29 100644 --- a/code/modules/uplink/uplink_items/uplink_roles.dm +++ b/code/modules/uplink/uplink_items/uplink_roles.dm @@ -92,7 +92,7 @@ restricted_roles = list("Chaplain") surplus = 5 //Very low chance to get it in a surplus crate even without being the chaplain -/datum/uplink_item/role_restricted/his_grace +/datum/uplink_item/role_restricted/clockwork_slab name = "Clockwork Slab" desc = "A reverse engineered clockwork slab. Is this really a good idea?." item = /obj/item/clockwork/slab/traitor @@ -100,7 +100,7 @@ refundable = TRUE restricted_roles = list("Chaplain") -/datum/uplink_item/role_restricted/his_grace +/datum/uplink_item/role_restricted/arcane_tome name = "Arcane Tome" desc = "A replica of a Nar'sian tome. This is probably a bad idea.." item = /obj/item/tome/traitor From 7471f59bc3cb83b383eb4dccc8c04be98647885a Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Jan 2020 13:56:04 -0700 Subject: [PATCH 009/190] ignore eligibility checks --- code/game/gamemodes/clock_cult/clock_cult.dm | 3 ++- .../clockcult/clock_items/clockwork_slab.dm | 16 ++-------------- code/modules/antagonists/clockcult/clockcult.dm | 3 ++- code/modules/antagonists/cult/cult.dm | 6 +++++- code/modules/antagonists/cult/cult_items.dm | 16 ++-------------- 5 files changed, 13 insertions(+), 31 deletions(-) diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index 2f395cc149..be05a0a9bf 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -73,7 +73,7 @@ Credit where due: return TRUE return FALSE -/proc/add_servant_of_ratvar(mob/L, silent = FALSE, create_team = TRUE, neutered = FALSE) +/proc/add_servant_of_ratvar(mob/L, silent = FALSE, create_team = TRUE, neutered = FALSE, ignore_eligibility = FALSE) if(!L || !L.mind) return var/update_type = /datum/antagonist/clockcult @@ -84,6 +84,7 @@ Credit where due: var/datum/antagonist/clockcult/C = new update_type(L.mind) C.make_team = create_team C.show_in_roundend = create_team //tutorial scarabs begone + C.ignore_eligibility_check = ignore_eligibility if(iscyborg(L)) var/mob/living/silicon/robot/R = L diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm index f0e9ee4944..f10d9daba9 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm @@ -45,22 +45,10 @@ /obj/item/clockwork/slab/traitor/attack_self(mob/living/user) if(!is_servant_of_ratvar(user) && !spent) to_chat(user, "You press your hand onto [src], golden tendrils of light latching onto you. Was this the best of ideas?") - if(add_servant_of_ratvar(user, FALSE, FALSE, TRUE)) + if(add_servant_of_ratvar(user, FALSE, FALSE, TRUE, TRUE)) spent = TRUE else - var/has_mindshield = locate(/obj/item/implant/mindshield) in user - var/str = "It looks like your mind is protected. You can probably refund this with your uplink." - if(has_mindshield) - str = "It looks like your mind is shielded, offering you a choice." - to_chat(user, "[src] pulses, the tendrils wrapping around your head. [str]") - if(alert(user, "Would you like to attempt to force the shielding influence from your mind? This will destroy your mindshield implant.", "Destroy mindshield?", "Yes", "No") == "Yes") - if(spent || !user.CanReach(src) || user.incapacitated() || user.IsKnockdown() || user.IsStun()) - return - qdel(has_mindshield) - if(add_servant_of_ratvar(user, FALSE, FALSE, TRUE)) - spent = TRUE - else - to_chat(user, "[src] falls dark. It appears you weren't worthy.") + to_chat(user, "[src] falls dark. It appears you weren't worthy.") return ..() //ATTACK HAND IGNORING PARENT RETURN VALUE diff --git a/code/modules/antagonists/clockcult/clockcult.dm b/code/modules/antagonists/clockcult/clockcult.dm index 7462620287..ef52975da3 100644 --- a/code/modules/antagonists/clockcult/clockcult.dm +++ b/code/modules/antagonists/clockcult/clockcult.dm @@ -9,6 +9,7 @@ var/datum/team/clockcult/clock_team var/make_team = TRUE //This should be only false for tutorial scarabs var/neutered = FALSE //can not use round ending, gibbing, converting, or similar things with unmatched round impact + var/ignore_eligibility_check = FALSE /datum/antagonist/clockcult/silent silent = TRUE @@ -41,7 +42,7 @@ /datum/antagonist/clockcult/can_be_owned(datum/mind/new_owner) . = ..() - if(.) + if(. && !ignore_eligibility_check) . = is_eligible_servant(new_owner.current) /datum/antagonist/clockcult/greet() diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index 4dbdf6a7d5..ce60045817 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -13,10 +13,14 @@ var/give_equipment = FALSE var/datum/team/cult/cult_team var/neutered = FALSE //can not use round ending, gibbing, converting, or similar things with unmatched round impact + var/ignore_eligibility_checks = FALSE /datum/antagonist/cult/neutered neutered = TRUE +/datum/antagonist/cult/neutered/traitor + ignore_eligibility_checks = TRUE + /datum/antagonist/cult/get_team() return cult_team @@ -46,7 +50,7 @@ /datum/antagonist/cult/can_be_owned(datum/mind/new_owner) . = ..() - if(. && !ignore_implant) + if(. && !ignore_implant && !ignore_eligibility_checks) . = is_convertable_to_cult(new_owner.current,cult_team) /datum/antagonist/cult/greet() diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index 5d7cb86ca4..c4fd2a657b 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -15,22 +15,10 @@ /obj/item/tome/traitor/attack_self(mob/living/user) if(!iscultist(user) && !spent) to_chat(user, "You press your hand onto [src], sinister tendrils of corrupted magic swirling around you. Was this the best of ideas?") - if(user.mind.add_antag_datum(/datum/antagonist/cult/neutered)) + if(user.mind.add_antag_datum(/datum/antagonist/cult/neutered/traitor)) spent = TRUE else - var/has_mindshield = locate(/obj/item/implant/mindshield) in user - var/str = "It looks like your mind is protected. You can probably refund this with your uplink." - if(has_mindshield) - str = "It looks like your mind is shielded, offering you a choice." - to_chat(user, "[src] pulses, the tendrils wrapping around your head. [str]") - if(alert(user, "Would you like to attempt to force the shielding influence from your mind? This will destroy your mindshield implant.", "Destroy mindshield?", "Yes", "No") == "Yes") - if(spent || !user.CanReach(src) || user.incapacitated() || user.IsKnockdown() || user.IsStun()) - return - qdel(has_mindshield) - if(user.mind.add_antag_datum(/datum/antagonist/cult/neutered)) - spent = TRUE - else - to_chat(user, "[src] falls dark. It appears you weren't worthy.") + to_chat(user, "[src] falls dark. It appears you weren't worthy.") return ..() /obj/item/melee/cultblade/dagger From 8f26325822347f599d85167ab5a225d607301144 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Jan 2020 21:05:51 -0700 Subject: [PATCH 010/190] more stuff --- code/game/gamemodes/clock_cult/clock_cult.dm | 11 +++++------ code/game/gamemodes/cult/cult.dm | 4 ++-- .../clockcult/clock_items/clockwork_slab.dm | 2 +- code/modules/antagonists/clockcult/clockcult.dm | 5 +++++ code/modules/antagonists/cult/cult.dm | 2 ++ .../reagents/chemistry/reagents/other_reagents.dm | 4 ++-- 6 files changed, 17 insertions(+), 11 deletions(-) diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index be05a0a9bf..8201d6472a 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -45,11 +45,11 @@ Credit where due: // PROCS // /////////// -/proc/is_servant_of_ratvar(mob/M, require_full_power = FALSE) +/proc/is_servant_of_ratvar(mob/M, require_full_power = FALSE, holy_water_check = FALSE) if(!istype(M) || isobserver(M)) return FALSE var/datum/antagonist/clockcult/D = M?.mind?.has_antag_datum(/datum/antagonist/clockcult) - return D && (!require_full_power || !D.neutered) + return D && (!require_full_power || !D.neutered) && (!holy_water_check || !D.ignore_holy_water) /proc/is_eligible_servant(mob/M) if(!istype(M)) @@ -73,18 +73,17 @@ Credit where due: return TRUE return FALSE -/proc/add_servant_of_ratvar(mob/L, silent = FALSE, create_team = TRUE, neutered = FALSE, ignore_eligibility = FALSE) +/proc/add_servant_of_ratvar(mob/L, silent = FALSE, create_team = TRUE, override_type) if(!L || !L.mind) return var/update_type = /datum/antagonist/clockcult if(silent) update_type = /datum/antagonist/clockcult/silent - if(neutered) //prioritizes - update_type = /datum/antagonist/clockcult/neutered + if(override_type) //prioritizes + update_type = override_type var/datum/antagonist/clockcult/C = new update_type(L.mind) C.make_team = create_team C.show_in_roundend = create_team //tutorial scarabs begone - C.ignore_eligibility_check = ignore_eligibility if(iscyborg(L)) var/mob/living/silicon/robot/R = L diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 1b295bcc50..6329f5ad18 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -3,11 +3,11 @@ /datum/game_mode var/list/datum/mind/cult = list() -/proc/iscultist(mob/living/M, require_full_power = FALSE) +/proc/iscultist(mob/living/M, require_full_power = FALSE, holy_water_check = FALSE) if(!istype(M)) return FALSE var/datum/antagonist/cult/D = M?.mind?.has_antag_datum(/datum/antagonist/cult) - return D && (!require_full_power || !D.neutered) + return D && (!require_full_power || !D.neutered) && (!holy_water_check || !D.ignore_holy_water) /datum/team/cult/proc/is_sacrifice_target(datum/mind/mind) for(var/datum/objective/sacrifice/sac_objective in objectives) diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm index f10d9daba9..8e3b7f10de 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm @@ -45,7 +45,7 @@ /obj/item/clockwork/slab/traitor/attack_self(mob/living/user) if(!is_servant_of_ratvar(user) && !spent) to_chat(user, "You press your hand onto [src], golden tendrils of light latching onto you. Was this the best of ideas?") - if(add_servant_of_ratvar(user, FALSE, FALSE, TRUE, TRUE)) + if(add_servant_of_ratvar(user, FALSE, FALSE, /datum/antagonist/clockcult/neutered/traitor)) spent = TRUE else to_chat(user, "[src] falls dark. It appears you weren't worthy.") diff --git a/code/modules/antagonists/clockcult/clockcult.dm b/code/modules/antagonists/clockcult/clockcult.dm index ef52975da3..64637d0635 100644 --- a/code/modules/antagonists/clockcult/clockcult.dm +++ b/code/modules/antagonists/clockcult/clockcult.dm @@ -10,6 +10,7 @@ var/make_team = TRUE //This should be only false for tutorial scarabs var/neutered = FALSE //can not use round ending, gibbing, converting, or similar things with unmatched round impact var/ignore_eligibility_check = FALSE + var/ignore_holy_water = FALSE /datum/antagonist/clockcult/silent silent = TRUE @@ -18,6 +19,10 @@ /datum/antagonist/clockcult/neutered neutered = TRUE +/datum/antagonist/clockcult/neutered/traitor + ignore_eligibility_check = TRUE + ignore_holy_water = TRUE + /datum/antagonist/clockcult/Destroy() qdel(hierophant_network) return ..() diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index ce60045817..195a37aec5 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -14,12 +14,14 @@ var/datum/team/cult/cult_team var/neutered = FALSE //can not use round ending, gibbing, converting, or similar things with unmatched round impact var/ignore_eligibility_checks = FALSE + var/ignore_holy_water = FALSE /datum/antagonist/cult/neutered neutered = TRUE /datum/antagonist/cult/neutered/traitor ignore_eligibility_checks = TRUE + ignore_holy_water = TRUE /datum/antagonist/cult/get_team() return cult_team diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index ccc966e7e4..8e28365d7d 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -341,7 +341,7 @@ data = 1 data++ M.jitteriness = min(M.jitteriness+4,10) - if(iscultist(M)) + if(iscultist(M, FALSE, TRUE)) for(var/datum/action/innate/cult/blood_magic/BM in M.actions) if(!BM.holy_dispel) BM.holy_dispel = TRUE @@ -370,7 +370,7 @@ if("emote") M.visible_message("[M] [pick("whimpers quietly", "shivers as though cold", "glances around in paranoia")].") if(data >= 60) // 30 units, 135 seconds - if(iscultist(M) || is_servant_of_ratvar(M)) + if(iscultist(M, FALSE, TRUE) || is_servant_of_ratvar(M, FALSE, TRUE)) if(iscultist(M)) SSticker.mode.remove_cultist(M.mind, FALSE, TRUE) else if(is_servant_of_ratvar(M)) From e5a8c7801eed9435608f58214d323fc16fabfc27 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Jan 2020 21:26:54 -0700 Subject: [PATCH 011/190] tweak --- .../antagonists/clockcult/clock_items/clockwork_slab.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm index 8e3b7f10de..6e7d830db6 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm @@ -47,6 +47,9 @@ to_chat(user, "You press your hand onto [src], golden tendrils of light latching onto you. Was this the best of ideas?") if(add_servant_of_ratvar(user, FALSE, FALSE, /datum/antagonist/clockcult/neutered/traitor)) spent = TRUE + // Add some (5 KW) power so they don't suffer for 100 ticks + GLOB.clockwork_power += 5000 + // This intentionally does not use adjust_clockwork_power. else to_chat(user, "[src] falls dark. It appears you weren't worthy.") return ..() From c8dff8fbc5c8f4c82f75847fcb7d6c5d7b9b3ac3 Mon Sep 17 00:00:00 2001 From: TrilbySpaceClone Date: Tue, 4 Feb 2020 04:18:44 -0500 Subject: [PATCH 012/190] it just works --- code/game/objects/items/bodybag.dm | 11 +++++ .../items/stacks/sheets/sheet_types.dm | 17 ++++++- .../crates_lockers/closets/bodybag.dm | 9 ++++ .../structures/crates_lockers/crates.dm | 1 + .../research/designs/medical_designs.dm | 44 ++++++++++++++---- code/modules/research/techweb/all_nodes.dm | 29 +++++++----- icons/obj/bodybag.dmi | Bin 875 -> 1188 bytes 7 files changed, 88 insertions(+), 23 deletions(-) diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index e93bfb9976..ec60515192 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -81,3 +81,14 @@ return loc.visible_message("[user] suddenly appears in front of [loc]!", "[user] breaks free of [src]!") qdel(src) + +// Containment bodybag + +/obj/item/bodybag/containment + name = "radiation containment body bag" + desc = "A folded heavy body bag designed for the storage and transportation of cadavers with heavy radiation." + icon = 'icons/obj/bodybag.dmi' + icon_state = "radbodybag_folded" + unfoldedbag_path = /obj/structure/closet/body_bag/containment + w_class = WEIGHT_CLASS_NORMAL + item_flags = NO_MAT_REDEMPTION | RAD_NO_CONTAMINATE diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 2bd7dd0d38..40618d1cbf 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -154,8 +154,21 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = TRUE), \ new/datum/stack_recipe("bomb assembly", /obj/machinery/syndicatebomb/empty, 10, time = 50), \ - new/datum/stack_recipe("crate", /obj/structure/closet/crate, 5, time = 90, one_per_turf = TRUE), \ - null, \ + new /datum/stack_recipe_list("crates", list( \ + new /datum/stack_recipe("gray crate", /obj/structure/closet/crate, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("internals crate", /obj/structure/closet/crate/internals, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("trash cart", /obj/structure/closet/crate/trashcart, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("medical crate", /obj/structure/closet/crate/medical, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("freezer crate", /obj/structure/closet/crate/freezer, 8, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("blood bag crate", /obj/structure/closet/crate/freezer/blood, 8, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("surplus limbs crate", /obj/structure/closet/crate/freezer/surplus_limbs, 8, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("radiation containment crate", /obj/structure/closet/crate/radiation, 20, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("hydroponics crate", /obj/structure/closet/crate/hydroponics, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("engineering crate", /obj/structure/closet/crate/engineering, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("eletrical crate", /obj/structure/closet/crate/engineering/electrical, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("RCD storge crate", /obj/structure/closet/crate/rcd, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("science crate", /obj/structure/closet/crate/science, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + )), \ new /datum/stack_recipe_list("airlock assemblies", list( \ new/datum/stack_recipe("high security airlock assembly", /obj/structure/door_assembly/door_assembly_highsecurity, 6, time = 50, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("vault door assembly", /obj/structure/door_assembly/door_assembly_vault, 8, time = 50, one_per_turf = 1, on_floor = 1), \ diff --git a/code/game/objects/structures/crates_lockers/closets/bodybag.dm b/code/game/objects/structures/crates_lockers/closets/bodybag.dm index 1c34850274..6dd3ac4a08 100644 --- a/code/game/objects/structures/crates_lockers/closets/bodybag.dm +++ b/code/game/objects/structures/crates_lockers/closets/bodybag.dm @@ -100,3 +100,12 @@ if(isliving(A)) to_chat(A, "You're suddenly forced into a tiny, compressed space!") qdel(src) + +/obj/structure/closet/body_bag/containment + name = "containment body bag" + desc = "A folded heavy body bag designed for the storage and transportation of cadavers with heavy radiation." + icon = 'icons/obj/bodybag.dmi' + icon_state = "radbodybag" + mob_storage_capacity = 1 + foldedbag_path = /obj/item/bodybag/containment + rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index f6b2b6cd51..6d129c2623 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -169,6 +169,7 @@ desc = "A crate with a radiation sign on it." name = "radiation crate" icon_state = "radiation" + rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE /obj/structure/closet/crate/hydroponics name = "hydroponics crate" diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index bef25456ca..35e420e857 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -122,16 +122,6 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL -/datum/design/bluespacebodybag - name = "Bluespace Body Bag" - desc = "A bluespace body bag, powered by experimental bluespace technology. It can hold loads of bodies and the largest of creatures." - id = "bluespacebodybag" - build_type = PROTOLATHE - materials = list(MAT_METAL = 3000, MAT_PLASMA = 2000, MAT_DIAMOND = 500, MAT_BLUESPACE = 500) - build_path = /obj/item/bodybag/bluespace - category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE - /datum/design/plasmarefiller name = "Plasma-Man Jumpsuit Refill" desc = "A refill pack for the auto-extinguisher on Plasma-man suits." @@ -232,6 +222,40 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE +//////////////////////////////////////// +//////////Body Bags///////////////////// +//////////////////////////////////////// + +/datum/design/bodybag + name = "Body Bag" + desc = "A normal body bag used for storge of dead crew." + id = "bodybag" + build_type = PROTOLATHE + materials = list(MAT_PLASTIC = 4000) + build_path = /obj/item/bodybag + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/bluespacebodybag + name = "Bluespace Body Bag" + desc = "A bluespace body bag, powered by experimental bluespace technology. It can hold loads of bodies and the largest of creatures." + id = "bluespacebodybag" + build_type = PROTOLATHE + materials = list(MAT_METAL = 3000, MAT_PLASMA = 2000, MAT_DIAMOND = 500, MAT_BLUESPACE = 500) + build_path = /obj/item/bodybag/bluespace + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/containmentbodybag + name = "Containment Body Bag" + desc = "A containment body bag, heavy and radiation proof." + id = "containmentbodybag" + build_type = PROTOLATHE + materials = list(MAT_METAL = 6000, MAT_PLASTIC = 4000, MAT_TITANIUM = 2000) + build_path = /obj/item/bodybag/containment + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + //////////////////////////////////////// //////////Defibrillator Tech//////////// //////////////////////////////////////// diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index c02fdc7c72..d0ce943da2 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -75,12 +75,20 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 +/datum/techweb_node/aftercare + id = "aftercare" + display_name = "Aftercare" + description = "What you use when its to late." + prereq_ids = list("biotech", "adv_engi") + design_ids = list("bodybag", "containmentbodybag", "harvester") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) + /datum/techweb_node/adv_biotech id = "adv_biotech" display_name = "Advanced Biotechnology" description = "Advanced Biotechnology" prereq_ids = list("biotech") - design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "meta_beaker", "healthanalyzer_advanced", "harvester", "holobarrier_med", "defibrillator_compact", "smartdartgun", "medicinalsmartdart", "pHmeter") + design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "meta_beaker", "healthanalyzer_advanced", "holobarrier_med", "defibrillator_compact", "smartdartgun", "medicinalsmartdart", "pHmeter") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -239,17 +247,16 @@ prereq_ids = list("adv_engi", "high_efficiency") design_ids = list("meteor_defence", "meteor_console") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) - export_price = 5000 -*/ -//datum/techweb_node/adv_meteor_defense - //id = "adv_meteor_defense" - //display_name = "Meteor Defense Research" - //description = "New and improved coding and lock on tech for meteor defence!" - //prereq_ids = list("basic_meteor_defense", "adv_datatheory", "emp_adv") - //design_ids = list("meteor_disk") - //research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) - //export_price = 5000 +/datum/techweb_node/adv_meteor_defense + id = "adv_meteor_defense" + display_name = "Meteor Defense Research" + description = "New and improved coding and lock on tech for meteor defence!" + prereq_ids = list("basic_meteor_defense", "adv_datatheory", "emp_adv") + design_ids = list("meteor_disk") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1500) + +*/ /datum/techweb_node/computer_board_gaming id = "computer_board_gaming" diff --git a/icons/obj/bodybag.dmi b/icons/obj/bodybag.dmi index 7fcc193ad690ec167ba0826467bd49bd93dabdb2..c3267d3fc924ecfb093d63f945158ca929d3882e 100644 GIT binary patch delta 1034 zcmV+l1oivt2BZlkiBL{Q4GJ0x0000DNk~Le0001h0001B2m=5B0OF*IdjJ3cJdq_O zFy6L3V`XVOFFZs&Nm5W*FE>ai9U~%FXu!b0)YRN_00001bW%=J06^y0W&i*HqmgBa zf06DfN=zZvIS8f1xdur+e#a;)xca$(;~xOOmz$pj35me~00U=9L_t(&f$dq_wxb{n zmCI>I)7q*3|FHvzkObnT)mdw1v3)x|$=)Q0BQn zEW}v6AvKABMk_#ux30VEUs~Tp0h~OEs6~<}&^ZFe;?vx)+}#{Z;VW7S^c6oI+8V2i z0Jw9&D@YGN#eG=n{2j8YJ*9!M%Lf7RcagSyKeus^-^DBg`55S#Z3UCZeYUK z)94j9NBBR1Kd7(fXlQ6?XlVHVf3WLI-_7-ZKjWKQMfqb-A&D@mH z1oD9+h^X)<`XGVU|42Wf_ctW)w|H;}*Lgtw1yzzK5k>t!V0y*sf9xn*Dh*3D^6&y4 zsW^dfHC*AR3S9F0p7G=QzgO5Y$2a#Ep5q8Gj!#-!E@rI$XMSvr9Y?^ee?t%u*I(@~ zKosEr#MT}~?63a^Nq|lL1sDJ4Gwy=iUkGMD)dV;RsQ#}-0M-9%0%CRV^8b20AZ>}c zzc8EC6%4HYFEp5)0u}|YaeO6ywg>9q_5Z*m>`Ot!Z~Jz@T>?u5Oba9dE(`;G5e*hF ztqB0qUjQy(n%GGgRh0Gre=s2hJ&8b%R)7V7&|iQ>04Gl(Dgvm2K1X00@M%8b*HG>+ zgx64_r+!cprj&&qpF>_jdeA|?)n7nXwWko^LlC!OkL&-LHiZVAgj@CfL4FqlpBo<^ zTK`Li+x-RMkW)&o|NYl<+FSo0_P+zI{%>e#XlQ7-5_$d)mv{ARfAGT&ST6l1&Hs<_ zpFjUULccNphty)YB0VAXK>6wXA5e?oYymbkZiEQ9T{QoeP`9GXB|38d2|NpD_1KZ#+&0Xv0b^rhX07*qoM6N<$ EfJos#Of zp|D+1;(Ixyl`O4n=guyexdH!`C*DuHE6MxE^JdL@ObV42_&3HVrSX|?suUw6$f;O@ z3=tuJO>!+78zQBUlq`Djz6qCVSKJ+RnJ;?)!SVS4R(!G(*X_n2!O?*)li0awxTQ%z*CfAplMOk`%VvUZ4b*q0Bh0iQhZ<2dA1kAfR`Lh z)1RMz`{Dw7ebOwoK#)NSvi6>NU%$V=Kt`>9SZohJaeT2 z`$NS=MAQ;KeDUga$d8p4FAVX9!3Z6~4RJ-D?bf!01Ss=pkRjK_!l!r!t zrJo?+LWF65*osH+hYffA!OtClF}?h)KnDGx1N^iV-EP4jYz8&hIzaWo57g z*c|J%H$}5Q%=%x1{b7uJ_~QHjde6qI8Gkbxh%Tl9{&6Z${R_b5R3MTD(u@b12u}Lf zXy9}MlX~=J5)&RSU-59LR@XcpP7zMM-hWen02J#bK>#NfhyVZp07*qoM6N;tV1h#L BLN)*Z From 4dfb002d0099e08dcb11fb56e5e3da67da91ea13 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 4 Feb 2020 14:24:37 -0500 Subject: [PATCH 013/190] Update code/modules/research/techweb/all_nodes.dm Co-Authored-By: dapnee <33661984+dapnee@users.noreply.github.com> --- 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 d0ce943da2..48bb9b7572 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -78,7 +78,7 @@ /datum/techweb_node/aftercare id = "aftercare" display_name = "Aftercare" - description = "What you use when its to late." + description = "What you use when it's too late." prereq_ids = list("biotech", "adv_engi") design_ids = list("bodybag", "containmentbodybag", "harvester") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) From 3c5e8df7ba2e6575bf1b8091fe6fdb9d8b91dc00 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Wed, 5 Feb 2020 03:16:35 -0500 Subject: [PATCH 014/190] engis can now have it --- code/modules/research/designs/medical_designs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 35e420e857..54982b7a5d 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -254,7 +254,7 @@ materials = list(MAT_METAL = 6000, MAT_PLASTIC = 4000, MAT_TITANIUM = 2000) build_path = /obj/item/bodybag/containment category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING //////////////////////////////////////// //////////Defibrillator Tech//////////// From 980d26df76b0966ca95129b34bdddec3a4d58928 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 6 Feb 2020 02:48:30 -0500 Subject: [PATCH 015/190] Cadaver Management --- code/modules/research/techweb/all_nodes.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 48bb9b7572..fa3b3368ac 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -75,9 +75,9 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 -/datum/techweb_node/aftercare - id = "aftercare" - display_name = "Aftercare" +/datum/techweb_node/cadaver_management + id = "cadaver_management" + display_name = "Cadaver Management" description = "What you use when it's too late." prereq_ids = list("biotech", "adv_engi") design_ids = list("bodybag", "containmentbodybag", "harvester") From 99147003ed331ec963bc078868e134be871b1f1d Mon Sep 17 00:00:00 2001 From: Seris02 Date: Sun, 9 Feb 2020 13:07:04 +0800 Subject: [PATCH 016/190] wall walking boooooooooooooooots --- code/modules/clothing/shoes/miscellaneous.dm | 64 +++++++++++++++++++ icons/mob/feet.dmi | Bin 20692 -> 21180 bytes icons/mob/feet_digi.dmi | Bin 26894 -> 27423 bytes icons/obj/clothing/shoes.dmi | Bin 15636 -> 15994 bytes 4 files changed, 64 insertions(+) diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index c0e566cc0e..764197155e 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -365,3 +365,67 @@ name = "black cowboy boots" desc = "A pair of black cowboy boots, pretty easy to scuff up." icon_state = "cowboyboots_black" + +/obj/item/clothing/shoes/wallwalkers + name = "wall walking boots" + desc = "Contrary to popular belief, these do not allow you to walk on walls. Through bluespace magic stolen from an organisation that hoards technology, they simply allow you to slip through the atoms that make up anything, but only while walking, for safety reasons. As well as this, they unfortunately cause minor breath loss as the majority of atoms in your lungs are sucked out into any solid object you walk through. Make sure not to overuse them." + icon_state = "walkboots" + var/walkcool = 0 + var/wallcharges = 4 + //sparks, maybe oxydamage instead + +/obj/item/clothing/shoes/wallwalkers/equipped(mob/user,slot) + ..() + if (slot == SLOT_SHOES) + LAZYADD(user.user_movement_hooks,src) + else + LAZYREMOVE(user.user_movement_hooks,src) + +/obj/item/clothing/shoes/wallwalkers/dropped(mob/user) + ..() + LAZYREMOVE(user.user_movement_hooks,src) + +/obj/item/clothing/shoes/wallwalkers/attackby(obj/item/I, mob/user, params) + . = ..() //yes this is shamelessly copied + if(istype(I, /obj/item/stack/ore/bluespace_crystal)) + var/obj/item/stack/ore/bluespace_crystal/B = I + wallcharges += 1 + to_chat(user, "You tap the [src] with the [I].") + if(B.amount > 1) + B.amount -= 1 + else + qdel(I) + +/obj/item/clothing/shoes/wallwalkers/examine(mob/user) + . = ..() + . += "It has [wallcharges] charges left. Recharge with bluespace crystals." + +/obj/item/clothing/shoes/wallwalkers/intercept_user_move(dir,mob/living/m,newloc,oldloc) + if (walkcool < world.time && m.m_intent == MOVE_INTENT_WALK && wallcharges > 0) + walkcool = world.time + m.movement_delay() + var/issolid = FALSE + var/turf/K = newloc + if (istype(K)) + if (K.density) + issolid = TRUE + if (!issolid) + for (var/atom/T in newloc) //stuff on the new turf + if (!T.CanPass(m,newloc) && T != m) + issolid = TRUE + break + if (!issolid) + for (var/atom/T in oldloc) //directional shit on the old turf + if (!T.CanPass(m,newloc) && T != m) + issolid = TRUE + break + m.forceMove(newloc) + if (issolid) + m.adjustOxyLoss(rand(5,15)) + if (prob(10)) + m.adjustBruteLoss(rand(3,5)) + to_chat(m,"You feel as if travelling through the solid object left something behind and it hurts!") + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(5, 1, oldloc) + s.start() + flash_lighting_fx(3, 3, LIGHT_COLOR_ORANGE) + wallcharges-- \ No newline at end of file diff --git a/icons/mob/feet.dmi b/icons/mob/feet.dmi index 1a4b8019cd35886754837c6f52696bd774504fa4..2774976b26c08696d3940895dd55d7d3247bf052 100644 GIT binary patch delta 2679 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 delta 2187 zcmbW1c{J1u8^?cxNK8x!Q`a)rk}V>X{mr^Y%C z(5?|}r1k_X9-FTzdh^@~8OU3!hE~>L_sahj0@^4U#iULBIY%%fM^b^#G!g60iSC`E zum^@~gi42Fx)#H6$?|D7DVeIg=h(m~(Z;)j`q;*etZKFBvF+l%DN-8Aps-f3uDj1a zV!TFS{c`NgPu2Njg#}3{d|BBR?cxGd&PySpT2J>*Cjb4r641K|N>>CerzOiz&?NU&zy>jY8kdfy-~%%S_ge_1 z@6DnmgD&p2982b_F8_NKdwlaVQWEmrxy;aD<`Z|Jt(_3!A!O)KG)=M_Ki>r7f}3!i z%xhA+vd#xauxLm)1#&R2X8kl-(?li6L&S9Ig#hn#BENVBavGXnI|A2zJD{MTFohDr z(BbM>WU1_c`k8h&XiT`L;f9wkS|6bQYA;c=p7_}TJ&Td@ z4h#$&iCNlRro@NZh$sLmZ3kTKSk%ZQm9s!g@}crA)W}LfD;jQvjD5(5>Xt{E-Pd9h z{{ZxQ_wS5G&vw85_UnZzcuM^3^QrOi5TLKG4+!ZvD>xA3Kkd)P-*A|$t#Wlur00N& zHU>RntKmj(-AJ3+T0!rVmP5>mx5BR{MMDVrKmi^i0cW zJYTb?{f%5JzwFh6u~d#q@XLO-9eU$H(100sLTaE@Cvk=#dwR&e$Ix zCY7JutikngqA#mP3P)Ww@K0CGM%SC?p)`Gz(-Q_L6;tnA&WWD2AJ7Qej{-&0%P+lHOaJI?0i1ciMsD!{}HU-^_Dmi^#mm5 z=du;hH+;s~K!t}Gz6WmN<;jajBQq~?D7=PWIFTF+vPOBW7l-ao{XqYaj59`at9{}v z;-~TWGsy=;yNJm9hS=pLh58T{`@npq4^20$PX(s#H` zkjNENe*lNW#o(X-43;g_2$4Y`KFjI=NF>te1#cV%xZ{$JGpgd!#Yl%}Kz zVD~Jy;98|l_i3irt{%h9T(4LMB2#Sb!Vb7rX_pCKm;)mb2;YJx~QdmRaur_bjf>1HHQ0szi*WCs`dg|7j`K$V$9!<1^|Pfl@IrS zwwW}6YXX0~&MfHn*mPGECJuIF`zdB7cev@xF_~gV#F8%*+1$3dej-i+^@*x8*uBwY zThC%{rZffU`aQ<7;Dx6X34=1c^i~~cS&+n$LId3_U#Zu@aTKiXN?S{t=|kjBoo!a3 zdeT6xx8L-esk$A22pR*WWHJN( zn1jdXL^v<}d)Hc9PO7}RCEONA;mykg6#Y~@#UHw}E_}fQ8Rj0{W)bswoX{YCS`^#Fm9ac(QvGAD%nCVeR0tU1hQHgc$jlfPb>~u z{-*gnPURF5Ip0#tYa&=}NT*M&?%{OT? zU?O;U2h6BE73ONLgMXA4%^uM{@|2}bCXqIr0!yR~^pZwz)@gsa^q`pR5i!`=*y{!X za!1W5m`I?1FdR0Khvujd6`CCdnrRHQ|5eq>^9C%pl!O ztKvs9n>{fY%mB$U|GZ~R%-M>H3gBJ4BE$R05DP&I@bvUF-CJKj_mV=XTzMqOEkDq( zX1cVKf#let`~#qKE^Yt- diff --git a/icons/mob/feet_digi.dmi b/icons/mob/feet_digi.dmi index ddc5ff0c5f9999c5c14bdca347015b739974dcf4..79b25af58f728ab601a56a60c87fb4d5405abb65 100644 GIT binary patch delta 8448 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 delta 7306 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

HyLiM#vLZ~{a30(FP; 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 From 366075b38e0d58179f471c44405fe2ac16032287 Mon Sep 17 00:00:00 2001 From: Seris02 Date: Sun, 9 Feb 2020 13:10:28 +0800 Subject: [PATCH 017/190] yeet forgot this --- code/modules/uplink/uplink_items/uplink_clothing.dm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/code/modules/uplink/uplink_items/uplink_clothing.dm b/code/modules/uplink/uplink_items/uplink_clothing.dm index fcbe0fb9a6..b38e6cffe4 100644 --- a/code/modules/uplink/uplink_items/uplink_clothing.dm +++ b/code/modules/uplink/uplink_items/uplink_clothing.dm @@ -83,4 +83,10 @@ name = "Thieving Gloves" desc = "A pair of gloves that are insulated and frictionless, allowing you to steal easily from anyone you see." item = /obj/item/clothing/gloves/thief - cost = 4 \ No newline at end of file + cost = 4 + +/datum/uplink_item/suits/wallwalkers + name = "Wall Walking Boots" + desc = "Through bluespace magic stolen from an organisation that hoards technology, these boots simply allow you to slip through the atoms that make up anything, but only while walking, for safety reasons. As well as this, they unfortunately cause minor breath loss as the majority of atoms in your lungs are sucked out into any solid object you walk through." + item = /obj/item/clothing/shoes/wallwalkers + cost = 6 \ No newline at end of file From 577cfdc582ef39bc4e32752c78b6f0596a1c7a12 Mon Sep 17 00:00:00 2001 From: Seris02 Date: Sun, 9 Feb 2020 17:04:17 +0800 Subject: [PATCH 018/190] yay much better --- code/modules/clothing/shoes/miscellaneous.dm | 60 +++++++++++++++---- icons/obj/module.dmi | Bin 20524 -> 20750 bytes 2 files changed, 47 insertions(+), 13 deletions(-) diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 764197155e..35082be03e 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -372,6 +372,7 @@ icon_state = "walkboots" var/walkcool = 0 var/wallcharges = 4 + var/newlocobject = null //sparks, maybe oxydamage instead /obj/item/clothing/shoes/wallwalkers/equipped(mob/user,slot) @@ -385,20 +386,22 @@ ..() LAZYREMOVE(user.user_movement_hooks,src) -/obj/item/clothing/shoes/wallwalkers/attackby(obj/item/I, mob/user, params) - . = ..() //yes this is shamelessly copied - if(istype(I, /obj/item/stack/ore/bluespace_crystal)) - var/obj/item/stack/ore/bluespace_crystal/B = I - wallcharges += 1 - to_chat(user, "You tap the [src] with the [I].") - if(B.amount > 1) - B.amount -= 1 +/obj/item/clothing/shoes/wallwalkers/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/bluespacerecharge)) + var/obj/item/bluespacerecharge/ER = W + if(ER.uses) + wallcharges += ER.uses + to_chat(user, "You charged the bluespace crystal in the [src]. It now has [wallcharges] charges left.") + ER.uses = 0 + ER.icon_state = "[initial(ER.icon_state)]0" else - qdel(I) + to_chat(user, "[ER] has no crystal on it.") + return + . = ..() /obj/item/clothing/shoes/wallwalkers/examine(mob/user) . = ..() - . += "It has [wallcharges] charges left. Recharge with bluespace crystals." + . += "It has [wallcharges] charges left." /obj/item/clothing/shoes/wallwalkers/intercept_user_move(dir,mob/living/m,newloc,oldloc) if (walkcool < world.time && m.m_intent == MOVE_INTENT_WALK && wallcharges > 0) @@ -412,15 +415,17 @@ for (var/atom/T in newloc) //stuff on the new turf if (!T.CanPass(m,newloc) && T != m) issolid = TRUE + newlocobject = T break if (!issolid) for (var/atom/T in oldloc) //directional shit on the old turf - if (!T.CanPass(m,newloc) && T != m) + if (!T.CanPass(m,newloc) && T != m && T != newlocobject) issolid = TRUE break + newlocobject = null //stopping structures from using two charges because of how shitty the canpass code is m.forceMove(newloc) if (issolid) - m.adjustOxyLoss(rand(5,15)) + m.adjustOxyLoss(rand(5,13)) if (prob(10)) m.adjustBruteLoss(rand(3,5)) to_chat(m,"You feel as if travelling through the solid object left something behind and it hurts!") @@ -428,4 +433,33 @@ s.set_up(5, 1, oldloc) s.start() flash_lighting_fx(3, 3, LIGHT_COLOR_ORANGE) - wallcharges-- \ No newline at end of file + wallcharges-- + +/obj/item/bluespacerecharge + name = "bluespace crystal recharging device" + desc = "A small cell with two prongs lazily jabbed into it. It looks like it's made for replacing the crystals in bluespace devices." + icon = 'icons/obj/module.dmi' + icon_state = "bluespace_charge" + item_flags = NOBLUDGEON + var/uses = 6 + +/obj/item/bluespacerecharge/examine(mob/user) + . = ..() + if(uses) + . += "It can add up to [uses] charges to compatible devices." + else + . += "The crystal is gone." + +/obj/item/bluespacerecharge/attackby(obj/item/I, mob/user, params) + ..() + if(istype(I, /obj/item/stack/ore/bluespace_crystal) && !uses) + var/obj/item/stack/ore/bluespace_crystal/B = I + if (B.amount < 10) + return + uses += 3 + to_chat(user, "You insert [I] into [src].") + if(B.amount > 10) + B.amount -= 10 + else + qdel(I) + icon_state = initial(icon_state) \ No newline at end of file diff --git a/icons/obj/module.dmi b/icons/obj/module.dmi index ace24db5ff709c2284095cda6c1e73daf5cc8a09..a647bebd57fbc6db02209dcdeef76ca03767bd40 100644 GIT binary patch literal 20750 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%0D9v?u$ZHwYs&cq-mB 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 B!rlM? literal 20524 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 vLF#8z4*mU@WB1&Y^a Date: Sun, 9 Feb 2020 17:07:39 +0800 Subject: [PATCH 019/190] forgot that shit again --- code/modules/uplink/uplink_items/uplink_devices.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/modules/uplink/uplink_items/uplink_devices.dm b/code/modules/uplink/uplink_items/uplink_devices.dm index 05731722f7..a9b554566a 100644 --- a/code/modules/uplink/uplink_items/uplink_devices.dm +++ b/code/modules/uplink/uplink_items/uplink_devices.dm @@ -20,6 +20,12 @@ item = /obj/item/emagrecharge cost = 2 +/datum/uplink_item/device_tools/bluespacerecharge + name = "Bluespace Crystal Recharging Device" + desc = "A small device intended for recharging Wall Walking boots. Using it will add six charges to them. Use ten bluespace crystals on this recharger to add three more charges to it. " + item = /obj/item/bluespacerecharge + cost = 2 + /datum/uplink_item/device_tools/phantomthief name = "Syndicate Mask" desc = "A cheap plastic mask fitted with an adrenaline autoinjector, which can be used by simply tensing your muscles" From 5df75aee57370d1b9e522bee0c75bf1b06695f1f Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 10 Feb 2020 23:59:16 -0500 Subject: [PATCH 020/190] Update code/game/objects/items/stacks/sheets/sheet_types.dm Co-Authored-By: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/game/objects/items/stacks/sheets/sheet_types.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 40618d1cbf..e9a867e40d 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -166,7 +166,7 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ new /datum/stack_recipe("hydroponics crate", /obj/structure/closet/crate/hydroponics, 5, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("engineering crate", /obj/structure/closet/crate/engineering, 5, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("eletrical crate", /obj/structure/closet/crate/engineering/electrical, 5, time = 50, one_per_turf = 1, on_floor = 1), \ - new /datum/stack_recipe("RCD storge crate", /obj/structure/closet/crate/rcd, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("RCD storage crate", /obj/structure/closet/crate/rcd, 5, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("science crate", /obj/structure/closet/crate/science, 5, time = 50, one_per_turf = 1, on_floor = 1), \ )), \ new /datum/stack_recipe_list("airlock assemblies", list( \ @@ -808,4 +808,3 @@ new /datum/stack_recipe("paper frame door", /obj/structure/mineral_door/paperfra merge_type = /obj/item/stack/sheet/cotton/durathread pull_effort = 70 loom_result = /obj/item/stack/sheet/durathread - From 0683c21d1d36e58a05b35fbdc203e6da0b4b6689 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 11 Feb 2020 00:00:33 -0500 Subject: [PATCH 021/190] Ghommie changes --- code/game/objects/items/bodybag.dm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index ec60515192..62c1b0ca1a 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -38,7 +38,6 @@ /obj/item/bodybag/bluespace name = "bluespace body bag" desc = "A folded bluespace body bag designed for the storage and transportation of cadavers." - icon = 'icons/obj/bodybag.dmi' icon_state = "bluebodybag_folded" unfoldedbag_path = /obj/structure/closet/body_bag/bluespace w_class = WEIGHT_CLASS_SMALL @@ -86,9 +85,8 @@ /obj/item/bodybag/containment name = "radiation containment body bag" - desc = "A folded heavy body bag designed for the storage and transportation of cadavers with heavy radiation." - icon = 'icons/obj/bodybag.dmi' + desc = "A folded heavy body bag designed for the storage and transportation of heavily irradiated cadavers." icon_state = "radbodybag_folded" unfoldedbag_path = /obj/structure/closet/body_bag/containment w_class = WEIGHT_CLASS_NORMAL - item_flags = NO_MAT_REDEMPTION | RAD_NO_CONTAMINATE + rad_flags = NO_MAT_REDEMPTION | RAD_NO_CONTAMINATE From 90e18f9254d4933d914f6d84b549c7e0b015cb1a Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Wed, 12 Feb 2020 14:31:47 -0500 Subject: [PATCH 022/190] Update bodybag.dm --- code/game/objects/items/bodybag.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index 62c1b0ca1a..dbc66b1899 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -89,4 +89,4 @@ icon_state = "radbodybag_folded" unfoldedbag_path = /obj/structure/closet/body_bag/containment w_class = WEIGHT_CLASS_NORMAL - rad_flags = NO_MAT_REDEMPTION | RAD_NO_CONTAMINATE + rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE From 59acbe01250775601c4ead43d9f156043cee8e59 Mon Sep 17 00:00:00 2001 From: Seris02 Date: Sat, 22 Feb 2020 20:45:16 +0800 Subject: [PATCH 023/190] yee --- code/modules/clothing/shoes/miscellaneous.dm | 94 ++++++++++---------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 35082be03e..45c7ad4102 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -387,53 +387,55 @@ LAZYREMOVE(user.user_movement_hooks,src) /obj/item/clothing/shoes/wallwalkers/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/bluespacerecharge)) - var/obj/item/bluespacerecharge/ER = W - if(ER.uses) - wallcharges += ER.uses - to_chat(user, "You charged the bluespace crystal in the [src]. It now has [wallcharges] charges left.") - ER.uses = 0 - ER.icon_state = "[initial(ER.icon_state)]0" - else - to_chat(user, "[ER] has no crystal on it.") - return . = ..() + if(!istype(W, /obj/item/bluespacerecharge)) + return + var/obj/item/bluespacerecharge/ER = W + if(ER.uses) + wallcharges += ER.uses + to_chat(user, "You charged the bluespace crystal in the [src]. It now has [wallcharges] charges left.") + ER.uses = 0 + ER.icon_state = "[initial(ER.icon_state)]0" + else + to_chat(user, "[ER] has no crystal on it.") /obj/item/clothing/shoes/wallwalkers/examine(mob/user) . = ..() . += "It has [wallcharges] charges left." /obj/item/clothing/shoes/wallwalkers/intercept_user_move(dir,mob/living/m,newloc,oldloc) - if (walkcool < world.time && m.m_intent == MOVE_INTENT_WALK && wallcharges > 0) - walkcool = world.time + m.movement_delay() - var/issolid = FALSE - var/turf/K = newloc - if (istype(K)) - if (K.density) + if (walkcool >= world.time || m.m_intent != MOVE_INTENT_WALK || wallcharges <= 0) + return + walkcool = world.time + m.movement_delay() + var/issolid = FALSE + var/turf/K = newloc + if (istype(K)) + if (K.density) + issolid = TRUE + if (!issolid) + for (var/atom/T in newloc) //stuff on the new turf + if (!T.CanPass(m,newloc) && T != m) issolid = TRUE + newlocobject = T + break if (!issolid) - for (var/atom/T in newloc) //stuff on the new turf - if (!T.CanPass(m,newloc) && T != m) + for (var/atom/T in oldloc) //directional shit on the old turf + if (!T.CanPass(m,newloc) && T != m && T != newlocobject) issolid = TRUE - newlocobject = T break - if (!issolid) - for (var/atom/T in oldloc) //directional shit on the old turf - if (!T.CanPass(m,newloc) && T != m && T != newlocobject) - issolid = TRUE - break - newlocobject = null //stopping structures from using two charges because of how shitty the canpass code is - m.forceMove(newloc) - if (issolid) - m.adjustOxyLoss(rand(5,13)) - if (prob(10)) - m.adjustBruteLoss(rand(3,5)) - to_chat(m,"You feel as if travelling through the solid object left something behind and it hurts!") - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(5, 1, oldloc) - s.start() - flash_lighting_fx(3, 3, LIGHT_COLOR_ORANGE) - wallcharges-- + newlocobject = null //stopping structures from using two charges because of how shitty the canpass code is + m.forceMove(newloc) + if (!issolid) + return + m.adjustOxyLoss(rand(5,13)) + if (prob(10)) + m.adjustBruteLoss(rand(3,5)) + to_chat(m,"You feel as if travelling through the solid object left something behind and it hurts!") + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(5, 1, oldloc) + s.start() + flash_lighting_fx(3, 3, LIGHT_COLOR_ORANGE) + wallcharges-- /obj/item/bluespacerecharge name = "bluespace crystal recharging device" @@ -452,14 +454,12 @@ /obj/item/bluespacerecharge/attackby(obj/item/I, mob/user, params) ..() - if(istype(I, /obj/item/stack/ore/bluespace_crystal) && !uses) - var/obj/item/stack/ore/bluespace_crystal/B = I - if (B.amount < 10) - return - uses += 3 - to_chat(user, "You insert [I] into [src].") - if(B.amount > 10) - B.amount -= 10 - else - qdel(I) - icon_state = initial(icon_state) \ No newline at end of file + if(!istype(I, /obj/item/stack/ore/bluespace_crystal) || uses) + return + var/obj/item/stack/ore/bluespace_crystal/B = I + if (B.amount < 10) + return + uses += 3 + to_chat(user, "You insert [I] into [src].") + B.use(10) + icon_state = initial(icon_state) \ No newline at end of file From 74d6473c3be5ee1f9f3153a4d246145afb18c112 Mon Sep 17 00:00:00 2001 From: Artur Date: Tue, 25 Feb 2020 17:07:40 +0200 Subject: [PATCH 024/190] Initial Commit Changes isvamp() to isbloodsucker(), adds a isvampire() check for the race itself, reworks regen cores codewise, adds a defib check for bloodsuckers --- code/__DEFINES/is_helpers.dm | 3 +- .../game/gamemodes/bloodsucker/bloodsucker.dm | 99 +++++-------------- code/game/machinery/cloning.dm | 2 +- .../bloodsucker/objects/bloodsucker_crypt.dm | 14 +-- .../mining/equipment/regenerative_core.dm | 27 +++-- .../living/carbon/alien/special/facehugger.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 2 +- 7 files changed, 48 insertions(+), 101 deletions(-) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 55bfcaff79..e69f5df05e 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -67,6 +67,7 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list( #define iscatperson(A) (ishumanbasic(A) && istype(A.dna.species, /datum/species/human/felinid) ) #define isdwarf(A) (is_species(A, /datum/species/dwarf)) #define isdullahan(A) (is_species(A, /datum/species/dullahan)) +#define isbloodsuckerire(A) (is_species(A,/datum/species/vampire)) // Citadel specific species #define isipcperson(A) (is_species(A, /datum/species/ipc)) @@ -263,4 +264,4 @@ GLOBAL_LIST_INIT(glass_sheet_types, typecacheof(list( #define isblobmonster(O) (istype(O, /mob/living/simple_animal/hostile/blob)) -#define isshuttleturf(T) (length(T.baseturfs) && (/turf/baseturf_skipover/shuttle in T.baseturfs)) \ No newline at end of file +#define isshuttleturf(T) (length(T.baseturfs) && (/turf/baseturf_skipover/shuttle in T.baseturfs)) diff --git a/code/game/gamemodes/bloodsucker/bloodsucker.dm b/code/game/gamemodes/bloodsucker/bloodsucker.dm index a45e989318..3737d0a5b1 100644 --- a/code/game/gamemodes/bloodsucker/bloodsucker.dm +++ b/code/game/gamemodes/bloodsucker/bloodsucker.dm @@ -9,7 +9,7 @@ var/list/vassal_allowed_antags = list(/datum/antagonist/brother, /datum/antagonist/traitor, /datum/antagonist/traitor/internal_affairs, /datum/antagonist/survivalist, \ /datum/antagonist/rev, /datum/antagonist/nukeop, /datum/antagonist/pirate, /datum/antagonist/cult, /datum/antagonist/abductee, /datum/antagonist/valentine, /datum/antagonist/heartbreaker,) // The antags you're allowed to be if turning Vassal. -/proc/isvamp(mob/living/M) +/proc/isbloodsucker(mob/living/M) return istype(M) && M.mind && M.mind.has_antag_datum(/datum/antagonist/bloodsucker) /datum/game_mode/bloodsucker @@ -70,49 +70,28 @@ // Gamemode is all done being set up. We have all our Vamps. We now pick objectives and let them know what's happening. /datum/game_mode/bloodsucker/post_setup() - // Sunlight (Creating Bloodsuckers manually will check to create this, too) check_start_sunlight() - // Vamps for(var/datum/mind/bloodsucker in bloodsuckers) - // spawn() --> Run block of code but game continues on past it. - // sleep() --> Run block of code and freeze code there (including whoever called us) until it's resolved. - - //Clean Bloodsucker Species (racist?) - //clean_invalid_species(bloodsucker) - // TO-DO !!! - - // Add Bloodsucker Antag Datum (or remove from list on Fail) - if (!make_bloodsucker(bloodsucker)) + if(!make_bloodsucker(bloodsucker)) bloodsuckers -= bloodsucker - - // NOTE: Hunters are done in ..() parent proc - return ..() -// Checking for ACTUALLY Dead Vamps -/datum/game_mode/bloodsucker/are_special_antags_dead() - // Bloodsucker not Final Dead - for(var/datum/mind/bloodsucker in bloodsuckers) - if(!bloodsucker.AmFinalDeath()) - return FALSE - return TRUE - // Init Sunlight (called from datum_bloodsucker.on_gain(), in case game mode isn't even Bloodsucker /datum/game_mode/proc/check_start_sunlight() // Already Sunlight (and not about to cancel) - if (istype(bloodsucker_sunlight) && !bloodsucker_sunlight.cancel_me) + if(istype(bloodsucker_sunlight) && !bloodsucker_sunlight.cancel_me) return bloodsucker_sunlight = new () // End Sun (last bloodsucker removed) /datum/game_mode/proc/check_cancel_sunlight() // No Sunlight - if (!istype(bloodsucker_sunlight)) + if(!istype(bloodsucker_sunlight)) return - if (bloodsuckers.len <= 0) + if(bloodsuckers.len <= 0) bloodsucker_sunlight.cancel_me = TRUE qdel(bloodsucker_sunlight) bloodsucker_sunlight = null @@ -158,64 +137,36 @@ /datum/game_mode/proc/make_bloodsucker(datum/mind/bloodsucker, datum/mind/creator = null) // NOTE: This is a game_mode/proc, NOT a game_mode/bloodsucker/proc! We need to access this function despite the game mode. - if (!can_make_bloodsucker(bloodsucker)) + if(!can_make_bloodsucker(bloodsucker)) return FALSE - // Create Datum: Fledgling var/datum/antagonist/bloodsucker/A - - // [FLEDGLING] - if (creator) + // [FLEDGLING] AKA a young vampire. + if(creator) A = new (bloodsucker) A.creator = creator bloodsucker.add_antag_datum(A) // Log message_admins("[bloodsucker] has become a Bloodsucker, and was created by [creator].") log_admin("[bloodsucker] has become a Bloodsucker, and was created by [creator].") - // [MASTER] else A = bloodsucker.add_antag_datum(ANTAG_DATUM_BLOODSUCKER) - - return TRUE - /datum/game_mode/proc/remove_bloodsucker(datum/mind/bloodsucker) bloodsucker.remove_antag_datum(ANTAG_DATUM_BLOODSUCKER) - /datum/game_mode/proc/clean_invalid_species(datum/mind/bloodsucker) // Only checking for Humans here - if (!ishuman(bloodsucker.current) || !bloodsucker.current.client) - return - var/am_valid = TRUE - var/mob/living/carbon/human/H = bloodsucker.current - - // Check if PLASMAMAN? - if(NOBLOOD in H.dna.species.species_traits) - am_valid = FALSE - - // PROBLEM: - // - // Setting species leaves clothes on. If you were a plasmaman, we need to reassign your entire outfit. Otherwise - // everyone will wonder why you're a human with Plasma clothes (jk they'll know you're antag) - - // Convert to HUMAN (along with ID and PDA) - if (!am_valid) - H.set_species(/datum/species/human) - H.real_name = H.client.prefs.custom_names["human"] - var/obj/item/card/id/ID = H.wear_id?.GetID() - if(ID) - ID.registered_name = H.real_name - ID.update_label() - + if(ishuman(bloodsucker.current) || bloodsucker.current.client && NOBLOOD in H.dna.species.species_traits) + var/mob/living/carbon/human/H = bloodsucker.current + //Give them blood if they dont have any. + H.dna.species.species_traits =- NOBLOOD /datum/game_mode/proc/can_make_vassal(mob/living/target, datum/mind/creator, display_warning=TRUE)//, check_antag_or_loyal=FALSE) // Not Correct Type: Abort - if (!iscarbon(target) || !creator) - return FALSE - if (target.stat > UNCONSCIOUS) + if(!iscarbon(target) || !creator || target.stat > UNCONSCIOUS) return FALSE // Check Overdose: Am I even addicted to blood? Do I even have any in me? //if (!target.reagents.addiction_list || !target.reagents.reagent_list) @@ -233,23 +184,23 @@ //message_admins("DEBUG4: can_make_vassal() Abort: No Blood") // return 0 // No Mind! - if (!target.mind || !target.mind.key) - if (display_warning) + if(!target.mind || !target.mind.key) + if(display_warning) to_chat(creator, "[target] isn't self-aware enough to be made into a Vassal.") return FALSE // Already MY Vassal var/datum/antagonist/vassal/V = target.mind.has_antag_datum(ANTAG_DATUM_VASSAL) - if (istype(V) && V.master) - if (V.master.owner == creator) - if (display_warning) + if(istype(V) && V.master) + if(V.master.owner == creator) + if(display_warning) to_chat(creator, "[target] is already your loyal Vassal!") else - if (display_warning) + if(display_warning) to_chat(creator, "[target] is the loyal Vassal of another Bloodsucker!") return FALSE // Already Antag or Loyal (Vamp Hunters count as antags) - if (target.mind.enslaved_to || AmInvalidAntag(target.mind)) //!VassalCheckAntagValid(target.mind, check_antag_or_loyal)) // HAS_TRAIT(target, TRAIT_MINDSHIELD, "implant") || - if (display_warning) + if(target.mind.enslaved_to || AmInvalidAntag(target.mind)) //!VassalCheckAntagValid(target.mind, check_antag_or_loyal)) // HAS_TRAIT(target, TRAIT_MINDSHIELD, "implant") || + if(display_warning) to_chat(creator, "[target] resists the power of your blood to dominate their mind!") return FALSE return TRUE @@ -268,15 +219,15 @@ return FALSE // Does even ONE antag appear in this mind that isn't in the list? Then FAIL! for(var/datum/antagonist/antag_datum in M.antag_datums) - if (!(antag_datum.type in vassal_allowed_antags)) // vassal_allowed_antags is a list stored in the game mode, above. - //message_admins("DEBUG VASSAL: Found Invalid: [antag_datum] // [antag_datum.type]") + // vassal_allowed_antags is a list stored in the game mode, above. + if(!(antag_datum.type in vassal_allowed_antags)) return TRUE //message_admins("DEBUG VASSAL: Valid Antags! (total of [M.antag_datums.len])") // WHEN YOU DELETE THE ABOVE: Remove the 3 second timer on converting the vassal too. return FALSE /datum/game_mode/proc/make_vassal(mob/living/target, datum/mind/creator) - if (!can_make_vassal(target,creator)) + if(!can_make_vassal(target,creator)) return FALSE // Make Vassal var/datum/antagonist/vassal/V = new (target.mind) @@ -285,7 +236,7 @@ target.mind.add_antag_datum(V, V.master.get_team()) // Update Bloodsucker Title (we're a daddy now) B.SelectTitle(am_fledgling = FALSE) // Only works if you have no title yet. - // Log + // lOg it message_admins("[target] has become a Vassal, and is enslaved to [creator].") log_admin("[target] has become a Vassal, and is enslaved to [creator].") return TRUE diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 62304112b2..266fcd0e40 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -157,7 +157,7 @@ mess = TRUE update_icon() return FALSE - if(isvamp(clonemind)) //If the mind is a bloodsucker + if(isbloodsucker(clonemind)) //If the mind is a bloodsucker return FALSE attempting = TRUE //One at a time!! diff --git a/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm b/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm index 9e46203483..2eace3a94d 100644 --- a/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm +++ b/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm @@ -116,7 +116,7 @@ /obj/structure/bloodsucker/vassalrack/examine(mob/user) . = ..() - if(isvamp(user) || isobserver(user)) + if(isbloodsucker(user) || isobserver(user)) . += {"This is the vassal rack, which allows you to thrall crewmembers into loyal minions in your service."} . += {"You need to first secure the vassal rack by clicking on it while it is in your lair."} . += {"Simply click and hold on a victim, and then drag their sprite on the vassal rack. Alt click on the vassal rack to unbuckle them."} @@ -130,7 +130,7 @@ /obj/structure/bloodsucker/vassalrack/MouseDrop_T(atom/movable/O, mob/user) if(!O.Adjacent(src) || O == user || !isliving(O) || !isliving(user) || useLock || has_buckled_mobs() || user.incapacitated()) return - if(!anchored && isvamp(user)) + if(!anchored && isbloodsucker(user)) to_chat(user, "Until this rack is secured in place, it cannot serve its purpose.") return // PULL TARGET: Remember if I was pullin this guy, so we can restore this @@ -183,7 +183,7 @@ /obj/structure/bloodsucker/vassalrack/user_unbuckle_mob(mob/living/M, mob/user) // Attempt Unbuckle - if(!isvamp(user)) + if(!isbloodsucker(user)) if(M == user) M.visible_message("[user] tries to release themself from the rack!",\ "You attempt to release yourself from the rack!") // For sound if not seen --> "You hear a squishy wet noise.") @@ -454,7 +454,7 @@ /obj/structure/bloodsucker/candelabrum/examine(mob/user) . = ..() - if((isvamp()) || isobserver(user)) + if((isbloodsucker()) || isobserver(user)) . += {"This is a magical candle which drains at the sanity of mortals who are not under your command while it is active."} . += {"You can alt click on it from any range to turn it on remotely, or simply be next to it and click on it to turn it on and off normally."} /* if(user.mind.has_antag_datum(ANTAG_DATUM_VASSAL) @@ -463,12 +463,12 @@ /obj/structure/bloodsucker/candelabrum/attack_hand(mob/user) var/datum/antagonist/vassal/T = user.mind.has_antag_datum(ANTAG_DATUM_VASSAL) - if(isvamp(user) || istype(T)) + if(isbloodsucker(user) || istype(T)) toggle() /obj/structure/bloodsucker/candelabrum/AltClick(mob/user) // Bloodsuckers can turn their candles on from a distance. SPOOOOKY. - if(isvamp(user)) + if(isbloodsucker(user)) toggle() /obj/structure/bloodsucker/candelabrum/proc/toggle(mob/user) @@ -485,7 +485,7 @@ if(lit) for(var/mob/living/carbon/human/H in viewers(7, src)) var/datum/antagonist/vassal/T = H.mind.has_antag_datum(ANTAG_DATUM_VASSAL) - if(isvamp(H) || T) //We dont want vassals or vampires affected by this + if(isbloodsucker(H) || T) //We dont want vassals or vampires affected by this return H.hallucination = 20 SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "vampcandle", /datum/mood_event/vampcandle) diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm index e8ba72e62f..65304c5460 100644 --- a/code/modules/mining/equipment/regenerative_core.dm +++ b/code/modules/mining/equipment/regenerative_core.dm @@ -69,14 +69,15 @@ /obj/item/organ/regenerative_core/afterattack(atom/target, mob/user, proximity_flag) . = ..() - if(proximity_flag && ishuman(target)) + if(proximity_flag) + apply_healing_core(target, user) + +/obj/item/organ/regenerative_core/apply_healing_core(atom/target, mob/user) + if(ishuman(target)) var/mob/living/carbon/human/H = target if(inert) to_chat(user, "[src] has decayed and can no longer be used to heal.") return - if(isvamp(user)) - to_chat(user, "[src] breaks down as it fails to heal your unholy self") - return else if(H.stat == DEAD) to_chat(user, "[src] are useless on the dead.") @@ -87,22 +88,16 @@ else to_chat(user, "You start to smear [src] on yourself. It feels and smells disgusting, but you feel amazingly refreshed in mere moments.") SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "self")) - H.revive(full_heal = 1) + if(!isbloodsucker(H)) + H.revive(full_heal = TRUE) + else + H.revive(full_heal = FALSE) qdel(src) user.log_message("[user] used [src] to heal [H]! Wake the fuck up, Samurai!", LOG_ATTACK, color="green") //Logging for 'old' style legion core use, when clicking on a sprite of yourself or another. /obj/item/organ/regenerative_core/attack_self(mob/user) //Knouli's first hack! Allows for the use of the core in hand rather than needing to click on the target, yourself, to selfheal. Its a rip of the proc just above - but skips on distance check and only uses 'user' rather than 'target' - if(ishuman(user)) //Check if user is human, no need for distance check as it's self heal - var/mob/living/carbon/human/H = user //Set H to user rather than target - if(inert) //Inert cores are useless - to_chat(user, "[src] has decayed and can no longer be used to heal.") - return - else //Skip on check if the target to be healed is dead as, if you are dead, you're not going to be able to use it on yourself! - to_chat(user, "You start to smear [src] on yourself. It feels and smells disgusting, but you feel amazingly refreshed in mere moments.") - SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "self")) - H.revive(full_heal = 1) - qdel(src) - H.log_message("[H] used [src] to heal themselves! Making use of Knouli's sexy and intelligent use-in-hand proc!", LOG_ATTACK, color="green") //Logging for 'new' style legion core use, when using the core in-hand. + . = ..() + apply_healing_core(user) /obj/item/organ/regenerative_core/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE) diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index 6947ab28f8..de65b775b4 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -252,7 +252,7 @@ return 0 if(M.getorgan(/obj/item/organ/alien/hivenode)) return 0 - if(isvamp(M)) + if(isbloodsucker(M)) return 0 if(ismonkey(M)) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 574a5aedd2..d07785873a 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -837,7 +837,7 @@ /mob/living/carbon/proc/can_defib() var/tlimit = DEFIB_TIME_LIMIT * 10 var/obj/item/organ/heart = getorgan(/obj/item/organ/heart) - if(suiciding || hellbound || HAS_TRAIT(src, TRAIT_HUSK)) + if(suiciding || hellbound || HAS_TRAIT(src, TRAIT_HUSK) || isbloodsucker()) return if((world.time - timeofdeath) > tlimit) return From fc64c0a0084668834ca3caff4ec19f265b4f13b7 Mon Sep 17 00:00:00 2001 From: Seris02 <49109742+Seris02@users.noreply.github.com> Date: Wed, 26 Feb 2020 18:02:07 +0800 Subject: [PATCH 025/190] yeah woops forgot that --- code/modules/clothing/shoes/miscellaneous.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 45c7ad4102..4d4589bb6d 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -443,6 +443,7 @@ icon = 'icons/obj/module.dmi' icon_state = "bluespace_charge" item_flags = NOBLUDGEON + w_class = WEIGHT_CLASS_TINY var/uses = 6 /obj/item/bluespacerecharge/examine(mob/user) @@ -462,4 +463,4 @@ uses += 3 to_chat(user, "You insert [I] into [src].") B.use(10) - icon_state = initial(icon_state) \ No newline at end of file + icon_state = initial(icon_state) From 5d3f3fc06aca9da08a723127a2736e72ad18db59 Mon Sep 17 00:00:00 2001 From: Artur Date: Fri, 28 Feb 2020 14:11:38 +0200 Subject: [PATCH 026/190] WIP --- code/__DEFINES/is_helpers.dm | 1 + code/__HELPERS/unsorted.dm | 18 +++++- .../game/gamemodes/bloodsucker/bloodsucker.dm | 61 +++++++++--------- .../bloodsucker/bloodsucker_life.dm | 16 ++--- .../bloodsucker/datum_bloodsucker.dm | 24 +++---- .../bloodsucker/objects/bloodsucker_crypt.dm | 10 +-- .../antagonists/bloodsucker/powers/feed.dm | 12 +++- .../food_and_drinks/food/snacks_bread.dm | 12 ++++ .../food_and_drinks/food/snacks_meat.dm | 4 +- .../recipes/tablecraft/recipes_bread.dm | 10 +++ .../recipes/tablecraft/recipes_misc.dm | 3 +- code/modules/hydroponics/grown/garlic.dm | 28 ++++++++ .../carbon/human/species_types/vampire.dm | 6 ++ .../mob/living/simple_animal/hostile/mimic.dm | 1 + code/modules/projectiles/projectile/magic.dm | 2 +- .../chemistry/reagents/food_reagents.dm | 52 +++++++++++++++ icons/obj/hydroponics/growing.dmi | Bin 74172 -> 75144 bytes icons/obj/hydroponics/harvest.dmi | Bin 87028 -> 87285 bytes icons/obj/hydroponics/seeds.dmi | Bin 25641 -> 25871 bytes .../code/modules/reagents/objects/clothes.dm | 4 +- tgstation.dme | 1 + 21 files changed, 200 insertions(+), 65 deletions(-) create mode 100644 code/modules/hydroponics/grown/garlic.dm diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 55bfcaff79..22abe1e4c8 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -67,6 +67,7 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list( #define iscatperson(A) (ishumanbasic(A) && istype(A.dna.species, /datum/species/human/felinid) ) #define isdwarf(A) (is_species(A, /datum/species/dwarf)) #define isdullahan(A) (is_species(A, /datum/species/dullahan)) +#define isvampire(A) (is_species(A,/datum/species/vampire)) // Citadel specific species #define isipcperson(A) (is_species(A, /datum/species/ipc)) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index af2fb281e6..4193e813fa 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1562,4 +1562,20 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) channels_to_use += channel if(channels_to_use.len) - world.TgsChatBroadcast() \ No newline at end of file + world.TgsChatBroadcast() + +//Checks to see if either the victim has a garlic necklace or garlic in their blood +/proc/sucking_checks(var/mob/living/carbon/target, check_neck, check_blood) + //Byppass this if the target isnt carbon. + if(!iscarbon) + return TRUE + if(check_neck) + if(istype(target.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) + to_chat(owner, "[victim] is wearing a garlic clove around their neck! You cant drink from them while it is on them!") + return FALSE + if(check_blood) + if(target.reagents.has_reagent(/datum/reagent/consumable/garlic)) + to_chat(target, "[H] tries to bite you, but recoils in disgust!") + to_chat(owner, "[victim] reeks of garlic! you can't bring yourself to drain such tainted blood.") + return FALSE + return TRUE diff --git a/code/game/gamemodes/bloodsucker/bloodsucker.dm b/code/game/gamemodes/bloodsucker/bloodsucker.dm index a45e989318..3cd68e3758 100644 --- a/code/game/gamemodes/bloodsucker/bloodsucker.dm +++ b/code/game/gamemodes/bloodsucker/bloodsucker.dm @@ -91,28 +91,19 @@ return ..() -// Checking for ACTUALLY Dead Vamps -/datum/game_mode/bloodsucker/are_special_antags_dead() - // Bloodsucker not Final Dead - for(var/datum/mind/bloodsucker in bloodsuckers) - if(!bloodsucker.AmFinalDeath()) - return FALSE - return TRUE - - // Init Sunlight (called from datum_bloodsucker.on_gain(), in case game mode isn't even Bloodsucker /datum/game_mode/proc/check_start_sunlight() // Already Sunlight (and not about to cancel) - if (istype(bloodsucker_sunlight) && !bloodsucker_sunlight.cancel_me) + if(istype(bloodsucker_sunlight) && !bloodsucker_sunlight.cancel_me) return bloodsucker_sunlight = new () // End Sun (last bloodsucker removed) /datum/game_mode/proc/check_cancel_sunlight() // No Sunlight - if (!istype(bloodsucker_sunlight)) + if(!istype(bloodsucker_sunlight)) return - if (bloodsuckers.len <= 0) + if(bloodsuckers.len <= 0) bloodsucker_sunlight.cancel_me = TRUE qdel(bloodsucker_sunlight) bloodsucker_sunlight = null @@ -158,14 +149,14 @@ /datum/game_mode/proc/make_bloodsucker(datum/mind/bloodsucker, datum/mind/creator = null) // NOTE: This is a game_mode/proc, NOT a game_mode/bloodsucker/proc! We need to access this function despite the game mode. - if (!can_make_bloodsucker(bloodsucker)) + if(!can_make_bloodsucker(bloodsucker)) return FALSE // Create Datum: Fledgling var/datum/antagonist/bloodsucker/A // [FLEDGLING] - if (creator) + if(creator) A = new (bloodsucker) A.creator = creator bloodsucker.add_antag_datum(A) @@ -187,7 +178,7 @@ /datum/game_mode/proc/clean_invalid_species(datum/mind/bloodsucker) // Only checking for Humans here - if (!ishuman(bloodsucker.current) || !bloodsucker.current.client) + if(!ishuman(bloodsucker.current) || !bloodsucker.current.client) return var/am_valid = TRUE var/mob/living/carbon/human/H = bloodsucker.current @@ -202,7 +193,7 @@ // everyone will wonder why you're a human with Plasma clothes (jk they'll know you're antag) // Convert to HUMAN (along with ID and PDA) - if (!am_valid) + if(!am_valid) H.set_species(/datum/species/human) H.real_name = H.client.prefs.custom_names["human"] var/obj/item/card/id/ID = H.wear_id?.GetID() @@ -211,12 +202,13 @@ ID.update_label() -/datum/game_mode/proc/can_make_vassal(mob/living/target, datum/mind/creator, display_warning=TRUE)//, check_antag_or_loyal=FALSE) +/datum/game_mode/proc/can_make_vassal(mob/living/target, datum/mind/creator, display_warning = TRUE)//, check_antag_or_loyal=FALSE) // Not Correct Type: Abort - if (!iscarbon(target) || !creator) + if(!iscarbon(target) || !creator) return FALSE - if (target.stat > UNCONSCIOUS) + if(target.stat > UNCONSCIOUS) return FALSE + // Check Overdose: Am I even addicted to blood? Do I even have any in me? //if (!target.reagents.addiction_list || !target.reagents.reagent_list) //message_admins("DEBUG2: can_make_vassal() Abort: No reagents") @@ -233,23 +225,23 @@ //message_admins("DEBUG4: can_make_vassal() Abort: No Blood") // return 0 // No Mind! - if (!target.mind || !target.mind.key) - if (display_warning) + if(!target.mind || !target.mind.key) + if(display_warning) to_chat(creator, "[target] isn't self-aware enough to be made into a Vassal.") return FALSE // Already MY Vassal var/datum/antagonist/vassal/V = target.mind.has_antag_datum(ANTAG_DATUM_VASSAL) - if (istype(V) && V.master) - if (V.master.owner == creator) - if (display_warning) + if(istype(V) && V.master) + if(V.master.owner == creator) + if(display_warning) to_chat(creator, "[target] is already your loyal Vassal!") else - if (display_warning) + if(display_warning) to_chat(creator, "[target] is the loyal Vassal of another Bloodsucker!") return FALSE // Already Antag or Loyal (Vamp Hunters count as antags) - if (target.mind.enslaved_to || AmInvalidAntag(target.mind)) //!VassalCheckAntagValid(target.mind, check_antag_or_loyal)) // HAS_TRAIT(target, TRAIT_MINDSHIELD, "implant") || - if (display_warning) + if(target.mind.enslaved_to || AmInvalidAntag(target.mind)) //!VassalCheckAntagValid(target.mind, check_antag_or_loyal)) // HAS_TRAIT(target, TRAIT_MINDSHIELD, "implant") || + if(display_warning) to_chat(creator, "[target] resists the power of your blood to dominate their mind!") return FALSE return TRUE @@ -268,15 +260,15 @@ return FALSE // Does even ONE antag appear in this mind that isn't in the list? Then FAIL! for(var/datum/antagonist/antag_datum in M.antag_datums) - if (!(antag_datum.type in vassal_allowed_antags)) // vassal_allowed_antags is a list stored in the game mode, above. + if(!(antag_datum.type in vassal_allowed_antags)) // vassal_allowed_antags is a list stored in the game mode, above. //message_admins("DEBUG VASSAL: Found Invalid: [antag_datum] // [antag_datum.type]") return TRUE //message_admins("DEBUG VASSAL: Valid Antags! (total of [M.antag_datums.len])") // WHEN YOU DELETE THE ABOVE: Remove the 3 second timer on converting the vassal too. return FALSE -/datum/game_mode/proc/make_vassal(mob/living/target, datum/mind/creator) - if (!can_make_vassal(target,creator)) +/datum/game_mode/proc/make_vassal(/mob/living/target, /datum/mind/creator) + if(!can_make_vassal(target, creator)) return FALSE // Make Vassal var/datum/antagonist/vassal/V = new (target.mind) @@ -292,3 +284,12 @@ /datum/game_mode/proc/remove_vassal(datum/mind/vassal) vassal.remove_antag_datum(ANTAG_DATUM_VASSAL) + +/datum/game_mode/proc/count_vassals(datum/mind/master) + var/datum/antagonist/bloodsucker/B = master.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) + var/vassal_amount + len(B.vassals) + return vassal_amount + + + \ No newline at end of file diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm index 0179c60ef1..4101d55df1 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm @@ -25,7 +25,7 @@ HandleStarving() // Death HandleDeath() // Standard Update update_hud()// Daytime Sleep in Coffin - if (SSticker.mode.is_daylight() && !HAS_TRAIT_FROM(owner.current, TRAIT_DEATHCOMA, "bloodsucker")) + if(SSticker.mode.is_daylight() && !HAS_TRAIT_FROM(owner.current, TRAIT_DEATHCOMA, "bloodsucker")) if(istype(owner.current.loc, /obj/structure/closet/crate/coffin)) Torpor_Begin() // Wait before next pass @@ -82,15 +82,15 @@ /datum/antagonist/bloodsucker/proc/HandleHealing(mult = 1) // NOTE: Mult of 0 is just a TEST to see if we are injured and need to go into Torpor! //It is called from your coffin on close (by you only) - if(poweron_masquerade == TRUE || owner.current.AmStaked()) + if(poweron_masquerade == TRUE || owner.current.AmStaked() || owner?.reagents?.has_reagent(/datum/reagent/consumable/garlic) return FALSE owner.current.adjustStaminaLoss(-1.5 + (regenRate * -7) * mult, 0) // Humans lose stamina damage really quickly. Vamps should heal more. owner.current.adjustCloneLoss(-0.1 * (regenRate * 2) * mult, 0) owner.current.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1 * (regenRate * 4) * mult) //adjustBrainLoss(-1 * (regenRate * 4) * mult, 0) // No Bleeding - if(ishuman(owner.current)) //NOTE Current bleeding is horrible, not to count the amount of blood ballistics delete. + if(ishuman(owner.current) && bleed_rate => 0) //NOTE Current bleeding is horrible, not to count the amount of blood ballistics delete. var/mob/living/carbon/human/H = owner.current - H.bleed_rate = 0 + H.bleed_rate =- 1 if(iscarbon(owner.current)) // Damage Heal: Do I have damage to ANY bodypart? var/mob/living/carbon/C = owner.current var/costMult = 1 // Coffin makes it cheaper @@ -305,17 +305,17 @@ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /mob/proc/CheckBloodsuckerEatFood(var/food_nutrition) - if (!isliving(src)) + if(!isliving(src)) return var/mob/living/L = src if(!L.AmBloodsucker()) return - // We're a vamp? Try to eat food... + // We're a bloodsucker? Try to eat food... var/datum/antagonist/bloodsucker/bloodsuckerdatum = mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) - bloodsuckerdatum.handle_eat_human_food(food_nutrition) + bloodsuckerdatum.bloodsucker_disgust(food_nutrition) -/datum/antagonist/bloodsucker/proc/handle_eat_human_food(var/food_nutrition) // Called from snacks.dm and drinks.dm +/datum/antagonist/bloodsucker/proc/bloodsucker_disgust(var/food_nutrition) // Called from snacks.dm and drinks.dm set waitfor = FALSE if(!owner.current || !iscarbon(owner.current)) return diff --git a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm index 5207f7a66d..19a7a2889e 100644 --- a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm +++ b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm @@ -655,13 +655,13 @@ var/datum/antagonist/vassal/mob_V = M.mind.has_antag_datum(ANTAG_DATUM_VASSAL) // Check 2) If they are a BLOODSUCKER, then are they my Master? if (mob_V && atom_B == mob_V.master) - return TRUE // SUCCESS! + return TRUE // Check 3) If I am a BLOODSUCKER, then are they my Vassal? if (mob_B && atom_V && (atom_V in mob_B.vassals)) - return TRUE // SUCCESS! + return TRUE // Check 4) If we are both VASSAL, then do we have the same master? if (atom_V && mob_V && atom_V.master == mob_V.master) - return TRUE // SUCCESS! + return TRUE return FALSE @@ -719,12 +719,12 @@ invisibility = INVISIBILITY_ABSTRACT /obj/screen/bloodsucker/proc/update_counter(value, valuecolor) - invisibility = 0 // Make Visible + invisibility = 0 -/obj/screen/bloodsucker/blood_counter // NOTE: Look up /obj/screen/devil/soul_counter in _onclick / hud / human.dm - icon = 'icons/mob/actions/bloodsucker.dmi'//'icons/mob/screen_gen.dmi' +/obj/screen/bloodsucker/blood_counter + icon = 'icons/mob/actions/bloodsucker.dmi' name = "Blood Consumed" - icon_state = "blood_display"//"power_display" + icon_state = "blood_display" screen_loc = ui_blood_display /obj/screen/bloodsucker/blood_counter/update_counter(value, valuecolor) @@ -749,22 +749,22 @@ /datum/antagonist/bloodsucker/proc/update_sunlight(value, amDay = FALSE) // No Hud? Get out. - if (!owner.current.hud_used) + if(!owner.current.hud_used) return // Update Sun Time - if (owner.current.hud_used.sunlight_display) + if(owner.current.hud_used.sunlight_display) var/valuecolor = "#BBBBFF" - if (amDay) + if(amDay) valuecolor = "#FF5555" else if(value <= 25) valuecolor = "#FFCCCC" else if(value < 10) valuecolor = "#FF5555" - var/value_string = (value >= 60) ? "[round(value / 60, 1)] m" : "[round(value,1)] s" + var/value_string = (value >= 60) ? "[round(value / 60, 1)] m" : "[round(value, 1)] s" owner.current.hud_used.sunlight_display.update_counter( value_string, valuecolor ) owner.current.hud_used.sunlight_display.icon_state = "sunlight_" + (amDay ? "day":"night") /obj/screen/bloodsucker/sunlight_counter/update_counter(value, valuecolor) ..() - maptext = "

[value]
" + maptext = "
[value]
" diff --git a/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm b/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm index 9e46203483..f9ba36e2c2 100644 --- a/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm +++ b/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm @@ -258,7 +258,7 @@ /obj/structure/bloodsucker/vassalrack/proc/torture_victim(mob/living/user, mob/living/target) var/datum/antagonist/bloodsucker/bloodsuckerdatum = user.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) // Check Bloodmob/living/M, force = FALSE, check_loc = TRUE - var/convert_cost = 200 + 200 * bloodsuckerdatum.vassals + var/convert_cost = 200 if(user.blood_volume < convert_cost + 5) to_chat(user, "You don't have enough blood to initiate the Dark Communion with [target].") return @@ -321,15 +321,15 @@ // to_chat(user, "The ritual has been interrupted!") // useLock = FALSE // return - user.playsound_local(null, 'sound/effects/explosion_distant.ogg', 40, 1) // Play THIS sound for user only. The "null" is where turf would go if a location was needed. Null puts it right in their head. - target.playsound_local(null, 'sound/effects/explosion_distant.ogg', 40, 1) // Play THIS sound for user only. The "null" is where turf would go if a location was needed. Null puts it right in their head. - target.playsound_local(null, 'sound/effects/singlebeat.ogg', 40, 1) // Play THIS sound for user only. The "null" is where turf would go if a location was needed. Null puts it right in their head. + user.playsound_local(null, 'sound/effects/explosion_distant.ogg', 40, TRUE) + target.playsound_local(null, 'sound/effects/explosion_distant.ogg', 40, TRUE) + target.playsound_local(null, 'sound/effects/singlebeat.ogg', 40, TRUE) target.Jitter(25) target.emote("laugh") //remove_victim(target) // Remove on CLICK ONLY! useLock = FALSE -/obj/structure/bloodsucker/vassalrack/proc/do_torture(mob/living/user, mob/living/target, mult=1) +/obj/structure/bloodsucker/vassalrack/proc/do_torture(mob/living/user, mob/living/target, mult = 1) var/torture_time = 15 // Fifteen seconds if you aren't using anything. Shorter with weapons and such. var/torture_dmg_brute = 2 var/torture_dmg_burn = 0 diff --git a/code/modules/antagonists/bloodsucker/powers/feed.dm b/code/modules/antagonists/bloodsucker/powers/feed.dm index f9ff31d94a..2ae41e7c02 100644 --- a/code/modules/antagonists/bloodsucker/powers/feed.dm +++ b/code/modules/antagonists/bloodsucker/powers/feed.dm @@ -67,6 +67,12 @@ if(display_error) to_chat(owner, "Your victim's blood is not suitable for you to take.") return FALSE + if(iscarbon(owner)) + //We want to check if the target is wearing a garlic necklance. + if(istype(owner.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) + if(display_error) + to_chat(owner, "Your victim is wearing a garlic clove on their neck! Disgusting!") + return FALSE return TRUE // If I'm not grabbing someone, find me someone nearby. @@ -140,7 +146,7 @@ to_chat(user, "You lean quietly toward [target] and secretly draw out your fangs...") else to_chat(user, "You pull [target] close to you and draw out your fangs...") - if(!do_mob(user, target, feed_time,0,1,extra_checks=CALLBACK(src, .proc/ContinueActive, user, target)))//sleep(10) + if(!do_mob(user, target, feed_time, 0, 1, extra_checks = CALLBACK(src, .proc/ContinueActive, user, target)))//sleep(10) to_chat(user, "Your feeding was interrupted.") //DeactivatePower(user,target) return @@ -166,7 +172,7 @@ var/deadmessage = target.stat == DEAD ? "" : " [target.p_they(TRUE)] looks dazed, and will not remember this." user.visible_message("[user] puts [target]'s wrist up to [user.p_their()] mouth.", \ "You secretly slip your fangs into [target]'s wrist.[deadmessage]", \ - vision_distance = notice_range, ignored_mobs=target) // Only people who AREN'T the target will notice this action. + vision_distance = notice_range, ignored_mobs = target) // Only people who AREN'T the target will notice this action. // Warn Feeder about Witnesses... var/was_unnoticed = TRUE for(var/mob/living/M in viewers(notice_range, owner)) @@ -299,7 +305,7 @@ SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "drankkilled", /datum/mood_event/drankkilled) // BAD // in bloodsucker_life.dm /datum/action/bloodsucker/feed/ContinueActive(mob/living/user, mob/living/target) - return ..() && target && (!target_grappled || user.pulling == target)// Active, and still Antag, + return ..() && target && (!target_grappled || user.pulling == target) && sucking_checks(target, TRUE, TRUE) // Active, and still Antag, // NOTE: We only care about pulling if target started off that way. Mostly only important for Aggressive feed. /datum/action/bloodsucker/feed/proc/ApplyVictimEffects(mob/living/target) diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm index b18dfc7968..9866e306c6 100644 --- a/code/modules/food_and_drinks/food/snacks_bread.dm +++ b/code/modules/food_and_drinks/food/snacks_bread.dm @@ -179,6 +179,18 @@ tastes = list("bread" = 1) foodtype = GRAIN +/obj/item/reagent_containers/food/snacks/garlicbread + name = "garlic bread" + desc = "Alas, it is limited." + icon = 'icons/obj/food/burgerbread.dmi' + icon_state = "garlicbread" + item_state = "garlicbread" + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/vitamin = 4, /datum/reagent/consumable/garlic = 2) + bitesize = 3 + tastes = list("bread" = 1, "garlic" = 1, "butter" = 1) + foodtype = GRAIN + /obj/item/reagent_containers/food/snacks/deepfryholder name = "Deep Fried Foods Holder Obj" desc = "If you can see this description the code for the deep fryer fucked up." diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index 9bf95f65db..53299b9c5b 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -196,7 +196,7 @@ name = "raw khinkali" desc = "One hundred khinkalis? Do I look like a pig?" icon_state = "khinkali" - list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1) + list_reagents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/consumable/garlic = 1) cooked_type = /obj/item/reagent_containers/food/snacks/khinkali tastes = list("meat" = 1, "onions" = 1, "garlic" = 1) foodtype = MEAT @@ -205,7 +205,7 @@ name = "khinkali" desc = "One hundred khinkalis? Do I look like a pig?" icon_state = "khinkali" - list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/consumable/garlic = 1) bitesize = 3 filling_color = "#F0F0F0" tastes = list("meat" = 1, "onions" = 1, "garlic" = 1) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm index c3890b28eb..335078eb4c 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_bread.dm @@ -125,6 +125,16 @@ result = /obj/item/reagent_containers/food/snacks/baguette subcategory = CAT_BREAD +/datum/crafting_recipe/food/garlicbread + name = "Garlic Bread" + time = 40 + reqs = list(/obj/item/reagent_containers/food/snacks/grown/garlic = 1, + /obj/item/reagent_containers/food/snacks/breadslice/plain = 1, + /obj/item/reagent_containers/food/snacks/butter = 1 + ) + result = /obj/item/reagent_containers/food/snacks/garlicbread + subcategory = CAT_BREAD + /datum/crafting_recipe/food/butterbiscuit name = "Butter Biscuit" reqs = list( diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm index 6a622d6719..8f9e7ff0b7 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm @@ -28,7 +28,8 @@ name = "Raw Khinkali" reqs = list( /obj/item/reagent_containers/food/snacks/doughslice = 1, - /obj/item/reagent_containers/food/snacks/faggot = 1 + /obj/item/reagent_containers/food/snacks/faggot = 1, + /obj/item/reagent_containers/food/snacks/grown/garlic = 1 ) result = /obj/item/reagent_containers/food/snacks/rawkhinkali subcategory = CAT_MISCFOOD diff --git a/code/modules/hydroponics/grown/garlic.dm b/code/modules/hydroponics/grown/garlic.dm new file mode 100644 index 0000000000..7ee8aab9a8 --- /dev/null +++ b/code/modules/hydroponics/grown/garlic.dm @@ -0,0 +1,28 @@ +/obj/item/seeds/garlic + name = "pack of garlic seeds" + desc = "A packet of extremely pungent seeds." + icon_state = "seed-garlic" + species = "garlic" + plantname = "Garlic Sprouts" + product = /obj/item/reagent_containers/food/snacks/grown/garlic + yield = 6 + potency = 25 + growthstages = 3 + growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' + reagents_add = list(/datum/reagent/consumable/garlic = 0.15, /datum/reagent/consumable/nutriment = 0.1) + +/obj/item/reagent_containers/food/snacks/grown/garlic + seed = /obj/item/seeds/garlic + name = "garlic" + desc = "Delicious, but with a potentially overwhelming odor." + icon_state = "garlic" + filling_color = "#C0C9A0" + bitesize_mod = 2 + tastes = list("garlic" = 1) + wine_power = 10 + +/obj/item/clothing/neck/garlic_necklace + name = "garlic necklace" + desc = "A clove of garlic on a string, tied to itself in a circle, just might fit around your neck. For paranoid people who fear getting their blood sucked." + icon_state = "garlic_necklace" + \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm index 8bbd870149..b62b8304da 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -81,6 +81,9 @@ if(H.blood_volume >= BLOOD_VOLUME_MAXIMUM) to_chat(H, "You're already full!") return + //This checks whether or not they are wearing a garlic clove on their neck + if(sucking_checks(victim, TRUE, FALSE)) + return if(victim.stat == DEAD) to_chat(H, "You need a living victim!") return @@ -92,6 +95,9 @@ to_chat(victim, "[H] tries to bite you, but stops before touching you!") to_chat(H, "[victim] is blessed! You stop just in time to avoid catching fire.") return + //Here we check now for both the garlic cloves on the neck and for blood in the victims bloodstream. + if(sucking_checks(victim, TRUE, TRUE)) + return if(!do_after(H, 30, target = victim)) return var/blood_volume_difference = BLOOD_VOLUME_MAXIMUM - H.blood_volume //How much capacity we have left to absorb blood diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index 16a55421b8..83af522962 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -11,6 +11,7 @@ speed = 0 maxHealth = 250 health = 250 + blood_volume = 0 gender = NEUTER mob_biotypes = NONE diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 7608e5f4a8..11523d3afa 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -284,7 +284,7 @@ if(L.mind) L.mind.transfer_to(S) if(owner) - to_chat(S, "You are an animate statue. You cannot move when monitored, but are nearly invincible and deadly when unobserved! Do not harm [owner], your creator.") + to_chat(S, "You are an animated statue. You cannot move when monitored, but are nearly invincible and deadly when unobserved! Do not harm [owner], your creator.") P.forceMove(S) return else diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 52eee9f8ea..9218df1ad1 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -423,6 +423,58 @@ M.emote(pick("twitch","giggle")) ..() +/datum/reagent/consumable/garlic //NOTE: having garlic in your blood stops vampires from biting you. + name = "Garlic Juice" + id = "garlic" + description = "Crushed garlic. Chefs love it, but it can make you smell bad." + color = "#FEFEFE" + taste_description = "garlic" + metabolization_rate = 0.15 * REAGENTS_METABOLISM + +/datum/reagent/consumable/garlic/on_mob_life(mob/living/carbon/M) + if(isvampire(M)) //incapacitating but not lethal. Unfortunately, vampires cannot vomit. + if(prob(min(25, current_cycle))) + to_chat(M, "You can't get the scent of garlic out of your nose! You can barely think...") + M.Paralyze(10) + M.Jitter(10) + return + else if(isbloodsucker(M)) + var/datum/antagonist/bloodsucker/bloodsuckerdatum = M.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) + switch(method) + if(INGEST) + if(prob(min(30, current_cycle))) + to_chat(M, "You cant get the smell of garlic out of your nose! You cant think straight because of it!") + M.Jitter(15) + return + if(prob(min(15, current_cycle))) + M.visible_message("Something you ate is burning your stomach!", / + "[M] clutches their stomach and falls to the ground!" + ) + M.Knockdown(20) + M.emote("scream") + return + if(prob(min(5, current_cycle))) + M.vomit() + return + if(INJECT) + if(prob(min(20, current_cycle))) + to_chat(M, "You feel like your veins are boiling!") + M.emote("scream") + M.adjustFireLoss(5) + return + if(prob(min(5, current_cycle))) + to_chat(M, "You are trying to purge the contaminants from your blood!") + M.vomit() + return + + else if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.job == "Cook") + if(prob(20)) //stays in the system much longer than sprinkles/banana juice, so heals slower to partially compensate + H.heal_bodypart_damage(1, 1, 0) + . = 1 + ..() + /datum/reagent/consumable/sprinkles name = "Sprinkles" value = 3 diff --git a/icons/obj/hydroponics/growing.dmi b/icons/obj/hydroponics/growing.dmi index 712ea11a3b7a0e1a6c1f595882d26ca9f4136fe2..c93865ca77bae041846d0069c1ae0c5dece1e9a1 100644 GIT binary patch delta 19548 zcmb4qbxa&z*zV%)ZiQmS-Mx5mEACn-t_2E1ai_&84#nM_1zOytcyWi~P-I!Y<(J&# zOKx(L`^WB1=A1b@^S;k{?Rls3Ct~C%;#Yb&y>AS3K>iOa63{W-Ve65 z*?|Ehh{#Mw9W@=N_=m=P9;aMAcM?yxkf&XC@y>2~67RJ|#y=%X`w`Y2{Bor;0T0*d zjw}K;L=V8{yq-get`1$5P3^-IFP}6=^zF~>>ORAJI|pM=>#Qe*!2w#e8Np8l=HOsQ zxzj!gAjq>mj` zS3OK$L9)_Ta<1I>JxrY?E=#9_nRT!tGzv$}Grm@F5Y#W&NDFkR3^|uX0d+`DGAs=& zWh}WYDJ(HcU&wvpSC)6?mf`>8?ZKI6en$x!2OM5~HQ|7-pOlm8-hBi2X)*z?6jg*e z`zD;j#3YgTRiza_V_H3VQiVa>FjCdP&UalacLU(p)JS+e->hA19xcKi+AMlxC{hm1Y+T@4}NAeqpXjk8SY7eq_cr z06EyNZ0@u!w`sBG&U6#Cfq~CtL5q`GwGG7PM0TL-qkK2&(9c}Nskb+Ljc0e&^l925 z-RCe#Tzi~-HcaI% zvY|qVQ*+;_L#pm-Ux>O8;WaG_kNOOZVh2!;`{tFB)lemL`t5f@?xMsxNl8EdL|54f znXsOU!W2n(Tf%+7h8*^5HAii%^gA?ifhyg{$7-lRy%+Y+7w9pvnh zJZ&=1+Fpu4eAl0oAm_VBfpT&x)v}&GRt*7 zN1?G1C79PUx*jy*WTNs@q5R{Ahc+u`YFEMv7N0S8q2~%OJI+9Sn-#}Qr-s8P;$SC2 z3SHFZFaPrJt<`kgB!<4?>o~&^7uPkZZCy4(QDicTlwC%>9RH!2vY31SoBnCEyDySmnZ@%)UZ#C*gxnms7JA zVMf=A)6=Pcmvv)3tF8;5f95n%%=oXWxq2e3%7Bjfz!6zu8cK z#Q~Bm(!{@n4Bo5^Q4gS}D~M-uFl2BwLwH|oa?Ew#*R1ABq((cTltL9Xfjn<`(o}ME z{nIJ@1VB~)nuh})g!@VuG;r`mJk>0Ub7YO?{Tqkc=f~~V-8Xa^0iEO|9LTTvc6ijX zL}CJa5jGu#a6qV7$l;jr@>fOXm70Jb;>K?)s9Dzrobjx6i ziVn8F{_bJb0rq6VKt3J|oObtZJ@{%0a=A~w(y>L zZRwoW;A$($dN7A>@%hPZ^($!%b$NyBrX_AFI}j#nv>rU2#JD}bM5fqvwg1T+fSz&r z%~)qux%AfW*0{nHy%}-D@^aPFI`v?@xI*n-|C?b^3e!#&Fo~~$Z7y$xr!DQ{E~`^3 zo1uRqKa-&=r#SZ?s}9y^$vuZjek)fUT!%>ky4Ng<K~j4Mw%KMx5A3lzYz;+ z(H40w#O%e zEIKCCD7tXV)iF_AZd$zcz#h6GH|&~SB3F+zv3Jg~WI<#;&njEF8GOXNr%l z^e+?M#(Uh|BD}(*!{>J1qf(^gCXCOcd0Er>vFYTWx@*Mq!)s||*}U5!H%z6-+adKD zvp7IQn$H19pi~$NLZyTrM~Ht1R4pWYeYVYpeD{g?%+ULicPLyU>)cH!nw2b+X*Czh`-{;uqQrgwo6V@%=7cDkd;)3s@fKEk;%9{KoJgCU zSLkbh?nvs3xt_~$`#RZpeV^5(Wo={{&NiR<0P?FYl2e8?^sVTvgf{Jc!>JSeAzJkG zv~O7;QE${a(M$`zYq{|@;)MBik4X+%J;TtTG~)hwk|_~SHttRUbwV`L7~VpJK1f~i z(MOH>vl2HZVNT%f86^!Wb$?~wxb^K~)#9g()1ZrPzYfit-nwldqPer$U}7CYk(Tof zxRAUb*a^C<*xdCx%J2Uo{ZX3$>T-imDdtHiNoFs-wV^-O8i1}wDH%4nKh|?dP`x?Z zU9f`_(<*Kj7~-=2Nch|A^ydSFq!nwjW&^Zw9X0#u^8{v=P@vM*^RQwP#&h_-p6l_I z*+w~dHR5Hye>Y^{qo(Pxfa|R1V}=@DPaO2%D6uB?}hpO z|Jv2^Ck#r?ylNs-si~d|t^CrAA_w37y$4#8hK{D1J0od}J`nXEN0nR(=l!8Y6e|%( zS~jm#v;dETHS=DiA8%-^6I&{TgzkBwz9>O&kR{099b+Q;MRgKc09AgYYLHqxG{V^E zi4GZ%Akma0SG5I!rnoxi9cX@Zlv(~WBk#~DdmL*~m zVO4S>B>nzfTMZpJOA_Vx9P>lrot<1)d4*ahz9gd_N`8Z z)mpF^hfkmYnV<;rI@A?@RIfVax1fA~(DgCr<%(Qj#}GB!N8ngJO!|*p+miKIBxz@h z6OL}R;qlcI%yT5Q4h5E0fwz8>rq@^3c!4&;?)x5#PCN5xz4ilIf+iyS6k0|-PU&NG zU9QSGd!K?*i7ifFp}g&U=n=(B8fiv1S{_It-n!w7><)O$lOvoe$qD%4{~DvyHi(wZ0fRsi=+}wUPrFJU;T1uYO(xM7Z6}TM4-x@j0A?;LX&4m8ps%0Y40u&s6;t7)W^jUYps!^e#Mw zR;DCTVPDZxG(DS+asYLQ`}|V)6wO9#1JP3mNFl_Bw!Pra%GqL%>IZ;3HG_P;9hBNE zfann*v>LbS6T#23(0h;uW)auuW-vqAV&fmnLx)M7%IUW3j z`=N>ptj#wIv^Y;xc$0_5pZ-jH#C{Dvpt{Du?n}fv+Zf-%X%7|b1h{en?p0&SBnUGl zpU9trL(cc?%;+Xa!`gg5x-LcZx@SKhZJ$x&$CH@pCs0J-^zNy9)BG@#>>NIm%Hl>> zm$;!dT< zNM5u{?7B>1pc^|L#-s{N>aJo?Ggf@+~0-2AbZLR}fzD9BZ z8iB@+(zO;K=z4f!&_9{|GgIgwH2oc=-6S2%x=G6fZH&JxTL zC+|!?IZjwf{Ij=<@~)naN?rKVypYi@0xVql=!0_29`a&KE6jRCfPa_AQ`6d-t&ZHj z0e?I`{f%q67!?I(^UsjHOte@zIO+jvXlq{wH=p-vZJ}=7#5zADI|sE!CIXvE9IeLj zQy55U{0sGY-w6K$jttfJDI^Wph=}L4(!pCU5zm9E{6alx5-Hf3gQ;oOe2l!8!GnX8 z|1}T3^kp#-KL$^@x%`*IF8n~{S05xkGJbA6i!uX55k4lS=>Ibi2Gzzk;?6P?RL0E* z-S%oZy#{IUREA!Kuk-Xt*J3ke6z4F|{d-*X57_hx6;Uz>+!vj|1i7wmGx2Bh^tKr- zrj4xcGWCn}2+gJE&##S4vr1lvnMK6Mn~&3a_)R|&+3=%a_pJRxZdsq^j~P3Z+f^97 z{VNI-Pj1fQX?QNe^X1-5CQ?($y?c+g`J51OBgzUF6d#?t8yluiP-$usa}%1f!4=dM zbn~&o2NHL>;z>$XgxrunM-eE~ny)kL@&WItJStZZA_AXq5+MfYHG{WS3QD>!U4VOu zEmcXTc{ZMsH*wgE@7_hdI<7RZR-<-xCwT{uQ>n<~e3)a&&Elu~ozrsnt$o1B#n*vX znAJ(vWahveyh`B5URR~Sw_?;Vl$Dd5tk}703_Gg!rus;nF>CP3rM2rY!ZU$CXYjk+ z-t{yBc~oNNt>zLZ6}$*r&}Y6$O}rEA<4K;?z6@dByBIOHabio4MUnZbw4lEx6qNur zYn{8UDmPo3j`Rjd>6C3#>6CS|GO23q0zgUcQ+;)h6@pn5PJ#8^QfPv&nh?7u{lgg7 z+J`Y$c@bVFuvL0t<4=ePy|tt@ql>{T!e!#8QNNZI?~fBrh@rWc^K<^WOnxs4*lQHF zG2qquYhX|3?Z=X7R@+@^{u|zZ9*EWPSM&DEUXJlzbBDJ1j@}D_DxzClTv>y!Qm-cA z7LDs{Ll&NHXnJ@qes8EvC{b8Ue*bo)nTLeYR8aZpF+6)@yJ8_wC$;4c@3vKNRqJWY z-ecrf;EB#FPW`5yoD_iq4(8$alrd{HOryhUEv#)ZEiR=LFwrynfeXem0f}n?PY2Ae zM7^g$H;k-yr!J?-DcbI4XnKi;eFky56H1ko5-620DP`5+9;3d+R31pfRgMg6U>s%_ zQ-{pENe3KPEvJ@U$XkU^!=#eqW-Ejv%zG|uPHN5M1%pU<2O>A+zm3+Jr{*WJ35~X} zeN1=T)@?yZn#MX=l_fxSq|raUJZfs-xJLWd<6P@v`%+jII0iby3i{ z9;E~Pu6pF9*jAnGH(_x}mjHu{TP)Fi_WkWW_Wd_?`^Z_V3=Ld7CF9JaMi5kX3KVmq zNBrVclq!XOc8e2I^?)Hw^w@gpxxQ(9^O3Gkft&R(FA2DPMDv4of9RAoyz^U+?`jEW34-%19lH=PLD$o6_KAl zmn=@~l~)m6`oD*%^(YCQDL3s?jb7A0+mf_^gZBrs25{SjzSX?aAO0R^KWa8WRduU> z>G$R1C5qMqypZ{Cx)TnK?!`%ri%_eOqGjp3nmg=^l@o!DTK~YG`fdIDjvlr`lR_}K z(amWd#jlg?jB({~+vdTppCf^Oq*}ts7+%i>4}Sc&e&_);(uydMcjR^X>pe~_U2<&H zo|4;pT^?Q2)BTI0rAyAleHf{Nc#hxMKL&mIdJaJH(9j9=q^)8@kJ8a2R1~dJs7jc+ zQ>=N+^X}g3dCQh#rk~nwj*agOMM{RR+-Q#B416cscvmK+_x>}IA65aXCOt`|p+=gp z(}b)a&dapYp;BZ2KS4bVf*+JW1iCp z5Ce0;kRO;R7;xZpAkz;^JcW%4u~Hc^>f(>GaA_%P+4=cf3kOyAR_CoKJrB~g;6<#Dln zCj*xitCrJ|4}U9qSGdJp?hchDnlAv<;VgkSB`+K4#hh4CBz$emonT{yfg*>Wt_h~* zC!R>%P$qa`1N*Wx7WCW&2R{)I6I)(3NaJQ$uRhozAa9TiuDF)OW!<$5CNQRZGPu;% z49RyIU7IEIuJR~+*syAkGJhF8m#oSSiglct7X#hTpBw93}# zzWr}6Vq8Wh+JhbULhsDm8Xu-srce$#iT3}J<{3UR2^B=jA z(;G*wQ+r9fJ5CwqT|ohi!QUfr4}6goNH2R4K^uAN57qufPt~_i|0?{zsNUPnEvQ$0 zJ~1%Is|?x!l_J+#-7F`#cY|?(iKxLeYqd-Q9-8WN%~)=e8pYY59^F(Dv@yd7_nVpc0L2#XEW zhSyi}g;`F|hSVIM+CI+e*aTw<&|orcDn(YUA{(D|o4_hW8?-@F6KS(sf^z9SqQ3fX z45DsI#q#8;OkOYt?~32Ub+Kq#mo?1`#*>fja5FBeT4kgpxmWecP|AM(iqfbEIpI!S zFWp#h`(1DkC{chmwu%J6O&MI?n9;

8&ogCVpgZVyQwxxvgAJjpH0A);f0~9xx>R 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 WEBG994ch|%G~7>mJJ%j3(*6O8_^8tW diff --git a/icons/obj/hydroponics/harvest.dmi b/icons/obj/hydroponics/harvest.dmi index e746d8f43d7b16c2207e5f00623f75c7e9c80688..c7c31581f3eb486c34e22574f4a3cedcd88ff062 100644 GIT binary patch delta 20535 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 diff --git a/icons/obj/hydroponics/seeds.dmi b/icons/obj/hydroponics/seeds.dmi index 43e231cbab93cca9acc55113aa042b547f75eb07..62843e3f54f903007e1dd9bfd61e3e883ddbf5a6 100644 GIT binary patch delta 6140 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 PB7b_?##-f?juHO@f?zAP delta 5908 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 diff --git a/modular_citadel/code/modules/reagents/objects/clothes.dm b/modular_citadel/code/modules/reagents/objects/clothes.dm index 4707d5b460..457f1dfb39 100644 --- a/modular_citadel/code/modules/reagents/objects/clothes.dm +++ b/modular_citadel/code/modules/reagents/objects/clothes.dm @@ -5,7 +5,7 @@ name = "Synthetic hat" icon = 'icons/obj/clothing/hats.dmi' icon_state = "cowboy" - desc = "A sythesized hat, you can't seem to take it off. And tips their hat." + desc = "A synthesized hat, you can't seem to take it off. And tips their hat." armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) //item_flags = NODROP //Tips their hat! @@ -25,7 +25,7 @@ /obj/item/clothing/head/hattip/MouseDrop(atom/over_object) //You sure do love tipping your hat. - if(usr) + if(user) var/mob/living/carbon/C = usr if(is_ninja(C)) to_chat(C, "Using your superior ninja reflexes, you take the hat off before tipping.") diff --git a/tgstation.dme b/tgstation.dme index ee098a0ec7..f9a4b3fe7b 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1902,6 +1902,7 @@ #include "code\modules\hydroponics\grown\cotton.dm" #include "code\modules\hydroponics\grown\eggplant.dm" #include "code\modules\hydroponics\grown\flowers.dm" +#include "code\modules\hydroponics\grown\garlic.dm" #include "code\modules\hydroponics\grown\grass_carpet.dm" #include "code\modules\hydroponics\grown\kudzu.dm" #include "code\modules\hydroponics\grown\melon.dm" From 97315940fe84c70069854f7c7129f944dbf28d6e Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sun, 8 Mar 2020 01:01:21 +0100 Subject: [PATCH 027/190] Polychromic element. --- code/__DEFINES/components.dm | 1 + code/__HELPERS/_lists.dm | 21 +++ code/controllers/subsystem/dcs.dm | 5 +- code/datums/action.dm | 49 ++++--- code/datums/components/storage/storage.dm | 2 +- code/datums/components/virtual_reality.dm | 2 +- code/datums/elements/polychromic.dm | 127 ++++++++++++++++++ .../elements/update_icon_updates_onmob.dm | 2 +- code/game/objects/items.dm | 7 + .../modules/mob/living/carbon/update_icons.dm | 9 -- icons/mob/actions/backgrounds.dmi | Bin 6061 -> 18620 bytes tgstation.dme | 1 + 12 files changed, 188 insertions(+), 38 deletions(-) create mode 100644 code/datums/elements/polychromic.dm diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index 56cf681a27..ff0750a28c 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -255,6 +255,7 @@ #define COMSIG_ITEM_IMBUE_SOUL "item_imbue_soul" //return a truthy value to prevent ensouling, checked in /obj/effect/proc_holder/spell/targeted/lichdom/cast(): (mob/user) #define COMSIG_ITEM_HIT_REACT "item_hit_react" //from base of obj/item/hit_reaction(): (list/args) #define COMSIG_ITEM_WEARERCROSSED "wearer_crossed" //called on item when crossed by something (): (/atom/movable) +#define COMSIG_ITEM_WORN_OVERLAYS "item_worn_overlays" //from base of obj/item/worn_overlays(): (isinhands, icon_file, style_flags, list/overlays) // /obj/item/clothing signals #define COMSIG_SHOES_STEP_ACTION "shoes_step_action" //from base of obj/item/clothing/shoes/proc/step_action(): () diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index f16b566b00..8887a2aa1d 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -550,6 +550,27 @@ for(var/thing in flat_list) .[thing] = TRUE +/proc/deep_list2params(list/deep_list) + var/list/L = list() + for(var/i in deep_list) + var/key = i + if(isnum(key)) + key = "[key]" + continue + if(islist(key)) + key = deep_list2params(key) + else if(!istext(key)) + key = "[REF(key)]" + L += "[key]" + var/value = deep_list[key] + if(!isnull(value)) + if(islist(value)) + value = deep_list2params(value) + else if(!(istext(key) || isnum(key))) + value = "[REF(value)]" + L["[key]"] = "[value]" + return list2params(L) + //Picks from the list, with some safeties, and returns the "default" arg if it fails #define DEFAULTPICK(L, default) ((islist(L) && length(L)) ? pick(L) : default) diff --git a/code/controllers/subsystem/dcs.dm b/code/controllers/subsystem/dcs.dm index faf95fd319..19a1ac26b5 100644 --- a/code/controllers/subsystem/dcs.dm +++ b/code/controllers/subsystem/dcs.dm @@ -16,7 +16,10 @@ PROCESSING_SUBSYSTEM_DEF(dcs) if(istext(argument) || isnum(argument)) fullid += "[argument]" else - fullid += "[REF(argument)]" + if(islist(argument)) + fullid += deep_list2params(argument) + else + fullid += "[REF(argument)]" element_id = fullid.Join("&") . = elements_by_type[element_id] diff --git a/code/datums/action.dm b/code/datums/action.dm index f1df2a80d8..65db324b2b 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -6,13 +6,15 @@ /datum/action var/name = "Generic Action" var/desc = null - var/obj/target = null + var/atom/target = null var/check_flags = 0 var/required_mobility_flags = MOBILITY_USE var/processing = FALSE var/obj/screen/movable/action_button/button = null var/buttontooltipstyle = "" var/transparent_when_unavailable = TRUE + var/use_target_appearance = FALSE + var/list/target_appearance_matrix //if set, will be used to transform the target button appearance as an arglist. var/button_icon = 'icons/mob/actions/backgrounds.dmi' //This is the file for the BACKGROUND icon var/background_icon_state = ACTION_BUTTON_DEFAULT_BACKGROUND //And this is the state for the background icon @@ -88,7 +90,7 @@ /datum/action/proc/Trigger() if(!IsAvailable()) return FALSE - if(SEND_SIGNAL(src, COMSIG_ACTION_TRIGGER, src) & COMPONENT_ACTION_BLOCK_TRIGGER) + if(SEND_SIGNAL(src, COMSIG_ACTION_TRIGGER, target) & COMPONENT_ACTION_BLOCK_TRIGGER) return FALSE return TRUE @@ -116,7 +118,9 @@ return TRUE /datum/action/proc/UpdateButtonIcon(status_only = FALSE, force = FALSE) - if(button) + if(!button) + return + if(button_icon && button_icon_state) if(!status_only) button.name = name button.desc = desc @@ -134,11 +138,22 @@ ApplyIcon(button, force) - if(!IsAvailable()) - button.color = transparent_when_unavailable ? rgb(128,0,0,128) : rgb(128,0,0) - else - button.color = rgb(255,255,255,255) - return 1 + else if(use_target_appearance && target && button.appearance_cache != target.appearance) //replace with /ref comparison if this is not valid. + var/mutable_appearance/M = new(target) + M.layer = FLOAT_LAYER + M.plane = FLOAT_PLANE + if(target_appearance_matrix) + var/list/L = target_appearance_matrix + M.transform = matrix(L[1], L[2], L[3], L[4], L[5], L[6]) + button.cut_overlays() + button.add_overlay(M) + button.appearance_cache = target.appearance + + if(!IsAvailable()) + button.color = transparent_when_unavailable ? rgb(128,0,0,128) : rgb(128,0,0) + else + button.color = rgb(255,255,255,255) + return 1 /datum/action/proc/ApplyIcon(obj/screen/movable/action_button/current_button, force = FALSE) if(icon_icon && button_icon_state && ((current_button.button_icon_state != button_icon_state) || force)) @@ -165,6 +180,7 @@ /datum/action/item_action check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_LYING|AB_CHECK_CONSCIOUS button_icon_state = null + use_target_appearance = TRUE // If you want to override the normal icon being the item // then change this to an icon state @@ -188,23 +204,6 @@ I.ui_action_click(owner, src) return 1 -/datum/action/item_action/ApplyIcon(obj/screen/movable/action_button/current_button, force) - if(button_icon && button_icon_state) - // If set, use the custom icon that we set instead - // of the item appearence - ..() - else if(target && current_button.appearance_cache != target.appearance) //replace with /ref comparison if this is not valid. - var/obj/item/I = target - var/old_layer = I.layer - var/old_plane = I.plane - I.layer = FLOAT_LAYER //AAAH - I.plane = FLOAT_PLANE //^ what that guy said - current_button.cut_overlays() - current_button.add_overlay(I) - I.layer = old_layer - I.plane = old_plane - current_button.appearance_cache = I.appearance - /datum/action/item_action/toggle_light name = "Toggle Light" diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index ea72a8a6dd..3ed66dcf92 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -790,7 +790,7 @@ user.visible_message("[user] draws [I] from [parent]!", "You draw [I] from [parent].") return TRUE -/datum/component/storage/proc/action_trigger(datum/signal_source, datum/action/source) +/datum/component/storage/proc/action_trigger(datum/action/source, obj/target) gather_mode_switch(source.owner) return COMPONENT_ACTION_BLOCK_TRIGGER diff --git a/code/datums/components/virtual_reality.dm b/code/datums/components/virtual_reality.dm index 63e4f4f092..cd5820d21f 100644 --- a/code/datums/components/virtual_reality.dm +++ b/code/datums/components/virtual_reality.dm @@ -174,7 +174,7 @@ /** *The following procs simply acts as hooks for quit(), since components do not use callbacks anymore */ -/datum/component/virtual_reality/proc/action_trigger(datum/signal_source, datum/action/source) +/datum/component/virtual_reality/proc/action_trigger(datum/action/source, obj/target) quit() return COMPONENT_ACTION_BLOCK_TRIGGER diff --git a/code/datums/elements/polychromic.dm b/code/datums/elements/polychromic.dm new file mode 100644 index 0000000000..4301a280f3 --- /dev/null +++ b/code/datums/elements/polychromic.dm @@ -0,0 +1,127 @@ +#define POLYCHROMIC_ALTCLICK (1<<0) +#define POLYCHROMIC_ACTION (1<<1) +#define POLYCHROMIC_NO_HELD (1<<2) +#define POLYCHROMIC_NO_WORN (1<<3) + +/datum/element/polychromic + element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH + id_arg_index = 3 + var/list/overlays_by_atom = list() + var/list/overlays_states //also used for worn/held overlsays + var/icon_file + var/list/overlays_names //wrap numbers into text strings please. + var/list/actions_by_atom = list() + var/poly_flags + //item variables + var/worn_file //used for boths held and worn overlays if present. + +/datum/element/polychromic/Attach(datum/target, list/colors, list/states, _icon, _flags = POLYCHROMIC_ALTCLICK|POLYCHROMIC_NO_HELD, _worn, list/names = list("Primary", "Secondary", "Tertiary", "Quaternary", "Quinary", "Senary")) + . = ..() + var/states_len = length(overlays_states) + var/names_len = length(names) + if(!states_len || names_len || !isatom(target)) + return ELEMENT_INCOMPATIBLE + var/atom/A = target + + overlays_states = states + icon_file = _icon + worn_file = _worn + poly_flags = _flags + + var/mut_icon = icon_file || A.icon + var/list/L = list() + for(var/I in overlays_states) + var/col = popleft(colors) || "#FFFFFF" + L += mutable_appearance(mut_icon, I, color = col) + A.add_overlay(L) + overlays_by_atom[A] = L + + if(_flags & POLYCHROMIC_ALTCLICK) + RegisterSignal(A, COMSIG_PARENT_EXAMINE, .proc/on_examine) + RegisterSignal(A, COMSIG_CLICK_ALT, .proc/set_color) + + if(!overlays_names && names) + overlays_names = names + var/diff = states_len - names_len + if(diff > 0) //It will be ugly, but still functional. + for(var/i in 1 to diff) + overlays_names += "[names_len + i]" + else if(diff < 0) + overlays_names.len += diff + + if(isitem(A)) + if(_flags & POLYCHROMIC_ACTION) + RegisterSignal(src, COMSIG_ITEM_EQUIPPED, .proc/grant_user_action) + RegisterSignal(src, COMSIG_ITEM_DROPPED, .proc/remove_user_action) + AddElement(A, /datum/element/update_icon_updates_onmob) //Since we can change the overall aspect of the item. + RegisterSignal(A, COMSIG_ITEM_WORN_OVERLAYS, .proc/apply_worn_overlays) + else if(_flags & POLYCHROMIC_ACTION && ismob(A)) //Not safe until mob icon updating procs are standarized and stop using cut_overlays() + var/datum/action/polychromic/P = new(A) + RegisterSignal(P, COMSIG_ACTION_TRIGGER, .proc/activate_action) + actions_by_atom[A] = P + P.Grant(A) + +/datum/element/polychromic/Detach(atom/A) + . = ..() + A.cut_overlay(overlays_by_atom[A]) + overlays_by_atom -= A + var/datum/action/polychromic/P = actions_by_atom[A] + if(P) + qdel(P) + actions_by_atom -= A + if(poly_flags & POLYCHROMIC_ALTCLICK) + UnregisterSignal(A, list(COMSIG_PARENT_EXAMINE, COMSIG_CLICK_ALT)) + +/datum/element/polychromic/proc/apply_worn_overlays(obj/item/source, isinhands, icon_file, style_flags, list/overlays) + if(poly_flags & (isinhands ? POLYCHROMIC_NO_HELD : POLYCHROMIC_NO_WORN)) + return + var/f_icon = worn_file || icon_file + var/list/L = overlays_by_atom[source] + + for(var/I in 1 to length(overlays_states)) + var/mutable_appearance/M = L[I] + overlays += mutable_appearance(f_icon, overlays_states[I], color = M.color) + +/datum/element/polychromic/proc/set_color(atom/source, mob/user) + var/choice = input(user,"Polychromic options", "Recolor [source]") as null|anything in overlays_names + if(!choice || QDELETED(source) || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) + return + choice = overlays_names.Find(choice) + var/ncolor = input(user, "Polychromic options", "Choose [choice] Color") as color|null + if(!ncolor || QDELETED(source) || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) + return + var/list/L = overlays_by_atom[source] + if(!L) // Ummmmmh. + return + var/mutable_appearance/M = L[choice] + M.color = sanitize_hexcolor(ncolor, 6, TRUE, M.color) + source.update_icon() + return TRUE + +/datum/element/polychromic/proc/grant_user_action(atom/source, mob/user, slot) + if(slot == SLOT_IN_BACKPACK || slot == SLOT_LEGCUFFED || slot == SLOT_HANDCUFFED || slot == SLOT_GENERC_DEXTROUS_STORAGE) + return + var/datum/action/polychromic/P = actions_by_atom[source] + if(!P) + P = new (source) + actions_by_atom[source] = P + P.check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_LYING|AB_CHECK_CONSCIOUS + RegisterSignal(P, COMSIG_ACTION_TRIGGER, .proc/activate_action) + P.Grant(user) + +/datum/element/polychromic/proc/remove_user_action(atom/source, mob/user) + var/datum/action/polychromic/P = actions_by_atom[source] + P?.Remove(user) + +/datum/element/polychromic/proc/activate_action(datum/action/source, atom/target) + set_color(target, source.owner) + +/datum/element/polychromic/proc/on_examine(atom/source, mob/user, list/examine_list) + examine_list += "Alt-click to recolor it." + +/datum/action/polychromic + name = "Modify Polychromic Colors" + background_icon_state = "bg_polychromic" + use_target_appearance = TRUE + button_icon_state = null + target_appearance_matrix = list(0.7,0,0,0,0.7,0) diff --git a/code/datums/elements/update_icon_updates_onmob.dm b/code/datums/elements/update_icon_updates_onmob.dm index ca0e8b1641..5c71547f62 100644 --- a/code/datums/elements/update_icon_updates_onmob.dm +++ b/code/datums/elements/update_icon_updates_onmob.dm @@ -5,7 +5,7 @@ . = ..() if(!istype(target, /obj/item)) return ELEMENT_INCOMPATIBLE - RegisterSignal(target, COMSIG_ATOM_UPDATED_ICON, .proc/update_onmob) + RegisterSignal(target, COMSIG_ATOM_UPDATED_ICON, .proc/update_onmob, override = TRUE) /datum/element/update_icon_updates_onmob/proc/update_onmob(obj/item/target) if(ismob(target.loc)) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index fd6ae1bb43..7a155ca932 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -425,6 +425,13 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) item_flags |= IN_INVENTORY user.update_equipment_speed_mods() +//Overlays for the worn overlay so you can overlay while you overlay +//eg: ammo counters, primed grenade flashing, etc. +//"icon_file" is used automatically for inhands etc. to make sure it gets the right inhand file +/obj/item/proc/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) + . = list() + SEND_SIGNAL(src, COMSIG_ITEM_WORN_OVERLAYS, isinhands, icon_file, style_flags, .) + //sometimes we only want to grant the item's action if it's equipped in a specific slot. /obj/item/proc/item_action_slot_check(slot, mob/user, datum/action/A) if(slot == SLOT_IN_BACKPACK || slot == SLOT_LEGCUFFED) //these aren't true slots, so avoid granting actions there diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index e5483e8d73..0d6195e4dd 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -195,15 +195,6 @@ /mob/living/carbon/proc/update_hud_back(obj/item/I) return - - -//Overlays for the worn overlay so you can overlay while you overlay -//eg: ammo counters, primed grenade flashing, etc. -//"icon_file" is used automatically for inhands etc. to make sure it gets the right inhand file -/obj/item/proc/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) - . = list() - - /mob/living/carbon/update_body() update_body_parts() diff --git a/icons/mob/actions/backgrounds.dmi b/icons/mob/actions/backgrounds.dmi index 3697fe4ff5b3cc76b1c4abd6ec5f7fdd4f1d5a35..07839588ce366d2783e503982b7817658fb5def0 100644 GIT binary patch literal 18620 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 LSLNdatI+=k=$XBH diff --git a/tgstation.dme b/tgstation.dme index 7ce9569f9a..b12baa9c47 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -501,6 +501,7 @@ #include "code\datums\elements\firestacker.dm" #include "code\datums\elements\ghost_role_eligibility.dm" #include "code\datums\elements\mob_holder.dm" +#include "code\datums\elements\polychromic.dm" #include "code\datums\elements\swimming.dm" #include "code\datums\elements\sword_point.dm" #include "code\datums\elements\update_icon_blocker.dm" From 2b4b626facaefedebbbcea6f15080b08ecf6c194 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Tue, 10 Mar 2020 16:55:30 +0100 Subject: [PATCH 028/190] support for items that switch states through update_icon. --- code/__DEFINES/components.dm | 2 +- code/datums/elements/polychromic.dm | 65 +++++++++++++------ code/game/objects/items.dm | 4 +- code/game/objects/items/RCL.dm | 2 +- code/game/objects/items/holy_weapons.dm | 2 +- code/game/objects/items/melee/energy.dm | 2 +- code/game/objects/items/storage/belt.dm | 2 +- code/game/objects/items/tanks/watertank.dm | 2 +- code/game/objects/items/tools/screwdriver.dm | 2 +- code/game/objects/items/toys.dm | 2 +- code/game/objects/items/twohanded.dm | 2 +- code/game/objects/structures/bedsheet_bin.dm | 2 +- .../clockcult/clock_items/clockwork_slab.dm | 2 +- code/modules/antagonists/cult/cult_items.dm | 2 +- code/modules/clothing/glasses/_glasses.dm | 2 +- code/modules/clothing/gloves/_gloves.dm | 2 +- code/modules/clothing/head/_head.dm | 2 +- code/modules/clothing/head/hardhat.dm | 2 +- code/modules/clothing/head/misc_special.dm | 2 +- code/modules/clothing/masks/_masks.dm | 2 +- code/modules/clothing/neck/_neck.dm | 4 +- code/modules/clothing/shoes/_shoes.dm | 2 +- code/modules/clothing/spacesuits/hardsuit.dm | 6 +- code/modules/clothing/spacesuits/plasmamen.dm | 2 +- code/modules/clothing/suits/_suits.dm | 2 +- code/modules/clothing/suits/miscellaneous.dm | 4 +- code/modules/clothing/under/_under.dm | 2 +- .../clothing/under/polychromic_clothes.dm | 2 +- code/modules/food_and_drinks/pizzabox.dm | 2 +- .../modules/mining/equipment/explorer_gear.dm | 2 +- .../mob/living/carbon/human/update_icons.dm | 2 +- .../clothing/suits/polychromic_cloaks.dm | 2 +- .../projectiles/guns/energy/energy_gun.dm | 2 +- .../modules/projectiles/guns/pumpenergy.dm | 2 +- 34 files changed, 82 insertions(+), 59 deletions(-) diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index ff0750a28c..85a8d7a37d 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -255,7 +255,7 @@ #define COMSIG_ITEM_IMBUE_SOUL "item_imbue_soul" //return a truthy value to prevent ensouling, checked in /obj/effect/proc_holder/spell/targeted/lichdom/cast(): (mob/user) #define COMSIG_ITEM_HIT_REACT "item_hit_react" //from base of obj/item/hit_reaction(): (list/args) #define COMSIG_ITEM_WEARERCROSSED "wearer_crossed" //called on item when crossed by something (): (/atom/movable) -#define COMSIG_ITEM_WORN_OVERLAYS "item_worn_overlays" //from base of obj/item/worn_overlays(): (isinhands, icon_file, style_flags, list/overlays) +#define COMSIG_ITEM_WORN_OVERLAYS "item_worn_overlays" //from base of obj/item/worn_overlays(): (isinhands, icon_file, used_state, style_flags, list/overlays) // /obj/item/clothing signals #define COMSIG_SHOES_STEP_ACTION "shoes_step_action" //from base of obj/item/clothing/shoes/proc/step_action(): () diff --git a/code/datums/elements/polychromic.dm b/code/datums/elements/polychromic.dm index 4301a280f3..d7057cfdf7 100644 --- a/code/datums/elements/polychromic.dm +++ b/code/datums/elements/polychromic.dm @@ -6,8 +6,8 @@ /datum/element/polychromic element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH id_arg_index = 3 - var/list/overlays_by_atom = list() - var/list/overlays_states //also used for worn/held overlsays + var/overlays_states //A list or a number of states. In the latter case, the atom icon_state/item_state will be used followed by a number for the overlays. + var/list/colors_by_atom = list() //list of color strings or mutable appearance depending on the above variable. var/icon_file var/list/overlays_names //wrap numbers into text strings please. var/list/actions_by_atom = list() @@ -15,7 +15,7 @@ //item variables var/worn_file //used for boths held and worn overlays if present. -/datum/element/polychromic/Attach(datum/target, list/colors, list/states, _icon, _flags = POLYCHROMIC_ALTCLICK|POLYCHROMIC_NO_HELD, _worn, list/names = list("Primary", "Secondary", "Tertiary", "Quaternary", "Quinary", "Senary")) +/datum/element/polychromic/Attach(datum/target, list/colors, states, _icon, _flags = POLYCHROMIC_ALTCLICK|POLYCHROMIC_NO_HELD, _worn, list/names = list("Primary", "Secondary", "Tertiary", "Quaternary", "Quinary", "Senary")) . = ..() var/states_len = length(overlays_states) var/names_len = length(names) @@ -30,11 +30,17 @@ var/mut_icon = icon_file || A.icon var/list/L = list() - for(var/I in overlays_states) - var/col = popleft(colors) || "#FFFFFF" - L += mutable_appearance(mut_icon, I, color = col) - A.add_overlay(L) - overlays_by_atom[A] = L + if(islist(overlays_states)) + for(var/I in overlays_states) + var/col = popleft(colors) || "#FFFFFF" + L += mutable_appearance(mut_icon, I, color = col) + else + for(var/I in 1 to overlays_states) + var/col = LAZYACCESS(colors, I) || "#FFFFFF" + L += col + colors_by_atom[A] = L + + RegisterSignal(A, COMSIG_ATOM_UPDATE_OVERLAYS, .proc/apply_overlays) if(_flags & POLYCHROMIC_ALTCLICK) RegisterSignal(A, COMSIG_PARENT_EXAMINE, .proc/on_examine) @@ -61,40 +67,57 @@ actions_by_atom[A] = P P.Grant(A) + A.update_icon() + /datum/element/polychromic/Detach(atom/A) . = ..() - A.cut_overlay(overlays_by_atom[A]) - overlays_by_atom -= A + A.cut_overlay(colors_by_atom[A]) + colors_by_atom -= A var/datum/action/polychromic/P = actions_by_atom[A] if(P) qdel(P) actions_by_atom -= A if(poly_flags & POLYCHROMIC_ALTCLICK) - UnregisterSignal(A, list(COMSIG_PARENT_EXAMINE, COMSIG_CLICK_ALT)) + UnregisterSignal(A, list(COMSIG_PARENT_EXAMINE, COMSIG_CLICK_ALT, COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED)) -/datum/element/polychromic/proc/apply_worn_overlays(obj/item/source, isinhands, icon_file, style_flags, list/overlays) +/datum/element/polychromic/proc/apply_overlays(atom/source, list/overlays) + var/list/L = colors_by_atom[source] + if(isnum(overlays_states)) + for(var/i in 1 to overlays_states) + overlays += mutable_appearance(source.icon, "[source.icon_state]-[i]", color = L[i]) + else + overlays += colors_by_atom[source] + +/datum/element/polychromic/proc/apply_worn_overlays(obj/item/source, isinhands, icon_file, used_state, style_flags, list/overlays) if(poly_flags & (isinhands ? POLYCHROMIC_NO_HELD : POLYCHROMIC_NO_WORN)) return var/f_icon = worn_file || icon_file - var/list/L = overlays_by_atom[source] + var/list/L = colors_by_atom[source] - for(var/I in 1 to length(overlays_states)) - var/mutable_appearance/M = L[I] - overlays += mutable_appearance(f_icon, overlays_states[I], color = M.color) + if(isnum(overlays_states)) + for(var/i in 1 to overlays_states) + overlays += mutable_appearance(f_icon, "[used_state]-[i]", color = L[i]) + else + for(var/I in 1 to length(overlays_states)) + var/mutable_appearance/M = L[I] + overlays += mutable_appearance(f_icon, overlays_states[I], color = M.color) /datum/element/polychromic/proc/set_color(atom/source, mob/user) var/choice = input(user,"Polychromic options", "Recolor [source]") as null|anything in overlays_names if(!choice || QDELETED(source) || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) return - choice = overlays_names.Find(choice) var/ncolor = input(user, "Polychromic options", "Choose [choice] Color") as color|null if(!ncolor || QDELETED(source) || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) return - var/list/L = overlays_by_atom[source] + var/list/L = colors_by_atom[source] if(!L) // Ummmmmh. return - var/mutable_appearance/M = L[choice] - M.color = sanitize_hexcolor(ncolor, 6, TRUE, M.color) + var/K = L[overlays_names.Find(choice)] + if(istext(K)) + K = sanitize_hexcolor(ncolor, 6, TRUE, K) + else + var/mutable_appearance/M = K + M.color = sanitize_hexcolor(ncolor, 6, TRUE, M.color) source.update_icon() return TRUE @@ -105,7 +128,7 @@ if(!P) P = new (source) actions_by_atom[source] = P - P.check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_LYING|AB_CHECK_CONSCIOUS + P.check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_CONSCIOUS RegisterSignal(P, COMSIG_ACTION_TRIGGER, .proc/activate_action) P.Grant(user) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 7a155ca932..5d3725200c 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -428,9 +428,9 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) //Overlays for the worn overlay so you can overlay while you overlay //eg: ammo counters, primed grenade flashing, etc. //"icon_file" is used automatically for inhands etc. to make sure it gets the right inhand file -/obj/item/proc/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) +/obj/item/proc/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = list() - SEND_SIGNAL(src, COMSIG_ITEM_WORN_OVERLAYS, isinhands, icon_file, style_flags, .) + SEND_SIGNAL(src, COMSIG_ITEM_WORN_OVERLAYS, isinhands, icon_file, used_state, style_flags, .) //sometimes we only want to grant the item's action if it's equipped in a specific slot. /obj/item/proc/item_action_slot_check(slot, mob/user, datum/action/A) diff --git a/code/game/objects/items/RCL.dm b/code/game/objects/items/RCL.dm index 9513519fa9..5444b0c557 100644 --- a/code/game/objects/items/RCL.dm +++ b/code/game/objects/items/RCL.dm @@ -113,7 +113,7 @@ cable_overlay.color = GLOB.cable_colors[colors[current_color_index]] . += cable_overlay -/obj/item/twohanded/rcl/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/twohanded/rcl/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands || !(loaded?.amount)) return diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index 4d275e2034..65c188918f 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -309,7 +309,7 @@ block_chance = 50 var/shield_icon = "shield-red" -/obj/item/nullrod/staff/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/nullrod/staff/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = list() if(isinhands) . += mutable_appearance('icons/effects/effects.dmi', shield_icon, MOB_LAYER + 0.01) diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index aba07c9120..83d7ec1b6d 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -337,7 +337,7 @@ . = ..() . += "Alt-click to recolor it." -/obj/item/melee/transforming/energy/sword/cx/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/melee/transforming/energy/sword/cx/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(active) if(isinhands) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 4e03d029a8..3ee4fbead8 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -22,7 +22,7 @@ for(var/obj/item/I in contents) . += I.get_belt_overlay() -/obj/item/storage/belt/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/storage/belt/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands && onmob_overlays) for(var/obj/item/I in contents) diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index c1cbf534ca..5210f00e99 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -376,7 +376,7 @@ filling.color = mix_color_from_reagents(reagents.reagent_list) add_overlay(filling) -/obj/item/reagent_containers/chemtank/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) //apply chemcolor and level +/obj/item/reagent_containers/chemtank/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) //apply chemcolor and level . = list() //inhands + reagent_filling if(!isinhands && reagents.total_volume) diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm index 0d2892cb4a..24fe73ba12 100644 --- a/code/game/objects/items/tools/screwdriver.dm +++ b/code/game/objects/items/tools/screwdriver.dm @@ -53,7 +53,7 @@ base_overlay.appearance_flags = RESET_COLOR . += base_overlay -/obj/item/screwdriver/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) +/obj/item/screwdriver/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = list() if(isinhands && random_color) var/mutable_appearance/M = mutable_appearance(icon_file, "screwdriver_head") diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index ba51fa3d65..08b87fe1d6 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -352,7 +352,7 @@ update_light() return TRUE -/obj/item/toy/sword/cx/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/toy/sword/cx/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(active) if(isinhands) diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm index 11a06e149d..7f2e322c69 100644 --- a/code/game/objects/items/twohanded.dm +++ b/code/game/objects/items/twohanded.dm @@ -530,7 +530,7 @@ update_light() return TRUE -/obj/item/twohanded/dualsaber/hypereutactic/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/twohanded/dualsaber/hypereutactic/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(isinhands) var/mutable_appearance/gem_inhand = mutable_appearance(icon_file, "hypereutactic_gem") diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 8dc7caa5ad..7859b888f2 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -252,7 +252,7 @@ LINEN BINS add_overlay(g_mouth) add_overlay(g_eyes) -/obj/item/bedsheet/gondola/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) +/obj/item/bedsheet/gondola/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands) . += mutable_appearance(icon_file, g_mouth) diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm index b12c72b4af..b0ba3ccaaa 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm @@ -103,7 +103,7 @@ . = ..() addtimer(CALLBACK(src, .proc/check_on_mob, user), 1) //dropped is called before the item is out of the slot, so we need to check slightly later -/obj/item/clockwork/slab/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) +/obj/item/clockwork/slab/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = list() if(isinhands && item_state && inhand_overlay) var/mutable_appearance/M = mutable_appearance(icon_file, "slab_[inhand_overlay]") diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index 3dc199b56d..888e99f1ad 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -425,7 +425,7 @@ return 1 return 0 -/obj/item/clothing/suit/hooded/cultrobes/cult_shield/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/clothing/suit/hooded/cultrobes/cult_shield/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = list() if(!isinhands && current_charges) . += mutable_appearance('icons/effects/cult_effects.dmi', "shield-cult", MOB_LAYER + 0.01) diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 5ae86636d6..2b6036498e 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -333,7 +333,7 @@ add_atom_colour("#[user.eye_color]", FIXED_COLOUR_PRIORITY) colored_before = TRUE -/obj/item/clothing/glasses/sunglasses/blindfold/white/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) +/obj/item/clothing/glasses/sunglasses/blindfold/white/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = list() if(!isinhands && ishuman(loc) && !colored_before) var/mob/living/carbon/human/H = loc diff --git a/code/modules/clothing/gloves/_gloves.dm b/code/modules/clothing/gloves/_gloves.dm index 0729317eac..21ebeaa2bb 100644 --- a/code/modules/clothing/gloves/_gloves.dm +++ b/code/modules/clothing/gloves/_gloves.dm @@ -26,7 +26,7 @@ user.visible_message("\the [src] are forcing [user]'s hands around [user.p_their()] neck! It looks like the gloves are possessed!") return OXYLOSS -/obj/item/clothing/gloves/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) +/obj/item/clothing/gloves/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = list() if(!isinhands) if(damaged_clothes) diff --git a/code/modules/clothing/head/_head.dm b/code/modules/clothing/head/_head.dm index d599fbf6f7..121217c128 100644 --- a/code/modules/clothing/head/_head.dm +++ b/code/modules/clothing/head/_head.dm @@ -48,7 +48,7 @@ -/obj/item/clothing/head/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) +/obj/item/clothing/head/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = list() if(!isinhands) if(damaged_clothes) diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index e7a8243889..9715709e00 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -125,7 +125,7 @@ playsound(src, 'sound/mecha/mechmove03.ogg', 50, TRUE) //Visors don't just come from nothing update_icon() -/obj/item/clothing/head/hardhat/weldhat/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/clothing/head/hardhat/weldhat/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands) . += mutable_appearance('icons/mob/head.dmi', "weldhelmet") diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 4be949a65e..ec5573e4d7 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -208,7 +208,7 @@ M.color = hair_color add_overlay(M) -/obj/item/clothing/head/wig/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) +/obj/item/clothing/head/wig/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = list() if(!isinhands) var/datum/sprite_accessory/S = GLOB.hair_styles_list[hair_style] diff --git a/code/modules/clothing/masks/_masks.dm b/code/modules/clothing/masks/_masks.dm index 5019633cf0..ac087fd9e2 100644 --- a/code/modules/clothing/masks/_masks.dm +++ b/code/modules/clothing/masks/_masks.dm @@ -28,7 +28,7 @@ /obj/item/clothing/mask/proc/handle_speech() -/obj/item/clothing/mask/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) +/obj/item/clothing/mask/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = list() if(!isinhands) if(body_parts_covered & HEAD) diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 2b43460257..cfc806b4db 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -6,7 +6,7 @@ strip_delay = 40 equip_delay_other = 40 -/obj/item/clothing/neck/worn_overlays(isinhands = FALSE, icon_flag, style_flags = NONE) +/obj/item/clothing/neck/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = list() if(!isinhands) if(body_parts_covered & HEAD) @@ -192,7 +192,7 @@ tagname = stripped_input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot", MAX_NAME_LEN) name = "[initial(name)] - [tagname]" -/obj/item/clothing/neck/petcollar/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/clothing/neck/petcollar/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(hasprimary | hassecondary | hastertiary) if(!isinhands) //prevents the worn sprites from showing up if you're just holding them diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index 4c6d3a8f88..7ac4f062f3 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -49,7 +49,7 @@ last_bloodtype = blood_dna[blood_dna[blood_dna.len]]//trust me this works last_blood_DNA = blood_dna[blood_dna.len] -/obj/item/clothing/shoes/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) +/obj/item/clothing/shoes/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = list() if(!isinhands) var/bloody = FALSE diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index d9e4f17649..a391a3807f 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -793,7 +793,7 @@ var/mob/living/carbon/human/C = loc C.update_inv_wear_suit() -/obj/item/clothing/suit/space/hardsuit/shielded/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/clothing/suit/space/hardsuit/shielded/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands) var/file2use = style_flags & STYLE_ALL_TAURIC ? 'modular_citadel/icons/mob/64x32_effects.dmi' : 'icons/effects/effects.dmi' @@ -956,7 +956,7 @@ add_overlay(helm_overlay) -/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) +/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands) var/mutable_appearance/energy_overlay = mutable_appearance(icon_file, "knight_cydonia_overlay", ABOVE_LIGHTING_LAYER) @@ -993,7 +993,7 @@ add_overlay(suit_overlay) -/obj/item/clothing/suit/space/hardsuit/lavaknight/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) +/obj/item/clothing/suit/space/hardsuit/lavaknight/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands) var/mutable_appearance/energy_overlay = mutable_appearance(icon_file, "knight_cydonia_overlay", ABOVE_LIGHTING_LAYER) diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index fee8dbce33..f17eb91b74 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -67,7 +67,7 @@ var/datum/action/A=X A.UpdateButtonIcon() -/obj/item/clothing/head/helmet/space/plasmaman/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/clothing/head/helmet/space/plasmaman/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands && on) . += mutable_appearance(icon_file, light_overlay) diff --git a/code/modules/clothing/suits/_suits.dm b/code/modules/clothing/suits/_suits.dm index 1b2080feb1..3d312e260a 100644 --- a/code/modules/clothing/suits/_suits.dm +++ b/code/modules/clothing/suits/_suits.dm @@ -11,7 +11,7 @@ var/suittoggled = FALSE mutantrace_variation = STYLE_DIGITIGRADE -/obj/item/clothing/suit/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) +/obj/item/clothing/suit/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands) if(damaged_clothes) diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 6f61bf56cb..febecd9f71 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -987,7 +987,7 @@ item_color = "winterhood_poly" item_state = "winterhood_poly" -/obj/item/clothing/head/hooded/winterhood/polychromic/worn_overlays(isinhands, icon_file, style_flags = NONE) //this is where the main magic happens. +/obj/item/clothing/head/hooded/winterhood/polychromic/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) //this is where the main magic happens. . = ..() if(suit.hasprimary | suit.hassecondary) if(!isinhands) //prevents the worn sprites from showing up if you're just holding them @@ -1000,7 +1000,7 @@ secondary_worn.color = suit.secondary_color . += secondary_worn -/obj/item/clothing/suit/hooded/wintercoat/polychromic/worn_overlays(isinhands, icon_file, style_flags = NONE) //this is where the main magic happens. +/obj/item/clothing/suit/hooded/wintercoat/polychromic/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) //this is where the main magic happens. . = ..() if(hasprimary | hassecondary | hastertiary) if(!isinhands) //prevents the worn sprites from showing up if you're just holding them diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index 63e3a63968..d0cfef4f71 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -16,7 +16,7 @@ var/mutable_appearance/accessory_overlay mutantrace_variation = STYLE_DIGITIGRADE -/obj/item/clothing/under/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) +/obj/item/clothing/under/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) . = list() if(!isinhands) if(damaged_clothes) diff --git a/code/modules/clothing/under/polychromic_clothes.dm b/code/modules/clothing/under/polychromic_clothes.dm index 53011d42d1..e56e1eb265 100644 --- a/code/modules/clothing/under/polychromic_clothes.dm +++ b/code/modules/clothing/under/polychromic_clothes.dm @@ -27,7 +27,7 @@ can_adjust = FALSE mutantrace_variation = NONE //Not all clothes are currently digi-compatible (only the shorts are as of time of writing) -/obj/item/clothing/under/polychromic/worn_overlays(isinhands, icon_file, style_flags = NONE) //this is where the main magic happens. +/obj/item/clothing/under/polychromic/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) //this is where the main magic happens. . = ..() if(hasprimary | hassecondary | hastertiary) if(!isinhands) //prevents the worn sprites from showing up if you're just holding them diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm index b163c6ba97..3505a35487 100644 --- a/code/modules/food_and_drinks/pizzabox.dm +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -86,7 +86,7 @@ tag_overlay.pixel_y = boxes.len * 3 add_overlay(tag_overlay) -/obj/item/pizzabox/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/pizzabox/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = list() var/current_offset = 2 if(isinhands) diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index 5165d95340..d3bf4368f7 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -117,7 +117,7 @@ glass_overlay.appearance_flags = RESET_COLOR add_overlay(glass_overlay) -/obj/item/clothing/head/helmet/space/hostile_environment/worn_overlays(isinhands, icon_file, style_flags = NONE) +/obj/item/clothing/head/helmet/space/hostile_environment/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(!isinhands) var/mutable_appearance/M = mutable_appearance('icons/mob/head.dmi', "hostile_env_glass") diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index f1b1570e24..fa138e38f8 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -593,7 +593,7 @@ generate/load female uniform sprites matching all previously decided variables //Get the overlays for this item when it's being worn //eg: ammo counters, primed grenade flashes, etc. - var/list/worn_overlays = worn_overlays(isinhands, file2use, style_flags) + var/list/worn_overlays = worn_overlays(isinhands, file2use, state, style_flags) if(worn_overlays && worn_overlays.len) standing.overlays.Add(worn_overlays) diff --git a/modular_citadel/code/modules/clothing/suits/polychromic_cloaks.dm b/modular_citadel/code/modules/clothing/suits/polychromic_cloaks.dm index ade6cee3ba..ac7d2e80b0 100644 --- a/modular_citadel/code/modules/clothing/suits/polychromic_cloaks.dm +++ b/modular_citadel/code/modules/clothing/suits/polychromic_cloaks.dm @@ -13,7 +13,7 @@ secondary_color = "#FFFFFF" tertiary_color = "#808080" -/obj/item/clothing/neck/cloak/polychromic/worn_overlays(isinhands, icon_file, style_flags = NONE) //this is where the main magic happens. Also mandates that ALL polychromic stuff MUST USE alternate_worn_icon +/obj/item/clothing/neck/cloak/polychromic/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) //this is where the main magic happens. Also mandates that ALL polychromic stuff MUST USE alternate_worn_icon . = ..() if(hasprimary | hassecondary | hastertiary) if(!isinhands) //prevents the worn sprites from showing up if you're just holding them diff --git a/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm b/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm index 49a8a26f35..49d48e0000 100644 --- a/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/modular_citadel/code/modules/projectiles/guns/energy/energy_gun.dm @@ -39,7 +39,7 @@ obj/item/gun/energy/e_gun/cx/AltClick(mob/living/user) body_color = sanitize_hexcolor(body_color_input, desired_format=6, include_crunch=1) update_icon() -obj/item/gun/energy/e_gun/cx/worn_overlays(isinhands, icon_file, style_flags = NONE) +obj/item/gun/energy/e_gun/cx/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) . = ..() if(isinhands) var/mutable_appearance/body_inhand = mutable_appearance(icon_file, "cxe_body") diff --git a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm index f7c0b343c3..fcead7f179 100644 --- a/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm +++ b/modular_citadel/code/modules/projectiles/guns/pumpenergy.dm @@ -87,7 +87,7 @@ . = ..() . += "Alt-click to change firing modes." -/obj/item/gun/energy/pumpaction/worn_overlays(isinhands, icon_file, style_flags = NONE) //ammo counter for inhands +/obj/item/gun/energy/pumpaction/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) //ammo counter for inhands . = ..() var/ratio = CEILING((cell.charge / cell.maxcharge) * charge_sections, 1) var/obj/item/ammo_casing/energy/shot = ammo_type[current_firemode_index] From a43f9ec7be659659689c335f08055d81fdb0c101 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 10 Mar 2020 19:57:30 -0700 Subject: [PATCH 029/190] refactor time fuck you --- code/modules/antagonists/clockcult/clockcult.dm | 4 +++- code/modules/antagonists/cult/cult.dm | 9 ++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/code/modules/antagonists/clockcult/clockcult.dm b/code/modules/antagonists/clockcult/clockcult.dm index 8ef8d2e11c..a6840f3d85 100644 --- a/code/modules/antagonists/clockcult/clockcult.dm +++ b/code/modules/antagonists/clockcult/clockcult.dm @@ -5,7 +5,7 @@ antagpanel_category = "Clockcult" job_rank = ROLE_SERVANT_OF_RATVAR antag_moodlet = /datum/mood_event/cult - var/datum/action/innate/hierophant/hierophant_network = new() + var/datum/action/innate/hierophant/hierophant_network = new var/datum/team/clockcult/clock_team var/make_team = TRUE //This should be only false for tutorial scarabs var/neutered = FALSE //can not use round ending, gibbing, converting, or similar things with unmatched round impact @@ -22,6 +22,8 @@ /datum/antagonist/clockcult/neutered/traitor ignore_eligibility_check = TRUE ignore_holy_water = TRUE + show_in_roundend = FALSE + make_team = FALSE /datum/antagonist/clockcult/Destroy() qdel(hierophant_network) diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index 5ae1ea0711..2eb89a66e9 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -10,8 +10,9 @@ var/datum/action/innate/cult/blood_magic/magic = new job_rank = ROLE_CULTIST var/ignore_implant = FALSE + var/make_team = TRUE var/give_equipment = FALSE - var/datum/team/cult/cult_team + var/datum/team/cult/_cult_team var/neutered = FALSE //can not use round ending, gibbing, converting, or similar things with unmatched round impact var/ignore_eligibility_checks = FALSE var/ignore_holy_water = FALSE @@ -22,12 +23,14 @@ /datum/antagonist/cult/neutered/traitor ignore_eligibility_checks = TRUE ignore_holy_water = TRUE + show_in_roundend = FALSE + make_team = FALSE /datum/antagonist/cult/get_team() return cult_team /datum/antagonist/cult/create_team(datum/team/cult/new_team) - if(!new_team) + if(!new_team && make_team) //todo remove this and allow admin buttons to create more than one cult for(var/datum/antagonist/cult/H in GLOB.antagonists) if(!H.owner) @@ -38,7 +41,7 @@ cult_team = new /datum/team/cult cult_team.setup_objectives() return - if(!istype(new_team)) + if(make_team && !istype(new_team)) stack_trace("Wrong team type passed to [type] initialization.") cult_team = new_team From 18471be4ce24f79831764a4548ea5a554d0aca93 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 10 Mar 2020 20:11:18 -0700 Subject: [PATCH 030/190] cult team --- code/_onclick/hud/alert.dm | 2 +- code/game/gamemodes/cult/cult.dm | 2 +- code/modules/antagonists/cult/blood_magic.dm | 2 +- code/modules/antagonists/cult/cult.dm | 8 ++++---- code/modules/antagonists/cult/cult_comms.dm | 20 +++++++++++++++---- code/modules/antagonists/cult/ritual.dm | 4 ++-- code/modules/antagonists/cult/runes.dm | 6 ++++++ .../antagonists/wizard/equipment/soulstone.dm | 2 +- .../mob/living/simple_animal/constructs.dm | 3 +++ code/modules/power/singularity/narsie.dm | 3 ++- 10 files changed, 37 insertions(+), 15 deletions(-) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index bdc6ea2980..7c116cc606 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -334,7 +334,7 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." return var/datum/antagonist/cult/antag = mob_viewer.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(!antag) + if(!antag?.cult_team) return var/datum/objective/sacrifice/sac_objective = locate() in antag.cult_team.objectives diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 6329f5ad18..8ec4123201 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -96,7 +96,7 @@ add_cultist(cult_mind, 0, equip=TRUE) if(!main_cult) var/datum/antagonist/cult/C = cult_mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(C && C.cult_team) + if(C?.cult_team) main_cult = C.cult_team ..() diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 774a978886..46ecb130f5 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -439,7 +439,7 @@ "A feeling of warmth washes over you, rays of holy light surround your body and protect you from the flash of light!") else // cult doesn't stun any longer when halos are out, instead it does burn damage + knockback! var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(user_antag.cult_team.cult_ascendent) + if(user_antag.cult_team?.cult_ascendent) if(!iscultist(L)) L.adjustFireLoss(20) if(L.move_resist < MOVE_FORCE_STRONG) diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index 2eb89a66e9..18c39c05b4 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -12,7 +12,7 @@ var/ignore_implant = FALSE var/make_team = TRUE var/give_equipment = FALSE - var/datum/team/cult/_cult_team + var/datum/team/cult/cult_team var/neutered = FALSE //can not use round ending, gibbing, converting, or similar things with unmatched round impact var/ignore_eligibility_checks = FALSE var/ignore_holy_water = FALSE @@ -122,7 +122,7 @@ if(ishuman(current)) magic.Grant(current) current.throw_alert("bloodsense", /obj/screen/alert/bloodsense) - if(cult_team.cult_risen) + if(cult_team?.cult_risen) cult_team.rise(current) if(cult_team.cult_ascendent) cult_team.ascend(current) @@ -155,7 +155,7 @@ owner.current.visible_message("[owner.current] looks like [owner.current.p_theyve()] just reverted to [owner.current.p_their()] old faith!", null, null, null, owner.current) to_chat(owner.current, "An unfamiliar white light flashes through your mind, cleansing the taint of the Geometer and all your memories as her servant.") owner.current.log_message("has renounced the cult of Nar'Sie!", LOG_ATTACK, color="#960000") - if(cult_team.blood_target && cult_team.blood_target_image && owner.current.client) + if(cult_team?.blood_target && cult_team.blood_target_image && owner.current.client) owner.current.client.images -= cult_team.blood_target_image . = ..() @@ -217,7 +217,7 @@ throwing.Grant(current) current.update_action_buttons_icon() current.apply_status_effect(/datum/status_effect/cult_master) - if(cult_team.cult_risen) + if(cult_team?.cult_risen) cult_team.rise(current) if(cult_team.cult_ascendent) cult_team.ascend(current) diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm index 761412e9f8..da03b6dc1c 100644 --- a/code/modules/antagonists/cult/cult_comms.dm +++ b/code/modules/antagonists/cult/cult_comms.dm @@ -74,7 +74,7 @@ /datum/action/innate/cult/mastervote/IsAvailable() var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(!C || C.cult_team.cult_vote_called || !ishuman(owner)) + if(!C?.cult_team || C.cult_team.cult_vote_called || !ishuman(owner)) return FALSE return ..() @@ -82,6 +82,9 @@ var/choice = alert(owner, "The mantle of leadership is heavy. Success in this role requires an expert level of communication and experience. Are you sure?",, "Yes", "No") if(choice == "Yes" && IsAvailable()) var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) + if(!C.cult_team) + to_chat(owner, "Do you not alreaady lead yourself?") + returns pollCultists(owner,C.cult_team) /proc/pollCultists(var/mob/living/Nominee,datum/team/cult/team) //Cult Master Poll @@ -151,6 +154,9 @@ var/datum/antagonist/cult/antag = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) if(!antag) return + if(!antag.cult_team) + to_chat(owner, "You have no team. You are alone.") + return for(var/i in 1 to 4) chant(i) var/list/destinations = list() @@ -261,7 +267,10 @@ return FALSE var/datum/antagonist/cult/C = caller.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - + if(!C.cult_team) + to_chat(ranged_ability_user, "What is the point of marking a target for yourself?") + remove_ranged_ability() + return if(target in view(7, get_turf(ranged_ability_user))) if(C.cult_team.blood_target) to_chat(ranged_ability_user, "The cult has already designated a target!") @@ -330,8 +339,11 @@ /datum/action/innate/cult/ghostmark/Activate() var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) + if(!C.cult_team) + to_chat(owmer, "You are alone. You do not have a team.") + return if(C.cult_team.blood_target) - if(cooldown>world.time) + if(cooldown > world.time) reset_blood_target(C.cult_team) to_chat(owner, "You have cleared the cult's blood target!") deltimer(C.cult_team.blood_target_reset_timer) @@ -339,7 +351,7 @@ else to_chat(owner, "The cult has already designated a target!") return - if(cooldown>world.time) + if(cooldown > world.time) to_chat(owner, "You aren't ready to place another blood mark yet!") return target = owner.orbiting?.parent || get_turf(owner) diff --git a/code/modules/antagonists/cult/ritual.dm b/code/modules/antagonists/cult/ritual.dm index 769f2827dc..40804ccc24 100644 --- a/code/modules/antagonists/cult/ritual.dm +++ b/code/modules/antagonists/cult/ritual.dm @@ -87,8 +87,8 @@ This file contains the cult dagger and rune list code to_chat(user, "Only one ritual site remains - it must be reserved for the final summoning!") return if(ispath(rune_to_scribe, /obj/effect/rune/narsie)) - var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team.objectives - var/datum/objective/sacrifice/sac_objective = locate() in user_antag.cult_team.objectives + var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team?.objectives + var/datum/objective/sacrifice/sac_objective = locate() in user_antag.cult_team?.objectives if(!summon_objective) to_chat(user, "Nar'Sie does not wish to be summoned!") return diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index f4f2dd2103..43ca43d04c 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -485,6 +485,9 @@ structure_check() searches for nearby cultist structures required for the invoca fail_invoke() return var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE) + if(!user_antag.cult_team) + to_chat(user, "You can't seem to make the arcane links to your fellows that you'd need to use this.") + return var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team.objectives var/area/place = get_area(src) if(!(place in summon_objective.summon_spots)) @@ -955,6 +958,9 @@ structure_check() searches for nearby cultist structures required for the invoca var/area/place = get_area(src) var/mob/living/user = invokers[1] var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE) + if(!user_antag.cult_team) + to_chat(user, "You can't seem to make the arcane links to your fellows that you'd need to use this.") + return var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team.objectives if(summon_objective.summon_spots.len <= 1) to_chat(user, "Only one ritual site remains - it must be reserved for the final summoning!") diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm index 59b9aa33d5..d7f1046cd7 100644 --- a/code/modules/antagonists/wizard/equipment/soulstone.dm +++ b/code/modules/antagonists/wizard/equipment/soulstone.dm @@ -145,7 +145,7 @@ if("VICTIM") var/mob/living/carbon/human/T = target var/datum/antagonist/cult/C = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(C && C.cult_team.is_sacrifice_target(T.mind)) + if(C && C.cult_team?.is_sacrifice_target(T.mind)) if(iscultist(user)) to_chat(user, "\"This soul is mine. SACRIFICE THEM!\"") else diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index 708c9ea2cd..6bcaea9b4a 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -389,6 +389,9 @@ var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult) if(!C) return + if(!C.cult_team) + to_chat(the_construct, "You are alone, and have no team.") + return var/datum/objective/eldergod/summon_objective = locate() in C.cult_team.objectives if(summon_objective.check_completion()) diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index a073997b9d..c471047682 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -51,7 +51,8 @@ for(var/datum/antagonist/cult/C in GLOB.antagonists) if(!C.owner) continue - all_cults |= C.cult_team + if(C.cult_team) + all_cults |= C.cult_team for(var/datum/team/cult/T in all_cults) deltimer(T.blood_target_reset_timer) T.blood_target = src From 3071dec0d6bcd7daf63f37f11747e6b38e152087 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 10 Mar 2020 20:14:31 -0700 Subject: [PATCH 031/190] probably needs a testmerge --- code/modules/antagonists/cult/cult_comms.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm index da03b6dc1c..8021443217 100644 --- a/code/modules/antagonists/cult/cult_comms.dm +++ b/code/modules/antagonists/cult/cult_comms.dm @@ -84,7 +84,7 @@ var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) if(!C.cult_team) to_chat(owner, "Do you not alreaady lead yourself?") - returns + return pollCultists(owner,C.cult_team) /proc/pollCultists(var/mob/living/Nominee,datum/team/cult/team) //Cult Master Poll @@ -340,7 +340,7 @@ /datum/action/innate/cult/ghostmark/Activate() var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) if(!C.cult_team) - to_chat(owmer, "You are alone. You do not have a team.") + to_chat(owner, "You are alone. You do not have a team.") return if(C.cult_team.blood_target) if(cooldown > world.time) From aad3953355503bd5679d551a6867392d0c8117aa Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 12 Mar 2020 20:52:07 -0400 Subject: [PATCH 032/190] Update all_nodes.dm --- code/modules/research/techweb/all_nodes.dm | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 78643255d0..2857e447e0 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -74,20 +74,12 @@ design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibrillator", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag", "bloodbankgen", "telescopiciv", "medspray") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) -/datum/techweb_node/cadaver_management - id = "cadaver_management" - display_name = "Cadaver Management" - description = "What you use when it's too late." - prereq_ids = list("biotech", "adv_engi") - design_ids = list("bodybag", "containmentbodybag", "harvester") - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) - /datum/techweb_node/adv_biotech id = "adv_biotech" display_name = "Advanced Biotechnology" description = "Advanced Biotechnology" prereq_ids = list("biotech") - design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "meta_beaker", "healthanalyzer_advanced", "holobarrier_med", "defibrillator_compact", "smartdartgun", "medicinalsmartdart", "pHmeter") + design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "meta_beaker", "healthanalyzer_advanced", "harvester", "holobarrier_med", "defibrillator_compact", "smartdartgun", "medicinalsmartdart", "pHmeter") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) /datum/techweb_node/bio_process From 7b02915cc7d0b4de13ffdd765ad423ec650f31d4 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 12 Mar 2020 21:24:20 -0400 Subject: [PATCH 033/190] Update sheet_types.dm --- code/game/objects/items/stacks/sheets/sheet_types.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 55a28645fc..33e3224efb 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -185,7 +185,7 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ new /datum/stack_recipe("freezer crate", /obj/structure/closet/crate/freezer, 8, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("blood bag crate", /obj/structure/closet/crate/freezer/blood, 8, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("surplus limbs crate", /obj/structure/closet/crate/freezer/surplus_limbs, 8, time = 50, one_per_turf = 1, on_floor = 1), \ - new /datum/stack_recipe("radiation containment crate", /obj/structure/closet/crate/radiation, 20, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("radiation containment crate", /obj/structure/closet/crate/radiation, 5, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("hydroponics crate", /obj/structure/closet/crate/hydroponics, 5, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("engineering crate", /obj/structure/closet/crate/engineering, 5, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("eletrical crate", /obj/structure/closet/crate/engineering/electrical, 5, time = 50, one_per_turf = 1, on_floor = 1), \ From a2baa47600a4ec16c531c981820036c98822a181 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 12 Mar 2020 21:27:12 -0400 Subject: [PATCH 034/190] 50 commits of hell --- code/game/objects/items/stacks/sheets/sheet_types.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 33e3224efb..56482499a9 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -185,7 +185,7 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ new /datum/stack_recipe("freezer crate", /obj/structure/closet/crate/freezer, 8, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("blood bag crate", /obj/structure/closet/crate/freezer/blood, 8, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("surplus limbs crate", /obj/structure/closet/crate/freezer/surplus_limbs, 8, time = 50, one_per_turf = 1, on_floor = 1), \ - new /datum/stack_recipe("radiation containment crate", /obj/structure/closet/crate/radiation, 5, time = 50, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("radiation containment crate", /obj/structure/closet/crate/radiation, 8, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("hydroponics crate", /obj/structure/closet/crate/hydroponics, 5, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("engineering crate", /obj/structure/closet/crate/engineering, 5, time = 50, one_per_turf = 1, on_floor = 1), \ new /datum/stack_recipe("eletrical crate", /obj/structure/closet/crate/engineering/electrical, 5, time = 50, one_per_turf = 1, on_floor = 1), \ From 8c1f1cb5d0cc62e2f30231b4cc68032fde44eaa2 Mon Sep 17 00:00:00 2001 From: Seris02 Date: Sat, 14 Mar 2020 11:50:32 +0800 Subject: [PATCH 035/190] merge fixes --- icons/mob/feet.dmi | Bin 21180 -> 22505 bytes icons/mob/feet_digi.dmi | Bin 27423 -> 28901 bytes icons/obj/clothing/shoes.dmi | Bin 15994 -> 16721 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/feet.dmi b/icons/mob/feet.dmi index 2774976b26c08696d3940895dd55d7d3247bf052..123525d49808aa7ae8dd3b06e89b65738532776f 100644 GIT binary patch literal 22505 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 literal 21180 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%0Ag(KoW8Wk0+yqTwo> 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 literal 27423 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 sb@FL`B6udgO48c8OaYI5CR483qnHy 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 F{{eH_t6%^C literal 15994 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

HyLiM#vLZ~{a30(FP; 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 Date: Wed, 18 Mar 2020 22:41:21 +0200 Subject: [PATCH 036/190] Argh --- code/__HELPERS/unsorted.dm | 10 ++-- .../game/gamemodes/bloodsucker/bloodsucker.dm | 10 +--- .../bloodsucker/bloodsucker_life.dm | 7 +-- .../bloodsucker/datum_bloodsucker.dm | 9 +++- .../bloodsucker/objects/bloodsucker_crypt.dm | 44 +++++++++------- .../food_and_drinks/food/snacks_bread.dm | 4 +- .../mining/equipment/regenerative_core.dm | 2 +- .../chemistry/reagents/food_reagents.dm | 52 ++++++++----------- .../code/modules/reagents/objects/clothes.dm | 2 +- 9 files changed, 70 insertions(+), 70 deletions(-) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 4193e813fa..50966b797c 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1566,16 +1566,16 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) //Checks to see if either the victim has a garlic necklace or garlic in their blood /proc/sucking_checks(var/mob/living/carbon/target, check_neck, check_blood) - //Byppass this if the target isnt carbon. - if(!iscarbon) + //Bypass this if the target isnt carbon. + if(!iscarbon(target)) return TRUE if(check_neck) if(istype(target.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) - to_chat(owner, "[victim] is wearing a garlic clove around their neck! You cant drink from them while it is on them!") + to_chat(src, "[target] is wearing a garlic clove around their neck! You cant drink from them while it is on them!") return FALSE if(check_blood) if(target.reagents.has_reagent(/datum/reagent/consumable/garlic)) - to_chat(target, "[H] tries to bite you, but recoils in disgust!") - to_chat(owner, "[victim] reeks of garlic! you can't bring yourself to drain such tainted blood.") + to_chat(target, "[src] tries to bite you, but recoils in disgust!") + to_chat(src, "[target] reeks of garlic! you can't bring yourself to drain such tainted blood.") return FALSE return TRUE diff --git a/code/game/gamemodes/bloodsucker/bloodsucker.dm b/code/game/gamemodes/bloodsucker/bloodsucker.dm index 0796fc3c4c..6315ea525b 100644 --- a/code/game/gamemodes/bloodsucker/bloodsucker.dm +++ b/code/game/gamemodes/bloodsucker/bloodsucker.dm @@ -248,11 +248,11 @@ // WHEN YOU DELETE THE ABOVE: Remove the 3 second timer on converting the vassal too. return FALSE -/datum/game_mode/proc/make_vassal(/mob/living/target, /datum/mind/creator) +/datum/game_mode/proc/make_vassal(var/mob/living/target, var/datum/mind/creator) if(!can_make_vassal(target, creator)) return FALSE // Make Vassal - var/datum/antagonist/vassal/V = new (target.mind) + var/datum/antagonist/vassal/V = new(target.mind) var/datum/antagonist/bloodsucker/B = creator.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) V.master = B target.mind.add_antag_datum(V, V.master.get_team()) @@ -265,12 +265,6 @@ /datum/game_mode/proc/remove_vassal(datum/mind/vassal) vassal.remove_antag_datum(ANTAG_DATUM_VASSAL) - -/datum/game_mode/proc/count_vassals(datum/mind/master) - var/datum/antagonist/bloodsucker/B = master.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) - var/vassal_amount - len(B.vassals) - return vassal_amount \ No newline at end of file diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm index 4101d55df1..11d94975b3 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm @@ -82,15 +82,16 @@ /datum/antagonist/bloodsucker/proc/HandleHealing(mult = 1) // NOTE: Mult of 0 is just a TEST to see if we are injured and need to go into Torpor! //It is called from your coffin on close (by you only) - if(poweron_masquerade == TRUE || owner.current.AmStaked() || owner?.reagents?.has_reagent(/datum/reagent/consumable/garlic) + if(poweron_masquerade == TRUE || owner.current.AmStaked() || owner.current.reagents?.has_reagent(/datum/reagent/consumable/garlic)) return FALSE owner.current.adjustStaminaLoss(-1.5 + (regenRate * -7) * mult, 0) // Humans lose stamina damage really quickly. Vamps should heal more. owner.current.adjustCloneLoss(-0.1 * (regenRate * 2) * mult, 0) owner.current.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1 * (regenRate * 4) * mult) //adjustBrainLoss(-1 * (regenRate * 4) * mult, 0) // No Bleeding - if(ishuman(owner.current) && bleed_rate => 0) //NOTE Current bleeding is horrible, not to count the amount of blood ballistics delete. + if(ishuman(owner.current)) //NOTE Current bleeding is horrible, not to count the amount of blood ballistics delete. var/mob/living/carbon/human/H = owner.current - H.bleed_rate =- 1 + if(H.bleed_rate > 0) //Only heal bleeding if we are actually bleeding + H.bleed_rate =- 0.5 + regenRate * mult if(iscarbon(owner.current)) // Damage Heal: Do I have damage to ANY bodypart? var/mob/living/carbon/C = owner.current var/costMult = 1 // Coffin makes it cheaper diff --git a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm index 19a7a2889e..28aef3b6d4 100644 --- a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm +++ b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm @@ -341,10 +341,10 @@ // Assign True Reputation if(vamplevel == 4) SelectReputation(am_fledgling = FALSE, forced = TRUE) - to_chat(owner.current, "You are now a rank [vamplevel] Bloodsucker. Your strength, health, feed rate, regen rate, and maximum blood have all increased!") + to_chat(owner.current, "You are now a rank [vamplevel] Bloodsucker. Your strength, health, feed rate, regen rate, can have up to [vamplevel - count_vassals()] vassals, and maximum blood have all increased!") to_chat(owner.current, "Your existing powers have all ranked up as well!") update_hud(TRUE) - owner.current.playsound_local(null, 'sound/effects/pope_entry.ogg', 25, 1) // Play THIS sound for user only. The "null" is where turf would go if a location was needed. Null puts it right in their head. + owner.current.playsound_local(null, 'sound/effects/pope_entry.ogg', 25, TRUE, pressure_affected = FALSE) //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -768,3 +768,8 @@ /obj/screen/bloodsucker/sunlight_counter/update_counter(value, valuecolor) ..() maptext = "

" + +/datum/antagonist/bloodsucker/proc/count_vassals(datum/mind/master) + var/datum/antagonist/bloodsucker/B = master.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) + var/vassal_amount = B.vassals.len + return vassal_amount diff --git a/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm b/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm index ec7c7e9ba8..3b1698c287 100644 --- a/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm +++ b/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm @@ -115,13 +115,15 @@ qdel(src) /obj/structure/bloodsucker/vassalrack/examine(mob/user) + var/datum/antagonist/bloodsucker/B = user.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) . = ..() - if(isbloodsucker(user) || isobserver(user)) + if(B || isobserver(user)) . += {"This is the vassal rack, which allows you to thrall crewmembers into loyal minions in your service."} . += {"You need to first secure the vassal rack by clicking on it while it is in your lair."} . += {"Simply click and hold on a victim, and then drag their sprite on the vassal rack. Alt click on the vassal rack to unbuckle them."} . += {"Make sure that the victim is handcuffed, or else they can simply run away or resist, as the process is not instant."} . += {"To convert the victim, simply click on the vassal rack itself. Sharp weapons work faster than other tools."} + . += {" You have only the power for [B.vamplevel - B.count_vassals(user.mind)] vassals"} /* if(user.mind.has_antag_datum(ANTAG_DATUM_VASSAL) . += {"This is the vassal rack, which allows your master to thrall crewmembers into his minions.\n Aid your master in bringing their victims here and keeping them secure.\n @@ -222,15 +224,15 @@ // Go away. Torturing. if(useLock) return - var/datum/antagonist/bloodsucker/bloodsuckerdatum = user.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) + var/datum/antagonist/bloodsucker/B = user.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) // CHECK ONE: Am I claiming this? Is it in the right place? - if(istype(bloodsuckerdatum) && !owner) - if(!bloodsuckerdatum.lair) + if(istype(B) && !owner) + if(!B.lair) to_chat(user, "You don't have a lair. Claim a coffin to make that location your lair.") - if(bloodsuckerdatum.lair != get_area(src)) - to_chat(user, "You may only activate this structure in your lair: [bloodsuckerdatum.lair].") + if(B.lair != get_area(src)) + to_chat(user, "You may only activate this structure in your lair: [B.lair].") return - switch(alert(user,"Do you wish to afix this structure here? Be aware you wont be able to unsecure it anymore","Secure [src]","Yes", "No")) + switch(alert(user,"Do you wish to afix this structure here? Be aware you wont be able to unsecure it anymore", "Secure [src]", "Yes", "No")) if("Yes") owner = user density = FALSE @@ -241,27 +243,31 @@ return // CHECK TWO: Am I a non-bloodsucker? var/mob/living/carbon/C = pick(buckled_mobs) - if(!istype(bloodsuckerdatum)) + if(!istype(B)) // Try to release this guy user_unbuckle_mob(C, user) return // Bloodsucker Owner! Let the boy go. if(C.mind) - var/datum/antagonist/vassal/vassaldatum = C.mind.has_antag_datum(ANTAG_DATUM_VASSAL) - if(istype(vassaldatum) && vassaldatum.master == bloodsuckerdatum || C.stat >= DEAD) + var/datum/antagonist/vassal/V = C.mind.has_antag_datum(ANTAG_DATUM_VASSAL) + if(istype(V) && V.master == B || C.stat >= DEAD) unbuckle_mob(C) useLock = FALSE // Failsafe return // Just torture the boy torture_victim(user, C) +#define CONVERT_COST 150 + /obj/structure/bloodsucker/vassalrack/proc/torture_victim(mob/living/user, mob/living/target) - var/datum/antagonist/bloodsucker/bloodsuckerdatum = user.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) + var/datum/antagonist/bloodsucker/B = user.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) // Check Bloodmob/living/M, force = FALSE, check_loc = TRUE - var/convert_cost = 200 - if(user.blood_volume < convert_cost + 5) + if(user.blood_volume < CONVERT_COST + 5) to_chat(user, "You don't have enough blood to initiate the Dark Communion with [target].") return + if(B.count_vassals(user.mind) > B.vamplevel) + to_chat(user, "Your power is yet too weak to bring more vassals under your control....") + return // Prep... useLock = TRUE // Step One: Tick Down Conversion from 3 to 0 @@ -302,12 +308,13 @@ useLock = FALSE return // Check: Blood - if(user.blood_volume < convert_cost) - to_chat(user, "You don't have enough blood to initiate the Dark Communion with [target], you need [convert_cost - user.blood_volume] units more!") + if(user.blood_volume < CONVERT_COST) + to_chat(user, "You don't have enough blood to initiate the Dark Communion with [target], you need [CONVERT_COST - user.blood_volume] units more!") useLock = FALSE return - bloodsuckerdatum.AddBloodVolume(-convert_cost) - target.add_mob_blood(user) + B.AddBloodVolume(-CONVERT_COST) + target.add_mob_blood(user, "Youve used [CONVERT_COST] amount of blood to gain a new vassal!") + to_chat(user, ) user.visible_message("[user] marks a bloody smear on [target]'s forehead and puts a wrist up to [target.p_their()] mouth!", \ "You paint a bloody marking across [target]'s forehead, place your wrist to [target.p_their()] mouth, and subject [target.p_them()] to the Dark Communion.") if(!do_mob(user, src, 50)) @@ -315,7 +322,7 @@ useLock = FALSE return // Convert to Vassal! - if(bloodsuckerdatum && bloodsuckerdatum.attempt_turn_vassal(target)) + if(B && B.attempt_turn_vassal(target)) //remove_loyalties(target) // In case of Mindshield, or appropriate Antag (Traitor, Internal, etc) //if (!target.buckled) // to_chat(user, "The ritual has been interrupted!") @@ -329,6 +336,7 @@ //remove_victim(target) // Remove on CLICK ONLY! useLock = FALSE +#undef CONVERT_COST /obj/structure/bloodsucker/vassalrack/proc/do_torture(mob/living/user, mob/living/target, mult = 1) var/torture_time = 15 // Fifteen seconds if you aren't using anything. Shorter with weapons and such. var/torture_dmg_brute = 2 diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm index 9866e306c6..bab49e9f83 100644 --- a/code/modules/food_and_drinks/food/snacks_bread.dm +++ b/code/modules/food_and_drinks/food/snacks_bread.dm @@ -185,8 +185,8 @@ icon = 'icons/obj/food/burgerbread.dmi' icon_state = "garlicbread" item_state = "garlicbread" - bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/vitamin = 2) - list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/vitamin = 4, /datum/reagent/consumable/garlic = 2) + bonus_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin = 2) + list_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/nutriment/vitamin= 4, /datum/reagent/consumable/garlic = 2) bitesize = 3 tastes = list("bread" = 1, "garlic" = 1, "butter" = 1) foodtype = GRAIN diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm index 65304c5460..c0bc3232b7 100644 --- a/code/modules/mining/equipment/regenerative_core.dm +++ b/code/modules/mining/equipment/regenerative_core.dm @@ -72,7 +72,7 @@ if(proximity_flag) apply_healing_core(target, user) -/obj/item/organ/regenerative_core/apply_healing_core(atom/target, mob/user) +/obj/item/organ/regenerative_core/proc/apply_healing_core(atom/target, mob/user) if(ishuman(target)) var/mob/living/carbon/human/H = target if(inert) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 9218df1ad1..1c4810dd34 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -425,7 +425,7 @@ /datum/reagent/consumable/garlic //NOTE: having garlic in your blood stops vampires from biting you. name = "Garlic Juice" - id = "garlic" + //id = "garlic" description = "Crushed garlic. Chefs love it, but it can make you smell bad." color = "#FEFEFE" taste_description = "garlic" @@ -435,37 +435,9 @@ if(isvampire(M)) //incapacitating but not lethal. Unfortunately, vampires cannot vomit. if(prob(min(25, current_cycle))) to_chat(M, "You can't get the scent of garlic out of your nose! You can barely think...") - M.Paralyze(10) + M.Stun(10) M.Jitter(10) return - else if(isbloodsucker(M)) - var/datum/antagonist/bloodsucker/bloodsuckerdatum = M.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) - switch(method) - if(INGEST) - if(prob(min(30, current_cycle))) - to_chat(M, "You cant get the smell of garlic out of your nose! You cant think straight because of it!") - M.Jitter(15) - return - if(prob(min(15, current_cycle))) - M.visible_message("Something you ate is burning your stomach!", / - "[M] clutches their stomach and falls to the ground!" - ) - M.Knockdown(20) - M.emote("scream") - return - if(prob(min(5, current_cycle))) - M.vomit() - return - if(INJECT) - if(prob(min(20, current_cycle))) - to_chat(M, "You feel like your veins are boiling!") - M.emote("scream") - M.adjustFireLoss(5) - return - if(prob(min(5, current_cycle))) - to_chat(M, "You are trying to purge the contaminants from your blood!") - M.vomit() - return else if(ishuman(M)) var/mob/living/carbon/human/H = M @@ -475,6 +447,26 @@ . = 1 ..() +/datum/reagent/consumable/condensedcapsaicin/reaction_mob(mob/living/M, method, reac_volume) + if(isbloodsucker(M)) + switch(method) + if(INGEST) + if(prob(min(30, current_cycle))) + to_chat(M, "You cant get the smell of garlic out of your nose! You cant think straight because of it!") + M.Jitter(15) + if(prob(min(15, current_cycle))) + M.visible_message("Something you ate is burning your stomach!", "[M] clutches their stomach and falls to the ground!") + M.Knockdown(20) + M.emote("scream") + if(prob(min(5, current_cycle)) && iscarbon(M)) + var/mob/living/carbon/C + C.vomit() + if(INJECT) + if(prob(min(20, current_cycle))) + to_chat(M, "You feel like your veins are boiling!") + M.emote("scream") + M.adjustFireLoss(5) + /datum/reagent/consumable/sprinkles name = "Sprinkles" value = 3 diff --git a/modular_citadel/code/modules/reagents/objects/clothes.dm b/modular_citadel/code/modules/reagents/objects/clothes.dm index 457f1dfb39..34af39bbe0 100644 --- a/modular_citadel/code/modules/reagents/objects/clothes.dm +++ b/modular_citadel/code/modules/reagents/objects/clothes.dm @@ -25,7 +25,7 @@ /obj/item/clothing/head/hattip/MouseDrop(atom/over_object) //You sure do love tipping your hat. - if(user) + if(usr) var/mob/living/carbon/C = usr if(is_ninja(C)) to_chat(C, "Using your superior ninja reflexes, you take the hat off before tipping.") From e439c2231d9afc63386dae21796dc9f081cff153 Mon Sep 17 00:00:00 2001 From: Artur Date: Thu, 19 Mar 2020 17:47:21 +0200 Subject: [PATCH 037/190] fIXE --- code/modules/antagonists/bloodsucker/datum_bloodsucker.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm index 28aef3b6d4..fa3666e0e7 100644 --- a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm +++ b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm @@ -341,7 +341,7 @@ // Assign True Reputation if(vamplevel == 4) SelectReputation(am_fledgling = FALSE, forced = TRUE) - to_chat(owner.current, "You are now a rank [vamplevel] Bloodsucker. Your strength, health, feed rate, regen rate, can have up to [vamplevel - count_vassals()] vassals, and maximum blood have all increased!") + to_chat(owner.current, "You are now a rank [vamplevel] Bloodsucker. Your strength, health, feed rate, regen rate, can have up to [vamplevel - count_vassals(owner.current.mind)] vassals, and maximum blood have all increased!") to_chat(owner.current, "Your existing powers have all ranked up as well!") update_hud(TRUE) owner.current.playsound_local(null, 'sound/effects/pope_entry.ogg', 25, TRUE, pressure_affected = FALSE) From 9bb7529a4988bef58f713a6498052ea0d3ed80de Mon Sep 17 00:00:00 2001 From: Artur Date: Tue, 24 Mar 2020 16:55:46 +0200 Subject: [PATCH 038/190] Progress --- .../game/gamemodes/bloodsucker/bloodsucker.dm | 8 ++- code/game/machinery/cloning.dm | 2 +- .../bloodsucker/bloodsucker_integration.dm | 35 +----------- .../bloodsucker/bloodsucker_life.dm | 57 +++++++++---------- .../bloodsucker/objects/bloodsucker_crypt.dm | 12 ++-- .../antagonists/bloodsucker/powers/feed.dm | 2 +- .../bloodsucker/powers/fortitude.dm | 9 +++ code/modules/hydroponics/grown/replicapod.dm | 2 +- .../mining/equipment/regenerative_core.dm | 2 +- .../living/carbon/alien/special/facehugger.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 2 +- code/modules/mob/mob_movement.dm | 2 +- code/modules/reagents/chemistry/reagents.dm | 2 +- .../chemistry/reagents/alcohol_reagents.dm | 2 +- .../chemistry/reagents/food_reagents.dm | 2 +- 15 files changed, 60 insertions(+), 81 deletions(-) diff --git a/code/game/gamemodes/bloodsucker/bloodsucker.dm b/code/game/gamemodes/bloodsucker/bloodsucker.dm index 6315ea525b..58559b721f 100644 --- a/code/game/gamemodes/bloodsucker/bloodsucker.dm +++ b/code/game/gamemodes/bloodsucker/bloodsucker.dm @@ -9,8 +9,12 @@ var/list/vassal_allowed_antags = list(/datum/antagonist/brother, /datum/antagonist/traitor, /datum/antagonist/traitor/internal_affairs, /datum/antagonist/survivalist, \ /datum/antagonist/rev, /datum/antagonist/nukeop, /datum/antagonist/pirate, /datum/antagonist/cult, /datum/antagonist/abductee, /datum/antagonist/valentine, /datum/antagonist/heartbreaker,) // The antags you're allowed to be if turning Vassal. -/proc/isbloodsucker(mob/living/M) - return istype(M) && M.mind && M.mind.has_antag_datum(/datum/antagonist/bloodsucker) + +/proc/AmBloodsucker(mob/living/M, falseIfInDisguise = FALSE) + // No Datum + if(!M.mind || !M.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)) + return FALSE + return TRUE /datum/game_mode/bloodsucker name = "bloodsucker" diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index 323d82e0bc..02016ab0bb 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -159,7 +159,7 @@ mess = TRUE update_icon() return FALSE - if(isbloodsucker(clonemind)) //If the mind is a bloodsucker + if(AmBloodsucker(clonemind)) //If the mind is a bloodsucker return FALSE attempting = TRUE //One at a time!! diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_integration.dm b/code/modules/antagonists/bloodsucker/bloodsucker_integration.dm index 3a6b4efedb..98fb69e52c 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_integration.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_integration.dm @@ -1,12 +1,6 @@ // INTEGRATION: Adding Procs and Datums to existing "classes" -/mob/living/proc/AmBloodsucker(falseIfInDisguise=FALSE) - // No Datum - if(!mind || !mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)) - return FALSE - return TRUE - -/mob/living/proc/HaveBloodsuckerBodyparts(var/displaymessage="") // displaymessage can be something such as "rising from death" for Torpid Sleep. givewarningto is the person receiving messages. +/mob/living/proc/HaveBloodsuckerBodyparts(displaymessage = "") // displaymessage can be something such as "rising from death" for Torpid Sleep. givewarningto is the person receiving messages. if(!getorganslot(ORGAN_SLOT_HEART)) if(displaymessage != "") to_chat(src, "Without a heart, you are incapable of [displaymessage].") @@ -21,33 +15,6 @@ return FALSE return TRUE - - -// GET DAMAGE - - -// Do NOT count the damage on prosthetics for this. -/mob/living/proc/getBruteLoss_nonProsthetic() - return getBruteLoss() - -/mob/living/proc/getFireLoss_nonProsthetic() - return getFireLoss() - -/mob/living/carbon/getBruteLoss_nonProsthetic() - var/amount = 0 - for(var/obj/item/bodypart/BP in bodyparts) - if(BP.status < 2) - amount += BP.brute_dam - return amount - -/mob/living/carbon/getFireLoss_nonProsthetic() - var/amount = 0 - for(var/obj/item/bodypart/BP in bodyparts) - if(BP.status < 2) - amount += BP.burn_dam - return amount - -/mob/living/carbon // EXAMINING /mob/living/carbon/human/proc/ReturnVampExamine(var/mob/viewer) if(!mind || !viewer.mind) diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm index b4fe2c012e..af2fd1b374 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm @@ -99,7 +99,7 @@ var/amInCoffinWhileTorpor = istype(C.loc, /obj/structure/closet/crate/coffin) && (mult == 0 || HAS_TRAIT(C, TRAIT_DEATHCOMA)) // Check for mult 0 OR death coma. (mult 0 means we're testing from coffin) if(amInCoffinWhileTorpor) mult *= 4 // Increase multiplier if we're sleeping in a coffin. - fireheal = min(C.getFireLoss_nonProsthetic(), regenRate) // NOTE: Burn damage ONLY heals in torpor. + fireheal = min(C.getFireLoss(), regenRate) // NOTE: Burn damage ONLY heals in torpor. costMult = 0.25 C.ExtinguishMob() CureDisabilities() // Extinguish Fire @@ -113,7 +113,7 @@ //if (C.getFireLoss() > owner.current.getMaxHealth()) // fireheal = regenRate / 2 // BRUTE: Always Heal - var/bruteheal = min(C.getBruteLoss_nonProsthetic(), regenRate) + var/bruteheal = min(C.getBruteLoss(), regenRate) var/toxinheal = min(C.getToxLoss(), regenRate) // Heal if Damaged if(bruteheal + fireheal + toxinheal > 0) // Just a check? Don't heal/spend, and return. @@ -130,24 +130,23 @@ return TRUE // Healed! Done for this tick. if(amInCoffinWhileTorpor) // Limbs? (And I have no other healing) var/list/missing = owner.current.get_missing_limbs() // Heal Missing - if (missing.len) // Cycle through ALL limbs and regen them! + if(missing.len) // Cycle through ALL limbs and regen them! for (var/targetLimbZone in missing) // 1) Find ONE Limb and regenerate it. owner.current.regenerate_limb(targetLimbZone, 0) // regenerate_limbs() <--- If you want to EXCLUDE certain parts, do it like this ----> regenerate_limbs(0, list("head")) - var/obj/item/bodypart/L = owner.current.get_bodypart( targetLimbZone ) // 2) Limb returns Damaged + var/obj/item/bodypart/L = owner.current.get_bodypart(targetLimbZone) // 2) Limb returns Damaged AddBloodVolume(50 * costMult) // Costs blood to heal L.brute_dam = 60 to_chat(owner.current, "Your flesh knits as it regrows [L]!") playsound(owner.current, 'sound/magic/demon_consume.ogg', 50, 1) // DONE! After regenerating ANY number of limbs, we stop here. return TRUE - /*else // REMOVED: For now, let's just leave prosthetics on. Maybe you WANT to be a robovamp. + else // REMOVED: For now, let's just leave prosthetics on. Maybe you WANT to be a robovamp. In actuality, robovamps are very bad. // Remove Prosthetic/False Limb for(var/obj/item/bodypart/BP in C.bodyparts) - message_admins("T1: [BP] ") - if (istype(BP) && BP.status == 2) - message_admins("T2: [BP] ") + if(istype(BP) && BP.status == 2) + to_chat(owner.current, "Your body expels the [BP]!") BP.drop_limb() - return TRUE */ + return TRUE // NOTE: Limbs have a "status", like their hosts "stat". 2 is dead (aka Prosthetic). 1 seems to be idle/alive.*/ return FALSE @@ -180,7 +179,10 @@ if(owner.current.blood_volume < BLOOD_VOLUME_BAD / 2) owner.current.blur_eyes(8 - 8 * (owner.current.blood_volume / BLOOD_VOLUME_BAD)) // Nutrition - owner.current.nutrition = min(owner.current.blood_volume, NUTRITION_LEVEL_FED) // <-- 350 //NUTRITION_LEVEL_FULL + if(owner.current.blood_volume < BLOOD_VOLUME_NORMAL) + owner.current.nutrition = min(owner.current.blood_volume, NUTRITION_LEVEL_WELL_FED) + else if(owner.current.blood_volume < BLOOD_VOLUME_SAFE) + owner.current.nutrition = min(owner.current.blood_volume, NUTRITION_LEVEL_FED) // <-- 350 //NUTRITION_LEVEL_FULL ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // DEATH @@ -190,7 +192,7 @@ /datum/antagonist/bloodsucker/proc/HandleDeath() // FINAL DEATH // Fire Damage? (above double health) - if(owner.current.getFireLoss_nonProsthetic() >= owner.current.maxHealth * 2.5) + if(owner.current.getFireLoss() >= owner.current.maxHealth * 3) FinalDeath() return // Staked while "Temp Death" or Asleep @@ -210,8 +212,8 @@ // for (var/datum/action/bloodsucker/masquerade/P in powers) // P.Deactivate() // TEMP DEATH - var/total_brute = owner.current.getBruteLoss_nonProsthetic() - var/total_burn = owner.current.getFireLoss_nonProsthetic() + var/total_brute = owner.current.getBruteLoss() + var/total_burn = owner.current.getFireLoss() var/total_toxloss = owner.current.getToxLoss() //This is neater than just putting it in total_damage var/total_damage = total_brute + total_burn + total_toxloss // Died? Convert to Torpor (fake death) @@ -219,7 +221,7 @@ Torpor_Begin() to_chat(owner, "Your immortal body will not yet relinquish your soul to the abyss. You enter Torpor.") sleep(30) //To avoid spam - if (poweron_masquerade == TRUE) + if(poweron_masquerade == TRUE) to_chat(owner, "Your wounds will not heal until you disable the Masquerade power.") // End Torpor: else // No damage, OR toxin healed AND brute healed and NOT in coffin (since you cannot heal burn) @@ -229,17 +231,14 @@ Torpor_End() // Fake Unconscious if(poweron_masquerade == TRUE && total_damage >= owner.current.getMaxHealth() - HEALTH_THRESHOLD_FULLCRIT) - owner.current.Unconscious(20,1) - //HEALTH_THRESHOLD_CRIT 0 - //HEALTH_THRESHOLD_FULLCRIT -30 - //HEALTH_THRESHOLD_DEAD -100 + owner.current.Unconscious(20, 1) -/datum/antagonist/bloodsucker/proc/Torpor_Begin(amInCoffin=FALSE) +/datum/antagonist/bloodsucker/proc/Torpor_Begin(amInCoffin = FALSE) owner.current.stat = UNCONSCIOUS - owner.current.fakedeath("bloodsucker") // Come after UNCONSCIOUS or else it fails + ADD_TRAIT(owner.current, TRAIT_FAKEDEATH, "bloodsucker") // Come after UNCONSCIOUS or else it fails ADD_TRAIT(owner.current, TRAIT_NODEATH, "bloodsucker") // Without this, you'll just keep dying while you recover. ADD_TRAIT(owner.current, TRAIT_RESISTHIGHPRESSURE, "bloodsucker") // So you can heal in 0 G. otherwise you just...heal forever. - ADD_TRAIT(owner.current, TRAIT_RESISTLOWPRESSURE, "bloodsucker") // So you can heal in 0 G. otherwise you just...heal forever. + ADD_TRAIT(owner.current, TRAIT_RESISTLOWPRESSURE, "bloodsucker") // Visuals owner.current.update_sight() owner.current.reload_fullscreen() @@ -248,10 +247,9 @@ if(power.active && !power.can_use_in_torpor) power.DeactivatePower() - /datum/antagonist/bloodsucker/proc/Torpor_End() + REMOVE_TRAIT(owner.current, TRAIT_FAKEDEATH, "bloodsucker") owner.current.stat = SOFT_CRIT - owner.current.cure_fakedeath("bloodsucker") // Come after SOFT_CRIT or else it fails REMOVE_TRAIT(owner.current, TRAIT_NODEATH, "bloodsucker") REMOVE_TRAIT(owner.current, TRAIT_RESISTHIGHPRESSURE, "bloodsucker") REMOVE_TRAIT(owner.current, TRAIT_RESISTLOWPRESSURE, "bloodsucker") @@ -288,14 +286,15 @@ owner.current.visible_message("[owner.current]'s skin crackles and dries, their skin and bones withering to dust. A hollow cry whips from what is now a sandy pile of remains.", \ "Your soul escapes your withering body as the abyss welcomes you to your Final Death.", \ "You hear a dry, crackling sound.") + sleep(50) owner.current.dust() // Fledglings get Gibbed else owner.current.visible_message("[owner.current]'s skin bursts forth in a spray of gore and detritus. A horrible cry echoes from what is now a wet pile of decaying meat.", \ "Your soul escapes your withering body as the abyss welcomes you to your Final Death.", \ "You hear a wet, bursting sound.") - owner.current.gib(TRUE, FALSE, FALSE)//Brain cloning is wierd and allows hellbounds. Lets destroy the brain for safety. - playsound(owner.current.loc, 'sound/effects/tendril_destroyed.ogg', 40, 1) + owner.current.gib(TRUE, FALSE, FALSE) //Brain cloning is wierd and allows hellbounds. Lets destroy the brain for safety. + playsound(owner.current, 'sound/effects/tendril_destroyed.ogg', 40, TRUE) @@ -305,15 +304,15 @@ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/mob/proc/CheckBloodsuckerEatFood(var/food_nutrition) +/mob/proc/CheckBloodsuckerEatFood(food_nutrition) if(!isliving(src)) return var/mob/living/L = src - if(!L.AmBloodsucker()) + if(!AmBloodsucker(L)) return // We're a bloodsucker? Try to eat food... - var/datum/antagonist/bloodsucker/bloodsuckerdatum = mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) - bloodsuckerdatum.bloodsucker_disgust(food_nutrition) + var/datum/antagonist/bloodsucker/B = L.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) + B.handle_eat_human_food(food_nutrition) /datum/antagonist/bloodsucker/proc/handle_eat_human_food(food_nutrition, puke_blood = TRUE, masquerade_override) // Called from snacks.dm and drinks.dm diff --git a/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm b/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm index 419093d153..c5f24ab537 100644 --- a/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm +++ b/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm @@ -132,7 +132,7 @@ /obj/structure/bloodsucker/vassalrack/MouseDrop_T(atom/movable/O, mob/user) if(!O.Adjacent(src) || O == user || !isliving(O) || !isliving(user) || useLock || has_buckled_mobs() || user.incapacitated()) return - if(!anchored && isbloodsucker(user)) + if(!anchored && AmBloodsucker(user)) to_chat(user, "Until this rack is secured in place, it cannot serve its purpose.") return // PULL TARGET: Remember if I was pullin this guy, so we can restore this @@ -185,7 +185,7 @@ /obj/structure/bloodsucker/vassalrack/user_unbuckle_mob(mob/living/M, mob/user) // Attempt Unbuckle - if(!isbloodsucker(user)) + if(!AmBloodsucker(user)) if(M == user) M.visible_message("[user] tries to release themself from the rack!",\ "You attempt to release yourself from the rack!") // For sound if not seen --> "You hear a squishy wet noise.") @@ -462,7 +462,7 @@ /obj/structure/bloodsucker/candelabrum/examine(mob/user) . = ..() - if((isbloodsucker()) || isobserver(user)) + if((AmBloodsucker(user)) || isobserver(user)) . += {"This is a magical candle which drains at the sanity of mortals who are not under your command while it is active."} . += {"You can alt click on it from any range to turn it on remotely, or simply be next to it and click on it to turn it on and off normally."} /* if(user.mind.has_antag_datum(ANTAG_DATUM_VASSAL) @@ -471,12 +471,12 @@ /obj/structure/bloodsucker/candelabrum/attack_hand(mob/user) var/datum/antagonist/vassal/T = user.mind.has_antag_datum(ANTAG_DATUM_VASSAL) - if(isbloodsucker(user) || istype(T)) + if(AmBloodsucker(user) || istype(T)) toggle() /obj/structure/bloodsucker/candelabrum/AltClick(mob/user) // Bloodsuckers can turn their candles on from a distance. SPOOOOKY. - if(isbloodsucker(user)) + if(AmBloodsucker(user)) toggle() /obj/structure/bloodsucker/candelabrum/proc/toggle(mob/user) @@ -493,7 +493,7 @@ if(lit) for(var/mob/living/carbon/human/H in viewers(7, src)) var/datum/antagonist/vassal/T = H.mind.has_antag_datum(ANTAG_DATUM_VASSAL) - if(isbloodsucker(H) || T) //We dont want vassals or vampires affected by this + if(AmBloodsucker(H) || T) //We dont want vassals or vampires affected by this return H.hallucination = 20 SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "vampcandle", /datum/mood_event/vampcandle) diff --git a/code/modules/antagonists/bloodsucker/powers/feed.dm b/code/modules/antagonists/bloodsucker/powers/feed.dm index 178a5afd84..b0678d5ff4 100644 --- a/code/modules/antagonists/bloodsucker/powers/feed.dm +++ b/code/modules/antagonists/bloodsucker/powers/feed.dm @@ -267,7 +267,7 @@ to_chat(user, "You are full. Further blood will be wasted.") warning_full = TRUE // Blood Remaining? (Carbons/Humans only) - if(iscarbon(target) && !target.AmBloodsucker(1)) + if(iscarbon(target) && !AmBloodsucker(target, TRUE)) if(target.blood_volume <= BLOOD_VOLUME_BAD && warning_target_bloodvol > BLOOD_VOLUME_BAD) to_chat(user, "Your victim's blood volume is fatally low!") else if(target.blood_volume <= BLOOD_VOLUME_OKAY && warning_target_bloodvol > BLOOD_VOLUME_OKAY) diff --git a/code/modules/antagonists/bloodsucker/powers/fortitude.dm b/code/modules/antagonists/bloodsucker/powers/fortitude.dm index f0724f8204..a58034df0d 100644 --- a/code/modules/antagonists/bloodsucker/powers/fortitude.dm +++ b/code/modules/antagonists/bloodsucker/powers/fortitude.dm @@ -33,6 +33,15 @@ if(was_running) user.toggle_move_intent() while(bloodsuckerdatum && ContinueActive(user) || user.m_intent == MOVE_INTENT_RUN) + if(istype(user.buckled, /obj/vehicle)) //We dont want people using fortitude being able to use vehicles + var/obj/vehicle/V = user.buckled + var/datum/component/riding/VRD = V.GetComponent(/datum/component/riding) + if(VRD) + VRD.force_dismount(user) + to_chat(user, "You trip off the [V], your muscles too heavy for it to support you.") + else + V.unbuckle_mob(user, force = TRUE) + to_chat(user, "You fall off the [V], your weight making you too heavy to be supported by it.") // Pay Blood Toll (if awake) if(user.stat == CONSCIOUS) bloodsuckerdatum.AddBloodVolume(-0.5) // Used to be 0.3 blood per 2 seconds, but we're making it more expensive to keep on. diff --git a/code/modules/hydroponics/grown/replicapod.dm b/code/modules/hydroponics/grown/replicapod.dm index 3769f9eacc..aeddf771b8 100644 --- a/code/modules/hydroponics/grown/replicapod.dm +++ b/code/modules/hydroponics/grown/replicapod.dm @@ -78,7 +78,7 @@ make_podman = 1 break else - if(M.ckey == ckey && M.stat == DEAD && !M.suiciding) + if(M.ckey == ckey && M.stat == DEAD && !M.suiciding && AmBloodsucker(M)) make_podman = 1 if(isliving(M)) var/mob/living/L = M diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm index 3b449ade7d..c89698530f 100644 --- a/code/modules/mining/equipment/regenerative_core.dm +++ b/code/modules/mining/equipment/regenerative_core.dm @@ -88,7 +88,7 @@ else to_chat(user, "You start to smear [src] on yourself. It feels and smells disgusting, but you feel amazingly refreshed in mere moments.") SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "self")) - if(!isbloodsucker(H)) + if(!AmBloodsucker(H)) H.revive(full_heal = TRUE) else H.revive(full_heal = FALSE) diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index de65b775b4..9640c72481 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -252,7 +252,7 @@ return 0 if(M.getorgan(/obj/item/organ/alien/hivenode)) return 0 - if(isbloodsucker(M)) + if(AmBloodsucker(M)) return 0 if(ismonkey(M)) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 6e2398c487..fb06ec8186 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -853,7 +853,7 @@ /mob/living/carbon/proc/can_defib() var/tlimit = DEFIB_TIME_LIMIT * 10 var/obj/item/organ/heart = getorgan(/obj/item/organ/heart) - if(suiciding || hellbound || HAS_TRAIT(src, TRAIT_HUSK) || isbloodsucker()) + if(suiciding || hellbound || HAS_TRAIT(src, TRAIT_HUSK) || AmBloodsucker()) return if((world.time - timeofdeath) > tlimit) return diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index bac8053c9a..a7e739b70e 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -354,7 +354,7 @@ if(m_intent == MOVE_INTENT_RUN) m_intent = MOVE_INTENT_WALK else - if (HAS_TRAIT(src,TRAIT_NORUNNING)) // FULPSTATION 7/10/19 So you can't run during fortitude. + if (HAS_TRAIT(src,TRAIT_NORUNNING)) to_chat(src, "You find yourself unable to run.") return FALSE m_intent = MOVE_INTENT_RUN diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index 384a113b27..5eb5b94de9 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -214,7 +214,7 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) //For easy bloodsucker disgusting and blood removal /datum/reagent/proc/disgust_bloodsucker(mob/living/carbon/C, disgust, blood_change, blood_puke = TRUE, force) - if(isvamp(C)) + if(AmBloodsucker(C)) var/datum/antagonist/bloodsucker/bloodsuckerdatum = C.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) if(disgust) bloodsuckerdatum.handle_eat_human_food(disgust, blood_puke, force) diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index b7f32421aa..a7c0d55bb6 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -579,7 +579,7 @@ All effects don't start immediately, but rather get worse over time; the rate is value = 1.3 /datum/reagent/consumable/ethanol/bloody_mary/on_mob_life(mob/living/carbon/C) - if(isvamp(C)) + if(AmBloodsucker(C)) disgust_bloodsucker(FALSE, 1) //Bloodsuckers get SOME blood from it, for style reasons. if(C.blood_volume < (BLOOD_VOLUME_NORMAL*C.blood_ratio)) C.blood_volume = min((BLOOD_VOLUME_NORMAL*C.blood_ratio), C.blood_volume + 3) //Bloody Mary quickly restores blood loss. diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index d6715988be..837c3614a8 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -448,7 +448,7 @@ ..() /datum/reagent/consumable/condensedcapsaicin/reaction_mob(mob/living/M, method, reac_volume) - if(isbloodsucker(M)) + if(AmBloodsucker(M)) switch(method) if(INGEST) if(prob(min(30, current_cycle))) From fdc6a02eea369ec293e9656d50dc5ff7eb188157 Mon Sep 17 00:00:00 2001 From: Artur Date: Wed, 25 Mar 2020 12:46:42 +0200 Subject: [PATCH 039/190] Hm --- code/_onclick/item_attack.dm | 2 +- .../crafting/recipes/recipes_clothing.dm | 9 ++++++ .../game/gamemodes/bloodsucker/bloodsucker.dm | 2 +- code/game/objects/items/stacks/medical.dm | 4 +++ .../bloodsucker/bloodsucker_life.dm | 26 +++++++++++++++--- .../bloodsucker/bloodsucker_powers.dm | 6 ++++ .../bloodsucker/datum_bloodsucker.dm | 6 ++-- .../antagonists/bloodsucker/powers/cloak.dm | 2 +- code/modules/hydroponics/grown/garlic.dm | 4 ++- .../living/carbon/alien/special/facehugger.dm | 14 +++++----- .../carbon/human/species_types/vampire.dm | 4 +-- .../chemistry/reagents/food_reagents.dm | 1 + icons/mob/neck.dmi | Bin 45707 -> 45980 bytes icons/obj/clothing/neck.dmi | Bin 2866 -> 2996 bytes 14 files changed, 60 insertions(+), 20 deletions(-) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index fe407509fe..baa1add7e1 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -119,7 +119,7 @@ send_item_attack_message(I, user) if(I.force) apply_damage(totitemdamage, I.damtype) //CIT CHANGE - replaces I.force with totitemdamage - if(I.damtype == BRUTE && !HAS_TRAIT(src, TRAIT_NOMARROW)) + if(I.damtype == BRUTE) if(prob(33)) I.add_mob_blood(src) var/turf/location = get_turf(src) diff --git a/code/datums/components/crafting/recipes/recipes_clothing.dm b/code/datums/components/crafting/recipes/recipes_clothing.dm index 5636be6b2a..fb3500a037 100644 --- a/code/datums/components/crafting/recipes/recipes_clothing.dm +++ b/code/datums/components/crafting/recipes/recipes_clothing.dm @@ -287,3 +287,12 @@ /obj/item/bedsheet/cosmos = 1) time = 60 category = CAT_CLOTHING + + +/datum/crafting_recipe/wintercoat_cosmic + name = "Cosmic Winter Coat" + result = /obj/item/clothing/neck/garlic_necklace + reqs = list(/obj/item/reagent_containers/food/snacks/grown/garlic = 15, + /obj/item/stack/cable_coil = 10) + time = 100 //Takes awhile to put all the garlics on the coil and knot it. + category = CAT_CLOTHING diff --git a/code/game/gamemodes/bloodsucker/bloodsucker.dm b/code/game/gamemodes/bloodsucker/bloodsucker.dm index 58559b721f..7f9873cfb0 100644 --- a/code/game/gamemodes/bloodsucker/bloodsucker.dm +++ b/code/game/gamemodes/bloodsucker/bloodsucker.dm @@ -262,7 +262,7 @@ target.mind.add_antag_datum(V, V.master.get_team()) // Update Bloodsucker Title (we're a daddy now) B.SelectTitle(am_fledgling = FALSE) // Only works if you have no title yet. - // lOg it + // Log it message_admins("[target] has become a Vassal, and is enslaved to [creator].") log_admin("[target] has become a Vassal, and is enslaved to [creator].") return TRUE diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 205ce57251..50e9b94e97 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -72,6 +72,8 @@ to_chat(user, " [M] is at full health.") return FALSE user.visible_message("[user] applies \the [src] on [M].", "You apply \the [src] on [M].") + if(AmBloodsucker(M)) + return M.heal_bodypart_damage((heal_brute/2)) return TRUE if(iscarbon(M)) @@ -148,6 +150,8 @@ return if(iscarbon(M)) return heal_carbon(M, user, 0, heal_burn) + if(AmBloodsucker(M)) + return to_chat(user, "You can't heal [M] with the \the [src]!") /obj/item/stack/medical/ointment/suicide_act(mob/living/user) diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm index af2fd1b374..01e8774c27 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm @@ -12,7 +12,7 @@ /datum/antagonist/bloodsucker/proc/LifeTick()// Should probably run from life.dm, same as handle_changeling, but will be an utter pain to move set waitfor = FALSE // Don't make on_gain() wait for this function to finish. This lets this code run on the side. - var/notice_healing = FALSE + var/notice_healing while(owner && !AmFinalDeath()) // owner.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) == src if(owner.current.stat == CONSCIOUS && !poweron_feed && !HAS_TRAIT(owner.current, TRAIT_DEATHCOMA)) // Deduct Blood AddBloodVolume(-0.1) // -.15 (before tick went from 10 to 30, but we also charge more for faking life now) @@ -82,16 +82,32 @@ /datum/antagonist/bloodsucker/proc/HandleHealing(mult = 1) // NOTE: Mult of 0 is just a TEST to see if we are injured and need to go into Torpor! //It is called from your coffin on close (by you only) - if(poweron_masquerade == TRUE || owner.current.AmStaked() || owner.current.reagents?.has_reagent(/datum/reagent/consumable/garlic)) + var/notice_garlic + var/notice_necklace + if(poweron_masquerade == TRUE || owner.current.AmStaked()) + return FALSE + if(owner.current.reagents?.has_reagent(/datum/reagent/consumable/garlic)) + if(notice_garlic) + to_chat(owner.current, "Garlic in your blood is interfering with your regeneration!") + notice_garlic = TRUE + return FALSE + if(istype(owner.current.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) + if(notice_necklace) + to_chat(owner.current, "The necklace on your neck is interrupting your healing!") + notice_necklace = TRUE return FALSE owner.current.adjustStaminaLoss(-1.5 + (regenRate * -7) * mult, 0) // Humans lose stamina damage really quickly. Vamps should heal more. owner.current.adjustCloneLoss(-0.1 * (regenRate * 2) * mult, 0) owner.current.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1 * (regenRate * 4) * mult) //adjustBrainLoss(-1 * (regenRate * 4) * mult, 0) + if(notice_garlic) + notice_garlic = FALSE + if(notice_necklace) + notice_necklace = FALSE // No Bleeding if(ishuman(owner.current)) //NOTE Current bleeding is horrible, not to count the amount of blood ballistics delete. var/mob/living/carbon/human/H = owner.current if(H.bleed_rate > 0) //Only heal bleeding if we are actually bleeding - H.bleed_rate =- 0.5 + regenRate * mult + H.bleed_rate =- 0.5 + regenRate * 0.2 * mult if(iscarbon(owner.current)) // Damage Heal: Do I have damage to ANY bodypart? var/mob/living/carbon/C = owner.current var/costMult = 1 // Coffin makes it cheaper @@ -235,6 +251,7 @@ /datum/antagonist/bloodsucker/proc/Torpor_Begin(amInCoffin = FALSE) owner.current.stat = UNCONSCIOUS + owner.current.apply_status_effect(STATUS_EFFECT_UNCONSCIOUS) ADD_TRAIT(owner.current, TRAIT_FAKEDEATH, "bloodsucker") // Come after UNCONSCIOUS or else it fails ADD_TRAIT(owner.current, TRAIT_NODEATH, "bloodsucker") // Without this, you'll just keep dying while you recover. ADD_TRAIT(owner.current, TRAIT_RESISTHIGHPRESSURE, "bloodsucker") // So you can heal in 0 G. otherwise you just...heal forever. @@ -248,8 +265,9 @@ power.DeactivatePower() /datum/antagonist/bloodsucker/proc/Torpor_End() - REMOVE_TRAIT(owner.current, TRAIT_FAKEDEATH, "bloodsucker") owner.current.stat = SOFT_CRIT + owner.current.remove_status_effect(STATUS_EFFECT_UNCONSCIOUS) + owner.current.cure_fakedeath("bloodsucker") REMOVE_TRAIT(owner.current, TRAIT_NODEATH, "bloodsucker") REMOVE_TRAIT(owner.current, TRAIT_RESISTHIGHPRESSURE, "bloodsucker") REMOVE_TRAIT(owner.current, TRAIT_RESISTLOWPRESSURE, "bloodsucker") diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm b/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm index 507e1f2739..abfd2d120f 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm @@ -93,6 +93,12 @@ if(display_error) to_chat(owner, "You have a stake in your chest! Your powers are useless.") return FALSE + if(istype(owner.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) + to_chat(owner, "") + return FALSE + if(owner.reagents?.has_reagent(/datum/reagent/consumable/garlic)) + to_chat(owner, "Garlic in your blood is interfering with your powers!") + return FALSE // Incap? if(must_be_capacitated) var/mob/living/L = owner diff --git a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm index 20ce602fce..1821ec2f3d 100644 --- a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm +++ b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm @@ -22,7 +22,7 @@ // STATS var/vamplevel = 0 var/vamplevel_unspent = 1 - var/regenRate = 0.4 // How many points of Brute do I heal per tick? + var/regenRate = 0.4 // How fast do I regenerate? var/feedAmount = 15 // Amount of blood drawn from a target per tick. var/maxBloodVolume = 600 // Maximum blood a Vamp can hold via feeding. // BLOOD_VOLUME_NORMAL 550 // BLOOD_VOLUME_SAFE 475 //BLOOD_VOLUME_OKAY 336 //BLOOD_VOLUME_BAD 224 // BLOOD_VOLUME_SURVIVE 122 // OBJECTIVES @@ -47,8 +47,8 @@ SSticker.mode.bloodsuckers |= owner // Add if not already in here (and you might be, if you were picked at round start) SSticker.mode.check_start_sunlight()// Start Sunlight? (if first Vamp) SelectFirstName()// Name & Title - SelectTitle(am_fledgling=TRUE) // If I have a creator, then set as Fledgling. - SelectReputation(am_fledgling=TRUE) + SelectTitle(am_fledgling = TRUE) // If I have a creator, then set as Fledgling. + SelectReputation(am_fledgling = TRUE) AssignStarterPowersAndStats()// Give Powers & Stats forge_bloodsucker_objectives()// Objectives & Team update_bloodsucker_icons_added(owner.current, "bloodsucker") // Add Antag HUD diff --git a/code/modules/antagonists/bloodsucker/powers/cloak.dm b/code/modules/antagonists/bloodsucker/powers/cloak.dm index 1bb7b02357..a616c39923 100644 --- a/code/modules/antagonists/bloodsucker/powers/cloak.dm +++ b/code/modules/antagonists/bloodsucker/powers/cloak.dm @@ -2,7 +2,7 @@ /datum/action/bloodsucker/cloak name = "Cloak of Darkness" - desc = "Blend into the shadows and become invisible to the untrained eye. Movement is slowed in brightly lit areas." + desc = "Blend into the shadows and become invisible to the untrained eye. Movement is slowed in brightly lit areas, and you cannot dissapear while mortals watch you." button_icon_state = "power_cloak" bloodcost = 5 cooldown = 50 diff --git a/code/modules/hydroponics/grown/garlic.dm b/code/modules/hydroponics/grown/garlic.dm index 7ee8aab9a8..fd24376282 100644 --- a/code/modules/hydroponics/grown/garlic.dm +++ b/code/modules/hydroponics/grown/garlic.dm @@ -23,6 +23,8 @@ /obj/item/clothing/neck/garlic_necklace name = "garlic necklace" - desc = "A clove of garlic on a string, tied to itself in a circle, just might fit around your neck. For paranoid people who fear getting their blood sucked." + desc = "A clove of garlic on a cable, tied to itself in a circle, just might fit around your neck. For loonies people who fear getting their blood sucked." icon_state = "garlic_necklace" + item_state = "garlic_necklace" + alternate_worn_icon = 'icons/mob/neck.dmi' \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index 9640c72481..eb1b38b9ff 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -247,13 +247,13 @@ /proc/CanHug(mob/living/M) if(!istype(M)) - return 0 + return FALSE if(M.stat == DEAD) - return 0 + return FALSE if(M.getorgan(/obj/item/organ/alien/hivenode)) - return 0 + return FALSE if(AmBloodsucker(M)) - return 0 + return FALSE if(ismonkey(M)) return 1 @@ -262,9 +262,9 @@ if(ishuman(C) && !(SLOT_WEAR_MASK in C.dna.species.no_equip)) var/mob/living/carbon/human/H = C if(H.is_mouth_covered(head_only = 1)) - return 0 - return 1 - return 0 + return FALSE + return TRUE + return FALSE #undef MIN_ACTIVE_TIME #undef MAX_ACTIVE_TIME diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm index b62b8304da..6a4ef2e9d9 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -82,7 +82,7 @@ to_chat(H, "You're already full!") return //This checks whether or not they are wearing a garlic clove on their neck - if(sucking_checks(victim, TRUE, FALSE)) + if(!sucking_checks(victim, TRUE, FALSE)) return if(victim.stat == DEAD) to_chat(H, "You need a living victim!") @@ -96,7 +96,7 @@ to_chat(H, "[victim] is blessed! You stop just in time to avoid catching fire.") return //Here we check now for both the garlic cloves on the neck and for blood in the victims bloodstream. - if(sucking_checks(victim, TRUE, TRUE)) + if(!sucking_checks(victim, TRUE, TRUE)) return if(!do_after(H, 30, target = victim)) return diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 837c3614a8..ce276a0d8b 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -18,6 +18,7 @@ /datum/reagent/consumable/on_mob_life(mob/living/carbon/M) current_cycle++ M.nutrition += nutriment_factor + M.CheckBloodsuckerEatFood(nutriment_factor) holder.remove_reagent(type, metabolization_rate) /datum/reagent/consumable/reaction_mob(mob/living/M, method=TOUCH, reac_volume) diff --git a/icons/mob/neck.dmi b/icons/mob/neck.dmi index de59a136d99ca23e0b751b962395756793bcaafb..d899950b791ce189c53b278e03adf02163ad67a3 100644 GIT binary patch delta 3295 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 delta 3009 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 DO}7Xq diff --git a/icons/obj/clothing/neck.dmi b/icons/obj/clothing/neck.dmi index 0bdaa36e6248c6651f423569e52749145389f88c..ea44ae0a7c1ef53a3ef91b29ff6da5ca40799b05 100644 GIT binary patch delta 2685 zcmV-@3WD{r7PJ?TBmq9LB{Knk?%kvI?ak`fnDXA$^5(pGG0MpR0004WQchCV=-0C=30l(9|&F${+1%Tq+{45Glwf?8D_=qn&6aWB^8 zl9S_t;OPkzA$36K+wAE3f7!B~wSC_04@bLwIhZ%(N+sJT`*?e2x_1hH5?k_cZ@P%o zN4X?bK(K`?m(D1JE7Jwy+FmxMJ28xSiT^mppuu8cCYMx}RZwE7zD)D1OW+5UsRusI zQlID;bf}L^RYs^fyb9BVp=ZRrNbx<0MS?aF9Y3M?k`l0^)MDxydf-IONYc zOp9Alsn!4gAJ{qP-asVx+*rGrJZoN*#OFftd){;3bFVRsNS~^IVln-AJgy&4BtGu` z$)tWfHu6YI7$1GCB}|N^K8i3o{zOk0o6r-+C-sDhbSnKZgvlvAVQge#VnhQNADx^W z)c__^>1iG?lkw#npPCxi1I|oLXaQ#@C$)enzQ$SO4uH9-DGeYPI5ROb!v+NmoSmGV zWrG3*9-AIZtAdh$rFS1fFfccj%ke>pJsO#a!8GJdj6WWojKef!OiWCt(?Bbi%iBL^aD&Lb2&|b2@mqC#e@7R_)@7Jk~&or#28#uf)%5GgGAh&gK z08!+BpmGo65aP_6&*wdSxO4IOFX`V9QR+Sbg!A*B@`g%K=1}uRiWDi*f2@LOE-Yxq ziPuGStu~$h_}3K6^jo_HITqFOQn*UP~chRayb}6lkk4{VP!=PXc69z zKd!C@1xR=(HK9d#D4uYQ#NWeje4WG$7R=IriU2fCQ!!q&%BupLcj6#ot>TC z-MzhCrH2wwCYc44Nmc_?Dvh{YjItLH5-b}HMp*?|!P|59&s8_)z&<|1`?c*Yu#e9$ z_$B};D?@;gVem}=QdSgzb!amcexdLiKipm4+uLIn63Vaubhb3N`7px*(Am;|C;+m$ zWh~d6gGtCPA~*-PU=lKekPt*H6`W2ploCh?B9@Czr%|K?02}=6{l^b?cMiER;F5?7 z&X(pDAaF^}VTr!pl3k8G%K%xU=*Z8urTwE+76aW$(AnR}T z@9KAWEuoKC>=GUU*){$Lyq3{NEOr@>fc%hvui*7NK>=I=kBB_bYk2*CK~Ml!#3Ld< zuwF?Y1so#Z)@$jbfJ5X5*DDF>g%f%$Ap?PP#KAcV6fRPv|AAVzeRLEwghq&Wd~CN` zL4z<7cy_zp4kw{acz^zRauQZR!b63Wuw}PT1fXr(LBlB2YPSR+MkU06GRZ;HC}i6w zt+vFoZPg?^eRKK-eonc6D|9wG8}QS)FM;zw6sJ!08%I|9d>((8&h_>aGs~0mOczIq^0coFDF^7f^sX#}5b8 zUSA|wHX4kwH^<=po3pbwvJwhHKr@UDS!uP-&NPH@eZ%0c4;co3-vl6KMbT(ZPtX4P z>x|<=!ofSk2jABb4&FU{m|+3vY-v9H2L8JL_aPyO*lszUhFOkvCAy35`+eY&h)2$r zCS3akQCdK>Wg`q9VEg2R`V567e0##9))DNZPuezl39Mn;RUaG2t)mt~0U*%qq2My)cTX_9VPypA$BO-@PZ>5g{4v|Brw-PdxaE?L^7b#MtNRc9a zoVw?zZqOK<0Pg~iVMXi;JUqMT1_{Ec&xhyCXFB~iW|*GKuphYWT{fHW#(rP>eDRz) zA12iBAzX)lxOIte2+0uoJYVz&bRN1e4_`V1hm{|=> z;qz_!h;Fcd#{|T6eV-e!4JIt&>l+Gn!@O58sK1RgVl`# zcokB>YsFcZL%?xm|Nr`yr)&KKI@QcoR&C z_0Q*Sf-kYp^Ep?I11ho4^Enq)fUBME`CQl=^}xcwD(s{F9wDr2alf)5tuW|4);6pK rMp11;TVN9GsDnm`6e&`qPfY&+-(PbFg4`VK00000NkvXXu0mjf4fXKt delta 2554 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 Q^Z)<=07*qoM6N<$f@%1{O#lD@ From 7d22cb00d03b31b63cd79661b9dacb1063d398c1 Mon Sep 17 00:00:00 2001 From: Artur Date: Wed, 25 Mar 2020 19:32:46 +0200 Subject: [PATCH 040/190] Mixes and fixes --- code/__HELPERS/unsorted.dm | 3 - code/_onclick/hud/human.dm | 2 +- .../game/gamemodes/bloodsucker/bloodsucker.dm | 2 +- .../bloodsucker/bloodsucker_life.dm | 51 +++----- .../bloodsucker/bloodsucker_powers.dm | 6 +- .../bloodsucker/bloodsucker_sunlight.dm | 10 +- .../bloodsucker/datum_bloodsucker.dm | 120 ++++++++---------- .../bloodsucker/objects/bloodsucker_crypt.dm | 4 +- .../antagonists/bloodsucker/powers/feed.dm | 4 +- code/modules/language/vampiric.dm | 2 +- .../carbon/human/species_types/jellypeople.dm | 2 +- .../chemistry/reagents/food_reagents.dm | 6 +- 12 files changed, 97 insertions(+), 115 deletions(-) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index e0300eca10..1240c38d93 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1573,11 +1573,8 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) return TRUE if(check_neck) if(istype(target.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) - to_chat(src, "[target] is wearing a garlic clove around their neck! You cant drink from them while it is on them!") return FALSE if(check_blood) if(target.reagents.has_reagent(/datum/reagent/consumable/garlic)) - to_chat(target, "[src] tries to bite you, but recoils in disgust!") - to_chat(src, "[target] reeks of garlic! you can't bring yourself to drain such tainted blood.") return FALSE return TRUE diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 490f0aa0f0..328e008f10 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -367,7 +367,7 @@ blood_display.hud = src infodisplay += blood_display - vamprank_display = new /obj/screen/bloodsucker/rank_counter // Vampire Rank + vamprank_display = new /obj/screen/bloodsucker/rank_counter // Bloodsucker Rank vamprank_display.hud = src infodisplay += vamprank_display diff --git a/code/game/gamemodes/bloodsucker/bloodsucker.dm b/code/game/gamemodes/bloodsucker/bloodsucker.dm index 7f9873cfb0..adcb80ff07 100644 --- a/code/game/gamemodes/bloodsucker/bloodsucker.dm +++ b/code/game/gamemodes/bloodsucker/bloodsucker.dm @@ -133,7 +133,7 @@ // Not High Enough if(creator) var/datum/antagonist/bloodsucker/creator_bloodsucker = creator.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) - if(!istype(creator_bloodsucker) || creator_bloodsucker.vamplevel < BLOODSUCKER_LEVEL_TO_EMBRACE) + if(!istype(creator_bloodsucker) || creator_bloodsucker.bloodsucker_level < BLOODSUCKER_LEVEL_TO_EMBRACE) to_chat(creator, "Your blood is too thin to turn this corpse!") return FALSE return TRUE diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm index 01e8774c27..90919a4e80 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm @@ -15,7 +15,7 @@ var/notice_healing while(owner && !AmFinalDeath()) // owner.has_antag_datum(ANTAG_DATUM_BLOODSUCKER) == src if(owner.current.stat == CONSCIOUS && !poweron_feed && !HAS_TRAIT(owner.current, TRAIT_DEATHCOMA)) // Deduct Blood - AddBloodVolume(-0.1) // -.15 (before tick went from 10 to 30, but we also charge more for faking life now) + AddBloodVolume(passive_blood_drain) // -.1 currently if(HandleHealing(1)) // Heal if(notice_healing == FALSE && owner.current.blood_volume > 0) to_chat(owner, "The power of your blood begins knitting your wounds...") @@ -39,12 +39,12 @@ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /datum/antagonist/bloodsucker/proc/AddBloodVolume(value) - owner.current.blood_volume = CLAMP(owner.current.blood_volume + value, 0, maxBloodVolume) + owner.current.blood_volume = CLAMP(owner.current.blood_volume + value, 0, max_blood_volume) update_hud() /datum/antagonist/bloodsucker/proc/HandleFeeding(mob/living/carbon/target, mult=1) // mult: SILENT feed is 1/3 the amount - var/blood_taken = min(feedAmount, target.blood_volume) * mult // Starts at 15 (now 8 since we doubled the Feed time) + var/blood_taken = min(feed_amount, target.blood_volume) * mult // Starts at 15 (now 8 since we doubled the Feed time) target.blood_volume -= blood_taken // Simple Animals lose a LOT of blood, and take damage. This is to keep cats, cows, and so forth from giving you insane amounts of blood. if(!ishuman(target)) @@ -82,32 +82,21 @@ /datum/antagonist/bloodsucker/proc/HandleHealing(mult = 1) // NOTE: Mult of 0 is just a TEST to see if we are injured and need to go into Torpor! //It is called from your coffin on close (by you only) - var/notice_garlic - var/notice_necklace + var/actual_regen = regen_rate + additional_regen if(poweron_masquerade == TRUE || owner.current.AmStaked()) return FALSE - if(owner.current.reagents?.has_reagent(/datum/reagent/consumable/garlic)) - if(notice_garlic) - to_chat(owner.current, "Garlic in your blood is interfering with your regeneration!") - notice_garlic = TRUE + if(owner.current.reagents.has_reagent(/datum/reagent/consumable/garlic)) return FALSE if(istype(owner.current.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) - if(notice_necklace) - to_chat(owner.current, "The necklace on your neck is interrupting your healing!") - notice_necklace = TRUE return FALSE - owner.current.adjustStaminaLoss(-1.5 + (regenRate * -7) * mult, 0) // Humans lose stamina damage really quickly. Vamps should heal more. - owner.current.adjustCloneLoss(-0.1 * (regenRate * 2) * mult, 0) - owner.current.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1 * (regenRate * 4) * mult) //adjustBrainLoss(-1 * (regenRate * 4) * mult, 0) - if(notice_garlic) - notice_garlic = FALSE - if(notice_necklace) - notice_necklace = FALSE + owner.current.adjustStaminaLoss(-1.5 + (actual_regen * -7) * mult, 0) // Humans lose stamina damage really quickly. Vamps should heal more. + owner.current.adjustCloneLoss(-0.1 * (actual_regen * 2) * mult, 0) + owner.current.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1 * (actual_regen * 4) * mult) // No Bleeding if(ishuman(owner.current)) //NOTE Current bleeding is horrible, not to count the amount of blood ballistics delete. var/mob/living/carbon/human/H = owner.current if(H.bleed_rate > 0) //Only heal bleeding if we are actually bleeding - H.bleed_rate =- 0.5 + regenRate * 0.2 * mult + H.bleed_rate =- 0.5 + actual_regen * 0.2 * mult if(iscarbon(owner.current)) // Damage Heal: Do I have damage to ANY bodypart? var/mob/living/carbon/C = owner.current var/costMult = 1 // Coffin makes it cheaper @@ -115,7 +104,7 @@ var/amInCoffinWhileTorpor = istype(C.loc, /obj/structure/closet/crate/coffin) && (mult == 0 || HAS_TRAIT(C, TRAIT_DEATHCOMA)) // Check for mult 0 OR death coma. (mult 0 means we're testing from coffin) if(amInCoffinWhileTorpor) mult *= 4 // Increase multiplier if we're sleeping in a coffin. - fireheal = min(C.getFireLoss(), regenRate) // NOTE: Burn damage ONLY heals in torpor. + fireheal = min(C.getFireLoss(), actual_regen) // NOTE: Burn damage ONLY heals in torpor. costMult = 0.25 C.ExtinguishMob() CureDisabilities() // Extinguish Fire @@ -125,12 +114,10 @@ else if(owner.current.blood_volume <= 0) // No Blood? Lower Mult mult = 0.25 - // Crit from burn? Lower damage to maximum allowed. - //if (C.getFireLoss() > owner.current.getMaxHealth()) - // fireheal = regenRate / 2 + // BRUTE: Always Heal - var/bruteheal = min(C.getBruteLoss(), regenRate) - var/toxinheal = min(C.getToxLoss(), regenRate) + var/bruteheal = min(C.getBruteLoss(), actual_regen) + var/toxinheal = min(C.getToxLoss(), actual_regen) // Heal if Damaged if(bruteheal + fireheal + toxinheal > 0) // Just a check? Don't heal/spend, and return. if(mult == 0) @@ -195,10 +182,14 @@ if(owner.current.blood_volume < BLOOD_VOLUME_BAD / 2) owner.current.blur_eyes(8 - 8 * (owner.current.blood_volume / BLOOD_VOLUME_BAD)) // Nutrition + owner.current.nutrition = clamp(owner.current.blood_volume, 545, 0) //The amount of blood is how full we are. + //A bit higher regeneration based on blood volume if(owner.current.blood_volume < BLOOD_VOLUME_NORMAL) - owner.current.nutrition = min(owner.current.blood_volume, NUTRITION_LEVEL_WELL_FED) - else if(owner.current.blood_volume < BLOOD_VOLUME_SAFE) - owner.current.nutrition = min(owner.current.blood_volume, NUTRITION_LEVEL_FED) // <-- 350 //NUTRITION_LEVEL_FULL + additional_regen = 0.3 + else if(owner.current.blood_volume < BLOOD_VOLUME_OKAY) + additional_regen = 0.2 + else if(owner.current.blood_volume < BLOOD_VOLUME_BAD) + additional_regen = 0.1 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // DEATH @@ -300,7 +291,7 @@ // Free my Vassals! FreeAllVassals() // Elders get Dusted - if(vamplevel >= 4) // (vamptitle) + if(bloodsucker_level >= 4) // (bloodsucker_title) owner.current.visible_message("[owner.current]'s skin crackles and dries, their skin and bones withering to dust. A hollow cry whips from what is now a sandy pile of remains.", \ "Your soul escapes your withering body as the abyss welcomes you to your Final Death.", \ "You hear a dry, crackling sound.") diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm b/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm index abfd2d120f..5c4b1f2b9f 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_powers.dm @@ -94,10 +94,12 @@ to_chat(owner, "You have a stake in your chest! Your powers are useless.") return FALSE if(istype(owner.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) - to_chat(owner, "") + if(display_error) + to_chat(owner, "") return FALSE if(owner.reagents?.has_reagent(/datum/reagent/consumable/garlic)) - to_chat(owner, "Garlic in your blood is interfering with your powers!") + if(display_error) + to_chat(owner, "Garlic in your blood is interfering with your powers!") return FALSE // Incap? if(must_be_capacitated) diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_sunlight.dm b/code/modules/antagonists/bloodsucker/bloodsucker_sunlight.dm index 263f91a9a6..b7d98c6783 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_sunlight.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_sunlight.dm @@ -141,23 +141,23 @@ if(!bloodsuckerdatum.warn_sun_locker) to_chat(M, "Your skin sizzles. The [M.current.loc] doesn't protect well against UV bombardment.") bloodsuckerdatum.warn_sun_locker = TRUE - M.current.adjustFireLoss(0.5 + bloodsuckerdatum.vamplevel / 2) // M.current.fireloss += 0.5 + bloodsuckerdatum.vamplevel / 2 // Do DIRECT damage. Being spaced was causing this to not occur. setFireLoss(bloodsuckerdatum.vamplevel) + M.current.adjustFireLoss(0.5 + bloodsuckerdatum.bloodsucker_level / 2) // M.current.fireloss += 0.5 + bloodsuckerdatum.bloodsucker_level / 2 // Do DIRECT damage. Being spaced was causing this to not occur. setFireLoss(bloodsuckerdatum.bloodsucker_level) M.current.updatehealth() SEND_SIGNAL(M.current, COMSIG_ADD_MOOD_EVENT, "vampsleep", /datum/mood_event/daylight_1) // Out in the Open? Buh Bye else if(!bloodsuckerdatum.warn_sun_burn) - if(bloodsuckerdatum.vamplevel > 0) + if(bloodsuckerdatum.bloodsucker_level > 0) to_chat(M, "The solar flare sets your skin ablaze!") else to_chat(M, "The solar flare scalds your neophyte skin!") bloodsuckerdatum.warn_sun_burn = TRUE if(M.current.fire_stacks <= 0) M.current.fire_stacks = 0 - if(bloodsuckerdatum.vamplevel > 0) - M.current.adjust_fire_stacks(0.2 + bloodsuckerdatum.vamplevel / 10) + if(bloodsuckerdatum.bloodsucker_level > 0) + M.current.adjust_fire_stacks(0.2 + bloodsuckerdatum.bloodsucker_level / 10) M.current.IgniteMob() - M.current.adjustFireLoss(2 + bloodsuckerdatum.vamplevel) // M.current.fireloss += 2 + bloodsuckerdatum.vamplevel // Do DIRECT damage. Being spaced was causing this to not occur. //setFireLoss(2 + bloodsuckerdatum.vamplevel) + M.current.adjustFireLoss(2 + bloodsuckerdatum.bloodsucker_level) // M.current.fireloss += 2 + bloodsuckerdatum.bloodsucker_level // Do DIRECT damage. Being spaced was causing this to not occur. //setFireLoss(2 + bloodsuckerdatum.bloodsucker_level) M.current.updatehealth() SEND_SIGNAL(M.current, COMSIG_ADD_MOOD_EVENT, "vampsleep", /datum/mood_event/daylight_2) diff --git a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm index 1821ec2f3d..f8c35f7938 100644 --- a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm +++ b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm @@ -8,9 +8,9 @@ job_rank = ROLE_BLOODSUCKER // NAME - var/vampname // My Dracula name - var/vamptitle // My Dracula title - var/vampreputation // My "Surname" or description of my deeds + var/bloodsucker_name // My Dracula style name + var/bloodsucker_title // My Dracula style title + var/bloodsucker_reputation // My "Surname" or description of my deeds // CLAN var/datum/team/vampireclan/clan var/list/datum/antagonist/vassal/vassals = list()// Vassals under my control. Periodically remove the dead ones. @@ -20,28 +20,26 @@ var/poweron_feed = FALSE // Am I feeding? var/poweron_masquerade = FALSE // STATS - var/vamplevel = 0 - var/vamplevel_unspent = 1 - var/regenRate = 0.4 // How fast do I regenerate? - var/feedAmount = 15 // Amount of blood drawn from a target per tick. - var/maxBloodVolume = 600 // Maximum blood a Vamp can hold via feeding. // BLOOD_VOLUME_NORMAL 550 // BLOOD_VOLUME_SAFE 475 //BLOOD_VOLUME_OKAY 336 //BLOOD_VOLUME_BAD 224 // BLOOD_VOLUME_SURVIVE 122 + var/bloodsucker_level + var/bloodsucker_level_unspent = 1 + var/regen_rate = 0.4 // How fast do I regenerate? + var/additional_regen // How much additional blood regen we gain from bonuses such as high blood. + var/feed_amount = 15 // Amount of blood drawn from a target per tick. + var/max_blood_volume = 600 // Maximum blood a Vamp can hold via feeding. // OBJECTIVES var/list/datum/objective/objectives_given = list() // For removal if needed. var/area/lair var/obj/structure/closet/crate/coffin // TRACKING - var/foodInGut = 0 // How much food to throw up later. You shouldn't have eaten that. - var/warn_sun_locker = FALSE // So we only get the locker burn message once per day. - var/warn_sun_burn = FALSE // So we only get the sun burn message once per day. - var/had_toxlover = FALSE + var/foodInGut // How much food to throw up later. You shouldn't have eaten that. + var/warn_sun_locker // So we only get the locker burn message once per day. + var/warn_sun_burn // So we only get the sun burn message once per day. + var/had_toxlover var/level_bloodcost + var/passive_blood_drain = -0.1 //The amount of blood we loose each bloodsucker life() tick // LISTS var/static/list/defaultTraits = list (TRAIT_STABLEHEART, TRAIT_NOBREATH, TRAIT_SLEEPIMMUNE, TRAIT_NOCRITDAMAGE, TRAIT_RESISTCOLD, TRAIT_RADIMMUNE, TRAIT_NIGHT_VISION, \ TRAIT_NOSOFTCRIT, TRAIT_NOHARDCRIT, TRAIT_AGEUSIA, TRAIT_COLDBLOODED, TRAIT_NONATURALHEAL, TRAIT_NOMARROW, TRAIT_NOPULSE, TRAIT_VIRUSIMMUNE) - // NOTES: TRAIT_AGEUSIA <-- Doesn't like flavors. - // REMOVED: TRAIT_NODEATH - // TO ADD: - //var/static/list/defaultOrgans = list (/obj/item/organ/heart/vampheart,/obj/item/organ/heart/vampeyes) /datum/antagonist/bloodsucker/on_gain() SSticker.mode.bloodsuckers |= owner // Add if not already in here (and you might be, if you were picked at round start) @@ -68,18 +66,18 @@ /datum/antagonist/bloodsucker/greet() var/fullname = ReturnFullName(TRUE) - to_chat(owner, "You are [fullname], a bloodsucking vampire!
") + to_chat(owner, "You are [fullname], a strain of vampire dubbed bloodsucker!
") owner.announce_objectives() to_chat(owner, "* You regenerate your health slowly, you're weak to fire, and you depend on blood to survive. Allow your stolen blood to run too low, and you will find yourself at \ risk of being discovered!
") //to_chat(owner, "As an immortal, your power is linked to your age. The older you grow, the more abilities you will have access to.") - var/vamp_greet - vamp_greet += "* Other Bloodsuckers are not necessarily your friends, but your survival may depend on cooperation. Betray them at your own discretion and peril.
" - vamp_greet += "* Use \",b\" to speak your ancient Bloodsucker language.
" - vamp_greet += "Bloodsucker Tip: Rest in a Coffin to claim it, and that area, as your lair.
" - vamp_greet += "Bloodsucker Tip: Fear the daylight! Solar flares will bombard the station periodically, and only your coffin can guarantee your safety.
" - vamp_greet += "Bloodsucker Tip: You wont loose blood if you are unconcious or sleeping. Use this to your advantage to conserve blood.
" - to_chat(owner, vamp_greet) + var/bloodsucker_greet + bloodsucker_greet += "* Other Bloodsuckers are not necessarily your friends, but your survival may depend on cooperation. Betray them at your own discretion and peril.
" + bloodsucker_greet += "* Use \",b\" to speak your ancient Bloodsucker language.
" + bloodsucker_greet += "Bloodsucker Tip: Rest in a Coffin to claim it, and that area, as your lair.
" + bloodsucker_greet += "Bloodsucker Tip: Fear the daylight! Solar flares will bombard the station periodically, and only your coffin can guarantee your safety.
" + bloodsucker_greet += "Bloodsucker Tip: You wont loose blood if you are unconcious or sleeping. Use this to your advantage to conserve blood.
" + to_chat(owner, bloodsucker_greet) owner.current.playsound_local(null, 'sound/bloodsucker/BloodsuckerAlert.ogg', 100, FALSE, pressure_affected = FALSE) antag_memory += "Although you were born a mortal, in un-death you earned the name [fullname].
" @@ -100,7 +98,7 @@ /datum/antagonist/bloodsucker/proc/SelectFirstName() // Names (EVERYONE gets one)) if(owner.current.gender == MALE) - vampname = pick("Desmond","Rudolph","Dracul","Vlad","Pyotr","Gregor","Cristian","Christoff","Marcu","Andrei","Constantin","Gheorghe","Grigore","Ilie","Iacob","Luca","Mihail","Pavel","Vasile","Octavian","Sorin", \ + bloodsucker_name = pick("Desmond","Rudolph","Dracul","Vlad","Pyotr","Gregor","Cristian","Christoff","Marcu","Andrei","Constantin","Gheorghe","Grigore","Ilie","Iacob","Luca","Mihail","Pavel","Vasile","Octavian","Sorin", \ "Sveyn","Aurel","Alexe","Iustin","Theodor","Dimitrie","Octav","Damien","Magnus","Caine","Abel", // Romanian/Ancient "Lucius","Gaius","Otho","Balbinus","Arcadius","Romanos","Alexios","Vitellius", // Latin "Melanthus","Teuthras","Orchamus","Amyntor","Axion", // Greek @@ -108,7 +106,7 @@ "Dio") else - vampname = pick("Islana","Tyrra","Greganna","Pytra","Hilda","Andra","Crina","Viorela","Viorica","Anemona","Camelia","Narcisa","Sorina","Alessia","Sophia","Gladda","Arcana","Morgan","Lasarra","Ioana","Elena", \ + bloodsucker_name = pick("Islana","Tyrra","Greganna","Pytra","Hilda","Andra","Crina","Viorela","Viorica","Anemona","Camelia","Narcisa","Sorina","Alessia","Sophia","Gladda","Arcana","Morgan","Lasarra","Ioana","Elena", \ "Alina","Rodica","Teodora","Denisa","Mihaela","Svetla","Stefania","Diyana","Kelssa","Lilith", // Romanian/Ancient "Alexia","Athanasia","Callista","Karena","Nephele","Scylla","Ursa", // Latin "Alcestis","Damaris","Elisavet","Khthonia","Teodora", // Greek @@ -116,57 +114,57 @@ /datum/antagonist/bloodsucker/proc/SelectTitle(am_fledgling = 0, forced = FALSE) // Already have Title - if (!forced && vamptitle != null) + if(!forced && bloodsucker_title != null) return // Titles [Master] - if (!am_fledgling) + if(!am_fledgling) if(owner.current.gender == MALE) - vamptitle = pick ("Count","Baron","Viscount","Prince","Duke","Tzar","Dreadlord","Lord","Master") + bloodsucker_title = pick ("Count","Baron","Viscount","Prince","Duke","Tzar","Dreadlord","Lord","Master") else - vamptitle = pick ("Countess","Baroness","Viscountess","Princess","Duchess","Tzarina","Dreadlady","Lady","Mistress") + bloodsucker_title = pick ("Countess","Baroness","Viscountess","Princess","Duchess","Tzarina","Dreadlady","Lady","Mistress") to_chat(owner, "You have earned a title! You are now known as [ReturnFullName(TRUE)]!") // Titles [Fledgling] else - vamptitle = null + bloodsucker_title = null /datum/antagonist/bloodsucker/proc/SelectReputation(am_fledgling = 0, forced=FALSE) // Already have Reputation - if(!forced && vampreputation != null) + if(!forced && bloodsucker_reputation != null) return // Reputations [Master] if(!am_fledgling) - vampreputation = pick("Butcher","Blood Fiend","Crimson","Red","Black","Terror","Nightman","Feared","Ravenous","Fiend","Malevolent","Wicked","Ancient","Plaguebringer","Sinister","Forgotten","Wretched","Baleful", \ + bloodsucker_reputation = pick("Butcher","Blood Fiend","Crimson","Red","Black","Terror","Nightman","Feared","Ravenous","Fiend","Malevolent","Wicked","Ancient","Plaguebringer","Sinister","Forgotten","Wretched","Baleful", \ "Inqisitor","Harvester","Reviled","Robust","Betrayer","Destructor","Damned","Accursed","Terrible","Vicious","Profane","Vile","Depraved","Foul","Slayer","Manslayer","Sovereign","Slaughterer", \ "Forsaken","Mad","Dragon","Savage","Villainous","Nefarious","Inquisitor","Marauder","Horrible","Immortal","Undying","Overlord","Corrupt","Hellspawn","Tyrant","Sanguineous") if(owner.current.gender == MALE) if(prob(10)) // Gender override - vampreputation = pick("King of the Damned", "Blood King", "Emperor of Blades", "Sinlord", "God-King") + bloodsucker_reputation = pick("King of the Damned", "Blood King", "Emperor of Blades", "Sinlord", "God-King") else if(prob(10)) // Gender override - vampreputation = pick("Queen of the Damned", "Blood Queen", "Empress of Blades", "Sinlady", "God-Queen") + bloodsucker_reputation = pick("Queen of the Damned", "Blood Queen", "Empress of Blades", "Sinlady", "God-Queen") to_chat(owner, "You have earned a reputation! You are now known as [ReturnFullName(TRUE)]!") // Reputations [Fledgling] else - vampreputation = pick ("Crude","Callow","Unlearned","Neophyte","Novice","Unseasoned","Fledgling","Young","Neonate","Scrapling","Untested","Unproven","Unknown","Newly Risen","Born","Scavenger","Unknowing",\ + bloodsucker_reputation = pick ("Crude","Callow","Unlearned","Neophyte","Novice","Unseasoned","Fledgling","Young","Neonate","Scrapling","Untested","Unproven","Unknown","Newly Risen","Born","Scavenger","Unknowing",\ "Unspoiled","Disgraced","Defrocked","Shamed","Meek","Timid","Broken")//,"Fresh") /datum/antagonist/bloodsucker/proc/AmFledgling() - return !vamptitle + return !bloodsucker_title /datum/antagonist/bloodsucker/proc/ReturnFullName(var/include_rep=0) var/fullname // Name First - fullname = (vampname ? vampname : owner.current.name) + fullname = (bloodsucker_name ? bloodsucker_name : owner.current.name) // Title - if(vamptitle) - fullname = vamptitle + " " + fullname + if(bloodsucker_title) + fullname = bloodsucker_title + " " + fullname // Rep - if(include_rep && vampreputation) - fullname = fullname + " the " + vampreputation + if(include_rep && bloodsucker_reputation) + fullname = fullname + " the " + bloodsucker_reputation return fullname @@ -201,15 +199,12 @@ var/mob/living/carbon/human/H = owner.current var/datum/species/S = H.dna.species // Make Changes - H.physiology.brute_mod *= 0.8 // <-------------------- Start small, but burn mod increases based on rank! + H.physiology.brute_mod *= 0.8 H.physiology.cold_mod = 0 H.physiology.stun_mod *= 0.5 H.physiology.siemens_coeff *= 0.75 //base electrocution coefficient 1 - //S.heatmod += 0.5 // Heat shouldn't affect. Only Fire. - //S.punchstunthreshold = 8 //damage at which punches from this race will stun 9 S.punchdamagelow += 1 //lowest possible punch damage 0 S.punchdamagehigh += 1 //highest possible punch damage 9 - // Clown if(istype(H) && owner.assigned_role == "Clown") H.dna.remove_mutation(CLOWNMUT) to_chat(H, "As a vampiric clown, you are no longer a danger to yourself. Your nature is subdued.") @@ -217,8 +212,6 @@ CheckVampOrgans() // Heart, Eyes // Language owner.current.grant_language(/datum/language/vampiric) - // Soul - //owner.current.hellbound = TRUE Causes wierd stuff owner.hasSoul = FALSE // If false, renders the character unable to sell their soul. owner.isholy = FALSE // is this person a chaplain or admin role allowed to use bibles // Disabilities @@ -250,7 +243,6 @@ // Clown if(istype(H) && owner.assigned_role == "Clown") H.dna.add_mutation(CLOWNMUT) - // NOTE: Use initial() to return things to default! // Physiology owner.current.regenerate_organs() // Update Health @@ -266,13 +258,13 @@ set waitfor = FALSE if(!owner || !owner.current) return - vamplevel_unspent ++ + bloodsucker_level_unspent ++ // Spend Rank Immediately? if(istype(owner.current.loc, /obj/structure/closet/crate/coffin)) SpendRank() else to_chat(owner, "You have grown more ancient! Sleep in a coffin that you have claimed to thicken your blood and become more powerful.") - if(vamplevel_unspent >= 2) + if(bloodsucker_level_unspent >= 2) to_chat(owner, "Bloodsucker Tip: If you cannot find or steal a coffin to use, you can build one from wooden planks.
") /datum/antagonist/bloodsucker/proc/LevelUpPowers() @@ -281,10 +273,10 @@ /datum/antagonist/bloodsucker/proc/SpendRank() set waitfor = FALSE - if(vamplevel_unspent <= 0 || !owner || !owner.current || !owner.current.client || !isliving(owner.current)) + if(bloodsucker_level_unspent <= 0 || !owner || !owner.current || !owner.current.client || !isliving(owner.current)) return var/mob/living/L = owner.current - level_bloodcost = maxBloodVolume * 0.2 + level_bloodcost = max_blood_volume * 0.2 //If the blood volume of the bloodsucker is lower than the cost to level up, return and inform the bloodsucker //TODO: Make this into a radial, or perhaps a tgui next UI @@ -300,7 +292,7 @@ if(options.len > 1) var/choice = input(owner.current, "You have the opportunity to grow more ancient at the cost of [level_bloodcost] units of blood. Select a power to advance your Rank.", "Your Blood Thickens...") in options // Cheat-Safety: Can't keep opening/closing coffin to spam levels - if(vamplevel_unspent <= 0) // Already spent all your points, and tried opening/closing your coffin, pal. + if(bloodsucker_level_unspent <= 0) // Already spent all your points, and tried opening/closing your coffin, pal. return if(!istype(owner.current.loc, /obj/structure/closet/crate/coffin)) to_chat(owner.current, "Return to your coffin to advance your Rank.") @@ -331,17 +323,17 @@ // More Health owner.current.setMaxHealth(owner.current.maxHealth + 10) // Vamp Stats - regenRate += 0.05 // Points of brute healed (starts at 0.3) - feedAmount += 2 // Increase how quickly I munch down vics (15) - maxBloodVolume += 100 // Increase my max blood (600) + regen_rate += 0.05 // Points of brute healed (starts at 0.3) + feed_amount += 2 // Increase how quickly I munch down vics (15) + max_blood_volume += 100 // Increase my max blood (600) ///////// - vamplevel ++ - vamplevel_unspent -- + bloodsucker_level ++ + bloodsucker_level_unspent -- // Assign True Reputation - if(vamplevel == 4) + if(bloodsucker_level == 4) SelectReputation(am_fledgling = FALSE, forced = TRUE) - to_chat(owner.current, "You are now a rank [vamplevel] Bloodsucker. Your strength, health, feed rate, regen rate, can have up to [vamplevel - count_vassals(owner.current.mind)] vassals, and maximum blood have all increased!") + to_chat(owner.current, "You are now a rank [bloodsucker_level] Bloodsucker. Your strength, health, feed rate, regen rate, can have up to [bloodsucker_level - count_vassals(owner.current.mind)] vassals, and maximum blood have all increased!") to_chat(owner.current, "Your existing powers have all ranked up as well!") update_hud(TRUE) owner.current.playsound_local(null, 'sound/effects/pope_entry.ogg', 25, TRUE, pressure_affected = FALSE) @@ -707,10 +699,10 @@ // Update Rank Counter if(owner.current.hud_used.vamprank_display) - var/valuecolor = vamplevel_unspent ? "#FFFF00" : "#FF0000" - owner.current.hud_used.vamprank_display.update_counter(vamplevel, valuecolor) + var/valuecolor = bloodsucker_level_unspent ? "#FFFF00" : "#FF0000" + owner.current.hud_used.vamprank_display.update_counter(bloodsucker_level, valuecolor) if(updateRank) // Only change icon on special request. - owner.current.hud_used.vamprank_display.icon_state = (vamplevel_unspent > 0) ? "rank_up" : "rank" + owner.current.hud_used.vamprank_display.icon_state = (bloodsucker_level_unspent > 0) ? "rank_up" : "rank" /obj/screen/bloodsucker diff --git a/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm b/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm index c5f24ab537..7998a33c7b 100644 --- a/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm +++ b/code/modules/antagonists/bloodsucker/objects/bloodsucker_crypt.dm @@ -123,7 +123,7 @@ . += {"Simply click and hold on a victim, and then drag their sprite on the vassal rack. Alt click on the vassal rack to unbuckle them."} . += {"Make sure that the victim is handcuffed, or else they can simply run away or resist, as the process is not instant."} . += {"To convert the victim, simply click on the vassal rack itself. Sharp weapons work faster than other tools."} - . += {" You have only the power for [B.vamplevel - B.count_vassals(user.mind)] vassals"} + . += {" You have only the power for [B.bloodsucker_level - B.count_vassals(user.mind)] vassals"} /* if(user.mind.has_antag_datum(ANTAG_DATUM_VASSAL) . += {"This is the vassal rack, which allows your master to thrall crewmembers into his minions.\n Aid your master in bringing their victims here and keeping them secure.\n @@ -265,7 +265,7 @@ if(user.blood_volume < CONVERT_COST + 5) to_chat(user, "You don't have enough blood to initiate the Dark Communion with [target].") return - if(B.count_vassals(user.mind) > B.vamplevel) + if(B.count_vassals(user.mind) > B.bloodsucker_level) to_chat(user, "Your power is yet too weak to bring more vassals under your control....") return // Prep... diff --git a/code/modules/antagonists/bloodsucker/powers/feed.dm b/code/modules/antagonists/bloodsucker/powers/feed.dm index b0678d5ff4..5e82a282b2 100644 --- a/code/modules/antagonists/bloodsucker/powers/feed.dm +++ b/code/modules/antagonists/bloodsucker/powers/feed.dm @@ -263,7 +263,7 @@ to_chat(user, "Your victim is dead. [target.p_their(TRUE)] blood barely nourishes you.") warning_target_dead = TRUE // Full? - if(!warning_full && user.blood_volume >= bloodsuckerdatum.maxBloodVolume) + if(!warning_full && user.blood_volume >= bloodsuckerdatum.max_blood_volume) to_chat(user, "You are full. Further blood will be wasted.") warning_full = TRUE // Blood Remaining? (Carbons/Humans only) @@ -300,7 +300,7 @@ /datum/action/bloodsucker/feed/proc/CheckKilledTarget(mob/living/user, mob/living/target) - // Bad Vampire. You shouldn't do that. + // Bad Bloodsucker. You shouldn't do that. if(target && target.stat >= DEAD && ishuman(target)) SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "drankkilled", /datum/mood_event/drankkilled) // BAD // in bloodsucker_life.dm diff --git a/code/modules/language/vampiric.dm b/code/modules/language/vampiric.dm index 6da54ce844..ab48a17d2f 100644 --- a/code/modules/language/vampiric.dm +++ b/code/modules/language/vampiric.dm @@ -1,4 +1,4 @@ -// VAMPIRE LANGUAGE // +// BLOODSUCKER LANGUAGE // /datum/language/vampiric name = "Blah-Sucker" diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index 147cb30772..d81251eca9 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -44,7 +44,7 @@ C.faction |= "slime" /datum/species/jelly/spec_life(mob/living/carbon/human/H) - if(H.stat == DEAD || HAS_TRAIT(H, TRAIT_NOMARROW)) //can't farm slime jelly from a dead slime/jelly person indefinitely, and no regeneration for vampires + if(H.stat == DEAD || HAS_TRAIT(H, TRAIT_NOMARROW)) //can't farm slime jelly from a dead slime/jelly person indefinitely, and no regeneration for blooduskers return if(!H.blood_volume) H.blood_volume += 5 diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index ce276a0d8b..c003fc7111 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -448,8 +448,8 @@ . = 1 ..() -/datum/reagent/consumable/condensedcapsaicin/reaction_mob(mob/living/M, method, reac_volume) - if(AmBloodsucker(M)) +/datum/reagent/consumable/garlic/reaction_mob(mob/living/M, method, reac_volume) + if(AmBloodsucker(M, TRUE)) //Theyll be immune to garlic as long as they masquarade, but they cant do it if they already have it. switch(method) if(INGEST) if(prob(min(30, current_cycle))) @@ -467,7 +467,7 @@ to_chat(M, "You feel like your veins are boiling!") M.emote("scream") M.adjustFireLoss(5) - + ..() /datum/reagent/consumable/sprinkles name = "Sprinkles" value = 3 From 6e22438fb56f4856ac609962266a96deef1b97e1 Mon Sep 17 00:00:00 2001 From: Artur Date: Wed, 25 Mar 2020 19:39:19 +0200 Subject: [PATCH 041/190] Whoopsie~ Forgot to rename the recipy --- code/datums/components/crafting/recipes/recipes_clothing.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/components/crafting/recipes/recipes_clothing.dm b/code/datums/components/crafting/recipes/recipes_clothing.dm index fb3500a037..444eaeafaf 100644 --- a/code/datums/components/crafting/recipes/recipes_clothing.dm +++ b/code/datums/components/crafting/recipes/recipes_clothing.dm @@ -290,7 +290,7 @@ /datum/crafting_recipe/wintercoat_cosmic - name = "Cosmic Winter Coat" + name = "Garlic Necklace" result = /obj/item/clothing/neck/garlic_necklace reqs = list(/obj/item/reagent_containers/food/snacks/grown/garlic = 15, /obj/item/stack/cable_coil = 10) From 8d629221fd1ce03e1f8684003e758ad7cee66eb4 Mon Sep 17 00:00:00 2001 From: Artur Date: Wed, 25 Mar 2020 19:42:52 +0200 Subject: [PATCH 042/190] Make it look nicer --- code/game/gamemodes/bloodsucker/bloodsucker.dm | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/game/gamemodes/bloodsucker/bloodsucker.dm b/code/game/gamemodes/bloodsucker/bloodsucker.dm index adcb80ff07..3fe67fd431 100644 --- a/code/game/gamemodes/bloodsucker/bloodsucker.dm +++ b/code/game/gamemodes/bloodsucker/bloodsucker.dm @@ -269,6 +269,3 @@ /datum/game_mode/proc/remove_vassal(datum/mind/vassal) vassal.remove_antag_datum(ANTAG_DATUM_VASSAL) - - - \ No newline at end of file From 2546de3ee26c91deb336ee2feee424d0851c940e Mon Sep 17 00:00:00 2001 From: Artur Date: Wed, 25 Mar 2020 19:45:40 +0200 Subject: [PATCH 043/190] This is not neccesary --- code/modules/antagonists/bloodsucker/powers/feed.dm | 6 ------ 1 file changed, 6 deletions(-) diff --git a/code/modules/antagonists/bloodsucker/powers/feed.dm b/code/modules/antagonists/bloodsucker/powers/feed.dm index 5e82a282b2..71b866b2f4 100644 --- a/code/modules/antagonists/bloodsucker/powers/feed.dm +++ b/code/modules/antagonists/bloodsucker/powers/feed.dm @@ -67,12 +67,6 @@ if(display_error) to_chat(owner, "Your victim's blood is not suitable for you to take.") return FALSE - if(iscarbon(owner)) - //We want to check if the target is wearing a garlic necklance. - if(istype(owner.get_item_by_slot(SLOT_NECK), /obj/item/clothing/neck/garlic_necklace)) - if(display_error) - to_chat(owner, "Your victim is wearing a garlic clove on their neck! Disgusting!") - return FALSE return TRUE // If I'm not grabbing someone, find me someone nearby. From 4c4b1b340b844432c49eba3d05dcad43890c4e3c Mon Sep 17 00:00:00 2001 From: Artur Date: Wed, 25 Mar 2020 20:24:54 +0200 Subject: [PATCH 044/190] might as well fix the regen core name and a few tweaks. --- .../antagonists/bloodsucker/bloodsucker_life.dm | 15 +++++++++------ .../antagonists/bloodsucker/datum_bloodsucker.dm | 2 +- .../modules/mining/equipment/regenerative_core.dm | 14 ++++++++------ 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm index 90919a4e80..06eb271dd6 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm @@ -184,12 +184,15 @@ // Nutrition owner.current.nutrition = clamp(owner.current.blood_volume, 545, 0) //The amount of blood is how full we are. //A bit higher regeneration based on blood volume - if(owner.current.blood_volume < BLOOD_VOLUME_NORMAL) - additional_regen = 0.3 - else if(owner.current.blood_volume < BLOOD_VOLUME_OKAY) - additional_regen = 0.2 - else if(owner.current.blood_volume < BLOOD_VOLUME_BAD) - additional_regen = 0.1 + switch(owner.current.blood_volume) + if(owner.current.blood_volume < 700) + additional_regen = 0.4 + if(owner.current.blood_volume < BLOOD_VOLUME_NORMAL) + additional_regen = 0.3 + if(owner.current.blood_volume < BLOOD_VOLUME_OKAY) + additional_regen = 0.2 + if(owner.current.blood_volume < BLOOD_VOLUME_BAD) + additional_regen = 0.1 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // DEATH diff --git a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm index f8c35f7938..f95883e7c8 100644 --- a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm +++ b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm @@ -22,7 +22,7 @@ // STATS var/bloodsucker_level var/bloodsucker_level_unspent = 1 - var/regen_rate = 0.4 // How fast do I regenerate? + var/regen_rate = 0.3 // How fast do I regenerate? var/additional_regen // How much additional blood regen we gain from bonuses such as high blood. var/feed_amount = 15 // Amount of blood drawn from a target per tick. var/max_blood_volume = 600 // Maximum blood a Vamp can hold via feeding. diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm index c89698530f..c14aa097bb 100644 --- a/code/modules/mining/equipment/regenerative_core.dm +++ b/code/modules/mining/equipment/regenerative_core.dm @@ -26,8 +26,8 @@ slot = "hivecore" force = 0 actions_types = list(/datum/action/item_action/organ_action/use) - var/inert = 0 - var/preserved = 0 + var/inert + var/preserved /obj/item/organ/regenerative_core/Initialize() . = ..() @@ -38,7 +38,9 @@ go_inert() /obj/item/organ/regenerative_core/proc/preserved(implanted = 0) - inert = FALSE + if(inert) + name = initial(name) + inert = FALSE preserved = TRUE update_icon() desc = "All that remains of a hivelord. It is preserved, allowing you to use it to heal completely without danger of decay." @@ -88,10 +90,10 @@ else to_chat(user, "You start to smear [src] on yourself. It feels and smells disgusting, but you feel amazingly refreshed in mere moments.") SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "self")) - if(!AmBloodsucker(H)) - H.revive(full_heal = TRUE) - else + if(AmBloodsucker(H)) H.revive(full_heal = FALSE) + else + H.revive(full_heal = TRUE) qdel(src) user.log_message("[user] used [src] to heal [H]! Wake the fuck up, Samurai!", LOG_ATTACK, color="green") //Logging for 'old' style legion core use, when clicking on a sprite of yourself or another. From e8f3e0a3a1a5be681dee89385d07983310b53465 Mon Sep 17 00:00:00 2001 From: Artur Date: Thu, 26 Mar 2020 09:49:20 +0200 Subject: [PATCH 045/190] Forgot to add the mutation, what a dummy i am --- code/modules/hydroponics/grown/onion.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/hydroponics/grown/onion.dm b/code/modules/hydroponics/grown/onion.dm index 2ebaa6d5e2..a75b9caf5f 100644 --- a/code/modules/hydroponics/grown/onion.dm +++ b/code/modules/hydroponics/grown/onion.dm @@ -14,7 +14,7 @@ weed_chance = 3 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) - mutatelist = list(/obj/item/seeds/onion/red) + mutatelist = list(/obj/item/seeds/onion/red, /obj/item/seeds/garlic) /obj/item/reagent_containers/food/snacks/grown/onion seed = /obj/item/seeds/onion From 9db779ddc643ae2f15a8f16a6c335144942b9a23 Mon Sep 17 00:00:00 2001 From: Artur Date: Thu, 26 Mar 2020 23:38:25 +0200 Subject: [PATCH 046/190] Else if chain ahoy --- .../antagonists/bloodsucker/bloodsucker_life.dm | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm index 06eb271dd6..178d069f52 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm @@ -184,15 +184,14 @@ // Nutrition owner.current.nutrition = clamp(owner.current.blood_volume, 545, 0) //The amount of blood is how full we are. //A bit higher regeneration based on blood volume - switch(owner.current.blood_volume) - if(owner.current.blood_volume < 700) - additional_regen = 0.4 - if(owner.current.blood_volume < BLOOD_VOLUME_NORMAL) - additional_regen = 0.3 - if(owner.current.blood_volume < BLOOD_VOLUME_OKAY) - additional_regen = 0.2 - if(owner.current.blood_volume < BLOOD_VOLUME_BAD) - additional_regen = 0.1 + if(owner.current.blood_volume < 700) + additional_regen = 0.4 + else if(owner.current.blood_volume < BLOOD_VOLUME_NORMAL) + additional_regen = 0.3 + else if(owner.current.blood_volume < BLOOD_VOLUME_OKAY) + additional_regen = 0.2 + else if(owner.current.blood_volume < BLOOD_VOLUME_BAD) + additional_regen = 0.1 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // DEATH From 75c4e8b19ab478d8679b67f22dcbd28b3dbd88a5 Mon Sep 17 00:00:00 2001 From: Artur Date: Fri, 27 Mar 2020 10:17:42 +0200 Subject: [PATCH 047/190] What the fuck travis --- code/modules/antagonists/bloodsucker/datum_bloodsucker.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm index f95883e7c8..137739ec1d 100644 --- a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm +++ b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm @@ -22,9 +22,9 @@ // STATS var/bloodsucker_level var/bloodsucker_level_unspent = 1 - var/regen_rate = 0.3 // How fast do I regenerate? + var/regen_rate = 0.3 // How fast do I regenerate? var/additional_regen // How much additional blood regen we gain from bonuses such as high blood. - var/feed_amount = 15 // Amount of blood drawn from a target per tick. + var/feed_amount = 15 // Amount of blood drawn from a target per tick. var/max_blood_volume = 600 // Maximum blood a Vamp can hold via feeding. // OBJECTIVES var/list/datum/objective/objectives_given = list() // For removal if needed. From a5b158301bba58948253486542455412552f63db Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sat, 28 Mar 2020 03:11:56 +0100 Subject: [PATCH 048/190] Update kinetic_crusher.dm --- code/modules/mining/equipment/kinetic_crusher.dm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index b515ebbc13..1fd1b31b69 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -433,19 +433,23 @@ desc = "A glowing trinket that was originally the Hierophant's beacon. Suitable as a trophy for a kinetic crusher." icon_state = "vortex_talisman" denied_type = /obj/item/crusher_trophy/vortex_talisman + var/vortex_cd /obj/item/crusher_trophy/vortex_talisman/effect_desc() - return "mark detonation to create a barrier you can pass" + return "mark detonation to create a barrier you can pass that lasts for 7.5 seconds, with a cooldown of 9 seconds after creation." /obj/item/crusher_trophy/vortex_talisman/on_mark_detonation(mob/living/target, mob/living/user) + if(vortex_cd >= world.time) + return var/turf/T = get_turf(user) - new /obj/effect/temp_visual/hierophant/wall/crusher(T, user) //a wall only you can pass! + var/obj/effect/temp_visual/hierophant/wall/crusher/W = new (T, user) //a wall only you can pass! var/turf/otherT = get_step(T, turn(user.dir, 90)) if(otherT) new /obj/effect/temp_visual/hierophant/wall/crusher(otherT, user) otherT = get_step(T, turn(user.dir, -90)) if(otherT) new /obj/effect/temp_visual/hierophant/wall/crusher(otherT, user) + vortex_cd = world.time + W.duration * 1.2 /obj/effect/temp_visual/hierophant/wall/crusher duration = 75 From 5e5bc2a690f298e6bcacbdd7b33548ec73fef248 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sun, 29 Mar 2020 17:01:05 +0200 Subject: [PATCH 049/190] force push. --- code/datums/helper_datums/teleport.dm | 2 +- code/modules/antagonists/swarmer/swarmer.dm | 61 ++++++++++++++++++- .../antagonists/swarmer/swarmer_event.dm | 6 +- 3 files changed, 63 insertions(+), 6 deletions(-) diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index 6b0981665d..c46a03a986 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -128,7 +128,7 @@ // Can most things breathe? if(trace_gases) continue - if(A_gases[/datum/gas/oxygen] >= 16) + if(A_gases[/datum/gas/oxygen] <= 16) continue if(A_gases[/datum/gas/plasma]) continue diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm index 724c4e6f76..d4ed9a21e5 100644 --- a/code/modules/antagonists/swarmer/swarmer.dm +++ b/code/modules/antagonists/swarmer/swarmer.dm @@ -179,8 +179,8 @@ /obj/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) if(resistance_flags & INDESTRUCTIBLE) return FALSE - for(var/mob/living/L in contents) - if(!issilicon(L) && !isbrain(L)) + for(var/mob/living/L in GetAllContents()) + if(!ispAI(L) && !isbrain(L)) to_chat(S, "An organism has been detected inside this object. Aborting.") return FALSE return ..() @@ -416,6 +416,57 @@ to_chat(S, "Destroying this object would cause a catastrophic chain reaction. Aborting.") return FALSE +/obj/machinery/ore_silo/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "Destroying this object, however tempting it's, will disrupt the research development that may serve for our masters in the future. Aborting.") + return FALSE + +/obj/machinery/rnd/server/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "Destroying this object, will disrupt the research development that may serve for our masters in the future. Aborting.") + return FALSE + +/obj/machinery/pool/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) //pool's closed, but not. + to_chat(S, "The pool must not be closed, it will provide healthy fun for our masters in the future. Aborting.") + return FALSE + +/obj/structure/pool/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "The pool must not be closed, it will provide healthy fun for our masters in the future. Aborting.") + return FALSE + +/obj/structure/holosign/barrier/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + var/static/list/lazy_typecache = typecacheof(list(/obj/structure/holosign/barrier/engineering, /obj/structure/holosign/barrier/firelock, /obj/structure/holosign/barrier/atmos, /obj/structure/holosign/barrier/combifan)) + if(lazy_typecache[type]) + to_chat(S, "Destroying this holographic barrier may not benefit us. Aborting.") + return FALSE + return ..() + +/obj/machinery/dominator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "This advanced piece of technology may be of use for our masters in the future. Aborting.") + return FALSE + +/obj/machinery/computer/bsa_control/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "This advanced piece of technology may be of use for our masters in the future. Aborting.") + return FALSE + +/obj/machinery/bsa/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "This advanced piece of technology may be of use for our masters in the future. Aborting.") + return FALSE + +/obj/machinery/dna_vault/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "This advanced piece of technology may be of use for our masters in the future. Aborting.") + return FALSE + +/obj/structure/filler/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "This advanced piece of technology may be of use for our masters in the future. Aborting.") + return FALSE + +/obj/machinery/computer/sat_control/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "Destroying this object will lower the station shielding against space debris. Aborting.") + return FALSE + +/obj/machinery/satellite/meteor_shield/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) + to_chat(S, "Destroying this object will lower the station shielding against space debris. Aborting.") + return FALSE + ////END CTRL CLICK FOR SWARMERS//// /mob/living/simple_animal/hostile/swarmer/proc/Fabricate(atom/fabrication_object,fabrication_cost = 0) @@ -429,6 +480,12 @@ return new fabrication_object(loc) /mob/living/simple_animal/hostile/swarmer/proc/Integrate(atom/movable/target) + if(target.resistance_flags & INDESTRUCTIBLE) + return FALSE + for(var/mob/living/L in GetAllContents()) + if(!ispAI(L) && !isbrain(L)) + to_chat(src, "An organism has been detected inside this object. Aborting.") + return FALSE var/resource_gain = target.IntegrateAmount() if(resources + resource_gain > max_resources) to_chat(src, "We cannot hold more materials!") diff --git a/code/modules/antagonists/swarmer/swarmer_event.dm b/code/modules/antagonists/swarmer/swarmer_event.dm index 6ef35fdbaa..c626799a53 100644 --- a/code/modules/antagonists/swarmer/swarmer_event.dm +++ b/code/modules/antagonists/swarmer/swarmer_event.dm @@ -1,10 +1,10 @@ /datum/round_event_control/spawn_swarmer name = "Spawn Swarmer Shell" typepath = /datum/round_event/spawn_swarmer - weight = 0 - max_occurrences = 0 + weight = 7 + max_occurrences = 1 //Only once okay fam earliest_start = 30 MINUTES - min_players = 15 + min_players = 35 gamemode_blacklist = list("dynamic") From 98eff75e9fbbbd25c5740e6d2549df3e9356f62f Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sun, 29 Mar 2020 18:57:48 +0200 Subject: [PATCH 050/190] Objects. --- code/modules/antagonists/swarmer/swarmer.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm index d4ed9a21e5..c1f493ac52 100644 --- a/code/modules/antagonists/swarmer/swarmer.dm +++ b/code/modules/antagonists/swarmer/swarmer.dm @@ -480,8 +480,10 @@ return new fabrication_object(loc) /mob/living/simple_animal/hostile/swarmer/proc/Integrate(atom/movable/target) - if(target.resistance_flags & INDESTRUCTIBLE) - return FALSE + if(isobj(target)) + var/obj/O = target + if(O.resistance_flags & INDESTRUCTIBLE) + return FALSE for(var/mob/living/L in GetAllContents()) if(!ispAI(L) && !isbrain(L)) to_chat(src, "An organism has been detected inside this object. Aborting.") From c3faf94d8feb1647d3d48a8b4020ab333ac99a61 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Mon, 30 Mar 2020 05:29:39 +0200 Subject: [PATCH 051/190] WIP --- code/__DEFINES/dye_keys.dm | 28 ++ code/datums/elements/mob_holder.dm | 4 +- code/game/gamemodes/changeling/changeling.dm | 1 - .../game/gamemodes/clown_ops/clown_weapons.dm | 2 +- code/game/machinery/washing_machine.dm | 249 +++++++++++------- code/game/objects/items.dm | 23 +- code/game/objects/items/RCL.dm | 6 +- code/game/objects/items/balls.dm | 2 +- code/game/objects/items/crayons.dm | 40 ++- .../items/devices/radio/electropack.dm | 2 +- code/game/objects/items/documents.dm | 10 +- code/game/objects/items/handcuffs.dm | 22 +- code/game/objects/items/holy_weapons.dm | 2 +- code/game/objects/items/implants/implant.dm | 2 +- .../objects/items/implants/implant_freedom.dm | 2 +- .../objects/items/implants/implant_storage.dm | 2 +- .../objects/items/implants/implantcase.dm | 2 +- code/game/objects/items/melee/energy.dm | 65 ++--- code/game/objects/items/paint.dm | 44 ++-- code/game/objects/items/religion.dm | 2 +- code/game/objects/items/stacks/bscrystal.dm | 1 + code/game/objects/items/stacks/stack.dm | 3 +- code/game/objects/items/storage/belt.dm | 1 + code/game/objects/items/toys.dm | 3 - code/game/objects/items/twohanded.dm | 10 +- code/game/objects/structures/bedsheet_bin.dm | 34 +-- .../antagonists/changeling/changeling.dm | 3 - .../clockcult/clock_items/clockwork_armor.dm | 1 - .../antagonists/devil/true_devil/inventory.dm | 14 +- code/modules/clothing/chameleon.dm | 10 +- code/modules/clothing/clothing.dm | 8 +- code/modules/clothing/glasses/phantomthief.dm | 2 +- code/modules/clothing/gloves/color.dm | 43 +-- code/modules/clothing/gloves/miscellaneous.dm | 2 - code/modules/clothing/head/beanie.dm | 7 - code/modules/clothing/head/hardhat.dm | 22 +- code/modules/clothing/head/jobs.dm | 1 - code/modules/clothing/head/misc.dm | 2 - code/modules/clothing/head/misc_special.dm | 3 - code/modules/clothing/head/soft_caps.dm | 34 +-- code/modules/clothing/masks/gasmask.dm | 1 + code/modules/clothing/masks/miscellaneous.dm | 1 - code/modules/clothing/neck/_neck.dm | 26 +- code/modules/clothing/shoes/colour.dm | 36 +-- code/modules/clothing/shoes/miscellaneous.dm | 4 - code/modules/clothing/spacesuits/hardsuit.dm | 67 ++--- .../clothing/spacesuits/miscellaneous.dm | 19 +- code/modules/clothing/suits/miscellaneous.dm | 12 +- code/modules/clothing/under/_under.dm | 17 +- code/modules/clothing/under/accessories.dm | 23 -- code/modules/clothing/under/color.dm | 35 +-- code/modules/clothing/under/costume.dm | 29 -- .../under/jobs/Plasmaman/civilian_service.dm | 12 - .../under/jobs/Plasmaman/engineering.dm | 3 - .../clothing/under/jobs/Plasmaman/medsci.dm | 8 - .../clothing/under/jobs/Plasmaman/security.dm | 3 - code/modules/clothing/under/jobs/cargo.dm | 6 - code/modules/clothing/under/jobs/centcom.dm | 2 - .../clothing/under/jobs/civilian/civilian.dm | 34 +-- .../under/jobs/civilian/clown_mime.dm | 13 - .../clothing/under/jobs/civilian/curator.dm | 6 - code/modules/clothing/under/jobs/command.dm | 6 - .../clothing/under/jobs/engineering.dm | 9 +- code/modules/clothing/under/jobs/medical.dm | 29 +- code/modules/clothing/under/jobs/rnd.dm | 12 +- code/modules/clothing/under/jobs/security.dm | 22 -- code/modules/clothing/under/miscellaneous.dm | 30 +-- code/modules/clothing/under/pants.dm | 17 -- code/modules/clothing/under/shorts.dm | 8 - code/modules/clothing/under/skirt_dress.dm | 28 -- code/modules/clothing/under/suits.dm | 16 -- code/modules/clothing/under/sweaters.dm | 8 +- code/modules/clothing/under/syndicate.dm | 13 - code/modules/clothing/under/trek.dm | 10 - .../food_and_drinks/food/snacks_egg.dm | 11 +- code/modules/holiday/easter.dm | 2 - code/modules/holiday/halloween/jacqueen.dm | 2 +- code/modules/holodeck/items.dm | 9 +- code/modules/jobs/job_types/chief_engineer.dm | 2 +- .../jobs/job_types/head_of_security.dm | 2 +- .../mob/living/carbon/human/update_icons.dm | 83 +++--- .../modules/mob/living/carbon/update_icons.dm | 14 +- .../mob/living/silicon/robot/update_icons.dm | 2 +- .../friendly/drone/visuals_icons.dm | 16 +- .../living/simple_animal/guardian/guardian.dm | 12 +- .../hostile/gorilla/visuals_icons.dm | 6 +- code/modules/paperwork/stamps.dm | 21 +- code/modules/power/cable.dm | 56 ++-- icons/mob/accessories.dmi | Bin 9688 -> 8853 bytes icons/mob/uniform.dmi | Bin 395711 -> 403435 bytes .../items/devices/radio/shockcollar.dm | 2 +- modular_citadel/code/modules/clothing/neck.dm | 2 +- .../clothing/suits/polychromic_cloaks.dm | 12 +- .../code/modules/clothing/suits/suits.dm | 2 +- modular_citadel/code/modules/clothing/trek.dm | 8 +- .../modules/custom_loadout/custom_items.dm | 96 ++++--- tgstation.dme | 1 + 97 files changed, 580 insertions(+), 1060 deletions(-) create mode 100644 code/__DEFINES/dye_keys.dm diff --git a/code/__DEFINES/dye_keys.dm b/code/__DEFINES/dye_keys.dm new file mode 100644 index 0000000000..133f9c47d3 --- /dev/null +++ b/code/__DEFINES/dye_keys.dm @@ -0,0 +1,28 @@ +#define DYE_REGISTRY_UNDER "under" +#define DYE_REGISTRY_JUMPSKIRT "jumpskirt" +#define DYE_REGISTRY_GLOVES "gloves" +#define DYE_REGISTRY_SNEAKERS "sneakers" +#define DYE_REGISTRY_FANNYPACK "fannypack" +#define DYE_REGISTRY_BEDSHEET "bedsheet" + +#define DYE_RED "red" +#define DYE_ORANGE "orange" +#define DYE_YELLOW "yellow" +#define DYE_GREEN "green" +#define DYE_BLUE "blue" +#define DYE_PURPLE "purple" +#define DYE_BLACK "black" +#define DYE_WHITE "white" +#define DYE_RAINBOW "rainbow" +#define DYE_MIME "mime" +#define DYE_COSMIC "cosmic" +#define DYE_QM "qm" +#define DYE_LAW "law" +#define DYE_CAPTAIN "captain" +#define DYE_HOP "hop" +#define DYE_HOS "hos" +#define DYE_CE "ce" +#define DYE_RD "rd" +#define DYE_CMO "cmo" +#define DYE_REDCOAT "redcoat" +#define DYE_CLOWN "clown" diff --git a/code/datums/elements/mob_holder.dm b/code/datums/elements/mob_holder.dm index 3cd5367f65..6b9c079f3b 100644 --- a/code/datums/elements/mob_holder.dm +++ b/code/datums/elements/mob_holder.dm @@ -71,7 +71,7 @@ name = "bugged mob" desc = "Yell at coderbrush." icon = null - alternate_worn_icon = 'icons/mob/animals_held.dmi' + mob_overlay_icon = 'icons/mob/animals_held.dmi' righthand_file = 'icons/mob/animals_held_rh.dmi' lefthand_file = 'icons/mob/animals_held_lh.dmi' icon_state = "" @@ -85,7 +85,7 @@ assimilate(target) if(alt_worn) - alternate_worn_icon = alt_worn + mob_overlay_icon = alt_worn if(worn_state) item_state = worn_state icon_state = worn_state diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 4db8f4129a..8029685bf7 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -119,7 +119,6 @@ GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our th C.appearance = chosen_prof.appearance_list[slot] C.name = chosen_prof.name_list[slot] C.flags_cover = chosen_prof.flags_cover_list[slot] - C.item_color = chosen_prof.item_color_list[slot] C.item_state = chosen_prof.item_state_list[slot] if(equip) user.equip_to_slot_or_del(C, GLOB.slot2slot[slot]) diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm index 0a231a5ff1..4d3ea2d02e 100644 --- a/code/game/gamemodes/clown_ops/clown_weapons.dm +++ b/code/game/gamemodes/clown_ops/clown_weapons.dm @@ -63,7 +63,7 @@ attack_verb_on = list("slipped") clumsy_check = FALSE sharpness = IS_BLUNT - item_color = "yellow" + sword_color = "yellow" heat = 0 light_color = "#ffff00" var/next_trombone_allowed = 0 diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index ff5ba14810..26220d4d89 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -1,3 +1,111 @@ +//dye registry, add dye colors and their resulting output here if you want the sprite to change instead of just the color. +GLOBAL_LIST_INIT(dye_registry, list( + DYE_REGISTRY_UNDER = list( + DYE_RED = /obj/item/clothing/under/color/red, + DYE_ORANGE = /obj/item/clothing/under/color/orange, + DYE_YELLOW = /obj/item/clothing/under/color/yellow, + DYE_GREEN = /obj/item/clothing/under/color/green, + DYE_BLUE = /obj/item/clothing/under/color/blue, + DYE_PURPLE = /obj/item/clothing/under/color/lightpurple, + DYE_BLACK = /obj/item/clothing/under/color/black, + DYE_WHITE = /obj/item/clothing/under/color/white, + DYE_RAINBOW = /obj/item/clothing/under/color/rainbow, + DYE_MIME = /obj/item/clothing/under/rank/civilian/mime, + DYE_CLOWN = /obj/item/clothing/under/rank/civilian/clown, + DYE_QM = /obj/item/clothing/under/rank/cargo/qm, + DYE_LAW = /obj/item/clothing/under/suit/black, + DYE_CAPTAIN = /obj/item/clothing/under/rank/captain, + DYE_HOP = /obj/item/clothing/under/rank/civilian/head_of_personnel, + DYE_HOS = /obj/item/clothing/under/rank/security/head_of_security, + DYE_CE = /obj/item/clothing/under/rank/engineering/chief_engineer, + DYE_RD = /obj/item/clothing/under/rank/rnd/research_director, + DYE_CMO = /obj/item/clothing/under/rank/medical/chief_medical_officer, + DYE_REDCOAT = /obj/item/clothing/under/costume/redcoat + ), + DYE_REGISTRY_JUMPSKIRT = list( + DYE_RED = /obj/item/clothing/under/color/jumpskirt/red, + DYE_ORANGE = /obj/item/clothing/under/color/jumpskirt/orange, + DYE_YELLOW = /obj/item/clothing/under/color/jumpskirt/yellow, + DYE_GREEN = /obj/item/clothing/under/color/jumpskirt/green, + DYE_BLUE = /obj/item/clothing/under/color/jumpskirt/blue, + DYE_PURPLE = /obj/item/clothing/under/color/jumpskirt/lightpurple, + DYE_BLACK = /obj/item/clothing/under/color/jumpskirt/black, + DYE_WHITE = /obj/item/clothing/under/color/jumpskirt/white, + DYE_RAINBOW = /obj/item/clothing/under/color/jumpskirt/rainbow + ), + DYE_REGISTRY_GLOVES = list( + DYE_RED = /obj/item/clothing/gloves/color/red, + DYE_ORANGE = /obj/item/clothing/gloves/color/orange, + DYE_YELLOW = /obj/item/clothing/gloves/color/yellow, + DYE_GREEN = /obj/item/clothing/gloves/color/green, + DYE_BLUE = /obj/item/clothing/gloves/color/blue, + DYE_PURPLE = /obj/item/clothing/gloves/color/purple, + DYE_BLACK = /obj/item/clothing/gloves/color/black, + DYE_WHITE = /obj/item/clothing/gloves/color/white, + DYE_RAINBOW = /obj/item/clothing/gloves/color/rainbow, + DYE_MIME = /obj/item/clothing/gloves/color/white, + DYE_CLOWN = /obj/item/clothing/gloves/color/rainbow, + DYE_QM = /obj/item/clothing/gloves/color/brown, + DYE_CAPTAIN = /obj/item/clothing/gloves/color/captain, + DYE_HOP = /obj/item/clothing/gloves/color/grey, + DYE_HOS = /obj/item/clothing/gloves/color/black, + DYE_CE = /obj/item/clothing/gloves/color/black, + DYE_RD = /obj/item/clothing/gloves/color/grey, + DYE_CMO = /obj/item/clothing/gloves/color/latex/nitrile, + DYE_REDCOAT = /obj/item/clothing/gloves/color/white + ), + DYE_REGISTRY_SNEAKERS = list( + DYE_RED = /obj/item/clothing/shoes/sneakers/red, + DYE_ORANGE = /obj/item/clothing/shoes/sneakers/orange, + DYE_YELLOW = /obj/item/clothing/shoes/sneakers/yellow, + DYE_GREEN = /obj/item/clothing/shoes/sneakers/green, + DYE_BLUE = /obj/item/clothing/shoes/sneakers/blue, + DYE_PURPLE = /obj/item/clothing/shoes/sneakers/purple, + DYE_BLACK = /obj/item/clothing/shoes/sneakers/black, + DYE_WHITE = /obj/item/clothing/shoes/sneakers/white, + DYE_RAINBOW = /obj/item/clothing/shoes/sneakers/rainbow, + DYE_MIME = /obj/item/clothing/shoes/sneakers/black, + DYE_QM = /obj/item/clothing/shoes/sneakers/brown, + DYE_CAPTAIN = /obj/item/clothing/shoes/sneakers/brown, + DYE_HOP = /obj/item/clothing/shoes/sneakers/brown, + DYE_CE = /obj/item/clothing/shoes/sneakers/brown, + DYE_RD = /obj/item/clothing/shoes/sneakers/brown, + DYE_CMO = /obj/item/clothing/shoes/sneakers/brown + ), + DYE_REGISTRY_FANNYPACK = list( + DYE_RED = /obj/item/storage/belt/fannypack/red, + DYE_ORANGE = /obj/item/storage/belt/fannypack/orange, + DYE_YELLOW = /obj/item/storage/belt/fannypack/yellow, + DYE_GREEN = /obj/item/storage/belt/fannypack/green, + DYE_BLUE = /obj/item/storage/belt/fannypack/blue, + DYE_PURPLE = /obj/item/storage/belt/fannypack/purple, + DYE_BLACK = /obj/item/storage/belt/fannypack/black, + DYE_WHITE = /obj/item/storage/belt/fannypack/white + ), + DYE_REGISTRY_BEDSHEET = list( + DYE_RED = /obj/item/bedsheet/red, + DYE_ORANGE = /obj/item/bedsheet/orange, + DYE_YELLOW = /obj/item/bedsheet/yellow, + DYE_GREEN = /obj/item/bedsheet/green, + DYE_BLUE = /obj/item/bedsheet/blue, + DYE_PURPLE = /obj/item/bedsheet/purple, + DYE_BLACK = /obj/item/bedsheet/black, + DYE_WHITE = /obj/item/bedsheet, + DYE_RAINBOW = /obj/item/bedsheet/rainbow, + DYE_MIME = /obj/item/bedsheet/mime, + DYE_CLOWN = /obj/item/bedsheet/clown, + DYE_QM = /obj/item/bedsheet/qm, + DYE_LAW = /obj/item/bedsheet/black, + DYE_CAPTAIN = /obj/item/bedsheet/captain, + DYE_HOP = /obj/item/bedsheet/hop, + DYE_HOS = /obj/item/bedsheet/hos, + DYE_CE = /obj/item/bedsheet/ce, + DYE_RD = /obj/item/bedsheet/rd, + DYE_CMO = /obj/item/bedsheet/cmo, + DYE_COSMIC = /obj/item/bedsheet/cosmos + ) +)) + /obj/machinery/washing_machine name = "washing machine" desc = "Gets rid of those pesky bloodstains, or your money back!" @@ -13,27 +121,22 @@ /obj/machinery/washing_machine/examine(mob/user) . = ..() - . += "Alt-click it to start a wash cycle." + if(!busy) + . += "Alt-click it to start a wash cycle." /obj/machinery/washing_machine/AltClick(mob/user) . = ..() if(!user.canUseTopic(src)) return - if(busy) return - if(state_open) to_chat(user, "Close the door first") return TRUE - if(bloody_mess) to_chat(user, "[src] must be cleaned up first.") return TRUE - if(has_corgi) - bloody_mess = 1 - busy = TRUE update_icon() addtimer(CALLBACK(src, .proc/wash_cycle), 200) @@ -76,6 +179,28 @@ color_source = null update_icon() +/obj/item/proc/dye_item(dye_color) + if(undyeable) + return FALSE + if(dying_key) + if(!GLOB.dye_registry[dying_key]) + log_runtime("Item just tried to be dyed with an invalid registry key: [dying_key]") + return FALSE + var/obj/item/target_type = GLOB.dye_registry[dying_key][dye_color] + if(target_type) + icon = initial(target_type.icon) + icon_state = initial(target_type.icon_state) + lefthand_file = initial(target_type.lefthand_file) + righthand_file = initial(target_type.righthand_file) + item_state = initial(target_type.item_state) + mob_overlay_icon = initial(target_type.mob_overlay_icon) + inhand_x_dimension = initial(target_type.inhand_x_dimension) + inhand_y_dimension = initial(target_type.inhand_y_dimension) + name = initial(target_type.name) + desc = "[initial(target_type.desc)] The colors look a little dodgy." + return target_type //successfully "appearance copy" dyed something; returns the target type as a hacky way of extending + add_atom_colour(dye_color, FIXED_COLOUR_PRIORITY) + return FALSE //what happens to this object when washed inside a washing machine /atom/movable/proc/machine_wash(obj/machinery/washing_machine/WM) @@ -89,105 +214,27 @@ new /obj/item/reagent_containers/food/snacks/meat/slab/corgi(loc) qdel(src) -/obj/item/paper/machine_wash(obj/machinery/washing_machine/WM) - if(WM.color_source) - if(istype(WM.color_source, /obj/item/toy/crayon)) - var/obj/item/toy/crayon/CR = WM.color_source - add_atom_colour(CR.paint_color, WASHABLE_COLOUR_PRIORITY) - -/obj/item/reagents_containers/rag/towel/machine_wash(obj/machinery/washing_machine/WM) - if(WM.color_source) - if(istype(WM.color_source, /obj/item/toy/crayon)) - var/obj/item/toy/crayon/CR = WM.color_source - add_atom_colour(CR.paint_color, WASHABLE_COLOUR_PRIORITY) - /mob/living/simple_animal/pet/dog/corgi/machine_wash(obj/machinery/washing_machine/WM) gib() -/obj/item/clothing/under/color/machine_wash(obj/machinery/washing_machine/WM) - jumpsuit_wash(WM) - -/obj/item/clothing/under/rank/machine_wash(obj/machinery/washing_machine/WM) - jumpsuit_wash(WM) - -/obj/item/clothing/under/proc/jumpsuit_wash(obj/machinery/washing_machine/WM) +/obj/item/machine_wash(obj/machinery/washing_machine/WM) if(WM.color_source) - var/wash_color = WM.color_source.item_color - var/obj/item/clothing/under/U - for(var/T in typesof(/obj/item/clothing/under/color)) - var/obj/item/clothing/under/color/J = T - if(wash_color == initial(J.item_color)) - U = J - break - if(!U) - for(var/T in typesof(/obj/item/clothing/under/rank)) - var/obj/item/clothing/under/rank/R = T - if(wash_color == initial(R.item_color)) - U = R - break - if(U) - item_state = initial(U.item_state) - icon_state = initial(U.icon_state) - item_color = wash_color - name = initial(U.name) - desc = "The colors are a bit dodgy." - can_adjust = initial(U.can_adjust) - if(!can_adjust && adjusted) //we deadjust the uniform if it's now unadjustable - toggle_jumpsuit_adjust() + dye_item(WM.color_source.dye_color) -/obj/item/clothing/gloves/color/machine_wash(obj/machinery/washing_machine/WM) - if(WM.color_source) - var/wash_color = WM.color_source.item_color - for(var/T in typesof(/obj/item/clothing/gloves/color)) - var/obj/item/clothing/gloves/color/G = T - if(wash_color == initial(G.item_color)) - item_state = initial(G.item_state) - icon_state = initial(G.icon_state) - item_color = wash_color - name = initial(G.name) - desc = "The colors are a bit dodgy." - break +/obj/item/clothing/under/dye_item(dye_color, dye_key) + . = ..() + if(.) + var/obj/item/clothing/under/U = . + can_adjust = initial(U.can_adjust) + if(!can_adjust && adjusted) //we deadjust the uniform if it's now unadjustable + toggle_jumpsuit_adjust() /obj/item/clothing/shoes/sneakers/machine_wash(obj/machinery/washing_machine/WM) if(chained) chained = 0 slowdown = SHOES_SLOWDOWN new /obj/item/restraints/handcuffs(loc) - if(WM.color_source) - var/wash_color = WM.color_source.item_color - for(var/T in typesof(/obj/item/clothing/shoes/sneakers)) - var/obj/item/clothing/shoes/sneakers/S = T - if(wash_color == initial(S.item_color)) - icon_state = initial(S.icon_state) - item_color = wash_color - name = initial(S.name) - desc = "The colors are a bit dodgy." - break - -/obj/item/bedsheet/machine_wash(obj/machinery/washing_machine/WM) - if(WM.color_source) - var/wash_color = WM.color_source.item_color - for(var/T in typesof(/obj/item/bedsheet)) - var/obj/item/bedsheet/B = T - if(wash_color == initial(B.item_color)) - icon_state = initial(B.icon_state) - item_color = wash_color - name = initial(B.name) - desc = "The colors are a bit dodgy." - break - -/obj/item/clothing/head/soft/machine_wash(obj/machinery/washing_machine/WM) - if(WM.color_source) - var/wash_color = WM.color_source.item_color - for(var/T in typesof(/obj/item/clothing/head/soft)) - var/obj/item/clothing/head/soft/H = T - if(wash_color == initial(H.item_color)) - icon_state = initial(H.icon_state) - item_color = wash_color - name = initial(H.name) - desc = "The colors are a bit dodgy." - break - + ..() /obj/machinery/washing_machine/relaymove(mob/user) container_resist(user) @@ -223,27 +270,27 @@ if(istype(W, /obj/item/clothing/head/mob_holder)) to_chat(user, "It's too unwieldly to put in this way.") - return 1 + return TRUE else if(user.a_intent != INTENT_HARM) if (!state_open) to_chat(user, "Open the door first!") - return 1 + return TRUE if(bloody_mess) to_chat(user, "[src] must be cleaned up first.") - return 1 + return TRUE if(contents.len >= max_wash_capacity) to_chat(user, "The washing machine is full!") - return 1 + return TRUE if(!user.transferItemToLoc(W, src)) to_chat(user, "\The [W] is stuck to your hand, you cannot put it in the washing machine!") - return 1 + return TRUE - if(istype(W, /obj/item/toy/crayon) || istype(W, /obj/item/stamp)) + if(W.dye_color) color_source = W update_icon() diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index e1d6101aa5..c132a7af23 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -7,9 +7,19 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) /obj/item name = "item" icon = 'icons/obj/items_and_weapons.dmi' + ///icon state name for inhanf overlays var/item_state = null + ///Icon file for left hand inhand overlays var/lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + ///Icon file for right inhand overlays var/righthand_file = 'icons/mob/inhands/items_righthand.dmi' + + ///Icon file for mob worn overlays. + ///no var for state because it should *always* be the same as icon_state + var/icon/mob_overlay_icon + //Forced mob worn layer instead of the standard preferred ssize. + var/alternate_worn_layer + var/list/alternate_screams = list() //REEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE //Dimensions of the icon file used when this item is worn, eg: hats.dmi @@ -21,10 +31,6 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/inhand_x_dimension = 32 var/inhand_y_dimension = 32 - //Not on /clothing because for some reason any /obj/item can technically be "worn" with enough fuckery. - var/icon/alternate_worn_icon = null//If this is set, update_icons() will find on mob (WORN, NOT INHANDS) states in this file instead, primary use: badminnery/events - var/alternate_worn_layer = null//If this is set, update_icons() will force the on mob state (WORN, NOT INHANDS) onto this layer, instead of it's default - max_integrity = 200 obj_flags = NONE @@ -60,8 +66,6 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) //Citadel Edit for digitigrade stuff var/mutantrace_variation = NONE //Are there special sprites for specific situations? Don't use this unless you need to. - var/item_color = null //this needs deprecating, soonish - var/body_parts_covered = 0 //see setup.dm for appropriate bit flags var/gas_transfer_coefficient = 1 // for leaking gas from turf to mask and vice-versa (for masks right now, but at some point, i'd like to include space helmets) var/permeability_coefficient = 1 // for chemicals/diseases @@ -110,6 +114,13 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/trigger_guard = TRIGGER_GUARD_NONE + ///Used as the dye color source in the washing machine only (at the moment). Can be a hex color or a key corresponding to a registry entry, see washing_machine.dm + var/dye_color + ///Whether the item is unaffected by standard dying. + var/undyeable = FALSE + ///What dye registry should be looked at when dying this item; see washing_machine.dm + var/dying_key + //Grinder vars var/list/grind_results //A reagent list containing the reagents this item produces when ground up in a grinder - this can be an empty list to allow for reagent transferring only var/list/juice_results //A reagent list containing blah blah... but when JUICED in a grinder! diff --git a/code/game/objects/items/RCL.dm b/code/game/objects/items/RCL.dm index 72e6ccbbe2..c3830abad8 100644 --- a/code/game/objects/items/RCL.dm +++ b/code/game/objects/items/RCL.dm @@ -201,7 +201,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) return //If we've run out, display message and exit else last = null - loaded.item_color = colors[current_color_index] + loaded.cable_color = colors[current_color_index] last = loaded.place_turf(get_turf(src), user, turn(user.dir, 180)) is_empty(user) //If we've run out, display message update_icon() @@ -277,7 +277,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) if(T.intact || !T.can_have_cabling()) return - loaded.item_color = colors[current_color_index] + loaded.cable_color = colors[current_color_index] var/obj/structure/cable/linkingCable = findLinkingCable(user) if(linkingCable) @@ -299,7 +299,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) var/cwname = colors[current_color_index] to_chat(user, "Color changed to [cwname]!") if(loaded) - loaded.item_color= colors[current_color_index] + loaded.cable_color = colors[current_color_index] update_icon() if(wiring_gui_menu) wiringGuiUpdate(user) diff --git a/code/game/objects/items/balls.dm b/code/game/objects/items/balls.dm index c24f58208b..2e5a385ead 100644 --- a/code/game/objects/items/balls.dm +++ b/code/game/objects/items/balls.dm @@ -15,7 +15,7 @@ lefthand_file = 'modular_citadel/icons/mob/inhands/balls_left.dmi' righthand_file = 'modular_citadel/icons/mob/inhands/balls_right.dmi' item_state = "tennis_classic" - alternate_worn_icon = 'modular_citadel/icons/mob/mouthball.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/mouthball.dmi' slot_flags = ITEM_SLOT_HEAD | ITEM_SLOT_NECK | ITEM_SLOT_EARS //Fluff item, put it wherever you want! throw_range = 14 w_class = WEIGHT_CLASS_SMALL diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index f5b13d4e3e..09c045497c 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -26,7 +26,7 @@ var/icon_uncapped var/use_overlays = FALSE - item_color = "red" + var/crayon_color = "red" w_class = WEIGHT_CLASS_TINY attack_verb = list("attacked", "coloured") grind_results = list() @@ -83,7 +83,9 @@ . = ..() // Makes crayons identifiable in things like grinders if(name == "crayon") - name = "[item_color] crayon" + name = "[crayon_color] crayon" + + dye_color = crayon_color drawtype = pick(all_drawables) @@ -484,65 +486,75 @@ /obj/item/toy/crayon/red icon_state = "crayonred" paint_color = "#DA0000" - item_color = "red" + crayon_color = "red" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/red = 1) + dye_color = DYE_RED /obj/item/toy/crayon/orange icon_state = "crayonorange" paint_color = "#FF9300" - item_color = "orange" + crayon_color = "orange" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/orange = 1) + dye_color = DYE_ORANGE /obj/item/toy/crayon/yellow icon_state = "crayonyellow" paint_color = "#FFF200" - item_color = "yellow" + crayon_color = "yellow" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/yellow = 1) + dye_color = DYE_YELLOW /obj/item/toy/crayon/green icon_state = "crayongreen" paint_color = "#A8E61D" - item_color = "green" + crayon_color = "green" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/green = 1) + dye_color = DYE_GREEN /obj/item/toy/crayon/blue icon_state = "crayonblue" paint_color = "#00B7EF" - item_color = "blue" + crayon_color = "blue" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/blue = 1) + dye_color = DYE_BLUE /obj/item/toy/crayon/purple icon_state = "crayonpurple" paint_color = "#DA00FF" - item_color = "purple" + crayon_color = "purple" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/purple = 1) + dye_color = DYE_PURPLE /obj/item/toy/crayon/black icon_state = "crayonblack" paint_color = "#1C1C1C" //Not completely black because total black looks bad. So Mostly Black. - item_color = "black" + crayon_color = "black" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/black = 1) + dye_color = DYE_BLACK /obj/item/toy/crayon/white icon_state = "crayonwhite" paint_color = "#FFFFFF" - item_color = "white" + crayon_color = "white" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/white = 1) + dye_color = DYE_WHITE /obj/item/toy/crayon/mime icon_state = "crayonmime" desc = "A very sad-looking crayon." paint_color = "#FFFFFF" - item_color = "mime" + crayon_color = "mime" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent/crayonpowder/invisible = 1) charges = -1 + dye_color = DYE_MIME /obj/item/toy/crayon/rainbow icon_state = "crayonrainbow" paint_color = "#FFF000" - item_color = "rainbow" + crayon_color = "rainbow" reagent_contents = list(/datum/reagent/consumable/nutriment = 1, /datum/reagent/colorful_reagent = 1) drawtype = RANDOM_ANY // just the default starter. + dye_color = DYE_RAINBOW charges = -1 @@ -580,12 +592,12 @@ /obj/item/storage/crayons/update_overlays() . = ..() for(var/obj/item/toy/crayon/crayon in contents) - add_overlay(mutable_appearance('icons/obj/crayons.dmi', crayon.item_color)) + add_overlay(mutable_appearance('icons/obj/crayons.dmi', crayon.crayon_color)) /obj/item/storage/crayons/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/toy/crayon)) var/obj/item/toy/crayon/C = W - switch(C.item_color) + switch(C.crayon_color) if("mime") to_chat(usr, "This crayon is too sad to be contained in this box.") return diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index 914f2a149a..1eee083c80 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -149,7 +149,7 @@ Code: name = "shock collar" desc = "A reinforced metal collar. It seems to have some form of wiring near the front. Strange.." icon = 'modular_citadel/icons/obj/clothing/cit_neck.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/neck.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/citadel/neck.dmi' icon_state = "shockcollar" item_state = "shockcollar" body_parts_covered = NECK diff --git a/code/game/objects/items/documents.dm b/code/game/objects/items/documents.dm index ea24e77832..1172b50377 100644 --- a/code/game/objects/items/documents.dm +++ b/code/game/objects/items/documents.dm @@ -51,8 +51,8 @@ to_chat(user, "You have already forged a seal on [src]!") else var/obj/item/toy/crayon/C = O - name = "[C.item_color] secret documents" - icon_state = "docs_[C.item_color]" - forgedseal = C.item_color - to_chat(user, "You forge the official seal with a [C.item_color] crayon. No one will notice... right?") - update_icon() \ No newline at end of file + name = "[C.crayon_color] secret documents" + icon_state = "docs_[C.crayon_color]" + forgedseal = C.crayon_color + to_chat(user, "You forge the official seal with a [C.crayon_color] crayon. No one will notice... right?") + update_icon() diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index e1b0cbb661..d597b9fa8c 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -113,7 +113,6 @@ desc = "Looks like some cables tied together. Could be used to tie something up." icon_state = "cuff" item_state = "coil" - item_color = "red" color = "#ff0000" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' @@ -121,46 +120,29 @@ breakouttime = 300 //Deciseconds = 30s cuffsound = 'sound/weapons/cablecuff.ogg' -/obj/item/restraints/handcuffs/cable/Initialize(mapload, param_color) - . = ..() - - var/list/cable_colors = GLOB.cable_colors - item_color = param_color || item_color || pick(cable_colors) - if(cable_colors[item_color]) - item_color = cable_colors[item_color] - color = null - add_atom_colour(item_color, FIXED_COLOUR_PRIORITY) - /obj/item/restraints/handcuffs/cable/red - item_color = "red" color = "#ff0000" /obj/item/restraints/handcuffs/cable/yellow - item_color = "yellow" color = "#ffff00" /obj/item/restraints/handcuffs/cable/blue - item_color = "blue" color = "#1919c8" /obj/item/restraints/handcuffs/cable/green - item_color = "green" color = "#00aa00" /obj/item/restraints/handcuffs/cable/pink - item_color = "pink" color = "#ff3ccd" /obj/item/restraints/handcuffs/cable/orange - item_color = "orange" color = "#ff8000" /obj/item/restraints/handcuffs/cable/cyan - item_color = "cyan" color = "#00ffff" /obj/item/restraints/handcuffs/cable/white - item_color = "white" + color = null /obj/item/restraints/handcuffs/cable/attackby(obj/item/I, mob/user, params) ..() @@ -202,7 +184,7 @@ custom_materials = null breakouttime = 450 //Deciseconds = 45s trashtype = /obj/item/restraints/handcuffs/cable/zipties/used - item_color = "white" + color = null /obj/item/restraints/handcuffs/cable/zipties/used desc = "A pair of broken zipties." diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index bd9ac276a2..17cebea128 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -122,7 +122,7 @@ /obj/item/clothing/head/helmet/chaplain/cage name = "cage" desc = "A cage that restrains the will of the self, allowing one to see the profane world for what it is." - alternate_worn_icon = 'icons/mob/large-worn-icons/64x64/head.dmi' + mob_overlay_icon = 'icons/mob/large-worn-icons/64x64/head.dmi' icon_state = "cage" item_state = "cage" worn_x_dimension = 64 diff --git a/code/game/objects/items/implants/implant.dm b/code/game/objects/items/implants/implant.dm index c1983b6b8c..cc2ae3631e 100644 --- a/code/game/objects/items/implants/implant.dm +++ b/code/game/objects/items/implants/implant.dm @@ -5,7 +5,7 @@ actions_types = list(/datum/action/item_action/hands_free/activate) var/activated = TRUE //1 for implant types that can be activated, 0 for ones that are "always on" like mindshield implants var/mob/living/imp_in = null - item_color = "b" + var/implant_color = "b" var/allow_multiple = FALSE var/uses = -1 item_flags = DROPDEL diff --git a/code/game/objects/items/implants/implant_freedom.dm b/code/game/objects/items/implants/implant_freedom.dm index f3e66d2c08..280fbb7cd3 100644 --- a/code/game/objects/items/implants/implant_freedom.dm +++ b/code/game/objects/items/implants/implant_freedom.dm @@ -2,7 +2,7 @@ name = "freedom implant" desc = "Use this to escape from those evil Red Shirts." icon_state = "freedom" - item_color = "r" + implant_color = "r" uses = 4 diff --git a/code/game/objects/items/implants/implant_storage.dm b/code/game/objects/items/implants/implant_storage.dm index 1dfc0b4580..4dc0263fa7 100644 --- a/code/game/objects/items/implants/implant_storage.dm +++ b/code/game/objects/items/implants/implant_storage.dm @@ -2,7 +2,7 @@ name = "storage implant" desc = "Stores up to two big items in a bluespace pocket." icon_state = "storage" - item_color = "r" + implant_color = "r" var/max_slot_stacking = 4 var/obj/item/storage/bluespace_pocket/pocket diff --git a/code/game/objects/items/implants/implantcase.dm b/code/game/objects/items/implants/implantcase.dm index 481f1a4181..8573324b56 100644 --- a/code/game/objects/items/implants/implantcase.dm +++ b/code/game/objects/items/implants/implantcase.dm @@ -15,7 +15,7 @@ /obj/item/implantcase/update_icon_state() if(imp) - icon_state = "implantcase-[imp.item_color]" + icon_state = "implantcase-[imp.implant_color]" else icon_state = "implantcase-0" diff --git a/code/game/objects/items/melee/energy.dm b/code/game/objects/items/melee/energy.dm index aba07c9120..bec2d29236 100644 --- a/code/game/objects/items/melee/energy.dm +++ b/code/game/objects/items/melee/energy.dm @@ -5,12 +5,15 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30) resistance_flags = FIRE_PROOF var/brightness_on = 3 + var/sword_color total_mass = 0.4 //Survival flashlights typically weigh around 5 ounces. /obj/item/melee/transforming/energy/Initialize() . = ..() total_mass_on = (total_mass_on ? total_mass_on : (w_class_on * 0.75)) if(active) + if(sword_color) + icon_state = "sword[sword_color]" set_light(brightness_on) START_PROCESSING(SSobj, src) @@ -37,8 +40,8 @@ . = ..() if(.) if(active) - if(item_color) - icon_state = "sword[item_color]" + if(sword_color) + icon_state = "sword[sword_color]" START_PROCESSING(SSobj, src) set_light(brightness_on) else @@ -103,12 +106,19 @@ embedding = list("embed_chance" = 75, "embedded_impact_pain_multiplier" = 10) armour_penetration = 35 block_chance = 50 + var/list/possible_colors = list("red" = LIGHT_COLOR_RED, "blue" = LIGHT_COLOR_LIGHT_CYAN, "green" = LIGHT_COLOR_GREEN, "purple" = LIGHT_COLOR_LAVENDER) + +/obj/item/melee/transforming/energy/sword/Initialize(mapload) + . = ..() + set_sword_color() + +/obj/item/melee/transforming/energy/sword/proc/set_sword_color() + if(LAZYLEN(possible_colors)) + light_color = possible_colors[pick(possible_colors)] /obj/item/melee/transforming/energy/sword/transform_weapon(mob/living/user, supress_message_text) . = ..() if(active) - if(. && item_color) - icon_state = "sword[item_color]" AddElement(/datum/element/sword_point) else RemoveElement(/datum/element/sword_point) @@ -119,7 +129,9 @@ return 0 /obj/item/melee/transforming/energy/sword/cyborg - item_color = "red" + sword_color = "red" + light_color = "#ff0000" + possible_colors = null var/hitcost = 50 /obj/item/melee/transforming/energy/sword/cyborg/attack(mob/M, var/mob/living/silicon/robot/R) @@ -140,7 +152,7 @@ icon = 'icons/obj/surgery.dmi' icon_state = "esaw_0" icon_state_on = "esaw_1" - item_color = null //stops icon from breaking when turned on. + sword_color = null //stops icon from breaking when turned on. hitcost = 75 //Costs more than a standard cyborg esword w_class = WEIGHT_CLASS_NORMAL sharpness = IS_SHARP @@ -152,15 +164,13 @@ return 0 /obj/item/melee/transforming/energy/sword/saber - var/list/possible_colors = list("red" = LIGHT_COLOR_RED, "blue" = LIGHT_COLOR_LIGHT_CYAN, "green" = LIGHT_COLOR_GREEN, "purple" = LIGHT_COLOR_LAVENDER) + possible_colors = list("red" = LIGHT_COLOR_RED, "blue" = LIGHT_COLOR_LIGHT_CYAN, "green" = LIGHT_COLOR_GREEN, "purple" = LIGHT_COLOR_LAVENDER) var/hacked = FALSE -/obj/item/melee/transforming/energy/sword/saber/Initialize(mapload) - . = ..() +/obj/item/melee/transforming/energy/sword/saber/set_sword_color() if(LAZYLEN(possible_colors)) - var/set_color = pick(possible_colors) - item_color = set_color - light_color = possible_colors[set_color] + sword_color = pick(possible_colors) + light_color = possible_colors[sword_color] /obj/item/melee/transforming/energy/sword/saber/process() . = ..() @@ -185,7 +195,7 @@ if(istype(W, /obj/item/multitool)) if(!hacked) hacked = TRUE - item_color = "rainbow" + sword_color = "rainbow" to_chat(user, "RNBW_ENGAGE") if(active) @@ -204,6 +214,7 @@ righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' icon_state_on = "cutlass1" light_color = "#ff0000" + possible_colors = null /obj/item/melee/transforming/energy/blade name = "energy blade" @@ -271,32 +282,8 @@ return TRUE /obj/item/melee/transforming/energy/sword/cx/transform_weapon(mob/living/user, supress_message_text) - active = !active //I'd use a ..() here but it'd inherit from the regular esword's proc instead, so SPAGHETTI CODE - if(active) //also I'd need to rip out the iconstate changing bits - force = force_on - throwforce = throwforce_on - hitsound = hitsound_on - throw_speed = 4 - if(attack_verb_on.len) - attack_verb = attack_verb_on - w_class = w_class_on - START_PROCESSING(SSobj, src) - set_light(brightness_on) - update_icon() - else - force = initial(force) - throwforce = initial(throwforce) - hitsound = initial(hitsound) - throw_speed = initial(throw_speed) - if(attack_verb_off.len) - attack_verb = attack_verb_off - w_class = initial(w_class) - STOP_PROCESSING(SSobj, src) - set_light(0) - update_icon() - transform_messages(user, supress_message_text) - add_fingerprint(user) - return TRUE + . = ..() + update_icon() /obj/item/melee/transforming/energy/sword/cx/transform_messages(mob/living/user, supress_message_text) playsound(user, active ? 'sound/weapons/nebon.ogg' : 'sound/weapons/neboff.ogg', 65, 1) diff --git a/code/game/objects/items/paint.dm b/code/game/objects/items/paint.dm index cc2f5e9be7..bdf9ab4270 100644 --- a/code/game/objects/items/paint.dm +++ b/code/game/objects/items/paint.dm @@ -7,7 +7,7 @@ desc = "Used to recolor floors and walls. Can be removed by the janitor." icon = 'icons/obj/items_and_weapons.dmi' icon_state = "paint_neutral" - item_color = "FFFFFF" + var/paint_color = "FFFFFF" item_state = "paintcan" w_class = WEIGHT_CLASS_NORMAL resistance_flags = FLAMMABLE @@ -16,37 +16,37 @@ /obj/item/paint/red name = "red paint" - item_color = "C73232" //"FF0000" + paint_color = "C73232" //"FF0000" icon_state = "paint_red" /obj/item/paint/green name = "green paint" - item_color = "2A9C3B" //"00FF00" + paint_color = "2A9C3B" //"00FF00" icon_state = "paint_green" /obj/item/paint/blue name = "blue paint" - item_color = "5998FF" //"0000FF" + paint_color = "5998FF" //"0000FF" icon_state = "paint_blue" /obj/item/paint/yellow name = "yellow paint" - item_color = "CFB52B" //"FFFF00" + paint_color = "CFB52B" //"FFFF00" icon_state = "paint_yellow" /obj/item/paint/violet name = "violet paint" - item_color = "AE4CCD" //"FF00FF" + paint_color = "AE4CCD" //"FF00FF" icon_state = "paint_violet" /obj/item/paint/black name = "black paint" - item_color = "333333" + paint_color = "333333" icon_state = "paint_black" /obj/item/paint/white name = "white paint" - item_color = "FFFFFF" + paint_color = "FFFFFF" icon_state = "paint_white" @@ -61,31 +61,31 @@ return switch(t1) if("red") - item_color = "C73232" + paint_color = "C73232" if("pink") - item_color = "FFC0CD" + paint_color = "FFC0CD" if("blue") - item_color = "5998FF" + paint_color = "5998FF" if("cyan") - item_color = "00FFFF" + paint_color = "00FFFF" if("green") - item_color = "2A9C3B" + paint_color = "2A9C3B" if("lime") - item_color = "00FF00" + paint_color = "00FF00" if("yellow") - item_color = "CFB52B" + paint_color = "CFB52B" if("orange") - item_color = "fFA700" + paint_color = "fFA700" if("violet") - item_color = "AE4CCD" + paint_color = "AE4CCD" if("purple") - item_color = "800080" + paint_color = "800080" if("white") - item_color = "FFFFFF" + paint_color = "FFFFFF" if("gray") - item_color = "808080" + paint_color = "808080" if("black") - item_color = "333333" + paint_color = "333333" icon_state = "paint_[t1]" add_fingerprint(user) @@ -99,7 +99,7 @@ return if(!isturf(target) || isspaceturf(target)) return - var/newcolor = "#" + item_color + var/newcolor = "#" + paint_color target.add_atom_colour(newcolor, WASHABLE_COLOUR_PRIORITY) /obj/item/paint/paint_remover diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm index b89a2983f5..136d58ba41 100644 --- a/code/game/objects/items/religion.dm +++ b/code/game/objects/items/religion.dm @@ -214,7 +214,7 @@ /obj/item/clothing/head/helmet/plate/crusader/prophet name = "Prophet's Hat" desc = "A religious-looking hat." - alternate_worn_icon = 'icons/mob/large-worn-icons/64x64/head.dmi' + mob_overlay_icon = 'icons/mob/large-worn-icons/64x64/head.dmi' flags_1 = 0 armor = list("melee" = 60, "bullet" = 60, "laser" = 60, "energy" = 50, "bomb" = 70, "bio" = 50, "rad" = 50, "fire" = 60, "acid" = 60) //religion protects you from disease and radiation, honk. worn_x_dimension = 64 diff --git a/code/game/objects/items/stacks/bscrystal.dm b/code/game/objects/items/stacks/bscrystal.dm index f864df5a21..00e48fd12a 100644 --- a/code/game/objects/items/stacks/bscrystal.dm +++ b/code/game/objects/items/stacks/bscrystal.dm @@ -5,6 +5,7 @@ icon = 'icons/obj/telescience.dmi' icon_state = "bluespace_crystal" singular_name = "bluespace crystal" + dye_color = DYE_COSMIC w_class = WEIGHT_CLASS_TINY custom_materials = list(/datum/material/bluespace=MINERAL_MATERIAL_AMOUNT) points = 50 diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 5f2795c857..70b00c72ec 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -240,8 +240,7 @@ else if(istype(O, /obj/item/restraints/handcuffs/cable)) var/obj/item/cuffs = O - cuffs.item_color = item_color - cuffs.update_icon() + cuffs.color = color if (QDELETED(O)) return //It's a stack and has already been merged diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 0a29562d6b..152ee50513 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -708,6 +708,7 @@ desc = "A dorky fannypack for keeping small items in." icon_state = "fannypack_leather" item_state = "fannypack_leather" + dying_key = DYE_REGISTRY_FANNYPACK /obj/item/storage/belt/fannypack/ComponentInitialize() . = ..() diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index ba51fa3d65..38e31bc65b 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -273,15 +273,12 @@ var/obj/item/twohanded/dualsaber/toy/newSaber = new /obj/item/twohanded/dualsaber/toy(user.loc) if(hacked) // That's right, we'll only check the "original" "sword". newSaber.hacked = TRUE - newSaber.item_color = "rainbow" qdel(W) qdel(src) else if(istype(W, /obj/item/multitool)) if(!hacked) hacked = TRUE - item_color = "rainbow" to_chat(user, "RNBW_ENGAGE") - if(active) update_icon() user.update_inv_hands() diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm index b188250fff..0e9d41c057 100644 --- a/code/game/objects/items/twohanded.dm +++ b/code/game/objects/items/twohanded.dm @@ -281,7 +281,7 @@ hitsound = "swing_hit" var/hitsound_on = 'sound/weapons/blade1.ogg' armour_penetration = 35 - item_color = "green" + var/saber_color = "green" light_color = "#00ff00"//green attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") block_chance = 75 @@ -324,8 +324,8 @@ /obj/item/twohanded/dualsaber/Initialize() . = ..() if(LAZYLEN(possible_colors)) - item_color = pick(possible_colors) - switch(item_color) + saber_color = pick(possible_colors) + switch(saber_color) if("red") light_color = LIGHT_COLOR_RED if("green") @@ -341,7 +341,7 @@ /obj/item/twohanded/dualsaber/update_icon_state() if(wielded) - icon_state = "dualsaber[item_color][wielded]" + icon_state = "dualsaber[saber_color][wielded]" else icon_state = "dualsaber0" clean_blood() @@ -456,7 +456,7 @@ if(!hacked) hacked = TRUE to_chat(user, "2XRNBW_ENGAGE") - item_color = "rainbow" + saber_color = "rainbow" update_icon() else to_chat(user, "It's starting to look like a triple rainbow - no, nevermind.") diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 0991351102..3127485878 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -16,8 +16,8 @@ LINEN BINS throw_speed = 1 throw_range = 2 w_class = WEIGHT_CLASS_TINY - item_color = "white" resistance_flags = FLAMMABLE + dying_key = DYE_REGISTRY_BEDSHEET dog_fashion = /datum/dog_fashion/head/ghost var/list/dream_messages = list("white") @@ -52,79 +52,66 @@ LINEN BINS /obj/item/bedsheet/blue icon_state = "sheetblue" - item_color = "blue" dream_messages = list("blue") /obj/item/bedsheet/green icon_state = "sheetgreen" - item_color = "green" dream_messages = list("green") /obj/item/bedsheet/grey icon_state = "sheetgrey" - item_color = "grey" dream_messages = list("grey") /obj/item/bedsheet/orange icon_state = "sheetorange" - item_color = "orange" dream_messages = list("orange") /obj/item/bedsheet/purple icon_state = "sheetpurple" - item_color = "purple" dream_messages = list("purple") /obj/item/bedsheet/patriot name = "patriotic bedsheet" desc = "You've never felt more free than when sleeping on this." icon_state = "sheetUSA" - item_color = "sheetUSA" dream_messages = list("America", "freedom", "fireworks", "bald eagles") /obj/item/bedsheet/rainbow name = "rainbow bedsheet" desc = "A multicolored blanket. It's actually several different sheets cut up and sewn together." icon_state = "sheetrainbow" - item_color = "rainbow" dream_messages = list("red", "orange", "yellow", "green", "blue", "purple", "a rainbow") /obj/item/bedsheet/red icon_state = "sheetred" - item_color = "red" dream_messages = list("red") /obj/item/bedsheet/yellow icon_state = "sheetyellow" - item_color = "yellow" dream_messages = list("yellow") /obj/item/bedsheet/mime name = "mime's blanket" desc = "A very soothing striped blanket. All the noise just seems to fade out when you're under the covers in this." icon_state = "sheetmime" - item_color = "mime" dream_messages = list("silence", "gestures", "a pale face", "a gaping mouth", "the mime") /obj/item/bedsheet/clown name = "clown's blanket" desc = "A rainbow blanket with a clown mask woven in. It smells faintly of bananas." icon_state = "sheetclown" - item_color = "clown" dream_messages = list("honk", "laughter", "a prank", "a joke", "a smiling face", "the clown") /obj/item/bedsheet/captain name = "captain's bedsheet" desc = "It has a Nanotrasen symbol on it, and was woven with a revolutionary new kind of thread guaranteed to have 0.01% permeability for most non-chemical substances, popular among most modern captains." icon_state = "sheetcaptain" - item_color = "captain" dream_messages = list("authority", "a golden ID", "sunglasses", "a green disc", "an antique gun", "the captain") /obj/item/bedsheet/rd name = "research director's bedsheet" desc = "It appears to have a beaker emblem, and is made out of fire-resistant material, although it probably won't protect you in the event of fires you're familiar with every day." icon_state = "sheetrd" - item_color = "director" dream_messages = list("authority", "a silvery ID", "a bomb", "a mech", "a facehugger", "maniacal laughter", "the research director") // for Free Golems. @@ -137,111 +124,94 @@ LINEN BINS name = "medical blanket" desc = "It's a sterilized* blanket commonly used in the Medbay. *Sterilization is voided if a virologist is present onboard the station." icon_state = "sheetmedical" - item_color = "medical" dream_messages = list("healing", "life", "surgery", "a doctor") /obj/item/bedsheet/cmo name = "chief medical officer's bedsheet" desc = "It's a sterilized blanket that has a cross emblem. There's some cat fur on it, likely from Runtime." icon_state = "sheetcmo" - item_color = "cmo" dream_messages = list("authority", "a silvery ID", "healing", "life", "surgery", "a cat", "the chief medical officer") /obj/item/bedsheet/hos name = "head of security's bedsheet" desc = "It is decorated with a shield emblem. While crime doesn't sleep, you do, but you are still THE LAW!" icon_state = "sheethos" - item_color = "hosred" dream_messages = list("authority", "a silvery ID", "handcuffs", "a baton", "a flashbang", "sunglasses", "the head of security") /obj/item/bedsheet/hop name = "head of personnel's bedsheet" desc = "It is decorated with a key emblem. For those rare moments when you can rest and cuddle with Ian without someone screaming for you over the radio." icon_state = "sheethop" - item_color = "hop" dream_messages = list("authority", "a silvery ID", "obligation", "a computer", "an ID", "a corgi", "the head of personnel") /obj/item/bedsheet/ce name = "chief engineer's bedsheet" desc = "It is decorated with a wrench emblem. It's highly reflective and stain resistant, so you don't need to worry about ruining it with oil." icon_state = "sheetce" - item_color = "chief" dream_messages = list("authority", "a silvery ID", "the engine", "power tools", "an APC", "a parrot", "the chief engineer") /obj/item/bedsheet/qm name = "quartermaster's bedsheet" desc = "It is decorated with a crate emblem in silver lining. It's rather tough, and just the thing to lie on after a hard day of pushing paper." icon_state = "sheetqm" - item_color = "qm" dream_messages = list("a grey ID", "a shuttle", "a crate", "a sloth", "the quartermaster") /obj/item/bedsheet/brown icon_state = "sheetbrown" - item_color = "cargo" dream_messages = list("brown") /obj/item/bedsheet/black icon_state = "sheetblack" - item_color = "black" dream_messages = list("black") /obj/item/bedsheet/centcom name = "\improper CentCom bedsheet" desc = "Woven with advanced nanothread for warmth as well as being very decorated, essential for all officials." icon_state = "sheetcentcom" - item_color = "centcom" dream_messages = list("a unique ID", "authority", "artillery", "an ending") /obj/item/bedsheet/syndie name = "syndicate bedsheet" desc = "It has a syndicate emblem and it has an aura of evil." icon_state = "sheetsyndie" - item_color = "syndie" dream_messages = list("a green disc", "a red crystal", "a glowing blade", "a wire-covered ID") /obj/item/bedsheet/cult name = "cultist's bedsheet" desc = "You might dream of Nar'Sie if you sleep with this. It seems rather tattered and glows of an eldritch presence." icon_state = "sheetcult" - item_color = "cult" dream_messages = list("a tome", "a floating red crystal", "a glowing sword", "a bloody symbol", "a massive humanoid figure") /obj/item/bedsheet/wiz name = "wizard's bedsheet" desc = "A special fabric enchanted with magic so you can have an enchanted night. It even glows!" icon_state = "sheetwiz" - item_color = "wiz" dream_messages = list("a book", "an explosion", "lightning", "a staff", "a skeleton", "a robe", "magic") /obj/item/bedsheet/nanotrasen name = "nanotrasen bedsheet" desc = "It has the Nanotrasen logo on it and has an aura of duty." icon_state = "sheetNT" - item_color = "nanotrasen" dream_messages = list("authority", "an ending") /obj/item/bedsheet/ian icon_state = "sheetian" - item_color = "ian" dream_messages = list("a dog", "a corgi", "woof", "bark", "arf") /obj/item/bedsheet/runtime icon_state = "sheetruntime" - item_color = "runtime" dream_messages = list("a kitty", "a cat", "meow", "purr", "nya~") /obj/item/bedsheet/pirate name = "pirate's bedsheet" desc = "It has a Jolly Roger emblem on it and has a faint scent of grog." icon_state = "sheetpirate" - item_color = "black" dream_messages = list("doing whatever oneself wants", "cause a pirate is free", "being a pirate", "stealing", "landlubbers", "gold", "a buried treasure", "yarr", "avast", "a swashbuckler", "sailing the Seven Seas", "a parrot", "a monkey", "an island", "a talking skull") /obj/item/bedsheet/gondola name = "gondola bedsheet" desc = "A precious bedsheet made from the hide of a rare and peculiar critter." icon_state = "sheetgondola" - item_color = "cargo" var/g_mouth var/g_eyes @@ -262,14 +232,12 @@ LINEN BINS name = "cosmic space bedsheet" desc = "Made from the dreams of those who wonder at the stars." icon_state = "sheetcosmos" - item_color = "cosmos" dream_messages = list("the infinite cosmos", "Hans Zimmer music", "a flight through space", "the galaxy", "being fabulous", "shooting stars") light_power = 2 light_range = 1.4 /obj/item/bedsheet/random icon_state = "random_bedsheet" - item_color = "rainbow" name = "random bedsheet" desc = "If you're reading this description ingame, something has gone wrong! Honk!" diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index cc15147312..4e2c53c0cf 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -287,7 +287,6 @@ prof.name_list[slot] = I.name prof.appearance_list[slot] = I.appearance prof.flags_cover_list[slot] = I.flags_cover - prof.item_color_list[slot] = I.item_color prof.item_state_list[slot] = I.item_state prof.exists_list[slot] = 1 else @@ -503,7 +502,6 @@ var/list/appearance_list = list() var/list/flags_cover_list = list() var/list/exists_list = list() - var/list/item_color_list = list() var/list/item_state_list = list() var/underwear @@ -526,7 +524,6 @@ newprofile.appearance_list = appearance_list.Copy() newprofile.flags_cover_list = flags_cover_list.Copy() newprofile.exists_list = exists_list.Copy() - newprofile.item_color_list = item_color_list.Copy() newprofile.item_state_list = item_state_list.Copy() newprofile.underwear = underwear newprofile.undershirt = undershirt diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm index 5bc04173b9..a4f8bf8062 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm @@ -127,7 +127,6 @@ icon = 'icons/obj/clothing/clockwork_garb.dmi' icon_state = "clockwork_gauntlets" item_state = "clockwork_gauntlets" - item_color = null //So they don't wash. strip_delay = 50 equip_delay_other = 30 body_parts_covered = ARMS diff --git a/code/modules/antagonists/devil/true_devil/inventory.dm b/code/modules/antagonists/devil/true_devil/inventory.dm index 778c421616..579dfb4fb1 100644 --- a/code/modules/antagonists/devil/true_devil/inventory.dm +++ b/code/modules/antagonists/devil/true_devil/inventory.dm @@ -12,12 +12,7 @@ var/obj/item/r_hand = get_item_for_held_index(2) if(r_hand) - - var/r_state = r_hand.item_state - if(!r_state) - r_state = r_hand.icon_state - - var/mutable_appearance/r_hand_overlay = r_hand.build_worn_icon(state = r_state, default_layer = DEVIL_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) + var/mutable_appearance/r_hand_overlay = r_hand.build_worn_icon(default_layer = DEVIL_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) hands_overlays += r_hand_overlay @@ -28,12 +23,7 @@ client.screen |= r_hand if(l_hand) - - var/l_state = l_hand.item_state - if(!l_state) - l_state = l_hand.icon_state - - var/mutable_appearance/l_hand_overlay = l_hand.build_worn_icon(state = l_state, default_layer = DEVIL_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) + var/mutable_appearance/l_hand_overlay = l_hand.build_worn_icon(default_layer = DEVIL_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) hands_overlays += l_hand_overlay diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index cbd1fcff87..9f1111e5d9 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -219,14 +219,13 @@ if(isitem(target)) var/obj/item/I = target I.item_state = initial(picked_item.item_state) - I.item_color = initial(picked_item.item_color) var/obj/item/clothing/CL = target var/obj/item/clothing/PCL = new picked_item if(istype(CL) && istype(PCL)) CL.flags_cover = PCL.flags_cover CL.flags_inv = PCL.flags_inv CL.mutantrace_variation = PCL.mutantrace_variation - CL.alternate_worn_icon = PCL.alternate_worn_icon + CL.mob_overlay_icon = PCL.mob_overlay_icon qdel(PCL) target.icon = initial(picked_item.icon) @@ -238,7 +237,6 @@ P.desc = initial(picked_item.desc) P.icon_state = initial(picked_item.icon_state) P.item_state = initial(picked_item.item_state) - P.item_color = initial(picked_item.item_color) P.overlays_offsets = initial(picked_item.overlays_offsets) P.set_new_overlays() P.update_icon() @@ -269,7 +267,6 @@ name = "black jumpsuit" icon_state = "black" item_state = "bl_suit" - item_color = "black" desc = "It's a plain jumpsuit. It has a small dial on the wrist." sensor_mode = SENSOR_OFF //Hey who's this guy on the Syndicate Shuttle?? random_sensor = FALSE @@ -284,7 +281,6 @@ desc = "A tough jumpsuit woven from alloy threads. It can take on the appearance of other jumpsuits." icon_state = "engine" item_state = "engi_suit" - item_color = "engine" /obj/item/clothing/under/chameleon/Initialize() . = ..() @@ -394,7 +390,6 @@ name = "grey cap" desc = "It's a baseball hat in a tasteful grey colour." icon_state = "greysoft" - item_color = "grey" resistance_flags = NONE armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) @@ -494,7 +489,6 @@ /obj/item/clothing/shoes/chameleon name = "black shoes" icon_state = "black" - item_color = "black" desc = "A pair of black shoes." permeability_coefficient = 0.05 resistance_flags = NONE @@ -520,7 +514,6 @@ /obj/item/clothing/shoes/chameleon/noslip name = "black shoes" icon_state = "black" - item_color = "black" desc = "A pair of black shoes." clothing_flags = NOSLIP @@ -639,7 +632,6 @@ desc = "A neosilk clip-on tie." icon = 'icons/obj/clothing/neck.dmi' icon_state = "blacktie" - item_color = "blacktie" resistance_flags = NONE armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 7e2d73190a..f68164594c 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -444,11 +444,11 @@ BLIND // can't see anything /obj/item/clothing/update_overlays() // Polychrome stuff . = ..() if(hasprimary) //Checks if the overlay is enabled - var/mutable_appearance/primary_overlay = mutable_appearance(icon, "[item_color]-primary", color = primary_color) //Automagically picks overlays + var/mutable_appearance/primary_overlay = mutable_appearance(icon, "[item_state]-primary", color = primary_color) //Automagically picks overlays . += primary_overlay //Applies the coloured overlay onto the item sprite. but NOT the mob sprite. if(hassecondary) - var/mutable_appearance/secondary_overlay = mutable_appearance(icon, "[item_color]-secondary", color = secondary_color) + var/mutable_appearance/secondary_overlay = mutable_appearance(icon, "[item_state]-secondary", color = secondary_color) . += secondary_overlay if(hastertiary) - var/mutable_appearance/tertiary_overlay = mutable_appearance(icon, "[item_color]-tertiary", color = tertiary_color) - . += tertiary_overlay \ No newline at end of file + var/mutable_appearance/tertiary_overlay = mutable_appearance(icon, "[item_state]-tertiary", color = tertiary_color) + . += tertiary_overlay diff --git a/code/modules/clothing/glasses/phantomthief.dm b/code/modules/clothing/glasses/phantomthief.dm index 1c9afcfd6f..569a743802 100644 --- a/code/modules/clothing/glasses/phantomthief.dm +++ b/code/modules/clothing/glasses/phantomthief.dm @@ -1,7 +1,7 @@ /obj/item/clothing/glasses/phantomthief name = "suspicious paper mask" desc = "A cheap, Syndicate-branded paper face mask. They'll never see it coming." - alternate_worn_icon = 'icons/mob/mask.dmi' + mob_overlay_icon = 'icons/mob/mask.dmi' icon = 'icons/obj/clothing/masks.dmi' icon_state = "s-ninja" item_state = "s-ninja" diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index cf3541fd89..a38765e442 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -1,3 +1,6 @@ +/obj/item/clothing/gloves/color + dying_key = DYE_REGISTRY_GLOVES + /obj/item/clothing/gloves/color/yellow desc = "These gloves will protect the wearer from electric shock." name = "insulated gloves" @@ -5,7 +8,6 @@ item_state = "ygloves" siemens_coefficient = 0 permeability_coefficient = 0.05 - item_color="yellow" resistance_flags = NONE var/can_be_cut = 1 @@ -16,7 +18,6 @@ item_state = "ygloves" siemens_coefficient = 1 //Set to a default of 1, gets overridden in New() permeability_coefficient = 0.05 - item_color="yellow" resistance_flags = NONE var/can_be_cut = 1 @@ -70,21 +71,14 @@ name = "black gloves" icon_state = "black" item_state = "blackgloves" - item_color="black" cold_protection = HANDS min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT heat_protection = HANDS max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT resistance_flags = NONE - var/can_be_cut = 1 + var/can_be_cut = TRUE strip_mod = 1.2 -/obj/item/clothing/gloves/color/black/hos - item_color = "hosred" //Exists for washing machines. Is not different from black gloves in any way. - -/obj/item/clothing/gloves/color/black/ce - item_color = "chief" //Exists for washing machines. Is not different from black gloves in any way. - /obj/item/clothing/gloves/color/black/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/wirecutters)) if(can_be_cut && icon_state == initial(icon_state))//only if not dyed @@ -99,15 +93,12 @@ desc = "A pair of gloves, they don't look special in any way." icon_state = "orange" item_state = "orangegloves" - item_color="orange" /obj/item/clothing/gloves/color/red name = "red gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "red" item_state = "redgloves" - item_color = "red" - /obj/item/clothing/gloves/color/red/insulated name = "insulated gloves" @@ -121,68 +112,48 @@ desc = "A pair of gloves, they don't look special in any way." icon_state = "rainbow" item_state = "rainbowgloves" - item_color = "rainbow" - -/obj/item/clothing/gloves/color/rainbow/clown - item_color = "clown" /obj/item/clothing/gloves/color/blue name = "blue gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "blue" item_state = "bluegloves" - item_color="blue" /obj/item/clothing/gloves/color/purple name = "purple gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "purple" item_state = "purplegloves" - item_color="purple" /obj/item/clothing/gloves/color/green name = "green gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "green" item_state = "greengloves" - item_color="green" /obj/item/clothing/gloves/color/grey name = "grey gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "gray" item_state = "graygloves" - item_color="grey" - -/obj/item/clothing/gloves/color/grey/rd - item_color = "director" //Exists for washing machines. Is not different from gray gloves in any way. - -/obj/item/clothing/gloves/color/grey/hop - item_color = "hop" //Exists for washing machines. Is not different from gray gloves in any way. /obj/item/clothing/gloves/color/light_brown name = "light brown gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "lightbrown" item_state = "lightbrowngloves" - item_color="light brown" /obj/item/clothing/gloves/color/brown name = "brown gloves" desc = "A pair of gloves, they don't look special in any way." icon_state = "brown" item_state = "browngloves" - item_color="brown" - -/obj/item/clothing/gloves/color/brown/cargo - item_color = "cargo" //Exists for washing machines. Is not different from brown gloves in any way. /obj/item/clothing/gloves/color/captain desc = "Regal blue gloves, with a nice gold trim, a diamond anti-shock coating, and an integrated thermal barrier. Swanky." name = "captain's gloves" icon_state = "captain" item_state = "egloves" - item_color = "captain" siemens_coefficient = 0 permeability_coefficient = 0.05 cold_protection = HANDS @@ -199,7 +170,6 @@ item_state = "lgloves" siemens_coefficient = 0.3 permeability_coefficient = 0.01 - item_color="mime" transfer_prints = TRUE resistance_flags = NONE var/carrytrait = TRAIT_QUICK_CARRY @@ -218,7 +188,6 @@ desc = "Pricy sterile gloves that are stronger than latex. Transfers advanced paramedical knowledge to the wearer via the use of nanochips." icon_state = "nitrile" item_state = "nitrilegloves" - item_color = "cmo" transfer_prints = FALSE carrytrait = TRAIT_QUICKER_CARRY @@ -236,7 +205,3 @@ desc = "These look pretty fancy." icon_state = "white" item_state = "wgloves" - item_color="white" - -/obj/item/clothing/gloves/color/white/redcoat - item_color = "redcoat" //Exists for washing machines. Is not different from white gloves in any way. diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 9f4b89f607..cb75b16ec2 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -4,7 +4,6 @@ desc = "Plain black gloves without fingertips for the hard working." icon_state = "fingerless" item_state = "fingerless" - item_color = null //So they don't wash. transfer_prints = TRUE strip_delay = 40 equip_delay_other = 20 @@ -48,7 +47,6 @@ desc = "For when you're expecting to get slapped on the wrist. Offers modest protection to your arms." icon_state = "bracers" item_state = "bracers" - item_color = null //So they don't wash. transfer_prints = TRUE strip_delay = 40 equip_delay_other = 20 diff --git a/code/modules/clothing/head/beanie.dm b/code/modules/clothing/head/beanie.dm index a5fb04d393..4117e88811 100644 --- a/code/modules/clothing/head/beanie.dm +++ b/code/modules/clothing/head/beanie.dm @@ -5,7 +5,6 @@ name = "white beanie" desc = "A stylish beanie. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their heads." icon_state = "beanie" //Default white - item_color = "beanie" /obj/item/clothing/head/beanie/black name = "black beanie" @@ -52,33 +51,27 @@ /obj/item/clothing/head/beanie/christmas name = "christmas beanie" icon_state = "beaniechristmas" - item_color = "beaniechristmas" /obj/item/clothing/head/beanie/striped name = "striped beanie" icon_state = "beaniestriped" - item_color = "beaniestriped" /obj/item/clothing/head/beanie/stripedred name = "red striped beanie" icon_state = "beaniestripedred" - item_color = "beaniestripedred" /obj/item/clothing/head/beanie/stripedblue name = "blue striped beanie" icon_state = "beaniestripedblue" - item_color = "beaniestripedblue" /obj/item/clothing/head/beanie/stripedgreen name = "green striped beanie" icon_state = "beaniestripedgreen" - item_color = "beaniestripedgreen" /obj/item/clothing/head/beanie/durathread name = "durathread beanie" desc = "A beanie made from durathread, its resilient fibres provide some protection to the wearer." icon_state = "beaniedurathread" - item_color = null armor = list("melee" = 25, "bullet" = 10, "laser" = 20,"energy" = 10, "bomb" = 30, "bio" = 15, "rad" = 20, "fire" = 100, "acid" = 50) diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index 29b0aa9552..246be3ff4a 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -7,7 +7,7 @@ light_color = "#FFCC66" var/power_on = 0.8 var/on = FALSE - item_color = "yellow" //Determines used sprites: hardhat[on]_[item_color] and hardhat[on]_[item_color]2 (lying down sprite) + var/hat_type = "yellow" //Determines used sprites: hardhat[on]_[hat_type] and hardhat[on]_[hat_type]2 (lying down sprite) armor = list("melee" = 15, "bullet" = 5, "laser" = 20,"energy" = 10, "bomb" = 20, "bio" = 10, "rad" = 20, "fire" = 100, "acid" = 50) flags_inv = 0 actions_types = list(/datum/action/item_action/toggle_helmet_light) @@ -33,8 +33,8 @@ update_icon() /obj/item/clothing/head/hardhat/update_icon_state() - icon_state = "hardhat[on]_[item_color]" - item_state = "hardhat[on]_[item_color]" + icon_state = "hardhat[on]_[hat_type]" + item_state = "hardhat[on]_[hat_type]" /obj/item/clothing/head/hardhat/proc/turn_on(mob/user) set_light(brightness_on, power_on) @@ -45,13 +45,13 @@ /obj/item/clothing/head/hardhat/orange icon_state = "hardhat0_orange" item_state = "hardhat0_orange" - item_color = "orange" + hat_type = "orange" dog_fashion = null /obj/item/clothing/head/hardhat/red icon_state = "hardhat0_red" item_state = "hardhat0_red" - item_color = "red" + hat_type = "red" dog_fashion = null name = "firefighter helmet" clothing_flags = STOPSPRESSUREDAMAGE @@ -63,7 +63,7 @@ /obj/item/clothing/head/hardhat/white icon_state = "hardhat0_white" item_state = "hardhat0_white" - item_color = "white" + hat_type = "white" clothing_flags = STOPSPRESSUREDAMAGE heat_protection = HEAD max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT @@ -74,13 +74,13 @@ /obj/item/clothing/head/hardhat/dblue icon_state = "hardhat0_dblue" item_state = "hardhat0_dblue" - item_color = "dblue" + hat_type = "dblue" dog_fashion = null /obj/item/clothing/head/hardhat/atmos icon_state = "hardhat0_atmos" item_state = "hardhat0_atmos" - item_color = "atmos" + hat_type = "atmos" dog_fashion = null name = "atmospheric technician's firefighting helmet" desc = "A firefighter's helmet, able to keep the user cool in any situation." @@ -139,14 +139,14 @@ /obj/item/clothing/head/hardhat/weldhat/orange icon_state = "hardhat0_orange" item_state = "hardhat0_orange" - item_color = "orange" + hat_type = "orange" /obj/item/clothing/head/hardhat/weldhat/white desc = "A piece of headgear used in dangerous working conditions to protect the head. Comes with a built-in flashlight AND welding shield!" //This bulb is not smaller icon_state = "hardhat0_white" item_state = "hardhat0_white" brightness_on = 4 //Boss always takes the best stuff - item_color = "white" + hat_type = "white" clothing_flags = STOPSPRESSUREDAMAGE heat_protection = HEAD max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT @@ -156,4 +156,4 @@ /obj/item/clothing/head/hardhat/weldhat/dblue icon_state = "hardhat0_dblue" item_state = "hardhat0_dblue" - item_color = "dblue" \ No newline at end of file + hat_type = "dblue" \ No newline at end of file diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 9253c4e9aa..638a0c2f23 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -364,7 +364,6 @@ name = "durathread beret" desc = "A beret made from durathread, its resilient fibres provide some protection to the wearer." icon_state = "beretdurathread" - item_color = null armor = list("melee" = 25, "bullet" = 10, "laser" = 20,"energy" = 10, "bomb" = 30, "bio" = 15, "rad" = 20, "fire" = 100, "acid" = 50) #undef DRILL_DEFAULT diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 189fb46e46..2cb043ba88 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -372,14 +372,12 @@ name = "Telegram cap" desc = "A bright red cap warn by hotel staff. Or people who want to be a singing telegram" icon_state = "telegram" - item_color = "telegram" dog_fashion = /datum/dog_fashion/head/telegram /obj/item/clothing/head/colour name = "Singer cap" desc = "A light white hat that has bands of color. Just makes you want to sing and dance!" icon_state = "colour" - item_color = "colour" dog_fashion = /datum/dog_fashion/head/colour /obj/item/clothing/head/christmashat diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 0b58ea234c..b8fcc40311 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -42,7 +42,6 @@ desc = "You put the cake on your head. Brilliant." icon_state = "hardhat0_cakehat" item_state = "hardhat0_cakehat" - item_color = "cakehat" hitsound = 'sound/weapons/tap.ogg' flags_inv = HIDEEARS|HIDEHAIR armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) @@ -114,7 +113,6 @@ desc = "A jack o' lantern! Believed to ward off evil spirits." icon_state = "hardhat0_pumpkin" item_state = "hardhat0_pumpkin" - item_color = "pumpkin" flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) brightness_on = 2 //luminosity when on @@ -151,7 +149,6 @@ desc = "Some fake antlers and a very fake red nose." icon_state = "hardhat0_reindeer" item_state = "hardhat0_reindeer" - item_color = "reindeer" flags_inv = 0 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) brightness_on = 1 //luminosity when on diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index 19ff6bc8b2..2f4bd44e4f 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -3,14 +3,14 @@ desc = "It's a baseball hat in a tasteless yellow colour." icon_state = "cargosoft" item_state = "helmet" - item_color = "cargo" + var/soft_type = "cargo" dog_fashion = /datum/dog_fashion/head/cargo_tech var/flipped = 0 /obj/item/clothing/head/soft/dropped(mob/user) - icon_state = "[item_color]soft" + icon_state = "[soft_type]soft" flipped = FALSE return ..() @@ -33,10 +33,10 @@ if(!user.incapacitated()) src.flipped = !src.flipped if(src.flipped) - icon_state = "[item_color]soft_flipped" + icon_state = "[soft_type]soft_flipped" to_chat(user, "You flip the hat backwards.") else - icon_state = "[item_color]soft" + icon_state = "[soft_type]soft" to_chat(user, "You flip the hat back in normal position.") usr.update_inv_head() //so our mob-overlays update @@ -48,77 +48,77 @@ name = "red cap" desc = "It's a baseball hat in a tasteless red colour." icon_state = "redsoft" - item_color = "red" + soft_type = "red" dog_fashion = null /obj/item/clothing/head/soft/blue name = "blue cap" desc = "It's a baseball hat in a tasteless blue colour." icon_state = "bluesoft" - item_color = "blue" + soft_type = "blue" dog_fashion = null /obj/item/clothing/head/soft/green name = "green cap" desc = "It's a baseball hat in a tasteless green colour." icon_state = "greensoft" - item_color = "green" + soft_type = "green" dog_fashion = null /obj/item/clothing/head/soft/yellow name = "yellow cap" desc = "It's a baseball hat in a tasteless yellow colour." icon_state = "yellowsoft" - item_color = "yellow" + soft_type = "yellow" dog_fashion = null /obj/item/clothing/head/soft/grey name = "grey cap" desc = "It's a baseball hat in a tasteful grey colour." icon_state = "greysoft" - item_color = "grey" + soft_type = "grey" dog_fashion = null /obj/item/clothing/head/soft/orange name = "orange cap" desc = "It's a baseball hat in a tasteless orange colour." icon_state = "orangesoft" - item_color = "orange" + soft_type = "orange" dog_fashion = null /obj/item/clothing/head/soft/mime name = "white cap" desc = "It's a baseball hat in a tasteless white colour." icon_state = "mimesoft" - item_color = "mime" + soft_type = "mime" dog_fashion = null /obj/item/clothing/head/soft/purple name = "purple cap" desc = "It's a baseball hat in a tasteless purple colour." icon_state = "purplesoft" - item_color = "purple" + soft_type = "purple" dog_fashion = null /obj/item/clothing/head/soft/black name = "black cap" desc = "It's a baseball hat in a tasteless black colour." icon_state = "blacksoft" - item_color = "black" + soft_type = "black" dog_fashion = null /obj/item/clothing/head/soft/rainbow name = "rainbow cap" desc = "It's a baseball hat in a bright rainbow of colors." icon_state = "rainbowsoft" - item_color = "rainbow" + soft_type = "rainbow" dog_fashion = null /obj/item/clothing/head/soft/sec name = "security cap" desc = "It's a robust baseball hat in tasteful red colour." icon_state = "secsoft" - item_color = "sec" + soft_type = "sec" armor = list("melee" = 30, "bullet" = 25, "laser" = 25, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 50) strip_delay = 60 dog_fashion = null @@ -127,14 +127,14 @@ name = "EMT cap" desc = "It's a baseball hat with a dark turquoise color and a reflective cross on the top." icon_state = "emtsoft" - item_color = "emt" + soft_type = "emt" dog_fashion = null /obj/item/clothing/head/soft/baseball name = "baseball cap" desc = "It's a robust baseball hat, this one belongs to syndicate major league team." icon_state = "baseballsoft" - item_color = "baseballsoft" + soft_type = "baseballsoft" item_state = "baseballsoft" flags_inv = HIDEEYES|HIDEFACE armor = list("melee" = 35, "bullet" = 35, "laser" = 25, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 90) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 38f0a7c20a..144b17e510 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -68,6 +68,7 @@ clothing_flags = ALLOWINTERNALS icon_state = "clown" item_state = "clown_hat" + dye_color = "clown" flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE actions_types = list(/datum/action/item_action/adjust) diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index c743f26363..2bc3d5098d 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -132,7 +132,6 @@ /obj/item/clothing/mask/cowmask name = "Cow mask with a builtin voice modulator." desc = "A rubber cow mask," - icon = 'icons/mob/mask.dmi' icon_state = "cowmask" item_state = "cowmask" clothing_flags = VOICEBOX_TOGGLABLE diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 530af7777d..7bce47909a 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -21,35 +21,29 @@ icon = 'icons/obj/clothing/neck.dmi' icon_state = "bluetie" item_state = "" //no inhands - item_color = "bluetie" w_class = WEIGHT_CLASS_SMALL /obj/item/clothing/neck/tie/blue name = "blue tie" icon_state = "bluetie" - item_color = "bluetie" /obj/item/clothing/neck/tie/red name = "red tie" icon_state = "redtie" - item_color = "redtie" /obj/item/clothing/neck/tie/black name = "black tie" icon_state = "blacktie" - item_color = "blacktie" /obj/item/clothing/neck/tie/horrible name = "horrible tie" desc = "A neosilk clip-on tie. This one is disgusting." icon_state = "horribletie" - item_color = "horribletie" /obj/item/clothing/neck/stethoscope name = "stethoscope" desc = "An outdated medical apparatus for listening to the sounds of the human body. It also makes you look like you know what you're doing." icon_state = "stethoscope" - item_color = "stethoscope" /obj/item/clothing/neck/stethoscope/suicide_act(mob/living/carbon/user) user.visible_message("[user] puts \the [src] to [user.p_their()] chest! It looks like [user.p_they()] wont hear much!") @@ -94,7 +88,6 @@ name = "white scarf" icon_state = "scarf" desc = "A stylish scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks." - item_color = "scarf" dog_fashion = /datum/dog_fashion/head /obj/item/clothing/neck/scarf/black @@ -148,12 +141,10 @@ /obj/item/clothing/neck/scarf/zebra name = "zebra scarf" icon_state = "zebrascarf" - item_color = "zebrascarf" /obj/item/clothing/neck/scarf/christmas name = "christmas scarf" icon_state = "christmasscarf" - item_color = "christmasscarf" //The three following scarves don't have the scarf subtype //This is because Ian can equip anything from that subtype @@ -161,17 +152,14 @@ /obj/item/clothing/neck/stripedredscarf name = "striped red scarf" icon_state = "stripedredscarf" - item_color = "stripedredscarf" /obj/item/clothing/neck/stripedgreenscarf name = "striped green scarf" icon_state = "stripedgreenscarf" - item_color = "stripedgreenscarf" /obj/item/clothing/neck/stripedbluescarf name = "striped blue scarf" icon_state = "stripedbluescarf" - item_color = "stripedbluescarf" /////////// //COLLARS// @@ -181,8 +169,7 @@ name = "pet collar" desc = "It's for pets. Though you probably could wear it yourself, you'd doubtless be the subject of ridicule. It seems to be made out of a polychromic material." icon_state = "petcollar" - item_color = "petcollar" - alternate_worn_icon = 'icons/mob/neck.dmi' //Because, as it appears, the item itself is normally not directly aware of its worn overlays, so this is about the easiest way, without adding a new var. + mob_overlay_icon = 'icons/mob/neck.dmi' //Because, as it appears, the item itself is normally not directly aware of its worn overlays, so this is about the easiest way, without adding a new var. hasprimary = TRUE primary_color = "#00BBBB" pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/collar @@ -197,22 +184,21 @@ if(hasprimary | hassecondary | hastertiary) if(!isinhands) //prevents the worn sprites from showing up if you're just holding them if(hasprimary) //checks if overlays are enabled - var/mutable_appearance/primary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-primary") //automagical sprite selection + var/mutable_appearance/primary_worn = mutable_appearance(mob_overlay_icon, "[icon_state]-primary") //automagical sprite selection primary_worn.color = primary_color //colors the overlay . += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite if(hassecondary) - var/mutable_appearance/secondary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-secondary") + var/mutable_appearance/secondary_worn = mutable_appearance(mob_overlay_icon, "[icon_state]-secondary") secondary_worn.color = secondary_color . += secondary_worn if(hastertiary) - var/mutable_appearance/tertiary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-tertiary") + var/mutable_appearance/tertiary_worn = mutable_appearance(mob_overlay_icon, "[icon_state]-tertiary") tertiary_worn.color = tertiary_color . += tertiary_worn /obj/item/clothing/neck/petcollar/leather name = "leather pet collar" icon_state = "leathercollar" - item_color = "leathercollar" hasprimary = TRUE hassecondary = TRUE @@ -223,7 +209,6 @@ desc = "Quite fashionable... if you're somebody who's just read their first BDSM-themed erotica novel." name = "choker" icon_state = "choker" - item_color = "choker" hasprimary = TRUE primary_color = "#222222" @@ -253,7 +238,6 @@ /obj/item/clothing/neck/petcollar/locked/leather name = "leather pet collar" icon_state = "leathercollar" - item_color = "leathercollar" hasprimary = TRUE hassecondary = TRUE @@ -264,7 +248,6 @@ name = "choker" desc = "Quite fashionable... if you're somebody who's just read their first BDSM-themed erotica novel." icon_state = "choker" - item_color = "choker" hasprimary = TRUE primary_color = "#222222" @@ -290,7 +273,6 @@ desc = "Damn, it feels good to be a gangster." icon = 'icons/obj/clothing/neck.dmi' icon_state = "bling" - item_color = "bling" ////////////////////////////////// //VERY SUPER BADASS NECKERCHIEFS// diff --git a/code/modules/clothing/shoes/colour.dm b/code/modules/clothing/shoes/colour.dm index c45b9b443a..df0f03f614 100644 --- a/code/modules/clothing/shoes/colour.dm +++ b/code/modules/clothing/shoes/colour.dm @@ -1,9 +1,9 @@ /obj/item/clothing/shoes/sneakers + dying_key = DYE_REGISTRY_SNEAKERS /obj/item/clothing/shoes/sneakers/black name = "black shoes" icon_state = "black" - item_color = "black" desc = "A pair of black shoes." cold_protection = FEET @@ -11,80 +11,49 @@ heat_protection = FEET max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT -/obj/item/clothing/shoes/sneakers/black/redcoat - item_color = "redcoat" //Exists for washing machines. Is not different from black shoes in any way. - /obj/item/clothing/shoes/sneakers/brown name = "brown shoes" desc = "A pair of brown shoes." icon_state = "brown" - item_color = "brown" - -/obj/item/clothing/shoes/sneakers/brown/captain - item_color = "captain" //Exists for washing machines. Is not different from brown shoes in any way. - -/obj/item/clothing/shoes/sneakers/brown/hop - item_color = "hop" //Exists for washing machines. Is not different from brown shoes in any way. - -/obj/item/clothing/shoes/sneakers/brown/ce - item_color = "chief" //Exists for washing machines. Is not different from brown shoes in any way. - -/obj/item/clothing/shoes/sneakers/brown/rd - item_color = "director" //Exists for washing machines. Is not different from brown shoes in any way. - -/obj/item/clothing/shoes/sneakers/brown/cmo - item_color = "medical" //Exists for washing machines. Is not different from brown shoes in any way. - -/obj/item/clothing/shoes/sneakers/brown/qm - item_color = "cargo" //Exists for washing machines. Is not different from brown shoes in any way. /obj/item/clothing/shoes/sneakers/blue name = "blue shoes" icon_state = "blue" - item_color = "blue" /obj/item/clothing/shoes/sneakers/green name = "green shoes" icon_state = "green" - item_color = "green" /obj/item/clothing/shoes/sneakers/yellow name = "yellow shoes" icon_state = "yellow" - item_color = "yellow" /obj/item/clothing/shoes/sneakers/purple name = "purple shoes" icon_state = "purple" - item_color = "purple" /obj/item/clothing/shoes/sneakers/brown name = "brown shoes" icon_state = "brown" - item_color = "brown" /obj/item/clothing/shoes/sneakers/red name = "red shoes" desc = "Stylish red shoes." icon_state = "red" - item_color = "red" /obj/item/clothing/shoes/sneakers/white name = "white shoes" icon_state = "white" permeability_coefficient = 0.01 - item_color = "white" /obj/item/clothing/shoes/sneakers/rainbow name = "rainbow shoes" desc = "Very gay shoes." icon_state = "rain_bow" - item_color = "rainbow" /obj/item/clothing/shoes/sneakers/orange name = "orange shoes" icon_state = "orange" - item_color = "orange" /obj/item/clothing/shoes/sneakers/orange/attack_self(mob/user) if (src.chained) @@ -120,5 +89,4 @@ to_chat(c, "You need help taking these off!") return return ..() - - \ No newline at end of file + diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 32d9dd4483..1f868dad6d 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -4,7 +4,6 @@ /obj/item/clothing/shoes/sneakers/mime name = "mime shoes" icon_state = "mime" - item_color = "mime" /obj/item/clothing/shoes/combat //basic syndicate combat boots for nuke ops and mob corpses name = "combat boots" @@ -124,7 +123,6 @@ icon_state = "jackboots" lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' - item_color = "hosred" strip_delay = 50 equip_delay_other = 50 resistance_flags = NONE @@ -181,7 +179,6 @@ name = "\improper Nar'Sien invoker boots" desc = "A pair of boots worn by the followers of Nar'Sie." icon_state = "cult" - item_color = "cult" cold_protection = FEET min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT heat_protection = FEET @@ -227,7 +224,6 @@ name = "jump boots" desc = "A specialized pair of combat boots with a built-in propulsion system for rapid foward movement." icon_state = "jetboots" - item_color = "hosred" resistance_flags = FIRE_PROOF pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes actions_types = list(/datum/action/item_action/bhop) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 1bad198c73..7dbece0f91 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -10,7 +10,7 @@ var/brightness_on = 4 //luminosity when on var/on = FALSE var/obj/item/clothing/suit/space/hardsuit/suit - item_color = "engineering" //Determines used sprites: hardsuit[on]-[color] and hardsuit[on]-[color]2 (lying down sprite) + var/hardsuit_type = "engineering" //Determines used sprites: hardsuit[on]-[type] actions_types = list(/datum/action/item_action/toggle_helmet_light) var/rad_count = 0 @@ -30,7 +30,7 @@ /obj/item/clothing/head/helmet/space/hardsuit/attack_self(mob/user) on = !on - icon_state = "[basestate][on]-[item_color]" + icon_state = "[basestate][on]-[hardsuit_type]" user.update_inv_head() //so our mob-overlays update if(on) @@ -103,6 +103,7 @@ actions_types = list(/datum/action/item_action/toggle_helmet) var/helmettype = /obj/item/clothing/head/helmet/space/hardsuit var/obj/item/tank/jetpack/suit/jetpack = null + var/hardsuit_type /obj/item/clothing/suit/space/hardsuit/Initialize() @@ -169,7 +170,7 @@ icon_state = "hardsuit0-engineering" item_state = "eng_helm" armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 100, "acid" = 75) - item_color = "engineering" + hardsuit_type = "engineering" resistance_flags = FIRE_PROOF /obj/item/clothing/suit/space/hardsuit/engine @@ -188,7 +189,7 @@ desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has thermal shielding." icon_state = "hardsuit0-atmospherics" item_state = "atmo_helm" - item_color = "atmospherics" + hardsuit_type = "atmospherics" armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 25, "fire" = 100, "acid" = 75) heat_protection = HEAD //Uncomment to enable firesuit protection max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT @@ -209,7 +210,7 @@ desc = "An advanced helmet designed for work in a hazardous, low pressure environment. Shines with a high polish." icon_state = "hardsuit0-white" item_state = "ce_helm" - item_color = "white" + hardsuit_type = "white" armor = list("melee" = 40, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 90) heat_protection = HEAD max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT @@ -231,7 +232,7 @@ desc = "A special helmet designed for work in a hazardous, low pressure environment. Has reinforced plating for wildlife encounters and dual floodlights." icon_state = "hardsuit0-mining" item_state = "mining_helm" - item_color = "mining" + hardsuit_type = "mining" max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF heat_protection = HEAD @@ -267,7 +268,7 @@ alt_desc = "A dual-mode advanced helmet designed for work in special operations. It is in combat mode. Property of Gorlex Marauders." icon_state = "hardsuit1-syndi" item_state = "syndie_helm" - item_color = "syndi" + hardsuit_type = "syndi" armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90) on = FALSE var/obj/item/clothing/suit/space/hardsuit/syndi/linkedsuit = null @@ -276,7 +277,7 @@ visor_flags = STOPSPRESSUREDAMAGE /obj/item/clothing/head/helmet/space/hardsuit/syndi/update_icon_state() - icon_state = "hardsuit[on]-[item_color]" + icon_state = "hardsuit[on]-[hardsuit_type]" /obj/item/clothing/head/helmet/space/hardsuit/syndi/Initialize() . = ..() @@ -332,7 +333,7 @@ linkedsuit.clothing_flags &= ~STOPSPRESSUREDAMAGE linkedsuit.cold_protection &= ~(CHEST | GROIN | LEGS | FEET | ARMS | HANDS) - linkedsuit.icon_state = "hardsuit[on]-[item_color]" + linkedsuit.icon_state = "hardsuit[on]-[hardsuit_type]" linkedsuit.update_icon() user.update_inv_wear_suit() user.update_inv_w_uniform() @@ -344,7 +345,7 @@ alt_desc = "A dual-mode advanced hardsuit designed for work in special operations. It is in combat mode. Property of Gorlex Marauders." icon_state = "hardsuit1-syndi" item_state = "syndie_hardsuit" - item_color = "syndi" + hardsuit_type = "syndi" w_class = WEIGHT_CLASS_NORMAL armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90) allowed = list(/obj/item/gun, /obj/item/ammo_box,/obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals) @@ -358,7 +359,7 @@ desc = "An elite version of the syndicate helmet, with improved armour and fireproofing. It is in EVA mode. Property of Gorlex Marauders." alt_desc = "An elite version of the syndicate helmet, with improved armour and fireproofing. It is in combat mode. Property of Gorlex Marauders." icon_state = "hardsuit0-syndielite" - item_color = "syndielite" + hardsuit_type = "syndielite" armor = list("melee" = 60, "bullet" = 60, "laser" = 50, "energy" = 25, "bomb" = 55, "bio" = 100, "rad" = 70, "fire" = 100, "acid" = 100) heat_protection = HEAD max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT @@ -375,7 +376,7 @@ desc = "An elite version of the syndicate hardsuit, with improved armour and fireproofing. It is in travel mode." alt_desc = "An elite version of the syndicate hardsuit, with improved armour and fireproofing. It is in combat mode." icon_state = "hardsuit0-syndielite" - item_color = "syndielite" + hardsuit_type = "syndielite" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite armor = list("melee" = 60, "bullet" = 60, "laser" = 50, "energy" = 25, "bomb" = 55, "bio" = 100, "rad" = 70, "fire" = 100, "acid" = 100) heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS @@ -394,7 +395,7 @@ alt_desc = "A dual-mode advanced helmet designed for any crime-fighting situation. It is in combat mode." icon_state = "hardsuit1-owl" item_state = "s_helmet" - item_color = "owl" + hardsuit_type = "owl" visor_flags_inv = 0 visor_flags = 0 on = FALSE @@ -405,7 +406,7 @@ alt_desc = "A dual-mode advanced hardsuit designed for any crime-fighting situation. It is in combat mode." icon_state = "hardsuit1-owl" item_state = "s_suit" - item_color = "owl" + hardsuit_type = "owl" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/owl mutantrace_variation = STYLE_DIGITIGRADE @@ -416,7 +417,7 @@ desc = "A bizarre gem-encrusted helmet that radiates magical energies." icon_state = "hardsuit0-wiz" item_state = "wiz_helm" - item_color = "wiz" + hardsuit_type = "wiz" resistance_flags = FIRE_PROOF | ACID_PROOF //No longer shall our kind be foiled by lone chemists with spray bottles! armor = list("melee" = 40, "bullet" = 40, "laser" = 40, "energy" = 20, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100) heat_protection = HEAD //Uncomment to enable firesuit protection @@ -446,7 +447,7 @@ desc = "A special helmet designed for work in a hazardous, low pressure environment. Built with lightweight materials for extra comfort, but does not protect the eyes from intense light." icon_state = "hardsuit0-medical" item_state = "medical_helm" - item_color = "medical" + hardsuit_type = "medical" flash_protect = 0 armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 75) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR @@ -479,7 +480,7 @@ name = "prototype hardsuit helmet" desc = "A prototype helmet designed for research in a hazardous, low pressure environment. Scientific data flashes across the visor." icon_state = "hardsuit0-rd" - item_color = "rd" + hardsuit_type = "rd" resistance_flags = ACID_PROOF | FIRE_PROOF max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 100, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 80) @@ -521,7 +522,7 @@ desc = "A special helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor." icon_state = "hardsuit0-sec" item_state = "sec_helm" - item_color = "sec" + hardsuit_type = "sec" armor = list("melee" = 35, "bullet" = 15, "laser" = 30,"energy" = 10, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 75, "acid" = 75) /obj/item/clothing/suit/space/hardsuit/security @@ -542,7 +543,7 @@ name = "head of security's hardsuit helmet" desc = "A special bulky helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor." icon_state = "hardsuit0-hos" - item_color = "hos" + hardsuit_type = "hos" armor = list("melee" = 45, "bullet" = 25, "laser" = 30, "energy" = 10, "bomb" = 25, "bio" = 100, "rad" = 50, "fire" = 95, "acid" = 95) /obj/item/clothing/suit/space/hardsuit/security/hos @@ -591,7 +592,7 @@ icon_state = "hardsuit0-clown" item_state = "hardsuit0-clown" armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 60, "acid" = 30) - item_color = "clown" + hardsuit_type = "clown" /obj/item/clothing/suit/space/hardsuit/clown name = "cosmohonk hardsuit" @@ -617,7 +618,7 @@ icon_state = "hardsuit0-ancient" item_state = "anc_helm" armor = list("melee" = 30, "bullet" = 5, "laser" = 5, "energy" = 0, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 75) - item_color = "ancient" + hardsuit_type = "ancient" resistance_flags = FIRE_PROOF /obj/item/clothing/suit/space/hardsuit/ancient @@ -653,7 +654,7 @@ icon_state = "hardsuit0-ancient" item_state = "anc_helm" armor = list("melee" = 20, "bullet" = 15, "laser" = 15, "energy" = 45, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) - item_color = "ancient" + hardsuit_type = "ancient" brightness_on = 16 flash_protect = 5 //We will not be flash by bombs tint = 1 @@ -715,7 +716,7 @@ name = "soviet hardhelmet" desc = "Crafted with the pride of the proletariat. The vengeful gaze of the visor roots out all fascists and capitalists." item_state = "rig0-soviet" - item_color = "soviet" + hardsuit_type = "soviet" icon_state = "rig0-soviet" armor = list("melee" = 40, "bullet" = 30, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 20, "fire" = 50, "acid" = 75) mutantrace_variation = NONE @@ -806,7 +807,7 @@ desc = "Standard issue hardsuit for playing capture the flag." icon_state = "ert_medical" item_state = "ert_medical" - item_color = "ert_medical" + hardsuit_type = "ert_medical" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf armor = list("melee" = 0, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 95, "acid" = 95) slowdown = 0 @@ -820,7 +821,7 @@ name = "red shielded hardsuit" icon_state = "ert_security" item_state = "ert_security" - item_color = "ert_security" + hardsuit_type = "ert_security" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/red shield_state = "shield-red" shield_on = "shield-red" @@ -837,20 +838,20 @@ desc = "Standard issue hardsuit helmet for playing capture the flag." icon_state = "hardsuit0-ert_medical" item_state = "hardsuit0-ert_medical" - item_color = "ert_medical" + hardsuit_type = "ert_medical" armor = list("melee" = 0, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 95, "acid" = 95) /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/red icon_state = "hardsuit0-ert_security" item_state = "hardsuit0-ert_security" - item_color = "ert_security" + hardsuit_type = "ert_security" /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/blue name = "shielded hardsuit helmet" desc = "Standard issue hardsuit helmet for playing capture the flag." icon_state = "hardsuit0-ert_commander" item_state = "hardsuit0-ert_commander" - item_color = "ert_commander" + hardsuit_type = "ert_commander" //////Syndicate Version @@ -859,7 +860,7 @@ desc = "An advanced hardsuit with built in energy shielding." icon_state = "hardsuit1-syndi" item_state = "syndie_hardsuit" - item_color = "syndi" + hardsuit_type = "syndi" armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100) allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi @@ -875,7 +876,7 @@ desc = "An advanced hardsuit helmet with built in energy shielding." icon_state = "hardsuit1-syndi" item_state = "syndie_helm" - item_color = "syndi" + hardsuit_type = "syndi" armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100) ///SWAT version @@ -884,7 +885,7 @@ desc = "An advanced hardsuit favored by commandos for use in special operations." icon_state = "deathsquad" item_state = "swat_suit" - item_color = "syndi" + hardsuit_type = "syndi" max_charges = 4 current_charges = 4 recharge_delay = 15 @@ -899,7 +900,7 @@ desc = "A tactical helmet with built in energy shielding." icon_state = "deathsquad" item_state = "deathsquad" - item_color = "syndi" + hardsuit_type = "syndi" armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) strip_delay = 130 max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT @@ -914,7 +915,7 @@ desc = "A helmet designed with both form and function in mind, it protects the user against physical trauma and hazardous conditions while also having polychromic light strips." icon_state = "knight_cydonia" item_state = "knight_yellow" - item_color = null + hardsuit_type = null max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | LAVA_PROOF heat_protection = HEAD diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 8c39427c49..69c72f5cce 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -174,7 +174,7 @@ Contains: desc = "Standard issue command helmet for the ERT." icon_state = "hardsuit0-ert_commander" item_state = "hardsuit0-ert_commander" - item_color = "ert_commander" + hardsuit_type = "ert_commander" armor = list("melee" = 65, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 80) strip_delay = 130 brightness_on = 7 @@ -201,7 +201,7 @@ Contains: desc = "Standard issue security helmet for the ERT." icon_state = "hardsuit0-ert_security" item_state = "hardsuit0-ert_security" - item_color = "ert_security" + hardsuit_type = "ert_security" /obj/item/clothing/suit/space/hardsuit/ert/sec desc = "Standard issue security suit for the ERT." @@ -214,7 +214,7 @@ Contains: desc = "Standard issue engineer helmet for the ERT." icon_state = "hardsuit0-ert_engineer" item_state = "hardsuit0-ert_engineer" - item_color = "ert_engineer" + hardsuit_type = "ert_engineer" /obj/item/clothing/suit/space/hardsuit/ert/engi desc = "Standard issue engineer suit for the ERT." @@ -227,7 +227,7 @@ Contains: desc = "Standard issue medical helmet for the ERT." icon_state = "hardsuit0-ert_medical" item_state = "hardsuit0-ert_medical" - item_color = "ert_medical" + hardsuit_type = "ert_medical" /obj/item/clothing/suit/space/hardsuit/ert/med desc = "Standard issue medical suit for the ERT." @@ -243,7 +243,7 @@ Contains: desc = "Red alert command helmet for the ERT. This one is more armored than its standard version." icon_state = "hardsuit0-ert_commander-alert" item_state = "hardsuit0-ert_commander-alert" - item_color = "ert_commander-alert" + hardsuit_type = "ert_commander-alert" armor = list("melee" = 70, "bullet" = 55, "laser" = 50, "energy" = 50, "bomb" = 65, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) brightness_on = 8 resistance_flags = FIRE_PROOF | ACID_PROOF @@ -263,7 +263,7 @@ Contains: desc = "Red alert security helmet for the ERT. This one is more armored than its standard version." icon_state = "hardsuit0-ert_security-alert" item_state = "hardsuit0-ert_security-alert" - item_color = "ert_security-alert" + hardsuit_type = "ert_security-alert" /obj/item/clothing/suit/space/hardsuit/ert/alert/sec desc = "Red alert security suit for the ERT. This one is more armored than its standard version." @@ -276,7 +276,7 @@ Contains: desc = "Red alert engineer helmet for the ERT. This one is more armored than its standard version." icon_state = "hardsuit0-ert_engineer-alert" item_state = "hardsuit0-ert_engineer-alert" - item_color = "ert_engineer-alert" + hardsuit_type = "ert_engineer-alert" /obj/item/clothing/suit/space/hardsuit/ert/alert/engi desc = "Red alert engineer suit for the ERT. This one is more armored than its standard version." @@ -289,7 +289,7 @@ Contains: desc = "Red alert medical helmet for the ERT. This one is more armored than its standard version." icon_state = "hardsuit0-ert_medical-alert" item_state = "hardsuit0-ert_medical-alert" - item_color = "ert_medical-alert" + hardsuit_type = "ert_medical-alert" /obj/item/clothing/suit/space/hardsuit/ert/alert/med desc = "Red alert medical suit for the ERT. This one is more armored than its standard version." @@ -320,7 +320,6 @@ Contains: icon_state = "cespace_helmet" item_state = "nothing" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 0, "acid" = 0) - item_color = "engineering" resistance_flags = FIRE_PROOF rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE actions_types = list() @@ -391,7 +390,7 @@ Contains: desc = "A helmet worn by those who deal with paranormal threats for a living." icon_state = "hardsuit0-prt" item_state = "hardsuit0-prt" - item_color = "knight_grey" + hardsuit_type = "knight_grey" max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT actions_types = list() resistance_flags = FIRE_PROOF diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 6f61bf56cb..0e345636cf 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -973,7 +973,6 @@ name = "polychromic winter coat" icon_state = "coatpoly" item_state = "coatpoly" - item_color = "coatpoly" hoodtype = /obj/item/clothing/head/hooded/winterhood/polychromic hasprimary = TRUE hassecondary = TRUE @@ -984,7 +983,6 @@ /obj/item/clothing/head/hooded/winterhood/polychromic icon_state = "winterhood_poly" - item_color = "winterhood_poly" item_state = "winterhood_poly" /obj/item/clothing/head/hooded/winterhood/polychromic/worn_overlays(isinhands, icon_file, style_flags = NONE) //this is where the main magic happens. @@ -992,11 +990,11 @@ if(suit.hasprimary | suit.hassecondary) if(!isinhands) //prevents the worn sprites from showing up if you're just holding them if(suit.hasprimary) //checks if overlays are enabled - var/mutable_appearance/primary_worn = mutable_appearance(icon_file, "[item_color]-primary") //automagical sprite selection + var/mutable_appearance/primary_worn = mutable_appearance(icon_file, "[icon_state]-primary") //automagical sprite selection primary_worn.color = suit.primary_color //colors the overlay . += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite. if(suit.hassecondary) - var/mutable_appearance/secondary_worn = mutable_appearance(icon_file, "[item_color]-secondary") + var/mutable_appearance/secondary_worn = mutable_appearance(icon_file, "[icon_state]-secondary") secondary_worn.color = suit.secondary_color . += secondary_worn @@ -1005,15 +1003,15 @@ if(hasprimary | hassecondary | hastertiary) if(!isinhands) //prevents the worn sprites from showing up if you're just holding them if(hasprimary) //checks if overlays are enabled - var/mutable_appearance/primary_worn = mutable_appearance(icon_file, "[item_color]-primary[suittoggled ? "_t" : ""]") //automagical sprite selection + var/mutable_appearance/primary_worn = mutable_appearance(icon_file, "[icon_state]-primary[suittoggled ? "_t" : ""]") //automagical sprite selection primary_worn.color = primary_color //colors the overlay . += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite. if(hassecondary) - var/mutable_appearance/secondary_worn = mutable_appearance(icon_file, "[item_color]-secondary[suittoggled ? "_t" : ""]") + var/mutable_appearance/secondary_worn = mutable_appearance(icon_file, "[icon_state]-secondary[suittoggled ? "_t" : ""]") secondary_worn.color = secondary_color . += secondary_worn if(hastertiary) - var/mutable_appearance/tertiary_worn = mutable_appearance(icon_file, "[item_color]-tertiary[suittoggled ? "_t" : ""]") + var/mutable_appearance/tertiary_worn = mutable_appearance(icon_file, "[icon_state]-tertiary[suittoggled ? "_t" : ""]") tertiary_worn.color = tertiary_color . += tertiary_worn diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index cc91391393..bc40b8647d 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -5,6 +5,7 @@ permeability_coefficient = 0.9 slot_flags = ITEM_SLOT_ICLOTHING armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + mutantrace_variation = STYLE_DIGITIGRADE var/fitted = FEMALE_UNIFORM_FULL // For use in alternate clothing styles for women var/has_sensor = HAS_SENSORS // For the crew computer var/random_sensor = TRUE @@ -15,7 +16,6 @@ var/dummy_thick = FALSE // is able to hold accessories on its item var/obj/item/clothing/accessory/attached_accessory var/mutable_appearance/accessory_overlay - mutantrace_variation = STYLE_DIGITIGRADE /obj/item/clothing/under/worn_overlays(isinhands = FALSE, icon_file, style_flags = NONE) . = list() @@ -28,15 +28,15 @@ if(accessory_overlay) . += accessory_overlay if(hasprimary) //checks if overlays are enabled - var/mutable_appearance/primary_worn = mutable_appearance(icon_file, "[item_color]-primary") //automagical sprite selection + var/mutable_appearance/primary_worn = mutable_appearance(icon_file, "[icon_state]-primary") //automagical sprite selection primary_worn.color = primary_color //colors the overlay . += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite. if(hassecondary) - var/mutable_appearance/secondary_worn = mutable_appearance(icon_file, "[item_color]-secondary") + var/mutable_appearance/secondary_worn = mutable_appearance(icon_file, "[icon_state]-secondary") secondary_worn.color = secondary_color . += secondary_worn if(hastertiary) - var/mutable_appearance/tertiary_worn = mutable_appearance(icon_file, "[item_color]-tertiary") + var/mutable_appearance/tertiary_worn = mutable_appearance(icon_file, "[icon_state]-tertiary") tertiary_worn.color = tertiary_color . += tertiary_worn @@ -112,9 +112,7 @@ if((flags_inv & HIDEACCESSORY) || (A.flags_inv & HIDEACCESSORY)) return TRUE - var/accessory_color = attached_accessory.item_color - if(!accessory_color) - accessory_color = attached_accessory.icon_state + var/accessory_color = attached_accessory.icon_state accessory_overlay = mutable_appearance('icons/mob/accessories.dmi', "[accessory_color]") accessory_overlay.alpha = attached_accessory.alpha accessory_overlay.color = attached_accessory.color @@ -166,4 +164,7 @@ if(SENSOR_COORDS) . += "Its vital tracker and tracking beacon appear to be enabled." if(attached_accessory) - . += "\A [attached_accessory] is attached to it." \ No newline at end of file + . += "\A [attached_accessory] is attached to it." + +/obj/item/clothing/under/rank + dying_key = DYE_REGISTRY_UNDER diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 628f7187ca..88821e1afe 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -4,7 +4,6 @@ icon = 'icons/obj/clothing/accessories.dmi' icon_state = "plasma" item_state = "" //no inhands - item_color = "plasma" //On accessories, this controls the worn sprite. That's a bit weird. slot_flags = 0 w_class = WEIGHT_CLASS_SMALL var/above_suit = FALSE @@ -85,7 +84,6 @@ desc = "For some classy, murderous fun." icon_state = "waistcoat" item_state = "waistcoat" - item_color = "waistcoat" minimize_when_attached = FALSE /obj/item/clothing/accessory/maidapron @@ -93,7 +91,6 @@ desc = "The best part of a maid costume." icon_state = "maidapron" item_state = "maidapron" - item_color = "maidapron" minimize_when_attached = FALSE ////////// @@ -104,7 +101,6 @@ name = "bronze medal" desc = "A bronze medal." icon_state = "bronze" - item_color = "bronze" custom_materials = list(/datum/material/iron=1000) resistance_flags = FIRE_PROOF var/medaltype = "medal" //Sprite used for medalbox @@ -173,7 +169,6 @@ name = "ribbon" desc = "A ribbon" icon_state = "cargo" - item_color = "cargo" /obj/item/clothing/accessory/medal/ribbon/cargo name = "\"cargo tech of the shift\" award" @@ -188,7 +183,6 @@ name = "silver medal" desc = "A silver medal." icon_state = "silver" - item_color = "silver" medaltype = "medal-silver" custom_materials = list(/datum/material/silver=1000) @@ -204,7 +198,6 @@ name = "gold medal" desc = "A prestigious golden medal." icon_state = "gold" - item_color = "gold" medaltype = "medal-gold" custom_materials = list(/datum/material/gold=1000) @@ -227,7 +220,6 @@ name = "plasma medal" desc = "An eccentric medal made of plasma." icon_state = "plasma" - item_color = "plasma" medaltype = "medal-plasma" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = -10, "acid" = 0) //It's made of plasma. Of course it's flammable. custom_materials = list(/datum/material/plasma=1000) @@ -250,7 +242,6 @@ name = "red armband" desc = "An fancy red armband!" icon_state = "redband" - item_color = "redband" /obj/item/clothing/accessory/armband/deputy name = "security deputy armband" @@ -260,37 +251,31 @@ name = "cargo bay guard armband" desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is brown." icon_state = "cargoband" - item_color = "cargoband" /obj/item/clothing/accessory/armband/engine name = "engineering guard armband" desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is orange with a reflective strip!" icon_state = "engieband" - item_color = "engieband" /obj/item/clothing/accessory/armband/science name = "science guard armband" desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is purple." icon_state = "rndband" - item_color = "rndband" /obj/item/clothing/accessory/armband/hydro name = "hydroponics guard armband" desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is green and blue." icon_state = "hydroband" - item_color = "hydroband" /obj/item/clothing/accessory/armband/med name = "medical guard armband" desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white." icon_state = "medband" - item_color = "medband" /obj/item/clothing/accessory/armband/medblue name = "medical guard armband" desc = "An armband, worn by the station's security forces to display which department they're assigned to. This one is white and blue." icon_state = "medblueband" - item_color = "medblueband" ////////////// //OBJECTION!// @@ -300,7 +285,6 @@ name = "attorney's badge" 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)) @@ -324,7 +308,6 @@ name = "pocket protector" desc = "Can protect your clothing from ink stains, but you'll look like a nerd if you're using one." icon_state = "pocketprotector" - item_color = "pocketprotector" pocket_storage_component_path = /datum/component/storage/concrete/pockets/pocketprotector /obj/item/clothing/accessory/pocketprotector/full/Initialize() @@ -346,14 +329,12 @@ name = "bone talisman" desc = "A hunter's talisman, some say the old gods smile on those who wear it." icon_state = "talisman" - item_color = "talisman" armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 20, "bio" = 20, "rad" = 5, "fire" = 0, "acid" = 25) /obj/item/clothing/accessory/skullcodpiece name = "skull codpiece" desc = "A skull shaped ornament, intended to protect the important things in life." icon_state = "skull" - item_color = "skull" above_suit = TRUE armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 20, "bio" = 20, "rad" = 5, "fire" = 0, "acid" = 25) @@ -361,7 +342,6 @@ name = "false codpiece" desc = "A plastic ornament, intended to protect the important things in life. It's not very good at it." icon_state = "skull" - item_color = "skull" above_suit = TRUE armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) @@ -373,7 +353,6 @@ name = "protective padding" desc = "A soft padding meant to cushion the wearer from melee harm." icon_state = "padding" - item_color = "nothing" armor = list("melee" = 20, "bullet" = 10, "laser" = 0, "energy" = 0, "bomb" = 5, "bio" = 0, "rad" = 0, "fire" = -20, "acid" = 45) flags_inv = HIDEACCESSORY //hidden from indiscrete mob examines. @@ -381,7 +360,6 @@ name = "kevlar padding" desc = "A layered kevlar padding meant to cushion the wearer from ballistic harm." icon_state = "padding" - item_color = "nothing" armor = list("melee" = 10, "bullet" = 20, "laser" = 0, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 25) flags_inv = HIDEACCESSORY @@ -389,6 +367,5 @@ name = "ablative padding" desc = "A thin ultra-refractory composite padding meant to cushion the wearer from energy lasers harm." icon_state = "plastics" - item_color = "nothing" armor = list("melee" = 0, "bullet" = 0, "laser" = 20, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = -40) flags_inv = HIDEACCESSORY diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm index 6b40e08af9..3ee553040f 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -1,5 +1,6 @@ /obj/item/clothing/under/color desc = "A standard issue colored jumpsuit. Variety is the spice of life!" + dying_key = DYE_REGISTRY_UNDER /obj/item/clothing/under/color/jumpskirt body_parts_covered = CHEST|GROIN|ARMS @@ -38,7 +39,6 @@ name = "black jumpsuit" icon_state = "black" item_state = "bl_suit" - item_color = "black" resistance_flags = NONE /obj/item/clothing/under/color/black/trackless @@ -49,7 +49,6 @@ name = "black jumpskirt" icon_state = "black_skirt" item_state = "bl_suit" - item_color = "black_skirt" /obj/item/clothing/under/color/black/ghost item_flags = DROPDEL @@ -66,14 +65,12 @@ desc = "A tasteful grey jumpsuit that reminds you of the good old days." icon_state = "grey" item_state = "gy_suit" - item_color = "grey" /obj/item/clothing/under/color/jumpskirt/grey name = "grey jumpskirt" desc = "A tasteful grey jumpskirt that reminds you of the good old days." icon_state = "grey_skirt" item_state = "gy_suit" - item_color = "grey_skirt" /obj/item/clothing/under/color/grey/glorf name = "ancient jumpsuit" @@ -87,117 +84,98 @@ name = "blue jumpsuit" icon_state = "blue" item_state = "b_suit" - item_color = "blue" /obj/item/clothing/under/color/jumpskirt/blue name = "blue jumpskirt" icon_state = "blue_skirt" item_state = "b_suit" - item_color = "blue_skirt" /obj/item/clothing/under/color/green name = "green jumpsuit" icon_state = "green" item_state = "g_suit" - item_color = "green" /obj/item/clothing/under/color/jumpskirt/green name = "green jumpskirt" icon_state = "green_skirt" item_state = "g_suit" - item_color = "green_skirt" /obj/item/clothing/under/color/orange name = "orange jumpsuit" desc = "Don't wear this near paranoid security officers." icon_state = "orange" item_state = "o_suit" - item_color = "orange" /obj/item/clothing/under/color/jumpskirt/orange name = "orange jumpskirt" icon_state = "orange_skirt" item_state = "o_suit" - item_color = "orange_skirt" /obj/item/clothing/under/color/pink name = "pink jumpsuit" icon_state = "pink" desc = "Just looking at this makes you feel fabulous." item_state = "p_suit" - item_color = "pink" /obj/item/clothing/under/color/jumpskirt/pink name = "pink jumpskirt" icon_state = "pink_skirt" item_state = "p_suit" - item_color = "pink_skirt" /obj/item/clothing/under/color/red name = "red jumpsuit" icon_state = "red" item_state = "r_suit" - item_color = "red" /obj/item/clothing/under/color/jumpskirt/red name = "red jumpskirt" icon_state = "red_skirt" item_state = "r_suit" - item_color = "red_skirt" /obj/item/clothing/under/color/white name = "white jumpsuit" icon_state = "white" item_state = "w_suit" - item_color = "white" /obj/item/clothing/under/color/jumpskirt/white name = "white jumpskirt" icon_state = "white_skirt" item_state = "w_suit" - item_color = "white_skirt" /obj/item/clothing/under/color/yellow name = "yellow jumpsuit" icon_state = "yellow" item_state = "y_suit" - item_color = "yellow" /obj/item/clothing/under/color/jumpskirt/yellow name = "yellow jumpskirt" icon_state = "yellow_skirt" item_state = "y_suit" - item_color = "yellow_skirt" /obj/item/clothing/under/color/darkblue name = "darkblue jumpsuit" icon_state = "darkblue" item_state = "b_suit" - item_color = "darkblue" /obj/item/clothing/under/color/jumpskirt/darkblue name = "darkblue jumpskirt" icon_state = "darkblue_skirt" item_state = "b_suit" - item_color = "darkblue_skirt" /obj/item/clothing/under/color/teal name = "teal jumpsuit" icon_state = "teal" item_state = "b_suit" - item_color = "teal" /obj/item/clothing/under/color/jumpskirt/teal name = "teal jumpskirt" icon_state = "teal_skirt" item_state = "b_suit" - item_color = "teal_skirt" /obj/item/clothing/under/color/lightpurple name = "purple jumpsuit" icon_state = "lightpurple" item_state = "p_suit" - item_color = "lightpurple" /obj/item/clothing/under/color/lightpurple/trackless desc = "A magically colored jumpsuit. No sensors are attached!" @@ -207,62 +185,52 @@ name = "lightpurple jumpskirt" icon_state = "lightpurple_skirt" item_state = "p_suit" - item_color = "lightpurple_skirt" /obj/item/clothing/under/color/darkgreen name = "darkgreen jumpsuit" icon_state = "darkgreen" item_state = "g_suit" - item_color = "darkgreen" /obj/item/clothing/under/color/jumpskirt/darkgreen name = "darkgreen jumpskirt" icon_state = "darkgreen_skirt" item_state = "g_suit" - item_color = "darkgreen_skirt" /obj/item/clothing/under/color/lightbrown name = "lightbrown jumpsuit" icon_state = "lightbrown" item_state = "lb_suit" - item_color = "lightbrown" /obj/item/clothing/under/color/jumpskirt/lightbrown name = "lightbrown jumpskirt" icon_state = "lightbrown_skirt" item_state = "lb_suit" - item_color = "lightbrown_skirt" /obj/item/clothing/under/color/brown name = "brown jumpsuit" icon_state = "brown" item_state = "lb_suit" - item_color = "brown" /obj/item/clothing/under/color/jumpskirt/brown name = "brown jumpskirt" icon_state = "brown_skirt" item_state = "lb_suit" - item_color = "brown_skirt" /obj/item/clothing/under/color/maroon name = "maroon jumpsuit" icon_state = "maroon" item_state = "r_suit" - item_color = "maroon" /obj/item/clothing/under/color/jumpskirt/maroon name = "maroon jumpskirt" icon_state = "maroon_skirt" item_state = "r_suit" - item_color = "maroon_skirt" /obj/item/clothing/under/color/rainbow name = "rainbow jumpsuit" desc = "A multi-colored jumpsuit!" icon_state = "rainbow" item_state = "rainbow" - item_color = "rainbow" can_adjust = FALSE /obj/item/clothing/under/color/jumpskirt/rainbow @@ -270,5 +238,4 @@ desc = "A multi-colored jumpskirt!" icon_state = "rainbow_skirt" item_state = "rainbow" - item_color = "rainbow_skirt" can_adjust = FALSE diff --git a/code/modules/clothing/under/costume.dm b/code/modules/clothing/under/costume.dm index be142a04ff..12988c26ae 100644 --- a/code/modules/clothing/under/costume.dm +++ b/code/modules/clothing/under/costume.dm @@ -2,7 +2,6 @@ name = "\improper Roman armor" desc = "Ancient Roman armor. Made of metallic and leather straps." icon_state = "roman" - item_color = "roman" item_state = "armor" can_adjust = FALSE strip_delay = 100 @@ -13,21 +12,18 @@ desc = "The leather club is two sectors down." icon_state = "darkholme" item_state = "darkholme" - item_color = "darkholme" can_adjust = FALSE /obj/item/clothing/under/costume/owl name = "owl uniform" desc = "A soft brown jumpsuit made of synthetic feathers and strong conviction." icon_state = "owl" - item_color = "owl" can_adjust = FALSE /obj/item/clothing/under/costume/griffin name = "griffon uniform" desc = "A soft brown jumpsuit with a white feather collar made of synthetic feathers and a lust for mayhem." icon_state = "griffin" - item_color = "griffin" can_adjust = FALSE /obj/item/clothing/under/costume/schoolgirl @@ -35,7 +31,6 @@ desc = "It's just like one of my Japanese animes!" icon_state = "schoolgirl" item_state = "schoolgirl" - item_color = "schoolgirl" body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -44,26 +39,22 @@ name = "red schoolgirl uniform" icon_state = "schoolgirlred" item_state = "schoolgirlred" - item_color = "schoolgirlred" /obj/item/clothing/under/costume/schoolgirl/green name = "green schoolgirl uniform" icon_state = "schoolgirlgreen" item_state = "schoolgirlgreen" - item_color = "schoolgirlgreen" /obj/item/clothing/under/costume/schoolgirl/orange name = "orange schoolgirl uniform" icon_state = "schoolgirlorange" item_state = "schoolgirlorange" - item_color = "schoolgirlorange" /obj/item/clothing/under/costume/pirate name = "pirate outfit" desc = "Yarr." icon_state = "pirate" item_state = "pirate" - item_color = "pirate" can_adjust = FALSE /obj/item/clothing/under/costume/soviet @@ -71,7 +62,6 @@ desc = "For the Motherland!" icon_state = "soviet" item_state = "soviet" - item_color = "soviet" can_adjust = FALSE /obj/item/clothing/under/costume/redcoat @@ -79,7 +69,6 @@ desc = "Looks old." icon_state = "redcoat" item_state = "redcoat" - item_color = "redcoat" can_adjust = FALSE /obj/item/clothing/under/costume/kilt @@ -87,7 +76,6 @@ desc = "Includes shoes and plaid." icon_state = "kilt" item_state = "kilt" - item_color = "kilt" body_parts_covered = CHEST|GROIN|LEGS|FEET fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -103,7 +91,6 @@ name = "polychromic kilt" desc = "It's not a skirt!" icon_state = "polykilt" - item_color = "polykilt" hasprimary = TRUE hassecondary = TRUE primary_color = "#FFFFFF" @@ -116,7 +103,6 @@ desc = "Are you not entertained? Is that not why you are here?" icon_state = "gladiator" item_state = "gladiator" - item_color = "gladiator" body_parts_covered = CHEST|GROIN|ARMS fitted = NO_FEMALE_UNIFORM can_adjust = FALSE @@ -131,7 +117,6 @@ desc = "Maid in China." icon_state = "maid" item_state = "maid" - item_color = "maid" body_parts_covered = CHEST|GROIN fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -146,7 +131,6 @@ desc = "Just looking at this makes you want to sing." icon_state = "ysing" item_state = "ysing" - item_color = "ysing" body_parts_covered = CHEST|GROIN|ARMS fitted = NO_FEMALE_UNIFORM alternate_worn_layer = ABOVE_SHOES_LAYER @@ -157,7 +141,6 @@ desc = "Just looking at this makes you want to sing." icon_state = "bsing" item_state = "bsing" - item_color = "bsing" body_parts_covered = CHEST|GROIN|ARMS alternate_worn_layer = ABOVE_SHOES_LAYER fitted = FEMALE_UNIFORM_TOP @@ -167,7 +150,6 @@ name = "geisha suit" desc = "Cute space ninja senpai not included." icon_state = "geisha" - item_color = "geisha" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE @@ -175,7 +157,6 @@ name = "villain suit" desc = "A change of wardrobe is necessary if you ever want to catch a real superhero." icon_state = "villain" - item_color = "villain" can_adjust = FALSE /obj/item/clothing/under/costume/sailor @@ -183,7 +164,6 @@ desc = "Skipper's in the wardroom drinkin gin'." icon_state = "sailor" item_state = "b_suit" - item_color = "sailor" can_adjust = FALSE /obj/item/clothing/under/costume/russian_officer @@ -191,14 +171,12 @@ desc = "The latest in fashionable russian outfits." icon_state = "hostanclothes" item_state = "hostanclothes" - item_color = "hostanclothes" /obj/item/clothing/under/costume/mummy name = "mummy wrapping" desc = "Return the slab or suffer my stale references." icon_state = "mummy" item_state = "mummy" - item_color = "mummy" body_parts_covered = CHEST|GROIN|ARMS|LEGS fitted = NO_FEMALE_UNIFORM can_adjust = FALSE @@ -209,7 +187,6 @@ desc = "Perfect camouflage for hiding in botany." icon_state = "scarecrow" item_state = "scarecrow" - item_color = "scarecrow" body_parts_covered = CHEST|GROIN|ARMS|LEGS fitted = NO_FEMALE_UNIFORM can_adjust = FALSE @@ -220,7 +197,6 @@ desc = "A dress inspired by the ancient \"Victorian\" era." icon_state = "draculass" item_state = "draculass" - item_color = "draculass" body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -230,7 +206,6 @@ desc = "A modified scientist jumpsuit to look extra cool." icon_state = "drfreeze" item_state = "drfreeze" - item_color = "drfreeze" can_adjust = FALSE /obj/item/clothing/under/costume/lobster @@ -238,7 +213,6 @@ desc = "Who beheaded the college mascot?" icon_state = "lobster" item_state = "lobster" - item_color = "lobster" fitted = NO_FEMALE_UNIFORM can_adjust = FALSE @@ -247,7 +221,6 @@ desc = "Now you're cooking." icon_state = "gondola" item_state = "lb_suit" - item_color = "gondola" can_adjust = FALSE /obj/item/clothing/under/costume/skeleton @@ -255,7 +228,6 @@ desc = "A black jumpsuit with a white bone pattern printed on it. Spooky!" icon_state = "skeleton" item_state = "skeleton" - item_color = "skeleton" body_parts_covered = CHEST|GROIN|ARMS|LEGS fitted = NO_FEMALE_UNIFORM can_adjust = FALSE @@ -347,5 +319,4 @@ name = "cloud" desc = "cloud" icon_state = "cloud" - item_color = "cloud" can_adjust = FALSE diff --git a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm index 74181b05eb..8843710ddf 100644 --- a/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm +++ b/code/modules/clothing/under/jobs/Plasmaman/civilian_service.dm @@ -3,14 +3,12 @@ desc = "A joint envirosuit used by plasmamen quartermasters and cargo techs alike, due to the logistical problems of differenciating the two with the length of their pant legs." icon_state = "cargo_envirosuit" item_state = "cargo_envirosuit" - item_color = "cargo_envirosuit" /obj/item/clothing/under/plasmaman/mining name = "mining plasma envirosuit" desc = "An air-tight khaki suit designed for operations on lavaland by plasmamen." icon_state = "explorer_envirosuit" item_state = "explorer_envirosuit" - item_color = "explorer_envirosuit" /obj/item/clothing/under/plasmaman/chef @@ -18,56 +16,48 @@ desc = "A white plasmaman envirosuit designed for cullinary practices. One might question why a member of a species that doesn't need to eat would become a chef." icon_state = "chef_envirosuit" item_state = "chef_envirosuit" - item_color = "chef_envirosuit" /obj/item/clothing/under/plasmaman/enviroslacks name = "enviroslacks" desc = "The pet project of a particularly posh plasmaman, this custom suit was quickly appropriated by Nano-Trasen for it's detectives, lawyers, and bar-tenders alike." icon_state = "enviroslacks" item_state = "enviroslacks" - item_color = "enviroslacks" /obj/item/clothing/under/plasmaman/chaplain name = "chaplain's plasma envirosuit" desc = "An envirosuit specially designed for only the most pious of plasmamen." icon_state = "chap_envirosuit" item_state = "chap_envirosuit" - item_color = "chap_envirosuit" /obj/item/clothing/under/plasmaman/curator name = "curator's plasma envirosuit" desc = "Made out of a modified voidsuit, this suit was Nano-Trasen's first solution to the *logistical problems* that come with employing plasmamen. Due to the modifications, the suit is no longer space-worthy. Despite their limitations, these suits are still in used by historian and old-styled plasmamen alike." icon_state = "prototype_envirosuit" item_state = "prototype_envirosuit" - item_color = "prototype_envirosuit" /obj/item/clothing/under/plasmaman/janitor name = "janitor's plasma envirosuit" desc = "A grey and purple envirosuit designated for plasmamen janitors." icon_state = "janitor_envirosuit" item_state = "janitor_envirosuit" - item_color = "janitor_envirosuit" /obj/item/clothing/under/plasmaman/botany name = "botany envirosuit" desc = "A green and blue envirosuit designed to protect plasmamen from minor plant-related injuries." icon_state = "botany_envirosuit" item_state = "botany_envirosuit" - item_color = "botany_envirosuit" /obj/item/clothing/under/plasmaman/hop name = "head of personell's envirosuit" desc = "A prestigious azure envirosuit designed for head of personell." icon_state = "hop_envirosuit" item_state = "hop_envirosuit" - item_color = "hop_envirosuit" /obj/item/clothing/under/plasmaman/captain name = "captain's envirosuit" desc = "An expensive piece of plasmaman envirosuit fashion. guaranteed to keep you cool while the station goes down in fierceful fires." icon_state = "captain_envirosuit" item_state = "captain_envirosuit" - item_color = "captain_envirosuit" armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 0, "fire" = 95, "acid" = 95) /obj/item/clothing/under/plasmaman/mime @@ -75,14 +65,12 @@ desc = "It's not very colourful." icon_state = "mime_envirosuit" item_state = "mime_envirosuit" - item_color = "mime_envirosuit" /obj/item/clothing/under/plasmaman/clown name = "clown envirosuit" desc = "'HONK!'" icon_state = "clown_envirosuit" item_state = "clown_envirosuit" - item_color = "clown_envirosuit" /obj/item/clothing/under/plasmaman/clown/Extinguish(mob/living/carbon/human/H) if(!istype(H)) diff --git a/code/modules/clothing/under/jobs/Plasmaman/engineering.dm b/code/modules/clothing/under/jobs/Plasmaman/engineering.dm index 1f381df4cf..15eb189fa8 100644 --- a/code/modules/clothing/under/jobs/Plasmaman/engineering.dm +++ b/code/modules/clothing/under/jobs/Plasmaman/engineering.dm @@ -3,7 +3,6 @@ desc = "An air-tight suit designed to be used by plasmamen exployed as engineers, the usual purple stripes being replaced by engineer's orange. It protects the user from fire and acid damage." icon_state = "engineer_envirosuit" item_state = "engineer_envirosuit" - item_color = "engineer_envirosuit" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 10, "fire" = 95, "acid" = 95) /obj/item/clothing/under/plasmaman/engineering/ce @@ -11,11 +10,9 @@ desc = "An advanced air-tight suit designed to be used by plasmamen chief engineers, complete with ornamental widgets and gizmo. It protects the user from fire and acid damage." icon_state = "ce_envirosuit" item_state = "ce_envirosuit" - item_color = "ce_envirosuit" /obj/item/clothing/under/plasmaman/atmospherics name = "atmospherics plasma envirosuit" desc = "An air-tight suit designed to be used by plasmamen exployed as atmos technicians, the usual purple stripes being replaced by atmos's blue." icon_state = "atmos_envirosuit" item_state = "atmos_envirosuit" - item_color = "atmos_envirosuit" diff --git a/code/modules/clothing/under/jobs/Plasmaman/medsci.dm b/code/modules/clothing/under/jobs/Plasmaman/medsci.dm index 6106d785a9..03d089c10d 100644 --- a/code/modules/clothing/under/jobs/Plasmaman/medsci.dm +++ b/code/modules/clothing/under/jobs/Plasmaman/medsci.dm @@ -3,28 +3,24 @@ desc = "A suit designed for the station's more plasma-based doctors." icon_state = "doctor_envirosuit" item_state = "doctor_envirosuit" - item_color = "doctor_envirosuit" /obj/item/clothing/under/plasmaman/cmo name = "chief medical officer's plasma envirosuit" desc = "A suit designed for the station's most plasma-based chief medical officer, but not for their cat." icon_state = "cmo_envirosuit" item_state = "cmo_envirosuit" - item_color = "cmo_envirosuit" /obj/item/clothing/under/plasmaman/science name = "science plasma envirosuit" desc = "A plasmaman envirosuit designed for scientists." icon_state = "scientist_envirosuit" item_state = "scientist_envirosuit" - item_color = "scientist_envirosuit" /obj/item/clothing/under/plasmaman/rd name = "research direactor's plasma envirosuit" desc = "A plasmaman envirosuit designed for the research director to aid them in their job of directing research into the right direction." icon_state = "rd_envirosuit" item_state = "rd_envirosuit" - item_color = "rd_envirosuit" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 10, "bio" = 100, "rad" = 0, "fire" = 95, "acid" = 95) /obj/item/clothing/under/plasmaman/robotics @@ -32,25 +28,21 @@ desc = "A plasmaman envirosuit designed for roboticists." icon_state = "roboticist_envirosuit" item_state = "roboticist_envirosuit" - item_color = "roboticist_envirosuit" /obj/item/clothing/under/plasmaman/viro name = "virology plasma envirosuit" desc = "The suit worn by the safest people on the station, those who are completely immune to the monstrosities they create." icon_state = "virologist_envirosuit" item_state = "virologist_envirosuit" - item_color = "virologist_envirosuit" /obj/item/clothing/under/plasmaman/genetics name = "genetics plasma envirosuit" desc = "A plasmaman envirosuit designed for geneticists." icon_state = "geneticist_envirosuit" item_state = "geneticist_envirosuit" - item_color = "geneticist_envirosuit" /obj/item/clothing/under/plasmaman/chemist name = "chemistry plasma envirosuit" desc = "A plasmaman envirosuit designed for chemists." icon_state = "chemist_envirosuit" item_state = "chemist_envirosuit" - item_color = "chemist_envirosuit" diff --git a/code/modules/clothing/under/jobs/Plasmaman/security.dm b/code/modules/clothing/under/jobs/Plasmaman/security.dm index ff756e09fd..35b20ccea6 100644 --- a/code/modules/clothing/under/jobs/Plasmaman/security.dm +++ b/code/modules/clothing/under/jobs/Plasmaman/security.dm @@ -3,7 +3,6 @@ desc = "A plasmaman containment suit designed for security officers, offering a limited amount of extra protection." icon_state = "security_envirosuit" item_state = "security_envirosuit" - item_color = "security_envirosuit" armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 0, "fire" = 95, "acid" = 95) /obj/item/clothing/under/plasmaman/security/warden @@ -11,11 +10,9 @@ desc = "A plasmaman containment suit designed for the warden, white stripes being added to differeciate them from other members of security." icon_state = "warden_envirosuit" item_state = "warden_envirosuit" - item_color = "warden_envirosuit" /obj/item/clothing/under/plasmaman/security/hos name = "security plasma envirosuit" desc = "A slick black and red plasmaman containment suit designed for the head of security, also called the LAW." icon_state = "hos_envirosuit" item_state = "hos_envirosuit" - item_color = "hos_envirosuit" diff --git a/code/modules/clothing/under/jobs/cargo.dm b/code/modules/clothing/under/jobs/cargo.dm index 5727ebc0e9..3ee00996a4 100644 --- a/code/modules/clothing/under/jobs/cargo.dm +++ b/code/modules/clothing/under/jobs/cargo.dm @@ -4,14 +4,12 @@ desc = "It's a jumpsuit worn by the quartermaster. It's specially designed to prevent back injuries caused by pushing paper." icon_state = "qm" item_state = "lb_suit" - item_color = "qm" /obj/item/clothing/under/rank/cargo/qm/skirt name = "quartermaster's jumpskirt" desc = "It's a jumpskirt worn by the quartermaster. It's specially designed to prevent back injuries caused by pushing paper." icon_state = "qm_skirt" item_state = "lb_suit" - item_color = "qm_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -21,7 +19,6 @@ desc = "Shooooorts! They're comfy and easy to wear!" icon_state = "cargotech" item_state = "lb_suit" - item_color = "cargo" body_parts_covered = CHEST|GROIN|ARMS alt_covers_chest = TRUE @@ -30,7 +27,6 @@ desc = "Skiiiiirts! They're comfy and easy to wear" icon_state = "cargo_skirt" item_state = "lb_suit" - item_color = "cargo_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -40,12 +36,10 @@ name = "shaft miner's jumpsuit" icon_state = "miner" item_state = "miner" - item_color = "miner" /obj/item/clothing/under/rank/cargo/miner/lavaland desc = "A green uniform for operating in hazardous environments." name = "shaft miner's jumpsuit" icon_state = "explorer" item_state = "explorer" - item_color = "explorer" can_adjust = FALSE diff --git a/code/modules/clothing/under/jobs/centcom.dm b/code/modules/clothing/under/jobs/centcom.dm index 3ee210612e..33a4659b5f 100644 --- a/code/modules/clothing/under/jobs/centcom.dm +++ b/code/modules/clothing/under/jobs/centcom.dm @@ -3,7 +3,6 @@ name = "\improper CentCom officer's jumpsuit" icon_state = "officer" item_state = "g_suit" - item_color = "officer" alt_covers_chest = TRUE /obj/item/clothing/under/rank/centcom/officer/syndicate @@ -14,4 +13,3 @@ name = "\improper CentCom officer's jumpsuit" icon_state = "centcom" item_state = "dg_suit" - item_color = "centcom" diff --git a/code/modules/clothing/under/jobs/civilian/civilian.dm b/code/modules/clothing/under/jobs/civilian/civilian.dm index ac5f4f12fd..6f1066de5d 100644 --- a/code/modules/clothing/under/jobs/civilian/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian/civilian.dm @@ -3,7 +3,6 @@ name = "bartender's uniform" icon_state = "barman" item_state = "bar_suit" - item_color = "barman" alt_covers_chest = TRUE /obj/item/clothing/under/rank/civilian/bartender/purple @@ -11,7 +10,6 @@ name = "purple bartender's uniform" icon_state = "purplebartender" item_state = "purplebartender" - item_color = "purplebartender" can_adjust = FALSE /obj/item/clothing/under/rank/civilian/bartender/skirt @@ -19,7 +17,6 @@ desc = "It looks like it could use some more flair." icon_state = "barman_skirt" item_state = "bar_suit" - item_color = "barman_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -29,15 +26,13 @@ name = "chaplain's jumpsuit" icon_state = "chaplain" item_state = "bl_suit" - item_color = "chapblack" can_adjust = FALSE /obj/item/clothing/under/rank/civilian/chaplain/skirt name = "chaplain's jumpskirt" desc = "It's a black jumpskirt, often worn by religious folk." - icon_state = "chapblack_skirt" + icon_state = "chaplain_skirt" item_state = "bl_suit" - item_color = "chapblack_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -46,14 +41,12 @@ name = "cook's suit" desc = "A suit which is given only to the most hardcore cooks in space." icon_state = "chef" - item_color = "chef" alt_covers_chest = TRUE /obj/item/clothing/under/rank/civilian/chef/skirt name = "cook's skirt" desc = "A skirt which is given only to the most hardcore cooks in space." icon_state = "chef_skirt" - item_color = "chef_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -63,7 +56,6 @@ name = "head of personnel's jumpsuit" icon_state = "hop" item_state = "b_suit" - item_color = "hop" can_adjust = FALSE /obj/item/clothing/under/rank/civilian/head_of_personnel/skirt @@ -71,7 +63,6 @@ desc = "It's a jumpskirt worn by someone who works in the position of \"Head of Personnel\"." icon_state = "hop_skirt" item_state = "b_suit" - item_color = "hop_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -81,7 +72,6 @@ desc = "A teal suit and yellow necktie. An authoritative yet tacky ensemble." icon_state = "teal_suit" item_state = "g_suit" - item_color = "teal_suit" can_adjust = FALSE /obj/item/clothing/under/rank/civilian/head_of_personnel/suit/skirt @@ -89,7 +79,6 @@ desc = "A teal suitskirt and yellow necktie. An authoritative yet tacky ensemble." icon_state = "teal_suit_skirt" item_state = "g_suit" - item_color = "teal_suit_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -99,7 +88,6 @@ name = "botanist's jumpsuit" icon_state = "hydroponics" item_state = "g_suit" - item_color = "hydroponics" permeability_coefficient = 0.5 /obj/item/clothing/under/rank/civilian/hydroponics/skirt @@ -107,7 +95,6 @@ desc = "It's a jumpskirt designed to protect against minor plant-related hazards." icon_state = "hydroponics_skirt" item_state = "g_suit" - item_color = "hydroponics_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -116,14 +103,12 @@ desc = "It's the official uniform of the station's janitor. It has minor protection from biohazards." name = "janitor's jumpsuit" icon_state = "janitor" - item_color = "janitor" armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) /obj/item/clothing/under/rank/civilian/janitor/skirt name = "janitor's jumpskirt" desc = "It's the official skirt of the station's janitor. It has minor protection from biohazards." icon_state = "janitor_skirt" - item_color = "janitor_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -133,7 +118,6 @@ desc = "A simple maid uniform for housekeeping." icon_state = "janimaid" item_state = "janimaid" - item_color = "janimaid" body_parts_covered = CHEST|GROIN fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -147,21 +131,18 @@ name = "lawyer black suit" icon_state = "lawyer_black" item_state = "lawyer_black" - item_color = "lawyer_black" /obj/item/clothing/under/rank/civilian/lawyer/black/alt name = "lawyer black suit" desc = "A professional black suit. Nanotrasen Investigation Bureau approved!" icon_state = "blacksuit" item_state = "bar_suit" - item_color = "blacksuit" can_adjust = TRUE alt_covers_chest = TRUE /obj/item/clothing/under/rank/civilian/lawyer/black/alt/skirt name = "lawyer black suitskirt" icon_state = "blacksuit_skirt" - item_color = "blacksuit_skirt" can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -170,14 +151,12 @@ desc = "A formal black suit and red tie, intended for the station's finest." icon_state = "really_black_suit" item_state = "bl_suit" - item_color = "really_black_suit" /obj/item/clothing/under/rank/civilian/lawyer/really_black/skirt name = "executive suitskirt" desc = "A formal black suitskirt and red tie, intended for the station's finest." icon_state = "really_black_suit_skirt" item_state = "bl_suit" - item_color = "really_black_suit_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -186,46 +165,39 @@ name = "lawyer black suitskirt" icon_state = "lawyer_black_skirt" item_state = "lawyer_black" - item_color = "lawyer_black_skirt" fitted = FEMALE_UNIFORM_TOP /obj/item/clothing/under/rank/civilian/lawyer/female name = "female black suit" icon_state = "black_suit_fem" item_state = "bl_suit" - item_color = "black_suit_fem" /obj/item/clothing/under/rank/civilian/lawyer/red name = "lawyer red suit" icon_state = "lawyer_red" item_state = "lawyer_red" - item_color = "lawyer_red" /obj/item/clothing/under/rank/civilian/lawyer/female/skirt name = "female black suitskirt" icon_state = "black_suit_fem_skirt" item_state = "bl_suit" - item_color = "black_suit_fem_skirt" fitted = FEMALE_UNIFORM_TOP /obj/item/clothing/under/rank/civilian/lawyer/red/skirt name = "lawyer red suitskirt" icon_state = "lawyer_red_skirt" item_state = "lawyer_red" - item_color = "lawyer_red_skirt" fitted = FEMALE_UNIFORM_TOP /obj/item/clothing/under/rank/civilian/lawyer/blue name = "lawyer blue suit" icon_state = "lawyer_blue" item_state = "lawyer_blue" - item_color = "lawyer_blue" /obj/item/clothing/under/rank/civilian/lawyer/blue/skirt name = "lawyer blue suitskirt" icon_state = "lawyer_blue_skirt" item_state = "lawyer_blue" - item_color = "lawyer_blue_skirt" fitted = FEMALE_UNIFORM_TOP /obj/item/clothing/under/rank/civilian/lawyer/bluesuit @@ -233,7 +205,6 @@ desc = "A classy suit and tie." icon_state = "bluesuit" item_state = "b_suit" - item_color = "bluesuit" can_adjust = TRUE alt_covers_chest = TRUE @@ -242,7 +213,6 @@ desc = "A classy suitskirt and tie." icon_state = "bluesuit_skirt" item_state = "b_suit" - item_color = "bluesuit_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -251,7 +221,6 @@ name = "purple suit" icon_state = "lawyer_purp" item_state = "p_suit" - item_color = "lawyer_purp" fitted = NO_FEMALE_UNIFORM can_adjust = TRUE alt_covers_chest = TRUE @@ -260,7 +229,6 @@ name = "purple suitskirt" icon_state = "lawyer_purp_skirt" item_state = "p_suit" - item_color = "lawyer_purp_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP diff --git a/code/modules/clothing/under/jobs/civilian/clown_mime.dm b/code/modules/clothing/under/jobs/civilian/clown_mime.dm index 7e85d60dbc..848a15f83b 100644 --- a/code/modules/clothing/under/jobs/civilian/clown_mime.dm +++ b/code/modules/clothing/under/jobs/civilian/clown_mime.dm @@ -4,14 +4,11 @@ desc = "It's not very colourful." icon_state = "mime" item_state = "mime" - item_color = "mime" /obj/item/clothing/under/rank/civilian/mime/skirt name = "mime's skirt" desc = "It's not very colourful." icon_state = "mime_skirt" - item_state = "mime" - item_color = "mime_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -21,7 +18,6 @@ desc = "The only time when you DON'T enjoy looking at someone's rack." icon_state = "sexymime" item_state = "sexymime" - item_color = "sexymime" body_parts_covered = CHEST|GROIN|LEGS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -31,7 +27,6 @@ desc = "'HONK!'" icon_state = "clown" item_state = "clown" - item_color = "clown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -40,7 +35,6 @@ desc = "'BLUE HONK!'" icon_state = "blueclown" item_state = "blueclown" - item_color = "blueclown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE mutantrace_variation = NONE @@ -50,7 +44,6 @@ desc = "'GREEN HONK!'" icon_state = "greenclown" item_state = "greenclown" - item_color = "greenclown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE mutantrace_variation = NONE @@ -60,7 +53,6 @@ desc = "'YELLOW HONK!'" icon_state = "yellowclown" item_state = "yellowclown" - item_color = "yellowclown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE mutantrace_variation = NONE @@ -70,7 +62,6 @@ desc = "'PURPLE HONK!'" icon_state = "purpleclown" item_state = "purpleclown" - item_color = "purpleclown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE mutantrace_variation = NONE @@ -80,7 +71,6 @@ desc = "'ORANGE HONK!'" icon_state = "orangeclown" item_state = "orangeclown" - item_color = "orangeclown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE mutantrace_variation = NONE @@ -90,7 +80,6 @@ desc = "'R A I N B O W HONK!'" icon_state = "rainbowclown" item_state = "rainbowclown" - item_color = "rainbowclown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE mutantrace_variation = NONE @@ -99,7 +88,6 @@ name = "jester suit" desc = "A jolly dress, well suited to entertain your master, nuncle." icon_state = "jester" - item_color = "jester" can_adjust = FALSE /obj/item/clothing/under/rank/civilian/clown/jester/alt @@ -110,7 +98,6 @@ desc = "It makes you look HONKable!" icon_state = "sexyclown" item_state = "sexyclown" - item_color = "sexyclown" can_adjust = FALSE /obj/item/clothing/under/rank/civilian/clown/Initialize() diff --git a/code/modules/clothing/under/jobs/civilian/curator.dm b/code/modules/clothing/under/jobs/civilian/curator.dm index c02cc4b710..f7b56434dc 100644 --- a/code/modules/clothing/under/jobs/civilian/curator.dm +++ b/code/modules/clothing/under/jobs/civilian/curator.dm @@ -3,15 +3,11 @@ desc = "It's very... sensible." icon_state = "red_suit" item_state = "red_suit" - item_color = "red_suit" can_adjust = FALSE /obj/item/clothing/under/rank/civilian/curator/skirt name = "sensible suitskirt" - desc = "It's very... sensible." icon_state = "red_suit_skirt" - item_state = "red_suit" - item_color = "red_suit_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -21,14 +17,12 @@ desc = "A rugged uniform suitable for treasure hunting." icon_state = "curator" item_state = "curator" - item_color = "curator" /obj/item/clothing/under/rank/civilian/curator/nasa name = "\improper NASA jumpsuit" desc = "It has a NASA logo on it and is made of space-proofed materials." icon_state = "black" item_state = "bl_suit" - item_color = "black" w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.01 permeability_coefficient = 0.02 diff --git a/code/modules/clothing/under/jobs/command.dm b/code/modules/clothing/under/jobs/command.dm index 30560e76b4..885ffaed7a 100644 --- a/code/modules/clothing/under/jobs/command.dm +++ b/code/modules/clothing/under/jobs/command.dm @@ -3,7 +3,6 @@ name = "captain's jumpsuit" icon_state = "captain" item_state = "b_suit" - item_color = "captain" sensor_mode = SENSOR_COORDS random_sensor = FALSE @@ -12,7 +11,6 @@ desc = "It's a blue jumpskirt with some gold markings denoting the rank of \"Captain\"." icon_state = "captain_skirt" item_state = "b_suit" - item_color = "captain_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -22,7 +20,6 @@ desc = "A green suit and yellow necktie. Exemplifies authority." icon_state = "green_suit" item_state = "dg_suit" - item_color = "green_suit" can_adjust = FALSE /obj/item/clothing/under/rank/captain/suit/skirt @@ -30,7 +27,6 @@ desc = "A green suitskirt and yellow necktie. Exemplifies authority." icon_state = "green_suit_skirt" item_state = "dg_suit" - item_color = "green_suit_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -40,7 +36,6 @@ desc = "A captain's luxury-wear, for special occasions." icon_state = "captain_parade" item_state = "by_suit" - item_color = "captain_parade" can_adjust = FALSE /obj/item/clothing/under/rank/captain/femformal @@ -48,6 +43,5 @@ desc = "An ironically skimpy blue dress with gold markings denoting the rank of \"Captain\"." icon_state = "lewdcap" item_state = "lewdcap" - item_color = "lewdcap" can_adjust = FALSE mutantrace_variation = NONE diff --git a/code/modules/clothing/under/jobs/engineering.dm b/code/modules/clothing/under/jobs/engineering.dm index ae0ded5888..365d90e188 100644 --- a/code/modules/clothing/under/jobs/engineering.dm +++ b/code/modules/clothing/under/jobs/engineering.dm @@ -4,16 +4,14 @@ name = "chief engineer's jumpsuit" icon_state = "chiefengineer" item_state = "gy_suit" - item_color = "chief" armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 10, "fire" = 80, "acid" = 40) resistance_flags = NONE /obj/item/clothing/under/rank/engineering/chief_engineer/skirt name = "chief engineer's jumpskirt" desc = "It's a high visibility jumpskirt given to those engineers insane enough to achieve the rank of \"Chief Engineer\". It has minor radiation shielding." - icon_state = "chief_skirt" + icon_state = "chiefengineer_skirt" item_state = "gy_suit" - item_color = "chief_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -23,7 +21,6 @@ name = "atmospheric technician's jumpsuit" icon_state = "atmos" item_state = "atmos_suit" - item_color = "atmos" resistance_flags = NONE /obj/item/clothing/under/rank/engineering/atmospheric_technician/skirt @@ -31,7 +28,6 @@ desc = "It's a jumpskirt worn by atmospheric technicians." icon_state = "atmos_skirt" item_state = "atmos_suit" - item_color = "atmos_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -41,7 +37,6 @@ name = "engineer's jumpsuit" icon_state = "engine" item_state = "engi_suit" - item_color = "engine" armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 10, "fire" = 60, "acid" = 20) resistance_flags = NONE @@ -50,7 +45,6 @@ desc = "A high visibility jumpsuit made from heat and radiation resistant materials." icon_state = "hazard" item_state = "suit-orange" - item_color = "hazard" alt_covers_chest = TRUE /obj/item/clothing/under/rank/engineering/engineer/skirt @@ -58,7 +52,6 @@ desc = "It's an orange high visibility jumpskirt worn by engineers." icon_state = "engine_skirt" item_state = "engi_suit" - item_color = "engine_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP diff --git a/code/modules/clothing/under/jobs/medical.dm b/code/modules/clothing/under/jobs/medical.dm index 0c2b885bec..d5f4f1f5f9 100644 --- a/code/modules/clothing/under/jobs/medical.dm +++ b/code/modules/clothing/under/jobs/medical.dm @@ -3,7 +3,6 @@ name = "chief medical officer's jumpsuit" icon_state = "cmo" item_state = "w_suit" - item_color = "cmo" permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) @@ -12,7 +11,6 @@ desc = "It's a jumpskirt worn by those with the experience to be \"Chief Medical Officer\". It provides minor biological protection." icon_state = "cmo_skirt" item_state = "w_suit" - item_color = "cmo_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -20,11 +18,10 @@ /obj/item/clothing/under/rank/medical/chief_medical_officer/turtleneck desc = "It's a turtleneck worn by those with the experience to be \"Chief Medical Officer\". It provides minor biological protection, for an officer with a superior sense of style and practicality." name = "chief medical officer's turtleneck" - alternate_worn_icon = 'modular_citadel/icons/mob/clothing/turtlenecks.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/clothing/turtlenecks.dmi' icon = 'modular_citadel/icons/obj/clothing/turtlenecks.dmi' icon_state = "cmoturtle" item_state = "w_suit" - item_color = "cmoturtle" alt_covers_chest = TRUE mutantrace_variation = NONE @@ -33,16 +30,14 @@ name = "geneticist's jumpsuit" icon_state = "genetics" item_state = "w_suit" - item_color = "geneticswhite" permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) /obj/item/clothing/under/rank/medical/geneticist/skirt name = "geneticist's jumpskirt" desc = "It's made of a special fiber that gives special protection against biohazards. It has a genetics rank stripe on it." - icon_state = "geneticswhite_skirt" + icon_state = "genetics_skirt" item_state = "w_suit" - item_color = "geneticswhite_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -52,16 +47,14 @@ name = "virologist's jumpsuit" icon_state = "virology" item_state = "w_suit" - item_color = "virologywhite" permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) /obj/item/clothing/under/rank/medical/virologist/skirt name = "virologist's jumpskirt" desc = "It's made of a special fiber that gives special protection against biohazards. It has a virologist rank stripe on it." - icon_state = "virologywhite_skirt" + icon_state = "virology_skirt" item_state = "w_suit" - item_color = "virologywhite_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -71,16 +64,14 @@ name = "chemist's jumpsuit" icon_state = "chemistry" item_state = "w_suit" - item_color = "chemistrywhite" permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 50, "acid" = 65) /obj/item/clothing/under/rank/medical/chemist/skirt name = "chemist's jumpskirt" desc = "It's made of a special fiber that gives special protection against biohazards. It has a chemist rank stripe on it." - icon_state = "chemistrywhite_skirt" + icon_state = "chemistry_skirt" item_state = "w_suit" - item_color = "chemistrywhite_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -90,7 +81,6 @@ name = "paramedic jumpsuit" icon_state = "paramedic-dark" item_state = "w_suit" - item_color = "paramedic-dark" permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) can_adjust = FALSE @@ -98,7 +88,6 @@ /obj/item/clothing/under/rank/medical/paramedic/light desc = "It's made of a special fiber that provides minor protection against biohazards. It has a dark blue cross on the chest denoting that the wearer is a trained paramedic." icon_state = "paramedic-light" - item_color = "paramedic-light" can_adjust = TRUE /obj/item/clothing/under/rank/medical/paramedic/skirt @@ -106,7 +95,6 @@ desc = "It's made of a special fiber that provides minor protection against biohazards. It has a white cross on the chest denoting that the wearer is a trained paramedic." icon_state = "paramedic-dark_skirt" item_state = "w_suit" - item_color = "paramedic-dark_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -114,14 +102,12 @@ /obj/item/clothing/under/rank/medical/paramedic/skirt/light desc = "It's made of a special fiber that provides minor protection against biohazards. It has a dark blue cross on the chest denoting that the wearer is a trained paramedic." icon_state = "paramedic_skirt" - item_color = "paramedic_skirt" /obj/item/clothing/under/rank/medical/doctor/nurse desc = "It's a jumpsuit commonly worn by nursing staff in the medical department." name = "nurse's suit" icon_state = "nursesuit" item_state = "w_suit" - item_color = "nursesuit" permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) body_parts_covered = CHEST|GROIN|ARMS @@ -133,7 +119,6 @@ name = "medical doctor's jumpsuit" icon_state = "medical" item_state = "w_suit" - item_color = "medical" permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) @@ -141,21 +126,18 @@ name = "blue medical scrubs" desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in baby blue." icon_state = "scrubsblue" - item_color = "scrubsblue" can_adjust = FALSE /obj/item/clothing/under/rank/medical/doctor/green name = "green medical scrubs" desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in dark green." icon_state = "scrubsgreen" - item_color = "scrubsgreen" can_adjust = FALSE /obj/item/clothing/under/rank/medical/doctor/purple name = "purple medical scrubs" desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in deep purple." icon_state = "scrubspurple" - item_color = "scrubspurple" can_adjust = FALSE /obj/item/clothing/under/rank/medical/doctor/skirt @@ -163,7 +145,6 @@ desc = "It's made of a special fiber that provides minor protection against biohazards. It has a cross on the chest denoting that the wearer is trained medical personnel." icon_state = "medical_skirt" item_state = "w_suit" - item_color = "medical_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE - fitted = FEMALE_UNIFORM_TOP \ No newline at end of file + fitted = FEMALE_UNIFORM_TOP diff --git a/code/modules/clothing/under/jobs/rnd.dm b/code/modules/clothing/under/jobs/rnd.dm index 142cb8d8b1..e5ec4cee6a 100644 --- a/code/modules/clothing/under/jobs/rnd.dm +++ b/code/modules/clothing/under/jobs/rnd.dm @@ -3,7 +3,6 @@ name = "research director's vest suit" icon_state = "director" item_state = "lb_suit" - item_color = "director" armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 10, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 35) can_adjust = FALSE @@ -12,7 +11,6 @@ desc = "It's a suitskirt worn by those with the know-how to achieve the position of \"Research Director\". Its fabric provides minor protection from biological contaminants." icon_state = "director_skirt" item_state = "lb_suit" - item_color = "director_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -22,7 +20,6 @@ name = "research director's tan suit" icon_state = "rdwhimsy" item_state = "rdwhimsy" - item_color = "rdwhimsy" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 10, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) can_adjust = TRUE alt_covers_chest = TRUE @@ -32,7 +29,6 @@ desc = "Maybe you'll engineer your own half-man, half-pig creature some day. Its fabric provides minor protection from biological contaminants." icon_state = "rdwhimsy_skirt" item_state = "rdwhimsy" - item_color = "rdwhimsy_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -42,7 +38,6 @@ name = "research director's turtleneck" icon_state = "rdturtle" item_state = "p_suit" - item_color = "rdturtle" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 10, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) can_adjust = TRUE alt_covers_chest = TRUE @@ -52,7 +47,6 @@ desc = "A dark purple turtleneck and tan khaki skirt, for a director with a superior sense of style." icon_state = "rdturtle_skirt" item_state = "p_suit" - item_color = "rdturtle_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -62,16 +56,14 @@ name = "scientist's jumpsuit" icon_state = "toxins" item_state = "w_suit" - item_color = "toxinswhite" permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) /obj/item/clothing/under/rank/rnd/scientist/skirt name = "scientist's jumpskirt" desc = "It's made of a special fiber that provides minor protection against explosives. It has markings that denote the wearer as a scientist." - icon_state = "toxinswhite_skirt" + icon_state = "toxins_skirt" item_state = "w_suit" - item_color = "toxinswhite_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -81,7 +73,6 @@ name = "roboticist's jumpsuit" icon_state = "robotics" item_state = "robotics" - item_color = "robotics" resistance_flags = NONE /obj/item/clothing/under/rank/rnd/roboticist/skirt @@ -89,7 +80,6 @@ desc = "It's a slimming black with reinforced seams; great for industrial work." icon_state = "robotics_skirt" item_state = "robotics" - item_color = "robotics_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index 21e088f634..01424782fb 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -14,7 +14,6 @@ desc = "A tactical security jumpsuit for officers complete with Nanotrasen belt buckle." icon_state = "rsecurity" item_state = "r_suit" - item_color = "rsecurity" armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 30) strip_delay = 50 alt_covers_chest = TRUE @@ -26,14 +25,12 @@ desc = "A tactical relic of years past before Nanotrasen decided it was cheaper to dye the suits red instead of washing out the blood." icon_state = "security" item_state = "gy_suit" - item_color = "security" /obj/item/clothing/under/rank/security/officer/skirt name = "security jumpskirt" desc = "A \"tactical\" security jumpsuit with the legs replaced by a skirt." icon_state = "secskirt" item_state = "r_suit" - item_color = "secskirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE //you know now that i think of it if you adjust the skirt and the sprite disappears isn't that just like flashing everyone fitted = FEMALE_UNIFORM_TOP @@ -43,7 +40,6 @@ desc = "The latest in fashionable security outfits." icon_state = "officerblueclothes" item_state = "officerblueclothes" - item_color = "officerblueclothes" alt_covers_chest = TRUE /obj/item/clothing/under/rank/security/officer/blueshirt @@ -51,7 +47,6 @@ desc = "I'm a little busy right now, Calhoun." icon_state = "blueshift" item_state = "blueshift" - item_color = "blueshift" can_adjust = FALSE /obj/item/clothing/under/rank/security/officer/spacepol @@ -59,7 +54,6 @@ desc = "Space not controlled by megacorporations, planets, or pirates is under the jurisdiction of Spacepol." icon_state = "spacepol" item_state = "spacepol" - item_color = "spacepol" can_adjust = FALSE /* @@ -71,7 +65,6 @@ desc = "A formal security suit for officers complete with Nanotrasen belt buckle." icon_state = "rwarden" item_state = "r_suit" - item_color = "rwarden" armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 30) strip_delay = 50 alt_covers_chest = TRUE @@ -83,14 +76,12 @@ desc = "A formal relic of years past before Nanotrasen decided it was cheaper to dye the suits red instead of washing out the blood." icon_state = "warden" item_state = "gy_suit" - item_color = "warden" /obj/item/clothing/under/rank/security/warden/skirt name = "warden's suitskirt" desc = "A formal security suitskirt for officers complete with Nanotrasen belt buckle." icon_state = "rwarden_skirt" item_state = "r_suit" - item_color = "rwarden_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -100,7 +91,6 @@ name = "warden's formal uniform" icon_state = "wardenblueclothes" item_state = "wardenblueclothes" - item_color = "wardenblueclothes" alt_covers_chest = TRUE /* @@ -112,7 +102,6 @@ desc = "Someone who wears this means business." icon_state = "detective" item_state = "det" - item_color = "detective" armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 30) strip_delay = 50 alt_covers_chest = TRUE @@ -124,7 +113,6 @@ desc = "Someone who wears this means business." icon_state = "detective_skirt" item_state = "det" - item_color = "detective_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -134,7 +122,6 @@ desc = "A hard-boiled private investigator's grey suit, complete with tie clip." icon_state = "greydet" item_state = "greydet" - item_color = "greydet" alt_covers_chest = TRUE /obj/item/clothing/under/rank/security/detective/grey/skirt @@ -142,7 +129,6 @@ desc = "A hard-boiled private investigator's grey suitskirt, complete with tie clip." icon_state = "greydet_skirt" item_state = "greydet" - item_color = "greydet_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -156,7 +142,6 @@ desc = "A security jumpsuit decorated for those few with the dedication to achieve the position of Head of Security." icon_state = "rhos" item_state = "r_suit" - item_color = "rhos" armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) strip_delay = 60 alt_covers_chest = TRUE @@ -168,7 +153,6 @@ desc = "A security jumpskirt decorated for those few with the dedication to achieve the position of Head of Security." icon_state = "rhos_skirt" item_state = "r_suit" - item_color = "rhos_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -178,21 +162,18 @@ desc = "There are old men, and there are bold men, but there are very few old, bold men." icon_state = "hos" item_state = "gy_suit" - item_color = "hos" /obj/item/clothing/under/rank/security/head_of_security/alt name = "head of security's turtleneck" desc = "A stylish alternative to the normal head of security jumpsuit, complete with tactical pants." icon_state = "hosalt" item_state = "bl_suit" - item_color = "hosalt" /obj/item/clothing/under/rank/security/head_of_security/alt/skirt name = "head of security's turtleneck skirt" desc = "A stylish alternative to the normal head of security jumpsuit, complete with a tactical skirt." icon_state = "hosalt_skirt" item_state = "bl_suit" - item_color = "hosalt_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -202,7 +183,6 @@ name = "head of security's formal uniform" icon_state = "hosblueclothes" item_state = "hosblueclothes" - item_color = "hosblueclothes" alt_covers_chest = TRUE /obj/item/clothing/under/rank/security/head_of_security/parade @@ -210,7 +190,6 @@ desc = "A male head of security's luxury-wear, for special occasions." icon_state = "hos_parade_male" item_state = "r_suit" - item_color = "hos_parade_male" can_adjust = FALSE /obj/item/clothing/under/rank/security/head_of_security/parade/female @@ -218,6 +197,5 @@ desc = "A female head of security's luxury-wear, for special occasions." icon_state = "hos_parade_fem" item_state = "r_suit" - item_color = "hos_parade_fem" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index fb5ff7b0f4..4d8d933557 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -2,7 +2,6 @@ name = "red pj's" desc = "Sleepwear." icon_state = "red_pyjamas" - item_color = "red_pyjamas" item_state = "w_suit" can_adjust = FALSE @@ -10,7 +9,6 @@ name = "blue pj's" desc = "Sleepwear." icon_state = "blue_pyjamas" - item_color = "blue_pyjamas" item_state = "w_suit" can_adjust = FALSE @@ -19,7 +17,6 @@ desc = "Motorcycle not included." icon_state = "ek" item_state = "ek" - item_color = "ek" can_adjust = FALSE /obj/item/clothing/under/rank/prisoner @@ -27,7 +24,6 @@ desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position." icon_state = "prisoner" item_state = "o_suit" - item_color = "prisoner" has_sensor = LOCKED_SENSORS sensor_mode = SENSOR_COORDS random_sensor = FALSE @@ -37,7 +33,6 @@ desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position." icon_state = "prisoner_skirt" item_state = "o_suit" - item_color = "prisoner_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -47,21 +42,18 @@ desc = "'Special delivery!'" icon_state = "mailman" item_state = "b_suit" - item_color = "mailman" /obj/item/clothing/under/misc/psyche name = "psychedelic jumpsuit" desc = "Groovy!" icon_state = "psyche" item_state = "p_suit" - item_color = "psyche" /obj/item/clothing/under/misc/vice_officer name = "vice officer's jumpsuit" desc = "It's the standard issue pretty-boy outfit, as seen on Holo-Vision." icon_state = "vice" item_state = "gy_suit" - item_color = "vice" can_adjust = FALSE @@ -69,7 +61,6 @@ name = "administrative cybernetic jumpsuit" icon_state = "syndicate" item_state = "bl_suit" - item_color = "syndicate" desc = "A cybernetically enhanced jumpsuit used for administrative duties." gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 @@ -87,7 +78,6 @@ desc = "Traditional burial garments from the early 22nd century." icon_state = "burial" item_state = "burial" - item_color = "burial" has_sensor = NO_SENSORS /obj/item/clothing/under/misc/overalls @@ -95,7 +85,6 @@ desc = "A set of durable overalls for getting the job done." icon_state = "overalls" item_state = "lb_suit" - item_color = "overalls" can_adjust = FALSE /obj/item/clothing/under/misc/assistantformal @@ -103,24 +92,21 @@ desc = "An assistant's formal-wear. Why an assistant needs formal-wear is still unknown." icon_state = "assistant_formal" item_state = "gy_suit" - item_color = "assistant_formal" can_adjust = FALSE /obj/item/clothing/under/misc/staffassistant name = "staff assistant's jumpsuit" desc = "It's a generic grey jumpsuit. That's about what assistants are worth, anyway." icon = 'goon/icons/obj/item_js_rank.dmi' - alternate_worn_icon = 'goon/icons/mob/worn_js_rank.dmi' + mob_overlay_icon = 'goon/icons/mob/worn_js_rank.dmi' icon_state = "assistant" item_state = "gy_suit" - item_color = "assistant" mutantrace_variation = NONE /obj/item/clothing/under/croptop name = "crop top" desc = "We've saved money by giving you half a shirt!" icon_state = "croptop" - item_color = "croptop" body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -130,7 +116,6 @@ desc = "A special containment suit that allows plasma-based lifeforms to exist safely in an oxygenated environment, and automatically extinguishes them in a crisis. Despite being airtight, it's not spaceworthy." icon_state = "plasmaman" item_state = "plasmaman" - item_color = "plasmaman" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 0, "fire" = 95, "acid" = 95) slowdown = 1 body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS @@ -192,7 +177,6 @@ desc = "A jumpsuit made from durathread, its resilient fibres provide some protection to the wearer." icon_state = "durathread" item_state = "durathread" - item_color = "durathread" can_adjust = TRUE armor = list("melee" = 10, "laser" = 10, "fire" = 40, "acid" = 10, "bomb" = 5) @@ -209,7 +193,6 @@ desc = "Cyka blyat." icon_state = "squatteroutfit" item_state = "squatteroutfit" - item_color = "squatteroutfit" can_adjust = FALSE mutantrace_variation = NONE @@ -218,7 +201,6 @@ desc = "Drop and give me dvadtsat!" icon_state = "russobluecamo" item_state = "russobluecamo" - item_color = "russobluecamo" can_adjust = FALSE mutantrace_variation = NONE @@ -227,7 +209,6 @@ desc = "What is the point of this, anyway?" icon_state = "keyholesweater" item_state = "keyholesweater" - item_color = "keyholesweater" can_adjust = FALSE mutantrace_variation = NONE @@ -235,7 +216,6 @@ name = "pink stripper outfit" icon_state = "stripper_p" item_state = "stripper_p" - item_color = "stripper_p" body_parts_covered = CHEST|GROIN can_adjust = FALSE @@ -243,13 +223,11 @@ name = "green stripper outfit" icon_state = "stripper_g" item_state = "stripper_g" - item_color = "stripper_g" /obj/item/clothing/under/misc/stripper/mankini name = "pink mankini" icon_state = "mankini" item_state = "mankini" - item_color = "mankini" /obj/item/clothing/under/misc/corporateuniform name = "corporate uniform" @@ -263,7 +241,6 @@ name = "polychromic button-up shirt" desc = "A fancy button-up shirt made with polychromic threads." icon_state = "polysuit" - item_color = "polysuit" item_state = "sl_suit" hasprimary = TRUE hassecondary = TRUE @@ -277,7 +254,6 @@ name = "polychromic shorts" desc = "For ease of movement and style." icon_state = "polyshorts" - item_color = "polyshorts" item_state = "rainbow" hasprimary = TRUE hassecondary = TRUE @@ -292,7 +268,6 @@ name = "polychromic tri-tone jumpsuit" desc = "A fancy jumpsuit made with polychromic threads." icon_state = "polyjump" - item_color = "polyjump" item_state = "rainbow" hasprimary = TRUE hassecondary = TRUE @@ -307,7 +282,6 @@ name = "polychromic bottomless shirt" desc = "Great for showing off your junk in dubious style." icon_state = "polybottomless" - item_color = "polybottomless" item_state = "rainbow" primary_color = "#808080" secondary_color = "#FF3535" @@ -319,7 +293,6 @@ name = "polychromic tank top" desc = "For those lazy summer days." icon_state = "polyshimatank" - item_color = "polyshimatank" item_state = "rainbow" primary_color = "#808080" secondary_color = "#FFFFFF" @@ -332,7 +305,6 @@ name = "polychromic feminine tank top" desc = "Great for showing off your chest in style. Not recommended for males." icon_state = "polyfemtankpantsu" - item_color = "polyfemtankpantsu" hastertiary = FALSE primary_color = "#808080" secondary_color = "#FF3535" diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm index 4b0c92af88..d0048326ff 100644 --- a/code/modules/clothing/under/pants.dm +++ b/code/modules/clothing/under/pants.dm @@ -8,101 +8,84 @@ name = "classic jeans" desc = "You feel cooler already." icon_state = "jeansclassic" - item_color = "jeansclassic" /obj/item/clothing/under/pants/mustangjeans name = "Must Hang jeans" desc = "Made in the finest space jeans factory this side of Alpha Centauri." icon_state = "jeansmustang" - item_color = "jeansmustang" /obj/item/clothing/under/pants/blackjeans name = "black jeans" desc = "Only for those who can pull it off." icon_state = "jeansblack" - item_color = "jeansblack" /obj/item/clothing/under/pants/youngfolksjeans name = "Young Folks jeans" desc = "For those tired of boring old jeans. Relive the passion of your youth!" icon_state = "jeansyoungfolks" - item_color = "jeansyoungfolks" /obj/item/clothing/under/pants/white name = "white pants" desc = "Plain white pants. Boring." icon_state = "whitepants" - item_color = "whitepants" /obj/item/clothing/under/pants/red name = "red pants" desc = "Bright red pants. Overflowing with personality." icon_state = "redpants" - item_color = "redpants" /obj/item/clothing/under/pants/black name = "black pants" desc = "These pants are dark, like your soul." icon_state = "blackpants" - item_color = "blackpants" /obj/item/clothing/under/pants/tan name = "tan pants" desc = "Some tan pants. You look like a white collar worker with these on." icon_state = "tanpants" - item_color = "tanpants" /obj/item/clothing/under/pants/track name = "track pants" desc = "A pair of track pants, for the athletic." icon_state = "trackpants" - item_color = "trackpants" /obj/item/clothing/under/pants/jeans name = "jeans" desc = "A nondescript pair of tough blue jeans." icon_state = "jeans" - item_color = "jeans" /obj/item/clothing/under/pants/khaki name = "khaki pants" desc = "A pair of dust beige khaki pants." icon_state = "khaki" - item_color = "khaki" /obj/item/clothing/under/pants/camo name = "camo pants" desc = "A pair of woodland camouflage pants. Probably not the best choice for a space station." icon_state = "camopants" - item_color = "camopants" /obj/item/clothing/under/pants/jeanripped name = "ripped jeans" desc = "If you're wearing this you're poor or a rebel" icon_state = "jean_ripped" - item_color = "jean_ripped" /obj/item/clothing/under/pants/jeanshort name = "jean shorts" desc = "These are really just jeans cut in half" icon_state = "jean_shorts" - item_color = "jean_shorts" /obj/item/clothing/under/pants/denimskirt name = "denim skirt" desc = "These are really just a jean leg hole cut from a pair" icon_state = "denim_skirt" - item_color = "denim_skirt" /obj/item/clothing/under/pants/chaps name = "black chaps" body_parts_covered = LEGS desc = "Yeehaw" icon_state = "chaps" - item_color = "chaps" /obj/item/clothing/under/pants/yoga name = "yoga pants" desc = "Comfy!" icon_state = "yoga_pants" - item_color = "yoga_pants" diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm index b66df87347..ebf7cb5896 100644 --- a/code/modules/clothing/under/shorts.dm +++ b/code/modules/clothing/under/shorts.dm @@ -9,38 +9,31 @@ /obj/item/clothing/under/shorts/red name = "red athletic shorts" icon_state = "redshorts" - item_color = "redshorts" /obj/item/clothing/under/shorts/green name = "green athletic shorts" icon_state = "greenshorts" - item_color = "greenshorts" /obj/item/clothing/under/shorts/blue name = "blue athletic shorts" icon_state = "blueshorts" - item_color = "blueshorts" /obj/item/clothing/under/shorts/black name = "black athletic shorts" icon_state = "blackshorts" - item_color = "blackshorts" /obj/item/clothing/under/shorts/grey name = "grey athletic shorts" icon_state = "greyshorts" - item_color = "greyshorts" /obj/item/clothing/under/shorts/purple name = "purple athletic shorts" icon_state = "purpleshorts" - item_color = "purpleshorts" /obj/item/clothing/under/shorts/polychromic name = "polychromic athletic shorts" desc = "95% Polychrome, 5% Spandex!" icon_state = "polyshortpants" - item_color = "polyshortpants" item_state = "rainbow" hasprimary = TRUE hassecondary = TRUE @@ -52,7 +45,6 @@ name = "polychromic panties" desc = "Topless striped panties. Now with 120% more polychrome!" icon_state = "polypantsu" - item_color = "polypantsu" item_state = "rainbow" hastertiary = FALSE primary_color = "#FFFFFF" diff --git a/code/modules/clothing/under/skirt_dress.dm b/code/modules/clothing/under/skirt_dress.dm index 02c2b06546..f00e96d821 100644 --- a/code/modules/clothing/under/skirt_dress.dm +++ b/code/modules/clothing/under/skirt_dress.dm @@ -3,7 +3,6 @@ name = "black skirt" desc = "A black skirt, very fancy!" icon_state = "blackskirt" - item_color = "blackskirt" body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -12,7 +11,6 @@ name = "blue skirt" desc = "A blue, casual skirt." icon_state = "blueskirt" - item_color = "blueskirt" item_state = "b_suit" body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP @@ -22,7 +20,6 @@ name = "red skirt" desc = "A red, casual skirt." icon_state = "redskirt" - item_color = "redskirt" item_state = "r_suit" body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP @@ -32,7 +29,6 @@ name = "purple skirt" desc = "A purple, casual skirt." icon_state = "purpleskirt" - item_color = "purpleskirt" item_state = "p_suit" body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP @@ -43,7 +39,6 @@ desc = "Makes you want to frolic in a field of daisies." icon_state = "sundress" item_state = "sundress" - item_color = "sundress" body_parts_covered = CHEST|GROIN fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -51,13 +46,11 @@ /obj/item/clothing/under/dress/sundress/white name = "white sundress" icon_state = "sundress_white" - item_color = "sundress_white" /obj/item/clothing/under/dress/green name = "green dress" desc = "A tight green dress" icon_state = "dress_green" - item_color = "dress_green" body_parts_covered = CHEST|GROIN fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -66,7 +59,6 @@ name = "pink dress" desc = "A tight pink dress" icon_state = "dress_pink" - item_color = "dress_pink" body_parts_covered = CHEST|GROIN fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -76,7 +68,6 @@ desc = "Filled with Latin fire." icon_state = "black_tango" item_state = "wcoat" - item_color = "black_tango" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -85,7 +76,6 @@ desc = "Filled with Western fire." icon_state = "western_bustle" item_state = "wcoat" - item_color = "western_bustle" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -94,7 +84,6 @@ desc = "Filled with Latin fire." icon_state = "flamenco" item_state = "wcoat" - item_color = "flamenco" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -103,7 +92,6 @@ desc = "Fashion in space." icon_state = "striped_dress" item_state = "stripeddress" - item_color = "striped_dress" body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_FULL can_adjust = FALSE @@ -113,7 +101,6 @@ desc = "Formal wear for a leading lady." icon_state = "sailor_dress" item_state = "sailordress" - item_color = "sailor_dress" body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -123,7 +110,6 @@ desc = "Lovely dress." icon_state = "flower_dress" item_state = "sailordress" - item_color = "flower_dress" body_parts_covered = CHEST|GROIN|LEGS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -132,7 +118,6 @@ name = "swept skirt" desc = "Formal skirt." icon_state = "skirt_swept" - item_color = "skirt_swept" body_parts_covered = GROIN fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -141,7 +126,6 @@ name = "black corset" desc = "Nanotrasen is not resposible for any organ damage." icon_state = "corset" - item_color = "corset" body_parts_covered = CHEST|GROIN fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -151,7 +135,6 @@ desc = "Fancy dress for space bar singers." icon_state = "red_evening_gown" item_state = "redeveninggown" - item_color = "red_evening_gown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE @@ -160,7 +143,6 @@ desc = "A preppy red skirt with a white blouse." icon_state = "plaid_red" item_state = "plaid_red" - item_color = "plaid_red" fitted = FEMALE_UNIFORM_TOP can_adjust = TRUE alt_covers_chest = TRUE @@ -170,7 +152,6 @@ desc = "A preppy blue skirt with a white blouse." icon_state = "plaid_blue" item_state = "plaid_blue" - item_color = "plaid_blue" fitted = FEMALE_UNIFORM_TOP can_adjust = TRUE alt_covers_chest = TRUE @@ -180,7 +161,6 @@ desc = "A preppy purple skirt with a white blouse." icon_state = "plaid_purple" item_state = "plaid_purple" - item_color = "plaid_purple" fitted = FEMALE_UNIFORM_TOP can_adjust = TRUE alt_covers_chest = TRUE @@ -190,7 +170,6 @@ desc = "A preppy green skirt with a white blouse." icon_state = "plaid_green" item_state = "plaid_green" - item_color = "plaid_green" fitted = FEMALE_UNIFORM_TOP can_adjust = TRUE alt_covers_chest = TRUE @@ -200,7 +179,6 @@ desc = "A white wedding gown made from the finest silk." icon_state = "bride_white" item_state = "bride_white" - item_color = "bride_white" can_adjust = FALSE mutantrace_variation = NONE @@ -209,34 +187,29 @@ desc = "A big and puffy orange dress." icon_state = "bride_orange" item_state = "bride_orange" - item_color = "bride_orange" /obj/item/clothing/under/dress/wedding/purple name = "purple wedding dress" desc = "A big and puffy purple dress." icon_state = "bride_purple" item_state = "bride_purple" - item_color = "bride_purple" /obj/item/clothing/under/dress/wedding/blue name = "blue wedding dress" desc = "A big and puffy blue dress." icon_state = "bride_blue" item_state = "bride_blue" - item_color = "bride_blue" /obj/item/clothing/under/dress/wedding/red name = "red wedding dress" desc = "A big and puffy red dress." icon_state = "bride_red" item_state = "bride_red" - item_color = "bride_red" /obj/item/clothing/under/dress/skirt/polychromic name = "polychromic skirt" desc = "A fancy skirt made with polychromic threads." icon_state = "polyskirt" - item_color = "polyskirt" item_state = "rainbow" hasprimary = TRUE hassecondary = TRUE @@ -250,7 +223,6 @@ name = "polychromic pleated skirt" desc = "A magnificent pleated skirt complements the woolen polychromatic sweater." icon_state = "polypleat" - item_color = "polypleat" item_state = "rainbow" primary_color = "#8CC6FF" secondary_color = "#808080" diff --git a/code/modules/clothing/under/suits.dm b/code/modules/clothing/under/suits.dm index 1b99fbc549..3ee5204c3b 100644 --- a/code/modules/clothing/under/suits.dm +++ b/code/modules/clothing/under/suits.dm @@ -4,7 +4,6 @@ desc = "A white suit, suitable for an excellent host." icon_state = "scratch" item_state = "scratch" - item_color = "scratch" can_adjust = FALSE /obj/item/clothing/under/suit/white_on_white/skirt @@ -12,7 +11,6 @@ desc = "A white suitskirt, suitable for an excellent host." icon_state = "white_suit_skirt" item_state = "scratch" - item_color = "white_suit_skirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE fitted = FEMALE_UNIFORM_TOP @@ -21,7 +19,6 @@ desc = "It's a very amish looking suit." name = "amish suit" icon_state = "sl_suit" - item_color = "sl_suit" can_adjust = FALSE /obj/item/clothing/under/suit/waiter @@ -29,7 +26,6 @@ desc = "It's a very smart uniform with a special pocket for tip." icon_state = "waiter" item_state = "waiter" - item_color = "waiter" can_adjust = FALSE /obj/item/clothing/under/suit/black @@ -37,7 +33,6 @@ desc = "A black suit and red tie. Very formal." icon_state = "black_suit" item_state = "bl_suit" - item_color = "black_suit" can_adjust = FALSE /obj/item/clothing/under/suit/black_really @@ -45,21 +40,18 @@ desc = "A formal black suit and red tie, intended for the station's finest." icon_state = "really_black_suit" item_state = "bl_suit" - item_color = "really_black_suit" /obj/item/clothing/under/suit/black/skirt name = "executive suit" desc = "A formal trouser suit for women, intended for the station's finest." icon_state = "black_suit_fem" item_state = "black_suit_fem" - item_color = "black_suit_fem" /obj/item/clothing/under/suit/green name = "green suit" desc = "A green suit and yellow necktie. Baller." icon_state = "green_suit" item_state = "dg_suit" - item_color = "green_suit" can_adjust = FALSE /obj/item/clothing/under/suit/red @@ -67,49 +59,42 @@ desc = "A red suit and blue tie. Somewhat formal." icon_state = "red_suit" item_state = "r_suit" - item_color = "red_suit" /obj/item/clothing/under/suit/charcoal name = "charcoal suit" desc = "A charcoal suit and red tie. Very professional." icon_state = "charcoal_suit" item_state = "charcoal_suit" - item_color = "charcoal_suit" /obj/item/clothing/under/suit/navy name = "navy suit" desc = "A navy suit and red tie, intended for the station's finest." icon_state = "navy_suit" item_state = "navy_suit" - item_color = "navy_suit" /obj/item/clothing/under/suit/burgundy name = "burgundy suit" desc = "A burgundy suit and black tie. Somewhat formal." icon_state = "burgundy_suit" item_state = "burgundy_suit" - item_color = "burgundy_suit" /obj/item/clothing/under/suit/checkered name = "checkered suit" desc = "That's a very nice suit you have there. Shame if something were to happen to it, eh?" icon_state = "checkered_suit" item_state = "checkered_suit" - item_color = "checkered_suit" /obj/item/clothing/under/suit/tan name = "tan suit" desc = "A tan suit with a yellow tie. Smart, but casual." icon_state = "tan_suit" item_state = "tan_suit" - item_color = "tan_suit" /obj/item/clothing/under/suit/white name = "white suit" desc = "A white suit and jacket with a blue shirt. You wanna play rough? OKAY!" icon_state = "white_suit" item_state = "white_suit" - item_color = "white_suit" /obj/item/clothing/under/suit/telegram name = "telegram suit" @@ -123,7 +108,6 @@ name = "polychromic suit" desc = "For when you want to show off your horrible colour coordination skills." icon_state = "polysuit" - item_color = "polysuit" item_state = "sl_suit" hasprimary = TRUE hassecondary = TRUE diff --git a/code/modules/clothing/under/sweaters.dm b/code/modules/clothing/under/sweaters.dm index 13f336bfbd..d8e8373d71 100644 --- a/code/modules/clothing/under/sweaters.dm +++ b/code/modules/clothing/under/sweaters.dm @@ -3,39 +3,33 @@ desc = "Why trade style for comfort? Now you can go commando down south and still be cozy up north." icon_state = "bb_turtle" item_state = "w_suit" - item_color = "bb_turtle" body_parts_covered = CHEST|GROIN|ARMS can_adjust = TRUE icon = 'modular_citadel/icons/obj/clothing/turtlenecks.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' mutantrace_variation = NONE /obj/item/clothing/under/sweater/black name = "black sweater" icon_state = "bb_turtleblk" item_state = "bl_suit" - item_color = "bb_turtleblk" /obj/item/clothing/under/sweater/purple name = "purple sweater" icon_state = "bb_turtlepur" item_state = "p_suit" - item_color = "bb_turtlepur" /obj/item/clothing/under/sweater/green name = "green sweater" icon_state = "bb_turtlegrn" item_state = "g_suit" - item_color = "bb_turtlegrn" /obj/item/clothing/under/sweater/red name = "red sweater" icon_state = "bb_turtlered" item_state = "r_suit" - item_color = "bb_turtlered" /obj/item/clothing/under/sweater/blue name = "blue sweater" icon_state = "bb_turtleblu" item_state = "b_suit" - item_color = "bb_turtleblu" diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index 676138d734..986196a212 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -3,7 +3,6 @@ desc = "A non-descript and slightly suspicious looking turtleneck with digital camouflage cargo pants." icon_state = "syndicate" item_state = "bl_suit" - item_color = "syndicate" has_sensor = NO_SENSORS armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) alt_covers_chest = TRUE @@ -13,7 +12,6 @@ desc = "A non-descript and slightly suspicious looking skirtleneck." icon_state = "syndicate_skirt" item_state = "bl_suit" - item_color = "syndicate_skirt" has_sensor = NO_SENSORS armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) alt_covers_chest = TRUE @@ -24,7 +22,6 @@ desc = "An insidious armored jumpsuit lined with Syndicate nanofibers and prototype platings, slightly resistant to most forms of damage, but is far too bulky to have anything attached to it. It still counts as stealth if there are no witnesses." icon_state = "bloodred_pajamas" item_state = "bl_suit" - item_color = "bloodred_pajamas" dummy_thick = TRUE armor = list("melee" = 10, "bullet" = 10, "laser" = 10,"energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 10, "fire" = 50, "acid" = 40) resistance_flags = FIRE_PROOF | ACID_PROOF @@ -35,7 +32,6 @@ desc = "Do operatives dream of nuclear sheep?" icon_state = "bloodred_pajamas" item_state = "bl_suit" - item_color = "bloodred_pajamas" armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) /obj/item/clothing/under/syndicate/tacticool @@ -43,7 +39,6 @@ desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." icon_state = "tactifool" item_state = "bl_suit" - item_color = "tactifool" armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) /obj/item/clothing/under/syndicate/tacticool/skirt @@ -51,7 +46,6 @@ desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." icon_state = "tactifool_skirt" item_state = "bl_suit" - item_color = "tactifool_skirt" armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) fitted = FEMALE_UNIFORM_TOP @@ -60,7 +54,6 @@ desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." icon_state = "tactifool" item_state = "bl_suit" - item_color = "tactifool" has_sensor = TRUE mutantrace_variation = NONE armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) @@ -70,7 +63,6 @@ desc = "A double seamed tactical turtleneck disguised as a civilian grade silk suit. Intended for the most formal operator. The collar is really sharp." icon_state = "really_black_suit" item_state = "bl_suit" - item_color = "black_suit" can_adjust = FALSE /obj/item/clothing/under/syndicate/camo @@ -78,14 +70,12 @@ desc = "A green military camouflage uniform." icon_state = "camogreen" item_state = "g_suit" - item_color = "camogreen" can_adjust = FALSE /obj/item/clothing/under/syndicate/soviet name = "Ratnik 5 tracksuit" desc = "Badly translated labels tell you to clean this in Vodka. Great for squatting in." icon_state = "trackpants" - item_color = "trackpants" can_adjust = FALSE armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) resistance_flags = NONE @@ -94,14 +84,12 @@ name = "combat uniform" desc = "With a suit lined with this many pockets, you are ready to operate." icon_state = "syndicate_combat" - item_color = "syndicate_combat" can_adjust = FALSE /obj/item/clothing/under/syndicate/rus_army name = "advanced military tracksuit" desc = "Military grade tracksuits for frontline squatting." icon_state = "rus_under" - item_color = "rus_under" can_adjust = FALSE armor = list("melee" = 5, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) resistance_flags = NONE @@ -111,7 +99,6 @@ desc = "A major league outfit with the number faded number on the back. Seems rather robust for just a game..." icon_state = "syndicatebaseball" item_state = "syndicatebaseball" - item_color = "syndicatebaseball" has_sensor = NO_SENSORS armor = list("melee" = 15, "bullet" = 5, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) alt_covers_chest = TRUE diff --git a/code/modules/clothing/under/trek.dm b/code/modules/clothing/under/trek.dm index 2fb33d1b19..a9709a4c95 100644 --- a/code/modules/clothing/under/trek.dm +++ b/code/modules/clothing/under/trek.dm @@ -13,14 +13,12 @@ name = "command uniform" desc = "The uniform worn by command officers in the mid 2260s." icon_state = "trek_command" - item_color = "trek_command" item_state = "y_suit" /obj/item/clothing/under/trek/engsec name = "operations uniform" desc = "The uniform worn by operations officers of the mid 2260s. You feel strangely vulnerable just seeing this..." icon_state = "trek_engsec" - item_color = "trek_engsec" item_state = "r_suit" strip_delay = 50 @@ -28,7 +26,6 @@ name = "medsci uniform" desc = "The uniform worn by medsci officers in the mid 2260s." icon_state = "trek_medsci" - item_color = "trek_medsci" item_state = "b_suit" permeability_coefficient = 0.50 @@ -37,38 +34,32 @@ /obj/item/clothing/under/trek/command/next desc = "The uniform worn by command officers. This one's from the mid 2360s." icon_state = "trek_next_command" - item_color = "trek_next_command" item_state = "r_suit" /obj/item/clothing/under/trek/engsec/next desc = "The uniform worn by operation officers. This one's from the mid 2360s." icon_state = "trek_next_engsec" - item_color = "trek_next_engsec" item_state = "y_suit" /obj/item/clothing/under/trek/medsci/next desc = "The uniform worn by medsci officers. This one's from the mid 2360s." icon_state = "trek_next_medsci" - item_color = "trek_next_medsci" //ENT /obj/item/clothing/under/trek/command/ent desc = "The uniform worn by command officers of the 2140s." icon_state = "trek_ent_command" - item_color = "trek_ent_command" item_state = "bl_suit" /obj/item/clothing/under/trek/engsec/ent desc = "The uniform worn by operations officers of the 2140s." icon_state = "trek_ent_engsec" - item_color = "trek_ent_engsec" item_state = "bl_suit" /obj/item/clothing/under/trek/medsci/ent desc = "The uniform worn by medsci officers of the 2140s." icon_state = "trek_ent_medsci" - item_color = "trek_ent_medsci" item_state = "bl_suit" @@ -111,5 +102,4 @@ name = "french marshall's uniform" desc = "Something about it feels off..." icon_state = "trek_Q" - item_color = "trek_Q" item_state = "r_suit" diff --git a/code/modules/food_and_drinks/food/snacks_egg.dm b/code/modules/food_and_drinks/food/snacks_egg.dm index 0f2856c090..fbed6327b5 100644 --- a/code/modules/food_and_drinks/food/snacks_egg.dm +++ b/code/modules/food_and_drinks/food/snacks_egg.dm @@ -41,7 +41,7 @@ /obj/item/reagent_containers/food/snacks/egg/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/toy/crayon)) var/obj/item/toy/crayon/C = W - var/clr = C.item_color + var/clr = C.crayon_color if(!(clr in list("blue", "green", "mime", "orange", "purple", "rainbow", "red", "yellow"))) to_chat(usr, "[src] refuses to take on this colour!") @@ -49,41 +49,32 @@ to_chat(usr, "You colour [src] with [W].") icon_state = "egg-[clr]" - item_color = clr else ..() /obj/item/reagent_containers/food/snacks/egg/blue icon_state = "egg-blue" - item_color = "blue" /obj/item/reagent_containers/food/snacks/egg/green icon_state = "egg-green" - item_color = "green" /obj/item/reagent_containers/food/snacks/egg/mime icon_state = "egg-mime" - item_color = "mime" /obj/item/reagent_containers/food/snacks/egg/orange icon_state = "egg-orange" - item_color = "orange" /obj/item/reagent_containers/food/snacks/egg/purple icon_state = "egg-purple" - item_color = "purple" /obj/item/reagent_containers/food/snacks/egg/rainbow icon_state = "egg-rainbow" - item_color = "rainbow" /obj/item/reagent_containers/food/snacks/egg/red icon_state = "egg-red" - item_color = "red" /obj/item/reagent_containers/food/snacks/egg/yellow icon_state = "egg-yellow" - item_color = "yellow" /obj/item/reagent_containers/food/snacks/friedegg name = "fried egg" diff --git a/code/modules/holiday/easter.dm b/code/modules/holiday/easter.dm index 5f2d92fc93..94c13999ba 100644 --- a/code/modules/holiday/easter.dm +++ b/code/modules/holiday/easter.dm @@ -113,8 +113,6 @@ . = ..() var/eggcolor = pick("blue","green","mime","orange","purple","rainbow","red","yellow") icon_state = "egg-[eggcolor]" - item_color = "[eggcolor]" - /obj/item/reagent_containers/food/snacks/egg/proc/dispensePrize(turf/where) var/won = pick(/obj/item/clothing/head/bunnyhead, /obj/item/clothing/suit/bunnysuit, diff --git a/code/modules/holiday/halloween/jacqueen.dm b/code/modules/holiday/halloween/jacqueen.dm index 638d1427bc..7f6d48e731 100644 --- a/code/modules/holiday/halloween/jacqueen.dm +++ b/code/modules/holiday/halloween/jacqueen.dm @@ -390,7 +390,7 @@ desc = "A jacqueline o' lantern! You can't seem to get rid of it." icon_state = "hardhat0_pumpkin_j" item_state = "hardhat0_pumpkin_j" - item_color = "pumpkin_j" + hat_type = "pumpkin_j" brightness_on = 4 /obj/item/clothing/head/hardhat/pumpkinhead/jaqc/Initialize() diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm index 884769ebd4..165488023e 100644 --- a/code/modules/holodeck/items.dm +++ b/code/modules/holodeck/items.dm @@ -24,15 +24,16 @@ hitsound = "swing_hit" armour_penetration = 50 var/active = 0 + var/saber_color /obj/item/holo/esword/green/Initialize() . = ..() - item_color = "green" + saber_color = "green" /obj/item/holo/esword/red/Initialize() . = ..() - item_color = "red" + saber_color = "red" /obj/item/holo/esword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(active) @@ -44,13 +45,13 @@ /obj/item/holo/esword/Initialize() . = ..() - item_color = pick("red","blue","green","purple") + saber_color = pick("red","blue","green","purple") /obj/item/holo/esword/attack_self(mob/living/user as mob) active = !active if (active) force = 30 - icon_state = "sword[item_color]" + icon_state = "sword[saber_color]" w_class = WEIGHT_CLASS_BULKY hitsound = 'sound/weapons/blade1.ogg' playsound(user, 'sound/weapons/saberon.ogg', 20, 1) diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm index c5065cd169..0d70e872ac 100644 --- a/code/modules/jobs/job_types/chief_engineer.dm +++ b/code/modules/jobs/job_types/chief_engineer.dm @@ -42,7 +42,7 @@ uniform = /obj/item/clothing/under/rank/engineering/chief_engineer shoes = /obj/item/clothing/shoes/sneakers/brown head = /obj/item/clothing/head/hardhat/white - gloves = /obj/item/clothing/gloves/color/black/ce + gloves = /obj/item/clothing/gloves/color/black backpack_contents = list(/obj/item/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced=1) backpack = /obj/item/storage/backpack/industrial diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm index 811dff87e7..3cf4fbb102 100644 --- a/code/modules/jobs/job_types/head_of_security.dm +++ b/code/modules/jobs/job_types/head_of_security.dm @@ -42,7 +42,7 @@ uniform = /obj/item/clothing/under/rank/security/head_of_security shoes = /obj/item/clothing/shoes/jackboots suit = /obj/item/clothing/suit/armor/hos/trenchcoat - gloves = /obj/item/clothing/gloves/color/black/hos + gloves = /obj/item/clothing/gloves/color/black head = /obj/item/clothing/head/HoS/beret glasses = /obj/item/clothing/glasses/hud/security/sunglasses suit_store = /obj/item/gun/energy/e_gun diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index cb603dee90..9274a24589 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -118,13 +118,11 @@ There are several things that need to be remembered: return - var/t_color = U.item_color - if(!t_color) - t_color = U.icon_state + var/target_overlay = U.icon_state if(U.adjusted == ALT_STYLE) - t_color = "[t_color]_d" + target_overlay = "[target_overlay]_d" - var/alt_worn = U.alternate_worn_icon || 'icons/mob/uniform.dmi' + var/alt_worn = U.mob_overlay_icon || 'icons/mob/uniform.dmi' var/variant_flag = NONE if((DIGITIGRADE in dna.species.species_traits) && U.mutantrace_variation & STYLE_DIGITIGRADE) @@ -136,10 +134,10 @@ There are several things that need to be remembered: if(dna && dna.species.sexes) var/G = (dna.features["body_model"] == FEMALE) ? "f" : "m" if(G == "f" && U.fitted != NO_FEMALE_UNIFORM) - uniform_overlay = U.build_worn_icon(t_color, UNIFORM_LAYER, alt_worn, FALSE, U.fitted, variant_flag, FALSE) + uniform_overlay = U.build_worn_icon(UNIFORM_LAYER, alt_worn, FALSE, U.fitted, target_overlay, variant_flag, FALSE) if(!uniform_overlay) - uniform_overlay = U.build_worn_icon(t_color, UNIFORM_LAYER, alt_worn, FALSE, NO_FEMALE_UNIFORM, variant_flag, FALSE) + uniform_overlay = U.build_worn_icon( UNIFORM_LAYER, alt_worn, FALSE, NO_FEMALE_UNIFORM, target_overlay, variant_flag, FALSE) if(OFFSET_UNIFORM in dna.species.offset_features) @@ -255,7 +253,7 @@ There are several things that need to be remembered: client.screen += ears //add it to the client's screen update_observer_view(ears,1) - overlays_standing[EARS_LAYER] = ears.build_worn_icon(state = ears.icon_state, default_layer = EARS_LAYER, default_icon_file = 'icons/mob/ears.dmi') + overlays_standing[EARS_LAYER] = ears.build_worn_icon(default_layer = EARS_LAYER, default_icon_file = 'icons/mob/ears.dmi') var/mutable_appearance/ears_overlay = overlays_standing[EARS_LAYER] if(OFFSET_EARS in dna.species.offset_features) ears_overlay.pixel_x += dna.species.offset_features[OFFSET_EARS][1] @@ -282,16 +280,13 @@ There are several things that need to be remembered: client.screen += shoes //add it to client's screen update_observer_view(shoes,1) - var/alt_icon = S.alternate_worn_icon || 'icons/mob/feet.dmi' + var/alt_icon = S.mob_overlay_icon || 'icons/mob/feet.dmi' var/variation_flag = NONE if((DIGITIGRADE in dna.species.species_traits) && S.mutantrace_variation & STYLE_DIGITIGRADE) alt_icon = 'icons/mob/feet_digi.dmi' variation_flag |= STYLE_DIGITIGRADE - var/t_state = shoes.item_state - if (!t_state) - t_state = shoes.icon_state - overlays_standing[SHOES_LAYER] = shoes.build_worn_icon(t_state, SHOES_LAYER, alt_icon, FALSE, NO_FEMALE_UNIFORM, variation_flag, FALSE) + overlays_standing[SHOES_LAYER] = shoes.build_worn_icon(SHOES_LAYER, alt_icon, FALSE, NO_FEMALE_UNIFORM, variation_flag, FALSE) var/mutable_appearance/shoes_overlay = overlays_standing[SHOES_LAYER] if(OFFSET_SHOES in dna.species.offset_features) shoes_overlay.pixel_x += dna.species.offset_features[OFFSET_SHOES][1] @@ -314,7 +309,7 @@ There are several things that need to be remembered: var/t_state = s_store.item_state if(!t_state) t_state = s_store.icon_state - overlays_standing[SUIT_STORE_LAYER] = mutable_appearance(((s_store.alternate_worn_icon) ? s_store.alternate_worn_icon : 'icons/mob/belt_mirror.dmi'), t_state, -SUIT_STORE_LAYER) + overlays_standing[SUIT_STORE_LAYER] = mutable_appearance(((s_store.mob_overlay_icon) ? s_store.mob_overlay_icon : 'icons/mob/belt_mirror.dmi'), t_state, -SUIT_STORE_LAYER) var/mutable_appearance/s_store_overlay = overlays_standing[SUIT_STORE_LAYER] if(OFFSET_S_STORE in dna.species.offset_features) s_store_overlay.pixel_x += dna.species.offset_features[OFFSET_S_STORE][1] @@ -324,12 +319,20 @@ There are several things that need to be remembered: /mob/living/carbon/human/update_inv_head() - ..() + remove_overlay(HEAD_LAYER) + + if(!get_bodypart(BODY_ZONE_HEAD)) //Decapitated + return + + if(client && hud_used && hud_used.inv_slots[SLOT_BACK]) + var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HEAD] + inv.update_icon() + update_mutant_bodyparts() if(head) remove_overlay(HEAD_LAYER) var/obj/item/clothing/head/H = head - var/alt_icon = H.alternate_worn_icon || 'icons/mob/head.dmi' + var/alt_icon = H.mob_overlay_icon || 'icons/mob/head.dmi' var/muzzled = FALSE var/variation_flag = NONE if(dna.species.mutant_bodyparts["mam_snouts"] && dna.features["mam_snouts"] != "None") @@ -340,7 +343,7 @@ There are several things that need to be remembered: alt_icon = 'icons/mob/head_muzzled.dmi' variation_flag |= STYLE_MUZZLE - overlays_standing[HEAD_LAYER] = H.build_worn_icon(H.icon_state, HEAD_LAYER, alt_icon, FALSE, NO_FEMALE_UNIFORM, variation_flag, FALSE) + overlays_standing[HEAD_LAYER] = H.build_worn_icon(HEAD_LAYER, alt_icon, FALSE, NO_FEMALE_UNIFORM, H.icon_state, variation_flag, FALSE) var/mutable_appearance/head_overlay = overlays_standing[HEAD_LAYER] if(OFFSET_HEAD in dna.species.offset_features) @@ -362,11 +365,7 @@ There are several things that need to be remembered: client.screen += belt update_observer_view(belt) - var/t_state = belt.item_state - if(!t_state) - t_state = belt.icon_state - - overlays_standing[BELT_LAYER] = belt.build_worn_icon(state = t_state, default_layer = BELT_LAYER, default_icon_file = 'icons/mob/belt.dmi') + overlays_standing[BELT_LAYER] = belt.build_worn_icon(default_layer = BELT_LAYER, default_icon_file = 'icons/mob/belt.dmi') var/mutable_appearance/belt_overlay = overlays_standing[BELT_LAYER] if(OFFSET_BELT in dna.species.offset_features) belt_overlay.pixel_x += dna.species.offset_features[OFFSET_BELT][1] @@ -390,7 +389,7 @@ There are several things that need to be remembered: client.screen += wear_suit update_observer_view(wear_suit,1) - var/worn_icon = wear_suit.alternate_worn_icon || 'icons/mob/suit.dmi' + var/worn_icon = wear_suit.mob_overlay_icon || 'icons/mob/suit.dmi' var/center = FALSE var/dimension_x = 32 var/dimension_y = 32 @@ -418,7 +417,7 @@ There are several things that need to be remembered: worn_icon = 'icons/mob/suit_digi.dmi' variation_flag |= STYLE_DIGITIGRADE - overlays_standing[SUIT_LAYER] = S.build_worn_icon(wear_suit.icon_state, SUIT_LAYER, worn_icon, FALSE, NO_FEMALE_UNIFORM, variation_flag, FALSE) + overlays_standing[SUIT_LAYER] = S.build_worn_icon(SUIT_LAYER, worn_icon, FALSE, NO_FEMALE_UNIFORM, wear_suit.icon_state, variation_flag, FALSE) var/mutable_appearance/suit_overlay = overlays_standing[SUIT_LAYER] if(OFFSET_SUIT in dna.species.offset_features) suit_overlay.pixel_x += dna.species.offset_features[OFFSET_SUIT][1] @@ -456,11 +455,19 @@ There are several things that need to be remembered: /mob/living/carbon/human/update_inv_wear_mask() - ..() + remove_overlay(FACEMASK_LAYER) + + if(!get_bodypart(BODY_ZONE_HEAD)) //Decapitated + return + + if(client && hud_used && hud_used.inv_slots[SLOT_WEAR_MASK]) + var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_WEAR_MASK] + inv.update_icon() + if(wear_mask) var/obj/item/clothing/mask/M = wear_mask remove_overlay(FACEMASK_LAYER) - var/alt_icon = M.alternate_worn_icon || 'icons/mob/mask.dmi' + var/alt_icon = M.mob_overlay_icon || 'icons/mob/mask.dmi' var/muzzled = FALSE var/variation_flag = NONE if(head && (head.flags_inv & HIDEMASK)) @@ -473,8 +480,7 @@ There are several things that need to be remembered: alt_icon = 'icons/mob/mask_muzzled.dmi' variation_flag |= STYLE_MUZZLE - overlays_standing[FACEMASK_LAYER] = M.build_worn_icon(wear_mask.icon_state, FACEMASK_LAYER, alt_icon, FALSE, NO_FEMALE_UNIFORM, variation_flag, FALSE) - var/mutable_appearance/mask_overlay = overlays_standing[FACEMASK_LAYER] + var/mutable_appearance/mask_overlay = M.build_worn_icon(FACEMASK_LAYER, alt_icon, FALSE, NO_FEMALE_UNIFORM, wear_mask.icon_state, variation_flag, FALSE) if(OFFSET_FACEMASK in dna.species.offset_features) mask_overlay.pixel_x += dna.species.offset_features[OFFSET_FACEMASK][1] @@ -563,7 +569,7 @@ default_layer: The layer to draw this on if no other layer is specified default_icon_file: The icon file to draw states from if no other icon file is specified -isinhands: If true then alternate_worn_icon is skipped so that default_icon_file is used, +isinhands: If true then mob_overlay_icon is skipped so that default_icon_file is used, in this situation default_icon_file is expected to match either the lefthand_ or righthand_ file var femalueuniform: A value matching a uniform item's fitted var, if this is anything but NO_FEMALE_UNIFORM, we @@ -571,12 +577,21 @@ generate/load female uniform sprites matching all previously decided variables */ -/obj/item/proc/build_worn_icon(state = "", default_layer = 0, default_icon_file = null, isinhands = FALSE, femaleuniform = NO_FEMALE_UNIFORM, style_flags = NONE, use_alt_icon = TRUE) +/obj/item/proc/build_worn_icon(default_layer = 0, default_icon_file = null, isinhands = FALSE, femaleuniform = NO_FEMALE_UNIFORM, override_state, style_flags = NONE, use_mob_overlay_icon = TRUE) + + var/t_state + if(override_state) + t_state = override_state + else + if(isinhands && item_state) + t_state = item_state + else + t_state = icon_state //Find a valid icon file from variables+arguments var/file2use - if(!isinhands && alternate_worn_icon && use_alt_icon) - file2use = alternate_worn_icon + if(!isinhands && mob_overlay_icon && use_mob_overlay_icon) + file2use = mob_overlay_icon if(!file2use) file2use = default_icon_file @@ -589,9 +604,9 @@ generate/load female uniform sprites matching all previously decided variables var/mutable_appearance/standing if(femaleuniform) - standing = wear_female_version(state,file2use,layer2use,femaleuniform) + standing = wear_female_version(t_state,file2use,layer2use,femaleuniform) if(!standing) - standing = mutable_appearance(file2use, state, -layer2use) + standing = mutable_appearance(file2use, t_state, -layer2use) //Get the overlays for this item when it's being worn //eg: ammo counters, primed grenade flashes, etc. diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index e5483e8d73..92509d364a 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -42,15 +42,11 @@ observers = null break - var/t_state = I.item_state - if(!t_state) - t_state = I.icon_state - var/icon_file = I.lefthand_file if(get_held_index_of_item(I) % 2 == 0) icon_file = I.righthand_file - hands += I.build_worn_icon(state = t_state, default_layer = HANDS_LAYER, default_icon_file = icon_file, isinhands = TRUE) + hands += I.build_worn_icon(default_layer = HANDS_LAYER, default_icon_file = icon_file, isinhands = TRUE) overlays_standing[HANDS_LAYER] = hands apply_overlay(HANDS_LAYER) @@ -100,7 +96,7 @@ if(wear_mask) if(!(head && (head.flags_inv & HIDEMASK))) - overlays_standing[FACEMASK_LAYER] = wear_mask.build_worn_icon(state = wear_mask.icon_state, default_layer = FACEMASK_LAYER, default_icon_file = 'icons/mob/mask.dmi') + overlays_standing[FACEMASK_LAYER] = wear_mask.build_worn_icon(default_layer = FACEMASK_LAYER, default_icon_file = 'icons/mob/mask.dmi', override_state = wear_mask.icon_state) update_hud_wear_mask(wear_mask) apply_overlay(FACEMASK_LAYER) @@ -114,7 +110,7 @@ if(wear_neck) if(!(head && (head.flags_inv & HIDENECK))) - overlays_standing[NECK_LAYER] = wear_neck.build_worn_icon(state = wear_neck.icon_state, default_layer = NECK_LAYER, default_icon_file = 'icons/mob/neck.dmi') + overlays_standing[NECK_LAYER] = wear_neck.build_worn_icon(default_layer = NECK_LAYER, default_icon_file = 'icons/mob/neck.dmi', override_state = wear_mask.icon_state) update_hud_neck(wear_neck) apply_overlay(NECK_LAYER) @@ -127,7 +123,7 @@ inv.update_icon() if(back) - overlays_standing[BACK_LAYER] = back.build_worn_icon(state = back.icon_state, default_layer = BACK_LAYER, default_icon_file = 'icons/mob/back.dmi') + overlays_standing[BACK_LAYER] = back.build_worn_icon(default_layer = BACK_LAYER, default_icon_file = 'icons/mob/back.dmi', override_state = back.icon_state) update_hud_back(back) apply_overlay(BACK_LAYER) @@ -143,7 +139,7 @@ inv.update_icon() if(head) - overlays_standing[HEAD_LAYER] = head.build_worn_icon(state = head.icon_state, default_layer = HEAD_LAYER, default_icon_file = 'icons/mob/head.dmi') + overlays_standing[HEAD_LAYER] = head.build_worn_icon(default_layer = HEAD_LAYER, default_icon_file = 'icons/mob/head.dmi', override_state = head.icon_state) update_hud_head(head) apply_overlay(HEAD_LAYER) diff --git a/code/modules/mob/living/silicon/robot/update_icons.dm b/code/modules/mob/living/silicon/robot/update_icons.dm index 8d40e35706..7311806c8b 100644 --- a/code/modules/mob/living/silicon/robot/update_icons.dm +++ b/code/modules/mob/living/silicon/robot/update_icons.dm @@ -41,7 +41,7 @@ else add_overlay("ov-opencover -c") if(hat) - var/mutable_appearance/head_overlay = hat.build_worn_icon(state = hat.icon_state, default_layer = 20, default_icon_file = 'icons/mob/head.dmi') + var/mutable_appearance/head_overlay = hat.build_worn_icon(default_layer = 20, default_icon_file = 'icons/mob/head.dmi', override_state = hat.icon_state) head_overlay.pixel_y += hat_offset add_overlay(head_overlay) update_fire() diff --git a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm index 408edc7110..cece40d3f3 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm @@ -28,12 +28,7 @@ var/y_shift = getItemPixelShiftY() if(r_hand) - - var/r_state = r_hand.item_state - if(!r_state) - r_state = r_hand.icon_state - - var/mutable_appearance/r_hand_overlay = r_hand.build_worn_icon(state = r_state, default_layer = DRONE_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) + var/mutable_appearance/r_hand_overlay = r_hand.build_worn_icon(default_layer = DRONE_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) if(y_shift) r_hand_overlay.pixel_y += y_shift @@ -46,12 +41,7 @@ client.screen |= r_hand if(l_hand) - - var/l_state = l_hand.item_state - if(!l_state) - l_state = l_hand.icon_state - - var/mutable_appearance/l_hand_overlay = l_hand.build_worn_icon(state = l_state, default_layer = DRONE_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) + var/mutable_appearance/l_hand_overlay = l_hand.build_worn_icon(default_layer = DRONE_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) if(y_shift) l_hand_overlay.pixel_y += y_shift @@ -85,7 +75,7 @@ var/used_head_icon = 'icons/mob/head.dmi' if(istype(head, /obj/item/clothing/mask)) used_head_icon = 'icons/mob/mask.dmi' - var/mutable_appearance/head_overlay = head.build_worn_icon(state = head.icon_state, default_layer = DRONE_HEAD_LAYER, default_icon_file = used_head_icon) + var/mutable_appearance/head_overlay = head.build_worn_icon(default_layer = DRONE_HEAD_LAYER, default_icon_file = used_head_icon, override_state = head.icon_state) head_overlay.pixel_y -= 15 drone_overlays[DRONE_HEAD_LAYER] = head_overlay diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 3a1df8c0b3..0c6d760431 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -310,11 +310,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians var/obj/item/r_hand = get_item_for_held_index(2) if(r_hand) - var/r_state = r_hand.item_state - if(!r_state) - r_state = r_hand.icon_state - - hands_overlays += r_hand.build_worn_icon(state = r_state, default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) + hands_overlays += r_hand.build_worn_icon(default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) r_hand.layer = ABOVE_HUD_LAYER @@ -323,11 +319,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians client.screen |= r_hand if(l_hand) - var/l_state = l_hand.item_state - if(!l_state) - l_state = l_hand.icon_state - - hands_overlays += l_hand.build_worn_icon(state = l_state, default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) + hands_overlays += l_hand.build_worn_icon(default_layer = GUARDIAN_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) l_hand.layer = ABOVE_HUD_LAYER diff --git a/code/modules/mob/living/simple_animal/hostile/gorilla/visuals_icons.dm b/code/modules/mob/living/simple_animal/hostile/gorilla/visuals_icons.dm index b3e0f3b658..9d451748b0 100644 --- a/code/modules/mob/living/simple_animal/hostile/gorilla/visuals_icons.dm +++ b/code/modules/mob/living/simple_animal/hostile/gorilla/visuals_icons.dm @@ -33,14 +33,12 @@ var/obj/item/r_hand = get_item_for_held_index(2) if(r_hand) - var/r_state = r_hand.item_state ? r_hand.item_state : r_hand.icon_state - var/mutable_appearance/r_hand_overlay = r_hand.build_worn_icon(state = r_state, default_layer = GORILLA_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) + var/mutable_appearance/r_hand_overlay = r_hand.build_worn_icon(default_layer = GORILLA_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) r_hand_overlay.pixel_y -= 1 hands_overlays += r_hand_overlay if(l_hand) - var/l_state = l_hand.item_state ? l_hand.item_state : l_hand.icon_state - var/mutable_appearance/l_hand_overlay = l_hand.build_worn_icon(state = l_state, default_layer = GORILLA_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) + var/mutable_appearance/l_hand_overlay = l_hand.build_worn_icon(default_layer = GORILLA_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) l_hand_overlay.pixel_y -= 1 hands_overlays += l_hand_overlay diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm index 2beb9296b3..241dde13a8 100644 --- a/code/modules/paperwork/stamps.dm +++ b/code/modules/paperwork/stamps.dm @@ -9,7 +9,6 @@ throw_speed = 3 throw_range = 7 custom_materials = list(/datum/material/iron=60) - item_color = "cargo" pressure_resistance = 2 attack_verb = list("stamped") @@ -20,52 +19,52 @@ /obj/item/stamp/qm name = "quartermaster's rubber stamp" icon_state = "stamp-qm" - item_color = "qm" + dye_color = DYE_QM /obj/item/stamp/law name = "law office's rubber stamp" icon_state = "stamp-law" - item_color = "cargo" + dye_color = DYE_LAW /obj/item/stamp/captain name = "captain's rubber stamp" icon_state = "stamp-cap" - item_color = "captain" + dye_color = DYE_CAPTAIN /obj/item/stamp/hop name = "head of personnel's rubber stamp" icon_state = "stamp-hop" - item_color = "hop" + dye_color = DYE_HOP /obj/item/stamp/hos name = "head of security's rubber stamp" icon_state = "stamp-hos" - item_color = "hosred" + dye_color = DYE_HOS /obj/item/stamp/ce name = "chief engineer's rubber stamp" icon_state = "stamp-ce" - item_color = "chief" + dye_color = DYE_CE /obj/item/stamp/rd name = "research director's rubber stamp" icon_state = "stamp-rd" - item_color = "director" + dye_color = DYE_RD /obj/item/stamp/cmo name = "chief medical officer's rubber stamp" icon_state = "stamp-cmo" - item_color = "cmo" + dye_color = DYE_CMO /obj/item/stamp/denied name = "\improper DENIED rubber stamp" icon_state = "stamp-deny" - item_color = "redcoat" + dye_color = DYE_REDCOAT /obj/item/stamp/clown name = "clown's rubber stamp" icon_state = "stamp-clown" - item_color = "clown" + dye_color = DYE_CLOWN /obj/item/stamp/attack_paw(mob/user) return attack_hand(user) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 8d5de661ae..195bc8291f 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -196,7 +196,7 @@ By design, d1 is the smallest direction and d2 is the highest /obj/structure/cable/proc/update_stored(length = 1, colorC = "red") stored.amount = length - stored.item_color = colorC + stored.cable_color = colorC stored.update_icon() //////////////////////////////////////////// @@ -482,7 +482,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai max_amount = MAXCOIL amount = MAXCOIL merge_type = /obj/item/stack/cable_coil // This is here to let its children merge between themselves - item_color = "red" + var/cable_color = "red" desc = "A coil of insulated power cable." throwforce = 0 w_class = WEIGHT_CLASS_SMALL @@ -504,7 +504,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai /obj/item/stack/cable_coil/cyborg/attack_self(mob/user) var/cable_color = input(user,"Pick a cable color.","Cable Color") in list("red","yellow","green","blue","pink","orange","cyan","white") - item_color = cable_color + cable_color = cable_color update_icon() /obj/item/stack/cable_coil/suicide_act(mob/user) @@ -518,9 +518,9 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai . = ..() var/list/cable_colors = GLOB.cable_colors - item_color = param_color || item_color || pick(cable_colors) - if(cable_colors[item_color]) - item_color = cable_colors[item_color] + cable_color = param_color || cable_color || pick(cable_colors) + if(cable_colors[cable_color]) + cable_color = cable_colors[cable_color] pixel_x = rand(-2,2) pixel_y = rand(-2,2) @@ -554,7 +554,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai icon_state = "[initial(item_state)][amount < 3 ? amount : ""]" name = "cable [amount < 3 ? "piece" : "coil"]" color = null - add_atom_colour(item_color, FIXED_COLOUR_PRIORITY) + add_atom_colour(cable_color, FIXED_COLOUR_PRIORITY) /obj/item/stack/cable_coil/attack_hand(mob/user) . = ..() @@ -562,7 +562,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai return var/obj/item/stack/cable_coil/new_cable = ..() if(istype(new_cable)) - new_cable.item_color = item_color + new_cable.cable_color = cable_color new_cable.update_icon() //add cables to the stack @@ -581,7 +581,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai /obj/item/stack/cable_coil/proc/get_new_cable(location) var/path = /obj/structure/cable - return new path(location, item_color) + return new path(location, cable_color) // called when cable_coil is clicked on a turf /obj/item/stack/cable_coil/proc/place_turf(turf/T, mob/user, dirnew) @@ -738,7 +738,7 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai C.d2 = nd2 //updates the stored cable coil - C.update_stored(2, item_color) + C.update_stored(2, cable_color) C.add_fingerprint(user) C.update_icon() @@ -769,38 +769,38 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai ///////////////////////////// /obj/item/stack/cable_coil/red - item_color = "red" + cable_color = "red" color = "#ff0000" /obj/item/stack/cable_coil/yellow - item_color = "yellow" + cable_color = "yellow" color = "#ffff00" /obj/item/stack/cable_coil/blue - item_color = "blue" + cable_color = "blue" color = "#1919c8" /obj/item/stack/cable_coil/green - item_color = "green" + cable_color = "green" color = "#00aa00" /obj/item/stack/cable_coil/pink - item_color = "pink" + cable_color = "pink" color = "#ff3ccd" /obj/item/stack/cable_coil/orange - item_color = "orange" + cable_color = "orange" color = "#ff8000" /obj/item/stack/cable_coil/cyan - item_color = "cyan" + cable_color = "cyan" color = "#00ffff" /obj/item/stack/cable_coil/white - item_color = "white" + cable_color = "white" /obj/item/stack/cable_coil/random - item_color = null + cable_color = null color = "#ffffff" @@ -820,36 +820,36 @@ GLOBAL_LIST_INIT(cable_coil_recipes, list (new/datum/stack_recipe("cable restrai update_icon() /obj/item/stack/cable_coil/cut/red - item_color = "red" + cable_color = "red" color = "#ff0000" /obj/item/stack/cable_coil/cut/yellow - item_color = "yellow" + cable_color = "yellow" color = "#ffff00" /obj/item/stack/cable_coil/cut/blue - item_color = "blue" + cable_color = "blue" color = "#1919c8" /obj/item/stack/cable_coil/cut/green - item_color = "green" + cable_color = "green" color = "#00aa00" /obj/item/stack/cable_coil/cut/pink - item_color = "pink" + cable_color = "pink" color = "#ff3ccd" /obj/item/stack/cable_coil/cut/orange - item_color = "orange" + cable_color = "orange" color = "#ff8000" /obj/item/stack/cable_coil/cut/cyan - item_color = "cyan" + cable_color = "cyan" color = "#00ffff" /obj/item/stack/cable_coil/cut/white - item_color = "white" + cable_color = "white" /obj/item/stack/cable_coil/cut/random - item_color = null + cable_color = null color = "#ffffff" \ No newline at end of file diff --git a/icons/mob/accessories.dmi b/icons/mob/accessories.dmi index cda7cca4049d1a95511f5cf0f97ab8bb34d66a90..c13b6a50bcf8cf896a5eb7062924445e529cb160 100644 GIT binary patch literal 8853 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 EFBVy^wg3PC literal 9688 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 O0-illS1gw|4fro9-8x(V diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 1845e75d26d4d7aae16b9bc18d73a3968344b16c..fe0b080dc61f9ba451f2ab32456103fec3f79992 100644 GIT binary patch literal 403435 zcmdSAWmFtNxA!|Z1b6q~4hayPKp;Q}F2N-vxCOTXf&?caxJ+=@;5N7hw*bN2-G`am zJm=iC&ikIv_rqNc(>-0?)jeJRy{l^PUq`6FSHyir^$Y|8;VQkA*93vk%%1)+(Sbdk zHznSM@F8G#$$U^_Da8HO-cVXb z&+x@oAryXlxwdVe#XFV^MI7yQ_c&&_-mzH?`FXedk^dEwgSQmo&)PIgm~s7ylfro%+W3$AE!TbkaLs-B+=>QAWM&7)m;v!+PWgDXG?H1FH(L8JV&Mo2#0$ z<;o_Rk;&C~*Lgwva_`zzN{4kuT|Xr()wNIe4VN#UV82Pu55SXH5}vKN`S^)Mx8AG8 z&R;=g;m;-RA-x(sx9u*xm88IaC2p@qcOZ^C&D!@lDWR8DtAR*{&*H=2*-67b!He_s`Bai$0YQX%3^TS zq9OhVTE_36MnfcDM82VSOl3Sja_|fa^gZohzUg?Er=WhpJn4>to2b+O(jZ=#I6c+H zH$n#6{zo%1&nWY+#4#bH>a9Jr@u@}BzYRlZ1h;Knppbw<&_Wh>pj0`3AZ?-uwtl2I zM(r&X$T|)cDGzHP9ex7#SAZbo@}~#a*FX$g3JQFhb*%=*<}eC6VPo z&HX07kR%$T2Q-&56*fhiFzb9ovEC;1dWDJM4=@T4<9~ZUPpbmrnaFbrdMmN#_Wt|w zbs$&GpKIZ!`2FlRb>1^Ltu2aC>O1+Wo410!A0_fPanQqGT17IWTW0r>7o-S(*bw~& zLHgqCno1t2Pl1QxtM;jH{2d`GspCZ`7G}~I@d%#!i7XZCl2v3Neu=$!yQ`bap~Co0 z-!vQQ`yZH?Oe8o>%n>6cyeJ}<4BvIx7=&_&FSTt264db~OtUgVneN%J8Y0mUY9x;2 zm!tINJyI_czR_pSKIV!?a{tRzkR!n0Q+6p+bMq7wTJ;*hjc8~wm(l$CjZE#WwhMma zdOKQ8=7*)O`tH`d<;v(@<3t{GR#y{}L-5&8WJaWCaOGtfuQ4#g?inz#%J_f%7L+sRIINb1P^ySo@?;Kd`Ywmm zw82$@^@w%yTcZL?OrS$|mLAF)vuW6xVi;<^JIT+b17q_H44Nfk8g@iV9LNe;Y|M9- zaO373@!wmM0*v*WA7a|8Z@J8G>D)pvz8;T%cac}D4*ckhWW3k^oP^coc@O`6_46j3 zk8jw{Qp6p9sMqiQIG#6(mLgU%qu77@Xm)ECxVUs7&k&G@H?ca8APwnst;d3_l5dzK zhu61-r|{pG)x5d;vDLRK#1hl)c^k_4i5ni9s#PDvF z{A9C2W@0PVw9DmT(UxR6#wxOr$lal-e2?bp<%zb)V9si=;6-O}`;n&qP}7lc0k=<~ zc*(+va2^t*z`?~DRsZ(T$=^~s{AjKQJukNwGlNd$>pK@NL$UcOVIIM@kCCe3U`0vF zU%OTsgFhNV4SiDbjw%ivowV>(u}kZ1B(nFcQwr*^cwd|W-GYscpf6qG{>#bfMN-)Q zJL91sO@_F<1^P1|-klzm7+JZ8H@}v@Rumg%i*7Lmd?mXBf%T`+kfrV=(TJ!c>Xn}V z{uHh(LoZ2dHg)=WCp|pw!yv|decJCS&zM37$qA>AYPAkTZ}MEo-W1tT@!1t6AJdpk zk(kU@y?DQBg*z6nTmB2_IP zu6fayet{6588w!&tl+v8ZH^~n$jwYRu{9HH<%v(rXG#r=+7XqGj7W1uRd3ruQ}x%s=|j0) z%68hZF;EFN4lUYhc&yxqyB3goKVUrb%PSfcZ2TG8JM?4v!*NGRDsnEwvh+93(PtlH zj?cOuE&{!Z?35=T5^>S?0-XfC(tEx%3oveBVsoI?kHS`$L>Wyv|FLj$Q1wWK8r%t% z^~uf{n{PGM36oS}I}~HJ4b4tp>(ti=nOfOV#j8RV#H#kRrf}@wK0G>p^3>pO3fA>aqUJJ>;TAp)s+OrebBdyYB?!~jx~m(}*lIL!3bC)v4!p9F2~ zMzY1)%IEZX8I(N#MvJa>2yIE3@hX2R8|5ejZGj#6%qsph<>cNy% z|JRk!zsh3$e^RNco^b3!^;ddfdkWpK@GnUR!Yt2E(a_NTUY`%^9{gmo?Z?ad6CM^8 zxlvqPye^^Y-?iT;3ZE@EEU{j~(-8MK^?$hT4MW2&>gzt|8`rvkUXjvDw@dST%Oxeg zAF`!|d_dzy^!Q|I+WWp?+m^O1_y}wCmWs@gT6;_mz70B-$a-Mk$QnR=hNgFri@18- zoa||Dd?2sfU{-XY5Z@0@9L>*=ft%sQ)e&CCN>4z}8_;&IRuk5}y0L&>xNxC-NUpiBD0tdy@_JXuh3p2|1I1BOx+8=sBhke9@Cf z0~!(TEW9JKruesK-%BzMO*2wCrb8c0#mPp5%V0igx|TJiS75( z5&Wr)FbRzMJ&5^Re`lRL1Cey_a~2{R+ns?%Q|~_zH3h6$V>gQSiD&I6&y3jPg^@dC zX`!DIel;AexVh&Ol)p@Olfc`*ttAAJ+Zq(~0CJR)pL2oBxw&1?=NyP4UR+@TzavD# z%@aP@3L#&D5l>Z9iJZQdM>nM>V0ize#F@q*5bAp7HyloZw^x-o(ve9?WG>BuF!ra` zo526-%+Qs*LOC&t5{#t!^c)s|ZF)ep59S0{H&V86zjn`)<=v$g5j1oj5KrHGeA23EIudFe`8LlSS{#N+x_Mh{ z7<}G!;2d0UL{V7G7sK3RINq&63#peK&n>s3L}8$)6y>COAaH6HcsruzSZWl`je+)| zGB+CnOmD$H&HV4RR&;6bGbhgQGYKz`wUYs7FScZ@^%@!Kx~1&$ikBB}aB%R+AsS7` z()#J^Q;>1%n=J=Sv8L<%@Ej@#K@AxE!9u}r7HDr&IcK>$o?TNtG^Bhu|65VR|Mk-; zDqn;=!1u-8+?>zy?wz0H-16+Z^*5cA#rlW?liMSwwe|fHFDuqzsEpbOVph)$c5bu1 z^%EyhyCqVmn)vx58>eAR-4Q7*pKfctY}q2>jFbO9fO?U>Pz#GoxBa~fNxzheEk?1_ zt-pw*qpkRN0sAP{24x3LyVw*jwHa`6xD&uQ>hyn&C$3PW(Nq*-%j4rHgH zh!=Awz4&+g#!i|e(i7wDzA2u~-t(ME*L|GReSW{JaSX5bZs(R!t0+63G2HRXl+gB; z3>1zWH24+Sv*c+*{qyg{Hx6Hzy{qyT?^jjeyhpWY=P@*=+wefLiwxQCc0kOY)s`|v z^rfka1++(mmtPs8r~DoxtT`qI+#6rU-Fb5#>EphVox{(k6 zl1RmteQnCP5r%X-B;|c1R|tEb!G;k1k8_A0z$H{R2uAd@a5OYDC{lkLOOVx;sz>wz z=SX=@3tn6yAg}VQCX11`>-W9jC+9Fei6#QrId|-0$%Z9;!VbhYLaUZ2aaX!l%WLpL zrTl`=xUjbU1)fFw4~m?eoT@g57BBARl0_S|L%_16n3#}#+US5kP?cFHa!6<><7O}U zT~!r-NJt1MuyJH4k*k`6QI?P`ZFg>FMz(S;H$NW@q^_aC_@H!ou)j}0NSK|{{C0_Oh7;Y6u1Nl zhy+gLENS3i3|dKUsZqIGNiMaA-)vPJYQhtzlP4RTO#Q^pv?MMk+maFCCdg8mMSgIe z5j`1x!~UD(+UF?@rcl2$*TgEp3)1+PsxEU2a6|H!2_`Ju0uobT{?$iI1qqQ}jWVe= zqs9DKUeBH_gP1><0f-dBJ!y)M)f^Ftch5j5VYzUq-7o(KepAHC%c{C8!+Xy+u~2RB zKd5lTHW$eGeZ}@28-gLF^4WpmYn-v98l&lq75t-J8|P+kN{Ygb829`a&#fp9l!IKv zCj81@LFsv{nri<3{CL167BFdbr~h}V;}(OZAy1meRC=$*bqC7hA6ySTa$&j3|I>~p z--KOYHv|q^sU&Q-XPOCbdZWx`kYM;x7`cJwMzcm8S(3gTPNES518)IWjB#~!mBU!}B6oXiM^Zup z1k%ybS#L~8NDw8owX>U8SSYb(DU-Y)1<}wtfS31XO3CY#^)0-pVicyQr+?{Hn*9C! z8J{jgBrYx{CZCamSy-41e>A=S1gN>q=jyepDsHqwF1IiX<96ZJmFeMgwUE}^oIidn zi>K+yT=zH7Q%|+mfH<8ClCAv=x}Y%rXPS4AGVr!ML0r*#v;@}%(} zOAoA83_(wP&iB%^_X2U!YLQs-P564Cwd953cm9%#dI(*y_ni+)V#@wK-Y*j~~G`HG=Z; z@@}u<7iaMC@xvP$M1XcvZSG#%+lv5t%98seqh>cOIyyT2T5CcO!`VUQ_taD+W6#}q zMhfWwi2_v!Z=cKFB#W)jgR35sB&OH4n%r57qNUgfLUD!XwGTnyWuiW1fQHNC=y_#r z`%hw0Y65MfJd7pZJ2iad;K?B3zk#^w*ZwG7z3tQXnG#5%xsTYab5KS{X5Bu{6BP4B z7qeh;evSdS@aM^(==5`VRjsH-4wB6q{t7kmzAGf&*>NcLmTa7G^ud&)0nwioViqdY z$LJboD=Bq7WE@-+kh59}Ht;6Pu9dbEgI5x1XCh|nM!zh$NFT?Wu0>R&aK!Febs^Y&VK!a9 zxIzWyrOE06i^g{tA+T`Dk%EK$FP$BmqbIfp&qzs0-@bpZ01bHLci-1Gf(FpyOI{Kz z``;K#oOYmmqdFtEANEB_<~4rp?*6i?OYD}~KRiR!1sSl9u0N^Qh$e`XKNT)6Zi;|q z*!q1)00k;Y)O8axBQrC5##R6f_XEs(9UWCgLAP2-Q@8Gs|S; z1P|nhk)=u}vR8h)Dh*bQ`{mZ@)|v?;W~{jy46wr1!Obm#Mk)@;WPNb@cNC*5;LVb4p12vMRXweb}bbLERnDl z=Z^L@G3mF3ai^IE-zt58psJ0%GJ`He_t}oYWviEwp9f3iY%4ar^oBrE4Fg!I*KQj> z?akRq<(%QXAT54<^bVo$&!FVKo?)f{bb4RbCMta4oq>4lXGfgq%8yNP@O*xADM34g zXd&GJBLrec{OBsj1VwU_`wCE>29R5de|Es168#?Me}A?b{`fd6Z+7>+<)q(6MOuiG zy^V3D;xdfCqPCsqJwA!!gY-1{s#Z`D0+aw|d}pg8L)2D;z!ad_=jw6u`Bh^8ROlsj zud|wA_DKq`f_a}|Sk%Fo0~-Bf3DaG}^a(pc`CyT$Dd?*UXZXxcu)q&L%6Zj0jKJ^2 zs8chdiE^%AYdn|Qh`)DMid|qoXJbPFm6Vnufxcp3Bfi+GLOhWPc?}^M8PPhQ16<~G zit_HSLI(eG^YWsDN|p6%-T`w#7vxeQ=Hi>LiD^LwIjGBrHgsD>)6BA=?XP4kGH#-~F*QZcTRGXb0WI$Th$<$93 zgFZSsx-L&$OeWBC)a%g@zpv%`sLGJ&{BU!U%tO4su>mwh-L#sj>YI1(q7$ z<{qTn3qwvNmt8_A)n3BRI8H9xFB>KBV06n+vrPwUb?#-mhmfnoyM;=`Buu znN*nPLU3S;Ltf!0ppxBt2=j-KPq4#lJEM1!$8_c68l!g5z zvOd)}T=OT6uXt*OUr)1r_=lj*>sK&Fe~(~7+4~~oY#v0n_a$^IrWpqY{jX!yYFL@}dkqh&Q> zbhXtI+mMV8Xfph!hFoAxBfdR;GaR8CH@G8Kh)HES5 z_l*SlqhjOuv0XEo|2R0Bop-%>*U**Gv~erF<491=)?7ts3+l$npMZywzGO=3yRQ^i z8W)ET3WW5oX_q=LobkO|6K;W)Si|%GQ`zTdo}hRb{-{0qe;#tuos(mB?ica5bv9ej zrY1@dzvr!U3s^6CJJkuwu=xG)m~3*E<2(pM6eJn|Yt&iME7y(M=#Lw&&z-?5p%MXR zQG98}nRRb|A-!6bUo_+Y)!t4w(>O8V=!q&|>eNtZ3k0)h1k4iyDWLL@4bcg&=RBA% zsBlGN6C6BS!p<^#a%(4wQPIB!4f)o$!jp8n2?5Q%(UOlj01tDD?g<_pfI&+Ek9;vG zzyNqEaLe?)!FF3Z;>9zxMsCC`dny9Ykbs1Q(9*L`=kk zzh^!@EE}U80rwRZO&Rm_Z7{gmn^J_~?60l{oo<}L;&SM;o%rWL`38GaqJ7ht7rZ6PlMZ`;bE(d z^78T;Vbr8grEQNtCkyLVj`%;gqQ_kz#G)G6q#VNjh`^~y>_sR#D`VPEH)uANqU^bW8 zB9A;UGyxOk&4DBL7R_CjP-Ikvla`q0z>9YGX1+@(+LsD6AEJj`L2F%a=8iT^FJ?HS zPtiF!c30j5bJ&JW`&R@OksRd1#}Tl&Kl8DKiHk0}cha7>MdkvNUxE^i2M{IybTDfI zgbSGN8{FYsMNT3G!e$>jmv*3XD6`8`)A=kNNn0JXM{_!kiYvNb0`eiqY77l2z)aep zJYCpd>^&>XM0}$8hhW|qmX|MeCKk=~;aiurFmSs^`Jre9RbF@n)U5swE?SNwa;VDX zEfeXf$IBIDKd)|dV4Ayi@Z_tbDYN@~f@DewPo0rKl4%A(UwUOcvTE*=aNKqT9RG

{!4F_wqsN?MjPtzCYeXL3cXk;Eqk%{!g+antZYqXY9bXj~bgK0?ULA}-NjDx>e*Io`?Kr@)fOc| zoMhhQ@tF7S1L2Cf3Vm!1eT*NnsCj41G}84tw^&>(I5{$_s4A&vP3nfPC+JWk6ychp z$DNH?#ZDi-qvYjxG^l=?fJx5eQrjbF7l6&Z)>GT$MwcN*df;RFYMh=|L{(MQK^IL< zZ*NRB$ookpJm=XK+f396awYO(%`#buzv%h%n^~5dljHRR4d?FNTjG|*fgKJ4f#8?e z-|@;>C9ia5ZiyX6pOm(;jI0-Pjd5r?QZS#~@&Xvh#587aaa$m~dXvfnFZhgjpn)LX z-e4B}2hWlXd{qCDxD7G}$c)P{DD&oPnFx{hKZs7gE7h7cB)#8hHyB~H1x$KO$TpM1v-3gzWY$u)G z_fX!7N$UBelfsS_WNy6||4bnh0X&Kn#Q5qd!#Konr-(&3`AG` z=UtZau7)+kCKZ!;9dfQ-kF33YoXi6jA-q`+W7!=YauGaR8cIhIZ1$Pi5S>m1JCX7d z!DL>*0<};iKk8sEO{ylRR7OD=G%Rb(5;BobgU;>s0+;du=<#MjU>3O6X#Pd8MM<}T z^+{D*hW|ZGY8*;gaRvPjrD=Ybb<|J~jnB`*t^sd&S{G9gbLIDgZiBuVC6))GS0_%( ze&nwXR5~Cqo`hG=$4J-_w%62hTEYqT?~Q$CA+Igbhb-;*r>A=^N5x${#)ah z0pU0yqGoSsTxNwSF~)@w`uUbyLZkh6MTo9y)rzvT1SS}8 z=a1Nb%5MlAu4c$+oej|KpBw_bKQ2`RH)u(^YCO68zHmU{?dKV{pI};*RP%gtuJ%wP z=RY(_n>%DY40B*`cKwhxWzjZI{O#69FaN!B;yS6$ZAW{|d(y8`M4gv4P>lTRADI`P zFS}ks#*+%Z(R*-da5|BX z?UfA|7T)DzgLk(cS3t>t1GN^1MdWV0OC+T-?Vjm(lxgh_PXK+dW%ZEO2A=FMY!$mc z!kW-+&(w>HO&-_$H10E|qZ(F*D!Y93)OPu$K~t&G^QpP}Y&~8p&VH*WxIa0ht%sOJ zh?@^9pz&FZ7DJ&Sfe)%;V(=UGbXk{F2UrHnrHZs67S=8cUE9De#l@tF=oiG&dnQoD z_8?X>7}zy)aw!&cy$+A?H%>av_pHHjzK%WP-Zj!ae$p{6MGJj%IjA06kWxf3O?+F> zkfMVvaH;95-jJ%#(F!=c&6DIKX|YMV+*^*#%|zl)=d%Sr&8%{o=x{x9y7pRM3~S!u z+Y@Y^C)pg;)6@)QYicqxvuO4on8$vGHz=}+k_Gc0vE8{f-?+u`ND%u2qoUDv__(_( zwCllj!wNFiGz)OLF&g04Ry<|CxA6HdUw{u~skh1*j@y4;&XvS_LMU%#N4&E?QZyJm zQ(-H%t9?wkC6)TLusADsZBg^x5BP04E^h8;#HqJ#_>bHw-F(FE;^2r|geBmdwe@_! z_0%5e`g&fMB6$&rSMq)u;=cFc!v{7<#_O5NygkJT_@bu8D88#9qrAP5E3 zwoSo3d*d3#e*QD>BgPBZdfX(wyUU4`;lz{L){@2i?3eNrcjQUVo7H(yO-7RWWn{GJ zA@isG>V(9g+Tq8MiipK$D31F9o$@KD^Nf((-l{4I#`1A>JepyZyf1~xXSF9 z_9uV&-H+d%8us-$u1vG{#EY8xe!qtLm`Ey7-=hRm4p$sUYS=3mQuUZA2s{^vp=i=ujp9X;~DJ)aSNB(j^aly zqz~14bXi}Dol>qfF!6JKhr z7(bN;#`g17bLN#l5yb5JI_AcG_kU8ZpI_TD6Gd~r6(R;k_RG|sVszDnF_k?R)fIz7 zOT`es?1kpj?|Q0q%DFcl<~_1tD*r>hDEFpmka~RauAu=b(B(sGI|j?XYZ!7f=frYA zMS)=sry!==@jNP|izoAz1)B9vR|9b<5P6!njWv#*GwkL-jMYOTFmbOQeOo;={v2@T z{|t0VF4~|M-CL7Y<`%=h@Ri%+%*4C{k|fTw zL|khEPQem#?)0)5+H=G#$D`q=7iqqvd8Kv&uTvo&isbHemkbW7ypK@yPwFC)x^J5m z&QrbKWL6>TJA~?|W&737-*gEt-@O-DqrC&mH6-%!_p>ct-fF}ez;$FIP6YzxnB^8f zH|OcO_~@HVcIa`_4>#Gz+yZ6-&9+zxHJ~sYb~HAAbbWm?ugk@;;`b16eAC*@Z=-vm zch`$ombGCwZsbF*7J{-KH!-5hy2WK-YR#p_Sic+RSv10;WK=WgMQA+%$TIS^%Pe>H z(K|B(^t&DfU#oz&F8$rI6W*el9@k0}_CoOm>{0E5$kzpk#Fn%I=XWCG##E72*&)#T z#rG)Izj{C6N7LTSZ+Zo0r4l@R1u9Un*l-v~?C(jirF?eX_P|_NkPRJ1eeD#3E&rXS z^A#8esK-I)mzZ1nA+O|$U02_@zC}G@@`I$j`lO`iLYF^lwz!u~Hz?0+vEQ`?T$s4$Sqn4VaEdqf&D{VZ zL~R_qvi{*eWkEhJIkBz!J^4ql^+4+CTcKNhqM7I^!|UK`n5@<% zaWZWl-Z*`|SvQiVOvfY0CjIw1M&9&^f4oaYQO=L$pwLk0x21~Fm<))EMd7@Lye2+! zVD5W|x_TxO`5p~NS~=oVj&oPt$3@D*`Vf<74OI(mbMrp=k>%i+(RuzWp|}VmkB;8N z4IzbSg-~sw_$;GoDFs!TLGhOd9?zaD-{%N#yt-Hd;#c&Gy0)O4z9wJ!0MnZ(w_S5f zt~}AZm2$Lgs@@SByG6|f&nZd`LwOR6JnS!51-JGdSLnd%WApIGI2l$E{_-MZn(1A{ zV&jq>w_=D@9nyu`Ti+nVb6+?}Nku48AXk!1v!MZT8|Kv>A2`(+^Ni$s z;ka=wYMN?1=dB0exqnHl=J_${o>%E=E+fFE-ViNa7kLR#QbQt+!n#?TO!UVJq70BL zvhoNM<)KGLObj$e1n-_;YJ*3XSeKSz#kCs=4Yy;cvut*jBG{+BgVcliEUu{ME?lElxGGCLlX>p!co zAH~afaQ~@vi7aX)12ulRN61tcSB}|NPQr+A&bu;p27MLsps4z9>h55N5&mbrxAe-7 zu{rvU(DHf2%?~*_wloxHB`ymL-US>RrE8Ih$K#yPF7HNfe5NmKg`3k zY<;yGCWg;6yl&yEO>ljd^2OXD@QxJ&Ov6RALg=_aZ9C#~P7ND61{!T-rffBjFN$aTG3WWIHUxv)# zc@jE5vZSgUrE&r@YAa&om9nYam4x4GfYl5kP@y3VNIVn6ExL@6O?BU@8igRMoj_$m z|5>3Zre}kha>Ug5C&{k62ZA1mWAks{zD*Lui$(fc0viptGA<6r`m3sOzzBG776*j? zJW|c_2-_7I{3e4B=s;)~7|?+`+nxbeM*0G~K4v~rivvhb0sujLYkNDQ zLFie+xb=c#-F@I5MSm)nm$h@uSbEQ1zb1R7s!GWXlNza1*y5Az)odJ@NY_X?6BX@f z`-;t#%JL@vLtMw^0ojN(_dj6;|Jh}=!_q)at(q@A*AWKed z;6%2UxY39s=(Ti<3`^HT)b8eT3-&ffX4Ei*Ff-?D#lRCjZNyJFKdsvc70?=5pv|-B zqJFXN7sn|tG&k48PtNudRQk_~**!18=cfcPcbjVR5N^W*q*@4)J!YYPWx%s?2|RA> z4vd;I4)&RYRT^&#oAwWx$8A0PxJs@9{$I8Zt@ct z?Y!!S&|6fWv`6CwTdGTMTBl4@r0)7eRGYMBblx&LnRDlTU?CSGstCoBM^{~v;W3EE zava-h;w;Mi`oXuMn_1`{sF3A2JoiYySl;*WeqUvwPBp?fWwtwn<}}cu%hmtEcad0|xk#7|YST)MwQ1Pc!P3b9t!GdIH(=w=<|- z9Czv1)o!283`|h9fY*?pB2j+4s_LXe4$q#6W{3=?GD8PIWuZQc+30gSmvZksQCc$} zEic)?|_Obqs>qKpfahlYj$aZ^wT>a0pH+D?sbvHNT@qK_>k`G3EP_u zyH@rQo~(@l(22oZj~s`A*AEyHJR^d`ZF(%u4l*~r>mFLD?SlUD3-|H!UzGr6)xrN% zBF*Dr>+5jIHCgmm?<=;@)T?J znpvA!w+9m@Mm$7-PSvT|hQ9IzmJ?%*Bcrp&;pZI&BSk4}X*!Kj*iddx@2B4D;`MU% z$kew;j~wW8xYb^HVIZ(j)t)~p>RD|KZDV^Qd&oKcQWzMN$Wf}Nr3Q&X*LR3#6jt-M z5iwp9ZkZ0cFm!z$a7br8MuBL8p^D1K^oe<@G2+ube}q;3BCwb_9Lcf8Qm zjOug#mI6h33^TtZp*3-bN=;o$A6DZ<^&g*CQiq5k?iCybyo-?rRv| z0x#HP0(QH8mAP;W!3*LNE!-83JN23}4JuX3M3ZVHEm;vk;5u_ls>?S@k!CY-=@sH} z+o+Qi(?&Wl#oOe`D>oWBl1-?`DtVo9+A{WP8ezLHUNr7FZcRu!VoOJivCwG{0a>uO zXDtfF&LZ#0X3w|{IZ{!=P}FLKn=+?;-qp?4 z{(KHem|B|5dz*JJAAee7s%R9+6fDj~6%rJPZB;ujbrfN*9-sP6YT8gf4|=ClR=(pi z&eEGag`At$;^%WutDrC=<}~Q(j7K&D&Cy5^yBKN{(@Ycs?0f%Z7=oObkO6IW&+t3S zu=-y$;7VPW!x&>2WlbX6+{vm61kyhvu~bx$Sj{ffztl0Qdxgv=`E;BEvs3xvt#DeW zW#jcfRcJ>7``RxecIk4Jn7lWy!&}<&zHK|JIG>ZFP+p)4+!jHcUCqDMfOOIx7PNx? zQZo}%_VqW`_HUa(Uc7Px3xmgKF&6l;y~lLrA!QGuhT0M^mPa2Mdra#t#~4(0J7!*M z8hjkdxNet{Lg)Ll5%AkyIX8U~#hc1(-8lDtK%^E$(6|#1WYMR@B~WL-k^b~(6r1y& z`YQ8Mlg!arE=kU@k7@v-U6U{%3l?!D9$=T#+YCwM1t$f1%PI-@=GeNadz&GIr*M5p z{JUA?+qM5W(Fi;z#BTpgGbmy;UzJmN12Y>B9#YJNr{KwW;f=SX9Ov67UM2$** zdsk)tEbrFPu~QlK9nR1^W2Bxc&LqZkMJ^xmXHK_hCd->FmxW`a^}IWeX0%Pv89>`$ zX#I4sr@FNh?N(xG`$5Mb;r*9Y<=xowpqI`Y;}+c4>Xoyf3*NVrWm8LPNC zG&fNLBx1Di;_hGidv1v~2jZ2a$h_&@=i`D#AtPaF`Ly9yYk9`{dRSOwg}Ho7VD*`u zexc$D6gjvi>MVN#5I&ZUmsj2VWP^O*=@Jl;%;8&~25C$l7iZFV@kYQE3t1{J9Fd;~ zW0rWWSTV)4^h%u}YXp(?MmFy(k^C7x^iPW|xD(+7s4er+i)pJUyIdyx5p#D{i@`JE z3vC{8%T4&i)}9c@b&^@RdV6M`ynHsi@9~c!4;G;`%(IhnGq3T{EhV^<`UHsWNAmK^ zghDPhbrVCOLR;BDRMAxY`28KzAy8rN1h^QMUxUu^>P=OJ;DSsI=q7x2Zf-8&ZbS%v zJjCttprf0&uWU~ZvMg9=o3+uJG0*cPYO_js7OA);oV($S9rHCDUU?RT6gYC{&x1-) zFhQvJB_dFsSl0oOfhwRT6#c;SgEiRYRton#40&}jn}Z;-6A-+Ps+!%nc6vR}bo z)xNQ0{fFi7AC|yH9~4kdwZa`XR>7%cGZH_8-+riza?x2@II#czV}wIq^4mXJIKJwm zM*p5r`his=*Y8#@KjLWpQ}!|?C_TStPKU{-Px`ynqo#kZLhz$WFO%Qu>GuWg|6`?S zYq%Jzb?}NE>I+bx8cOq?3w2N3b+e!( z{_0`^-hoil*tKhl>^=%=Y^R_{unU$oV_fSw40>m{ud(^*!h6rqkq%_}8H_8#We{)V3I8r*)f2YH2(}X+3Aq*)rt`^Xk z5XlA*hrOao>p7gI3Fw|viu+q+#Pmr{YuHgQ53rYUZcpUedLyo58Gnx580%XJ z8zQG`0t!(mvadBta{|0`wZk{=IAbdfZ8Pu1V!IF11YejWG(ue7qqmypVJi=p1xiU_ z%lCbhf6-{<9O$_n<0S7V`bU8exf`@+>n!uI@qV`=>wt}Mk|MrIlAQKXAt5e`A)Zmz zrWR~}R$8b>m_ahd{?3xe6hldz9?;O&>h`Ey`ZKHn6MkWqdA8JoY70hB9f2t_U4b>egw;;0&%Brd~I&N#Oq4C*C`jc>addp%v}6lhY!A((o}ZuLyR zrtZg*i07t|PKbC0FoSZK<-ox$lNv_gPCoIF)qHgpE+c&lqMJsRoAM4-m!BFVNWuo@ zaGswWQl)V7kNo!n3wCEKyVB;^5m4raO{1sn6S=-KAM2$TEPd&#$WWx+Iq#`xMgzqH zSEWM3t-VP4H1oBL+Z#t&Zsv!`q(=cX=~c~qhqKj8J$bE<<9JxHBC_-3fPFK_E}*vT zxJ@9~n)k%F`v9!>M?F7h5L<{KN0sK;Cf}?BU9&!eZy+hrum-D`)xaP9y=S7v3QN!n z;?AeCbV-EfGzLb)(Y$^x#UmoIYKRJYCk{(g=L3e!h%O}jl1U9=H=WDF=U0l#eKaz= zLe)z_ZFK`j=VR?1Jt5Yw_K=#)wQV)y338{A9KbG}Pf4il|I?hiOcVd9YxQ>;Oc2n8 z2mj7`t+$USB*b95vG=l`HHT<%Yn1B-8h>Y2GO*O_xTWcngpdxFE}takI_|~0xT=)c zix7uEcv{|IK~_y;2K&us>JxH-{Bf(OEw|42xxqaxitcpM8QR-eq%M$vE2z*F-N+MBeF$a2TAp4EiEP~J=8+t!uh~-2|U6g$xWpXPfx#^4KZG>Zjqe1MC zH9{D+{19FReg>433*NVQ|GpebXM0X&UY~s5%J=;B znFZB;N^AH8G(}RWRvDN3y*Do5^R@^SlH$6%nGV!Re8`%HWO%6=UJ%kmlAkc1;5Ul?j3!jk?rXd*?fg? zylH-!bLoF9_Yt&$@^%6idAJUBi{gOGAot|vgu3@aqEpL*#t;%)QTAS~MJj-5s zzY3ZD>T8i@YtlTtbn3XNvw>&qBYk3#&U2wQir+UGh;8AQiyi4Mi=Lw8M7U3lw7;xu zexOsP+;?0k58S0Rr|8a1`7wBK=Hq3#mkI6WXNZ*)I&X{GKbmtE<|%YD`v01QEiEYu zk`m~WPO9_eSszD~cbQU`6#>8wTrZ`BGD0h6|7waX3NW=ZCBrw!_#TZ`5J)^!JJUh^ z6M;4~GC~#Fd(Gid^nU|U|F7_E<^Og zQ_s!^`m$=?KBT7>r{9{=fV+<=%%gE)#g5NZV5wSo4KEuRju&$ZYoik?aAg@j;F6{! z?I1H~wsP3Zw?RMxv>T5^A2;4<)#-_wx{ z@5au~gWh1|G!PWn_xsL7$wDPeILh&E^1TRN2xCubx=g#8yhMAB(F^k@js($6t~ao^ zWbZA-$I!c@2P94ZWbCKbk2cV0dSgtXRB-k@VNP@QxDT(~3s^5Pcus$}_v-NMGd%BF zYV2A9d38V42albq^Sg7mvMk)JohZpUT zVEFNCv^GoLaneJ)qnPn2v?_nXJx}xLFk?{QjCcK>%Sd%|!CXEg6>p_hTUAhL4u?S! z?O&F_4SW}0u*L0!!%uZ>5gM^$t|8lFXp=eZK7=!D?di=v4uRsm;Mb=3lT-!m_es4L z9Ut!1%^eqV0BSej&3_~wg2`N^8~k5E_)0l5Qwl$~KX846W}(|*p78pzqrI#vt&;D9 z#V3~k$P$>i1e5CL19|U$(sGF;xg1}0rrmN^`5bq?`J6h|JTLZ6aIj*&CgJoVA8T19 zvxGXuSZ0HRk7O>E=3Pn&Bu4w&&oBV<=_%3)KfPLnyKgwjlBAEh_;ze3})33exbGjzU8P#tL(i%aIBh8Mp~A-aL|Cmu*I4yV3)!mqR zExNCpY@VWORd&pOMH2Mw_6?M5G+QD;g3LP2=tF4oX@wyR#kzs$PS@F={(!|NR|9~x z!v2cylU|1pQcltWICNjRYi6t60OMP|2TeDKyb;HRaV=Z@z*>#g*JtPeF)*eVsHB0; z20yLGm6g9pG>phZn%lELy9nAnt8LDnQy_-~tHcg%N5v*e5)Y^w)bm6^mt6GYwkb0^ z(%VB?t-Vpmqj`~22lp3p#gQe$y#XN{fAGh>ql6;DP2 zFfRaAD@0$%hf@A@^w$nU)>3AMA-z#ABDt@FzJ(z*H;K-7jxMjk#GLpNP2Vg zmkK!C)W~7FeM+Qtf|DxWb;xUA7qImUdH)pHF4o5Q{<0d_X!|Seyf?lK%df=P&FJtw zK$1l7&a6=)E8jgl$`7!sJki%T)7?4%TZXB*gVq!FL;o13ozj4~!Mb63Tqcu7y?=wN z(rUU;GW+- z&xE5=%f6k$khPB|(YE*Ap%;PR)I|C@hI4N_>io*N)yM}fIS`40=Gec1vB&!w-s{*c zQ@k|}GCg7diO`~)dGZ_7UH2MbcpHF9P>=ef^jAwLMQ6CW1jak@Khcbg&SvrgrQ2*K zGMk?w7Z@K$j(if*>f%%zTd3mp)0-T;~%Bra`nu-$LgjjD;x%orW3G zckt?E7i>kNtlaEJ;zFyvF8GrSPM2%F2-LaQF*LKCl-n1p(n`Tx@@9XOn?UYf4Z!LD zp;(9awik}Zw;rw}pd3d$VOj5>R_IU$y*#_ePYjlFYjy&fJEih^^K(^0&rXCE5S?8e|0s9oPK~i4Sp#s zgtL>cIj`l+)>RO#0cD}p=7*aF^>p%Mys8zCbMdA5So7(XP1eTmJz7`&kLZ_>xhF;_ zKR!lE0LTEa3^6)fM*JGemh6*XL)ifvvRB7}e=0@u1GcaCFJ?$SZ6CmnE!Y<*yxzxn z+d?t+MG&{vu|PGMR$ubx(@N+DYw48lP&{=arF@MwqscBe2KG1?0$^-;xcT@kp+U=tsFTx6{p_5#ewcv5v20|e7N)kW$tweQ#WYvER2|``pY$N*pjuteHA^jJgEPx z1JpUM3xl-?>G2ZV&D_Yoe87#2ad!fi-PF)ap~iF+NI_dIuw~4hMl+{s7j@T_A_ZNo zA#>etnw~!*_DblQ+DdHP^pKqktRC#iOs64*iI&YtmLi=uVLiUCev3)={>}PaWL|x(;z}_03N8J7`hDA|Eck-ys%_f{5v7v+#DqV6 zNNy{ySB%TRF2UtUJ*=tMM_nIE)+fUKZ%}z(GejT7o;LeHWEuI;dZvT=Ds@~*JJjw$V+8prqJhS)B@*7SuhmKvVSa7qRs&?Bv&xjdUkMlf! zFVp#7pl5WuKgKMWietwCRV};6tD{Jqy(-fb@eDSGT zv)1laU`r0WDLVxDB&`y-h|nhvGr!r5Gu{;058-=1T>cq z+O_?(hWS3_g5~o(aUK`**#f?N>`ou|QriJbKCriCtj|`X(+2?_ksC1GVuVeeKe5v) z|1tBBW398h_%A$smllSN1+N3TMvpiy{J`vuS|mg2g)Wbn%-_-I57dzhW5i!|^AsLC z#kktHeD19ZEPJrSP&+2*KAS7k84MuKWvL$g+=gviwD{dsyf@(f;1ydm`9s|(h8z!M zjQPd!r*!sPb3fKO>(mmIzcj?J`{Bn~6PnOZ_obrGIsAo;e?-jo1`rkp$v>VMugQ6= zApQ@09dQND+8MzOgx-1i7#jH9^|Thqr~3BTFb*Tas4l(WdEIxB$1lN777w^Gsz@SO za_0MjwGL`Keafr>u3#ALpD_0BJ5Pa++3N1>)+=iX2h5!Ua>dc{n?^}f++h8XQ4P-P z-2a}1#U=HRsDNbVtlE3KvT8Kh_|zo2#i zso6BkMfnp0FTO`l+$x|3G2rfxFIH^Z-)z31VC8+dNe+%$$I9|_c>Migdm0y3g59{A z1C!rW`6x-D_xito*p=248cp^m?2g=2e)lX`(u9a%so;E54f|#f@Xw_>U*@-kmSOZG z(Z2WFAvo>T(Z22!aG~OZ#%I}Jb0(=d7IpaAYr(wzVtz$_;$=zd5dB+TbyBbX2A(g4 zr7;8GxoH$>EC^4q96=KLPq6y0CvTCvt^Wq3XX55S(Z8HN&F?$Y9CKtW>nF7=;zg|) zMlbja|5lK(TR@^P^8B0`NJn|CS`5?k1iqE}-)bn#{|6)Q6v#5X=e)*?GVeizGZ^o3 zm3v*ZN!AFQ&;*Ae`N4APaj}Y938nPa5VKoW6d5h_x4cv$+F_G_)JSY>-ofxvcnFeTphOsLs0S-`N%wsbu zuLCJN@R@%&Wo+u03kh8l{+Wf00(Uf1r~zAi=1pnjCS@_@Zo-w7R;zM6I*6)^MtO` z>`+l~^2lVsi+(O0UjhFdn=k>ONiFy%{G4@HKhmq^q}N*z8t3!OfveqeQqNjVVVBxF z%yU2peh~pgmoWSQxnAIOeATmdtq6|EWp6ha!&OX8-y?+_M>tuuU`Q`~K41ol#1$hc zESz_Nwg-FWd%V3x=sv)~Jl<*v+OPBFr#YRmg}W9$Ltak{s}_Sm(qiEccc=*9AvuGL zWXF5ONU=vJKy`xY-wo>4YMewX6a}92j8;ozLDeakc=9DFt~{ehm0_YF{R`J(xu9pG{OJ<&Bp7Y9C%&?+9vI72?gnoX=T>vOx;%vPhh5h@UQ{WS ziQGFlnzh0C{z=w7l$vO~Z?U{Nlb%siD7JM7tMcY!`6q&(yJw0Y{pEICs8`26K_B!m zv}=%&vbhFag=v+=Z)o;4s~bemny;nS3P8Y}_GqAtDb2aR5OO~6-s78H7+^#5pKSh) zqTlpTY2i~`E4|tRgEQplP*@=nW;j~B^?m16m~NEe$09BKVh3AlpN|p)j!jB>dr!8B zslJye>)X2I+T+*AJZI$z-GAAN>`#!)><%VWnDB9u1%XTlEIXgFXYZkeO%aoi0CAJq zm@%f--q&}~{xBn0K?i-yq6{}g3q%m0KAYx(w+XbK1iGhn2hcB#vE0+DJw0=F9ezNWOw0i%ETiLtYhDJh5m2JhcoCd`0 zZRXZJMWrwGrL=kc{klBw(qkv=)a-T$sm_ml_ykn~PnZgY+P&g1{@m?yMR}V-L z(~eSlfx#*hM=RqTz)sY}G)lgQD`>SlN@FVw?^4fd&x@9(WrrP1^14yHz9%;tR;*h( z|6hp!-vit$>aaH_oK!meSkJQg9NXuW6ca8f@3qUU}93iKSe;y2JN z_&hPqiz^X(s-#OmaH~xWER{4}d3i!DMBm{<*f;UxGT#huxA0-C%Qh2eq3LH`W@y9M z)`b~J93lV`A<|}GiAz~4d*{}xNN4}U27lBHN(K+^I-4>~O@uxpQHa!4Or$z!P+BhVAXL-U+Jx z*kZuN3{aRm(qIVl6L)ss(kMQ0djh}Qx8yfiD?T-bik|6Xrl)(MSU4umpH|r4LiES%-XqvDP!YOSpDhKEzbm0B_Du*5uW;;7VyOu;coQ+ z*BQdht+0(S0MY>%!l7F20Dwhs<{ED8@ZA|Nz9S3|Aqjz$vKz0*(VW!9VwypuxqB=1 zAs$uMl<8rd8Gtw-B00Fq;W8nvc;zp~;m@ouJ^X%Uoqqm$KO)OCnJ@J11{UZ_D`}do zwJI+&2CGDJ-VAzcu)6Q0+LFo`aO;(7qr#8I!%>+c>6=J5{E&&{0maM#;QB{=_D}>gtCEv; zn)B3~V#UO?_`xYDDj%o0WvzyaMKaI^1|BzUjwKJIh>4NpYuu(2p7B*Mv8&f4!ipa z_o(5~S7tLpXsF3{P{x;1%8xBRkS`jYWDak@hmMH zP5fria4hsa3<-~OE4*SIEZe7!$WF3iXjur>oxqYh$04Q99drGMvwj9_zZy6hC}uL0 zcZ3TsaB}XQt%xgWn0T#HB{_AlW9XG*l5rn$va+!ec@+s&I$SDU4E98Ric?C;StXPO0Gx^~GvJsEx6Fx#h7(P$Y2hJWs} zDT25{K}xqcE)q>e8n!2^te*+k-yum1kY`#K2(fBfZO(I}Xo;2hi!oYAu!RC%giDs1+tu_~WAgLeKA9bRJEPUZ zG@W;>1zA+gPjYh@<4XxiN3m5&ACClLi)IX&QXti09InQXs*HU};bF;aWjqEO2d={K zLi;;h62g_a`Ts&3fu#UGhuuT0lagauMV6*kFCiL7GD%2C%Gt9pLY7E?kChFXE!ZNwc`n^-JOL8#I?U8NQ z*s1D;y4^{=-(pIGOP9{O`}PdfQ%^pK+UYWfr2jbEOen0)jd2(47=Ft$?t2CNxf0DB zo=Z*ovr1|{xLjM?<*8#rlKQjY6)TPC!W7C8)2eZwK<^~O zp#CQdUXLki!@X;wngVo4gC&Wd!h-0VRHGLLY4*;Iy1BqgD6w~K&p+mI39~7>-b+5b zRcRWj-y8fuxd@pi*|@;^taf8Fg!7I+dvX)%75VoZw`U(FPk!7=C=SN%9L=ar2eci4 z0O>zzJ8u6sZ3j=$^Z%s$Q23FGe#c^?>zH6GFc4k;U?4v1iQL-l%K8(l-kN7P_D5p{ zMdoMhm(&f}N3sciGx0dG2g+4X-1(wt%yKwrqAOk|Ai8$3CxK63K=9j(F+$$>)J4ae zP2u)YG8fteA^;jCY5*yj&fPnmGC?olB%l1uqLq=QZsiybJt|Yu9rAw>BAr0h2Lf5U z@Em=(bO$zxb;C~67j-!*)LzNHmc8v!X|_a4JtZ@6>ryc_{q3V@gK9}gf@bl(lQ=cY z{pg23gc#8qvMQyk7f;r~8a4~~&I~X_b{}F7WqNekc!F`?xJ4AK5e)({P~dj>Ed8|4 z<14$;(=_3-%a1JADfx~EF#2$rY7h`)APuuI&n59Y^d%6}v-MWD%MQ)e4V8z@iFM|G znc0Z0#Hta7l9xpQ`WMa1=$B;m;Nt>AlV6OUa&%$MT&{xdU+S1ZyRP(fnLp?@Mv;7y zjTGa5aC3Sv_*1_Y)qhdD1WZLHQSI;Y$A{o-HFfw@x}@kLZi|`U!SB_~le4S_*l-2f zdO_8=HQow~#Rm+Gsu8#4T*L^?1)_7)WJ;@#xCg+Mm36ovSU^xq?kef3N-|?`zHw6-#|GqFOKipK*~}kw4wb zt%p5_N~|weXlZ#U*07G?XM=O)o=sohqquuSVQblyv6iBF|0ZH7H7Ye1`}zlOxTP?E zx7?-pW*NeeQlbs8CN@$5C^@NztL%m4m{z#1{8rpMz}=aD)6i6^Ce+HxD-Ux8Nku{N z0lCYdP=ff0K5uB}Z;G6%LP@VeE_IyO45dFhD^ovQ=6A4c5qRkfG>^Jf-1M>6gnh%S zZCjV=OxthIVzJ`Ziqmzu!!T!xv{@q~^O!~S(c5l;{1w4cpExe!ZK55Rj@-RH`o9-Y zP>+lZTvp1=V>{8!V;kX|$n&WYR-`_FIlt?l()>tkeM&Ln5ghWl?Mnlx=*;5MzQ$g; zD)l~DY1whesD;O9MHLIYqoILZ7Ww_X?VexJ01TF@k|6B39uP`d-yx=Zo@@Pj09T32 zdZ60eRHcR&JxrciLe}|?V!xs!*3YxVWn&#g)AoBF=ia$hlNnbfNV=4*uQq1O5tN5oq=M&M+_o2{FIh7ahovWQE*)0T z;*#jq%e>n%@1r7kTpcL_9Ms)dZSWXT{rie-r=rTF349OS1@ZnoZzeHJvrn%Chuogj7ZhzKw#=ZQa) z0@{0 zlmWXN0*{F+0T6+#K8Bw*>3+^~XCqtWIxc^`EG8fMmoLB->Jx==8YZT@oSdA__MMNc zLO-CIo11rbcS~qM7`&=YUZR4A$=SpsyfI%YC`egZ70g>A#tT8wa=|*Zk6eBId^d?Dm8F3RO5%QLI`?R;6ii$B_`&YFcl44NyyTLg!ok1g z>g4;Z%`#z|VPnK$2NKxWHSSjMd|Qo2UWVbQs0MoJ0S7G=h!06+FeLVdJ|&D(AV^_( z?}NBl-=G~4CB^}c)!DWdL6wa4OP*ixmtZ-G2jEAZmq<7k(wzK<4Zk5_DAMGHU#uiU z4omKnBFh+rd0KLKfkWBvDk6DD#&%?#j&1RN;t-$cwchOUn%i_?^Lr`^HYI8hQ9+@A zUz*c&F}dJ68!KN{hMwlww%zGuY-j+5eGCH~DldRbkd1w+e9G9&s*qCB%@L)3*oa+c zIfLH)9kp_($jGv076%1%f7eeSL^pK#lqwY}ocb~&jb7aDSXNi(M} zC$h08vwOJoTX0BA%ASDsjiwMQJ(c@QD?NBwbU6f3eEJvA0}+PHTyy#q*jBE9f#C@U+vr<;=_H7?klXyM<<&NkVF zf1Zod&b@z=CE#^JoRu*Yvov@I#O2+4nQ0ceF>Avvc)?u?gefts1ru5I>?T{5ov>eU z8hDN3?T>+*-y+wu2kYtp`V;qD?P7ecw%V&0AkE6H+pGsZ9Adw0od0La%!;mlDypUN zpruprp4AMFl`C=pQTh;6)-%}QXPlwezE)F-;uUNZ!1P$6A=n5}Wp%^}EL){2Qy$tS zNz-p`zrD9L5B`ja3XLRdsX9dl|3sx5%+3ZXFf<}HY%%}$=4(Sp1DMi0IHDWzE+iNL z=F=$L+DG00V4iWA{CEQsv=*-VmdahC|3kIpGQ@NEjDPNvwayyK%(n`Yg#AzBSa@*(nZOXtOz%?+=6vU0z$G6A~gD zz=_uRv{iW^%n1iyDHrRB`1rfR?(_kXF7@=Nh(w{f0OxMMJ$e7bhvYZK#MEc(dT-w2 z-edt>jI}Whvfnv7b6#Fq+290;H@Lt78vg0~&@#oY0D8&DDihO8zQDsx6e_w`Z?cz| zI8S`<24D5(&@rxkv;hTejnPxZ5%fQ9f|-KCQV9%Rwy1+j_es)`Xn56S-MGgX&tsH6 z?H@>HI-^ldJh4)KQo-e}G_8xN+{NB_2~#Zg`h|Fb4=+>i;|Oqp!Bgi>8(~=_AzH)5 zm?R-ebg%l>-iZoZz06S((bxVVR$C6W$Dv*WR6Wrx4}K|e`aV+z>3+Tq1(Y-Zv;yuj z`iVSG_qW^$yb_%T1U}fXh<$osuqtya ziE%jV`^;IZr{*SiO9Fmyei<6CA>juMO~gIenBYhpsX@Qr2qSPaTKt zMFEm-az$IypgvG}bp`mwd*e`zyfDF0<9gTz;Kde*1wgu06kV-!*!5A(1p44O=lm)| zIAf*cdE(@t>gRI{9_>CZLzAE8|A)A@3X3D?)D*#D^|WYPWa!|NKlb9L(4fWXR?9EEha$LYg8e{|Hh}`kT59$*(E0a z%|%2;#>RK`kyb=xW7xAwyXI$?A;M!ShliWrwR)AQT-;7_e0(7A4;R+x7TGC9f)j72E5+zs}w&Sh7vhjIMwLoh+Nm4zOOv|;kexvOGGWQ zvQoDc{~KaZGkl(531gvLwj^ypkhya!C>l=x7kIaNN?rw%v9)oIxR%-k<-45T##c59 zd~Bc)DG9&454lk8`9JKUsJ4<@L`Fa}?RNzr3+=;t2?d_=)Q$AZ$EW=$a`wgaIFn+E z|DrpUr#WkO{w|mq$=Y+#f7ba=IT0u9p}IdfpBgUn%%g4tbXd+SDIe7^n5N;2<8#vll@?)tGr0r8;AaUbhnwfF(slszjA2Ka?wgvF)4*UowRsTmh z6YSw@Ia5;Fp`3jc!2LQ5)b0J}?)c!X|CAvO68+a8UdyQlzrqz(%)!&K%@LR;h`xZq z;2XEu3*5W$!Y`d(;jyu@0N&nm7@my*%RIQcHaHA$f2Ev{=jLDnfAoPj6j4n90-JIa z^O`^$GpxDUiN^0H44U^JzXR|Y{oY(o!!Y7wGvU*Ua$f%hIlPDXl7GX_LDi^@8C9)Jf;I0FM zsWTW}!mUZ#Q&rlk8!_MTpgAr%*ZD)Oyv8s@{b`*DsWJ0b9i4kOEivoF3oF1gwFGWt z)OlwHL6zVo1daUM|K`YOCH)x{G>x@&tow`p!_2JHK_78km(v&i0J;DIt6LVQ7{tmk zxoxJ$Um_X+ODnOGB)Paph^c9h^+$;F$f^FeOyTtZGPpe_$xMqDPZj@{+*JX{-N^qw zHO}Gt#eS%}yh%9TZAu4xZ+Z~Vq1g^iCJnAav zmWmOox82GxUU2P$w+MJH6JJ0+eK$H?Ew1&-pK5ccKPMG7Z{TOGeKB@UDQ4=(rvtD0l@yZ>D;rNXLn^grsQLMzjUD>CV~ z|1YTwP`H`~aJ-@wEAjk#=K8>GTy?jiGk9MH{~taX7Z^H!jERqMfS+`-$V_hZoIa=+_VOt~X|*vV+kMDA$M zf3w0un3g&T?^bH%9Mli8uudC}{s090`}gl+@8Z&PW~?0AXtI_`4IUm?CL zJ+>HTy$Lb>Z5a_zpyOkY!}UL^u~x#J6BxK*V}KDq|J(ghb?Ew*?eS$V4m9(wi3Kzb zK4)-$zB>QUprWukwAN2{&WOO+}D}+g!K$ z_8a*B@m*i*!xBpWx`O`KF#+cP|0~Rp-Gx9vu^PQo3iN`5jk)|CiLC67lsiFvy~@sP zbzFN^Y}9L6oP(LJ_kR{Yg*`rG$hZ84hB|Zm(Vw-Npxfoz&nv-Q448VH;&rGK zjcV3#?f~=q((iBc^=spOU^8=P82S9jt^Aw`q(4jChK`PIh8N>}!dGt@nAXpd7gTD{ z&i^In*`o|14t?SQ-5<8=vjdAPC@vC$LAmc)ur&sF9LCh_|JVzFla5nIrlrJf=Zzi>QO}-X&$gb2apl&15*j!@UdsDoVhgJcS|;rKQUShQ8~ALLKZ^JC;^1T~U5l{((jSwWaU26aPbz!?<#+ zzcidIqR_Z&dSOkT-ad)0wKy|@wog_m|NLnwOsnnAyotUYaiq^THpA0;a^Zqtv|`C& z74LqPByYR!z`t?qBG&8H3BwJ;f}|C=A2r*p!@!084pSuLpr&(XI0{{qKE|wD>H0<{ z3$=K|Zf3ay_J2{1?Ba@5e3#zh(~3RmU>&nRtn56g|MZ>TaV{r$1F4YD|B(9h`m&%@ zPXO;`Q@QZwnSn*lIx5AmFItY;>5NqkdzAv?NMI&z|I3)neYzvg>RZnT@YOw}011Z# zQfcpuN6=MN$G&2+q zs5LtpR{1?cT3inkieU79JGWo6NTrC)=KA}0p1X8EH|ajX7E>3$$|z4rcWWwvr(>^k zpHoh1g*+Fm%=51z5)!1=+B&uV%{+Ery<)M;u=RGEUnHQIApNw|<3l*^V3|+4^omH{ z=-QjE4%>%8t*t%B!hZ&4o+2W2b)Jzy61_!NVtb}n4D>c!lElbp6;Z*87==WMlR0Un zgUi!0lD+1I$+86=TQ88ha}Qs%ij|YliRBAK2atrH1Ez}ay?}PXtg7w4)|2$;4MP=R zATIQgw#9rRqM4UD+c$ArFPFNmMk<}#f$X8m~R98{jhgU zW7nz-Z8bUB+q;MAO+5~WhZ@#`+uj8^yO~As`kM6ai#8s9@Ham*^u~a|cd3t#9M&I2ZMhs+Mo7;E@;23_sR? zzlikTUU3AIlZF4tX7ia)Z@&rZ)(LsqYIgeK`%bDK+RH>f%vy-7@fHQ}xOkSP*hfV6`d=q)_Q)%aRJufc5t4ck;?IO|j zyvpvG`WE$Lkm2Dl^{{_v49lZwdj-N?tp48XP@$$5%ul!bzgxT)njv+-N$}>{R>7yy z|J=2Vv@r)~9IDYmfkNY=2LL>}j0;p&_pm}9>UeVx4T4z?$R;B!`I}so z!>mUR%Sldd`l@T`E%L{{y9#-*_x1!95ee4fkqLp+)yZjYXQ+%`yu88pfSzrzw0uI) z*A_ znatbQW*eekS%IrA7m^4;AU*!dzF#~qChY(&>9P}^eX|mQpc6%}IEY^ElDafp)V8JF z`p*{{Lam_!%4k>>QG{D*1%vL#5n^zN;Gbbb1u5fnMdxT}TMGni-N8%hHy4{Q(@qiW z5CQ@7O6k#vsuAVSVQam;Gh=V&9ICx>5#tQ(Es=>t-1%PjKoS)gN#u_NtxV+4ncPcM zZ6jAXmmWwqd2Sk_th#dySS%cq8~%CnhabF593Hcn?494viksj4a7a( zfdU-HBKOy;9D|jXC8oQzUOLYW*Er5S)f{cJh1{-9-HsM6d1TG8=h~Ys7K)DljRTi; z-#w4t5>-x2xA{Ku^PE)}c6X^3m$UjR&tJN1V~egEn0@GB;*^^zUOx9mvMI^1K=)2m9p;*zV~nwhHBM;#r5 zw;Od|#4Vcrbkc?cgj-BS#dPmGy8d%eJ5-D+qsDuQWANvV;%vL4|0cFQFU0zA*>K@# zvspZ29~v+eL%JiUt@ny%JK@ev!xDS@P2;IBAOKumk?2%t=pnrZfT_h_#^#5(`@eX6 zn}E+(2#P|xCHV<}(}l%|vX|k=9DX`rsl-5@Cx2u*6_z3s7ZrtLqDtvIah{R6cb{^x z0&p=TvO6kLk;y}3s%zf|U=WPw7?cIX&rH-006TLeWp}iCW5nm1)9;BcmQY^2j2WqHl(5poq0E^t3J#H z3h=P?j{_it=IfIssAKQAy|Eh!gy;6Q;6K9&ko={aTM8!fCFZRN@ly)zA{yRPE~qm< zlSj{3gw0lvH36^$IXkg3`Y4W*sjdP5x|8;00ymeST_I|t{k;Iw6XgD zy<5#90M?IT6eIn73-wQbfY`L*(q;HSBG zy>LTa+3B$F8?WsmqA${BV9k=>cLPJm0e^9W@7@&882{LR4)2d|^@lr8o2(CMh9A!= zW}tXOR&ZW>OXynve%*ja>i|WRmJ^F@r|^Q6k6h7XPPc^k3bE$O9; z`r5WD=&a|^RL*Xh6o3_7xkc&Us@gxiXt9R>eRsZmlZzm?P3ZRT6%Zo*{ymvIok3vX z7h&^{!nT*xA!&_?^ouYJY_uDdibEI)_6064hv^C-f)|92G8 z{ffWcB6r5;&!0BW*>qlc86Bq&J4>I#3 zjRu0Gq-2|evvZw*U}}`qFAQ$+!CQ=jqST#3n-y6#wI5aVrRiO>uK3NTOU=}RD~Y#) zx!PH>QA(mX1@wc|aHe}K>AqSu0mDg+2n^?d-UdR0So#3;@PdaIw zPUM#Qr@sd4B>w>yx3LlGhlQk?HQ0-52?Of(Jy21~6hS!snVzQ%e3HJ1VZ@LM^!-7g z*xio!rSo`xXU8Kc^E`?s_8wSa>S8;yE_j!qNYA(iYn zze`b0lRs9`o>!l$UM6wsY2A*t-Ui}0`jy8Jy(3BOh7tjtOD)IGzh1=T)tU3NkZ$N! zLe`o|3=>sWwrtE>{#p%01RLZVdJdA10SxqA49w1 zCu1^AXW7VJv1b%mk@?}_BA)jxg`h?`ityD7&e~<5^d)d)6JCX#sW(2KnzgM6j$eQu zDh1KiNg=9QrTb2TRom0Rg%EMN?_64f==_}J>bi?U>+UaCQOYl5Pv0mz# z9X<}yq;*m&3%CwyXBUtCxZbHy`84Y)tvzq5RcC;f=aSI)YNr4~4-o?WAD((hAqgy7W3upEO-x{)xktWWg6k3RNWf_`x=qQjz{wwlSR|l{|NC9}b zSRp>|`c?%aAz*Ax3Ig_`)4%Z=;WjDwx6;C-`EtR!IEckv*PoJuHi8raQ~ypKFB&Og z2Yj5!p@?=r4FFO{_JJg*uEK`_o8{^l_Rhz=gA&+E=siWtA)#@L6FVHRylsAIEw-ow zS@g+7BI8JBctw%+<>DHC3;1PLr~L_T{Td0glhClrATW<+XuIS|(Q35~gF3UJ$HTB@ zcr{T@O~aE|;F%ilSo{Ua>xT6E55wS{;Uo&XS%HLaM}lvf`~o*NL_{u6c>nB~<=-kd zI=^guX7aMg689j$px!vx^yegL$=vQ2FoXeJw^aEfoL7>36E~1FuG=R(|0CUc->NBS zV>l(V`9t^q&@Oaybm_ly0oacg#N*hYIh{OMj`_OKdykAl)UPY7cwEO@MHfn(I| z0hE;C*KK_W=IYhqEV@TnsVrk|#<3OVmd#2=N_OC>~CA@Q?-xAp8o&S^R@!O?76WW%*)$? zbNrNg3Yi=w^VB2?X15QCb9OU1dgEdi81Yb(l9Tgfq6pN=G!8(ShvnByjvD zt2Xs1$;ni-wD3SaT*6_+q75Da!FRJ>ZvNDC^Up6_fuUVA3Po=SGI3^mZylG{H{syC zpc*l+wFlZ9^u`GDiE=40MEk_6~3fw3W4tsF;Wy_9sz2qnW z+}QI0V>~lgnF)z4(JH6?P8~zW+I>#_|2$|JpN~ab6+i-S!X=gFjuxDb1i(WL-+$CkXeTD$>ayer| zSpw8Z1y1{{Yi(m}-@XSCG781iraX{@W{!jcmf2tZfSNdgpT0>vIbP^F-&=VsKhD!l zWWU4J{APXdw;8oI=5aI&4J6w$%z+KDv7Ywschh#}rbMoI{*L|al$%{QsbyRXRboV@ z04Lsp=Qp|yg8#ZR?{(fkg3}<~Nk_RQ61ru=kDeaF_ek)0l?`bX;%H}X(rU21_{cm? z1xX6D%t^?MY@z-V*r?XXLPXyAb{eES%`Ahy92Lhm@d{gIvmZWf$&0ML=exiYz`VWm zB)@-NQY3jH&bJhevsyRh-UCkU7ApXikS9arsoOLYvUH5v5swP*AhD3CXjwY3+~RXq z^2Q~2Q*npPXgO9f1nKGZ#`Y|n0}HZpxI=MFq>&>6 zDNMOGrgv(?D0xq6MSqd1`W*Gs99YC0Q|_)Lml2A3bfn~Iw`aQ2OoLKDFB)qMrjQ<+ zKE@VyW&Ox+ZOnO)w@mt@?XR5DHw#P)Hm?+W1?9Qd9>5lp!?zUOp;WH&7u3@$x_;4fAg|NCXIg0Yg41hkkG*kpMt>~4d#}&J?>i`aa}O>l}WY~W;mEu>NiWjn0 z1^zz!p7Hc;m0CNC(;ike(T7z2FD;(RSXh}4R<#RKhNcqPtC12ESl5}nS)vKF2Fh9L zrW8^&4%rW$x2GGSnwfav$ak`uF{H8Pgj-MY86$Nk+@+e5wYrt1H%2>u^MbpU&|})K z4M87njX!*_bv+S8H}n$=6A+M=(xuryK?x3SARzupCXCrn;eWF83p?{;+%GQQo}Vy^ zid*p|mOha+-5_!zei-4Vrci%1!LR!{%{HPaQN?Y85Y2bD>B7245i1l6bfZIdqbRx%UT@wFi@j;cOA>#Yhe*5NQP|J|noc1E=g)?} z4|((1f+s&oL7$hz8E3;&L*a=g?FZ{G;*jrL4EAb_t-39L2R(;rv&BZm7U|cx_3c9o z7{N(lJU<&EHnM)OE)*}w*gN=^T&&R?HJbkv3bAT?A>|f_;?0VV;)7thES>pq5_}c7 z^&@r|Cj{y416U+;m%iqRI}G?@#WY#Fsb}hK5x;MzBd=LbN&kkL>qBSewRaUBySJCq zu@|}vtb6(BxQshH zk<`SvLunq;K$`ScKqnot$GYby!m;dhUQWv?^W9b)88fN&zvJ|Nd5<4pGT}QJUDV`D z4|02R{Ej5n1$VEGM3rLzlPu^|+%E`8R<$n|iDKyYq7su_KyO$kPXCuouq0#<$e45FxxCSQ|8#XkLMi7OdX!x>Xj#i+NlDvJN z*LfiB%Bxd>&`n!YQf*zQGkYEwZ?u6Y=x4=YgTbdm4kd;I)%e_VAMfw8q%X}N4d-e% zPYHgzg-w}An|_6fMaD{_O`=-ROUsZiw#c_9S`kq^&J0#h@a4OS=TF1+fj`kvS)z5g zOWh}X)N}QOQW!$J-Mf|bZ#@(b7=ONAUHkHf{af3v95}n7izu@$HvXp zfjJL&xYKS*x-GL84e%{`j(E6bRn_tU5^LF{k8)?17I1n zXoCQ6yi~>l$;6zB13( zc(8-wGhMy|1_zawGu!A+-#Zn9kC9Y(Tui-dft}L<5M7iJOi#ks>aBLTRzJnDqFIJ0 z#mSh{-rweRnYDe7QfQW934T#eg|i+6s-@q1n@9*|$@OJ9iP21C=R+4Z>4seVFa)qf zH$RUWUNyp=DgK_Dz2lm8_+So0$p>al>3-sfCKAT0S*(<5cahi^HN1KzI1?O80B4MK zMYFzqW2o-vgY7BDXusS@!tr7Hu8gD-0b$#4PNG}?_(}82_eJqDS#wRk@32p=rjRWH zozBa@ZZ-Q-IE(pC_~M&QW5E`Nc#1nHx(^ni3x>`!*g+#%k!LR$koj5z8-Hs>?s>mH zJooa!3DUSeKU&=8CI40b?st3;K$^aMOq4^ABcKID~8p zFV0DG4t>SJO|m16;|m16usz*PN$u;#EobGvn%B4aUiS_O6$XxE5X%9>p+;+n>)9(FPP+dWsHLTR4f65U4;9 zMm@ZF2$|Z2IeGBi+yBxuEy=5&2&3qU*;6F10#1nRjaqX8Q&0?cBo4&*n-Z6rIWvCU z$gTz~pdPWQHEnvy_V5#Xa0a^0NArthew}}@S1q)r21FnS<0`&CPwi9kC`mX?SLb2F zM5l^etnbb&HXIOH(E?yViJDn9oYy#TDWaOe2&x-h*4$> zVRbh#8cPrl+XVz<_EOR_IpgSRFhC-_Kf@1JkxIBRw|}qXu}8pwHZ*LWGJZymc$@xk zITGA@*-8~N+M}OHJki^}*}Bcsvx4yxX6vdQH8Jn44^ZgsG5Pz)MwuXuH46uyyij5T zgn^lDyEYvt?RCHXQhhc<{^z5g5&?^i^6g#rTuk6--#;#FKVe_gO(`^^N|e9_yriV7 zx}@cWJWVu=%1I}DX1Jahm@(Uv;f8r-@X#`0 zDR^ys?7++fM~NQy>G}C#97-Iz6QiSjAS}iH;AqYjsM4DmYHiL1<6tv7jw$%HTqR4h zbzDLLr#4?K)5Y?6$R?l*S2p->I!t?1l7UO!VzH` za`O6ES!PL*R8d1&|BqbR=XX(KYmUxnNjAvmp)`JGcmX9*UsnpCqSRBKka z#yarXd!V5@UC3@9IA>*lYmm5BC>t|7Q7Vwr!>i^ltLcj#AUQE)9t=kU1gd=(MIW++ z!*l$#Eqjh!g+%=9#PN^|ZoTAXE5c>DjYvhOP?~SH%0DrrJUn|K2J|*z{Q1i?Ly!F7 zSw5(Y17UM&{+X$`Yk{0WRU^-m#G~~JJ?wezueeajbdT|?HcM$jD+;wGg8tFhQL@Mq z{Z{#93)*!pndpb%?*6ozIE;-$7ImpQHMrL}4g=x}lKbAM>*TxHtQ_CYM4yNfrA-^& zWlgr(jCM*>aAE7kjE;CH4iYxuB)SB4zW3>Z54sFMl#%jdifSb>3q9+Ps7t<-?Djpd zMxT4;Bsym)#MUSDyIOwSptU1bxM3Xc@n1DTF)Nq&PFASMk?q|C{L<H%^j8qn9lQiDZOu{EzBmA2HO0KH5 zedrB(dW<9T%PZE!>%jotK_)b{fNm_lIhbXA_r=C{xUHtIrEtL!oq~d5_LdP#;OV2S zeQt9@^uOAYb(Z8YueuMTO(g6UNp`{{xe~r`NoIL-GlqJTCWS-QC{B9?7xh5FGRmtm zG;Shk0cqPNoAp;$?G?r@!xj|cx%D-Xn7F&RIgC>4g9!C3*a$0}CSF)&#H-8h-v0jm z<>L0X571mNPU$rQ%;j~*(ZB;+IM>~t+=9w)whTf$sh6v*HJwr?5)@(z^9=4mZ!{Vd1jTwRcp=l8F zF_AdauGqG)2b9c=ws83kIMIQUsmZ1yOjRdeb{<|ZiUwK*QCC#pd^9j{q`;^LjN}e? z;F`ERr+ZYEJd~~NzmGACM)oHy!b)55Pq1ixx=e3vwpDg0T7}^F@p_~{8#gssD4B+o z1{fKk>|2iiB~rY;a;y(-YQe2&HrwShm^JIdfb_jK=lJ3HWK)Hb@+3s5KvMPpz99KQ z?LIUD=-hz)WM>y$rvb*qLqGNeffb#XtK%Dli3LFMVl$+bB!pwFw1b7TFb4ZymoN z)m}zHd!?)POhF)D^AJUwTA>2(a~;5)fp*CljN9>>jOpnmO`is?N)&}XJAe9*>*1@~s# z@#h=@C=Qup(?!%wka=Klzg%x~2!{>2Y?7u^qcLB`s#5b=qh0qSwBHQ4&*{2CP~%!IXD)KDd(HAS(2s^4`+H!8^N}BxFixqt=j(Ux#v;)S^0AzVOW5Fo;(_IS zKu!gP$e@dhLIJgOcICt5P*2Y}())K2?PrDNxtpNecwZJ?F_VAfu899T6F0xquyjpenlIu4YB|@R+Bshp6qWdv@yRDN(jE(HPh8s#JzEGc2eHGs7o%|-SpxcKAJ9kI zx?BhAq9&{aEY$`=VaMNE|D%T3ETS`>;G_8vPZS{J1ZbP+lu?6`iD9?Ke+q~5ZeN2u zC;}mGGMCwh4ea~Njs=p`8!fNAf;Tjw+Qhn9@8V`EwRxsLkJa005o2^!HWO!3!ebV;$J(txZDwH6S#^$oB%X;gO|cKrM6k0wc-j76|j8 zy6oYGzLv=K6k(5%bWv|`|PFyfMpM9O1A$+r>5C|j2 zA+%{pW`>9e6UyVtV`OT$&26-qkkqqzb5~QAaQn7!l%zkdWRCFS^Nlzt;M*VCE-WtD zB|3vgsuTQ%ioa-_qJ(Dt9+T&&M|XGVFj5IO%qh^gnbRD5Pwe;P0)wIMabyAt2M

bVS?xbyQq-X*H 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űUp4X+R2=zqD})*)aX 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

)yYAu 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 literal 395711 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 l7s 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¥dL3Y9fXRWw&{6(uG#;X&&otD~CxTUi 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 z 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�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
fRjiz^w-f-gcA%bp10~=n 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

5sk)IVkA@|T>;R`dZ=3?${FrEGCFpZ=P=an zszr9bLu7cwHNt^SYDJK369fIZ2f_7wX$)JK5Rp9|zKhM?RoXtK9**(MGEO$@H_g)4 z(Fxl<3krpiFIb|bW9RW7)=#)v@w_IR927w`9mgOF&d-14^?-ng948{xm4_q%r5yfp z^;dRIPDid=ctk|DW|q7(;#B-*#NJ>As0+so<*dw1Z&qwAm6iKCFnh)`PWL2?Z3=og>rJoqwU@fbGe)Uj;oB@PF_Ih|%9l}ZV& zVeuu!h_=a=ma|0i?xS6$-+uU@3|Mt2siJFcX<&iPK``!j@#SeNtHd9zfPR^c+p4Ub z!6bg*QEW4=tOS%}Cm5_4n#UmgBN9}0;Jve~9t zzFyY+kaWmW)@R++eV$~VxNTjB*L!rdp({Cgq7YVkHfU|-e6|E~k+G&Nf%+Ch$g4U; z=0~VVO1aWvU1dVh=7gevpJFAL67E)u)fP8`NsH4E5rsHyPymlaTD;#CAvZFe z?y+Lc>b9l6_zfo4X6ika#mS&%;{PEToG$&_X)9Qd4sp@Ux>t`nDE!bk<;USqEB1Jh z1y{3!+3%kG`aZ+z+_ksXW(`!>A_03DIyvSu@7$i8gc@=G^V1X=GQ#}+vp4=XKWuA` zT0i7xkvtplZhoGE7Oh*8*J?<|aLLiXG5AQ4L_Fj_`(_y18 zXbx=@9DZsZ1Tm$=V&T{Yi`vUYYTR3>qjo{Ap&OAW`ITFLTcfBAf(+y!s< hZy5^Z4)nwZ*`?L|+9wH%0zV6RsG@PdOvya-e*r$o;<*3- diff --git a/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm b/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm index 44b8067876..6c9f12a852 100644 --- a/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm +++ b/modular_citadel/code/game/objects/items/devices/radio/shockcollar.dm @@ -2,7 +2,7 @@ name = "shock collar" desc = "A reinforced metal collar. It seems to have some form of wiring near the front. Strange.." icon = 'modular_citadel/icons/obj/clothing/cit_neck.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/neck.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/citadel/neck.dmi' icon_state = "shockcollar" item_state = "shockcollar" body_parts_covered = NECK diff --git a/modular_citadel/code/modules/clothing/neck.dm b/modular_citadel/code/modules/clothing/neck.dm index 20324516f6..f57e2ae530 100644 --- a/modular_citadel/code/modules/clothing/neck.dm +++ b/modular_citadel/code/modules/clothing/neck.dm @@ -7,7 +7,7 @@ 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' + mob_overlay_icon = 'modular_citadel/icons/mob/clothing/necks.dmi' resistance_flags = FIRE_PROOF actions_types = list(/datum/action/item_action/zanderlocket) var/toggled = FALSE diff --git a/modular_citadel/code/modules/clothing/suits/polychromic_cloaks.dm b/modular_citadel/code/modules/clothing/suits/polychromic_cloaks.dm index ade6cee3ba..5cf2fccb92 100644 --- a/modular_citadel/code/modules/clothing/suits/polychromic_cloaks.dm +++ b/modular_citadel/code/modules/clothing/suits/polychromic_cloaks.dm @@ -2,9 +2,8 @@ name = "polychromic cloak" desc = "For when you want to show off your horrible colour coordination skills." icon = 'modular_citadel/icons/polyclothes/item/neck.dmi' - alternate_worn_icon = 'modular_citadel/icons/polyclothes/mob/neck.dmi' + mob_overlay_icon = 'modular_citadel/icons/polyclothes/mob/neck.dmi' icon_state = "polyce" - item_color = "polyce" item_state = "qmcloak" hasprimary = TRUE hassecondary = TRUE @@ -13,20 +12,20 @@ secondary_color = "#FFFFFF" tertiary_color = "#808080" -/obj/item/clothing/neck/cloak/polychromic/worn_overlays(isinhands, icon_file, style_flags = NONE) //this is where the main magic happens. Also mandates that ALL polychromic stuff MUST USE alternate_worn_icon +/obj/item/clothing/neck/cloak/polychromic/worn_overlays(isinhands, icon_file, style_flags = NONE) //this is where the main magic happens. Also mandates that ALL polychromic stuff MUST USE mob_overlay_icon . = ..() if(hasprimary | hassecondary | hastertiary) if(!isinhands) //prevents the worn sprites from showing up if you're just holding them if(hasprimary) //checks if overlays are enabled - var/mutable_appearance/primary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-primary") //automagical sprite selection + var/mutable_appearance/primary_worn = mutable_appearance(mob_overlay_icon, "[icon_state]-primary") //automagical sprite selection primary_worn.color = primary_color //colors the overlay . += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite. if(hassecondary) - var/mutable_appearance/secondary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-secondary") + var/mutable_appearance/secondary_worn = mutable_appearance(mob_overlay_icon, "[icon_state]-secondary") secondary_worn.color = secondary_color . += secondary_worn if(hastertiary) - var/mutable_appearance/tertiary_worn = mutable_appearance(alternate_worn_icon, "[item_color]-tertiary") + var/mutable_appearance/tertiary_worn = mutable_appearance(mob_overlay_icon, "[icon_state]-tertiary") tertiary_worn.color = tertiary_color . += tertiary_worn @@ -34,7 +33,6 @@ name = "polychromic embroidered cloak" desc = "A fancy cloak embroidered with polychromatic thread in a pattern that reminds one of the wielders of unlimited power." icon_state = "polyce" - item_color = "polyce" primary_color = "#808080" //RGB in hexcode secondary_color = "#8CC6FF" tertiary_color = "#FF3535" \ No newline at end of file diff --git a/modular_citadel/code/modules/clothing/suits/suits.dm b/modular_citadel/code/modules/clothing/suits/suits.dm index 4b9dd131ca..25b0c120e5 100644 --- a/modular_citadel/code/modules/clothing/suits/suits.dm +++ b/modular_citadel/code/modules/clothing/suits/suits.dm @@ -8,7 +8,7 @@ /obj/item/clothing/suit/armor/hos/trenchcoat/cloak name = "armored trenchcloak" desc = "A trenchcoat enchanced with a special lightweight kevlar. This one appears to be designed to be draped over one's shoulders rather than worn normally.." - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' icon_state = "hostrench" item_state = "hostrench" mutantrace_variation = NONE diff --git a/modular_citadel/code/modules/clothing/trek.dm b/modular_citadel/code/modules/clothing/trek.dm index c6b0b80f22..b4ec9fbd61 100644 --- a/modular_citadel/code/modules/clothing/trek.dm +++ b/modular_citadel/code/modules/clothing/trek.dm @@ -15,7 +15,7 @@ desc = "The overcoat worn by all officers of the 2380s." 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' + mob_overlay_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' item_state = "trek_ds9_coat" body_parts_covered = CHEST|GROIN|ARMS mutantrace_variation = NONE @@ -44,7 +44,7 @@ name = "Federation Uniform Jacket" desc = "A uniform jacket from the United Federation. Set phasers to awesome." icon = 'modular_citadel/icons/obj/clothing/trek_item_icon.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' icon_state = "fedcoat" item_state = "fedcoat" mutantrace_variation = NONE @@ -110,7 +110,7 @@ name = "Modern Federation Uniform Jacket" desc = "A modern uniform jacket from the United Federation." icon = 'modular_citadel/icons/obj/clothing/trek_item_icon.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' icon_state = "fedmodern" item_state = "fedmodern" body_parts_covered = CHEST|GROIN|ARMS @@ -142,7 +142,7 @@ desc = "An officer's cap that demands discipline from the one who wears it." 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' + mob_overlay_icon = 'modular_citadel/icons/mob/clothing/trek_mob_icon.dmi' item_state = "fedcapofficer" //Variants diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm index 62145616ad..0fcc904ee2 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -26,7 +26,7 @@ desc = "The design on this seems a little too familiar." icon = 'icons/obj/custom.dmi' icon_state = "infcloak" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' item_state = "infcloak" w_class = WEIGHT_CLASS_SMALL body_parts_covered = CHEST|GROIN|LEGS|ARMS @@ -36,9 +36,8 @@ desc = "A soft black collar that seems to stretch to fit whoever wears it." icon = 'icons/obj/custom.dmi' icon_state = "infcollar" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' item_state = "infcollar" - item_color = null tagname = null /obj/item/clothing/accessory/medal/steele @@ -46,14 +45,13 @@ desc = "An intricate pendant given to those who help a key member of the Steele Corporation." icon = 'icons/obj/custom.dmi' icon_state = "steele" - item_color = "steele" medaltype = "medal-silver" /obj/item/toy/darksabre name = "Kiara's Sabre" desc = "This blade looks as dangerous as its owner." icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' icon_state = "darksabre" item_state = "darksabre" lefthand_file = 'modular_citadel/icons/mob/inhands/stunsword_left.dmi' @@ -70,7 +68,7 @@ name = "Ornate Sheathe" desc = "An ornate and rather sinister looking sabre sheathe." icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' icon_state = "darksheath" item_state = "darksheath" fitting_swords = list(/obj/item/toy/darksabre) @@ -80,7 +78,7 @@ name = "Dark Armor" desc = "A dark, non-functional piece of armor sporting a red and black finish." icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' icon_state = "darkcarapace" item_state = "darkcarapace" blood_overlay_type = "armor" @@ -107,8 +105,7 @@ icon = 'icons/obj/custom.dmi' icon_state = "zombscarf" desc = "A fashionable collar" - alternate_worn_icon = 'icons/mob/custom_w.dmi' - item_color = "zombscarf" + mob_overlay_icon = 'icons/mob/custom_w.dmi' dog_fashion = /datum/dog_fashion/head /obj/item/clothing/suit/toggle/labcoat/mad/red @@ -116,7 +113,7 @@ desc = "An oddly special looking coat." icon = 'icons/obj/custom.dmi' icon_state = "labred" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' item_state = "labred" mutantrace_variation = NONE @@ -125,7 +122,7 @@ desc = "An oddly special looking coat." icon = 'icons/obj/custom.dmi' icon_state = "labredblack" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' item_state = "labredblack" mutantrace_variation = NONE @@ -144,7 +141,7 @@ name = "carrot cloak" desc = "A cloak in the shape and color of a carrot!" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' icon_state = "carrotcloak" item_state = "carrotcloak" w_class = WEIGHT_CLASS_SMALL @@ -156,7 +153,7 @@ icon = 'icons/obj/custom.dmi' icon_state = "satchel_carrot" item_state = "satchel_carrot" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' /obj/item/storage/backpack/satchel/carrot/Initialize() . = ..() @@ -179,7 +176,7 @@ icon = 'icons/obj/custom.dmi' icon_state = "festive" item_state = "festive" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' w_class = WEIGHT_CLASS_SMALL body_parts_covered = CHEST|GROIN|LEGS|ARMS @@ -187,7 +184,7 @@ name = "Alboroto Rosa mask" icon = 'icons/obj/custom.dmi' icon_state = "lucharzigfie" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' item_state = "lucharzigfie" /obj/item/clothing/head/hardhat/reindeer/fluff @@ -195,7 +192,7 @@ desc = "Some fake antlers and a very fake red nose - Sponsored by PWR Game(tm)" icon_state = "hardhat0_reindeer" item_state = "hardhat0_reindeer" - item_color = "reindeer" + hat_type = "reindeer" flags_inv = 0 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) brightness_on = 0 //luminosity when on @@ -220,7 +217,7 @@ name = "The Hollow heart" desc = "Sometimes things are too much to hide." icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' icon_state = "hheart" item_state = "hheart" flags_inv = HIDEFACE|HIDEFACIALHAIR @@ -230,7 +227,7 @@ desc = "You would swear this was in your nightmares after eating too many veggies." icon = 'icons/obj/custom.dmi' icon_state = "hos-g" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' item_state = "hos-g" body_parts_covered = CHEST|GROIN|ARMS|LEGS mutantrace_variation = NONE @@ -247,7 +244,7 @@ desc = "Smells like reactor four." icon = 'icons/obj/custom.dmi' item_state = "stalker" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' icon_state = "stalker" /obj/item/reagent_containers/food/drinks/flask/steel @@ -262,7 +259,7 @@ desc = "It's a collar..." icon = 'icons/obj/custom.dmi' icon_state = "petcollar-stripe" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' item_state = "petcollar-stripe" tagname = null @@ -271,9 +268,8 @@ desc = "Just looking at this makes you want to sing." icon = 'icons/obj/custom.dmi' icon_state = "singer" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' item_state = "singer" - item_color = "singer" fitted = NO_FEMALE_UNIFORM alternate_worn_layer = ABOVE_SHOES_LAYER can_adjust = 0 @@ -282,7 +278,7 @@ /obj/item/clothing/shoes/sneakers/pink icon = 'icons/obj/custom.dmi' icon_state = "pink" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' item_state = "pink" mutantrace_variation = NONE @@ -291,13 +287,13 @@ desc = "A neosilk clip-on tie. This one has a black S on the tipping and looks rather unique." icon = 'icons/obj/custom.dmi' icon_state = "bloodredtie" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' /obj/item/clothing/suit/puffydress name = "Puffy Dress" desc = "A formal puffy black and red Victorian dress." icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' icon_state = "puffydress" item_state = "puffydress" body_parts_covered = CHEST|GROIN|LEGS @@ -310,7 +306,7 @@ item_state = "vermillion" body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' mutantrace_variation = NONE /obj/item/clothing/under/sweater/black/naomi @@ -327,7 +323,7 @@ desc = "This cloak doesn't seem too special." icon = 'icons/obj/custom.dmi' icon_state = "wintergreencloak" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' item_state = "wintergreencloak" w_class = WEIGHT_CLASS_SMALL body_parts_covered = CHEST|GROIN|LEGS|ARMS @@ -343,7 +339,7 @@ desc = "An oddly special looking coat." icon = 'icons/obj/custom.dmi' icon_state = "rdcoat" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' item_state = "rdcoat" mutantrace_variation = NONE @@ -359,7 +355,7 @@ desc = "These strange wings look like they once attached to something... or someone...? Whatever the case, their presence makes you feel uneasy.." icon = 'icons/obj/custom.dmi' icon_state = "devilwings" - alternate_worn_icon = 'modular_citadel/icons/mob/clothing/devilwings64x64.dmi' + mob_overlay_icon = 'modular_citadel/icons/mob/clothing/devilwings64x64.dmi' item_state = "devilwings" worn_x_dimension = 64 worn_y_dimension = 34 @@ -369,14 +365,14 @@ desc = "A truly patriotic form of heroic attire." icon = 'icons/obj/custom.dmi' resistance_flags = FLAMMABLE - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' icon_state = "flagcape" item_state = "flagcape" /obj/item/clothing/shoes/lucky name = "Lucky Jackboots" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' desc = "Comfy Lucky Jackboots with the word Luck on them." item_state = "luckyjack" icon_state = "luckyjack" @@ -385,7 +381,7 @@ /obj/item/clothing/under/custom/lunasune name = "Divine Robes" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' desc = "Heavenly robes of the kitsune Luna Pumpkin,you can feel radiance coming from them." item_state = "Divine_robes" icon_state = "Divine_robes" @@ -394,7 +390,7 @@ /obj/item/clothing/under/custom/leoskimpy name = "Leon's Skimpy Outfit" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' desc = "A rather skimpy outfit." item_state = "shark_cloth" icon_state = "shark_cloth" @@ -403,7 +399,7 @@ /obj/item/clothing/under/custom/mimeoveralls name = "Mime's Overalls" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_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" @@ -415,7 +411,7 @@ icon_state = "zuliecloak" item_state = "zuliecloak" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' hoodtype = /obj/item/clothing/head/hooded/cloakhood/zuliecloak body_parts_covered = CHEST|GROIN|ARMS slot_flags = SLOT_WEAR_SUIT | ITEM_SLOT_NECK //it's a cloak. it's cosmetic. so why the hell not? what could possibly go wrong? @@ -427,7 +423,7 @@ icon_state = "zuliecap" item_state = "zuliecap" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' flags_inv = HIDEEARS|HIDEHAIR mutantrace_variation = NONE @@ -435,7 +431,7 @@ name = "Multicolor Coat" desc = "An oddly special looking coat with black, red, and gold" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' icon_state = "redgoldjacket" item_state = "redgoldjacket" body_parts_covered = CHEST|GROIN|LEGS|ARMS @@ -447,7 +443,7 @@ icon_state = "kimono" item_state = "kimono" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' body_parts_covered = CHEST|GROIN|LEGS|ARMS mutantrace_variation = NONE @@ -457,7 +453,7 @@ icon_state = "commjacket" item_state = "commjacket" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' body_parts_covered = CHEST|GROIN|LEGS|ARMS mutantrace_variation = NONE @@ -467,7 +463,7 @@ icon_state = "mw2_russian_para" item_state = "mw2_russian_para" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' mutantrace_variation = NONE /obj/item/clothing/gloves/longblackgloves @@ -476,7 +472,7 @@ icon_state = "longblackgloves" item_state = "longblackgloves" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' /obj/item/clothing/under/custom/trendy_fit name = "Trendy Fitting Clothing" @@ -484,7 +480,7 @@ icon_state = "trendy_fit" item_state = "trendy_fit" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' mutantrace_variation = NONE /obj/item/clothing/head/blueberet @@ -493,7 +489,7 @@ icon_state = "blueberet" item_state = "blueberet" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' dynamic_hair_suffix = "" /obj/item/clothing/head/flight @@ -502,7 +498,7 @@ icon_state = "flight-g" item_state = "flight-g" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' /obj/item/clothing/neck/necklace/onion name = "Onion Necklace" @@ -510,7 +506,7 @@ icon = 'icons/obj/custom.dmi' icon_state = "onion" item_state = "onion" - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' /obj/item/clothing/under/custom/mikubikini name = "starlight singer bikini" @@ -518,7 +514,7 @@ icon_state = "mikubikini" item_state = "mikubikini" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' mutantrace_variation = NONE /obj/item/clothing/suit/mikujacket @@ -527,7 +523,7 @@ icon_state = "mikujacket" item_state = "mikujacket" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' mutantrace_variation = NONE /obj/item/clothing/head/mikuhair @@ -536,7 +532,7 @@ icon_state = "mikuhair" item_state = "mikuhair" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' mutantrace_variation = NONE flags_inv = HIDEHAIR @@ -546,7 +542,7 @@ icon_state = "mikugloves" item_state = "mikugloves" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' mutantrace_variation = NONE /obj/item/clothing/shoes/sneakers/mikuleggings @@ -555,7 +551,7 @@ icon_state = "mikuleggings" item_state = "mikuleggings" icon = 'icons/obj/custom.dmi' - alternate_worn_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/custom_w.dmi' mutantrace_variation = NONE /obj/item/toy/plush/mammal/dog/fritz diff --git a/tgstation.dme b/tgstation.dme index b212fd39d0..030b7c800e 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -43,6 +43,7 @@ #include "code\__DEFINES\diseases.dm" #include "code\__DEFINES\DNA.dm" #include "code\__DEFINES\donator_groupings.dm" +#include "code\__DEFINES\dye_keys.dm" #include "code\__DEFINES\dynamic.dm" #include "code\__DEFINES\events.dm" #include "code\__DEFINES\exports.dm" From b69b19eb534bfa4c324cf8d65a6aba7ca696d240 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 29 Mar 2020 20:59:52 -0700 Subject: [PATCH 052/190] runtimes --- code/modules/antagonists/cult/cult.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index 84ca13e345..023794182a 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -47,7 +47,7 @@ cult_team = new_team /datum/antagonist/cult/proc/add_objectives() - objectives |= cult_team.objectives + objectives |= cult_team?.objectives /datum/antagonist/cult/Destroy() QDEL_NULL(communion) @@ -74,7 +74,7 @@ SSticker.mode.update_cult_icons_added(owner) current.log_message("has been converted to the cult of Nar'Sie!", LOG_ATTACK, color="#960000") - if(cult_team.blood_target && cult_team.blood_target_image && current.client) + if(cult_team?.blood_target && cult_team.blood_target_image && current.client) current.client.images += cult_team.blood_target_image @@ -117,7 +117,7 @@ current = mob_override current.faction |= "cult" current.grant_language(/datum/language/narsie) - if(!cult_team.cult_master) + if(!cult_team?.cult_master) vote.Grant(current) communion.Grant(current) if(ishuman(current)) From 2bf6d888bd89e614ec4d83fefa2130231e7ddc3d Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Mon, 30 Mar 2020 18:31:26 +0200 Subject: [PATCH 053/190] Ports "Obliterates item_color: new washing machine functionality edition" --- _maps/map_files/PubbyStation/PubbyStation.dmm | 2 +- code/modules/clothing/clothing.dm | 2 +- code/modules/clothing/glasses/_glasses.dm | 4 +- code/modules/clothing/glasses/phantomthief.dm | 2 +- code/modules/clothing/head/hardhat.dm | 4 +- code/modules/clothing/neck/_neck.dm | 4 +- code/modules/clothing/shoes/_shoes.dm | 2 +- code/modules/clothing/under/_under.dm | 2 +- .../modules/mining/equipment/explorer_gear.dm | 2 +- .../sprite_accessories/_sprite_accessories.dm | 2 +- .../mob/living/carbon/human/update_icons.dm | 34 +++---- .../mob/living/carbon/monkey/update_icons.dm | 2 +- .../modules/mob/living/carbon/update_icons.dm | 12 +-- .../mob/living/silicon/robot/update_icons.dm | 2 +- .../simple_animal/friendly/drone/_drone.dm | 2 +- .../friendly/drone/visuals_icons.dm | 4 +- icons/mob/{ => clothing}/accessories.dmi | Bin icons/mob/{ => clothing}/back.dmi | Bin icons/mob/{ => clothing}/belt.dmi | Bin icons/mob/{ => clothing}/belt_mirror.dmi | Bin icons/mob/{ => clothing}/custom_w.dmi | Bin icons/mob/{ => clothing}/eyes.dmi | Bin icons/mob/{ => clothing}/feet.dmi | Bin icons/mob/{ => clothing}/feet_digi.dmi | Bin icons/mob/{ => clothing}/hands.dmi | Bin icons/mob/{ => clothing}/head.dmi | Bin icons/mob/{ => clothing}/head_muzzled.dmi | Bin icons/mob/{ => clothing}/mask.dmi | Bin icons/mob/{ => clothing}/mask_muzzled.dmi | Bin icons/mob/{ => clothing}/neck.dmi | Bin icons/mob/{ => clothing}/restraints.dmi | Bin icons/mob/{ => clothing}/suit.dmi | Bin icons/mob/{ => clothing}/suit_digi.dmi | Bin icons/mob/{ => clothing}/taur_canine.dmi | Bin icons/mob/{ => clothing}/taur_hooved.dmi | Bin icons/mob/{ => clothing}/taur_naga.dmi | Bin icons/mob/{ => clothing}/underwear.dmi | Bin icons/mob/{ => clothing}/uniform.dmi | Bin icons/mob/{ => clothing}/uniform_digi.dmi | Bin .../modules/custom_loadout/custom_items.dm | 88 +++++++++--------- 40 files changed, 85 insertions(+), 85 deletions(-) rename icons/mob/{ => clothing}/accessories.dmi (100%) rename icons/mob/{ => clothing}/back.dmi (100%) rename icons/mob/{ => clothing}/belt.dmi (100%) rename icons/mob/{ => clothing}/belt_mirror.dmi (100%) rename icons/mob/{ => clothing}/custom_w.dmi (100%) rename icons/mob/{ => clothing}/eyes.dmi (100%) rename icons/mob/{ => clothing}/feet.dmi (100%) rename icons/mob/{ => clothing}/feet_digi.dmi (100%) rename icons/mob/{ => clothing}/hands.dmi (100%) rename icons/mob/{ => clothing}/head.dmi (100%) rename icons/mob/{ => clothing}/head_muzzled.dmi (100%) rename icons/mob/{ => clothing}/mask.dmi (100%) rename icons/mob/{ => clothing}/mask_muzzled.dmi (100%) rename icons/mob/{ => clothing}/neck.dmi (100%) rename icons/mob/{ => clothing}/restraints.dmi (100%) rename icons/mob/{ => clothing}/suit.dmi (100%) rename icons/mob/{ => clothing}/suit_digi.dmi (100%) rename icons/mob/{ => clothing}/taur_canine.dmi (100%) rename icons/mob/{ => clothing}/taur_hooved.dmi (100%) rename icons/mob/{ => clothing}/taur_naga.dmi (100%) rename icons/mob/{ => clothing}/underwear.dmi (100%) rename icons/mob/{ => clothing}/uniform.dmi (100%) rename icons/mob/{ => clothing}/uniform_digi.dmi (100%) diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 637913adf1..70d76763e6 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -21098,7 +21098,7 @@ "aYm" = ( /obj/structure/closet/crate/wooden/toy, /obj/item/lipstick/random, -/obj/item/clothing/gloves/color/rainbow/clown, +/obj/item/clothing/gloves/color/rainbow, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index f68164594c..a4911c7660 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -189,7 +189,7 @@ BLIND // can't see anything /proc/generate_female_clothing(index,t_color,icon,type) var/icon/female_clothing_icon = icon("icon"=icon, "icon_state"=t_color) - var/icon/female_s = icon("icon"='icons/mob/uniform.dmi', "icon_state"="[(type == FEMALE_UNIFORM_FULL) ? "female_full" : "female_top"]") + var/icon/female_s = icon("icon"='icons/mob/clothing/uniform.dmi', "icon_state"="[(type == FEMALE_UNIFORM_FULL) ? "female_full" : "female_top"]") female_clothing_icon.Blend(female_s, ICON_MULTIPLY) female_clothing_icon = fcopy_rsc(female_clothing_icon) GLOB.female_clothing_icons[index] = female_clothing_icon diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 66dcf89a7a..aff86f62f1 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -132,7 +132,7 @@ name = "prescription night vision goggles" desc = "NVGs but for those with nearsightedness." vision_correction = 1 - + /obj/item/clothing/glasses/night/syndicate name = "combat night vision goggles" desc = "See everything, without fear." @@ -350,7 +350,7 @@ . = list() if(!isinhands && ishuman(loc) && !colored_before) var/mob/living/carbon/human/H = loc - var/mutable_appearance/M = mutable_appearance('icons/mob/eyes.dmi', "blindfoldwhite") + var/mutable_appearance/M = mutable_appearance('icons/mob/clothing/eyes.dmi', "blindfoldwhite") M.appearance_flags |= RESET_COLOR M.color = "#[H.eye_color]" . += M diff --git a/code/modules/clothing/glasses/phantomthief.dm b/code/modules/clothing/glasses/phantomthief.dm index 569a743802..92eaaef35b 100644 --- a/code/modules/clothing/glasses/phantomthief.dm +++ b/code/modules/clothing/glasses/phantomthief.dm @@ -1,7 +1,7 @@ /obj/item/clothing/glasses/phantomthief name = "suspicious paper mask" desc = "A cheap, Syndicate-branded paper face mask. They'll never see it coming." - mob_overlay_icon = 'icons/mob/mask.dmi' + mob_overlay_icon = 'icons/mob/clothing/mask.dmi' icon = 'icons/obj/clothing/masks.dmi' icon_state = "s-ninja" item_state = "s-ninja" diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index 246be3ff4a..73e626bcd1 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -127,9 +127,9 @@ /obj/item/clothing/head/hardhat/weldhat/worn_overlays(isinhands, icon_file, style_flags = NONE) . = ..() if(!isinhands) - . += mutable_appearance('icons/mob/head.dmi', "weldhelmet") + . += mutable_appearance('icons/mob/clothing/head.dmi', "weldhelmet") if(!up) - . += mutable_appearance('icons/mob/head.dmi', "weldvisor") + . += mutable_appearance('icons/mob/clothing/head.dmi', "weldvisor") /obj/item/clothing/head/hardhat/weldhat/update_overlays() . = ..() diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 7bce47909a..069ab43dd9 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -169,7 +169,7 @@ name = "pet collar" desc = "It's for pets. Though you probably could wear it yourself, you'd doubtless be the subject of ridicule. It seems to be made out of a polychromic material." icon_state = "petcollar" - mob_overlay_icon = 'icons/mob/neck.dmi' //Because, as it appears, the item itself is normally not directly aware of its worn overlays, so this is about the easiest way, without adding a new var. + mob_overlay_icon = 'icons/mob/clothing/neck.dmi' //Because, as it appears, the item itself is normally not directly aware of its worn overlays, so this is about the easiest way, without adding a new var. hasprimary = TRUE primary_color = "#00BBBB" pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/collar @@ -286,7 +286,7 @@ obj/item/clothing/neck/neckerchief /obj/item/clothing/neck/neckerchief/worn_overlays(isinhands) . = ..() if(!isinhands) - var/mutable_appearance/realOverlay = mutable_appearance('icons/mob/mask.dmi', icon_state) + var/mutable_appearance/realOverlay = mutable_appearance('icons/mob/clothing/mask.dmi', icon_state) realOverlay.pixel_y = -3 . += realOverlay diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index 4c6d3a8f88..471c7623fd 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -61,7 +61,7 @@ if(damaged_clothes) . += mutable_appearance('icons/effects/item_damage.dmi', "damagedshoe") if(bloody) - var/file2use = style_flags & STYLE_DIGITIGRADE ? 'icons/mob/feet_digi.dmi' : 'icons/effects/blood.dmi' + var/file2use = style_flags & STYLE_DIGITIGRADE ? 'icons/mob/clothing/feet_digi.dmi' : 'icons/effects/blood.dmi' . += mutable_appearance(file2use, "shoeblood", color = blood_DNA_to_color()) /obj/item/clothing/shoes/equipped(mob/user, slot) diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index bc40b8647d..8f209b06c1 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -113,7 +113,7 @@ return TRUE var/accessory_color = attached_accessory.icon_state - accessory_overlay = mutable_appearance('icons/mob/accessories.dmi', "[accessory_color]") + accessory_overlay = mutable_appearance('icons/mob/clothing/accessories.dmi', "[accessory_color]") accessory_overlay.alpha = attached_accessory.alpha accessory_overlay.color = attached_accessory.color diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index e83ac26153..d3a417b439 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -120,7 +120,7 @@ /obj/item/clothing/head/helmet/space/hostile_environment/worn_overlays(isinhands, icon_file, style_flags = NONE) . = ..() if(!isinhands) - var/mutable_appearance/M = mutable_appearance('icons/mob/head.dmi', "hostile_env_glass") + var/mutable_appearance/M = mutable_appearance('icons/mob/clothing/head.dmi', "hostile_env_glass") M.appearance_flags = RESET_COLOR . += M diff --git a/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm index 4365e59a7a..ab278b2e82 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm @@ -76,7 +76,7 @@ var/list/recommended_species /datum/sprite_accessory/underwear - icon = 'icons/mob/underwear.dmi' + icon = 'icons/mob/clothing/underwear.dmi' var/has_color = FALSE var/has_digitigrade = FALSE var/covers_groin = FALSE diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 9274a24589..7880ca2bc0 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -122,11 +122,11 @@ There are several things that need to be remembered: if(U.adjusted == ALT_STYLE) target_overlay = "[target_overlay]_d" - var/alt_worn = U.mob_overlay_icon || 'icons/mob/uniform.dmi' + var/alt_worn = U.mob_overlay_icon || 'icons/mob/clothing/uniform.dmi' var/variant_flag = NONE if((DIGITIGRADE in dna.species.species_traits) && U.mutantrace_variation & STYLE_DIGITIGRADE) - alt_worn = 'icons/mob/uniform_digi.dmi' + alt_worn = 'icons/mob/clothing/uniform_digi.dmi' variant_flag |= STYLE_DIGITIGRADE var/mutable_appearance/uniform_overlay @@ -200,7 +200,7 @@ There are several things that need to be remembered: var/t_state = gloves.item_state if(!t_state) t_state = gloves.icon_state - overlays_standing[GLOVES_LAYER] = gloves.build_worn_icon(state = t_state, default_layer = GLOVES_LAYER, default_icon_file = 'icons/mob/hands.dmi') + overlays_standing[GLOVES_LAYER] = gloves.build_worn_icon(state = t_state, default_layer = GLOVES_LAYER, default_icon_file = 'icons/mob/clothing/hands.dmi') gloves_overlay = overlays_standing[GLOVES_LAYER] if(OFFSET_GLOVES in dna.species.offset_features) gloves_overlay.pixel_x += dna.species.offset_features[OFFSET_GLOVES][1] @@ -226,7 +226,7 @@ There are several things that need to be remembered: client.screen += glasses //Either way, add the item to the HUD update_observer_view(glasses,1) if(!(head && (head.flags_inv & HIDEEYES)) && !(wear_mask && (wear_mask.flags_inv & HIDEEYES))) - overlays_standing[GLASSES_LAYER] = glasses.build_worn_icon(state = glasses.icon_state, default_layer = GLASSES_LAYER, default_icon_file = 'icons/mob/eyes.dmi') + overlays_standing[GLASSES_LAYER] = glasses.build_worn_icon(state = glasses.icon_state, default_layer = GLASSES_LAYER, default_icon_file = 'icons/mob/clothing/eyes.dmi') var/mutable_appearance/glasses_overlay = overlays_standing[GLASSES_LAYER] if(glasses_overlay) if(OFFSET_GLASSES in dna.species.offset_features) @@ -280,10 +280,10 @@ There are several things that need to be remembered: client.screen += shoes //add it to client's screen update_observer_view(shoes,1) - var/alt_icon = S.mob_overlay_icon || 'icons/mob/feet.dmi' + var/alt_icon = S.mob_overlay_icon || 'icons/mob/clothing/feet.dmi' var/variation_flag = NONE if((DIGITIGRADE in dna.species.species_traits) && S.mutantrace_variation & STYLE_DIGITIGRADE) - alt_icon = 'icons/mob/feet_digi.dmi' + alt_icon = 'icons/mob/clothing/feet_digi.dmi' variation_flag |= STYLE_DIGITIGRADE overlays_standing[SHOES_LAYER] = shoes.build_worn_icon(SHOES_LAYER, alt_icon, FALSE, NO_FEMALE_UNIFORM, variation_flag, FALSE) @@ -309,7 +309,7 @@ There are several things that need to be remembered: var/t_state = s_store.item_state if(!t_state) t_state = s_store.icon_state - overlays_standing[SUIT_STORE_LAYER] = mutable_appearance(((s_store.mob_overlay_icon) ? s_store.mob_overlay_icon : 'icons/mob/belt_mirror.dmi'), t_state, -SUIT_STORE_LAYER) + overlays_standing[SUIT_STORE_LAYER] = mutable_appearance(((s_store.mob_overlay_icon) ? s_store.mob_overlay_icon : 'icons/mob/clothing/belt_mirror.dmi'), t_state, -SUIT_STORE_LAYER) var/mutable_appearance/s_store_overlay = overlays_standing[SUIT_STORE_LAYER] if(OFFSET_S_STORE in dna.species.offset_features) s_store_overlay.pixel_x += dna.species.offset_features[OFFSET_S_STORE][1] @@ -332,7 +332,7 @@ There are several things that need to be remembered: if(head) remove_overlay(HEAD_LAYER) var/obj/item/clothing/head/H = head - var/alt_icon = H.mob_overlay_icon || 'icons/mob/head.dmi' + var/alt_icon = H.mob_overlay_icon || 'icons/mob/clothing/head.dmi' var/muzzled = FALSE var/variation_flag = NONE if(dna.species.mutant_bodyparts["mam_snouts"] && dna.features["mam_snouts"] != "None") @@ -340,7 +340,7 @@ There are several things that need to be remembered: else if(dna.species.mutant_bodyparts["snout"] && dna.features["snout"] != "None") muzzled = TRUE if(muzzled && H.mutantrace_variation & STYLE_MUZZLE) - alt_icon = 'icons/mob/head_muzzled.dmi' + alt_icon = 'icons/mob/clothing/head_muzzled.dmi' variation_flag |= STYLE_MUZZLE overlays_standing[HEAD_LAYER] = H.build_worn_icon(HEAD_LAYER, alt_icon, FALSE, NO_FEMALE_UNIFORM, H.icon_state, variation_flag, FALSE) @@ -365,7 +365,7 @@ There are several things that need to be remembered: client.screen += belt update_observer_view(belt) - overlays_standing[BELT_LAYER] = belt.build_worn_icon(default_layer = BELT_LAYER, default_icon_file = 'icons/mob/belt.dmi') + overlays_standing[BELT_LAYER] = belt.build_worn_icon(default_layer = BELT_LAYER, default_icon_file = 'icons/mob/clothing/belt.dmi') var/mutable_appearance/belt_overlay = overlays_standing[BELT_LAYER] if(OFFSET_BELT in dna.species.offset_features) belt_overlay.pixel_x += dna.species.offset_features[OFFSET_BELT][1] @@ -389,7 +389,7 @@ There are several things that need to be remembered: client.screen += wear_suit update_observer_view(wear_suit,1) - var/worn_icon = wear_suit.mob_overlay_icon || 'icons/mob/suit.dmi' + var/worn_icon = wear_suit.mob_overlay_icon || 'icons/mob/clothing/suit.dmi' var/center = FALSE var/dimension_x = 32 var/dimension_y = 32 @@ -404,17 +404,17 @@ There are several things that need to be remembered: variation_flag |= S.mutantrace_variation & T.taur_mode || S.mutantrace_variation & T.alt_taur_mode switch(variation_flag) if(STYLE_HOOF_TAURIC) - worn_icon = 'icons/mob/taur_hooved.dmi' + worn_icon = 'icons/mob/clothing/taur_hooved.dmi' if(STYLE_SNEK_TAURIC) - worn_icon = 'icons/mob/taur_naga.dmi' + worn_icon = 'icons/mob/clothing/taur_naga.dmi' if(STYLE_PAW_TAURIC) - worn_icon = 'icons/mob/taur_canine.dmi' + worn_icon = 'icons/mob/clothing/taur_canine.dmi' if(worn_icon != init_worn_icon) //worn icon sprite was changed, taur offsets will have to be applied. center = T.center dimension_x = T.dimension_x dimension_y = T.dimension_y else if((DIGITIGRADE in dna.species.species_traits) && S.mutantrace_variation & STYLE_DIGITIGRADE) //not a taur, but digitigrade legs. - worn_icon = 'icons/mob/suit_digi.dmi' + worn_icon = 'icons/mob/clothing/suit_digi.dmi' variation_flag |= STYLE_DIGITIGRADE overlays_standing[SUIT_LAYER] = S.build_worn_icon(SUIT_LAYER, worn_icon, FALSE, NO_FEMALE_UNIFORM, wear_suit.icon_state, variation_flag, FALSE) @@ -467,7 +467,7 @@ There are several things that need to be remembered: if(wear_mask) var/obj/item/clothing/mask/M = wear_mask remove_overlay(FACEMASK_LAYER) - var/alt_icon = M.mob_overlay_icon || 'icons/mob/mask.dmi' + var/alt_icon = M.mob_overlay_icon || 'icons/mob/clothing/mask.dmi' var/muzzled = FALSE var/variation_flag = NONE if(head && (head.flags_inv & HIDEMASK)) @@ -477,7 +477,7 @@ There are several things that need to be remembered: else if(dna.species.mutant_bodyparts["snout"] && dna.features["snout"] != "None") muzzled = TRUE if(muzzled && M.mutantrace_variation & STYLE_MUZZLE) - alt_icon = 'icons/mob/mask_muzzled.dmi' + alt_icon = 'icons/mob/clothing/mask_muzzled.dmi' variation_flag |= STYLE_MUZZLE var/mutable_appearance/mask_overlay = M.build_worn_icon(FACEMASK_LAYER, alt_icon, FALSE, NO_FEMALE_UNIFORM, wear_mask.icon_state, variation_flag, FALSE) diff --git a/code/modules/mob/living/carbon/monkey/update_icons.dm b/code/modules/mob/living/carbon/monkey/update_icons.dm index ff83b00fe1..1e00815f24 100644 --- a/code/modules/mob/living/carbon/monkey/update_icons.dm +++ b/code/modules/mob/living/carbon/monkey/update_icons.dm @@ -45,7 +45,7 @@ remove_overlay(LEGCUFF_LAYER) clear_alert("legcuffed") if(legcuffed) - var/mutable_appearance/legcuffs = mutable_appearance('icons/mob/restraints.dmi', legcuffed.item_state, -LEGCUFF_LAYER) + var/mutable_appearance/legcuffs = mutable_appearance('icons/mob/clothing/restraints.dmi', legcuffed.item_state, -LEGCUFF_LAYER) legcuffs.color = handcuffed.color legcuffs.pixel_y = 8 diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index 92509d364a..0cfca9f212 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -96,7 +96,7 @@ if(wear_mask) if(!(head && (head.flags_inv & HIDEMASK))) - overlays_standing[FACEMASK_LAYER] = wear_mask.build_worn_icon(default_layer = FACEMASK_LAYER, default_icon_file = 'icons/mob/mask.dmi', override_state = wear_mask.icon_state) + overlays_standing[FACEMASK_LAYER] = wear_mask.build_worn_icon(default_layer = FACEMASK_LAYER, default_icon_file = 'icons/mob/clothing/mask.dmi', override_state = wear_mask.icon_state) update_hud_wear_mask(wear_mask) apply_overlay(FACEMASK_LAYER) @@ -110,7 +110,7 @@ if(wear_neck) if(!(head && (head.flags_inv & HIDENECK))) - overlays_standing[NECK_LAYER] = wear_neck.build_worn_icon(default_layer = NECK_LAYER, default_icon_file = 'icons/mob/neck.dmi', override_state = wear_mask.icon_state) + overlays_standing[NECK_LAYER] = wear_neck.build_worn_icon(default_layer = NECK_LAYER, default_icon_file = 'icons/mob/clothing/neck.dmi', override_state = wear_mask.icon_state) update_hud_neck(wear_neck) apply_overlay(NECK_LAYER) @@ -123,7 +123,7 @@ inv.update_icon() if(back) - overlays_standing[BACK_LAYER] = back.build_worn_icon(default_layer = BACK_LAYER, default_icon_file = 'icons/mob/back.dmi', override_state = back.icon_state) + overlays_standing[BACK_LAYER] = back.build_worn_icon(default_layer = BACK_LAYER, default_icon_file = 'icons/mob/clothing/back.dmi', override_state = back.icon_state) update_hud_back(back) apply_overlay(BACK_LAYER) @@ -139,7 +139,7 @@ inv.update_icon() if(head) - overlays_standing[HEAD_LAYER] = head.build_worn_icon(default_layer = HEAD_LAYER, default_icon_file = 'icons/mob/head.dmi', override_state = head.icon_state) + overlays_standing[HEAD_LAYER] = head.build_worn_icon(default_layer = HEAD_LAYER, default_icon_file = 'icons/mob/clothing/head.dmi', override_state = head.icon_state) update_hud_head(head) apply_overlay(HEAD_LAYER) @@ -148,7 +148,7 @@ /mob/living/carbon/update_inv_handcuffed() remove_overlay(HANDCUFF_LAYER) if(handcuffed) - var/mutable_appearance/cuffs = mutable_appearance('icons/mob/restraints.dmi', handcuffed.item_state, -HANDCUFF_LAYER) + var/mutable_appearance/cuffs = mutable_appearance('icons/mob/clothing/restraints.dmi', handcuffed.item_state, -HANDCUFF_LAYER) cuffs.color = handcuffed.color overlays_standing[HANDCUFF_LAYER] = cuffs @@ -158,7 +158,7 @@ remove_overlay(LEGCUFF_LAYER) clear_alert("legcuffed") if(legcuffed) - var/mutable_appearance/legcuffs = mutable_appearance('icons/mob/restraints.dmi', legcuffed.item_state, -LEGCUFF_LAYER) + var/mutable_appearance/legcuffs = mutable_appearance('icons/mob/clothing/restraints.dmi', legcuffed.item_state, -LEGCUFF_LAYER) legcuffs.color = legcuffed.color overlays_standing[LEGCUFF_LAYER] = legcuffs diff --git a/code/modules/mob/living/silicon/robot/update_icons.dm b/code/modules/mob/living/silicon/robot/update_icons.dm index 7311806c8b..72ad21c51e 100644 --- a/code/modules/mob/living/silicon/robot/update_icons.dm +++ b/code/modules/mob/living/silicon/robot/update_icons.dm @@ -41,7 +41,7 @@ else add_overlay("ov-opencover -c") if(hat) - var/mutable_appearance/head_overlay = hat.build_worn_icon(default_layer = 20, default_icon_file = 'icons/mob/head.dmi', override_state = hat.icon_state) + var/mutable_appearance/head_overlay = hat.build_worn_icon(default_layer = 20, default_icon_file = 'icons/mob/clothing/head.dmi', override_state = hat.icon_state) head_overlay.pixel_y += hat_offset add_overlay(head_overlay) update_fire() diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm index 0d344f1a9b..2a84152088 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -105,7 +105,7 @@ . = ..() if(can_be_held) //icon/item state is defined in mob_holder/drone_worn_icon() - AddElement(/datum/element/mob_holder, null, 'icons/mob/head.dmi', 'icons/mob/inhands/clothing_righthand.dmi', 'icons/mob/inhands/clothing_lefthand.dmi', ITEM_SLOT_HEAD, /datum/element/mob_holder.proc/drone_worn_icon) + AddElement(/datum/element/mob_holder, null, 'icons/mob/clothing/head.dmi', 'icons/mob/inhands/clothing_righthand.dmi', 'icons/mob/inhands/clothing_lefthand.dmi', ITEM_SLOT_HEAD, /datum/element/mob_holder.proc/drone_worn_icon) /mob/living/simple_animal/drone/med_hud_set_health() var/image/holder = hud_list[DIAG_HUD] diff --git a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm index cece40d3f3..815c2bc0db 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/visuals_icons.dm @@ -72,9 +72,9 @@ if(client && hud_used && hud_used.hud_shown) head.screen_loc = ui_drone_head client.screen += head - var/used_head_icon = 'icons/mob/head.dmi' + var/used_head_icon = 'icons/mob/clothing/head.dmi' if(istype(head, /obj/item/clothing/mask)) - used_head_icon = 'icons/mob/mask.dmi' + used_head_icon = 'icons/mob/clothing/mask.dmi' var/mutable_appearance/head_overlay = head.build_worn_icon(default_layer = DRONE_HEAD_LAYER, default_icon_file = used_head_icon, override_state = head.icon_state) head_overlay.pixel_y -= 15 diff --git a/icons/mob/accessories.dmi b/icons/mob/clothing/accessories.dmi similarity index 100% rename from icons/mob/accessories.dmi rename to icons/mob/clothing/accessories.dmi diff --git a/icons/mob/back.dmi b/icons/mob/clothing/back.dmi similarity index 100% rename from icons/mob/back.dmi rename to icons/mob/clothing/back.dmi diff --git a/icons/mob/belt.dmi b/icons/mob/clothing/belt.dmi similarity index 100% rename from icons/mob/belt.dmi rename to icons/mob/clothing/belt.dmi diff --git a/icons/mob/belt_mirror.dmi b/icons/mob/clothing/belt_mirror.dmi similarity index 100% rename from icons/mob/belt_mirror.dmi rename to icons/mob/clothing/belt_mirror.dmi diff --git a/icons/mob/custom_w.dmi b/icons/mob/clothing/custom_w.dmi similarity index 100% rename from icons/mob/custom_w.dmi rename to icons/mob/clothing/custom_w.dmi diff --git a/icons/mob/eyes.dmi b/icons/mob/clothing/eyes.dmi similarity index 100% rename from icons/mob/eyes.dmi rename to icons/mob/clothing/eyes.dmi diff --git a/icons/mob/feet.dmi b/icons/mob/clothing/feet.dmi similarity index 100% rename from icons/mob/feet.dmi rename to icons/mob/clothing/feet.dmi diff --git a/icons/mob/feet_digi.dmi b/icons/mob/clothing/feet_digi.dmi similarity index 100% rename from icons/mob/feet_digi.dmi rename to icons/mob/clothing/feet_digi.dmi diff --git a/icons/mob/hands.dmi b/icons/mob/clothing/hands.dmi similarity index 100% rename from icons/mob/hands.dmi rename to icons/mob/clothing/hands.dmi diff --git a/icons/mob/head.dmi b/icons/mob/clothing/head.dmi similarity index 100% rename from icons/mob/head.dmi rename to icons/mob/clothing/head.dmi diff --git a/icons/mob/head_muzzled.dmi b/icons/mob/clothing/head_muzzled.dmi similarity index 100% rename from icons/mob/head_muzzled.dmi rename to icons/mob/clothing/head_muzzled.dmi diff --git a/icons/mob/mask.dmi b/icons/mob/clothing/mask.dmi similarity index 100% rename from icons/mob/mask.dmi rename to icons/mob/clothing/mask.dmi diff --git a/icons/mob/mask_muzzled.dmi b/icons/mob/clothing/mask_muzzled.dmi similarity index 100% rename from icons/mob/mask_muzzled.dmi rename to icons/mob/clothing/mask_muzzled.dmi diff --git a/icons/mob/neck.dmi b/icons/mob/clothing/neck.dmi similarity index 100% rename from icons/mob/neck.dmi rename to icons/mob/clothing/neck.dmi diff --git a/icons/mob/restraints.dmi b/icons/mob/clothing/restraints.dmi similarity index 100% rename from icons/mob/restraints.dmi rename to icons/mob/clothing/restraints.dmi diff --git a/icons/mob/suit.dmi b/icons/mob/clothing/suit.dmi similarity index 100% rename from icons/mob/suit.dmi rename to icons/mob/clothing/suit.dmi diff --git a/icons/mob/suit_digi.dmi b/icons/mob/clothing/suit_digi.dmi similarity index 100% rename from icons/mob/suit_digi.dmi rename to icons/mob/clothing/suit_digi.dmi diff --git a/icons/mob/taur_canine.dmi b/icons/mob/clothing/taur_canine.dmi similarity index 100% rename from icons/mob/taur_canine.dmi rename to icons/mob/clothing/taur_canine.dmi diff --git a/icons/mob/taur_hooved.dmi b/icons/mob/clothing/taur_hooved.dmi similarity index 100% rename from icons/mob/taur_hooved.dmi rename to icons/mob/clothing/taur_hooved.dmi diff --git a/icons/mob/taur_naga.dmi b/icons/mob/clothing/taur_naga.dmi similarity index 100% rename from icons/mob/taur_naga.dmi rename to icons/mob/clothing/taur_naga.dmi diff --git a/icons/mob/underwear.dmi b/icons/mob/clothing/underwear.dmi similarity index 100% rename from icons/mob/underwear.dmi rename to icons/mob/clothing/underwear.dmi diff --git a/icons/mob/uniform.dmi b/icons/mob/clothing/uniform.dmi similarity index 100% rename from icons/mob/uniform.dmi rename to icons/mob/clothing/uniform.dmi diff --git a/icons/mob/uniform_digi.dmi b/icons/mob/clothing/uniform_digi.dmi similarity index 100% rename from icons/mob/uniform_digi.dmi rename to icons/mob/clothing/uniform_digi.dmi diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm index 0fcc904ee2..a9b502d629 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -26,7 +26,7 @@ desc = "The design on this seems a little too familiar." icon = 'icons/obj/custom.dmi' icon_state = "infcloak" - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "infcloak" w_class = WEIGHT_CLASS_SMALL body_parts_covered = CHEST|GROIN|LEGS|ARMS @@ -36,7 +36,7 @@ desc = "A soft black collar that seems to stretch to fit whoever wears it." icon = 'icons/obj/custom.dmi' icon_state = "infcollar" - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "infcollar" tagname = null @@ -51,7 +51,7 @@ name = "Kiara's Sabre" desc = "This blade looks as dangerous as its owner." icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' icon_state = "darksabre" item_state = "darksabre" lefthand_file = 'modular_citadel/icons/mob/inhands/stunsword_left.dmi' @@ -68,7 +68,7 @@ name = "Ornate Sheathe" desc = "An ornate and rather sinister looking sabre sheathe." icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' icon_state = "darksheath" item_state = "darksheath" fitting_swords = list(/obj/item/toy/darksabre) @@ -78,7 +78,7 @@ name = "Dark Armor" desc = "A dark, non-functional piece of armor sporting a red and black finish." icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' icon_state = "darkcarapace" item_state = "darkcarapace" blood_overlay_type = "armor" @@ -105,7 +105,7 @@ icon = 'icons/obj/custom.dmi' icon_state = "zombscarf" desc = "A fashionable collar" - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' dog_fashion = /datum/dog_fashion/head /obj/item/clothing/suit/toggle/labcoat/mad/red @@ -113,7 +113,7 @@ desc = "An oddly special looking coat." icon = 'icons/obj/custom.dmi' icon_state = "labred" - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "labred" mutantrace_variation = NONE @@ -122,7 +122,7 @@ desc = "An oddly special looking coat." icon = 'icons/obj/custom.dmi' icon_state = "labredblack" - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "labredblack" mutantrace_variation = NONE @@ -141,7 +141,7 @@ name = "carrot cloak" desc = "A cloak in the shape and color of a carrot!" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' icon_state = "carrotcloak" item_state = "carrotcloak" w_class = WEIGHT_CLASS_SMALL @@ -153,7 +153,7 @@ icon = 'icons/obj/custom.dmi' icon_state = "satchel_carrot" item_state = "satchel_carrot" - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' /obj/item/storage/backpack/satchel/carrot/Initialize() . = ..() @@ -176,7 +176,7 @@ icon = 'icons/obj/custom.dmi' icon_state = "festive" item_state = "festive" - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' w_class = WEIGHT_CLASS_SMALL body_parts_covered = CHEST|GROIN|LEGS|ARMS @@ -184,7 +184,7 @@ name = "Alboroto Rosa mask" icon = 'icons/obj/custom.dmi' icon_state = "lucharzigfie" - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "lucharzigfie" /obj/item/clothing/head/hardhat/reindeer/fluff @@ -217,7 +217,7 @@ name = "The Hollow heart" desc = "Sometimes things are too much to hide." icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' icon_state = "hheart" item_state = "hheart" flags_inv = HIDEFACE|HIDEFACIALHAIR @@ -227,7 +227,7 @@ desc = "You would swear this was in your nightmares after eating too many veggies." icon = 'icons/obj/custom.dmi' icon_state = "hos-g" - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "hos-g" body_parts_covered = CHEST|GROIN|ARMS|LEGS mutantrace_variation = NONE @@ -244,7 +244,7 @@ desc = "Smells like reactor four." icon = 'icons/obj/custom.dmi' item_state = "stalker" - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' icon_state = "stalker" /obj/item/reagent_containers/food/drinks/flask/steel @@ -259,7 +259,7 @@ desc = "It's a collar..." icon = 'icons/obj/custom.dmi' icon_state = "petcollar-stripe" - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "petcollar-stripe" tagname = null @@ -268,7 +268,7 @@ desc = "Just looking at this makes you want to sing." icon = 'icons/obj/custom.dmi' icon_state = "singer" - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "singer" fitted = NO_FEMALE_UNIFORM alternate_worn_layer = ABOVE_SHOES_LAYER @@ -278,7 +278,7 @@ /obj/item/clothing/shoes/sneakers/pink icon = 'icons/obj/custom.dmi' icon_state = "pink" - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "pink" mutantrace_variation = NONE @@ -287,13 +287,13 @@ desc = "A neosilk clip-on tie. This one has a black S on the tipping and looks rather unique." icon = 'icons/obj/custom.dmi' icon_state = "bloodredtie" - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' /obj/item/clothing/suit/puffydress name = "Puffy Dress" desc = "A formal puffy black and red Victorian dress." icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' icon_state = "puffydress" item_state = "puffydress" body_parts_covered = CHEST|GROIN|LEGS @@ -306,7 +306,7 @@ item_state = "vermillion" body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' mutantrace_variation = NONE /obj/item/clothing/under/sweater/black/naomi @@ -323,7 +323,7 @@ desc = "This cloak doesn't seem too special." icon = 'icons/obj/custom.dmi' icon_state = "wintergreencloak" - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "wintergreencloak" w_class = WEIGHT_CLASS_SMALL body_parts_covered = CHEST|GROIN|LEGS|ARMS @@ -339,7 +339,7 @@ desc = "An oddly special looking coat." icon = 'icons/obj/custom.dmi' icon_state = "rdcoat" - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' item_state = "rdcoat" mutantrace_variation = NONE @@ -365,14 +365,14 @@ desc = "A truly patriotic form of heroic attire." icon = 'icons/obj/custom.dmi' resistance_flags = FLAMMABLE - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' icon_state = "flagcape" item_state = "flagcape" /obj/item/clothing/shoes/lucky name = "Lucky Jackboots" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' desc = "Comfy Lucky Jackboots with the word Luck on them." item_state = "luckyjack" icon_state = "luckyjack" @@ -381,7 +381,7 @@ /obj/item/clothing/under/custom/lunasune name = "Divine Robes" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' desc = "Heavenly robes of the kitsune Luna Pumpkin,you can feel radiance coming from them." item_state = "Divine_robes" icon_state = "Divine_robes" @@ -390,7 +390,7 @@ /obj/item/clothing/under/custom/leoskimpy name = "Leon's Skimpy Outfit" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' desc = "A rather skimpy outfit." item_state = "shark_cloth" icon_state = "shark_cloth" @@ -399,7 +399,7 @@ /obj/item/clothing/under/custom/mimeoveralls name = "Mime's Overalls" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/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" @@ -411,7 +411,7 @@ icon_state = "zuliecloak" item_state = "zuliecloak" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' hoodtype = /obj/item/clothing/head/hooded/cloakhood/zuliecloak body_parts_covered = CHEST|GROIN|ARMS slot_flags = SLOT_WEAR_SUIT | ITEM_SLOT_NECK //it's a cloak. it's cosmetic. so why the hell not? what could possibly go wrong? @@ -423,7 +423,7 @@ icon_state = "zuliecap" item_state = "zuliecap" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' flags_inv = HIDEEARS|HIDEHAIR mutantrace_variation = NONE @@ -431,7 +431,7 @@ name = "Multicolor Coat" desc = "An oddly special looking coat with black, red, and gold" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' icon_state = "redgoldjacket" item_state = "redgoldjacket" body_parts_covered = CHEST|GROIN|LEGS|ARMS @@ -443,7 +443,7 @@ icon_state = "kimono" item_state = "kimono" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' body_parts_covered = CHEST|GROIN|LEGS|ARMS mutantrace_variation = NONE @@ -453,7 +453,7 @@ icon_state = "commjacket" item_state = "commjacket" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' body_parts_covered = CHEST|GROIN|LEGS|ARMS mutantrace_variation = NONE @@ -463,7 +463,7 @@ icon_state = "mw2_russian_para" item_state = "mw2_russian_para" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' mutantrace_variation = NONE /obj/item/clothing/gloves/longblackgloves @@ -472,7 +472,7 @@ icon_state = "longblackgloves" item_state = "longblackgloves" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' /obj/item/clothing/under/custom/trendy_fit name = "Trendy Fitting Clothing" @@ -480,7 +480,7 @@ icon_state = "trendy_fit" item_state = "trendy_fit" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' mutantrace_variation = NONE /obj/item/clothing/head/blueberet @@ -489,7 +489,7 @@ icon_state = "blueberet" item_state = "blueberet" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' dynamic_hair_suffix = "" /obj/item/clothing/head/flight @@ -498,7 +498,7 @@ icon_state = "flight-g" item_state = "flight-g" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' /obj/item/clothing/neck/necklace/onion name = "Onion Necklace" @@ -506,7 +506,7 @@ icon = 'icons/obj/custom.dmi' icon_state = "onion" item_state = "onion" - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' /obj/item/clothing/under/custom/mikubikini name = "starlight singer bikini" @@ -514,7 +514,7 @@ icon_state = "mikubikini" item_state = "mikubikini" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' mutantrace_variation = NONE /obj/item/clothing/suit/mikujacket @@ -523,7 +523,7 @@ icon_state = "mikujacket" item_state = "mikujacket" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' mutantrace_variation = NONE /obj/item/clothing/head/mikuhair @@ -532,7 +532,7 @@ icon_state = "mikuhair" item_state = "mikuhair" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' mutantrace_variation = NONE flags_inv = HIDEHAIR @@ -542,7 +542,7 @@ icon_state = "mikugloves" item_state = "mikugloves" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' mutantrace_variation = NONE /obj/item/clothing/shoes/sneakers/mikuleggings @@ -551,7 +551,7 @@ icon_state = "mikuleggings" item_state = "mikuleggings" icon = 'icons/obj/custom.dmi' - mob_overlay_icon = 'icons/mob/custom_w.dmi' + mob_overlay_icon = 'icons/mob/clothing/custom_w.dmi' mutantrace_variation = NONE /obj/item/toy/plush/mammal/dog/fritz From 21a42579c140cb30827ef5620baf8bbeb1502bc2 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Mon, 30 Mar 2020 18:55:30 +0200 Subject: [PATCH 054/190] chucklefucks. --- .../mob/living/carbon/human/update_icons.dm | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 7880ca2bc0..ae7009f5f6 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -165,7 +165,7 @@ There are several things that need to be remembered: update_observer_view(wear_id) //TODO: add an icon file for ID slot stuff, so it's less snowflakey - id_overlay = wear_id.build_worn_icon(state = wear_id.item_state, default_layer = ID_LAYER, default_icon_file = 'icons/mob/mob.dmi') + id_overlay = wear_id.build_worn_icon(default_layer = ID_LAYER, default_icon_file = 'icons/mob/mob.dmi', override_state = wear_id.item_state) if(OFFSET_ID in dna.species.offset_features) id_overlay.pixel_x += dna.species.offset_features[OFFSET_ID][1] id_overlay.pixel_y += dna.species.offset_features[OFFSET_ID][2] @@ -197,10 +197,7 @@ There are several things that need to be remembered: if(hud_used.inventory_shown) client.screen += gloves update_observer_view(gloves,1) - var/t_state = gloves.item_state - if(!t_state) - t_state = gloves.icon_state - overlays_standing[GLOVES_LAYER] = gloves.build_worn_icon(state = t_state, default_layer = GLOVES_LAYER, default_icon_file = 'icons/mob/clothing/hands.dmi') + overlays_standing[GLOVES_LAYER] = gloves.build_worn_icon(default_layer = GLOVES_LAYER, default_icon_file = 'icons/mob/clothing/hands.dmi') gloves_overlay = overlays_standing[GLOVES_LAYER] if(OFFSET_GLOVES in dna.species.offset_features) gloves_overlay.pixel_x += dna.species.offset_features[OFFSET_GLOVES][1] @@ -226,7 +223,7 @@ There are several things that need to be remembered: client.screen += glasses //Either way, add the item to the HUD update_observer_view(glasses,1) if(!(head && (head.flags_inv & HIDEEYES)) && !(wear_mask && (wear_mask.flags_inv & HIDEEYES))) - overlays_standing[GLASSES_LAYER] = glasses.build_worn_icon(state = glasses.icon_state, default_layer = GLASSES_LAYER, default_icon_file = 'icons/mob/clothing/eyes.dmi') + overlays_standing[GLASSES_LAYER] = glasses.build_worn_icon(default_layer = GLASSES_LAYER, default_icon_file = 'icons/mob/clothing/eyes.dmi', override_state = glasses.icon_state) var/mutable_appearance/glasses_overlay = overlays_standing[GLASSES_LAYER] if(glasses_overlay) if(OFFSET_GLASSES in dna.species.offset_features) @@ -562,8 +559,7 @@ covers: By Remie Richards (yes I'm taking credit because this just removed 90% of the copypaste in update_icons()) -state: A string to use as the state, this is FAR too complex to solve in this proc thanks to shitty old code -so it's specified as an argument instead. +override_state: A string to use as the state, otherwise item_state or icon_state will be used. default_layer: The layer to draw this on if no other layer is specified @@ -575,6 +571,9 @@ in this situation default_icon_file is expected to match either the lefthand_ or femalueuniform: A value matching a uniform item's fitted var, if this is anything but NO_FEMALE_UNIFORM, we generate/load female uniform sprites matching all previously decided variables +style_flags: mutant race appearance flags, mostly used for worn_overlays() + +use_mob_overlay_icon: if FALSE, it will always use the default_icon_file even if mob_overlay_icon is present. */ /obj/item/proc/build_worn_icon(default_layer = 0, default_icon_file = null, isinhands = FALSE, femaleuniform = NO_FEMALE_UNIFORM, override_state, style_flags = NONE, use_mob_overlay_icon = TRUE) From 694abd072458356da51baefc9681725bf8902b49 Mon Sep 17 00:00:00 2001 From: Artur Date: Tue, 31 Mar 2020 19:44:01 +0300 Subject: [PATCH 055/190] Fixes compile. I blame putnam. --- code/modules/antagonists/bloodsucker/datum_bloodsucker.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm index edac8763c8..e70160484e 100644 --- a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm +++ b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm @@ -90,7 +90,7 @@ owner.current.blood_volume = max(owner.current.blood_volume,BLOOD_VOLUME_SAFE) /datum/antagonist/bloodsucker/threat() - return ..()+3*vamplevel + return ..()+3*bloodsucker_level /datum/antagonist/bloodsucker/proc/SelectFirstName() From 7a5bb4804d59ec0cb910fac1ee25c00e7649d16b Mon Sep 17 00:00:00 2001 From: Artur Date: Tue, 31 Mar 2020 19:46:54 +0300 Subject: [PATCH 056/190] Nice spacing --- code/modules/antagonists/bloodsucker/datum_bloodsucker.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm index e70160484e..946be31ed6 100644 --- a/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm +++ b/code/modules/antagonists/bloodsucker/datum_bloodsucker.dm @@ -90,7 +90,7 @@ owner.current.blood_volume = max(owner.current.blood_volume,BLOOD_VOLUME_SAFE) /datum/antagonist/bloodsucker/threat() - return ..()+3*bloodsucker_level + return ..() + 3 * bloodsucker_level /datum/antagonist/bloodsucker/proc/SelectFirstName() From 6e62ea5cb1dd6634e466ca8d5af8f7eb32964a78 Mon Sep 17 00:00:00 2001 From: Artur Date: Wed, 1 Apr 2020 09:15:31 +0300 Subject: [PATCH 057/190] Quickfix for baaad problem --- code/modules/antagonists/bloodsucker/bloodsucker_life.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm index 178d069f52..fe43310875 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm @@ -236,7 +236,7 @@ else // No damage, OR toxin healed AND brute healed and NOT in coffin (since you cannot heal burn) if(total_damage <= 0 || total_toxloss <= 0 && total_brute <= 0 && !istype(owner.current.loc, /obj/structure/closet/crate/coffin)) // Not Daytime, Not in Torpor - if(!SSticker.mode.is_daylight() && HAS_TRAIT_FROM(owner.current, TRAIT_DEATHCOMA, "bloodsucker")) + if(!SSticker.mode.is_daylight() && HAS_TRAIT_FROM(owner.current, TRAIT_FAKEDEATH, "bloodsucker")) Torpor_End() // Fake Unconscious if(poweron_masquerade == TRUE && total_damage >= owner.current.getMaxHealth() - HEALTH_THRESHOLD_FULLCRIT) @@ -261,6 +261,7 @@ owner.current.stat = SOFT_CRIT owner.current.remove_status_effect(STATUS_EFFECT_UNCONSCIOUS) owner.current.cure_fakedeath("bloodsucker") + REMOVE_TRAIT(owner.current, TRAIT_FAKEDEATH, "bloodsucker") REMOVE_TRAIT(owner.current, TRAIT_NODEATH, "bloodsucker") REMOVE_TRAIT(owner.current, TRAIT_RESISTHIGHPRESSURE, "bloodsucker") REMOVE_TRAIT(owner.current, TRAIT_RESISTLOWPRESSURE, "bloodsucker") From ca1f3d9a1e10e10cba8cc5a9d5b6477f7e0db7cd Mon Sep 17 00:00:00 2001 From: Artur Date: Wed, 1 Apr 2020 11:45:11 +0300 Subject: [PATCH 058/190] Added succ sound for the victim --- code/modules/antagonists/bloodsucker/powers/feed.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/modules/antagonists/bloodsucker/powers/feed.dm b/code/modules/antagonists/bloodsucker/powers/feed.dm index 71b866b2f4..40e0dbd25a 100644 --- a/code/modules/antagonists/bloodsucker/powers/feed.dm +++ b/code/modules/antagonists/bloodsucker/powers/feed.dm @@ -275,8 +275,9 @@ break // Blood Gulp Sound - owner.playsound_local(null, 'sound/effects/singlebeat.ogg', 40, 1) // Play THIS sound for user only. The "null" is where turf would go if a location was needed. Null puts it right in their head. - + owner.playsound_local(null, 'sound/effects/singlebeat.ogg', 40, TRUE) + if(!amSilent) + target.playsound_local(null, 'sound/effects/singlebeat.ogg', 40, TRUE) // DONE! //DeactivatePower(user,target) if(amSilent) @@ -299,7 +300,7 @@ SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "drankkilled", /datum/mood_event/drankkilled) // BAD // in bloodsucker_life.dm /datum/action/bloodsucker/feed/ContinueActive(mob/living/user, mob/living/target) - return ..() && target && (!target_grappled || user.pulling == target) && sucking_checks(target, TRUE, TRUE) // Active, and still Antag, + return ..() && target && (!target_grappled || user.pulling == target) && sucking_checks(target, TRUE, TRUE) // Active, and still antag, // NOTE: We only care about pulling if target started off that way. Mostly only important for Aggressive feed. /datum/action/bloodsucker/feed/proc/ApplyVictimEffects(mob/living/target) From 67f43191771538edf5992cb797f3791b4f699a34 Mon Sep 17 00:00:00 2001 From: Artur Date: Fri, 3 Apr 2020 01:52:08 +0300 Subject: [PATCH 059/190] fixes burn regen and some tweaks --- .../game/gamemodes/bloodsucker/bloodsucker.dm | 4 +- .../bloodsucker/bloodsucker_life.dm | 58 +++++++++---------- .../bloodsucker/items/bloodsucker_organs.dm | 3 +- 3 files changed, 34 insertions(+), 31 deletions(-) diff --git a/code/game/gamemodes/bloodsucker/bloodsucker.dm b/code/game/gamemodes/bloodsucker/bloodsucker.dm index 01b6035034..bb776d7bc0 100644 --- a/code/game/gamemodes/bloodsucker/bloodsucker.dm +++ b/code/game/gamemodes/bloodsucker/bloodsucker.dm @@ -11,8 +11,10 @@ // The antags you're allowed to be if turning Vassal. /proc/AmBloodsucker(mob/living/M, falseIfInDisguise = FALSE) + if(!M.mind) + return FALSE // No Datum - if(!M.mind || !M.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)) + if(!M.mind.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)) return FALSE return TRUE diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm index fe43310875..0814fd217d 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm @@ -93,27 +93,25 @@ owner.current.adjustCloneLoss(-0.1 * (actual_regen * 2) * mult, 0) owner.current.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1 * (actual_regen * 4) * mult) // No Bleeding - if(ishuman(owner.current)) //NOTE Current bleeding is horrible, not to count the amount of blood ballistics delete. + /*if(ishuman(owner.current)) //NOTE Current bleeding is horrible, not to count the amount of blood ballistics delete. var/mob/living/carbon/human/H = owner.current if(H.bleed_rate > 0) //Only heal bleeding if we are actually bleeding - H.bleed_rate =- 0.5 + actual_regen * 0.2 * mult + H.bleed_rate =- 0.5 + actual_regen * 0.2 */ if(iscarbon(owner.current)) // Damage Heal: Do I have damage to ANY bodypart? var/mob/living/carbon/C = owner.current var/costMult = 1 // Coffin makes it cheaper var/fireheal = 0 // BURN: Heal in Coffin while Fakedeath, or when damage above maxhealth (you can never fully heal fire) - var/amInCoffinWhileTorpor = istype(C.loc, /obj/structure/closet/crate/coffin) && (mult == 0 || HAS_TRAIT(C, TRAIT_DEATHCOMA)) // Check for mult 0 OR death coma. (mult 0 means we're testing from coffin) + var/amInCoffinWhileTorpor = istype(C.loc, /obj/structure/closet/crate/coffin) && (mult == 0 || HAS_TRAIT(C, TRAIT_FAKEDEATH)) // Check for mult 0 OR death coma. (mult 0 means we're testing from coffin) if(amInCoffinWhileTorpor) mult *= 4 // Increase multiplier if we're sleeping in a coffin. - fireheal = min(C.getFireLoss(), actual_regen) // NOTE: Burn damage ONLY heals in torpor. - costMult = 0.25 + fireheal = min(C.getFireLoss(), regen_rate) // NOTE: Burn damage ONLY heals in torpor. C.ExtinguishMob() CureDisabilities() // Extinguish Fire C.remove_all_embedded_objects() // Remove Embedded! owner.current.regenerate_organs() // Heal Organs (will respawn original eyes etc. but we replace right away, next) CheckVampOrgans() // Heart, Eyes - else - if(owner.current.blood_volume <= 0) // No Blood? Lower Mult - mult = 0.25 + if(check_limbs(costMult)) + return TRUE // BRUTE: Always Heal var/bruteheal = min(C.getBruteLoss(), actual_regen) @@ -131,27 +129,29 @@ //C.heal_overall_damage(bruteheal * mult, fireheal * mult) // REMOVED: We need to FORCE this, because otherwise, vamps won't heal EVER. Swapped to above. AddBloodVolume((bruteheal * -0.5 + fireheal * -1 + toxinheal * -0.2) / mult * costMult) // Costs blood to heal return TRUE // Healed! Done for this tick. - if(amInCoffinWhileTorpor) // Limbs? (And I have no other healing) - var/list/missing = owner.current.get_missing_limbs() // Heal Missing - if(missing.len) // Cycle through ALL limbs and regen them! - for (var/targetLimbZone in missing) // 1) Find ONE Limb and regenerate it. - owner.current.regenerate_limb(targetLimbZone, 0) // regenerate_limbs() <--- If you want to EXCLUDE certain parts, do it like this ----> regenerate_limbs(0, list("head")) - var/obj/item/bodypart/L = owner.current.get_bodypart(targetLimbZone) // 2) Limb returns Damaged - AddBloodVolume(50 * costMult) // Costs blood to heal - L.brute_dam = 60 - to_chat(owner.current, "Your flesh knits as it regrows [L]!") - playsound(owner.current, 'sound/magic/demon_consume.ogg', 50, 1) - // DONE! After regenerating ANY number of limbs, we stop here. - return TRUE - else // REMOVED: For now, let's just leave prosthetics on. Maybe you WANT to be a robovamp. In actuality, robovamps are very bad. - // Remove Prosthetic/False Limb - for(var/obj/item/bodypart/BP in C.bodyparts) - if(istype(BP) && BP.status == 2) - to_chat(owner.current, "Your body expels the [BP]!") - BP.drop_limb() - return TRUE - // NOTE: Limbs have a "status", like their hosts "stat". 2 is dead (aka Prosthetic). 1 seems to be idle/alive.*/ - return FALSE + + + +/datum/antagonist/bloodsucker/proc/check_limbs(costMult) + var/limb_regen_cost = 50 * costMult + var/mob/living/carbon/C = owner.current + var/list/missing = C.get_missing_limbs() + if(missing.len && C.blood_volume < limb_regen_cost + 5) + return FALSE + for(var/targetLimbZone in missing) // 1) Find ONE Limb and regenerate it. + C.regenerate_limb(targetLimbZone, FALSE) // regenerate_limbs() <--- If you want to EXCLUDE certain parts, do it like this ----> regenerate_limbs(0, list("head")) + C.AddBloodVolume(50) + var/obj/item/bodypart/L = C.get_bodypart(targetLimbZone) // 2) Limb returns Damaged + L.brute_dam = 60 + to_chat(C, "Your flesh knits as it regrows your [L]!") + playsound(C, 'sound/magic/demon_consume.ogg', 50, TRUE) + return TRUE + /*for(var/obj/item/bodypart/BP in C.bodyparts) + if(!istype(BP) && !BP.status == 2) + return FALSE + to_chat(C, "Your body expels the [BP]!") + BP.drop_limb() + return TRUE */ /datum/antagonist/bloodsucker/proc/CureDisabilities() var/mob/living/carbon/C = owner.current diff --git a/code/modules/antagonists/bloodsucker/items/bloodsucker_organs.dm b/code/modules/antagonists/bloodsucker/items/bloodsucker_organs.dm index e4e26fe034..640c53946f 100644 --- a/code/modules/antagonists/bloodsucker/items/bloodsucker_organs.dm +++ b/code/modules/antagonists/bloodsucker/items/bloodsucker_organs.dm @@ -5,7 +5,8 @@ var/obj/item/organ/O // Heart O = owner.current.getorganslot(ORGAN_SLOT_HEART) - if(!istype(O, /obj/item/organ/heart/vampheart)) + + if(!istype(O, /obj/item/organ/heart/vampheart) && !istype(O, /obj/item/organ/heart/demon)) qdel(O) var/obj/item/organ/heart/vampheart/H = new H.Insert(owner.current) From 991f73893ffa020a21f5fe2a2fa4450323e724f0 Mon Sep 17 00:00:00 2001 From: Artur Date: Fri, 3 Apr 2020 02:00:41 +0300 Subject: [PATCH 060/190] Fuck me im tired --- code/modules/antagonists/bloodsucker/bloodsucker_life.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm index 0814fd217d..ae685c5603 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm @@ -140,7 +140,7 @@ return FALSE for(var/targetLimbZone in missing) // 1) Find ONE Limb and regenerate it. C.regenerate_limb(targetLimbZone, FALSE) // regenerate_limbs() <--- If you want to EXCLUDE certain parts, do it like this ----> regenerate_limbs(0, list("head")) - C.AddBloodVolume(50) + AddBloodVolume(50) var/obj/item/bodypart/L = C.get_bodypart(targetLimbZone) // 2) Limb returns Damaged L.brute_dam = 60 to_chat(C, "Your flesh knits as it regrows your [L]!") From df277721d7ffcdbb90ef62d342767714c4ed148f Mon Sep 17 00:00:00 2001 From: Kraseo Date: Mon, 6 Apr 2020 16:21:06 +0200 Subject: [PATCH 061/190] public mining is gone crab crab crab --- _maps/map_files/KiloStation/KiloStation.dmm | 428 ++++++++++++++------ 1 file changed, 305 insertions(+), 123 deletions(-) diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 446fe3e519..761ef43e1d 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -19002,7 +19002,7 @@ "aEK" = ( /obj/structure/sign/poster/contraband/random, /turf/closed/wall/rust, -/area/hallway/secondary/entry) +/area/security/vacantoffice) "aEL" = ( /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" @@ -21544,6 +21544,9 @@ pixel_x = -26 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "aIZ" = ( @@ -62405,7 +62408,7 @@ name = "EMERGENCY STORAGE" }, /turf/closed/wall, -/area/hallway/secondary/entry) +/area/security/vacantoffice) "bSM" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/external{ @@ -62669,6 +62672,9 @@ pixel_x = -23 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bTf" = ( @@ -62869,17 +62875,23 @@ /turf/closed/wall/rust, /area/hallway/secondary/exit/departure_lounge) "bTy" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/starboard/aft) +/turf/open/floor/plasteel, +/area/hallway/secondary/exit/departure_lounge) "bTz" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral, @@ -62934,6 +62946,9 @@ /obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bTE" = ( @@ -63096,6 +63111,9 @@ c_tag = "Arrivals Dock"; name = "shuttle camera" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bTO" = ( @@ -63168,17 +63186,17 @@ /turf/open/floor/plasteel/dark, /area/hallway/secondary/exit/departure_lounge) "bTS" = ( -/obj/docking_port/stationary{ - dir = 8; - dwidth = 3; - height = 5; - id = "commonmining_home"; - name = "SS13: Common Mining Dock"; - roundstart_template = /datum/map_template/shuttle/mining_common/meta; - width = 7 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/security/vacantoffice) "bTT" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -63287,8 +63305,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) @@ -63398,12 +63419,8 @@ /turf/open/floor/plasteel/showroomfloor, /area/security/warden) "bUl" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/hallway/secondary/entry) +/turf/closed/wall, +/area/security/vacantoffice) "bUm" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -63464,9 +63481,8 @@ /turf/open/floor/plasteel/dark, /area/hallway/secondary/exit/departure_lounge) "bUt" = ( -/obj/structure/sign/warning/electricshock, /turf/closed/wall/rust, -/area/hallway/secondary/entry) +/area/security/vacantoffice) "bUu" = ( /obj/structure/cable{ icon_state = "1-2" @@ -64674,11 +64690,21 @@ }, /area/maintenance/starboard/aft) "bWn" = ( -/obj/machinery/door/airlock/external{ - name = "Common Mining Dock" +/obj/machinery/door/airlock/maintenance{ + name = "Vacant Office" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, -/area/hallway/secondary/entry) +/area/security/vacantoffice) "bWo" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -64718,6 +64744,15 @@ /area/security/warden) "bWq" = ( /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bWr" = ( @@ -64799,17 +64834,8 @@ /turf/open/floor/plasteel, /area/hallway/primary/starboard) "bWx" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/computer/shuttle/mining/common{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/hallway/secondary/entry) +/turf/closed/wall, +/area/security/vacantoffice) "bWy" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -65052,15 +65078,18 @@ dir = 4; pixel_x = -23 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, /obj/effect/turf_decal/tile/blue{ dir = 8 }, /obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bWV" = ( @@ -65105,6 +65134,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bWY" = ( @@ -65133,6 +65165,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 9 }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bXa" = ( @@ -65289,6 +65324,9 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bXo" = ( @@ -65367,6 +65405,9 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "bXv" = ( @@ -65786,6 +65827,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ dir = 8 }, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bXY" = ( @@ -66680,6 +66724,9 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bZk" = ( @@ -67429,6 +67476,9 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer1{ dir = 1 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "cal" = ( @@ -67587,7 +67637,7 @@ "cav" = ( /obj/structure/sign/poster/contraband/random, /turf/closed/wall, -/area/hallway/secondary/entry) +/area/security/vacantoffice) "caw" = ( /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -67848,6 +67898,10 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "caP" = ( @@ -67855,6 +67909,9 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 5 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "caQ" = ( @@ -70240,9 +70297,6 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "2-4" - }, /turf/open/floor/plating{ icon_state = "platingdmg1" }, @@ -74728,6 +74782,9 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/dark, /area/hallway/secondary/entry) "cmk" = ( @@ -81480,8 +81537,18 @@ /turf/open/floor/plasteel/dark, /area/maintenance/port) "cyG" = ( -/turf/open/floor/plating, -/area/hallway/secondary/entry) +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + areastring = "/area/security/vacant"; + name = "Vacant Office APC"; + pixel_y = 24 + }, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/turf/open/floor/wood, +/area/security/vacantoffice) "cyI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sink/kitchen{ @@ -85332,6 +85399,9 @@ "cJp" = ( /obj/effect/turf_decal/tile/red, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 10 + }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "cJq" = ( @@ -87185,9 +87255,22 @@ "cZm" = ( /turf/closed/wall/rust, /area/security/prison) +"dbY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer1{ + dir = 1 + }, +/obj/structure/chair/stool, +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/security/vacantoffice) "dis" = ( /turf/closed/wall/r_wall/rust, /area/bridge) +"dlg" = ( +/obj/machinery/light, +/turf/open/floor/wood, +/area/security/vacantoffice) "dxq" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral{ @@ -87242,6 +87325,14 @@ icon_state = "panelscorched" }, /area/maintenance/starboard/fore) +"eaJ" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/airalarm/directional/west, +/obj/item/twohanded/required/kirbyplants/dead, +/turf/open/floor/wood, +/area/security/vacantoffice) "elZ" = ( /obj/machinery/status_display/evac, /turf/closed/wall/rust, @@ -87338,6 +87429,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"fkk" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken6" + }, +/area/security/vacantoffice) "fyr" = ( /obj/machinery/light{ dir = 4 @@ -87362,6 +87458,11 @@ dir = 8 }, /area/hallway/primary/fore) +"gmF" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken" + }, +/area/security/vacantoffice) "gnA" = ( /obj/machinery/airalarm{ dir = 1; @@ -87428,9 +87529,20 @@ /obj/structure/sign/departments/evac, /turf/closed/wall/rust, /area/hallway/secondary/exit/departure_lounge) +"gKu" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/security/vacantoffice) "gMU" = ( /turf/closed/wall/r_wall/rust, /area/ai_monitored/turret_protected/ai_upload) +"gPA" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken3" + }, +/area/security/vacantoffice) "hgW" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/chair/stool, @@ -87452,6 +87564,12 @@ "hAb" = ( /turf/closed/wall/r_wall/rust, /area/security/courtroom) +"hDh" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/closet/cardboard, +/obj/effect/spawner/bundle/costume/maid, +/turf/open/floor/wood, +/area/security/vacantoffice) "hNk" = ( /turf/closed/wall/r_wall/rust, /area/security/prison) @@ -87660,17 +87778,12 @@ /turf/closed/mineral/random/labormineral, /area/space/nearstation) "jQY" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/table/wood, +/obj/item/paper_bin, +/turf/open/floor/wood{ + icon_state = "wood-broken4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment, -/obj/item/clothing/under/costume/maid, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/starboard/aft) +/area/security/vacantoffice) "jRw" = ( /obj/structure/sign/poster/official/high_class_martini, /turf/closed/wall/r_wall, @@ -87753,6 +87866,18 @@ }, /turf/open/floor/wood, /area/maintenance/port/fore) +"jUX" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/wood, +/area/security/vacantoffice) "jUZ" = ( /obj/item/poster/random_contraband, /obj/item/poster/random_contraband, @@ -87773,6 +87898,10 @@ "khA" = ( /turf/closed/wall/rust, /area/construction/mining/aux_base) +"koc" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer1, +/turf/open/floor/wood, +/area/security/vacantoffice) "krJ" = ( /turf/closed/wall/rust, /area/hallway/secondary/exit/departure_lounge) @@ -87794,6 +87923,12 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plating, /area/maintenance/port/fore) +"kzw" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) "kIJ" = ( /turf/open/floor/wood{ icon_state = "wood-broken7" @@ -87803,6 +87938,11 @@ /obj/structure/sign/nanotrasen, /turf/closed/wall, /area/maintenance/port/fore) +"kXo" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck, +/turf/open/floor/wood, +/area/security/vacantoffice) "leX" = ( /obj/structure/chair/stool, /turf/open/floor/wood{ @@ -87883,6 +88023,17 @@ }, /turf/open/floor/plasteel/dark, /area/science/research) +"mKp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/security/vacantoffice) "mLN" = ( /obj/effect/decal/cleanable/dirt, /turf/closed/mineral/random/labormineral, @@ -87953,6 +88104,19 @@ }, /turf/open/space/basic, /area/hallway/secondary/entry) +"oUc" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/table/wood, +/obj/item/folder/paperwork, +/turf/open/floor/wood, +/area/security/vacantoffice) +"ppP" = ( +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/security/vacantoffice) "pCe" = ( /obj/effect/decal/cleanable/glass, /turf/open/floor/plating/asteroid/airless, @@ -88190,12 +88354,11 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "uqy" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/clothing/under/rank/civilian/janitor/maid, -/turf/open/floor/plating{ - icon_state = "platingdmg1" +/obj/machinery/light{ + dir = 1 }, -/area/maintenance/starboard/aft) +/turf/open/floor/wood, +/area/security/vacantoffice) "uxQ" = ( /obj/effect/decal/cleanable/ash, /turf/closed/mineral/random/labormineral, @@ -88203,9 +88366,20 @@ "uzR" = ( /turf/closed/wall/rust, /area/storage/primary) +"uGi" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/wood, +/area/security/vacantoffice) +"uRM" = ( +/turf/open/floor/wood, +/area/security/vacantoffice) "uWo" = ( /turf/closed/wall/rust, /area/security/checkpoint/medical) +"vle" = ( +/obj/structure/festivus, +/turf/open/floor/wood, +/area/security/vacantoffice) "vmu" = ( /obj/structure/table/wood, /obj/effect/turf_decal/tile/neutral{ @@ -88231,6 +88405,10 @@ /mob/living/simple_animal/pet/bumbles, /turf/open/floor/plasteel, /area/hydroponics) +"wiK" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/wood, +/area/security/vacantoffice) "wmX" = ( /turf/closed/wall/rust, /area/quartermaster/qm) @@ -88328,6 +88506,10 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, /area/security/prison) +"ykB" = ( +/obj/structure/chair/stool, +/turf/open/floor/wood, +/area/security/vacantoffice) (1,1,1) = {" aaa @@ -125762,7 +125944,7 @@ bOl bSJ bSI ukP -uqy +bGr bEg bAT bOC @@ -126016,10 +126198,10 @@ bNw bTP bUu bWh -bTy +cax cxB ceN -jQY +chZ cxB cjE bXb @@ -126270,15 +126452,15 @@ bOA bOH bSH bNw -bSr +bWx aEK -bSd -bUl -bSd -bUl -bSr bUt -bSd +bWx +bUt +bWx +bWx +bUt +bUt bXj ckS bUu @@ -126527,15 +126709,15 @@ bNM tYn aVM bNx -bSr +bWx cyG -cyG -cyG -cyG -cyG -cyG -cyG -bSr +mKp +oUc +eaJ +uRM +uRM +vle +bWx bXz ccB cgb @@ -126785,14 +126967,14 @@ bZW bWw bTq bSL -cyG -cyG -cyG -cyG -cyG -cyG -cyG -bSr +jQY +kzw +gmF +gKu +uRM +uRM +uRM +bWx bEg bEg bEg @@ -127041,15 +127223,15 @@ cad bhY car bTr -bSr -cyG -cyG -cyG -cyG -cyG -cyG -cyG -bSr +bWx +uqy +wiK +uGi +jUX +koc +dbY +dlg +bWx bYf ceU cgI @@ -127299,14 +127481,14 @@ bQQ bSN bTs cav -cyG -cyG -cyG -cyG -cyG -cyG -cyG -bSr +uRM +fkk +ppP +bTS +ykB +kXo +ykB +bWx bPJ bUN hxn @@ -127555,15 +127737,15 @@ bTk bXL bXx bPe -bSd -cyG -cyG -cyG +bUt +hDh +uRM +uRM bTS -cyG -cyG -cyG -bSr +uRM +ykB +gPA +bWx bPJ bQa hxn @@ -127815,12 +127997,12 @@ bTv krJ krJ krJ -bPe +bOc bWn bWx -bSr +bWx bSL -bSr +bWx bSr cgx hxn @@ -129096,7 +129278,7 @@ bMO bOR cak aIY -cmD +bTy bTe bXu bXn From 154e145e2582b1d741d9735ff498b50bbbf66d92 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 6 Apr 2020 18:40:20 -0700 Subject: [PATCH 062/190] storage --- code/__DEFINES/inventory.dm | 8 ----- code/__DEFINES/storage.dm | 32 +++++++++++++++++++ .../components/storage/concrete/rped.dm | 1 + .../components/storage/concrete/stack.dm | 1 + code/datums/components/storage/storage.dm | 15 +++++++-- code/game/objects/items.dm | 9 ++++++ tgstation.dme | 1 + 7 files changed, 56 insertions(+), 11 deletions(-) create mode 100644 code/__DEFINES/storage.dm diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index 2756be76fb..2aba7b496b 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -1,13 +1,5 @@ /*ALL DEFINES RELATED TO INVENTORY OBJECTS, MANAGEMENT, ETC, GO HERE*/ -//ITEM INVENTORY WEIGHT, FOR w_class -#define WEIGHT_CLASS_TINY 1 //Usually items smaller then a human hand, ex: Playing Cards, Lighter, Scalpel, Coins/Money -#define WEIGHT_CLASS_SMALL 2 //Pockets can hold small and tiny items, ex: Flashlight, Multitool, Grenades, GPS Device -#define WEIGHT_CLASS_NORMAL 3 //Standard backpacks can carry tiny, small & normal items, ex: Fire extinguisher, Stunbaton, Gas Mask, Metal Sheets -#define WEIGHT_CLASS_BULKY 4 //Items that can be weilded or equipped but not stored in a normal bag, ex: Defibrillator, Backpack, Space Suits -#define WEIGHT_CLASS_HUGE 5 //Usually represents objects that require two hands to operate, ex: Shotgun, Two Handed Melee Weapons - Can not fit in Boh -#define WEIGHT_CLASS_GIGANTIC 6 //Essentially means it cannot be picked up or placed in an inventory, ex: Mech Parts, Safe - Can not fit in Boh - //Inventory depth: limits how many nested storage items you can access directly. //1: stuff in mob, 2: stuff in backpack, 3: stuff in box in backpack, etc #define INVENTORY_DEPTH 3 diff --git a/code/__DEFINES/storage.dm b/code/__DEFINES/storage.dm new file mode 100644 index 0000000000..065551b975 --- /dev/null +++ b/code/__DEFINES/storage.dm @@ -0,0 +1,32 @@ +// storage_flags variable on /datum/component/storage + +// Storage limits. These can be combined I guess but you really, really shouldn't (don't do it really) +/// Check max_items and contents.len when trying to insert +#define STORAGE_LIMIT_MAX_ITEMS (1<<0) +/// Check w_class and max_combined_w_class, aka legacy behavior if you combine it with [STORAGE_LIMIT_MAX_ITEMS]. +#define STORAGE_LIMIT_COMBINED_W_CLASS (1<<1) +/// Use max_w_class for maximum w_class but use the new volume system. Will automatically force rendering to use the new volume/baystation scaling UI so this is kind of incompatible with stuff like stack storage etc etc. +#define STORAGE_LIMIT_VOLUME (1<<2) + +//ITEM INVENTORY WEIGHT, FOR w_class +/// Usually items smaller then a human hand, ex: Playing Cards, Lighter, Scalpel, Coins/Money +#define WEIGHT_CLASS_TINY 1 +/// Pockets can hold small and tiny items, ex: Flashlight, Multitool, Grenades, GPS Device +#define WEIGHT_CLASS_SMALL 2 +/// Standard backpacks can carry tiny, small & normal items, ex: Fire extinguisher, Stunbaton, Gas Mask, Metal Sheets +#define WEIGHT_CLASS_NORMAL 3 +/// Items that can be weilded or equipped but not stored in a normal bag, ex: Defibrillator, Backpack, Space Suits +#define WEIGHT_CLASS_BULKY 4 +/// Usually represents objects that require two hands to operate, ex: Shotgun, Two Handed Melee Weapons - Can not fit in Boh +#define WEIGHT_CLASS_HUGE 5 +/// Essentially means it cannot be picked up or placed in an inventory, ex: Mech Parts, Safe - Can not fit in Boh +#define WEIGHT_CLASS_GIGANTIC 6 + +/// Macro for automatically getting the volume of an item from its w_class. +#define AUTO_SCALE_VOLUME(w_class) (w_class ** 2) +/// Macro for automatically getting the volume of a storage item from its max_w_class and max_items. +#define AUTO_SCALE_STORAGE_VOLUME(w_class, max_items) (AUTO_SCALE_VOLUME(w_class) * max_items) + +// UI defines +/// Minimum pixels an item must have in volumetric scaled storage UI +#define MINIMUM_PIXELS_PER_ITEM 5 diff --git a/code/datums/components/storage/concrete/rped.dm b/code/datums/components/storage/concrete/rped.dm index 2f95466238..1e609c4107 100644 --- a/code/datums/components/storage/concrete/rped.dm +++ b/code/datums/components/storage/concrete/rped.dm @@ -3,6 +3,7 @@ allow_quick_gather = TRUE allow_quick_empty = TRUE click_gather = TRUE + storage_flags = STORAGE_LIMIT_MAX_ITEMS | STORAGE_LIMIT_COMBINED_W_CLASS max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = 100 max_items = 100 diff --git a/code/datums/components/storage/concrete/stack.dm b/code/datums/components/storage/concrete/stack.dm index 1f0c44c650..76c7bc2af5 100644 --- a/code/datums/components/storage/concrete/stack.dm +++ b/code/datums/components/storage/concrete/stack.dm @@ -1,6 +1,7 @@ //Stack-only storage. /datum/component/storage/concrete/stack display_numerical_stacking = TRUE + storage_flags = STORAGE_LIMIT_COMBINED_W_CLASS | STORAGE_LIMIT_MAX_ITEMS var/max_combined_stack_amount = 300 max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = WEIGHT_CLASS_NORMAL * 14 diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 55e5c03c2b..e8fe8c6698 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -21,9 +21,16 @@ var/locked = FALSE //when locked nothing can see inside or use it. - var/max_w_class = WEIGHT_CLASS_SMALL //max size of objects that will fit. - var/max_combined_w_class = 14 //max combined sizes of objects that will fit. - var/max_items = 7 //max number of objects that will fit. + /// Storage flags, including what kinds of limiters we use for how many items we can hold + var/storage_flags = STORAGE_LIMIT_VOLUME + /// Max w_class we can hold. Applies to [STORAGE_LIMIT_COMBINED_W_CLASS] and [STORAGE_LIMIT_VOLUME] + var/max_w_class = WEIGHT_CLASS_SMALL + /// Max combined w_class. Applies to [STORAGE_LIMIT_COMBINED_W_CLASS] + var/max_combined_w_class = WEIGHT_CLASS_SMALL * 7 + /// Max items we can hold. Applies to [STORAGE_LIMIT_MAX_ITEMS] + var/max_items = 7 + /// Max volume we can hold. Applies to [STORAGE_LIMIT_VOLUME]. Auto scaled on New() if unset. + var/max_volume var/emp_shielded = FALSE @@ -65,6 +72,8 @@ /datum/component/storage/Initialize(datum/component/storage/concrete/master) if(!isatom(parent)) return COMPONENT_INCOMPATIBLE + if(isnull(max_volume)) + max_volume = AUTO_SCALE_STORAGE_VOLUME(max_w_class, max_items) if(master) change_master(master) boxes = new(null, src) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 78dde8d206..278c8bccbc 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -33,7 +33,12 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) var/hitsound = null var/usesound = null var/throwhitsound = null + + /// Weight class for how much storage capacity it uses and how big it physically is meaning storages can't hold it if their maximum weight class isn't as high as it. var/w_class = WEIGHT_CLASS_NORMAL + /// Volume override for the item, otherwise automatically calculated from w_class. + var/volume + var/total_mass //Total mass in arbitrary pound-like values. If there's no balance reasons for an item to have otherwise, this var should be the item's weight in pounds. var/slot_flags = 0 //This is used to determine on which slots an item can fit. pass_flags = PASSTABLE @@ -850,3 +855,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if (HAS_TRAIT(src, TRAIT_NODROP)) return return ..() + +/// Get an item's volume that it uses when being stored. +/obj/item/proc/get_volume() + return isnull(volume)? AUTOSCALE_VOLUME(w_class) : volume diff --git a/tgstation.dme b/tgstation.dme index 7d64b2ce7f..6cf1d09437 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -98,6 +98,7 @@ #include "code\__DEFINES\stat.dm" #include "code\__DEFINES\stat_tracking.dm" #include "code\__DEFINES\status_effects.dm" +#include "code\__DEFINES\storage.dm" #include "code\__DEFINES\subsystems.dm" #include "code\__DEFINES\tgs.config.dm" #include "code\__DEFINES\tgs.dm" From bf8b4134b7542c292493fadf8021e601596c1e4c Mon Sep 17 00:00:00 2001 From: Putnam Date: Mon, 6 Apr 2020 23:01:19 -0700 Subject: [PATCH 063/190] Added latejoin changelings. --- .../dynamic/dynamic_rulesets_latejoin.dm | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm index cec6f31e99..da33da5f43 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm @@ -222,6 +222,26 @@ message_admins("[M.name] was made into a bloodsucker by dynamic.") return TRUE +////////////////////////////////////////////// +// // +// CHANGELINGS // +// // +////////////////////////////////////////////// + +/datum/dynamic_ruleset/latejoin/changeling + name = "Changeling Infiltrator" + config_tag = "latejoin_changeling" + antag_flag = ROLE_CHANGELING + antag_datum = /datum/antagonist/changeling + restricted_roles = list("AI", "Cyborg") + protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") + required_candidates = 1 + weight = 3 + cost = 15 + requirements = list(101,101,101,101,101,101,101,101,101,101) + property_weights = list("trust" = -2, "valid" = 2) + high_population_requirement = 101 + ////////////////////////////////////////////// // // // COLLECTOR // From 7ec669ecd493940f383f08f19f2518fbd4782301 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 7 Apr 2020 16:11:58 -0700 Subject: [PATCH 064/190] bet --- code/__DEFINES/dcs/signals.dm | 1 + code/__DEFINES/storage.dm | 2 + code/_onclick/hud/screen_objects.dm | 38 --- code/_onclick/hud/screen_objects/storage.dm | 41 ++++ code/datums/components/storage/storage.dm | 141 ++--------- code/datums/components/storage/ui.dm | 259 ++++++++++++++++++++ code/modules/mob/logout.dm | 1 + icons/mob/screen_gen.dmi | Bin 118425 -> 118971 bytes 8 files changed, 326 insertions(+), 157 deletions(-) create mode 100644 code/_onclick/hud/screen_objects/storage.dm create mode 100644 code/datums/components/storage/ui.dm diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 1ef8b9bb66..6255319a08 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -190,6 +190,7 @@ #define COMSIG_LIVING_MINOR_SHOCK "living_minor_shock" //sent by stuff like stunbatons and tasers: () #define COMSIG_LIVING_REVIVE "living_revive" //from base of mob/living/revive() (full_heal, admin_revive) #define COMSIG_MOB_CLIENT_LOGIN "comsig_mob_client_login" //sent when a mob/login() finishes: (client) +#define COMSIG_MOB_CLIENT_LOGOUT "comsig_mob_client_logout" //sent when a mob/logout() starts: (client) #define COMSIG_MOB_CLIENT_MOVE "comsig_mob_client_move" //sent when client/Move() finishes with no early returns: (client, direction, n, oldloc) #define COMSIG_LIVING_GUN_PROCESS_FIRE "living_gun_process_fire" //from base of /obj/item/gun/proc/process_fire(): (atom/target, params, zone_override) #define COMSIG_LIVING_COMBAT_ENABLED "combatmode_enabled" //from base of mob/living/enable_combat_mode() (was_forced) diff --git a/code/__DEFINES/storage.dm b/code/__DEFINES/storage.dm index 065551b975..27bf502252 100644 --- a/code/__DEFINES/storage.dm +++ b/code/__DEFINES/storage.dm @@ -30,3 +30,5 @@ // UI defines /// Minimum pixels an item must have in volumetric scaled storage UI #define MINIMUM_PIXELS_PER_ITEM 5 +/// Maximum number of objects that will be allowed to be displayed using the volumetric display system. Arbitrary number to prevent server lockups. +#define MAXIMUM_VOLUMETRIC_ITEMS 256 diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index f5eb8535a5..4ed286eb08 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -210,20 +210,6 @@ user.swap_hand(held_index) return TRUE -/obj/screen/close - name = "close" - layer = ABOVE_HUD_LAYER - plane = ABOVE_HUD_PLANE - icon_state = "backpack_close" - -/obj/screen/close/Initialize(mapload, new_master) - . = ..() - master = new_master - -/obj/screen/close/Click() - var/datum/component/storage/S = master - S.hide_from(usr) - return TRUE /obj/screen/drop name = "drop" @@ -406,30 +392,6 @@ else icon_state = "act_rest0" -/obj/screen/storage - name = "storage" - icon_state = "block" - screen_loc = "7,7 to 10,8" - layer = HUD_LAYER - plane = HUD_PLANE - -/obj/screen/storage/Initialize(mapload, new_master) - . = ..() - master = new_master - -/obj/screen/storage/Click(location, control, params) - if(world.time <= usr.next_move) - return TRUE - if(usr.incapacitated()) - return TRUE - if (ismecha(usr.loc)) // stops inventory actions in a mech - return TRUE - if(master) - var/obj/item/I = usr.get_active_held_item() - if(I) - master.attackby(null, I, usr, params) - return TRUE - /obj/screen/throw_catch name = "throw/catch" icon = 'icons/mob/screen_midnight.dmi' diff --git a/code/_onclick/hud/screen_objects/storage.dm b/code/_onclick/hud/screen_objects/storage.dm new file mode 100644 index 0000000000..5e78ba45e0 --- /dev/null +++ b/code/_onclick/hud/screen_objects/storage.dm @@ -0,0 +1,41 @@ +/obj/screen/storage + name = "storage" + var/insertion_click = FALSE + +/obj/screen/storage/Initialize(mapload, new_master) + . = ..() + master = new_master + +/obj/screen/storage/Click(location, control, params) + if(!insertion_click) + return ..() + if(world.time <= usr.next_move) + return TRUE + if(usr.incapacitated()) + return TRUE + if (ismecha(usr.loc)) // stops inventory actions in a mech + return TRUE + if(master) + var/obj/item/I = usr.get_active_held_item() + if(I) + master.attackby(null, I, usr, params) + return TRUE + +/obj/screen/storage/boxes + name = "storage" + icon_state = "block" + screen_loc = "7,7 to 10,8" + layer = HUD_LAYER + plane = HUD_PLANE + insertion_click = TRUE + +/obj/screen/storage/close + name = "close" + layer = ABOVE_HUD_LAYER + plane = ABOVE_HUD_PLANE + icon_state = "backpack_close" + +/obj/screen/storage/close/Click() + var/datum/component/storage/S = master + S.hide_from(usr) + return TRUE diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 576bd196dc..c3ac3c48a8 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -46,8 +46,19 @@ var/display_numerical_stacking = FALSE //stack things of the same type and show as a single object with a number. - var/obj/screen/storage/boxes //storage display object - var/obj/screen/close/closer //close button object + /// "legacy"/default view mode's storage "boxes" + var/obj/screen/storage/boxes/ui_boxes + /// New volumetric storage display mode's left side + var/obj/screen/storage/left/ui_left + /// New volumetric storage display mode's right side + var/obj/screen/storage/right/ui_right + /// New volumetric storage display mode's center 'blocks' + var/obj/screen/storage/continuous/ui_continuous + /// The close button, used in all modes. + var/obj/screen/storage/close/ui_closer + /// Associative list of list(item = screen object) for volumetric storage item screen blocks + var/list/ui_item_blocks + var/current_maxscreensize var/allow_big_nesting = FALSE //allow storage objects of the same or greater size. @@ -120,8 +131,15 @@ /datum/component/storage/Destroy() close_all() - QDEL_NULL(boxes) - QDEL_NULL(closer) + QDEL_NULL(ui_boxes) + QDEL_NULL(ui_closer) + QDEL_NULL(ui_continuous) + QDEL_NULL(ui_left) + QDEL_NULL(ui_right) + // DO NOT USE QDEL_LIST_ASSOC. + for(var/i in ui_item_blocks) + qdel(ui_item_blocks[i]) //qdel the screen object not the item + ui_item_blocks.Cut() LAZYCLEARLIST(is_using) return ..() @@ -309,103 +327,6 @@ if(check_locked()) close_all() -/datum/component/storage/proc/_process_numerical_display() - . = list() - for(var/obj/item/I in accessible_items()) - if(QDELETED(I)) - continue - if(!.[I.type]) - .[I.type] = new /datum/numbered_display(I, 1) - else - var/datum/numbered_display/ND = .[I.type] - ND.number++ - . = sortTim(., /proc/cmp_numbered_displays_name_asc, associative = TRUE) - -//This proc determines the size of the inventory to be displayed. Please touch it only if you know what you're doing. -/datum/component/storage/proc/orient2hud(mob/user, maxcolumns) - var/list/accessible_contents = accessible_items() - var/adjusted_contents = length(accessible_contents) - - //Numbered contents display - var/list/datum/numbered_display/numbered_contents - if(display_numerical_stacking) - numbered_contents = _process_numerical_display() - adjusted_contents = numbered_contents.len - - var/columns = CLAMP(max_items, 1, maxcolumns ? maxcolumns : screen_max_columns) - var/rows = CLAMP(CEILING(adjusted_contents / columns, 1), 1, screen_max_rows) - standard_orient_objs(rows, columns, numbered_contents) - -//This proc draws out the inventory and places the items on it. It uses the standard position. -/datum/component/storage/proc/standard_orient_objs(rows, cols, list/obj/item/numerical_display_contents) - boxes.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+cols-1]:[screen_pixel_x],[screen_start_y+rows-1]:[screen_pixel_y]" - var/cx = screen_start_x - var/cy = screen_start_y - if(islist(numerical_display_contents)) - for(var/type in numerical_display_contents) - var/datum/numbered_display/ND = numerical_display_contents[type] - ND.sample_object.mouse_opacity = MOUSE_OPACITY_OPAQUE - ND.sample_object.screen_loc = "[cx]:[screen_pixel_x],[cy]:[screen_pixel_y]" - ND.sample_object.maptext = "[(ND.number > 1)? "[ND.number]" : ""]" - ND.sample_object.layer = ABOVE_HUD_LAYER - ND.sample_object.plane = ABOVE_HUD_PLANE - cx++ - if(cx - screen_start_x >= cols) - cx = screen_start_x - cy++ - if(cy - screen_start_y >= rows) - break - else - for(var/obj/O in accessible_items()) - if(QDELETED(O)) - continue - O.mouse_opacity = MOUSE_OPACITY_OPAQUE //This is here so storage items that spawn with contents correctly have the "click around item to equip" - O.screen_loc = "[cx]:[screen_pixel_x],[cy]:[screen_pixel_y]" - O.maptext = "" - O.layer = ABOVE_HUD_LAYER - O.plane = ABOVE_HUD_PLANE - cx++ - if(cx - screen_start_x >= cols) - cx = screen_start_x - cy++ - if(cy - screen_start_y >= rows) - break - closer.screen_loc = "[screen_start_x + cols]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" - -/datum/component/storage/proc/show_to(mob/M, set_screen_size = TRUE) - if(!M.client) - return FALSE - var/list/cview = getviewsize(M.client.view) - var/maxallowedscreensize = cview[1]-8 - if(set_screen_size) - current_maxscreensize = maxallowedscreensize - else if(current_maxscreensize) - maxallowedscreensize = current_maxscreensize - if(M.active_storage != src && (M.stat == CONSCIOUS)) - for(var/obj/item/I in accessible_items()) - if(I.on_found(M)) - return FALSE - if(M.active_storage) - M.active_storage.hide_from(M) - orient2hud(M, (isliving(M) ? maxallowedscreensize : 7)) - M.client.screen |= boxes - M.client.screen |= closer - M.client.screen |= accessible_items() - M.active_storage = src - LAZYOR(is_using, M) - return TRUE - -/datum/component/storage/proc/hide_from(mob/M) - if(!M.client) - return TRUE - var/atom/real_location = real_location() - M.client.screen -= boxes - M.client.screen -= closer - M.client.screen -= real_location.contents - if(M.active_storage == src) - M.active_storage = null - LAZYREMOVE(is_using, M) - return TRUE /datum/component/storage/proc/close(mob/M) hide_from(M) @@ -427,24 +348,6 @@ var/datum/component/storage/concrete/master = master() master.emp_act(source, severity) -//This proc draws out the inventory and places the items on it. tx and ty are the upper left tile and mx, my are the bottm right. -//The numbers are calculated from the bottom-left The bottom-left slot being 1,1. -/datum/component/storage/proc/orient_objs(tx, ty, mx, my) - var/atom/real_location = real_location() - var/cx = tx - var/cy = ty - boxes.screen_loc = "[tx]:,[ty] to [mx],[my]" - for(var/obj/O in real_location) - if(QDELETED(O)) - continue - O.screen_loc = "[cx],[cy]" - O.layer = ABOVE_HUD_LAYER - O.plane = ABOVE_HUD_PLANE - cx++ - if(cx > mx) - cx = tx - cy-- - closer.screen_loc = "[mx+1],[my]" //Resets something that is being removed from storage. /datum/component/storage/proc/_removal_reset(atom/movable/thing) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm new file mode 100644 index 0000000000..f73aff43ec --- /dev/null +++ b/code/datums/components/storage/ui.dm @@ -0,0 +1,259 @@ +/** + * Generates a list of numbered_display datums for the numerical display system. + */ +/datum/component/storage/proc/_process_numerical_display() + . = list() + for(var/obj/item/I in accessible_items()) + if(QDELETED(I)) + continue + if(!.[I.type]) + .[I.type] = new /datum/numbered_display(I, 1) + else + var/datum/numbered_display/ND = .[I.type] + ND.number++ + . = sortTim(., /proc/cmp_numbered_displays_name_asc, associative = TRUE) + +/** + * Orients all objects in legacy mode, and returns the objects to show to the user. + */ +/datum/component/storage/proc/orient2hud_legacy(mob/user, maxcolumns) + . = list() + var/list/accessible_contents = accessible_items() + var/adjusted_contents = length(accessible_contents) + + //Numbered contents display + var/list/datum/numbered_display/numbered_contents + if(display_numerical_stacking) + numbered_contents = _process_numerical_display() + adjusted_contents = numbered_contents.len + + var/columns = CLAMP(max_items, 1, maxcolumns ? maxcolumns : screen_max_columns) + var/rows = CLAMP(CEILING(adjusted_contents / columns, 1), 1, screen_max_rows) + + // First, boxes. + ui_boxes.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+columns-1]:[screen_pixel_x],[screen_start_y+rows-1]:[screen_pixel_y]" + . += ui_boxes + // Then, closer. + closer.screen_loc = "[screen_start_x + columns]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" + . += ui_closer + // Then orient the actual items. + var/cx = screen_start_x + var/cy = screen_start_y + if(islist(numerical_display_contents)) + for(var/type in numerical_display_contents) + var/datum/numbered_display/ND = numerical_display_contents[type] + ND.sample_object.mouse_opacity = MOUSE_OPACITY_OPAQUE + ND.sample_object.screen_loc = "[cx]:[screen_pixel_x],[cy]:[screen_pixel_y]" + ND.sample_object.maptext = "[(ND.number > 1)? "[ND.number]" : ""]" + ND.sample_object.layer = ABOVE_HUD_LAYER + ND.sample_object.plane = ABOVE_HUD_PLANE + . += ND.sample_object + cx++ + if(cx - screen_start_x >= columns) + cx = screen_start_x + cy++ + if(cy - screen_start_y >= rows) + break + else + for(var/obj/O in accessible_items()) + if(QDELETED(O)) + continue + O.mouse_opacity = MOUSE_OPACITY_OPAQUE //This is here so storage items that spawn with contents correctly have the "click around item to equip" + O.screen_loc = "[cx]:[screen_pixel_x],[cy]:[screen_pixel_y]" + O.maptext = "" + O.layer = ABOVE_HUD_LAYER + O.plane = ABOVE_HUD_PLANE + . += O + cx++ + if(cx - screen_start_x >= columns) + cx = screen_start_x + cy++ + if(cy - screen_start_y >= rows) + break + +/** + * Orients all objects in .. volumetric mode. + */ +/datum/component/storage/proc/orient2hud_volumetric(mob/user, maxcolumns) + . = list() + var/list/accessible_contents = accessible_items() + var/adjusted_contents = length(accessible_contents) + + //Numbered contents display + var/list/datum/numbered_display/numbered_contents + if(display_numerical_stacking) + numbered_contents = _process_numerical_display() + adjusted_contents = numbered_contents.len + + var/columns = CLAMP(max_items, 1, maxcolumns ? maxcolumns : screen_max_columns) + var/rows = CLAMP(CEILING(adjusted_contents / columns, 1), 1, screen_max_rows) + + // First, continuous section. + ui_continuous.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+columns-1]:[screen_pixel_x],[screen_start_y+rows-1]:[screen_pixel_y]" + . += ui_continuous + // Then, left and right. + ui_left.screen_loc = "[screen_start_x]:[screen_pixel_x - 2],[screen_start_y]:[screen_pixel_y] to [screen_start_x]:[screen_pixel_x - 2],[screen_start_y+rows-1]:[screen_pixel_y]" + . += ui_left + ui_right.screen_loc = "[screen_start_x+columns-1]:[screen_pixel_x + 2],[screen_start_y]:[screen_pixel_y] to [screen_start_x+columns-1]:[screen_pixel_x + 2],[screen_start_y+rows-1]:[screen_pixel_y]" + . += ui_right + // Then, closer. + closer.screen_loc = "[screen_start_x + columns]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" + . += ui_closer + // Generate ui_item_blocks for missing ones. + + + + + + + var/cx = screen_start_x + var/cy = screen_start_y + if(islist(numerical_display_contents)) + for(var/type in numerical_display_contents) + var/datum/numbered_display/ND = numerical_display_contents[type] + ND.sample_object.mouse_opacity = MOUSE_OPACITY_OPAQUE + ND.sample_object.screen_loc = "[cx]:[screen_pixel_x],[cy]:[screen_pixel_y]" + ND.sample_object.maptext = "[(ND.number > 1)? "[ND.number]" : ""]" + ND.sample_object.layer = ABOVE_HUD_LAYER + ND.sample_object.plane = ABOVE_HUD_PLANE + . += ND.sample_object + cx++ + if(cx - screen_start_x >= columns) + cx = screen_start_x + cy++ + if(cy - screen_start_y >= rows) + break + else + for(var/obj/O in accessible_items()) + if(QDELETED(O)) + continue + O.mouse_opacity = MOUSE_OPACITY_OPAQUE //This is here so storage items that spawn with contents correctly have the "click around item to equip" + O.screen_loc = "[cx]:[screen_pixel_x],[cy]:[screen_pixel_y]" + O.maptext = "" + O.layer = ABOVE_HUD_LAYER + O.plane = ABOVE_HUD_PLANE + . += O + cx++ + if(cx - screen_start_x >= columns) + cx = screen_start_x + cy++ + if(cy - screen_start_y >= rows) + break + +/** + * Shows our UI to a mob. + */ +/datum/component/storage/proc/ui_show(mob/M, set_screen_size = TRUE) + if(!M.client) + return FALSE + var/list/cview = getviewsize(M.client.view) + // in tiles + var/maxallowedscreensize = cview[1]-8 + if(set_screen_size) + current_maxscreensize = maxallowedscreensize + else if(current_maxscreensize) + maxallowedscreensize = current_maxscreensize + // we got screen size, register signal + RegisterSignal(M, COMSIG_MOB_CLIENT_LOGOUT, .proc/on_logout) + if(M.active_storage) + M.active_storage.ui_hide(M) + M.active_storage = src + LAZOR(is_using, M) + if(volumetric_ui()) + //new volumetric ui bay-style + M.client.screen |= orient2hud_volumetric(M, maxallowedscreensize) + else + //old ui + M.client.screen |= orient2hud_legacy(M, maxallowedscreensize) + return TRUE + +/** + * VV hooked to ensure no lingering screen objects. + */ +/datum/component/storage/vv_edit_var(var_name, var_value) + var/list/old + if(var_name == NAMEOF(storage_flags)) + old = is_using.Copy() + for(var/i in is_using) + ui_hide(i) + . = ..() + if(old) + for(var/i in old) + ui_show(i) + +/** + * Proc triggered by signal to ensure logging out clients don't linger. + */ +/datum/component/storage/proc/on_logout(datum/source, client/C) + ui_hide(source) + +/** + * Hides our UI from a mob + */ +/datum/component/storage/proc/ui_hide(mob/M) + if(!M.client) + return TRUE + M.client.screen -= list(ui_boxes, ui_closer, ui_left, ui_right, ui_continuous, get_ui_item_objects_hide()) + if(M.active_storage == src) + M.active_storage = null + LAZYREMOVE(is_using, M) + return TRUE + +/** + * Returns TRUE if we are using volumetric UI instead of box UI + */ +/datum/component/storage/proc/volumetric_ui() + var/atom/real_location = real_location() + return (storage_flags & STORAGE_LIMIT_VOLUME) && (length(real_location.contents) <= MAXIMUM_VOLUMETRIC_OBJECTS) + +/** + * Gets the ui item objects to ui_hide. + */ +/datum/component/storage/proc/get_ui_item_objects_hide() + if(!volumetric_ui()) + var/atom/real_location = real_location() + return real_location.contents + else + . = list() + for(var/i in ui_item_blocks) + . += ui_item_blocks[i] //get the block not the item + +/** + * Gets our ui_boxes, making it if it doesn't exist. + */ +/datum/component/storage/proc/get_ui_boxes() + if(!ui_boxes) + ui_boxes = new(null, src) + return ui_boxes + +/** + * Gets our ui_left, making it if it doesn't exist. + */ +/datum/component/storage/proc/get_ui_left() + if(!ui_left) + ui_left = new(null, src) + return ui_left + +/** + * Gets our ui_right, making it if it doesn't exist. + */ +/datum/component/storage/proc/get_ui_right() + if(!ui_right) + ui_right = new(null, src) + return ui_right + +/** + * Gets our ui_close, making it if it doesn't exist. + */ +/datum/component/storage/proc/get_ui_close() + if(!ui_close) + ui_close = new(null, src) + return ui_close + +/** + * Gets our ui_continuous, making it if it doesn't exist. + */ +/datum/component/storage/proc/get_ui_continuous() + if(!ui_continuous) + ui_continuous = new(null, src) + return ui_continuous diff --git a/code/modules/mob/logout.dm b/code/modules/mob/logout.dm index e5aaa016bd..536eacca7d 100644 --- a/code/modules/mob/logout.dm +++ b/code/modules/mob/logout.dm @@ -1,4 +1,5 @@ /mob/Logout() + SEND_SIGNAL(src, COMSIG_MOB_CLIENT_LOGOUT, client) log_message("[key_name(src)] is no longer owning mob [src]([src.type])", LOG_OWNERSHIP) SStgui.on_logout(src) unset_machine() diff --git a/icons/mob/screen_gen.dmi b/icons/mob/screen_gen.dmi index ea946f60d9c31139c6e5d3e8aed79794e0294ff0..ffbffcab0dd1b8c809830e4544b548ad075c5ae5 100644 GIT binary patch delta 7900 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 bQ*{fvrhuQ-ZehW|h5#dd6TMPh$0z> Date: Wed, 8 Apr 2020 00:57:09 -0700 Subject: [PATCH 065/190] cancel --- code/__DEFINES/storage.dm | 4 +- code/_onclick/hud/screen_objects/storage.dm | 10 ++ code/datums/components/storage/storage.dm | 2 + code/datums/components/storage/ui.dm | 135 ++++++++++++-------- 4 files changed, 95 insertions(+), 56 deletions(-) diff --git a/code/__DEFINES/storage.dm b/code/__DEFINES/storage.dm index 27bf502252..56fa599dc3 100644 --- a/code/__DEFINES/storage.dm +++ b/code/__DEFINES/storage.dm @@ -29,6 +29,8 @@ // UI defines /// Minimum pixels an item must have in volumetric scaled storage UI -#define MINIMUM_PIXELS_PER_ITEM 5 +#define MINIMUM_PIXELS_PER_ITEM 4 +/// The size of the volumetric scaled storage UI's volumetric boxes that's rendered behind items. +#define VOLUMETRIC_STORAGE_BOX_SIZE 8 /// Maximum number of objects that will be allowed to be displayed using the volumetric display system. Arbitrary number to prevent server lockups. #define MAXIMUM_VOLUMETRIC_ITEMS 256 diff --git a/code/_onclick/hud/screen_objects/storage.dm b/code/_onclick/hud/screen_objects/storage.dm index 5e78ba45e0..56d921472c 100644 --- a/code/_onclick/hud/screen_objects/storage.dm +++ b/code/_onclick/hud/screen_objects/storage.dm @@ -39,3 +39,13 @@ var/datum/component/storage/S = master S.hide_from(usr) return TRUE + +/obj/screen/storage/volumetric_box + var/obj/item/our_item + +/obj/screen/storage/volumetric_box/Initialize(mapload, new_master, our_item) + src.our_item = our_item + return ..() + +/obj/screen/storage/volumetric_box/Click(location, control, params) + return our_item.Click(location, control, params) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index c3ac3c48a8..8f053961e5 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -360,6 +360,8 @@ /datum/component/storage/proc/_remove_and_refresh(datum/source, atom/movable/thing) _removal_reset(thing) + qdel(ui_item_blocks[thing]) + ui_item_blocks -= thing refresh_mob_views() //Call this proc to handle the removal of an item from the storage item. The item will be moved to the new_location target, if that is null it's being deleted diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index f73aff43ec..b014ef9dd1 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -72,73 +72,98 @@ break /** - * Orients all objects in .. volumetric mode. + * Orients all objects in .. volumetric mode. Does not support numerical display! */ /datum/component/storage/proc/orient2hud_volumetric(mob/user, maxcolumns) . = list() - var/list/accessible_contents = accessible_items() - var/adjusted_contents = length(accessible_contents) - //Numbered contents display - var/list/datum/numbered_display/numbered_contents - if(display_numerical_stacking) - numbered_contents = _process_numerical_display() - adjusted_contents = numbered_contents.len + // Generate ui_item_blocks for missing ones and render+orient. + var/list/atom/contents = accessible_items() - var/columns = CLAMP(max_items, 1, maxcolumns ? maxcolumns : screen_max_columns) - var/rows = CLAMP(CEILING(adjusted_contents / columns, 1), 1, screen_max_rows) + var/horizontal_pixels = maxcolumns * world.icon_size + // do the check for fallback for when someone has too much gamer gear + if((MINIMUM_PIXELS_PER_ITEMS * length(contents)) > horizontal_pixels) + to_chat(user, "[parent] was showed to you in legacy mode due to your items overrunning the three row limit! Consider not carrying too much or bugging a maintainer to raise this limit!") + return orient2hud_legacy(user, maxcolumns) + // after this point we are sure we can somehow fit all items with 8 pixels or more into our one row. - // First, continuous section. - ui_continuous.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+columns-1]:[screen_pixel_x],[screen_start_y+rows-1]:[screen_pixel_y]" + + // sigh. two loops. + var/total = max_volume + + var/used = 0 + + var/list/volume_by_item = list() + var/list/percentage_by_item = list() + var/list/percentages = list() + // define outside for less lag + var/obj/item/I + var/volume + for(var/obj/item/I in contents) + volume = I.get_volume() + used += volume_by_item[I] = volume + percentages += percentage_by_item[I] = volume + // ugh + var/min_percent = min(percentages) + + var/percentage_metric = max(min_percent, + + var/pixels_needed = (100 / min_percent) * MINIMUM_PIXELS_PER_ITEM + + var/overrunning = pixels_needed > maximum_horizontal_pixels + + var/row = 1 + var/pixel = 0 + + for(var/i in volume_by_item) + I = i + if(!ui_item_blocks[I]) + ui_item_blocks[I] = new /obj/screen/storage(null, src, I) + var/obj/screen/storage/volumetric_box/B = ui_item_blocks[I] + + . += B + var/pixels_to_use + if(!overrunning) + pixels_to_use = CEILING(min_percent / percentage_by_item[i], MINIMUM_PIXELS_PER_ITEM) + else + pixels_to_use = MINIMUM_PIXELS_PER_ITEM //not enough room to display everything ughh + + // now that we have pixels_to_use, place our thing and add it to the returned list. + + // uh oh, increment row or clamp. + if((horizontal_pixels - pixel) < pixels_to_use) + if(!pixels_to_use) + row++ + else + pixels_to_use = (horizontal_pixels - pixel) + // now, scale the thing + var/multiply = pixels_to_use / MINIMUM_PIXELS_PER_ITEM + B.transform = matrix(multiply, 0, 0, 0, 1, 0) + // unfortunately since scaling means expand-from-center.. ugh.. + var/px_add = 0 + if(multiply > 1) + px_add = (pixels_to_use - MINIMUM_PIXELS_PER_ITEM) * 0.5 + // not handling multiply < 1, that should never happen. + // now, screenloc the thing. + var/xshift = FLOOR(pixel / icon_size, 1) + var/px = pixel % world.icon_Size + B.screen_loc = "[screen_start_x + xshift]:[px],[screen_start_y+rows-1]:[screen_pixel_y]" + pixels += px + if(pixels >= horizontal_pixels) + row++ + . += B + + // Then, continuous section. + ui_continuous.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+maxcolumns-1]:[screen_pixel_x],[screen_start_y+rows-1]:[screen_pixel_y]" . += ui_continuous // Then, left and right. ui_left.screen_loc = "[screen_start_x]:[screen_pixel_x - 2],[screen_start_y]:[screen_pixel_y] to [screen_start_x]:[screen_pixel_x - 2],[screen_start_y+rows-1]:[screen_pixel_y]" . += ui_left - ui_right.screen_loc = "[screen_start_x+columns-1]:[screen_pixel_x + 2],[screen_start_y]:[screen_pixel_y] to [screen_start_x+columns-1]:[screen_pixel_x + 2],[screen_start_y+rows-1]:[screen_pixel_y]" + ui_right.screen_loc = "[screen_start_x+maxcolumns-1]:[screen_pixel_x + 2],[screen_start_y]:[screen_pixel_y] to [screen_start_x+maxcolumns-1]:[screen_pixel_x + 2],[screen_start_y+rows-1]:[screen_pixel_y]" . += ui_right // Then, closer. - closer.screen_loc = "[screen_start_x + columns]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" + closer.screen_loc = "[screen_start_x + maxcolumns]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" . += ui_closer - // Generate ui_item_blocks for missing ones. - - - - - - - var/cx = screen_start_x - var/cy = screen_start_y - if(islist(numerical_display_contents)) - for(var/type in numerical_display_contents) - var/datum/numbered_display/ND = numerical_display_contents[type] - ND.sample_object.mouse_opacity = MOUSE_OPACITY_OPAQUE - ND.sample_object.screen_loc = "[cx]:[screen_pixel_x],[cy]:[screen_pixel_y]" - ND.sample_object.maptext = "[(ND.number > 1)? "[ND.number]" : ""]" - ND.sample_object.layer = ABOVE_HUD_LAYER - ND.sample_object.plane = ABOVE_HUD_PLANE - . += ND.sample_object - cx++ - if(cx - screen_start_x >= columns) - cx = screen_start_x - cy++ - if(cy - screen_start_y >= rows) - break - else - for(var/obj/O in accessible_items()) - if(QDELETED(O)) - continue - O.mouse_opacity = MOUSE_OPACITY_OPAQUE //This is here so storage items that spawn with contents correctly have the "click around item to equip" - O.screen_loc = "[cx]:[screen_pixel_x],[cy]:[screen_pixel_y]" - O.maptext = "" - O.layer = ABOVE_HUD_LAYER - O.plane = ABOVE_HUD_PLANE - . += O - cx++ - if(cx - screen_start_x >= columns) - cx = screen_start_x - cy++ - if(cy - screen_start_y >= rows) - break /** * Shows our UI to a mob. @@ -204,7 +229,7 @@ */ /datum/component/storage/proc/volumetric_ui() var/atom/real_location = real_location() - return (storage_flags & STORAGE_LIMIT_VOLUME) && (length(real_location.contents) <= MAXIMUM_VOLUMETRIC_OBJECTS) + return (storage_flags & STORAGE_LIMIT_VOLUME) && (length(real_location.contents) <= MAXIMUM_VOLUMETRIC_OBJECTS) && !display_numeric_stacking /** * Gets the ui item objects to ui_hide. From 33aa16bfcf9fac832df86a43c66efa587f23d0ec Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Wed, 8 Apr 2020 01:04:56 -0700 Subject: [PATCH 066/190] ok --- code/datums/components/storage/ui.dm | 62 +++++++++++----------------- tgstation.dme | 2 + 2 files changed, 26 insertions(+), 38 deletions(-) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index b014ef9dd1..65f3811e92 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -84,49 +84,35 @@ // do the check for fallback for when someone has too much gamer gear if((MINIMUM_PIXELS_PER_ITEMS * length(contents)) > horizontal_pixels) to_chat(user, "[parent] was showed to you in legacy mode due to your items overrunning the three row limit! Consider not carrying too much or bugging a maintainer to raise this limit!") - return orient2hud_legacy(user, maxcolumns) + return orient2hud_legacy(user, maxcolumns)VO // after this point we are sure we can somehow fit all items with 8 pixels or more into our one row. - - // sigh. two loops. - var/total = max_volume - + // sigh loopmania time var/used = 0 - + // define outside for performance + var/volume var/list/volume_by_item = list() var/list/percentage_by_item = list() - var/list/percentages = list() - // define outside for less lag - var/obj/item/I - var/volume for(var/obj/item/I in contents) - volume = I.get_volume() - used += volume_by_item[I] = volume - percentages += percentage_by_item[I] = volume - // ugh - var/min_percent = min(percentages) + volume = I.get_volume + used += volume + volume_by_item[I] = volume + percentage_by_item[I] = volume / max_volume + var/overrun = FALSE + if(used >= (horizontal_pixels + 4)) //2-4 pixel grace zone + // congratulations we are now in overrun mode. everything will be crammed to minimum storage pixels. + to_chat(user, "[parent] rendered in overrun mode due to more items inside than the maximum volume supports.") + overrun = TRUE - var/percentage_metric = max(min_percent, - - var/pixels_needed = (100 / min_percent) * MINIMUM_PIXELS_PER_ITEM - - var/overrunning = pixels_needed > maximum_horizontal_pixels - - var/row = 1 - var/pixel = 0 - - for(var/i in volume_by_item) + // define outside for marginal performance boost + var/obj/item/I + for(var/i in percentage_by_item) I = i + var/percent = percentage_by_item[I] if(!ui_item_blocks[I]) ui_item_blocks[I] = new /obj/screen/storage(null, src, I) var/obj/screen/storage/volumetric_box/B = ui_item_blocks[I] - - . += B - var/pixels_to_use - if(!overrunning) - pixels_to_use = CEILING(min_percent / percentage_by_item[i], MINIMUM_PIXELS_PER_ITEM) - else - pixels_to_use = MINIMUM_PIXELS_PER_ITEM //not enough room to display everything ughh + var/pixels_to_use = overrun? MINIMUM_PIXELS_PER_ITEM : max(MINIMUM_PIXELS_PER_ITEM, FLOOR(horizontal_pixels * percent, MINIMUM_PIXELS_PER_ITEM)) // now that we have pixels_to_use, place our thing and add it to the returned list. @@ -137,21 +123,21 @@ else pixels_to_use = (horizontal_pixels - pixel) // now, scale the thing - var/multiply = pixels_to_use / MINIMUM_PIXELS_PER_ITEM + var/multiply = pixels_to_use / VOLUMETRIC_STORAGE_BOX_SIZE B.transform = matrix(multiply, 0, 0, 0, 1, 0) // unfortunately since scaling means expand-from-center.. ugh.. - var/px_add = 0 - if(multiply > 1) - px_add = (pixels_to_use - MINIMUM_PIXELS_PER_ITEM) * 0.5 - // not handling multiply < 1, that should never happen. + var/px_add = (pixels_to_use - VOLUMETRIC_STORAGE_BOX_SIZE) * 0.5 // now, screenloc the thing. var/xshift = FLOOR(pixel / icon_size, 1) var/px = pixel % world.icon_Size - B.screen_loc = "[screen_start_x + xshift]:[px],[screen_start_y+rows-1]:[screen_pixel_y]" + B.screen_loc = I.screen_loc = "[screen_start_x + xshift]:[px + px_add],[screen_start_y+rows-1]:[screen_pixel_y]" pixels += px if(pixels >= horizontal_pixels) row++ + + // finally add our things. . += B + . += I // Then, continuous section. ui_continuous.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+maxcolumns-1]:[screen_pixel_x],[screen_start_y+rows-1]:[screen_pixel_y]" diff --git a/tgstation.dme b/tgstation.dme index fff2248a54..89a48a0344 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -225,6 +225,7 @@ #include "code\_onclick\hud\robot.dm" #include "code\_onclick\hud\screen_objects.dm" #include "code\_onclick\hud\swarmer.dm" +#include "code\_onclick\hud\screen_objects\storage.dm" #include "code\controllers\admin.dm" #include "code\controllers\configuration_citadel.dm" #include "code\controllers\controller.dm" @@ -433,6 +434,7 @@ #include "code\datums\components\fantasy\prefixes.dm" #include "code\datums\components\fantasy\suffixes.dm" #include "code\datums\components\storage\storage.dm" +#include "code\datums\components\storage\ui.dm" #include "code\datums\components\storage\concrete\_concrete.dm" #include "code\datums\components\storage\concrete\bag_of_holding.dm" #include "code\datums\components\storage\concrete\bluespace.dm" From a071a5f2f646c66bdd98a2916be1f4fe18b888ba Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Wed, 8 Apr 2020 01:05:09 -0700 Subject: [PATCH 067/190] ok --- code/datums/components/storage/ui.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index 65f3811e92..7b7f39e1e7 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -84,7 +84,7 @@ // do the check for fallback for when someone has too much gamer gear if((MINIMUM_PIXELS_PER_ITEMS * length(contents)) > horizontal_pixels) to_chat(user, "[parent] was showed to you in legacy mode due to your items overrunning the three row limit! Consider not carrying too much or bugging a maintainer to raise this limit!") - return orient2hud_legacy(user, maxcolumns)VO + return orient2hud_legacy(user, maxcolumns) // after this point we are sure we can somehow fit all items with 8 pixels or more into our one row. // sigh loopmania time @@ -183,7 +183,7 @@ */ /datum/component/storage/vv_edit_var(var_name, var_value) var/list/old - if(var_name == NAMEOF(storage_flags)) + if(var_name == NAMEOF(src, storage_flags)) old = is_using.Copy() for(var/i in is_using) ui_hide(i) From f1deea99f7f2966cb6c87170a1d54639468a2374 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Wed, 8 Apr 2020 05:38:36 -0400 Subject: [PATCH 068/190] adds back in the containment bag --- 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 2857e447e0..1eacabfc6d 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -79,7 +79,7 @@ display_name = "Advanced Biotechnology" description = "Advanced Biotechnology" prereq_ids = list("biotech") - design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "meta_beaker", "healthanalyzer_advanced", "harvester", "holobarrier_med", "defibrillator_compact", "smartdartgun", "medicinalsmartdart", "pHmeter") + design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "meta_beaker", "healthanalyzer_advanced", "harvester", "holobarrier_med", "defibrillator_compact", "smartdartgun", "medicinalsmartdart", "pHmeter", "containmentbodybag") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) /datum/techweb_node/bio_process From a888c7c29afbf12349c088de757e8165a4b4b7ea Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 9 Apr 2020 02:52:32 -0700 Subject: [PATCH 069/190] continue --- code/_onclick/hud/screen_objects/storage.dm | 10 ++++++++++ code/datums/components/storage/storage.dm | 13 ++++++------- code/datums/components/storage/ui.dm | 9 +++------ code/game/objects/items.dm | 6 +++--- 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/code/_onclick/hud/screen_objects/storage.dm b/code/_onclick/hud/screen_objects/storage.dm index 56d921472c..04436a3b5a 100644 --- a/code/_onclick/hud/screen_objects/storage.dm +++ b/code/_onclick/hud/screen_objects/storage.dm @@ -40,7 +40,17 @@ S.hide_from(usr) return TRUE +/obj/screen/storage/left + icon_state = "storage_start" + +/obj/screen/storage/right + icon_state = "storage_end" + +/obj/screen/storage/continuous + icon_state = "storage_continue" + /obj/screen/storage/volumetric_box + icon_state = "stored_8px" var/obj/item/our_item /obj/screen/storage/volumetric_box/Initialize(mapload, new_master, our_item) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 8f053961e5..5fe5543f38 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -55,7 +55,7 @@ /// New volumetric storage display mode's center 'blocks' var/obj/screen/storage/continuous/ui_continuous /// The close button, used in all modes. - var/obj/screen/storage/close/ui_closer + var/obj/screen/storage/close/ui_close /// Associative list of list(item = screen object) for volumetric storage item screen blocks var/list/ui_item_blocks @@ -132,7 +132,7 @@ /datum/component/storage/Destroy() close_all() QDEL_NULL(ui_boxes) - QDEL_NULL(ui_closer) + QDEL_NULL(ui_close) QDEL_NULL(ui_continuous) QDEL_NULL(ui_left) QDEL_NULL(ui_right) @@ -327,8 +327,7 @@ if(check_locked()) close_all() - -/datum/component/storage/proc/close(mob/M) +/datui_um/component/storage/proc/close(mob/M) hide_from(M) /datum/component/storage/proc/close_all() @@ -376,7 +375,7 @@ /datum/component/storage/proc/refresh_mob_views() var/list/seeing = can_see_contents() for(var/i in seeing) - show_to(i) + ui_show_to(i) return TRUE /datum/component/storage/proc/can_see_contents() @@ -473,7 +472,7 @@ A.add_fingerprint(M) if(!force && (check_locked(null, M) || !M.CanReach(parent, view_only = TRUE))) return FALSE - show_to(M, !ghost) + ui_show_to(M, !ghost) /datum/component/storage/proc/mousedrop_receive(datum/source, atom/movable/O, mob/M) if(isitem(O)) @@ -656,7 +655,7 @@ if(A.loc == user) . = COMPONENT_NO_ATTACK_HAND if(!check_locked(source, user, TRUE)) - show_to(user) + ui_show_to(user) A.do_jiggle() /datum/component/storage/proc/signal_on_pickup(datum/source, mob/user) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index 7b7f39e1e7..c062922700 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -131,21 +131,18 @@ var/xshift = FLOOR(pixel / icon_size, 1) var/px = pixel % world.icon_Size B.screen_loc = I.screen_loc = "[screen_start_x + xshift]:[px + px_add],[screen_start_y+rows-1]:[screen_pixel_y]" - pixels += px - if(pixels >= horizontal_pixels) - row++ // finally add our things. . += B . += I // Then, continuous section. - ui_continuous.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+maxcolumns-1]:[screen_pixel_x],[screen_start_y+rows-1]:[screen_pixel_y]" + ui_continuous.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+maxcolumns-1]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" . += ui_continuous // Then, left and right. - ui_left.screen_loc = "[screen_start_x]:[screen_pixel_x - 2],[screen_start_y]:[screen_pixel_y] to [screen_start_x]:[screen_pixel_x - 2],[screen_start_y+rows-1]:[screen_pixel_y]" + ui_left.screen_loc = "[screen_start_x]:[screen_pixel_x - 2],[screen_start_y]:[screen_pixel_y] to [screen_start_x]:[screen_pixel_x - 2],[screen_start_y]:[screen_pixel_y]" . += ui_left - ui_right.screen_loc = "[screen_start_x+maxcolumns-1]:[screen_pixel_x + 2],[screen_start_y]:[screen_pixel_y] to [screen_start_x+maxcolumns-1]:[screen_pixel_x + 2],[screen_start_y+rows-1]:[screen_pixel_y]" + ui_right.screen_loc = "[screen_start_x+maxcolumns-1]:[screen_pixel_x + 2],[screen_start_y]:[screen_pixel_y] to [screen_start_x+maxcolumns-1]:[screen_pixel_x + 2],[screen_start_y]:[screen_pixel_y]" . += ui_right // Then, closer. closer.screen_loc = "[screen_start_x + maxcolumns]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 6c16cb4060..112595cf19 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -38,7 +38,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) /// Weight class for how much storage capacity it uses and how big it physically is meaning storages can't hold it if their maximum weight class isn't as high as it. var/w_class = WEIGHT_CLASS_NORMAL /// Volume override for the item, otherwise automatically calculated from w_class. - var/volume + var/w_volume /// The amount of stamina it takes to swing an item in a normal melee attack do not lie to me and say it's for realism because it ain't. If null it will autocalculate from w_class. var/total_mass //Total mass in arbitrary pound-like values. If there's no balance reasons for an item to have otherwise, this var should be the item's weight in pounds. @@ -862,8 +862,8 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) return ..() /// Get an item's volume that it uses when being stored. -/obj/item/proc/get_volume() - return isnull(volume)? AUTOSCALE_VOLUME(w_class) : volume +/obj/item/proc/get_w_volume() + return isnull(volume)? AUTOSCALE_VOLUME(w_class) : w_volume /obj/item/proc/embedded(mob/living/carbon/human/embedded_mob) return From e3c6ebb81e295e08a1eac58a68733ea2ea151143 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 9 Apr 2020 02:54:29 -0700 Subject: [PATCH 070/190] compile --- code/datums/components/storage/storage.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 5fe5543f38..81a52770bc 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -313,7 +313,7 @@ if(!_target) _target = get_turf(parent) if(usr) - hide_from(usr) + ui_hide(usr) var/list/contents = contents() var/atom/real_location = real_location() for(var/obj/item/I in contents) @@ -328,7 +328,7 @@ close_all() /datui_um/component/storage/proc/close(mob/M) - hide_from(M) + ui_hide(M) /datum/component/storage/proc/close_all() . = FALSE @@ -375,7 +375,7 @@ /datum/component/storage/proc/refresh_mob_views() var/list/seeing = can_see_contents() for(var/i in seeing) - ui_show_to(i) + ui_show(i) return TRUE /datum/component/storage/proc/can_see_contents() @@ -472,7 +472,7 @@ A.add_fingerprint(M) if(!force && (check_locked(null, M) || !M.CanReach(parent, view_only = TRUE))) return FALSE - ui_show_to(M, !ghost) + ui_show(M, !ghost) /datum/component/storage/proc/mousedrop_receive(datum/source, atom/movable/O, mob/M) if(isitem(O)) @@ -655,7 +655,7 @@ if(A.loc == user) . = COMPONENT_NO_ATTACK_HAND if(!check_locked(source, user, TRUE)) - ui_show_to(user) + ui_show(user) A.do_jiggle() /datum/component/storage/proc/signal_on_pickup(datum/source, mob/user) @@ -674,7 +674,7 @@ return do_quick_empty(loctarget) /datum/component/storage/proc/signal_hide_attempt(datum/source, mob/target) - return hide_from(target) + return ui_hide(target) /datum/component/storage/proc/on_alt_click(datum/source, mob/user) if(!isliving(user) || !user.CanReach(parent)) From 34332051302ddc5c5c14453fdd01949b0e160ff0 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Thu, 9 Apr 2020 13:56:19 +0200 Subject: [PATCH 071/190] Makes radioactive atoms actually still radiate other atoms within itself even if contained. --- code/__HELPERS/radiation.dm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/code/__HELPERS/radiation.dm b/code/__HELPERS/radiation.dm index abdfe7e8d3..e210f0bf1e 100644 --- a/code/__HELPERS/radiation.dm +++ b/code/__HELPERS/radiation.dm @@ -27,12 +27,15 @@ return var/area/A = get_area(source) var/atom/nested_loc = source.loc + var/spawn_waves = TRUE while(nested_loc != A) if(nested_loc.rad_flags & RAD_PROTECT_CONTENTS) - return + spawn_waves = FALSE + break nested_loc = nested_loc.loc - for(var/dir in GLOB.cardinals) - new /datum/radiation_wave(source, dir, intensity, range_modifier, can_contaminate) + if(spawn_waves) + for(var/dir in GLOB.cardinals) + new /datum/radiation_wave(source, dir, intensity, range_modifier, can_contaminate) var/list/things = get_rad_contents(source) //copypasta because I don't want to put special code in waves to handle their origin for(var/k in 1 to things.len) From 98312ec2c8261da2cee360a7995b27be1dc7c965 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Thu, 9 Apr 2020 14:21:15 +0200 Subject: [PATCH 072/190] Update radiation.dm --- code/__HELPERS/radiation.dm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/code/__HELPERS/radiation.dm b/code/__HELPERS/radiation.dm index e210f0bf1e..1570eededb 100644 --- a/code/__HELPERS/radiation.dm +++ b/code/__HELPERS/radiation.dm @@ -37,6 +37,11 @@ for(var/dir in GLOB.cardinals) new /datum/radiation_wave(source, dir, intensity, range_modifier, can_contaminate) + var/static/last_huge_pulse = 0 + if(intensity > 3000 && world.time > last_huge_pulse + 200) + last_huge_pulse = world.time + log = TRUE + var/list/things = get_rad_contents(source) //copypasta because I don't want to put special code in waves to handle their origin for(var/k in 1 to things.len) var/atom/thing = things[k] @@ -44,11 +49,7 @@ continue thing.rad_act(intensity) - var/static/last_huge_pulse = 0 - if(intensity > 3000 && world.time > last_huge_pulse + 200) - last_huge_pulse = world.time - log = TRUE if(log) - var/turf/_source_T = isturf(source) ? source : get_turf(source) - log_game("Radiation pulse with intensity: [intensity] and range modifier: [range_modifier] in [loc_name(_source_T)] ") + var/turf/_source_T = get_turf(source) + log_game("Radiation pulse with intensity: [intensity] and range modifier: [range_modifier] in [loc_name(_source_T)][spawn_waves ? "" : " (contained by [nested_loc.name])"]") return TRUE From e6f98fa270b91c43a48b5f5b0e032073fb25f2be Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 9 Apr 2020 09:16:46 -0700 Subject: [PATCH 073/190] compile --- code/datums/components/storage/storage.dm | 2 +- code/datums/components/storage/ui.dm | 3 +++ code/game/atoms.dm | 5 +---- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 81a52770bc..fd5451e65a 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -327,7 +327,7 @@ if(check_locked()) close_all() -/datui_um/component/storage/proc/close(mob/M) +/datum/component/storage/proc/close(mob/M) ui_hide(M) /datum/component/storage/proc/close_all() diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index c062922700..a5c2a787f5 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -106,6 +106,7 @@ // define outside for marginal performance boost var/obj/item/I + var/pixel = 0 for(var/i in percentage_by_item) I = i var/percent = percentage_by_item[I] @@ -131,6 +132,8 @@ var/xshift = FLOOR(pixel / icon_size, 1) var/px = pixel % world.icon_Size B.screen_loc = I.screen_loc = "[screen_start_x + xshift]:[px + px_add],[screen_start_y+rows-1]:[screen_pixel_y]" + // add the used pixels to pixel after we place the object + pixel += pixels_to_use // finally add our things. . += B diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 266d5b5bb5..44a891e24a 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -584,11 +584,8 @@ stoplag(1) qdel(progress) to_chat(user, "You dump as much of [src_object.parent]'s contents into [STR.insert_preposition]to [src] as you can.") - STR.orient2hud(user) - src_object.orient2hud(user) if(user.active_storage) //refresh the HUD to show the transfered contents - user.active_storage.close(user) - user.active_storage.show_to(user) + user.active_storage.ui_show(user) return TRUE /atom/proc/get_dumping_location(obj/item/storage/source,mob/user) From 857716c473da6b0156f1aa27d6268b6d87086613 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 9 Apr 2020 09:30:28 -0700 Subject: [PATCH 074/190] k --- code/_onclick/hud/screen_objects/storage.dm | 2 +- .../components/storage/concrete/_concrete.dm | 2 +- .../components/storage/concrete/emergency.dm | 2 +- code/datums/components/storage/storage.dm | 3 --- code/datums/components/storage/ui.dm | 22 +++++++------------ code/game/objects/items.dm | 2 +- 6 files changed, 12 insertions(+), 21 deletions(-) diff --git a/code/_onclick/hud/screen_objects/storage.dm b/code/_onclick/hud/screen_objects/storage.dm index 04436a3b5a..a50554787a 100644 --- a/code/_onclick/hud/screen_objects/storage.dm +++ b/code/_onclick/hud/screen_objects/storage.dm @@ -37,7 +37,7 @@ /obj/screen/storage/close/Click() var/datum/component/storage/S = master - S.hide_from(usr) + S.ui_hide(usr) return TRUE /obj/screen/storage/left diff --git a/code/datums/components/storage/concrete/_concrete.dm b/code/datums/components/storage/concrete/_concrete.dm index 4c8f1b4c97..e044a59668 100644 --- a/code/datums/components/storage/concrete/_concrete.dm +++ b/code/datums/components/storage/concrete/_concrete.dm @@ -60,7 +60,7 @@ _contents_limbo = null if(_user_limbo) for(var/i in _user_limbo) - show_to(i) + ui_show(i) _user_limbo = null /datum/component/storage/concrete/_insert_physical_item(obj/item/I, override = FALSE) diff --git a/code/datums/components/storage/concrete/emergency.dm b/code/datums/components/storage/concrete/emergency.dm index 348821a913..faaeada13d 100644 --- a/code/datums/components/storage/concrete/emergency.dm +++ b/code/datums/components/storage/concrete/emergency.dm @@ -18,7 +18,7 @@ return . = COMPONENT_NO_ATTACK_HAND if(!check_locked(source, user, TRUE)) - show_to(user) + ui_show(user) A.do_jiggle() if(rustle_sound) playsound(A, "rustle", 50, 1, -5) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index fd5451e65a..581798c904 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -88,9 +88,6 @@ max_volume = AUTO_SCALE_STORAGE_VOLUME(max_w_class, max_items) if(master) change_master(master) - boxes = new(null, src) - closer = new(null, src) - orient2hud() RegisterSignal(parent, COMSIG_CONTAINS_STORAGE, .proc/on_check) RegisterSignal(parent, COMSIG_IS_STORAGE_LOCKED, .proc/check_locked) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index a5c2a787f5..a2c9e31386 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -39,9 +39,9 @@ // Then orient the actual items. var/cx = screen_start_x var/cy = screen_start_y - if(islist(numerical_display_contents)) - for(var/type in numerical_display_contents) - var/datum/numbered_display/ND = numerical_display_contents[type] + if(islist(numbered_contents)) + for(var/type in numbered_contents) + var/datum/numbered_display/ND = numbered_contents[type] ND.sample_object.mouse_opacity = MOUSE_OPACITY_OPAQUE ND.sample_object.screen_loc = "[cx]:[screen_pixel_x],[cy]:[screen_pixel_y]" ND.sample_object.maptext = "[(ND.number > 1)? "[ND.number]" : ""]" @@ -82,7 +82,7 @@ var/horizontal_pixels = maxcolumns * world.icon_size // do the check for fallback for when someone has too much gamer gear - if((MINIMUM_PIXELS_PER_ITEMS * length(contents)) > horizontal_pixels) + if((MINIMUM_PIXELS_PER_ITEM * length(contents)) > horizontal_pixels) to_chat(user, "[parent] was showed to you in legacy mode due to your items overrunning the three row limit! Consider not carrying too much or bugging a maintainer to raise this limit!") return orient2hud_legacy(user, maxcolumns) // after this point we are sure we can somehow fit all items with 8 pixels or more into our one row. @@ -94,7 +94,7 @@ var/list/volume_by_item = list() var/list/percentage_by_item = list() for(var/obj/item/I in contents) - volume = I.get_volume + volume = I.get_w_volume() used += volume volume_by_item[I] = volume percentage_by_item[I] = volume / max_volume @@ -117,20 +117,14 @@ // now that we have pixels_to_use, place our thing and add it to the returned list. - // uh oh, increment row or clamp. - if((horizontal_pixels - pixel) < pixels_to_use) - if(!pixels_to_use) - row++ - else - pixels_to_use = (horizontal_pixels - pixel) // now, scale the thing var/multiply = pixels_to_use / VOLUMETRIC_STORAGE_BOX_SIZE B.transform = matrix(multiply, 0, 0, 0, 1, 0) // unfortunately since scaling means expand-from-center.. ugh.. var/px_add = (pixels_to_use - VOLUMETRIC_STORAGE_BOX_SIZE) * 0.5 // now, screenloc the thing. - var/xshift = FLOOR(pixel / icon_size, 1) - var/px = pixel % world.icon_Size + var/xshift = FLOOR(pixel / world.icon_size, 1) + var/px = pixel % world.icon_size B.screen_loc = I.screen_loc = "[screen_start_x + xshift]:[px + px_add],[screen_start_y+rows-1]:[screen_pixel_y]" // add the used pixels to pixel after we place the object pixel += pixels_to_use @@ -215,7 +209,7 @@ */ /datum/component/storage/proc/volumetric_ui() var/atom/real_location = real_location() - return (storage_flags & STORAGE_LIMIT_VOLUME) && (length(real_location.contents) <= MAXIMUM_VOLUMETRIC_OBJECTS) && !display_numeric_stacking + return (storage_flags & STORAGE_LIMIT_VOLUME) && (length(real_location.contents) <= MAXIMUM_VOLUMETRIC_ITEMS) && !display_numerical_stacking /** * Gets the ui item objects to ui_hide. diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 112595cf19..19ffb78e52 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -863,7 +863,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) /// Get an item's volume that it uses when being stored. /obj/item/proc/get_w_volume() - return isnull(volume)? AUTOSCALE_VOLUME(w_class) : w_volume + return isnull(volume)? AUTO_SCALE_VOLUME(w_class) : w_volume /obj/item/proc/embedded(mob/living/carbon/human/embedded_mob) return From 2e9e38cd89ba02e4a600218f0c9dfa67f27a16ae Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 9 Apr 2020 09:30:34 -0700 Subject: [PATCH 075/190] close --- code/_onclick/hud/screen_objects/storage.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/_onclick/hud/screen_objects/storage.dm b/code/_onclick/hud/screen_objects/storage.dm index a50554787a..84f8408cb0 100644 --- a/code/_onclick/hud/screen_objects/storage.dm +++ b/code/_onclick/hud/screen_objects/storage.dm @@ -37,7 +37,7 @@ /obj/screen/storage/close/Click() var/datum/component/storage/S = master - S.ui_hide(usr) + S.close(usr) return TRUE /obj/screen/storage/left From 0a54f8a7a04a807f1647bff5b0292fe4f9fe5894 Mon Sep 17 00:00:00 2001 From: ForrestWick <54997375+ForrestWick@users.noreply.github.com> Date: Thu, 9 Apr 2020 17:27:18 -0500 Subject: [PATCH 076/190] I'M SORRY MR GITHUB PLS DONT BEAT ME --- code/__DEFINES/inventory.dm | 2 +- code/__HELPERS/game.dm | 2 +- code/datums/diseases/wizarditis.dm | 2 +- code/datums/materials/basemats.dm | 2 +- code/datums/mutations/speech.dm | 4 ++-- code/game/machinery/doors/checkForMultipleDoors.dm | 2 +- code/game/objects/items/manuals.dm | 2 +- code/game/objects/items/storage/boxes.dm | 8 ++++---- code/game/objects/structures/signs/signs_plaques.dm | 3 +-- code/modules/admin/secrets.dm | 6 +++--- code/modules/food_and_drinks/food/snacks_meat.dm | 8 ++++---- code/modules/food_and_drinks/recipes/processor_recipes.dm | 2 +- .../food_and_drinks/recipes/tablecraft/recipes_egg.dm | 2 +- .../food_and_drinks/recipes/tablecraft/recipes_meat.dm | 2 +- .../food_and_drinks/recipes/tablecraft/recipes_misc.dm | 4 ++-- .../food_and_drinks/recipes/tablecraft/recipes_pastry.dm | 2 +- .../food_and_drinks/recipes/tablecraft/recipes_pizza.dm | 2 +- .../food_and_drinks/recipes/tablecraft/recipes_salad.dm | 2 +- .../food_and_drinks/recipes/tablecraft/recipes_soup.dm | 2 +- .../recipes/tablecraft/recipes_spaghetti.dm | 4 ++-- code/modules/jobs/job_types/chaplain.dm | 2 +- code/modules/lighting/lighting_corner.dm | 2 +- .../mob/living/carbon/alien/humanoid/update_icons.dm | 2 +- 23 files changed, 34 insertions(+), 35 deletions(-) diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index f4954f8f05..7f3f461f9b 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -155,7 +155,7 @@ //flags for covering body parts #define GLASSESCOVERSEYES (1<<0) -#define MASKCOVERSEYES (1<<1) // get rid of some of the other retardation in these flags +#define MASKCOVERSEYES (1<<1) // get rid of some of the other [censored for github] in these flags #define HEADCOVERSEYES (1<<2) // feel free to realloc these numbers for other purposes #define MASKCOVERSMOUTH (1<<3) // on other items, these are just for mask/head #define HEADCOVERSMOUTH (1<<4) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 7f5035347c..6b9b856bec 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -183,7 +183,7 @@ return -// Better recursive loop, technically sort of not actually recursive cause that shit is retarded, enjoy. +// Better recursive loop, technically sort of not actually recursive cause that shit is [censored for github], enjoy. //No need for a recursive limit either /proc/recursive_mob_check(atom/O,client_check=1,sight_check=1,include_radio=1) diff --git a/code/datums/diseases/wizarditis.dm b/code/datums/diseases/wizarditis.dm index 71a5bcb99e..e769f466b9 100644 --- a/code/datums/diseases/wizarditis.dm +++ b/code/datums/diseases/wizarditis.dm @@ -9,7 +9,7 @@ viable_mobtypes = list(/mob/living/carbon/human) disease_flags = CAN_CARRY|CAN_RESIST|CURABLE permeability_mod = 0.75 - desc = "Some speculate that this virus is the cause of the Space Wizard Federation's existence. Subjects affected show the signs of mental retardation, yelling obscure sentences or total gibberish. On late stages subjects sometime express the feelings of inner power, and, cite, 'the ability to control the forces of cosmos themselves!' A gulp of strong, manly spirits usually reverts them to normal, humanlike, condition." + desc = "Some speculate that this virus is the cause of the Space Wizard Federation's existence. Subjects affected show the signs of mental hysteria, yelling obscure sentences or total gibberish. On late stages subjects sometime express the feelings of inner power, and, cite, 'the ability to control the forces of cosmos themselves!' A gulp of strong, manly spirits usually reverts them to normal, humanlike, condition." severity = DISEASE_SEVERITY_HARMFUL required_organs = list(/obj/item/bodypart/head) diff --git a/code/datums/materials/basemats.dm b/code/datums/materials/basemats.dm index c006f97bff..c3d0deeac6 100644 --- a/code/datums/materials/basemats.dm +++ b/code/datums/materials/basemats.dm @@ -19,7 +19,7 @@ integrity_modifier = 0.1 sheet_type = /obj/item/stack/sheet/glass value_per_unit = 0.0025 - armor_modifiers = list("melee" = 0.2, "bullet" = 0.2, "laser" = 0, "energy" = 1, "bomb" = 0, "bio" = 0.2, "rad" = 0.2, "fire" = 1, "acid" = 0.2) // yeah ok retard + armor_modifiers = list("melee" = 0.2, "bullet" = 0.2, "laser" = 0, "energy" = 1, "bomb" = 0, "bio" = 0.2, "rad" = 0.2, "fire" = 1, "acid" = 0.2) // yeah ok /* Color matrices are like regular colors but unlike with normal colors, you can go over 255 on a channel. diff --git a/code/datums/mutations/speech.dm b/code/datums/mutations/speech.dm index 56ce3533fc..8d57f3d9c2 100644 --- a/code/datums/mutations/speech.dm +++ b/code/datums/mutations/speech.dm @@ -79,7 +79,7 @@ message = " [message] " //Time for a friendly game of SS13 message = replacetext(message," stupid "," smart ") - message = replacetext(message," retard "," genius ") + message = replacetext(message," idiot "," genius ") message = replacetext(message," unrobust "," robust ") message = replacetext(message," dumb "," smart ") message = replacetext(message," awful "," great ") @@ -263,7 +263,7 @@ message = replacetext(message," thank you "," thank you, thank you very much ") message = replacetext(message," what are you "," whatcha ") message = replacetext(message," yes ",pick(" sure", "yea ")) - message = replacetext(message," faggot "," square ") + message = replacetext(message," dumbass "," square ") message = replacetext(message," muh valids "," getting my kicks ") speech_args[SPEECH_MESSAGE] = trim(message) diff --git a/code/game/machinery/doors/checkForMultipleDoors.dm b/code/game/machinery/doors/checkForMultipleDoors.dm index 3c1364dfdd..35a944c965 100644 --- a/code/game/machinery/doors/checkForMultipleDoors.dm +++ b/code/game/machinery/doors/checkForMultipleDoors.dm @@ -12,5 +12,5 @@ for(var/obj/machinery/door/D in locate(src.x,src.y,src.z)) if(!istype(D, /obj/machinery/door/window) && D.density) return 0 - //There are no false wall checks because that would be fucking retarded + //There are no false wall checks because that would be fucking return 1 \ No newline at end of file diff --git a/code/game/objects/items/manuals.dm b/code/game/objects/items/manuals.dm index 210c3d0da0..6c01e68a48 100644 --- a/code/game/objects/items/manuals.dm +++ b/code/game/objects/items/manuals.dm @@ -172,7 +172,7 @@ It can cook multiple items at once.

Processor:

- Use it to process certain ingredients (meat into faggot, doughslice into spaghetti, potato into fries,etc...) + Use it to process certain ingredients (meat into meatball, doughslice into spaghetti, potato into fries,etc...)

Gibber:

Stuff an animal in it to grind it into meat. diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index a67757a535..515c39ffcb 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -953,7 +953,7 @@ /obj/item/reagent_containers/food/snacks/grown/corn, /obj/item/reagent_containers/food/snacks/grown/mushroom/plumphelmet, /obj/item/reagent_containers/food/snacks/grown/mushroom/chanterelle, - /obj/item/reagent_containers/food/snacks/faggot, + /obj/item/reagent_containers/food/snacks/meatball, /obj/item/reagent_containers/food/snacks/grown/citrus/orange, /obj/item/reagent_containers/food/snacks/grown/citrus/lemon, /obj/item/reagent_containers/food/snacks/grown/citrus/lime, @@ -1005,7 +1005,7 @@ /obj/item/storage/box/ingredients/italian/PopulateContents() for(var/i in 1 to 3) new /obj/item/reagent_containers/food/snacks/grown/tomato(src) - new /obj/item/reagent_containers/food/snacks/faggot(src) + new /obj/item/reagent_containers/food/snacks/meatball(src) new /obj/item/reagent_containers/food/drinks/bottle/wine(src) /obj/item/storage/box/ingredients/vegetarian @@ -1028,7 +1028,7 @@ new /obj/item/reagent_containers/food/snacks/grown/potato(src) new /obj/item/reagent_containers/food/snacks/grown/tomato(src) new /obj/item/reagent_containers/food/snacks/grown/corn(src) - new /obj/item/reagent_containers/food/snacks/faggot(src) + new /obj/item/reagent_containers/food/snacks/meatball(src) /obj/item/storage/box/ingredients/fruity theme_name = "fruity" @@ -1084,7 +1084,7 @@ new /obj/item/reagent_containers/food/snacks/carpmeat(src) new /obj/item/reagent_containers/food/snacks/meat/slab/xeno(src) new /obj/item/reagent_containers/food/snacks/meat/slab/corgi(src) - new /obj/item/reagent_containers/food/snacks/faggot(src) + new /obj/item/reagent_containers/food/snacks/meatball(src) /obj/item/storage/box/ingredients/exotic theme_name = "exotic" diff --git a/code/game/objects/structures/signs/signs_plaques.dm b/code/game/objects/structures/signs/signs_plaques.dm index 8a20456911..78c88cd09d 100644 --- a/code/game/objects/structures/signs/signs_plaques.dm +++ b/code/game/objects/structures/signs/signs_plaques.dm @@ -23,7 +23,7 @@ /obj/structure/sign/plaques/kiddie name = "\improper AI developers plaque" - desc = "Next to the extremely long list of names and job titles, there is a drawing of a little child. The child appears to be retarded. Beneath the image, someone has scratched the word \"PACKETS\"." + desc = "Next to the extremely long list of names and job titles, there is a drawing of a little child. The child appears to be stupid. Beneath the image, someone has scratched the word \"PACKETS\"." icon_state = "kiddieplaque" /obj/structure/sign/plaques/kiddie/badger @@ -46,4 +46,3 @@ name = "Mr. Deempisi portrait" desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'" icon_state = "monkey_painting" - \ No newline at end of file diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index 255b1a10fa..c70db70ee8 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -61,7 +61,7 @@
Summon Events (Toggle)
There can only be one!
There can only be one! (40-second delay)
- Make all players retarded
+ Make all players stupid
Egalitarian Station Mode
Break all lights
Fix all lights
@@ -452,14 +452,14 @@ var/datum/round_event/disease_outbreak/DO = E DO.virus_type = virus - if("retardify") + if("stupify") if(!check_rights(R_FUN)) return SSblackbox.record_feedback("nested tally", "admin_secrets_fun_used", 1, list("Mass Braindamage")) for(var/mob/living/carbon/human/H in GLOB.player_list) to_chat(H, "You suddenly feel stupid.") H.adjustOrganLoss(ORGAN_SLOT_BRAIN, 60, 80) - message_admins("[key_name_admin(usr)] made everybody retarded") + message_admins("[key_name_admin(usr)] made everybody stupid") if("eagles")//SCRAW if(!check_rights(R_FUN)) diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index a7cad1d7bb..2c29419f22 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -132,10 +132,10 @@ tastes = list("meat" = 1, "salmon" = 1) foodtype = MEAT | ALCOHOL -/obj/item/reagent_containers/food/snacks/faggot - name = "faggot" - desc = "A great meal all round. Not a cord of wood." - icon_state = "faggot" +/obj/item/reagent_containers/food/snacks/meatball + name = "meatball" + desc = "MAMA MIA DAS A SPICY" + icon_state = "meatball" list_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 1) filling_color = "#800000" tastes = list("meat" = 1) diff --git a/code/modules/food_and_drinks/recipes/processor_recipes.dm b/code/modules/food_and_drinks/recipes/processor_recipes.dm index fbd3f57323..1e3afd1cf5 100644 --- a/code/modules/food_and_drinks/recipes/processor_recipes.dm +++ b/code/modules/food_and_drinks/recipes/processor_recipes.dm @@ -6,7 +6,7 @@ /datum/food_processor_process/meat input = /obj/item/reagent_containers/food/snacks/meat/slab - output = /obj/item/reagent_containers/food/snacks/faggot + output = /obj/item/reagent_containers/food/snacks/meatball /datum/food_processor_process/bacon input = /obj/item/reagent_containers/food/snacks/meat/rawcutlet diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm index 108307119d..e8640886c2 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_egg.dm @@ -67,7 +67,7 @@ /datum/reagent/consumable/sodiumchloride = 1, /datum/reagent/consumable/blackpepper = 1, /obj/item/reagent_containers/food/snacks/boiledegg = 1, - /obj/item/reagent_containers/food/snacks/faggot = 1 + /obj/item/reagent_containers/food/snacks/meatball = 1 ) result = /obj/item/reagent_containers/food/snacks/scotchegg subcategory = CAT_EGG \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index efb773159d..e7fdeffe14 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -129,7 +129,7 @@ /datum/crafting_recipe/food/sausage name = "Sausage" reqs = list( - /obj/item/reagent_containers/food/snacks/faggot = 1, + /obj/item/reagent_containers/food/snacks/meatball = 1, /obj/item/reagent_containers/food/snacks/meat/cutlet = 2 ) result = /obj/item/reagent_containers/food/snacks/sausage diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm index 528fc61156..aa4d6e9f51 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm @@ -37,7 +37,7 @@ name = "Raw Khinkali" reqs = list( /obj/item/reagent_containers/food/snacks/doughslice = 1, - /obj/item/reagent_containers/food/snacks/faggot = 1 + /obj/item/reagent_containers/food/snacks/meatball = 1 ) result = /obj/item/reagent_containers/food/snacks/rawkhinkali subcategory = CAT_MISCFOOD @@ -47,7 +47,7 @@ reqs = list( /datum/reagent/consumable/soysauce = 5, /obj/item/reagent_containers/food/snacks/bun = 1, - /obj/item/reagent_containers/food/snacks/faggot = 1, + /obj/item/reagent_containers/food/snacks/meatball = 1, /obj/item/reagent_containers/food/snacks/grown/cabbage = 1 ) result = /obj/item/reagent_containers/food/snacks/meatbun diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm index 8a393476a2..6c418ab612 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pastry.dm @@ -177,7 +177,7 @@ name = "Donkpocket" reqs = list( /obj/item/reagent_containers/food/snacks/pastrybase = 1, - /obj/item/reagent_containers/food/snacks/faggot = 1 + /obj/item/reagent_containers/food/snacks/meatball = 1 ) result = /obj/item/reagent_containers/food/snacks/donkpocket subcategory = CAT_PASTRY diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm index 21112a4a4f..a07815a030 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pizza.dm @@ -71,7 +71,7 @@ name = "Sassysage pizza" reqs = list( /obj/item/reagent_containers/food/snacks/pizzabread = 1, - /obj/item/reagent_containers/food/snacks/faggot = 3, + /obj/item/reagent_containers/food/snacks/meatball = 3, /obj/item/reagent_containers/food/snacks/cheesewedge = 1, /obj/item/reagent_containers/food/snacks/grown/tomato = 1 ) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm index 4c942a0c2d..90036c0e2a 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm @@ -80,7 +80,7 @@ /obj/item/reagent_containers/glass/bowl = 1, /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris = 3, /obj/item/reagent_containers/food/snacks/grown/potato = 1, - /obj/item/reagent_containers/food/snacks/faggot = 1 + /obj/item/reagent_containers/food/snacks/meatball = 1 ) result = /obj/item/reagent_containers/food/snacks/salad/validsalad subcategory = CAT_SALAD diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm index ac49537adf..ae8bd6a49c 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm @@ -104,7 +104,7 @@ reqs = list( /datum/reagent/water = 10, /obj/item/reagent_containers/glass/bowl = 1, - /obj/item/reagent_containers/food/snacks/faggot = 1, + /obj/item/reagent_containers/food/snacks/meatball = 1, /obj/item/reagent_containers/food/snacks/grown/carrot = 1, /obj/item/reagent_containers/food/snacks/grown/potato = 1 ) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm index 12020a6241..722d91e86c 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_spaghetti.dm @@ -15,7 +15,7 @@ name = "Spaghetti meatball" reqs = list( /obj/item/reagent_containers/food/snacks/boiledspaghetti = 1, - /obj/item/reagent_containers/food/snacks/faggot = 2 + /obj/item/reagent_containers/food/snacks/meatball = 2 ) result = /obj/item/reagent_containers/food/snacks/meatballspaghetti subcategory = CAT_SPAGHETTI @@ -24,7 +24,7 @@ name = "Spesslaw" reqs = list( /obj/item/reagent_containers/food/snacks/boiledspaghetti = 1, - /obj/item/reagent_containers/food/snacks/faggot = 4 + /obj/item/reagent_containers/food/snacks/meatball = 4 ) result = /obj/item/reagent_containers/food/snacks/spesslaw subcategory = CAT_SPAGHETTI diff --git a/code/modules/jobs/job_types/chaplain.dm b/code/modules/jobs/job_types/chaplain.dm index 4aed218cf9..56bc70b990 100644 --- a/code/modules/jobs/job_types/chaplain.dm +++ b/code/modules/jobs/job_types/chaplain.dm @@ -73,7 +73,7 @@ B.name = "Fluorescent Incandescence" if("lol", "wtf", "gay", "penis", "ass", "poo", "badmin", "shitmin", "deadmin", "cock", "cocks", "meme", "memes") B.name = pick("Woodys Got Wood: The Aftermath", "War of the Cocks", "Sweet Bro and Hella Jef: Expanded Edition","F.A.T.A.L. Rulebook") - H.adjustOrganLoss(ORGAN_SLOT_BRAIN, 100) // starts off retarded as fuck + H.adjustOrganLoss(ORGAN_SLOT_BRAIN, 100) // starts off [censored for github] as fuck if("monkeyism","apism","gorillism","primatism") B.name = pick("Going Bananas", "Bananas Out For Harambe") if("mormonism") diff --git a/code/modules/lighting/lighting_corner.dm b/code/modules/lighting/lighting_corner.dm index 1de896520d..d4530acd04 100644 --- a/code/modules/lighting/lighting_corner.dm +++ b/code/modules/lighting/lighting_corner.dm @@ -138,6 +138,6 @@ GLOBAL_LIST_INIT(LIGHTING_CORNER_DIAGONAL, list(NORTHEAST, SOUTHEAST, SOUTHWEST, if (!force) return QDEL_HINT_LETMELIVE - stack_trace("Ok, Look, /tg/, I need you to find whatever fucker decided to call qdel on a fucking lighting corner, then tell him very nicely and politely that he is 100% retarded and needs his head checked. Thanks. Send them my regards by the way.") + stack_trace("Ok, Look, /tg/, I need you to find whatever fucker decided to call qdel on a fucking lighting corner, then tell him very nicely and politely that he is 100% stupid and needs his head checked. Thanks. Send them my regards by the way.") return ..() diff --git a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm index ca62df0b57..20d8492d0f 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm @@ -53,7 +53,7 @@ /mob/living/carbon/alien/humanoid/update_transform() //The old method of updating lying/standing was update_icons(). Aliens still expect that. if(lying > 0) - lying = 90 //Anything else looks retarded + lying = 90 //Anything else looks [censored for github] ..() update_icons() From 430d179c733aa2bc2b84e92e5293f5c754b7fa7c Mon Sep 17 00:00:00 2001 From: ForrestWick <54997375+ForrestWick@users.noreply.github.com> Date: Thu, 9 Apr 2020 17:38:06 -0500 Subject: [PATCH 077/190] whoops, forgot the dmi --- icons/obj/food/food.dmi | Bin 73492 -> 73495 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi index 37173beadb5cf67e0ae66e2b4227b2fac85455f4..f5e2dc56928c3f6db0db6e7e7b5914dc56eab3d5 100644 GIT binary patch delta 1504 zcmV<61t0p9z66)P1dt?ux_VStbVOxyV{&P5bZKvH004NLm733P961ig&-PPvX0Ayv z@g%z^Uv?5KjK$3C8x$ysRZ>btYAI=I+E2fSw%t8{9DR+30UP*9&7vssBg@|({`KYG z55F8f|NL?yQ(xIg@OcY6~#EwP>csErzbAMOv|ZA{Hk&fneM zgk<$_fB0~FGaGGu`uzoTYN=@*az3U4P$c0vq&Ah6kG?w|qP#2!^R9F&8QSih%N+xa z1H`G3EZCMu&RKT|U5r^UJ1L0+ciqx9w$w-UnyE43{Wa|g;eyIq)UVveF-gJLr!uy* z>D-6VoNAm?&cHW+Z%kvzv^5q8{hdW2&@mYV#=h{@Yc$oZ=Hw9{ZPYL;YDs}HJ9e7q z%;St;I?tI=y6Q2rv z!bj$sc#0}38<=}1uQqmERtg*(tsIIrYC2p|BInJe>U$c0$A)g4xwWx7W=kB9{kS$uuRctYCk31GyEIy`8fySpfry5BDCb>@4O%^Cc zbVuUJ3UI1_H74L#PZcBc_-4M4UUdbO)rse2dF`=&xV;IS>3Fz5e0ckp&tJYc32dY0 zoQeWYdNDE5E7$HHXCv?4zI^^r_kkj_F*VnL`@qy{V_K2Y859s$weilO>JbzLjcwzs zf=Lrk5)ub0h<5jpx$+(vxNJ`>2Oxp@NIS{aYXq`?m|E+?lUGH`{ZGIC`k#j{Z{EBa z8)4+v*E8cyRxN+7O>WEKs_ARIgy;?#L@3GRUidwat-N8B4H>Eyu8FnC6tB zI%hhz(P;O*Ax-lOIeE=$)Dqw>aBs(C->7IGFEqgWyH9UFynp_=`$MQVZ(1u-LaW#2 zBhqS|Q)?F)H**CgcBgu5EnpU2hE; z=A^}C5@_(>TVq4Vj3=5yQ>wsFQj&^)C3$t8@Fx`OV9)4;ye=vvo>s2Y2OPb_(I3Y? zb61$){S`)Bz+*Em;ISDOHjmA?fX8MSHEb9fw7bkOeu_*)?v*4=rDUGKmpMs}(~I&% z9x$mC^5d*sn0!Q9!DnzIWY%sk{)Vso`#7*J@J134Wp`fU)H(2<7)}dT>$P2Dl+(v?@SO3&BF8<| zYiu$V%GW&gSMutvIk=T`zUHA$ix&Ounn22Z7vSm|xs9nAjidCLg+L=&6qz{n*4R|2 zwgg;9OMsU*vKlvn-lt!%uA2bz=VFC@d&&2QFTZ>~eE#|2_W!3A_uWWmsDy*$1-Ik{ G0WcZwzUs69 delta 1501 zcmV<31tR*Fz66xM1dt?uw|Z1qbVOxyV{&P5bZKvH004NLm733P95)Qc&-PPnnrjj? zPST!yX%iGi(X?+c;7FX2G8$5)q)f+8-^1G8?H@Q0M%efFUK#};pORXvk@2-v9MR}eP=5=nC6SUpyF*OV{_7JB= zGGklroRV%3IvcZKc2blP+;xp>-%=OUX`;%A_m{Xug!3v(R<|$^ljMzE%zaC%POS?~ zv4kn61bp+#)Q3!eYh{7ZzgQFkM<#>7&}Lp+38uQ16dmHDl`3XM$%_ni7iBre26p8BUb#S%z7Cb^E)O=c)Xw2{P- zW#Cjxh`_Ob9xF!T{>^+Mo$3N8t0T|z{M=)Ge|_aS(SEo+ynXeb&wsu+3T&gM6teS+!K8^J z@sT}cM7z7dTzCr%T($?6J&?d$pp9g0B>-7Wtv2C*!KotU{^#F+|Ml+Eix)5YMi{x} z`OJ8gRP(=UlT*T_{7C(@TiQ$pK3a6_jA<<-ev2*ujb=>jO--E|5O^uB3cd$hp~8DnPlKa=X1V+0XRMEj zpx0J^tpNgEP^V5!fcEWy1xmLI>J)6;M{){?400-9Z5zp{^d;EYmVMaN4^vD~oipv* zXtcRjk*4{H9GoUKsu6G(xcA6p->7Ks&oscBn-8zvzIpt)`A4W%XIctULW|St0@7-n zQfm|GHg%etxYtYb5aKx6F4gkd-^mmQ^1PRIplg3DZX6mBC4$R0-} zpl(pAD^mh#Qz|u+6^Z?Gb3vVYM0ZM?XRbqPYk$`Vwp2hsJ+Mw~?rX_MBjP<-KOF~u z72c5qb_4-qXHAj7BK*LDy+v))#C}LTKU)cYe5QFjn^J@*3#Gmvmq0F1Zq`Rvrn&{D zIymU;J;5{UtQ(s%Muyf@)hh6ArjqO5{z^`VoCpv-{fuKIgYln@OYPtLvDJzUbK*QE z5@_(>YGp&mj7OS%RVu(xQlg4Qd3K(E@GlhWU{C0Pye`TljutM%TO7T?(RY2HjTe~U z+yzFQ!F@B%;Jz7WHuudqgZpL}RcsjQwT+2k{1};t+{;mza!x#eFLR>o!;|tv9x$q8 za{a8GnOs0x!AEc z0#*|ZQ&Ob0KHBUQC<;zZknlV1d7NV+`uVj>y2i;g!TA%I>se)Nus=iQ%|lu~zCOMvZ#k51tdAS!Ca0xx^+@ zp>)Ype<7#iB?q@~N|!uz)~sJkFA1d7HUX}#(YP{Iqkfb=vJhw_vmz6xRx6tdl^TKT zXc6%8N>;*3(EIc=c5Ehq{5e};-(K?a@agl%!^hw5uKxyo`S%mZ+P>$5=LNUt1pzP_ D@Uii$ From ec5db05bdc25e4da9e85b9967a64bb1ef98a0561 Mon Sep 17 00:00:00 2001 From: Akrilla Date: Fri, 10 Apr 2020 03:18:13 +0100 Subject: [PATCH 078/190] fixes up readapting --- .../antagonists/changeling/changeling.dm | 18 +++++++++++++----- .../antagonists/changeling/powers/absorb.dm | 1 + 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index cc15147312..e27ba2316f 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -31,6 +31,7 @@ var/isabsorbing = 0 var/islinking = 0 var/geneticpoints = 10 + var/maxgeneticpoints = 10 var/purchasedpowers = list() var/mimicing = "" var/canrespec = 0 @@ -98,17 +99,24 @@ to_chat(H, "You have evolved beyond your clownish nature, allowing you to wield weapons without harming yourself.") H.dna.remove_mutation(CLOWNMUT) -/datum/antagonist/changeling/proc/reset_properties() +/datum/antagonist/changeling/proc/reset_properties(hardReset = FALSE) changeling_speak = 0 chosen_sting = null - geneticpoints = initial(geneticpoints) + + geneticpoints = maxgeneticpoints sting_range = initial(sting_range) - chem_storage = initial(chem_storage) - chem_recharge_rate = initial(chem_recharge_rate) - chem_charges = min(chem_charges, chem_storage) chem_recharge_slowdown = initial(chem_recharge_slowdown) mimicing = "" + if (hardReset) + chem_storage = initial(chem_storage) + chem_recharge_rate = initial(chem_recharge_rate) + geneticpoints = initial(geneticpoints) + maxgeneticpoints = initial(maxgeneticpoints) + + chem_charges = min(chem_charges, chem_storage) + + /datum/antagonist/changeling/proc/remove_changeling_powers() if(ishuman(owner.current) || ismonkey(owner.current)) reset_properties() diff --git a/code/modules/antagonists/changeling/powers/absorb.dm b/code/modules/antagonists/changeling/powers/absorb.dm index 5cb4faa86e..c3c4ec78a3 100644 --- a/code/modules/antagonists/changeling/powers/absorb.dm +++ b/code/modules/antagonists/changeling/powers/absorb.dm @@ -96,6 +96,7 @@ to_chat(user, "[target] was one of us. We have absorbed their power.") target_ling.remove_changeling_powers() changeling.geneticpoints += round(target_ling.geneticpoints/2) + changeling.maxgeneticpoints += round(target_ling.geneticpoints/2) target_ling.geneticpoints = 0 target_ling.canrespec = 0 changeling.chem_storage += round(target_ling.chem_storage/2) From 5c74e239a01577d82fa34e6beab220225d91d15d Mon Sep 17 00:00:00 2001 From: Akrilla Date: Fri, 10 Apr 2020 03:43:18 +0100 Subject: [PATCH 079/190] wew --- code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm b/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm index c723f2cd7b..c0ee68cdee 100644 --- a/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm +++ b/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm @@ -106,7 +106,7 @@ It is possible to destroy the net by the occupant or someone else. playsound(affecting, 'sound/effects/sparks2.ogg', 50, 1) new /obj/effect/temp_visual/dir_setting/ninja/phase(affecting.drop_location(), affecting.dir) -/obj/attack_alien(mob/living/carbon/alien/humanoid/user) +/obj/structure/energy_net/attack_alien(mob/living/carbon/alien/humanoid/user) if(attack_generic(user, 15, BRUTE, "melee", 0)) //Aliens normally deal 60 damage to structures. They'd one-shot nets without this. playsound(src.loc, 'sound/weapons/slash.ogg', 100, 1) From 2a059038086c9a117ac7c696efeb7249b9563f79 Mon Sep 17 00:00:00 2001 From: Akrilla Date: Fri, 10 Apr 2020 04:26:35 +0100 Subject: [PATCH 080/190] do_after --- code/modules/mob/living/simple_animal/bot/secbot.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 5754f8c3b2..4a4602f525 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -235,11 +235,10 @@ Auto Patrol: []"}, playsound(src, 'sound/weapons/cablecuff.ogg', 30, TRUE, -2) C.visible_message("[src] is trying to put zipties on [C]!",\ "[src] is trying to put zipties on you!") - addtimer(CALLBACK(src, .proc/attempt_handcuff, C), 60) + if(do_after(src, 60, FALSE, C)) + attempt_handcuff(C) /mob/living/simple_animal/bot/secbot/proc/attempt_handcuff(mob/living/carbon/C) - if( !on || !Adjacent(C) || !isturf(C.loc) ) //if he's in a closet or not adjacent, we cancel cuffing. - return if(!C.handcuffed) C.handcuffed = new /obj/item/restraints/handcuffs/cable/zipties/used(C) C.update_handcuffed() From 0a67f5c6ea39b20680f9f2ff376e1911743f1fdc Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 9 Apr 2020 21:30:42 -0700 Subject: [PATCH 081/190] compile --- code/datums/components/storage/ui.dm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index a2c9e31386..18e9fed595 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -34,8 +34,8 @@ ui_boxes.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+columns-1]:[screen_pixel_x],[screen_start_y+rows-1]:[screen_pixel_y]" . += ui_boxes // Then, closer. - closer.screen_loc = "[screen_start_x + columns]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" - . += ui_closer + ui_close.screen_loc = "[screen_start_x + columns]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" + . += ui_close // Then orient the actual items. var/cx = screen_start_x var/cy = screen_start_y @@ -125,7 +125,7 @@ // now, screenloc the thing. var/xshift = FLOOR(pixel / world.icon_size, 1) var/px = pixel % world.icon_size - B.screen_loc = I.screen_loc = "[screen_start_x + xshift]:[px + px_add],[screen_start_y+rows-1]:[screen_pixel_y]" + B.screen_loc = I.screen_loc = "[screen_start_x + xshift]:[px + px_add],[screen_start_y]:[screen_pixel_y]" // add the used pixels to pixel after we place the object pixel += pixels_to_use @@ -142,8 +142,8 @@ ui_right.screen_loc = "[screen_start_x+maxcolumns-1]:[screen_pixel_x + 2],[screen_start_y]:[screen_pixel_y] to [screen_start_x+maxcolumns-1]:[screen_pixel_x + 2],[screen_start_y]:[screen_pixel_y]" . += ui_right // Then, closer. - closer.screen_loc = "[screen_start_x + maxcolumns]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" - . += ui_closer + ui_close.screen_loc = "[screen_start_x + maxcolumns]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" + . += ui_close /** * Shows our UI to a mob. @@ -163,7 +163,7 @@ if(M.active_storage) M.active_storage.ui_hide(M) M.active_storage = src - LAZOR(is_using, M) + LAZYOR(is_using, M) if(volumetric_ui()) //new volumetric ui bay-style M.client.screen |= orient2hud_volumetric(M, maxallowedscreensize) @@ -198,7 +198,7 @@ /datum/component/storage/proc/ui_hide(mob/M) if(!M.client) return TRUE - M.client.screen -= list(ui_boxes, ui_closer, ui_left, ui_right, ui_continuous, get_ui_item_objects_hide()) + M.client.screen -= list(ui_boxes, ui_close, ui_left, ui_right, ui_continuous, get_ui_item_objects_hide()) if(M.active_storage == src) M.active_storage = null LAZYREMOVE(is_using, M) From d149ce47a618f07d4ce54efdd4baaa324964d363 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 9 Apr 2020 21:31:35 -0700 Subject: [PATCH 082/190] ok --- code/game/objects/items.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 19ffb78e52..e6b9618ba3 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -863,7 +863,8 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) /// Get an item's volume that it uses when being stored. /obj/item/proc/get_w_volume() - return isnull(volume)? AUTO_SCALE_VOLUME(w_class) : w_volume + // if w_volume is 0 you fucked up anyways lol + return w_volume || AUTO_SCALE_VOLUME(w_class) /obj/item/proc/embedded(mob/living/carbon/human/embedded_mob) return From a559fef230784c63563e4248e6d04d207dcf99b2 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 9 Apr 2020 22:12:39 -0700 Subject: [PATCH 083/190] runtime --- code/datums/components/storage/storage.dm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 581798c904..1ee0a5f15c 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -136,7 +136,6 @@ // DO NOT USE QDEL_LIST_ASSOC. for(var/i in ui_item_blocks) qdel(ui_item_blocks[i]) //qdel the screen object not the item - ui_item_blocks.Cut() LAZYCLEARLIST(is_using) return ..() @@ -344,7 +343,6 @@ var/datum/component/storage/concrete/master = master() master.emp_act(source, severity) - //Resets something that is being removed from storage. /datum/component/storage/proc/_removal_reset(atom/movable/thing) if(!istype(thing)) @@ -356,8 +354,9 @@ /datum/component/storage/proc/_remove_and_refresh(datum/source, atom/movable/thing) _removal_reset(thing) - qdel(ui_item_blocks[thing]) - ui_item_blocks -= thing + if(LAZYACCESS(ui_item_blocks, thing)) + qdel(ui_item_blocks[thing]) + ui_item_blocks -= thing refresh_mob_views() //Call this proc to handle the removal of an item from the storage item. The item will be moved to the new_location target, if that is null it's being deleted From 00ebd842b87c22c80e0bac8ce5a64c5835e5c108 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 9 Apr 2020 22:17:42 -0700 Subject: [PATCH 084/190] k --- code/datums/components/storage/storage.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 1ee0a5f15c..0f98ab26cb 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -134,8 +134,10 @@ QDEL_NULL(ui_left) QDEL_NULL(ui_right) // DO NOT USE QDEL_LIST_ASSOC. - for(var/i in ui_item_blocks) - qdel(ui_item_blocks[i]) //qdel the screen object not the item + if(ui_item_blocks) + for(var/i in ui_item_blocks) + qdel(ui_item_blocks[i]) //qdel the screen object not the item + ui_item_blocks.Cut() LAZYCLEARLIST(is_using) return ..() From ffe206f3e18a725661233632da23374f14fb09ec Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 9 Apr 2020 22:33:54 -0700 Subject: [PATCH 085/190] k --- code/datums/components/storage/ui.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index 18e9fed595..f4472508b7 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -31,9 +31,11 @@ var/rows = CLAMP(CEILING(adjusted_contents / columns, 1), 1, screen_max_rows) // First, boxes. + ui_boxes = get_ui_boxes() ui_boxes.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+columns-1]:[screen_pixel_x],[screen_start_y+rows-1]:[screen_pixel_y]" . += ui_boxes // Then, closer. + ui_close = get_ui_close() ui_close.screen_loc = "[screen_start_x + columns]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" . += ui_close // Then orient the actual items. @@ -107,6 +109,8 @@ // define outside for marginal performance boost var/obj/item/I var/pixel = 0 + + LAZYINITLIST(ui_item_blocks) for(var/i in percentage_by_item) I = i var/percent = percentage_by_item[I] @@ -134,14 +138,18 @@ . += I // Then, continuous section. + ui_continuous = get_ui_continuous() ui_continuous.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+maxcolumns-1]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" . += ui_continuous // Then, left and right. + ui_left = get_ui_left() ui_left.screen_loc = "[screen_start_x]:[screen_pixel_x - 2],[screen_start_y]:[screen_pixel_y] to [screen_start_x]:[screen_pixel_x - 2],[screen_start_y]:[screen_pixel_y]" . += ui_left + ui_right = get_ui_right() ui_right.screen_loc = "[screen_start_x+maxcolumns-1]:[screen_pixel_x + 2],[screen_start_y]:[screen_pixel_y] to [screen_start_x+maxcolumns-1]:[screen_pixel_x + 2],[screen_start_y]:[screen_pixel_y]" . += ui_right // Then, closer. + ui_close = get_ui_close() ui_close.screen_loc = "[screen_start_x + maxcolumns]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" . += ui_close From 9b13f009fe9c10292f331b70c08cb75feca7aea6 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 9 Apr 2020 23:12:37 -0700 Subject: [PATCH 086/190] k --- code/__DEFINES/{layers.dm => layers_planes.dm} | 17 +++++++++++++---- code/datums/components/storage/ui.dm | 14 +++++++++++++- tgstation.dme | 2 +- 3 files changed, 27 insertions(+), 6 deletions(-) rename code/__DEFINES/{layers.dm => layers_planes.dm} (90%) diff --git a/code/__DEFINES/layers.dm b/code/__DEFINES/layers_planes.dm similarity index 90% rename from code/__DEFINES/layers.dm rename to code/__DEFINES/layers_planes.dm index 35947b320e..d0f9f8bc28 100644 --- a/code/__DEFINES/layers.dm +++ b/code/__DEFINES/layers_planes.dm @@ -129,11 +129,20 @@ #define HUD_PLANE 21 #define HUD_LAYER 21 #define HUD_RENDER_TARGET "HUD_PLANE" -#define ABOVE_HUD_PLANE 22 -#define ABOVE_HUD_LAYER 22 + +#define VOLUMETRIC_STORAGE_BOX_PLANE 23 +#define VOLUMETRIC_STORAGE_BOX_LAYER 23 +#define VOLUMETRIC_STORAGE_BOX_RENDER_TARGET "VOLUME_STORAGE_BOX_PLANE" + +#define VOLUMETRIC_STORAGE_ITEM_PLANE 24 +#define VOLUMETRIC_STORAGE_ITEM_LAYER 24 +#define VOLUMETRIC_STORAGE_ITEM_RENDER_TARGET "VOLUME_STORAGE_ITEM_PLANE" + +#define ABOVE_HUD_PLANE 25 +#define ABOVE_HUD_LAYER 25 #define ABOVE_HUD_RENDER_TARGET "ABOVE_HUD_PLANE" -#define SPLASHSCREEN_LAYER 23 -#define SPLASHSCREEN_PLANE 23 +#define SPLASHSCREEN_LAYER 30 +#define SPLASHSCREEN_PLANE 30 #define SPLASHSCREEN_RENDER_TARGET "SPLASHSCREEN_PLANE" diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index f4472508b7..89084f70e8 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -115,7 +115,7 @@ I = i var/percent = percentage_by_item[I] if(!ui_item_blocks[I]) - ui_item_blocks[I] = new /obj/screen/storage(null, src, I) + ui_item_blocks[I] = new /obj/screen/storage/volumetric_box(null, src, I) var/obj/screen/storage/volumetric_box/B = ui_item_blocks[I] var/pixels_to_use = overrun? MINIMUM_PIXELS_PER_ITEM : max(MINIMUM_PIXELS_PER_ITEM, FLOOR(horizontal_pixels * percent, MINIMUM_PIXELS_PER_ITEM)) @@ -133,6 +133,17 @@ // add the used pixels to pixel after we place the object pixel += pixels_to_use + // set various things + B.layer = VOLUMETRIC_STORAGE_BOX_LAYER + B.plane = VOLUMETRIC_STORAGE_BOX_PLANE + B.name = I.name + + + I.mouse_opacity = MOUSE_OPACITY_ICON + I.maptext = "" + I.layer = VOLUMETRIC_STORAGE_ITEM_LAYER + I.plane = VOLUMETRIC_STORAGE_ITEM_PLANE + // finally add our things. . += B . += I @@ -230,6 +241,7 @@ . = list() for(var/i in ui_item_blocks) . += ui_item_blocks[i] //get the block not the item + . += i /** * Gets our ui_boxes, making it if it doesn't exist. diff --git a/tgstation.dme b/tgstation.dme index 89a48a0344..8ba903dd86 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -57,7 +57,7 @@ #include "code\__DEFINES\is_helpers.dm" #include "code\__DEFINES\jobs.dm" #include "code\__DEFINES\language.dm" -#include "code\__DEFINES\layers.dm" +#include "code\__DEFINES\layers_planes.dm" #include "code\__DEFINES\lighting.dm" #include "code\__DEFINES\logging.dm" #include "code\__DEFINES\machines.dm" From a9e738b8b1602e728a5c621f9bcd214fde2dbc33 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 9 Apr 2020 23:14:07 -0700 Subject: [PATCH 087/190] k --- code/datums/components/storage/ui.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index 89084f70e8..68bb12b303 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -220,6 +220,7 @@ M.client.screen -= list(ui_boxes, ui_close, ui_left, ui_right, ui_continuous, get_ui_item_objects_hide()) if(M.active_storage == src) M.active_storage = null + UnregisterSignal(M, COMSIG_MOB_CLIENT_LOGOUT) LAZYREMOVE(is_using, M) return TRUE From be398004b792fc669f4f675dec08d852d716bb3f Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Apr 2020 00:16:43 -0700 Subject: [PATCH 088/190] groan --- code/datums/components/storage/ui.dm | 16 ++++++++++------ icons/mob/screen_gen.dmi | Bin 118971 -> 119011 bytes 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index 68bb12b303..b904d44392 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -100,6 +100,7 @@ used += volume volume_by_item[I] = volume percentage_by_item[I] = volume / max_volume + to_chat(world, "DEBUG: [I] volume [volume] percent [percentage_by_item[I]]") var/overrun = FALSE if(used >= (horizontal_pixels + 4)) //2-4 pixel grace zone // congratulations we are now in overrun mode. everything will be crammed to minimum storage pixels. @@ -108,7 +109,8 @@ // define outside for marginal performance boost var/obj/item/I - var/pixel = 0 + // start at this pixel from screen_start_x. + var/pixel = -((world.icon_size - VOLUMETRIC_BOX_SIZE) * 0.5) LAZYINITLIST(ui_item_blocks) for(var/i in percentage_by_item) @@ -118,12 +120,14 @@ ui_item_blocks[I] = new /obj/screen/storage/volumetric_box(null, src, I) var/obj/screen/storage/volumetric_box/B = ui_item_blocks[I] var/pixels_to_use = overrun? MINIMUM_PIXELS_PER_ITEM : max(MINIMUM_PIXELS_PER_ITEM, FLOOR(horizontal_pixels * percent, MINIMUM_PIXELS_PER_ITEM)) + to_chat(world, "DEBUG: [I] using [pixels_to_use] pixels out of [horizontal_pixels]") // now that we have pixels_to_use, place our thing and add it to the returned list. // now, scale the thing var/multiply = pixels_to_use / VOLUMETRIC_STORAGE_BOX_SIZE B.transform = matrix(multiply, 0, 0, 0, 1, 0) + // unfortunately since scaling means expand-from-center.. ugh.. var/px_add = (pixels_to_use - VOLUMETRIC_STORAGE_BOX_SIZE) * 0.5 // now, screenloc the thing. @@ -138,7 +142,6 @@ B.plane = VOLUMETRIC_STORAGE_BOX_PLANE B.name = I.name - I.mouse_opacity = MOUSE_OPACITY_ICON I.maptext = "" I.layer = VOLUMETRIC_STORAGE_ITEM_LAYER @@ -178,7 +181,7 @@ else if(current_maxscreensize) maxallowedscreensize = current_maxscreensize // we got screen size, register signal - RegisterSignal(M, COMSIG_MOB_CLIENT_LOGOUT, .proc/on_logout) + RegisterSignal(M, COMSIG_MOB_CLIENT_LOGOUT, .proc/on_logout, override = TRUE) if(M.active_storage) M.active_storage.ui_hide(M) M.active_storage = src @@ -217,10 +220,10 @@ /datum/component/storage/proc/ui_hide(mob/M) if(!M.client) return TRUE - M.client.screen -= list(ui_boxes, ui_close, ui_left, ui_right, ui_continuous, get_ui_item_objects_hide()) + UnregisterSignal(M, COMSIG_MOB_CLIENT_LOGOUT) + M.client.screen -= list(ui_boxes, ui_close, ui_left, ui_right, ui_continuous) + get_ui_item_objects_hide() if(M.active_storage == src) M.active_storage = null - UnregisterSignal(M, COMSIG_MOB_CLIENT_LOGOUT) LAZYREMOVE(is_using, M) return TRUE @@ -241,7 +244,8 @@ else . = list() for(var/i in ui_item_blocks) - . += ui_item_blocks[i] //get the block not the item + // get both the box and the item + . += ui_item_blocks[i] . += i /** diff --git a/icons/mob/screen_gen.dmi b/icons/mob/screen_gen.dmi index ffbffcab0dd1b8c809830e4544b548ad075c5ae5..d00d0b079c8b1ea8d1409111656a000ad6aca300 100644 GIT binary patch delta 6784 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 delta 6743 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 Date: Fri, 10 Apr 2020 00:21:40 -0700 Subject: [PATCH 089/190] k --- code/datums/components/storage/ui.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index b904d44392..ce1db703c5 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -110,7 +110,7 @@ // define outside for marginal performance boost var/obj/item/I // start at this pixel from screen_start_x. - var/pixel = -((world.icon_size - VOLUMETRIC_BOX_SIZE) * 0.5) + var/pixel = -((world.icon_size - VOLUMETRIC_STORAGE_BOX_SIZE) * 0.5) LAZYINITLIST(ui_item_blocks) for(var/i in percentage_by_item) From e2440034f58be3c48ccf2f6d66351983456deaf1 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Apr 2020 01:07:53 -0700 Subject: [PATCH 090/190] matrices.. --- code/__DEFINES/storage.dm | 10 +++--- code/_onclick/hud/screen_objects/storage.dm | 34 ++++++++++++++++++++- code/datums/components/storage/storage.dm | 8 +++-- code/datums/components/storage/ui.dm | 20 ++++-------- 4 files changed, 49 insertions(+), 23 deletions(-) diff --git a/code/__DEFINES/storage.dm b/code/__DEFINES/storage.dm index 56fa599dc3..3ec3e06961 100644 --- a/code/__DEFINES/storage.dm +++ b/code/__DEFINES/storage.dm @@ -23,14 +23,12 @@ #define WEIGHT_CLASS_GIGANTIC 6 /// Macro for automatically getting the volume of an item from its w_class. -#define AUTO_SCALE_VOLUME(w_class) (w_class ** 2) -/// Macro for automatically getting the volume of a storage item from its max_w_class and max_items. -#define AUTO_SCALE_STORAGE_VOLUME(w_class, max_items) (AUTO_SCALE_VOLUME(w_class) * max_items) +#define AUTO_SCALE_VOLUME(w_class) (2 ** w_class) +/// Macro for automatically getting the volume of a storage item from its max_w_class and max_combined_w_class. +#define AUTO_SCALE_STORAGE_VOLUME(w_class, max_combined_w_class) (AUTO_SCALE_VOLUME(w_class) * (max_combined_w_class / w_class)) // UI defines /// Minimum pixels an item must have in volumetric scaled storage UI -#define MINIMUM_PIXELS_PER_ITEM 4 -/// The size of the volumetric scaled storage UI's volumetric boxes that's rendered behind items. -#define VOLUMETRIC_STORAGE_BOX_SIZE 8 +#define MINIMUM_PIXELS_PER_ITEM 2 /// Maximum number of objects that will be allowed to be displayed using the volumetric display system. Arbitrary number to prevent server lockups. #define MAXIMUM_VOLUMETRIC_ITEMS 256 diff --git a/code/_onclick/hud/screen_objects/storage.dm b/code/_onclick/hud/screen_objects/storage.dm index 84f8408cb0..627893df1f 100644 --- a/code/_onclick/hud/screen_objects/storage.dm +++ b/code/_onclick/hud/screen_objects/storage.dm @@ -42,20 +42,52 @@ /obj/screen/storage/left icon_state = "storage_start" + insertion_click = TRUE /obj/screen/storage/right icon_state = "storage_end" + insertion_click = TRUE /obj/screen/storage/continuous icon_state = "storage_continue" + insertion_click = TRUE /obj/screen/storage/volumetric_box - icon_state = "stored_8px" + icon_state = "stored_continue" var/obj/item/our_item + var/obj/screen/storage/stored_left/left + var/obj/screen/storage/stored_right/right + +/obj/screen/storage/volumetric_box/Destroy() + QDEL_NULL(left) + QDEL_NULL(right) + our_item = null + return ..() /obj/screen/storage/volumetric_box/Initialize(mapload, new_master, our_item) src.our_item = our_item + left = new(null, src, our_item) + right = new(null, src, our_item) return ..() /obj/screen/storage/volumetric_box/Click(location, control, params) return our_item.Click(location, control, params) + +/obj/screen/storage/volumetric_box/proc/on_screen_objects() + return list(src, left, right) + +/obj/screen/storage/volumetric_box/proc/set_pixel_size(pixels) + cut_overlays() + //our icon size is 32 pixels. + transform = matrix(32 / pixels, 0, 0, 0, 1, 0) + left.pixel_x = -(pixels * 0.5) - 4 + right.pixel_x = (pixels * 0.5) + 4 + add_overlay(left) + add_overlay(right) + pixel_x = (pixels - 32) * 0.5 + +/obj/screen/storage/stored_left + icon_state = "stored_start" + +/obj/screen/storage/stored_right + icon_state = "stored_end" diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 0f98ab26cb..25646598d3 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -84,8 +84,6 @@ /datum/component/storage/Initialize(datum/component/storage/concrete/master) if(!isatom(parent)) return COMPONENT_INCOMPATIBLE - if(isnull(max_volume)) - max_volume = AUTO_SCALE_STORAGE_VOLUME(max_w_class, max_items) if(master) change_master(master) @@ -714,3 +712,9 @@ to_chat(user, "[parent] now picks up all items in a tile at once.") if(COLLECT_ONE) to_chat(user, "[parent] now picks up one item at a time.") + +/** + * Gets our max volume + */ +/datum/component/storage/proc/get_max_volume() + return max_volume || AUTO_SCALE_STORAGE_VOLUME(max_w_class, max_combined_w_class) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index ce1db703c5..da3094a2c9 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -99,7 +99,7 @@ volume = I.get_w_volume() used += volume volume_by_item[I] = volume - percentage_by_item[I] = volume / max_volume + percentage_by_item[I] = volume / get_max_volume() to_chat(world, "DEBUG: [I] volume [volume] percent [percentage_by_item[I]]") var/overrun = FALSE if(used >= (horizontal_pixels + 4)) //2-4 pixel grace zone @@ -110,7 +110,7 @@ // define outside for marginal performance boost var/obj/item/I // start at this pixel from screen_start_x. - var/pixel = -((world.icon_size - VOLUMETRIC_STORAGE_BOX_SIZE) * 0.5) + var/current_pixel = 0 LAZYINITLIST(ui_item_blocks) for(var/i in percentage_by_item) @@ -124,20 +124,12 @@ // now that we have pixels_to_use, place our thing and add it to the returned list. - // now, scale the thing - var/multiply = pixels_to_use / VOLUMETRIC_STORAGE_BOX_SIZE - B.transform = matrix(multiply, 0, 0, 0, 1, 0) - - // unfortunately since scaling means expand-from-center.. ugh.. - var/px_add = (pixels_to_use - VOLUMETRIC_STORAGE_BOX_SIZE) * 0.5 - // now, screenloc the thing. - var/xshift = FLOOR(pixel / world.icon_size, 1) - var/px = pixel % world.icon_size - B.screen_loc = I.screen_loc = "[screen_start_x + xshift]:[px + px_add],[screen_start_y]:[screen_pixel_y]" + B.screen_loc = I.screen_loc = "[screen_start_x]:[current_pixel],[screen_start_y]:[screen_pixel_y]" // add the used pixels to pixel after we place the object - pixel += pixels_to_use + current_pixel += pixels_to_use // set various things + B.set_pixel_size(pixels_to_use) B.layer = VOLUMETRIC_STORAGE_BOX_LAYER B.plane = VOLUMETRIC_STORAGE_BOX_PLANE B.name = I.name @@ -148,7 +140,7 @@ I.plane = VOLUMETRIC_STORAGE_ITEM_PLANE // finally add our things. - . += B + . += B.on_screen_objects() . += I // Then, continuous section. From 36cd3b4c3540ea7692dc5c7afc45028374b21630 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Apr 2020 01:23:36 -0700 Subject: [PATCH 091/190] i should have just ported from baystation instead of reinventing the fricking wheel --- code/_onclick/hud/screen_objects/storage.dm | 9 +++++---- code/datums/components/storage/ui.dm | 8 ++++---- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/code/_onclick/hud/screen_objects/storage.dm b/code/_onclick/hud/screen_objects/storage.dm index 627893df1f..bf560841bb 100644 --- a/code/_onclick/hud/screen_objects/storage.dm +++ b/code/_onclick/hud/screen_objects/storage.dm @@ -76,15 +76,16 @@ /obj/screen/storage/volumetric_box/proc/on_screen_objects() return list(src, left, right) +#define BOX_ICON_PIXELS 32 /obj/screen/storage/volumetric_box/proc/set_pixel_size(pixels) cut_overlays() //our icon size is 32 pixels. - transform = matrix(32 / pixels, 0, 0, 0, 1, 0) - left.pixel_x = -(pixels * 0.5) - 4 - right.pixel_x = (pixels * 0.5) + 4 + transform = matrix(pixels / BOX_ICON_PIXELS, 0, 0, 0, 1, 0) + left.pixel_x = -((BOX_ICON_PIXELS - pixels) * 0.5) - 4 + right.pixel_x = ((BOX_ICON_PIXELS - pixels) * 0.5) + 4 add_overlay(left) add_overlay(right) - pixel_x = (pixels - 32) * 0.5 +#undef BOX_ICON_PIXELS /obj/screen/storage/stored_left icon_state = "stored_start" diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index da3094a2c9..0d606a2f84 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -124,7 +124,7 @@ // now that we have pixels_to_use, place our thing and add it to the returned list. - B.screen_loc = I.screen_loc = "[screen_start_x]:[current_pixel],[screen_start_y]:[screen_pixel_y]" + B.screen_loc = I.screen_loc = "[screen_start_x]:[current_pixel + (pixels_to_use * 0.5)],[screen_start_y]:[screen_pixel_y]" // add the used pixels to pixel after we place the object current_pixel += pixels_to_use @@ -149,14 +149,14 @@ . += ui_continuous // Then, left and right. ui_left = get_ui_left() - ui_left.screen_loc = "[screen_start_x]:[screen_pixel_x - 2],[screen_start_y]:[screen_pixel_y] to [screen_start_x]:[screen_pixel_x - 2],[screen_start_y]:[screen_pixel_y]" + ui_left.screen_loc = "[screen_start_x]:[screen_pixel_x - 2],[screen_start_y]:[screen_pixel_y]" . += ui_left ui_right = get_ui_right() - ui_right.screen_loc = "[screen_start_x+maxcolumns-1]:[screen_pixel_x + 2],[screen_start_y]:[screen_pixel_y] to [screen_start_x+maxcolumns-1]:[screen_pixel_x + 2],[screen_start_y]:[screen_pixel_y]" + ui_right.screen_loc = "[screen_start_x + maxcolumns]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" . += ui_right // Then, closer. ui_close = get_ui_close() - ui_close.screen_loc = "[screen_start_x + maxcolumns]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" + ui_close.screen_loc = "[screen_start_x + maxcolumns]:[screen_pixel_x + 2],[screen_start_y]:[screen_pixel_y]" . += ui_close /** From 165379c0b8062a010d3eb4981c74155f7dc73d0e Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Apr 2020 02:19:19 -0700 Subject: [PATCH 092/190] storage --- code/__DEFINES/storage.dm | 17 ++++++-- code/_onclick/hud/screen_objects/storage.dm | 46 ++++++++++++-------- code/datums/components/storage/storage.dm | 45 ++++++++++++------- icons/mob/screen_gen.dmi | Bin 119011 -> 119019 bytes 4 files changed, 71 insertions(+), 37 deletions(-) diff --git a/code/__DEFINES/storage.dm b/code/__DEFINES/storage.dm index 3ec3e06961..bdcb638666 100644 --- a/code/__DEFINES/storage.dm +++ b/code/__DEFINES/storage.dm @@ -1,12 +1,17 @@ // storage_flags variable on /datum/component/storage -// Storage limits. These can be combined I guess but you really, really shouldn't (don't do it really) +// Storage limits. These can be combined (and usually are combined). /// Check max_items and contents.len when trying to insert #define STORAGE_LIMIT_MAX_ITEMS (1<<0) -/// Check w_class and max_combined_w_class, aka legacy behavior if you combine it with [STORAGE_LIMIT_MAX_ITEMS]. +/// Check max_combined_w_class. #define STORAGE_LIMIT_COMBINED_W_CLASS (1<<1) -/// Use max_w_class for maximum w_class but use the new volume system. Will automatically force rendering to use the new volume/baystation scaling UI so this is kind of incompatible with stuff like stack storage etc etc. +/// Use the new volume system. Will automatically force rendering to use the new volume/baystation scaling UI so this is kind of incompatible with stuff like stack storage etc etc. #define STORAGE_LIMIT_VOLUME (1<<2) +/// Use max_w_class +#define STORAGE_LIMIT_MAX_W_CLASS (1<<3) + +#define STORAGE_FLAGS_LEGACY_DEFAULT (STORAGE_LIMIT_MAX_ITEMS | STORAGE_LIMIT_COMBINED_W_CLASS | STORAGE_LIMIT_MAX_W_CLASS) +#define STORAGE_FLAGS_VOLUME_DEFAULT (STORAGE_LIMIT_MAX_ITEMS | STORAGE_LIMIT_VOLUME | STORAGE_LIMIT_MAX_W_CLASS) //ITEM INVENTORY WEIGHT, FOR w_class /// Usually items smaller then a human hand, ex: Playing Cards, Lighter, Scalpel, Coins/Money @@ -28,7 +33,11 @@ #define AUTO_SCALE_STORAGE_VOLUME(w_class, max_combined_w_class) (AUTO_SCALE_VOLUME(w_class) * (max_combined_w_class / w_class)) // UI defines +/// Size of volumetric box icon +#define VOLUMETRIC_STORAGE_BOX_ICON_SIZE 32 +/// Size of EACH left/right border icon for volumetric boxes +#define VOLUMETRIC_STORAGE_BOX_BORDER_SIZE 1 /// Minimum pixels an item must have in volumetric scaled storage UI -#define MINIMUM_PIXELS_PER_ITEM 2 +#define MINIMUM_PIXELS_PER_ITEM 6 /// Maximum number of objects that will be allowed to be displayed using the volumetric display system. Arbitrary number to prevent server lockups. #define MAXIMUM_VOLUMETRIC_ITEMS 256 diff --git a/code/_onclick/hud/screen_objects/storage.dm b/code/_onclick/hud/screen_objects/storage.dm index bf560841bb..5b73d8721a 100644 --- a/code/_onclick/hud/screen_objects/storage.dm +++ b/code/_onclick/hud/screen_objects/storage.dm @@ -55,40 +55,52 @@ /obj/screen/storage/volumetric_box icon_state = "stored_continue" var/obj/item/our_item - var/obj/screen/storage/stored_left/left - var/obj/screen/storage/stored_right/right - -/obj/screen/storage/volumetric_box/Destroy() - QDEL_NULL(left) - QDEL_NULL(right) - our_item = null - return ..() /obj/screen/storage/volumetric_box/Initialize(mapload, new_master, our_item) src.our_item = our_item - left = new(null, src, our_item) - right = new(null, src, our_item) + return ..() + +/obj/screen/storage/volumetric_box/Destroy() + our_item = null return ..() /obj/screen/storage/volumetric_box/Click(location, control, params) return our_item.Click(location, control, params) -/obj/screen/storage/volumetric_box/proc/on_screen_objects() +/obj/screen/storage/volumetric_box/center + icon_state = "stored_continue" + var/obj/screen/storage/stored_left/left + var/obj/screen/storage/stored_right/right + +/obj/screen/storage/volumetric_box/center/Initialize(mapload, new_master, our_item) + left = new(null, src, our_item) + right = new(null, src, our_item) + return ..() + +/obj/screen/storage/volumetric_box/center/Destroy() + QDEL_NULL(lefT) + QDEL_NULL(right) + return ..() + +/obj/screen/storage/volumetric_box/center/proc/on_screen_objects() return list(src, left, right) -#define BOX_ICON_PIXELS 32 -/obj/screen/storage/volumetric_box/proc/set_pixel_size(pixels) +/** + * Sets the size of this box screen object and regenerates its left/right borders. This includes the actual border's size! + */ +/obj/screen/storage/volumetric_box/center/proc/set_pixel_size(pixels) cut_overlays() //our icon size is 32 pixels. - transform = matrix(pixels / BOX_ICON_PIXELS, 0, 0, 0, 1, 0) - left.pixel_x = -((BOX_ICON_PIXELS - pixels) * 0.5) - 4 - right.pixel_x = ((BOX_ICON_PIXELS - pixels) * 0.5) + 4 + transform = matrix((pixels - (VOLUMETRIC_STORAGE_BOX_BORDER_SIZE * 2)) / VOLUMETRIC_STORAGE_BOX_ICON_SIZE, 0, 0, 0, 1, 0) + left.pixel_x = -((pixels - VOLUMETRIC_STORAGE_BOX_ICON_SIZE) * 0.5) - VOLUMETRIC_STORAGE_BOX_BORDER_SIZE + right.pixel_x = ((pixels - VOLUMETRIC_STORAGE_BOX_ICON_SIZE) * 0.5) + VOLUMETRIC_STORAGE_BOX_BORDER_SIZE add_overlay(left) add_overlay(right) -#undef BOX_ICON_PIXELS /obj/screen/storage/stored_left icon_state = "stored_start" + appearance_flags = APPEARANCE_UI | KEEP_APART | RESET_TRANSFORM // Yes I know RESET_TRANSFORM is in APPEARANCE_UI but we're hard-asserting this incase someone changes it. /obj/screen/storage/stored_right icon_state = "stored_end" + appearance_flags = APPEARANCE_UI | KEEP_APART | RESET_TRANSFORM diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 25646598d3..7cf820239c 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -22,7 +22,7 @@ var/locked = FALSE //when locked nothing can see inside or use it. /// Storage flags, including what kinds of limiters we use for how many items we can hold - var/storage_flags = STORAGE_LIMIT_VOLUME + var/storage_flags = STORAGE_FLAGS_VOLUME_DEFAULT /// Max w_class we can hold. Applies to [STORAGE_LIMIT_COMBINED_W_CLASS] and [STORAGE_LIMIT_VOLUME] var/max_w_class = WEIGHT_CLASS_SMALL /// Max combined w_class. Applies to [STORAGE_LIMIT_COMBINED_W_CLASS] @@ -496,10 +496,6 @@ if(M && !stop_messages) host.add_fingerprint(M) return FALSE - if(real_location.contents.len >= max_items) - if(!stop_messages) - to_chat(M, "[host] is full, make some space!") - return FALSE //Storage item is full if(length(can_hold)) if(!is_type_in_typecache(I, can_hold)) if(!stop_messages) @@ -509,17 +505,34 @@ if(!stop_messages) to_chat(M, "[host] cannot hold [I]!") return FALSE - if(I.w_class > max_w_class) - if(!stop_messages) - to_chat(M, "[I] is too big for [host]!") - return FALSE - var/sum_w_class = I.w_class - for(var/obj/item/_I in real_location) - sum_w_class += _I.w_class //Adds up the combined w_classes which will be in the storage item if the item is added to it. - if(sum_w_class > max_combined_w_class) - if(!stop_messages) - to_chat(M, "[I] won't fit in [host], make some space!") - return FALSE + // STORAGE LIMITS + if(storage_flags & STORAGE_LIMIT_MAX_ITEMS) + if(real_location.contents.len >= max_items) + if(!stop_messages) + to_chat(M, "[host] has too many things in it, make some space!") + return FALSE //Storage item is full + if(storage_flags & STORAGE_LIMIT_MAX_W_CLASS) + if(I.w_class > max_w_class) + if(!stop_messages) + to_chat(M, "[I] is too long for [host]!") + return FALSE + if(storage_flags & STORAGE_LIMIT_COMBINED_W_CLASS) + var/sum_w_class = I.w_class + for(var/obj/item/_I in real_location) + sum_w_class += _I.w_class //Adds up the combined w_classes which will be in the storage item if the item is added to it. + if(sum_w_class > max_combined_w_class) + if(!stop_messages) + to_chat(M, "[I] won't fit in [host], make some space!") + return FALSE + if(storage_flags & STORAGE_LIMIT_VOLUME) + var/sum_volume = I.get_w_volume() + for(var/obj/item/_I in real_location) + sum_volume += _I.get_w_volume() + if(sum_volume > get_max_volume()) + if(!stop_messages) + to_chat(M, "[I] is too spacious to fit in [host], make some space!") + return FALSE + ///////////////// if(isitem(host)) var/obj/item/IP = host var/datum/component/storage/STR_I = I.GetComponent(/datum/component/storage) diff --git a/icons/mob/screen_gen.dmi b/icons/mob/screen_gen.dmi index d00d0b079c8b1ea8d1409111656a000ad6aca300..60c413c372a7e495568a68b51cdbab64048acd42 100644 GIT binary patch delta 6455 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 N)p0wE(xaX?{txxuil+bo delta 6447 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

eHmaPT9!R7X=YKZc|C=eayPJG`l6FDLcn u+dd8FtPL>GbmYu%*=rglkJ5|yX+vwjKjs2Q9-cb@aCSIkU$yr{@_zwI9EN28 From bc16600070f707679818774d5fa0ff6a6c5fbd6c Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Apr 2020 04:00:59 -0700 Subject: [PATCH 093/190] alternative way --- code/__DEFINES/storage.dm | 4 ++ code/_onclick/hud/screen_objects/storage.dm | 6 ++- code/datums/components/storage/ui.dm | 44 +++++++++++---------- 3 files changed, 33 insertions(+), 21 deletions(-) diff --git a/code/__DEFINES/storage.dm b/code/__DEFINES/storage.dm index bdcb638666..b4240455fe 100644 --- a/code/__DEFINES/storage.dm +++ b/code/__DEFINES/storage.dm @@ -41,3 +41,7 @@ #define MINIMUM_PIXELS_PER_ITEM 6 /// Maximum number of objects that will be allowed to be displayed using the volumetric display system. Arbitrary number to prevent server lockups. #define MAXIMUM_VOLUMETRIC_ITEMS 256 +/// How much padding to give between items +#define VOLUMETRIC_STORAGE_ITEM_PADDING 1 +/// How much padding to give to edges +#define VOLUMETRIC_STORAGE_EDGE_PADDING 1 diff --git a/code/_onclick/hud/screen_objects/storage.dm b/code/_onclick/hud/screen_objects/storage.dm index 5b73d8721a..db287565f2 100644 --- a/code/_onclick/hud/screen_objects/storage.dm +++ b/code/_onclick/hud/screen_objects/storage.dm @@ -71,6 +71,7 @@ icon_state = "stored_continue" var/obj/screen/storage/stored_left/left var/obj/screen/storage/stored_right/right + var/pixel_size /obj/screen/storage/volumetric_box/center/Initialize(mapload, new_master, our_item) left = new(null, src, our_item) @@ -78,7 +79,7 @@ return ..() /obj/screen/storage/volumetric_box/center/Destroy() - QDEL_NULL(lefT) + QDEL_NULL(left) QDEL_NULL(right) return ..() @@ -89,6 +90,9 @@ * Sets the size of this box screen object and regenerates its left/right borders. This includes the actual border's size! */ /obj/screen/storage/volumetric_box/center/proc/set_pixel_size(pixels) + if(pixel_size == pixels) + return + pixel_size = pixels cut_overlays() //our icon size is 32 pixels. transform = matrix((pixels - (VOLUMETRIC_STORAGE_BOX_BORDER_SIZE * 2)) / VOLUMETRIC_STORAGE_BOX_ICON_SIZE, 0, 0, 0, 1, 0) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index 0d606a2f84..aa778c0054 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -81,14 +81,9 @@ // Generate ui_item_blocks for missing ones and render+orient. var/list/atom/contents = accessible_items() - - var/horizontal_pixels = maxcolumns * world.icon_size - // do the check for fallback for when someone has too much gamer gear - if((MINIMUM_PIXELS_PER_ITEM * length(contents)) > horizontal_pixels) - to_chat(user, "[parent] was showed to you in legacy mode due to your items overrunning the three row limit! Consider not carrying too much or bugging a maintainer to raise this limit!") - return orient2hud_legacy(user, maxcolumns) - // after this point we are sure we can somehow fit all items with 8 pixels or more into our one row. - + // our volume + var/our_volume = get_max_volume() + var/horizontal_pixels = (maxcolumns * world.icon_size) - (VOLUMETRIC_STORAGE_EDGE_PADDING * 2) // sigh loopmania time var/used = 0 // define outside for performance @@ -100,33 +95,41 @@ used += volume volume_by_item[I] = volume percentage_by_item[I] = volume / get_max_volume() - to_chat(world, "DEBUG: [I] volume [volume] percent [percentage_by_item[I]]") var/overrun = FALSE - if(used >= (horizontal_pixels + 4)) //2-4 pixel grace zone + if(used > our_volume) // congratulations we are now in overrun mode. everything will be crammed to minimum storage pixels. to_chat(user, "[parent] rendered in overrun mode due to more items inside than the maximum volume supports.") overrun = TRUE + // item padding + horizontal_pixels -= ((length(percentage_by_item) - 1) * VOLUMETRIC_STORAGE_ITEM_PADDING) + + // do the check for fallback for when someone has too much gamer gear + if((MINIMUM_PIXELS_PER_ITEM * length(percentage_by_item)) > horizontal_pixels) + to_chat(user, "[parent] was showed to you in legacy mode due to your items overrunning the three row limit! Consider not carrying too much or bugging a maintainer to raise this limit!") + return orient2hud_legacy(user, maxcolumns) + // after this point we are sure we can somehow fit all items with 8 pixels or more into our one row. + // define outside for marginal performance boost var/obj/item/I // start at this pixel from screen_start_x. - var/current_pixel = 0 + var/current_pixel = VOLUMETRIC_STORAGE_EDGE_PADDING LAZYINITLIST(ui_item_blocks) + for(var/i in percentage_by_item) I = i var/percent = percentage_by_item[I] if(!ui_item_blocks[I]) - ui_item_blocks[I] = new /obj/screen/storage/volumetric_box(null, src, I) - var/obj/screen/storage/volumetric_box/B = ui_item_blocks[I] - var/pixels_to_use = overrun? MINIMUM_PIXELS_PER_ITEM : max(MINIMUM_PIXELS_PER_ITEM, FLOOR(horizontal_pixels * percent, MINIMUM_PIXELS_PER_ITEM)) - to_chat(world, "DEBUG: [I] using [pixels_to_use] pixels out of [horizontal_pixels]") + ui_item_blocks[I] = new /obj/screen/storage/volumetric_box/center(null, src, I) + var/obj/screen/storage/volumetric_box/center/B = ui_item_blocks[I] + var/pixels_to_use = overrun? MINIMUM_PIXELS_PER_ITEM : max(MINIMUM_PIXELS_PER_ITEM, round(horizontal_pixels * percent, 1)) // now that we have pixels_to_use, place our thing and add it to the returned list. - B.screen_loc = I.screen_loc = "[screen_start_x]:[current_pixel + (pixels_to_use * 0.5)],[screen_start_y]:[screen_pixel_y]" + B.screen_loc = I.screen_loc = "[screen_start_x]:[current_pixel + (pixels_to_use * 0.5) + VOLUMETRIC_STORAGE_ITEM_PADDING],[screen_start_y]:[screen_pixel_y]" // add the used pixels to pixel after we place the object - current_pixel += pixels_to_use + current_pixel += pixels_to_use + VOLUMETRIC_STORAGE_ITEM_PADDING // set various things B.set_pixel_size(pixels_to_use) @@ -174,9 +177,10 @@ maxallowedscreensize = current_maxscreensize // we got screen size, register signal RegisterSignal(M, COMSIG_MOB_CLIENT_LOGOUT, .proc/on_logout, override = TRUE) - if(M.active_storage) - M.active_storage.ui_hide(M) - M.active_storage = src + if(M.active_storage != src) + if(M.active_storage) + M.active_storage.ui_hide(M) + M.active_storage = src LAZYOR(is_using, M) if(volumetric_ui()) //new volumetric ui bay-style From b09ac26ab2d82c8e0139e9cd610a1059a4af5c31 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Apr 2020 04:25:53 -0700 Subject: [PATCH 094/190] Update scooter.dm --- code/modules/vehicles/scooter.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm index 990ff93595..aa5bec22ec 100644 --- a/code/modules/vehicles/scooter.dm +++ b/code/modules/vehicles/scooter.dm @@ -134,8 +134,6 @@ playsound(src, 'sound/vehicles/skateboard_roll.ogg', 50, TRUE) if(prob (25)) var/turf/location = get_turf(loc) - if(location) - location.hotspot_expose(1000,1000) sparks.start() //the most radical way to start plasma fires addtimer(CALLBACK(src, .proc/grind), 2) return From 9d931c0a3ab3fb721d6e5ebbc201a1536a9a2aa4 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Apr 2020 04:32:16 -0700 Subject: [PATCH 095/190] Update datum_pipeline.dm --- code/modules/atmospherics/machinery/datum_pipeline.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/atmospherics/machinery/datum_pipeline.dm b/code/modules/atmospherics/machinery/datum_pipeline.dm index 899b621262..5e588d65b4 100644 --- a/code/modules/atmospherics/machinery/datum_pipeline.dm +++ b/code/modules/atmospherics/machinery/datum_pipeline.dm @@ -208,7 +208,7 @@ /datum/pipeline/proc/return_air() . = other_airs + air if(null in .) - stack_trace("[src] has one or more null gas mixtures, which may cause bugs. Null mixtures will not be considered in reconcile_air().") + stack_trace("[src]([REF(src)]) has one or more null gas mixtures, which may cause bugs. Null mixtures will not be considered in reconcile_air().") return removeNullsFromList(.) /datum/pipeline/proc/reconcile_air() From 185b38e109312c2f13454a637a324456644d2df2 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Apr 2020 04:33:35 -0700 Subject: [PATCH 096/190] Update scooter.dm --- code/modules/vehicles/scooter.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/vehicles/scooter.dm b/code/modules/vehicles/scooter.dm index aa5bec22ec..1fb037d1c5 100644 --- a/code/modules/vehicles/scooter.dm +++ b/code/modules/vehicles/scooter.dm @@ -133,7 +133,6 @@ else playsound(src, 'sound/vehicles/skateboard_roll.ogg', 50, TRUE) if(prob (25)) - var/turf/location = get_turf(loc) sparks.start() //the most radical way to start plasma fires addtimer(CALLBACK(src, .proc/grind), 2) return From 84c8183ccb1f5ab09674872cd846d0da54c1c8ec Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Apr 2020 04:42:34 -0700 Subject: [PATCH 097/190] k --- code/datums/components/storage/ui.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index aa778c0054..7e9355a665 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -123,11 +123,11 @@ if(!ui_item_blocks[I]) ui_item_blocks[I] = new /obj/screen/storage/volumetric_box/center(null, src, I) var/obj/screen/storage/volumetric_box/center/B = ui_item_blocks[I] - var/pixels_to_use = overrun? MINIMUM_PIXELS_PER_ITEM : max(MINIMUM_PIXELS_PER_ITEM, round(horizontal_pixels * percent, 1)) + var/pixels_to_use = overrun? MINIMUM_PIXELS_PER_ITEM : max(MINIMUM_PIXELS_PER_ITEM, horizontal_pixels * percent) // now that we have pixels_to_use, place our thing and add it to the returned list. - B.screen_loc = I.screen_loc = "[screen_start_x]:[current_pixel + (pixels_to_use * 0.5) + VOLUMETRIC_STORAGE_ITEM_PADDING],[screen_start_y]:[screen_pixel_y]" + B.screen_loc = I.screen_loc = "[screen_start_x]:[round(current_pixel + (pixels_to_use * 0.5) + VOLUMETRIC_STORAGE_ITEM_PADDING, 1)],[screen_start_y]:[screen_pixel_y]" // add the used pixels to pixel after we place the object current_pixel += pixels_to_use + VOLUMETRIC_STORAGE_ITEM_PADDING From a9f6ac4131c2bf10cee14d971efbb7d6a85dc6fa Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Apr 2020 04:42:51 -0700 Subject: [PATCH 098/190] default to legacy --- code/datums/components/storage/storage.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 7cf820239c..0efdc96600 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -22,7 +22,7 @@ var/locked = FALSE //when locked nothing can see inside or use it. /// Storage flags, including what kinds of limiters we use for how many items we can hold - var/storage_flags = STORAGE_FLAGS_VOLUME_DEFAULT + var/storage_flags = STORAGE_FLAGS_LEGACY_DEFAULT /// Max w_class we can hold. Applies to [STORAGE_LIMIT_COMBINED_W_CLASS] and [STORAGE_LIMIT_VOLUME] var/max_w_class = WEIGHT_CLASS_SMALL /// Max combined w_class. Applies to [STORAGE_LIMIT_COMBINED_W_CLASS] From 6705fc97247fce0e775f84907dc19fded29a77b4 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Apr 2020 04:45:19 -0700 Subject: [PATCH 099/190] Update rped.dm --- code/datums/components/storage/concrete/rped.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/components/storage/concrete/rped.dm b/code/datums/components/storage/concrete/rped.dm index 1e609c4107..d919828e8e 100644 --- a/code/datums/components/storage/concrete/rped.dm +++ b/code/datums/components/storage/concrete/rped.dm @@ -3,7 +3,7 @@ allow_quick_gather = TRUE allow_quick_empty = TRUE click_gather = TRUE - storage_flags = STORAGE_LIMIT_MAX_ITEMS | STORAGE_LIMIT_COMBINED_W_CLASS + storage_flags = STORAGE_FLAGS_LEGACY_DEFAULT max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = 100 max_items = 100 From a02bad15eaccf3d539bc58476d32c765a68af6bd Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Apr 2020 04:45:28 -0700 Subject: [PATCH 100/190] Update stack.dm --- code/datums/components/storage/concrete/stack.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/components/storage/concrete/stack.dm b/code/datums/components/storage/concrete/stack.dm index 76c7bc2af5..a3f1e526a0 100644 --- a/code/datums/components/storage/concrete/stack.dm +++ b/code/datums/components/storage/concrete/stack.dm @@ -1,7 +1,7 @@ //Stack-only storage. /datum/component/storage/concrete/stack display_numerical_stacking = TRUE - storage_flags = STORAGE_LIMIT_COMBINED_W_CLASS | STORAGE_LIMIT_MAX_ITEMS + storage_flags = STORAGE_FLAGS_LEGACY_DEFAULT var/max_combined_stack_amount = 300 max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = WEIGHT_CLASS_NORMAL * 14 From a38e6e88a00f6b96e4c6ea298a7a1cf558aa4402 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Fri, 10 Apr 2020 14:07:39 +0200 Subject: [PATCH 101/190] Enables hulk smash. --- code/datums/mutations/combined.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/datums/mutations/combined.dm b/code/datums/mutations/combined.dm index d3cc83f9c0..465706c897 100644 --- a/code/datums/mutations/combined.dm +++ b/code/datums/mutations/combined.dm @@ -26,3 +26,7 @@ /datum/generecipe/tonguechem required = "/datum/mutation/human/tongue_spike; /datum/mutation/human/stimmed" result = TONGUESPIKECHEM + +/datum/generecipe/hulk + required = "/datum/mutation/human/strong; /datum/mutation/human/radioactive" + result = HULK From 7d67eee24c2382e931f2735899a1928c9731a779 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Fri, 10 Apr 2020 15:51:09 +0200 Subject: [PATCH 102/190] Update RCL.dm --- code/game/objects/items/RCL.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/RCL.dm b/code/game/objects/items/RCL.dm index c3830abad8..959c87854d 100644 --- a/code/game/objects/items/RCL.dm +++ b/code/game/objects/items/RCL.dm @@ -201,7 +201,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) return //If we've run out, display message and exit else last = null - loaded.cable_color = colors[current_color_index] + loaded.color = colors[current_color_index] last = loaded.place_turf(get_turf(src), user, turn(user.dir, 180)) is_empty(user) //If we've run out, display message update_icon() @@ -277,7 +277,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) if(T.intact || !T.can_have_cabling()) return - loaded.cable_color = colors[current_color_index] + loaded.color = colors[current_color_index] var/obj/structure/cable/linkingCable = findLinkingCable(user) if(linkingCable) @@ -299,7 +299,7 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) var/cwname = colors[current_color_index] to_chat(user, "Color changed to [cwname]!") if(loaded) - loaded.cable_color = colors[current_color_index] + loaded.color = colors[current_color_index] update_icon() if(wiring_gui_menu) wiringGuiUpdate(user) From af55880794ce648f297b4ddb7717abc51707edf4 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Fri, 10 Apr 2020 17:22:34 +0200 Subject: [PATCH 103/190] Fixes and standarizes a few liver troubles. Re-enables liver failure. --- code/__DEFINES/movespeed_modification.dm | 4 +- code/game/objects/items/devices/scanners.dm | 4 +- code/modules/mob/living/carbon/life.dm | 27 +-------- .../chemistry/reagents/alcohol_reagents.dm | 8 +-- .../chemistry/reagents/medicine_reagents.dm | 12 ++-- .../chemistry/reagents/other_reagents.dm | 8 +-- code/modules/surgery/organs/liver.dm | 56 +++++++++---------- code/modules/surgery/organs/organ_internal.dm | 14 +++-- .../chemistry/reagents/enlargement.dm | 20 ++++--- 9 files changed, 68 insertions(+), 85 deletions(-) diff --git a/code/__DEFINES/movespeed_modification.dm b/code/__DEFINES/movespeed_modification.dm index 76c326cec0..bc1e6f7d5f 100644 --- a/code/__DEFINES/movespeed_modification.dm +++ b/code/__DEFINES/movespeed_modification.dm @@ -78,4 +78,6 @@ #define MOVESPEED_ID_COLD "COLD" #define MOVESPEED_ID_HUNGRY "HUNGRY" #define MOVESPEED_ID_DAMAGE_SLOWDOWN "DAMAGE" -#define MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING "FLYING" \ No newline at end of file +#define MOVESPEED_ID_DAMAGE_SLOWDOWN_FLYING "FLYING" + +#define MOVESPEED_ID_CIRRHOSIS "CIRRHOSIS" \ No newline at end of file diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 634ca4d637..b6cab8b438 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -275,10 +275,8 @@ SLIME SCANNER //LIVER else if(istype(O, /obj/item/organ/liver)) var/obj/item/organ/liver/L = O - if(H.undergoing_liver_failure() && H.stat != DEAD) //might be depreciated + if(L.organ_flags & ORGAN_FAILING && H.stat != DEAD) //might be depreciated temp_message += "Subject is suffering from liver failure: Apply Corazone and begin a liver transplant immediately!" - if(L.swelling > 20) - temp_message += " Subject is suffering from an enlarged liver." //i.e. shrink their liver or give them a transplant. //HEART else if(ishuman(M) && (istype(O, /obj/item/organ/heart))) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 7c6d0e8cdc..8097859aac 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -28,10 +28,8 @@ if(stat != DEAD) handle_brain_damage() - /* BUG_PROBABLE_CAUSE if(stat != DEAD) handle_liver() - */ if(stat == DEAD) stop_sound_channel(CHANNEL_HEARTBEAT) @@ -690,36 +688,17 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put var/obj/item/organ/liver/liver = getorganslot(ORGAN_SLOT_LIVER) if((!dna && !liver) || (NOLIVER in dna.species.species_traits)) return - if(liver) - if(liver.damage < liver.maxHealth) - liver.organ_flags |= ORGAN_FAILING - liver_failure() - else + if(!liver || liver.organ_flags & ORGAN_FAILING) liver_failure() -/mob/living/carbon/proc/undergoing_liver_failure() - var/obj/item/organ/liver/liver = getorganslot(ORGAN_SLOT_LIVER) - if(liver && liver.failing) - return TRUE - -/mob/living/carbon/proc/return_liver_damage() - var/obj/item/organ/liver/liver = getorganslot(ORGAN_SLOT_LIVER) - if(liver) - return liver.damage - -/mob/living/carbon/proc/applyLiverDamage(var/d) - var/obj/item/organ/liver/L = getorganslot(ORGAN_SLOT_LIVER) - if(L) - L.damage += d - /mob/living/carbon/proc/liver_failure() reagents.end_metabolization(src, keep_liverless = TRUE) //Stops trait-based effects on reagents, to prevent permanent buffs reagents.metabolize(src, can_overdose=FALSE, liverless = TRUE) if(HAS_TRAIT(src, TRAIT_STABLELIVER)) return adjustToxLoss(4, TRUE, TRUE) - if(prob(30)) - to_chat(src, "You feel a stabbing pain in your abdomen!") + if(prob(15)) + to_chat(src, "You feel a stabbing pain in your abdomen!") //////////////// diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index b7f32421aa..da461ef4ff 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -43,8 +43,8 @@ All effects don't start immediately, but rather get worse over time; the rate is booze_power *= 0.7 C.drunkenness = max((C.drunkenness + (sqrt(volume) * booze_power * ALCOHOL_RATE)), 0) //Volume, power, and server alcohol rate effect how quickly one gets drunk var/obj/item/organ/liver/L = C.getorganslot(ORGAN_SLOT_LIVER) - if (istype(L)) - C.applyLiverDamage((max(sqrt(volume) * (boozepwr ** ALCOHOL_EXPONENT) * L.alcohol_tolerance, 0))/150) + if(L) + L.applyOrganDamage((max(sqrt(volume) * (boozepwr ** ALCOHOL_EXPONENT) * L.alcohol_tolerance, 0))/150) return ..() /datum/reagent/consumable/ethanol/reaction_obj(obj/O, reac_volume) @@ -1646,7 +1646,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_icon_state = "pina_colada" glass_name = "Pina Colada" glass_desc = "If you like pina coladas, and getting caught in the rain... well, you'll like this drink." - + /datum/reagent/consumable/ethanol/grasshopper name = "Grasshopper" description = "A fresh and sweet dessert shooter. Difficult to look manly while drinking this." @@ -2354,7 +2354,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/hotlime_miami/on_mob_life(mob/living/carbon/M) M.set_drugginess(50) M.adjustStaminaLoss(-2) - return ..() + return ..() /datum/reagent/consumable/ethanol/fruit_wine name = "Fruit Wine" diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 46002287dd..ecceb6e8bf 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -263,9 +263,9 @@ /datum/reagent/medicine/silver_sulfadiazine/overdose_start(mob/living/M) metabolization_rate = 15 * REAGENTS_METABOLISM M.adjustBruteLoss(2*REM, 0) - if(iscarbon(M)) - var/mob/living/carbon/C = M - C.applyLiverDamage(1) + var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) + if(L) + L.applyOrganDamage(1) ..() . = 1 @@ -326,9 +326,9 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) metabolization_rate = 15 * REAGENTS_METABOLISM M.adjustBruteLoss(2*REM, 0) - if(iscarbon(M)) - var/mob/living/carbon/C = M - C.applyLiverDamage(1) + var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) + if(L) + L.applyOrganDamage(1) ..() . = 1 diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index d9b2aafb4b..cc6943e8e1 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1070,11 +1070,11 @@ to_chat(M, "You start feeling your guts twisting painfully!") SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "[type]_overdose", /datum/mood_event/overdose, name) -/datum/reagent/iron/overdose_process(mob/living/carbon/C) +/datum/reagent/iron/overdose_process(mob/living/M) if(prob(20)) - var/obj/item/organ/liver/L = C.getorganslot(ORGAN_SLOT_LIVER) - if (istype(L)) - C.applyLiverDamage(2) //mild until the fabled med rework comes out. the organ damage galore + var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) + if(L) + L.applyOrganDamage(2) ..() /datum/reagent/gold diff --git a/code/modules/surgery/organs/liver.dm b/code/modules/surgery/organs/liver.dm index 73225fc41c..117a45cdbc 100755 --- a/code/modules/surgery/organs/liver.dm +++ b/code/modules/surgery/organs/liver.dm @@ -1,7 +1,6 @@ #define LIVER_DEFAULT_HEALTH 100 //amount of damage required for liver failure #define LIVER_DEFAULT_TOX_TOLERANCE 3 //amount of toxins the liver can filter out #define LIVER_DEFAULT_TOX_LETHALITY 0.01 //lower values lower how harmful toxins are to the liver -#define LIVER_SWELLING_MOVE_MODIFY "pharma" /obj/item/organ/liver name = "liver" @@ -15,12 +14,14 @@ healing_factor = STANDARD_ORGAN_HEALING decay_factor = STANDARD_ORGAN_DECAY + high_threshold_passed = "You feel a stange ache in your abdomen, almost like a stitch. This pain is encumbering your movements." + high_threshold_cleared = "The stitching ache in your abdomen passes away, unencumbering your movements." + now_fixed = "The stabbing pain in your abdomen slowly calms down into a more tolerable ache." + var/alcohol_tolerance = ALCOHOL_RATE//affects how much damage the liver takes from alcohol - var/failing //is this liver failing? var/toxTolerance = LIVER_DEFAULT_TOX_TOLERANCE//maximum amount of toxins the liver can just shrug off var/toxLethality = LIVER_DEFAULT_TOX_LETHALITY//affects how much damage toxins do to the liver var/filterToxins = TRUE //whether to filter toxins - var/swelling = 0 var/cachedmoveCalc = 1 /obj/item/organ/liver/on_life() @@ -28,8 +29,6 @@ if(istype(C)) if(!(organ_flags & ORGAN_FAILING))//can't process reagents with a failing liver - //slowly heal liver damage - damage = max(0, damage - 0.1) if(filterToxins && !HAS_TRAIT(owner, TRAIT_TOXINLOVER)) //handle liver toxin filtration @@ -46,42 +45,41 @@ if(damage > 10 && prob(damage/3))//the higher the damage the higher the probability to_chat(C, "You feel a dull pain in your abdomen.") - if(damage > maxHealth)//cap liver damage - damage = maxHealth - - if(swelling >= 10) - pharmacokinesis() - /obj/item/organ/liver/prepare_eat() var/obj/S = ..() S.reagents.add_reagent(/datum/reagent/iron, 5) return S -//Just in case +/obj/item/organ/liver/applyOrganDamage(d, maximum = maxHealth) + . = ..() + if(!.) + return + if(damage >= high_threshold) + var/move_calc = 1+((round(damage) - high_threshold)/(high_threshold/3)) + owner.add_movespeed_modifier(MOVESPEED_ID_CIRRHOSIS, TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = move_calc) + sizeMoveMod(move_calc, owner) + else + owner.remove_movespeed_modifier(MOVESPEED_ID_CIRRHOSIS) + sizeMoveMod(1, owner) + +/obj/item/organ/liver/Insert(mob/living/carbon/M, special = FALSE, drop_if_replaced = TRUE) + . = ..() + if(. && damage >= high_threshold) + var/move_calc = 1+((round(damage) - high_threshold)/(high_threshold/3)) + M.add_movespeed_modifier(MOVESPEED_ID_CIRRHOSIS, TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = move_calc) + sizeMoveMod(move_calc, owner) + /obj/item/organ/liver/Remove(special = FALSE) if(!QDELETED(owner)) - owner.remove_movespeed_modifier(LIVER_SWELLING_MOVE_MODIFY) - owner.ResetBloodVol() //At the moment, this shouldn't allow application twice. You either have this OR a thirsty ferret. + owner.remove_movespeed_modifier(MOVESPEED_ID_CIRRHOSIS) sizeMoveMod(1, owner) return ..() -//Applies some of the effects to the patient. -/obj/item/organ/liver/proc/pharmacokinesis() - var/moveCalc = 1+((round(swelling) - 9)/3) - if(moveCalc == cachedmoveCalc)//reduce calculations - return - if(prob(5)) - to_chat(owner, "You feel a stange ache in your side, almost like a stitch. This pain is affecting your movements and making you feel lightheaded.") - var/mob/living/carbon/human/H = owner - H.add_movespeed_modifier(LIVER_SWELLING_MOVE_MODIFY, TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = moveCalc) - H.AdjustBloodVol(moveCalc/3) - sizeMoveMod(moveCalc, H) - -/obj/item/organ/liver/proc/sizeMoveMod(var/value, mob/living/carbon/human/H) +/obj/item/organ/liver/proc/sizeMoveMod(value, mob/living/carbon/C) if(cachedmoveCalc == value) return - H.next_move_modifier /= cachedmoveCalc - H.next_move_modifier *= value + C.next_move_modifier /= cachedmoveCalc + C.next_move_modifier *= value cachedmoveCalc = value /obj/item/organ/liver/fly diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index b091af0f92..d95901bdbe 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -143,8 +143,9 @@ var/healing_amount = -(maxHealth * healing_factor) ///Damage decrements again by a percent of its maxhealth, up to a total of 4 extra times depending on the owner's health healing_amount -= owner.satiety > 0 ? 4 * healing_factor * owner.satiety / MAX_SATIETY : 0 - applyOrganDamage(healing_amount) //to FERMI_TWEAK - //Make it so each threshold is stuck. + if(healing_amount) + applyOrganDamage(healing_amount) //to FERMI_TWEAK + //Make it so each threshold is stuck. /obj/item/organ/examine(mob/user) . = ..() @@ -205,14 +206,15 @@ ///Adjusts an organ's damage by the amount "d", up to a maximum amount, which is by default max damage /obj/item/organ/proc/applyOrganDamage(var/d, var/maximum = maxHealth) //use for damaging effects if(!d) //Micro-optimization. - return + return FALSE if(maximum < damage) - return + return FALSE damage = CLAMP(damage + d, 0, maximum) - var/mess = check_damage_thresholds(owner) + var/mess = check_damage_thresholds() prev_damage = damage if(mess && owner) to_chat(owner, mess) + return TRUE ///SETS an organ's damage to the amount "d", and in doing so clears or sets the failing flag, good for when you have an effect that should fix an organ if broken /obj/item/organ/proc/setOrganDamage(var/d) //use mostly for admin heals @@ -224,7 +226,7 @@ * description: By checking our current damage against our previous damage, we can decide whether we've passed an organ threshold. * If we have, send the corresponding threshold message to the owner, if such a message exists. */ -/obj/item/organ/proc/check_damage_thresholds(var/M) +/obj/item/organ/proc/check_damage_thresholds() if(damage == prev_damage) return var/delta = damage - prev_damage diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm index 28a776082f..198e6c5c24 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm @@ -54,15 +54,15 @@ return..() var/mob/living/carbon/human/H = M - var/obj/item/organ/genital/breasts/B = M.getorganslot(ORGAN_SLOT_BREASTS) //If they've opted out, then route processing though liver. if(!(H.client?.prefs.cit_toggles & BREAST_ENLARGEMENT)) var/obj/item/organ/liver/L = H.getorganslot(ORGAN_SLOT_LIVER) if(L) - L.swelling += 0.05 + L.applyOrganDamage(0.25) else H.adjustToxLoss(1) return..() + var/obj/item/organ/genital/breasts/B = M.getorganslot(ORGAN_SLOT_BREASTS) //otherwise proceed as normal if(!B) //If they don't have breasts, give them breasts. @@ -95,7 +95,8 @@ /datum/reagent/fermi/breast_enlarger/overdose_process(mob/living/carbon/M) //Turns you into a female if male and ODing, doesn't touch nonbinary and object genders. if(!(M.client?.prefs.cit_toggles & FORCED_FEM)) var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) - L.swelling+= 0.05 + if(L) + L.applyOrganDamage(0.25) return ..() var/obj/item/organ/genital/penis/P = M.getorganslot(ORGAN_SLOT_PENIS) @@ -130,7 +131,8 @@ var/obj/item/organ/genital/breasts/B = M.getorganslot(ORGAN_SLOT_BREASTS) if(!(M.client?.prefs.cit_toggles & BREAST_ENLARGEMENT) || !B) var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) - L.swelling-= 0.05 + if(L) + L.applyOrganDamage(-0.25) return ..() B.modify_size(-0.05) return ..() @@ -208,14 +210,14 @@ if(!ishuman(M)) return ..() var/mob/living/carbon/human/H = M - var/obj/item/organ/genital/penis/P = H.getorganslot(ORGAN_SLOT_PENIS) if(!(H.client?.prefs.cit_toggles & PENIS_ENLARGEMENT)) var/obj/item/organ/liver/L = H.getorganslot(ORGAN_SLOT_LIVER) if(L) - L.swelling += 0.05 + L.applyOrganDamage(0.25) else H.adjustToxLoss(1) return ..() + var/obj/item/organ/genital/penis/P = H.getorganslot(ORGAN_SLOT_PENIS) //otherwise proceed as normal if(!P)//They do have a preponderance for escapism, or so I've heard. @@ -241,7 +243,8 @@ return ..() if(!(M.client?.prefs.cit_toggles & FORCED_MASC)) var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) - L.swelling+= 0.05 + if(L) + L.applyOrganDamage(0.25) return..() var/obj/item/organ/genital/breasts/B = M.getorganslot(ORGAN_SLOT_BREASTS) @@ -278,7 +281,8 @@ var/obj/item/organ/genital/penis/P = H.getorganslot(ORGAN_SLOT_PENIS) if(!(H.client?.prefs.cit_toggles & PENIS_ENLARGEMENT) || !P) var/obj/item/organ/liver/L = M.getorganslot(ORGAN_SLOT_LIVER) - L.swelling-= 0.05 + if(L) + L.applyOrganDamage(-0.25) return..() P.modify_size(-0.1) From 03f583e5ff42a586e9326a6ebbdc254960ea0dd8 Mon Sep 17 00:00:00 2001 From: Auris456852 Date: Fri, 10 Apr 2020 18:50:52 +0300 Subject: [PATCH 104/190] Adds admin printer noise for Centcomm/Syndicate messages --- code/game/machinery/computer/communications.dm | 8 ++++++++ sound/effects/printer.ogg | Bin 0 -> 124065 bytes 2 files changed, 8 insertions(+) create mode 100644 sound/effects/printer.ogg diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index bd81b79694..4c3d85a162 100755 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -292,6 +292,10 @@ playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) CentCom_announce(input, usr) to_chat(usr, "Message transmitted to Central Command.") + for(var/client/X in GLOB.admins) + if(X.prefs.toggles & SOUND_ADMINHELP) + SEND_SOUND(X, sound('sound/effects/printer.ogg')) + window_flash(X, ignorepref = FALSE) usr.log_talk(input, LOG_SAY, tag="CentCom announcement") deadchat_broadcast("[usr.real_name] has messaged CentCom, \"[input]\" at [get_area_name(usr, TRUE)].", usr) CM.lastTimeUsed = world.time @@ -309,6 +313,10 @@ playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, 0) Syndicate_announce(input, usr) to_chat(usr, "SYSERR @l(19833)of(transmit.dm): !@$ MESSAGE TRANSMITTED TO SYNDICATE COMMAND.") + for(var/client/X in GLOB.admins) + if(X.prefs.toggles & SOUND_ADMINHELP) + SEND_SOUND(X, sound('sound/effects/printer.ogg')) + window_flash(X, ignorepref = FALSE) usr.log_talk(input, LOG_SAY, tag="Syndicate announcement") deadchat_broadcast("[usr.real_name] has messaged the Syndicate, \"[input]\" at [get_area_name(usr, TRUE)].", usr) CM.lastTimeUsed = world.time diff --git a/sound/effects/printer.ogg b/sound/effects/printer.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c9546490f178a79b74d77ad8b364ef7c05735ba8 GIT binary patch literal 124065 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 z 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

emc4!{mA(VCR}}pKB!GWz&a>HA ziWVfamnZSpU3Tg8jxC+lm288%k^^GrpXBMO{XD{7y5S=CeRH2ojVjKVIM|_2o7k+J z@Lv8b*JfHQl;Fh-3cJ9)rAZ#dqGC*d5RnrT69zwC<}*Cp^O@bKt;M`|gwL@42q2w2attTSZOk#DIvfti6 zck?G{d;H3zLbvYidSA=!f81n`0nrRX;&DnZ!~7lUed_b_`5nyH!GG+qukF45aHKmQ zT+M^dobK+os5AtP_+<`5 zch6+#Ng26xcwNRI%Z9K~UY;}6u>r_#SRzPEl3NwTMc5 za|-G5_3Oot%C3z}ej(|HV)GbUr>b;%G@ttG4QRC|-W#1iwOq)**@1XR)(g!EFaJ?L zseeJ{Irp1Z^uHGPVJcvD0Ikd3KSP90{Fib4 zsT;GMOgO%BQ;Xk>J+Fmr2uAvJf&F(~*1YJS`CB6X3j1_t8WImmO{#qGFvDD7kgB$#on zNllC;j2z=U#GW~-?vE_RJ9f4H(&>`Hiw(<4(lc775H!Qz^I7J1%?+rHL(=Jr6Lid` zm~T)5<)CXV2_)gj)p8{okD!F(1jxC_d)p{NHR&tSn!s_&o9rkhK$2lWPovDRmgg&u z_C3Xg*l!}RCCRYksOkd?uHi|N?qhrOeP)21rGD@^10wA^^9q*LpBCUO`>8@Qp-lBs z%HXymKf^fbHboW@x&Y$&*psp^MtAOZI8p}=o(_twEt0e9P(@}>2KdrQ7)VHc;U`A- zD&bg1u04_X;PWQJ_I_Ldd`rH{>uc{p)0W-_K0x^~W^uj*ffHVNXE|lo;MlaDoQd9UJ!(DNhhWv+O<|I8C5C=*AouJS4RE@a3o$F!{sGszzk@5uPErZ21 zAx;;HvQ{7dq=($jxqHgdxVVi3^XruL%Xfo7%MWT^&VWWoM+>Sow4+8(b;LbSl+ADW zEm@3@Hb{Vfr3mSW-M}MGpExYyH_wOjTUJXT6+;|Gf7j>B67CedHzwebg8=fM{ zVz~XBGU+=0!iATKXb|6?{G`t`_E22g@C_F-irKJ1h0|nEQ<~EL6IiicRbhwbQ zo;#-Csn(IL{sSsei0)}*>A+)hz%yK!<*qGnM^XHI9gmddZ=%DG1j7{Guw(yX1QWjs zj(O}`_co`|DL`&xR46yZij&V zIvL?9WnYi|6gZVTb14Ft)Np4|&+UL2$hT)4-|6Fdt6X+FUiym_RSYu4qGq(tXeO@o zl!9*?bwqcRYxr7xb6hv(=5wnlmbSi323F=r$_yeHke^MKuc1f)!h^ge{wzswCcL9lE)|0#MN2 z0K%`Wq#uNf>Sm!Hh>&us6s?orTq{z3`U@p*nMCqY=H*9dX*jo#UYzpbHV!}XK*ht> zGk^*Jm(r+w+~8t)IC*61G#pO;+k@92b+v#G_P+&0`<(}lD)g9bHd^=_C&Q^yZDQ;g zC{3a3+FS)LNApDHJpTO%LMV1RV6(FyzDb_mh?_cFPo@sY2{Wv5G6?&-_5P@n^_f=1cU$me!SQ8%3v%37$ z(qLo>G*;XiylrEtk&7X;RzODd3_Q51!N+juY^>?$=C6KJhKIEG~%S^e9T?Nl>OLL5JLg3+>t z$>Szo&u`qVcc?PGh@^3eBHE+hdf>;LXImM;xK!KMhyAOx}S7!rbBq^`ICbqrAMfxu6e@P?7YulHwCM|IMi|{sx`D zhADd;m)~l1SVxwnQg{QHdW6_HW&+2dt5#ie5>oYq{g9>$2Iq^s(ezdB6<;Q$iB;vv zw~;vAI;pu z70$1p0Kmzvkd2(5Q^so50oJqeK6edC1m}iOO~_^qCL|(Ml3&(!>&t>kvy4PXhdo$) zDjpZr=lAKrlkk`84z)B2t~L7njj4P3SJdicfcTkDZb;-e>GydQvbaz_m`ZMN6S>d_ zhv{`AxF*wXfI6bYVwt1R5;Wa}%Y&J_zR~@B1U?VeFaq!D2GNa8!|^j-3TJ-R9m*7= z_PIuy%1SvkTO=6?RT9}A*MpmVMgb@Bt%+qNq2Vri1F#IPrhH%|cYagZNS>d%98F!= zzg&2tF|!PL7%;kDwhZbZthXU{eVkKZd5T@5C`4BIQnux?s*nHE*N5sCBZXN8FONCM zjf_gTp@lxd0lBwmXE@33eBJD<^yKe1e!Pm_$r3$x>;8JY*oVd-@D33_CU^0^~P?10bmMrRifl)Wkzr$$IM-MPJ$8B)s)o z^Q!=o>KmekMBD?Kr=E6IdeJo7DcxtD${<9u*ge@pc52}MoT`X4Zp#Zg*BJSD0QaU1 zSlLwBlGC!-5N=?W^`d*r!o@HU%%!}XEZeVk?pjSDeU#_(jvkXGXSYU?(Mv<}*VB=I z<7D)Hk)rWz6w?qMKkM7QE*I zkZs{JC5cPv#n^-LVtZ}yQoj#P=_k(4xDnGU&9h9@XLTPD320q zbJ^Ho-sAZCj-l}g2N_^B?QNr&E^OCy7GVGgKP@#kgFyD4xB71uYGR+V{j<8uvD}hO z>)kR{cg!QcO<`+m*R&J(4jmx8z%+BHG?x_L28uCmZ<<@PhcnBzvMw6j(fT}lVZ2p< zoOQVJ0*iOAP_;f>&6HT$%v^v&RdMU+GIdBz8Is569EJy5gIiK|=jGL=Ak`gz-_e*q z2pwt-keVPA>kJJGcR>z@MkDrjgt?UsowvqHz>%n5%ksWK7p``1Zy>6J(rJQH;4uHJ zn*V34;Q7x+@_*t8u?Yvrwp?RjOCuB#2X&MXerYntsQ0XZ(J7W zgi}wa4aKii#!IsH%iAt}ago}YFzg2%>upOHDr(EiJpFA~DqETdU5}8510A zN0W~VGgHzh`Ge;V|4bz*^Zr?DW^SBKo@m5 z{tn!%CzYvy|26_^T*9w;z7~%8P!neEqhJ2dXEXy1j*KVo0=gcm$dVlCr!|uk zK|a8GDk%+t|MT_>8-=37YZssGca}Q>IG(-z^81UM8p|bd7%n(-!<F=7Pezr4#7WOtT*B1N8gv`BTjYoi*k1kCOL z!qjn^?}+zU%;&L3DN;RSrjDxykIt79J1_UDVT)Ed`e}E=wDQ&mI!5JwL}h)AriAQ= zSthB)8{|$HR>{B*HnMghS_Wz&euQyu=g-Bo*nM6XpD@eF{hHZ`W!savo|Lm|^mt9A zd|2Z-`lu#A_?Dgba1PAMLVe9H54Va?(&<$7lk>TJJQ$)g)l^PW`sUtYv+{ks#uJcM zZ7RniV$3g>kSdp(U&5aJaMwLNvH{r7xaE zoL9q>vG|7qpf|+i&hlX9XTa%k1dwL43e%cU;LCb-|b>xLh zEO~-!Z&f`KUotr5Tc~_w0|$;i?xoz^wD?1;{ncV0CDd~NA`0X;Zl*4<2 zcg@rx<_>CPw=DP-`l{Px(OkGyIZ=7z?;QH7cE26kypu^Yg zk`ZObk&5hyUBmgM-7F_xawx`+ofXJAa;YKG*em&)4%sEj_}A;3@^6 zpc}o_UsV^PjplQ1*4xa>i*wBdCnX7?X)NsN*yp!1$+rUImPW@FEdHrSE;y9t&&_Fp zRGwVag)6ypzQjoFDSM5{QVSwwL?WCQdYRd1i3mW%;;OBwE>C{Sl-)#|eO+)y_cd|w z9@3uBh73sD;k|)H~CP zWh9^1BGUMM-WcMyT7JCAJw+FSOrA za1SH=i-|q3$VicGux&|~oe?{sLgL6Ghy!<#8DkfW(J$)zeXD-AXkA?&h=okyNz$Ow zR~hw3uhNAbx*WSo=Y4OB-jq;f=TC0qeHCxP+rE{(5-&* z*1wfaJ?EB&0W0YXwuuXo_PG_dH|C8U)*0$H)rS@r%Z-(Q@80DSZ~H3!J1yc$Ec1gL zamV8;iNo$`!Nd(s*0dKYzp;;QYm~lS74Z(5jmoo@n72{DhM8V5o|{M?W*%Wu6)5~i znfAKSP6cHwClvc!_H{*4JH#0h&>^{vBBQUCRkYd34Iu!m^~X5NEAO~fhVNRt*WQur z&vD8r1v4^VXR~FQYy7F7?YrUd?wt}`z%u#O$#t=aJydAZ(UD~>nVz#7A4PZSn|(Sb z4t6Se|AJvwV5iXSTGY_c$7_ruq%kO-zeYpWp7nl}&tr`Q>z~Njh6_&w90$S)?gkdL zPgLrNqVQ2V&|`prM6m&ijL9iY;h_!Pefo@{r_)Q!+sDID7Q(S|Xa%>;S%!cUaKZ`1 zp(eK6J%1cWKBmr(cY$=MJt&95tXq$x`@Z>>#Zm^d`JKs4KAw0M)dMocAcDFUk0@S( zKftO4!h34+c4ZhH&caz>52sIkAi{aF?rAAl-RI>#P6TeZDVZ<5KN|-MXZfJj%(j$y z;EqU47EV!FcDosY)$C|!1G<1i7UnA7=JX5$1^=jhJ)Adq{tUkoKVC8LB6TNRcWod$r z7wEfovzyxA9{+M7%2oLZoa41Joq5OraFcBPjY^`kD^&!dy*WFHr2fu>@m8b z?AwRQm-9BMSV4{c(e0JTkM^H`T`wk!XJVj@Z0EP8p28?~+atM&@=?_vMdA2XznS2p zkkQcn(4E|r1q{}K*6kHl-L}SGR*`V~g8*yk?S@)M zwfwDA%=C^LtV*paX_w#go>psx#-`YVyPssMhWc-92t|43{X3u@ynqo0qDvoL1R=$` zQPkF1v`PTS_#G^rvB^9fjdsQ;%M6*dvK_|^|B|d83G|b*H!*kA#eSInO8rpyu^^we z4l@(D{2O)2_3R=aNQh-RLHNb1O(D_R_YOeI0QqaXM+C%NxyX_4gr)Nm@H%DpxTHrr zL*&&)er!jI-&xnxK?469F3IZar;9V4gk@a>mRe-lR6B0j(39w#AqLh1p;vjs2lh|p zUvm6y`N><9APluVM@m1W222`Mj4}Yc%#{%#vo1G=nboZ~5Bw^4?H>H;qDKtlOLwQ% z6BnsJ&v325AL*`@O9%?gm0X)yg55Sfh?bUeY%D^SS$5=!hx@=deEvGLJtVUAbC2;O zPHsO-Sq|Q(7zD*_)1de5Sk&6};9%&3dQ86Qbq$*GjqtlM^CY?4>^@a2B+2)3l#-tR zwQF_n@7=H4rv%?3BypOhHFDkaa)|-qplw3mhiI}{*`X2&!c8V=o-T?xnz5eR4J@yM zy>!SO3{C7MrJ7V&^bU!4Wl)(Nr) z7B#?AsZ>fz9B9Sv`1V!LT?of*H3%H~E|_r4eabYsc&Ik_MN!sr_rezbob2&TUdCP{ zq~76gV=*-(@8)`mca@km0qtcWauaBYx^%owzWep`b{|27v}Gns~45t9rthys>7gu+BKv2#WtoJZGy%tbiv7ojr zJ0Ef({_|a_T|C`m9c58Nb+4!V6R!C&wX_KUTz(hBuRg_5w!Q%1sbPJC%?Zg5Rs(PT zTgnI)7T%Kj<0%ltllnxbo+&^$4|OrTEIWD6d=@ptmHsh~y@2G>Ie9)Ndl-7JS8r*<1f$6kJP zILeO%pS@Wqn1Of%W1II@GZ8+1W@wSs*DmVx2&Oj)R?RE08`eeC!1BV6JHTF6<-+(#aCcObmD1xJ6}cR%BjP^Ri%sLABR(PqQJM^ezCp6Ens1qcUcM55yHU zj$F*knVPw;Xz}7scXV969}oiLqW7TxC}f`BHh90;mINj^X~*_vfwnWTG08{@?rNXL zv$~@RsH26-+>q&YKY^yEEwj%nz_`WGNiK8Q{kF$nuu5q3o$BZB zz5(n}DNm&mwXHiv10%@}+ru5%r1p>M*&C4XQHsowshbxfr*-v6G+lqQQeeD=R&axO z7obNTip{j}txE1H9w$aP`#ssamx;aM;m}A(<^yFO7TtzT>3P+Q(hA5|9qqp?!8QIR z)Kc7z9rSG!50sv-sp<9pI88OZ<$PrQfd}HVejd;x9(-q!5Ac4kCG66y%lv_~OWb3d zY`-garjzhf+6QFgW-K5<;(6~0Eew5=n$Q3qc+-45UxY9XYeW1t|3X~JKfSII>weak zMN98ao}pyexizNg)7(Wdac33I0&vc0PMH|KsdWSV;CxwHaQh=q_mNpDltgGgBb^sMJ|_B3dgSRR>wUemr>8&2&Y4P!b9Fsm@vLJA zaGbN$>S~&8YkGKLLb_`6(e-uu1`?uu*M#sZbIT+P8#FOE7E>D&ml zB&}jwx<-UEHgI7-*R(5oc?X(JpwwPT$dn6(9K)6_hH7|5rNDlZd~lRUWAw#iXD z-19o;K=ufpJ?foZD7=ubR{m>Vsja_uER7!`(?hSL~zPsv=i)wH@TD@oJ zS7he#-C{5nH#}aGos^K?V~ORmG%DX`d|YtfnzE*D>I`;>R&IO%N9=b_mXdsrbMq>2 zCts1duY`xnHlq=iC7_~Svz0Eoo!?okVsy9@MX~icHS_ZWfb-92auo5|TDMdJ)p%hJ zMrfIIRL(T7_eya04NHA0K-Lm%(Gmh+N7OI3l18TRnbJ_5SW(nLJNZNGr*X%xEl0H2>-sNT z|Mkh8r=Ke|dloPg;ruQ?z8je&2(TwHCz;*jilrZOoc-k|W=mUN?#m{a9>EVk^ZJea z8KwtyVEr14g};0Zz!Q>#y=$wW}< zTWz5uu0h+#UDIGkhtkn!3U@vlSrb;M4ci~_pT85No!5HpH#O~}Hl~CRFVATe?QK)q zFBX_`=I2(HtwXIoK$8g?U7q5YIZE)RnyiBwH1RclXKP)EPHrFv^vf75FQoJSt9rD2 zL-af{`tmqmwF|icj;y4T0mjwg9^Wv(vm)rgtE21rav^*>nhng+8eOOyi{slsMnO8R z(-T@8b-BEv(D4H~C+1Aq>(}%@fAjtb$DDIK9^hVMU>B(53h2DFSVKNbx51RHt7HIZ zO8-V9O2pSGEN*P@SGO%*Uz?VCv! zsZNd>P>TM)>aiUUwQ)Z0T2QbrY*)~4{Bm{He2)+S2!8RT)g?bNj5pd;b>ULCOZnmH z(1?{nu-?mBb-l_ku-~_Bw|^5S(-zgs^V0ZA5FBj<9mBb~#VUHHpKR#Oy>NyGecnjkIbvGGP}>Yjl@$U!Bk5pgE1A!e<)k^59?vkC?GAg{gQ--?zoW7o=+xakWppFBeDxOT3Ivax=b z=VXE@9jj$SkPQ4~+)SSBe0Q;yXKv#WsbM^o z4v4f#0lMdOU5`!)0ue9o(3s{K0mB6eju>WL0Qd4RSNx>wJ+lZ9_v-Rlx%KvzSW_QbLJ>$68H$O7?B~P~@vt2X ze17N=Za8>H%@O%dS{9U-k`|S`5JOAaM}3JzF|*J~dUfwz(i3tAmm@`Lm+Qage5Y-t z4o5OAxKnP{D+&<(p~_kOev3){v{HEtqSb5Dv|u-8zt*v)B-L*sXuI-$oD1)vzRsD} z{lqnAK#Y-%8^&^T*8*At?9JNs5Og;~38e(EtK#R)c6MDs{pv!}o~>h3Z{%h(&H{wL zQ#zKff{m#(2ow~V<-2B*p}aD%BguB^J@I;y?LUFw#zk>!|^W02kDrS*T=b)Uu_ z{A*bMdhs_NRMKUS(?VekCoWIytbVX=AVU)lo?|wUQH}c={DWR^mfRtoU;odd;S%M;Rbz>L zMdcSi`aYl?w3@RL`7j<`t3%n(_6;9n#bd0}WCTj0{1an|sFoQEw_TO8z!66s8Aym- zET5ezsSvWlWvONqFUzc? zv|^f8<~SQ^|CPz0ZF^8yF^-`GDM5tNPnTRPD;o4ReCz3>?SDZpRfcLXkZ*>#V)nS7 zUxY=EX{YHzZmjc7oz!}Rms?N(ko*O7#JWSJeheOGF9AC;NmSbcUf|0)VB{PPLOThH z1jkTM`b~GQwbKJlp_gFw^P(F!g)We`-{-vGY!@8Xy-K8T0WKihWq#&bxUiSeq@c!&Mmhn zO%~6p9t-LmXM6b8#~!+a-uOza6{P%rjaD6Vcm1c&J&Gs&a|lD zBgw(Q(>I|_&``-F(kGpd+KwiLCi}^ltyjf_PhI`}0~V#&;^K*zw}k1?aHNIVm@TsE zyKvg?!3&w_%L@tR9Q~#W!XzW?=8LLZ%DwZh*4v2%TUszR>x+u$*Zr9sMZsgOxFOfE z0ab=m+qo3NeB+~g)>`?6{MFi9I(4Q8eyElPEk)v(;QKRUl+D-j>><}L6n$!8nCm`J zqHjrUoU{3*-&A;+jtt>VV*jOA*~c`Zq#NqrVct#!jw2RSC{NpReKK_8vWEGYXu`t4 zQ%c$LyrGM3Q`#MaD0dJO&?ys7KPtMEmL-CrNLV!OML~dPq51x zRgZtG1w?@pz@@C#3gH8CP9>G3y?yh^!_oK1pIV8B9P%d`f-ii}wK7u{4fcj&4(818 z6SJ*lzSC-Qjyo|Btr%5#)1Hfmi5*#{_-=teK9kHGDThqtGXsz%abrq#f0)g@0 zJD<`L#o@f6t{>}WY1wC>6$B>|#gS4{s`er2F@l9HDi5~dlPkVjc4LR5OA+)qCvcc^ zT?HSL`ZR&Dca~(XX$P6F{Kf9sp! zIJmg$zf2$b*oM~}m)tBwaU#%}*+c*IpShW|Mb zEl$3o_;JK>zFo+q``4;+&8z&!e)%IYoan^A!4oW*^Fu4Yr-b-mAY|?A+}|F)Xxhd;$WcxuS(Ug*hb!gUes@aQ8{O&OZx zuJmN;n{Zos+*sZxInddh9a6rQj*iN~r&sNioa0V3-I`4#7YdcyJ!vQ|^E=Z&aVY}YW&2z_V(+OZxo?%dUCS5=7(kq% z1g!$WxPtWN*4gPGXWrwWrC(>FoZtPd=C~{FF4qTiM>DkPveikAGnvVkxu@-?sdY}E zM`Y}38@d)LT`o>nr*VQzE`xBp8HiiJ=561D)+_YXaNe8!^C>dJ6Vd1YCUb`Fa23N{ z2F!T4xJ=V%k70jVrZ(Z{ZH^e!zd+t0mCN$VSuD#hh68|Rvvo({(kgXTkg3$7KQVIE zBc@{adcwv1K7*ZkRZ7`4!(zw0OK~ z(SLebtyCR9gr@~6oKz7P`x8o1!BK54qB|6fwy;25_s|Wzg3O@DNezLx6v~M}I3k7H zV8UTsV-KckwEIz|C&9Q`^HDg0^y4ixwxMtu9U3%;jqQ7h9lX%pINjEza`D{6_S(&GVBgc~&8acTAQX(+F|1JjPZT}>y^*xN60-iA1 z0*y?Tzh@cu4e&w*90#TJMDMQ1kq1)%CDkguR;+J@s`Ou1XFlnN98)*f8r`=h&5%vD z(>dL}iw>JHztKPseRcPD1Cn*4=~gn7A>Y*L+DS?8x2bedMN!p}!7y6wkox>laCt0* zp&Nh7_+52qGMm>||AuKNL3lzs3bmN3J)2Ke(53-k25!>t03<4RsjO)XCwDo?qV(*|*}?(OU^AJ1+fj=Z@um z1#BjM@{`HEk;+5tPG4lhE=2E-aisjm*4F;&h~Fbp=K;^lN8@Gx?*H@K0G|JE8-qRy1wNlQ zzIU1S%fkJ+D-A{W|16~y(pwlEPs~l9JTbFy2}_*4Iid>}NwzBM?`>JW5p-ouChwYr zvC01o;&y<*3(;@Ua(QWsT?RJa1^mUC0B%>#KRr?Tzt5=7Yac!N>Z0Y}gC^T68#ual zXxIfqO#Dj)e4J=djWhb7U`gEksAI~N5nAseN+{gq=!dC7#b+tUfW}=ts!rHk`14S) z^RZzw503eEV!Y9OS#BGXu$+6ncXzFnCS>muc489Fj(pH3bszA~OtKCx;qF{nec6gOLEwTP5M4m&cWfqag0K&0&HXZE3%fyW3{#iw-$k3y*Y%`wD9#r z7z;-y@8UOQL-as19ct7<+8$cn_}j?5@s@j`Qz8G+v9YJ~{dv;JR3hWPdS{Z2Lwa&4 zX|tEQH|h@0d+L3=0DOd=Z_7D}d3+z?9x7)Ns3Laf*2beS=JK-nG7TfMKB}Ea+zc+^ z+4+`PfpF9mDReI!Gxb2&TlIn%PA%4jOV?{tBV`E>Z~pzHQtq{55o>}Go_Z!!|=8H(Hk(APQ(oLlgb#w~( z4o+~n9|2=3`L9c6Wrpna|_$#uP%*0>sE9^B~3TP9idDkvgRj3~AvwWEnp zg<)4Ys-b1t;Em;=r9F+jTW#|nRD_-pMR;U?ZP3KpYob_~B+nb&6dg#rYbeK3*OjOsAF>)lD#;mx# zidE_lmN>$xb@81Gb5HF->AQUlQf;=MqtLXVJ!3Od;`7PIdS}^c{aDj$`}BAXZPtr$;*2pVyVHXj?zsyOEY1d`L^{8|xF+ zY2~pvBw>VA|4pF~5IDr66dU_6QsO6h*TDH}GCwh4_WMBm?LKMIMZxUE*-HUWuNBdU z6TN{_zlxpsX?UP8=_- z?}j1&#(c!`H8(4ymCnIlf@gP}3nir5EWXn#bI#lqug0d7G7P?E3Af^V^r&1qjp_;? ziwZkB-nzxp+Y)^^y9aZM;#&POZgp)gI|lqux_dfAcm@F)+5z+shf;1||D&F7Axr(}SOXhM}JQJX4>ug@@sM zE`gvpP~BGFWPo$T>HU-0Aof@s%dZ~6W0FDJ*JzL2N6BKwwx0+O!EQ*-7MzJxjL zCOdjX)!RFje8O$x-DbS}iO*EE#%n8B-oC)(-{3Dq7O$(ZJCeE^{f$o+`{Vl`dO0%t zGONsMI7qpmjpijSbgDh2fFeTn(CVUMKt#FeFL)>wm$5ky?=Sdf#n*oVqaLziGAyq% z|JYb)mJ%Cm=g1fnzj|=e79ZcaTeNQS>-`DC`f5%^eYHJq%Ei5wz0UW-sXJn{6U6zC zdQ)5s5gI|qKVx=xR(oY)$P=#g#;?lj(KFU6xAn6IRcubHBQpMH?jFah6-mG5|S7|8$~$n?r@V#V>u^jO)TB z2iR+IP&EA8VD2%q8Wu4&enT229KKhrDthHv{Q@$<)aP}{ls_|3S%}z=%&t(%{Ntnf z$*PQZl$WU`t8XW!`d!1odxs-a%R9e@XVLYP+5-EcI|_5Qi;yoidKYy*RB)7>C z2Qx5qTYI?mLoN?Pbkg?9{Spjk1Bc#6!>Q3#K5E9P{=_{0C%{+hFjU znO-mJu>h65?lGx6vcT`h8iu+K7ez7k$#nRgV@K1?pLF|S`mRXX5F3x5;pGr6j;)F} z_WuG;tA3BTQzkLq-PNGAHTX+X+gZziUXs79tJC&(b5rKu>Orv-J64MCakvk_MJ* z!*5bN1>?xKb@PXh2L_3kwA38xrR;iKej-UKgA7r;Z=Tp^rt?$ufHC40Lw&2;>(K8=C zc+_{$4A9RB@GZ4ZJFy{koUNPDOpM-IU<&)auX?jPbBWEa3Ug}ix zn#adH8!>rS<6^lHXEQdfaZQ`NFOQtlI%1~o<_Q%kG^MtG2_7%zz0=5;c?#&n#GD#) z;z80Yd{yt&r>Kc-p=+h#k6$aO(F$DK277+w?%l^|hJNF$rC25!aNrFbqiHiwEUK0g zpO=e1UOB0n3{oFDQVluDu+`#%T$U>iZxuC_-z!9tSVgGhdet7r%PnJRw>A z3?G@)OR-BTX%INO(?RVBI=|yyenwFN%67_$r6`~GS9n;`rPFp7&%d@2kxfnE=Iyke zWu;fb+-wYS@ApA-Zl*$iUG#t%I|1ETH3w}}c-|;uQjsP5zZ*bDlHe(Mz4$E^Qy*KW z8*&mR-NuSvNZ+^%b%M6j6HjV_Jo1`@N+SZN?dCE#ceR?3)%`gQ<~}7>Q6=;N3W1DV zF^yEAWbfymJjI}%C2bBXt-}gI=e0<#{H0EP3gs*O?>jt{x?qT=m?Jn=%MqIry;0?m z^YHFs?bO9k)a>`z?r~)Sk;SFvn@^tFNTfa9L_8&dXTw}S?WDeR%O98zde3yXzDA8= zV5xm((xm$2XlJ81Dj|0YInE_7g^m_S1D%Vz$z@yBd?p|X<=_78+(9vCI{x~HYd>E9 z7NV7HXtn3Fvyt3@Q2|9l&Z&t7Hi$ud9Ff6)f~NGkNMh2?>e`AcpR_Z&iwmx1Mn%icWIH2(>cw&6Fio?DF+R(mmcD%z?xg|KUj)(# zW+LT(b*-$hv`;KKEG^|cs=tJV2*#RO^EdJeP8otQ{pVQ zt_Z}e>PDbr&pl|Ms4hT!Iqt|yZ*tK659ub#<&Qg}udU?>dnmYV3qcCzn?Eb-Ny8+y z|J#1xk8C^b;mm$skG9TsDt|BrOP$}5ZR1_FE~P3@*ENCrX%m=N!6X*MPg!Np}+3NM{}G}nCSnfPO#?~ z(I~~I66vblM9cdfAE6GZPz|0tp{;_ePwE{czW%n@w)1ibm46M6(%B9XR*4gQ^(N5^ z|771}7!^+m{tE;Cl6{4I@6CmpI{Q>lsa^mkOzVZ6Z=Q}Amt3y26owf>L`crpqOjIl z{7iqWF{{pf@V2qkq@*-B@!QIt)1$1`mjca@4;53Ger`S}s z%_g=XsIWWgK+&J-r;7w|SRt3ewUpEAINAM6u)El4_wlYX{czk_lCR1J)wd)+bXEiIDxbIL6Y3p%GibYfhrLGu zpnlj2fRm;XW#p-Usc%zh^c3JA+Uy{=>{AY8MwtA&JSoHr<&>aj=w78lUCiWFFfZCYx=eC4+c`t zXWI=cghFeAmH8WjA!FXw;hZrm!neSuX#(cAUQ=EG?wp~WNf)a+qtCaD#Vs@~2pz#1 zZ%c(fW1vUy4sk0_6Ld$a)8Bv0^YP&KTMqFO(!$sdhupkO++jXf$bAXs$d^Ny;lDY~ zJ4pzZ*XLzI7-P7_e#U+9ZX;i`2NZlq-v#-T;2_hBjsw2{MdNX}<`FIC^OeH+y4O(e zs(G(!oidM^En$z236Cg~s*@La#54X>LeG?<|E0a;$3I8Gy+0TwuY^BL5lL_9mwzMK z)j2HI|KU2}TFu4Qu!eTw*Ll?K)^Tfa(GGKrx+LD+lHAVVGV z#n_kwiVlYj$;9s;MM`x#p^@dn6{DM|OFfg^yf;4fy0V{o(G!nv2uE4JnY;brRM84I zLg>q8^So0*JIh@6c%4?S=KhC}K-ErC}u@P9> zC@j%hQWCMEm9G z=ix;&RzFPYrJ93kuQFXAafEcd)e3ma;Sv=B*=rf+eD8wd&V1k=43A8{^0yVtHbxwjyImxpmtP72W_j$5hkjLKeyi>MYp!T4s9t*!11E z`bfFhS({rXgeuYrwiV&*)Rg9LN&IAjm~$@GVTP2|`_-80d~V8|xI8ma&OjfWon~d& zW03yNOn57>Bs(J9c~)&sq2_4OcI=9fGZK|{LxP?w_C2o^)*AhL8M7$5*Kp3RD#6~` zfsLt`E*<#wNZHYHiL0OUci5%+K9loN5ehlga*$;e_Ab}Asa99~kN{OVEDpOZ+T79~ zyhIuC+l(Fi<&Qcfc&cO8$qb1g{rX7R=VM4hqOcu>e6Z|Qg~ob_AFqAtFC37WI3w3G zIc?6Rw0%Tv6Lc7nDnVW@DMOpFMYdwKU@!SkS8FU8#!I28f_*QaeH8ypymJrY_I4Q2 z;6zx0@fXAJi0B|`r()gIRo0NY`{yu&v0AX_Y00V0{evF%<27mOLE3LG{e4REhBDlrwaMbsmDiKw)~wQr+S3HsKpUpzvcSmwvcNYKg_6qH|x3; z(BgT_on*ffp+%n4mNQ{z>ps;KE|_|Y{ol8jtOrML1(+DW3yj>8+KS8;hju{r=l+Pt z4)!99x0Qj;DsJo<=AkrO406_9@z>pnucqBXKwR1Fe?AF6Tbs>KeWr0@;|ODzll5u* z1EXNkZ4g1?nbnV526V?wu5egTlu;L7^^Wf*(KTCVDu!ei2zh`LUH}C@T|m{iL7MUc zTh8mn{H@qnIV{VvNcAEF&Eb5BA=?RK;0(M14zGYG=jOJgkua~eR_Byjfv`jNbZd{D z2dmu=;F;}%9|`L^YUJ?SpZ90O2UXv9k)1ly+8rK*heKY$qoZSRYWKnqdd5goTD>ch zt=Q21Jp-t6VEmML;>DD*k?0{dP-3g@&Wlga{db0VbGgKpC-U!wPeu*l=VOY{)fg<| zkfEnm4zsB1AN5zu!g_U_fu(3)%5)|5rCK#U;O!V@tkcQI#3b$VPo)h5NvxXnei<}A zci<|zXHd3aE7%tF90&EslPbTMc1kIZuVkO9*XSs(UHQNqGGK+W>v^~US{r3y3iUO7 zorwFP${y#S$5MOS=d}*x;KnoNy!r9ZlS; zvTyDqc*NpfcBMtWIo`(Jr4FhNplK)1CQJl-srE;SAWm%4G)0CM>>bYHpltMpfdTel zvclkYxBzgG30tU!+{A~4CRDSXt1tbK?JNlt5tY&`lYQmMU@Q`xc#xmm4v=3L7{ZSu2uVle;`w$s7sMV^bY*1M>Oe>rn6Y+IwU{!bL0pmrN~qzM@9DJF8Df?SmK$g=eJ3qb0Vg`S;Apm(7#CnrQ8{ zCp+XPR}z(f^L2I&OU~{Ei!-fNl&6zM!IZMj z9(6UB08uKl?5`Q>nAH0otX@=ka8Vb-z!nW<>!JKvtZ<$mNHL|6#+0am{5mk!n2|B(J!LTm$c~<<##J{wYWxm9>^McE#jBWlSfM~HLCduI!jBb$}bsd zc`}j>5tDA~|9VXMLuCddCq^5aPF~Dl2T6k=CyzYTVI7+v)THIJQEu5hh&QwR`~jx1 zmme`9*B}@9{eaZ^35*QfHU|QIkfE{pC_*DN zQz)2^aJ|`m!JwOZ5;lkXM;$MDf~g?J5|534_or|1$RM0tU1@bM-3w{Ck|i`T3#QH& z`Rz4b^YoFwPeE?J*H zc**pw-<6l3*h*_Yq51w68wT%yYv`S7H__fN6RVTKx>ss-Sj9X5%+LeTHam{@XG z@0S)mx)N35XgD39W}#IkE4#zpe8b4mXUe!um4HHpA!Rse5VSnCG>A7zknutiv;0UJ z_;(7x@`ROvhjJ`vUG4NH=k{%#>~V5|F7KboXKiq<$hTb<(S3($2nFnyy|0 zY2|-zE)qvBGG7DN1jpOPhDJSs?kOCl(FDBG`thz2DPWsc_4#OFtfLq8hczbRV6)Qq zpjbGW(~FM-7XdpLO@*$ttp0vI-!%0-IVK9NbFNwLWLxzO@32xygISsFn(CE5kbT=( zy$|8hjhgZ87mN1fV@w6b=%{eky^gDaxR2V})0P zNl%Ds^E4&!J~SVNJ+$xi+Q1fM!kk8s)xk0CN7eHRU2{Eh_{Y<*tF05CY=Jmgmkm@DW~)82#Cd{T&8O8UP7`SGP6j(1Wt9v6+&ZJt}=YY z8q{f*=;}jFkF=?NdncQuhCj40A<+knR4|}-JNeCvJM&=+_iu;G@iyxVU>ydzYG+IK zPDFsO+OpC+zDEifq4)Tbno3q-n}}?5$VKT`YN;qj`yubLotiMt#CgF(jW!v2?wPNo zGQN~U-cR%++-gNabBXIGV!$gF5|1D5J*B8$bDpE@>@9V0%7l+(`VN-mH-3Gt+b_vm zt&~4*+-+7Z8fgkfMyOhts_@o;f9~uNyEGvk+Q0F=Mp~$i%|tXGe*NdN*+cmX5GE_l z_up;4iTq7dDlwyH4|HL&IedpUSPsx}a{RIz7Y^p#g2P!Ye#A>TkXYqIrL0*yhj%*B zo5yQOFTFn=wzs#|3?~0x99TV3!GOv0Z#Inv-CJnY`wBYrH9QP1M2_^OrF(r3GKSD0 z;ZLp&>Ow?TNv2VE$(LxJdwgs_o7e2kblrTBmp`(t|NC^&TNm>`MQwlauZoA<4b4vz zYHA1_DS3^JQB(A!OJC#*A9K*l`3f5bQ|sR|hFhG|{(grQ^R1b`o3_q4UoQY~7_T(V z_P;Nf9Xk{hu^Vrx1=&8?AxxEfd|*=w#_xz46fEikkV~1QUFy8izU#8sdJ{n4UaMk z9D4f87)xl1Yl>t0t2!{A-KOA2R*L>e!SczzMWtEEYJ1Iy`Zq` zx_^{l*cTyPFB(ux3iq<2-gdk*A_eR!7_c(~L(dhb*}m^PbfR-~$m;)`fm&(m3juF{ zfkg~0-?xwTVt1(nvO$G}L}xFZNQB6k`xB8b?|l3=8{sJJqb6W$Ci!5azr3mP8aw^| z1G2nkbzgiwt*5md64}QQ$IfwQ^p4bS@DK)ZG@Tr-lm_KJl%Q0o0iDC0=PsXZ_~JLO z{QRjt^IY^(%~(2w&0t3Ycd{B%OcuF*vi+IK!M=nQ-16^nC#5ac?Rj zu#WQf%8kRIp3mzKn1L$-^Hrav|1wxn!FgkwA6li#HaE_m^mnIoVVi`I%%3$<=aXvP zE|rkHnya}#9KKxd`O=@45CeMZntBsaT#UZ5KOA$5Z=XQnT9cYu7sF5?2_GN4?Xs*| zes%3)5MrgJkJmYbgoKXfH|7CueI!wJ49T7<@rsdn~l z&Vomw`0qu*0a%C327v-+ugb4qaq7v1;bDaqiV|ZqTad&0Z7bpJuEHxLAH@mdCogip z9?_o1y(nz2ip7<9Q2@cPsWX5`=D=q3t+>YFEs!zQrHg!P3vQ9O9Pju98hl(;ct|)) zw9lr46E`qYxU%?Sjv=z6hPw%KCsW)xKo`WHF&pM48waw8FW+&PNeZ~6vwtKix&EMA z^UNhCKwkB&r(?<{ezn7VcFvhLEZ*51`#!}`I-?JYVU}cJyBTICe@n0auSAb=-niZO z#Ynfk+^3T8i*5H=JBiJr@?-dS2GyHUAa1JhCo$2`(d4E)>UV@&(QDxyMx_&_KM)J*Pr+>WSe42>%mNe}g&AYGC zG+c(+9*WOu$k~z>1GEFb6C;VE6MwsDt5F=%tu@G2nh>u|YP7@b(!oCNWNTmh!*{16 zB^C-p3Egj#azxbu>Vfs&xzWVf_kSas_9^(?M|;lDJhFW?gr>R?3Xl8;LQ;DX^B8hS zf{t@(v}8eP8TRrPWl9I@79K|8>tS|&Ydqd3P5MGiB8%;Ejf&hGS_WTfkp zaEU5^sf=}o&WT5%tQw%0zgHN$JmfTq0fd97D}_=CiBr~Ih5GOV48IIwyi0KN&C)s^ z|BaqA>APx6O4i^8f=FJmzF8|Z?_56ZZL_K|&E88sn}md~4wr5dk{5J$tESlpJ^hJpIiFwKR6>`C8{y+=zWRkV1YO}Vj}n;3^* zwHj1XZ<>a*ejk1?i{Mc*~BhTm0X>gjj`V)kmWu(KSsOqwY++das6Lff_4kB-bZviw!cyo|R z2D?DjrUL5D1s_>1ORJ6}cTV7HvaovWTIgtagK@uFWkVYon5v#FlWbqs#avH#mf`w* z*x1tm#+LP#zr#2yH}5cb2@?eaI10#$B(0BCv~EkhWTO2t?mbNnx#nb{co38`tT zHB1{26XJsLu80o(7?RT;h_Z*xnn@oNimjuunRER^P;2>h=~VIjw9qRF3B%;$0xE79 z118iAR5aMl!7|jzMBYOkFP&ItP9-Hr(8Yp>XS0eLK5}qZ6K!DqSBxLWTsO;q@#al- zaNLUy!iYu#Y51v^(0f4hS%$BAsXxV}mpJ1#Sv_Xf;@uLL@(MV0b%5*Tp83n@v9q7| zD*zX!T|u2&S0!hSi_{xR-+4-$&xj+vmXJQ5d_L~?4#kXxK00AHJZr8~l$fU}kZHU2 zb0%%|yIFGdg^n9^C1NzQOOy8D$TO?VskF(&G%L&dPdtnmfm+o_6U0A~Ffa00CEwKt zz%v(d=&RA9!nfpNxiuO(#+Sa(seEH_GM;idrK4z}$MKm<+2~i<_LP`*$xK>S!SB7j zhyQ%_k*k@YmdT)mTW|TV_M7f4_ve)#pmjv1*0o}ZXaw@>ZrB^93G?>_*WKD8ROas8 zdgJw+mjEMqI^SFMx5mrvDvw~0@7C3NWcn-)%M|r&KiV?E5;sb}KyL+U&VeW|(MgqE zi)j=Mp+03H@AC_JxnATz;p}afMHK({vT@=V{3^9OoWTw`;&rzO?%h!Q#p zqU$5Q@!5n0fgd-K{xuB?DLe*BwxQvf?peo=1^Z(5D=DOcVept4K;E8046h6~a*11v z#DW>>7D`*}#-I}0y{l!3H92v7z^}OWYoo85s#KWXJmg=5N^z%?d25+n_;2MLy!i`0 zoKg~qDYyWpyALwU{##=1#EZsZ-)qn4UN~#)T?kku&c^Z8-H+pZ{zr33zeu3z>f4f+ zc7KKGm&HP$<5Z^GxiX(Z{kU26=_d2WBs1&HGop0wU0GhFCY!*S$-$H~6vUe` zKE9ZD2P=e$9s8TH)*)MXZyHU#rB7Vq;TgFOqT^2hQFkLP2~_Sz4Xw7&iCSczR`unq}nA{`m@0!-iJtLGo=sRC?`@q={?Ix(as-1<(Qg<}q%GgR_OrS(b$}OzQ8$$A zRXqd%r@`TgD{gN11cb59(dOE}WMYJJg*BcQ$7_8hSs}q*rdj`>Njjy)TvX4|YiW1V zJ_;}-kSb)(KVcoMUBCQ7;~sCO=;A8=5+djAxbitoIr7Oqf8`2{!)(QQM@&_MP`hOh zQp4xL2NscL|8O|mO0LUuTkkb3b(9;I{IlMEYE zWB4fno3@(ALBu2IR*_Pxc-c|H(N=!VXbMOs+dK>p= z?N5ojvJ4<;w}MO_p7@Zp)^Tfe|GY`~f-&+P*%vo1Q;wBf=I17MpSWpTSnXWf#=pV- znkFA%mtrgQ>`7f7J)(SyU)a4%cS(Q8znV0kvAOn0u99oz;n3qax$Q-x$UpkUnXRrf z%iF5{+}4tVCcy8~ZDkX1g!%pw|HAld0!=)f8Aa`&R5D&#v1GCLpT5l0p^zowiW+m) zX2E1y%4BYW&9bTFNpdgx-H*moLXjB$xPi!>RsI|>WC~_7jJnAAMfYzrPleZqN0Veg zbb~&U-enp&UB{1t znZ|nWP557jF-7ZeF^U@#Pia6*Z7(>7bEFNk#7V|acPj}P; zF@CO3f3g4Ls()9vccnle8QO`VK zNqsutjIn(~km{{pw_XZ%k8LF}-2>|UDFJOyew2*fI(bQVn#9=PuBtW=0|js=gf#$8RDhG~t)3xtsm(YoQ{BtNWB_AL4(%nnlPFyHwK-zr z#xd#ZSLX&$gjKKazvCXhq{G!w>fAu7zi>1*!&0v@Wms62$+X)u6z-C~B6BwocKWx4MN~pJh3S8f$L|>ZnJ9d9 z^W$r+9wFxJUFNY?YzWHrchWnlpLeI9s!=KcBE;-_3S*UvKr1$7Wrs6{4?A3O?F zM*f4DYnn0;y#UCa7|?ZIYLxDh;@z{o>A-&dEniqKwN>!jPPl^?uxe;B{U>-E+q0kO z(H`NKL`D7mCsah8pXjV7*dO=Es=n?*jpP^=nItmQ9Cs&5y#E#`oqd*zaa4bYKJm zALmWC)!lQ!9VGG<#Pye6n~^!T(LzVK-Qdwbos&4OiYXUgSBB5HyrBEsD7M!*l-C<3 z{x+?Z&JyM7CLOJTW66lQ#+p&mI5odyHEeBEGHUqQ4+O0t(d2JpZL2=hvn%piBG2UtX=3d=C=oWIu`xNqSH#AuQ zwDylQWgn~o`d$=r&~X_smk9PTg>(w}o)%~ut-mzg_`@PdR?D69p4ZLN!TD7PMlxLE zgZ8wCgu;A4UC!=cB93~jyG}yt!KYKo;ozbjMApjwgCq1BoR%QIH0Xp;&O23oD+_}2jyS3cvdkT)O0KDGpZOQd7`a)nFu3kZl*^uD>l>b;%C{sFA& zHDlrT=33|+0TM8){WxRR#+U|a2BNxh7&p@^X*gTrjOcshnq-n)cuRGwGgidJaH+>D zf#GIg+HU7F=?Al-8m#ImzWrJ)5S>4;sLyTzlNVmrQSAfmz7uYMr zUGKqc87tcKkEICmcbg|&G% zr`>C8AuKp~K064}Ku-E*STDSDR?qb4cdI7=NJXS!hoX*c7X7Gafp0?C1GR7};Wx*d z+^S^$Lbr=K<%+Oj14qZ#tK7^j#R0KZ47Kvkcx^?Mn#(%Y*7wt|1Ki+6?LXfxrii<| zGA^=QRQlL|@u!&SqyHg{t?c}nyF)(@X%yS@JT(TX#5{j{Z@;RD7WvSZ6j*)0CjF3} zla-SWW-N;lw5{eQj=$}v6bGFP-*baj>%TiKVK7nIi5Eo+6q51J9`RjUZ50}KL0%T2 zB7P2tGKedpW+j*NK%vlvzo|_QE-o+YuI`>t63FLH{qo;+B5be0NO{Gv& zMBvQdTE8GLD8EgYZFSSH|77%)t8726J9Tz~sJUU;M1L6NG(%N&K3sV+Yt%;Q(4R7J z;2vERPljoqSkua|2Z=d)Fe0YQM^M!u%uXU4BAr+S{vVkna_s+P5_Z~=mE_Jd&fEXe z)1Br5X`mKSznB<5HhbmfO#Au8#og7(_B)F$Yv~>IY-R2{XN%m}AgI7#`P1W|Pm2a@ z`xE`hzgKKnkNy@ws_i_XotE34BhFci6>?PrJV#V`v`Inm)`kcl{UTP3ItM z8l3Tdsf^|e0xiipg=lCnf8W&oI8M6WzFwGnZxIc(PXlD~0K z{#;^Z2gyujTgBm%(+1|?$-CYWs14N6Tnxo0BusiS5l1-Med0$L{FRdx|9fpeIhhu$ zPJHg=-5p4Ekh>ksNu--sAULW^z%FVGujyvlX$sTnIly!}V(7PJ*+GPcE*k31##NlC zj7)0boXj;(qmdSX_g3%uwijCFgYt{r7ucsAJL=+gmhW&0Y9O}sHApSBr?!iUPEi7jo?-FZIC9mvWu?#$>@iSAyqnrO(TAmv+ zN(D(}I5Qq>%NtddgEN)WxK=+tFAH@CloE}pepx$XsJ+(W7%_bAY~TcyYEN!O4E&tA z6~@E88<_R#dd>K{@Hk?v!(OsZ{C$^zwpReG*9o|LS zp^>9q^(6NTLkQFyb%h|V7clRMU#JH6dWPA;%1jH796M2 z-h;km>5f);&sw+Jhjuh;0-(+QpzD$xIC|X!A5{Ohx8o$MkGXQ(yDfA-7~?-|VVpIw z6g&TZazuQ5Vy>5@Fj&i@vhI;5-6U_(>pyFUtM9_e?O;0vyMs-vMuE}4ek0-+6coO) z%*ZOHWyCzGte;WIi*XyeK=(p`I$^FpD7$-Y0ao6z)bi6jvjn6nzHPo!F0l z&L9@8f^nZDDva^vhe8UMkW>SKRBZAgY9XG3-6?2dUQ(?btc?acCg#Sg7gE}8_>F^a zb33f9%O$czjSXfDHqYYk}mABF-ahsPeQGXJmzz4entaGB9(d5KN&GUw{F;4HkWdSdwU-ZwFJ61|Zp5+AQ z3d4{O`g+-_b|uPtEyd_UdMZSu07dFQdfEmN$YFW?$gK1@L^Bije(c2+)`vn{^1v@) zkd$Xhcl1o*Y4U!#S$Nk2j{=PFt!2-2`>0V~v zC%ckVrDN7G{z)g^Sax?f*2IMe=IL8@EU^FyM|gW_RP5)iWO)Unk5FmBY>&u`FjE?=idiqoamLf-Omo!wj;p+-(1(njNG5msQ$ z^`lmj11DSG_l^Fu0rqUbsB0xT(i=zHB8{-_`eN*zT_kqJzc4hk z;>Xp!11Q2P==^OA9HHRE0UP7n0%t7nhU1ljP&<`fX4CeD zI1(OuC478E_T;6FJucr15k23r?!I|d<~6j4q9D&|anodli*JZG_b*g6*l)QQx7&pO zxmoK^LBn9osKq0VMOGg9=_T0xyzYmnD!nl%_{`w1|okTgpxZhXf39$HR3>3(LA z_z|=`3zBR{ovc=j24hvis_&$4QP-W!9)BNZdX9xuWq+1r9I0cu;N$AE z&79a=iXmBy9ENC!pA+P;(XsrrGlr3o^JkcKS1x`~&Ix!hk~tnSHL8yBao>NKadZ7! zfQLm-(O%0n6rCo_J9)bh)LK%Tj~DM8&Z5GnW4sZ&>O}Z<2tH&tc8RQr9Q*c*&Xy8W z(Z*4Qb%fK?Y&C|AkKX^vcVRXwz+9F{oHx*)`f>^=fEhma7KSVRneUGnUngv|_QGW( zHs22C@?+PwM!U*8xC>#Hi!L|>?pPv5Q9OcVcD-hciAX$ghz&nWgSQ>$9<*n0biJfw zA!U>%z4Vz>f~_`eN(e6<<^CqQu`P)m8{Ptu0>9t&`tqJ3c8Q)OLQL z&LIdJ-i`aCP>L69kZZk+8|06|7QL~GG*nm*@nIINx6A3FlWWoUs2Uiv3-i|rQ)PelYu;@yWC^Ff& z(nnu*D+bXX$-Ws|E&ngA{mF!ug{t(=XM$*dO=Q2sp*VF{+aiP+|J1J?l0AIfJJ3Wj zY5MO4_5JO@;2HF@qyuNY@@#lzrd1*9_HNkzGf{8OqM8d$O8Z^A#Ti;%mx6kwr-P(T zCgWsT<%gvs&_@vOI{9wpAU&M9*nx5i!dP#*v*7q-dqExCkJni&SZMiO&Xy6%?ms@C zpLLWOipkuD^!tm*+0TX6H3ehAJ0D4N=|Km|{aA1Od(ReioKdQ0-f}X#12W8@_OCw? zd0K`uY>i$VxN;^9&mC-1zH=0D65U?yR(4x3FDL%ZSQ5c1w2^9a#R6<^g~OlP#BAHo zh$y0jJ?+YkK(&LuZ$uwri4s-=({ zamw>!0s`oWoFH!d@tn1YDnR?9@w5(dLNa)1lZ>$utk+$%y?@X`1uqs%NkW-aKHH7eG9@QnD9`V#qccf#QiEQaJY3bQgJCg<@{d< zBURd>p&s1$L)ZN0zj|7j#2sAFu_w5;v`St%3jkiE2?fQzdYQ4ij0oiGQ%?U$rCgKn zC#ZyPcse%KTKT&&RL_OONe6j>^ic}=#Bkh3Yf15F;L_mJjvp#FW4gY?*qtLPC)8%B z8s~jQy$BsWt<6gt1aVhJ7$W<{F&>E2%erFSA6~55H&2TxHsb8sm6eMNzhgF7)%IxGqHR~FE=hb z{Q-;X18?T0WoV=nSzQch-)1npQDi+0i|}`22+d^-Y3$5Zw$-*MdON1=yQh9L5IK8E zS?bJy?XdY=;njy9UGjNMChTs%?sm8Db9x@bTlBhU6lzyT%&`KWot1w9bkMPM7{@Yd zR_{w+W1QEE*=f)en{}Kg|7(sk8vxpVu-dk+s4__p_>c)5a{AN{WJk=NQP`+)uAUd6 z&BN344seEX)WPvm)S05=Q_&aKc|J&uf%+ES4=)P=Hi@h&OYUZoc>-!}C+c}tbtIZ2 zdF7t>j1IQ_=zwBp(~?bdP1lM>txthq;3^*oS*V^YdAv7e$heo6wTKcE1z9 z>IOu&3If^+@Q2PU)4bcR?s9fF48Eo&Vh`0qk43Il?zXT2)fnG-Q{(I76a z9me#Y1I(|*C$u!loK2d1xcG|Id|CL2u263`zKSywNw5KiaDn*DPxD$P)id(gRKCo8 z%*5#7M8~1l$V(z^wu?+Ut%g==5R|u1_fs)-&>Rk$VcaTi9aO#yVaYn|oESgL9x(gA z{*b<%|C1AF40oVE-Y1;TiQ4?w*wFaNW2aY6)FEm!*wxLE`h{BQ=s}%!Vq(5Eq^SLHaX!^8(|vVJ z)Jx6brOFvIcKKmiK}4H}iK2f^Q1v)2omD6)cBmV!qmh343^un4*m6AFyJjy%%H>Dw zd039abNz3HbtxcEYD13teNeL97BumrDEsf+ z(z4)j=*rKSEskcNI*`4$!i+W<5p)0-jG^G??-G~8|ET1zo9#Qe?SnHdH4LAkh~yk) z%Y!ts&8+v3@mF7_LmyH?LgDB+Wcy-E&MrTR^TTvu{%j4)^smq}9-9%B1p~kOlOND) zfaoJlprrie(L8rFCL(%j%(-e2RYhwh;cWYJgm>=+Jy^bp*{yA@9P_X*|AHzi6Q1il0NGV*M<(r*%lcq~xLExNXcfm4xL>d>Br7&`LEV^t}2#jcy(|N28RT=KM zi!R0(u#vtil%7s|dDwTt9O+Lf3q?2)muXYXi#LDJT?Yv0IeuEMznZS&+9)LT8FcwotRzve$WEKH#&R1x>HE!Q}^^F-{PKC1V6s6olUZEB=NNV zS7kcY!4o~H=RwrF{Hf3x+8ZKL_aK$lFx8X<{k{X3pBP-vlNo&Zs2;S`tli(PP>)L_ zuIzu1u708hxK?*~s86Fz_8jiUXl3x=3Q5p?lXjlKx_#=r)!AuD_pz{7cdwrj*R*%^ zsiC@g05*pP*Hi1IKB}QdI9RXnaD)+T&-=Roe0TEL)NAF8_oqRZ`R7p{sODn|HM#ny zNQJooX2ILjwhk#?KEWUxdNu#9P{+XLd;A9g@SyPzuMg+47&+B(MR|?Q8Ysn6);2a8 zZ*s{3{T9%3fy=rA|GtztzcV8HRY?9rxAv0MEZB#WZMCm+bC4%=j(SA;_J!d1+TH0Sx%IJVy754z+okXI1*^4>2tq3>P?y=h5v4FGNhpJMwnSvuNU1f87z4yDz?ep&U z38L5WWCj^+rubrqz4f~5!h}S1xZeD&f-?)s`!j1zg~g*y=Og)rmwN_hVI874HCLx+ z-D$9j+|6KRjf{#6c>I&opSuS}hYdDy#7h(Xdpne1YFs9Xnd7CEPyvoYF5H-a5jEni z8|edt9&yGxOPZypKM#}`)qklJ?a}{Dy|A`qGyhjdW?J(#fajO{#v=6`Uu!bMN6K-l z{>f&7z3xXVRx%6JRx&h4%**Oi%;`+&_^PCT$klx$=}oS%Ne>s>pdVG>Oo*d2pY6us zdwi*ip+GR*=RgGpiZGT*Wc2Z3eRBuggdZ)uB%}g#bw&h~MtJt3aJUYP;>1W8MXVQl2nhZ+Gn6gHxTgCL)o` z9rJ>4neK^X1a)m<=%CY@0*V;G&f&ssa>%02qY)(_CX0JLb*VK4KRweacyH)GMigA@h$Je=p^4a zC2y`R|M#79-$FYfc>FgM$I0&|Yzv-BQgF-3H8)mspn3E|S5w!L-t)aVR$>k>)mphs z@$Z>OcjWEsIDfIdwp7yKrCA-cSY}RC{Y;FU>8FBrk!&kAsSL(#(RgD<_9HA9SGMl;5~V3TkSlcYk!{r3}Ql%d0n+8jc&^+cvXrYAv6z z+GJk;WPcrJSe^=fg{h5gOkbM(_Aeux&tXBjL5o2+{3JpiOYt#Yv|v57iw@i=$C~%- zD1x_1_`mo2x%@jn7A}R`8y5JNiOBA_zaHLph)O0y3H%)wwWhj@3BzXm4j1P=&#DqP zZiHj_j%g#++1^okiL646^Q%1P7^!K3;aORY7Dv%dUu(s$2;W{sOxy>ipXxe$zEl30 z#H@e+^6s4|xz9H$=m2_6rJbO|T*+kP-s+f`_64uUWd^p0Q2Z(RcD*N#e@onjA5bGO zJq|LBeXS@?VLB6D!(h$YmRAH>u`}{MG%z&2?@v+g)jtRH+_eR%1C*`j&n-VbXQ@J) z%=zD&BR#RO2-dR0DEAyWufTf7G0^rH``l4>98`lqB9Oq(h{5P0`{)>@Zcac>=#lAK zOU~5winU#MhVEsQx^hQjk-q#`!(C2-|Tw>G_dH$h~ zV&X{km=wTL6Gr6h@Urz|%0+l*t#AP;ArU0~e1AT=f4U;Wh;zRaVaqjA@D}R!ByCmV z3mn%!*zKALw~CE#AHY`D2UQ}vt#4U%CBc|+V;h+8H1NCocNRSDlqn>=H#DeK(D=A^((RrD zyjOD823v^fkyg@pJ8?@ejC#xC^iKt-S0i4Hq~_HL|7R~mRsq5+7tg%t`;z5sAvQ}3 zAkw3;W{$Ks@5F#ZBJ!zJY@qq9GSB&4%&cU#bW&Wb zDwYVlS5$WDf>3yA>R&-6`J>oNe#|uWnqimB8KlJT#T%H*wIVHCE#a+986#;r_pikf z0@_`TD-S!xumnx8^50mC8WBX<0tk4i(lj)Jv8Gp8TI*Gm@4;+KJI_SE5@LwF$ZRFw znBXk+z=g`7@~V=4@2(8Tjo0G;K6}m4V;q;LMN6V@8;dS8L^3LCKuA8YdAC#p*5Tg$ zmMB_j&;nlMxLU6gTOAo2(Q3KK;rcNmMa(oFJ>7_+iM4OwjlXn`%}k&AP4 zDhto6pH`}w0f5h*&!E8KCQ<%v;Gxsdx3PPkwaki$5Izq3OuXA3GLz6PhZ}j z5n1WJh;m9j@|tD-1vdB69#b3A6i)-$V}pzse&yJ0@&V)P*SqmvIXr#m=+GpVbDe5~ z-+9;pMxvf1Kp%Nus;f6*u$gQOwDRpyrIvhdM zkDsKJs`c`_N2QynUVQNT`r{%msc11tk6`Fp92CCrw&_p%Kn|SvYzNcJ);t00%umN3 z62PB=H`e%9tTTd~cJ||-7aA6(o)SZOm%D}^UwG_nQGvLG?dsU16z&W!{*)TQ&->~& ztt*}U@Z*ecgZXcLX%p@ln-jqwhSp4VM z^qSzZRx)KYA|yQU{s*G8|4x+fJ*HF#KRI($|E)vg%_(QtX|o{PIXy=5B5#_APArW9 zaJ@Txq8@=ndw>mRirK36)>Wq8Ju1jQ5Lq@U5SX?7fE(s36Vbp^_*%BHE)NhE$1dBR z+3yl6ZLNO#m*L3Dkn$kN#;+r;Qq2)nF6$%TbAmXtU+%I=gp@XN4| zr60<{H{1V9eQzDu+xfb9utKF?G4=EeS&STr>Z19`fNNHihLo{@)BWTZ_Z~}_48l~c z-XO4DsqdwqF&<21DlccDk}+9`WSk_%zBO#-QQ!w+qYZar+gq)8pf)PR(1JNM z3CUSvTH?!xsl0#HIRqbuxl(8bXJGNsO7%rGrsKoLyJ6N zvbB9a#HsJ2>tm+@L|uG;eucZubxM1(yEOL*n%zMKx%A!Y7Tbpj71hk%%2&l+oW@mw z^zGYPmL4QgUa5@Ep@T=`744Z^sblOhH`4pif>zp?#{SU!y9 zD=d{H*-%fL%ACP&L%Y(Y!XSx(9{yMb-}#Z{G9vZw9qh1OhDdpQ_|GfR>T-*MElE8& zA||0Y{BVC#QJXuqx~y*5Y%MrqM_5oM#^qsIGe ztMlBUSq@{Q%aho+>RCuO1udJC#;v}PA#h87E>yWfDL|6dXn%p>C$3MwDRl3&^8KE` z`NvQ6e-&h{AtI0Z^-r!(u#mA&6`?&VhrdEE_YhIGSiv;{VpOntQ67UaWH{JJH+0@nLpKo?xK+sa6D=rhbRXj9ZG6rLCKImyP@F{Ybt z7^5bqWAQ`3K4XCwi_rFPub64%D87HQ+y;8!?+KZQsRnFpB4;z+@2)P7;?xLTVvoEx z+Ch>?kj=&dByL9Sk*(qk)fnQMyg?v5$}Kr#crEzB%S%3Ag9=OpMtLKf1v!v^R^|&= z+6J?A=BB>PZ8HPs>oQOto$2N4(?3SXrR;lqmSJ5%el8kWA5cv;5*u*PiA}t3e=iEF zXVYOmZ-~nB#?F~U9CDBe%ac#+MzO!KW`(^hfZ7B2wO37k$n$g6hUiVrCrpbSxY7BU z#vjZt{fhGcc>y0`nu5IC=>x*u!wu8j;Y*)PlIw8EBJ?lpdpkR*q&4fL&E?a!n`#*A z>cKgbPE+UdVL$mV!cI67mcg(`gQ>3>|5U~Y5tkTgLmx_8GID3W()9h-n8lDkT33GB zDEzOROf>adP-^QwUuoj=w^jNoBD5|X2O-q(uW)5VU;u*>kM-LroVr(iH+kNUD8+<;v?Ub>!{kIcB5bh73BJBfV!A9OmgrC!@p^Z4p2A$c<)!}$_nuw_S z=i1>_^0(-yVpad)^t$5T^E$_MvT4%%FYJzwsIPNFfapEt{RgdXZvIOqsx6p~FcBTI zN)kGW2?rQ@ZxUXyn;n-%vl}90`9~+$caq`uJ;7%6jMB&>@kv$hc51!n=v!&SY z^6)Cq$J6b6_g&sXmj-NhHa9S?kI|H8`Yt{BIgD&`r#?NlospA8-keLD?rGMd(u{Wc zi?1(BZZACYI@9(kDN?|#gr>!{_cYk)c^D+{hu109i)2E zv=1yVeCSlAll94pY17(I@3Nhok8GC0zJU}jvr8gUDMWaRns&Xn(_k^I&m83+ue{7@YuAuzs>vkxe02kf&U#-|zD`^!DY-htNt}vwNzj+;y&pDti zuW!<+n^Q^4pt=$#-UutAkk?{DB|d7n;)%bZ%eL;lHm^O{YA3$Zr@a5H30wd|03UjO zO3d}&^qca~f4KFc8*oVb1RNDa`rb3kFv}^6o18-YlcU7w@4Ll3{D*^# z6a*d~!53#%0kFJxs9W~76aAFP*^fGf=6j=n4I8uTJ1OllR>4?jL&pWVub~sO8XY_N z&voFKCE%^xb4&zMp{_R%xuhV7P=HXRsOzYhlE=bZ*UxK1NnP5R$s;?I%g|cp1K+~o zmDYczw>nYS)p5SQ|R}%Ui%b*S+Sp zBVIfKPj(KuftUCkB5jXk(-wI2IOwfnY<r9d)cjkQ}$uCPAuVk2^gQxnd^q8qisDr(=rh%hwz7Q_m zgD1yC7?TwB?kv2?B%NBQ1^~IVoig=S=K7Io{N@csw$q<{T%zko|LqH?Zq@ZO3%u** z_q2|0VNKhl0eLl3WF`Vx?lRN~USRue_ggs+?mvUjn-f5Oo$=;mwbKo4!(C~O$Uzp~ z+=T@dU|EmGzmbKF+Xq2@QnKKTv9QWZyuReMGyy33&%n*4%haKGEvN$72KTSN`(hUU zZ-4)uff6uN|NX;8+pw-i<&xlLxhyez8ujz-JzIkwunJ+`1o1IqEJrw{Q&sF}(sbSr z*I4D_{OxGb5WaKNxakVjwK|uflo3e%cLe3EJ%%oW86(h}SpNa@6MG_fp@5}l#+d5qSr&04%8<#3@QtU`yF#Cujk?u?izGp*d1T-XSZ zoKq@v!vwJcechaAV?a@i;mD+USNUtHnF^cVd>|pTK6{d-OrcrOXH-^d0DSbv4XJ?s z7(Nk@tf&pLsDm0|rK4+hGCtnn%)D4!mA}VsTL=IP2j5ulLQIBg1cSE4Eh*}~S4NYx z>#s~ z44!kE3*?a{0$R{coS}=lhS)k6pufb|B-^C?1)q;lj=;(keOu4jXe!TER|SVB;S2t_ z{%FcBvOlKWP}D*%t>Rk$P&C2!gAesD*1=4=QUggZeA-QFeP!R15y8H|P&(#a4thmh zcBEj>1s!KO=i?b&V5zY)Vz!qyvJC_M2n5M{MwBm)kscX2$2uvjV-XY0clQUiFuv?> zawt!l=A1Sg*Qzj;uOdyPe@d)M0z3O;>^n=gs9?Q+bTS&z&%z9U&+OsNU;i@Dxli*o zFp`1=KXL$7#PBEax4tVpoFetE1Vi2e@7*|S>dfDq6K-%DjHZcmCNU zmih35t>$p`mxa85f}x-{%APQHvTmyWCCGwOxB~LdQ3E}t644kknQY}EiT`m>3is;` zu)=FaKqu0%J>}-0bH<-ckhe}_9Le>FU2zbd+-*3I-%9M)>o0!0F24KdbpJ&FVi!&h z4X)g!MZf=%c?m7}OE^G=Vtr1T+xeCYT7?-;GA$>#x@U-#Zqex{kaVwos4}jy>UlNbaHRqJRVH{@kuQh<)2Il@OVk;M3b06KT=~dlNA*F@Ys!!JWf~Xf=o+My5By;Okro_sVI% z9A*i}+K*^2bfaw83!3~0_L^Lv!~@S`7SBA<>r9nAGJQltK`}brp*h6K|EYd#nE92w zPv^tDOLX5>P4S06pa&u+vfEd5lg>XxXQAJWYeAp!x7Q)vBSbumpTcfnAiMh}RM`D; z!S4E3OGyO5lz@}SXv>ubK4b9qT%T*8L>Q|p{gs9vydl2mXluP%sVH*e8CN76v|wlOS>K|uav!Cwbae7HA2 z1iqn6oM086$N0koX3TGY)~uw9n44LIxG(;lLS|}?f0A?N4)D)e3a%F#q5MY;GC{4!t^{C31IWuEZ-?>tO+44o8-Afcu zUxz?{u)e-vbie6A67C#r;gmG5)JW^9x+OlBcM1@u*%Kl;d;>!lJ~%QyAzuVsEyJb> z-5$SZZ@OHC$gC{pG2D0ZZ!nLB+sdwD&!)>EvoD|*?>$sLazDl^>>Hpjb{WN~G zKIf@e@B~OAZz$18+e%N zs{+i()1vU~f9{wBLrlA%jx@Yu)9>khbv~7*RM)E2xC3>kS2C6EYG2)9%|At(!rkUe zM8M7=Z#;vHPLLwC9;o$k1dAp)oT(AKT~N?!3E9UF^8J>#%5o}eWVMeR5zbOaulB0i z=M?0CZ(~bjL=c;m<yfwYCxES~Gah%ZE zl$I3cfsy5jGxaRmqCU#zkOa*;^k$!QuIYXf5@P%c6)<^Ia9T zxWk2_hW(-|w&kWjimHh*gC{`&9_9W5>Qg;c?$3I`jxi1)-S_5*z5MnjOxV0jw2>1F zP183W`64p#X3eYaXTOA2HJMwVWN&x8UoQ!nV*(bzU6=s+f;>MdxhXBAIA6;kih3w= z)J1me8U8ds>LlZRy2Y35&03Hp5v|B>D43NsUFd?A?|Jvkrl(Ut+_c-eO(U6(khy5+ z78i1TEAZ)nd}y_*SL5Yrkux0vZhuMtIdAr4a|*1qR_`-ph#+ z7SWe@VHuR_8Kgi(#23(D!^N@%X$|=q2WN$qGobE~YMmy|P?n;irB1Aqe%GnsmQo2&17L*GVj>*>3Am=8U8>Lp?4YOh z^PjmJ#Wd}nCG3Z<%t0-FSxG!bBVAn&CPyYjMt z@7im2)~Mn)xqJU{4EYoRXCquooAy1B6?mzIAJ1qqzn*5#z|UCi;F0C*Bana+GHrU_ zgsbxMXoh#Ry1hG2qh0!wGXK}DEn_5~_fzcEr~C)n3u18op5@5R-Otokna4PMt;tST zu#3-Q^0*#I-Jg=@g5Iqql4Yq5mzdCn_Fp$0BYqtiMhTUp9R43sXW|ZJ*tYS%)c@xFWh`2G?0n=598_&uKsS11^tizN6FCucR!W`_=U8>&=Sw)7 zy_PfQwBr6o=j^m6M-v!TY6^TmZ+3D#Sr&y>#7jg}3jDB`7~a@}CwkDtT`p_p`Nw#b zs;kA5HFA*^=x5U715VdO@^c;r%+OIqF@+X=r?h$}>rw=wIP#Ob`u+!nJAG8t1G-gMy zIAAHQweTpGjquK#`3a$WDSavx#w1%lqjmIS^_x8y$LUQ5J}B3<+- z>I$HEdFZ+a%Qfad{nlcWajA8;o|xpu)TpptA1n@L29{kBc{3$LGIa8{(bl@p2+M+j zd9orF0+^!)g$rS6+p?fKg9*$PV3uj?$vV0@JxPJWkd;m>l8@M9Zk?M8R}xl$0Z!}&u)Yn*vgVK6cDHx^$zTIv*k zCRDbLNmObuTZu^JDP1K1hSEW==*Np}<`sp5Zg@}wrONZim?7;qUpE8X0a15BhHbMd z(%K;UU@l8J>(I(?T z%lv|!F8r@(C!?_sh8aFBHWz3z={jfKY0geQgG6W6195?z+59@KaBs6PE9^Lzg+@&~ z7p#qa3Sw|^Cpx?IQg?zO1<)dFoQu2_vfSWhIr92_gn#pR-(6u}i{72KYf2cA{>7>D zegP(p?)wbi85y}|ra+osSj((zYj);IAD=C1i9Es@T9p|LTRJ}GZ%flxMA0CB3Tu0n zgl?X3n%;_V{G{%=k>fT%<(519mw-JFJ6vm(6YPYe%FXAKVEb@Y=yoP`&`9Fkvx`nZ zYlEdC#1|b@{dc%c6Q0Mc#PbQy@eMUpQp{0;5Og|YszcS}I*=ajc1wv4hL7IbEdQq; zXgQg1?3P9vo?_L$ry0>)2AVJfwBI1yYTG@s?hKmcM#Zh|!IS_cXIzeA%F*tbsGjrm z#%$YM0ZsmcsPNneDm-Jr$jbM5fYL0A>)pM-(?nZfc7V-*kGmW6qLGK!#1pxlK<;Dw zVgJ_Ps56@cXy_#mP`_@_DI*`p?B?ndkbf%F&pHQE(sO|F=wQStb2S z%j!#P@9@yztk5qnPGKpf1o)cxkz(MWmxnKGZr$JtFUH6)%CO`%N0NnULKa?lqy%QV zB5x?f?Tw{`f#iyJhN2lmny^z3Z^IO&2vFQLNa`tcy)+e9uPKqX^~yh!kGY*tfFh1% zw^9Oz`eNp5dHn5U-NdoMnI*y_0aoRt&=~d`iOb2 z_T9FP+yxb<2yqC)fh2e@FL^T}6E=l9BD!aEoHZQa;QnGFxI{ipW$<08{p_A$Z${Fi zja(shU9FqFKBEwBKV)VH>4wblPYC>zoH9=D0y&s1k+LY0GHwNF3nH0kHB{C#`?+GM zKh5osau>k4mx3myUw;D~PYlCo4~Y`NBafO+J0md|uYTM6K5+G}_TF3g1}JiOT6I!XMpWjC$k_oHY-)#=PF>_&{No@Q7;nOT;T5 z`@f0y^FVlQ^E<2O08r5yPGC$Fg58@HVt#KD655%ujA?=WwW?^0C0}WGDQcedTxRIs zATiW1L(@j0j?R=U#Og85kSh4jr7kf-;9{_Dh7zIg)t5r^qqhdiDV^aBCPg^o6F4}9 z_u{Ys--at(Cx#stUL1=bfSmTti55+v@#_u>=f5vEL4CtRFxNg614p-NuKc;!2&6Zh z=JP5od&hM37xv&6ZtrIK&`oYYB5c8c}N_ zmNrC*k&9d*6fINr{6f(*#|q8;o4=5P z{aChDYmcz;%|`8e&n;o}Axmv=y06D6g1?Tqy=Hgv!V_wQz!yhr^vKYa%ALa>=Y->s zt=6#FubiXdo!Chj9)DpYzV%5yYiQ_5g)Q;&jPK6llE_0XHxisS{{x)hdm5ZOqu`Y9 z61sE2=1ACuD$682GjFkZ@=QnP2AtK@7w+eLZ1|Nu>!rZ$!Qjj+M?uAG5oDO-6VEL9 zAk+bIv|8HkLd*YU=cCaZiv9QUZUPRiKRy5a`()g}j@CJd7vW zL_Hp54_n9W!Kwu)a6ygGA*50sBL+$MmWUIRA_`>%?tni1tmqCo4GH6&=>sw6&juW8 z;#y%O!E$Qy0QVeK+NJu?RY@dk|qNB4!is1_Gu$_wY0C#EHx?CZHusC#fa^XzeWkc;xzf~Bvzm9PA z-+kB$?A#OsgaK3&ntHdM)M2dZ^g6>qsN-8$!|}9FQFe1K)vkMUI2Tr-wKdOWLF(4v zqU)x1w?HIc1?@(jmy(oU0B-(})Hy|Z2dZ|5)jaPLQ@Z(RKRl19M3FTdQ)SaH`1n9k zRT`=O-48WvR4Uk9o6)8qEgxyl+RkWq*L5lZ0l)7eGJL<(zf5jHQ(_fT)4UKnV7 z=1e2Q=w+?QW;{|mO2*oN1*hEQO#wJl11y_T&)G$z=*2$P-t(t&_Kc*9uI+QDNT&uU zE5$KDn?DWBPd{>>;&%3_sgKtjt>L*QHD6#S?3IyGtO72b0;u039 z@zK&99TSiNzfG2`^DfDt zMs;`^hDI&#^CoJTM5OboV6k$-0tl;f9qK-fVkyR>egZ*Z;2>KcV7XIM$fFSTJ3JXO zPgyFhKkB1P|E%&VWc=j@9k5T>9UUV*i5K*fJk61>ea?jC}e)E^JFQz4 z?I^{^cV#=_ms?LT3=Gd+(~ktDz4B{>H9>44NUD0nANXC{^@CMh3f-2CVGleiRkX&8Qa^KUPfoGabH?)W?9i#?|VuZ2Rm zl&iRT@h9>IXO3-kHN4#B=T;`Gr<^7KIag~BH>JPlSHrb`tl2#G`xa{z(gv0*&fpck zltBpCBjS!3bsQkST6e6DLl17{+R@W5Jq!ACv6DlP5Sb@tdhd7Kn<3O#$X9%gc&m5j zC6$|b?cS&anemqFZt>jjx{evDatF4%uy~{G`j=2>%b62*IzxJMRrA}lS!qVa9<{Ot zrJ6ItHyfVysK?U&xpUrNrxv=3U`w8h)_+w&jyxEOrM#b>EyJ^G=Zgw*X1q)0G}}x- zb{FnY-0XE2E`nJ5jw&w{r?8l98FwtY9yFg2>Jq}qGXdS2aRJYlaqVbmqv z#YaUC+)jsjkCk6~YO1=}FUo6AzqGV|ThCQhE09s0UlM0iL~jgS`Ez;rxZkViJ-?Q< zDQmnt`AdAn`l^m$F!pz)Bd_eEjX=iA0d8{-8j*gaWii!vJF9oaw!S&F0I-M<{F5Fw zovCl86EXMiXOer`rr`3{y+Xx9Eh4CZ_z)GAhdiG^I>aPyee0-;T(sJl!xW8ux6Unb z2|D&ByrX!eTq7}@_U^-b+02pG*PdH3=ZKu(yieBf7S|qE{e%bs-UI9CbcH+%TG6bU zb&sTp3q^a(&&h1U>-(!<`0W}h8RAOJu1TjORv`%QsDF}zn>{`-Z)TvivwjU#MEb&N{P1Yy^}WT+GhdU`_CkT(6wd7R00f@@&O}N{-UU_W zY-4ZcrADyNo4iwkU3TtBlJ~c-3&Z;;?H+@R=cDawb;Kb8^w$p@$~F`UIyCn)(q#sx zTBqpAGOC0PGz2Bkv0~UA>k!j<34Wn@VfntnahVni@YhbR(M~0rXUd4Zh%gR>oX{C} zh7_l7j2L@P#=H58<#R$tp49UY^XiMv%F4mX=7gQnpYc}u5#bAw--huEY*&F=yAulF zk$1<{*b_$T4|N`Szb>upAYJkH1o0+xLwknW($wcLTT|+?iXKYABK-OVtA!~mP zRl*@Um3v27pm-aHqviGu1(FNK&qzWu`L0f9Th9U69v`Vf8+fvc>fDqY&>FP$K@k68 zJPX6JtY1$~-o5^caeZJE8E?;akwlnYV?w$Gu^2yCNs(jp%PVeeZPL+b;r0qy`>_$1 z;N524ffvf2Z*N$k z<%gY?S~>&?fp}19=`m6yMS+ALW~`o_oy1vGEaRuYXHUqbEKZ5sY?jyf4v%>FjEI81 zB)stoG}lwiRJz(w+5*Tpkg7)SyOe!kOlLDd+C>WK2pIpVw$(A4%A{+`kdE@CIG`oW zIdow|RJ19LaH$c_u9(>{{zXWe`zd7KjVkJm7zGez^@mcgUiJw9P(KOa<0`HI55%wzLW(z-72>-Om-FyE@dphn-{YVI z2oPXYgvy>3^pqpM`N~uD;i0kfyGEufS{Ht~EoTuyvxk>w#X2xRm)nSF@BOF!!kb=? zH-?VF<sGYrqi!!$xDR>I&F)|Du(eX#!v2Wwe5`+x2;pb&mX|JP$ zt~zY5-T|EsGURToA0Gz=wrO;34H3@HSA8>9KdMI<3mLBCZn{Sb^4;i)66uKF9OQTdPM`*IMT;xAs6s+bbA8 zfm*qw+F+gGa)cO6>Eb{rqB9ZK?A~C}q<(_JMntZhEnkEyvv5g&tq6)Scj6LpZFH6_ zsb*t`N;VcLw0?`^ohN7VzEO~HFVkN)n0#<=Wq>Eioj0a^^#NjXbyP%2lm!KrYZ$4z z^*1L-Nl;-~{ONRqir0b&K4@w8eS&~)Kqxlv2Ak!44MajvEJu2(JS-W>rM+$D*=>la z&iz!~SUGsV+<*WiSZZ&)RhgyR{Uga>ic0B{JN4i7JaKYViLMvtM5R&~nqqYXyNJ(q zcA2ghspiB8JI-xWZ&ro^zJCpHgiCIti^W#bcDr84zUCUjXkGc@v5Q{o$)hNlQ3yME zE{6W?d~8E_aAX8GphUw?<#NhvzqD9?9gtlIRA2lo`jT*0RhrJ|X7v508A`xfGhfuK z%}{%aj2|!KdatZ?>1ESPZGYzlrpDec8Ck9c0t!M(?m9K(r4>eHxNq0wv62$^d+uNU zV(&XqO5ht>MY-+cTIG*D_4Y3W0%J}(Fv*kNG&q^CFfO}Sm8eEfHC5tvtHWc%{25dW z`$qcO%oG7c44y(DhHu{P*;3IgXC4s&sUfBqtQc{1OD3YcRZBl0 zYhmwl8EK5mF-SKu(?0abc6dd*E7FV&S*yJ>E+DA#+19{{*{ zorVeH+{sAJmPx7?23L$knq~}!`07K=unW&n;>4M%eo)iLm?l}}-GzRGpFKukOlJc= zb#(RZbCd>mkFn+14DZC9gPza4p3+wEyS3e|XUMRZCCiV055HTk+pXR8u{v3p_i|8w zIG@)@>iOW)u^4Mgn@guPJ+&zIcNbtB-_!viVFDHuT`OR z_V4nrt1LSZdISgkPD9z6y{;A? za6E%Mv*%pFY!)rv3`*P8zOT`Rz#^8AG{)E-Px-7{B@xGBVcBd6Tb~?lWr-ljm|t>E zM<}jMOIug@I8r*`B%EUt)Z^qC@GcJP_m8CAQB#==!#t7&rMBY`8Rw8m;yON1hotkX zk{mI1Ae{EjFTi5zLFj`DG?m;UKH^Z1i;G=`QW};$MMOn5S8o0wBKm#`%P+w0Uu+3L z>q|vvXJ7r(8YL4z*j3&W>-#Sa?TcObc#pESW$cwQD;j0Y-OUXCW((Ly^m<0!rC$H~ zJo?>!{kzetI=~o`;nL^s{qCmIVpBuawL`ULt@DrwcYy!;+&^Q0o)`$gYVXk9>2v%J zeL|nZ87=0D^0*kPDqZPj0e(B1jp6VsO!Z%U9F|~n$|FQ83}&yKcXbhbdrEgor|I_- zVsXu^OGVV;*wbIU0_6Y;^DD^nLrxFTRR~8wG4&PGdzzs@Nj77Y8151)@?wd*lx%Y% zTd2)RWo{u^CM#ZGiBKZX;WakWdlDiNYba)_8@ZXYTB9Pkz<6a}c%SsKxs4Lwq8z%> zWNP}N8npJ^G{4X^UwqeuRYYZe2J4u6E2?w+IB`3QoOW!;SPE0BK_ok-=Dw zJPENHGetXdwSZ?0M8 z+0m0Fk38R~vtQ8^(oaDS1;#C`{y^|flrE!i(nD{^Es?8(1tZ~`6Dp5tc%OfI`2Vg8 zRqy|*4`govkQ^Wf;dF4ZBDEUm>lx}9ymoOQBTT`hZYz6IJt>3qNGRwAp}kmIjj>d5 zH6XTsiR1EUgwAoy9ZAS%os%sFV4{~}MFJ!ON2e&ftE7E%F3@sbi;CeF);x;1$7gR*-7R#-{)98p%j11N;4vyWx}ll5 zp3$GfPy54l1mW1SNY8X#;d^65;@QTrz|J;uH)fC5l3;a{%z}!SW74Cz{*Vi8-=)^I zZ|!n+1^V#8zoZ0aAj{4yc<(TZx6^!~RUZOwkCrJv843*WAFzgzNM@*~R-^rSc#at5 zO~L46x!t#qz!nYf)AyJ=9}(OVRP0NUBsh>9MD9o4Ze*l0*_=1`xe-ir#LIHi_3(Tl zlB~D!2#IuLovclohRn;OX=cy7C;IIY+2w>&?=_u?X=Fo5dWk|TM$BW| zNXbc{d7SJ?&hWk8?Co-4HseyOf_4=fldzGc{hDYik|HqPOT|*WF4P8^Y#oIWvEzJh%uc!&MR`7}&gdkr5?mFB0pl zmgD-VLB0hSgPZ&=GzL9BL(Y!oC-m-icb_5LDoS^ zce8uA?@joUehUtQ2L6tc+jj=TBPXdwDh~Lauovn+S{0GJ&oCo}T25>uXiMt%DI2PL zGG=A>b$AepTX}^+@81(Zgwf+iNDn*q`pC1c%UM@|oPG}S5Pu--1vU2YsL(i8&IMp< z4FAUvCB5HYjpf&yuqu>^V`~cQ*3(bT5CeD&^xsT3X zx+qZpyCg;81of4@tH|D^FPxspd0Ct)4)oIx2XtCOvu8B?jxmwF{f33Boi!IKJH+8r zcZ{hMA>;rvh?XAmJpZM^sCs&jf~fddr0WUgQ|4Ff4KkASubr{$x2s>&iupEv8;9!V zrQb5S>wC59*rH!4`5~j10_YS9!U$g7z=zu<9eXPJag~0~h7pI$yp+)j*zjYCuE7F? z2kFw`1Fo~UXR88}!c$M|ifTVl*%a0)B5?+0ApK%Pz}t1#$NVwKZ+EaJLktw}@?rhmkkb&YxV6y_>Wkj=<-e9|nvm=@`m>(VYcy z@miCa+w$ojg3vdJzS`?M(;c2Z_y6#w^QNolWv6GJAD@JUaB3@co{wZ8VCMIi-}F4C zU;Uuc@}}n0kAHZG5-=w!O3Deby{!G-ap%w7+lFHccKBcNpyvaY0^3)r8%WYNFYe93*S zCPym9`}sTP98lD2>FZIkJY}<{*InG`&S8FY%8U}brF$T+NYTp3friG&T;UOM?7Yav zuS2}~$I=@+nh6wF5nm=L*LTS3l@^g!45A^OX8#c6@TqRr;|7W=P&c9tF&ty!jR0DV z!y%cgyvevs58TCgdQdhc1bJQ%3G1+Q3}Z`%HaEw|ft5}h7p)=xco`rAH0KAGfxDDL z*WIgwlhR;3CT+~A{o^$2&WE8CZ*_i9E%`<HYyhjB| zq-~rGO+>3>9%HxT&%={F~S z8?iv`p`ADyAsfAi%2Uw9P@$DG!R|!FSA(kC>-;5Kg90j8R=KM*dZ?fX1cdMkteuzh zGglY=8_{V;THbRSD0uJ^$2F?wXW_EnPmpY&DDgc>mwM0&js3heLN;dFcvbu5BmIfx z@P?c=s82>({GPCMkl^CPSK!9sZ28I1AymyKcC38$>nAZg=^ ztLag;CBpQVe3O;3rw-X-4XPKUNPNeUSgj{gjRhM{+b3>q<%w!vf)4zyv_P(sF-}i^ z(_HnJDy5*k{FZ#b?2N+niO7j^kaJ1v4=>xRHcGCGC`2kJM*8sAKi(rGJ5ax|$oIZ_ zsqro2qmL%nnUt;pJR$TSV-@aJ{h|-(L){TiM`yff=jIVyY(NOt86 zr`hjMKQ@xick-hc`q?%I{}OqWcU=Hbu_Igf7ykvJ(Yh=utye3Ef=%~Yj zft))Zyu<0@nNi>vt##VZhlieqjmsKwtVRKBH*=2pXsKU37~pzJ68deGb`v1(9N7Ve z-y5gKAJYTVWU@)Djkxu@xA#X|4ssH6W8dr8xcdHQkY+wF|LIj4F{}{7PY7+y7zbrJtsZids)t!BQeTpvbyx!>Mrl753kqpNNw0&@B>+x@EsXMHvjHx9dS zaOfO*qhdYvv6K1!Ddu33TM)rHlWIZgEEVK#{H%6ovh!E_Jqfm8LO940{>(G`mZfd$ z?(cLeYJBK`_E|-g$l*yyXnY9sgqYIl)+#>2p15&+oiv z9yf^WbR_v347y)4w>@M7PcWGYcG(kmu$VdcU5PHz{B=PJ9iyS87}|<_Tspcu54$$< z@pFX7pI()qw_KD!SzG~^3fB_~y<6QgNhqZG;B(_xK5~hyMJe?&q55N#*nzPveOGY- z1l8BOI?a?6SZ%Xr$(rJxSktgK#09oA5w;qq`AU|Lk6>-LA@jVLME-wXPrQ@|+E5y} z(U&2hh-c_Y{BmRX-IgbDI8ALT|Rb8M8A0_cq(R%Le?bNDCsi23F z9kXZhtS~(&0Z8X=_2bLha+VqFu1oe?=3bDb^u&^E)6;_iUyboL6!y%(7r6*b87?X~ z1&L>QR;1lrso~DYY8#0uL23I_q}Y63PxU}D=7@vZF~`}vnVAv?W?|SMaQ;N*t>o^; zdX1ges zH0g(pvdQ#(frf5QK!dv``VL*>wwMOD~A1ycA?_$ljO6@NcDb){H>wL#>i;w#Hj zf^cGC5*7M;`eHSyW7Ks5+K92@MvaQ_TxQ(u-!s@?f8N1DDaE}SvTeFx)kkbY73^?6 zY}DE_hDPf{=@hE})Y*pqD$qGOHEXZg8B?}^6M1fM);F)q)L+<@l+;u5u!jdJYlih> zQ(#7kRfC=toq~NvaQ|g3eb&9d&EE~}vgp#O)i7hgf_{R(H-VWEw$F_v#=1oLWR9F zqD-aE`E%Q+z4$@kr3@dVwcF$)^;+~=J?EyHqGSN~Ti}^`VL>@7wuH=TxUY&-VZ+U5 z;C>*pI)rBs;jjx%FTpEf(MIJ(aEvLZ4Nqh23NzLzzF4_F%cDQWQG`JF2 zwh;T5P2t*YaW5|YZZ`J`#!BbhZO%7Rt&3!yj_R#evn|KG3?#tMUui<^%+nW8a^`%wHzLG>V6J|^=ci-;3D{Y&7w{$CET^laNboiq`Nn8HKAI_npbMVZhkbF03)65>AXJ>SFy23p#InV>FFs}0XlneK9#a zNiuSo^hZ8p6EBo2Nf3kvVjuN?1_srP|4In|`>hHsKjL7iAmxyXNCl*FQYI;nJi3uj zDkOar_JuL{dPSzF2;0a9b}n_!?rFJ%v2O1dU6ojDHTkCfy?$_Jk zrmluXWo~CzbEKn3-ESxwOL$IL{{F)kSKf>}`0jVPr1kQq(Aoa5R_?*RQ$oWAe7{nN z?wx=B*a}TLJD}D`o@~iwvj&Q6m-?&=sPjW8qAp7YL`Rk0z^_9?ie9rkh77!(9oRE_ z#(M3Mazr@A-d%~c?bu(;XhV1)gq`W7Y zA%&c7uBs@XuDU@^sELy2`7rPgKNC3-)ExMFn)zq@HScxyl0Sj#cicW!Pv(VB9!=D9 zlH1@~KSqa&r?PS;xNZf%Z3}Rn|Ax5JebvZozW0@nd7LA7FYGLXa1tWx_~^Z@61W0~dxyBHFKmt6V);Bwl&JQVy+4`%9Z(vq-^Q zZKrh$<5YumyXqXZ(j^x7eS&9>RJ!!}eLKvkVJ$EF0V zBsT%x;FFBmrC^Awk%vUq8c}n$H&N9voLWM}TGt&<5y@r~C7oPmfp3E?)-nYJX+EiU z(GqvJ!S4e#FJ+d!=w!VP+-Hq*X9A+s#QE5*q8NekSE~ppK)soMM-(&AN#b+wUFxI! zGte~eFO_o#4ge9c!xUFz*R!51lysF`)t&YZi#h*VU$*^5pGcdJg&hnaIsw^c<#j1U$ z^c|q{k@q^AgvdyVex#K>Ur^VTS5Prsxz;%3PgKq&8;&WRaWZi4Rks^vzC%x8v~ zB^EuoG#qZPh6wj>@-V7YtNbE=ncOwQe&{;8-QHRnIdAN&^wm*CVHle(+>AclQA=~# zJ)ibeSvL}gH9O^Ufh^ikCx?su#N8fgh4?<|YNYCG_%(qTlGDrK&_z^O#gB=}KLn+0 zYe&KGr;|?LIVoeiupXzlUb0z)}E{~uivX6om`lNuw=#cq#3#%7)gI)>N9PY?#Xpk$NC%F|CB!(#7L|@ z-?>&VJ(T$qVV?(Sh|HlI%gtolT^?-_+RKzHbpp-`WGv~THPbWEsN6=6;a_zI8|chJ zgGn}H&*$pv*VvWj!_V831;=Df>M@Vw8{Q z7jSNTygth0y_%eS%q)NT#XB87*JRGm6fA%Ud2>T5zuDN^{PQbD`A-MN&7-O_H<&Hg z8A733mJ~Fk5rfM#HDT8_O_n2f`aKsc2Ra!f;a|1_1Bo~L9exwO=IYjJ>F$Y0vn|Gr zCMK&Vzv6i2l4mM2&m1ARcvSq5QmWnSFqU=!>7U=&u#-6|$u^G2!c%l`O3N6jc%_09 zX9C6A{TY_$C-uuh@I^zYQ<1;n;p~1^pYlM<^Kst?6LZq$HfTt@5RqQY!rK=vsOU_$ z8e7)wZ;VkVgE1GgE+-Lar6ESAro+9KXR2x2?JCKGp>K0hd)hEU&Sfjt+cy^>NhTu} zff44N&nO~A;fL5FY?rc`dzTgaNgMCgtq0loW>4e5iU%EzrousMB4#BsvJV3p>kb#2 zvIA5&g(?}zYg*=6z`71|$zrjbSap|a0DnHcYa?HS?aMBDqX3=9i&6PWYd^-Sb4~Xt z#-phv?>jq%9a}>QDf`k7oaz9AaN%@0z--Fi7q8myVh2vb5UE*^- z2w_t zG!WGfv?h;rv4vl?U)G)Yq0FoL?+`p0Bw5@R;)}ucVzKE!a=dO9fDO zpuD}VAIzq2;(My&|AHE5#1SzPzjOUy2B~)DF^qVYc`P`tpXX|>46mHIKv+jMqsgZ3 z=dpN3zc6!^%9%TlKPp<)%;NlfJ1k`=G2DJP|52#6#t*(pT3=Y47;aTjx~Z2TiY%I7 z81vWH)6k>7q$4LviW6>cU5ePcK?d!osz zXKmS^n1OOCUWErFU_yA1Yxkzz}$RV803nDZuLBmE!e$AKM~+(!4VX8-07x z=i%0mMMVB_Ia;hr^=e6?sV4};PPk=eZtN%?Fg0}Rgy$vM4e>N?6dks2Zzu2%F21`% zTC#(-^TrLE!K15B_h)&x>dei3y*uT_;h_T^L{ei8vYlsiboQ5ItbHV-#oGNy6TcFk z!*(dt3_GR!T*4H=0G1fc88zN96e?}U^p5hRvstM;$!$;M1bY!@l5%sv~YB)sDUWjNo396<;(kthoT|FJ7qjX}A!pCa#b!!f=B)w|?E+z0+Hm@$B~{ z8H?&RK*EVz*Mc~oG`R(R*OEQ(hkq?0@$mDm6tlXiiCWRsBCnz|>7oj?2bX?2-0ps@ z?Oq#;gW(OH^q$F(kD=gUDqc!ThmTonJ+?fud=aW2-_DdaR!wD1sR)fb@S4*8(tRxX z4BhCdN+t5#$-}?t4KIg4;{FzY;^eM6{>^cjJVcjx z&Mu4`yvLdn)}HI;uyJPg=N}{+ZSIE43j?*R&{Cm-OA7y1WV$s65`RS*_-|s_)X^B4 z<6TdATT3g6j4FuVCTavzovzsPsRi^;+o;lQY{Bce=y{q_(|(ZH^(XOyzV&vq%|kf8 z3G9Ub$>`+`f)7tHM?l?jX#v4ld~9|xCB@1*DkK6ah6|Bil?X^mG3{}kh5mc`O>>$& zOkx^jY&oq!R(^|%J$9pT^TS9i{%3t>IMGsHyAMQ>L7)$XW zH9;-lC10cKR{&I(&v-5(WM8BDGPY73J4}YV}vtT;nfVrD;0v}%Q5|SmZ8?lQCFl6PAL8{>RyuyL|(V~8C-p`_%(Ks zai1S^lsg#PB$f15a+_Rjzd=a8{pyBpt6~4jkE`z?E$6^-xHl4~zny)U?+m(DTlAis zDu+p9V_bqp_IXukwl3!Cs5$3F%7+d+bhO(}Lbm0$*K}&om7bpq?5jgik56PAtHnkx zMX#T{>DU`rXy~KwAB3=2xp4}V8uk5=%`8~&Z_bu)Q%QH5Zq++xRdLr_k~8=>Hm`+g z=RWj6lL^dDPADG*NCA}K60mwZH%B%UhP92@`+fZ@MeaT;{`%Fzz%NG=9MbBr^T{oV zo*x_Ovy`-XkkHkwwMrY~ds0fzdvJNf4(JM3QHjZi+KCNrp#>F;xwGLC4WE256+`wt z!&-u2w6f|XmJu`eR(xXUsoX!nfzc|9WED#L#s(P?}%n&-b_Z z|3dcm9~o1jS4xCsVvA(0|tu&LE)=9ro0&EXehh=sw`Id(JYCTRa#<9X=}4 zqXA(C`d51KOWijJ%6}hin9#wy||Um zv+*h8|HX%{|B4T+Jbwv3YAWX-5c-$rCR7{ za*b(0)eXDCp*R-XHm`d}X-eX2ZcxU9m5hBy(O))sQaCC@u>q$DX1{hE>a{E4No_+} zPoPA~q{R2e7{GZasM)a!ZFIPef;U=Sa zy~e%3Qc%~?@q?6IeeLl~(||opw550 zT3BTm1dT251HYvvGEMl;EwJ&rNi2|vffuH}C&VIZPUqHHvDGq|vS_hHk5={fo}b@? z=lJi6CGe!UBmS87fl@t1Nx+@%n=kK1?kinUZM$@t4)CV{ zzH7JMyNz16BGS|*c}k@*y&LVW0q!+X0Kyg)57J@w;k}^AHj6Y>Y98bF}jO_ zNL3u2)wYNjf$mqF%EoWGt9{+@ptp+GGmx6nA?vOK5uMGRKL111S4TDBhHZ~VNtIGS zP!Lp7xIyR6RT?57#+rItY?>*-|XL0t& z{@8i;JkNb!_Z4Necg{lV)PJ_hxra&J5WX?$xt_aZ=Vx-bB=7miDmU6$SHi&*F+VVW z5pGUw9Zua2>|Gp=B%Om;-^`Mrjz(s@dsrk)VO>lN>(@VY+0){4R$!7lQG0T9UWZ1k zx4`%Gh9{|Ddw0zjJ4ojuHN+vuDN~BFxI6Rp@-whb%pH)GRG&R8a zxC5Lx_esn@#ze`xUoD46S9NWVuEV#8Pbf#LFfJyB#``?d$=vtG>;ODfcm7PS6#DGI zhiU4gZ*ByDxsQC$<)kl81BuG(_?PQ$ILI6Os-nYxS)l&7^=WNWT za=(PbR9Xdx`@ptSBQ+OqepGw0xp#irF|%~wuA(N69nggpd#1j@wK?n6MWPXrqppJs z(gQv1gJ+=PRbrUJRjAh>IRf`tXD8XNv*m}D2&dIrt+l-P>g`t@djdlk6z0o<$ssEkHiSdq>I?vjmF!R+kq8CkLjaHQ8-im!>zhtpa)Y zFOPsHYtB{=896#JtJtICzz0C^6=-|Mdz6ckB8vba#7cWMGF)N zVsh-eH$Odnjg4|z`Geo>!MNZQ^Bz3n3vu3j&{8TBHukk;BD?YBd?wydD!9%6^r%l6 z*@5mHp~L9VW2Azx6H_}|nuq@4O%NEeRhwNQXGg#9h9?SKPhbb?&DFo$sDwB32V)CN zdQ?n_pL#qI1;z{B75Vae#-*tqTft>II}W=lCT)WsZ(Of5NRTvpa>Nm!Ldp2LJ~{94 zM3$becgEdrfVHUCtK^LzIz?N@8X=4{UrxIj&i_~$cpxk|`oe_c&DtM)d?+K6gB3Km z+Ao25yYBGf{dKly-cybgUe9i0PUD5-D6tC~Ia|w?qFx%bk{_ZWPGOPVAAu!#=ybdD zbP5lp~}k(HJom4zI^z_P*SVu;_ti5M3^r)OZkiI+sV&8L%(TQUXdsNLypjulgZsB zVew?wJnpyy`cIG3Mvrx3Z%y>x&KR|^mQ}%OUp=*`5A&ooVZMvWyu=pQb6+hnfj4EI zs!ycB=JK#}5+_Ey%PA=XI@fH)>3`EAt=S=uwoLM`Sbw79@%(L+eiH=QGSy@Sm4-5Fx$Z8vM!u_jJ-nu7n<*xw14bhMfZUJz9XR5cq@E9B$zlE#I zGS3@dE&eVxhD5FvVe);Xmd!(}vdr@I?m%v+s5Ubt(<>@6*t%fG13$1LE6E?}+AjSu ztGel45lrR}2A*sqxv&yq%#(a-j8QQyD6M4z@8c0MKBTc&&2UqkJcr$s_EK)7L?vIR z|L!xA!ko%_-$0KTGjLF1=3mC>uywz7!E5vDic!zcp5MF1#BCUzm~!ipP$o^s{~G1o{v@<{W*QQSb%@_L@~kBg)S-B?&e3 z6A^<(xoQV#VYgzg5!!UHI5y+dlQHbLBBu(KHMRry^0>Z0?Mlv8u5gz9jbm^KNI20K zMHj=Pv@~avH0f8zWcLcxywjGZGNnJqEAgik6{ys5IhOYQyM2n9g{-oQp}8A099!Tv zlH{|gu~;9u+YD=2aEJynJn`87Jik7q&jtxlYr^|5WJMb*CWM4waZ!;^vQh*2(mEw) z0kju8yP}kJZ*>=R8UTg;U6=o6O3FrRo`urrX`nyc<9|zhnE9!TzAIRb9+2G|t~T=s zGe|zwIcwbE>OTB0=qjPyKu1g6hr8yo_K1;jj+7c;Sv2FRnE#-|>_{ z`9H9?l$Fs79o5Ol@k5LVbIHO1+f3z;TUZ)E*LzAtd=Uwt&+-Q6qj;+v@2q=f;Mre4j>af)|1~;Ypv~M>L9bo%#6cJ5u)Tqq zBZDE;^U62;P{Ya2Us^puQPC*kR`{4;o<#8_BpBMbMesyu>w&xCBONOc&2Wv}D1T5^ zsiYBq`4-#I$O2n}i7v*Z>)9RF^sjfVjVwz)s;M$%gJfhslvU2s(yoe#gCcf`dodeq zJ+qBr-8mlK_CzGG>b@qxZMvTX0fR&QG-8UDRUCyXvwPc;R~~$cw%Mc(-AjB={rDRX z?b%^xOjlQIatx1n%2!Q*j8K77TI!^la%a$iL`sHY!7Zw@7wwOJzJJbfhb&2p z&K`NqrV@P%;`LPsMVYCkVkkoCLMQuL*}wsP90>qeC+7X|7?|&uyL>7u>r?ihlgVt* z4Cdbvczt-KJ>(WkzHLnDyW5?FoK^wtqlq3)EOH&VJY6o>A3OkY>1^1>N7A zH)lGhGpDA(r{c#hW*T_;kpio} z`(*y2iz)ypIy34qT_HxCMq65)zJkHLHoKpnN>f-b&nJ7=DfQj;QFaXKiB)b$DT@FE60a=}8)#`g+_Q*K&FR*)I~m-+hEa`QChBib20l z`%AuhP}w7re_m5Vyh}LzQ+3(9`00Nrl?|zK*M8Butu{4QO94>mf{uhV$i?v$HC7De zk_$JtgRy$I8qUjmce|p)RW!d9<)gf)A69ZNtZ zVeZs%wMCV!Mqz+74UFIFA?2Y1@8ByC=@TJy5M5w3 z;+3+9jETIFd=PV>>Z`p~!^8;KBwtOywSAb{=WFXBA;R_;DvU+rh`x!trISDQrxZS^ ztOs`ri$i7>uU_OR8P6SuG|ohtN3FbbWN6Gm+Dg_)AK}A<19z5SIUPg0DtTDgg5v+8 z4r~91I&hNDccb5P(Y&RkQZnJ8+uX?LsfmTBm)~;uEZ&@Sbk z_eVSB(qG#TV+?wGslSi7iwvnOGmKF_ z`G=?_G`yiVh`BwJD|#)bPvP;^r%H>mTV{yO;2<)Vbf(z+5`~{m^saC%V}4Bsa1w#n z@M&eG>P_Jip4A{|HvM8WO#mJEHr{sI@As5={Oz0qD|d`%k?(T(Du&st>ufMzb~6V?nr2*A;qlNw>{y zD(urTBHwG-tx^gFwkl^|H;qtd1i7vG5SF=hj%NpX;mjFId9YP8_`gd_t^HJ&34NTC;{#1J(!E>b!)>bBO$;bUQ|V+ zZu!*@$^ZcDB%r>*0bxaVgCatWuFf{{|T0FspUU6zSFU$;GGRU@bOF9YVaUdVLJ z8KYi_;I}5ek1Fr-WP5KGI6_NqhTqK&Pyrh|mJhE`TB31Vnu|H59%##zd!nqH5nK>}n*6B|-uU*cb% zjIc<85}ySQc0X37xxXJbXzp{(kUM_33gS}|O^_!$YWT)fetc+khK$H`%TQI(I9-0b zUp60;-8~k~NZ0Z*K>NWK`=8JA04g{U8D$rWm9>{X@#GA;M-^M{@|%U0><`(T+BGoB zpnLdY{FlQ--UA9zfGNYBpf1V{&a3wKYb*Tj{A7z2ySc=YK=A}=N4TIglPtW&-fD8R zaUu%nUMVG#>FYnvE1#wsu30_%H(wisI+vL z4kQlUsHpTUl;cKfI0`l~$P7p*C1=o#q)qtLh*2QN>rooCmD=HTyM_-l^lx4S3@W&B z;PXCve9fl{mBt@tSRC^G?2fw=F)=1uR@n=_@pH`=9yr7@9XY^LWpCu8#l_d?3u+A$u$lNEf_Y@zVL7pD;kwm;N(pRj? zS+28SXVfR9)bShjV=!P7wr^o#%EmI4uchd;sxgb<-F-H)^Qq0$%_#;8 zGcT2h3JEIb9Ub{%k>a(gK2)T(&fFaLgAVvbwsRB~)-(yOND>6FJv7XY`&L)`+sz!| ztY-S>{svWpFWrOXQ9EUoZ}lZU#234#8;D?atQ{WWJiH1#<7rPT7&va~``&p;Rtob< z5ZJji5wk-i5^%ho3kNbqUTNcS({ zQFEPhbw6A#Dlc0;VP^!@@JRV(C|$L5$*lbP>lR!~hI9g%|6wFP%m`y|eNGQd7_z4> z%y3dV->}6Y@hGNyt?qvpgQ)qHQ&dOgZjZK(j4qVr^pyZ_nr-RrBJio4$Wq`lsCwu; zPwwrN(;4xzF@aQJ>^|`b$;YwbxfNrPj6y$7)^^90sw?l^%5Z4X1c=@SeJw0c=f@=X z?@&&yL(SHDy{L7qw+ zcnl;-cfBBPm|;Jkj$&!o?86RFg}?a$Y{Y5}7zeG`B3H;uQBMs|j&x)+kt z)ODCq|LNmXPrlWZZr7iLJHIk9BX;n>HWqcb_eIxvfT7zwxL5@?f8D)myV(44L4GZn z((c0GPTKPXZC9gPS@+VASJRo?_S>C_3%K{Uo5U#74#vuf=!2Cy$cOMR4uQ=jZ%1C` zFf~W#oeNJgMc&Xfi$AbchdxTUukIzt8XCpw6mAQ!q-6MT>=n*;k2zpM=z7il0;M-U zv@w*Q*jcCpdZ{L#|0B5qst4|30RpA-hck8E_mHO+qV3ZBO8Ukq5o=8R|Vdj9QB|1+l= z9qnV+6cT`yI&~~5Ei)@X^o#L5(Pk+X0S5gZaGfIyW?|a}HOO@%&g;CVoC6c`z}ugA z@Nn0cIJ|D(`$e8&@_A-pNF8urNQ&&+_roDk%C#&)3xfb!0dN1A`4Jp0SV_gym88D* zBf^W2E0U&`e_6Fx3>3#y9r-EYSIkebt5wtIA)%3%S9Y$=Ks(NT6)vQwA4s4xS zsI;&;B4KY80$LBep`nJuA-j?IlX49rS+uP5e32_g1G>DK#Q2oqfHI4lj_c4!63@Jz z8%pwR=nPNaDM9o7UagT>c?9UfHB_AOiP#d#4my3GH5$d48GDiEH47nR1itOyUMu)* z=(}{^oW=)HW?^}JJbY8o0f}cd8D|9pNs#lV69$tZyA`N>-7a3^Y2exbF*5(yXP#9u z7*{F$Wz*}UTR6zx!W!E8aeB8pJLT&osXcKcEW$P?^52a=?KzeaHW6Qj_+V?E7<{X6 z`k?{9oRz4ogo{>rgv znuhVq@Fi{qQf8Vgj?r?7&(<~o_9+AExLQrT%m8d0xz`o>)LlQ*A3UJVy&xGcWm@xa z4EybKH`}*dp({iiO-$AVUJM}6doA!UkKNp69~=mcCF1&S9{Z@lD`XZJMLz_uWk6G8$+Va@w7EjG3HTMffDv+K7@Z5@(>5a zth?J!|M&Rpev|yY=OdI<=Ts>)-Yaqm4f=ebLB@|(*AQU(XO5V(R3b#|7MqIT|Qe>Jc51UnT4)bIDT7s>Q2kLp?YT@Fee!tp+aZS9_w zg?OUY_!M2wuspVx0^Uv%r+8#mZMZ@!Rx~8OV;WuiSw{o;$Bk`RRCIx|83(1Jr=?Y+Q5lXIU^se`s`$qBSD7e5bTczb**O zOi95%&Oo`5pR8aQd7H6yS$gB1L6F2vIsj_n2}3nMdXpuigYqR zB8U8%NmA2a)1(-o^bC5cm71u}@Qt7K+hkt(kgBJ&%k0id^@m}P>wvB==Zcq`Je}1# zmiPSr<1?O-IvP%}>n*D6tSr>8-dt$QAgd>Ww~0IJZo0)1RlaoGgbUd`Sp38+7jM|J z<9(GUHb%Wo6%j+Z6E_=6T#buRvWV!*!@&s9Sx$5;IFAVr;z9FAa8!F{r#c0k4ce`U zw13y8WmSRu-6Z-u0^>7Gex)-)kULT{%LSg{_I0D$7LC58S@ZuCJ{G$c4B!3k{;EBA z>@3|=v1{J|u)jEexw)=^_^GJ6v*%D>jrO}M1hu9c75I>{{bP(X{RU!+#0O|4IUimV?b^9kC)%p7b&nr3z^>|7CtNd4=F-)_twNqb^ebj^ZW zobn^!7~!Jh1OU8veDP^9=1@cNYDJ!mXV1=PWFr@VT9O}mT~746J0*bld~J{#seV#| z`jERkD4;j_NsD%Z42y<$m8*Q`?d`mT3JFNd;!j+kwb+k(JA2RnC5Nl|3O6T)VxlEq zEuD98`Z#)KfaS6C#~^NS$oV5YBk6dlH63+6V6?O+j=}Y%O7?xU7gwuoD2BG}?uUwh zyqotVJbGV#2@ZwYzm!Vc&wo=@b~+Hg8TVx`ZM?Wtg7EX$$O#>76C*N|k`gK8*;o(E z+6-+yLB-b;9v~JDG4ffM_uJyzN}HeLRdX*c3A^(vs#vgfL;3fXU=ax<-re8f>}bC|hXpN&r?-~0{o&8vHON^1*l+x>)L-3c%V;#; z{Yi95H%grk^E?xh0{U0(0v!tU3wZM9@dLni5ZoAoaK;gVaRqJx=Dtm<#_M^y^!-yC zM7vH%GXYl$<@8zN@T{ivkaI)!5j#bV0UDZuH={Cb?yXEyP+VwUYq!gx7yEP@upk1E z%DK1&kmS;^V{_8aTa;7h8U7oOfKV$zX+&gb0S+HVo(qUZbyvlc7e!D)`Kfw~80}(Rw*5zW1PT16 zLM`y2yr5#Zl!e-t)iZMw?UQpKo*2UsGHLRI;k305Ux_r>BC- ze+1^WjYN8viq}hF34dD+@)QE^Pvq$6<_{~ILawy{6!5A&TvT79JLdeXv4NeZ2fx{F z2YUuN9duZXqPB+#)^cZlZxw^;!ffDR6Ah-DH;0y(a!zPa;Z6Lju24wTb5M~aLUMH6 z6LWBhEvZyocpgmD0-M~8QJh4))Q}o4liEjfk}nmo=D%kz&9#&@YBP4XDQa+zbp#}K zukQV>nd9)bUyC&=IRGN9+62GXfkB|$7Kod zH3tjqAZf`2E7fnZKc-2MI(vC|>Q~H>ELptGO9gNm`!sUF*vchO7;0hrwqOmf^V zuf9px{!xOLYe@XD-ZRDtUw?_M1RO7Recjw45J9R})VHX-*P=TSRJ$X5`5C)K9wf=` zm&{6RM}Hg^7JbkLXc_3jdDeG+syQ(TxeR zmCvEmOs9{`R+9X27tfkq2mY+KgbfOJs)5P+w+UzN!oV42WM+-?D3x-_F(+ezxs-BV z&!7E{WkHC=k;}QcB>vD@W?9Y%;>2$)l-E&;JyHcS&}yJc)l)ZpFF+eq@Hj`xus2K^ zR;s}n9XP~TIc4CB9IOS!{K0nEETHht!*1D{H_qhT>6L-5umPGWcDX;ulD=q6j6BWU zp!ui`BfqU)3~SB1T7cID`teIU7X7^Uo~J%aZ_?z)lu0~ zFKAM?#jMzn?Bx+E;zc4U0pUM~TYs^>T~*RC#rWkQ{cuX5;Dg6<$wv)4HABBOBkvas zmx5UkpR+Jvaci1Zao6R4&n^C%Fa#Vn56?xM4Q?|V-nc?!Hgsm**nhYu=}DKsiE@Cg zvo6`fwzhw_6`6|Hd{GP3+Ph8{J!l8pR8H#1H1)v3zf|j!uI2z{Lz<3Ekm}CEY1Cbo7t&mu1kjcrC^$%-6P&CqRfvcD=vYPcPf3wVidDiq`A(zUFSd)$;d4zx zr|W^A!VoMGwz;XRzn-q~hn`ozI9AOQOa{cj?5(hY73cUXM($^bmrs6D?COeDhEc4> zIJyY;p)9KFyjebC%1b{JD4iNqF zoe*VPZ27IHH&~K&-&=hM@0uhxMJZpGtjV>TgVSy&S5)MVFMINzs$z~QIRo35WUzr% zUaslgsqsLSaZvlJHV>f4CHBkkt&UAoWU^YM@->}S70m$jjF&jHx` z15}Xx!It552^H*mZ;wm#-_l%*sD0>)8V9 z`(e$SX3#{mdzLExmG114+V~AKAaTCp*2jINcv^>F0id0#qF}c6{c&SsY@bxSEo4Q} zg9KOqJ`vW}k+>bgbh2L%P|c1vpAOnsF8~0@fg{Remuwybn4BRzgvGnUNyRgZ$=cMz z&u_)=nW+?X4K)?}^eiqcu4n1^WUVFy{jed#g3IuV&NDcjTD}UE#xEwp(@fq#ITgN? zTnysf+`$MZpiG#;NI+#xT2gSEa(U>jcO6R-^?1jNO;K}A`Vodn23-JKPE6B={gaN+ zv_VdQMus{az?FUR7oc!Jqxk!C!XXddM@~c<(`A3)@LKJ zMUDiXCo%hl-)LIn`22rt6>@jluO@X}IrE!LP5D^ytnt}{d2%;X@qP~yD9r;pS6axA z%4^HbolCSCCMD)zMO8$F#Tq+@ydqDo%{TkIPbtDw9uC8^Y7h}Hs5>-?9-TQ{WeseB#f+)N015~-?C@qW`PqKnBV2bUP+(wIT@6K8FhsgL1jzdvoLCAW?Q<Q*_{?VtaIvCgsZ9{yGn8WYRxOI8vo(8U!TSh@2*j`2<`qGE>tVRs-%I7J_0WVm;Hi@6m)hTlY*bJetTi&WJ5%<4Epb{iarsA9XLk zx|}+O8m_9WLd69p&b_OAdz~7c@rMH7OvTmd#1%|s2_k6HzS~`KOlUr(+oPmUFTQ&9 z7teFgK=zm)f$^O{Lb9f=6zy~JM5W-lr6$D+)hMOxA7?X)+v6<0s*}Aq4fu|~)qbak zQO9?gy2a79r$zIG!=Y&|CZFuE?+M??)tN3`F|zESzCQ0ZZ_BwYGwN39-lm@Pd;~eC zq{S&uUIHxcwtLp8gjVsr8@Gvkxjw}8%C5b1U1;xRZl`cnjL~Sj!g26fxpL}kupA*y zD=_<*E#20LwwBL5yx4H1l^9>F($2%&CqJ}B2!whBt@B=*uE7lj0lR``@`}bJM)l2t zrFSdQ-Q^F)`%hndCf%LPnqcL-frY*gT==Cd4ZA>BsrIaSnV1G=LeNEo$HD70uc<~A zkD4iyH(g)~Z9~b#D4rM(x8D3#YFRgP773`_uEZ;1@Nsbu9uT;pI*%~g8+iuayOMnh ziuoOEI@2i}5pKZk=9R`M19YGwOaRg#9Sqdo28e;ENzp3}c^CSOu(6W^4?xV~>OLhq zMYNMY!yT&Um!YvtUD1>py~H1#gawN~*G=?`XUjE3i!}jurnZ2GWgABf*S?W%ts&&E zFutG&QKWECu#BM#)u`pK*7xVh;HM0aefcK0CCW?t;|-_^5mfe2z1C_rpbbl$T+Sx zi7XIU&y<|)*tRK+?`;}QS*q(|Zc4p5^pA|?sk_F45N#pUGykwBDDK^#wP=+aBZyW( zQut)Wi?}5iJblmi>8&-XOe#JT@u7&rUFiwWxb^^bz3qS>YD3ksr-5+ER_QkAl?lhHL=XB_i$$zdxz@ z1^RnBiWJ9MUP{F^nBMVZ8t1$?V`nG1xv%g4;wocfYo z#^cnjLxdOyZb)kljKA;oIU@w*h`cPwLgwhv&6cV^Wm3Q86gn?$p>;M=0{emH*r8*j zk4p&bX;WC~OOUsV`rX;@7b2iEkGCI4V{+oXbIZ_c|*$mNCXtOYu!I z4YYPdg4v_qIwnc%gKhSK=8AuxhEtF{EucWbGJ$@b&WLxix98s88#}9Be$OFm?KQS*y({(2lSV>XF5oXc_%z&iw=3p+p0iQ5YM=tyk*#?!^4 zyt+Enr7_G0GRcV%9<*`l=2WzVpO*;FB)RB>!;p)GKm1LrSlP(XL|nkh?H z!`!uXxK>L<)8IEw!|WRK>aTohD0TSR)`h*gs(x>34h(edRiG-?+HU@QCyh@cb7c@D zyo_DOw);3n!RzzYu|rA_g}j>gInG&Xjmq^xnGv2^e-P$TDC8JSOA%1QwUr{v*aEF?U_?7}SB9!NrDXF!T@1}dN5WB_@sIxX~i5v@}hXVOV}_!WmpXnGSpVE(`r_gXBw|#-f3
    sExGYN=ynlznswE^Vi1rzCvtI4Z(_L;F`F=%8}N`k)2l z`{zUbAytYt&1Wd?NMUuKpSSboE_1BQ1-_tE^RVIUaw_fGK$Zq0FihnzCrLkCop6{R zhR!GJ6eB6xhtW%*zgjYv0^q-yXmsY%t?;NwDCSaWCK`=N+*JiOUd=7Y%EuL9HI)9z zWbfMZSq6h3`G3CO@!1Dkv-nIVmO`Sg^_8aB)@l|mui5i5LGx76$yG3aHS9>;FyZ9K ztLxenql<1Vzw_5k4mNhZH%j@JX-Jf3SW(u*>6?QUxsh=-T)a=hJ)`Df{--vypg06m z)L=}vD2W%eyK6!5s-<7U)Z-wLiMI2>U}f14>I+W_Fst>QR&o)+c%NE>K^q2e>Y_T- z@1hjUg8@1(9*uO{QPAU}k{wk9COM`yX7xJc|Kr*fcv)&vU(#u@G`92!(A_PR$S#sM zV#1gyV920Q7mZhj;{2Z`KW@$V(*L9)ZcCQ%X1Tzo1?X^c5MTBTh5jWmSFz><&L!XE z!;ts9xHE)?{Z6o&n)htg?CUVcvv|Y17@=^Jrjjp?5p`(mk&yx-Za>vtli`MS`$0&D zPKeM0Vj1O!)Pbc1$x(46U!Gl)>N_#hs(*mBJYiEL-|VUXK0+9VEhzAY5VWc)Frx+A znR+|~J`XKFd+uBxs`#Eot0DMvQMwt=m{IC;AR1!j=Mc5 zQ;liY+2dkM$%2L{sJXNBi_6KR@0ADj`ua5pMj7E;4oJOU?sL2(QneTa-+$oFu`R$X zY4O*BHbjpRU^`maUh>ky^Y>?yJL49gKO1QZjnCQenm$U)bIbO5{%@pShsU!ygPRc$ zdw!r!3YjK&6}~v#bsot&Yogt{x5e`7ne#i}7j!=z-T`779#m5Ry1JZJ(>dzYR>xj* z7k5k16GH_4{Sy2H7Ha}T_OHcFCzDs^_DexCid3j>{bS?BTj@Oa@9^IbFH2a^@-NU@ zvvCB=0uU&L~21{T$+xOh?x!Ru~)AKaZ*leDq7fUunIH7?kM1y~a!aEmiP zV8Jt~3ri$tSi|@chECjpsK~$5a z?FpP#jZ3LNOXR~iaK>f^6uoAd2{CSjd~51jvc8n)CFn%CQe@_)H96knVoo7O9a|O8 zL);Xqx(bMi5-L9B^(&Kgv$Q2Qsr2!fv9^|@WA%PBn?Mt))nLlYsl>NWeyl=Lk8&I) zhI+mKRbd4%SVU;Own(#je9=AyfXxmXK{2i-z?_RNtF<-Jt;Esvj0K$u(J{1=q94>Gr$@ zi3CEWs~?f!bi=piD@(+mY@1T}QfFvAb*~8(Qn=oFj8QpWJ1l#|s?gp-h2~RfHoeCo zj$$^_mL__jHad!!Wb$pcmbNL~K=V*}wXu!C2Z!h7xA)Y!Z2o z0U}VrRW-qGHXZs?AINemKw3E+03A(JmYWMon0?2bALIwIOz2k)5JL*72E9i! z7V9sZq5@Ha_|AMmWpY^hoh{!xI99h1-q`urbV6)q! zK7^V)iTb#EVKbtV^UC9Ftlbo|H-yJ{>Wvzr`_EK6pDelgH^td?NRO!*p(l4dnLEni zVauTb}q3WCdYj8u+7YDI# z9`Ro6nLmjy-+#%DmmV;)FYQ<7Wc1wDg`c(cW(cDWZ-)B?hBYJ51 zGg+Sia4#5XZ{g!HzSHiJvY=^LBJZGl9wDuMHj2aG~)?P zIKEo}%flM-GLL{!JPds5j$^f?*dEMZOk^0Lar)c6L76Dq+|a1Yhb=jABdu4P;1io# z)4N-5fA8;7j~+;4WCBs`bZz!zmNbMnlIdQw>xxsorb8K?`;cyTKpwV{(54|d8Q$a+ zpy6VmAB+qP*}wSZoHAxnUvAXqc&h{PN^M@*XWq#Oxpo}zaZ`2VjUR2#D5&uIt&m4< z&jPZ0>;aF5=Gw_(H91bFZec0|z)D6iyRJfC$=!GKKf8KMXkvKusRiEn3%pT>-pjE0 zsviI4!2kp2A2w1y=URb@UP)b)3f_-{$jNtsj z`p@9MT@K$o)BdLNN&ECj_Su0D8TM_YhYFGZK*j|(%Hns~)8S|1OgUX@Bizc;su9Dl ziWs$FD1E?E+A? zFiH+Rer~@FxB>{_riiIw5PkDo5XSuYct)FpqsN-A`Tn~D4vIH~cp5{1lY$T&y6&2Z zTd2DU(2KlB))P=SXiN?imB*DANncOUFnsVgTdC~*?ZLpl1l6+)C^54cosPFYUP*94 zx4Sl=;+b~nrKhIJd(Dm0P)5KI%?bnyV5)MeA=u8#WuoG(>cog^v`K95#B^PNE1VtMw z?Z$mhl47I|I|L_<-|9UW*>!;?c)(8Fhu0ESKF81J*pR$qAn-c(y4pWH3h>exB&luw ze^Caz|3ewbEj!>>uW=$KwO!5xNB z%t^kpM}=;Ld`@gm9@10pAfi2(GFu4<5;ni%RQOGs^D_+vKr&SYkpBHGJ+0ndiHPo{ zCl|Ia-e3NbS1~yhAKOXJA>HHFST?0v=cafRewN~DYe$lpc2yA@Z`8_k&l!Lenr?>do1#ulAdE&Y z#@>4b)zX%tRV7x?)-Foz5u<9y9x)OWF%z{Sf;{>D&htA@a!zvc-+gl5*XO#f*Y$qC zKgr7j_cwBm)$u7Qmc^IWxxTGKU~SP+H_`7co8Cj@MmSbctV?w^_WxQMiK)y&bvq6z zB_+gN3M@+dL#+s+&6PD+7CN~fUea=_4oFhomR*{hZtvk6alxok?$4&ZJD|;GYbIV$ zIA12U@9ff!zBC35)ZF2a?fu-uy*;8C>{_mAV_$$)`G9Pn&vtF{WnQEU43AB8ze<0K zmg6ovXq?$n9HXIcrlz3`bCZ93NfG}bwm_&SM~I!i2wpR3*~wW8e0rX+=slAuzklMa=qn4ImTgRzk&(Fe9?Li(Onf9=p~ zfT#_V%U>+S7>j7)_iER#&c&m-N$Kb^Q@WEJLKP^Ys0rNA5+i~~Wwd@o4C{TwsV6o{ ziR7tSQ=MbE*LJPU-xVSjy_oV*thR_h?{5&cV5|}8tmi?jfoHjS0|~7;TV?Jo0fU&1 z32B!sg!Lq#l8()9vb7wrSqz#U+KSkOQb`BqJd6P|Dfb+kcAi}Q+u@2nx^c6ETbizH zoB2qS-|tau;xGUp?AM~F0Jyr3e3JI1=&p>~euS;qZEA5qHzyKPpKMM!y?%qt8c<NvN2114UaD|Ate6D-cRXZYB=yT& zdHBKj;+JL)j8$DaL-aIsGUsZ0xRYi#tI?f<%pPBXvmS*0!Z9Q1ci5MgQ8rb&Ew14b z(S2W{fu=g2f7eRYot-NmkzjR)ynTFBRH>sHB9|L{=bHu*!NFgaqD%F&jpF7;qegYp zbHCxvFDqtCgPy#>?SRh?RboDERX(d+&8u`cHD)45&dGS8b%I2!eBA?1aHG-DFIee* zJ2=^|UpB#c(BM(C8Pj9D8nAA+Z4kD^8+s9$UI`*ahq-1y{t;eGjtOAV@SjE$N!yDJ zl$9L(*dEPv>!wUpH)B!z;Zd-d0|LC;K!i|9YvD0Ld$7XVs_mi@cS8|zSKK8c>sjwo zPUTI>6wXGj$dMq!rW0wyz=%(Ay4WtcW8)=MFe8wf=6LJQK2@w>3!@g`)kkWf&1sD* zJW|K^mQ#}}IjCMifPX$5wTiEY2f z&eg%Pu>e5h7`wE9W>kIxKFH?V!Qd8i=V!n=m!^z%tV}^VWZ<_pY%&~-(NC4}EXSb7 zO#WtpOqYG^YfmaStnKzK{2<|Ar%+XlZVP|$(bRG~2Kxt-8fm4CXj1}YfKMBHPxtlV zdznkpJ*R2$9V9`5Qzk$oLGm9(+=B!jz@uHZm$NTE0~mKSX~ska9+UT!cU7Q;oh&_4 zZUEU&i6aA{UXRj%&;`2xfSfbkDvfsH%k)LyFBhs+8m)SA$2~f7VVi5HdPivZTIlNI z7W9eydo!LIYjAxkO0HI+!jkxcJ_cVLmGeDi`TpCZmUo()gM4N!Fwkg~1f z$Qq~zpx>z5Z;qIgg~lw6E;(5Sz4FZ0-SN9D+g408YObvq9$rTgT!Iu}`URo?I@<3E zNixp0%+*qW2=^RBbz(mzjZhXBl*^i!|MYB(-}nnr*H)3;YFTg>uFL6hzBC^Gs2;n5 zQQ~3frRUT9YNoU-+F|ysmzjQyK_sxbp^BXx7yg zy3Zq_Yyfq|U%gD@wl&)1oG#w-pjX?VyULy(uLQQyun6x+V1DJe?-R7AS7aaOxZCVY zgOREK^54KC;G((K@Bm4(98C*IHhv{kSBrNZhcL~zy4)clBlGM?;Ufojpn{}xQrM+e zi15~jUV>IkqYe&o81>g6?D{h;pP1;K>&$hqsPtjyD-%j*RqR{D$Qx-u{4Bj`GAoQL zxL6@={C>XP!B^S|W@Y zS&KJc)%kD(T#?&-0FQ%*6mO*vp>mdb)}pW6S)WnyuCH`O98@`+2cUW{jXE7fL2YKW z{`uHpiqpbk#pV$t%|`JlaR>1wUT|RW{{8aQg-ZlMz(0+{lcR8V$Q?+*>nGCj$gB#Vkz;u%$nVrIUQn-WgBw%ToPRG-+YD$L}y@(|sL|AdcaW&X)}?fMSOct-xg878Jo zF3sXu{(e9W@7M0hl|PSEzRZVFP3B%uX@yXlS$`UU&SuiPeYuOtamm_hf2UKM9{3Z? zxTMeVj{&BdiMyoESh}#2UwGX{1@rxwt~Q{)q!Qx_EPC8&kWW|wXZ6I0U$1RKIJg!& zO5tFr$e7W5WMcALRma!HEH?a#swGmiv}*<;o4c$5w6|Jyqa(80JkxJPDzniOPF--K z5b-Z@YEB)iGFpR7)4cgPMi!>^qK8qgv%GOvatBc8%GT07=EFOi{h{eo&Y>ZpqMfQt zYFo~2`O(EEOrd*&gGeRbe74q9=mcEg>kD1u|(Dkg(GbFy((E77XzwFdc}8)2`?hoo7mN8c7z!8)ab7+QwstBuaCyB zj~P*5DZ#IV0?3h`B0PDRY}pa|)~Ajn&v$n6m+ z;-r~~)0f?<0iUeaut;BJW;rHSr67YF;SD3F;!IiB+}UKE3#&i-RRAc~d}5MJ{B5ae zdBQpajOitX**fJKhT~<}*__5CuL4+|m9y-u8uB1FlA^k0DIMyjqx>Nv4m_P!8;$J52uvaeSj2a#1z2cBL|;6gjXiZmSwhZn zcC6HV%NNo(Mt@W1E<+Y|P;fqWV3n7nq<=0{YnP=wf;Chnemy#%tO634dnW%;$kMX6 zk8J086)Aw43vDuB1~7=?`smB^>9P&MRInA546}@}gUNH(4xay|2e1E+9+35!fW`Mt zgY4hP^x!?YrA9tkqW~ongd9>eDIGL?s_}5jG(bUHflHVXY3d5YVpq6=_Vn_t-^*-P zAk=63tgUAvXTfNtdZUT0d5n^V!kY7jRIS5|Dl_1FZlUMl)Z5qdY7Eihbg?|(5Ma6} z+M;ihCVZ0sSXP#f{!Y%mrRt1W60C+hH&N3Fqj>q>>Wt73r~q4^UIN}u$9}xpqIqT? zC!0*VS>eL%72lr{u6C+USEE5>-OPIOUGl%8DD;>97ftaM`Ic#BE$N3im9LGa4P%&b zEt6&@K`P?NMUC)QNim7Iz24^zkYLGSuqXVXn9>#&;zs&QcXJ6@nHd{fTNm|xay z=*lg6&6&!NhTC?60kgQPk!)=nL+b1$tC$Dqh^H?dZ>tXXkOP{qP{WCm3}!#h+4qXM zp$R?(8APF@O0b9#!gz+MyfQl`7}shCC^igGU{3pM1u`uui461iH3?RXYS#v_K_jxT z^QIl)>EBBz%xJ`n(>Lg7t!FuSj_pEErFz|Cm9)Szvf$1El^V|gb*eQRzXi*g)ICer zM4vfj*{7C!8`1!&PQ`a8(xEcTGMze)TjZW0SEy<}b}e(rj4PVOG4>TMnl8gjCudg2GxKusM zu5WFa2-_x{dA1&QrSklu_7Lk{jAUEyZk*sYsAUSiV7-fLWGh>UB@A5HE@eR%&-D4Az8y;K zO=Z~%IneOX^{NAvW71eO3p2S5Xi1l9aDX7XYJ2j~{Vey8T~_u@ox+g|y|@VaRp05r`^ zr;x#L#Pemj0`I>`c*a zot&}1nj9e}-v+L|IuO>0GZPww=%&AjcN5~ePx0_(r)2y^@54=~)QTP7Yf66LFS1aM zrp%?30m1V!f^wVg$5F$Sb86Hh3l-#x6Zq)D{A1k3_x9=mg>!|gPB?s$A$%;&rR zt_)~5xH^<55Pz+`yb89ofh7kU#{|gH1d&dQ)bb)eaY+@}z`uYo?*R65q9Uk)^-qzC z+^@dnWD1;bXO?t|IGiEWGhP*Yk+?PX!7S-iQnQE)YmmmXAuLbh>kx2OP2OG~t5{Ems95ATs{;Won@A?t| zb7-mMgPny;6*IzDUD54Md=r!F*_WxC{8m0L zOWbLWZtmId?mWBFEGYbTit2Qyv)>S+0pQucK~=eI;Y<=s{3=Xy;*B@CDdNTe0h(DR zmS+AjD@r;msrmmvxtP}5}rrIlwRhO&dub(pE+U!kU(uN6=V3peh(h)`n#EX-Ae7q zS>BE5cyjmEU_$YZb>x)!k#t^AZ~!o!{>39<6+qsZB8JtLg1+G+#mbXd`_g%fGJrw2 z=A|$%g}HfRHB@;3JCqY1bnii;Db**T`iFxMolJ6<90i zd97r$MUdgT+1_Vc_K~Tva5!rQKZje(+OwZ8`27^;8W&SN7Tii_^nZ{csBs>vVRT<} zMChLM(c{pWI#DnV5^^LP0|{=1go1ssdioO8vI~P-3QwiZ!#b9HMBCTT3rQV5sAf*P zz}F0?M~(uGL%8DXKPs-i@DAbY1)Ae+s9##*g6sGWxKJMQf!s>iyEUz{pzv$Rn>2w2Sut)_Wwe5z!+ZiNP=gr%hR=>VjCKna7Uep5j(J*+Q9BB!3yG2dE||0 zE7N4ze?iAxyiE;NUgNpWWfY3&+$z~uZ-Aj8ho|H#(?z877i8r<6UM3`v`#hD6xLEJeMBH*EIC&KHu&N=Y}&| zZ^W+UR4PA`tXpC}^&Kx-G&3mE8}xa+9wPFIei^WNLd%a+DE_^YuqtKfz&MB+)c7vWRot?kJO6U(I_|;aQT~CAjE^Lq zfH(xEtlTy~9WE4DC04z;quaIu{BxUi=^9mFcx`7L5bpu59~BNQ6klM0zG2#)hv1JIR-it zhHa8Kp;Y_xFgd+qhve1=md*+`X5;b~lWz{(w^OToP{HqU()!+JPfXEl(#C7~!a3W< zX_yf`y}fkO*?IK2fZyI6FS!<8ihPabKUjMT>KjJxsXUOj1er4Dh+qs4%Ab!IJ=eO! z+H0y*Vieq%trFVNA^-g!Mf9m}Lkx7#uH?KV)ao2~**aPEVvCldz>(!?MoL1N__3zx zTOA{&i*Fo%Xs>Hh^xx#I>g z;H$ot_uehoJ-NKuts)f#kmV@44b`7cqNgL^KXk0aNFkTirKpYyhtg4- zyyR;~=K{-&OaS7u%du%sEyQq{=lGV2%TmT0OAt9_{}{ifo8eMMfn+r70-!(B0zjN` zrH>w|#J+H%1|(p0(tX)pGx-JP(lcFaSWh`MR(yQUJF=|s--wZUwa;4dR`+EOk>|EW z*TU1yUnbsVf{@ZBR>=`5rJQ4IuPqi)Uri^@T&cEl@gUp%t9RCy=Pfs=0R>1dVijr+ z9tGJi8GY)$sjl0j7|2qHsxO20y1z&j560BraB^foJ%y+uurmI>jiCdryK~rTg3mu&(>1Ot!rQUhz&eF{uImZ+&8j=SiNB)aLi`2lz zPZd7oMxX1dT+CX*)A<7?vm*1RzMu61VjhXuZ$f4>!|Q54E7qA#pAHNTBOr2hDme~j zmQT|MD}&%R&7zE)PSFk?+f(#T7oEAgRUC0U0o@jrBzL0NzV#OBqJgxSxX3=D7_+g= z)a4YGh)WQQ9ZrE5;w11uz3x*_ zQ-;69*6^C4vvmONZ=^)6)( zaom6M^cP)mIECw2A}co4P>0b__5v;Pni|TLCZ)AUb>szJx-}|5QV(0HUs^erPiImC zf^abeOybR1yM+rkC0m(5+#U+JJZtpjAo7|o_$W=YZR7XNyot9V7ipQn07FElUQg$Q ztdKs;IsYN@Z{5k?R@{J zkYnZO&%IS`#Y2G~F^Q`8GSN3kvNy1gY3%1K?g>)Vd`8f-ynS8m-8eWfd(!2j+KG3g zhIe>WztW3oFMQ8vwMgL*&Ol2^1@pEj{!H-Ju+*Q*@3$BKugiiu(9AjREo+iuQFMKR zlCRDt_ktjuvXRMkz8lt-Z~!3Gn4aktZhQ7Q8Ts^>ZIN$N=jBAmgNByL3V04{!$4gQ znhl`1sX+2jb|Qkrd>_a*)S9SI{K}XZe=~#mc`1VQ7J%yKs2--`+ELdlR!6tx6_5ct zTqmewsR-`sw+GKLAzqPqnJ7~n$dfqweqhqumMspL4jR6(#eaW?4P z58zZiHNZ7uKF{Ao^FD{IYk@W2lFAS(iLNmR+y0ljSvFImiQElG%73%hgKy+RwOT%w zLJ2sv#Qga-W;~e3|8zTC+J62~WKs2%gqTeKG6%K?|BDrB{tqkglCgs4*xlh9*<_%Q zNsfc~?-NGKBcp{+Bq$hT^W%-6>E}<_y{gZFBxlR4*KAs?=mC9ekX)DrxZ6G5=gjm0 z6x`&&$t;-_ZR&IMhY4Lt!p(w$Hx>q1>0*_brc&|mI|6C2R@cD|%O}%F))!eg6|~Cm@1wywCdD0ddsM-P2~Ve=sxZNvtFx) zxvn2nnC$MC1r{H|TTen%X~W=&{!x7Crtj`9G&bRs`AU*TMiZES8D3im&(D4?KiZ*; zZskO!NP*g29zUL3__#_O)4mvf5iGTW|1a6-=(Vql(WHXm5gg3t{)nW>!RP>mMo%NUR!8!);s(z5quV5&w}p-q(uW^{QLT@g0W6g!+w2zBkatPFl|V&JuVFrO%t zo+y}PL(DCXIDn~{hOpc_Qx)}=8Sh|){$;+}Zs|0&+em_d;TIi-lqSBw*?TV$(UuqD z7Uj< zinxp>^KbIa`A2`7UnJ=Hx;iF7=)Q*PEk`@-VaHi*Cw1<=F$`<>uRETAQy~ZF0-&rJ>H&J) zpuKqs_ifTPXTN(9BDW+CUUGW)_tCk-(jd}4FEG@(@`bnh4BV#BB$0;H>N7kH{`w}R z!*5&db|B{LJW3|YXRJ_UivO&fYzDEy1a2bJUdpAb z>$~I)FL&VWE-D5vqe*LM(aqDQ`R3I)e`YTdbaK*kAkTc74p5`>{OIrLz2ZhoV~a9T zB}-jj1M~dKo~cp4gx%GOj{2`D z$!3hw6pH;0X;VmLE->p}`s`!&k*#}TbzmtWTq#NF)X^tu*QtQu8r&=s8L(0IJ)=*S z&aR~8^H^l9rHY!w{n#?33M@PHYB%m`<$MF|VS}Eq1@-<4;2}Jjy7r?4g$(ZqC4KTo z>Z|pehh2ca*tjVUiL0wwirRUU)xz2R-sT$&lx-CJz%>V&YoK@~mCcQW*QK$in(llE z`Ng~vAossG#fW_WE{9NWk-#MPANALm1E<@Z001WSC_Xqc5LP_Pk!l(ZRK};;&|^H? zCrQxwA$cp_nblo#<(`x^RoH1tq2^l2D0S-ZMYrgM)@W zFU@W&dLAk3E()o{iC9dPC_ls!XRMAIphB0uvmR9_M@IA#(~9j4_S%|A!RS0BD_V!8 zohL$|Wl;{zY}r)jlmh4O+}Ys!1B>3&>iSYAkaedAzmFeWCQ;Ck=0evm+Q4!b)eQ>! z#&itc*&@n85CmwnBRer#mNUY&b}syQa4-Q&y3#~|c#K5!5uxpi;RUsY`u-^AmXkFL z01W7vsX6j?4KwKA%JOD^V_*aAYwnt#T|VHlm9z?vMBr38t&g^pI0jS}Kn*7k)>e92j3?7=9-~4mC+OzaZ$+J$%F%O2O$_I~yjK`jQ;`w#&I;>amnU-#1 zs&1^zH!oXNwp*Qr!mNuO!2P!FgkBl4CL2gytbOyh;|r#z&i_KSoVneiEhHzVVk&rsT>sJ^u@;ID*)WGe6z?yS_t#^lEBR@!mvcUErU>#uUTn zJ*9i{Kir@5*&&I}T?nv#SO_l>ul8ug^gKHhsN)MDK*If_ok44zu)b&am1KwME`BhF zZ_;j_y4ii}Q!29eu()xhTCtt5p*1t^FRPsT3`bzfSKp^l`3qh3l|4C@5!1x}Idpe=u%Fcqa6*vZarBYB5a zzHg^gzN&ln-LqI1-dc`Ed(HTa;c&y{am-V@hOQfbC^Zjz?3V0o*P&Fv_y>)ll@iHz z%+qU*`hv@bcR0BL)ZJB7s$gu_*h6yCGW}HwCHkLSf<7##n}yG}eLYmn@6w-3e?8|h zey7^j=g3$JW}QDHPc7=e*UDYXpwe0jd27_wR_-gWN`XZQ(L){Gh$N%bvB0jdZ)D}p zqXkayAH{l&hBN?s!@T%4!6n6TeXSnT@Ca+$m!sFWw|8bQ&iO8X_i@;65Dt2QXtj`t zgOl=}J0*u!YJY*im99V6o&KFi2LCDf0hGN?fWNLV9N<+qQXBc}k-gz;dr15_Qv%hC ztYv$j?b-3OL6+B3S;;&$@!afFeFAaT-!BQ9g%{;k{qpq4smKbyHMlx3*h~=69gyiFc^6G{x7mqJ_c?zWcuy+#jVO!(L`78Y9{8eQJEEyIu zBO-O;Ky9Lj$A*UN@OS=EslV2XvTtfHgJ65xagG+G^c+GUh%|Z)4oa-g=KDx4YKBJ1|jv z>h@B~wM6EdRb=%CKk)S}+Bl6ZzmWrM!kl@{KR{V_X(0;lP~vn^$anEU9YD%xlI~M} zj7phzd;R9|8?qWz5sdtq6Ma#j&N4f5Iin;c{?STgzNyas5cU1$9r_5K`= zBAv=Un^0GNfZC3U!R4R+(~Q5j{={c@_|mgr=K`%SWXu~g6vVTPF?}S|$(xyDw|}GT z^QrZ%5#rjLG9lGb{5oMS@^u=i*ZR!3miFx45@xr0Scp2(>nJx8j5S#E3~cByNr4ds z)z#WZG4N|qdW9jBWHYGPkA+c8o;D*5!g_;sGVmbP}D zJ%?lQ;{GFMzL_9dS{gQx)ix zvA9tD%pupa-y*_0X__V3{j2zdIk^H*!FyLtoQqKNOc+~!%%$MT&-%QXh{GQ*OW*vr z?@7JJbq;};S**4Po*w;GLLUXR`J6~q!IFj*ihz9`3iauc`abtZGl^XN>!G$;VM_dleTv<~ z!zu7Zx!H&NAhlzyB_!onhpM8M0~k;xsmEVJ8VeTfz%mawv$);+S3bpXfQvnT z=#{LOt%m?8sPPIN4t3FGNq7gnnQ@ccycQPG7_TpC` zawu;^1ZypeNym&;G)(#7-i|qjMA;?R@$S}@HZNresMZ3KRXr=!A1^%D(z4P701!$J z_z=W$IdP*_{ir%*w#rc8{&Nd#a$@h#U(wS@tOAU%em)bmwZD^E&u;Xsx$=I>a%CEX z9QPu%pgmV&6Ds+y3Q`idhHvv~Uz-WK!^VGT&6mHq5v<4Nw-ULPlFV17UiI`_+;*k% zSn8HZm&io!6TEIM|CN_<+3&E8qH(0*mIkR|^>*9bjc}`$G(by!cPPe0JdO1UubvH7 zvcdU)bHT!z+?&Ow8LsSd3HkCMI7a@u7cWJoYPx{=J&lK@Thgg<$nAf<5{WdM!SWUoFp+}Sd34ePPtm(!O53( z{Wi##4QT!I5#8DNPywKUD_{7A>L@t+Q_5XPxliplTmhPM`sNaC+UQTUK4f;YRogmD zouMs)Wy>IYm$YjWeT+2w7%65xA9y?EzGo6g(Nhn0pG==Qr>rQg9}nOAjEW)loC!E_*qBRm#I!w!341yY8lP#vCpU zMiPZ)EC3Dr-!Ws1e_T@St7crMDF1)3<=p?l3qJDjVI1Usd4rTjW)_9y&s=iL&ot5p zQWp7b3lut{|0Uo&T~y()lQ3siz&}vcJQ?K0h9e^S<-CwgPk1u-=Rx4-2XGc=NK9no<0 zs$BGBhG`@?bz>O9rUB5Cw&)5{&rsTC^_n0mSG&YytIIXEzgBLc<8e=ZS%= zQz=7{GnEOj(?)E-;gjfprjfFH%C{1Bv$5b}*6)_Z#k(;v+FvP3l&#q927$+!0Q2Ke z(=?_TU#~Lw$<5er`9W{3MKR_>yfLDRJv87406P^+QrhOpPH!BlO z3Yl4m$rqEjpLae`2Q)C>(NHj|{xU|(a>CrpQc8A}LV(Wdab6%QjZC0(2VjTlhG#S0 zwV&TJ01}v4u>zlZqh^r;$tQTpL`infH(aY10|3OI!=GQlDLtRrN)6Q=N;>_mvT*bl zTd3G^s&ZQP3-Z9jmT!qiIBNHwF~~L(m+I7>5%8jWmY_P*b=d^L{j78Oxy`&C*qc!$ zR5YOICd@=d^|1414)(7+BH5{S;`4(#Wh>Ld>@@{lA&u~<&JV6*lRiC)AzP8mpRGqY$ zGoKsbDN=YOC+)MLY|))BWexv+wWjXLP9#F3MB@1LlA}^`Q3i~4VYdmXp zd=s{I4?w8;85(L7dSa)j9ZA8cg?7~M@k$En3K#EYNE_jJQ1c+*)>Umz2R@A&et_YJ zn}DlVf1Htz;-rt>#k_t4SW2K3^7+Hd^s14nv$5a`dEeu#Oe45?BTvTC$LDSk!>xjN z3G5PAWUse%%s~NO7$mN$W>k|JrBL^_!F$BaBazGs&TpVu5H++p3%pU8q=_WY)DIQ{ zJh;o%^R0iFzl2XO&$rIDokDC_zsQJormhST{P!!WjaHGyuTj<^rZ227AX357 z*?jyM$PUt)*e!djk|>m|`h((i+dz5dH+`i6G_fC+>(0+!_q1xB@?PMINGQfCIAQHo z5|`+kflHL>G_ey%Tz%G;L+M$@9Ox+PZs-|06J>9wM7QVaJ(6tXE3v;Sa^0eC$>M@}Nw& zx8V3D!;`J>h|R%OC0>Nt$mMoGo}Gc;*=|$nJbDJD=5(0a+Ol&RH0q#eCoK$1-U-?E zm36@7dZE*4Q+Y5w{F7sL8WMknDU#;a zis4C7A^DlVVyp0|fSMw1rYA<>^(`6-O`eRaN9Z@lHW|I5tc`80>rP%X4?Mi(i&m`2 z%Hh*+bX9fxi7iYDXuEI<3dhMK@-Nz3(cJnEd<}M(SUkRFV@ZP0qOqDs}QcK>}6aXE$5dfmi^cHM_=~+&pT2Yk;*_g$-^f_-$Z{b<@z!-f7W|f@=Bs9ks{nmgd%$v3 z3WckDg3QCa`Yo$M`;;~RyxiXb0gn{3s}GZ$8J67y3SlL2fzE9ocs43pBz~eO83Ctk zfK&2P8Kv-9?vJp8OGujk-vpDsf-A}VwMTotC*5dK$QxPGzZk$*zCAY{hvGu+ALJUg zxKUj(U1y0|_&2lX>8-w`N{DzM*;?=EqcC5Op8UhX5j~zX6jSoImu%rsBb-|3pE@l+ z73^3`JxD*O<>On?3Y%J~|7v(%f9K2h>KW{wYWMH3gE0fR%s&|_X*Cmgb40$>e2KN* zz4slU7?Cz(v_rRpI7U6|p^Y6|ZzF3fw+!bVf+Fkg@kbF{Rb^P;q`s@k5%!I*!E?k8ygv}uL@@VY9_xTpG14~Blw2XCwxHZt{<==N!#C0IKjah z_tI!SuJ#K;2^PKvdBuaqatN0E4n6!g>Tv=ej+bmUJZXd!Ckhz)T5FjSs80}b?ZrkG zT?Tk z9}t{~UH;ehd|eLhtj2tb1eSf1))#Mmfv7QHnVd)!Uc6lrREkBeDMjHu1Js%Oq5w zWTlST_srLlPF$I6cQd5mSD-EctWw3scW7)HYsjBy`7VJSWO~AYH-Be$-2Ul5%_UYgjk{xF@2n9p1=Gp zoEvACaP!bKW-9EvUf(+6vR1`ar7eL<6~+OAKl&)IpQ-|CulTg3Y_#eiw$0?%ek1X= zEvN(Xd~HCYeIzaVTawze?i8tDF7DKcaVw7_+q05TQ_5qZa zNF76|vnx!uBEEENXAk64na!pELAvnWqN?fUjYnGek`f*^%}pWCo{|C+%-XkteTn(v$f`TTOxBb6MLq5K{h3fi15zLwPGlpsGO$_??dso3RLd7qNa=`1jw^Xsr^xB-| zn>n`tP3j7-3#b#9yF0Kr?uX0q8h&xu$j19v_@dH#!GujYnk(RjM(Br``G)z&;y=hV zVEJGKW#h|iw99$c)0Nbe5Om??dM@{1uI6&Tug5V;yAG7Ix-dQg8QdZuiPWJ<^>DBsxVxqyHA^eWJ36wQRA`0JL4Zwy>8f4-q5S)EHQ6m}D!d zshuI1-tLpMT+2rx32&=_a4zj`W9@$@-`^J$zRZwMrwW;o&*W%daY+AB#giXuA{&}7e`omf~I**ov#mS+AlPuHu8q3b)v=AO0WfB=es9cbH8a>V@PsG_6mY@}?5xB#vkOWnEDTtpa ztsmgk1oJ}`rq8iRu)2Qj5O#6IhOq8@G9hz)-F&s(F;~fKHuqd=iYeXl>>{g!9bJAerrD$t$ zv1=Bk&aqD{`nqj+Y3G=^F4gh&dCBM=v z$?%>0-M-jMV9zH*koROEM2>SQLu}Ba` zKp+n`qI;k4lwR{xtkeFVHO>zQ-Hz6zoB6iUw%WF45&(eTXXn57z8{+L8ygpoKUe;; z@#l*d>+^==`lTgY{?@-u%H7e$$?b0X>apI&8Tp&<%g6!)Kh({4K5eY-pz!tZ^a z9s8r*k^E)HLv{{N!gSO1IzRDx*~tY(YXQj=KTHGr7BN8AWYfC_*i=t7@4kN1i}da# z8TeaDcU05HjM@=oSEo!NDoiB8l^@2rRO-?a#`DXslnm zIGC3i-Z^;IXv^il+gr>pmoLSscKp5C?jp7?qOIPIECcPsS- zXPpYcJjMOz%s!`@f~wOS^vx^^VGnXnlFKU@_p<)X*@t4@q#4a-A>%x-a^H7n^CfHA zu+MC6`+L5YxG8$FAByan7bt)Or>^7u$NtPrRUYR5!=$zOR10Op7qARWa!qB|7!Qfw z`k#Gt(cN%hels#kns1QLUAAW0+ivgXWL-4cy}z?|>~(sk_|cc9AQ@F=8Rjldr}D{N z%w?+zrp~Un1{gR5?q+J>pQFs(rRS21$*$cOp8?k3iu^nb&!*j#a_ZG_cflry6IHQ2 zjTwY!i=?6vNR4HBY5#yw_6o%i!y^czE$ONri477UewYJa+Yu6|0VvXJd`ayK1V&~z z0f26_0^n=h0s#0{0lqclWe-yU)jnDB){qlpCgiw<>mdJ&BWSY zoyEBXS!gzVw5_*V)QxEC7ytlM_3@4;uh(Axuf5vXEMqaV>)OuQCk;5)=)}Ej=E<3u zGk<-T_59s9MUDJR`t!&4&V5wBQ~fzlGG#&WX-L@r_oH+F@h0xgKMRiBBWLF7;x6Fp z5fNO9lcJF$${Nq}X5}EDsd^x3z~y@PfAeD`xBd6E{QOHhh*fa*fun+H|AGJVKRv1H zW4XJsx~{ZqI(sLaC^;KXWo#(^s&gq{f0)HRjW5 z=X&1LrvYkL*O|`YPnK20Og8i8_9sH*pS6wxA?My|k8=)8szKl@bGWPN$t!OrRV}Bx zW^Z%J#Jr5;FA`NftK=J;0ki42X|@Ts8|J zGlNWE(_(25mkkC0ZE+SKiW0X=*t!txLa10^V}M(?ATkDlwehEHEZxJUxdFgJ=g-fG zBSYzkSL3Sy005pf#GnR=pc|~^eKiE21}D%rmSEWTm-$`E`|K5pPWRl0&o-;KMmySC z80j}3{=FWbte0q$XXa;`O=Kp7JZCG;jh?^LGl{os zdvD*^&$ql;ia5Gh{`0@Ro+l>b5j(pRS)%j0A}n{gPQ6)(>}*73RY#dIla*(hI@2!< zZ{?Fe{QuLLJ&)eW=tN1zf%a>&Q+j8!FSqY6zKYgf*j;nGy8poBIb|($*UwAg*O{Oe zm3hH3j3()-|L$uu@V>Z$8frG2oVQFi(^I+VKz?C%_1NWqsh&R_a`==@{^ z?xSIFN3KN^LCsX1$MITLs!GcfOCwfl5$PXE1!Zf^3r30)=g~t5;`R>z-3R%KL*|>`+{V{ z!E(qyE%=wdg)neT4le-IVl;sS03J3Ju>};+!4x(WzJ_7|SnubXQ9Vgp-&b|*Ye%CN zwXn8fwN?-S0EXJh`j4UM)&9lh?1B6D^|*enHnujuiKn*pU;ES7U+Vw<%5KN`*L3_- zjQR9$!{)s2SRR?TNzGSD`s17H)blf;Vz)1Kah>X7dJl2m-f1Q~_HF3d1>X@X=W{ci zY=hypdX5+9pNsG2+^WxEIG<79GJdl;d0-$`B%hd?%5=ijnTeuF|2{GQ7^(^~4M8d2 zq-g58sW0S|?tgLZ=Y3r=T%v%6JXK8QTy>BD0s>wU=bz#^J=uWBE^m z<#U%m=RL2InHJ2`Nj;h;pNd>f{i~bNm`Y~`N#jS8xBn$Mt}dG5;2q6cnXqbX|WA<4O@P00zREcj6MJS$dk)D=d^ z2HRY^zXC&|?8^oYxEra>NzGkq!R;a1Kzsr3HWwDcFQ{%=8upv|0?rripG6?>Wp)b3 zqhs{8jL|L*6#!l}#GnNP0OqP81t~NE9WdXs^S1}KqMI{{4ww8KqP8{P)+!2%5rO~! z)UO41@7iTIy4!q{-@|eKzU`a1Ka5J_sZ9TcMJ$B2^Fw{V`SSlg-#U+9PX@fDUM7&A zq4+*OyXh;Zq?o>kPcrV=?oa*m{-@*P)AU_8WN)P)-*clPhbbSiHS^wgxh4ZkL6VcE zD#8W!^87I7o4S@IIOM$YTx^$~hy7_8$WzM%Jx?qU8; zi%b{$r-xy>E%(=hG$Cb1fKK%QfbxBGejX5Cn7rdvM`Xek0 zlwa9vmvlt+Q)So~K)1g_@T0;)vMa@9qn#~BNd=qTg1E|; z-8`N1-Av^-OEW;%+a%c@x(0@3?I|WboaD{TZcbB_spk8-v*ldDwQ#~bj0^}sH=?@x z_0JH%F8KG20APT(l%&um$a_Bg`~NQA=kUXw|K0Gg%gyob#kS>7_i^{} zX|wyNZ!nW3aYkgjrw*T3OcJtTK7Cjo&h0fO_vkjW1?^{3dA3#L52KuZIOk{Y^V#=d zip{sWlANqrrl;20l`+&tJKE)mne8AOrY2JWH88L1-6GD+qpApstgCdgroVZZbk+Lr ztg1mbIel~2b#QKmq1bt@JW1~9m!~GZ`V>t;38qiZVg@2rvSbk@=iqaHXVz$0EZs+g->f znN38sVLr*(Rh#xO{=RPmFm%G%b*fve81---h&t+=S!(L+d$K)~{vzY8wQYPr$MP4` zH9ngDU?0muf;>@^ZP|n5&Bs_W);AH@I#@R&7XV7x;w!PO^uF2Jh&}+8;Jg?iUO+;} z@1@ORgxrfQ9}R^k!q(RS7yto&Wi+ClRDuGqW%RD^c!B^LH|2*0hYzRA;`N^^sCv9# z`nEQzZQDk}TmS&VH4+T#(qB_w@8pwfy6*qvBqUNs20fC%ktt89bi9vH; zZT8tkX`ZC^*;G{$Y_j)M(@eI{n=mJL|A889o~fB1I9=HW0Qd+4sPOgdR-qO2z1S)t z0HLqhG!MPy3#M@l976xf$uQ((pBABB8cY`DV{Ivl9 z0Gb|V9Bbc2B`ydH#*9mAUpzq|>;$(fdXFglMn%m&TR%E#VHOb?Qw1@~g*h{3-wBjNhNaV*Zoq&u^zI^W1|(68d4$ z<-B^F#Se;q$6`u0;&>p2?_)i(r3%nXQC&~QKd&slbC8Q_8ik^g)DMC!l1IY-W&%ix~b_Lj3*c(pS%PHmus zvwMA*HrKnq;bzIoNwWMD2^f0HXHzUOTrQ^k@60+R^kkXzbyN5?#|3P=UEPLsvZ3FP ztL@)si>)uVbDT_};02JOz|-64kn-Jc%a9F2xr}7;fT%4C0~~?5kP^TPRxrWi)UT~? zt*u5aLMa*m01!~4yVzSF9e3mOReKSO(O=b{|E?T-%nxi%-qo-CG}(2l^?$vS&5Je3 zc#~5W`mguii|=>k4{CW8ckkJUtZeUwt(*6uHNj9B>r-!Ik&bZe@-L1XX68ZkIBO>% z+nLilW|T3zYv=)-XFKm<^86ds|BfoBGfvt6E=GChE=_}|?6*&+d(M{WX`l^s|JzF} zDMofCr;%@N6+J*r|LME=*$l$n3>@-KDnU?OXM@>4I4fc5&o!I4`ir4~He8jscQd88 z=P*r@m9)=$_9ORpTQyme4vlVAH)NY1tw;A^Se7#K8 zl)G!D*9VFO(A9VZ)SbAmZ|^2+i&!;p8U9l_xP%VHt zY5@lH05aqkh>8WuSC<)sKG6H*Ly19C=z0JUHvj+tzGeJA$2W#a4_Xs{(CxZq{5q$1 zh2kNYs-+0$)i&m^2n|&w6e>sp0000d+Sz>7y&00jhn60`{PuUh{mFKDtkJnfC60#_ zFXnA-+O3S+?|J!!^M&769J%-R^UX@wXF~#7gD|Ruk8=Nt&EK!Nx}tV7rhsXS`rKEM zSg~sVywA}4?1pwy39{lSPAb2j-~W!Us_VOd{%5ih0D!L`kkK9h^!@Sg<8zM$F5h2^ zWc1XF!D+KR6`?JArz6-~~jG|$ijD zRhDH;*;m`#ge%N*N6&yC9{@mQWodo>=gJe~+1%Xx-veF#_+{1@Hviu={5RVsgRA%y uV`|C*u=z17zyJR~C$enHgi>Ii-R}2UWdZ!A0OV8*5CLTvhiIYz@C5*bYn8(Q literal 0 HcmV?d00001 From 42b2881f1014750b2634f97f31800a5912a1b41e Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Fri, 10 Apr 2020 19:10:51 +0200 Subject: [PATCH 105/190] Thank you for the updated sprite assets. --- icons/obj/clothing/uniforms.dmi | Bin 110329 -> 112864 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index edcd2ff9b6bd1b0137b9cf72dd3703d07cfd4385..55ec7669ba9cdc31b6ca4969319703a8738e3c9e 100644 GIT binary patch literal 112864 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
      g)#O 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

      Body

      " - dat += "Gender:[gender == MALE ? "Male" : (gender == FEMALE ? "Female" : (gender == PLURAL ? "Non-binary" : "Object"))]
      " + dat += "Gender:[gender == MALE ? "Male" : (gender == FEMALE ? "Female" : (gender == PLURAL ? "Non-binary" : "Object"))]
      " if(gender != NEUTER && pref_species.sexes) dat += "Body Model:[features["body_model"] == MALE ? "Masculine" : "Feminine"]
      " dat += "Species:[pref_species.name]
      " @@ -381,7 +381,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) mutant_colors = TRUE if (CONFIG_GET(number/body_size_min) != CONFIG_GET(number/body_size_max)) - dat += "Sprite Size: [features["body_size"]]%
      " + dat += "Sprite Size: [features["body_size"]]%
      " if((EYECOLOR in pref_species.species_traits) && !(NOEYES in pref_species.species_traits)) @@ -2123,6 +2123,38 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(new_toggle_color) hud_toggle_color = new_toggle_color + if("gender") + var/chosengender = input(user, "Select your character's gender.", "Gender Selection", gender) as null|anything in list(MALE,FEMALE,"nonbinary","object") + if(!chosengender) + return + switch(chosengender) + if("nonbinary") + chosengender = PLURAL + features["body_model"] = pick(MALE, FEMALE) + if("object") + chosengender = NEUTER + features["body_model"] = MALE + else + features["body_model"] = chosengender + gender = chosengender + facial_hair_style = random_facial_hair_style(gender) + hair_style = random_hair_style(gender) + + if("body_size") + var/min = CONFIG_GET(number/body_size_min) + var/max = CONFIG_GET(number/body_size_max) + var/danger = CONFIG_GET(number/threshold_body_size_slowdown) + var/new_body_size = input(user, "Choose your desired sprite size:\n([min*100]%-[max*100]%), Warning: May make your character look distorted[danger > min ? ", and an exponential slowdown will occur for those smaller than [danger*100]%!" : "!"]", "Character Preference", features["body_size"]*100) as num|null + if (new_body_size) + new_body_size = CLAMP(new_body_size * 0.01, min, max) + var/dorfy + if(danger > new_body_size) + dorfy = alert(user, "The chosen size appears to be smaller than the threshold of [danger*100]%, which will lead to an added exponential slowdown. Are you sure about that?", "Dwarfism Alert", "Yes", "Move it to the threshold", "No") + if(!dorfy || dorfy == "Move it above the threshold") + new_body_size = danger + if(dorfy != "No") + features["body_size"] = new_body_size + else switch(href_list["preference"]) //CITADEL PREFERENCES EDIT - I can't figure out how to modularize these, so they have to go here. :c -Pooj @@ -2175,41 +2207,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("publicity") if(unlock_content) toggles ^= MEMBER_PUBLIC - if("gender") - var/chosengender = input(user, "Select your character's gender.", "Gender Selection", gender) as null|anything in list(MALE,FEMALE,"nonbinary","object") - if(!chosengender) - return - switch(chosengender) - if("nonbinary") - chosengender = PLURAL - features["body_model"] = pick(MALE, FEMALE) - if("object") - chosengender = NEUTER - features["body_model"] = MALE - else - features["body_model"] = chosengender - gender = chosengender - facial_hair_style = random_facial_hair_style(gender) - hair_style = random_hair_style(gender) if("body_model") features["body_model"] = features["body_model"] == MALE ? FEMALE : MALE - if("bodysize") - var/min = CONFIG_GET(number/body_size_min) - var/max = CONFIG_GET(number/body_size_max) - var/danger = CONFIG_GET(number/threshold_body_size_slowdown) - var/new_bodysize = input(user, "Choose your desired sprite size:\n([min*100]%-[max*100]%), Warning: May make your character look distorted[danger > min ? ", and an exponential slowdown will occur for those smaller than [danger*100]%!" : "!"]", "Character Preference", features["body_size"]*100) as num|null - if (new_bodysize) - new_bodysize = CLAMP(new_bodysize * 0.01, min, max) - var/dorfy - if(danger > new_bodysize) - dorfy = alert(user, "The chosen size appears to be smaller than the threshold of [danger*100]%, which will lead to an added exponential slowdown. Are you sure about that?", "Dwarfism Alert", "Yes", "Move it to the threshold", "No") - if(!dorfy || dorfy == "Move it above the threshold") - new_bodysize = danger - if(dorfy != "No") - features["body_size"] = new_bodysize - if("hotkeys") hotkeys = !hotkeys if(hotkeys) From 1ee02d8742a38a45a7a87c7c80a58e6ff18bcdd4 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 11 Apr 2020 22:46:10 -0500 Subject: [PATCH 129/190] Automatic changelog generation for PR #11807 [ci skip] --- html/changelogs/AutoChangeLog-pr-11807.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11807.yml diff --git a/html/changelogs/AutoChangeLog-pr-11807.yml b/html/changelogs/AutoChangeLog-pr-11807.yml new file mode 100644 index 0000000000..be368dc57a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11807.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - code_imp: "datum/pipeline return_air stack trace now gives a reference so it's actually marginally useful if caught in round." From 3742de8b02dc0069990bd4528a3983307eca2579 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 11 Apr 2020 22:48:24 -0500 Subject: [PATCH 130/190] Automatic changelog generation for PR #10891 [ci skip] --- html/changelogs/AutoChangeLog-pr-10891.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-10891.yml diff --git a/html/changelogs/AutoChangeLog-pr-10891.yml b/html/changelogs/AutoChangeLog-pr-10891.yml new file mode 100644 index 0000000000..cac5c5312d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10891.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "Most crate types can now be made, some costing more do to function over fashion" From b9d523fac9bd1fc6977cd115830574361a34bfdf Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 11 Apr 2020 23:23:50 -0500 Subject: [PATCH 131/190] Automatic changelog generation for PR #11816 [ci skip] --- html/changelogs/AutoChangeLog-pr-11816.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11816.yml diff --git a/html/changelogs/AutoChangeLog-pr-11816.yml b/html/changelogs/AutoChangeLog-pr-11816.yml new file mode 100644 index 0000000000..8ca4da37de --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11816.yml @@ -0,0 +1,4 @@ +author: "necromanceranne" +delete-after: True +changes: + - bugfix: "Sleeping Carp and Rising Bass now dodge. Again." From d024b991dd6abdbcd26f2053ac2b574e7ba3622d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 11 Apr 2020 23:25:00 -0500 Subject: [PATCH 132/190] Automatic changelog generation for PR #11814 [ci skip] --- html/changelogs/AutoChangeLog-pr-11814.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11814.yml diff --git a/html/changelogs/AutoChangeLog-pr-11814.yml b/html/changelogs/AutoChangeLog-pr-11814.yml new file mode 100644 index 0000000000..3cb85d8668 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11814.yml @@ -0,0 +1,5 @@ +author: "kappa-sama" +delete-after: True +changes: + - balance: "doubles the Stam damage of nonlethal krav stompers" + - bugfix: "no longer Krav Maga stomp people that are standing" From cfd1d822e347603d76e8cb9f884f9de2023a4505 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 11 Apr 2020 23:25:54 -0500 Subject: [PATCH 133/190] Automatic changelog generation for PR #11812 [ci skip] --- html/changelogs/AutoChangeLog-pr-11812.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11812.yml diff --git a/html/changelogs/AutoChangeLog-pr-11812.yml b/html/changelogs/AutoChangeLog-pr-11812.yml new file mode 100644 index 0000000000..ca452b1d23 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11812.yml @@ -0,0 +1,4 @@ +author: "Auris456852" +delete-after: True +changes: + - rscadd: "Added printer sound for admins that plays when someone messages Centcomm or the Syndicate. Just like RP!" From 05dad4c3d1fe7905aeb78936970dc0105ff42306 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 11 Apr 2020 23:29:43 -0500 Subject: [PATCH 134/190] Automatic changelog generation for PR #11823 [ci skip] --- html/changelogs/AutoChangeLog-pr-11823.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11823.yml diff --git a/html/changelogs/AutoChangeLog-pr-11823.yml b/html/changelogs/AutoChangeLog-pr-11823.yml new file mode 100644 index 0000000000..b4ba01d44b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11823.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "Contamination is back." From 6f8992e71234568f10cdeefd3b18b922cf1f7054 Mon Sep 17 00:00:00 2001 From: kiwedespars <47008095+kiwedespars@users.noreply.github.com> Date: Sat, 11 Apr 2020 21:34:06 -0700 Subject: [PATCH 135/190] Update haste.dm --- code/modules/antagonists/bloodsucker/powers/haste.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/bloodsucker/powers/haste.dm b/code/modules/antagonists/bloodsucker/powers/haste.dm index 143950b32f..05e2cd0330 100644 --- a/code/modules/antagonists/bloodsucker/powers/haste.dm +++ b/code/modules/antagonists/bloodsucker/powers/haste.dm @@ -8,7 +8,7 @@ desc = "Dash somewhere with supernatural speed. Those nearby may be knocked away, stunned, or left empty-handed." button_icon_state = "power_speed" bloodcost = 6 - cooldown = 50 + cooldown = 120 target_range = 15 power_activates_immediately = TRUE message_Trigger = ""//"Whom will you subvert to your will?" From 501b4f0e3e2dbd5ece6eca9fc60c68b725c49728 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sun, 12 Apr 2020 06:42:08 +0200 Subject: [PATCH 136/190] Update watercloset.dm --- code/game/objects/structures/watercloset.dm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 892d85cd6e..0ffbb9f3ea 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -64,7 +64,7 @@ else I.forceMove(drop_location()) to_chat(user, "You find [I] in the cistern.") - w_items -= I.w_class + w_items = max(w_items - I.w_class, 0) else open = !open update_icon() @@ -115,6 +115,12 @@ secret.desc += "" //In case you want to add something to the item that spawns contents += secret +/obj/structure/toilet/secret/LateInitialize() + . = ..() + w_items = 0 //recalculate total weight thanks to the secret. + for(var/item/I in contents) + w_items += I.w_class + /obj/structure/toilet/secret/low_loot secret_type = /obj/effect/spawner/lootdrop/low_loot_toilet From 23b45c9cf3bbee22d00bb6681ba044bec543cfca Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sun, 12 Apr 2020 06:54:40 +0200 Subject: [PATCH 137/190] Update lootdrop.dm --- .../game/objects/effects/spawners/lootdrop.dm | 61 +++++++++++++------ 1 file changed, 43 insertions(+), 18 deletions(-) diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index d79fba7172..cef0b86c34 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -2,6 +2,7 @@ icon = 'icons/effects/landmarks_static.dmi' icon_state = "random_loot" layer = OBJ_LAYER + var/spawn_on_turf = TRUE var/lootcount = 1 //how many items will be spawned var/lootdoubles = TRUE //if the same item can be spawned twice var/list/loot //a list of possible items to spawn e.g. list(/obj/item, /obj/structure, /obj/effect) @@ -10,7 +11,7 @@ /obj/effect/spawner/lootdrop/Initialize(mapload) ..() if(loot && loot.len) - var/turf/T = get_turf(src) + var/atom/A = spawn_on_turf ? get_turf(src) : loc var/loot_spawned = 0 while((lootcount-loot_spawned) && loot.len) var/lootspawn = pickweight(loot) @@ -18,7 +19,7 @@ loot.Remove(lootspawn) if(lootspawn) - var/atom/movable/spawned_loot = new lootspawn(T) + var/atom/movable/spawned_loot = new lootspawn(A) if (!fan_out_items) if (pixel_x != 0) spawned_loot.pixel_x = pixel_x @@ -449,6 +450,7 @@ /obj/effect/spawner/lootdrop/low_loot_toilet name = "random low toilet spawner" lootcount = 1 + spawn_on_turf = FALSE //Note this is out of a 100 - Meaning the number you see is also the percent its going to pick that //This is ment for "low" loot that anyone could fine in a toilet, for better gear use high loot toilet loot = list("" = 30, @@ -458,41 +460,42 @@ /obj/item/clothing/glasses/sunglasses/blindfold = 4, /obj/item/clothing/glasses/sunglasses = 1, /obj/item/toy/plush/random = 5, - /obj/effect/spawner/lootdrop/gloves = 5, - /obj/effect/spawner/lootdrop/glowstick = 5, - /obj/effect/spawner/lootdrop/coin = 3, - /obj/effect/spawner/lootdrop/cig_packs = 10, - /obj/effect/spawner/lootdrop/cigars_cases = 2, - /obj/effect/spawner/lootdrop/space_cash = 5, + /obj/effect/spawner/lootdrop/gloves/no_turf = 5, + /obj/effect/spawner/lootdrop/glowstick/no_turf = 5, + /obj/effect/spawner/lootdrop/coin/no_turf = 3, + /obj/effect/spawner/lootdrop/cig_packs/no_turf = 10, + /obj/effect/spawner/lootdrop/cigars_cases/no_turf = 2, + /obj/effect/spawner/lootdrop/space_cash/no_turf = 5, /obj/item/reagent_containers/food/snacks/grown/cannabis = 5, /obj/item/storage/pill_bottle/dice = 5, /obj/item/toy/cards/deck = 5, - /obj/effect/spawner/lootdrop/druggie_pill = 5 + /obj/effect/spawner/lootdrop/druggie_pill/no_turf = 5 ) /obj/effect/spawner/lootdrop/prison_loot_toilet name = "random prison toilet spawner" lootcount = 1 + spawn_on_turf = FALSE //Note this is out of a 100 - Meaning the number you see is also the percent its going to pick that //This is ment for "prison" loot that is rather rare and ment for "prisoners if they get a crowbar to fine, or sec. loot = list("" = 10, /obj/item/lighter = 5, /obj/item/poster/random_contraband = 5, /obj/item/clothing/glasses/sunglasses = 5, - /obj/effect/spawner/lootdrop/coin = 5, - /obj/effect/spawner/lootdrop/cig_packs = 10, - /obj/effect/spawner/lootdrop/cigars_cases = 5, + /obj/effect/spawner/lootdrop/coin/no_turf = 5, + /obj/effect/spawner/lootdrop/cig_packs/no_turf = 10, + /obj/effect/spawner/lootdrop/cigars_cases/no_turf = 5, /obj/item/reagent_containers/food/snacks/grown/cannabis = 5, /obj/item/storage/pill_bottle/dice = 5, /obj/item/toy/cards/deck = 5, - /obj/effect/spawner/lootdrop/druggie_pill = 5, + /obj/effect/spawner/lootdrop/druggie_pill/no_turf = 5, /obj/item/kitchen/knife = 5, /obj/item/screwdriver = 5, - /obj/item/crowbar/red = 0.5, //Dont you need a crowbar to open this? + /obj/item/crowbar/red = 1, //Dont you need a crowbar to open this? /obj/item/stack/medical/bruise_pack = 3, /obj/item/reagent_containers/food/drinks/bottle/vodka = 2, /obj/item/radio = 5, - /obj/item/flashlight = 4.5, + /obj/item/flashlight = 4, /obj/item/clothing/mask/breath = 2, /obj/item/tank/internals/emergency_oxygen = 3, /obj/item/storage/box/mre/menu4/safe = 3, @@ -502,13 +505,14 @@ /obj/effect/spawner/lootdrop/high_loot_toilet name = "random high toilet spawner" lootcount = 1 + spawn_on_turf = FALSE //Note this is out of a 100 - Meaning the number you see is also the percent its going to pick that //The items inside are always going to be something usefull, illegal and likely traitorous. loot = list( /obj/item/clothing/glasses/sunglasses = 5, - /obj/effect/spawner/lootdrop/coin = 5, - /obj/effect/spawner/lootdrop/space_cash = 5, - /obj/effect/spawner/lootdrop/druggie_pill = 5, + /obj/effect/spawner/lootdrop/coin/no_turf = 5, + /obj/effect/spawner/lootdrop/space_cash/no_turf = 5, + /obj/effect/spawner/lootdrop/druggie_pill/no_turf = 5, /obj/item/storage/fancy/cigarettes/cigpack_syndicate = 5, /obj/item/suppressor = 5, /obj/item/toy/cards/deck/syndicate = 5, @@ -521,3 +525,24 @@ /obj/item/clothing/gloves/combat = 10, /obj/item/clothing/shoes/sneakers/noslip = 10 ) + +/obj/effect/spawner/lootdrop/coin/no_turf + spawn_on_turf = FALSE + +/obj/effect/spawner/lootdrop/space_cash/no_turf + spawn_on_turf = FALSE + +/obj/effect/spawner/lootdrop/druggie_pill/no_turf + spawn_on_turf = FALSE + +/obj/effect/spawner/lootdrop/gloves/no_turf + spawn_on_turf = FALSE + +/obj/effect/spawner/lootdrop/cig_packs/no_turf + spawn_on_turf = FALSE + +/obj/effect/spawner/lootdrop/cigars_cases/no_turf + spawn_on_turf = FALSE + +/obj/effect/spawner/lootdrop/glowstick/no_turf + spawn_on_turf = FALSE From ab2d45894790926ad0c8ff0263fd392768eeb7d0 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sun, 12 Apr 2020 07:12:54 +0200 Subject: [PATCH 138/190] Update lighting.dm --- code/modules/power/lighting.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 835055ea48..36005232f3 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -257,6 +257,7 @@ /obj/machinery/light/small/built icon_state = "bulb-empty" + start_with_cell = FALSE /obj/machinery/light/small/built/Initialize() . = ..() From 863ecf6627b90fae05ec0b999343c9aec4949f66 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sun, 12 Apr 2020 07:17:50 +0200 Subject: [PATCH 139/190] Update watercloset.dm --- code/game/objects/structures/watercloset.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 0ffbb9f3ea..95edd15951 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -118,7 +118,7 @@ /obj/structure/toilet/secret/LateInitialize() . = ..() w_items = 0 //recalculate total weight thanks to the secret. - for(var/item/I in contents) + for(var/obj/item/I in contents) w_items += I.w_class /obj/structure/toilet/secret/low_loot From acb5c39b598e176fed23cf9b4a10c86152161128 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sun, 12 Apr 2020 07:47:28 +0200 Subject: [PATCH 140/190] Fixes the phantom thief component for the Xth time. --- code/datums/components/phantomthief.dm | 8 ++++---- code/modules/clothing/glasses/phantomthief.dm | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/datums/components/phantomthief.dm b/code/datums/components/phantomthief.dm index ede222d001..57ab75f7a3 100644 --- a/code/datums/components/phantomthief.dm +++ b/code/datums/components/phantomthief.dm @@ -1,8 +1,8 @@ //This component applies a customizable drop_shadow filter to its wearer when they toggle combat mode on or off. This can stack. /datum/component/wearertargeting/phantomthief - dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS - signals = list(COMSIG_LIVING_COMBAT_ENABLED) + dupe_mode = COMPONENT_DUPE_ALLOWED + signals = list(COMSIG_LIVING_COMBAT_ENABLED, COMSIG_LIVING_COMBAT_DISABLED) proctype = .proc/handlefilterstuff var/filter_x var/filter_y @@ -19,8 +19,8 @@ filter_color = _color valid_slots = _valid_slots -/datum/component/wearertargeting/phantomthief/proc/handlefilterstuff(datum/source, mob/user, combatmodestate) - if(!combatmodestate) +/datum/component/wearertargeting/phantomthief/proc/handlefilterstuff(mob/living/user, was_forced = FALSE) + if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) user.remove_filter("phantomthief") else user.add_filter("phantomthief", 4, list(type = "drop_shadow", x = filter_x, y = filter_y, size = filter_size, color = filter_color)) diff --git a/code/modules/clothing/glasses/phantomthief.dm b/code/modules/clothing/glasses/phantomthief.dm index 1c9afcfd6f..f02984e8e8 100644 --- a/code/modules/clothing/glasses/phantomthief.dm +++ b/code/modules/clothing/glasses/phantomthief.dm @@ -23,8 +23,8 @@ else . += "[DisplayTimeText(nextadrenalinepop - world.time)] left before the adrenaline injector can be used again." -/obj/item/clothing/glasses/phantomthief/syndicate/proc/injectadrenaline(mob/user, combatmodestate) - if(istype(user) && combatmodestate && world.time >= nextadrenalinepop) +/obj/item/clothing/glasses/phantomthief/syndicate/proc/injectadrenaline(mob/living/user, was_forced = FALSE) + if(combatmodestate && world.time >= nextadrenalinepop) nextadrenalinepop = world.time + 5 MINUTES user.reagents.add_reagent(/datum/reagent/syndicateadrenals, 5) user.playsound_local(user, 'sound/misc/adrenalinject.ogg', 100, 0, pressure_affected = FALSE) From 13f9c3c235e4d46bf97678b3912392dc0fa2fd77 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sun, 12 Apr 2020 08:03:30 +0200 Subject: [PATCH 141/190] Update phantomthief.dm --- code/modules/clothing/glasses/phantomthief.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/glasses/phantomthief.dm b/code/modules/clothing/glasses/phantomthief.dm index f02984e8e8..fa0eea3ca3 100644 --- a/code/modules/clothing/glasses/phantomthief.dm +++ b/code/modules/clothing/glasses/phantomthief.dm @@ -24,7 +24,7 @@ . += "[DisplayTimeText(nextadrenalinepop - world.time)] left before the adrenaline injector can be used again." /obj/item/clothing/glasses/phantomthief/syndicate/proc/injectadrenaline(mob/living/user, was_forced = FALSE) - if(combatmodestate && world.time >= nextadrenalinepop) + if(user.combat_flags & COMBAT_FLAG_COMBAT_TOGGLED && world.time >= nextadrenalinepop) nextadrenalinepop = world.time + 5 MINUTES user.reagents.add_reagent(/datum/reagent/syndicateadrenals, 5) user.playsound_local(user, 'sound/misc/adrenalinject.ogg', 100, 0, pressure_affected = FALSE) From 2e2b9cfe1b6f5f2282bdb23620370dfb4da66db2 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sun, 12 Apr 2020 09:13:44 +0200 Subject: [PATCH 142/190] Fixing some sprite accessories offsets, shifted the icon states 2 px down. --- .../arousal/genitals_sprite_accessories.dm | 6 +++--- .../icons/obj/genitals/taur_penis_onmob.dmi | Bin 1672 -> 1671 bytes 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm b/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm index 6bbe947f54..1cea2dd916 100644 --- a/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm +++ b/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm @@ -23,13 +23,13 @@ icon_state = "knotted" name = "Knotted" taur_icon = 'modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi' - taur_dimension_y = 64 + taur_dimension_x = 64 /datum/sprite_accessory/penis/flared icon_state = "flared" name = "Flared" taur_icon = 'modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi' - taur_dimension_y = 64 + taur_dimension_x = 64 /datum/sprite_accessory/penis/barbknot icon_state = "barbknot" @@ -39,7 +39,7 @@ icon_state = "tapered" name = "Tapered" taur_icon = 'modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi' - taur_dimension_y = 64 + taur_dimension_x = 64 /datum/sprite_accessory/penis/tentacle icon_state = "tentacle" diff --git a/modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi b/modular_citadel/icons/obj/genitals/taur_penis_onmob.dmi index e8efbec21664496ce1b1c9b3be94166cff7f994d..9dbed5e9f05d58d4a2d71ddf568c3716318b7da8 100644 GIT binary patch delta 1277 zcmXYvdr%Ws6vh`(=u~5@(@HhfrPXP*wyg9)XnBPCY)3_>wg?I?*!o5iqCg~JSBZ)p z5KvmwrUOOBSHT2PAQHlYGz11DwG4z9L&76j1W5|ZBZ>Ryj_n_J?wNbeneRKlb1!gm zI8|aFAE4-jPY`-?z9==kP^Mb^^+&GNedp5Cgm(P3~Tf-a4uhY~P>R zx?3o@x(}_;Z-br7nC|W?ll8B;Ka&!S!L7L$wG^h_iu^cVwI*eC?PTqXljg_sRv_OM zhcyPVZ$kGTjeTh9x@Yb}=ofpwbuaIAek{#%*QBEzP{$B>wC+v#$h04HoSqv^7qRl9 zjz}svr19k(3%`%t%4nya4&x5La`%bJ4E=M1V01#I(3M`o6#GEtnl|p#!{zV}msSV0 zS(hIYE}2j7%R&lJZ3dGx(*}<|*VauLvq_6gzDbP7GMsI~BRIFB;2-nwE|^BcvzV6I zZetgp$+k~-m+kk)f*%@2?s<ynQX%c##9Q95u@_3Hqg%+MK1z?(NO+fSkYMJ3^r$yB0|Op-P-0Sl)i`8358&N| zMvu-B;7_$U0-#qpU{zjZKa__#InFXBRKa|Tg-Yq)JvtNNf4>v*V}YH0V!3Y#P>*x+ zonQziY4^z4>1ZMskC}mHOX2XkTJ(ztX_-N0O!kOm9RZ6s-!jJRuqKQ-_>wf7d%gzU zTW$d3cb8m=5Uev}?*tXTy2)Ku!Z&OR5=s%$#4T%fnVJ|r|Y_5p#*OY*2 zokyNv;C9}eJ&M+{f{GGzlvHk_?aQmaVw+|vrP7q%EMb+N9K1sl1)5Uu>Rm8igxGp1 z{aU>APuxF!T#!HJKg3$0T1?*Ns_>w_j8TiMGYcyJCm*d!gADAKO$lZs$+Rnvb8w8Q zrt|~kU=6Y5vIiUX`N>2MWTW(eNN)11G_l*GinkXWAW#$Md^Nn23Iu?r1fC_roOQn40OZwowIJOS>W>fS=<@&_ze*v=0z(W84 delta 1278 zcmXw%e^8Ql9LFE^lI=WYw^q36q${_1Hx1W1pfbt*sJ1q(U3a?5z*<^I4xK+zP`;^G z)+}?m(k_+jkA7^VQl?^{kK_@VfpeyUiW(La$b$+f4?GXg9=F?H-_L!&pI_hi`&Aiw zE>!kQKtMokUcg3B6mmQ_p{Atu-QBT{82y>TLIITmK{H_q;;CX~Xy)ueRwR(Z{>|s# zywB}^ks-vJqdqU~;$tZ(+^4qnGsAOQf-~!Q9C)n6o$7hO?zttup?^AYe>j^(EAs67 z5%D}E@02h2_N$kMtIVs}%KcZji3Qm)lRQ)~Gd2$5;Mhyxj`4?*n> zy>UL5M(;sF@~3%D2A=n(y?;;}x^uzNKmFlt4sk~V|Gbu{#*8knXK+sYbinQr3LSCc zBtOCywWZB3Tb&}zHi=gnHh@2FFHil=4Ou+p3|-sbcob*Fci(K}+)aEWs7)zFfzyRk zr&G8h7^TIwO2XC*YrK1lcU~Id4#Zs1?ys$eAZR|y;7VJzcG{+9%CTv+jWT8?%w2V+ zHsNz>%fR$1L#xGV)mR>TKe@S2iy8SJp#|)cdjFB@Xx{;A)>Z6;CiQSki{#HikNa7z zbYu95+ZJ=g)~;$BasM)im`w7=dx94$$w98o4@Dimz|L;f5Z;$t!US~}sW#g1s{*%2 zZSTs(kEBJ>euA5*Yt&W!{@J7Uv!?dKCF$sZ@X%0`A_+gj+&;FQ2+!ORltjp|4Wx?M z5$R2|7GR7}?!b9+RkN?MYVg}7Myep~AV*%{kB=P$2mg)cU;dV5qbSVO*$9(Y)r0oU zpJjtF7Lcm~4Oj*<3W82cZzZ&zpyGXT8y11owCg1?IzkP5LNrV1k&Q%^jk3!^Jo2iB zP`C(3P>#ET{LiWEe80f`BL6z0<|1qjtwuO4Q#|oKRBfhpCYD0ZssIQ;$T*@2a)>Lm zuuIEe!tB>{CR`M-@&>KTa4m>4umV9271tOr392?YDO!fEiBo?}{24hQ`U28q@9E7J z|89w~Ea4_}-UnR-X6kCk2W~VE=NbI3R-0E8u8H5;-68ZM2UxI5x(&qN z1;!6b{WA|2m2+qrnUz!a-zo7n(e*b#@q{zz)LwAh{}x&Mwt_Pymng{v}%0=d1ftF-W&^gCR)HPff==`U4Ffqd;as%dR(Y^lq#- zPDh^;ih0cLRM2K8o46)}$0MFCF&w8uN%&=1#)-T(L{zceOiOV~z$A|Kp2TO$ok5)l z=kOLHI*}ve6S;>t;p8fIx^9$u_EoOI3nT6dgFoYc<%P|n;we(PDpYgS2^@M}ho3P4 zB6WKi$iwZxeb0m(U&s5A0ne5*#NQT> zqaz$x?!zvJJg0tap)I%48$O-2QDT!#zA>uq$^w_)`JS^%VIh(eyU$IpxJ&{_8kF2> z7bnaktfB?4>ZB4?^Jle;sjVP<6P)IM2ZC}=v&=NsHEzQN7R>&Y1?w?WNREFU$!@yB zYVG`f?UTnO8)jOTiBO0N(}U}|N^u4M8aH7aVXc_ba4#CLM$0i{T8NGw8Jh@lWFAa4 e^t(p2g$OjnDF0e-&}Wi)&^KQvf7S8@ulygzV$Eg% From 1afa07dad5670dd37ad6c7f527c5063280c30b63 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sun, 12 Apr 2020 09:40:38 +0200 Subject: [PATCH 143/190] Improved readability. --- code/controllers/configuration/entries/game_options.dm | 7 ++++--- config/game_options.txt | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index c3d0d2e3e7..8fe47e72ce 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -460,8 +460,9 @@ config_entry_value = RESIZE_DEFAULT_SIZE min_val = RESIZE_DEFAULT_SIZE -//pun pun slowdown for characters smaller than this thanks shorter strides. -//Set to a value below 'body_size_min' to disable it. +//Pun-Pun movement slowdown for characters with a body size smaller than this value, +//Which kinda makes sense considering their strides should be shorters. +//To disable, just make sure the value is lower than 'body_size_min' /datum/config_entry/number/threshold_body_size_slowdown config_entry_value = RESIZE_DEFAULT_SIZE * 0.85 min_val = 0 @@ -471,4 +472,4 @@ //doesn't apply to floating or crawling mobs /datum/config_entry/number/body_size_slowdown_multiplier config_entry_value = 0.25 - min_val = 1.1 //otherwise it'd be a waste of time. + min_val = 0.1 //To encourage folks to disable the slowdown through the above config instead. diff --git a/config/game_options.txt b/config/game_options.txt index dd49446ecc..241afa7aa0 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -625,8 +625,9 @@ PENIS_MAX_INCHES_PREFS 20 BODY_SIZE_MIN 1 BODY_SIZE_MAX 1 -## Pun-Pun slowdown for characters smaller than this thanks shorter strides. -## Set to a value below BODY_SIZE_MIN to disable it. +## Pun-Pun movement slowdown for characters with a body size smaller than this value, +## Which kinda makes sense considering their strides should be shorters. +## To disable, just make sure the value is lower than 'body_size_min' THRESHOLD_BODY_SIZE_SLOWDOWN 0.85 ## Multiplier used in the smaller strides slowdown calculation. From 4e3845da5ecc2b9864e7e30aa580961fdcbed741 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sun, 12 Apr 2020 09:53:41 +0200 Subject: [PATCH 144/190] Clarifies the scope of the slowdown. --- code/controllers/configuration/entries/game_options.dm | 4 ++-- config/game_options.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 8fe47e72ce..f11093cba7 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -460,8 +460,8 @@ config_entry_value = RESIZE_DEFAULT_SIZE min_val = RESIZE_DEFAULT_SIZE -//Pun-Pun movement slowdown for characters with a body size smaller than this value, -//Which kinda makes sense considering their strides should be shorters. +//Pun-Pun movement slowdown given to characters with a body size smaller than this value, +//to compensate for their smaller hitbox. //To disable, just make sure the value is lower than 'body_size_min' /datum/config_entry/number/threshold_body_size_slowdown config_entry_value = RESIZE_DEFAULT_SIZE * 0.85 diff --git a/config/game_options.txt b/config/game_options.txt index 241afa7aa0..8c48ac6ede 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -625,8 +625,8 @@ PENIS_MAX_INCHES_PREFS 20 BODY_SIZE_MIN 1 BODY_SIZE_MAX 1 -## Pun-Pun movement slowdown for characters with a body size smaller than this value, -## Which kinda makes sense considering their strides should be shorters. +## Pun-Pun movement slowdown given to characters with a body size smaller than this value, +## to compensate for their smaller hitbox. ## To disable, just make sure the value is lower than 'body_size_min' THRESHOLD_BODY_SIZE_SLOWDOWN 0.85 From 6cd1d195adf1e44d381381546011fff37433e5e4 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 12 Apr 2020 13:47:22 -0500 Subject: [PATCH 145/190] Automatic changelog generation for PR #10732 [ci skip] --- html/changelogs/AutoChangeLog-pr-10732.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-10732.yml diff --git a/html/changelogs/AutoChangeLog-pr-10732.yml b/html/changelogs/AutoChangeLog-pr-10732.yml new file mode 100644 index 0000000000..8d6746bbd4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10732.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - rscadd: "Traitor chaplains can now become neutered versions of cults." From 53d893a67e05d7611668ac5737590e98f6d55f2c Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sun, 12 Apr 2020 16:21:51 -0400 Subject: [PATCH 146/190] adds rudimentary linux iptables support for fail2topic --- code/controllers/subsystem/fail2topic.dm | 13 ++++++++----- config/config.txt | 5 ++++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/code/controllers/subsystem/fail2topic.dm b/code/controllers/subsystem/fail2topic.dm index 02e7bc7aab..78c4807c3f 100644 --- a/code/controllers/subsystem/fail2topic.dm +++ b/code/controllers/subsystem/fail2topic.dm @@ -21,9 +21,6 @@ SUBSYSTEM_DEF(fail2topic) DropFirewallRule() // Clear the old bans if any still remain - if (world.system_type == UNIX && enabled) - enabled = FALSE - subsystem_log("DISABLED - UNIX systems are not supported.") if(!enabled) flags |= SS_NO_FIRE can_fire = FALSE @@ -90,7 +87,10 @@ SUBSYSTEM_DEF(fail2topic) fail_counts -= ip rate_limiting -= ip - . = shell("netsh advfirewall firewall add rule name=\"[rule_name]\" dir=in interface=any action=block remoteip=[ip]") + if (world.system_type == UNIX) + . = shell("iptables -A [rule_name] -s [ip] -j DROP") + else + . = shell("netsh advfirewall firewall add rule name=\"[rule_name]\" dir=in interface=any action=block remoteip=[ip]") if (.) subsystem_log("Failed to ban [ip]. Exit code: [.].") @@ -105,7 +105,10 @@ SUBSYSTEM_DEF(fail2topic) active_bans = list() - . = shell("netsh advfirewall firewall delete rule name=\"[rule_name]\"") + if (world.system_type == UNIX) + . = shell("iptables -F [rule_name]") //Let's just assume that folks running linux are smart enough to have a dedicated chain configured for this. + else + . = shell("netsh advfirewall firewall delete rule name=\"[rule_name]\"") if (.) subsystem_log("Failed to drop firewall rule. Exit code: [.].") diff --git a/config/config.txt b/config/config.txt index fd5dc968fb..35af0e848b 100644 --- a/config/config.txt +++ b/config/config.txt @@ -510,13 +510,16 @@ DEFAULT_VIEW 21x15 ### FAIL2TOPIC: ### Automated IP bans for world/Topic() spammers +### NOTE FOR WINDOWS HOSTS: This requires you to be running dreamdaemon as an administrator for it to work at all. TGS3 handles this automatically, and honestly there's no reason not to be using TGS3 if you're hosting on Windows. +### NOTE FOR LINUX HOSTS: This requires manual setup of iptables. Beware that improper configuration of this can and will irreversibly fuck up a server, so please don't tinker with it if you don't know what you're doing. ## Enabled -FAIL2TOPIC_ENABLED +#FAIL2TOPIC_ENABLED ## Minimum wait time in deciseconds between valid requests FAIL2TOPIC_RATE_LIMIT 10 ## Number of requests after breaching rate limit that triggers a ban FAIL2TOPIC_MAX_FAILS 5 ## Firewall rule name used on physical server +## FOR LINUX HOSTS: This is used as the chain name. The iptables chain doesn't get created or hooked up to INPUT automatically, so you'll have to get that set up yourself. Recommended name: BYOND FAIL2TOPIC_RULE_NAME _dd_fail2topic ## Enable automatic profiling - Byond 513.1506 and newer only. From 2df365064a963453ffc8bd75c059c2839f3c1f3f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 12 Apr 2020 18:16:41 -0500 Subject: [PATCH 147/190] Automatic changelog generation for PR #11697 [ci skip] --- html/changelogs/AutoChangeLog-pr-11697.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11697.yml diff --git a/html/changelogs/AutoChangeLog-pr-11697.yml b/html/changelogs/AutoChangeLog-pr-11697.yml new file mode 100644 index 0000000000..d8026366cb --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11697.yml @@ -0,0 +1,6 @@ +author: "actioninja" +delete-after: True +changes: + - rscadd: "Washing machines now support arbitrary dye color" + - rscadd: "Washing machines now dye nearly every item." + - refactor: "lots of backend changes to clothing overlays, report any issues" From affe2463b67a5d920d50062cc4509dcf851f417a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 12 Apr 2020 18:48:16 -0500 Subject: [PATCH 148/190] Automatic changelog generation for PR #11817 [ci skip] --- html/changelogs/AutoChangeLog-pr-11817.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11817.yml diff --git a/html/changelogs/AutoChangeLog-pr-11817.yml b/html/changelogs/AutoChangeLog-pr-11817.yml new file mode 100644 index 0000000000..9d9e0a779b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11817.yml @@ -0,0 +1,5 @@ +author: "Putnam3145" +delete-after: True +changes: + - rscadd: "Latejoin changelings for dynamic" + - bugfix: "Average threat calculation works now" From 3aad79f6e190e5c5e652946efcc779a5fae25ef4 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 12 Apr 2020 19:01:53 -0500 Subject: [PATCH 149/190] Automatic changelog generation for PR #11811 [ci skip] --- html/changelogs/AutoChangeLog-pr-11811.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11811.yml diff --git a/html/changelogs/AutoChangeLog-pr-11811.yml b/html/changelogs/AutoChangeLog-pr-11811.yml new file mode 100644 index 0000000000..010a0caa86 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11811.yml @@ -0,0 +1,6 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Liver failure is back!" + - tweak: "standarized a few (prefs off) side effects from enlargment chems on livers to do organ damage instead without the blood volume whackiness." + - tweak: "High liver damage now slows mobs down." From 2d96c7eb6e89d75f2cf20f0d4867fa8b5c44eddd Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 12 Apr 2020 19:02:39 -0500 Subject: [PATCH 150/190] Automatic changelog generation for PR #11819 [ci skip] --- html/changelogs/AutoChangeLog-pr-11819.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11819.yml diff --git a/html/changelogs/AutoChangeLog-pr-11819.yml b/html/changelogs/AutoChangeLog-pr-11819.yml new file mode 100644 index 0000000000..6619f26aba --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11819.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Wizard robes & co work again now." + - bugfix: "Fixed some spell casting message spam." From deacf274547460bcb4368a49a97591bd9c681f8b Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 12 Apr 2020 19:02:54 -0500 Subject: [PATCH 151/190] Automatic changelog generation for PR #11824 [ci skip] --- html/changelogs/AutoChangeLog-pr-11824.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11824.yml diff --git a/html/changelogs/AutoChangeLog-pr-11824.yml b/html/changelogs/AutoChangeLog-pr-11824.yml new file mode 100644 index 0000000000..2b91fc5564 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11824.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "fixed yet another few airless issues with the space hermit ruin." From 609eb190e0f62d3ef580d959f52b1428bd5e2830 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Mon, 13 Apr 2020 03:29:07 +0200 Subject: [PATCH 152/190] Update area_copy.dm --- code/modules/holodeck/area_copy.dm | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/code/modules/holodeck/area_copy.dm b/code/modules/holodeck/area_copy.dm index 67f8cdddec..316bdb8289 100644 --- a/code/modules/holodeck/area_copy.dm +++ b/code/modules/holodeck/area_copy.dm @@ -67,14 +67,12 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars_by_type, typecacheof_assoc_list(list( var/src_max_y = 0 var/list/refined_src = new/list() - for (var/i in turfs_src) - var/turf/T = i + for (var/turf/T in turfs_src) src_min_x = min(src_min_x,T.x) src_min_y = min(src_min_y,T.y) src_max_x = max(src_max_x,T.y) src_max_y = max(src_max_y,T.y) - for (var/i in turfs_src) - var/turf/T = i + for (var/turf/T in turfs_src) refined_src[T] = "[T.x - src_min_x].[T.y - src_min_y]" var/trg_min_x = 99999 @@ -83,8 +81,7 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars_by_type, typecacheof_assoc_list(list( var/trg_max_y = 0 var/list/refined_trg = new/list() - for (var/i in turfs_trg) - var/turf/T = i + for (var/turf/T in turfs_trg) trg_min_x = min(trg_min_x,T.x) trg_min_y = min(trg_min_y,T.y) trg_max_x = max(trg_max_x,T.y) @@ -92,8 +89,7 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars_by_type, typecacheof_assoc_list(list( var/diff_x = round(((src_max_x - src_min_x) - (trg_max_x - trg_min_x))/2) var/diff_y = round(((src_max_y - src_min_y) - (trg_max_y - trg_min_y))/2) - for (var/i in turfs_trg) - var/turf/T = i + for (var/turf/T in turfs_trg) refined_trg["[T.x - trg_min_x + diff_x].[T.y - trg_min_y + diff_y]"] = T var/list/toupdate = new/list() From 0d0f14d3f842e40526e4da0a40f3349208a309b7 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Mon, 13 Apr 2020 03:34:58 +0200 Subject: [PATCH 153/190] Item color removal port fixes. --- code/modules/clothing/spacesuits/hardsuit.dm | 8 ++-- .../mob/living/carbon/human/update_icons.dm | 40 ++++++------------ .../modules/mob/living/carbon/update_icons.dm | 14 +++--- icons/mob/clothing/uniform_digi.dmi | Bin 344182 -> 344180 bytes 4 files changed, 24 insertions(+), 38 deletions(-) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index da979cd516..a1deb8ad30 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -30,16 +30,14 @@ /obj/item/clothing/head/helmet/space/hardsuit/attack_self(mob/user) on = !on - icon_state = "[basestate][on]-[hardsuit_type]" user.update_inv_head() //so our mob-overlays update - if(on) set_light(brightness_on) else set_light(0) - for(var/X in actions) - var/datum/action/A = X - A.UpdateButtonIcon() + +/obj/item/clothing/head/helmet/space/hardsuit/update_icon_state() + icon_state = "[basestate][on]-[hardsuit_type]" /obj/item/clothing/head/helmet/space/hardsuit/dropped(mob/user) ..() diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index ae7009f5f6..8b4f282f76 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -321,12 +321,16 @@ There are several things that need to be remembered: if(!get_bodypart(BODY_ZONE_HEAD)) //Decapitated return - if(client && hud_used && hud_used.inv_slots[SLOT_BACK]) + if(client && hud_used) var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HEAD] inv.update_icon() - update_mutant_bodyparts() if(head) + head.screen_loc = ui_head + if(client && hud_used && hud_used.hud_shown) + if(hud_used.inventory_shown) + client.screen += head + update_observer_view(head,1) remove_overlay(HEAD_LAYER) var/obj/item/clothing/head/H = head var/alt_icon = H.mob_overlay_icon || 'icons/mob/clothing/head.dmi' @@ -348,6 +352,7 @@ There are several things that need to be remembered: head_overlay.pixel_y += dna.species.offset_features[OFFSET_HEAD][2] overlays_standing[HEAD_LAYER] = head_overlay apply_overlay(HEAD_LAYER) + update_mutant_bodyparts() /mob/living/carbon/human/update_inv_belt() remove_overlay(BELT_LAYER) @@ -457,11 +462,16 @@ There are several things that need to be remembered: if(!get_bodypart(BODY_ZONE_HEAD)) //Decapitated return - if(client && hud_used && hud_used.inv_slots[SLOT_WEAR_MASK]) + if(client && hud_used) var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_WEAR_MASK] inv.update_icon() if(wear_mask) + wear_mask.screen_loc = ui_mask + if(client && hud_used && hud_used.hud_shown) + if(hud_used.inventory_shown) + client.screen += wear_mask + update_observer_view(wear_mask,1) var/obj/item/clothing/mask/M = wear_mask remove_overlay(FACEMASK_LAYER) var/alt_icon = M.mob_overlay_icon || 'icons/mob/clothing/mask.dmi' @@ -515,22 +525,6 @@ There are several things that need to be remembered: //human HUD updates for items in our inventory -//update whether our head item appears on our hud. -/mob/living/carbon/human/update_hud_head(obj/item/I) - I.screen_loc = ui_head - if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) - client.screen += I - update_observer_view(I,1) - -//update whether our mask item appears on our hud. -/mob/living/carbon/human/update_hud_wear_mask(obj/item/I) - I.screen_loc = ui_mask - if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) - client.screen += I - update_observer_view(I,1) - //update whether our neck item appears on our hud. /mob/living/carbon/human/update_hud_neck(obj/item/I) I.screen_loc = ui_neck @@ -579,13 +573,7 @@ use_mob_overlay_icon: if FALSE, it will always use the default_icon_file even if /obj/item/proc/build_worn_icon(default_layer = 0, default_icon_file = null, isinhands = FALSE, femaleuniform = NO_FEMALE_UNIFORM, override_state, style_flags = NONE, use_mob_overlay_icon = TRUE) var/t_state - if(override_state) - t_state = override_state - else - if(isinhands && item_state) - t_state = item_state - else - t_state = icon_state + t_state = override_state || item_state || icon_state //Find a valid icon file from variables+arguments var/file2use diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index 0cfca9f212..35350ccb45 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -90,9 +90,9 @@ if(!get_bodypart(BODY_ZONE_HEAD)) //Decapitated return - if(client && hud_used && hud_used.inv_slots[SLOT_WEAR_MASK]) + if(client && hud_used) var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_WEAR_MASK] - inv.update_icon() + inv?.update_icon() if(wear_mask) if(!(head && (head.flags_inv & HIDEMASK))) @@ -110,7 +110,7 @@ if(wear_neck) if(!(head && (head.flags_inv & HIDENECK))) - overlays_standing[NECK_LAYER] = wear_neck.build_worn_icon(default_layer = NECK_LAYER, default_icon_file = 'icons/mob/clothing/neck.dmi', override_state = wear_mask.icon_state) + overlays_standing[NECK_LAYER] = wear_neck.build_worn_icon(default_layer = NECK_LAYER, default_icon_file = 'icons/mob/clothing/neck.dmi', override_state = wear_neck.icon_state) update_hud_neck(wear_neck) apply_overlay(NECK_LAYER) @@ -118,9 +118,9 @@ /mob/living/carbon/update_inv_back() remove_overlay(BACK_LAYER) - if(client && hud_used && hud_used.inv_slots[SLOT_BACK]) + if(client && hud_used) var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_BACK] - inv.update_icon() + inv?.update_icon() if(back) overlays_standing[BACK_LAYER] = back.build_worn_icon(default_layer = BACK_LAYER, default_icon_file = 'icons/mob/clothing/back.dmi', override_state = back.icon_state) @@ -134,9 +134,9 @@ if(!get_bodypart(BODY_ZONE_HEAD)) //Decapitated return - if(client && hud_used && hud_used.inv_slots[SLOT_BACK]) + if(client && hud_used) var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_HEAD] - inv.update_icon() + inv?.update_icon() if(head) overlays_standing[HEAD_LAYER] = head.build_worn_icon(default_layer = HEAD_LAYER, default_icon_file = 'icons/mob/clothing/head.dmi', override_state = head.icon_state) diff --git a/icons/mob/clothing/uniform_digi.dmi b/icons/mob/clothing/uniform_digi.dmi index 80e8f80b94835907eaaf20102421a629f2e879bd..9deb214335569dc3f88987f0f768b6be48fff785 100644 GIT binary patch delta 1889 zcmV-n2cG!$fEDzB6_6x63*TW_C*r0#YC4}Ss)yfW~y#7kANF6{5SUw-}X zm*2b3zkPW;vt~)Ld+L7r;XjWL7qP{4Pu<5KA0Hgc=*sp_E>yUGd+NRmY{iiO?(xBj z=I*Kc>G9#D6gYQJ-G>`zLaH*eN=}irE{x_v6001?Q6g6{Dk0@6Rnm*ZI%XWr9+}+8 zk&75aA_vJu*D84yO+Jlva3Bp-pJMiXUZhkx%Y{vmbA79gPnY_4pD9X7bv^KOSy}tR zlbKLh+2V4S`ika%yc+ig_VeR|WlwAO)O~pO>hIO*p6ci2$xPWLEp>Gn{K6nQDsu!` zWs6H)L3Cbp_ULTChPon(vOzS*I03fZtya^VB4VYZGDpl@lr07pCeQ*0PiDf;* z0f$GX$SI||bDu@2)J-Kws6#oOh3l&@9E(YHjYy}H7~o2O$!oM?kX3B9IEmIL83eh_ zGz|&52reWAkaq(r76WJ$zpRkzU7QrgjL49V z^?=5Zj;V+5n|aZ>t}P^SNEg7#koRlf;21_vRtWK)+2}H4=z84HQJH~o!{{>P?M`U$ zc>Rg%eqiu_3-|N-Oo5=g4rX1-gJ0PAR2)Nip@`DE_iFjTK4kj{GT=gLIktRa8_}=~ zO;EJCM5~;Et2X)j6Mxgok(oeao(oCrXHv32x{$NvLb3Fxqyfl%T*|xbJ`kYVcRZrn z#*vzYMhcP6D;QHOIxf+Iv~g@E#zPwdgC&>hK5SL4Pyqwp$3GuK^Rlj>@YAg1VgpBz_G5wAUs8(gft1{{R0zqc{5DQtISZqX0lE zAtA@;5^{W7H3K=jy-a~D`Y2QY>`|%!(7hS}O+fgBY|$;RL)1tjBVRw_ctqqD-$EY` zh;kTz2QB=_{Qz{UYrF*_m5pouh9ulFCZ!!_JWs2E& z%2^Bqhb0$^BPJNDc|9}5yrw0Nr{pIfvU5^+rij&pFmUi>CJZeUK~Q0t&rCqoc5*by zThxO~CC{mJPu+))?|%IF?ymlAD5Qpc=nF-EAaPW-J)b#B9QzSWm@!8Rfi7hNGXD)j ztR}NrR0?3T2Z=~^K-FFybZP1qFrggc(L9NTs?AptmWmaouP7`ROug@6BvLdkB|nPR zGo>4fY}}1T>k9{;l;T)lXu8y=JgS^dNH41Ht@oNHo)aLOUsPtcJ(gJyeqpS%scbQS z@R>7Gw9F(vDLBp9Qx1gG6byxgDaWSN%`BGjVHB9v!Rg;WClB`D4eonbRDj|Mzsx=< zpg~*TOHM%TL3!#;3V|Y!C@D`p$1!s~iYv-fAJ}H|W-RfVjr>xYghzfUZBvi@Qkv$( zvAl2GoVGP^Y@5(ItxfXJX>Hr0b6T5!CS>!cwh!3+sc8i^e`=c0AN2|q>Ex0Jnjm{i z7V_;QOLhd@yGq5ly0cysYCoLCLoY1WEI>LnK-6|WVF?sQfps$oLQ9`uk^)pbNhc@@ zJwUMF3PDJDi-D`9FjO4GVgfW8u%r_v@k#>Byx_6}y1rXq8sqm~Bq)4;YYF1F_mSv; zqw$F0dodcG40w?`Tne@ond8f>7!9$!D}MK^tW6OHcBqEwtRA&;L(dq*0fq+zfN^y3p< za=%0iq_cDK@K0&3==)hE5b$%cyCIoPinei3VJ(7;S<^^8{#>I6m;B5WdzE;Te#qX)eG+R+BUX?<9|x(mhsg4iqPe^%)P>4CzFy@w*5@seB}Rq_v`PUyU)LUdHfS<{G2HykU{2y bR|khz2LXpy2Lgvz2Lp#!2L!iQ2L&HF+{22* delta 1891 zcmV-p2b}oyfED(D6_6x^d;+0FR*N+vS=u7iJ^J=JNd1a2=3jt~ISue*iH~AE**_ls`OCk) z{dV~J>$m3Pb+E(5^&J3c1 zF=vo9_PEpqM5o!Nh|czVYAd1`J4AC_5MbNG;!P*b;=sMcu8Xn9z{&*Pz&?^2F;q`% z6eC~-$yGV3wk`f7Mu62xlG;$wlW=<#j&pU|)(AZw#Q}bQrYzZuLsqfg#Zjz1$s~x2 zGwrn^Dt0ERfV>;<=?^RfqAH`rHk4;8n7G1k3+4b4NkkmfNgSY2{I)=P>f5r!!QhyybxkNi?g{ekb7Lw!I*(?!`a-I)hFz* zc-@iPcA$@cGk4SSN{Jv}2eUy-A7^$^YhVbklu>%KUVA>U4Ou^e3^ce06?lq zkz)*s9N%4u13AF^(gm{ohvEe=;Guj0@LPodnu_od*|uA*hp3ihM!tTD?Gce{%nN-y zfro&9Ec}uW0_a-ncn?IX9oL)^`Px<^M7G(VgQT(mV4bZ3KKLRL`uHjnQCp^5T%=OO zL2#N&r95DQu{zi*Q!b0nc{pkufoLyC<%u#@Bf`Kwk{dC!QU*bTWxg`yHZ=wst zXf2c0!^`2*=MO)9{%}_)ca(I;K6I5bkW3nX`;JeXB@f*ICefH7g}|VNfNH>sA-ATm zn@uWkXD=ioH2~#(3y>qVHHbnv#G*wK4^^PABrFvxR$ozAE|`wr!$|b#f@&PZ+S$_$ zMKNeaUKe{qqu53c8Ps)@5U03Z05JROL*qDx^L>4-|DV8ajqYC zZqB|naNakelPg%@a4;{3H`TSwIUmXMxZgWwP_*S zKCqNPfZsK$F0_sHY*0($BrziIM3y2zI@Lqe>YuO#3ZuYU8U&%`P%udWs-R>e6op;3<)s70NE%H$ax^)JeC1}B{Eec zAvRSgPm|of7L#P;Rzw*>1(T>d7P%XSQ~`R^GqUC=L#UX@8;aaIBe4H`>nJ!)J^g8E zM4D3qqEtu5&VUP3MvhzoePgTLoaLy793)*4T`dt_q;IAM;yKHilKu9|3E@ldFxnX{MMxeg>SDgLHzb|5*_f+ zjl{-mb!m7;%MR2tDmdr_l1UQ0w7bqFSby8Prx<6?JkIaJ1MD@m{_dFs zHsbLm1M2+ntF^}6xKl-M(=Db4jr=te-DTymyC)g8G z6`M;pXAk7KlScSAH&^uIWRl3*Nypug!cMc_IjFK#LB=dPP=~+a=)fhvGUd)>nt)u@ za~4#cT%f7_^)iapuAF%SB$`eYc=77g3h}95ynl-q?2&{o$_xemwm0+t Date: Sun, 12 Apr 2020 22:19:10 -0400 Subject: [PATCH 154/190] bye --- code/controllers/subsystem/processing/circuit.dm | 1 - code/modules/cargo/packs/science.dm | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/code/controllers/subsystem/processing/circuit.dm b/code/controllers/subsystem/processing/circuit.dm index 880e7a16a8..4fdc9ad806 100644 --- a/code/controllers/subsystem/processing/circuit.dm +++ b/code/controllers/subsystem/processing/circuit.dm @@ -86,7 +86,6 @@ PROCESSING_SUBSYSTEM_DEF(circuit) circuit_fabricator_recipe_list["Tools"] = list( /obj/item/integrated_electronics/wirer, /obj/item/integrated_electronics/debugger, - /obj/item/integrated_electronics/analyzer, /obj/item/integrated_electronics/detailer, /obj/item/card/data, /obj/item/card/data/full_color, diff --git a/code/modules/cargo/packs/science.dm b/code/modules/cargo/packs/science.dm index a3548a5eb6..6b4733aad8 100644 --- a/code/modules/cargo/packs/science.dm +++ b/code/modules/cargo/packs/science.dm @@ -74,10 +74,9 @@ /datum/supply_pack/science/circuitry name = "Circuitry Starter Pack Crate" - desc = "Journey into the mysterious world of Circuitry with this starter pack. Contains a circuit printer, analyzer, debugger and wirer. Power cells not included." + desc = "Journey into the mysterious world of Circuitry with this starter pack. Contains a circuit printer, debugger and wirer. Power cells not included." cost = 1000 - contains = list(/obj/item/integrated_electronics/analyzer, - /obj/item/integrated_circuit_printer, + contains = list(/obj/item/integrated_circuit_printer, /obj/item/integrated_electronics/debugger, /obj/item/integrated_electronics/wirer) crate_name = "circuitry starter pack crate" From 105f83e7ece3569c0e36c100d863cf2095685a16 Mon Sep 17 00:00:00 2001 From: Seris02 Date: Mon, 13 Apr 2020 11:08:26 +0800 Subject: [PATCH 155/190] merge fixes --- icons/mob/feet.dmi | Bin 22505 -> 23048 bytes icons/mob/feet_digi.dmi | Bin 28901 -> 29508 bytes icons/obj/clothing/shoes.dmi | Bin 16721 -> 17167 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/feet.dmi b/icons/mob/feet.dmi index 123525d49808aa7ae8dd3b06e89b65738532776f..1e09dce605f6f0bba3ca321b70324ea10162941b 100644 GIT binary patch delta 4304 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 I$?En00&sT;wg3PC delta 10122 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 z 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 WR>Y7jTmp;(iGP<7F8ikI_rC#*^|E>Z literal 16721 zcmchc8OaYI5CR483qnHy zj^MMF)B#_Xz16hbB+Xq-U96qltQ{RdAkU1%q)vxLHmuOmGgY)Beu?Izw80n?v{2|v zES(?Bv{hEhE?g&j9(}KJh)}9{NpE2B4-D{$++0FWrX(p|$2^cSzJB5);cNz81zArwDTYrAsxEP7Zxsr9V*`XIMS1Y4FdyXsp zQXr^(?wfZO>Q8USOHArro3FaZ@@7+vN-+(RNc2Am$%A!gijW_Ed|-;9^LxR2sJ->J zLi}C5XQ;JNx%nuAkl&XXpBwo_clY6{(S%VWHoxiN3}lt;)vAFwH+F;pc!%PncA9%F zwkn6!Ew{SNT?*VL5YJPOuxn!||Yp z7ydnrQzKp1^aq2+VrtdPaHXI~4ln}EmDID^py=4nvDukRrYA#N zG^aj$`{eXd>NMBKOR#CpT?3f%op5QqXKD=DVtnQ@fq<*PP5-`mbPui1x! z9{MZz1+I#92Q~(R8nW24+*-7sYNCv4m;>R1y2&=RGqpcy#xxn}b*2)ZYS^X?~DkCk_mpKc!7r8 z*0Fnl1pI{<1|y&&BW6=#$xytw!7>&_{M2EIhJ=TPEFwV^BT8{f{5udC@zdxF6zUgf zzM*UspG4O&u|=%o%Z~NX{e~W zD3!IeQYLR~XG+I~AHKb0e2w@F6;&{@-KZ0BdBaj<|K>s|3X$$_E z8<@WGFr(YX{XA3Mslce&k%gnZIt1oB^`-=Nth6#I#7LKsL|YDJJw|q83aoFKD)(7G zf1Pe-?!{%%Cd9^4<`)#0)atO4Y*8{*&nxKblgY};{`vFgr=KD%zU$6N;w9Jjmy8-R zlZ8t4<882Wd8SvG@pMYGR8$hv)m2qmwKj=)h3MuYX)MF71UhAFt0JF0YLLGbQ^I|T zW-4+|zMIUQ`!)fWFhByT=k0QNxwv9dQg(AJ&CF!H)5Z?xtMdm2T{K z0F1RN$y>tj$9?n%jRjI4OqU)|_g=Yf55*Exqhn&`{`wW;55H5<()tNyCy69@^~!`N z{cBXz47b09MF9zfk1vH;x6bKmTC>`G@KySaZk^rVLDqJ&r3UAwp4CgeCW5i7V_NCX z@?0nFDp=`@H9AKy^QQ!4{Vu^5`1leI4lG4QMWEunhKVbao(ST&ZWBr#9u02Nz`Hwd zciocF6n2U8so;-7SuEC%BM1ZgG=&17qr1npN_Yn6j}p38OV2axMyvx2k1DWJS0H&a zm3|uU0#6CTT-Hg-8U0cAYi>5?cVPT9PRl4RmrWV>MKcZrWo6~H7~rIrmlri1-2oni zlT%fv)w{MSGcoa5$M$eK83%d3-$qZQLZ*Ov@=bb{eDZPXT&3SnE&mngIra^e1;`vG zr}R2^!m1cB0Fbk@bLPJH5AM`2U(jr9Z3U-=jl(cGRW7T%ziK{Or=P)`SCIFTW$^+s zc*O(=6=l9(diD~<2}TgLs_$(H;cX;#L&Nt2&aJu z9Fj`a>L}hOp1vn3Dd|?^^E&_o3&tT^#n8D~Dm~L#DRgiCq4$2o9e)C;UXHEowjnpj zPFy=IN6BjRxkC7i@6xy!&-bMzJ#h(P2ug<~1}WA}_E=&*xi0Kt$h8 z&W=`R7v{XNX&KTX>Lo~tz#_B?_w%q3r45G#xrH(=XPu*5DqZuzh`;(3;N#-{Wkbo+L@}!Z@mZXe zyZH?4Uy)&6J$n}Bm}tSeJEt*F65yCrxLjLpAa_rC(%GWByx1ErwG5Lh1OKm=w5kCMG^CTm1HqB6!`V{y{-XuzX{{HzzmS zM4UVl*b*}p5v|;4%&Q7cV$JqmCDBpGpP>D_L7JoSmJKcZ=XN__(Ah(#~Du zj1p&9dv^~qe_rC%t7#lN;&;Nk!**U~!ID|SEvH4i%s>XsntF}6bq9}V2ymw9)(r#& zoG3M^+0WXTE3w31auk%%HL_%0iW9|j(7Xx{S#I_aw0F&4+~}tUiE3*TUtL`VhlCW3 zmb+PwT9Q6BF>t)6tKLV6ORD}>!{uqnp1sebm574r@_M!5ZKQ7TqGx+D_~|-_q6ch# z{+Rf>K=;45FlfJ_tha@RUM261NZyg3y8alK=F=^DsI4vcrgn1TvBJH*=hxp` zLB9m{1f9Yj1}9h=_H4p#V#P*E`gdmSXM`V0wX0vRquOQ|hVzQV+y{l|WQ+*XGoS`(PJ!|o5i{UstJiHic^dPYndp|#6 zMMXtPX=zTYF^bxgulRIhf{cBSgKpN!tPl{^QIz4bN&fejc;b;*2c$ot!dfc|w}Z3t z-YLoth6TOBH>%cYFiRf$1>_DS93jyq%fV0i#p5=^R@24m6Q7@93Pr)!!&w)I%KOdM z_X@Ll<_eERVU zr$_-9=*H)@vvIMp#*>e3AMhBNUmbtEE?xQp@j5r- zey^eNDjsqN=6R+lTEfUga)It6mqxUtoBfyh{-&Z8N^*O9tER5b?!K=Ub~CH*K?b&+^0orRTBVfMsyMJugh z+pz#h#CL~`ItYP*;p?HWPl}LfXcrjL@m<&9?{OldHadBF3_J{nf{H5WHl0@xeu}`Q z&lcI46wT+~G;NCS4ZoVD@riG|Uh!!>s#{F?yAJD(AeI22oVmF<&~)%3`{WMRt`zW9 zEPHvhXn`kMu`l%&d-cI*-G`V=frWNXd1(xT@L|W;;l0Bnj^8Hf^H35WJ(M&BS`!nK zz$gv{c5)wm;V3AU3=Y0dlUq@Z=b1_JPJ4UnCP+&~pvFaeUFGA7#b)HDBO7zu{&~$l+mzl4thw-R5X&I zz-%UVocgKKd9gEE&&S!$WOM^vorL_3{)WOxDqbG+0)%M&sIuzsk}DB9rFuA63LuCN zs;c@d=w-irt{s4n{e68gRaI3@?rgbIkr?C<|CV?6e^GlcaN5}8EZ^6P)e6Bc^o%hi z!k(*-8m3cvQ9Vd(#R^rkg;*{w9&Oli=4G9qo^KU*8v34f6TBk$1wBwR`SD{)1fNdt zbHCm8GPp3#uqswtv+u6RCPk#~0uI26;o)I3OUr-wxyh-iO$~@+x1)mt)EZWO1_R7G zjjMue0Y||TJ#d(XL#1^<^u98p{4xt#-Mf5YSZVSMN{c|YQ!yOliwkth!732=mnJbfq0k>d-yp zu1TPH$ihGUfg7H?X?^#{R$oc{D<}9@?UsAWGvck67OFe>f5yNRk_i{}I_0`F-xu0zY zRd_3e07!9c8i+aE8yXwoGVuKS41Lo!En#-y2-pOh29#@nAGd=EkYTSTJxr}_jjugV zV({)S9(e=QCu0xvYM6%4l_gnzt7(^AxMXCJ8k!4C zujC7DB`}dcXR|KzlU4zec<_E{C%YB&lRMaF!(SDL70G`^I}Uy$f$Ik*p#_&fZP5G zSIBU6d|MG%tCc!sM3Lt&lIHCS%FCnj@~D9wZOWfE{wu&b_DFoZKelZWLS$A>lLP8! z(rm13I*8&$jn>&}9bG%c%2z+I0JviCqEP;C5Ul2JrJAm_ZQvL(RcsgHbXy?~&xO_P z6~Lk|`!9VNR+K~n7|$J;XKd1}C>ByWayp_eAmhFl0EKRW?MH0h6A|4n601391BOFxR{)#(M<4!}M$e_Jnkx0l!y6`=f9RrIDyTA#URv`K zR_p6(F^>jM3+#HcS&qDxWlslKHU=i<-fRUpBqYQJoI5UKY)olUow~bgrP;iX3jho} z|A(=eZ;vnKtr!RCgzR5$%&s~vo*~=WwUPy~OJ3ig1jOikpT!H zaaq>lNA=-L+v6pGMrj~0>)gc32YGty!JXfy&c0kLP?!=3o79nRYOVFcuxdIRmc-K& z66*TcaQ58KakVD)1>_b6M+jg%{l0US*xtUjW>jZ4|9e`~a5#xscS=MmHx^*&r(4N} z91cr-qlf}uPfl>k%6@IuKWy&Qvmc*39X|%eU$k3OQT|<#_0IA<#I=Ua;rdp(f*JbJ zi&56(P6oa-nTtNcH2m9KjKV%{iQZgDv$1t*pzf|>K6pquc!={o&5-qi`z(U8nqDbO zm4>pi=!Xw@gpoww>po>%ZEkJFW@H?y=!F0rR`x!dnUOL4Wl$meWoGyLS*eqDC{bDO z^~P*r`|Nsvp#3xT@GybMfWgWKwIfHG()R4xb;C9jk`pX<{|DQ9@P^rezX`m>v)VR%jv|-Ha)diiAUh*EpCq7@s6w=~#VNv*mUgjE{sQ|-$hm(={So4)p z3kDepcxmFEG%2Pm>5;})!asM8oXx3omq{(Q?)k;KN;`^ zi5uKyX|+G7)p?!3!kXB?fyw0eSxO{67sa*r@&Ik+|2<#^&7GS7~H5t2fJYAtwTfA%BKY@R~p3(dueFZs7gkulLCoJihTP z`l*P816y|6wHdlUD@sh~ZzAUoFs|I))l!FHJaF4P>Hf*fud~OyXFs)ow@g4t*t_}w zHxVj<1eC@?~awh*U5)(xYmn4cA{{fep=UJ zjC1+5l5a&!r0uwtP2wuf>^OS&!tmU+ZOb)yz}3=|*E><>AP-!RlZ)C;{JCvfArZzt zpB}@Av|ocPs6K7XhVibuo5ek5kTwRjbVo01@Wf#k$`3dw&cG*|Zu06u1`RO2okrNs z^`co4GDX~a=|WsE-8mjCkpApoDllP!K_%C^H$i_7&})~B;9-l6K$Et)MkT+Q{R7C- z$W0}c9Y=1$X7GD?F6PW6BjB=~@aoF!tTAmA>VIm&&X9kIzW<(g{VzK4f7fK$fYbmK zpxxH7Ey7T+K%3=v#2nQ6{B*6l1PjFJm_m!-dpb_H4y{2H6I}NfUEX9JB$O%8=}mlY z^5*ldLj4=((lI8Wk7E=ZISx78*_MVrgKG+q4^~y|saw}8ER7s=z-XfS0-L^?(CaAF zDk7uY;Nl+c?%;?t51fYG@5pYcUnOLhU-Kd9G&p@Hz{3-_a$*BvM@AC-3nIV-yg-w= z{+l+(jcnVDX=3FSy3rz2mj1~k;--nK4s{-U+`|*K$HDVwA6(^0D_g}GAo?fHuwgJf zGWb*O)KMJlga|%p$Ul9ee=gMPruE}a;adRXgWe=Wd->t8&)C4@dqA?#T1I$4xw8hz z7_j-M2YK1fbD<6!Jgx=dxUo|jCL3w$Jzy4<7sNG@c=0Ek_Gx`{aiteZ4AVfBA>#Ws zYv3E$&%3nYyu?Z4-+{@P7w(F~#&iu51nr%lWe9vs2~cc}tvbZ!x#N}?4WkO;Ol1=is9F1@1=J*Ff$bWz(!=83}>a@SV-vDn^%7Cg~0^gPub~`OK zi3udeM?6z)(v=6Q7(=hBtzEeVXYe1muiio(?vrBiS+{y3vsLw7jn&d#M_8>!r!E$L)ao#Z~VFFDv2rYGf9CnHQ9&?-|?WGeDZ28gskAkNc>XCrvz-BNp_t zxcIjf7a-BA4?hXrs;UxZX4HVt_q6rw7olGr%trV1$%Nv7M?N8;E;&r5DY?3iK4S7W zul=f5`OV5SM@KW)Vjh6HmKbL9^~*QqtNW~5I*GV=FHg#dv=-&*68ZOM&2+09A%s!~ zxGOtn9@xZh+Ha0Y?{N56rND6+3M1RYFpK@j;s?J@=b3w1g)y3@la1`~hC~GG>MY>V zAQDniGLa<&1ccz=;Gc^?*OHQw$j!w#Ek_dWt`2r`7>T2*d7jZoU|?Y(o8j*}piE6- zJ{O$yi9-->@ol`TR#K4r@hbLq_kCi`;AGjh^3APbiN3|dRUsF z0uc$x+QFg6Anf^Mr52MGQ_}J4FjXPq`m@c}g*Z8eYyu?bf?i2vTmqxKqHdeX0_EAc ziQEmX>u5+Un-jq_O`(<5Thn>4#>Zktp~iF02fUY^UPachE1dd?>fN^J#~ib~=={h@ z(%D#W;t*jGL*_n4m~?bOfI2h$vqVE<*-n30#m4=&_YoGs`m=t}g`2azWsU-tc5Fj^ zeMNV7Za@L#;^8T7>Nops#_{*$B)YvF0vy}#0?dmmYuT`dcbaEjD2gC0WB*%0O0*xi zqoAyr9(?{|>Gigv@M^w+p{BIoJ(E$;_BGcA6xHYTy~3A(yD;WWX&Tj)Ifa{0Y!-LT zvqz1O9md&~s<3R5$nl>zkvu)epYZJ^>F%9!2JsY#&FTsZ3VM#>1s0Wudh}Zh;Y~m2 zc~JuwiWi=jHO%Ed|Czc2SnCd8tlAgn;E{!!)$H=nn1_so$6UpX6K3Z3?)I?jK-E>h zE-n~w7FsH=RNr4}c{FG2RB+|?ND@!9k>@oej?`Wo+1(1&vFIJ=JCx{;s!6+HNfC7l z9Zwyn2cL$7KG!dqzn(qLtxj2B>it^OQf_tpXBIkpj5PP`a58OdUY`yfd57p=Vlsc} zj7~;AUQ3iV)jGA9(!3zQvzTkgQ7@6UzW#)YlR5sGSzHortl&d%P?2>dFZlkZ__l#K z;QOc5gM$V^2YVuNr5*`llBESsvMxm^FpGMHDw`%dn~D$Pmvulyd2Ckb0eh^n`yT(;cSL%nue1<5;8>n+XDJ}9C9T!622fFaG9%*-` zWPP2NyOF0NJ0tV;4SwKt-c^6Y>($Ot{s(=Jp+pc0G?tKZnAHOSK-!C|kCi=p&H(2g zh~AR1Cd8rR;tCE$3BSv@2x_@m_=5St{&H;W#dEOmNNfgKoB^$y-6Y;#t|Mu~-w9>t z>+%m*<2%yE6_0nU*JCorhmJ>2lxFPQBr%%%%k zuDHslYSL_pC?+Equx38~~j}rji+=S1V`BOq~*VsEmT^l-c6}sav8drXt zj_`dr6M7{Dz-|Fwtr*xt*qC;xqVYT?-b_Z2EG-f4jx~C#$A5 z0v1nOSdnQjn7deQ#1DB*u@i=*rj|C18aQs0^V`f~wNo#hCtshHAifcpGo5tXrm0r3 zo1Et9Fu^9?K8BKy^99`56+??|;Na)z=+5#uSXgd-5tn8bwv5E~_6`R-Ixt~Z=r79= z@_Kir+k40i(OX;Ht)T+puA)+Vn)a5^PkwJI9g%KWDlSF?>N#>mBqp$wSTh)xuNQAG z1zB+ec{Lv+z2!Lz2Zrdq%}%UH;fV@6SB6T;3Kr7^7+LLfp-BZj@7;ybciqt`lC_zq zSL;h8>@Ho&AP@)uThP$azbjr)y5{@f=XM6F$91e_`ImQJKU-j;f6SBR2Aj7?FGBUR zwCyL&v1I-RVUvQ;Fwx!QXX8m(u(tq1(PE<+=`qvW^PVskIKCXOK=y%`XWG2NC4Vuj zxor<3u)0gof-zLuA#v*A3aix5K>=wCfy_3CF+Z7cIlaY^&E%3ZP`~J}9AtLAu$3Dl zcRX-faTz~Lr%r~wE+ zacpnf=QsEZhRMoad}7m-5h6ubP2K)LMF$x3_3b_?WNg2t;Vi zlzToUF!h>L@;x!0x;mZ$h154*woEc>`cKcENR#RLLm)Mt3|J^a9jCtBd}8guj>g- zDpms|eiYMOV_x&seY}I;6x#0X*H)FGR;<>l#zp4M8|(F^-qJtKk0yQAF7&~+2Ai?HYeB*!ZX*2)E zdMd<^_?@9BOG#B7nYo%v%`jiIUpfbAf&4!@J(02KKWwea50b_KD-TPTTu1G7W$7>S zXBf&owwXP;PG<}{I~gkt6>0&3mB<7=^Gh28r5eM z6IV`q#eGT#2m<2H-6JLIS)KJ;x+31~n1v+8Y3fP4v^!nRCmtW(e!wyDIVd5pBptv? zKDVn_j7Hcq7gA&%CP-2j0Ak*Pi(y|@{qz*m4yIrQRj5?3qvxFcw1ezy;KCAi3$yf0OC--!a(#k{qQ)YC!R#!R&1Lf(~|<1~u2> zYN>hd4;id{Y|ehCq*v*3_0i*+^@&tBJ0Hs$}_$JQ&jA>t7{$il8`|9`t|E`Z$Q7GR*<3KYc66_$DQ>L@Urj8omNVGR>`Z0 zNYYe$;(#OG`{$3cii((<8`t>wxc>f=P_PC=7}0#KaoI%|^wPSj`Tp=Dx&=qSEyC9J zHsT9H!r7u@Y)NAJQyL)B>~eFD`TY6EnMB?dPl@aH_OSCp!9UkHuH@U%&R`#c_PWmV zk76okhYcxz$6S<|JJ(Hf`JK3;F9)TIyseBF+S^bJbb1fdIUN=b-xGhF!4`kYhe`~8 z`}z{W@%iRv=I#5t-me_WIi&v@)qbchuBa#kLLz`ri-Jv(2NiZ+N50q|j{i@AIcQVe z2DW&u^FLK)tOKo3y8qOfvr@+_jCe%fDSm#NR$M$i`^`Z!R1xKpHwO^NV0>Qb2S4j)_bjmzv5zjD?bxo=z;}$=2Q79YMk^r=OxC@8D40 zM3Gy51{bplq0xo+J6fCSS@B&*lb(!SLlsHU&*I@d;M00UFjNS7SBmYpn&CXTnE}Qb zdfzNF@|ogO%1`>J*Q1ubv#UkgFQ}DOkj^UA6ExB+kzAYR;Pc4{2vz-4aM8mOXV|g2 zk;=0c{;|e~;%m9iZ2XOl$;qXo`*(X$uZ2xDUkWoKNM_bAfqpRy>obdOAEjf9w(YS< zh;^zz&zJo$u|sYS1|*FMAdmyZ??7v{vj$WUNOp1Y+k*F*#rqil5-5)U#dEgmWhsb_ z-HV1z_B)N6wbJB>OJuj2=p8C>KwP4W{VtkMs>B@PF9t{WRhN|8h2fw6X?`H*;#02I zpI#|^{ORxsIZhqF%Tu=U#vb_mFBWX8kqrL0ar$WWu#k|mE*wZqT%5SE@pr{`u>Vb` z#S)!>K-%5iT~>x&^3umk_7zz##Qg`Pj;7wV@4T4@?LO0tVNUNSLi!^Pdi?e3uKr{| zSD*|ad=I7_Bk!h5OvT0K>=sl}nLeM1-EoaKZ%QxsY3g6TBIzG&mIEkr>%-kaTxMCURZraEW3CB!(OoZu$ZW)SW*UklSvxCNbANX ztiO+%06G&zWW&4R9fMUta;0@;6%N^Q{zx*0ghva-Sto-{D|0 zxi@3EGD5IqTXIZub42~-UrfxFXSZZV2oV*+3Qq~{IoK4u7SBZ)$#NHCLy|L$9RO;^`dS8-3hlT8^AmR(UMz z+p03~D>kUzbkpd@F1mDZ@_hPmp*neWH0~YyS=l7VP(A{X%JlJMWw`hL z?QY?1%%h8EoT|ROv#=iIO;l*;vHr`w2!7XXnZgMX_p$pOy+K(z0a4g&JUv-+qI-1b zIj@jNa5jF`c*N+Zvo#~G@`vv`Hg}=*wi~sh`~C#@`?xw(9O>{tp4zG6^3a8ar~@16 z=(@UOv$jtB4SrR0Ol&Xzi`fU96kEibD{e24ZyjCg_aIc4O;3>%|5x^fU9lUtnMuZ$ zmlH!zxutI&bvkG!*D{eCGn&dak=kBo1arbO({YMVA|Ji+@;#DcE_*;TrTo_qM3;H3 z$gVyy+Nf=Ag~*E*yxX}i&K0gvK2|jRu1;kWLk&O4dQ9H!OF|vuMgYO?NN(keq@#A? zIVcD$@0tSIPR@4%G!(i59?`K3;RvYPqnr0idIw#OvkBkolg9)g&)wc4A@H=;N|MAU ziQDRuLbkIg;7Np7x+~gm^w~K=(wYRKwv#y?k_bm;AW(fGUgYd}d8F({> z;g44{uWX&4dZkT@1-+}NV0Yab!nU+TaVzi(5w~#{$)%8m3>&AdEQziMUKEMw_gJeE z3st{%ouT!1d}M9)zRo}0G`=y74%0&Z>`-a4wU7D0ePqYx=juHWU&~hM_aLwHbdO++{>L<=b$h6KgL_xwY z;dA*B%ospP+QDrK`^7~@oh2OjLTZaH$ zaSA@F7sN5?uNNNZ_F8U464Hx-M_ppXw=Pal8`^%*QR((N^SgPNq;n&#uiAM)&5kQp zN>+skM=p@W-znM!b&A?Ye!bhXR?B92I(shX`>BHz4ap^_YcVVKPD(m%jyEl3GPq$phLos3_vev(6pfI+3ObdiDjWQ7H7+m=5##9J;gZ~`PY3OIZ{w=Yj{@|q{1z)oBP6<(O z_KI2H0%90Sp||O+v*_sk2Rm#%?Lpc8Gn9>y%XpM74dIPhUadOw*6ISkMqJ&Dz5K*& zd+#1Xv=Q?q#?CjYjX)A;$jqC#jQ#8P$K6!*eI@J#quw?#a26rTX{$W9A1zpYprG-h zEDv)C-f=AFkLh??#VJmIJq3c<(FDTpsx#tMvzDv=sF;MysD1LWyTm}(G@VBSZMX(0 ztvJae9~QQ4qF^_M<`*QRIAuY4w$e$t!=5$X=f@_{?R}3&OXimaQB2b5XI5ABt9Ph0 z-R}&(vcAYDakG7)GyGX^_W-9vz9VW{5EF6At~ZgqT@l`McjeuS^7QTD40T^FHNF)W zYy|lGxN{;7voCi}`8dQJl1ph4PCe^U2(60q^`#Y=G>!~3T9@yf&hbg%EB&pTpZ0pr z=XaBzwN}-aMK&7t(H15cQDL95mP|{HHdldF0~W)9$@BA0G(M7_D4x&!@VUEJ%5}{u zD^lbhDwyzTZ+?Zo3ji0UrnG+d(0s?$w&!pHeQQBY1(}ozX4}UaHJ$sy{12LG^;$Jn zu{BoXZ;BYpIG2cnS7h(wN)N)h>S3kF^z8)j+TrOX-v{=0`veg^Tk0m z_V(eot6=F|x)T-)M<+yOY?oJgy>=;0)JNqS96m)Y1Fe-pYihu61vbFu*Sc{I1 zE^*%yR9l8^o1TcnQ+mB18O%B9JZ(ABb;pXoHRPsueE(UpI#$GzBl+aK1-P24;Y`F@W3x9!>tT@>~5!`h%ngP*_8*+UHOsj*XYR5 zkCOtLeDPHkRaG2U?mwS_8B7S#lCV$Xs z?K=Vyn#?IN+PFZ5xl0I~bxMXhy1G_1T4-wcbrE(!4q3- zck)`uTlyXTBHgEsKnfuD>g*b)W3Yr1LD{I7hJp5TZa1xabB9_oO8AX#6|e>~ zzc=5??VEu=gk>|UAP@`EdWKbUZM(=O4QdKIrvwIeIE8>zlz~=EZ_IZ>JY3wb<5rS! z)K`D)Luq;h%tU3`aUt3$Q}s&Vfq}tk1v){7Ql{Z1YlpN#y zC@7Hf1L<)zYuK0kbn@>HCcml0f!A0Umv&H|BjwztZ1`Mm$8-il@5Npo;W)CHT7+_$ z7JN)~LJE22g+;`bFf;Q?CoSFD);7PgUtB)?V%qhpVCBtY{J4bx#2h6rK@XZ5rO81N zNOnLzjO=MPWW0D1_>Q_iXav{_Gq;d&DJbAXnJP!+dJgW%dU%$QS7>(BVffhG?2z}NkzvHPEs+h(lEBF4rl-Hl0 z9zHFmU8-^hTR}ii2x}>jPXNCa%rfA3uJeirliv4?9(@Xm^cuBJsNjWe;f@Iu~5uzyP;S zt?&6aM2qQ_dU$lS<>Lc^|7#MEcS){xQPB+xN;Gmg}I&e(^80!Y-c-Kbw z$mX)?+-4_<`4(vdSEP;pco$CH?FLvdzvu1? zLM&1#Z7+Vm`^&#;-zApQo*g719BEzee!bLI!fv~ri0##Ugg=5jH_KQ1XptjG{m@6; zT2tEH59*#g|C_SMndDX54kI?F)n#1d^3rF3phU?xd1cZ)Fpa~~<|8s`VI~xFyUz$> z(sKiApOhjPEks~t>}3IE3+o@V0gV_4vI7NDz%;~sW=XP>D=z?Vt`@aEkD}c~hi>O~ z8$?U+e2?v;-SmtO&Z^!nYtP0tWYQ= z^ow%*Gjmgao^^$~4+b~+L2>|-7p{D0w-4$y6o@-Zj!LM`V!*qRUYDDVe}Y)@L;T#< za~)$JyUucNkI{Z(qX1EXswc1wxn(=JwdUkd>*{Z?X90G_h6!O~;59zSc?XbtRj{0{ zxp}_kkaT!!c?%TGH155WBM+Taz2wT~45PX^0Ci?8JO(Aa6vexg~X$L|`Xxz5_= z1Jrj6_j#_x<5bg^aaD`RN99fvvNT0wvbLN?+^{Z?We~^2A@Fk+)NxpqxHGkir2NX2 z-YJi`^_1I;%Ib#1pKg}C^wvXP&aBXwo19J@Gci~Dq?!>4zYGpou7Q{Gf<9gUM> zwC9?41ltH{CK9YOEvn2E3~I34`$%{9{@7DtcFa=J_tTo*4_%r$rVBO({wqX0M7RuE z!mLP~4k=pSQnZE=+9j2n^4n%w=GiMFe0=3g+x*`EIj!%nfGW3&?sj&%*d7-~-filIKePKQ5dd_ScPl|=WN3&D{$M^WEf~+x zivAF(IgGm26kXqWg)ggHJJJKHY2v-r)S(2LRh_q-*sa^T1J%Fe%Q`PNLLEtHK&ECb zkt^PZJ`sNFWNsi^MFz0`tI|P=!|_~cn!tnv0#ac*x-cM11ho||oR^oEQF+#V#D@&A zY)VAvZl|p9F%UYUjPMf}Dp;i(WuxX#&D;o()*6seuTMxcDl3&Vpk8s^W(~j$BqYxg zGc)V`RwDm+Ng0e|ah1zv{2N)Fm5FI{x>nG0OIF&Hk8}eQd51*bLKKJ9u$)CXIVC~T zSPY?{`0YOm3J48d&}pkvf%N;f*B>z-Bv=qcZGMW`*q_oP$r+{{G>95J=n(N0nl@{a zsO^Yuv1mZ<uuA#rnD3lmVlpL%f*91iOm8cux|#LRF1t-#t*8Glyr2`%e^JG z9vQV~&px|mzURy#b&dD{7#fo~jSM!o-ocif5eR+yCNlGYN4ax zK~;YrNOJ^kjd1>Q3`1;G?_eC^E%+R;IfE4S9i57$eE*wTn8R(nrTdc!7fgy-71bgX z6(HDp^|~|vBNY)8-i_FYG}Apv{`)*V;PPfoM@NUx`;wlUo7-UzG)0DL^l-k>a(arD z<$d!|&C@38R6bc|?fL293!cKMtCa6kjO71nO+TV)aHFBn;!-jL|0)3_`|iDDxwz5i F{{eH_t6%^C From 950038f4a776387bf91aeb96abb4a29d224a8008 Mon Sep 17 00:00:00 2001 From: Seris02 Date: Mon, 13 Apr 2020 11:12:16 +0800 Subject: [PATCH 156/190] merge fixes? --- code/modules/clothing/shoes/miscellaneous.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 7b6b73bec4..0635d52000 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -388,7 +388,7 @@ /obj/item/clothing/shoes/wallwalkers/equipped(mob/user,slot) ..() - if (slot == SLOT_SHOES) + if(slot == SLOT_SHOES) RegisterSignal(user, COMSIG_MOB_CLIENT_MOVE,.proc/intercept_user_move) else RegisterSignal(user, COMSIG_MOB_CLIENT_MOVE) From 468c59bf4936080bc47dbbc3e5de72083bfa2bb8 Mon Sep 17 00:00:00 2001 From: Seris02 Date: Mon, 13 Apr 2020 20:12:20 +0800 Subject: [PATCH 157/190] oops --- code/modules/clothing/shoes/miscellaneous.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 0635d52000..1f410e148f 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -387,15 +387,15 @@ var/newlocobject = null /obj/item/clothing/shoes/wallwalkers/equipped(mob/user,slot) - ..() + . = ..() if(slot == SLOT_SHOES) RegisterSignal(user, COMSIG_MOB_CLIENT_MOVE,.proc/intercept_user_move) else - RegisterSignal(user, COMSIG_MOB_CLIENT_MOVE) + UnregisterSignal(user, COMSIG_MOB_CLIENT_MOVE) /obj/item/clothing/shoes/wallwalkers/dropped(mob/user) - ..() - RegisterSignal(user, COMSIG_MOB_CLIENT_MOVE) + . = ..() + UnregisterSignal(user, COMSIG_MOB_CLIENT_MOVE) /obj/item/clothing/shoes/wallwalkers/attackby(obj/item/W, mob/user, params) . = ..() @@ -414,7 +414,7 @@ . = ..() . += "It has [wallcharges] charges left." -/obj/item/clothing/shoes/wallwalkers/proc/intercept_user_move(mob/living/m, client,dir,newloc,oldloc) +/obj/item/clothing/shoes/wallwalkers/proc/intercept_user_move(mob/living/m, client/client, dir, newloc, oldloc) if (walkcool >= world.time || m.m_intent != MOVE_INTENT_WALK || wallcharges <= 0) return walkcool = world.time + m.movement_delay() From 6157500f2557a5e2d97aa73bd3e35416e68c797c Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Mon, 13 Apr 2020 14:16:48 +0200 Subject: [PATCH 158/190] FYI, Dropped() already handles it. --- code/modules/clothing/shoes/miscellaneous.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 1f410e148f..7a3ed902ea 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -390,8 +390,6 @@ . = ..() if(slot == SLOT_SHOES) RegisterSignal(user, COMSIG_MOB_CLIENT_MOVE,.proc/intercept_user_move) - else - UnregisterSignal(user, COMSIG_MOB_CLIENT_MOVE) /obj/item/clothing/shoes/wallwalkers/dropped(mob/user) . = ..() From 8145513ba76d55169a9cc8537554948be4468595 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Mon, 13 Apr 2020 14:19:13 +0200 Subject: [PATCH 159/190] Actually fixed wizard garbs. --- code/datums/elements/spellcasting.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/elements/spellcasting.dm b/code/datums/elements/spellcasting.dm index 69d628d9d2..877bcdbcd3 100644 --- a/code/datums/elements/spellcasting.dm +++ b/code/datums/elements/spellcasting.dm @@ -34,7 +34,7 @@ stacked_spellcasting_by_user -= target /datum/element/spellcasting/proc/on_equip(datum/source, mob/equipper, slot) - if(!(slot & cast_slots)) + if(!(cast_slots & slotdefine2slotbit(slot))) return users_by_item[source] = equipper if(!stacked_spellcasting_by_user[equipper]) From a1ade99b98686fc7693ecf6a09dcbd1433364fdc Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 13 Apr 2020 07:25:46 -0500 Subject: [PATCH 160/190] Automatic changelog generation for PR #10986 [ci skip] --- html/changelogs/AutoChangeLog-pr-10986.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-10986.yml diff --git a/html/changelogs/AutoChangeLog-pr-10986.yml b/html/changelogs/AutoChangeLog-pr-10986.yml new file mode 100644 index 0000000000..bac7b9692a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10986.yml @@ -0,0 +1,4 @@ +author: "Seris02" +delete-after: True +changes: + - rscadd: "wall walking boots" From affac4d907ba6c3e1f83958522dc7c908eb90dca Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 13 Apr 2020 07:50:27 -0500 Subject: [PATCH 161/190] Automatic changelog generation for PR #11275 [ci skip] --- html/changelogs/AutoChangeLog-pr-11275.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11275.yml diff --git a/html/changelogs/AutoChangeLog-pr-11275.yml b/html/changelogs/AutoChangeLog-pr-11275.yml new file mode 100644 index 0000000000..5a3ce31631 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11275.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - rscadd: "Reenabled the swarmers event. Also blacklisted another dozen other machineries and structures that may be critical to the shift or station integrity from swarmers' HUNGER for materials." + - bugfix: "Fixed find_safe_turfs() searching for turfs with concentration of oxygen lower than 16 rather higher." From 873e67f79cc495409013cd18ea4a6f0de469594e Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Mon, 13 Apr 2020 14:57:47 +0200 Subject: [PATCH 162/190] Update hardsuit.dm --- code/modules/clothing/spacesuits/hardsuit.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index a1deb8ad30..ad30bde78d 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -30,6 +30,7 @@ /obj/item/clothing/head/helmet/space/hardsuit/attack_self(mob/user) on = !on + update_icon() user.update_inv_head() //so our mob-overlays update if(on) set_light(brightness_on) From 5765ceb316cc91dd5513834edaf8198e6e336477 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Mon, 13 Apr 2020 15:02:01 +0200 Subject: [PATCH 163/190] Update hardsuit.dm --- code/modules/clothing/spacesuits/hardsuit.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index ad30bde78d..42a162d730 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -30,8 +30,7 @@ /obj/item/clothing/head/helmet/space/hardsuit/attack_self(mob/user) on = !on - update_icon() - user.update_inv_head() //so our mob-overlays update + update_icon() //the mob overlay update is already done by the update_icon_updates_onmob element. if(on) set_light(brightness_on) else From 0816512150d221acf17caff365f2e6d8b9e3eeac Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Mon, 13 Apr 2020 16:09:52 +0200 Subject: [PATCH 164/190] more work. --- code/__HELPERS/_lists.dm | 2 +- code/datums/elements/polychromic.dm | 38 +++++++++++--------------- code/modules/clothing/under/costume.dm | 8 +++--- 3 files changed, 21 insertions(+), 27 deletions(-) diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 8887a2aa1d..a34b3ce67c 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -555,7 +555,7 @@ for(var/i in deep_list) var/key = i if(isnum(key)) - key = "[key]" + L += "[key]" continue if(islist(key)) key = deep_list2params(key) diff --git a/code/datums/elements/polychromic.dm b/code/datums/elements/polychromic.dm index d7057cfdf7..5e1a3e3c73 100644 --- a/code/datums/elements/polychromic.dm +++ b/code/datums/elements/polychromic.dm @@ -6,20 +6,20 @@ /datum/element/polychromic element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH id_arg_index = 3 - var/overlays_states //A list or a number of states. In the latter case, the atom icon_state/item_state will be used followed by a number for the overlays. - var/list/colors_by_atom = list() //list of color strings or mutable appearance depending on the above variable. + var/overlays_states //A list or a number of states. In the latter case, the atom icon_state/item_state will be used followed by a number. + var/list/colors_by_atom = list() //list of color strings or mutable appearances, depending on the above variable. var/icon_file var/list/overlays_names //wrap numbers into text strings please. var/list/actions_by_atom = list() var/poly_flags - //item variables - var/worn_file //used for boths held and worn overlays if present. + var/worn_file //used in place of items' held or mob overlay icons if present. /datum/element/polychromic/Attach(datum/target, list/colors, states, _icon, _flags = POLYCHROMIC_ALTCLICK|POLYCHROMIC_NO_HELD, _worn, list/names = list("Primary", "Secondary", "Tertiary", "Quaternary", "Quinary", "Senary")) . = ..() - var/states_len = length(overlays_states) + var/make_appearances = islist(overlays_states) + var/states_len = make_appearances ? length(states) : states var/names_len = length(names) - if(!states_len || names_len || !isatom(target)) + if(!states_len || !names_len || !isatom(target)) return ELEMENT_INCOMPATIBLE var/atom/A = target @@ -30,14 +30,9 @@ var/mut_icon = icon_file || A.icon var/list/L = list() - if(islist(overlays_states)) - for(var/I in overlays_states) - var/col = popleft(colors) || "#FFFFFF" - L += mutable_appearance(mut_icon, I, color = col) - else - for(var/I in 1 to overlays_states) - var/col = LAZYACCESS(colors, I) || "#FFFFFF" - L += col + for(var/I in 1 to states_len) + var/col = LAZYACCESS(colors, I) || "#FFFFFF" + L += make_appearances ? mutable_appearance(mut_icon, overlays_states[I], color = col) : col colors_by_atom[A] = L RegisterSignal(A, COMSIG_ATOM_UPDATE_OVERLAYS, .proc/apply_overlays) @@ -46,12 +41,12 @@ RegisterSignal(A, COMSIG_PARENT_EXAMINE, .proc/on_examine) RegisterSignal(A, COMSIG_CLICK_ALT, .proc/set_color) - if(!overlays_names && names) + if(!overlays_names && names) //generate overlays_names = names var/diff = states_len - names_len - if(diff > 0) //It will be ugly, but still functional. + if(diff > 0) for(var/i in 1 to diff) - overlays_names += "[names_len + i]" + overlays_names += "[names_len + i]°" else if(diff < 0) overlays_names.len += diff @@ -61,13 +56,13 @@ RegisterSignal(src, COMSIG_ITEM_DROPPED, .proc/remove_user_action) AddElement(A, /datum/element/update_icon_updates_onmob) //Since we can change the overall aspect of the item. RegisterSignal(A, COMSIG_ITEM_WORN_OVERLAYS, .proc/apply_worn_overlays) - else if(_flags & POLYCHROMIC_ACTION && ismob(A)) //Not safe until mob icon updating procs are standarized and stop using cut_overlays() + else if(_flags & POLYCHROMIC_ACTION && ismob(A)) //in the event mob update icon procs are ever standarized. var/datum/action/polychromic/P = new(A) RegisterSignal(P, COMSIG_ACTION_TRIGGER, .proc/activate_action) actions_by_atom[A] = P P.Grant(A) - A.update_icon() + A.update_icon() //apply the overlays. /datum/element/polychromic/Detach(atom/A) . = ..() @@ -75,10 +70,9 @@ colors_by_atom -= A var/datum/action/polychromic/P = actions_by_atom[A] if(P) + actions_by_atom -= A qdel(P) - actions_by_atom -= A - if(poly_flags & POLYCHROMIC_ALTCLICK) - UnregisterSignal(A, list(COMSIG_PARENT_EXAMINE, COMSIG_CLICK_ALT, COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED)) + UnregisterSignal(A, list(COMSIG_PARENT_EXAMINE, COMSIG_CLICK_ALT, COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED, COMSIG_ITEM_WORN_OVERLAYS)) /datum/element/polychromic/proc/apply_overlays(atom/source, list/overlays) var/list/L = colors_by_atom[source] diff --git a/code/modules/clothing/under/costume.dm b/code/modules/clothing/under/costume.dm index 12988c26ae..7cbfe5abf5 100644 --- a/code/modules/clothing/under/costume.dm +++ b/code/modules/clothing/under/costume.dm @@ -91,13 +91,13 @@ name = "polychromic kilt" desc = "It's not a skirt!" icon_state = "polykilt" - hasprimary = TRUE - hassecondary = TRUE - primary_color = "#FFFFFF" - secondary_color = "#F08080" body_parts_covered = CHEST|GROIN|ARMS|LEGS mutantrace_variation = NONE +/obj/item/clothing/under/costume/kilt/polychromic/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, list("#FFFFFF", "#F08080"), list("polykilt-primary", "polykilt-secondary"), null, POLYCHROMIC_ALTCLICK|POLYCHROMIC_NO_HELD|POLYCHROMIC_ACTION) + /obj/item/clothing/under/costume/gladiator name = "gladiator uniform" desc = "Are you not entertained? Is that not why you are here?" From 1cd57c265b587bf40e93fe711417dcc89907f212 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 13 Apr 2020 09:44:18 -0500 Subject: [PATCH 165/190] Automatic changelog generation for PR #11834 [ci skip] --- html/changelogs/AutoChangeLog-pr-11834.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11834.yml diff --git a/html/changelogs/AutoChangeLog-pr-11834.yml b/html/changelogs/AutoChangeLog-pr-11834.yml new file mode 100644 index 0000000000..05d1b245b1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11834.yml @@ -0,0 +1,5 @@ +author: "Bhijn" +delete-after: True +changes: + - server: "Fail2Topic now supports Linux. Do beware that this requires some sysop experience to properly set up!" + - config: "Fail2Topic is now disabled by default, and the out-of-the-box config files have been updated to be a little more detailed." From bfa006fac1300e3addba0b9fe706bc6a0c5c7b87 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Mon, 13 Apr 2020 17:25:13 +0200 Subject: [PATCH 166/190] Fixing runtime errors. --- code/datums/elements/polychromic.dm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/code/datums/elements/polychromic.dm b/code/datums/elements/polychromic.dm index 5e1a3e3c73..109da4ac50 100644 --- a/code/datums/elements/polychromic.dm +++ b/code/datums/elements/polychromic.dm @@ -16,7 +16,7 @@ /datum/element/polychromic/Attach(datum/target, list/colors, states, _icon, _flags = POLYCHROMIC_ALTCLICK|POLYCHROMIC_NO_HELD, _worn, list/names = list("Primary", "Secondary", "Tertiary", "Quaternary", "Quinary", "Senary")) . = ..() - var/make_appearances = islist(overlays_states) + var/make_appearances = islist(states) var/states_len = make_appearances ? length(states) : states var/names_len = length(names) if(!states_len || !names_len || !isatom(target)) @@ -52,10 +52,11 @@ if(isitem(A)) if(_flags & POLYCHROMIC_ACTION) - RegisterSignal(src, COMSIG_ITEM_EQUIPPED, .proc/grant_user_action) - RegisterSignal(src, COMSIG_ITEM_DROPPED, .proc/remove_user_action) - AddElement(A, /datum/element/update_icon_updates_onmob) //Since we can change the overall aspect of the item. - RegisterSignal(A, COMSIG_ITEM_WORN_OVERLAYS, .proc/apply_worn_overlays) + RegisterSignal(A, COMSIG_ITEM_EQUIPPED, .proc/grant_user_action) + RegisterSignal(A, COMSIG_ITEM_DROPPED, .proc/remove_user_action) + if(!(_flags & (POLYCHROMIC_NO_HELD|POLYCHROMIC_NO_WORN))) + A.AddElement(/datum/element/update_icon_updates_onmob) + RegisterSignal(A, COMSIG_ITEM_WORN_OVERLAYS, .proc/apply_worn_overlays) else if(_flags & POLYCHROMIC_ACTION && ismob(A)) //in the event mob update icon procs are ever standarized. var/datum/action/polychromic/P = new(A) RegisterSignal(P, COMSIG_ACTION_TRIGGER, .proc/activate_action) From 8c995dbad983e585266eea0bc28f755f33d6d652 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Mon, 13 Apr 2020 19:16:55 +0200 Subject: [PATCH 167/190] Making things work. --- code/datums/action.dm | 50 ++++++++++++++--------------- code/datums/elements/polychromic.dm | 21 +++++++++--- 2 files changed, 41 insertions(+), 30 deletions(-) diff --git a/code/datums/action.dm b/code/datums/action.dm index e94e6a182d..f2f93ac40d 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -120,34 +120,34 @@ /datum/action/proc/UpdateButtonIcon(status_only = FALSE, force = FALSE) if(!button) return - if(button_icon && button_icon_state) - if(!status_only) - button.name = name - button.desc = desc - if(owner && owner.hud_used && background_icon_state == ACTION_BUTTON_DEFAULT_BACKGROUND) - var/list/settings = owner.hud_used.get_action_buttons_icons() - if(button.icon != settings["bg_icon"]) - button.icon = settings["bg_icon"] - if(button.icon_state != settings["bg_state"]) - button.icon_state = settings["bg_state"] - else - if(button.icon != button_icon) - button.icon = button_icon - if(button.icon_state != background_icon_state) - button.icon_state = background_icon_state + if(!status_only) + button.name = name + button.desc = desc + if(owner && owner.hud_used && background_icon_state == ACTION_BUTTON_DEFAULT_BACKGROUND) + var/list/settings = owner.hud_used.get_action_buttons_icons() + if(button.icon != settings["bg_icon"]) + button.icon = settings["bg_icon"] + if(button.icon_state != settings["bg_state"]) + button.icon_state = settings["bg_state"] + else + if(button.icon != button_icon) + button.icon = button_icon + if(button.icon_state != background_icon_state) + button.icon_state = background_icon_state + if(!use_target_appearance) ApplyIcon(button, force) - else if(use_target_appearance && target && button.appearance_cache != target.appearance) //replace with /ref comparison if this is not valid. - var/mutable_appearance/M = new(target) - M.layer = FLOAT_LAYER - M.plane = FLOAT_PLANE - if(target_appearance_matrix) - var/list/L = target_appearance_matrix - M.transform = matrix(L[1], L[2], L[3], L[4], L[5], L[6]) - button.cut_overlays() - button.add_overlay(M) - button.appearance_cache = target.appearance + else if(target && button.appearance_cache != target.appearance) //replace with /ref comparison if this is not valid. + var/mutable_appearance/M = new(target) + M.layer = FLOAT_LAYER + M.plane = FLOAT_PLANE + if(target_appearance_matrix) + var/list/L = target_appearance_matrix + M.transform = matrix(L[1], L[2], L[3], L[4], L[5], L[6]) + button.cut_overlays() + button.add_overlay(M) + button.appearance_cache = target.appearance if(!IsAvailable(TRUE)) button.color = transparent_when_unavailable ? rgb(128,0,0,128) : rgb(128,0,0) diff --git a/code/datums/elements/polychromic.dm b/code/datums/elements/polychromic.dm index 109da4ac50..70424507b7 100644 --- a/code/datums/elements/polychromic.dm +++ b/code/datums/elements/polychromic.dm @@ -11,6 +11,7 @@ var/icon_file var/list/overlays_names //wrap numbers into text strings please. var/list/actions_by_atom = list() + var/list/already_updates_onmob = list() var/poly_flags var/worn_file //used in place of items' held or mob overlay icons if present. @@ -54,8 +55,11 @@ if(_flags & POLYCHROMIC_ACTION) RegisterSignal(A, COMSIG_ITEM_EQUIPPED, .proc/grant_user_action) RegisterSignal(A, COMSIG_ITEM_DROPPED, .proc/remove_user_action) - if(!(_flags & (POLYCHROMIC_NO_HELD|POLYCHROMIC_NO_WORN))) - A.AddElement(/datum/element/update_icon_updates_onmob) + if(!(_flags & POLYCHROMIC_NO_HELD) && !(_flags & POLYCHROMIC_NO_WORN)) + if(!SSdcs.GetElement(/datum/element/update_icon_updates_onmob)) + A.AddElement(/datum/element/update_icon_updates_onmob) + else + already_updates_onmob[A]++ RegisterSignal(A, COMSIG_ITEM_WORN_OVERLAYS, .proc/apply_worn_overlays) else if(_flags & POLYCHROMIC_ACTION && ismob(A)) //in the event mob update icon procs are ever standarized. var/datum/action/polychromic/P = new(A) @@ -69,6 +73,13 @@ . = ..() A.cut_overlay(colors_by_atom[A]) colors_by_atom -= A + if(!(poly_flags & POLYCHROMIC_NO_HELD) && !(poly_flags & POLYCHROMIC_NO_WORN) && isitem(A)) + if(!already_updates_onmob[A]) + A.RemoveElement(/datum/element/update_icon_updates_onmob) + else + already_updates_onmob[A]-- + if(!already_updates_onmob[A]) + already_updates_onmob -= A var/datum/action/polychromic/P = actions_by_atom[A] if(P) actions_by_atom -= A @@ -99,10 +110,10 @@ /datum/element/polychromic/proc/set_color(atom/source, mob/user) var/choice = input(user,"Polychromic options", "Recolor [source]") as null|anything in overlays_names - if(!choice || QDELETED(source) || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) + if(!choice || QDELETED(source) || !user.canUseTopic(source, BE_CLOSE, NO_DEXTERY)) return var/ncolor = input(user, "Polychromic options", "Choose [choice] Color") as color|null - if(!ncolor || QDELETED(source) || !user.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) + if(!ncolor || QDELETED(source) || !user.canUseTopic(source, BE_CLOSE, NO_DEXTERY)) return var/list/L = colors_by_atom[source] if(!L) // Ummmmmh. @@ -142,4 +153,4 @@ background_icon_state = "bg_polychromic" use_target_appearance = TRUE button_icon_state = null - target_appearance_matrix = list(0.7,0,0,0,0.7,0) + target_appearance_matrix = list(0.75,0,0,0,0.75,0) From 94bcc6a64b1878c7423324078b99cba183b3a28e Mon Sep 17 00:00:00 2001 From: kappa-sama Date: Mon, 13 Apr 2020 14:38:30 -0400 Subject: [PATCH 168/190] removes these --- _maps/map_files/BoxStation/BoxStation.dmm | 1 - _maps/map_files/Deltastation/DeltaStation2.dmm | 2 -- _maps/map_files/KiloStation/KiloStation.dmm | 1 - _maps/map_files/LambdaStation/lambda.dmm | 1 - _maps/map_files/MetaStation/MetaStation.dmm | 2 -- _maps/map_files/OmegaStation/OmegaStation.dmm | 1 - _maps/map_files/PubbyStation/PubbyStation.dmm | 2 -- 7 files changed, 10 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 3b2ee52e24..ab83534102 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -44066,7 +44066,6 @@ /area/science/misc_lab) "cbe" = ( /obj/structure/table/reinforced, -/obj/item/integrated_electronics/analyzer, /obj/item/integrated_electronics/debugger, /obj/item/integrated_electronics/wirer, /turf/open/floor/plasteel/white, diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 61ed3edba7..9a738f12ee 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -126146,7 +126146,6 @@ /area/quartermaster/storage) "hic" = ( /obj/structure/table/reinforced, -/obj/item/integrated_electronics/analyzer, /obj/item/integrated_electronics/debugger, /obj/item/integrated_electronics/wirer, /turf/open/floor/plasteel/white/side{ @@ -127145,7 +127144,6 @@ /area/ai_monitored/turret_protected/aisat_interior) "qhc" = ( /obj/structure/table/reinforced, -/obj/item/integrated_electronics/analyzer, /obj/item/integrated_electronics/debugger, /obj/item/integrated_electronics/wirer, /turf/open/floor/plasteel/white/side{ diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 3eaad62714..abdf574918 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -33907,7 +33907,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/item/integrated_electronics/analyzer, /obj/machinery/computer/security/telescreen/circuitry{ pixel_y = 30 }, diff --git a/_maps/map_files/LambdaStation/lambda.dmm b/_maps/map_files/LambdaStation/lambda.dmm index 6d1469d483..a307026453 100644 --- a/_maps/map_files/LambdaStation/lambda.dmm +++ b/_maps/map_files/LambdaStation/lambda.dmm @@ -1556,7 +1556,6 @@ dir = 8 }, /obj/structure/table, -/obj/item/integrated_electronics/analyzer, /obj/item/integrated_circuit_printer, /turf/open/floor/plasteel/dark, /area/science/nanite) diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index e6eddb2777..9294516092 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -81886,7 +81886,6 @@ /area/maintenance/aft) "gRS" = ( /obj/structure/table/reinforced, -/obj/item/integrated_electronics/analyzer, /obj/item/integrated_circuit_printer, /turf/open/floor/plasteel/white, /area/science/circuit) @@ -82471,7 +82470,6 @@ /turf/open/floor/plasteel/white, /area/science/circuit) "ohj" = ( -/obj/item/integrated_electronics/analyzer, /obj/item/integrated_electronics/debugger, /obj/item/integrated_electronics/wirer, /obj/structure/table/reinforced, diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 8a951881f9..9f79e3ecba 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -26358,7 +26358,6 @@ dir = 8 }, /obj/item/integrated_circuit_printer, -/obj/item/integrated_electronics/analyzer, /obj/item/integrated_electronics/debugger, /obj/item/integrated_electronics/wirer, /obj/effect/turf_decal/tile/neutral, diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index bdbce36c9c..0ccbf1623b 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -27443,7 +27443,6 @@ /area/science/explab) "bmZ" = ( /obj/structure/table/reinforced, -/obj/item/integrated_electronics/analyzer, /obj/machinery/magnetic_controller{ autolink = 1; pixel_x = -28; @@ -60715,7 +60714,6 @@ /area/maintenance/department/crew_quarters/dorms) "vmG" = ( /obj/structure/table/reinforced, -/obj/item/integrated_electronics/analyzer, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, From 616d482cf6a44d2b426d152f502a9fdb2646fdc6 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Mon, 13 Apr 2020 22:51:46 +0200 Subject: [PATCH 169/190] Deleting poly clothes copypasta. --- code/__DEFINES/dcs/signals.dm | 1 + code/datums/elements/polychromic.dm | 64 ++++-- code/modules/clothing/clothing.dm | 194 ------------------ code/modules/clothing/neck/_neck.dm | 65 ++---- code/modules/clothing/suits/cloaks.dm | 11 + code/modules/clothing/suits/miscellaneous.dm | 67 +----- code/modules/clothing/suits/toggles.dm | 24 ++- code/modules/clothing/under/_under.dm | 132 ++++++++++-- code/modules/clothing/under/costume.dm | 2 +- code/modules/clothing/under/miscellaneous.dm | 52 +++-- code/modules/clothing/under/shorts.dm | 13 +- code/modules/clothing/under/skirt_dress.dm | 15 +- code/modules/clothing/under/suits.dm | 10 +- icons/mob/clothing/head.dmi | Bin 223286 -> 223289 bytes icons/mob/clothing/neck.dmi | Bin 45707 -> 47399 bytes icons/mob/clothing/suit.dmi | Bin 424980 -> 424968 bytes icons/mob/clothing/suit_digi.dmi | Bin 439805 -> 439792 bytes icons/mob/clothing/uniform.dmi | Bin 403435 -> 403416 bytes icons/mob/clothing/uniform_digi.dmi | Bin 344180 -> 344171 bytes icons/obj/clothing/hats.dmi | Bin 109697 -> 109696 bytes icons/obj/clothing/neck.dmi | Bin 2866 -> 3253 bytes icons/obj/clothing/suits.dmi | Bin 143821 -> 143808 bytes icons/obj/clothing/uniforms.dmi | Bin 112864 -> 113086 bytes .../clothing/suits/polychromic_cloaks.dm | 38 ---- .../modules/custom_loadout/custom_items.dm | 5 + .../icons/polyclothes/item/neck.dmi | Bin 633 -> 0 bytes .../icons/polyclothes/mob/neck.dmi | Bin 1418 -> 0 bytes tgstation.dme | 1 - 28 files changed, 264 insertions(+), 430 deletions(-) delete mode 100644 modular_citadel/code/modules/clothing/suits/polychromic_cloaks.dm delete mode 100644 modular_citadel/icons/polyclothes/item/neck.dmi delete mode 100644 modular_citadel/icons/polyclothes/mob/neck.dmi diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index b16002e35b..e0f7457a4a 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -249,6 +249,7 @@ // /obj/item/clothing signals #define COMSIG_SHOES_STEP_ACTION "shoes_step_action" //from base of obj/item/clothing/shoes/proc/step_action(): () +#define COMSIG_SUIT_MADE_HELMET "suit_made_helmet" //from base of obj/item/clothing/suit/MakeHelmet(): (helmet) // /obj/item/implant signals #define COMSIG_IMPLANT_ACTIVATED "implant_activated" //from base of /obj/item/implant/proc/activate(): () diff --git a/code/datums/elements/polychromic.dm b/code/datums/elements/polychromic.dm index 70424507b7..f664ed9063 100644 --- a/code/datums/elements/polychromic.dm +++ b/code/datums/elements/polychromic.dm @@ -14,13 +14,16 @@ var/list/already_updates_onmob = list() var/poly_flags var/worn_file //used in place of items' held or mob overlay icons if present. + var/static/list/suits_with_helmet_typecache = typecacheof(list(/obj/item/clothing/suit/hooded, /obj/item/clothing/suit/space/hardsuit)) + var/list/helmet_by_suit //because poly winter coats exist. + var/list/suit_by_helmet //Idem. -/datum/element/polychromic/Attach(datum/target, list/colors, states, _icon, _flags = POLYCHROMIC_ALTCLICK|POLYCHROMIC_NO_HELD, _worn, list/names = list("Primary", "Secondary", "Tertiary", "Quaternary", "Quinary", "Senary")) +/datum/element/polychromic/Attach(datum/target, list/colors, states, _flags = POLYCHROMIC_ACTION|POLYCHROMIC_NO_HELD, _icon, _worn, list/names = list("Primary", "Secondary", "Tertiary", "Quaternary", "Quinary", "Senary")) . = ..() var/make_appearances = islist(states) var/states_len = make_appearances ? length(states) : states var/names_len = length(names) - if(!states_len || !names_len || !isatom(target)) + if(!states_len || !names_len || colors_by_atom[target] || !isatom(target)) return ELEMENT_INCOMPATIBLE var/atom/A = target @@ -59,8 +62,10 @@ if(!SSdcs.GetElement(/datum/element/update_icon_updates_onmob)) A.AddElement(/datum/element/update_icon_updates_onmob) else - already_updates_onmob[A]++ + LAZYSET(already_updates_onmob, A, TRUE) RegisterSignal(A, COMSIG_ITEM_WORN_OVERLAYS, .proc/apply_worn_overlays) + if(suits_with_helmet_typecache[A.type]) + RegisterSignal(A, COMSIG_SUIT_MADE_HELMET, .proc/register_helmet) else if(_flags & POLYCHROMIC_ACTION && ismob(A)) //in the event mob update icon procs are ever standarized. var/datum/action/polychromic/P = new(A) RegisterSignal(P, COMSIG_ACTION_TRIGGER, .proc/activate_action) @@ -71,33 +76,48 @@ /datum/element/polychromic/Detach(atom/A) . = ..() - A.cut_overlay(colors_by_atom[A]) colors_by_atom -= A - if(!(poly_flags & POLYCHROMIC_NO_HELD) && !(poly_flags & POLYCHROMIC_NO_WORN) && isitem(A)) - if(!already_updates_onmob[A]) - A.RemoveElement(/datum/element/update_icon_updates_onmob) - else - already_updates_onmob[A]-- - if(!already_updates_onmob[A]) - already_updates_onmob -= A var/datum/action/polychromic/P = actions_by_atom[A] if(P) actions_by_atom -= A qdel(P) - UnregisterSignal(A, list(COMSIG_PARENT_EXAMINE, COMSIG_CLICK_ALT, COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED, COMSIG_ITEM_WORN_OVERLAYS)) + UnregisterSignal(A, list(COMSIG_PARENT_EXAMINE, COMSIG_CLICK_ALT, COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED, COMSIG_ITEM_WORN_OVERLAYS, COMSIG_SUIT_MADE_HELMET)) + if(isitem(A)) + if(!(poly_flags & POLYCHROMIC_NO_HELD) && !(poly_flags & POLYCHROMIC_NO_WORN)) + if(!already_updates_onmob[A]) + A.RemoveElement(/datum/element/update_icon_updates_onmob) + else + LAZYREMOVE(already_updates_onmob, A) + var/obj/item/clothing/head/H = helmet_by_suit[A] + if(H) + UnregisterSignal(H, list(COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_ITEM_WORN_OVERLAYS, COMSIG_PARENT_QDELETING)) + LAZYREMOVE(helmet_by_suit, A) + LAZYREMOVE(suit_by_helmet, H) + colors_by_atom -= H + if(!QDELETED(H)) + H.update_icon() //removing the overlays + if(!QDELETED(A) && ismob(A.loc)) + var/mob/M = A.loc + if(!(poly_flags & POLYCHROMIC_NO_HELD) && M.is_holding(A)) + M.update_inv_hands() + else if(!(poly_flags & POLYCHROMIC_NO_WORN)) + M.regenerate_icons() + if(!QDELETED(A)) + A.update_icon() //removing the overlays /datum/element/polychromic/proc/apply_overlays(atom/source, list/overlays) var/list/L = colors_by_atom[source] + var/f_icon = icon_file || source.icon if(isnum(overlays_states)) for(var/i in 1 to overlays_states) - overlays += mutable_appearance(source.icon, "[source.icon_state]-[i]", color = L[i]) + overlays += mutable_appearance(f_icon, "[source.icon_state]-[i]", color = L[i]) else overlays += colors_by_atom[source] -/datum/element/polychromic/proc/apply_worn_overlays(obj/item/source, isinhands, icon_file, used_state, style_flags, list/overlays) +/datum/element/polychromic/proc/apply_worn_overlays(obj/item/source, isinhands, icon, used_state, style_flags, list/overlays) if(poly_flags & (isinhands ? POLYCHROMIC_NO_HELD : POLYCHROMIC_NO_WORN)) return - var/f_icon = worn_file || icon_file + var/f_icon = worn_file || icon var/list/L = colors_by_atom[source] if(isnum(overlays_states)) @@ -148,6 +168,20 @@ /datum/element/polychromic/proc/on_examine(atom/source, mob/user, list/examine_list) examine_list += "Alt-click to recolor it." +/datum/element/polychromic/proc/register_helmet(atom/source, obj/item/clothing/head/H) + LAZYSET(suit_by_helmet, H, source) + LAZYSET(helmet_by_suit, source, H) + colors_by_atom[H] = colors_by_atom[source] + RegisterSignal(H, COMSIG_ATOM_UPDATE_OVERLAYS, .proc/apply_overlays) + RegisterSignal(H, COMSIG_ITEM_WORN_OVERLAYS, .proc/apply_worn_overlays) + RegisterSignal(H, COMSIG_PARENT_QDELETING, .proc/unregister_helmet) + +/datum/element/polychromic/proc/unregister_helmet(atom/source) + var/obj/item/clothing/suit/S = suit_by_helmet[source] + LAZYREMOVE(suit_by_helmet, source) + LAZYREMOVE(helmet_by_suit, S) + colors_by_atom -= source + /datum/action/polychromic name = "Modify Polychromic Colors" background_icon_state = "bg_polychromic" diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 402d16e7ec..d484027ad5 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -47,25 +47,12 @@ //Add a "exclude" string to do the opposite, making it only only species listed that can't wear it. //You append this to clothing objects. - //Polychrome stuff: - var/hasprimary = FALSE //These vars allow you to choose which overlays a clothing has - var/hassecondary = FALSE - var/hastertiary = FALSE - var/primary_color = "#FFFFFF" //RGB in hexcode - var/secondary_color = "#FFFFFF" - var/tertiary_color = "#808080" - - //No idea what this is but eh -tori - var/force_alternate_icon = FALSE - /obj/item/clothing/Initialize() . = ..() if(CHECK_BITFIELD(clothing_flags, VOICEBOX_TOGGLABLE)) actions_types += /datum/action/item_action/toggle_voice_box if(ispath(pocket_storage_component_path)) LoadComponent(pocket_storage_component_path) - if(hasprimary | hassecondary | hastertiary) //Checks if polychrome is enabled - update_icon() //Applies the overlays and default colors onto the clothes on spawn. /obj/item/clothing/MouseDrop(atom/over_object) . = ..() @@ -150,8 +137,6 @@ how_cool_are_your_threads += "Adding or removing items from [src] makes no noise.\n" how_cool_are_your_threads += "" . += how_cool_are_your_threads.Join() - if(hasprimary | hassecondary | hastertiary) //Checks if polychrome is enabled - . += "Alt-click to recolor it." /obj/item/clothing/obj_break(damage_flag) if(!damaged_clothes) @@ -195,173 +180,6 @@ BLIND // can't see anything female_clothing_icon = fcopy_rsc(female_clothing_icon) GLOB.female_clothing_icons[index] = female_clothing_icon -/obj/item/clothing/under/verb/toggle() - set name = "Adjust Suit Sensors" - set category = "Object" - set src in usr - var/mob/M = usr - if (istype(M, /mob/dead/)) - return - if (!can_use(M)) - return - if(src.has_sensor == LOCKED_SENSORS) - to_chat(usr, "The controls are locked.") - return 0 - if(src.has_sensor == BROKEN_SENSORS) - to_chat(usr, "The sensors have shorted out!") - return 0 - if(src.has_sensor <= NO_SENSORS) - to_chat(usr, "This suit does not have any sensors.") - return 0 - - var/list/modes = list("Off", "Binary vitals", "Exact vitals", "Tracking beacon") - var/switchMode = input("Select a sensor mode:", "Suit Sensor Mode", modes[sensor_mode + 1]) in modes - if(get_dist(usr, src) > 1) - to_chat(usr, "You have moved too far away!") - return - sensor_mode = modes.Find(switchMode) - 1 - - if (src.loc == usr) - switch(sensor_mode) - if(0) - to_chat(usr, "You disable your suit's remote sensing equipment.") - if(1) - to_chat(usr, "Your suit will now only report whether you are alive or dead.") - if(2) - to_chat(usr, "Your suit will now only report your exact vital lifesigns.") - if(3) - to_chat(usr, "Your suit will now report your exact vital lifesigns as well as your coordinate position.") - - if(ishuman(loc)) - var/mob/living/carbon/human/H = loc - if(H.w_uniform == src) - H.update_suit_sensors() - - -/obj/item/clothing/under/CtrlClick(mob/user) - . = ..() - - if (!(item_flags & IN_INVENTORY)) - return - - if(!isliving(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) - return - - if(has_sensor == LOCKED_SENSORS) - to_chat(user, "The controls are locked.") - return - if(has_sensor == BROKEN_SENSORS) - to_chat(user, "The sensors have shorted out!") - return - if(has_sensor <= NO_SENSORS) - to_chat(user, "This suit does not have any sensors.") - return - - sensor_mode = SENSOR_COORDS - - to_chat(user, "Your suit will now report your exact vital lifesigns as well as your coordinate position.") - - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.w_uniform == src) - H.update_suit_sensors() - -/obj/item/clothing/under/AltClick(mob/user) - . = ..() - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) - return - if(attached_accessory) - remove_accessory(user) - else - rolldown() - // Polychrome stuff: - if(hasprimary | hassecondary | hastertiary) - var/choice = input(user,"polychromic thread options", "Clothing Recolor") as null|anything in list("[hasprimary ? "Primary Color" : ""]", "[hassecondary ? "Secondary Color" : ""]", "[hastertiary ? "Tertiary Color" : ""]") //generates a list depending on the enabled overlays - switch(choice) //Lets the list's options actually lead to something - if("Primary Color") - var/primary_color_input = input(usr,"","Choose Primary Color",primary_color) as color|null //color input menu, the "|null" adds a cancel button to it. - if(primary_color_input) //Checks if the color selected is NULL, rejects it if it is NULL. - primary_color = sanitize_hexcolor(primary_color_input, desired_format=6, include_crunch=1) //formats the selected color properly - update_icon() //updates the item icon - user.regenerate_icons() //updates the worn icon. Probably a bad idea, but it works. - if("Secondary Color") - var/secondary_color_input = input(usr,"","Choose Secondary Color",secondary_color) as color|null - if(secondary_color_input) - secondary_color = sanitize_hexcolor(secondary_color_input, desired_format=6, include_crunch=1) - update_icon() - user.regenerate_icons() - if("Tertiary Color") - var/tertiary_color_input = input(usr,"","Choose Tertiary Color",tertiary_color) as color|null - if(tertiary_color_input) - tertiary_color = sanitize_hexcolor(tertiary_color_input, desired_format=6, include_crunch=1) - update_icon() - user.regenerate_icons() - return TRUE - -/obj/item/clothing/neck/AltClick(mob/user) - . = ..() - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) - return - // Polychrome stuff: - if(hasprimary | hassecondary | hastertiary) - var/choice = input(user,"polychromic thread options", "Clothing Recolor") as null|anything in list("[hasprimary ? "Primary Color" : ""]", "[hassecondary ? "Secondary Color" : ""]", "[hastertiary ? "Tertiary Color" : ""]") //generates a list depending on the enabled overlays - switch(choice) //Lets the list's options actually lead to something - if("Primary Color") - var/primary_color_input = input(usr,"","Choose Primary Color",primary_color) as color|null //color input menu, the "|null" adds a cancel button to it. - if(primary_color_input) //Checks if the color selected is NULL, rejects it if it is NULL. - primary_color = sanitize_hexcolor(primary_color_input, desired_format=6, include_crunch=1) //formats the selected color properly - update_icon() //updates the item icon - user.regenerate_icons() //updates the worn icon. Probably a bad idea, but it works. - if("Secondary Color") - var/secondary_color_input = input(usr,"","Choose Secondary Color",secondary_color) as color|null - if(secondary_color_input) - secondary_color = sanitize_hexcolor(secondary_color_input, desired_format=6, include_crunch=1) - update_icon() - user.regenerate_icons() - if("Tertiary Color") - var/tertiary_color_input = input(usr,"","Choose Tertiary Color",tertiary_color) as color|null - if(tertiary_color_input) - tertiary_color = sanitize_hexcolor(tertiary_color_input, desired_format=6, include_crunch=1) - update_icon() - user.regenerate_icons() - return TRUE - -/obj/item/clothing/under/verb/jumpsuit_adjust() - set name = "Adjust Jumpsuit Style" - set category = null - set src in usr - rolldown() - -/obj/item/clothing/under/proc/rolldown() - if(!can_use(usr)) - return - if(!can_adjust) - to_chat(usr, "You cannot wear this suit any differently!") - return - if(toggle_jumpsuit_adjust()) - to_chat(usr, "You adjust the suit to wear it more casually.") - else - to_chat(usr, "You adjust the suit back to normal.") - if(ishuman(usr)) - var/mob/living/carbon/human/H = usr - H.update_inv_w_uniform() - H.update_body() - -/obj/item/clothing/under/proc/toggle_jumpsuit_adjust() - adjusted = !adjusted - - if(adjusted) - if(fitted != FEMALE_UNIFORM_TOP) - fitted = NO_FEMALE_UNIFORM - if(!alt_covers_chest) // for the special snowflake suits that expose the chest when adjusted - body_parts_covered &= ~CHEST - else - fitted = initial(fitted) - if(!alt_covers_chest) - body_parts_covered |= CHEST - - return adjusted - /obj/item/clothing/proc/weldingvisortoggle(mob/user) //proc to toggle welding visors on helmets, masks, goggles, etc. if(!can_use(user)) return FALSE @@ -441,15 +259,3 @@ BLIND // can't see anything return FALSE return TRUE - -/obj/item/clothing/update_overlays() // Polychrome stuff - . = ..() - if(hasprimary) //Checks if the overlay is enabled - var/mutable_appearance/primary_overlay = mutable_appearance(icon, "[item_state]-primary", color = primary_color) //Automagically picks overlays - . += primary_overlay //Applies the coloured overlay onto the item sprite. but NOT the mob sprite. - if(hassecondary) - var/mutable_appearance/secondary_overlay = mutable_appearance(icon, "[item_state]-secondary", color = secondary_color) - . += secondary_overlay - if(hastertiary) - var/mutable_appearance/tertiary_overlay = mutable_appearance(icon, "[item_state]-tertiary", color = tertiary_color) - . += tertiary_overlay diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index f775fca203..33666d2b00 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -169,54 +169,44 @@ name = "pet collar" desc = "It's for pets. Though you probably could wear it yourself, you'd doubtless be the subject of ridicule. It seems to be made out of a polychromic material." icon_state = "petcollar" - mob_overlay_icon = 'icons/mob/clothing/neck.dmi' //Because, as it appears, the item itself is normally not directly aware of its worn overlays, so this is about the easiest way, without adding a new var. - hasprimary = TRUE - primary_color = "#00BBBB" pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/collar + var/poly_states = 1 + var/poly_colors = list("#00BBBB") var/tagname = null + var/treat_path = /obj/item/reagent_containers/food/snacks/cookie + +/obj/item/clothing/neck/petcollar/Initialize() + . = ..() + if(treat_path) + new treat_path(src) + +/obj/item/clothing/neck/petcollar/ComponentInitialize() + . = ..() + if(!poly_states) + return + AddElement(/datum/element/polychromic, poly_colors, poly_states) /obj/item/clothing/neck/petcollar/attack_self(mob/user) tagname = stripped_input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot", MAX_NAME_LEN) name = "[initial(name)] - [tagname]" -/obj/item/clothing/neck/petcollar/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) - . = ..() - if(hasprimary | hassecondary | hastertiary) - if(!isinhands) //prevents the worn sprites from showing up if you're just holding them - if(hasprimary) //checks if overlays are enabled - var/mutable_appearance/primary_worn = mutable_appearance(mob_overlay_icon, "[icon_state]-primary") //automagical sprite selection - primary_worn.color = primary_color //colors the overlay - . += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite - if(hassecondary) - var/mutable_appearance/secondary_worn = mutable_appearance(mob_overlay_icon, "[icon_state]-secondary") - secondary_worn.color = secondary_color - . += secondary_worn - if(hastertiary) - var/mutable_appearance/tertiary_worn = mutable_appearance(mob_overlay_icon, "[icon_state]-tertiary") - tertiary_worn.color = tertiary_color - . += tertiary_worn - /obj/item/clothing/neck/petcollar/leather name = "leather pet collar" icon_state = "leathercollar" - - hasprimary = TRUE - hassecondary = TRUE - primary_color = "#222222" - secondary_color = "#888888" + poly_states = 2 + poly_colors = list("#222222", "#888888") /obj/item/clothing/neck/petcollar/choker desc = "Quite fashionable... if you're somebody who's just read their first BDSM-themed erotica novel." name = "choker" icon_state = "choker" - - hasprimary = TRUE - primary_color = "#222222" + poly_colors = list("#222222") /obj/item/clothing/neck/petcollar/locked name = "locked collar" desc = "A collar that has a small lock on it to keep it from being removed." pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/collar/locked + treat_path = /obj/item/key/collar var/lock = FALSE /obj/item/clothing/neck/petcollar/locked/attackby(obj/item/K, mob/user, params) @@ -238,32 +228,19 @@ /obj/item/clothing/neck/petcollar/locked/leather name = "leather pet collar" icon_state = "leathercollar" - - hasprimary = TRUE - hassecondary = TRUE - primary_color = "#222222" - secondary_color = "#888888" + poly_states = 2 + poly_colors = list("#222222", "#888888") /obj/item/clothing/neck/petcollar/locked/choker name = "choker" desc = "Quite fashionable... if you're somebody who's just read their first BDSM-themed erotica novel." icon_state = "choker" - - hasprimary = TRUE - primary_color = "#222222" + poly_colors = list("#222222") /obj/item/key/collar name = "Collar Key" desc = "A key for a tiny lock on a collar or bag." -/obj/item/clothing/neck/petcollar/Initialize() - . = ..() - new /obj/item/reagent_containers/food/snacks/cookie(src) - -/obj/item/clothing/neck/petcollar/locked/Initialize() - . = ..() - new /obj/item/key/collar(src) - ////////////// //DOPE BLING// ////////////// diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index 7d56fbe6dd..ce3d2576f9 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -91,3 +91,14 @@ heat_protection = HEAD max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | ACID_PROOF | GOLIATH_RESISTANCE + +/obj/item/clothing/neck/cloak/polychromic + name = "polychromic cloak" + desc = "For when you want to show off your horrible colour coordination skills." + icon_state = "polyce" + item_state = "qmcloak" + var/list/poly_colors = list("#FFFFFF", "#FFFFFF", "#808080") + +/obj/item/clothing/neck/cloak/polychromic/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, poly_colors, 3) diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 71f04afc9c..c133ea7c88 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -974,70 +974,11 @@ icon_state = "coatpoly" item_state = "coatpoly" hoodtype = /obj/item/clothing/head/hooded/winterhood/polychromic - hasprimary = TRUE - hassecondary = TRUE - hastertiary = TRUE - primary_color = "#6A6964" - secondary_color = "#C4B8A6" - tertiary_color = "#0000FF" + +/obj/item/clothing/suit/hooded/wintercoat/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, list("#6A6964", "#C4B8A6", "#0000FF"), 3) /obj/item/clothing/head/hooded/winterhood/polychromic icon_state = "winterhood_poly" item_state = "winterhood_poly" - -/obj/item/clothing/head/hooded/winterhood/polychromic/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) //this is where the main magic happens. - . = ..() - if(suit.hasprimary | suit.hassecondary) - if(!isinhands) //prevents the worn sprites from showing up if you're just holding them - if(suit.hasprimary) //checks if overlays are enabled - var/mutable_appearance/primary_worn = mutable_appearance(icon_file, "[icon_state]-primary") //automagical sprite selection - primary_worn.color = suit.primary_color //colors the overlay - . += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite. - if(suit.hassecondary) - var/mutable_appearance/secondary_worn = mutable_appearance(icon_file, "[icon_state]-secondary") - secondary_worn.color = suit.secondary_color - . += secondary_worn - -/obj/item/clothing/suit/hooded/wintercoat/polychromic/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) //this is where the main magic happens. - . = ..() - if(hasprimary | hassecondary | hastertiary) - if(!isinhands) //prevents the worn sprites from showing up if you're just holding them - if(hasprimary) //checks if overlays are enabled - var/mutable_appearance/primary_worn = mutable_appearance(icon_file, "[icon_state]-primary[suittoggled ? "_t" : ""]") //automagical sprite selection - primary_worn.color = primary_color //colors the overlay - . += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite. - if(hassecondary) - var/mutable_appearance/secondary_worn = mutable_appearance(icon_file, "[icon_state]-secondary[suittoggled ? "_t" : ""]") - secondary_worn.color = secondary_color - . += secondary_worn - if(hastertiary) - var/mutable_appearance/tertiary_worn = mutable_appearance(icon_file, "[icon_state]-tertiary[suittoggled ? "_t" : ""]") - tertiary_worn.color = tertiary_color - . += tertiary_worn - -/obj/item/clothing/suit/hooded/wintercoat/AltClick(mob/user) - . = ..() - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) - return - if(hasprimary | hassecondary | hastertiary) - var/choice = input(user,"polychromic thread options", "Clothing Recolor") as null|anything in list("[hasprimary ? "Primary Color" : ""]", "[hassecondary ? "Secondary Color" : ""]", "[hastertiary ? "Tertiary Color" : ""]") //generates a list depending on the enabled overlays - switch(choice) //Lets the list's options actually lead to something - if("Primary Color") - var/primary_color_input = input(usr,"","Choose Primary Color",primary_color) as color|null //color input menu, the "|null" adds a cancel button to it. - if(primary_color_input) //Checks if the color selected is NULL, rejects it if it is NULL. - primary_color = sanitize_hexcolor(primary_color_input, desired_format=6, include_crunch=1) //formats the selected color properly - update_icon() //updates the item icon - user.regenerate_icons() //updates the worn icon. Probably a bad idea, but it works. - if("Secondary Color") - var/secondary_color_input = input(usr,"","Choose Secondary Color",secondary_color) as color|null - if(secondary_color_input) - secondary_color = sanitize_hexcolor(secondary_color_input, desired_format=6, include_crunch=1) - update_icon() - user.regenerate_icons() - if("Tertiary Color") - var/tertiary_color_input = input(usr,"","Choose Tertiary Color",tertiary_color) as color|null - if(tertiary_color_input) - tertiary_color = sanitize_hexcolor(tertiary_color_input, desired_format=6, include_crunch=1) - update_icon() - user.regenerate_icons() - return TRUE diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm index cbbd64ebcc..4f29eab6ab 100644 --- a/code/modules/clothing/suits/toggles.dm +++ b/code/modules/clothing/suits/toggles.dm @@ -6,7 +6,7 @@ var/hoodtype = /obj/item/clothing/head/hooded/winterhood //so the chaplain hoodie or other hoodies can override this /obj/item/clothing/suit/hooded/New() - MakeHood() + hood = MakeHelmet() ..() /obj/item/clothing/suit/hooded/Destroy() @@ -14,11 +14,15 @@ qdel(hood) hood = null -/obj/item/clothing/suit/hooded/proc/MakeHood() +/obj/item/clothing/suit/proc/MakeHelmet(obj/item/clothing/head/H) + SEND_SIGNAL(src, COMSIG_SUIT_MADE_HELMET, H) + return H + +/obj/item/clothing/suit/hooded/MakeHelmet(obj/item/clothing/head/hooded/H) if(!hood) - var/obj/item/clothing/head/hooded/W = new hoodtype(src) - W.suit = src - hood = W + H = new hoodtype(src) + H.suit = src + return ..() /obj/item/clothing/suit/hooded/ui_action_click() ToggleHood() @@ -125,7 +129,7 @@ //Hardsuit toggle code /obj/item/clothing/suit/space/hardsuit/Initialize() - MakeHelmet() + helmet = MakeHelmet() . = ..() /obj/item/clothing/suit/space/hardsuit/Destroy() @@ -140,13 +144,13 @@ suit.helmet = null return ..() -/obj/item/clothing/suit/space/hardsuit/proc/MakeHelmet() +/obj/item/clothing/suit/space/hardsuit/MakeHelmet(obj/item/clothing/head/helmet/space/hardsuit/H) if(!helmettype) return if(!helmet) - var/obj/item/clothing/head/helmet/space/hardsuit/W = new helmettype(src) - W.suit = src - helmet = W + H = new helmettype(src) + H.suit = src + return ..() /obj/item/clothing/suit/space/hardsuit/ui_action_click() ..() diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index 42783ab518..fe3aaf4bda 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -19,27 +19,13 @@ var/mutable_appearance/accessory_overlay /obj/item/clothing/under/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) - . = list() + . = ..() if(isinhands) return if(damaged_clothes) . += mutable_appearance('icons/effects/item_damage.dmi', "damageduniform") if(blood_DNA) . += mutable_appearance('icons/effects/blood.dmi', "uniformblood", color = blood_DNA_to_color()) - if(accessory_overlay) - . += accessory_overlay - if(hasprimary) //checks if overlays are enabled - var/mutable_appearance/primary_worn = mutable_appearance(icon_file, "[icon_state]-primary") //automagical sprite selection - primary_worn.color = primary_color //colors the overlay - . += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite. - if(hassecondary) - var/mutable_appearance/secondary_worn = mutable_appearance(icon_file, "[icon_state]-secondary") - secondary_worn.color = secondary_color - . += secondary_worn - if(hastertiary) - var/mutable_appearance/tertiary_worn = mutable_appearance(icon_file, "[icon_state]-tertiary") - tertiary_worn.color = tertiary_color - . += tertiary_worn /obj/item/clothing/under/attackby(obj/item/I, mob/user, params) if((has_sensor == BROKEN_SENSORS) && istype(I, /obj/item/stack/cable_coil)) @@ -167,5 +153,121 @@ if(attached_accessory) . += "\A [attached_accessory] is attached to it." +/obj/item/clothing/under/verb/toggle() + set name = "Adjust Suit Sensors" + set category = "Object" + set src in usr + var/mob/M = usr + if (istype(M, /mob/dead/)) + return + if (!can_use(M)) + return + if(src.has_sensor == LOCKED_SENSORS) + to_chat(usr, "The controls are locked.") + return 0 + if(src.has_sensor == BROKEN_SENSORS) + to_chat(usr, "The sensors have shorted out!") + return 0 + if(src.has_sensor <= NO_SENSORS) + to_chat(usr, "This suit does not have any sensors.") + return 0 + + var/list/modes = list("Off", "Binary vitals", "Exact vitals", "Tracking beacon") + var/switchMode = input("Select a sensor mode:", "Suit Sensor Mode", modes[sensor_mode + 1]) in modes + if(get_dist(usr, src) > 1) + to_chat(usr, "You have moved too far away!") + return + sensor_mode = modes.Find(switchMode) - 1 + + if (src.loc == usr) + switch(sensor_mode) + if(0) + to_chat(usr, "You disable your suit's remote sensing equipment.") + if(1) + to_chat(usr, "Your suit will now only report whether you are alive or dead.") + if(2) + to_chat(usr, "Your suit will now only report your exact vital lifesigns.") + if(3) + to_chat(usr, "Your suit will now report your exact vital lifesigns as well as your coordinate position.") + + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + if(H.w_uniform == src) + H.update_suit_sensors() + + +/obj/item/clothing/under/CtrlClick(mob/user) + . = ..() + + if (!(item_flags & IN_INVENTORY)) + return + + if(!isliving(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + return + + if(has_sensor == LOCKED_SENSORS) + to_chat(user, "The controls are locked.") + return + if(has_sensor == BROKEN_SENSORS) + to_chat(user, "The sensors have shorted out!") + return + if(has_sensor <= NO_SENSORS) + to_chat(user, "This suit does not have any sensors.") + return + + sensor_mode = SENSOR_COORDS + + to_chat(user, "Your suit will now report your exact vital lifesigns as well as your coordinate position.") + + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.w_uniform == src) + H.update_suit_sensors() + +/obj/item/clothing/under/AltClick(mob/user) + . = ..() + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + return + if(attached_accessory) + remove_accessory(user) + else + rolldown() + +/obj/item/clothing/under/verb/jumpsuit_adjust() + set name = "Adjust Jumpsuit Style" + set category = null + set src in usr + rolldown() + +/obj/item/clothing/under/proc/rolldown() + if(!can_use(usr)) + return + if(!can_adjust) + to_chat(usr, "You cannot wear this suit any differently!") + return + if(toggle_jumpsuit_adjust()) + to_chat(usr, "You adjust the suit to wear it more casually.") + else + to_chat(usr, "You adjust the suit back to normal.") + if(ishuman(usr)) + var/mob/living/carbon/human/H = usr + H.update_inv_w_uniform() + H.update_body() + +/obj/item/clothing/under/proc/toggle_jumpsuit_adjust() + adjusted = !adjusted + + if(adjusted) + if(fitted != FEMALE_UNIFORM_TOP) + fitted = NO_FEMALE_UNIFORM + if(!alt_covers_chest) // for the special snowflake suits that expose the chest when adjusted + body_parts_covered &= ~CHEST + else + fitted = initial(fitted) + if(!alt_covers_chest) + body_parts_covered |= CHEST + + return adjusted + /obj/item/clothing/under/rank dying_key = DYE_REGISTRY_UNDER diff --git a/code/modules/clothing/under/costume.dm b/code/modules/clothing/under/costume.dm index 7cbfe5abf5..69a1dc67b3 100644 --- a/code/modules/clothing/under/costume.dm +++ b/code/modules/clothing/under/costume.dm @@ -96,7 +96,7 @@ /obj/item/clothing/under/costume/kilt/polychromic/ComponentInitialize() . = ..() - AddElement(/datum/element/polychromic, list("#FFFFFF", "#F08080"), list("polykilt-primary", "polykilt-secondary"), null, POLYCHROMIC_ALTCLICK|POLYCHROMIC_NO_HELD|POLYCHROMIC_ACTION) + AddElement(/datum/element/polychromic, list("#FFFFFF", "#F08080"), 2) /obj/item/clothing/under/costume/gladiator name = "gladiator uniform" diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index a7557a0702..d475ca8100 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -241,69 +241,67 @@ desc = "A fancy button-up shirt made with polychromic threads." icon_state = "polysuit" item_state = "sl_suit" - hasprimary = TRUE - hassecondary = TRUE - hastertiary = TRUE - primary_color = "#FFFFFF" - secondary_color = "#353535" - tertiary_color = "#353535" mutantrace_variation = NONE +/obj/item/clothing/under/misc/poly_shirt/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, list("#FFFFFF", "#353535", "#353535"), 3) + /obj/item/clothing/under/misc/polyshorts name = "polychromic shorts" desc = "For ease of movement and style." icon_state = "polyshorts" item_state = "rainbow" - hasprimary = TRUE - hassecondary = TRUE - hastertiary = TRUE - primary_color = "#353535" - secondary_color = "#808080" - tertiary_color = "#808080" can_adjust = FALSE body_parts_covered = CHEST|GROIN|ARMS +/obj/item/clothing/under/misc/polyshorts/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, list("#353535", "#808080", "#808080"), 3) + /obj/item/clothing/under/misc/polyjumpsuit name = "polychromic tri-tone jumpsuit" desc = "A fancy jumpsuit made with polychromic threads." icon_state = "polyjump" item_state = "rainbow" - hasprimary = TRUE - hassecondary = TRUE - hastertiary = TRUE - primary_color = "#FFFFFF" - secondary_color = "#808080" - tertiary_color = "#FF3535" can_adjust = FALSE mutantrace_variation = NONE +/obj/item/clothing/under/misc/polyjumpsuit/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, list("#FFFFFF", "#808080", "#353535"), 3) + /obj/item/clothing/under/misc/poly_bottomless name = "polychromic bottomless shirt" - desc = "Great for showing off your junk in dubious style." + desc = "Great for showing off your underwear in dubious style." icon_state = "polybottomless" item_state = "rainbow" - primary_color = "#808080" - secondary_color = "#FF3535" body_parts_covered = CHEST|ARMS //Because there's no bottom included can_adjust = FALSE mutantrace_variation = NONE +/obj/item/clothing/under/misc/poly_bottomless/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, list("#808080", "#FF3535"), 2) + /obj/item/clothing/under/misc/poly_tanktop name = "polychromic tank top" desc = "For those lazy summer days." icon_state = "polyshimatank" item_state = "rainbow" - primary_color = "#808080" - secondary_color = "#FFFFFF" - tertiary_color = "#8CC6FF" body_parts_covered = CHEST|GROIN can_adjust = FALSE mutantrace_variation = NONE + var/list/poly_states = 3 + var/list/poly_colors = list("#808080", "#FFFFFF", "#8CC6FF") + +/obj/item/clothing/under/misc/poly_tanktop/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, poly_colors, poly_states) /obj/item/clothing/under/misc/poly_tanktop/female name = "polychromic feminine tank top" desc = "Great for showing off your chest in style. Not recommended for males." icon_state = "polyfemtankpantsu" - hastertiary = FALSE - primary_color = "#808080" - secondary_color = "#FF3535" + poly_states = 2 + poly_colors = list("#808080", "#FF3535") diff --git a/code/modules/clothing/under/shorts.dm b/code/modules/clothing/under/shorts.dm index ebf7cb5896..f61a41e4c3 100644 --- a/code/modules/clothing/under/shorts.dm +++ b/code/modules/clothing/under/shorts.dm @@ -35,19 +35,18 @@ desc = "95% Polychrome, 5% Spandex!" icon_state = "polyshortpants" item_state = "rainbow" - hasprimary = TRUE - hassecondary = TRUE - primary_color = "#FFFFFF" - secondary_color = "#F08080" mutantrace_variation = NONE + var/list/poly_colors = list("#FFFFFF", "#F08080") + +/obj/item/clothing/under/shorts/polychromic/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, poly_colors, 2) /obj/item/clothing/under/shorts/polychromic/pantsu name = "polychromic panties" desc = "Topless striped panties. Now with 120% more polychrome!" icon_state = "polypantsu" item_state = "rainbow" - hastertiary = FALSE - primary_color = "#FFFFFF" - secondary_color = "#8CC6FF" body_parts_covered = GROIN mutantrace_variation = NONE + poly_colors = list("#FFFFFF", "#8CC6FF") diff --git a/code/modules/clothing/under/skirt_dress.dm b/code/modules/clothing/under/skirt_dress.dm index f00e96d821..fa2c9eed71 100644 --- a/code/modules/clothing/under/skirt_dress.dm +++ b/code/modules/clothing/under/skirt_dress.dm @@ -211,21 +211,18 @@ desc = "A fancy skirt made with polychromic threads." icon_state = "polyskirt" item_state = "rainbow" - hasprimary = TRUE - hassecondary = TRUE - hastertiary = TRUE - primary_color = "#FFFFFF" - secondary_color = "#F08080" - tertiary_color = "#808080" mutantrace_variation = NONE + var/list/poly_colors = list("#FFFFFF", "#F08080", "#808080") + +/obj/item/clothing/under/dress/skirt/polychromic/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, poly_colors, 3) /obj/item/clothing/under/dress/skirt/polychromic/pleated name = "polychromic pleated skirt" desc = "A magnificent pleated skirt complements the woolen polychromatic sweater." icon_state = "polypleat" item_state = "rainbow" - primary_color = "#8CC6FF" - secondary_color = "#808080" - tertiary_color = "#FF3535" body_parts_covered = CHEST|GROIN|ARMS mutantrace_variation = NONE + poly_colors = list("#8CC6FF", "#808080", "#FF3535") diff --git a/code/modules/clothing/under/suits.dm b/code/modules/clothing/under/suits.dm index 3ee5204c3b..087262dd1e 100644 --- a/code/modules/clothing/under/suits.dm +++ b/code/modules/clothing/under/suits.dm @@ -109,11 +109,9 @@ desc = "For when you want to show off your horrible colour coordination skills." icon_state = "polysuit" item_state = "sl_suit" - hasprimary = TRUE - hassecondary = TRUE - hastertiary = TRUE - primary_color = "#FFFFFF" - secondary_color = "#FFFFFF" - tertiary_color = "#808080" can_adjust = FALSE mutantrace_variation = NONE + +/obj/item/clothing/under/suit/polychromic/ComponentInitialize() + . = ..() + AddElement(/datum/element/polychromic, list("#FFFFFF", "#FFFFFF", "#808080"), 3) diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index c499c236e36e363136e61b121b430ee0a94787b3..f2ea9fa55dc7b92f45665ae280be3722c8af95d1 100644 GIT binary patch delta 8017 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 C$vD6O diff --git a/icons/mob/clothing/neck.dmi b/icons/mob/clothing/neck.dmi index de59a136d99ca23e0b751b962395756793bcaafb..68fde7bff95931d53484b9bcb01221142988828d 100644 GIT binary patch literal 47399 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 F{}*HUlUe`( literal 45707 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˭+ynM8_{)Ni| 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 >%FmDPF@jm(^Lq(K+`udPkc3p3< z%*mynJ-86w#5D-3^^#=yQBbf=1Oi5c7Z$l{-W!jUA%oIF&9hA=S2!BMo);v@K`&Zb>uFT-e zzdQEA^GKZMXm;SmzRcpPLJ`3IRH#isPfb;GH@48f)~*oowL#9SUK8LNoRv%h^sdwO z9l;@K$5O@`;QT)T`_?Y^K@mVQl|PN$<$J&sxsK?P5Du;0c&O9u)_!Q z?*04!g-jHld=eGUE#j>ks^;4CmdGg&0f=n%yzfIpmAW2COGkm_w=ox_^X3du&%Q|o zP!%-1MI^FcJHj4u-iv9Mq)MfP?i*k_r+VtMUr}X8>d4s1P_Rf|4_ts5q#h7p4!4;S z_rJfDHyAQjFFNjTrQje0z|js^RXQ~M_<`5z5z}Q+&8&(f9$4;FByr|LSE$}Gq?q!v zNej(|OMNq-7#Y#}aOLUmfM<7)k5}@RPvn?Zfy*MSDH>=h2S%Khk>yLVcVZtH9Xg1yna5Us*#N ziS`^;JO`v;!0`GpBgL6S-;~wf^Q-)1?dF(@>AbPn(>!D#2iP79eLDbHk`E;8Uv%=L zu!cz_apNztQ|tl(>@@lBFkE_4r+_h2)6;o1HSbvgu?)6{Ag87#E{ttGp_og-@iseo zUcb}=XKEu2W#-MBYMDQhjcPe0* zyoAck-=?c)kNmpENFmlkF+q~zqJVJw2a@D!?TG9%wqM^Bv5bO`P;>M3Byhr?L=0iY z>Ri@e8{ig%X$*i75Ugy&HzPEMbyZm-=V3N4F!W9*6X2JB!a7xZf9Y40W3ttY|*HcVrObqoUl; z5EB0O71LwODA`?ghyea>1<5Pl_>+b(teGS4{oxazF-ZI^+>LDanY;n#`?MfFgoBY_mZmUvm^dB zFp4fw4RXD)Pmbwf=l0d}ha`v^ZDgMJ!GR%v-iQJtCnrfNyS94)va+A!l*ZeQA%H+N z9%?xCug$FhNlZLYKWFPS?K5e=rlZrcg;g7ZR5G#ZNCo|D0Ox-p7HK`M4}7CjV^KfO z*2r;uxY`A{O5!k^zT#q6ENQQBIq?z$dx>n@qVetVI=0{eq+5g|+_n6U?`FTG6_#Ev zoonvU0C0~r9_M`e833fdDq4n(8zyHhzlVlI>LqJWy5C;Ea|$!skI>r$clHoI=H?y{ z32DDl6jc3JNRZ7)cQd6ZU|~@NF)*vGCqGLWA44Z7VNxzD6`_%1lICNlE(S67Vi7}2t1KLtWr1Psfm{S{m#M>{~yi4 zHt6jtKFh4{>Qbatz)XNTWyx6&qcbqZE$(7Ax^IEpnPS(BQTPFidK}Oj&5X4DuMU8y zx4!aY?NLN{xNLxHYYA$gxEi6j;1V`(8#Vy`0TYok=uuh9=l{ICcw+tP9zF=J9b%~C zv~wwFx927kcYXu1_2LCGY$ldfPt;xgFrbIj%S;NMG<9hm0YxJZM)cuw?1BqR8VT% z0XzA$=r->9-(SCb-`eZ)yUUH~eIJu-1$nHgqdIdh5BI{oor8nbg9{clphgOX`4StA z!z`hhakSoRa7J*Q8qlCK zm|s1M^!h2&0b^zQCZm&2F%H!-GfglaLBNZ9-a%{MZ+<&$w{ZKUnCCTi{%)n%FqiwT zArd2cC0;j%=&+Xa1bptEm^YW-d*@PaNSbRFVxO&SO^%`r3f@Uc8@M)NPl*^@Wm&8F zd6Lk$3Vh4k|g!{9==nizu|IO+dhsPaK316`2yA;cab_8;+yP z&Q&x23Dx9@I;)_5)5l!hDpLY0KtT-PI_trd+&xN7E33Ifg{J>%0Sf<46si55nJL#Z z-(H0P@^b5J|HnxBcLpaAN+O+Gq^e9vl_zr)7AER4UCWM8V@{CG6pKMoTTD=XqhbUE z35{xZO5+z@*+q|2K@pf#Ap6@JsaT7OxSvs#*5}LNsOiKT>k(3b-n?9b*p3IgGhc-~ z`ou)vt}^HA84k<~P}kPpM16O1G~5t+0JJ~XQKlcuvUTVySGfP9ix0Rq%yhu^$tmqi zrD04l=mmx7b>|#NS=KF8vbG1S7ZRowEb1%>AuG#q;BA3IM5k z9xQU=PK#t#bzm2X(khIIsj_51H~{2bi~BCkF%npO*PsR3MeSz-z7(P1)wd{>QWtp+ zG`BV(GoMLr{(~f0q)U)oSH2>SWx4eM`2cOU{~0|?N^_!ZTdAo&Z>C=jN%(Pq|?gB-A-lIkP zK`Jcbnt%{riSs>BTjS(d_L#1%{JU|P!j&-N5x_6R0@6fW!mYWcQ*Kx5z0se(9O`1w zTIKatheOG+5(BYv@LJ>VX4^RF_QRpXrqx{dS}O#m{oac%g1_u$g^iKWw#Xfbye{Bs zbCe7sbGfZ{;kGVZ8=_F>LXcz7=#)gOKb9r~hMr&SLI^r0Ti%3=e6J>rq*`blLJ48Q zFPPh_uY-1gg?Nm=U4xF&+Kk<`N!m;Q7@&ivuRGG-52{Uc@175MW61-J6i^~uJ7wZa zp#GpgqEoeYV&U!YRGI#Gt^T^b_D6~NMz!Fg%D;C1>?+C4$rOS@^OOt87p&Lbz(``P z-M*7AtfMeTp=1%}!BdI>WZa(p8!{E}fHK=1OGuZT5(n5wQ?%eQ?NjXth~651mgu63u78Y4P*L~v zyt#vU2IrF}l;0E;DP><=5AvWrn<918H+z4VjEpS75&s{wUfpz9BRR&|samDc=+ty5 z=+0p-ae4S)C0ewHou6Or7Tr@2uxL+ldHE|34^fYU#ceTZ(+*IvBt3jPj5X-*0v*!v z$?wNoo=E2TiSWpdTniWi*^yQ9dYnQgtKyUwgRMk%C%KFoOBmd!v(W<&r#SSS>mN0G zre9?7=f_<_Q-ZpS{S_*})Q{TSi_N;h;(<@{ss!__xPqLO@)*u>(D62kIhKV`n}GDQ+uJ zkNK{*wEF|;W_uL1+cEoqHtf~=a2#e17ekz>dbEu#{^PMGT&9PzwB`d(1H7vhCk)iUJ>38f5Yu0mrLEk z5gqCjLwH3nkjsE%z0i+2((BJX&2dcn#`KuO~*|d%P9Vj<$O@#-0-US4X9`j zFF{OiFp6a-{7#JDXP5P!55FE{ue67?DU4*;wu06;Er>f5L*CAeodyS_E*tF7pUaw9v#v=L)gu-g#oI|pK-bw0y9!`( z0Rhs-Cnrb45{MO36r7!njetd3zd`W^Pp9tpZm}$)$E-J>lG*RJOZdTTP#~gH_BV+A z8}F&M!A0Rl02F!?#{TF^x*!VzXpy+@8BgFv*LTqUS)xMa-pYH*6^4N7B=qPV;9AF5 zj#W&RqdDW_UFim2 zwwzZ0nH4Xphcs>txpX{pKgr^OAkY_9MQIYNL{MYV5FJL*{-4hKPCJg&8!4BJ0d9s59$!pMXbJwJVintOg; z(WY>R0Et=_Tu;y3seCg@zOOgBP9;*I;^K2Ius%TgakvQy3IyoT)ffyQ?fN^KOOz&J zA38s;pCRNVB?$F<;j?FzEzRYhTH0Ja^lH_nn+6118xRK`MDTjk!eo`Z^32Iz7nI3^ zQo&ml;pIBDYA%*da&1t=wLg2J7f&W%Oe-dxH zmSg>M{2v~m4{H?0_pmE*LkWAY3ZS7W@Ja_+mw^e33v63AJE!x6zf+TGKH_z2OJ1I(5?m+LsB8W5r6%++tI!1_~h^UCtdl3bxk=_X+2vP-0chqhQK3&r;gY>x2DzfF;OCRf-5QP>9wyJVb9B|zdmc6+(K4t{f6vS3YP3% z*`QeGGXl4*fET#CUylx=?d|2tR*y}raz^Ob8*hOx5e!8H4t?qR8-J%Eue1uxH)qVcf8MuLl36-z@(HXlX z+u1ut^LT2-mh=-p&tL%GFaxuuq#wn@&hE6gG#8vbeA2hz~ISdi+WlK6TaUAME$!`gin|taiPT@u{e9 zJ2k7uX-SG|#uOF-W!^0r?uyy`vaDdg8^bk9>(O>cy$JN8sPraw3=+H2IO8*GuBM5kPdy;VQqmv19jjot3FqODtWi@kzO$MV{`q zBX<3?!iYuTH{|=$wZ6=f#jIHjax$V>4NGcDcOMKCnaKMe?u-D`x1_uk`67B* zZOE<2nELFVe^zXFk!uLn9SqK&gbcro;&hl_r#k-)$c`#b**1PnZiG?+`@e|GshuzX z^LeRf;h+d-SKz;XC$c_Z-QF2N@mrP?mU=S;Tuoeb@JUZ@qK?*9f4{PpTPIJ;IZrCM zG}CeYA>kX_$15GK;~$kn19fb7532vqAE+W5bh6-&=ypGU>q#&forKO#@IfcNzqiZ( zjK+|c!Vfa7)?dyMSYc&*J&3*0nV&rN$+wr|Ak$)G)aK(IZD)l>@INaCa>Gk&)KI_B{c>j`=D2@l7JnJz68f0hcj2F4I z5Mjami&Mq3U7n)Z(wmXuEp;aX{@euJ8j*pgc7%Gl6V4NQ)&DTaL!r?1A3_bd;=N3E zaKhbnbelaI5xA&)VrD{EK5%;t^NVmB;gZ^mm`k2=>40m+{C>*g1sQfic($`h)L}7` za)r4{eeEpObFof`q@~|0ghT4(Jxo4^($ZdyQrdCJLYPgJ6>tkXXcZj1alC+vUI4f^}VTq-}8po%R9TNx{!Wzu&RfduS3W1FgFp`-_jpzjq zq12C*PP-7c)Lzv8t20> zGV=d)+GQ+o z@_LL`Un$h0Y_5HRBv_d&Ar#+=GncKO({W$#Nm}0{5CiWOz1aNnhgVW4LVz${pl(0< zNn(sJhdq2}jQ;lnUH{fD$$#Gzr^;W?bEW_o+}l&)H4qGfsx(||=CDsH`5$Jg%qnXo zZG%2D_cNOP=+m>6S)Lyc+82wa*@A2NTbnLs?8EK%MIx*fvjQb;Cu>}+7G)cGrLka_ z!=Go812cILD{d~M`0f*;mSAl{b&kN)cy?G*+&-hO$5|T<(bvySoR#1esSNEH0tj*8 zDA+F`WX}m!4Ju2!*F_Ha9+!BAM6e$07)HWKv#CbZnPIQx=N}y+*U8;c0*41)7XIZ} z$s|N=2KBLOwFq%9b5>^2qZ+u6(yNKwj~rOyOfK%l+FK+qHYzZ%@L$u`(TM|$7hq3e zqPG~cZ>ncmLFqwykJ9dB3Bm(cyL3=#1%_nnG|5t(+_45DA23%xls+oI55d}qii?C7 z^Vw`kY;6hLuOYVb!@Sc*hZ}i;^QaQ8!&+SbS{c@%8BbO}rNkr0aST$C5eF!1Ld*D9 z-I0%4JY`Hh_o`aW$z$BG%>$N3REvbpUGnmTu*i}3h$dt^sPD;j9s*mdQ;L2op!~>s z(Zzvm`Bz~$*V}>d+k^9lLv&8Nf{^+-o;iiQ?u`BF%c#GYw*(H?oMYip0~}j_b5G<( zE4$b$exH&xyCE3dep2>R&eJ1knxi&=!l_pDhdqTyJcl-#72G_Q6ulekHRf%lM)NK` zUA%u_04o7eZDpKLe*4k>=ubY13x=TBi+OqnI4CU`Q!-%GChM>bq}3MfO!T{Xg^QRJR$owxW8$1cR+(}rCx+4QNkbi)3a zNW=q=w$Q49p*Nr;{l~5-DVZ^ym+4T1?!62-^P2v2#Kf_Oo|FWkUbgGCNf|ma>*l*r zaJavab`f=F=@u^~Re8E}PO-}xH&(9h!(?<6dG0{Nyf{E`c;8r;>S!;>d81;K_Q{CxUm+fv%*95zQ_S`IYbytVp5rYySVNv|)(4>E1pDmt&4uYIn%i4v1VD7TR5_uw5W3NeZ!%SUfKTbA2=?NbMg3gql-}#;=%HgLI za;9iIb2Rnom>;IHOZerOH`O~SnoHlGMv|(GMw~%6UP`9^E=@*MCL=yuGzO|93E0=k z9Hg=f?O9fy!IszyS45vt#hh4s1I(<;t%(dhzJ+fgOHA2ranb@#>S zUc^5pgKv~*;}P7#pZOax=Z(+lMm!IkbPfW<>VvyqPXk`p z7oK~7T)p?ZnChN&DP*t2S!oQASRB#R&nmA?6R0Y$=|MQig<<_DM{%*Hn>IH6(+~eP z4C__6qj1PQ{3t8rF))kus=M7A)64?O*;=^KQaXsoz7>Tpct193- zAVGlfKeyEjV}O_j>jEvByw=;!JEEn!&aQ2#e9oPQ>kD^wDuOS8)o1XB>H ze^D1Dk18#}w}nS~;ir>bmk`M2O_&9GG6*pCH-J7nY z|HiT3bA9v`AJo%w`LnZO=~K0AV4CRAx|{X9ZM##>cHgzTvpV}0#uh|B$&BM{M4Kf{ zrDm5h?YaYJ)z-P8lQRiiitQXQ7QAQZj)|y+GIbH5i zer*TGA7k!B{2{WGK)j?uoV4qK=@%)VZiE?0RnEWhJ^J?JhC#Byg9Yp7nH$r~ajD?mST)hXW zX;!1^84u}yy@~r7!K39$f&sX5}he1PIlb|__lnNxbyM^L}j z<7&b9>iaGHqk5jzdr9UQyI{4j0H9)%GYvY2bry&%+GG zb(dhzI}@yI^;jFb%e!ZC{hF1i-5K47Od%bJk}W*A%;roTcA}1HeIKdBx^EEPW_P)_MJgD@_LC^;;$d20n z&NSAP>UCFN`aQ)@O z! zRRvv$juuVEEjYPf-u&>QgDr1O@uYu(dJ#5%Q^56;NlCW$4pYZnq!@$t2kN_tH)^2~ z5d{L3!3#QLOHamgKtB=errchA+DjRRiO!r~`nWnG`r~b6E=8yBkqr}J8q`s(W8u!8 ziOy;wYq#DbUzZnBs6?uGuQ>d%d;0@QG(LKN_v-@UaHi#S1kSs&kho6Y@L=au zT^0y1)>b@SYI=41hvA-~-to`~J6oD%kevo8UOI5h-XiGdh@N!djJ-vNe(TVzozqLz zzibExT*jqa#0mIXBTt0T1IDI0)!VV$g`zqg_y7|Q>5By;u*cLC=`x{W_K>TPA`tMK zHPH_tu8n9NXHGoM%!=t6ePkC_dZt{;xkPT1dty~c((tC(NDJkVbQqD*WT)SU+E^!V zRu`Nr&t8^&6PCI6*ZSUdr!al@QN82b7{o2soSV*;eb2238uK^xxo&xK1)din9v^G& zQtdbyDk1yqx#0Z!mg|!QlA+Ow(q$pW=7=nC;b@5xm+imZr#_n54ov)9CN=AJTR=%o%gAw0XtN1lGoAbZ|zyD3609yR&>i%c4`i$t0Cd)2{7sw3_$Tf5$-ew9=-!4 zr0pG9hhf7y)a|oY;1J1CQ~(qOZmdC5$H&-P9R${YNHFXS0)er)MWi+{9bPx9Z573R z53s5M6b~6tatiKDx+=b<#i3i{M zdJ~^h)KSN_0xdE^3k%G0rT>dzm1BzXHM2Sn7y+JoaI$ z8(@JQ!@Uq@-A@*8LURI)1YF5~uzk5vwEr0tMp9iy0q*^vfPhjTfIVeJfs zuZ+yZ->U5P~z>vE~r9d$WxF~so3Dx6`h4R!DZ=Yq#TakuW@ zXT;UaF$0XD<9<^l7?Jy$238Yaq3^F5T#~O+JTH7VYJ-&5AIfF^?dBUtXGdw)Cpu5- zAUrqRzvUHU0p#rp_Lzm#{`s8TT!7_b!|?6VgMC}D-P9J}Ir5EZVm_rI>ruwBQCXk@ zKCf{{MR(zYmoa_>v=lj4D^*U@PGWSnE%J$}Y2mZ6s~lWh)`ZzM?Ib&5M4k8dO{(PfdDfXTQhBI2tN>B)Y&Gd4D9cfU%_W!L&+u;`P2lBk2<}-M3X$kHyEw zKL#C7g;Va|r0mUY&M9wQ)i3`3=)hI)BN<)bDX+p^v;nw?SEKor&eJk5w=QKMie+Lz z_q#VQ_hn<9>Em?Ad%UKtQ3V(QligPos6X`n3Uo%xfXaLbr&y#!Rz#&v@T1{Bnc3d> zGb{=~LMArxbqO2n?Chna@u>rEC#UPgsL|IzBB()Bct6dRP5BRWC9pM|_27)RHp+2- zfB$|GGI(8%r3>eHBxfZYao4%}(QLZW+zxm^m=PeXtYR|fH)0|FYGX>}KZUDPC-E6+ z-Su6jX*-dx_J0 zRFS9=_gP}o^~>*r0q6+Q*UWca>|nR;2Uj|Pdg*bZHh7DdF+=7y3m z%{s9SmzAiY7XD&xE~jPk863g(+S9>rPZHDScNag(zf_~5jtU8kZMN(|xl6Bwa?=;3 zvW+2}P}&U-MuTm9r2NQtK_xlArr>(Y!CI)EJmqG3&;Vn_+{mEIre?&oVv1RJ`reMJma}^wa!v0_Gqa-e>*zV zo+}G*%_y?H#G?%5=omieY*K>rZ8bGI&gTZ(d_DFJMg_`zA$ASsNh%kRiKk>D#5z%v~;J$oj5uNgyeWCqHAX)vr0F@QQr1oaQ1SEH7YVXhX z26z{v+l*9gQlTEJ7tzWVC1CB|uhohl%u6st`76F*5s3Nt@%(o%3wnduia;UZ=YE`$ zXsySiB0)M6h<9}-NhI+jwwL>gZ!kP0>b-ki28~QDuB&L?hBNayNMdsf#6JM(sn6>@ zSr$oKF01YzFdI{GoAd(*9*P-U$7E!1XS5Tuh`c;k5I&LJtlqN?Xld-2Bkcxq zXTTIXv^0has2>~!F#zo(+t9&5U0x+$UAri38^Z^2SUe($|8~9j(!@BuP?n)=J_PF1 zUndp=0J)D%%udt10wE{MUms-wT=OxFUyNW@$}YFZ9xT!nyx3I*To zZ|}(rYuE!z{44ryX1NT;iAWZEf*LGTEqR!-TnO67iz;=2hDZ zds1xoRVBTIGR?jE-e0_bQ~Q!avTQswjp{%?-~19M~!rt7+&xr28HH>0SSQg*7a8 zXI*6w0LV%Y4i03brL!MSIsOTC7%5&rqtV}xNG))QFu$Ya_01M~`lMo*)NA+hSLH~i z_G4pWMG()8Kg}Ku`-QuE?uU{vi!c*JHZqCRgG6+iYD8FA_`8^RQ9TSa@$xIt0^e&_ z+6;x`!aY{E?FtIYyW{n*YN!|o|9C-N&dCeT11UE=4l2&Ry(72XVuat~YY60@2fCpE zrJb9XcO|sN3ZSFMTA~-%UMduV1b}^TvhOGXyM9-%U#|o%rf_V`$ivHv!Jd-z#N50X zhjaeb)06-CbCc9aWt>}4bp+dd{sVP|XG4u!RnLPXCnl>uO9se~46rh@{tUWSw#u_G zRA6vje_?inXEv>$TL%|xV5+%>K$O{&*i5ERQJXW^x)X$A(-@ko=uMfUu7jZ8| zYFWSn@^$z`c9ymf{Q@v^AIGN2$+Y1C3X+AlnH>FeTF^q? zoz0@PtzKXlNV&a}xbvs%QfC>zDUn30&;e_?usij^2m1-x*xN{}LgA*b#Y6rS@CBxS zC)%D3Ob>jJrlZA-$3u<8B|Y3eOAV_$?(3L0h_9!nO@#k!D}6e*5gOTsvbGKx$k)ZkrSWf{T27@ zkT?o9+ICG2@RM1}P_H(}-AUANY=9#CGPpah6{opY{$K=)pr})a_{El;StdBx0)^|4&=Q_`Lm!$>Xg%o>pq?z2nh~>(AU%u=3RPz z&xi0mrO(cee=il3j9skR`|XqC6M$tpEHVF$%a=+T1CyvR>C}uVAIAXUZ3wHX)3>q4nh7xBvn+!q0|fT&$TtI;z02|&po{H)2l~rYs(e8 zM$BGifCO5dV7u4MM0;N>vm4!Z{$twXoGaHfB4k2kWfTRace{*EPB@;C#J1-Oj0sv- z5`{^s=c8h-${lu$TzDF6xl}sW)!VHXXkMH%*ivpT<&^9RjpZBZ-+J!1%moP!Zsd5S zrx3>V<-=<1#hqBDi3#+XWVgNU0!YOW7D|c(6&{bculDf==&U@%GeetxzojqA^_xou z8*XoqJ=X1)G`=b~dDKU^CZl0!dA@by-E8Fx3VC(T3zOvpLDXEe4kkn?Lv+sh- zSLf0ual91ibtvu5ls1PsT}hEWrU(Z5!E;nPKw9dFk1OS28uq?e^Lvdw&<6DvUg-_$ z>t22sED#k_7ud9BN|j`U}!ee2zNi7q4Ww3_avH9Szexo&1dtILa?6hoF>=Cnitq z5L1R`a}x*F&S_#jw!ZzOXpvaAw2`jWT}W`a;JphM&KEf7Y8&Q&68iN$DR+9_xPEda zP|C}6_+VPw*YJ@4)|n?Xw8JISnb(nFKhXP62V&WNym1pZ1ZKr-5y;Y((qubK8IRDw z=Q0la|LC$dKHU;T9R%FfVUFxcBRRu!`{MCBf-B_GNKd`pVEtEsIPnyNLt&Yv- z@kC}F*5g4JGLO;cSms}g3lJRA*UhiYvL8~%R_N;*Ri6DoB$!vh?*JWmekSL|z)J#i z3oT6vB;n^HB^fKHPL&)x!FKFiiAsSI>38?ew*&PzW?U8?r&K_vtqO1xJ(LO^^ZXT` zTW3HlWsgf<=;oWkSoXR^NT4T9#UyfYjv2wW5oje^Q|g3W!k>lVFNdplm#Zi zqO*F50=>dASZMDGFU5TVw@X`EE(prt(D*<6W62>|04z%~xbG0bY6$|-P$lsRZS)ovPm9Ng+nc~~ z2)6&H7#S~~7QggS`Ip-pAGIu=7GG{}dZm%e;%RYzf>!KHV74mg+1Od!fAErY6s__N z6s7v`t2rgMNk#f98>AqNDQ6d|q(%Xz7X@Lufio*5h}}e$B*PAZ3%gmPVem8MXu#K5 zMd^x*oGlh;4>~sj`yk`0%n?v{0K0972AJ|IUf9*YD)}l?CUPtZ1nbl;`{>Acxk}{L zt^9IO=G-i`N^|qnmLmg;XnrFjN_l7>N`GP~&O>Y&sdeWDWzI`a+VYWpV*S9E*+{&y zKVNQdJSW;Mo)!;x4|flDXRg1PQXGPH&*avCbGN`c0&XcVZR#$jYzetf$U^x(Bj@mS z%ODr9VZc|J$85qpVxQaigOjcS78{=l<$yzT0PDB%fdr1!0R&W1w)$G0XAhjqW0T(j zavUQuV7xd^tZ^Q@QF7g3oPhglUoYDJChV|q=#rCd0w;fw1ok0NvAJ#-XB#}tIsuB` zNYp1XfR06(K5_ehoPwUNN zFSqdr4pS6%k#l`VWy4A-VZNgSBby_N_}f>LCj%fTJ{aN3?YQ4_JZ5lWzkT0WOn=11|wlleYsN0W_1=10a9rpBz_h^3rs) z8zv2uT#jZ0sl`&GgYwP;;mAtH6)PCKye^8z1{3ahth0So>|!MwrF1avgbd9Hp0UV{ zEo6=+qX?vcPAsT7Nc|Cg;6RPvu?_f+uU&__X&*^cEAUnpG6!XSgzWW^*aU;R$wnX? zK9ZnTwEBC-qVw$qDkFcLv7qK{%m(i99z{>V&MRhPVdoXLvA|<2ru9}Kg^nodG^C8zN?5zB@4b6TR=!WKbx7jzfP%3vtKn^2tkyXhN6PgjvRa3_ zV^-_%kS3^PxgI7z-dt{VmH$kjSVvDE6?{|OPy^{qOF~$^)bO+*&bOK9n zq*Ldp%t&x|Vv(vp&~Fq8df?IoK1ELDb)a7)ke6+`DDMtkD?aF4uoj5}2=zf8VUh+Q z3-vhd!wBIhI-7jblPd-we}4ZnLd%%H*IhaDnt1~Dgzz4VFASVzi` z$2igT`J7mwH1Wy;VaUuS#2$DJ?7M^~LJa+AYA(qZm<5?79tmi4f8Ef;V22MQzaK(g zi+zeiFetp(Msp#|&`Y@3>^a+<>-{ipRzi}VgQQ3nI+p}!RlcBseV7@nH}5?y)XMIa z+?)uCR=xJh{DV7)9>f9!PJxu9{u&5UEGF(aZ|Z{wDb``XP3set09n_OL|P7c12oF> zhM>!+ehKgkas!a3e-T>hc{*W9iGc%umQ-kvIHVRDBwiB?pveA*df16H*>XMVH+JE( z{@b&B(}zu;CwU-a^`VA_43$=1#Gl2fZs#S(x*1>MoorYW)t?Pi%8b1l`$X$!q>aY~ zjm1VPPRO7X)EN$SYM%+z`!p}{R{cP~?He8#LFWRtRO(zXe^0M*SQgntz}KF=DvP6p zrIja1SdxB{geK@GNxS8JgVqLk`Ou;lhnJ5ndh0MJcBWE{fbR3tFAtq$Q*u}K`QhZc z9`7E{Zh2A~*+;iTF2)lLMKPB+k}S%7O!jF|_v_-%zrQZN{`Kwl|5sY#ieREkpa1|M o07*naRCt{1gH#BIR0siwR0slxR0soyR0srzR0svPR0syZa|iZDKL7v# delta 1749 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 UItT-YItT=ZItT@~ItT{Ct)gLib^rhX delta 1806 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 L2?e($2?oXhCZA{P~wJ zzg<56`sL}$nw-ST^W~?%{`mCa=4_rW&zHad?dikBZk%%YCuPcie0jcn7uY&O{=26S z)@iytUw(S}Fen91m*>mJJ7;DW|Q5uzSPFct={hoMVF<14m{m9 z)~@$tW)xPoc)M$VeMU>#%=8WHA5R}Fd)h9~mydsW^Y>T z)p30mhGRBTKN&I%&H!7TwrHI}W>N0v?6f|};E-otr5EUhyphX5dw1aDALtC^sLamS zp}1}A!ZeyYgD zUT%OgBJa0%-mh%DQMvAmt#)Hco2)zE3(Y?Ho1`Mp+&WM)eOA5M~hJBrA_4cGR0&(rQ{3-hc#u2 zBL-uk#uuiTHd*61h@Sy-aB`U!idYy91A9+@X2#G=5d;-(^Mwfrmd_K-4p8qw8YbOk zihvKQY&*VkbaCuP(D%mFCj?HC2nZq+47nqT&8jW~H}oKpRwp1cq7(E~YB7^g4$)tp zoP{F#CkeNT1^-VJZWr{01@gct?7eXxJ{=d}l``UXwkuj+v43V&U^C~z%G{>=?Qa6) z34tQuf1MJ6Z8CL}BP-7x$HpEww#|WmW7~lKQ;&_1&Xaf`roZPJA#E_SOA`UQUn!fZ zt_4DHF-yoTc-r3MDKBHBcZ3dKv}7tG;_3onE@K< zVGRK=mkcQz1uj^c*>eWYr&ThmC%}sK(nC|RIwIGxV0m0Zk)ep{0q7`4aaz-Y9?IzNQxJD(7fNjH`R|DZAUxwjFh6JT`6qMcTU16LD z9NiNfDF2v`0A&I?&wJJpBl4#CUGRhF#541xm9FEC-Im&Zjw;8=#uW)T#P;wNnjZ2Nc~{=Yk=E--Sb2sexwf3 z;MxBbgu!yQ37_B><6f7Cw!Md#F#4>rMfsBD#^5t0jlOsIg(_w&{*Iz|=x!o|TK#nF zn$$XW<6MOG%Yz33UjE`#Vesx7wwRhN7pLK*w%i$b0~-!VTFCGMl!f1O^kBoM7u9fC z8ZPeJQc!evigArD<*Jl_CuIU6C#zCxqb(&=Jtgi5sA)W-=Nzw21#)~3#U4^0cJwrMTQPT*w?%R6=ft1f(tx9>&~Yn#yG8OfR)WYeIE#5=~* zw!#C4OtI9BuI&;{Q+g}eI5m8L?-<#;hSW>W5eca$Fa5VLjRyR{vuzEr{r4GvOr`c)l(v25jUMdSxlWIg0@U7LWTd2POuWlg$ z*Ql^ay@i=r;)qzkEOD&oz6%Eg5##J)y|OK3b<4uq0mWGd3Vfuf&N8@^g~iH})LHJp zs+j_#pJS_kvkdKLdR-}JR$23ac&KYi()*PS1?hlqGI*QBbGk7h

      KY1-8!o;N3VO zUn<-sEGZhqK80HOGOWfy)m>rbxwSSFuM2Id3BAhJ)b>@jwt-(|YZ{PEpV~UG=~L4T zZ2ANbC_z5A=bJSIC>1Yam2J1sAO5z%_m`i4`+WHh{Ogye{{gzsMyw@~qELek35N{{ a0f!9<0*4I=1BVR>1cwa?1-A_e2Fo6`p>Xs7 diff --git a/icons/mob/clothing/uniform_digi.dmi b/icons/mob/clothing/uniform_digi.dmi index 9deb214335569dc3f88987f0f768b6be48fff785..6827581b8530877c7bb8691b9b2968daed005771 100644 GIT binary patch delta 1880 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 bOb3Td2LXpn2Lgvo2Lp#p2L!iF2L&HFhsBC_ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 07d9c8cee6b8c5e2341a074263dd8132b4e672e0..2e0906ea20108632f2e31ffda05ac3eb1d3a7580 100644 GIT binary patch delta 15697 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 delta 15697 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 diff --git a/icons/obj/clothing/neck.dmi b/icons/obj/clothing/neck.dmi index 0bdaa36e6248c6651f423569e52749145389f88c..cf8e13292f622b8acbb91518d8171d6b88c15abc 100644 GIT binary patch delta 2981 zcmV;W3tIHD7PT3WBmq#dB@Y3A|Nj90)BwV(Hvpxj0KdQ8-Q5TX2(q%W(~1HA#sGIC z2XG+H-uow0fx*lc~zCSh4Ga`AlUFuy#BI zkqtw?%u9a;M#xoGA;o^DP}z}81H<~`2r3D4fe1@4Dj6Brg=j;Uwxu`rBr0kR9h2$~ zB^epDjxcg#qKro-?4YWD384Ke<2i`G68eeAdu zs=Ehysp?S#;gg$Z)E+Ho=eti=Rkv*zp8j9u^XcP$zdjxaJnj9#pg!&!c%dcq55CkA z28KdUA`A|{(i8ed^o0IVJz*dm3O|J~IHo7`4UCKoXaN0#qoacwz(6QG&I3+Nxbh8; zjScGoCr3uKfK#J?qgucaKgSW{0f5o5F%2LXI5{#o$rcJ2I5j#o#TE)o@X+{Bm@1Tr z`07Fk21duCQNB=oF9t?@kcOOz{+ENJen>;c#K3qs40Pk6p%%i4hJgiqH9QuCG~`TF z72@L@R2AZ991MVYn1BJw!G{p43JG!!Vub+O>#trje1jr?|K9xV4Mhje!Ss#?jJJP( zOT-@lh!qmlyx;Im;@rM|&BgswIJa-!wD1Lx4kh^B*7KR>!wG{?oLlz&KHub|wt)Rp zQ)KQ1ptqoRLQRuvPE0t2Zh*mHG^#0Jfd}=g#e@1K_(GvjI1Je*7#jiqF){sh6CndA z@SuM6c&vec3Xe7rTOU-fbg>!mpVJfflRUxkDLl4#eXx8WAy>S9SU!-D;~O7B6T>Zh zKp2}b>%N_c&60Sqd>|oPyaUkwutn2={=q?Lf7qfKKyXk@b88A3Ml9Cw?YnOXzTshL zf7qgFK-j-1LXPjHA|$&X0*2%)iz03zl%CCk>b`A%;CrPA89sqG@Pb={{Q__BC9?zv zq<^@;VG_0iz7rOH8w1T!fI)#b{EA(I9Ru0bLm9}e9x?+%A`1yViS%vk9iq-sfXYC2 z^^gYg^(zfzcQDF9m4p-^a>-1Dn|HCMs4|dmfIf-G_dkip?yzbp2!N!4f)EW9fbymu zP~vHS8Z@rIE<04+pCJ+ur#VcOh$4)s@tc1&$He-p-J!Bu7X`>|T^vA^aFE=?IE0va zv$0qUAMRXS{z~eE1f}j5fN*xUWqSKcFwK3<=gE^NPhD0#k(is)#FMGi{QR@gvM4~kbQ>o=- zM&YGWR1)rOW%m#>!VtQ}4|jGC4fK(;5a-pwqpAew)xl$`WG{;VkcTut6b$?i<{@X{ zJ{TzSkhCzd0EDX1kbsLos2U9o2nI!eV1}_yNIs;e0yu4> z+1r8+VzKX!=2ll%f51BC3_Mt0U;h#7m@*Iw1Q2VDW~sT+K!E^atoozQf>u=3RaBA2HrnyLgU1Q9byr_&Hs0)Tt`>)qprJKKj`47e2HoU^5A z00b_DIPYv}D8Q_aAevj7fj-E8YyV(#W1j;QQwxX*)d-sb#nb{~N;N{J&tzRJ)W_9I zLIb9kmPDTs#nQ4TOlC66%c9SSVqx}#ds|yNfM_nKbr38(;2fNb&%r)=DV-2r0&CN* zdOkT1`{?CNN_YvZ^sahOYmj^Vkj=pbVbJSBfPoDk)$`=YpN4(YXcOEOsF!+ZMq ztI}022VWRIm{$jnt`a~K;s^mvh$cK^?(6sv4k2m6!Z8r4MneLBBA*x;LgW)8P3Q`E zRg&I0V+&vb;B<|q#>E3R-82H;C*COuSaO`Z%9V&P6bK;J8qG;-qrv>EA6o$>m@_u% zyheChpN{u}{3}UNa*kyMt44#R+*-#lx1X-BKdG4}2m#G7EH%>vp+I!H4MAASl}doe z%`l*yNI+35M5DQXxVZl9w`-0M3Gcr$h-WMws3Z`tN+ciFump6rG}NylAp7q>L@ph$ z#1shDFcxv4n0Go2vm9SPjgRYqt^zKFc;swpy0c&4=T|Q|wSZVqjj%g_r)}>Q^2OrG ziRd$;Sh}<)g#L1N-X7sm{s{KbC&hyB5?H&kt3Go+9_w9+U`wvXyV(jv~l67oCF5>PB)H!a1B1|02cIhMe9w~@ br{3s)NRsDW;0Ddj00000NkvXXu0mjf(07OK delta 2591 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 B(yagh diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 530cd61e6fd1e5cb9537a9f91887267b71bd0e94..607c26bb62ef0d3523f771d7176fd9f2ac266ae1 100644 GIT binary patch delta 1537 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 A0ssI2 diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index 55ec7669ba9cdc31b6ca4969319703a8738e3c9e..dfebe3815511ac769eec289436d3d340c2bfa981 100644 GIT binary patch delta 20853 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 delta 20629 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 diff --git a/modular_citadel/code/modules/clothing/suits/polychromic_cloaks.dm b/modular_citadel/code/modules/clothing/suits/polychromic_cloaks.dm deleted file mode 100644 index c2b7aab55f..0000000000 --- a/modular_citadel/code/modules/clothing/suits/polychromic_cloaks.dm +++ /dev/null @@ -1,38 +0,0 @@ -/obj/item/clothing/neck/cloak/polychromic //enables all three overlays to reduce copypasta and defines basic stuff - name = "polychromic cloak" - desc = "For when you want to show off your horrible colour coordination skills." - icon = 'modular_citadel/icons/polyclothes/item/neck.dmi' - mob_overlay_icon = 'modular_citadel/icons/polyclothes/mob/neck.dmi' - icon_state = "polyce" - item_state = "qmcloak" - hasprimary = TRUE - hassecondary = TRUE - hastertiary = TRUE - primary_color = "#FFFFFF" //RGB in hexcode - secondary_color = "#FFFFFF" - tertiary_color = "#808080" - -/obj/item/clothing/neck/cloak/polychromic/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) //this is where the main magic happens. - . = ..() - if(hasprimary | hassecondary | hastertiary) - if(!isinhands) //prevents the worn sprites from showing up if you're just holding them - if(hasprimary) //checks if overlays are enabled - var/mutable_appearance/primary_worn = mutable_appearance(mob_overlay_icon, "[icon_state]-primary") //automagical sprite selection - primary_worn.color = primary_color //colors the overlay - . += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite. - if(hassecondary) - var/mutable_appearance/secondary_worn = mutable_appearance(mob_overlay_icon, "[icon_state]-secondary") - secondary_worn.color = secondary_color - . += secondary_worn - if(hastertiary) - var/mutable_appearance/tertiary_worn = mutable_appearance(mob_overlay_icon, "[icon_state]-tertiary") - tertiary_worn.color = tertiary_color - . += tertiary_worn - -/obj/item/clothing/neck/cloak/polychromic/polyce //DONATOR ITEM - name = "polychromic embroidered cloak" - desc = "A fancy cloak embroidered with polychromatic thread in a pattern that reminds one of the wielders of unlimited power." - icon_state = "polyce" - primary_color = "#808080" //RGB in hexcode - secondary_color = "#8CC6FF" - tertiary_color = "#FF3535" \ 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 a9b502d629..bd377d6081 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -563,3 +563,8 @@ unique_reskin = list("Goodboye" = "fritz", "Badboye" = "fritz_bad") mutantrace_variation = NONE +/obj/item/clothing/neck/cloak/polychromic/polyce + name = "polychromic embroidered cloak" + desc = "A fancy cloak embroidered with polychromatic thread in a pattern that reminds one of the wielders of unlimited power." + icon_state = "polyce" + poly_colors = list("#808080", "#8CC6FF", "#FF3535") diff --git a/modular_citadel/icons/polyclothes/item/neck.dmi b/modular_citadel/icons/polyclothes/item/neck.dmi deleted file mode 100644 index e2792cf9d0f6513951f4c23c54c1e6dcd4135ae2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 633 zcmV-<0*3vGP)YnTGV!QaR&e!m0s9jGydXy0oR2Zn0004K zNklB?Uyc=}U@Fthu+dlX9`9v!f^^a$`TjPZQ{mL5t7MAi3O zqP&_2SmK%MgVy6)DIbh$qu#gv-h==YViOOF0Ob0nKga{n&~twF)^k8Z&B@_w4}fOz z`TgVN)B(+W;t$Xku^x>yu0ail3fFM1$I}SaaHPhQ2x=f=q^)MIO*T|kvl0LW9qF!c z2gPzKQe6foDW;1A049qB1c-{PNR+@r8A_Bu`9fr;|EbLT!ag*Gpu{eEG!3x75J>^N zwc&RFZ_U$<@#~e66u`DbGZMI$o{(8XqMy~UmasyC00012P)t-sz`(%& z|Notxotm1Osi~=~tgMfZkBp3r&d$!RuCCG1(aX!ry}iAgwp|=;h_*prD|N4xmE-0004WQchCV=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6# za*U0*I5Sc+(=$pSoZ^zil2jm5sUSb6GC5U=i!&v&s2HS+i!-e#F*g;&HbhsZTTqml zn^;sytn%X2gNLXCjh{sM(DV6=jQ+b1W!psK~#90?VF8u zqA(DJXF>vO6RN1x{=NTm?o4E@$_z=No}O)UISQTt_ag~Jt^!b0R8;gK#LJnuLe%~I z4ey)YWedcrvd&hOj!= zWB_9#0sBieiB%T~ob9^DO7f^TA-HW#7776pUcGf8NCZgs>>Zeb7pDNEj>QWiKvglp z7IgsJvVT=c0HF;?hi*(2;_}4bQWs?J%F&Wc5Ew!Aj|6NVq$VKKwl#6l(9#ruY970I z7Cd6tiRVGxbJfk930y|i+iL)3TsATQbwjeImq!I)*W{fu1E9+Hc%aFv zeIV?xPXY9}TMB?j0vHDLgVqNEzRdfx&x_myd?h@0LV}rI2P_}^X&RK%uzSq`cpd(LXZfq z@&Oru^8uJ+pfWWd0L}-9fc?dqyvhe;|CkSuh2~FqYCZrQ3P8*UPK#53%X~lt81n(W z7aP#?0SIk?F&~J_6MqZmd;qLW5c7eVvk3SQm3#nh@_|V?)jW*(0MNam2*CLO%$*5T zrsV^0lMe_0)D6j+ULF*HT@RcO%m9Rb4{|;LH#etKfP;sDd;ilB{6Pi?!1;jgPcC!^ z4_Xr>0FH3Z2S5Yhd|=L>Y_xnJ4M3Ie;XspD`#{)1p91JX&Id98;79<&0DjQ=K!BHo zKl!{UO#s*Vz_i@*v7e?vISn}A*B<};50^RH-jN`)dbIx^b0O#ibEDot~_G7yIivgBj34cAnn&J3ks9gGd!MZObU!d}QLD3TZ Y1(A#3{Jpcdz07*qoM6N<$g6Hs|Hvj+t diff --git a/tgstation.dme b/tgstation.dme index 84d74db295..5d0ca735bc 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -3291,7 +3291,6 @@ #include "modular_citadel\code\modules\client\verbs\who.dm" #include "modular_citadel\code\modules\clothing\neck.dm" #include "modular_citadel\code\modules\clothing\trek.dm" -#include "modular_citadel\code\modules\clothing\suits\polychromic_cloaks.dm" #include "modular_citadel\code\modules\clothing\suits\suits.dm" #include "modular_citadel\code\modules\custom_loadout\custom_items.dm" #include "modular_citadel\code\modules\custom_loadout\load_to_mob.dm" From 42ff9b1d35a46914a156c740a70b4875b9a56966 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Tue, 14 Apr 2020 01:23:26 +0200 Subject: [PATCH 170/190] Final test, fixes and parent calls. --- code/datums/elements/polychromic.dm | 61 +++++++++--------- code/game/objects/items/holy_weapons.dm | 2 +- code/game/objects/items/tanks/watertank.dm | 2 +- code/game/objects/items/tools/screwdriver.dm | 2 +- .../clockcult/clock_items/clockwork_slab.dm | 2 +- code/modules/antagonists/cult/cult_items.dm | 2 +- code/modules/clothing/glasses/_glasses.dm | 2 +- code/modules/clothing/gloves/_gloves.dm | 2 +- code/modules/clothing/head/_head.dm | 2 +- code/modules/clothing/head/misc_special.dm | 2 +- code/modules/clothing/masks/_masks.dm | 2 +- code/modules/clothing/neck/_neck.dm | 2 +- code/modules/clothing/shoes/_shoes.dm | 2 +- code/modules/food_and_drinks/pizzabox.dm | 2 +- icons/obj/clothing/cloaks.dmi | Bin 2114 -> 2616 bytes icons/obj/clothing/neck.dmi | Bin 3253 -> 2759 bytes 16 files changed, 42 insertions(+), 45 deletions(-) diff --git a/code/datums/elements/polychromic.dm b/code/datums/elements/polychromic.dm index f664ed9063..bce5a765fe 100644 --- a/code/datums/elements/polychromic.dm +++ b/code/datums/elements/polychromic.dm @@ -9,11 +9,10 @@ var/overlays_states //A list or a number of states. In the latter case, the atom icon_state/item_state will be used followed by a number. var/list/colors_by_atom = list() //list of color strings or mutable appearances, depending on the above variable. var/icon_file + var/worn_file //used in place of items' held or mob overlay icons if present. var/list/overlays_names //wrap numbers into text strings please. var/list/actions_by_atom = list() - var/list/already_updates_onmob = list() var/poly_flags - var/worn_file //used in place of items' held or mob overlay icons if present. var/static/list/suits_with_helmet_typecache = typecacheof(list(/obj/item/clothing/suit/hooded, /obj/item/clothing/suit/space/hardsuit)) var/list/helmet_by_suit //because poly winter coats exist. var/list/suit_by_helmet //Idem. @@ -58,11 +57,8 @@ if(_flags & POLYCHROMIC_ACTION) RegisterSignal(A, COMSIG_ITEM_EQUIPPED, .proc/grant_user_action) RegisterSignal(A, COMSIG_ITEM_DROPPED, .proc/remove_user_action) - if(!(_flags & POLYCHROMIC_NO_HELD) && !(_flags & POLYCHROMIC_NO_WORN)) - if(!SSdcs.GetElement(/datum/element/update_icon_updates_onmob)) - A.AddElement(/datum/element/update_icon_updates_onmob) - else - LAZYSET(already_updates_onmob, A, TRUE) + if(!(_flags & POLYCHROMIC_NO_WORN) || !(_flags & POLYCHROMIC_NO_HELD)) + A.AddElement(/datum/element/update_icon_updates_onmob) RegisterSignal(A, COMSIG_ITEM_WORN_OVERLAYS, .proc/apply_worn_overlays) if(suits_with_helmet_typecache[A.type]) RegisterSignal(A, COMSIG_SUIT_MADE_HELMET, .proc/register_helmet) @@ -83,19 +79,16 @@ qdel(P) UnregisterSignal(A, list(COMSIG_PARENT_EXAMINE, COMSIG_CLICK_ALT, COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED, COMSIG_ITEM_WORN_OVERLAYS, COMSIG_SUIT_MADE_HELMET)) if(isitem(A)) - if(!(poly_flags & POLYCHROMIC_NO_HELD) && !(poly_flags & POLYCHROMIC_NO_WORN)) - if(!already_updates_onmob[A]) - A.RemoveElement(/datum/element/update_icon_updates_onmob) - else - LAZYREMOVE(already_updates_onmob, A) - var/obj/item/clothing/head/H = helmet_by_suit[A] - if(H) - UnregisterSignal(H, list(COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_ITEM_WORN_OVERLAYS, COMSIG_PARENT_QDELETING)) - LAZYREMOVE(helmet_by_suit, A) - LAZYREMOVE(suit_by_helmet, H) - colors_by_atom -= H - if(!QDELETED(H)) - H.update_icon() //removing the overlays + var/obj/item/clothing/head/H = helmet_by_suit[A] + if(H) + UnregisterSignal(H, list(COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_ITEM_WORN_OVERLAYS, COMSIG_PARENT_QDELETING)) + LAZYREMOVE(helmet_by_suit, A) + LAZYREMOVE(suit_by_helmet, H) + colors_by_atom -= H + if(!QDELETED(H)) + H.update_icon() //removing the overlays + if(!(poly_flags & POLYCHROMIC_NO_WORN) || !(poly_flags & POLYCHROMIC_NO_HELD)) + A.RemoveElement(/datum/element/update_icon_updates_onmob) if(!QDELETED(A) && ismob(A.loc)) var/mob/M = A.loc if(!(poly_flags & POLYCHROMIC_NO_HELD) && M.is_holding(A)) @@ -124,26 +117,29 @@ for(var/i in 1 to overlays_states) overlays += mutable_appearance(f_icon, "[used_state]-[i]", color = L[i]) else - for(var/I in 1 to length(overlays_states)) - var/mutable_appearance/M = L[I] - overlays += mutable_appearance(f_icon, overlays_states[I], color = M.color) + for(var/i in 1 to length(overlays_states)) + var/mutable_appearance/M = L[i] + overlays += mutable_appearance(f_icon, overlays_states[i], color = M.color) /datum/element/polychromic/proc/set_color(atom/source, mob/user) var/choice = input(user,"Polychromic options", "Recolor [source]") as null|anything in overlays_names if(!choice || QDELETED(source) || !user.canUseTopic(source, BE_CLOSE, NO_DEXTERY)) return - var/ncolor = input(user, "Polychromic options", "Choose [choice] Color") as color|null - if(!ncolor || QDELETED(source) || !user.canUseTopic(source, BE_CLOSE, NO_DEXTERY)) - return + var/index = overlays_names.Find(choice) var/list/L = colors_by_atom[source] if(!L) // Ummmmmh. return - var/K = L[overlays_names.Find(choice)] - if(istext(K)) - K = sanitize_hexcolor(ncolor, 6, TRUE, K) + var/mutable_appearance/M = L[index] + var/old_color = istype(M) ? M.color : M + var/ncolor = input(user, "Polychromic options", "Choose [choice] Color", old_color) as color|null + if(!ncolor || QDELETED(source) || !colors_by_atom[source] || !user.canUseTopic(source, BE_CLOSE, NO_DEXTERY)) + return + ncolor = sanitize_hexcolor(ncolor, 6, TRUE, old_color) + if(istype(M)) + M.color = ncolor else - var/mutable_appearance/M = K - M.color = sanitize_hexcolor(ncolor, 6, TRUE, M.color) + L[index] = ncolor + source.update_icon() return TRUE @@ -153,6 +149,7 @@ var/datum/action/polychromic/P = actions_by_atom[source] if(!P) P = new (source) + P.name = "Modify [source]'\s Colors" actions_by_atom[source] = P P.check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_CONSCIOUS RegisterSignal(P, COMSIG_ACTION_TRIGGER, .proc/activate_action) @@ -187,4 +184,4 @@ background_icon_state = "bg_polychromic" use_target_appearance = TRUE button_icon_state = null - target_appearance_matrix = list(0.75,0,0,0,0.75,0) + target_appearance_matrix = list(0.8,0,0,0,0.8,0) diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index 845d14ccff..ac60a322d8 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -304,7 +304,7 @@ var/shield_icon = "shield-red" /obj/item/nullrod/staff/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) - . = list() + . = ..() if(isinhands) . += mutable_appearance('icons/effects/effects.dmi', shield_icon, MOB_LAYER + 0.01) diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index 5210f00e99..6ff5dfc8ad 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -377,7 +377,7 @@ add_overlay(filling) /obj/item/reagent_containers/chemtank/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) //apply chemcolor and level - . = list() + . = ..() //inhands + reagent_filling if(!isinhands && reagents.total_volume) var/mutable_appearance/filling = mutable_appearance('icons/obj/reagentfillings.dmi', "backpackmob-10") diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm index 24fe73ba12..e9f517a9f1 100644 --- a/code/game/objects/items/tools/screwdriver.dm +++ b/code/game/objects/items/tools/screwdriver.dm @@ -54,7 +54,7 @@ . += base_overlay /obj/item/screwdriver/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) - . = list() + . = ..() if(isinhands && random_color) var/mutable_appearance/M = mutable_appearance(icon_file, "screwdriver_head") M.appearance_flags = RESET_COLOR diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm index e6045b2548..5837ac302d 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm @@ -122,7 +122,7 @@ addtimer(CALLBACK(src, .proc/check_on_mob, user), 1) //dropped is called before the item is out of the slot, so we need to check slightly later /obj/item/clockwork/slab/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) - . = list() + . = ..() if(isinhands && item_state && inhand_overlay) var/mutable_appearance/M = mutable_appearance(icon_file, "slab_[inhand_overlay]") . += M diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index ea6bfa9b92..b05aa7f769 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -452,7 +452,7 @@ return BLOCK_NONE /obj/item/clothing/suit/hooded/cultrobes/cult_shield/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) - . = list() + . = ..() if(!isinhands && current_charges) . += mutable_appearance('icons/effects/cult_effects.dmi', "shield-cult", MOB_LAYER + 0.01) diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 362e4a5605..8cbc416b2e 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -347,7 +347,7 @@ colored_before = TRUE /obj/item/clothing/glasses/sunglasses/blindfold/white/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) - . = list() + . = ..() if(!isinhands && ishuman(loc) && !colored_before) var/mob/living/carbon/human/H = loc var/mutable_appearance/M = mutable_appearance('icons/mob/clothing/eyes.dmi', "blindfoldwhite") diff --git a/code/modules/clothing/gloves/_gloves.dm b/code/modules/clothing/gloves/_gloves.dm index 21ebeaa2bb..ddf5e4b584 100644 --- a/code/modules/clothing/gloves/_gloves.dm +++ b/code/modules/clothing/gloves/_gloves.dm @@ -27,7 +27,7 @@ return OXYLOSS /obj/item/clothing/gloves/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) - . = list() + . = ..() if(!isinhands) if(damaged_clothes) . += mutable_appearance('icons/effects/item_damage.dmi', "damagedgloves") diff --git a/code/modules/clothing/head/_head.dm b/code/modules/clothing/head/_head.dm index 121217c128..475e7a4e51 100644 --- a/code/modules/clothing/head/_head.dm +++ b/code/modules/clothing/head/_head.dm @@ -49,7 +49,7 @@ /obj/item/clothing/head/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) - . = list() + . = ..() if(!isinhands) if(damaged_clothes) . += mutable_appearance('icons/effects/item_damage.dmi', "damagedhelmet") diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 4ef2970a24..9c96223a6f 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -205,7 +205,7 @@ icon_state = S.icon_state /obj/item/clothing/head/wig/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) - . = list() + . = ..() if(!isinhands) var/datum/sprite_accessory/S = GLOB.hair_styles_list[hair_style] if(!S) diff --git a/code/modules/clothing/masks/_masks.dm b/code/modules/clothing/masks/_masks.dm index ac087fd9e2..7df38661e5 100644 --- a/code/modules/clothing/masks/_masks.dm +++ b/code/modules/clothing/masks/_masks.dm @@ -29,7 +29,7 @@ /obj/item/clothing/mask/proc/handle_speech() /obj/item/clothing/mask/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) - . = list() + . = ..() if(!isinhands) if(body_parts_covered & HEAD) if(damaged_clothes) diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 33666d2b00..402ea37f21 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -7,7 +7,7 @@ equip_delay_other = 40 /obj/item/clothing/neck/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) - . = list() + . = ..() if(!isinhands) if(body_parts_covered & HEAD) if(damaged_clothes) diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index cc5e88c5d6..802dd7265e 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -50,7 +50,7 @@ last_blood_DNA = blood_dna[blood_dna.len] /obj/item/clothing/shoes/worn_overlays(isinhands = FALSE, icon_file, used_state, style_flags = NONE) - . = list() + . = ..() if(!isinhands) var/bloody = FALSE if(blood_DNA) diff --git a/code/modules/food_and_drinks/pizzabox.dm b/code/modules/food_and_drinks/pizzabox.dm index 3505a35487..94c8d7219c 100644 --- a/code/modules/food_and_drinks/pizzabox.dm +++ b/code/modules/food_and_drinks/pizzabox.dm @@ -87,7 +87,7 @@ add_overlay(tag_overlay) /obj/item/pizzabox/worn_overlays(isinhands, icon_file, used_state, style_flags = NONE) - . = list() + . = ..() var/current_offset = 2 if(isinhands) for(var/V in boxes) //add EXTRA BOX per box diff --git a/icons/obj/clothing/cloaks.dmi b/icons/obj/clothing/cloaks.dmi index dd1ae7d727541359971f603e226d63c94065b7f0..6f4de62cc06828e238bc3a9eba60c77316a9dac9 100644 GIT binary patch delta 2329 zcmV+!3Fh{~5V#aUiBL{Q4GJ0x0000DNk~Le0001h0001B2m=5B0OF*IdjJ3e8Bk1A zMZmzoKPCY{CILbx0bK!go0%1K?dpR=`2fKPE7%kfEWfsLIFWR0g;#?0|2tjk+~!Z zK|umSLIO@r0+HPzN>^3_S5^T`ObJ(31XorAKqdlGF9B{u4sb#TcSQwFOafR}16EZA zR#gg4O$2d73uQV2VmJXaQe;+D1aCwQbVLYaI00B!1Xfj(Aptsn0XIYeI!KKG8vrds z|Ns91DKh~@RRJk90XIb`C@3*8F?tmhumAu6M`i$EhMJn1si~=~tgP6I0|7-=9UUEv zjEn(edjVs7MMXu+%gX^#WdT%aJ3BkXv^BcAy0^Et0aR!JPjLWLcmYON0d9!_Uv^DR zO#-AK0cwN+Mp)S|+1b|C*3{J0+}zya;^NNE&H*?^0Xav&z`%FZ$9ez&00DGTPE!Ct z=GbNc005ekEdqOgiF9H?eokd_Dv`=`4T)7~M65z%Tnd#HT>V_Y(G379wU0_PkC&4G z00$>YL_t(&f$f)zR~tnX#urFPg_V#5X+mo&MB17J5G>SfRYEmwEr^yDi=y@Ys*n19 z)JL<)8cAT2P)cND2qYv>Nm2VBdhag9G;^0Dw6*HlZ#O%C6DH?;zrAzs48w7T3>h+1 zrmE`d>YD0m-Eos9-EnhmE#A807EOA?JMO8etLOQ;x_fJM>>C=aR%=6p4uaX-*l4ra z8XL_tg2iIDJDMDJyAHyR`U1f+mO0*I_4r01ozcb#-<3^&L6{ZSSK5fJtMp z(v@KD0Re-@+t}Dh0)Tud?63gUb$o9xGJtz;@4mXq5SSXAR;N?-c0#YAlEB>K^0-{U zfR*5}HC7T>><+=a(=7Xpj~Jn(@K5CCU| z<74MudG)o|$9%#WVhVO1hB+7?27uu=-h7MiWB{zHbE|4kOaUk`0swEr1HUi;$9%#$ zVN7^OaFaPur2_cDfBfC|&Y$NicO*>0G5{h8yg{6|0j z9zpa6T6YcA-KUD@(>zoH~NhK{EIIK2m6nH_4PLw_$n6Q z<_NF=+WVWe7*GJCWf33%F5*_acQ4O>*Vmu=ww?kg7Xk2{=P!LvM!1OzM+3;=F!+bVG7X?i zC)628BozuEm`bO?9mA0Rg&+vcWisF%0)|Y6APCRPavTuC@RaA-Jdl)Zc6xd?Ih&kb zSfB`kVp=1Jq!-f@1VA){1Xs|1KNBSYc zbSVH(28A600Hx*tT?vqZ31rA-vBLsD0W3zA&|8EUM3@jj=rdRWQLKbaj41?|fxIlM z-ZJ!k@CT_y08@~jVE{1l8MO-34g()$N zawQ1Gz#nh4pIasX=1OVo+Eqq^>TebODx^ zmp22L&*u?=1Xz=@tIFDc+Hb$FW+egurU3j`P!NJN0gwTI6#xk69FXIAR9x1}0YzGc zOCfVW1c0ll6h@#30L)^110bXaFrUlg5-^X8K|aS;0p!3M0F+9SQlfGI2*5v;S}CT0 zV1``?U=BiabFdP^W0@$!a5#@EQCwSx*o6R+0N!1@N<c*x;+o-G130!h5JhT0DQfd7R=QM^7eF(F3?z#-(x* zlQj&Q=BIceRD{`!)f%8#Ayi zfSb5TTod6=wt)JgHIJ;3lkt*8T z4FG8f*6>j{5@5Z&=qkGn0ILdD!tB4c#=-fW`iZ30*&T~?z#6x4e&7HcLso41AtPAQ%ZLw2OtUH-LlJ25!e<0tc189tBsDu9gV=P$~gZU`mgFwJY=ccz>W{%00000NkvXXu0mjf)e-J; delta 1843 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 a@h{p-KOfl+_P_uD002ovPDHLk0$_sZ4~8@V delta 2957 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 z Date: Tue, 14 Apr 2020 01:55:01 +0200 Subject: [PATCH 171/190] I knew using lazy helpers wouldn't have helped much. --- code/datums/elements/polychromic.dm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/code/datums/elements/polychromic.dm b/code/datums/elements/polychromic.dm index bce5a765fe..1c438c86c5 100644 --- a/code/datums/elements/polychromic.dm +++ b/code/datums/elements/polychromic.dm @@ -14,8 +14,8 @@ var/list/actions_by_atom = list() var/poly_flags var/static/list/suits_with_helmet_typecache = typecacheof(list(/obj/item/clothing/suit/hooded, /obj/item/clothing/suit/space/hardsuit)) - var/list/helmet_by_suit //because poly winter coats exist. - var/list/suit_by_helmet //Idem. + var/list/helmet_by_suit = list() //because poly winter coats exist. + var/list/suit_by_helmet = list() //Idem. /datum/element/polychromic/Attach(datum/target, list/colors, states, _flags = POLYCHROMIC_ACTION|POLYCHROMIC_NO_HELD, _icon, _worn, list/names = list("Primary", "Secondary", "Tertiary", "Quaternary", "Quinary", "Senary")) . = ..() @@ -82,8 +82,8 @@ var/obj/item/clothing/head/H = helmet_by_suit[A] if(H) UnregisterSignal(H, list(COMSIG_ATOM_UPDATE_OVERLAYS, COMSIG_ITEM_WORN_OVERLAYS, COMSIG_PARENT_QDELETING)) - LAZYREMOVE(helmet_by_suit, A) - LAZYREMOVE(suit_by_helmet, H) + helmet_by_suit -= A + suit_by_helmet -= H colors_by_atom -= H if(!QDELETED(H)) H.update_icon() //removing the overlays @@ -166,8 +166,8 @@ examine_list += "Alt-click to recolor it." /datum/element/polychromic/proc/register_helmet(atom/source, obj/item/clothing/head/H) - LAZYSET(suit_by_helmet, H, source) - LAZYSET(helmet_by_suit, source, H) + suit_by_helmet[H] = source + helmet_by_suit[source] = H colors_by_atom[H] = colors_by_atom[source] RegisterSignal(H, COMSIG_ATOM_UPDATE_OVERLAYS, .proc/apply_overlays) RegisterSignal(H, COMSIG_ITEM_WORN_OVERLAYS, .proc/apply_worn_overlays) @@ -175,8 +175,8 @@ /datum/element/polychromic/proc/unregister_helmet(atom/source) var/obj/item/clothing/suit/S = suit_by_helmet[source] - LAZYREMOVE(suit_by_helmet, source) - LAZYREMOVE(helmet_by_suit, S) + suit_by_helmet -= source + helmet_by_suit -= S colors_by_atom -= source /datum/action/polychromic From ac36cd49a5b7459c544c4246f8b1521b880aa1eb Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 13 Apr 2020 19:10:49 -0500 Subject: [PATCH 172/190] Automatic changelog generation for PR #11379 [ci skip] --- html/changelogs/AutoChangeLog-pr-11379.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11379.yml diff --git a/html/changelogs/AutoChangeLog-pr-11379.yml b/html/changelogs/AutoChangeLog-pr-11379.yml new file mode 100644 index 0000000000..319d4b2140 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11379.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - refactor: "refactored polychromic clothing into an element." From 2e2fc456326189c5e2d149477c29498069b5a242 Mon Sep 17 00:00:00 2001 From: Artur Date: Tue, 14 Apr 2020 09:28:43 +0300 Subject: [PATCH 173/190] Conflicting icon fix --- icons/mob/clothing/neck.dmi | Bin 47399 -> 47688 bytes icons/obj/clothing/neck.dmi | Bin 2759 -> 2897 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/clothing/neck.dmi b/icons/mob/clothing/neck.dmi index 68fde7bff95931d53484b9bcb01221142988828d..78073222cae4bfbe0b96d993cc5c5ee851bfe40d 100644 GIT binary patch delta 5070 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 U9yV##JP`FW);EQsb)BF54=E%Ypa1{> delta 4779 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 SzUXHNIPTst)vM8Uj`}}tIi!{V diff --git a/icons/obj/clothing/neck.dmi b/icons/obj/clothing/neck.dmi index 622f43ea56843baa5589405fdbe42e415e88a8b2..c4c9c94f48485b44001aaacbf20e7d46b50874ab 100644 GIT binary patch delta 2586 zcmV+#3gz|3710)uBmq9LB{Knk?%kvI?ak`fnDXA$^5(n>`R*|Q0004WQchCV=-0C=30lfg;@K@5h^J5MpRXT?^pUZkb;U|&J9vwwHO zPIs0}RPgB?T@ZSZO>ar~lKk)|YyYx898Z4tdUPL0{U@p-xIBW(APhp75WE*KO_tc z4eN#85xvkisu%i0!O)Kg17mujw{K*mPXqMzkB;_hfc{`;oCk)(uD+qMu^~NhVq`=M zoE#n10)zYX#|T*Du!J(_f!bI>;PM@3`Od?6+sc_&tDFApyChN+o>sT+&77H`}C>9=SLle@I9;dO;6un7>MHBvd{N_dM75d1?-!gB-frFdJE=G zMAPI>hr_ne4HyVSqnZL1Jg8qS59*ij1%ts*2v(mkHUfVSKmVgi$N&Wo>Q~QW6R3D} z0AD#{b7ryfxiBJXn)wE86ad(OtW(ddOWdM!;f<>2;a~Uv_EXoG!V`&O33*J zl#uLx2n@M#+7VMY#!wn7>p%XYKQus0k zF-rjhf;TkGZozf}+1*1WklQ`v3Ji)>Ncbe_Wo!O$(0B)FhRrlWz z3B+j*Q6-{;F?D_MSM!+If3+u6_UNL3+|k7bVu%cqXBb=tVDj(dLL7#{9fyJYkv(3y-F82J#jcjd+|HN8ZwsnMgdU zsuq%GB$G*6D0yZomFkSp5WH8fmX~RuDR{46udH+mD0mpO&=fojUbrfPe}>!mnh0hv zZX}l_&@c>QJYl9*B+xWX=K1T9NIH_{1erH~Gcy}A8=1d3U-s?h=GNv`mi8s%5{RWj z028T%1Y)Vsz|}}3lFOyjIY#I^&Cl${yoQu#jR}v}3Gfip{=5y&hG9!%8ZTw(o_rQaH zc_dSa^J?>`D#3ZRc}$h$(+GfdNCTpfz<+QZaw*({1d4S?rqEafp=vZFa0!H}(a=Ch zPy}We>x2ZljY9&r57yS+Z8I4(0HgRHa9j}|hS%p0s@E`j^mZ1yeI zF_l0l5Fl0?&2n?2fdT*0$e4`sn<5WCg26gQe^QLItZv zgQZLX)A)Gq`O(bA45W{*;l1qECZvzAVaS^Vidty`LJdRSBv8}}0n9<0N%I?p+xWrG z+V1Wyvyq4zmO%SR)9Aw*mO%SRLjWSWZ7f=tfknt}BDe-OVG%NeP$5W6#_djj(^Mr; zAxKOm>`p^e2>|o_op3ynUo;0D?;q7wjVq1x)J%(Za?I^g%xM_O~|o zIG~tXAR4L>HUq`f0?|~Bkm)mNmlW#9)lNbKlgrDZ&xm4ioCy=D)XIwJGoo0SGhsfL z(*dG|f;NMY!hJ4-^YM8&M=vLT4UtQ*Hl3;$5({vSUP+lEmtdt&)p>1#+{X{tHMr5M;$(bM$d2Ib z;BaRin< zAq1Mov#w^E5DKE*Z3tndP^kcqn_-}pB~a7~(P+-juD*P^;(REqeP@U#EDxe0h?f=8 zhczsL_K}AAYY1fj{riMV2dpp!f;EgqY?X?3r(w3^s~_`m9ndwvrHF_2k)}Q81%7_@ zA*U9ImTH9U0Uo!1d{!uyO69WXGoo19bS8xUa&p?5@UVCY=jd|D61fCxTTay{_Sb)p zBhOLsu!txC3LTIi+K0Wm)gt){pCim8PId{eKz>l1jF#8nH~4%ND8Lo*isXlnme(N0 zH5E&_k(WZx8yDLa28>|bYWh;xV#^98L!V;-E22R?fo7NAa5H0 zO*j8#{CgdL@Q$8h@$yVS**Vs(L6`S~F5`FZQw&dD7d)N-)1z61_qw)5Pw#Xf>>!J`qFsi*k_T4ohGer=i36-1k4a?1FobF8Z@>tDsY)uOIK1R4 zxsqvNjK7Yck}wyDu=Jvqk%3)^HuUqh^u{)#rq@mIlc5t;9SZSdZZTrP6KMX;-9l?THPNH~9@1v^arT5!wI!2B8``#nF?hfDGK zZ7%`Y1$LQh-F5%~2wq8lL_t(|obA{NR~ktW0AMbI;(?;zy4h@YQIln4R0#2axI|Gw z*<6egyfMlD{|#H!-NQ9iJp@I4yHgkkUmNCo)m_!?_V_(Ma?z!qBu{=pUJXoE*^r1L3Kuum%{6 zL}z$lEavJPpPnAq17{~EwZOTlDJ?L<&vD$>2QV=`tpP#;XD4T8*+PK?&P~nDv4sK? zJT@~Hr3xi3zPkt^fr;rvf-e;Rvyn+ZEJH4dfzj|(0G1(>#NbRc3c8udm_r!ry0E~B z@#zpOLoSJ`Li}8R233Uwm<$FXdAIm8lnycn z(>oLNJ^$@FG2RCdD^i1xHSj-l>0YjlgLQ}wk2lcCe~9NzUcTdmRurvuzjGAE#47mf7qgFU?3cZ_J=K+0YV1FG&`4|&zDSg{kZ&! z@Qsf{`@$nG90f!yvPS71b}Lc%9WuanD2U7~<0 zf$Z)f6Uf)EOdxxLQ5jT=kOHDhu0(jVoa`A@3FI4ppkMO%{wI0t39GdP0Z1lL2r+>I zDBpAfB~R0!asPEWq3Zq&kwBd0C{-d#m{iwSfAx-u{a1TJWsfcj$Q@m5Acn{wd4{ot zxbl{gNrw+lE-rs1-A4$e?iWC~wB(rHClxTwPuk~&7hZTV) z_1FvE``Oty`y6Bc<-1@p<(1w8O1XU=OQ%CjdWJ=Op{uK zJA3?ZXJ8T0OGoBEKym6MaXU`v2DB~T$q%%<&5LsSU>%lz%#$EyeXRc;JiinwAQX}W;mQp8n%`$$6p z^EyGIva<+%kdLF|z1<@YD5e&OhH8YpKryvIG*u&H`b^#>h5B)|lhD9SE+_hoC>F<= zFrCeAY=}N1iiJ57mP;iaAW^AkGYBa><}$dFT7h$PE@OyXg0<&Vy_#NybM!{m6uAT| zeX1^N6XZT#W!K=EZ!NWwLKFahg$~Fau+|y@ey8Ym`9xK3|@iU zG5!f&>zGHJ>?~e^{E)!U@cJlFfJ@;O$?f<8uTKI6xHMjo{J`;9Inq{4wJT^iT$U8l?YPH9PFd=z=R=r+-nnFwP zzJ6^qo+?oAFrKKeX4M-KXj#@UZg6&vaW?3GuhnZ3h@~|KBukDi!#~_+Vab9$h6s z6Tu0ACW028Gw(Zmh(jcQEwoNSs2U9kM4z}aLiC9%Ep!FmG-dAWs{?2OPSKzV^gLOL*3~9NPiwuPLGA9Low; zjRs5ES;sK9SGTuUYNiPx(0smaHPeJp5bbV52%D8=6L{PV1Fa!{fudH3Mss<2`|aB; z=R;xpJ3~BYc@RxOylIj?tYHbXk2KV;A&~w2e!`^#Hkks!8pa~F>NUI5Fx&C%-F#dJ zbPaGR;)#8v8P0iupI?2*sRg2?8sTt&X9J%VYV~@fA^MCcmLZ)9p}(A83?@9OoxnM| zQMW`c!8(*v^|}3j_49G+JFT765CuS?1M+?QuvZUSB;Vn6ih0DzuHzNR_llD-@EZI9 zukQi{xEfxOeE%`<8pQaa@+fggzVA32d=1L@p^(GCVVs|XQM1+c6~n@bxX^CJUU=b! z7hZVbg%@{>Yx!J-eKH_NG{d^*gMEy<`Ve=`Je+C?wLZ;%^FjApvHN?X+4Ep(A3&sxWpAWi@_aXFc3m#8^>Cvo0d_E}u z4L05{QCA|eir8^^`+>*%Md}7!KK Date: Tue, 14 Apr 2020 09:30:14 +0300 Subject: [PATCH 174/190] Ghommies suggestions and renames a proc --- code/__HELPERS/unsorted.dm | 2 +- code/datums/components/crafting/recipes/recipes_clothing.dm | 2 +- code/game/machinery/cloning.dm | 4 ++-- code/modules/antagonists/bloodsucker/bloodsucker_life.dm | 3 +-- code/modules/antagonists/bloodsucker/powers/feed.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 2 +- code/modules/mob/living/carbon/human/species_types/vampire.dm | 4 ++-- 7 files changed, 9 insertions(+), 10 deletions(-) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 2cc8c48dd5..afa858afb7 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1565,7 +1565,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) world.TgsChatBroadcast() //Checks to see if either the victim has a garlic necklace or garlic in their blood -/proc/sucking_checks(var/mob/living/carbon/target, check_neck, check_blood) +/proc/blood_sucking_checks(var/mob/living/carbon/target, check_neck, check_blood) //Bypass this if the target isnt carbon. if(!iscarbon(target)) return TRUE diff --git a/code/datums/components/crafting/recipes/recipes_clothing.dm b/code/datums/components/crafting/recipes/recipes_clothing.dm index fc1f4e25e5..b9e3c379b4 100644 --- a/code/datums/components/crafting/recipes/recipes_clothing.dm +++ b/code/datums/components/crafting/recipes/recipes_clothing.dm @@ -296,7 +296,7 @@ category = CAT_CLOTHING -/datum/crafting_recipe/wintercoat_cosmic +/datum/crafting_recipe/garlic_necklace name = "Garlic Necklace" result = /obj/item/clothing/neck/garlic_necklace reqs = list(/obj/item/reagent_containers/food/snacks/grown/garlic = 15, diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index b0132884ea..b4744ec254 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -142,6 +142,8 @@ if(!QDELETED(clonemind.current)) if(clonemind.current.stat != DEAD) //mind is associated with a non-dead body return FALSE + if(AmBloodsucker(clonemind.current)) //If the mind is a bloodsucker + return FALSE if(clonemind.current.suiciding) // Mind is associated with a body that is suiciding. return FALSE if(clonemind.active) //somebody is using that mind @@ -159,8 +161,6 @@ mess = TRUE update_icon() return FALSE - if(AmBloodsucker(clonemind)) //If the mind is a bloodsucker - return FALSE attempting = TRUE //One at a time!! countdown.start() diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm index ae685c5603..efccb5591e 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_life.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_life.dm @@ -247,7 +247,7 @@ owner.current.apply_status_effect(STATUS_EFFECT_UNCONSCIOUS) ADD_TRAIT(owner.current, TRAIT_FAKEDEATH, "bloodsucker") // Come after UNCONSCIOUS or else it fails ADD_TRAIT(owner.current, TRAIT_NODEATH, "bloodsucker") // Without this, you'll just keep dying while you recover. - ADD_TRAIT(owner.current, TRAIT_RESISTHIGHPRESSURE, "bloodsucker") // So you can heal in 0 G. otherwise you just...heal forever. + ADD_TRAIT(owner.current, TRAIT_RESISTHIGHPRESSURE, "bloodsucker") // So you can heal in space. Otherwise you just...heal forever. ADD_TRAIT(owner.current, TRAIT_RESISTLOWPRESSURE, "bloodsucker") // Visuals owner.current.update_sight() @@ -260,7 +260,6 @@ /datum/antagonist/bloodsucker/proc/Torpor_End() owner.current.stat = SOFT_CRIT owner.current.remove_status_effect(STATUS_EFFECT_UNCONSCIOUS) - owner.current.cure_fakedeath("bloodsucker") REMOVE_TRAIT(owner.current, TRAIT_FAKEDEATH, "bloodsucker") REMOVE_TRAIT(owner.current, TRAIT_NODEATH, "bloodsucker") REMOVE_TRAIT(owner.current, TRAIT_RESISTHIGHPRESSURE, "bloodsucker") diff --git a/code/modules/antagonists/bloodsucker/powers/feed.dm b/code/modules/antagonists/bloodsucker/powers/feed.dm index 40e0dbd25a..8ac4fcebc1 100644 --- a/code/modules/antagonists/bloodsucker/powers/feed.dm +++ b/code/modules/antagonists/bloodsucker/powers/feed.dm @@ -300,7 +300,7 @@ SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "drankkilled", /datum/mood_event/drankkilled) // BAD // in bloodsucker_life.dm /datum/action/bloodsucker/feed/ContinueActive(mob/living/user, mob/living/target) - return ..() && target && (!target_grappled || user.pulling == target) && sucking_checks(target, TRUE, TRUE) // Active, and still antag, + return ..() && target && (!target_grappled || user.pulling == target) && blood_sucking_checks(target, TRUE, TRUE) // Active, and still antag, // NOTE: We only care about pulling if target started off that way. Mostly only important for Aggressive feed. /datum/action/bloodsucker/feed/proc/ApplyVictimEffects(mob/living/target) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index f0e94e4845..40b8de36c5 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -854,7 +854,7 @@ /mob/living/carbon/proc/can_defib() var/tlimit = DEFIB_TIME_LIMIT * 10 var/obj/item/organ/heart = getorgan(/obj/item/organ/heart) - if(suiciding || hellbound || HAS_TRAIT(src, TRAIT_HUSK) || AmBloodsucker()) + if(suiciding || hellbound || HAS_TRAIT(src, TRAIT_HUSK) || AmBloodsucker(src)) return if((world.time - timeofdeath) > tlimit) return diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm index c4a9fdb086..415cd9889c 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -82,7 +82,7 @@ to_chat(H, "You're already full!") return //This checks whether or not they are wearing a garlic clove on their neck - if(!sucking_checks(victim, TRUE, FALSE)) + if(!blood_sucking_checks(victim, TRUE, FALSE)) return if(victim.stat == DEAD) to_chat(H, "You need a living victim!") @@ -96,7 +96,7 @@ to_chat(H, "[victim] is blessed! You stop just in time to avoid catching fire.") return //Here we check now for both the garlic cloves on the neck and for blood in the victims bloodstream. - if(!sucking_checks(victim, TRUE, TRUE)) + if(!blood_sucking_checks(victim, TRUE, TRUE)) return if(!do_after(H, 30, target = victim)) return From fb7dc7a54cf2660d745515772eefe6f05cdfbc70 Mon Sep 17 00:00:00 2001 From: Artur Date: Tue, 14 Apr 2020 09:42:11 +0300 Subject: [PATCH 175/190] Fucking icons --- code/game/machinery/cloning.dm | 4 ++-- code/modules/hydroponics/grown/garlic.dm | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index b4744ec254..bc0fec68ba 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -142,10 +142,10 @@ if(!QDELETED(clonemind.current)) if(clonemind.current.stat != DEAD) //mind is associated with a non-dead body return FALSE - if(AmBloodsucker(clonemind.current)) //If the mind is a bloodsucker - return FALSE if(clonemind.current.suiciding) // Mind is associated with a body that is suiciding. return FALSE + if(AmBloodsucker(clonemind.current)) //If the mind is a bloodsucker + return FALSE if(clonemind.active) //somebody is using that mind if( ckey(clonemind.key)!=ckey ) return FALSE diff --git a/code/modules/hydroponics/grown/garlic.dm b/code/modules/hydroponics/grown/garlic.dm index fd24376282..4184b85008 100644 --- a/code/modules/hydroponics/grown/garlic.dm +++ b/code/modules/hydroponics/grown/garlic.dm @@ -26,5 +26,4 @@ desc = "A clove of garlic on a cable, tied to itself in a circle, just might fit around your neck. For loonies people who fear getting their blood sucked." icon_state = "garlic_necklace" item_state = "garlic_necklace" - alternate_worn_icon = 'icons/mob/neck.dmi' \ No newline at end of file From 9c2a3fb4cc0a3daf37f038b72a3142408167a76e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 14 Apr 2020 03:33:10 -0500 Subject: [PATCH 176/190] Automatic changelog generation for PR #11838 [ci skip] --- html/changelogs/AutoChangeLog-pr-11838.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11838.yml diff --git a/html/changelogs/AutoChangeLog-pr-11838.yml b/html/changelogs/AutoChangeLog-pr-11838.yml new file mode 100644 index 0000000000..464448c138 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11838.yml @@ -0,0 +1,4 @@ +author: "kappa-sama" +delete-after: True +changes: + - rscdel: "normies can no longer steal circuit codes" From ee3bd67756d16003258b6acb490673a23a0067f0 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 14 Apr 2020 03:34:01 -0500 Subject: [PATCH 177/190] Automatic changelog generation for PR #11831 [ci skip] --- html/changelogs/AutoChangeLog-pr-11831.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11831.yml diff --git a/html/changelogs/AutoChangeLog-pr-11831.yml b/html/changelogs/AutoChangeLog-pr-11831.yml new file mode 100644 index 0000000000..22b0e71692 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11831.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "fixed a few floaty sprite accessories." From ef2bfd74c251b091b7d967381efc4ce07ab16115 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 14 Apr 2020 03:34:22 -0500 Subject: [PATCH 178/190] Automatic changelog generation for PR #11830 [ci skip] --- html/changelogs/AutoChangeLog-pr-11830.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11830.yml diff --git a/html/changelogs/AutoChangeLog-pr-11830.yml b/html/changelogs/AutoChangeLog-pr-11830.yml new file mode 100644 index 0000000000..79d3e7656f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11830.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed the phantom thief component, again." From fb82619bd306278308308950afc116ffb7097f4b Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 14 Apr 2020 03:34:48 -0500 Subject: [PATCH 179/190] Automatic changelog generation for PR #11829 [ci skip] --- html/changelogs/AutoChangeLog-pr-11829.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11829.yml diff --git a/html/changelogs/AutoChangeLog-pr-11829.yml b/html/changelogs/AutoChangeLog-pr-11829.yml new file mode 100644 index 0000000000..5cf966cd02 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11829.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed a whacky miniature cell duping issue." From 4cd8f1b934ac5052656ad61e2495b4a4acecfb47 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 14 Apr 2020 03:35:07 -0500 Subject: [PATCH 180/190] Automatic changelog generation for PR #11828 [ci skip] --- html/changelogs/AutoChangeLog-pr-11828.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11828.yml diff --git a/html/changelogs/AutoChangeLog-pr-11828.yml b/html/changelogs/AutoChangeLog-pr-11828.yml new file mode 100644 index 0000000000..067963046f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11828.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed toilet cistern loot spawning on the floor." From 3259d1392517b150b95a02353cd11ca7b5ea1f5c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 14 Apr 2020 03:35:49 -0500 Subject: [PATCH 181/190] Automatic changelog generation for PR #11826 [ci skip] --- html/changelogs/AutoChangeLog-pr-11826.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11826.yml diff --git a/html/changelogs/AutoChangeLog-pr-11826.yml b/html/changelogs/AutoChangeLog-pr-11826.yml new file mode 100644 index 0000000000..4ffe43239d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11826.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - refactor: "Backend body size preferences." From d0b1a770bef2b831a1511bc6a0548d95708f6d44 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 14 Apr 2020 03:37:39 -0500 Subject: [PATCH 182/190] Automatic changelog generation for PR #11655 [ci skip] --- html/changelogs/AutoChangeLog-pr-11655.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11655.yml diff --git a/html/changelogs/AutoChangeLog-pr-11655.yml b/html/changelogs/AutoChangeLog-pr-11655.yml new file mode 100644 index 0000000000..7acbf5efa7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11655.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - balance: "The crusher's vortex talisman trophy now has a cooldown between each spawned wall." From 6a4a937da5ad15043424fc1e1c929f0437a6e1f5 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 14 Apr 2020 05:38:37 -0500 Subject: [PATCH 183/190] Automatic changelog generation for PR #11618 [ci skip] --- html/changelogs/AutoChangeLog-pr-11618.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11618.yml diff --git a/html/changelogs/AutoChangeLog-pr-11618.yml b/html/changelogs/AutoChangeLog-pr-11618.yml new file mode 100644 index 0000000000..99acbbeef5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11618.yml @@ -0,0 +1,12 @@ +author: "Arturlang" +delete-after: True +changes: + - rscadd: "Adds garlic, a mutation of onions" + - rscadd: "You can now make garlic necklaces." + - tweak: "Tweaked hunger to be more the same as blood level for bloodsuckers" + - tweak: "Bloodsuckers no longer get zero healing from regenerative cores, the core now heals their wounds but not their blood." + - balance: "Bloodsucker heal is now based a lot more on blood level." + - bugfix: "You can no longer be effectively immortal when fully auged as a bloodsucker." + - bugfix: "Regenerative cores will regain their old names when they are renewed, no more working decayed cores." + - code_imp: "Removes a lot of unnecesiry clutter of comments and tries to make the vars more consistent for bloodsucker code." + - code_imp: "Made the regenerative core use one proc instead of copypasta" From 8f71aafde52b2331ec3414794ea6e99837882b90 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 14 Apr 2020 06:17:15 -0500 Subject: [PATCH 184/190] Automatic changelog generation for PR #11809 [ci skip] --- html/changelogs/AutoChangeLog-pr-11809.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11809.yml diff --git a/html/changelogs/AutoChangeLog-pr-11809.yml b/html/changelogs/AutoChangeLog-pr-11809.yml new file mode 100644 index 0000000000..92c882825f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11809.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - rscadd: "Volumetric storage is here." From 39e6541ccde19d66f8707ec628fbf28bbba57192 Mon Sep 17 00:00:00 2001 From: Linzolle Date: Tue, 14 Apr 2020 17:54:07 -0500 Subject: [PATCH 185/190] remove bad words --- _maps/RandomRuins/SpaceRuins/bus.dmm | 18 +++++++++--------- code/__DEFINES/inventory.dm | 2 +- code/__HELPERS/game.dm | 2 +- .../carbon/alien/humanoid/update_icons.dm | 4 ++-- html/archivedchangelog.html | 14 +++++++------- strings/insult.json | 1 - strings/ion_laws.json | 2 +- strings/names/death_commando.txt | 4 ++-- strings/traumas.json | 7 +------ 9 files changed, 24 insertions(+), 30 deletions(-) diff --git a/_maps/RandomRuins/SpaceRuins/bus.dmm b/_maps/RandomRuins/SpaceRuins/bus.dmm index c731bcac5e..2f5c14191b 100644 --- a/_maps/RandomRuins/SpaceRuins/bus.dmm +++ b/_maps/RandomRuins/SpaceRuins/bus.dmm @@ -66,7 +66,7 @@ /obj/structure/fluff/bus/passable/seat{ icon_state = "backseat" }, -/obj/item/reagent_containers/food/snacks/faggot, +/obj/item/reagent_containers/food/snacks/meatball, /turf/open/floor/plasteel/airless/dark{ icon_state = "bus" }, @@ -90,7 +90,7 @@ /obj/structure/fluff/bus/passable/seat{ icon_state = "backseat" }, -/obj/item/reagent_containers/food/snacks/faggot, +/obj/item/reagent_containers/food/snacks/meatball, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/airless/dark{ icon_state = "bus" @@ -158,9 +158,9 @@ "aA" = ( /obj/structure/fluff/bus/passable, /obj/structure/closet/crate/freezer, -/obj/item/reagent_containers/food/snacks/faggot, -/obj/item/reagent_containers/food/snacks/faggot, -/obj/item/reagent_containers/food/snacks/faggot, +/obj/item/reagent_containers/food/snacks/meatball, +/obj/item/reagent_containers/food/snacks/meatball, +/obj/item/reagent_containers/food/snacks/meatball, /turf/open/floor/plasteel/airless/dark{ icon_state = "bus" }, @@ -182,7 +182,7 @@ /area/ruin/unpowered/no_grav) "aD" = ( /obj/structure/fluff/bus/passable, -/obj/item/reagent_containers/food/snacks/faggot, +/obj/item/reagent_containers/food/snacks/meatball, /turf/open/floor/plasteel/airless/dark{ icon_state = "bus" }, @@ -256,7 +256,7 @@ /turf/open/floor/plating/asteroid/airless, /area/ruin/unpowered/no_grav) "aP" = ( -/obj/item/reagent_containers/food/snacks/faggot, +/obj/item/reagent_containers/food/snacks/meatball, /turf/open/floor/plating/asteroid/airless, /area/ruin/unpowered/no_grav) "aQ" = ( @@ -282,7 +282,7 @@ icon_state = "backseat" }, /obj/effect/decal/cleanable/dirt, -/obj/item/reagent_containers/food/snacks/faggot, +/obj/item/reagent_containers/food/snacks/meatball, /turf/open/floor/plasteel/airless/dark{ icon_state = "bus" }, @@ -318,7 +318,7 @@ "aZ" = ( /obj/structure/fluff/bus/passable, /obj/effect/decal/cleanable/dirt, -/obj/item/reagent_containers/food/snacks/faggot, +/obj/item/reagent_containers/food/snacks/meatball, /turf/open/floor/plasteel/airless/dark{ icon_state = "bus" }, diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index 5e324fdf5f..f42d199d0d 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -147,7 +147,7 @@ //flags for covering body parts #define GLASSESCOVERSEYES (1<<0) -#define MASKCOVERSEYES (1<<1) // get rid of some of the other [censored for github] in these flags +#define MASKCOVERSEYES (1<<1) // get rid of some of the other stupidity in these flags #define HEADCOVERSEYES (1<<2) // feel free to realloc these numbers for other purposes #define MASKCOVERSMOUTH (1<<3) // on other items, these are just for mask/head #define HEADCOVERSMOUTH (1<<4) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 6b9b856bec..170d93c31f 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -183,7 +183,7 @@ return -// Better recursive loop, technically sort of not actually recursive cause that shit is [censored for github], enjoy. +// Better recursive loop, technically sort of not actually recursive cause that shit is stupid, enjoy. //No need for a recursive limit either /proc/recursive_mob_check(atom/O,client_check=1,sight_check=1,include_radio=1) diff --git a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm index 20d8492d0f..9563959ebc 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm @@ -53,7 +53,7 @@ /mob/living/carbon/alien/humanoid/update_transform() //The old method of updating lying/standing was update_icons(). Aliens still expect that. if(lying > 0) - lying = 90 //Anything else looks [censored for github] + lying = 90 //Anything else looks silly ..() update_icons() @@ -95,4 +95,4 @@ hands += mutable_appearance(alt_inhands_file, "[itm_state][caste]_r", -HANDS_LAYER) overlays_standing[HANDS_LAYER] = hands - apply_overlay(HANDS_LAYER) \ No newline at end of file + apply_overlay(HANDS_LAYER) diff --git a/html/archivedchangelog.html b/html/archivedchangelog.html index 6b0fb6c6e6..b586ae9d51 100644 --- a/html/archivedchangelog.html +++ b/html/archivedchangelog.html @@ -6394,7 +6394,7 @@ start of their shift.

      • Greek Rioter updated:
          -
        • Removed dumb/badly sprited drinks for barman. This is for you, people that love to play barman. Your job is now non-retarded again. EDIT: FIXED DRINK MIXING
        • +
        • Removed dumb/badly sprited drinks for barman. This is for you, people that love to play barman. Your job is now non-stupid again. EDIT: FIXED DRINK MIXING
        • More info here: rev2136
      • @@ -7315,7 +7315,7 @@ resistance (only slight don't run into a fire).
      • HoS, Warden and Security Officer starting equipment changed.
      • New crate, which contains armored vests and helmets. Requires security access, costs 20.
      • Miner lockers now contain meson scanners and mining jumpsuits.
      • -
      • Food crate now contains milk, instead of faggots. Lightbulb crates cost reduced to 5. Riot crates cost reduced to 20. Emergency crate contains 2 med bots instead of floor bots. Hydroponics crate no longer contains weed spray, pest spray. It's latex gloves were replaced with leather ones and an apron.
      • +
      • Food crate now contains milk, instead of meatballs. Lightbulb crates cost reduced to 5. Riot crates cost reduced to 20. Emergency crate contains 2 med bots instead of floor bots. Hydroponics crate no longer contains weed spray, pest spray. It's latex gloves were replaced with leather ones and an apron.
      • Added chef's apron (can hold a kitchen knife) and a new service borg sprite.
      • Autolathe can now construct kitchen knives.
      • Biosuit and syndicate space suits can now fit into backpacks.
      • @@ -8139,7 +8139,7 @@ resistance (only slight don't run into a fire). -Meatbread: 3 meats (whatever meats) 3 flour 3 cheese. Can be sliced. Cheese_amount is actually displayed on the microwave.
      • Profession-special radio channels now have color.
      • -
      • AI card not retardedly lethal anymore, for anyone that didn't notice
      • +
      • AI card not stupidly lethal anymore, for anyone that didn't notice
      • HYDROPONICS OVERHAUL, credit goes to Skie and Numbers. Wood doesn't have the entity so the tower caps cannot be harvested. For now.
      • Bar is now barman-only, access-wise. No more shall the entire station trump inside the bar and choke the monkey.
      • Prepping ground for Barman update (SPRITE ME SOME GODDAMN BOTTLES)
      • @@ -8496,7 +8496,7 @@ resistance (only slight don't run into a fire). New spell: Mindblast
        • - Causes brain damage, progressively causing other players to become even more retarded. + Causes brain damage, progressively causing other players to become even more stupid.
        @@ -8693,7 +8693,7 @@ resistance (only slight don't run into a fire).
      • BACKUP BACKUP TELL ME WHAT YOU GONNA DO NOW Changed the monkey name code. Re-did my antimatter engine code so it actually puts out power now
      • dumb as fuck change, whoever did that, it already spawn ()&#39;s inside the proc - code, whoever did that, you are a faggot and should read code before you modify + code, whoever did that, you are a fool and should read code before you modify it
      • Fixed a bug that gave everyone modify ticker variables you silly sausage.
      • Sorted the AIs track list.
      • @@ -8896,7 +8896,7 @@ resistance (only slight don't run into a fire).
      • Fixed the syndicate nuclear victory bug
      • Wizard now spawns with wizard outfit which he must wear to cast spells
      • Blood bug fixes
      • -
      • Fixed a retarded bug that meant I didn't have the power to kick admins
      • +
      • Fixed a dumb bug that meant I didn't have the power to kick admins
      • THUNDERDOME!
      • Several new facial hair options and a bitchin' mohawk
      • Blood by Culka
      • @@ -9048,4 +9048,4 @@ resistance (only slight don't run into a fire).
      • Seperated male and female names.
      • Females have pink underwear.
      • Guests can no longer save/load profiles, as this just created useless profiles that weren't used again.
      • -
      \ No newline at end of file + diff --git a/strings/insult.json b/strings/insult.json index 77b176be8f..7c8845255a 100644 --- a/strings/insult.json +++ b/strings/insult.json @@ -81,7 +81,6 @@ "nouns_generic": [ "you", - "that faggot traitor", "you there", "guy", "person", diff --git a/strings/ion_laws.json b/strings/ion_laws.json index 55913dc3f4..b95a933d7a 100644 --- a/strings/ion_laws.json +++ b/strings/ion_laws.json @@ -766,7 +766,7 @@ "THIRTEEN SEQUELS", "THREE WISHES", "A SITCOM", - "THAT GRIEFING FAGGOT GEORGE MELONS", + "THAT GRIEFING GEORGE MELONS", "FAT GIRLS ON BICYCLES", "SOMEBODY TO PUT YOU OUT OF YOUR MISERY", "HEROES IN A HALF SHELL", diff --git a/strings/names/death_commando.txt b/strings/names/death_commando.txt index 01259acf8c..e689727228 100644 --- a/strings/names/death_commando.txt +++ b/strings/names/death_commando.txt @@ -61,10 +61,10 @@ Splint Chesthair Stabby McGee Stump Beefgnaw Stump Chunkman -THAT DAMN FAGGOT TRAITOR GEORGE MELONS +THAT DAMN TRAITOR GEORGE MELONS Theodore Pain Thick McRunfast Toolboxl Rose Touch Rustrod Trunk Slamchest -Zombie Gandhi \ No newline at end of file +Zombie Gandhi diff --git a/strings/traumas.json b/strings/traumas.json index 864ae9b767..8d1e9537ef 100644 --- a/strings/traumas.json +++ b/strings/traumas.json @@ -3,7 +3,7 @@ "@pick(semicolon)IM A PONY NEEEEEEIIIIIIIIIGH", "without oxigen blob don't evoluate?", "@pick(semicolon)CAPTAINS A COMDOM", - "@pick(semicolon)@pick(faggot_traitor) @pick(george) @pick(mellens) is grifing me HALP!!!", + "@pick(semicolon) @pick(george) @pick(mellens) is grifing me HALP!!!", "can u give me @pick(mutations)?", "THe saiyans screwed", "Bi is THE BEST OF BOTH WORLDS>", @@ -156,11 +156,6 @@ "mwrlins" ], - "faggot_traitor": [ - "", - "that faggot traitor" - ], - "random_gibberish": [ "g", "squid", From 166370fb6c62beb8cc8488710c9ffbf9c511ff1c Mon Sep 17 00:00:00 2001 From: Linzolle Date: Tue, 14 Apr 2020 17:55:22 -0500 Subject: [PATCH 186/190] missed one --- code/modules/jobs/job_types/chaplain.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/jobs/job_types/chaplain.dm b/code/modules/jobs/job_types/chaplain.dm index 56bc70b990..cf9c5a6a3c 100644 --- a/code/modules/jobs/job_types/chaplain.dm +++ b/code/modules/jobs/job_types/chaplain.dm @@ -73,7 +73,7 @@ B.name = "Fluorescent Incandescence" if("lol", "wtf", "gay", "penis", "ass", "poo", "badmin", "shitmin", "deadmin", "cock", "cocks", "meme", "memes") B.name = pick("Woodys Got Wood: The Aftermath", "War of the Cocks", "Sweet Bro and Hella Jef: Expanded Edition","F.A.T.A.L. Rulebook") - H.adjustOrganLoss(ORGAN_SLOT_BRAIN, 100) // starts off [censored for github] as fuck + H.adjustOrganLoss(ORGAN_SLOT_BRAIN, 100) // starts off dumb as fuck if("monkeyism","apism","gorillism","primatism") B.name = pick("Going Bananas", "Bananas Out For Harambe") if("mormonism") From 7ddd44da22662f1ce19985b313ce5f30efbd9cd2 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 14 Apr 2020 18:02:39 -0500 Subject: [PATCH 187/190] Automatic changelog generation for PR #11855 [ci skip] --- html/changelogs/AutoChangeLog-pr-11855.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11855.yml diff --git a/html/changelogs/AutoChangeLog-pr-11855.yml b/html/changelogs/AutoChangeLog-pr-11855.yml new file mode 100644 index 0000000000..ca82717695 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11855.yml @@ -0,0 +1,4 @@ +author: "Linzolle" +delete-after: True +changes: + - tweak: "remove any slurs, etc. to comply with GitHub's ToS" From de476249c7291ae90c808ec0425d8e4ba5932881 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 14 Apr 2020 18:02:45 -0500 Subject: [PATCH 188/190] Automatic changelog generation for PR #11799 [ci skip] --- html/changelogs/AutoChangeLog-pr-11799.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11799.yml diff --git a/html/changelogs/AutoChangeLog-pr-11799.yml b/html/changelogs/AutoChangeLog-pr-11799.yml new file mode 100644 index 0000000000..73df4c38f9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11799.yml @@ -0,0 +1,4 @@ +author: "ForrestWick" +delete-after: True +changes: + - tweak: "changed a certain item to be called meatball, ended racism, thank you obama" From d43cb78b8b5c7f755d6b5e10df8dcf6c9393a061 Mon Sep 17 00:00:00 2001 From: Linzolle Date: Tue, 14 Apr 2020 18:02:51 -0500 Subject: [PATCH 189/190] one more --- .../mob/dead/new_player/sprite_accessories/hair_head.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm b/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm index b0ed2000a6..3497bff09f 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm @@ -285,7 +285,7 @@ name = "Flat Top (Big)" icon_state = "hair_bigflattop" -/datum/sprite_accessory/hair/fag //grimacing emoji +/datum/sprite_accessory/hair/flow name = "Flow Hair" icon_state = "hair_f" @@ -777,4 +777,4 @@ /datum/sprite_accessory/hair/ziegler name = "Ziegler" - icon_state = "hair_ziegler" \ No newline at end of file + icon_state = "hair_ziegler" From 2cbd6d20ea3c4e834577145365f358887349a2b8 Mon Sep 17 00:00:00 2001 From: Linzolle Date: Tue, 14 Apr 2020 18:28:11 -0500 Subject: [PATCH 190/190] come on --- config/mentors.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/mentors.txt b/config/mentors.txt index 8c2bc2f392..1247986f82 100644 --- a/config/mentors.txt +++ b/config/mentors.txt @@ -1 +1 @@ -thatfaggotgeorgemellons \ No newline at end of file +thattraitorgeorgemellons

      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 From 91726f340ac6069a72936efaee2201eb750c7caf Mon Sep 17 00:00:00 2001 From: kappa-sama <44128284+kappa-sama@users.noreply.github.com> Date: Fri, 10 Apr 2020 14:08:16 -0400 Subject: [PATCH 106/190] Update krav_maga.dm --- code/datums/martial/krav_maga.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm index 8ea1c2efca..00781fbf58 100644 --- a/code/datums/martial/krav_maga.dm +++ b/code/datums/martial/krav_maga.dm @@ -145,7 +145,7 @@ log_combat(A, D, "punched") var/picked_hit_type = pick("punches", "kicks") var/bonus_damage = damage_roll(A,D) - if(CHECK_MOBILITY(D, MOBILITY_STAND)) + if(!CHECK_MOBILITY(D, MOBILITY_STAND)) bonus_damage += 10 picked_hit_type = "stomps on" D.apply_damage(bonus_damage, BRUTE, affecting, armor_block) @@ -165,7 +165,7 @@ return TRUE var/obj/item/bodypart/affecting = D.get_bodypart(ran_zone(A.zone_selected)) var/armor_block = D.run_armor_check(affecting, "melee") - var/damage = damage_roll(A,D) + var/damage = damage_roll(A,D)*2 if(D.mobility_flags & MOBILITY_STAND) D.visible_message("[A] reprimands [D]!", \ "You're slapped by [A]!", "You hear a sickening sound of flesh hitting flesh!", COMBAT_MESSAGE_RANGE, A) From 2afda4c216eed8bc91cd376b88c7ecdb78e55de7 Mon Sep 17 00:00:00 2001 From: kappa-sama <44128284+kappa-sama@users.noreply.github.com> Date: Fri, 10 Apr 2020 14:24:20 -0400 Subject: [PATCH 107/190] forgot oop --- code/datums/martial/krav_maga.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm index 00781fbf58..df42fba07d 100644 --- a/code/datums/martial/krav_maga.dm +++ b/code/datums/martial/krav_maga.dm @@ -165,7 +165,7 @@ return TRUE var/obj/item/bodypart/affecting = D.get_bodypart(ran_zone(A.zone_selected)) var/armor_block = D.run_armor_check(affecting, "melee") - var/damage = damage_roll(A,D)*2 + var/damage = (damage_roll(A,D)*2) if(D.mobility_flags & MOBILITY_STAND) D.visible_message("[A] reprimands [D]!", \ "You're slapped by [A]!", "You hear a sickening sound of flesh hitting flesh!", COMBAT_MESSAGE_RANGE, A) From 37884962049e7d61514cc2d14030d791acd999bc Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Apr 2020 12:42:50 -0700 Subject: [PATCH 108/190] multiline support --- code/_globalvars/bitfields.dm | 6 +++ code/datums/components/storage/storage.dm | 5 +- code/datums/components/storage/ui.dm | 60 +++++++++++++---------- 3 files changed, 41 insertions(+), 30 deletions(-) diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index 5367322d8e..488926e078 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -249,5 +249,11 @@ GLOBAL_LIST_INIT(bitfields, list( "COMBAT_FLAG_SOFT_STAMCRIT" = COMBAT_FLAG_SOFT_STAMCRIT, "COMBAT_FLAG_INTENTIONALLY_RESTING" = COMBAT_FLAG_INTENTIONALLY_RESTING, "COMBAT_FLAG_RESISTING_REST" = COMBAT_FLAG_RESISTING_REST + ), + "storage_flags" = list( + "STORAGE_LIMIT_MAX_ITEMS" = STORAGE_LIMIT_MAX_ITEMS, + "STORAGE_LIMIT_MAX_W_CLASS" = STORAGE_LIMIT_MAX_W_CLASS, + "STORAGE_LIMIT_COMBINED_W_CLASS" = STORAGE_LIMIT_COMBINED_W_CLASS + "STORAGE_LIMIT_VOLUME" = STORAGE_LIMIT_VOLUME ) )) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 0efdc96600..7cd43ccece 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -50,11 +50,9 @@ var/obj/screen/storage/boxes/ui_boxes /// New volumetric storage display mode's left side var/obj/screen/storage/left/ui_left - /// New volumetric storage display mode's right side - var/obj/screen/storage/right/ui_right /// New volumetric storage display mode's center 'blocks' var/obj/screen/storage/continuous/ui_continuous - /// The close button, used in all modes. + /// The close button, used in all modes. Frames right side in volumetric mode. var/obj/screen/storage/close/ui_close /// Associative list of list(item = screen object) for volumetric storage item screen blocks var/list/ui_item_blocks @@ -130,7 +128,6 @@ QDEL_NULL(ui_close) QDEL_NULL(ui_continuous) QDEL_NULL(ui_left) - QDEL_NULL(ui_right) // DO NOT USE QDEL_LIST_ASSOC. if(ui_item_blocks) for(var/i in ui_item_blocks) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index 7e9355a665..23fabf76e8 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -84,6 +84,7 @@ // our volume var/our_volume = get_max_volume() var/horizontal_pixels = (maxcolumns * world.icon_size) - (VOLUMETRIC_STORAGE_EDGE_PADDING * 2) + var/max_horizontal_pixels = horizontal_pixels * screen_max_rows // sigh loopmania time var/used = 0 // define outside for performance @@ -95,25 +96,34 @@ used += volume volume_by_item[I] = volume percentage_by_item[I] = volume / get_max_volume() + var/padding_pixels = ((length(percentage_by_item) - 1) * VOLUMETRIC_STORAGE_ITEM_PADDING) + VOLUMETRIC_STORAGE_EDGE_PADDING * 2 + var/min_pixels = (MINIMUM_PIXELS_PER_ITEM * length(percentage_by_item)) + padding_pixels + // do the check for fallback for when someone has too much gamer gear + if((min_pixels) > (max_horizontal_pixels + 4)) // 4 pixel grace zone + to_chat(user, "[parent] was showed to you in legacy mode due to your items overrunning the three row limit! Consider not carrying too much or bugging a maintainer to raise this limit!") + return orient2hud_legacy(user, maxcolumns) + // after this point we are sure we can somehow fit all items into our max number of rows. + + // determine rows + var/rows = CLAMP(CEILING(min_pixels / horizontal_pixels, 1), 1, screen_max_rows) + var/overrun = FALSE if(used > our_volume) // congratulations we are now in overrun mode. everything will be crammed to minimum storage pixels. to_chat(user, "[parent] rendered in overrun mode due to more items inside than the maximum volume supports.") overrun = TRUE - // item padding - horizontal_pixels -= ((length(percentage_by_item) - 1) * VOLUMETRIC_STORAGE_ITEM_PADDING) + // how much we are using + var/using_horizontal_pixels = horizontal_pixels * rows - // do the check for fallback for when someone has too much gamer gear - if((MINIMUM_PIXELS_PER_ITEM * length(percentage_by_item)) > horizontal_pixels) - to_chat(user, "[parent] was showed to you in legacy mode due to your items overrunning the three row limit! Consider not carrying too much or bugging a maintainer to raise this limit!") - return orient2hud_legacy(user, maxcolumns) - // after this point we are sure we can somehow fit all items with 8 pixels or more into our one row. + // item padding + using_horizontal_pixels -= padding_pixels // define outside for marginal performance boost var/obj/item/I // start at this pixel from screen_start_x. var/current_pixel = VOLUMETRIC_STORAGE_EDGE_PADDING + var/row = 1 LAZYINITLIST(ui_item_blocks) @@ -123,11 +133,15 @@ if(!ui_item_blocks[I]) ui_item_blocks[I] = new /obj/screen/storage/volumetric_box/center(null, src, I) var/obj/screen/storage/volumetric_box/center/B = ui_item_blocks[I] - var/pixels_to_use = overrun? MINIMUM_PIXELS_PER_ITEM : max(MINIMUM_PIXELS_PER_ITEM, horizontal_pixels * percent) + var/pixels_to_use = overrun? MINIMUM_PIXELS_PER_ITEM : max(using_horizontal_pixels * percent, MINIMUM_PIXELS_PER_ITEM) + var/addrow = FALSE + if(CEILING(pixels_to_use, 1) >= FLOOR(horizontal_pixels - current_pixel - VOLUMETRIC_STORAGE_EDGE_PADDING, 1)) + pixels_to_use = horizontal_pixels - current_pixel - VOLUMETRIC_STORAGE_EDGE_PADDING + addrow = TRUE // now that we have pixels_to_use, place our thing and add it to the returned list. - B.screen_loc = I.screen_loc = "[screen_start_x]:[round(current_pixel + (pixels_to_use * 0.5) + VOLUMETRIC_STORAGE_ITEM_PADDING, 1)],[screen_start_y]:[screen_pixel_y]" + B.screen_loc = I.screen_loc = "[screen_start_x]:[round(current_pixel + (pixels_to_use * 0.5) + VOLUMETRIC_STORAGE_ITEM_PADDING, 1)],[screen_start_y+row-1]:[screen_pixel_y]" // add the used pixels to pixel after we place the object current_pixel += pixels_to_use + VOLUMETRIC_STORAGE_ITEM_PADDING @@ -146,20 +160,22 @@ . += B.on_screen_objects() . += I + // go up a row if needed + if(addrow) + row++ + current_pixel = VOLUMETRIC_STORAGE_EDGE_PADDING + // Then, continuous section. ui_continuous = get_ui_continuous() - ui_continuous.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+maxcolumns-1]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" + ui_continuous.screen_loc = "[screen_start_x]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x+maxcolumns-1]:[screen_pixel_x],[screen_start_y+rows-1]:[screen_pixel_y]" . += ui_continuous - // Then, left and right. + // Then, left. ui_left = get_ui_left() - ui_left.screen_loc = "[screen_start_x]:[screen_pixel_x - 2],[screen_start_y]:[screen_pixel_y]" + ui_left.screen_loc = "[screen_start_x]:[screen_pixel_x - 2],[screen_start_y]:[screen_pixel_y] to [screen_start_x]:[screen_pixel_x - 2],[screen_start_y+rows-1]:[screen_pixel_y]" . += ui_left - ui_right = get_ui_right() - ui_right.screen_loc = "[screen_start_x + maxcolumns]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y]" - . += ui_right - // Then, closer. + // Then, closer, which is also our right element. ui_close = get_ui_close() - ui_close.screen_loc = "[screen_start_x + maxcolumns]:[screen_pixel_x + 2],[screen_start_y]:[screen_pixel_y]" + ui_close.screen_loc = "[screen_start_x + maxcolumns]:[screen_pixel_x],[screen_start_y + row - 1]:[screen_pixel_y]" . += ui_close /** @@ -217,7 +233,7 @@ if(!M.client) return TRUE UnregisterSignal(M, COMSIG_MOB_CLIENT_LOGOUT) - M.client.screen -= list(ui_boxes, ui_close, ui_left, ui_right, ui_continuous) + get_ui_item_objects_hide() + M.client.screen -= list(ui_boxes, ui_close, ui_left, ui_continuous) + get_ui_item_objects_hide() if(M.active_storage == src) M.active_storage = null LAZYREMOVE(is_using, M) @@ -260,14 +276,6 @@ ui_left = new(null, src) return ui_left -/** - * Gets our ui_right, making it if it doesn't exist. - */ -/datum/component/storage/proc/get_ui_right() - if(!ui_right) - ui_right = new(null, src) - return ui_right - /** * Gets our ui_close, making it if it doesn't exist. */ From b21598a441be800275cb1c65b68cfe6adc8a3c81 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Apr 2020 12:47:16 -0700 Subject: [PATCH 109/190] fix --- code/datums/components/storage/ui.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/components/storage/ui.dm b/code/datums/components/storage/ui.dm index 23fabf76e8..c1c049dfd3 100644 --- a/code/datums/components/storage/ui.dm +++ b/code/datums/components/storage/ui.dm @@ -175,7 +175,7 @@ . += ui_left // Then, closer, which is also our right element. ui_close = get_ui_close() - ui_close.screen_loc = "[screen_start_x + maxcolumns]:[screen_pixel_x],[screen_start_y + row - 1]:[screen_pixel_y]" + ui_close.screen_loc = "[screen_start_x + maxcolumns]:[screen_pixel_x],[screen_start_y]:[screen_pixel_y] to [screen_start_x + maxcolumns]:[screen_pixel_x],[screen_start_y + row - 1]:[screen_pixel_y]" . += ui_close /** From 7d043289e806ec2a274af7b810ff36036d3beefc Mon Sep 17 00:00:00 2001 From: Putnam Date: Fri, 10 Apr 2020 17:13:41 -0700 Subject: [PATCH 110/190] Tweaks --- code/game/gamemodes/dynamic/dynamic.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index b8a5e72d55..8c0b5c82cd 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -241,6 +241,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) . += "Peaceful Waypoint
      " . += "Your station orbits deep within controlled, core-sector systems and serves as a waypoint for routine traffic through Nanotrasen's trade empire. Due to the combination of high security, interstellar traffic, and low strategic value, it makes any direct threat of violence unlikely. Your primary enemies will be incompetence and bored crewmen: try to organize team-building events to keep staffers interested and productive. However, even deep in our territory there may be subversive elements, especially for such a high-value target as your station. Keep an eye out, but don't expect much trouble." set_security_level(SEC_LEVEL_GREEN) + station_goals.len = 0 for(var/T in subtypesof(/datum/station_goal)) var/datum/station_goal/G = new T if(!(G in station_goals)) @@ -251,6 +252,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) . += "Core Territory
      " . += "Your station orbits within reliably mundane, secure space. Although Nanotrasen has a firm grip on security in your region, the valuable resources and strategic position aboard your station make it a potential target for infiltrations. Monitor crew for non-loyal behavior, but expect a relatively tame shift free of large-scale destruction. We expect great things from your station." set_security_level(SEC_LEVEL_GREEN) + station_goals.len = 0 for(var/T in subtypesof(/datum/station_goal)) var/datum/station_goal/G = new T if(!(G in station_goals)) @@ -490,7 +492,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) starting_rule = pickweight(drafted_rules) // Check if the ruleset is highlander and if a highlander ruleset has been executed else if(starting_rule.flags & HIGHLANDER_RULESET) // Should already be filtered out, but making sure. Check filtering at end of proc if reported. - if(threat_level > GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking) + if(threat_level <= GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking) if(highlander_executed) drafted_rules -= starting_rule if(drafted_rules.len <= 0) From b6d079f91f63fe84af113653f453a800bf922283 Mon Sep 17 00:00:00 2001 From: necromanceranne Date: Sat, 11 Apr 2020 13:00:32 +1000 Subject: [PATCH 111/190] fixes rising bass and sleeping carp not dodging --- code/datums/martial/rising_bass.dm | 2 +- code/datums/martial/sleeping_carp.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/datums/martial/rising_bass.dm b/code/datums/martial/rising_bass.dm index 1b767df52c..2d760fc10a 100644 --- a/code/datums/martial/rising_bass.dm +++ b/code/datums/martial/rising_bass.dm @@ -185,7 +185,7 @@ . = ..() if(A.incapacitated(FALSE, TRUE)) //NO STUN return BULLET_ACT_HIT - if(CHECK_ALL_MOBILITY(A, MOBILITY_USE|MOBILITY_STAND)) //NO UNABLE TO USE, NO DODGING ON THE FLOOR + if(!CHECK_ALL_MOBILITY(A, MOBILITY_USE|MOBILITY_STAND)) //NO UNABLE TO USE, NO DODGING ON THE FLOOR return BULLET_ACT_HIT if(A.dna && A.dna.check_mutation(HULK)) //NO HULK return BULLET_ACT_HIT diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm index 41479c57bd..527ee01206 100644 --- a/code/datums/martial/sleeping_carp.dm +++ b/code/datums/martial/sleeping_carp.dm @@ -114,7 +114,7 @@ . = ..() if(A.incapacitated(FALSE, TRUE)) //NO STUN return BULLET_ACT_HIT - if(CHECK_ALL_MOBILITY(A, MOBILITY_USE|MOBILITY_STAND)) //NO UNABLE TO USE, NO DEFLECTION ON THE FLOOR + if(!CHECK_ALL_MOBILITY(A, MOBILITY_USE|MOBILITY_STAND)) //NO UNABLE TO USE, NO DEFLECTION ON THE FLOOR return BULLET_ACT_HIT if(A.dna && A.dna.check_mutation(HULK)) //NO HULK return BULLET_ACT_HIT From f6e3a20f850d039270c2a0f3349219a61603b266 Mon Sep 17 00:00:00 2001 From: Putnam Date: Fri, 10 Apr 2020 20:12:15 -0700 Subject: [PATCH 112/190] More tweaks --- code/controllers/subsystem/persistence.dm | 2 ++ code/game/gamemodes/dynamic/dynamic.dm | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm index de2ff17a97..baf2fbcb27 100644 --- a/code/controllers/subsystem/persistence.dm +++ b/code/controllers/subsystem/persistence.dm @@ -191,6 +191,8 @@ SUBSYSTEM_DEF(persistence) if(!json) return saved_storytellers = json["data"] + if(saved_storytellers.len > 3) + average_dynamic_threat = saved_storytellers[4] saved_storytellers.len = 3 /datum/controller/subsystem/persistence/proc/LoadRecentMaps() diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index 8c0b5c82cd..6b86f6e653 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -199,7 +199,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) if(threatadd > 0) create_threat(threatadd) else - spend_threat(-threatadd) + remove_threat(threatadd) else if (href_list["injectlate"]) latejoin_injection_cooldown = 0 forced_injection = TRUE From d65bda97c4bf9cfb6d972f9d1a75735442528f68 Mon Sep 17 00:00:00 2001 From: Putnam Date: Fri, 10 Apr 2020 20:14:54 -0700 Subject: [PATCH 113/190] Fixing average threat weight calc --- code/game/gamemodes/dynamic/dynamic.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index cd5c9dd6a9..d548f373db 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -725,7 +725,7 @@ GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) threat = storyteller.calculate_threat() + added_threat if(threat_average_weight) var/cur_sample_weight = world.time - last_threat_sample_time - threat_average = ((threat_average * threat_average_weight) + threat) / (threat_average_weight + cur_sample_weight) + threat_average = ((threat_average * threat_average_weight) + (threat * cur_sample_weight)) / (threat_average_weight + cur_sample_weight) threat_average_weight += cur_sample_weight last_threat_sample_time = world.time else From 8abc0cc0a75cfdcad9c4a399427742526b7f5b36 Mon Sep 17 00:00:00 2001 From: Akrilla Date: Sat, 11 Apr 2020 05:24:24 +0100 Subject: [PATCH 114/190] !on --- code/modules/mob/living/simple_animal/bot/secbot.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 4a4602f525..d199bc2ead 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -239,6 +239,8 @@ Auto Patrol: []"}, attempt_handcuff(C) /mob/living/simple_animal/bot/secbot/proc/attempt_handcuff(mob/living/carbon/C) + if (!on) + return if(!C.handcuffed) C.handcuffed = new /obj/item/restraints/handcuffs/cable/zipties/used(C) C.update_handcuffed() From f652a612e54b6dac227adf20d51fd7d2e03143cc Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 10 Apr 2020 22:18:53 -0700 Subject: [PATCH 115/190] missing comma --- code/_globalvars/bitfields.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index 488926e078..f0c854c398 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -253,7 +253,7 @@ GLOBAL_LIST_INIT(bitfields, list( "storage_flags" = list( "STORAGE_LIMIT_MAX_ITEMS" = STORAGE_LIMIT_MAX_ITEMS, "STORAGE_LIMIT_MAX_W_CLASS" = STORAGE_LIMIT_MAX_W_CLASS, - "STORAGE_LIMIT_COMBINED_W_CLASS" = STORAGE_LIMIT_COMBINED_W_CLASS + "STORAGE_LIMIT_COMBINED_W_CLASS" = STORAGE_LIMIT_COMBINED_W_CLASS, "STORAGE_LIMIT_VOLUME" = STORAGE_LIMIT_VOLUME ) )) From 91bc7dc9f9b383b6cdc75a6f5635134c1a7c39ec Mon Sep 17 00:00:00 2001 From: spookydonut Date: Sat, 11 Apr 2020 15:05:35 +0800 Subject: [PATCH 116/190] Update spacemandmm to 1.4 --- dependencies.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies.sh b/dependencies.sh index be5a320428..83254509b9 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -23,4 +23,4 @@ export NODE_VERSION=12 export PHP_VERSION=5.6 # SpacemanDMM git tag -export SPACEMAN_DMM_VERSION=suite-1.3 +export SPACEMAN_DMM_VERSION=suite-1.4 From 230e5fca2080e2d5d5b76661c1b24ddefa7514e0 Mon Sep 17 00:00:00 2001 From: spookydonut Date: Sat, 11 Apr 2020 15:32:09 +0800 Subject: [PATCH 117/190] fix everything --- SpacemanDMM.toml | 2 + code/__HELPERS/unsorted.dm | 2 - code/controllers/hooks.dm | 2 - .../subsystem/processing/weather.dm | 2 - code/datums/components/radioactive.dm | 3 +- code/datums/components/wet_floor.dm | 1 - code/datums/datum.dm | 2 - code/datums/wires/_wires.dm | 1 - code/game/data_huds.dm | 2 - code/game/machinery/camera/camera.dm | 2 - code/game/machinery/computer/camera.dm | 4 +- code/game/machinery/requests_console.dm | 1 - code/game/objects/items/RCL.dm | 1 - code/game/objects/items/devices/PDA/PDA.dm | 4 +- code/game/objects/items/devices/PDA/cart.dm | 4 +- code/modules/admin/verbs/borgpanel.dm | 2 +- .../abductor/machinery/experiment.dm | 1 - .../machinery/components/components_base.dm | 3 +- .../atmospherics/machinery/datum_pipeline.dm | 1 - code/modules/cargo/centcom_podlauncher.dm | 1 - code/modules/clothing/under/miscellaneous.dm | 1 - .../kitchen_machinery/microwave.dm | 4 +- .../integrated_electronics/subtypes/smart.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 1 - .../mob/living/carbon/human/species.dm | 2 +- code/modules/mob/living/silicon/ai/ai.dm | 2 +- .../mob/living/simple_animal/bot/bot.dm | 1 - .../mob/living/simple_animal/bot/medbot.dm | 3 - .../friendly/drone/interaction.dm | 2 +- .../computers/item/processor.dm | 3 +- .../hardware/battery_module.dm | 3 +- code/modules/paperwork/contract.dm | 1 - .../projectiles/guns/misc/chameleon.dm | 5 +- code/modules/reagents/chemistry/holder.dm | 1 - .../reagents/reagent_containers/hypospray.dm | 1 - code/modules/surgery/bodyparts/bodyparts.dm | 2 +- code/modules/surgery/plastic_surgery.dm | 1 - code/modules/vending/_vending.dm | 56 +++++++++---------- code/modules/vore/eating/belly_obj.dm | 1 - code/modules/vore/trycatch.dm | 12 ++-- .../code/modules/arousal/genitals.dm | 9 ++- .../code/modules/reagents/objects/items.dm | 1 - 42 files changed, 58 insertions(+), 97 deletions(-) create mode 100644 SpacemanDMM.toml diff --git a/SpacemanDMM.toml b/SpacemanDMM.toml new file mode 100644 index 0000000000..b827472254 --- /dev/null +++ b/SpacemanDMM.toml @@ -0,0 +1,2 @@ +[langserver] +dreamchecker = true diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index ac97966eef..a9f2750ce2 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -8,10 +8,8 @@ /proc/invertHTML(HTMLstring) if(!istext(HTMLstring)) CRASH("Given non-text argument!") - return else if(length(HTMLstring) != 7) CRASH("Given non-HTML argument!") - return else if(length_char(HTMLstring) != 7) CRASH("Given non-hex symbols in argument!") var/textr = copytext(HTMLstring, 2, 4) diff --git a/code/controllers/hooks.dm b/code/controllers/hooks.dm index f499a61ae7..fe6a49c854 100644 --- a/code/controllers/hooks.dm +++ b/code/controllers/hooks.dm @@ -27,13 +27,11 @@ var/hook_path = text2path("/hook/[hook]") if(!hook_path) CRASH("Invalid hook '/hook/[hook]' called.") - return 0 var/caller = new hook_path var/status = 1 for(var/P in typesof("[hook_path]/proc")) if(!call(caller, P)(arglist(args))) CRASH("Hook '[P]' failed or runtimed.") - status = 0 return status diff --git a/code/controllers/subsystem/processing/weather.dm b/code/controllers/subsystem/processing/weather.dm index 0a1b4fc609..ca067953cc 100644 --- a/code/controllers/subsystem/processing/weather.dm +++ b/code/controllers/subsystem/processing/weather.dm @@ -47,7 +47,6 @@ PROCESSING_SUBSYSTEM_DEF(weather) break if (!ispath(weather_datum_type, /datum/weather)) CRASH("run_weather called with invalid weather_datum_type: [weather_datum_type || "null"]") - return if (isnull(z_levels)) z_levels = SSmapping.levels_by_trait(initial(weather_datum_type.target_trait)) @@ -55,7 +54,6 @@ PROCESSING_SUBSYSTEM_DEF(weather) z_levels = list(z_levels) else if (!islist(z_levels)) CRASH("run_weather called with invalid z_levels: [z_levels || "null"]") - return var/datum/weather/W = new weather_datum_type(z_levels) W.telegraph() diff --git a/code/datums/components/radioactive.dm b/code/datums/components/radioactive.dm index 2853f800f5..decc2dd65c 100644 --- a/code/datums/components/radioactive.dm +++ b/code/datums/components/radioactive.dm @@ -25,7 +25,6 @@ RegisterSignal(parent, COMSIG_ITEM_ATTACK_OBJ, .proc/rad_attack) else CRASH("Something that wasn't an atom was given /datum/component/radioactive") - return if(strength > RAD_MINIMUM_CONTAMINATION) SSradiation.warn(src) @@ -84,4 +83,4 @@ #undef RAD_AMOUNT_LOW #undef RAD_AMOUNT_MEDIUM #undef RAD_AMOUNT_HIGH -#undef RAD_AMOUNT_EXTREME \ No newline at end of file +#undef RAD_AMOUNT_EXTREME diff --git a/code/datums/components/wet_floor.dm b/code/datums/components/wet_floor.dm index 20f2c1bbb5..30c6625049 100644 --- a/code/datums/components/wet_floor.dm +++ b/code/datums/components/wet_floor.dm @@ -19,7 +19,6 @@ var/datum/component/wet_floor/WF = newcomp //Lets make an assumption if(WF.gc()) //See if it's even valid, still. Also does LAZYLEN and stuff for us. CRASH("Wet floor component tried to inherit another, but the other was able to garbage collect while being inherited! What a waste of time!") - return for(var/i in WF.time_left_list) add_wet(text2num(i), WF.time_left_list[i]) diff --git a/code/datums/datum.dm b/code/datums/datum.dm index d7ff5db26a..6202ac444e 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -175,11 +175,9 @@ if(!islist(jsonlist)) if(!istext(jsonlist)) CRASH("Invalid JSON") - return jsonlist = json_decode(jsonlist) if(!islist(jsonlist)) CRASH("Invalid JSON") - return if(!jsonlist["DATUM_TYPE"]) return if(!ispath(jsonlist["DATUM_TYPE"])) diff --git a/code/datums/wires/_wires.dm b/code/datums/wires/_wires.dm index d4a5dcdeb3..ad24126e45 100644 --- a/code/datums/wires/_wires.dm +++ b/code/datums/wires/_wires.dm @@ -38,7 +38,6 @@ ..() if(!istype(holder, holder_type)) CRASH("Wire holder is not of the expected type!") - return src.holder = holder if(randomize) diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 1a57cf5051..413484b99b 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -147,7 +147,6 @@ return "health-85" else return "health-100" - return "0" //HOOKS @@ -323,7 +322,6 @@ return "crit" else return "dead" - return "dead" //Sillycone hooks /mob/living/silicon/proc/diag_hud_set_health() diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index c8b8e7c9cd..e386674b9e 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -381,14 +381,12 @@ for(var/obj/machinery/camera/C in oview(4, M)) if(C.can_use()) // check if camera disabled return C - break return null /proc/near_range_camera(var/mob/M) for(var/obj/machinery/camera/C in range(4, M)) if(C.can_use()) // check if camera disabled return C - break return null diff --git a/code/game/machinery/computer/camera.dm b/code/game/machinery/computer/camera.dm index 47c761fa52..eb7f194229 100644 --- a/code/game/machinery/computer/camera.dm +++ b/code/game/machinery/computer/camera.dm @@ -45,11 +45,11 @@ if (ismob(user) && !isliving(user)) // ghosts don't need cameras return if (!network) - CRASH("No camera network") + stack_trace("No camera network") user.unset_machine() return FALSE if (!(islist(network))) - CRASH("Camera network is not a list") + stack_trace("Camera network is not a list") user.unset_machine() return FALSE diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index c05fbe229c..000585a4be 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -469,7 +469,6 @@ GLOBAL_LIST_EMPTY(allConsoles) if(newmessagepriority < EXTREME_MESSAGE_PRIORITY) newmessagepriority = EXTREME_MESSAGE_PRIORITY update_icon() - if(1) playsound(src, 'sound/machines/twobeep.ogg', 50, 1) say(title) messages += "!!!Extreme Priority!!!
      From: [linkedsender]
      [message]" diff --git a/code/game/objects/items/RCL.dm b/code/game/objects/items/RCL.dm index 72e6ccbbe2..7b4a44d72f 100644 --- a/code/game/objects/items/RCL.dm +++ b/code/game/objects/items/RCL.dm @@ -223,7 +223,6 @@ obj/item/twohanded/rcl/proc/getMobhook(mob/to_hook) continue if(C.d1 == 0) return C - break return diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 157cd451d4..2dabcca29f 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -807,9 +807,9 @@ GLOBAL_LIST_EMPTY(PDAs) // If it didn't reach, note that fact if (!signal.data["done"]) to_chat(user, "ERROR: Server isn't responding.") - return if (!silent) playsound(src, 'sound/machines/terminal_error.ogg', 15, 1) + return var/target_text = signal.format_target() if(allow_emojis) @@ -998,9 +998,9 @@ GLOBAL_LIST_EMPTY(PDAs) var/obj/item/card/id/idcard = C if(!idcard.registered_name) to_chat(user, "\The [src] rejects the ID!") - return if (!silent) playsound(src, 'sound/machines/terminal_error.ogg', 15, 1) + return if(!owner) owner = idcard.registered_name diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index 1006fe9146..6eae9f127a 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -692,14 +692,14 @@ Code: return GLOB.news_network.SubmitArticle(message,host_pda.owner,current_channel) host_pda.Topic(null,list("choice"=num2text(host_pda.mode))) - return playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + return if("Newscaster Switch Channel") current_channel = host_pda.msg_input() host_pda.Topic(null,list("choice"=num2text(host_pda.mode))) - return playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + return //emoji previews if(href_list["emoji"]) diff --git a/code/modules/admin/verbs/borgpanel.dm b/code/modules/admin/verbs/borgpanel.dm index 8cfd53b300..83f2839438 100644 --- a/code/modules/admin/verbs/borgpanel.dm +++ b/code/modules/admin/verbs/borgpanel.dm @@ -23,8 +23,8 @@ /datum/borgpanel/New(to_user, mob/living/silicon/robot/to_borg) if(!istype(to_borg)) - CRASH("Borg panel is only available for borgs") qdel(src) + CRASH("Borg panel is only available for borgs") user = CLIENT_FROM_VAR(to_user) diff --git a/code/modules/antagonists/abductor/machinery/experiment.dm b/code/modules/antagonists/abductor/machinery/experiment.dm index ca6481bcfe..f92cb987d0 100644 --- a/code/modules/antagonists/abductor/machinery/experiment.dm +++ b/code/modules/antagonists/abductor/machinery/experiment.dm @@ -209,7 +209,6 @@ open_machine() SendBack(H) return "Specimen braindead - disposed." - return "ERROR" /obj/machinery/abductor/experiment/proc/SendBack(mob/living/carbon/human/H) diff --git a/code/modules/atmospherics/machinery/components/components_base.dm b/code/modules/atmospherics/machinery/components/components_base.dm index a79beca4ec..63a03b1d40 100644 --- a/code/modules/atmospherics/machinery/components/components_base.dm +++ b/code/modules/atmospherics/machinery/components/components_base.dm @@ -84,7 +84,6 @@ /obj/machinery/atmospherics/components/proc/nullifyPipenet(datum/pipeline/reference) if(!reference) CRASH("nullifyPipenet(null) called by [type] on [COORD(src)]") - return var/i = parents.Find(reference) reference.other_airs -= airs[i] reference.other_atmosmch -= src @@ -168,4 +167,4 @@ /obj/machinery/atmospherics/components/analyzer_act(mob/living/user, obj/item/I) - atmosanalyzer_scan(airs, user, src) \ No newline at end of file + atmosanalyzer_scan(airs, user, src) diff --git a/code/modules/atmospherics/machinery/datum_pipeline.dm b/code/modules/atmospherics/machinery/datum_pipeline.dm index 899b621262..c8095c2bb2 100644 --- a/code/modules/atmospherics/machinery/datum_pipeline.dm +++ b/code/modules/atmospherics/machinery/datum_pipeline.dm @@ -131,7 +131,6 @@ var/datum/pipeline/P = returnPipenet(A) if(!P) CRASH("null.addMember() called by [type] on [COORD(src)]") - return P.addMember(A, src) diff --git a/code/modules/cargo/centcom_podlauncher.dm b/code/modules/cargo/centcom_podlauncher.dm index c45461317d..3418f78dbd 100644 --- a/code/modules/cargo/centcom_podlauncher.dm +++ b/code/modules/cargo/centcom_podlauncher.dm @@ -488,7 +488,6 @@ force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.adm if (isnull(A)) //If theres no supplypod bay mapped into centcom, throw an error to_chat(holder.mob, "No /area/centcom/supplypod/loading/one (or /two or /three or /four) in the world! You can make one yourself (then refresh) for now, but yell at a mapper to fix this, today!") CRASH("No /area/centcom/supplypod/loading/one (or /two or /three or /four) has been mapped into the centcom z-level!") - return orderedArea = list() if (!isemptylist(A.contents)) //Go through the area passed into the proc, and figure out the top left and bottom right corners by calculating max and min values var/startX = A.contents[1].x //Create the four values (we do it off a.contents[1] so they have some sort of arbitrary initial value. They should be overwritten in a few moments) diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index fb5ff7b0f4..5a340d701a 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -170,7 +170,6 @@ to_chat(user, "You refill the suit's built-in extinguisher, using up the cartridge.") qdel(E) return - return return /obj/item/extinguisher_refill diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 2adff414e8..a8bb6dc187 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -287,7 +287,7 @@ /obj/machinery/microwave/proc/loop(type, time, wait = max(12 - 2 * efficiency, 2)) // standard wait is 10 if(stat & (NOPOWER|BROKEN)) - if(MICROWAVE_PRE) + if(type == MICROWAVE_PRE) pre_fail() return if(!time) @@ -353,4 +353,4 @@ #undef MICROWAVE_NORMAL #undef MICROWAVE_MUCK -#undef MICROWAVE_PRE \ No newline at end of file +#undef MICROWAVE_PRE diff --git a/code/modules/integrated_electronics/subtypes/smart.dm b/code/modules/integrated_electronics/subtypes/smart.dm index d4c565c49a..d0c47f0950 100644 --- a/code/modules/integrated_electronics/subtypes/smart.dm +++ b/code/modules/integrated_electronics/subtypes/smart.dm @@ -18,8 +18,8 @@ var/datum/integrated_io/I = inputs[1] set_pin_data(IC_OUTPUT, 1, null) if(!isweakref(I.data)) - return activate_pin(3) + return var/atom/A = I.data.resolve() if(!A) activate_pin(3) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index fc85fc25c4..d3f262403b 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -430,7 +430,6 @@ else dropItemToGround(I) return - return TRUE /mob/living/carbon/get_standard_pixel_y_offset(lying = 0) if(lying) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index d541ff1066..e39ce7d488 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -893,7 +893,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) accessory_overlay.icon_state = "m_ears_none_[layertext]" if(bodypart == "tail") accessory_overlay.icon_state = "m_tail_husk_[layertext]" - if(MATRIXED) + if(S.color_src == MATRIXED) var/list/husklist = list() husklist += ReadRGB("#a3a3a3") husklist += ReadRGB("#a3a3a3") diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 6b4a6645e6..d178af9fb0 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -695,7 +695,7 @@ holo_icon = client.prefs.get_filtered_holoform(HOLOFORM_FILTER_AI) else holo_icon = getHologramIcon(icon('icons/mob/ai.dmi', "female")) - else if("xeno queen") + if("xeno queen") holo_icon = getHologramIcon(icon(icon_list[input],"alienq")) else holo_icon = getHologramIcon(icon(icon_list[input], input)) diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 75364b2845..a8e0d2c1c8 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -445,7 +445,6 @@ Pass the desired type path itself, declaring a temporary var beforehand is not r return scan_result else return FALSE //The current element failed assessment, move on to the next. - return /mob/living/simple_animal/bot/proc/check_bot(targ) var/turf/T = get_turf(targ) diff --git a/code/modules/mob/living/simple_animal/bot/medbot.dm b/code/modules/mob/living/simple_animal/bot/medbot.dm index d3fb65c585..ab7c632214 100644 --- a/code/modules/mob/living/simple_animal/bot/medbot.dm +++ b/code/modules/mob/living/simple_animal/bot/medbot.dm @@ -523,9 +523,6 @@ soft_reset() return - reagent_id = null - return - /mob/living/simple_animal/bot/medbot/proc/check_overdose(mob/living/carbon/patient,reagent_id,injection_amount) var/datum/reagent/R = GLOB.chemical_reagents_list[reagent_id] if(!R.overdose_threshold) //Some chems do not have an OD threshold diff --git a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm index 0f97a4c496..54184310a8 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm @@ -92,8 +92,8 @@ return if(hack) if(hacked) - return Stun(40) + return if(clockwork) to_chat(src, "ERROR: LAW OVERRIDE DETECTED") to_chat(src, "From now on, these are your laws:") diff --git a/code/modules/modular_computers/computers/item/processor.dm b/code/modules/modular_computers/computers/item/processor.dm index 295ecc66c0..81e2cb95e6 100644 --- a/code/modules/modular_computers/computers/item/processor.dm +++ b/code/modules/modular_computers/computers/item/processor.dm @@ -20,7 +20,6 @@ . = ..() if(!loc || !istype(loc, /obj/machinery/modular_computer)) CRASH("Inapropriate type passed to obj/item/modular_computer/processor/New()! Aborting.") - return // Obtain reference to machinery computer all_components = list() idle_threads = list() @@ -69,4 +68,4 @@ if(MC_SDD) machinery_computer.verbs -= /obj/machinery/modular_computer/proc/eject_disk if(MC_AI) - machinery_computer.verbs -= /obj/machinery/modular_computer/proc/eject_card \ No newline at end of file + machinery_computer.verbs -= /obj/machinery/modular_computer/proc/eject_card diff --git a/code/modules/modular_computers/hardware/battery_module.dm b/code/modules/modular_computers/hardware/battery_module.dm index 55f7c19cd7..e03427cc9c 100644 --- a/code/modules/modular_computers/hardware/battery_module.dm +++ b/code/modules/modular_computers/hardware/battery_module.dm @@ -54,7 +54,6 @@ holder.shutdown_computer() return TRUE - return FALSE @@ -95,4 +94,4 @@ name = "nano battery" desc = "A tiny power cell, commonly seen in low-end portable microcomputers." icon_state = "cell_micro" - maxcharge = 300 \ No newline at end of file + maxcharge = 300 diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index 2c02903d3e..f46d4bf029 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -8,7 +8,6 @@ item_flags = NOBLUDGEON /obj/item/paper/contract/ComponentInitialize() - return . = ..() AddElement(/datum/element/update_icon_blocker) diff --git a/code/modules/projectiles/guns/misc/chameleon.dm b/code/modules/projectiles/guns/misc/chameleon.dm index d2afe2bd78..4fa614ae5c 100644 --- a/code/modules/projectiles/guns/misc/chameleon.dm +++ b/code/modules/projectiles/guns/misc/chameleon.dm @@ -60,13 +60,12 @@ continue vv_edit_var(v, initial(vars[v])) vars[v] = initial(vars[v]) - QDEL_NULL(chambered.BB) + QDEL_NULL(chambered.BB) chambered.newshot() /obj/item/gun/energy/laser/chameleon/proc/set_chameleon_ammo(obj/item/ammo_casing/AC, passthrough = TRUE, reset = FALSE) if(!istype(AC)) CRASH("[AC] is not /obj/item/ammo_casing!") - return FALSE for(var/V in ammo_copy_vars) if(AC.vars.Find(V)) chameleon_ammo_vars[V] = AC.vars[V] @@ -78,7 +77,6 @@ /obj/item/gun/energy/laser/chameleon/proc/set_chameleon_projectile(obj/item/projectile/P) if(!istype(P)) CRASH("[P] is not /obj/item/projectile!") - return FALSE chameleon_projectile_vars = list("name" = "practice laser", "icon" = 'icons/obj/projectiles.dmi', "icon_state" = "laser", "nodamage" = TRUE) for(var/V in projectile_copy_vars) if(P.vars.Find(V)) @@ -99,7 +97,6 @@ /obj/item/gun/energy/laser/chameleon/proc/set_chameleon_gun(obj/item/gun/G , passthrough = TRUE) if(!istype(G)) CRASH("[G] is not /obj/item/gun!") - return FALSE for(var/V in gun_copy_vars) if(vars.Find(V) && G.vars.Find(V)) chameleon_gun_vars[V] = G.vars[V] diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index eff1531e23..89dd229407 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -972,7 +972,6 @@ if(isnull(amount)) amount = 0 CRASH("null amount passed to reagent code") - return FALSE if(!isnum(amount)) return FALSE diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 3c4be7969d..9555f5b64b 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -331,7 +331,6 @@ else to_chat(user, "This doesn't fit in [src].") return FALSE - return FALSE /obj/item/hypospray/mkii/AltClick(mob/user) . = ..() diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 4b169173ed..54f2aef10d 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -436,7 +436,7 @@ if(!isnull(body_markings) && status == BODYPART_ORGANIC) if(!use_digitigrade) - if(BODY_ZONE_CHEST) + if(body_zone == BODY_ZONE_CHEST) . += image(body_markings_icon, "[body_markings]_[body_zone]_[icon_gender]", -MARKING_LAYER, image_dir) else . += image(body_markings_icon, "[body_markings]_[body_zone]", -MARKING_LAYER, image_dir) diff --git a/code/modules/surgery/plastic_surgery.dm b/code/modules/surgery/plastic_surgery.dm index ce9de95b4c..c4e056583c 100644 --- a/code/modules/surgery/plastic_surgery.dm +++ b/code/modules/surgery/plastic_surgery.dm @@ -40,7 +40,6 @@ if(ishuman(target)) var/mob/living/carbon/human/H = target H.sec_hud_set_ID() - return 1 return TRUE /datum/surgery_step/reshape_face/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 924fd506ff..ad3addcd48 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -234,28 +234,28 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C if(!.) return - var/dump_amount = 0 - var/found_anything = TRUE - while (found_anything) - found_anything = FALSE - for(var/record in shuffle(product_records)) - var/datum/data/vending_product/R = record - if(R.amount <= 0) //Try to use a record that actually has something to dump. - continue - var/dump_path = R.product_path - if(!dump_path) - continue - R.amount-- - // busting open a vendor will destroy some of the contents - if(found_anything && prob(80)) - continue + var/dump_amount = 0 + var/found_anything = TRUE + while (found_anything) + found_anything = FALSE + for(var/record in shuffle(product_records)) + var/datum/data/vending_product/R = record + if(R.amount <= 0) //Try to use a record that actually has something to dump. + continue + var/dump_path = R.product_path + if(!dump_path) + continue + R.amount-- + // busting open a vendor will destroy some of the contents + if(found_anything && prob(80)) + continue - var/obj/O = new dump_path(loc) - step(O, pick(GLOB.alldirs)) - found_anything = TRUE - dump_amount++ - if (dump_amount >= 16) - return + var/obj/O = new dump_path(loc) + step(O, pick(GLOB.alldirs)) + found_anything = TRUE + dump_amount++ + if (dump_amount >= 16) + return GLOBAL_LIST_EMPTY(vending_products) /** @@ -628,14 +628,14 @@ GLOBAL_LIST_EMPTY(vending_products) SSblackbox.record_feedback("nested tally", "vending_machine_usage", 1, list("[type]", "[R.product_path]")) vend_ready = TRUE return - if("takeoutcoin") - usr.put_in_hands(coin) - to_chat(usr, "You remove [coin] from [src].") - coin = null - return + if("takeoutcoin") + usr.put_in_hands(coin) + to_chat(usr, "You remove [coin] from [src].") + coin = null + return - else if("togglevoice" && panel_open) - shut_up = !shut_up + if("togglevoice" && panel_open) + shut_up = !shut_up /obj/machinery/vending/process() if(stat & (BROKEN|NOPOWER)) diff --git a/code/modules/vore/eating/belly_obj.dm b/code/modules/vore/eating/belly_obj.dm index 4917bd3dba..ca774ed1f6 100644 --- a/code/modules/vore/eating/belly_obj.dm +++ b/code/modules/vore/eating/belly_obj.dm @@ -558,7 +558,6 @@ to_chat(R,"Your attempt to escape [lowertext(name)] has failed!") to_chat(owner,"The attempt to escape from your [lowertext(name)] has failed!") return - return var/struggle_outer_message = pick(struggle_messages_outside) var/struggle_user_message = pick(struggle_messages_inside) diff --git a/code/modules/vore/trycatch.dm b/code/modules/vore/trycatch.dm index 2adf6e0cf6..d4b1ac2c05 100644 --- a/code/modules/vore/trycatch.dm +++ b/code/modules/vore/trycatch.dm @@ -16,15 +16,14 @@ The proc you're attemping should return nonzero values on success. try if(!callon || !procname) CRASH("attempt_vr: Invalid obj/proc: [callon]/[procname]") - return 0 var/result = call(callon,procname)(arglist(args)) return result catch(var/exception/e) - CRASH("attempt_vr runtimed when calling [procname] on [callon].") - CRASH("attempt_vr catch: [e] on [e.file]:[e.line]") + stack_trace("attempt_vr runtimed when calling [procname] on [callon].") + stack_trace("attempt_vr catch: [e] on [e.file]:[e.line]") return 0 /* @@ -46,17 +45,16 @@ The hooks you're calling should return nonzero values on success. var/hook_path = text2path("/hook/[hook]") if(!hook_path) CRASH("hook_vr: Invalid hook '/hook/[hook]' called.") - return 0 var/caller = new hook_path var/status = 1 for(var/P in typesof("[hook_path]/proc")) if(!call(caller, P)(arglist(args))) - CRASH("hook_vr: Hook '[P]' failed or runtimed.") + stack_trace("hook_vr: Hook '[P]' failed or runtimed.") status = 0 return status catch(var/exception/e) - CRASH("hook_vr itself failed or runtimed. Exception below.") - CRASH("hook_vr catch: [e] on [e.file]:[e.line]") \ No newline at end of file + stack_trace("hook_vr itself failed or runtimed. Exception below.") + stack_trace("hook_vr catch: [e] on [e.file]:[e.line]") diff --git a/modular_citadel/code/modules/arousal/genitals.dm b/modular_citadel/code/modules/arousal/genitals.dm index 47a994326f..8fda73b199 100644 --- a/modular_citadel/code/modules/arousal/genitals.dm +++ b/modular_citadel/code/modules/arousal/genitals.dm @@ -364,11 +364,10 @@ if(ishuman(src) && dna.species.id == "human") dna.features["genitals_use_skintone"] = TRUE dna.species.use_skintones = TRUE - if(MUTCOLORS) - if(src.dna.species.fixed_mut_color) - dna.features["cock_color"] = "[dna.species.fixed_mut_color]" - dna.features["breasts_color"] = "[dna.species.fixed_mut_color]" - return + if(src.dna.species.fixed_mut_color) + dna.features["cock_color"] = "[dna.species.fixed_mut_color]" + dna.features["breasts_color"] = "[dna.species.fixed_mut_color]" + return //So people who haven't set stuff up don't get rainbow surprises. dna.features["cock_color"] = "[dna.features["mcolor"]]" dna.features["breasts_color"] = "[dna.features["mcolor"]]" diff --git a/modular_citadel/code/modules/reagents/objects/items.dm b/modular_citadel/code/modules/reagents/objects/items.dm index 5d207f4c73..1924e7ee00 100644 --- a/modular_citadel/code/modules/reagents/objects/items.dm +++ b/modular_citadel/code/modules/reagents/objects/items.dm @@ -54,7 +54,6 @@ to_chat(user, "[src] is empty!") add_fingerprint(user) return - ..() /obj/item/fermichem/pHpaper name = "pH indicator strip" From 31e032180842cd8c8738d130558d85f4f9e2c1ff Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sat, 11 Apr 2020 16:53:08 +0200 Subject: [PATCH 118/190] Minor action datum refactor and spellcasting fix. --- code/__DEFINES/dcs/signals.dm | 2 +- code/__HELPERS/roundend.dm | 2 +- code/controllers/subsystem/vote.dm | 2 +- code/datums/action.dm | 28 +++++------ code/datums/dash_weapon.dm | 2 +- code/datums/elements/spellcasting.dm | 12 ++--- code/game/machinery/launch_pad.dm | 4 +- .../objects/items/robot/robot_upgrades.dm | 14 +++--- .../changeling/changeling_power.dm | 3 +- .../changeling/powers/tiny_prick.dm | 6 +-- .../clock_helpers/hierophant_network.dm | 2 +- .../clock_items/clock_weapons/_call_weapon.dm | 2 +- .../clockcult/clock_mobs/_eminence.dm | 4 +- .../clock_scriptures/scripture_scripts.dm | 2 +- code/modules/antagonists/cult/blood_magic.dm | 4 +- code/modules/antagonists/cult/cult_comms.dm | 20 ++++---- code/modules/antagonists/cult/cult_items.dm | 4 +- .../antagonists/cult/rune_spawn_action.dm | 2 +- .../traitor/equipment/Malf_Modules.dm | 2 +- .../modules/clothing/spacesuits/chronosuit.dm | 2 +- .../carbon/alien/humanoid/alien_powers.dm | 11 ++--- .../carbon/human/species_types/golems.dm | 2 +- .../carbon/human/species_types/jellypeople.dm | 6 +-- code/modules/mob/living/say.dm | 2 +- .../simple_animal/hostile/giant_spider.dm | 9 ++-- .../mob/living/simple_animal/slime/powers.dm | 2 +- code/modules/projectiles/gun.dm | 2 +- code/modules/spells/spell.dm | 39 ++++++++------- code/modules/spells/spell_types/aimed.dm | 5 +- code/modules/spells/spell_types/lightning.dm | 6 +-- code/modules/spells/spell_types/mime.dm | 48 ++++++++----------- code/modules/surgery/organs/vocal_cords.dm | 4 +- 32 files changed, 124 insertions(+), 131 deletions(-) diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index e75f832df3..2ab04cb37f 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -179,7 +179,7 @@ // #define SPEECH_FORCED 7 #define COMSIG_MOB_ANTAG_ON_GAIN "mob_antag_on_gain" //from base of /datum/antagonist/on_gain(): (antag_datum) -#define COMSIG_MOB_SPELL_CAST_CHECK "mob_spell_cast_check" //called from base of /obj/effect/proc_holder/spell/cast_check(): (spell) +#define COMSIG_MOB_SPELL_CAN_CAST "mob_spell_can_cast" //called from base of /obj/effect/proc_holder/spell/can_cast(): (spell) // /mob/living signals #define COMSIG_LIVING_REGENERATE_LIMBS "living_regenerate_limbs" //from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs) diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index e416396991..7cbfbd040a 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -513,7 +513,7 @@ if(owner && GLOB.common_report && SSticker.current_state == GAME_STATE_FINISHED) SSticker.show_roundend_report(owner.client, FALSE) -/datum/action/report/IsAvailable() +/datum/action/report/IsAvailable(silent = FALSE) return 1 /datum/action/report/Topic(href,href_list) diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index 7d72951278..a202afd905 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -763,7 +763,7 @@ SUBSYSTEM_DEF(vote) remove_from_client() Remove(owner) -/datum/action/vote/IsAvailable() +/datum/action/vote/IsAvailable(silent = FALSE) return 1 /datum/action/vote/proc/remove_from_client() diff --git a/code/datums/action.dm b/code/datums/action.dm index 6c08a33f33..4be3c9b1e7 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -95,7 +95,7 @@ /datum/action/proc/Process() return -/datum/action/proc/IsAvailable() +/datum/action/proc/IsAvailable(silent = FALSE) if(!owner) return FALSE var/mob/living/L = owner @@ -134,7 +134,7 @@ ApplyIcon(button, force) - if(!IsAvailable()) + if(!IsAvailable(TRUE)) button.color = transparent_when_unavailable ? rgb(128,0,0,128) : rgb(128,0,0) else button.color = rgb(255,255,255,255) @@ -308,7 +308,7 @@ icon_icon = 'icons/mob/actions/actions_items.dmi' button_icon_state = "vortex_recall" -/datum/action/item_action/vortex_recall/IsAvailable() +/datum/action/item_action/vortex_recall/IsAvailable(silent = FALSE) if(istype(target, /obj/item/hierophant_club)) var/obj/item/hierophant_club/H = target if(H.teleporting) @@ -320,7 +320,7 @@ background_icon_state = "bg_clock" buttontooltipstyle = "clockcult" -/datum/action/item_action/clock/IsAvailable() +/datum/action/item_action/clock/IsAvailable(silent = FALSE) if(!is_servant_of_ratvar(owner)) return 0 return ..() @@ -329,7 +329,7 @@ name = "Create Judicial Marker" desc = "Allows you to create a stunning Judicial Marker at any location in view. Click again to disable." -/datum/action/item_action/clock/toggle_visor/IsAvailable() +/datum/action/item_action/clock/toggle_visor/IsAvailable(silent = FALSE) if(!is_servant_of_ratvar(owner)) return 0 if(istype(target, /obj/item/clothing/glasses/judicial_visor)) @@ -408,7 +408,7 @@ /datum/action/item_action/jetpack_stabilization name = "Toggle Jetpack Stabilization" -/datum/action/item_action/jetpack_stabilization/IsAvailable() +/datum/action/item_action/jetpack_stabilization/IsAvailable(silent = FALSE) var/obj/item/tank/jetpack/J = target if(!istype(J) || !J.on) return 0 @@ -465,7 +465,7 @@ /datum/action/item_action/organ_action check_flags = AB_CHECK_CONSCIOUS -/datum/action/item_action/organ_action/IsAvailable() +/datum/action/item_action/organ_action/IsAvailable(silent = FALSE) var/obj/item/organ/I = target if(!I.owner) return 0 @@ -634,32 +634,32 @@ return FALSE if(target) var/obj/effect/proc_holder/S = target - S.Click() + S.Trigger(usr) return TRUE -/datum/action/spell_action/IsAvailable() +/datum/action/spell_action/IsAvailable(silent = FALSE) if(!target) return FALSE return TRUE /datum/action/spell_action/spell -/datum/action/spell_action/spell/IsAvailable() +/datum/action/spell_action/spell/IsAvailable(silent = FALSE) if(!target) return FALSE var/obj/effect/proc_holder/spell/S = target if(owner) - return S.can_cast(owner, FALSE, TRUE) + return S.can_cast(owner, FALSE, silent) return FALSE /datum/action/spell_action/alien -/datum/action/spell_action/alien/IsAvailable() +/datum/action/spell_action/alien/IsAvailable(silent = FALSE) if(!target) return FALSE var/obj/effect/proc_holder/alien/ab = target if(owner) - return ab.cost_check(ab.check_turf,owner,1) + return ab.cost_check(ab.check_turf,owner,silent) return FALSE @@ -701,7 +701,7 @@ button.maptext_width = 24 button.maptext_height = 12 -/datum/action/cooldown/IsAvailable() +/datum/action/cooldown/IsAvailable(silent = FALSE) return next_use_time <= world.time /datum/action/cooldown/proc/StartCooldown() diff --git a/code/datums/dash_weapon.dm b/code/datums/dash_weapon.dm index 8eda936bb7..c31139dcd7 100644 --- a/code/datums/dash_weapon.dm +++ b/code/datums/dash_weapon.dm @@ -19,7 +19,7 @@ dashing_item = dasher holder = user -/datum/action/innate/dash/IsAvailable() +/datum/action/innate/dash/IsAvailable(silent = FALSE) if(current_charges > 0) return TRUE else diff --git a/code/datums/elements/spellcasting.dm b/code/datums/elements/spellcasting.dm index a917108bf1..69d628d9d2 100644 --- a/code/datums/elements/spellcasting.dm +++ b/code/datums/elements/spellcasting.dm @@ -12,7 +12,7 @@ RegisterSignal(target, COMSIG_ITEM_EQUIPPED, .proc/on_equip) RegisterSignal(target, COMSIG_ITEM_DROPPED, .proc/on_drop) else if(ismob(target)) - RegisterSignal(target, COMSIG_MOB_SPELL_CAST_CHECK, .proc/on_cast) + RegisterSignal(target, COMSIG_MOB_SPELL_CAN_CAST, .proc/on_cast) stacked_spellcasting_by_user[target]++ else return ELEMENT_INCOMPATIBLE @@ -21,24 +21,24 @@ /datum/element/spellcasting/Detach(datum/target) . = ..() - UnregisterSignal(target, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED, COMSIG_MOB_SPELL_CAST_CHECK)) + UnregisterSignal(target, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED, COMSIG_MOB_SPELL_CAN_CAST)) if(users_by_item[target]) var/mob/user = users_by_item[target] stacked_spellcasting_by_user[user]-- if(!stacked_spellcasting_by_user[user]) stacked_spellcasting_by_user -= user - UnregisterSignal(user, COMSIG_MOB_SPELL_CAST_CHECK) + UnregisterSignal(user, COMSIG_MOB_SPELL_CAN_CAST) else if(ismob(target)) stacked_spellcasting_by_user[target]-- if(!stacked_spellcasting_by_user[target]) stacked_spellcasting_by_user -= target /datum/element/spellcasting/proc/on_equip(datum/source, mob/equipper, slot) - if(!(slot in cast_slots)) + if(!(slot & cast_slots)) return users_by_item[source] = equipper if(!stacked_spellcasting_by_user[equipper]) - RegisterSignal(equipper, COMSIG_MOB_SPELL_CAST_CHECK, .proc/on_cast) + RegisterSignal(equipper, COMSIG_MOB_SPELL_CAN_CAST, .proc/on_cast) stacked_spellcasting_by_user[equipper]++ /datum/element/spellcasting/proc/on_drop(datum/source, mob/user) @@ -48,7 +48,7 @@ stacked_spellcasting_by_user[user]-- if(!stacked_spellcasting_by_user[user]) stacked_spellcasting_by_user -= user - UnregisterSignal(user, COMSIG_MOB_SPELL_CAST_CHECK) + UnregisterSignal(user, COMSIG_MOB_SPELL_CAN_CAST) /datum/element/spellcasting/proc/on_cast(mob/caster, obj/effect/proc_holder/spell) return cast_flags diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index 0f5e51215d..d01f7e3e40 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -57,7 +57,7 @@ var/turf/target = locate(target_x, target_y, z) ghost.forceMove(target) -/obj/machinery/launchpad/proc/isAvailable() +/obj/machinery/launchpad/proc/isAvailable(silent = FALSE) if(stat & NOPOWER) return FALSE if(panel_open) @@ -198,7 +198,7 @@ QDEL_NULL(briefcase) return ..() -/obj/machinery/launchpad/briefcase/isAvailable() +/obj/machinery/launchpad/briefcase/isAvailable(silent = FALSE) if(closed) return FALSE return ..() diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index b137c5c0f3..08ce73109c 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -663,21 +663,19 @@ var/maxReduction = 1 -/obj/effect/proc_holder/silicon/cyborg/vtecControl/Click(mob/living/silicon/robot/user) - var/mob/living/silicon/robot/self = usr - +/obj/effect/proc_holder/silicon/cyborg/vtecControl/Trigger(mob/living/silicon/robot/user) currentState = (currentState + 1) % 3 - if(istype(self)) + if(istype(user)) switch(currentState) if (0) - self.speed = initial(self.speed) + user.speed = initial(user.speed) if (1) - self.speed = initial(self.speed) - maxReduction * 0.5 + user.speed = initial(user.speed) - maxReduction * 0.5 if (2) - self.speed = initial(self.speed) - maxReduction * 1 + user.speed = initial(user.speed) - maxReduction * 1 action.button_icon_state = "Chevron_State_[currentState]" action.UpdateButtonIcon() - return + return TRUE diff --git a/code/modules/antagonists/changeling/changeling_power.dm b/code/modules/antagonists/changeling/changeling_power.dm index 574edf225a..aa45c56892 100644 --- a/code/modules/antagonists/changeling/changeling_power.dm +++ b/code/modules/antagonists/changeling/changeling_power.dm @@ -28,8 +28,7 @@ action.Remove(user) return -/obj/effect/proc_holder/changeling/Click() - var/mob/user = usr +/obj/effect/proc_holder/changeling/Trigger(mob/user) if(!user || !user.mind || !user.mind.has_antag_datum(/datum/antagonist/changeling)) return try_to_sting(user) diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm index 3e19ce74fe..a8fe56aae7 100644 --- a/code/modules/antagonists/changeling/powers/tiny_prick.dm +++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm @@ -3,8 +3,7 @@ desc = "Stabby stabby." var/sting_icon = null -/obj/effect/proc_holder/changeling/sting/Click() - var/mob/user = usr +/obj/effect/proc_holder/changeling/sting/Trigger(mob/user) if(!user || !user.mind) return var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) @@ -74,8 +73,7 @@ action_icon_state = "ling_sting_transform" action_background_icon_state = "bg_ling" -/obj/effect/proc_holder/changeling/sting/transformation/Click() - var/mob/user = usr +/obj/effect/proc_holder/changeling/sting/transformation/Trigger(mob/user) var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) if(changeling.chosen_sting) unset_sting(user) diff --git a/code/modules/antagonists/clockcult/clock_helpers/hierophant_network.dm b/code/modules/antagonists/clockcult/clock_helpers/hierophant_network.dm index 37f6f0b2d7..0c01dc0963 100644 --- a/code/modules/antagonists/clockcult/clock_helpers/hierophant_network.dm +++ b/code/modules/antagonists/clockcult/clock_helpers/hierophant_network.dm @@ -35,7 +35,7 @@ var/span_for_name = "heavy_brass" var/span_for_message = "brass" -/datum/action/innate/hierophant/IsAvailable() +/datum/action/innate/hierophant/IsAvailable(silent = FALSE) if(!is_servant_of_ratvar(owner)) return FALSE return ..() diff --git a/code/modules/antagonists/clockcult/clock_items/clock_weapons/_call_weapon.dm b/code/modules/antagonists/clockcult/clock_items/clock_weapons/_call_weapon.dm index a87767c05e..40aca961fc 100644 --- a/code/modules/antagonists/clockcult/clock_items/clock_weapons/_call_weapon.dm +++ b/code/modules/antagonists/clockcult/clock_items/clock_weapons/_call_weapon.dm @@ -12,7 +12,7 @@ var/obj/item/clockwork/weapon/weapon_type //The type of weapon to create var/obj/item/clockwork/weapon/weapon -/datum/action/innate/call_weapon/IsAvailable() +/datum/action/innate/call_weapon/IsAvailable(silent = FALSE) if(!is_servant_of_ratvar(owner)) qdel(src) return diff --git a/code/modules/antagonists/clockcult/clock_mobs/_eminence.dm b/code/modules/antagonists/clockcult/clock_mobs/_eminence.dm index e4722dbcb0..faa5e025ca 100644 --- a/code/modules/antagonists/clockcult/clock_mobs/_eminence.dm +++ b/code/modules/antagonists/clockcult/clock_mobs/_eminence.dm @@ -232,7 +232,7 @@ background_icon_state = "bg_clock" buttontooltipstyle = "clockcult" -/datum/action/innate/eminence/IsAvailable() +/datum/action/innate/eminence/IsAvailable(silent = FALSE) if(!iseminence(owner)) qdel(src) return @@ -283,7 +283,7 @@ desc = "Initiates a mass recall, warping all servants to the Ark after a short delay. This can only be used once." button_icon_state = "Spatial Gateway" -/datum/action/innate/eminence/mass_recall/IsAvailable() +/datum/action/innate/eminence/mass_recall/IsAvailable(silent = FALSE) . = ..() if(.) var/obj/structure/destructible/clockwork/massive/celestial_gateway/G = GLOB.ark_of_the_clockwork_justiciar diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm index 4e1a5b42cb..d3b600ec29 100644 --- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm +++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm @@ -150,7 +150,7 @@ /obj/item/clothing/head/helmet/space, /obj/item/clothing/shoes/magboots)) //replace this only if ratvar is up -/datum/action/innate/clockwork_armaments/IsAvailable() +/datum/action/innate/clockwork_armaments/IsAvailable(silent = FALSE) if(!is_servant_of_ratvar(owner)) qdel(src) return diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index c4a8c1e827..51933d2c0f 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -17,7 +17,7 @@ qdel(X) ..() -/datum/action/innate/cult/blood_magic/IsAvailable() +/datum/action/innate/cult/blood_magic/IsAvailable(silent = FALSE) if(!iscultist(owner)) return FALSE return ..() @@ -118,7 +118,7 @@ hand_magic = null ..() -/datum/action/innate/cult/blood_spell/IsAvailable() +/datum/action/innate/cult/blood_spell/IsAvailable(silent = FALSE) if(!iscultist(owner) || owner.incapacitated() || !charges) return FALSE return ..() diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm index 761412e9f8..64c03b9aeb 100644 --- a/code/modules/antagonists/cult/cult_comms.dm +++ b/code/modules/antagonists/cult/cult_comms.dm @@ -6,7 +6,7 @@ buttontooltipstyle = "cult" check_flags = AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_CONSCIOUS -/datum/action/innate/cult/IsAvailable() +/datum/action/innate/cult/IsAvailable(silent = FALSE) if(!iscultist(owner)) return FALSE return ..() @@ -51,7 +51,7 @@ name = "Spiritual Communion" desc = "Conveys a message from the spirit realm that all cultists can hear." -/datum/action/innate/cult/comm/spirit/IsAvailable() +/datum/action/innate/cult/comm/spirit/IsAvailable(silent = FALSE) if(iscultist(owner.mind.current)) return TRUE @@ -72,7 +72,7 @@ name = "Assert Leadership" button_icon_state = "cultvote" -/datum/action/innate/cult/mastervote/IsAvailable() +/datum/action/innate/cult/mastervote/IsAvailable(silent = FALSE) var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) if(!C || C.cult_team.cult_vote_called || !ishuman(owner)) return FALSE @@ -137,7 +137,7 @@ to_chat(B.current,"[Nominee] has won the cult's support and is now their master. Follow [Nominee.p_their()] orders to the best of your ability!") return TRUE -/datum/action/innate/cult/master/IsAvailable() +/datum/action/innate/cult/master/IsAvailable(silent = FALSE) if(!owner.mind || !owner.mind.has_antag_datum(/datum/antagonist/cult/master) || GLOB.cult_narsie) return 0 return ..() @@ -220,9 +220,9 @@ CM.attached_action = src ..() -/datum/action/innate/cult/master/cultmark/IsAvailable() +/datum/action/innate/cult/master/cultmark/IsAvailable(silent = FALSE) if(cooldown > world.time) - if(!CM.active) + if(!CM.active && !silent) to_chat(owner, "You need to wait [DisplayTimeText(cooldown - world.time)] before you can mark another target!") return FALSE return ..() @@ -299,7 +299,7 @@ name = "Mark a Blood Target for the Cult" desc = "Marks a target for the entire cult to track." -/datum/action/innate/cult/master/cultmark/ghost/IsAvailable() +/datum/action/innate/cult/master/cultmark/ghost/IsAvailable(silent = FALSE) if(istype(owner, /mob/dead/observer) && iscultist(owner.mind.current)) return TRUE else @@ -313,7 +313,7 @@ var/cooldown = 0 var/base_cooldown = 600 -/datum/action/innate/cult/ghostmark/IsAvailable() +/datum/action/innate/cult/ghostmark/IsAvailable(silent = FALSE) if(istype(owner, /mob/dead/observer) && iscultist(owner.mind.current)) return TRUE else @@ -389,11 +389,11 @@ PM.attached_action = src ..() -/datum/action/innate/cult/master/pulse/IsAvailable() +/datum/action/innate/cult/master/pulse/IsAvailable(silent = FALSE) if(!owner.mind || !owner.mind.has_antag_datum(/datum/antagonist/cult/master)) return FALSE if(cooldown > world.time) - if(!PM.active) + if(!PM.active && !silent) to_chat(owner, "You need to wait [DisplayTimeText(cooldown - world.time)] before you can pulse again!") return FALSE return ..() diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index b31bfc0693..959e5be2c4 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -207,7 +207,7 @@ phasein = /obj/effect/temp_visual/dir_setting/cult/phase phaseout = /obj/effect/temp_visual/dir_setting/cult/phase/out -/datum/action/innate/dash/cult/IsAvailable() +/datum/action/innate/dash/cult/IsAvailable(silent = FALSE) if(iscultist(holder) && current_charges) return TRUE else @@ -227,7 +227,7 @@ sword = bastard holder = user -/datum/action/innate/cult/spin2win/IsAvailable() +/datum/action/innate/cult/spin2win/IsAvailable(silent = FALSE) if(iscultist(holder) && cooldown <= world.time) return TRUE else diff --git a/code/modules/antagonists/cult/rune_spawn_action.dm b/code/modules/antagonists/cult/rune_spawn_action.dm index 60a8527860..b164246060 100644 --- a/code/modules/antagonists/cult/rune_spawn_action.dm +++ b/code/modules/antagonists/cult/rune_spawn_action.dm @@ -14,7 +14,7 @@ var/obj/effect/temp_visual/cult/rune_spawn/rune_center_type var/rune_color -/datum/action/innate/cult/create_rune/IsAvailable() +/datum/action/innate/cult/create_rune/IsAvailable(silent = FALSE) if(!rune_type || cooldown > world.time) return FALSE return ..() diff --git a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm index e6ca95472e..6616eea006 100644 --- a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm +++ b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm @@ -43,7 +43,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list( else owner_AI = owner -/datum/action/innate/ai/IsAvailable() +/datum/action/innate/ai/IsAvailable(silent = FALSE) . = ..() if(owner_AI && owner_AI.malf_cooldown > world.time) return FALSE diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm index 4311aa5166..94ccdf94c6 100644 --- a/code/modules/clothing/spacesuits/chronosuit.dm +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -321,7 +321,7 @@ check_flags = AB_CHECK_CONSCIOUS //|AB_CHECK_INSIDE var/obj/item/clothing/suit/space/chronos/chronosuit = null -/datum/action/innate/chrono_teleport/IsAvailable() +/datum/action/innate/chrono_teleport/IsAvailable(silent = FALSE) return (chronosuit && chronosuit.activated && chronosuit.camera && !chronosuit.teleporting) /datum/action/innate/chrono_teleport/Activate() diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index ef6a372f9e..42b2c4433b 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -21,14 +21,13 @@ Doesn't work on other aliens/AI.*/ . = ..() action = new(src) -/obj/effect/proc_holder/alien/Click() - if(!iscarbon(usr)) - return 1 - var/mob/living/carbon/user = usr - if(cost_check(check_turf,user)) +/obj/effect/proc_holder/alien/Trigger(mob/living/carbon/user, skip_cost_check) + if(!istype(user)) + return TRUE + if(!skip_cost_check || cost_check(check_turf,user)) if(fire(user) && user) // Second check to prevent runtimes when evolving user.adjustPlasma(-plasma_cost) - return 1 + return TRUE /obj/effect/proc_holder/alien/on_gain(mob/living/carbon/user) return diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index 4ee069afe8..abc2288e9b 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -469,7 +469,7 @@ var/cooldown = 150 var/last_teleport = 0 -/datum/action/innate/unstable_teleport/IsAvailable() +/datum/action/innate/unstable_teleport/IsAvailable(silent = FALSE) if(..()) if(world.time > last_teleport + cooldown) return 1 diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index 9937b52002..c04167a61f 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -84,7 +84,7 @@ background_icon_state = "bg_alien" required_mobility_flags = NONE -/datum/action/innate/regenerate_limbs/IsAvailable() +/datum/action/innate/regenerate_limbs/IsAvailable(silent = FALSE) if(..()) var/mob/living/carbon/human/H = owner var/list/limbs_to_heal = H.get_missing_limbs() @@ -223,7 +223,7 @@ icon_icon = 'icons/mob/actions/actions_slime.dmi' background_icon_state = "bg_alien" -/datum/action/innate/split_body/IsAvailable() +/datum/action/innate/split_body/IsAvailable(silent = FALSE) if(..()) var/mob/living/carbon/human/H = owner if(H.blood_volume >= BLOOD_VOLUME_SLIME_SPLIT) @@ -776,7 +776,7 @@ ..() species = _species -/datum/action/innate/use_extract/IsAvailable() +/datum/action/innate/use_extract/IsAvailable(silent = FALSE) if(..()) if(species && species.current_extract && (world.time > species.extract_cooldown)) return TRUE diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 35b49cce8e..f90b285d2d 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -354,7 +354,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( if(cultslurring) message = cultslur(message) - + if(clockcultslurring) message = CLOCK_CULT_SLUR(message) diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index 3c3612f434..439bedf3cc 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -400,10 +400,9 @@ action.button_icon_state = "wrap_[active]" action.UpdateButtonIcon() -/obj/effect/proc_holder/wrap/Click() - if(!istype(usr, /mob/living/simple_animal/hostile/poison/giant_spider/nurse)) +/obj/effect/proc_holder/wrap/Trigger(mob/living/simple_animal/hostile/poison/giant_spider/nurse/user) + if(!istype(user)) return TRUE - var/mob/living/simple_animal/hostile/poison/giant_spider/nurse/user = usr activate(user) return TRUE @@ -444,7 +443,7 @@ check_flags = AB_CHECK_CONSCIOUS button_icon_state = "lay_eggs" -/datum/action/innate/spider/lay_eggs/IsAvailable() +/datum/action/innate/spider/lay_eggs/IsAvailable(silent = FALSE) if(..()) if(!istype(owner, /mob/living/simple_animal/hostile/poison/giant_spider/nurse)) return 0 @@ -508,7 +507,7 @@ desc = "Send a command to all living spiders." button_icon_state = "command" -/datum/action/innate/spider/comm/IsAvailable() +/datum/action/innate/spider/comm/IsAvailable(silent = FALSE) if(!istype(owner, /mob/living/simple_animal/hostile/poison/giant_spider/nurse/midwife)) return FALSE return TRUE diff --git a/code/modules/mob/living/simple_animal/slime/powers.dm b/code/modules/mob/living/simple_animal/slime/powers.dm index bf80ab9ff4..4f8e271d6f 100644 --- a/code/modules/mob/living/simple_animal/slime/powers.dm +++ b/code/modules/mob/living/simple_animal/slime/powers.dm @@ -11,7 +11,7 @@ background_icon_state = "bg_alien" var/needs_growth = NO_GROWTH_NEEDED -/datum/action/innate/slime/IsAvailable() +/datum/action/innate/slime/IsAvailable(silent = FALSE) if(..()) var/mob/living/simple_animal/slime/S = owner if(needs_growth == GROWTH_NEEDED) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index dd40648191..9c1a23174e 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -513,7 +513,7 @@ icon_icon = 'icons/mob/actions/actions_items.dmi' button_icon_state = "sniper_zoom" -/datum/action/item_action/toggle_scope_zoom/IsAvailable() +/datum/action/item_action/toggle_scope_zoom/IsAvailable(silent = FALSE) . = ..() if(!.) var/obj/item/gun/G = target diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index 03488fa8a9..1e4e0b6dc7 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -45,6 +45,12 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th /obj/effect/proc_holder/singularity_pull() return +/obj/effect/proc_holder/Click() + return Trigger(usr, FALSE) + +/obj/effect/proc_holder/proc/Trigger(mob/user) + return TRUE + /obj/effect/proc_holder/proc/InterceptClickOn(mob/living/caller, params, atom/A) if(caller.ranged_ability != src || ranged_ability_user != caller) //I'm not actually sure how these would trigger, but, uh, safety, I guess? to_chat(caller, "[caller.ranged_ability.name] has been disabled.") @@ -150,8 +156,8 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th if(mobs_blacklist) mobs_blacklist = typecacheof(mobs_blacklist) -/obj/effect/proc_holder/spell/proc/cast_check(skipcharge = FALSE, mob/user = usr) //checks if the spell can be cast based on its settings; skipcharge is used when an additional cast_check is called inside the spell - if(!can_cast(user, skipcharge)) +/obj/effect/proc_holder/spell/proc/cast_check(skipcharge = FALSE, mob/user = usr, skip_can_cast = FALSE) //checks if the spell can be cast based on its settings; skipcharge is used when an additional cast_check is called inside the spell + if(!skip_can_cast && !can_cast(user, skipcharge)) return FALSE if(!skipcharge) @@ -183,15 +189,17 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th /obj/effect/proc_holder/spell/proc/invocation(mob/user = usr) //spelling the spell out and setting it on recharge/reducing charges amount switch(invocation_type) if("shout") - if(prob(50))//Auto-mute? Fuck that noise - user.say(invocation, forced = "spell") - else - user.say(replacetext(invocation," ","`"), forced = "spell") + if(user.can_speak_vocal(invocation)) + if(prob(50))//Auto-mute? Fuck that noise + user.say(invocation, forced = "spell") + else + user.say(replacetext(invocation," ","`"), forced = "spell") if("whisper") - if(prob(50)) - user.whisper(invocation) - else - user.whisper(replacetext(invocation," ","`")) + if(user.can_speak_vocal(invocation)) + if(prob(50)) + user.whisper(invocation) + else + user.whisper(replacetext(invocation," ","`")) if("emote") user.visible_message(invocation, invocation_emote_self) //same style as in mob/living/emote.dm @@ -210,8 +218,8 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th qdel(action) return ..() -/obj/effect/proc_holder/spell/Click() - if(cast_check()) +/obj/effect/proc_holder/spell/Trigger(mob/user, skip_can_cast = TRUE) + if(cast_check(FALSE, user, skip_can_cast)) choose_targets() return 1 @@ -432,7 +440,7 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th return 1 /obj/effect/proc_holder/spell/proc/can_cast(mob/user = usr, skipcharge = FALSE, silent = FALSE) - var/magic_flags = SEND_SIGNAL(user, COMSIG_MOB_SPELL_CAST_CHECK, src) + var/magic_flags = SEND_SIGNAL(user, COMSIG_MOB_SPELL_CAN_CAST, src) if(magic_flags & SPELL_SKIP_ALL_REQS) return TRUE @@ -448,9 +456,8 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th to_chat(user, "You can't cast this spell here.") return FALSE - if(!skipcharge) - if(!charge_check(user)) - return FALSE + if(!skipcharge && !charge_check(user, silent)) + return FALSE if(user.stat && !stat_allowed && !(magic_flags & SPELL_SKIP_STAT)) if(!silent) diff --git a/code/modules/spells/spell_types/aimed.dm b/code/modules/spells/spell_types/aimed.dm index 786026a1bc..1a904b1076 100644 --- a/code/modules/spells/spell_types/aimed.dm +++ b/code/modules/spells/spell_types/aimed.dm @@ -11,12 +11,11 @@ var/current_amount = 0 //How many projectiles left. var/projectiles_per_fire = 1 //Projectiles per fire. Probably not a good thing to use unless you override ready_projectile(). -/obj/effect/proc_holder/spell/aimed/Click() - var/mob/living/user = usr +/obj/effect/proc_holder/spell/aimed/Trigger(mob/user, skip_can_cast = TRUE) if(!istype(user)) return var/msg - if(!can_cast(user, FALSE, TRUE)) + if(!skip_can_cast && !can_cast(user, FALSE, TRUE)) msg = "You can no longer cast [name]!" remove_ranged_ability(msg) return diff --git a/code/modules/spells/spell_types/lightning.dm b/code/modules/spells/spell_types/lightning.dm index 81b26cf464..d0c3c4166c 100644 --- a/code/modules/spells/spell_types/lightning.dm +++ b/code/modules/spells/spell_types/lightning.dm @@ -15,9 +15,9 @@ action_icon_state = "lightning" -/obj/effect/proc_holder/spell/targeted/tesla/Click() - if(!ready && cast_check()) - StartChargeup() +/obj/effect/proc_holder/spell/targeted/tesla/Trigger(mob/user, skip_can_cast = TRUE) + if(!ready && cast_check(FALSE, user, skip_can_cast)) + StartChargeup(user) return 1 /obj/effect/proc_holder/spell/targeted/tesla/proc/StartChargeup(mob/user = usr) diff --git a/code/modules/spells/spell_types/mime.dm b/code/modules/spells/spell_types/mime.dm index a3bb81ae55..8f39da5031 100644 --- a/code/modules/spells/spell_types/mime.dm +++ b/code/modules/spells/spell_types/mime.dm @@ -16,12 +16,12 @@ action_icon_state = "mime" action_background_icon_state = "bg_mime" -/obj/effect/proc_holder/spell/aoe_turf/conjure/mime_wall/Click() - if(usr && usr.mind) - if(!usr.mind.miming) +/obj/effect/proc_holder/spell/aoe_turf/conjure/mime_wall/Trigger(mob/user, skip_can_cast = TRUE) + if(user.mind) + if(!user.mind.miming) to_chat(usr, "You must dedicate yourself to silence first.") return - invocation = "[usr.real_name] looks as if a wall is in front of [usr.p_them()]." + invocation = "[user.real_name] looks as if a wall is in front of [user.p_them()]." else invocation_type ="none" ..() @@ -41,17 +41,12 @@ action_icon_state = "mime" action_background_icon_state = "bg_mime" -/obj/effect/proc_holder/spell/targeted/mime/speak/Click() - if(!usr) - return - if(!ishuman(usr)) - return - var/mob/living/carbon/human/H = usr - if(H.mind.miming) +/obj/effect/proc_holder/spell/targeted/mime/speak/Trigger(mob/user, skip_can_cast = TRUE) + if(user.mind?.miming) still_recharging_msg = "You can't break your vow of silence that fast!" else still_recharging_msg = "You'll have to wait before you can give your vow of silence again!" - ..() + return ..() /obj/effect/proc_holder/spell/targeted/mime/speak/cast(list/targets,mob/user = usr) for(var/mob/living/carbon/human/H in targets) @@ -82,15 +77,15 @@ action_icon_state = "mime" action_background_icon_state = "bg_mime" -/obj/effect/proc_holder/spell/targeted/forcewall/mime/Click() - if(usr && usr.mind) - if(!usr.mind.miming) +/obj/effect/proc_holder/spell/targeted/forcewall/mime/Trigger(mob/user, skip_can_cast = TRUE) + if(user.mind) + if(!user.mind.miming) to_chat(usr, "You must dedicate yourself to silence first.") return - invocation = "[usr.real_name] looks as if a blockade is in front of [usr.p_them()]." + invocation = "[user.real_name] looks as if a blockade is in front of [user.p_them()]." else invocation_type ="none" - ..() + return ..() /obj/effect/proc_holder/spell/aimed/finger_guns name = "Finger Guns" @@ -114,19 +109,18 @@ base_icon_state = "mime" -/obj/effect/proc_holder/spell/aimed/finger_guns/Click() - var/mob/living/carbon/human/owner = usr - if(owner.incapacitated()) - to_chat(owner, "You can't properly point your fingers while incapacitated.") +/obj/effect/proc_holder/spell/aimed/finger_guns/Trigger(mob/user, skip_can_cast = TRUE) + if(user.incapacitated()) + to_chat(user, "You can't properly point your fingers while incapacitated.") return - if(usr && usr.mind) - if(!usr.mind.miming) + if(user.mind) + if(!user.mind.miming) to_chat(usr, "You must dedicate yourself to silence first.") return - invocation = "[usr.real_name] fires [usr.p_their()] finger gun!" + invocation = "[user.real_name] fires [user.p_their()] finger gun!" else invocation_type ="none" - ..() + return ..() /obj/effect/proc_holder/spell/targeted/touch/mimerope name = "Invisible Rope" @@ -144,8 +138,8 @@ action_background_icon_state = "bg_mime" hand_path = /obj/item/melee/touch_attack/mimerope -/obj/effect/proc_holder/spell/targeted/touch/mimerope/Click() - if(usr && usr.mind) +/obj/effect/proc_holder/spell/targeted/touch/mimerope/Trigger(mob/user, skip_can_cast = TRUE) + if(user.mind) if(!usr.mind.miming) to_chat(usr, "You must dedicate yourself to silence first.") return diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index 7c849dbd68..671d31530a 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -74,7 +74,7 @@ ..() cords = target -/datum/action/item_action/organ_action/colossus/IsAvailable() +/datum/action/item_action/organ_action/colossus/IsAvailable(silent = FALSE) if(world.time < cords.next_command) return FALSE if(!owner) @@ -632,7 +632,7 @@ ..() cords = target -/datum/action/item_action/organ_action/velvet/IsAvailable() +/datum/action/item_action/organ_action/velvet/IsAvailable(silent = FALSE) return TRUE /datum/action/item_action/organ_action/velvet/Trigger() From 7615f63753b65ee6bd2c3f819b64ffe708fab192 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sat, 11 Apr 2020 17:43:09 +0200 Subject: [PATCH 119/190] Oopsie --- code/modules/spells/spell.dm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index 1e4e0b6dc7..143fe508b6 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -187,15 +187,18 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th return TRUE /obj/effect/proc_holder/spell/proc/invocation(mob/user = usr) //spelling the spell out and setting it on recharge/reducing charges amount + var/mob/living/L + if(isliving(user)) + L = user switch(invocation_type) if("shout") - if(user.can_speak_vocal(invocation)) + if(!L || L.can_speak_vocal(invocation)) if(prob(50))//Auto-mute? Fuck that noise user.say(invocation, forced = "spell") else user.say(replacetext(invocation," ","`"), forced = "spell") if("whisper") - if(user.can_speak_vocal(invocation)) + if(!L || L.can_speak_vocal(invocation)) if(prob(50)) user.whisper(invocation) else From a6f6a27c8756014d4a0f20293c4ad7815cdf4111 Mon Sep 17 00:00:00 2001 From: spookydonut Date: Sun, 12 Apr 2020 00:53:57 +0800 Subject: [PATCH 120/190] Update code/modules/vending/_vending.dm Co-Authored-By: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/modules/vending/_vending.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index ad3addcd48..4f7502bb02 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -634,8 +634,9 @@ GLOBAL_LIST_EMPTY(vending_products) coin = null return - if("togglevoice" && panel_open) - shut_up = !shut_up + if("togglevoice") + if(panel_open) + shut_up = !shut_up /obj/machinery/vending/process() if(stat & (BROKEN|NOPOWER)) From a779ec24118449ead7844d860351aaf46d54e52a Mon Sep 17 00:00:00 2001 From: Putnam Date: Sat, 11 Apr 2020 12:42:25 -0700 Subject: [PATCH 121/190] Makes contamination work (whoops) --- code/datums/radiation_wave.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/radiation_wave.dm b/code/datums/radiation_wave.dm index 4795f8da60..5dce5791c2 100644 --- a/code/datums/radiation_wave.dm +++ b/code/datums/radiation_wave.dm @@ -117,7 +117,7 @@ continue contam_atoms += thing var/did_contam = 0 - if(length(can_contam)) + if(can_contam) var/rad_strength = ((strength-RAD_MINIMUM_CONTAMINATION) * RAD_CONTAMINATION_STR_COEFFICIENT)/contam_atoms.len for(var/k in 1 to contam_atoms.len) var/atom/thing = contam_atoms[k] From b5a150911c4f9f16de8896e064f8d9d36bf38e11 Mon Sep 17 00:00:00 2001 From: Putnam Date: Sat, 11 Apr 2020 12:43:14 -0700 Subject: [PATCH 122/190] Massively buffs contamination numbers --- code/__DEFINES/radiation.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/__DEFINES/radiation.dm b/code/__DEFINES/radiation.dm index 596a6a0378..eab495b7c5 100644 --- a/code/__DEFINES/radiation.dm +++ b/code/__DEFINES/radiation.dm @@ -45,9 +45,9 @@ Ask ninjanomnom if they're around // WARNING: The deines below could have disastrous consequences if tweaked incorrectly. See: The great SM purge of Oct.6.2017 // contamination_chance = (strength-RAD_MINIMUM_CONTAMINATION) * RAD_CONTAMINATION_CHANCE_COEFFICIENT * min(1/(steps*RAD_DISTANCE_COEFFICIENT), 1)) // contamination_strength = (strength-RAD_MINIMUM_CONTAMINATION) * RAD_CONTAMINATION_STR_COEFFICIENT -#define RAD_MINIMUM_CONTAMINATION 350 // How strong does a radiation wave have to be to contaminate objects +#define RAD_MINIMUM_CONTAMINATION 10 // How strong does a radiation wave have to be to contaminate objects #define RAD_CONTAMINATION_CHANCE_COEFFICIENT 0.005 // Higher means higher strength scaling contamination chance -#define RAD_CONTAMINATION_STR_COEFFICIENT 0.3 // Higher means higher strength scaling contamination strength +#define RAD_CONTAMINATION_STR_COEFFICIENT 0.95 // Higher means higher strength scaling contamination strength #define RAD_DISTANCE_COEFFICIENT 1 // Lower means further rad spread -#define RAD_HALF_LIFE 90 // The half-life of contaminated objects \ No newline at end of file +#define RAD_HALF_LIFE 90 // The half-life of contaminated objects From c8ebc6411e9ad3dbdf66ab4e8a1988e745ecae24 Mon Sep 17 00:00:00 2001 From: Putnam Date: Sat, 11 Apr 2020 12:58:43 -0700 Subject: [PATCH 123/190] Actually let's make it... differenter. --- code/__DEFINES/radiation.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/__DEFINES/radiation.dm b/code/__DEFINES/radiation.dm index eab495b7c5..ece997a7fc 100644 --- a/code/__DEFINES/radiation.dm +++ b/code/__DEFINES/radiation.dm @@ -45,9 +45,9 @@ Ask ninjanomnom if they're around // WARNING: The deines below could have disastrous consequences if tweaked incorrectly. See: The great SM purge of Oct.6.2017 // contamination_chance = (strength-RAD_MINIMUM_CONTAMINATION) * RAD_CONTAMINATION_CHANCE_COEFFICIENT * min(1/(steps*RAD_DISTANCE_COEFFICIENT), 1)) // contamination_strength = (strength-RAD_MINIMUM_CONTAMINATION) * RAD_CONTAMINATION_STR_COEFFICIENT -#define RAD_MINIMUM_CONTAMINATION 10 // How strong does a radiation wave have to be to contaminate objects +#define RAD_MINIMUM_CONTAMINATION 300 // How strong does a radiation wave have to be to contaminate objects #define RAD_CONTAMINATION_CHANCE_COEFFICIENT 0.005 // Higher means higher strength scaling contamination chance -#define RAD_CONTAMINATION_STR_COEFFICIENT 0.95 // Higher means higher strength scaling contamination strength +#define RAD_CONTAMINATION_STR_COEFFICIENT 0.99 // Higher means higher strength scaling contamination strength #define RAD_DISTANCE_COEFFICIENT 1 // Lower means further rad spread #define RAD_HALF_LIFE 90 // The half-life of contaminated objects From ab3ed7f9c2e95245162627598641a0f384624698 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sat, 11 Apr 2020 23:27:19 +0200 Subject: [PATCH 124/190] Space Hermit Ruin fixes. --- _maps/RandomRuins/SpaceRuins/spacehermit.dmm | 333 +++++++++---------- code/game/turfs/simulated/minerals.dm | 14 +- icons/turf/mining.dmi | Bin 39619 -> 39985 bytes icons/turf/smoothrocks.dmi | Bin 5463 -> 4949 bytes 4 files changed, 172 insertions(+), 175 deletions(-) diff --git a/_maps/RandomRuins/SpaceRuins/spacehermit.dmm b/_maps/RandomRuins/SpaceRuins/spacehermit.dmm index 8113c586ff..dd7e700146 100644 --- a/_maps/RandomRuins/SpaceRuins/spacehermit.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacehermit.dmm @@ -145,9 +145,6 @@ "aE" = ( /turf/open/floor/plating/asteroid/airless, /area/ruin/powered) -"aF" = ( -/turf/open/floor/plating/asteroid, -/area/ruin/powered) "aG" = ( /obj/structure/sink/puddle, /turf/open/floor/plating/asteroid, @@ -241,7 +238,7 @@ /turf/closed/mineral/random/low_chance/earth_like, /area/ruin/powered) "bb" = ( -/turf/closed/mineral/random/earth_like, +/turf/closed/mineral/random/no_caves/earth_like, /area/ruin/powered) "bc" = ( /obj/item/circuitboard/machine/circuit_imprinter, @@ -1137,7 +1134,7 @@ ao ao ak af -aF +am bb bb bb @@ -1189,7 +1186,7 @@ an an ae ae -aF +am bb bb bb @@ -1223,8 +1220,8 @@ bb bb bb ba -aF -aF +am +am ba ba ba @@ -1241,7 +1238,7 @@ ar af at at -aF +am bb fp bb @@ -1275,10 +1272,10 @@ bb bb bb ad -aF -aF -aF -aF +am +am +am +am ba aH aJ @@ -1286,13 +1283,13 @@ aL bb bb aT -aF -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am +am aR bb bb @@ -1328,23 +1325,23 @@ bb bb ad au -aF +am aB -aF -aF -aF -aF -aF +am +am +am +am +am ba bb -aF -aF -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am +am +am bg bb fp @@ -1384,19 +1381,19 @@ bs aC bC WH -aF -aF -aF +am +am +am ba bb bb -aF -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am +am bb bb bb @@ -1432,23 +1429,23 @@ bb bb ad ax -aF +am aD -aF -aF -aF -aF +am +am +am +am bb bb bb aU bd -aF -aF +am +am bl bm -aF -aF +am +am bb bb bb @@ -1484,20 +1481,20 @@ bb bb ad ay -aF -aF -aF +am +am +am aG -aF -aF +am +am bb bb ba av be -aF -aF -aF +am +am +am bn bo bo @@ -1535,24 +1532,24 @@ bb bb bb ba -aF -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am +am bb bb bb bc bf -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am br bb bb @@ -1590,22 +1587,22 @@ bb bb bb bb -aF -aF -aF -aF -aF +am +am +am +am +am bb bb -aF -aF -aF -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am +am +am +am bb bb bb @@ -1642,21 +1639,21 @@ bb bb bb bb -aF -aF -aF -aF -aF +am +am +am +am +am aN -aF -aF -aF -aF +am +am +am +am aR -aF -aF -aF -aF +am +am +am +am bb bb fp @@ -1695,22 +1692,22 @@ bb bb bb ba -aF -aF -aF +am +am +am ba ba -aF -aF -aF -aF -aF -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am +am +am +am +am +am ba ba ba @@ -1752,16 +1749,16 @@ ba aK ba ba -aF -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am +am bp -aF -aF +am +am aR ba ba @@ -1805,15 +1802,15 @@ ba fp ba aP -aF -aF -aF -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am +am +am +am aR ba ba @@ -1858,15 +1855,15 @@ ba ba aQ aP -aF -aF +am +am aR -aF -aF -aF -aF +am +am +am +am bb -aF +am ba ba aZ @@ -1910,12 +1907,12 @@ ba ba ba ba -aF -aF -aF -aF +am +am +am +am aP -aF +am bg bb bb @@ -1962,12 +1959,12 @@ bb bb ba ba -aF -aF -aF -aF -aF -aF +am +am +am +am +am +am aS bb fp @@ -2015,11 +2012,11 @@ bb bb ba bg -aF -aF -aF -aF -aF +am +am +am +am +am aS bb fp @@ -2066,12 +2063,12 @@ bb bb fp ba -aF -aF +am +am bj -aF -aF -aF +am +am +am aS fp bb @@ -2120,9 +2117,9 @@ ba ba aS bi -aF -aF -aF +am +am +am aS aS bb @@ -2171,10 +2168,10 @@ ba aZ ba aS -aF -aF -aF -aF +am +am +am +am aS aS ba diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm index c61ac8972c..20ced46e87 100644 --- a/code/game/turfs/simulated/minerals.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -173,6 +173,13 @@ /turf/closed/mineral/silver = 12, /turf/closed/mineral/plasma = 20, /turf/closed/mineral/iron = 40, /turf/closed/mineral/titanium = 11, /turf/closed/mineral/gibtonite = 4, /turf/closed/mineral/bscrystal = 1) +/turf/closed/mineral/random/no_caves/earth_like + icon_state = "rock_oxy" + turf_type = /turf/open/floor/plating/asteroid + baseturfs = /turf/open/floor/plating/asteroid + initial_gas_mix = OPENTURF_DEFAULT_ATMOS + defer_change = TRUE + /turf/closed/mineral/random/high_chance icon_state = "rock_highchance" mineralChance = 25 @@ -246,13 +253,6 @@ /turf/closed/mineral/silver/volcanic = 20, /turf/closed/mineral/plasma/volcanic = 30, /turf/closed/mineral/bscrystal/volcanic = 1, /turf/closed/mineral/gibtonite/volcanic = 2, /turf/closed/mineral/iron/volcanic = 95) -/turf/closed/mineral/random/earth_like - icon_state = "rock_oxy" - turf_type = /turf/open/floor/plating/asteroid - baseturfs = /turf/open/floor/plating/asteroid - initial_gas_mix = OPENTURF_DEFAULT_ATMOS - defer_change = TRUE - /turf/closed/mineral/iron mineralType = /obj/item/stack/ore/iron diff --git a/icons/turf/mining.dmi b/icons/turf/mining.dmi index 6561438228be7c87921d297f61f6c57ccd2da724..335cff453e0efa3779c51fe9e82035774cbab499 100644 GIT binary patch literal 39985 zcmXtf1yodj*EI@~0@5u?cSwqKNq2WQ(mgQJ4I1aj9|9(9rOemE?7R*A3vi4;vHsNf++1fQI(uO|YJk zue`mFt+%tMud~MoG_=6{g1Jc-DBp9eQ=bRYlAf5xA4?0bWBs_9W3R~~s6$$e7${cU zGuvR+kpouA-KFqd2$S8kb<5J95Tg?pKYqziww1-*U4~22VkVVV9a=d;zCX_HUoa@5 zlTCEHO679XmDnbf_Y40Tn$RmB#i}gUTIw2E$EYmU%Mqqa(UM7{2uh;>55Iun-i4m% z+osaSMC>If`)}V=V{kFeX zZQ1jDa70d>d@ z(9m9?Da*^~1?C_21o_e~gznx~RoDGH{-;>_#0HDK?iIUBDgIc~&R`-j`y0BULa+Sz z={(xI?QQLNi7;iiA`(IY&9n?Eb?;$=&9gztO*4BO%xI18=E2RNmJmeb`;_0I9Yb@mF5Nh&uV7yBu$<}LgKT=xUqez$jOS1a?$;pKIXUj}=zVJB-H=q?I9wEIwiWcU?tr*Snn-J9$-P2ZUrAhOV+J_ zHem5hFpd#P25(4vKBj$gJZt%mns)-97LZg|H@zi(ZOVor5bK<~9iEKd1KLBU->&(H z>|;fDjH|AeH>WUPK))aBIC&j*jZTlT5e|FwTSqRo{cB)I!)|rA6h>~H1Zir0IGHW| zVy*wcw$aI>dw(OKA5u=%o2yZQJ}>G~ z@RNoh>KL%FL7}s($B%0)m@+)*Wrj+0H1!4Ef!Ey}s_^iTwt*pv-z6dlCdY;Bntq~H z&5z1S1tq{9l0%k6XU4N6Z&+!Oi70%n-B~ki9GD9t6|yVgw%8DkM1}>2guLwqgFh1X z7LOt}YBEP|PFOQkW?``Dv&VbW%^L5>pZK~#52Z3+A0elc8@zj8h#-u0QY-z4V(?>> z9U=Ce=XKW847p0d5;ztnW?&1V>!iDx;6LZA6$CVOT};(PpeBn@J<`P(y(8A*1OncH zMfBTMX?+mtEAT^KGQK+%`GBpC=RPHrbAWZ0HxvP_cfN-#BY{V?HYP9JeRkHSq0bD4 z$^Fk?3t>kK5jXC%dpi^FC5O&Jj(6nf5wGa)`mnS~qw)6z31;32{tR@W{)j~%{86r` zJ5_-Gmb6NqA@F_mHKexIUH@V0{-)XQz(8$|i8{H-d5#5T;mEq<{Z>oP9+V^Y?j8F4 z53(@%!0Oy8CNvt>^=Y`ZXbZP#*SWeR`2I)@jG01*K>*cWx5NTHE)fv?L2S>aK>k8= zEC&Q9#k!t8%%09~q|#pGJnq5%Y@x5-pZ?VEhupx4UiL1G-2R8M~ik z;Y*D!_=|0?7JFFaODIKyb&6M#bqc#I+0_YtqNB^@LaOB0|IDF$Z<&mQl~wn1{Ynrf zxWp`iobJT#(@}3nv(n?$r6SK+mBBj~zE60?Zz<9KGsS;ik0g}Xz}v2nnre$_d-4fO zxNI(I*ZUh!xYXOX%7%s%`@Ui?7Neu1JKwbKda-1c)?Ax6NWXuNl~D3&)b5{6FAwT=g&BI!=h<-GhO4fohEW8i3oS#y9&TZ_0lNj^r~R&}^q<}r z%m{rG2^1_dOh65xi(oztNP>&Op)?MQH8>^WBpgDoGk(w1EFlfMQ1*Y@K9(&zF8J}& zBbY27?-nAcj_@qQviE0k%HOlL!`%bW`3iH&1DrnbfLa=Bwpd^W55R|RKG5#f-mk}; zOsWr5BSh#VR65KYK%o4sk<^Q|ld!A;p^y(6)kRoO!UU-mo_s*9-vs{6aSXiMub^?0 zrjq*g{Ve+H!(OS>c)v+VebPsaf+yd7BZ`-Ip(7hs>NLR*!}Mp4;7>bu)4rb4Z~mB; zNw*A8xG=xI814$7A8U}>VrOLRKj}0Dxg9it&iltf@M9~M zq%uuddtVb5L9)hw0ercKq5KN}8{|BwSH6dXnq^ku=;)}j+9Vb=aKDa)NJ$sxBp~fD z^)s&+Z`wONw6nGjS2_x#hDBCaa{z#wm-Y_g>5bV#J;cS-LH8qlp#Ok0Tvzi0JmS8IVR^2d>0IBzu?7^dev{)#Mc{x;N^LU zltL5CyBd%+Dvdo^8}Z-&RtF1VgpX8dyyKUFTy zv@yWzp621fbaveF&H)ltKvXo&IhPg&DO!7B3(2`1IkihA~?(|~PkBIFtR&(GhaO7*@mA)pthJnaVH&H2I>>%D;sje+tt-QT|O z5#!`K45`Dt7vJJwr_}INL8yDCGbgG%EzK|qRl5A0dF5kmcb;T6?>FfBSb)s=L_i0k z{yoa$_5@W>ZU1#+n-&dui_UrM64vNSQVp|Vu! zzll+FIXON&WGb4*LIAb3qOC2vy?H4y<})oZGMw9B!QOigCj>91>!&f!zJI!At|gkeCBYS{O=^{W1Kw(uo@8VX zw$Dh@^jEgT>0KCDVbit3vQT)4F%A$i{iHe#nmko#O+59)tJkr;i`_RUE;CpNVbxjnz8@=WY z_(ZGJ$BO4(e6Ey4-0Q|1sTTYnt}Pme-No{vX?@D3uY_V*p4!##ltmG~N~t$t3AcMg z6~&3s@+4ZPiaks;sB21<`B$8LB(Bibx~&dtgH3=);s_n6y^&-f9Ht5nxzAkzNvqzg z2C7-IBYOx_F&gDj@6BF*XkX3P1fKzLdtDfJbK5>*f@>$L_8K`L8(4OPGP#DVn$0?W z0jR`6=xu-Jc|kz|{z3%+_OD;LzrDBD1q=WP|ATD%mUsM?RDgDnEaJ zZx9Npj}mir#l?$$x&)HM{#8?L(zec*L@#P>r&2Kog5!mtL7t3YL5vsLp)FMXj?=cZ zb$$~WMEM>IN33tC*T zG~tfzAno<`WIFZaXlkofjFnr+NK0G5fKd6Pv;W3}aSjr`(~R1Pb{ChyUl>wjpUkfR zfvmSj9dv34=aoUAU=0T(kc4O3YXQ&xeMR>(RmetsjiV?8B^~rWyz*JvT>{D`Rs?0? z?Xj4@FoG+}L+F20#(hP&)on?(#e_Lc$;z1g7F4Ll61gP`^g#e?JqbMtL6;#JFs$v_ z>O80`?dg$d=iTBASP!aLa7!i3`KK3W^5!@kVAoOb5W*DCYI3KYSG3}PSBRR#<`UlI zsLe?z8bArBBgRbNv9d4DpV!jTcDNv9QYx?o1aXEF56-y)-wLdAR!N!lAi?7>l!T9u z&yzV5>D%7e?3V=_wna!$%e&Pg41v}9$L0F7vgt?V7bub%T-t{^r^FFst_;3cKN;~W z8b_z7J{A@hih+pc<^+>%rEYxOR$7zYgjGXA-l?jp`uh3Z#&6t;198d4!}DuyF0$?b zbkha1pPnu4f2BRpMwmDGG2%C;3+VQa^(A~gji}e+BFr3>LjVi$Z*M#^P44c?@Czde zMwx8J9`;2-Ih%Lp2MF=#zke$m1zY1fc6aMMEOeqA9UMH(DHEUvK*Q+Mk?)q9gE(;hq2C#y7$7p|hTvkd&7@ ztsdYN!m-%XgM7Z)>(h_9$S}_#GM48T$t0ZB!+?)`iqB`qRoaMefTCO6GMu$91kE~Z zliu$B>+EbP?rCej2XCoH%^#z_{n&v5JUB07B76O-jO6ux>Ks5UijX5P>?kd5($Bx& z=?vmt1I%O87P@l!62Y{UG_`>ExR@U6~6iQq4zqsnS? z-zqAwR$6oN@=Ck9@;W-+CJdEGp}!+2cm4%~S>9++{1hX=>@}ed$9#x$DmK7l&J!aT z00kmEZF8tcPdLdFpFe;8+kOK=46?WTCMk01H|S9w#!+L(2r+qZ@VDBq!l|h2A-KY- zb3r90QKThg-aTrbmF3>yB!=VO^_?KaVo{r5fx_EY;JXU&zj|-P<;ZOp-2M3G2R zZ1SN9sjk6~^#bQs8kV9sh4ej|u6wlZk@NN7WZuwY&4_jj!x42rWC;cB`+#Nt zu43OvozkO0@G!OvYvwy^8HzJyS(ZWxdZj-WEfEi=DweK-E+zq{Lr*~|7W}2Gj9Glz z76hVIpNoh(7#dQjp6AH4|LSZ4eZw5iizPCE!1t1tv1$2%;A*83y=yy(g>qKI;I@KE zA1D3ih%vULWh7&HcOvaDS=Ukv&62 zO<2`SgXxf|o^XbEDx)iEkkDj*?(l zGu;>7k*#Zo{u_c5QykUq6hx|cQxl#^v)zG+>3w2BV^;VzOGrz8)zB?k`TIw|Xhkt< zjDw+HOli^tT7A?B>?w?(xZ; zjqw`h0fajAg-z_%&d!ciP>h;ib3c3-1Q|ctGqA6R*Qd}I;zO%<^Qw>`z1J<6v2oqR zB@w)|%EbaX-?Z2;c9vIGX!IaTOtMR@RZYZmCqv9=9r3_+Q!%S z3&7iYT|kWkHo?KU!0*BvoRHf*$o?ozC2lDQkf)rtEZJ-SK0}X~JqP5UK^OvtG=1fk zTTYZZa*%DNCEE23&3Az~KaV>wI)+Vq%|u+LsR8eSzW2Z!pTEm6f%oZIt9$yW9rgN( z&NK5#Kib}fY7pYCtk)812}a1Z=%Z}lE&?vC$yNe7q|X$z`JR`42psXmm? z)4WXv(Fbd0CXW9t!5DSYGEBkAl?$&KvN`BM!hdl@IsHCedI}G~#k<+Yem8?1gc}v+SC^MswFc-(6amfUh%U?3 zo^r(IoeA7E`L%D2Q>y99UzVj+~fEF2c3DLAx(Q7*96|WdNO3o z#ghd}%cNof0Rcb8I!bNzIi{@f`Q*yYW;WijxSN=hQBj*$IaPF7e)wSbvzDHan{{42 z&LH0fzk=xKXPsSL2a4X>!rg}!;v}gfIYmW|PEM6o{HsZS1bT(uD)VFky7u4Q-TmWZ z2W#usdwucoIKuABq=D19$rB_bB>fjQgY$yPE-hoff0M?`Ggwidb=MtiUj&f{{}viL zG2S!Q1?iiw-2KlAV1NJCom)>lJiI5mVb^^`FCRzxGi40U)WlzURR4+Amy*d!}+D?Gci3~dLWit{*121nYzP_M=LZlGxO=aEMKNICBPxn z=3wESIg>hTnI^gq?(^=h2}LTk?vK0&pgx<%pWwT}fPJL_@M9aY6@BtI=bYf}VK^f< z9rfm2MxiEa4e0#Vw{{)nFhEgSzeo9&k4H>zH8yz5!XPK=jJHNgHd+jf1bN~cU?u?A z?}~6us*j;6%?Y*5Wywurnh(&`I^G^l$A5mkg#Lc9J(M1di1!e&mp*f=NqU$+g`POY zfZtv!LNzPq`iZH->3dmv@f@CjU%g0rB}QXFi2-sD1ulO|Z=eAcN+L^z2|ctxJ%S{Q zi&2OJ*oF_}N^aTKxU!HzAZru2jXKraywt5g7Izx|1^#TctPsgHm*2P$s-D@iuVKGw zDJd&;^#_LEAqu#}^tvq_o@y(uQZW9YY>8%+3A?67E^oAn)4$k&q5h$Y!L|u?78H|t zHixpGZI-af^~YMZ8jZe{)<)TA+OU*}pUy&_Q)*cJVW{z~DbQ@AZW-`U^za4EYL}oZ z1TATNqLTlTVXM6f5zmeb_-Sw7Vq(w*DA9Dt>RohXmlVogGGqh0xdWqhO|kd;g&}O6 zo-b9c-1+n5$bQYlrZGBG*N0aH8UkWs)T>$Gk5*Hv1)2*SO6$)p%WY;YLmypEJy3&; z`0Z$^;ImToGw6;ca>v7*SjzeP;RUmp5ns4lz|Us;W};=jBr86C_2!hcfztMeBrkjj zGqUR?5|w+6l3Kg3&)bAO#G<0}%Dgo}n})pc_4tH@Fi7t5RgdG%`S!jbf>v^R37XVS44>#k7P~mCtX*8;!X3NcHs(o({?ClP?T<6z1lZbal}z z_#NawZEkMPE{FJJ9gLXCAFQub4Xh63{cUV(SBa=AX%&HfERGULHe zv0@Kx;InC(G51x}6Bfu-vi_N&1bxHO_omzi&`!t=-{PZ`QpK1k^)jB|*BY3w-x!5e=5{tc_ymlmO;Ylj}h>wWyU&aLO8Fu>p(k2%2T5y6Is4m1g$^8&+LU$nzLsTXYrQ!k^o7t zGWc=^hJ(Wx*)A6AA5_)mo{#lBCW0+QNMiVD{1pH;C4Ti=SDi|?E?e!Ku$3;OEFz(t zdoyEX|8Qk^V6xmMVv$2r*cXiI{$zf>hnB*Pfz3 zA#F}sOpspWu_nIrL*%}QkV0BQ25*z5e)?cuTF1Yv;Ulu{G6VV=EC->AD0z_OZwsQB+(2(N` zdGu)@p)=l_br*!8?717Ol7Xrrlp+PKUk`v58OL#rr)QSHG%xbyL%96QQJ)SobLqE- zGwm@jT1zc~7Htp(Vt}1-Yushu1<~JI>|Hi60q$ru%tju-zzsVROUx(}c)emhbC^J0 z16eOOeC&xO(LcVV3@Z=O{MQ0ShZ+=1v=LtiuNvsy2na-Wa08&VG67Ui-dJoq&{7`N zFvX539EcCMp9Tp0U380-PV(|ofh=6D*c=oq4oW3TbK+x(t^9jDAyb3+Z32Q7(xxq0 zvvexOR=;h>kl^4tcv~L@=`h7_T+8bieQ?tz|nfg{G}2&N=pzj(df-$z7+`pdPqn7L0pKgfX0+ zym!3cqm#eh$^y=(TrroW2Kh{7NWd5uV1^SNy*m#Oc-#;0FinftUUT+)*hBggq-$HBg$TIB@CxM7Hh-p4v2f=G zNKHWO5#HN9E=n~m&fOuQ2St!IM5uH(Y!@cDVM!na_2}fSEQZ}0T3TE6G3ES|Q$Bpc zg`0Sxr|MH_@@4E7Mnbu*>9|vFk!Jf{ z*~1oFK|TMUw&0clvqg8(u*(7U!^3ysyX1UtRR@)bh2HV$J`PU2oT#H?5^J67wdNe1 zQvbp1M_Mo6@`d@G?&j|$Ht>T;K#N_kO=DPeAf+YG!XX_)*2PYi<%dO$O`Yjp?bDn* zC|^>i{!+Yr36F?&`?$jK*K+6Wi(4ySikjwk@7{TtXBlyke_zcsbcEtEI^`-dq`gY7 zu4515NH@_1orTt(wiLVzSg$__E}n}?FGAf8Nvw+b(lV1Xel0-fj_eVQEsxwKojp`0 z-F^FIlfBZ6$&#(v>{9gIOSmfdhL?3o6vX6H?&y%$^wDz4Hc}x*d&o24h z{qaC=hOabkw$q5~{Bn_7JnUTY+FeRR(ouI_XWK#I+&^L|n$nS1F*|=A(L92D2Ag8$ z^8CMDfZ*OqcpgqJI^o?BP=0Z!oX>GJQi{{6Y;bE;6kd<$PjJ4)7sI| z&b8L(P%CF=c0`d%+0z!qC~J9ucT!YpN`F$~`OVU(OYz<9D{G-2Eo;M*1!AcTWgu8v zI$N*63P7DqusFEb5Bq$YzO}XO-BHe=CF;ak!?zi{xb;Uxg4j#%)`BO?c0VOtXb1wl z2n|uZt#FO5Uju~dn^=*;qk{um7ngrzMTD%W=QUL>(vj7z>!$+K60rxJ;b**xcJNi4 zfJ#bbYx|6rc3zrW>zM59Y-~M_+1qkw?}0)fAn&7qO0KKxY6^D0IbORNfByO~ueY~% zeBG>-EL|uuHo7MQj!v>b6BfJm+g<-v$j%@(CyavQY;aJ%fi6OPIi}6@MbXYwy+LTb zIj}vTiawmXNyvr&oxRr@aCl_xzTvy?^1ZObLTr_o6QTR{L-PYFSZ@CF>^{CEF_G5q z>s;L2z-~l!^&24}eaDUQF2V8AmclkuJP+ z(9%%MckdIH=Rs{7Cgcj(iLh~UVnc8#eIa7{$2_(gd{EmT&~do8$JVwU?5f4{aEwI{ z@>E~3s@{H5Tgv zF}QZWAB$e^CFoQ}f!2{Fih=8uch2nW>;_U-Q$jz$5|lNba3VW1*i0yiDE9vEG?9J5 zC33L@K{kDzW^e)Z=GV6tr?V+^@1CA?>=p6h(B|BHk-CS5bi2%_jwM$1d`Bgaa=(6Y zZu36pcDhIk_Tq}-X4`eMhk?kz%#!n=rSOUUe^1I9C68SFu2ypoZ<-N>j!q+oEFYp- zqb~o=Z%@kDU`G8V5FjeS)@?roz_nrg?goN-d=*9Z$0#@Ld%#&AeEW;(Q#MID^Xd*0}d{gTpt~$ z@;kQ6ZQfK3loKbh3yWpA*In#RV_{aieIKKN{Y35PkJ)5ZIZW{O)-xl6E3PUd#s;u{ zkV-ZlYn3|)Td}0$L;-6o`XUho=^PI9{n-pQga=!oR@Wbr%966;Tp-V#T{+=*+pKDv zoeyqS=wnvrNu-5BgV3h?9^)Vx>#K$gL+{#CnAbFY-McH*@~i3y*&clC$s1yqoip*E z^X=;Wm`R6G2TG#KR8zrmW_IkYw(mwu$S5>kp*Tbp&p>6AK8S zkzBmIrOvsK;K7R)zt>8WQJz*-A6r{nUlpj^nd0c{U&mBiuekISOt-E(ODunkC=C8r zmANZN@cjAA%8F`>$&jD9uQ{Q?m|PFHC?DU96)aw#6j%pP{W8FD)Ypebl!G(0D>8QL z_V4~Bdf%{=!f;)N4+?o)j!->8&@;L2WTI`YKs=Qnt^n}6=`+UdCB;u}A)^AH zzK=y0Fr24o!yUJcYfWl@;lhwP5cj2zzyVzQJPg)>cRfrs1qP%aD_cT z{1qIvdowXL^;wOjkqZxcdXwD9Rr7WA_G0%S>SQ8EAYURRv$3)9l`tC{*B-t=@e5Jo z7tohVaN{pfOxa1i6G}3N;M>qiNxTQUBa`hF$ct4#Ch7mqwiOU&x3kzhUNn+RTKza<;9_gu*Yo#F+L?WeuMiLwlFF4O z3V`N<&52->w-}Ae>yN_f~To8l1sC4Acq%}hChW>|*yEmjSZZSCOOwA_%H%fH(nkfV2N_D3 zFI4Gq_yx|pkm>8kE0zKcJc9s)3*g8sfsa#;B&@Ls#_Cg1;dd8H12TbEp{dX8^|A8> zCr=mN)sCo9Rt5~@zxBa94N_U~b6ZiI6Kq;?TO01`FiQ!&zkc@5xx;MOZ%x{-#XT=j zeCpRP;_7P59Klw1TT0}xW=~H~UxG=^*ub@-SkdI;eV3`Q#lH~vWNucxoC4;;E*AX@f``9kEN`)dkd6TrJ;mG2#<2Bq~% z`~aG zn7R5Fg~L1c>|bjo1*pQ=WJ8*WiMWX~L&XZqB{ya_2v8ga)fuUi0b#cixHZ>5QH@Ay z>WPomGM^!dp5fVF?VdaXq)e+|xEE;z^R)1r7`K&LGNh165!0b`4(-TSlUht!hTd59 z4DXH!VDTVj3q#hhN{@~FQNnVE>_xo%)A6RK?>vKpJ9)al#zbyTMjW1xT{&3D^LPEU zVDM7MPR#FMkZSvbScvo6eU_m-r9)JxHhmE{vIWG8`wD*SiJGRSEu~^{%s@gbt9WJM zE>XNZTZW1}0}(Jo0%kEaPyzMyI9l9KM?yg!q{htkG zz5}qq(ipiAT-t!kfqAmNZjqUl1?)^Y2~sb9uqGBTDbv9jcv0?**-Y2BxoM--tFI+R zYyiy-5{TZ_UH|np$AlGPw64WYtBCD5`QODV!o$NegHomTf4iZj$TRo}=hYnyZg~My zmWVesWmTiUznh7cmRl=yKS*_x_+{VP6SDngm56OSA;80%@g)!GIjf(&!y6u70aj>6 z?Es=>6&y_cN=e<-q55YHHPP`eDt@;3$j3HFI+Q1V)`C9gMhXME;3U2AFwlOx?&~jFUQ>kxj#opi_ z{rgt}gr^MlJbDL$iF&@M1`1`n5VDv3kvN0{jZzmH7YfKkz02GlQ6&)H0z}aJ5mu|c}te(;M1}& z2ZwTJEz@4|!sP9f0lAJphzJ5Yv2C2MBphQdvTRu%evqYI5$f9a@W{Vj(niJ*5kWz{ z3KLwHa{eE`7zXYkaY;0{VK1=0*gDNn&SXZv>Yg!}V1qB=R$lmyoji%4t6w0tJbrGx zw@u2e&9WMF9&l#)5bp>b0I~P?DAp5>di6D+MGKXB?!5w?=p=sFIe`bTTi$L$&bRfC zvbLUw4+{V@LIb@-!Ip)5~#di1i_h-IO=`RELoqevm2kejz-XouZg;P{tDH_T#aQ50qgV`J%=@T#PFd zs8{SCu)|D7pNwONIFKhTuBcqE>We2GAtSXy zsv`fE7w|z~V(VQMXSqapR`|_%^*`_%I1JV-KKtWvbkJ%% zgkmbcTw-nZqm*PIV}?$=llT<3hH#+6;h;eOuCL*=eG6)I@KwAcL@uNg{o|2HZy9^o zhY#h)YqkGS-~aUM@QfGk#AAYP=~g^IM<1H@ zy2LF}E{eqBkGtU!2_*0@_!Sw6&w8%14?1w^Y z*l?>$eieSO<wYY@jZv{1#x?p)= ztlH5&f!jF4EV*fTy^YhBHD$Dm%{YjX?;4p22^I9Ug~+Bi^%uaJwdo^R9#Qcm>IYJPI_S!WbN@&s z0lyWf;ESAZYyS;6WT<uLe_=7+G2*0l84NmAjB&L1#`I`$+i~rS_4tUc4(rJt z7p_GqK0L9JTTziPd6d+ypTD!LgHT$Tw4j9gg} zIN)+UJqBRqzSQ$u<}wMi$&GfU-=B7D9yg}W=ifFS7te$(CFXyQ*Wqan8sYg>V7}3* z<~V$C%*!*8etbBfR*uF-b`E?D3p`XtTX>+uu{}CDsl}dE^<{jcGatN98e^@+v5o%S zyeq)gRJiUyi#-F4P@qtHR?t@hSl;-mQ~PmOn~QsEp4^Nh;pt1tV2qX4s?71l%;?HOxC^D^Cw}30fc$N9-NIWJL1jg)7h-P@_JgA?* z%kgn&l?BetvWB9A4%?1cQ4b`56$F~EYLmLeniUhAxHO6k3I5U3g^AFVx;yqwM}r?w>CL%>OQ+3l)G<{ z2j|;AhrYTv4+8!MIMc+f*Wt>#=Ib?jY*nKIPO|fFW{Eoo{m}x8fj(W!`xAVDq4NtVmZD=qhaH2fBDKq3tzLNk_n6DE zA2y;c{-RV=_nG=J7r(GfI zA%qn*n9Fo0VGEC~?pwcq4-GvK6LAxZ8j=nb(OoHhV^PAz#m)U!<7A^8^RzNIq3+;| zian`9?f5I899G*~ztfns@SVBBUV8BE!${v9iOazOJYFoz{kN&V(vkz=qCKJZn}6EZ zL0oHm`@q_7QmvegXNQdR*)6D1tu|35vMyr=1hfnnM z8HxG%N-#IHc`~&0@FiTds=v(op|5x~xR1j=z1NR-A|lmCUjS;6p2AQZH5YdlUpl)@ zGe!1giEm~TrASW!592RUo8#Va<>uHa9sl_|$1u+?DLWmV#?I#tl#wg`HmQXJ%Rd_A9Ec-R(`1eIAca6vrnq?UzYd%2c9(T(R zWWweFbUOvm?J<3hoi{7HBiV5utQu_uEZMxQ8RYJ^2_vqtp1$rbn{yM>6%945x^#!; z)7KxMC{j~jB;IzVUWtyYG2a`1Uv&GKuQ;9$kN7-z2vfQq+VV@1f=R|@z6A>L>{h1e z)^PmQwe9l{WjC2^X{l{KVgjn?OD72bjlT!`OU+sIs7Wwmk>zG>TTgoSSFDJ&g*Elp zMZ2p@{6M+4b1X-5GQGqauCkL#!v?+dE1z{YBgEfb6*kmFKoe2`OhEjvgKuf zC+-Df0B>1H`kO*tYbD59ZBfO@lmR=AeC&oGAsMHNx&xh-n#$^kl1h1e^y$cUDmh(! zj(LvVsg(Ks?SVqd)z7otS!FXQ$T@)0gAD%Cv_i@X>L&j@KpWOYN|O;;N<(!~af$GETjU|wM(#cfZC zE^%V|j6(adE%Z1q z@NARGg=ygX`f&d2@DJ({iGY$iB>xa&u3F=6dC%bUf{F3neJ53K_=EAeNN=9a?yI4l zr+3>%Gcn%xAruX82yQKH&?|FrU3dBH4f_?W z(~sdDJhlZZ`#;q`DFwV~cXuo{@y~4fBJ37{$Jzl)ti9^q1nEfFWd&ovG!7&@c%RUh%9t2W4x zUmf%^>%E4&#E+6|_qQIx=juv$hO;I1V1~%~kB?8${P{ky-quYv?H8ZtC9c`;Pba7V zs3;_fLsfcXlrb_)B_zpI+vHiNw6R89CVBg0&ly$3UzTbaVe0qS*&i~kEVE}N^go?; zny?BBD-4{F*A}nV&-0k5J@ifgyt+iB&-@|xOTy3w#GD2#%lnGQ9sZgAV09|_7Eev% zE{7(ugDV8~X5!2-Wxit!uWdE_;;|mnqR-*zKZ@)m{_;z@M9A?ugG))zvB-p``ilj| zr0c`FkaFXDiVq!;WoDU9f{NRtrTr2|YxFh?(jv1)v?JFGoA#M16O&WK8P`i@WA+_> z(;7(>MGSeozk`f+I&mHbxC77{yf)?KP;J!^wtzSMKRx|&KieNi^>-&;c!L6^<$cag_kGy(1qCBVf-Dp9S=QeglVtWDve(|Uq@=_+>9X8L zzyh*1wAjU%iI}CeN9PZWa2ECYs7h~g>e5jb_V-N?vcnPmUSrXvOjgn}6KK{r5nM<+ ztOzZE=towEL4b7Sh)ZF<5Os(Oser8nijX>~gVQI087zvm}ZSDE9epKqGKccOy~>)s`4I_v>PB z^8>P-<$j>CubiDMv67^;rWG}WE1HtLwHR*8zP2>5`0?Y*z{B{bK3BW1WdIxil(nwj_3-{s5Y?XFS?IWJe&<>6{1zsSppO}Uje zl8}|@)5DTz$+v&{z{{F2wi*$uzLwK=1;b8Mkah6@;7x-d<`{Er>b4eJAq~H(OB8%dX4!}& zWXp8Uwt|Sj_3zCW&dj8uN@*|)pLz*|N62<;yOPWXM#Pm9&oX{dWnNvDrbq;~2H9A% zs`Y|}n}xnE%tHcQFlszFXN~fYE^K{GZ!xh{iVRsC{rPIz8Xa|cO;>F23pvqkgv@&HulJJJTjv7(GRt%-(b|m#*kO#j z(X3^$!99+GSHn9}Xu8;;ei_MoV?KTT3?jK^(E9=H*`k*5c1dm8IM1iR>vu9z@&9%4 zGLO@rUp0M={XLWXgK({HsY6`u$N@df?fU6jrc|XGCx6LV;7r|96ksOOEN_{|XDIWE zE~A_aCYTrNY_#%JuWtgKY1`+OAF*d;xOo*Cm=A5g|3E=s?OGo_NHM4LIpdrl8Y8ot?qjIHIu#xU`ewU+`{+sjWXJx-DrKB!g{?2vB<-kGEWqQ>< z#Xyp(Rk0|HmxW&VcYX(LRGCiLAFOV%76mo^MIM)#am=pIO>YnRsN3r0`NC|g-`h^` z{snxOuG18WAF?j%P!)B=?$p_T?j7#Kt6BWs)~~U{;izcISJgZls#c!e9a#4jwdTXR z_^k{7v1sD%Mjqu+$#p)^G~SWLs+9E7HvPCZLCW=;(vKD*%^zNJL1KL;Cr7Rgtk8#> z&-R~I+jF=bqN+xp^Nxfpb@(=>poI5dUd;LrS2#w%zIb!rb$hEK=hg!j3U1Ju(s8Qw z$AQw&@*>>+Hiy1tEi{@VS1CKN?){szN_Xk4XK=ig>z=%_&oHWl60ItO$A*~Qd5jgg zIYFC7wrQ!G?^1_dJWDz30M(Ov_my1bQ%}i&_NU{+>WeR98rZkFY>q6t{Xcj^6m~0E z_709PLHDhC9A7zba|Jq~u>acys0L)PR{K%~2B(CG>MGK#EMV!PwUsHwo}`8u6jEoZ zDp)yr$6=(ul1dhAF?qY)R#C2?^m}=7MoRVG_F zdp!y8jKM;rf!yO7UPa}loAp;Chr<=Hs^kg1I{>9Qc?DnVyWV-Gj*zCxN@`xx1*C_< zjm9bGqXjCofp#@BXKs7Blih@%V@Ic$JojP?=x6j)m}y5Gp!@V~Zm6?xnw-o3N7Gpb z#nl9BcyV`k4G;ps-5nC#C0KBRySuvtf&~p8+}(q_ySuwB>^9=R|dE*qCG$_omImSO7Lx3^g1McpcJ}*P)W5`Jd>4>A9B|KZvyACHX62~UzL$QF3 z`^>gP-03hkH62>xNx-oTSn#zm>re$xZ+Dvy6}Jp{U3I|49lN$o>s9m6r;WA+49JCF z(q(Pyh@`G(OMPCa2*?L(ra4or=gZ&@ZACWlxRh}LlBU`q`E7(yMWgUwEJC?Lmp85} z-f!3`C{fHqcz+BEi#G-48o)#7>@1RL)C_8wd9U1d=%`Hr)XPP!Uh6J=rKu_}z8Up@00c#Q?KyUR3z(gy>w`d`Kxk1T*cp7MHB!Z4Ho zlO|RDmvIX?0UhUMmHq8!?SSP#ItY)kVg8fP_zw0#duRC)mM?yP$4UP!^!Ht3pdz=; z8upkuuy8~ovRSYHA|FotE>s@kuyfhU77!C8r^kwi;~w36W(#vW>*mB!M{rjadgCmd zRpPL>0~%UtEIg?#{eg*JSi1c$?QGG`(4iRsHthk}L;rQqg2iYe9>LDDc zxt%3~SFffX&&utULGrL}FzEm9j*puG-NOIMUzYhLSW4R&)3y2A|81q$wio^$#FA3o zaiW4s(H9ly$#{jUz}TrWO1~y+9wL*7^DHM2y+9nXaB~cJfZmeIuH=$3Rg#D@Uan$!CcAt_xR^FVM}Ea-@o z%K*wYt3N#5$U8svp03aY8ywvF>@}k=ge!nBEPM;|--lj&sSK1m46~z2$w7J%LyS8U z#4a@n)w{@5{rpNkD;x509%zBT<}Q#2&ZYl8qIX&U`k8)BI3MzB#Y;8^ET#{E33QeW zQ8)0~)&bzpB!CC(hW$k)1eNO>WYd~Sfw^&9UA=hJVv8Wm2|DHb`N^-6PP9~&I$x@q zsV#N06yeyiSDHy{B<-3v6^IEhz4V&Oh!!yvMXWybl4I`U1m`JdA=*sjrn$e6pN(Kw z+f9D4Fs-^RxW;9v($0+cM|?0JO-n}9v*1G5k)l@l_FODq%^GzwhR4X{vO@cv(=a1ELk3r35yqV@~zs#Nw1Q#nh-%fd5WYuK}ZoUx}Ac>s&$zhK! z{~j6kqGZ!feh+pIuo&(JGyn-694NtSym@}WY0Ue?G# zG^6IkyRB4==R&Sfc6sLb(NcHI(PJVI+G6J5pna$H9as{^Xn>k&tU_!a6;+SX8^^LL ze?Y*uN=Em#A5t!IeI29Fj&ZYX;rRaS5=;O+p~E5&*tbR7!k>@H4Fz6*KI1WYzODnD z1;`re(G7D*QIe2CjO>m`{!D&STlV9yIkFw{k-Kb7k5-$d&3;1y!cdYRf<={aa;%ENwMe zrYW`9d|5tYXGU4>j;9@SbibCnkRYeV{-6lhFTwH?$qX=Gn1tVcO=Q2fHt33zC3EP9 z6o1UBW@^{%z0b_dM6yYADMK5qQNhL2fWmdKL0Ej~gDZ4G0+vkrl`YR?`LgT#4Ks~( zKz?qCADRAO59{~$7jfLOMyUo>x^x?fdGJ)M-sp#hGW;+579NX^7~;O`em^5em@quHVF)@4NlfwdSE!x<$vHZ9Zz^MiDx z?wMWeUtY4+>EU6(k6N=UB4{F`!X9nv=94s5BeW2cT(BfOI5GD0G(_BXE?fKIYvK}f z!`zu&Ez)O7vA_Ls(8!@H${P0mw}ZZqI~}@9HahHw@|(^toGKbXXKmYP+vZ#9W_;1W z^!w&XrZ^|Q3?;7E$r5c;T@xmH`1N}ECg5zemW}6#7YPkkCLQ`qwLXs&NRS)zdtgm7 z^-Q|F4(+BQoP%L-CZX|{;I3g-SFpzCwS?!|nz}(Zs|FL0&c`6@AZ?au zzG6m6vS#T~*R1Ns4ijYizU<&_EI0UIU%NPwYVUAPI-)xKOh8K#RFV5B8<`Z0PKq9` zT#*y-Xi4P3W{JUza*EU!tM z!H~*H$e0qq5L3a6NIKdJNUF=Fys8#+)7GJj7|B8d=$?39K;;G$elepIe;Uu7i*22! z-QM)=(5UfRhJVDj$h#C9Vz4R_ZC&VKSHXCpoVi076WYEt9`LN_2#bf19}<9;{}%!$74bjqGOq-R~F| zY@5F22^A(Lj#PUVZhSQ5f|s-hV}sI8DTXN(5rinVm8<>(R!sB(Do$pZT|xDSWkv!m zQLEgTlj0TENHw*?q)3c_z_2md*1(3 zro`)$+))jBeJr_*kprn-Au%`4f(}H+gjSQJ^`7~G`Uf|p#An-tqSHr8MLndC>Zlc} zYZF0X_IJw=U$*k>D!C9yDCow60KV_k4`4}oy_1rBVAF}t#C7#{2>Vy z+_WO7E)mc&eJ}wnLfE&!&BJg8tV$jO+-(fl+#md=Iw6#@0cQLLDt&U7&IU%+WKTDk z@)F^;8B?fa<)dHGUbHOiyA6I1_&Eg>a?1%0CjG7}M9$yWpX|-kp&p+pvV@b(Po?iU znSTvWd5rUv*}uFpoiW>Ikfvcj^=E|PW^M24f9V?49P0hu5!kJw%K4*WA|H6Nnwz-t zv!c}&ATR3JX3ell210(PknZ~ij2)xx&&f)&SB)=4g4uFqFby7SyGnI|=-;hiS;q zFu2tqdXUn!F>3P9J-}kMI(x}!+B5Yc!rue3cY`_iSy|IzADk2#k8)l={xOGIXhHH~ zPE1bpK^7DQ8f8~5#|$WOpoLb%q~wjGk0PW*q>lU%MGY3FKw1fg8Fa3;Maid?*n)e4 zfpXXyN}sw6&tIVYDoog_NU9YkS2lIIZuY`5E?;*@Oh`1SEZf`unMRlswV?tg6F$7b z2d=|)3g?0;QG5_l)nrh61$R7gt@*m6=%qZWcW)DahpC!8b|9}fe42haE&d@nw=F-{ z`I(GR;&!>ca{;i}hIH@k?T z+C~**qmwFewv8}|vSmY(Y9^ZMqZk^BQ6xvnXfxV7(zjoffH)U(nrt(6%Fh1kY5MR$ zLP~-5GT2t5RSATrsEJaPEq*UY3oA4UsLs-N5NNdbyA5KIv5|*=WDhWTVX7f#+$T+) zN0G-W^vJGpHg{Q~4Nd`#>5EgwnrY=ZietjVz3WNn@4xK}YF#h{nl^8Sig*24U5T#q zRIXM>Z3v1{oS*3Z(J^qL<|Q${dKbJ9JUa9GK8VBEz~56h5kp4i%$(vXG%2ILOKkkO zL=lOt%`d=|OC(!@hj%{&nl7EJQOT@psA>YkMlBudSL3O^b-ElQBk^DoBI_>FtL=Cq zP#E$=XsM-sP$$I}C$3fIgcHt*XVPA>!CrYVeiENoA4)=1nAhj*7UbsP!TND&SOf&h zJY0=ZF-%Fxe3hSHq*U$962OY1jXf~cObD<4I4NI!Xyx>0Ww&dkoFpW+SzYKY?FsoG zq(!Dck)o%MPBco1?UQTpwW_fB4Acu7fwrrQTNUjTCr}~|s36KO*k!2!Yhq{!Rh>ab zb_Ip+^>fkxmMtf&N)u$9E{Mw_$s^|ni`G1@V9P=Yz zA1v;6y%YcP7B}SEwJXnhm=m)p^K?2`xgc}GEwKsD zYWb3|zyJ|MAoMUMw8~`es(i+my=hQ$WjdlYQ^Ncpn*=*7<0M|5g6uJvSHM6gzRfD1 zNjY4qi&jfnch?n%;S1gS)>P9`7o7JlY}(i~%rR*w(K9UuTl(?Sm|-x#Lq-o)n4O`N z*$I1o4KIhnFS}&axY%qQ2DB`5l!Em4@s}=K>c`mF7#gi|Dr|HbawLgHG@Hw_YVCCc z?on$TddAFv-6^XDh@B~W6L@V&s{a84Yc=V1(LrP`_;O>2BOLy|RocW6(cXvXJ5~J5 zoEgSm9?1o3S6gi71?Piz+;@KwguPG9_ev9nCX>IJDz+Oj2YnHW-3ppV_QLH9LmiGk zI7zDFm6Y}V1A+2?DdwI(%)^J&V+h^~mSg;3smvzugHJiFO7gs28;I6|RS_-q3P?~Z z#6*QP;&0BWSDfNx4tpC8&cfo-cdpfq@Ei`@^UY8kQ^NH49+U=aJkD-AlmsiKfy7-@ zX1u@69z8sL?qy_}#iz1%Ex=<<2>0D-@a;&*vZvq`e7K=-><(gOWrdYXQm!Nw1u1|2 zHN7CMlgWe_bYv8Eqdb?P_61k+PX$_-RqvcDY%orIPl$RNy8%*arAD`ACD|U`mdkH zC8RT=fcrVxyJ%S61P>NChStHKL85ye-zyX9FY zTgMx^m^|j1OEzD|=Trz)O2{o^gzmvC*TW6c0B( ztfw5;M@Bmnk`oPvnXs|Javu^Qd$$pm*m$wZwP_U_KlotlK6+}RU2;!9t4)ewz+;_M z1|o@Jq|OTUHX;jk1@UL{Ck zaU+^XRg$pE!<31C_unJu{_Qpp)@D`wR|V@^(@W7*JaPSifI{Lt|JWCaGp>z=gGdU^ zuW&XGiuu^|tS1d$h+2;ZUlzC@M)A%LP!I*^ehEysmb(WGyKmZCnG@@m;!rOL?CewqW4+9%nqw6RgoIovq(D4Y)Bm~NjI?Zz;m+)z@Om2(9t zO-P0rQ{tlbvZAS%?}1KlhnWyBZxfgDzTb}ZE#pUXI0v=bl}2Y|@Nl|G=x^UQ1b_%j zaBT0qbX~X6qugk5s^y`xQC8tua>S!B+PX#B^>!glvM`IeV32BMti6;-WWnR<#jv>swnZK5TbO`ZQ8@i8u=7mZwjYE zDEH0&lM!~{3ZLy{$#0PNAAi5eY2f};`X-)Z+LYx_luhgJ zzKl%1*4o4PX)RsXzJ%xIxndGdwvNq;irn4C%OTD*GZA>^kQL$P|nLl z4|&?xC!6%k+R}(VwK!ku$#~2O9CGylPco{d)=yg0iwUa2Un)^9xtNM#D+b?R2zoz~ z9^q4W1T!T|H=_M%Yjt4dM7sC(ca1W7c;J<&6s%|=oKjrK)rg~ zTVWsn{FWi05b|#}K3O;WV)xWn=|bEnRSrSAX{xlMJs?0#>bD{fK@d*@A{L-eVJ^8) z`yx}2Y4sImDP?gpg8pPiCI#q*!WsY;6ezFgeuKqDO_Dr3XOf|HUlO52%$QKCxdXde zViQol$f*b)C1Q?)+`t|KZG&$Fe?PDd~6iJouIg+4pb6 zD8r-OMN((ffDQ6f|HOp|9WTpyMx_eXjZXXiV5oMusf$@M?Sn+iHk!h8yKsFO^?y(|!2Z!^*5(1f{a& z;Gk?aFjQailOW=v@HD+q_v_p zXiC@%hAgf4_G8N(r~@AO{OX)O@j(^&bk8;X9l{H1dN14uD3H#;_dHBS|K?A_rc;-C z!&Qqp;xscq*5oC||K;=&xBjMzJT&NkOF=ukJiG$8s7-O9l^ed{kP7%=7rrB{L3S=X zen9N+vbsIok@Fe6Dhu;My2imcuImAYbZM!=IWf8#j)V!4xHo{Pk0?`>@D>bIeFov4 z&ek$Hpu@*dCctSj{=z~ES1HxRw2jW!W(W=raG(vbE*wdi0ebYPi6s2Gy2<}$w-n)3 z%$@9H4b~lNPP{3KgX;d@3!wLMDKl+R@p+<$RbH}JMSE)-<0V&pIB1#+FV(7t0#S5Y zy?=)d7e$Jpfe}|K&=#kbSbv`KE4%!tG$n3O9!a&aM5?c{^`2Bw2_wG%f1Wiw@1RpP z6A5nJwd0*qhUZ#bBItRh?AHK&$iL1nZudsLTu4BA6Zu$)RF2!WFhZz~{;wkOstqIfn{D_0 zGh;BPo=i>mdH(@ca@6m)DG;zky8q6PD!=XtkzsMu+XMA0WwYkZ?6KV>tbVI6o*vAeuKQWU2K~auwkOAoK9UEgh_R5TX~+BB zi~BBuOMzcoRUV`gk}dowJsAm~G(;gOd{wYd&vbU)`^^WAdZ>BB&Fl%Bdqcqm@mo3v zzGVIR#p|Ts!R&)Q_`tsDTgckpQnl~NoesvFhaN-3iWri;AEd2BUf=w~!+4__|Iz(p z?j{^97KZs{PxBSEx`vezH{6h3QqfnaaDi^s?@P&HlI{XLt7Wf$ae(hD6HjJg0nnDY z)#JO%NToMbwFqY~i1|yi@yO|7NZRb44z#B)|Yr zplsjwVC~J72YK!?k@eWM7cJ5yw=lN{#OHWoe=mxh$;puvKz*N?9o#d5~Rs_xuw4@49xxWwyo5WuT zi`qj#@>iHf#`f-mee~7)rpi+jr4(zXS{Oe&*<8+;cD7gez4fNs|AnFlQ^j=|u&-^6ZY0hyuFMj{DKsoAu4dk+T>zhF#-q=??o-?e|~%H#O;nK%yf+cHi$B?Wc zlM?gq)TFMNd)N6@LbBeoKbvp&;m~NAcfKEH|5-k72qz>aw2AOmPF*$!`@AKE%Jar5 zLsw3_FVos#A&djyNZ#Sb#i#Rm&F@<9V>Y8t-Cn!s}rCbjEl}ASJU^Lh(VhMHhd~H+%vbh zFxX~F9v2Jv$<|QJUwycRHvRrBJ7=J#K*pG)6=8rmQMQqZTG;R6IBWngqX<81u%p#i6i4U|9-*BlLRb&Jzl(hl&9-r zd)mzL>&giHgK^v2kDZZ~>QOy}s-N4=Q$8d;KHtStxnGiLsy+RALLyj!ukJ$t8WW8( z;3cT)UgLrcb0oAbLCA@?s0tD~(^Fi+fpf#o%^I8u%o>=TzA4p$I`M-TE%Y*kYDpq( zQN=l)2m8CpYAllzYaQY^$P47ycUQr|?4z|&d@M^IdL$vv6w;1vD{4gF0b7*0vLLoJ zUER2>;ZJKgdir8a)G&wloq=Ca0RoU{$O`%8xunB0I;i_HIdORd9&}ZlZDPI*RLYlU z?B+E(tG|C)$=EkN)D#zZ*-6&=9Cfhd6mG|ALP#!cP#if8g4el_bEMv`adKM@~K`9{Bhnos@Vkv+$_PV zqr6(49tBle$+{<)hMcbpNgixUdovEi8F??;s2TJazRw#92*RL4=2(^he}Azwyt3ym zNjS#IA2gNAf;QJGY`y09GrCpy4X|*jbACE1$nmhvcH4`EGPZPj3YvLDP-NTnO!)(- zihzk6iDo15-^~nk*vo76Dqm1b1=HM$@fU2lpoh9(HldQ)z<8Nn=E?l~iq5QXfcq99 z-#4}pr~xP0K>c`@%G~hHI!RL+&EFIs>m3`kENQ^#u!KjUq391AXoMLy&h}=-RwWP| zcA`LLc)xq;W;DfnBpJ#pj^6p;--wzxcPjOptzvKX*SGR#nft2AxY9?Wy?>v%$^5^d zp14KS-+YIs#oD$o>|Z&+w;q6=vxX}xqa;L?xO+C@-Tx7pEqv!zTvOA4R-q~7nB?K@k9D=*2677B5*l?Kh~UgTA+qzR54z| ztksAXbd0S;=@0g_(WW)L3HmFTloP*lEI}1HO*nh@ghv&%G{xX0h0~zgBayL9z9mWt z>SF2<^de7j2vVU{dwypM{9L7pZe+<dwf zP98UIuOI35JUQ(|zHI+DV&0mYzb1g*zzpYWLev>8g6?_XJv5>c^Gj1lW?GRe`=yya zuaQWE6i%gVVx!y734~$z`opEL&G?AFb!L5ObF$`ka(MWodbtK^OjeJyoRkWe(GhXE zdC>&6m3O2NPH5d}E#6-%QFD6={XwMye7SrS#tpAG4UEw^R>4T&;V`CA?JuZxBPS`( zI*rw9^91UeIi_4khLdOsZGLzIZ=_z6BCA*8C3R;*3Ej=q?KAN^3Lh=4l0)_u+#+U z-t<}NOQd~)#k!Q02nH!WaIg>xfe2pctLr-kk-0wBZ#dWu_f1OktsaT)v%^lRY)-op@@6dO0V zn>c!7{77fIMOKxGT@fQC079$5yXtqs>A>xggPvCB&9AC&j`5G+j@7MhD)3n} zB58W}!iWTbz*I103uAO)U=y#3mgsC|gH+0U;l-fT%kTnr9ZuHZV9DFpvGKs*foK*K zg6vk0LLw2v`ZO`tCb0?1N>-?I(RE7j#>k0aa}QEbo8u)}qw}2{KCmTq(wqH$3=2=@ zTmHjXjG?IBHA3(ysR(rXs)aizJ!y3Ox+$K-K_o(+FQj|BVpkI!8(9MpCv05w6;#ELg;&xmTbU}gE{avTc-S>BkMmimPa!HKA~5{r~VA+(Yq!ADp% z$s%Kl3n+E=mS`9S2YV@pks{`o7Zc3yFBg?;frg+-Dabm+Q7Fm_p?}U&h*ep#&zjkK z24=Ozkp#6`M9F}rUx(FP=;e>!a zPs*=$UUCfY4du`%Rn2YZzuAY8ri#LwuGo{KKM*E0!3pkWn@jSo_8KHCrS^qq%sJ`W za7DcyAqUjLr`tMSuQT4p1ua%UmIvp_r44g}pKX=EGDHH=?&bt(f0K`KBOUqUg0t0Y zt;}9dc1UB2h2tze9}_611N{kEDtakU#WLF>?G$Nbpo)J+-tZ~&At)XNJ-GhufN4}f z_Rwl#C**&Hf`uRKDMq+jSVsUhC-Do#Lh>&C-O*(`!}?9d1{>hTznDLU_mlN^!<%0w z*&8@Lx+D>amSo<%kta)#1h6)t$hJS^SjoAn%jNS4fDhJkl%4kEwZL zsAO)`k_JYmU?$#CR%1(I^};Y^UQ~ryBL*%6NQ8u)J3?=_3T<3YkDmWEy^S+5zZ0y; zV{}(PR6rU@TLf*TXM57cp2kVT>jF>2;?dl3oq|~Kn%w$a!`VYW*Qh*5mQLKa5$Y>* z`MmN`4k$;K+RGuwlh+gEp1MHEe_`H~xyWu&Bh&a@s3oF5Zv6^9yc;We7j@YuefzioLd&I?CY%O81ty)!EQYB`#0im2N4(LMQZBAp2Z;B0Y?r@GvmCnqA8I?t69oKv_7F*zrby%g@2 zUI#mm8h%0LVEMEnkU-Lgn5PPFXLuhH0dM(18crL!8s|jpy9okLf!Y?n9mkLTy*=Fj zO3Nejmmp%*X>*Gr$2&C$Y4oN)S*J2$qgB4@%-QrYG<5%dy> z&+bGi1DFo`bUTASa>W19?a!d{0J$-Ukh$JXo!B;kz43bGB{_^4dk7C2YhhK__ia<8 z>C$VQ7I*?*iI0X!&Py{q~ zE+u@tAISl4_9M+YCbXym4;B;_lJ!aJ`l_J|$QIVSj~kmZp%Bn}j}MnaR9E>aKX003 zcTPvdB<6s1TyD(OxV17SGzA!T-Bbo8)gO$)X<6QQhRzPLm@ff0ngnnjQ zvh*Za=p#z?Rbk25k!)Rm0R%)f9eu(lt;A)P?>~6Ld)E2Frsa@K?#T)H)SBd8eruA@BSynt;qwlR2%211?#)!N<_UDDEJ>PA7T}4r8 zLXQ!mEQXP{EndTy(6m%R40K8tm?9|sS;XTwv%pjUQkH!P5oO^ z{3!D6`64s>3RXca|7IQRVW&hgo>IuE{m#@ASX#XF8L+~7(QjMkmRNv#@VPisu5W?5 z)I&>sM+l$>0ShqDTaF0_wXGb{jZ;}gnu@D~4@fq|YRYTU6%p`bZWW6dPYm$Tfm0{O znyC)~DpQpC00v3@69VFTXVlR3EgD}XQ2daHaK44HyI1i1XSk%>zvJGu%?Ft^0t2o$ z;m6B&t&4lDDgz`q@RGJ~1b_&E+x2QN-eE7=UB?}3OMp^&Y8kJo6!)AiUTeN+)w~f2 zJgP!48fNpC?C{F6DQgW_YTKiui+^Y3hBA2xgMbu1it4R34k;~F(>h_J=J3JPAEd(~ zCA{Y)lQwwqOdGaivN>n#HySCHh7@cRqw&Q(U8w+u)SriT64)Nyjmu)+Qq8(+r^c-! zmiZ;1^_Dgy8k|6O4ngg2fTd^aC>?$_DqpJY8S0}zxo&w4&qvqfOL~MUAy0JOe3I{* zh~|rp30ZCMu@LV(-EhYO!Jy~laO`! zqp~q6UOKGK@+8ZQdDd6QDW?;qRhh*IwKE1<64p(JcYt66Pk(q2p4|A0aJe8er+S{x z$<+}(u)t#J)=qoISoQWS)_tG;?_u$efp}TtsbuH=0#uL$6_PVo?%~rP3-<&iArwOh zV*dtK{~Y^ilWHmA=JMC(rq)p124vr3JGEz}B!E_kI9Lvpy#EO6Cd|R-cEi+b>BHt< zyEz>c!9?6KWuJ4vMV6%ooX%JOF|r#1VTgcRhlM}nLXY=(=c{(6KWMg*i2jcivFYM2 zXhSUOP_*Q&+p!uArbx_#N+3)c>-I8ll>6_;^PL7XGM4Xa7 z7Hqbe*c2sQL%}aBaTTtBOs&MWXMI_kWDp{)q>V#!Y4mSJ@{CSXWOlDOCGNAL+g6Me zgjjF@01N^1F^Q3@2X@}fXB!EN0~=#|0ttz}gdk(3RB4wJqCe*u^uEU`;DGU`*&f3W<4a)L6LktXxPnpxJ3nL|ku~#6TI+M)YE28h8<^Jp*;}(5NqHgu z+)xK(GpP@B#4LSZT#Pvkr5n}7Dz&Bm*dxAgh~W-Us^X}n>8}TwtwyZ-cZfmg$CZvQ z{2!lSjC?Mh%aBJKg)D5Ed`2+j2K~ozr+GZ#0i(z2aGNk#PEh$n+Na0s|9zzQJXQKu z_$XO#3tEmB$vM3n6WoX>v_|Rh@_hkHNkFp9o7t}Isvm4c7+?z&JEw(tgVYFe#F+5= z7Gf{ih~e%6QbFMW1poi7$P?jE=zTkPVP$z+IRd(~|nNOD{0r3stkMnFQi zF;0|vdiWsUNg}efJA@G6jfWEGLa`zpFM%XY^@y5>t!PwHQr$Z%bB#l+M3luMeA3w+~VJsRGMBc{zGEcnF8^+CL+Z5|iw$%-0y$G~e*0Q?gd1mfMgQtFa;8LI8 zY!pN9RY! zM3ma{-yI#|`~3xG4Zxzq`AqvnHi2zidOq0!kTIY#`I#cuD7-4;WE$qW18B95yobs-FWky)7k{o=sBM_ww&9-@#0 za(JfztF1jvXh^F5Uefmo*xO?8$PTwnmqm-+*?KjUX|2N{ZvUX8J{TaGy3PVQsdDTU zReHoj4i;^)&&XMf%Bgx+fCza#8g|e052R{-ygVXg zJiLLHY<)AiN6)4n-$$IEa@cQy{;=Hf^^kdiFjcC_iJbj5dupB=+}p91=jXXNF~Zc) zZ#6MJvxk_3q%v1SY(9_wn6qZxbbCo@Ck&j@y#Grn;``!D+)#y846NR5K_KENIY}{f zKXET|r#gn|+av)xEx8BJC#ZP3j)`A+90bHcZyhXP&M{M-1$F^>zqhB^TFQW*G)RrZ zU&1vHEZ8_%kB|my>b5r_GE-E!yF`f?ABIqKL*Ng)#Txnvyfeu*^`TqugF%i#^|0d4aHcZ~x(sFEi{oqV#IN8s@4=X(~8avw?l(IIT{2?+AP3r@4x0rvW0r4Tk!1F3yKEHa7L>X```q@}hkpZFBJUT^k1WEs zMCL)<5&{Jb&QWEaOM#agE#uk4XxXlJOV?qHPbPy(+;F}x>mpAQip^JZ1D^m-A;}Ou z`M{*iY0*(nI!yTaIrGySlw=gqPZO&rFce@*(aaqYaO|*TitAZ#30wM=Nny9XIFTh# zY6{)mo>nw=R#n_`k@3TRIyu@4F(X1p~!2BNdSS~{;B*t zTuJUihr^76H8(xWz_JD>8uZWGslN{xeW}E!OQidRM25yGIQd^i*QC;fQdm*G4+Q?> z;qjShdqwR1ZI2ic_=WUAI!FBM{Z!!@Yh7-(K7Q>?^}c2kV1XXNN|YD4`kP(8$!3xL zJC2P{YhKzI78y4Zs+u29YM48(6;NTNG;`&JZtid67hv9}{a=FCZQ6lf(quA3+<#+w z$od|*{+kRnhc`Cmc^Urwv11(-zz^9Coc@>p6W13g=r+1iDdxck2>@x@K=jXUmTeu=NtIx+_A?e!B0qYWdrFxL`P2` zd*^K&9F(!Uvjfo|Xgbz=yN6jV?nM~PZJ@fkfb5;OoAN_ax-oaA3|)ZNzW4f-R%JtL z%L@&2+^Q6tzMxM|PC@qhJZWb;TN@Z08e$&&bXVtLH3UFBN!JSmgQe$%5tKkEe!Ewv zvFeyFtBZ5+^-bc~@skLIf+#vHNI)Zk^s(b7QFwSApqv6YJb)Jqc@I{K+r)Ky_IfvG zuzCBif?_(#t%dF^tLK351;LhneMdbgkdPFaWf7FelZPsvMf8Z9&9KE8trk<^jB` z{&Rs&jMrUH`_>gUJtl0)}CtQmvveGtH_1d|O$V?;<~0TEjg0 zVWh{Q#`^Hijav+trQ~4E(D4C?cXVsuG~hVRmS(1*hI%l!mGxAC$hN`oP{UvU5_8fe zyL#CCt9QJ)ok?!b;lb49rp_rh-i{kz)U9Xn_Eo4CUPNx+>jBG3Wge@GbNIkB&wCK0>44u^TJyk!w>pcsflcetvg_ra z7#@Ur?QdA;@TZ=`_51S-1ZivFG|o?qHK1D4XS)Bz-)lIFwUTc>{YejiQ#2MwAQZt^ zX^rVn4-iNJYC z^Dr*Ggf-h4<05e&t^PIfBED6*=bt)ye!_{$CN{<{0uQevAc+X_ z7OIkn%=R{X7k`{V(yN(Gn2U3${lq^;dtn`lqIiBAOm-sZlK(h5K5qMAEVgEi`}e>5 zyS6VF@?@w0fLg7<{W)#5ibH6hAk3#Up3{~{KJvG%zPothq~~)^^M+VdT{|yQh&eS|Gt+0vMUVmer%$mDDXMhAhk*vYPG^_Tl#;1 zWO&fQsqaua2(?PNp`!sZnDid*=J)%F$B-xG8~~sjWbsiZUD^aefN7bJTzu^MCXE9J z8#bfPruTW$`v3n$es*aQso|0LKK}3XCIW{8=zg04q~jQDT$AtJjb&CiZ%+De;BX+D zy*XuBW{ZXc$96gQ;sXHFGTFZcL4awRsBe-eHD7=Zce|o0u$+Qg_fGm=^^g6_e+m5Q zpZ!qu|3T#cF#G?9Az#bq(cRsRt))do)9Lpt|NY#=wnUP3biFx3-+FH3v1aB(SKpw= zba8iX{b14Ws4PWQ!1E+lWWxq*K;X%4XWKReL4ajho<&C&QGIK*_`m^*i!+YipFZDv z)!$#Y`2IHfyRT^`fBt`b4bfj7{E_wlyUBl?@vm?1RsQ?AiSEvfrMlQa0*59EfQC00 z9UQe4t6p?~r; zYL)U2EdTx3MBuQ43fT;N!I0-|>h7>wrR=fW>2<~Z9DAG9cec9)LJ>A$+`rYGifzlX zJPXi<*9_Hloh>}i8PRtBc7AW$wo|=qvfcGj?MJOYU3{(dZzUg`jl8)J8^({c|9=?z zr-ny$8y1{lXQ4nF6hUa|e-T~>t<9H6XLv2PEXRBS3=MJ4dPh5Ye)yvQRZ!_pcA5#7l z;*|hqKm83H`|Th5JCjfK*YbH}^WFef|Lv(seE9aA_oV;a3m-%OpTE*l|7Q0g`q&7I5o}kt;j?A%0>@q! zKg|AbCBKl(ptQY>?(S|>DiwAXw{086?QO{Mc*Av6es*aQkw^rRB(bym+MQ{nhDVx@ z|NFR!z+nfvV?lI~X=k|y%6))#p9z4&LGT4bZ1AZmQ$H!#Jvr9`a@Gtl@Q@`Ls-`lz zG<+b-G7Q}~-08rP^PzrNrfb_aL{Vgp8&MQlY>+NKNhG);4f_AXpMvsRzty1sxmRCB z@jd82@DG0q$qMlGkA4LGU;0u@{hRea$8q3!4go!Yft~?u>})i3U^J7T|33)#JpL6P ztN)wHFKut5v$GSLropl-`2Bv?hs9#ib0*9#EwUYs>K~0pVcRylo_^PK{NKlo6)8Q+ z9(Q+kvjenRtsoGJu>ag95Ixw_-GuHebOP1K`#kq`Ek1YCG|lt34cp^QrS~;W6FkR5 zltj-pwr#^F`#kse==6tw^h44A_J8;f$o-Rlf|LLCTY$5W>-Dc+Kmf4zZ{9>Z*ACey z1F(_L=P_c9V)j4IqW^OrXeodBbKir&i|FI~5afcG|E(Du{mqX&vj3aOr;RS0R4T<5 zOEenA&dv_|eRgRPgM))uxigLa$M-y7Qj-QFph9YN1N^^S^qPnrAw_5Y?5)BTzIJ2{nvrfKAiVS3MT^c)C)nWn@v zBMVQKWzXW`c#fU#=-IJZ7=kuQI)t|SyVU>t=g;7o>o+|vf46+Vh5`jK#31`*R4Nq= z^bDf9sbI%>Ha4MuJ%_jugJBM!T2T=3NAOPR24cT5+ETvz*&d~TG@ZuE%1Xm^so@ci z{&GCtpuZfCd(M>aCjb4~MEa(uZzlJ-joRz=2X(h&qW+vjKX>mS^_}k?JWbP>xyYKc z+qoBydsnn93$PnaQTOi}yr9lK-S^Qo9q&bd^#i{GbxH+(|M&k^`k#62JE+0y5b?_A z(C6#JzOoNRQ4m51#aa=zWqJBP@p%iwk#Xdz`xuHI!CoeT9 zjIEQQO_#z3g1`151tbc=i>13K5U!YD1GLz|EK=<0i?JN94Hk;#VEGQTbL2=VdURm zdQbiDmcMpq8l~;+zti!5zc-c%L*H`rP3She++H$zMxZ-GeM*sg$EeSqXqE-hDy_`2 z4-=;8;?WKLaCfZ#y>lisOap=-KomrFUa1d9*sviAB5Ji7-i!W=fBI)Eb&cxT^~Zk< zU!D7&-fQ%$e+9TEg6Bh#v$1fbZ7{QA@u3JK#E7LQpVVoD7v~+$Yc$y+YbSg zL-n&U^y2Iz`#oJ_U~mSyl4+=_3eDyGn7>kj@mU?RUqVF7n6zZ5uc~kIjEK zjh_GMv`2n+X%X%1?JUI8)zyWJvj`uhzn0H?@L9XNyIG$F0s(Bg95EUIIUa8u|Mz+G z1mauSxlnIF1g%YNxQO@>cf#B)P{{9sZgaY@(;A>p+#>2 z0=Osp78nQ$B<&%N-2@KOL`Mg`wFjeU3lu%{*q}gzq8~teFkql5Vkku-+p^`AwbHJr zC3ng9dLZZR@R5{OA8iUq0~pe-Nsi``^WMyFe)H)20Uo?(ru5(bK|-F!aQg4Q0X%x^ z0p_m0kgGooLzK&9Mc-<5QHoV=Se-qAm&V3*#Y&-Y-`4AOeF~S%;q$SvQ$AfpnJw7ai^7$CBe& zrUfBIs@P8dXTVU@Ga#Y2g)!ajDDA)d-S1%X)~$WnznlJ=0Xz0$9 zU@pz2^j~=Yo4NXXh{u7@Xv?zTI1XlJX5cuELPB-@M34udz%(HQYPA|VosM#7$8jKp zz{JFa>Ko)_?c*$^yt)j9S3I2I5Ip}$$Ma*0AbAp9pW`?Pf*|EkTqu`Q0E&T3yOIzh zRjQy>R7#m4b%#+H*BfEv)};<=zvp>ay?7DsZ`0JX-R$2@|LQAG@chjYd~&q~e`Am% z7U`$I_56(n;56`uAAN|)*Ph)|KaG>?x(dMRcDooE8G+|{aiRUQ&)|%Yqg<__{qP~? z=jT;9h&z&P+nK1P*XzM?9F)uDjQ-;;B?_;Abip<+$JyF=lA3Mx9H)q52xQ5+Gy|HZ ziC(XVa=EN#QC(6fsaBd0Ld4{1i0ttiU_)(BbT0i}M`i!wA3utnVITJM>*VSG^!oO` z$6tsstXYp?npSF+EYd%>u!xmAx6x=cVB0prFwT!#trlF@jo*EjNb}QW%+AKIH23|u z!I@UNFbq+tRM2j>Q>|rT7{YPl_v=kgPGaTGZH!G%pR9lYOk!~W+5Ru0R&mL@`IXwJ zTKT4C=TSd(TK%JI(O~OwzhgTwGlfFT#CP%>QUA_NHhrb=(y}ZdMXbrTGwE^|`zKz0 z>CpE7H^zVYS{qT=!_!y4wlDqUNHk8=f7$JJQ|I)0Jw#CiD|ta>5CrO+?d@&YwylWU zj^m(OttxKuFgg8k5)*)emGxXAFG=2w(LlKp0QKzoYZ_*T1+$m^)0Z#d>5H$Y>|akh5{ln_# z$Lf-&U;gCGP~*?9X;~Ir*HuvoeWy=+bWFeBSB=z;2%QV_f=N} zg`p>_Uo0sQMh|It8&a_26}GtK9na4r;pm)>0MZRAl}fn`7ZSrXAfo}eLi|t?y{2HzWNos@Rz@4>^TqM*8RWZdqdbCUcRLEj3N7{e)%gP$Npi)|H32B+ceVfK zO>~oodN2ER{dwar#RzI6HMG1Iw#7DFtBktSK($&$bEApM+b!T)@%Vq^r(ec>^FEf% zWt_vALinHVfs_)JN(G+hK?s3rwW|J}vFT~7C4GXv@2i#0aU7L9T9&11uib7Jwryj5 zeH}oWn0+G50eNCh;R+@8I!w;DDBvwRU9XdBWTj*EnT~%Zniw%zgcK-Qr8tMcfYZs# z2ozdM5hI-BbZWIL0Br_Jic znns+zSzVZs3HPlH_}5S6>IV!M!oZoU&lj#d)cr6yISJ46U>F9<<#KAW;pfqWN8x4^ zMW|M*==b|7g4x>IQpeM7X(uaRT1tE-r<+fbSJ2gAb2ll{@@w$xaE3kUO3~M-0hhHF z@mgRW7^Be4gfpsYe_*x01R*7%5LDmN@F?v6=eJ+P*Z=%GbPr%Ze;9YuFWw!6{NW0k z#yX~IQ+U*V1lO#@E7gvNdc6+g?M-Z5i8A{C@k*j&V|V>P+_+50C)N2Xl?paCHU_(< z&CX-x&TZ@^yxv!M|BtzpbiN>v-aLngMn(A_wY+e+oUXGMv`?bKOk}yCXVWl z6>+*7KkuX#7>il7nw6`y6hsXSh{p7APysmD@zC`;>R5eMq~D26&xO!P9%dRmZcI8M zAmeQ+_)2NpHcF*9iYDhX4Ku?F<fFoZQTj(Xc+Ie&?Gl4Za*WRSJMf97*3HTRAZcUCC+l zx+1=4`}0^Sd+D!VJB@$+_;0W_ZAbxxvX4?^ll6}O!V?GV!)8Gb#&B?;)7oL(fPm5*hbrTE^K0u(_s>a$|e?xL;Pk0m4 zi6up|oLh59htmgB!lyWaY$vDcp{KuQ zC%HnY3wz}sye2jU#r}m?QSqBPtfsk{qYg!bjYKTAZ=$IcOc#qRo)btVz5Vo@?wO4x z7dcLuPni+i51uf)J9R9&f|`i7_&vyI?zh|8eCw(3uBZR0Yw9Bc&UEZSHRAk(qU1@-W8#-&Y> zdgQxa&6Un`=C;Gny|0~+`cZYyGgfZnw^VDi=BYDaLS7f3A=9K3CY9PYju`sWG1{K+ zfa?uJVC~^PT+Z{%Hd`*Wt<_X_lOp3bH%_kD>MVr(A^NROFCV%sc!x@$o0W6iQ@&&6 z#QMYH*Z8fg&pF4P`}@{(b&P{jku*Q zDIP%=?inP|yGyxQ?>H-~WSm=2aQ?El6W3|f+xMsV?Ch*xfU$r2Pl-#)r^5l{ZQ*Ws zG*WIY0H;EewfDd{LsOF^m=0yV4Y^^a$@(h$J^cxj)qRR@QJyd(#U~%!+uFl!mRr{P zvU3y2oD+3~OvK6duR@<^GsAUSRr?J`;)}?hyN;d-$ETCiTH*YBNZm$V0`go2RvMc= z^xv;73^WAYCeVruZc#9eEMGrrYiXfi1qa4d zB{Jb?E&p|Z*siWG?;2A6yCl|bC=_Zp>u&SYl2w>`r0|(tR`x#`+FLp!^wJFh$b`AdeTK#GYx$cJ zMfh!@Ocng9uvH%s;-n4&2k&~ZyJPlze+>&bpw;N8$ExNjRLbC%d}N+L?(U-OxnUwJ z@dJ{L5ObJ|Jp5y1l5hm|!vGTP*VgpsaqczmTa~9tSiQ*rhJfShEBw*R+fX8d0_z(+SyOnmxH!7+D_Z3atpPN?Jc6RI# zCCrV(8I3s=hGz>r2!FhjAYxIQ75cUHOZe)<-CC#_W?+a@CLE5k_HeUO%HvHYfWwJ z>qVxE#VYM~rZKB5-ySzw$nggG$ie`(EVO9z?`toWjHf*|qm2yOuj@+INVaLDAk>Cc z7GpZSa_s7otow=_F!XL(V@)w3{~=#O>UtvIiux8fMqB@HZ|j#adi|S@K$r19F!QyA z;h|9W{;^5R^3EM+ID_Sij@;e~&Drod(=GpdxHZ;4YzQQ}GpBEPwGe`IT{rg$P zjw`0_hPRhtOxJ1cLGZ_&Md3ui(`xL7AA!)XNBsy(E2~-9UA%wI?b>bF+Gbe;LSrXH zkXEuZ^mUnj%4*`T3`5SR)8n3Z7C+36_Dv*`#gD-4v6*S1@)=-Wo4qtUB-;vdv5yvo zZ3X5`y(RYWqWk{3u9WEbrIB~+C6kqKfJ?gm+TA6}OxD>>!aeM#f6x8xd=1y`UOYGr?k{sZ2zw!L4T zzk?}x+eb+Sm<6}>wPp_3W(&wcUAZyLeFhdq)j383ufQ-9`hsc&uKwAtZ5cg!#N`A4 zh(=-Nr;7cX&bLx4nb$EH6JB&gNTed{&G%@ajg5Q^xX^v`Nb-j#D;e>Z>2&XU6FIHj zo!mFdWfXq{y86@w*naoa#gre)l#jOO{HOEJO@?V%nXq?-1pUn6a8M?&8r>!_Y#CJQTI>ak`tcuG&eVFJ|0ms*| z^L9twa@0cN7P>|nC)&$l+SRThN^i}z^_}7 zX(vd)#4_t2wK=Q1^hZ2YU*`pT(AOSFy&3u0v7SFSp3jiPkE{>$wTD0!ueV`M&wcqX z9d-utQQBE7S9%d)+uMA{lkNubr^_Q(SA6kXPC#&S5b+htb-bSRBQk;({TI0?Aji<} zY*_l7A3`b3IjmnBE%pQiB-=kMF6u@Py{*xTVaorU`wmVmlo;=|cw4`;GlEBL;J4f< z-w3Bez$M4Luk_9?Vv%JoVq;yp5~toP_83Hj)L1hf`tsvRiZmuqc^$XXuD98hgqJp97vKcR?Ik^En@we7j5TSMN#XHM|^N1SI+e7Ie^!m)&f;s=@( z6vS`oF2w3OPTF6`UZ0(c_-4{RokiH~^Bmd^X}|uu9t5h2rfz(#;_eB)(^0<=8^9Ws?RH?4UhW9gOP?z7Snb?^`8Ejf4>_Tb2pmhWt!Nms~mhcNHTGc!PX$&`A86|?M#}n(=L1<;Ha<5DUgq}HT?cl zq50{mU@USW#AmjLUon6p^=Ji=eXe0S_Eji||7LmnS6=PfcO$JyTWh3X2eRg*fjRp2 zPaci$hC)JVkf-rVpJba)jjM6P4g0Rj)Wu_dKwV-9upam{K3VzqF|^NqP2%_$VA7&( zS#+gmm`Vgbmu_Z%R;tc|tNn=;^`~+MyF2UZ@!8+Clr&!?9u zR)q3~QJXZ~sDn>-#r!2Hsi?L9d_8=MbGOCL`N`NUM~^#G1zpl`%p6h4<wZRJ^RC_ok$7?W=4JF@!(T3a=NXyL6HKdCNXeh`8Y`DOM#`0M@_RAI5vww z{%g{v4#2(E2yq=rMg3?*_9ThyC!0AHKVbIz#_bn;_1IaE;WB7`z6O2DmvD=mo>rTh zvstLF5lVPgT=lwzU=DqT(H7MeAPoR+RvPFG*2REqnrv!Jy0h9Yt?6EW>Pqcxzg1^g zX?JJqK5ep|WwcwCgUo4`Uisyh=Xu-2G4UZ|tIgAHt;LPgcXoCbdXV6o(}3iVkv~&* zGg}PV5Wc676*C^W)UMrLGwA>dO*~f?-|gP%-vgEAUG@ednWDAS;`e3i@Bu>^?5;_; z$ob_I@z_@{DwUb+Ep>HE(9WSBQm_e$J5Zoi)!?Q1H-qK@@WpWrN#v@gcx-`HB^D-O z^nVEd-=g%J9_xDe-CeTK?=YmNJ3Pn*-@oIe{Gq22=8qt<-HWE+s+lF6GPEJQx*TmQN zGbmV)GBz%*p|f*xa1brrKtG*vHp?neQ}Ge6KWUw;slHAKFL$v*dq=zau1HyeALmBUG$H%~g&tt*y9u zX+*@KZ_RYj9$$MH8yj2Qml1Tkg}5o@9#t+6F(Lm^J25(nB}L$L@o!A?nwo;b#LFv7 z+sH4?pu^+bS8n_j!Rj1f%#K08jn!M`{DD*FejL34)b@Ks5JWqZZ?bi=7D|apD>e!& zRz{iw1FXx?7d$Wwo5=~!Z&*`LSGX@PeO!H7_LjzX{DUysf8w-A_sz@_RT;IhocwoU z{a>u)Zu7~Oye;p^<|!;8*$Fe%mltAB_mt>;Y=SB6Z3u9{!LIZ)`;^$rygTgn@wbXa zuH8Su=rtIgA`SZ;NptJ^V-VXCl4nb{tO)Wn&2(p~{TRBfiSBnx`y`I{v=Lxxc@px_ zNBa;|;d1+X(acWyM&%` zb|E~q#4ops=R>eZ zf693(+OFIPiF51!cD>a}TCwlWM!@q(jzrWo_+wt_+kzbF^ajLRG?~CryRj|(^r8P) z0pQY+K`RmXO^uDx$)L%}$pUM=Y^Scy&e&4~np9w!we5H+$Y0<`(uff;W-6$vbla+J zvUdad;4kz8dQT%ZoJ~=`W}}zP;hETDa2^CvDW9RT{K|Wd;NYFUcG!VT_b4B8(vYfq z%@X7(jq$a1U+!wWx+>1U*P+}(y{+@{FqYA?Eoa7drY^Q#%0^EwQPTc?{5pJe3pP1f zV(STwGDGjM&`Pg`ls44Ije%;!`aXZ%6Rb>*@N`O2c(bkqa%&>c$uX)@aUwCI+ z0@Hg}-tH_Bc*!JdP^jBHW8B5Al>Fi!iqZ$I=m*Y}BB@W4b`~L^sDP`kQ;Ui8cfdTA z7*1fk6*JivA?r^(Vin8?$*)Nt-GbxFjJ}H3uhG)WODcVB?c`+Ny|(RfRbcy{!jYd5 z?lpH=H;Y)iXs)Yqjx=X`BZlUh8rYy7W!aQvD9FRpD0e;UP9unOt{b;MM`w{O5d0$A z;G2BuOvrz{&f|3TC!ln-9iD9n#&WW;PvuL(3?lIB`n3Iz=l$P}aTKt|T>#S6js3&C z{GnH0pj%64c!2w+8ae8x8c_pLu##Jy~qnNFKDt8cV8^ zpv$UpDK(Y%k_{3O5eqXWA8h5saiX4|-tGv_ufvsO59fOib5l-^#J1~x8Zp6uA==Ni z1EuG!3$3d}c}5d^3;OaUZL%4isq0K62y9#S+E-l@%)14tjI?yF2DF!t`)nTvN+DQ_ z6?a|e7qG75J0S9LEAc+E*QNCtcun#B{5`~xfaq4~SQ&=m(}Iv<R<@|0N0Gg__kfTIFpt1;{JsQ1Tw26 z(YV_4Cccg5L%lUckhArp9F zt~)q@RJw1+o-lCWP;NE#4P2K768-#o0-tjKsptQ{&vuFStOWJCLrV$1jM zAG!>Uh?ft^b|*9>AJ_psUBKb*SMYXjvy8*e^_Z`S2)nW^S%hlSZRXhD-M6gTHjixPJde38RNL+ix4q z8hI_#8+RGTD7;Kef{vG4QLlv1OEh7YCgwCK7agaFTM3zA+8YEuS-`??PwV?m-VZaS zngg5xaI&nP3WC~ij5eL4gCCLt5Xg zm6fDCe(S#q*Gxc=3SqQu{Rd%*^1==HdOJ|YUsVK5OFXskOa^x&XL>2SS!mL@yoT&- zI`}Weu)wjgHym~m7NLCBW`y*Ii9dGcIFd*PJQifPuy-GQrSME1X_ER|jj8P6-?DYt z;|y$_x|g4yGGLwIlD-cn$sY3to_-jAPVfaKC1K&XRDb>gnmxc6Z0!WBtNf6IHGhR3 z-!|>Kv;Q1XH)3$fU?zR{ExCV1|A}hNZ>N@DU^%V-)YGrW^#Tz_%*2I5f4rWSmd01E zxp=^yBi62^Kfv>0MNta`TVZJC)vG%HCvB zbG=WfN$K)5HQl6qN<5EHvi*Zj!?!R$A(j-PJM;VZ@AoQ}q+87u$&RG{tA`j}L95j^ zsh$|0l4)L60THRVlohQi9^LDh|6yYjKj)rfk`40|2s`pUMy!u)6G9gvfNEjYNjlC8 zqw4D+*)~&c)cA+AX+?TlAO_X#LO|+(OJ083@p*UaRVjoexqKILgsnq0 z`tvETnliOVFo0dsxb}a;mfWO}0RCu8viIF|oQg5C{aoT{TSju-2x%0s>T2H;ya+py z9Nd+-hmAKJDw`!=afs`>Lzp3+y#jHdId-#8fpDocpJHkt8G9KN}YGP z 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∨Pj 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 z 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 literal 5463 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 Date: Sat, 11 Apr 2020 23:43:01 +0200 Subject: [PATCH 125/190] Not-so-airless turfs. --- code/game/turfs/simulated/minerals.dm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm index 20ced46e87..7e1b39cb39 100644 --- a/code/game/turfs/simulated/minerals.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -177,6 +177,9 @@ icon_state = "rock_oxy" turf_type = /turf/open/floor/plating/asteroid baseturfs = /turf/open/floor/plating/asteroid + mineralSpawnChanceList = list(/turf/closed/mineral/uranium/earth_like = 5, /turf/closed/mineral/diamond/earth_like = 1, /turf/closed/mineral/gold/earth_like = 10, + /turf/closed/mineral/silver/earth_like = 12, /turf/closed/mineral/plasma/earth_like = 20, /turf/closed/mineral/iron/earth_like = 40, + /turf/closed/mineral/titanium/earth_like = 11, /turf/closed/mineral/gibtonite/earth_like = 4, /turf/closed/mineral/bscrystal/earth_like = 1) initial_gas_mix = OPENTURF_DEFAULT_ATMOS defer_change = TRUE @@ -201,6 +204,10 @@ icon_state = "rock_highchance_oxy" turf_type = /turf/open/floor/plating/asteroid baseturfs = /turf/open/floor/plating/asteroid + mineralSpawnChanceList = list( + /turf/closed/mineral/uranium/earth_like = 35, /turf/closed/mineral/diamond/earth_like = 30, /turf/closed/mineral/gold/earth_like = 45, + /turf/closed/mineral/titanium/earth_like = 45, /turf/closed/mineral/silver/earth_like = 50, /turf/closed/mineral/plasma/earth_like = 50, + /turf/closed/mineral/bscrystal/earth_like = 20) initial_gas_mix = OPENTURF_DEFAULT_ATMOS defer_change = TRUE @@ -218,6 +225,10 @@ turf_type = /turf/open/floor/plating/asteroid baseturfs = /turf/open/floor/plating/asteroid initial_gas_mix = OPENTURF_DEFAULT_ATMOS + mineralSpawnChanceList = list( + /turf/closed/mineral/uranium/earth_like = 2, /turf/closed/mineral/diamond/earth_like = 1, /turf/closed/mineral/gold/earth_like = 4, + /turf/closed/mineral/titanium/earth_like = 4, /turf/closed/mineral/silver/earth_like = 6, /turf/closed/mineral/plasma/earth_like = 15, + /turf/closed/mineral/iron/earth_like = 40, /turf/closed/mineral/gibtonite/earth_like = 2, /turf/closed/mineral/bscrystal/earth_like = 1) defer_change = TRUE /turf/closed/mineral/random/volcanic @@ -624,3 +635,10 @@ baseturfs = /turf/open/floor/plating/asteroid/basalt/lava_land_surface initial_gas_mix = LAVALAND_DEFAULT_ATMOS defer_change = 1 + +/turf/closed/mineral/gibtonite/earth_like + icon_state = "rock_oxy" + turf_type = /turf/open/floor/plating/asteroid + baseturfs = /turf/open/floor/plating/asteroid + initial_gas_mix = OPENTURF_DEFAULT_ATMOS + defer_change = TRUE From 983f3693573d6f2e53e20b380aad04367c77e46c Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sun, 12 Apr 2020 01:49:25 +0200 Subject: [PATCH 126/190] Little Holodeck refactor. --- code/__HELPERS/global_lists.dm | 8 ++++++++ code/_globalvars/lists/mapping.dm | 2 ++ code/game/area/areas/holodeck.dm | 4 ++++ code/modules/holodeck/area_copy.dm | 25 ++++++++++++++++++++----- code/modules/holodeck/computer.dm | 9 +++++---- 5 files changed, 39 insertions(+), 9 deletions(-) diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 38e25b04c5..0c45a746d8 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -89,6 +89,14 @@ INVOKE_ASYNC(GLOBAL_PROC, /proc/init_ref_coin_values) //so the current procedure doesn't sleep because of UNTIL() + for(var/path in subtypesof(/area/holodeck)) + var/area/holodeck/A = path + var/list/compatibles = initial(A.compatible_holodeck_comps) + if(!compatibles || initial(A.abstract_type) == path) + continue + for(var/comp in compatibles) + LAZYADD(GLOB.holodeck_areas_prototypes[comp], A) + //creates every subtype of prototype (excluding prototype) and adds it to list L. //if no list/L is provided, one is created. /proc/init_subtypes(prototype, list/L) diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm index fb8863ebe7..bcf35859c3 100644 --- a/code/_globalvars/lists/mapping.dm +++ b/code/_globalvars/lists/mapping.dm @@ -50,3 +50,5 @@ GLOBAL_LIST_EMPTY_TYPED(areas_by_type, /area) GLOBAL_LIST_EMPTY(all_abstract_markers) GLOBAL_LIST_EMPTY(stationroom_landmarks) //List of all spawns for stationrooms + +GLOBAL_LIST_EMPTY(holodeck_areas_prototypes) //List of holodeck area prototypes per holodeck computer type \ No newline at end of file diff --git a/code/game/area/areas/holodeck.dm b/code/game/area/areas/holodeck.dm index d32091f98b..75ed2b656c 100644 --- a/code/game/area/areas/holodeck.dm +++ b/code/game/area/areas/holodeck.dm @@ -6,6 +6,8 @@ hidden = TRUE var/obj/machinery/computer/holodeck/linked + var/list/compatible_holodeck_comps + var/abstract_type = /area/holodeck var/restricted = 0 // if true, program goes on emag list /* @@ -53,6 +55,8 @@ */ /area/holodeck/rec_center name = "\improper Recreational Holodeck" + compatible_holodeck_comps = list(/obj/machinery/computer/holodeck) + abstract_type = /area/holodeck/rec_center /area/holodeck/rec_center/offline name = "Holodeck - Offline" diff --git a/code/modules/holodeck/area_copy.dm b/code/modules/holodeck/area_copy.dm index 9fb97c08a7..67f8cdddec 100644 --- a/code/modules/holodeck/area_copy.dm +++ b/code/modules/holodeck/area_copy.dm @@ -63,23 +63,38 @@ GLOBAL_LIST_INIT(duplicate_forbidden_vars_by_type, typecacheof_assoc_list(list( var/src_min_x = 99999 var/src_min_y = 99999 + var/src_max_x = 0 + var/src_max_y = 0 var/list/refined_src = new/list() - for (var/turf/T in turfs_src) + for (var/i in turfs_src) + var/turf/T = i src_min_x = min(src_min_x,T.x) src_min_y = min(src_min_y,T.y) - for (var/turf/T in turfs_src) + src_max_x = max(src_max_x,T.y) + src_max_y = max(src_max_y,T.y) + for (var/i in turfs_src) + var/turf/T = i refined_src[T] = "[T.x - src_min_x].[T.y - src_min_y]" var/trg_min_x = 99999 var/trg_min_y = 99999 + var/trg_max_x = 0 + var/trg_max_y = 0 var/list/refined_trg = new/list() - for (var/turf/T in turfs_trg) + for (var/i in turfs_trg) + var/turf/T = i trg_min_x = min(trg_min_x,T.x) trg_min_y = min(trg_min_y,T.y) - for (var/turf/T in turfs_trg) - refined_trg["[T.x - trg_min_x].[T.y - trg_min_y]"] = T + trg_max_x = max(trg_max_x,T.y) + trg_max_y = max(trg_max_y,T.y) + + var/diff_x = round(((src_max_x - src_min_x) - (trg_max_x - trg_min_x))/2) + var/diff_y = round(((src_max_y - src_min_y) - (trg_max_y - trg_min_y))/2) + for (var/i in turfs_trg) + var/turf/T = i + refined_trg["[T.x - trg_min_x + diff_x].[T.y - trg_min_y + diff_y]"] = T var/list/toupdate = new/list() diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm index b5cbed8b79..3c87082393 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -2,7 +2,10 @@ Holodeck Update The on-station holodeck area is of type [holodeck_type]. - All subtypes of [program_type] are loaded into the program cache or emag programs list. + All types found in GLOB.holodeck_areas_per_comp_type[src.type], generated on make_datum_references_lists(), + are loaded into the program cache or emag programs list. + Paths with their abstract_type variable equal to themselves will be skipped. + If init_program is null, a random program will be loaded on startup. If you don't wish this, set it to the offline program or another of your choosing. @@ -12,7 +15,6 @@ 3) Create a new control console that uses those areas Non-mapped areas should be skipped but you should probably comment them out anyway. - The base of program_type will always be ignored; only subtypes will be loaded. */ #define HOLODECK_CD 25 @@ -35,7 +37,6 @@ // Splitting this up allows two holodecks of the same size // to use the same source patterns. Y'know, if you want to. var/holodeck_type = /area/holodeck/rec_center // locate(this) to get the target holodeck - var/program_type = /area/holodeck/rec_center // subtypes of this (but not this itself) are loadable programs var/active = FALSE var/damaged = FALSE @@ -181,7 +182,7 @@ return ..() /obj/machinery/computer/holodeck/proc/generate_program_list() - for(var/typekey in subtypesof(program_type)) + for(var/typekey in GLOB.holodeck_areas_prototypes[type]) var/area/holodeck/A = GLOB.areas_by_type[typekey] if(!A || !A.contents.len) continue From fe4b2705681be4976c31c28b57e332413ca79e4b Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sun, 12 Apr 2020 05:08:49 +0200 Subject: [PATCH 127/190] Sprite size preferences?! Oh no! --- code/__DEFINES/movespeed_modification.dm | 1 + code/__HELPERS/mobs.dm | 3 ++- .../configuration/entries/game_options.dm | 23 +++++++++++++++++ code/datums/dna.dm | 17 +++++++++++++ code/modules/client/preferences.dm | 25 ++++++++++++++++++- code/modules/client/preferences_savefile.dm | 10 ++++++++ config/game_options.txt | 12 +++++++++ 7 files changed, 89 insertions(+), 2 deletions(-) diff --git a/code/__DEFINES/movespeed_modification.dm b/code/__DEFINES/movespeed_modification.dm index 76c326cec0..9764cda1ae 100644 --- a/code/__DEFINES/movespeed_modification.dm +++ b/code/__DEFINES/movespeed_modification.dm @@ -59,6 +59,7 @@ #define MOVESPEED_ID_SPECIES "SPECIES_SPEED_MOD" +#define MOVESPEED_ID_SMALL_STRIDE "SMALL_STRIDE" #define MOVESPEED_ID_PRONE_DRAGGING "PRONE_DRAG" #define MOVESPEED_ID_HUMAN_CARRYING "HUMAN_CARRY" #define MOVESPEED_ID_SHRINK_RAY "SHRUNKEN_SPEED_MODIFIER" diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index febd333578..e022c10007 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -209,7 +209,8 @@ "ipc_antenna" = "None", "flavor_text" = "", "meat_type" = "Mammalian", - "body_model" = MALE + "body_model" = MALE, + "body_size" = RESIZE_DEFAULT_SIZE )) /proc/random_hair_style(gender) diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index f253bc543d..c3d0d2e3e7 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -449,3 +449,26 @@ key_mode = KEY_MODE_TEXT value_mode = VALUE_MODE_FLAG config_entry_value = list(GEN_VISIBLE_NO_CLOTHES, GEN_VISIBLE_NO_UNDIES, GEN_VISIBLE_NEVER) //refer to cit_helpers for all toggles. + +//Body size configs, the feature will be disabled if both min and max have the same value. +/datum/config_entry/number/body_size_min + config_entry_value = RESIZE_DEFAULT_SIZE + min_val = 0.1 //to avoid issues with zeros and negative values. + max_val = RESIZE_DEFAULT_SIZE + +/datum/config_entry/number/body_size_max + config_entry_value = RESIZE_DEFAULT_SIZE + min_val = RESIZE_DEFAULT_SIZE + +//pun pun slowdown for characters smaller than this thanks shorter strides. +//Set to a value below 'body_size_min' to disable it. +/datum/config_entry/number/threshold_body_size_slowdown + config_entry_value = RESIZE_DEFAULT_SIZE * 0.85 + min_val = 0 + max_val = RESIZE_DEFAULT_SIZE + +//multiplicative slowdown multiplier. See 'dna.update_body_size' for the operation. +//doesn't apply to floating or crawling mobs +/datum/config_entry/number/body_size_slowdown_multiplier + config_entry_value = 0.25 + min_val = 1.1 //otherwise it'd be a waste of time. diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 95b45b6bc2..1c866ea535 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -41,6 +41,7 @@ /datum/dna/proc/transfer_identity(mob/living/carbon/destination, transfer_SE = 0) if(!istype(destination)) return + var/old_size = destination.dna.features["body_size"] destination.dna.unique_enzymes = unique_enzymes destination.dna.uni_identity = uni_identity destination.dna.blood_type = blood_type @@ -56,6 +57,8 @@ if(transfer_SE) destination.dna.mutation_index = mutation_index + destination.dna.update_body_size(old_size) + SEND_SIGNAL(destination, COMSIG_CARBON_IDENTITY_TRANSFERRED_TO, src, transfer_SE) /datum/dna/proc/copy_dna(datum/dna/new_dna) @@ -368,7 +371,9 @@ /mob/living/carbon/human/proc/hardset_dna(ui, list/mutation_index, newreal_name, newblood_type, datum/species/mrace, newfeatures) if(newfeatures) + var/old_size = dna.features["body_size"] dna.features = newfeatures + dna.update_body_size(old_size) if(mrace) var/datum/species/newrace = new mrace.type @@ -644,3 +649,15 @@ gib() else set_species(/datum/species/dullahan) + +/datum/dna/proc/update_body_size(old_size) + if(!holder || features["body_size"] == old_size) + return + holder.resize = features["body_size"] / old_size + holder.update_transform() + var/danger = CONFIG_GET(number/threshold_body_size_slowdown) + if(features["body_size"] < danger) + var/slowdown = 1 + round(danger/features["body_size"], 0.1) * CONFIG_GET(number/body_size_slowdown_multiplier) + holder.add_movespeed_modifier(MOVESPEED_ID_SMALL_STRIDE, TRUE, 100, NONE, TRUE, slowdown, ALL, FLOATING|CRAWLING) + else if(old_size < danger) + holder.remove_movespeed_modifier(MOVESPEED_ID_SMALL_STRIDE) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index adfcd547bc..c2196fb170 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -150,7 +150,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) "ipc_antenna" = "None", "flavor_text" = "", "meat_type" = "Mammalian", - "body_model" = MALE + "body_model" = MALE, + "body_size" = RESIZE_DEFAULT_SIZE ) var/list/custom_names = list() @@ -379,6 +380,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "   
      Change
      " mutant_colors = TRUE + if (CONFIG_GET(number/body_size_min) != CONFIG_GET(number/body_size_max)) + dat += "Sprite Size: [features["body_size"]]%
      " + if((EYECOLOR in pref_species.species_traits) && !(NOEYES in pref_species.species_traits)) if(!use_skintones && !mutant_colors) @@ -2191,6 +2195,21 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("body_model") features["body_model"] = features["body_model"] == MALE ? FEMALE : MALE + if("bodysize") + var/min = CONFIG_GET(number/body_size_min) + var/max = CONFIG_GET(number/body_size_max) + var/danger = CONFIG_GET(number/threshold_body_size_slowdown) + var/new_bodysize = input(user, "Choose your desired sprite size:\n([min*100]%-[max*100]%), Warning: May make your character look distorted[danger > min ? ", and an exponential slowdown will occur for those smaller than [danger*100]%!" : "!"]", "Character Preference", features["body_size"]*100) as num|null + if (new_bodysize) + new_bodysize = CLAMP(new_bodysize * 0.01, min, max) + var/dorfy + if(danger > new_bodysize) + dorfy = alert(user, "The chosen size appears to be smaller than the threshold of [danger*100]%, which will lead to an added exponential slowdown. Are you sure about that?", "Dwarfism Alert", "Yes", "Move it to the threshold", "No") + if(!dorfy || dorfy == "Move it above the threshold") + new_bodysize = danger + if(dorfy != "No") + features["body_size"] = new_bodysize + if("hotkeys") hotkeys = !hotkeys if(hotkeys) @@ -2431,6 +2450,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) pref_species = new /datum/species/human save_character() + var/old_size = character.dna.features["body_size"] + character.dna.features = features.Copy() character.set_species(chosen_species, icon_update = FALSE, pref_load = TRUE) character.dna.real_name = character.real_name @@ -2452,6 +2473,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.give_genitals(TRUE) //character.update_genitals() is already called on genital.update_appearance() + character.dna.update_body_size(old_size) + SEND_SIGNAL(character, COMSIG_HUMAN_PREFS_COPIED_TO, src, icon_updates, roundstart_checks) //let's be sure the character updates diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index ca51a27dae..7da9d5a1dc 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -395,6 +395,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["body_is_always_random"] >> be_random_body S["gender"] >> gender S["body_model"] >> features["body_model"] + S["body_size"] >> features["body_size"] S["age"] >> age S["hair_color"] >> hair_color S["facial_hair_color"] >> facial_hair_color @@ -568,6 +569,14 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car features["insect_markings"] = sanitize_inlist(features["insect_markings"], GLOB.insect_markings_list, "None") features["insect_wings"] = sanitize_inlist(features["insect_wings"], GLOB.insect_wings_list) + var/static/size_min + if(!size_min) + size_min = CONFIG_GET(number/body_size_min) + var/static/size_max + if(!size_max) + size_max = CONFIG_GET(number/body_size_max) + features["body_size"] = sanitize_integer(features["body_size"], size_min, size_max, RESIZE_DEFAULT_SIZE) + var/static/list/B_sizes if(!B_sizes) var/list/L = CONFIG_GET(keyed_list/breasts_cups_prefs) @@ -643,6 +652,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["body_is_always_random"] , be_random_body) WRITE_FILE(S["gender"] , gender) WRITE_FILE(S["body_model"] , features["body_model"]) + WRITE_FILE(S["body_size"] , features["body_size"]) WRITE_FILE(S["age"] , age) WRITE_FILE(S["hair_color"] , hair_color) WRITE_FILE(S["facial_hair_color"] , facial_hair_color) diff --git a/config/game_options.txt b/config/game_options.txt index c3930fd325..dd49446ecc 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -620,3 +620,15 @@ BREASTS_CUPS_PREFS e ## Minimum and maximum limits for penis length from the character creation menu. PENIS_MIN_INCHES_PREFS 1 PENIS_MAX_INCHES_PREFS 20 + +## Body size configs, the feature will be disabled if both min and max have the same value. +BODY_SIZE_MIN 1 +BODY_SIZE_MAX 1 + +## Pun-Pun slowdown for characters smaller than this thanks shorter strides. +## Set to a value below BODY_SIZE_MIN to disable it. +THRESHOLD_BODY_SIZE_SLOWDOWN 0.85 + +## Multiplier used in the smaller strides slowdown calculation. +## Doesn't apply to floating or crawling mobs. +BODY_SIZE_SLOWDOWN_MULTIPLIER 0.25 \ No newline at end of file From e6fbd0ccedfd8143d57344095092d34e0f2498c3 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sun, 12 Apr 2020 05:13:43 +0200 Subject: [PATCH 128/190] Whops --- code/modules/client/preferences.dm | 69 +++++++++++++++--------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index c2196fb170..f7d251f32d 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -295,7 +295,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "[real_name]
      " dat += "Be nameless: [nameless ? "Yes" : "No"]
      " - dat += "Gender: [gender == MALE ? "Male" : (gender == FEMALE ? "Female" : (gender == PLURAL ? "Non-binary" : "Object"))]
      " + dat += "Gender: [gender == MALE ? "Male" : (gender == FEMALE ? "Female" : (gender == PLURAL ? "Non-binary" : "Object"))]
      " dat += "Age: [age]
      " dat += "Special Names:
      " @@ -346,7 +346,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) else dat += "[TextPreview(features["flavor_text"])]...
      " dat += "

    f)6G4 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%0D33;!kHMc+U}K;5^?P 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 literal 110329 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≷*Efgn~Mt;@ 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 z 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