From e9bf432a0df148be149157b5af65f65becb92495 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Wed, 22 Apr 2020 03:30:40 +0200 Subject: [PATCH 01/36] Scavenging element. --- code/__DEFINES/dcs/signals.dm | 2 +- code/__DEFINES/misc.dm | 7 + code/__HELPERS/_lists.dm | 26 +-- code/__HELPERS/mobs.dm | 12 +- code/controllers/subsystem/vote.dm | 2 +- code/datums/ai_laws.dm | 2 +- code/datums/components/archaeology.dm | 95 ---------- code/datums/elements/scavenging.dm | 164 ++++++++++++++++++ code/game/gamemodes/game_mode.dm | 2 +- code/game/objects/effects/landmarks.dm | 2 +- code/game/objects/structures/loot_pile.dm | 66 +++++++ .../antagonists/traitor/datum_traitor.dm | 2 +- .../living/simple_animal/friendly/mouse.dm | 6 + icons/obj/loot_piles.dmi | Bin 0 -> 12091 bytes tgstation.dme | 2 + 15 files changed, 261 insertions(+), 129 deletions(-) delete mode 100644 code/datums/components/archaeology.dm create mode 100644 code/datums/elements/scavenging.dm create mode 100644 code/game/objects/structures/loot_pile.dm create mode 100644 icons/obj/loot_piles.dmi diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 53348b3467..a09c96ad30 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -30,7 +30,7 @@ #define COMSIG_PARENT_ATTACKBY "atom_attackby" //from base of atom/attackby(): (/obj/item, /mob/living, params) #define COMPONENT_NO_AFTERATTACK 1 //Return this in response if you don't want afterattack to be called #define COMSIG_ATOM_HULK_ATTACK "hulk_attack" //from base of atom/attack_hulk(): (/mob/living/carbon/human) -#define COMSIG_PARENT_EXAMINE "atom_examine" //from base of atom/examine(): (/mob) +#define COMSIG_PARENT_EXAMINE "atom_examine" //from base of atom/examine(): (/mob, list/examine_list) #define COMSIG_ATOM_GET_EXAMINE_NAME "atom_examine_name" //from base of atom/get_examine_name(): (/mob, list/overrides) //Positions for overrides list #define EXAMINE_POSITION_ARTICLE 1 diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 3fb149d071..9febca663d 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -523,3 +523,10 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S #define NIGHTSHIFT_AREA_NONE 4 //default/highest. #define UNTIL(X) while(!(X)) stoplag() + + +//Scavenging element defines for special loot "events". +#define SCAVENGING_FOUND_NOTHING "found_nothing" +#define SCAVENGING_SPAWN_MOUSE "spawn_mouse" +#define SCAVENGING_SPAWN_MICE "spawn_mice" +#define SCAVENGING_SPAWN_TOM "spawn_tom_the_mouse" diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index a34b3ce67c..754b56a202 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -234,38 +234,20 @@ //2. Gets a number between 1 and that total //3. For each element in the list, subtracts its weighting from that number //4. If that makes the number 0 or less, return that element. -/proc/pickweight(list/L) +/proc/pickweight(list/L, base_weight = 1) var/total = 0 var/item for (item in L) if (!L[item]) - L[item] = 1 + L[item] = base_weight total += L[item] - total = rand(1, total) + total = rand() * total for (item in L) - total -=L [item] + total -= L[item] if (total <= 0) return item - return null - -/proc/pickweightAllowZero(list/L) //The original pickweight proc will sometimes pick entries with zero weight. I'm not sure if changing the original will break anything, so I left it be. - var/total = 0 - var/item - for (item in L) - if (!L[item]) - L[item] = 0 - total += L[item] - - total = rand(0, total) - for (item in L) - total -=L [item] - if (total <= 0 && L[item]) - return item - - return null - //Pick a random element from the list and remove it from the list. /proc/pick_n_take(list/L) RETURN_TYPE(L[_].type) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 2827e40120..d3ad4dcaec 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -311,7 +311,7 @@ GLOBAL_LIST_EMPTY(species_list) else return "unknown" -/proc/do_mob(mob/user , mob/target, time = 30, uninterruptible = 0, progress = 1, datum/callback/extra_checks = null, ignorehelditem = 0) +/proc/do_mob(mob/user , mob/target, time = 30, uninterruptible = 0, progress = 1, datum/callback/extra_checks = null, ignorehelditem = FALSE, resume_time = 0 SECONDS) if(!user || !target) return 0 var/user_loc = user.loc @@ -330,10 +330,10 @@ GLOBAL_LIST_EMPTY(species_list) var/endtime = world.time+time var/starttime = world.time . = 1 - while (world.time < endtime) + while (world.time + resume_time < endtime) stoplag(1) if (progress) - progbar.update(world.time - starttime) + progbar.update(world.time - starttime + resume_time) if(QDELETED(user) || QDELETED(target)) . = 0 break @@ -365,7 +365,7 @@ GLOBAL_LIST_EMPTY(species_list) checked_health["health"] = health return ..() -/proc/do_after(mob/user, var/delay, needhand = 1, atom/target = null, progress = 1, datum/callback/extra_checks = null, required_mobility_flags = (MOBILITY_USE|MOBILITY_MOVE)) +/proc/do_after(mob/user, var/delay, needhand = 1, atom/target = null, progress = 1, datum/callback/extra_checks = null, required_mobility_flags = (MOBILITY_USE|MOBILITY_MOVE), resume_time = 0 SECONDS) if(!user) return 0 var/atom/Tloc = null @@ -394,10 +394,10 @@ GLOBAL_LIST_EMPTY(species_list) var/starttime = world.time . = 1 var/mob/living/L = isliving(user) && user //evals to last thing eval'd - while (world.time < endtime) + while (world.time + resume_time < endtime) stoplag(1) if (progress) - progbar.update(world.time - starttime) + progbar.update(world.time - starttime + resume_time) if(drifting && !user.inertia_dir) drifting = 0 diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index a202afd905..df3f24f0dc 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -361,7 +361,7 @@ SUBSYSTEM_DEF(vote) picked = S runnable_storytellers[S] *= round(stored_gamemode_votes[initial(S.name)]*100000,1) if(!picked) - picked = pickweightAllowZero(runnable_storytellers) + picked = pickweight(runnable_storytellers, 0) GLOB.dynamic_storyteller_type = picked if("map") var/datum/map_config/VM = config.maplist[.] diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index ebddc187ae..9c6bb2ebfd 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -253,7 +253,7 @@ var/datum/ai_laws/lawtype var/list/law_weights = CONFIG_GET(keyed_list/law_weight) while(!lawtype && law_weights.len) - var/possible_id = pickweightAllowZero(law_weights) + var/possible_id = pickweight(law_weights, 0) lawtype = lawid_to_type(possible_id) if(!lawtype) law_weights -= possible_id diff --git a/code/datums/components/archaeology.dm b/code/datums/components/archaeology.dm deleted file mode 100644 index b5740650e9..0000000000 --- a/code/datums/components/archaeology.dm +++ /dev/null @@ -1,95 +0,0 @@ -/datum/component/archaeology - dupe_mode = COMPONENT_DUPE_UNIQUE - var/list/archdrops = list(/obj/item/bikehorn = list(ARCH_PROB = 100, ARCH_MAXDROP = 1)) // honk~ - var/prob2drop - var/dug - var/datum/callback/callback - -/datum/component/archaeology/Initialize(list/_archdrops = list(), datum/callback/_callback) - archdrops = _archdrops - for(var/i in archdrops) - if(isnull(archdrops[i][ARCH_MAXDROP])) - archdrops[i][ARCH_MAXDROP] = 1 - stack_trace("ARCHAEOLOGY WARNING: [parent] contained a null max_drop value in [i].") - if(isnull(archdrops[i][ARCH_PROB])) - archdrops[i][ARCH_PROB] = 100 - stack_trace("ARCHAEOLOGY WARNING: [parent] contained a null probability value in [i].") - callback = _callback - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY,.proc/Dig) - RegisterSignal(parent, COMSIG_ATOM_EX_ACT, .proc/BombDig) - RegisterSignal(parent, COMSIG_ATOM_SING_PULL, .proc/SingDig) - -/datum/component/archaeology/InheritComponent(datum/component/archaeology/A, i_am_original) - var/list/other_archdrops = A.archdrops - var/list/_archdrops = archdrops - for(var/I in other_archdrops) - _archdrops[I] += other_archdrops[I] - -/datum/component/archaeology/proc/Dig(datum/source, obj/item/I, mob/living/user) - if(dug) - to_chat(user, "Looks like someone has dug here already.") - return - - if(!isturf(user.loc)) - return - - if(I.tool_behaviour == TOOL_SHOVEL || I.tool_behaviour == TOOL_MINING) - to_chat(user, "You start digging...") - - if(I.use_tool(parent, user, 40, volume=50)) - to_chat(user, "You dig a hole.") - gets_dug() - dug = TRUE - SSblackbox.record_feedback("tally", "pick_used_mining", 1, I.type) - return COMPONENT_NO_AFTERATTACK - -/datum/component/archaeology/proc/gets_dug() - if(dug) - return - else - var/turf/open/OT = get_turf(parent) - for(var/thing in archdrops) - var/maxtodrop = archdrops[thing][ARCH_MAXDROP] - for(var/i in 1 to maxtodrop) - if(prob(archdrops[thing][ARCH_PROB])) // can't win them all! - new thing(OT) - - if(isopenturf(OT)) - if(OT.postdig_icon_change) - if(istype(OT, /turf/open/floor/plating/asteroid/) && !OT.postdig_icon) - var/turf/open/floor/plating/asteroid/AOT = parent - AOT.icon_plating = "[AOT.environment_type]_dug" - AOT.icon_state = "[AOT.environment_type]_dug" - else - if(isplatingturf(OT)) - var/turf/open/floor/plating/POT = parent - POT.icon_plating = "[POT.postdig_icon]" - POT.icon_state = "[OT.postdig_icon]" - - if(OT.slowdown) //Things like snow slow you down until you dig them. - OT.slowdown = 0 - dug = TRUE - if(callback) - callback.Invoke() - -/datum/component/archaeology/proc/SingDig(datum/source, S, current_size) - switch(current_size) - if(STAGE_THREE) - if(prob(30)) - gets_dug() - if(STAGE_FOUR) - if(prob(50)) - gets_dug() - else - if(current_size >= STAGE_FIVE && prob(70)) - gets_dug() - -/datum/component/archaeology/proc/BombDig(datum/source, severity, target) - switch(severity) - if(3) - return - if(2) - if(prob(20)) - gets_dug() - if(1) - gets_dug() diff --git a/code/datums/elements/scavenging.dm b/code/datums/elements/scavenging.dm new file mode 100644 index 0000000000..b2ca7adcc3 --- /dev/null +++ b/code/datums/elements/scavenging.dm @@ -0,0 +1,164 @@ + /* + * Scavenging element. Its scope shouldn't elude your imagination. + * Basically loot piles that can be searched through for some items. + * In my opinion, these are more engaging than normal maintenance loot spawners. + * The loot doesn't have to be strictly made of items and objects, you could also use it to invoke some "events" + * such as mice, rats, an halloween spook, persistent relics, traps, etcetera, go wild. + */ +/datum/element/scavenging + element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH + id_arg_index = 3 + + var/list/loot_left_per_atom = list() //loot left per attached atom. + var/list/loot_table //pickweight list of available loot. + var/list/unique_loot //limited loot, once the associated value reaches zero, its key is removed from loot_table + var/scavenge_time = 12 SECONDS //how much time it takes + var/can_use_hands = TRUE //bare handed scavenge time multiplier. If set to zero, only tools are usable. + var/list/tool_types //which tool types the player can use instead of scavenging by hand, associated value is their speed. + var/del_atom_on_depletion = FALSE //Will the atom be deleted when there is no loot left? + var/list/search_texts = list("searches through ", "search through ", "You hear rummaging...") + + var/mean_loot_weight = 0 + var/list/progress_per_atom = list() //seconds of ditched progress per atom, used to resume the work instead of starting over. + var/static/list/players_busy_scavenging = list() //players already busy scavenging. + +/datum/element/scavenging/Attach(atom/target, amount = 5, list/loot, list/unique, time = 10 SECONDS, hands = TRUE, list/tools, list/texts, del_deplete = FALSE) + . = ..() + if(. == ELEMENT_INCOMPATIBLE || !length(loot) || !amount || !istype(target) || isarea(target)) + return ELEMENT_INCOMPATIBLE + loot_left_per_atom[target] = amount + if(!loot_table) + loot_table = loot + for(var/A in loot_table) //tally the list weights + mean_loot_weight += loot_table[A] + mean_loot_weight /= length(loot_table) + if(!unique_loot) + unique_loot = unique || list() + scavenge_time = time + can_use_hands = hands + tool_types = tools + if(texts) + search_texts = texts + del_atom_on_depletion = del_deplete + if(can_use_hands) + RegisterSignal(target, list(COMSIG_ATOM_ATTACK_HAND, COMSIG_ATOM_ATTACK_PAW), .proc/scavenge_barehanded) + if(tool_types) + RegisterSignal(target, COMSIG_PARENT_ATTACKBY, .proc/scavenge_tool) + RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/on_examine) + +/datum/element/scavenging/Detach(atom/target) + . = ..() + loot_left_per_atom -= target + progress_per_atom -= target + UnregisterSignal(target, list(COMSIG_ATOM_ATTACK_HAND, COMSIG_PARENT_ATTACKBY, COMSIG_PARENT_EXAMINE)) + +/datum/element/scavenging/proc/on_examine(atom/source, mob/user, list/examine_list) + var/text + var/methods = tool_types + if(can_use_hands) + if(!length(methods)) + methods = list("bare handed") + else + methods += "simply bare handed" + text = english_list(methods, "", " or ") + . += "Looks like [source.p_they()] can be scavenged[length(tool_types) ? " with either a" : ""] [text]" + +/datum/element/scavenging/proc/scavenge_barehanded(atom/source, mob/user) + scavenge(source, user, 1) + return COMPONENT_NO_ATTACK_HAND + +/datum/element/scavenging/proc/scavenge_tool(atom/source, obj/item/I, mob/living/user, params) + if(mob.a_intent == INTENT_HARM) //Robust trash disposal techniques! + return + var/speed_multi = tool_types[I.tool_behaviour] + if(!speed_multi) + return + scavenge(source, user, speed_multi) + return COMPONENT_NO_AFTERATTACK + +/datum/element/scavenging/proc/scavenge(atom/source, mob/user, speed_multi = 1) + if(players_busy_scavenging[user]) + return + players_busy_scavenging[user] = TRUE + var/progress_done = progress_per_atom[source] + var/len_messages = length(search_texts) + var/msg_first_person + if(len_messages >= 2) + msg_first_person = "You [progress_done ? "resume a ditched task and " : ""][search_texts[2]] [src]." + var/msg_blind + if(len_messages >= 3) + msg_blind = "[search_texts[3]]" + user.visible_message("[user] [search_texts[1]] [src].", msg_first_person, msg_blind) + if(do_after(user, scavenge_time, TRUE, source, TRUE, CALLBACK(src, .proc/set_progress, source, world.time), resume_time = progress_done)) + spawn_loot(source, user) + players_busy_scavenging -= user + progress_per_atom -= source + +/datum/element/scavenging/proc/set_progress(atom/source, start_time) + progress_per_atom[source] = world.time - start_time + +/datum/element/scavenging/proc/spawn_loot(atom/source, mob/user) + var/loot = pickweight(loot_table) + var/special = TRUE + var/free = FALSE + if(!loot_left_per_atom[source]) + to_chat(user, "Looks likes there is nothing worth of interest left in [src] anymore, further attempts would be futile.") + return + switch(loot) // TODO: datumize these out. + if(SCAVENGING_FOUND_NOTHING) + to_chat(user, "You found nothing, better luck next time.") + free = TRUE //doesn't consume the loot pile. + if(SCAVENGING_SPAWN_MOUSE) + var/nasty_rodent = pick("mouse", "rodent", "squeaky critter", "stupid pest", "annoying cable chewer", "nasty, ugly, evil, disease-ridden rodent") + to_chat(user, "You found something in [src]... no wait, that's just another [nasty_rodent].") + new /mob/living/simple_animal/mouse(source.loc) + if(SCAVENGING_SPAWN_MICE) + user.visible_message("A small gang of mice emerges from [source].", \ + "You found something in [src]... no wait, that's just another- no wait, that's a lot of damn mice.") + for(var/i in 1 to rand(4, 6)) + new /mob/living/simple_animal/mouse(source.loc) + if(SCAVENGING_SPAWN_TOM) + if(GLOB.tom_existed) //There can only be one. + to_chat(user, "You found nothing, better luck next time.") + free = TRUE + else + to_chat(user, "You found something in [src]... no wait, that's Tom, the mouse! What is he doing here?") + new /mob/living/simple_animal/mouse/brown/Tom(source.loc) + else + special = FALSE + + if(!special) //generic loot. Nothing too strange like more loot spawners anyway. + var/atom/A = new loot(source.loc) + if(isitem(A) && !user.get_active_held_item()) + user.put_in_hands(A) + var/rarity_append = "." + switch(loot_table[loot]/mean_loot_weight*100) + if(0 to 1) + rarity_append = "! AMAZING!" + if(1 to 2) + rarity_append = "! Woah!" + if(2 to 5) + rarity_append = ". Rare!" + if(5 to 10) + rarity_append = ". Great." + if(10 to 25) + rarity_append = ". Nice." + if(20 to 50) + rarity_append = ". Not bad." + to_chat(user, "You found something in [src]... it's \a [A][rarity_append]") + + if(unique_loot[loot]) + var/loot_left = --unique_loot[loot] + if(!loot_left) + loot_table -= loot + unique_loot -= loot + mean_loot_weight = 0 + for(var/A in loot_table) //re-tally the list weights + mean_loot_weight += loot_table[A] + mean_loot_weight /= length(loot_table) + + if(!free) + --loot_left_per_atom[source] + if(del_atom_on_depletion && !loot_left_per_atom[source]) + source.visible_message("[src] has been looted clean.") + qdel(source) diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 5affeba6d6..57919863f2 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -272,7 +272,7 @@ reports += config.mode_reports[config_tag] Count++ for(var/i in Count to rand(3,5)) //Between three and five wrong entries on the list. - var/false_report_type = pickweightAllowZero(report_weights) + var/false_report_type = pickweight(report_weights, 0) report_weights[false_report_type] = 0 //Make it so the same false report won't be selected twice reports += config.mode_reports[false_report_type] diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index 04f14692e3..851a041aab 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -483,7 +483,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark/start/new_player) if(!SSmapping.station_room_templates[t]) log_world("Station room spawner placed at ([T.x], [T.y], [T.z]) has invalid ruin name of \"[t]\" in its list") templates -= t - template_name = pickweightAllowZero(templates) + template_name = pickweight(templates, 0) if(!template_name) GLOB.stationroom_landmarks -= src qdel(src) diff --git a/code/game/objects/structures/loot_pile.dm b/code/game/objects/structures/loot_pile.dm new file mode 100644 index 0000000000..0886c1c8b7 --- /dev/null +++ b/code/game/objects/structures/loot_pile.dm @@ -0,0 +1,66 @@ + /* + * Loot piles structures, somewhat inspired from Polaris 13 ones but without the one search per pile ckey/mind restriction + * because the actual code is located its own element and has enough variables already. the piles themselves merely cosmetical. + */ +/obj/structure/loot_pile + name = "pile of junk" + desc = "Lots of junk lying around. They say one man's trash is another man's treasure." + icon = 'icons/obj/loot_piles.dmi' + density = FALSE + anchored = TRUE + var/loot_amount = 5 + var/delete_on_depletion = FALSE + var/can_use_hands = TRUE + var/scavenge_time = 12 SECONDS + var/allowed_tools = list(TOOL_SHOVEL = 0.6) //list of tool_behaviours with associated speed multipliers (lower is better) + var/icon_states_to_use = list("junk_pile1", "junk_pile2", "junk_pile3", "junk_pile4", "junk_pile5") + var/list/loot = list( + SCAVENGING_FOUND_NOTHING = 50, + SCAVENGING_SPAWN_MOUSE = 10, + SCAVENGING_SPAWN_MICE = 5, + SCAVENGING_SPAWN_TOM = 1, + /obj/item/flashlight/flare = 10, + /obj/item/flashlight/glowstick = 10, + /obj/item/flashlight/glowstick/blue = 10, + /obj/item/flashlight/glowstick/orange = 10, + /obj/item/flashlight/glowstick/red = 10, + /obj/item/flashlight/glowstick/yellow = 10, + /obj/item/clothing/mask/gas = 5, + /obj/item/clothing/mask/breath = 10, + /obj/item/storage/box = 10, + /obj/item/clothing/shoes/galoshes = 2, + /obj/item/clothing/shoes/sneakers/black = 10, + /obj/item/clothing/gloves/color/fyellow = 5, + /obj/item/clothing/gloves/color/yellow = 2, + /obj/item/clothing/glasses/sunglasses = 3, + /obj/item/clothing/glasses/meson = 3, + /obj/item/clothing/glasses/welding = 3, + /obj/item/clothing/head/hardhat = 10, + /obj/item/clothing/head/ushanka = 10, + /obj/item/clothing/head/welding = 5, + /obj/item/clothing/suit/hazardvest = 10, + /obj/item/clothing/under/syndicate/tacticool = 5, + /obj/item/clothing/under/pants/camo = 10, + /obj/item/stack/spacecash/c10 = 20, + /obj/item/stack/spacecash/c20 = 20, + /obj/item/stack/spacecash/c50 = 20, + /obj/item/radio/headset = 10) + + /* + * Associated values in this list are not weights but numbers of times the kery can be rolled + * before being removed from ALL piles with same kind. This is why I wanted 'scavenging' to be an element and not a component. + */ + var/list/unique_loot = list(/obj/item/clothing/gloves/color/yellow = 2, SCAVENGING_SPAWN_TOM = 1) + +/obj/structure/loot_pile/Initialize() + . = ..() + icon_state = pick(icon_states_to_use) + +/obj/structure/loot_pile/ComponentInitialize() + . = ..() + AddElement(/datum/element/scavenging, loot_amount, loot, unique_loot, scavenge_time, can_use_hands, allowed_tools, null, delete_on_depletion) + +/obj/structure/loot_pile/infinite + name = "endless pile of junk." + desc = "Lots of awful code lying around. They don't say one coder's trash is another coder's treasure though..." + loot_amount = INFINITY diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index cf10f87bf8..df5e6004ba 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -48,7 +48,7 @@ var/datum/traitor_class/class = GLOB.traitor_classes[C] var/weight = LOGISTIC_FUNCTION(1.5*class.weight,chaos_weight,class.chaos,0) weights[C] = weight * 1000 - var/choice = pickweightAllowZero(weights) + var/choice = pickweight(weights, 0) if(!choice) choice = TRAITOR_HUMAN // it's an "easter egg" var/datum/traitor_class/actual_class = GLOB.traitor_classes[choice] diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 370442d4c4..7f83bb9f9b 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -97,6 +97,8 @@ body_color = "brown" icon_state = "mouse_brown" +GLOBAL_VAR(tom_existed) + //TOM IS ALIVE! SQUEEEEEEEE~K :) /mob/living/simple_animal/mouse/brown/Tom name = "Tom" @@ -106,6 +108,10 @@ response_harm = "splats" gold_core_spawnable = NO_SPAWN +/mob/living/simple_animal/mouse/brown/Tom/Initialize() + . = ..() + GLOB.tom_existed = TRUE + /obj/item/reagent_containers/food/snacks/deadmouse name = "dead mouse" desc = "It looks like somebody dropped the bass on it. A lizard's favorite meal." diff --git a/icons/obj/loot_piles.dmi b/icons/obj/loot_piles.dmi new file mode 100644 index 0000000000000000000000000000000000000000..3d83d6612ec49b238a0934962192abac1d90d6f9 GIT binary patch literal 12091 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 B=b!)p literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index 3b3bb74df1..147c91c92e 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -516,6 +516,7 @@ #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\scavenging.dm" #include "code\datums\elements\spellcasting.dm" #include "code\datums\elements\swimming.dm" #include "code\datums\elements\sword_point.dm" @@ -1119,6 +1120,7 @@ #include "code\game\objects\structures\lattice.dm" #include "code\game\objects\structures\life_candle.dm" #include "code\game\objects\structures\loom.dm" +#include "code\game\objects\structures\loot_pile.dm" #include "code\game\objects\structures\manned_turret.dm" #include "code\game\objects\structures\memorial.dm" #include "code\game\objects\structures\mineral_doors.dm" From 122067c5f4e0fe81a722c68b961df7a0a3d1eac1 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Wed, 22 Apr 2020 03:52:45 +0200 Subject: [PATCH 02/36] wip --- code/datums/elements/scavenging.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/datums/elements/scavenging.dm b/code/datums/elements/scavenging.dm index b2ca7adcc3..c34fd8f430 100644 --- a/code/datums/elements/scavenging.dm +++ b/code/datums/elements/scavenging.dm @@ -67,8 +67,8 @@ scavenge(source, user, 1) return COMPONENT_NO_ATTACK_HAND -/datum/element/scavenging/proc/scavenge_tool(atom/source, obj/item/I, mob/living/user, params) - if(mob.a_intent == INTENT_HARM) //Robust trash disposal techniques! +/datum/element/scavenging/proc/scavenge_tool(atom/source, obj/item/I, mob/user, params) + if(user.a_intent == INTENT_HARM) //Robust trash disposal techniques! return var/speed_multi = tool_types[I.tool_behaviour] if(!speed_multi) From af3651172c1c4c60e1f8033e35fcd19ad8c08536 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Apr 2020 03:29:31 -0700 Subject: [PATCH 03/36] wow lotsa effort huh --- code/controllers/subsystem/mapping.dm | 24 +++ .../crafting/recipes/recipes_misc.dm | 9 ++ code/game/objects/items/crayons.dm | 9 +- .../items/devices/electrochromatic_kit.dm | 15 ++ code/game/objects/structures/window.dm | 141 +++++++++++++++++- code/modules/assembly/doorcontrol.dm | 47 +++++- .../autolathe_designs_electronics.dm | 8 + tgstation.dme | 1 + 8 files changed, 241 insertions(+), 13 deletions(-) create mode 100644 code/game/objects/items/devices/electrochromatic_kit.dm diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 89155cefb3..ffda2731b1 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -42,6 +42,13 @@ SUBSYSTEM_DEF(mapping) var/stat_map_name = "Loading..." + /// Lookup list for random generated IDs. + var/list/random_generated_ids_by_original = list() + /// next id for separating obfuscated ids. + var/obfuscation_next_id = 1 + /// "secret" key + var/obfuscation_secret + //dlete dis once #39770 is resolved /datum/controller/subsystem/mapping/proc/HACK_LoadMapConfig() if(!config) @@ -52,6 +59,10 @@ SUBSYSTEM_DEF(mapping) #endif stat_map_name = config.map_name +/datum/controller/subsystem/mapping/PreInit() + if(!obfuscation_secret) + obfuscation_secret = md5(GUID()) //HAH! Guess this! + /datum/controller/subsystem/mapping/Initialize(timeofday) HACK_LoadMapConfig() if(initialized) @@ -568,3 +579,16 @@ GLOBAL_LIST_EMPTY(the_station_areas) LM.load() if(GLOB.stationroom_landmarks.len) seedStation() //I'm sure we can trust everyone not to insert a 1x1 rooms which loads a landmark which loads a landmark which loads a la... + +/** + * Generates an obfuscated but constant id for an original id for cases where you don't want players codediving for an id. + * WARNING: MAKE SURE PLAYERS ARE NOT ABLE TO ACCESS THIS. To save performance, it's just secret + an incrementing number. Very guessable if you know what the secret is. + */ +/datum/controller/subsystem/mapping/proc/get_obfuscated_id(original, id_type = "GENERAL") + if(!original) + return //no. + var/key = "[original]%[id_type]" + if(random_generated_ids_by_original[key]) + return random_generated_ids_by_original[key] + random_generated_ids_by_original[key] = "[obfuscation_secret]%[obfuscation_next++]" + return value diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm index cf0e1bdec9..b26755d4ac 100644 --- a/code/datums/components/crafting/recipes/recipes_misc.dm +++ b/code/datums/components/crafting/recipes/recipes_misc.dm @@ -233,6 +233,15 @@ subcategory = CAT_TOOL category = CAT_MISC +/datum/crafting_recipe/electrochromatic_kit + name = "Electrochromatic Kit" + result = /obj/item/electronics/electrochromatic_kit + reqs = list(/obj/item/stack/metal = 1, + /obj/item/stack/cable_coil = 1) + time = 5 + subcategory = CAT_MISCELLANEOUS + category = CAT_MISC + //////////// //Vehicles// //////////// diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 3dad3877b7..f60edf2917 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -726,13 +726,12 @@ to_chat(usr, "A color that dark on an object like this? Surely not...") return FALSE - target.add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY) if(istype(target, /obj/structure/window)) - if(color_hex2num(paint_color) < 255) - target.set_opacity(255) - else - target.set_opacity(initial(target.opacity)) + var/obj/structure/window/W = target + W.spraycan_paint(paint_color) + else + target.add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY) . = use_charges(user, 2) var/fraction = min(1, . / reagents.maximum_volume) diff --git a/code/game/objects/items/devices/electrochromatic_kit.dm b/code/game/objects/items/devices/electrochromatic_kit.dm new file mode 100644 index 0000000000..aae886d397 --- /dev/null +++ b/code/game/objects/items/devices/electrochromatic_kit.dm @@ -0,0 +1,15 @@ +/obj/item/electronics/electrochromatic_kit + name = "electrochromatic kit" + desc = "A kit for upgrading a window into an electrochromatic one." + icon = 'icons/obj/device.dmi' + /// Electrochromatic ID + var/id + +/obj/item/electronics/electrochromatic_kit/attack_self(mob/user) + . = ..() + if(.) + return + var/new_id = input(user, "Set this kit's electrochromatic ID", "Set ID", id) as text|null + if(isnull(new_id)) + return + id = new_id diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 5dd4e7d987..07fd8142cb 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -1,3 +1,19 @@ +#define NOT_ELECTROCHROMATIC 0 +#define ELECTROCHROMATIC_OFF 1 +#define ELECTROCHROMATIC_DIMMED 2 + +GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) + +/proc/do_electrochromatic_toggle(new_status, id) + var/list/windows = GLOB.electrochromatic_window_lookup["[id]"] + if(!windows) + return + var/obj/structure/window/W = i + for(var/i in windows) + W = i + new_status? W.electrochromatic_dim() : W.electrochromatic_off() + + /obj/structure/window name = "window" desc = "A window." @@ -28,8 +44,15 @@ rad_insulation = RAD_VERY_LIGHT_INSULATION rad_flags = RAD_PROTECT_CONTENTS + /// Electrochromatic status + var/electrochromatic_status = NOT_ELECTROCHROMATIC + /// Electrochromatic ID. Set the first character to ! to replace with a SSmapping generated pseudorandom obfuscated ID for mapping purposes. + var/electrochromatic_id + /obj/structure/window/examine(mob/user) . = ..() + if(electrochromatic_status != NOT_ELECTROCHROMATIC) + . += "The window has electrochromatic circuitry on it.") if(reinf) if(anchored && state == WINDOW_SCREWED_TO_FRAME) . += "The window is screwed to the frame." @@ -52,6 +75,10 @@ if(reinf && anchored) state = WINDOW_SCREWED_TO_FRAME + if(mapload && electrochromatic_id) + if(copytext(electrochromatic_id, 1, 2) == "!") + electrochromatic_id = SSmapping.get_obfuscated_id(electrochromatic_id) + ini_dir = dir air_update_turf(1) @@ -62,6 +89,12 @@ real_explosion_block = explosion_block explosion_block = EXPLOSION_BLOCK_PROC + if(electrochromatic_status != NOT_ELECTROCHROMATIC) + var/old = electrochromatic_status + make_electrochromatic() + if(old == ELECTROCHROMATIC_DIMMED) + electrochromatic_dim() + /obj/structure/window/ComponentInitialize() . = ..() AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS ,null,CALLBACK(src, .proc/can_be_rotated),CALLBACK(src,.proc/after_rotation)) @@ -177,6 +210,24 @@ to_chat(user, "[src] is already in good condition!") return + if(!anchored && istype(I, /obj/item/electronics/electrochromatic_kit && user.a_intent == INTENT_HELP) + var/obj/item/electronics/electrochromatic_kit/K = I + if(!user.temporarilyRemoveItemFromInventory(K)) + to_chat(user, "[K] is stuck to your hand!") + return + if(is_electrochromatic) + to_chat(user, "[src] is already electrochromatic!") + return + if(!anchored) + to_chat(user, "[src] must not be attached to the floor!") + return + if(!K.id) + to_chat(user, "[K] has no ID set!") + return + user.visible_message("[user] upgrades [src] with [I].", "You upgrade [src] with [I].") + make_electrochromatic(K.id) + qdel(K) + if(!(flags_1&NODECONSTRUCT_1)) if(istype(I, /obj/item/screwdriver)) I.play_tool_sound(src, 75) @@ -224,6 +275,85 @@ air_update_turf(TRUE) update_nearby_icons() +/obj/structure/window/proc/spraycan_paint(paint_color) + if(color_hex2num(paint_color) < 255) + set_opacity(255) + else + set_opacity(initial(opacity)) + add_atom_colour(paint_color, WASHABLE_COLOUR_PRIORITY) + +/obj/structure/window/proc/electrochromatic_dim() + if(electrochromatic_status == ELECTROCHROMATIC_DIMMED) + return + electrochromatic_status = ELECTROCHROMATIC_DIMMED + animate(src, color = "#222222", time = 2) + set_opacity(TRUE) + +/obj/structure/window/proc/electrochromatic_off() + if(electrochromatic_status == ELECTROCHROMATIC_OFF) + return + electrochromatic_on = FALSE + var/current = color + update_atom_colour() + var/newcolor = color + color = current + animate(src, color = newcolor, time = 2) + +/obj/structure/window/proc/remove_electrochromatic() + electrochromatic_status = NOT_ELECTROCHROMATIC + if(!electrochromatic_id) + return + var/list/L = GLOB.electrochromatic_window_lookup["[electrochromatic_id]"] + if(L) + L -= src + electrochromatic_id = null + +/obj/structure/window/vv_edit_var(var_name, var_value) + var/old_id + var/check_status + if(var_name == NAMEOF(src, electrochromatic_id)) + if((electrochromatic_status != NOT_ELECTROCHROMATIC) && electrochromatic_id) + old_id = electrochromatic_id + if(var_name == NAMEOF(src, electrochromatic_status)) + check_status = TRUE + . = ..() //do this first incase it runtimes. + if(check_status) + if(electrochromatic_status == NOT_ELECTROCHROMATIC) + remove_electrochromatic() + return + else if(electrochromatic_status == ELECTROCHROMATIC_OFF) + if(!electrochromatic_id) + return + else + make_electrochromatic() + electrochromatic_off() + return + else if(electrochromatic_status == ELECTROCHROMATIC_DIMMED) + if(!electrochromatic_id) + return + else + make_electrochromatic() + electrochromatic_dim() + return + else + remove_electrochromatic() + if(old_id) + GLOB.electrochromatic_window_lookup[old_id] -= src + if(electrochromatic_id) + GLOB.electrochromatic_window_lookup[electrochromatic_id] += src + +/obj/structure/window/proc/make_electrochromatic(new_id) + remove_electrochromatic() + electrochromatic_id = new_id + electrochromatic_status = ELECTROCHROMATIC_OFF + LAZYINITLIST(GLOB.electrochromatic_window_lookup["[electrochromatic_id]") + GLOB.electrochromatic_window_lookup[electrochromatic_id] |= src + +/obj/structure/window/update_atom_colour() + if((electrochromatic_status != ELECTROCHROMATIC_OFF) && (electrochromatic_status != ELECTROCHROMATIC_DIMMED)) + return FALSE + return ..() + /obj/structure/window/proc/check_state(checked_state) if(state == checked_state) return TRUE @@ -263,7 +393,6 @@ if(BURN) playsound(src, 'sound/items/Welder.ogg', 100, 1) - /obj/structure/window/deconstruct(disassembled = TRUE) if(QDELETED(src)) return @@ -272,6 +401,9 @@ if(!(flags_1 & NODECONSTRUCT_1)) for(var/obj/item/shard/debris in spawnDebris(drop_location())) transfer_fingerprints_to(debris) // transfer fingerprints to shards only + if(electrochromatic_status != NOT_ELECTROCHROMATIC) //eh fine keep your kit. + new /obj/item/electrochromatic_kit/K(drop_location()) + // Intentionally not setting the ID so you can't decon one to know all of the IDs. qdel(src) update_nearby_icons() @@ -315,9 +447,9 @@ density = FALSE air_update_turf(1) update_nearby_icons() + remove_electrochromatic() return ..() - /obj/structure/window/Move() var/turf/T = loc . = ..() @@ -731,7 +863,6 @@ set_opacity(TRUE) queue_smooth(src) - /obj/structure/window/paperframe/attackby(obj/item/W, mob/user) if(W.get_temperature()) fire_act(W.get_temperature()) @@ -749,3 +880,7 @@ return ..() update_icon() + +#undef NOT_ELECTROCHROMATIC +#undef ELECTROCHROMATIC_OFF +#undef ELECTROCHROMATIC_DIMMED diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm index 1c9c1a0203..1b9e63abaa 100644 --- a/code/modules/assembly/doorcontrol.dm +++ b/code/modules/assembly/doorcontrol.dm @@ -3,14 +3,42 @@ desc = "A small electronic device able to control a blast door remotely." icon_state = "control" attachable = TRUE - var/id = null - var/can_change_id = 0 + /// Our ID. Make the first character ! if you want to obfuscate it as a mapper via randomization. + var/id + /// Can the ID be changed if used in hand? + var/can_change_id = FALSE + /// Show ID? + var/show_id = TRUE + /// Numerical ID or text? + var/id_is_number = FALSE var/cooldown = FALSE //Door cooldowns +/obj/item/assembly/Initialize(mapload) + if(mapload && id) + if(copytext(id, 1, 2) == "!") + id = SSmapping.get_obfuscated_id(id) + return ..() + /obj/item/assembly/control/examine(mob/user) . = ..() - if(id) + if(id && show_id) . += "Its channel ID is '[id]'." + if(can_change_id) + . += "Use in hand to change ID." + +/obj/item/assembly/control/attack_self(mob/living/user) + . = ..() + if(.) + return + if(!can_change_id) + return + var/new_id + if(id_is_number) + new_id = input(user, "Set ID (number)", "Set ID", show_id? id : null) as number|null + else + new_id = input(user, "Set ID", "Set ID", show_id? id : null) as text|null + if(!isnull(new_id)) //0/"" is considered !, so check null instead of just !. + id = new_id /obj/item/assembly/control/activate() cooldown = TRUE @@ -22,7 +50,6 @@ INVOKE_ASYNC(M, openclose ? /obj/machinery/door/poddoor.proc/open : /obj/machinery/door/poddoor.proc/close) addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 10) - /obj/item/assembly/control/airlock name = "airlock controller" desc = "A small electronic device able to control an airlock remotely." @@ -123,7 +150,6 @@ addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 50) - /obj/item/assembly/control/crematorium name = "crematorium controller" desc = "An evil-looking remote controller for a crematorium." @@ -135,3 +161,14 @@ C.cremate(usr) addtimer(VARSET_CALLBACK(src, cooldown, FALSE), 50) + +/obj/item/assembly/control/electrochromatic + name = "electrochromatic window controller" + desc = "Toggles linked electrochromatic windows." + can_change_id = TRUE + /// Stores our status to prevent windows from desyncing. + var/on = FALSE + +/obj/item/assembly/control/electrochromatic/activate() + on = !on + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_ELECTROCHROMATIC_WINDOW_TOGGLE, on, id) diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm index 86e11010bc..5d80b91087 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm @@ -74,3 +74,11 @@ materials = list(/datum/material/glass = 20) build_path = /obj/item/stock_parts/cell/emergency_light category = list("initial", "Electronics") + +/datum/design/electrochromatic_control + name = "Electrochromatic Control Circuit" + id = "electrochromatic_control_circuit" + build_type = AUTOLATHE + materials = list(/datum/material/iron = 100, /datum/material/glass = 100) + build_path = /obj/item/assembly/control/electrochromatic + category = list("initial", "Electronics") diff --git a/tgstation.dme b/tgstation.dme index 848d149ae0..ceed653acc 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -980,6 +980,7 @@ #include "code\game\objects\items\devices\dogborg_sleeper.dm" #include "code\game\objects\items\devices\doorCharge.dm" #include "code\game\objects\items\devices\electroadaptive_pseudocircuit.dm" +#include "code\game\objects\items\devices\electrochromatic_kit.dm" #include "code\game\objects\items\devices\flashlight.dm" #include "code\game\objects\items\devices\forcefieldprojector.dm" #include "code\game\objects\items\devices\geiger_counter.dm" From a9d0ce45b9eb6188856492798015ca85af93e005 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Apr 2020 03:29:43 -0700 Subject: [PATCH 04/36] wow lotsa effort huh --- code/game/objects/structures/window.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 07fd8142cb..6bc2ada140 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -52,7 +52,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) /obj/structure/window/examine(mob/user) . = ..() if(electrochromatic_status != NOT_ELECTROCHROMATIC) - . += "The window has electrochromatic circuitry on it.") + . += "The window has electrochromatic circuitry on it." if(reinf) if(anchored && state == WINDOW_SCREWED_TO_FRAME) . += "The window is screwed to the frame." From e3b987879e3b9a2461e54b7bfcceda5eebaac8f7 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Apr 2020 03:30:18 -0700 Subject: [PATCH 05/36] wow lotsa effort huh --- code/game/objects/structures/window.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 6bc2ada140..54590134d2 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -210,7 +210,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) to_chat(user, "[src] is already in good condition!") return - if(!anchored && istype(I, /obj/item/electronics/electrochromatic_kit && user.a_intent == INTENT_HELP) + if(istype(I, /obj/item/electronics/electrochromatic_kit) && user.a_intent == INTENT_HELP) var/obj/item/electronics/electrochromatic_kit/K = I if(!user.temporarilyRemoveItemFromInventory(K)) to_chat(user, "[K] is stuck to your hand!") @@ -218,7 +218,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) if(is_electrochromatic) to_chat(user, "[src] is already electrochromatic!") return - if(!anchored) + if(anchored) to_chat(user, "[src] must not be attached to the floor!") return if(!K.id) @@ -346,7 +346,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) remove_electrochromatic() electrochromatic_id = new_id electrochromatic_status = ELECTROCHROMATIC_OFF - LAZYINITLIST(GLOB.electrochromatic_window_lookup["[electrochromatic_id]") + LAZYINITLIST(GLOB.electrochromatic_window_lookup["[electrochromatic_id]"]) GLOB.electrochromatic_window_lookup[electrochromatic_id] |= src /obj/structure/window/update_atom_colour() From aeaf6ea102cd024fa2bfd08fa9c6152f618708c9 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Apr 2020 03:33:08 -0700 Subject: [PATCH 06/36] wow lotsa effort huh --- code/game/objects/structures/window.dm | 6 +++++- code/modules/assembly/doorcontrol.dm | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 54590134d2..1a5ebf17e0 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -352,7 +352,11 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) /obj/structure/window/update_atom_colour() if((electrochromatic_status != ELECTROCHROMATIC_OFF) && (electrochromatic_status != ELECTROCHROMATIC_DIMMED)) return FALSE - return ..() + . = ..() + if(color_hex2num(color) < 255) + set_opacity(255) + else + set_opacity(FALSE) /obj/structure/window/proc/check_state(checked_state) if(state == checked_state) diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm index 1b9e63abaa..6016fd6453 100644 --- a/code/modules/assembly/doorcontrol.dm +++ b/code/modules/assembly/doorcontrol.dm @@ -34,7 +34,7 @@ return var/new_id if(id_is_number) - new_id = input(user, "Set ID (number)", "Set ID", show_id? id : null) as number|null + new_id = input(user, "Set ID (number)", "Set ID", show_id? id : null) as num|null else new_id = input(user, "Set ID", "Set ID", show_id? id : null) as text|null if(!isnull(new_id)) //0/"" is considered !, so check null instead of just !. From 1b5e4b32cb8886facf8a342ad83406fa6e03719a Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Apr 2020 03:33:26 -0700 Subject: [PATCH 07/36] wow lotsa effort huh --- code/modules/assembly/doorcontrol.dm | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm index 6016fd6453..3c2d9fbce3 100644 --- a/code/modules/assembly/doorcontrol.dm +++ b/code/modules/assembly/doorcontrol.dm @@ -9,8 +9,6 @@ var/can_change_id = FALSE /// Show ID? var/show_id = TRUE - /// Numerical ID or text? - var/id_is_number = FALSE var/cooldown = FALSE //Door cooldowns /obj/item/assembly/Initialize(mapload) @@ -33,10 +31,7 @@ if(!can_change_id) return var/new_id - if(id_is_number) - new_id = input(user, "Set ID (number)", "Set ID", show_id? id : null) as num|null - else - new_id = input(user, "Set ID", "Set ID", show_id? id : null) as text|null + new_id = input(user, "Set ID", "Set ID", show_id? id : null) as text|null if(!isnull(new_id)) //0/"" is considered !, so check null instead of just !. id = new_id From bf7962d8f989ba0e1c5168a0b3f5c6bd2f6b7798 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Apr 2020 03:36:09 -0700 Subject: [PATCH 08/36] wow lotsa effort huh --- code/controllers/subsystem/mapping.dm | 3 +-- code/datums/components/crafting/recipes/recipes_misc.dm | 2 +- code/game/objects/structures/window.dm | 9 ++++----- code/modules/assembly/doorcontrol.dm | 4 ++-- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index ffda2731b1..526e4b98e3 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -590,5 +590,4 @@ GLOBAL_LIST_EMPTY(the_station_areas) var/key = "[original]%[id_type]" if(random_generated_ids_by_original[key]) return random_generated_ids_by_original[key] - random_generated_ids_by_original[key] = "[obfuscation_secret]%[obfuscation_next++]" - return value + . = random_generated_ids_by_original[key] = "[obfuscation_secret]%[obfuscation_next_id++]" diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm index b26755d4ac..940e6c134f 100644 --- a/code/datums/components/crafting/recipes/recipes_misc.dm +++ b/code/datums/components/crafting/recipes/recipes_misc.dm @@ -236,7 +236,7 @@ /datum/crafting_recipe/electrochromatic_kit name = "Electrochromatic Kit" result = /obj/item/electronics/electrochromatic_kit - reqs = list(/obj/item/stack/metal = 1, + reqs = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/cable_coil = 1) time = 5 subcategory = CAT_MISCELLANEOUS diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 1a5ebf17e0..143024bf97 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -8,12 +8,11 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) var/list/windows = GLOB.electrochromatic_window_lookup["[id]"] if(!windows) return - var/obj/structure/window/W = i + var/obj/structure/window/W //define outside for performance because obviously this matters. for(var/i in windows) W = i new_status? W.electrochromatic_dim() : W.electrochromatic_off() - /obj/structure/window name = "window" desc = "A window." @@ -215,7 +214,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) if(!user.temporarilyRemoveItemFromInventory(K)) to_chat(user, "[K] is stuck to your hand!") return - if(is_electrochromatic) + if(electrochromatic_status != NOT_ELECTROCHROMATIC) to_chat(user, "[src] is already electrochromatic!") return if(anchored) @@ -292,7 +291,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) /obj/structure/window/proc/electrochromatic_off() if(electrochromatic_status == ELECTROCHROMATIC_OFF) return - electrochromatic_on = FALSE + electrochromatic_status = ELECTROCHROMATIC_OFF var/current = color update_atom_colour() var/newcolor = color @@ -406,7 +405,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) for(var/obj/item/shard/debris in spawnDebris(drop_location())) transfer_fingerprints_to(debris) // transfer fingerprints to shards only if(electrochromatic_status != NOT_ELECTROCHROMATIC) //eh fine keep your kit. - new /obj/item/electrochromatic_kit/K(drop_location()) + new /obj/item/electronics/electrochromatic_kit/K(drop_location()) // Intentionally not setting the ID so you can't decon one to know all of the IDs. qdel(src) update_nearby_icons() diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm index 3c2d9fbce3..41b063f43e 100644 --- a/code/modules/assembly/doorcontrol.dm +++ b/code/modules/assembly/doorcontrol.dm @@ -11,7 +11,7 @@ var/show_id = TRUE var/cooldown = FALSE //Door cooldowns -/obj/item/assembly/Initialize(mapload) +/obj/item/assembly/control/Initialize(mapload) if(mapload && id) if(copytext(id, 1, 2) == "!") id = SSmapping.get_obfuscated_id(id) @@ -166,4 +166,4 @@ /obj/item/assembly/control/electrochromatic/activate() on = !on - SEND_GLOBAL_SIGNAL(COMSIG_GLOB_ELECTROCHROMATIC_WINDOW_TOGGLE, on, id) + do_electrochromatic_toggle(on, id) From ff9f18bdbdbb0fb1bfb67a308cf2485f4447d2a4 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Apr 2020 03:38:41 -0700 Subject: [PATCH 09/36] wow lotsa effort huh --- code/game/objects/structures/window.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 143024bf97..796db7a9c6 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -405,7 +405,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) for(var/obj/item/shard/debris in spawnDebris(drop_location())) transfer_fingerprints_to(debris) // transfer fingerprints to shards only if(electrochromatic_status != NOT_ELECTROCHROMATIC) //eh fine keep your kit. - new /obj/item/electronics/electrochromatic_kit/K(drop_location()) + new /obj/item/electronics/electrochromatic_kit(drop_location()) // Intentionally not setting the ID so you can't decon one to know all of the IDs. qdel(src) update_nearby_icons() From 2e35a42f4356cc9795fe3925a25d97ec154b196a Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Apr 2020 04:10:38 -0700 Subject: [PATCH 10/36] wow lotsa effort huh --- .../objects/items/devices/electrochromatic_kit.dm | 1 - code/game/objects/structures/window.dm | 12 +++++++----- code/modules/assembly/doorcontrol.dm | 2 -- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/code/game/objects/items/devices/electrochromatic_kit.dm b/code/game/objects/items/devices/electrochromatic_kit.dm index aae886d397..d582eab00e 100644 --- a/code/game/objects/items/devices/electrochromatic_kit.dm +++ b/code/game/objects/items/devices/electrochromatic_kit.dm @@ -1,7 +1,6 @@ /obj/item/electronics/electrochromatic_kit name = "electrochromatic kit" desc = "A kit for upgrading a window into an electrochromatic one." - icon = 'icons/obj/device.dmi' /// Electrochromatic ID var/id diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 796db7a9c6..a8c6dfb898 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -211,9 +211,6 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) if(istype(I, /obj/item/electronics/electrochromatic_kit) && user.a_intent == INTENT_HELP) var/obj/item/electronics/electrochromatic_kit/K = I - if(!user.temporarilyRemoveItemFromInventory(K)) - to_chat(user, "[K] is stuck to your hand!") - return if(electrochromatic_status != NOT_ELECTROCHROMATIC) to_chat(user, "[src] is already electrochromatic!") return @@ -223,6 +220,9 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) if(!K.id) to_chat(user, "[K] has no ID set!") return + if(!user.temporarilyRemoveItemFromInventory(K)) + to_chat(user, "[K] is stuck to your hand!") + return user.visible_message("[user] upgrades [src] with [I].", "You upgrade [src] with [I].") make_electrochromatic(K.id) qdel(K) @@ -341,8 +341,10 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) if(electrochromatic_id) GLOB.electrochromatic_window_lookup[electrochromatic_id] += src -/obj/structure/window/proc/make_electrochromatic(new_id) +/obj/structure/window/proc/make_electrochromatic(new_id = electrochromatic_id) remove_electrochromatic() + if(!new_id) + CRASH("Attempted to make electrochromatic with null ID.") electrochromatic_id = new_id electrochromatic_status = ELECTROCHROMATIC_OFF LAZYINITLIST(GLOB.electrochromatic_window_lookup["[electrochromatic_id]"]) @@ -352,7 +354,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) if((electrochromatic_status != ELECTROCHROMATIC_OFF) && (electrochromatic_status != ELECTROCHROMATIC_DIMMED)) return FALSE . = ..() - if(color_hex2num(color) < 255) + if(color && (color_hex2num(color) < 255)) set_opacity(255) else set_opacity(FALSE) diff --git a/code/modules/assembly/doorcontrol.dm b/code/modules/assembly/doorcontrol.dm index 41b063f43e..32e262ce65 100644 --- a/code/modules/assembly/doorcontrol.dm +++ b/code/modules/assembly/doorcontrol.dm @@ -26,8 +26,6 @@ /obj/item/assembly/control/attack_self(mob/living/user) . = ..() - if(.) - return if(!can_change_id) return var/new_id From f70490c61dce9205ae46979d0661191c3608e801 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Apr 2020 04:40:18 -0700 Subject: [PATCH 11/36] fixes --- code/game/machinery/buttons.dm | 8 ++++++++ code/game/objects/structures/window.dm | 14 +++++++------- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index ad3dd5d720..3a90707bbe 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -16,6 +16,9 @@ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF /obj/machinery/button/Initialize(mapload, ndir = 0, built = 0) + if(istext(id) && mapload) + if(copytext(id, 1, 2) == "!") + id = SSmapping.get_obfuscated_id(id) . = ..() if(built) setDir(ndir) @@ -260,6 +263,11 @@ req_access = list() id = 1 +/obj/machinery/button/electrochromatic + name = "window dim control" + desc = "Controls linked electrochromatic windows" + device_type = /obj/item/assembly/control/electrochromatic + /obj/item/wallframe/button name = "button frame" desc = "Used for building buttons." diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index a8c6dfb898..e4d93ea8de 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -299,6 +299,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) animate(src, color = newcolor, time = 2) /obj/structure/window/proc/remove_electrochromatic() + electrochromatic_off() electrochromatic_status = NOT_ELECTROCHROMATIC if(!electrochromatic_id) return @@ -308,14 +309,17 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) electrochromatic_id = null /obj/structure/window/vv_edit_var(var_name, var_value) - var/old_id var/check_status if(var_name == NAMEOF(src, electrochromatic_id)) - if((electrochromatic_status != NOT_ELECTROCHROMATIC) && electrochromatic_id) - old_id = electrochromatic_id + if(electrochromatic_id && GLOB.electrochromatic_window_lookup["[electrochromatic_id]"]) + GLOB.electrochromatic_window_lookup[electrochromatic_id] -= src if(var_name == NAMEOF(src, electrochromatic_status)) check_status = TRUE . = ..() //do this first incase it runtimes. + if(var_name == NAMEOF(src, electrochromatic_id)) + if((electrochromatic_status != NOT_ELECTROCHROMATIC) && electrochromatic_id) + LAZYINITLIST(GLOB.electrochromatic_window_lookup[electrochromatic_id]) + GLOB.electrochromatic_window_lookup[electrochromatic_id] += src if(check_status) if(electrochromatic_status == NOT_ELECTROCHROMATIC) remove_electrochromatic() @@ -336,10 +340,6 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup) return else remove_electrochromatic() - if(old_id) - GLOB.electrochromatic_window_lookup[old_id] -= src - if(electrochromatic_id) - GLOB.electrochromatic_window_lookup[electrochromatic_id] += src /obj/structure/window/proc/make_electrochromatic(new_id = electrochromatic_id) remove_electrochromatic() From 28da033111afe9857394579220c2f102462da8c0 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 26 Apr 2020 17:37:27 -0700 Subject: [PATCH 12/36] fine --- code/datums/components/crafting/recipes/recipes_misc.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm index 940e6c134f..cd254943ea 100644 --- a/code/datums/components/crafting/recipes/recipes_misc.dm +++ b/code/datums/components/crafting/recipes/recipes_misc.dm @@ -239,7 +239,7 @@ reqs = list(/obj/item/stack/sheet/metal = 1, /obj/item/stack/cable_coil = 1) time = 5 - subcategory = CAT_MISCELLANEOUS + subcategory = CAT_TOOL category = CAT_MISC //////////// From 42762c459e0891073672f70bc114ecf4b46fd78a Mon Sep 17 00:00:00 2001 From: Psody Date: Fri, 1 May 2020 04:14:34 -0400 Subject: [PATCH 13/36] Lets actually use all the positions --- code/modules/jobs/job_types/atmospheric_technician.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/jobs/job_types/atmospheric_technician.dm b/code/modules/jobs/job_types/atmospheric_technician.dm index 019e50799e..66861033fd 100644 --- a/code/modules/jobs/job_types/atmospheric_technician.dm +++ b/code/modules/jobs/job_types/atmospheric_technician.dm @@ -5,7 +5,7 @@ department_flag = ENGSEC faction = "Station" total_positions = 3 - spawn_positions = 2 + spawn_positions = 3 supervisors = "the chief engineer" selection_color = "#ff9b3d" exp_requirements = 60 From 37d1c469eac2ab0a040e995f498cf2c769915c86 Mon Sep 17 00:00:00 2001 From: Sishen Date: Fri, 1 May 2020 06:59:54 -0600 Subject: [PATCH 14/36] hnmhm cultplain?? --- code/modules/uplink/uplink_items/uplink_roles.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/uplink/uplink_items/uplink_roles.dm b/code/modules/uplink/uplink_items/uplink_roles.dm index 28479f8da7..da25cf5298 100644 --- a/code/modules/uplink/uplink_items/uplink_roles.dm +++ b/code/modules/uplink/uplink_items/uplink_roles.dm @@ -89,6 +89,7 @@ desc = "A reverse engineered clockwork slab. Is this really a good idea?." item = /obj/item/clockwork/slab/traitor cost = 20 + player_minimum = 20 refundable = TRUE restricted_roles = list("Chaplain") @@ -97,6 +98,7 @@ desc = "A replica of a Nar'sian tome. This is probably a bad idea.." item = /obj/item/tome/traitor cost = 20 + player_minimum = 20 refundable = TRUE restricted_roles = list("Chaplain") From a1f252d5588e255d12ff3224e7cad4a2f00c19ca Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Fri, 1 May 2020 19:48:27 +0200 Subject: [PATCH 15/36] Fixing several reported issues. --- code/datums/elements/mob_holder.dm | 2 +- code/game/objects/items/devices/multitool.dm | 5 ++--- .../sprite_accessories/_sprite_accessories.dm | 1 - .../new_player/sprite_accessories/ears.dm | 17 +++++++++++------ .../mob/living/carbon/human/species.dm | 16 ---------------- .../mob/living/carbon/monkey/combat.dm | 8 +++----- .../surgery/bodyparts/dismemberment.dm | 2 +- icons/mob/blob.dmi | Bin 1294948 -> 1294952 bytes icons/mob/mutant_bodyparts.dmi | Bin 33996 -> 33997 bytes icons/obj/advancedtools.dmi | Bin 2446 -> 2474 bytes icons/obj/items_cyborg.dmi | Bin 2344 -> 2461 bytes modular_citadel/icons/mob/mam_ears.dmi | Bin 10613 -> 10605 bytes 12 files changed, 18 insertions(+), 33 deletions(-) diff --git a/code/datums/elements/mob_holder.dm b/code/datums/elements/mob_holder.dm index a5c6e2725d..d770e0f30d 100644 --- a/code/datums/elements/mob_holder.dm +++ b/code/datums/elements/mob_holder.dm @@ -164,7 +164,7 @@ release() /obj/item/clothing/head/mob_holder/mob_can_equip(mob/living/M, mob/living/equipper, slot, disable_warning = FALSE, bypass_equip_delay_self = FALSE) - if(!ishuman(M)) //monkeys holding monkeys holding monkeys... + if(M == held_mob || !ishuman(M)) //monkeys holding monkeys holding monkeys... return FALSE return ..() diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index 63092b5a13..4d0ed362fc 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -68,10 +68,9 @@ update_icon() /obj/item/multitool/update_icon_state() + icon_state = initial(icon_state) if(selected_io) - icon_state = "multitool_red" - else - icon_state = "multitool" + icon_state += "_red" /obj/item/multitool/proc/wire(var/datum/integrated_io/io, mob/user) if(!io.holder.assembly) 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 ab278b2e82..0b25132e00 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 @@ -55,7 +55,6 @@ var/gender = NEUTER //Determines if the accessory will be skipped or included in random hair generations var/gender_specific //Something that can be worn by either gender, but looks different on each var/color_src = MUTCOLORS //Currently only used by mutantparts so don't worry about hair and stuff. This is the source that this accessory will get its color from. Default is MUTCOLOR, but can also be HAIR, FACEHAIR, EYECOLOR and 0 if none. - var/hasinner //Decides if this sprite has an "inner" part, such as the fleshy parts on ears. var/locked = FALSE //Is this part locked from roundstart selection? Used for parts that apply effects var/dimension_x = 32 var/dimension_y = 32 diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm index c91bd633a5..3ba1e8b3b4 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm @@ -29,9 +29,10 @@ /datum/sprite_accessory/ears/human/bigwolfinner name = "Big Wolf (ALT)" icon_state = "bigwolfinner" - hasinner = 1 icon = 'modular_citadel/icons/mob/mam_ears.dmi' color_src = MATRIXED + extra = TRUE + extra_color_src = NONE /datum/sprite_accessory/ears/human/bigwolfdark name = "Dark Big Wolf" @@ -42,15 +43,17 @@ /datum/sprite_accessory/ears/human/bigwolfinnerdark name = "Dark Big Wolf (ALT)" icon_state = "bigwolfinnerdark" - hasinner = 1 icon = 'modular_citadel/icons/mob/mam_ears.dmi' color_src = MATRIXED + extra = TRUE + extra_color_src = NONE /datum/sprite_accessory/ears/cat name = "Cat" icon_state = "cat" - hasinner = 1 color_src = HAIR + extra = TRUE + extra_color_src = NONE /datum/sprite_accessory/ears/human/cow name = "Cow" @@ -196,7 +199,8 @@ /datum/sprite_accessory/mam_ears/bigwolfinner name = "Big Wolf (ALT)" icon_state = "bigwolfinner" - hasinner = 1 + extra = TRUE + extra_color_src = NONE /datum/sprite_accessory/mam_ears/bigwolfdark name = "Dark Big Wolf" @@ -205,12 +209,13 @@ /datum/sprite_accessory/mam_ears/bigwolfinnerdark name = "Dark Big Wolf (ALT)" icon_state = "bigwolfinnerdark" - hasinner = 1 + extra = TRUE + extra_color_src = NONE /datum/sprite_accessory/mam_ears/cat name = "Cat" icon_state = "cat" - hasinner = 1 + icon = 'icons/mob/mutant_bodyparts.dmi' color_src = HAIR /datum/sprite_accessory/mam_ears/catbig diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 683c3e18fd..e3a7b72f8b 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -909,22 +909,6 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) standing += accessory_overlay - if(S.hasinner) - var/mutable_appearance/inner_accessory_overlay = mutable_appearance(S.icon, layer = -layer) - if(S.gender_specific) - inner_accessory_overlay.icon_state = "[g]_[bodypart]inner_[S.icon_state]_[layertext]" - else - inner_accessory_overlay.icon_state = "m_[bodypart]inner_[S.icon_state]_[layertext]" - - if(S.center) - inner_accessory_overlay = center_image(inner_accessory_overlay, S.dimension_x, S.dimension_y) - - if(OFFSET_MUTPARTS in H.dna.species.offset_features) - inner_accessory_overlay.pixel_x += H.dna.species.offset_features[OFFSET_MUTPARTS][1] - inner_accessory_overlay.pixel_y += H.dna.species.offset_features[OFFSET_MUTPARTS][2] - - standing += inner_accessory_overlay - if(S.extra) //apply the extra overlay, if there is one var/mutable_appearance/extra_accessory_overlay = mutable_appearance(S.icon, layer = -layer) if(S.gender_specific) diff --git a/code/modules/mob/living/carbon/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm index a06d65ad4b..1b0856bfcd 100644 --- a/code/modules/mob/living/carbon/monkey/combat.dm +++ b/code/modules/mob/living/carbon/monkey/combat.dm @@ -111,7 +111,7 @@ if(pickupTarget) if(restrained() || blacklistItems[pickupTarget] || HAS_TRAIT(pickupTarget, TRAIT_NODROP)) pickupTarget = null - else + else if(!isobj(loc) || istype(loc, /obj/item/clothing/head/mob_holder)) pickupTimer++ if(pickupTimer >= 4) blacklistItems[pickupTarget] ++ @@ -126,10 +126,8 @@ pickupTarget = null pickupTimer = 0 else if(ismob(pickupTarget.loc)) // in someones hand - if(istype(pickupTarget, /obj/item/clothing/head/mob_holder/)) - var/obj/item/clothing/head/mob_holder/h = pickupTarget - if(h && h.held_mob==src) - return//dont let them pickpocket themselves + if(istype(pickupTarget, /obj/item/clothing/head/mob_holder)) + return//dont let them pickpocket themselves or hold other monkys. var/mob/M = pickupTarget.loc if(!pickpocketing) pickpocketing = TRUE diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index 66bca919c4..59cfcccde1 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -295,6 +295,7 @@ O.Insert(C) update_bodypart_damage_state() + update_disabled() C.updatehealth() C.update_body() @@ -302,7 +303,6 @@ C.update_damage_overlays() C.update_mobility() - /obj/item/bodypart/head/attach_limb(mob/living/carbon/C, special) //Transfer some head appearance vars over if(brain) diff --git a/icons/mob/blob.dmi b/icons/mob/blob.dmi index 6964160c042f7f5d258de17430c8614deb9f38d5..a197581533c055a36e286bd090c1f9b6eca3f4f8 100644 GIT binary patch delta 536 zcmaFT;{T$>e}YQ=rmB#L5|`BC)N?^esUFcL`~J#Z>6n^T-khn>So7yu_Dp-{A5nGd%{D}=Kg6sR8^o&V z^EgmK#ygK?iGk-KhlEIu;<^iMk}V=^(Vn+`t}ih#-m#uN@qqWzdd1dEi9Z_K+<7&7 z-hVayI6LpoCEvphi&NA+5^cKFF6zvRn8;#ue0vyA`@|<=i9)4%+6w8_VG8fLm%Dau zN{_lPR~+=h;<1=^r`7bMt2(MT{Hgi7;m!oBuUmavXGu*>j^E>S>Er)sUX{SVGmb?n zzWni{`S+sfF^^{VJYQ0Caa~A#(L(JQ| z+Fc6&ZXk5$(($tQ*Pbzb|8-)|w)abKdz~t;TXjS|Bi+_+B~zo%F0PHLXFVSlzZ94@ zn^ou9>JQ?I!6)RFOZctg2m

cM7az0ZdKI}_3L z$(NLJ>xP{1lmv^%V%lG-rXSOq7`fq1&EE??3-|PG_2o1*Giu&g;odm?fBsd$j;q;H z_W$0xe3`>JgJbT(Ev~bJPPXXPPxO8IYhJR{-}Rk|i|m8)q-wY}E$Q{r>RfY@C-wWq ztc~|-f3E)al`a43L-{a?fTO>A*L?kdf8)oz{xfNOQ?>+d|Mk-R@6Rm)KVDB=e%I-* z>x1>Z%ZpE!+cb+@S>$@N+`oF6>+D5OHDCIdB`!u%&L`{**Tc6r@8M^*mol< zp);4Rm*rnelj-{9w02wmQg7BYb?eX!;Vs+c*jF_$i!O7@@id-dpfh*!+eBxx-*bO+ zE7+cp`(XS(y7@k1`+Y_bW&&bnAZ7t#Rv=~rVs;?r0Afxc<^p1FAm#yLULfWJVtybN Q0AfKP7TSKFQMmH}0024sN&o-= diff --git a/icons/mob/mutant_bodyparts.dmi b/icons/mob/mutant_bodyparts.dmi index 2f7f9b5be91f464a907cc24e72581d74d4359190..9c531a3df26d0fa797558d558da4e76f2a41ce68 100644 GIT binary patch delta 507 zcmVne!p0X z@?nwxMjy1Zq7b+5Kjhg?*HMW=e7wmsg<7iEe+dyHib7m9RRnFS&^Q-WbvOUESe93L zR%;(bA#U?*|k9NtDwNQ)tB-+A)B6m@UF8piwFvQYqV66+^rLko#7bY5lHdTd##+ep$f`* zY9$9kH?2VyvhKV=>U?^{L&JI=tTgBow`k+FG0cje7)DxPZ`Vi@aoxkp>&2 z|1q49ETM5$vR%em$=8f3>ltL};IRX?YJwla%GLX-0l(E&hNpc*QEbM4qc5#yyp@5T zSXXGwew>w#(kBr?n;l5XiRE*i)o5TZ3Nd^4;*)0{ciPqi;Vlfdi}|t?<-;QX3+Fa-JeviJgtI;Zj)J-p{VxCj delta 506 zcmVn{;*hz z@^O*>kr<43q7XM9KjqoZ)KQBD8%d>bpPw;@;8;Kqfru>q65Sd*)bwJLKIrFm4Vy39-@g>C}At{ z-*dBbv4itntbzt?tK0GiA)B6mK;OBVMFb7lTBCF%ck2XXXE?@p1X6tTUTcpoR6%>B zR&pRr(^|rDJwB?i#BMiWmf#mF#38x;HiVe1%%c($xG%KX=Eem ze+(xiOK81QY?t*;@in8$dI4EFcq=U?A7`bb^hrc8b_a@bV)>S5wY0Dog_wPK^~p1oJLBqs@E3N?d!iFgK?%Z7lsw^N zl_2~?$rDa%3Bo5$p8js^Kq=!CZEKAw^9{k^GDzu}u$aO9nMg5l3IAan!<+p5j={a3 zNRhAv`fDlyL$wC_P38qm;9WAu5uBuqa}rt9VFsl9zP>SoOR+BGa5)rxbZck>>$cqA wuCzxtBloChYDqq^9RWOt>Wpo?JNNvxm@i9FJ}&aVKeuw#pe3hivp)ikf+Upsf&c&j diff --git a/icons/obj/advancedtools.dmi b/icons/obj/advancedtools.dmi index 974202dd58fd66882c1e24c2fbd2c0fc85419d44..19240a60eb4e8464588331abef7ee46309dd2264 100644 GIT binary patch delta 2464 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 Bh|~Z8 diff --git a/icons/obj/items_cyborg.dmi b/icons/obj/items_cyborg.dmi index a4bd75f7e51517d6e97e634cf7ee61b32a3eb9f7..769d5492c64ad8a7027401a2cef929e02d8f77e4 100644 GIT binary patch delta 2239 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 Date: Fri, 1 May 2020 19:50:53 +0200 Subject: [PATCH 16/36] leftovers. --- modular_citadel/icons/mob/mam_ears.dmi | Bin 10605 -> 10453 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/modular_citadel/icons/mob/mam_ears.dmi b/modular_citadel/icons/mob/mam_ears.dmi index 55d41e33f59f31d80b345892e629602bf6668fe2..a3f09819f25890acbcc3d9dc2bff60b154efed80 100644 GIT binary patch literal 10453 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 literal 10605 zcmch7c{rPU*KSm6XceiqRa%1X&W2K|HN;S@U5akqHBVJDq2^h%Y|^UIO^rp-Xw_Ij z5E4qM8e&Wkq!mL+%p@d|oX0-zxz6=o-*>L_$G6}2k0dVF^Zcf@*1hg^uivwKriMok zOCAP+Ku7QVYG4im9gx}o2=D>_X?`|z8U*6$j`-aw$iOx5QGn;;AWuJE5Gd>oGPBK; zaz!)&-*?~Yv7^Ef;%VKBKCdnun~^qI`$ajp)72-9zI@|gowFro3G(vQ#_lOIH(GaN zqxEzJp(MiU_-gs!A!TGEa~);%qQ7K1eSX98)6enX=p1S1qK*<(_nUq1KKa_I^N|T? zvlQwA%K2g5?fW@p&V!eZo;LARUy5lR`g+ za41#HwKGQzQpCYFda$v=s+;R!Ua8yKYGX{LbV;J@bF%|Awep{p?iHOoP$OiWck351 z(2W_}kdHKQ-;*bIWpCV;m%YJ`-vwDXK8$~U`NbGBJpJeR4fg z{{*k^L6$lx-=?b1YiD-mx}xvR7vZrRYG5l(zZ%_B*`Od*-UXG~CvD?dZ3UN&w)-|1 zUiNu+U0!Lw`zpuc`przr6JM7~TYTYv@k`L@#0879Adn2`j)C6qVQ-eFbUc2s&Og6K z)|BM?W@DvhEaD@f{YYS`GTB+rRrP3KXRDkw@7$ZKuD#dMB`#Z%(Or2c*ad5EVz!!U zzoe~ix5T4U&sB^}Pel`DC?(ky5781IbL`6=mWSSUOV_vFwai{m`gL)Wr?3}s59{dG zf?y->mSK;AZpy60`}J_QR>4#)9p<6NnJahPTG9zEbci1{sJMcP1tZYZ!hZ(9Ig(U>$#DVS%HDAY;bgxqRN}3ODdwpmQWW~-z=Uc z*yMky(AjM)xv_Sd5k?@^PA%wNA)(h-Tw_JN6v*`7@%DiZMtODI0`jM|NO1;NCuaLW z2c-)|UZr%+r8q{v{#_7#%X)$MSi-yHAxmqg_GpE4LtjEY4*0ct4LSgNw;8GniVZp- z07^9l@qmT|Wk9+bJO@F)o{t5A77vPoWb*c(68k$InzG@UC7Cawkt4yxPg2F^OCJ61 z%^p)Q)pUktx`xV6ID2E)QQ{j*%18?HO$b<#?;L0-e<~|~(W>_4vd4ScVn@sV!9i3NIaB8l9i3;AnT>N>E1V4z4fS}*8oSOt zMkKr@f5q;0hku1Dp^0MCW6#=4tX_2`u65y|xi>()w$LEkmV;;FgQ$?A+Z}!jH6NeyfJo-MIo;J%xtvlEZ2?~!G`vb=e=kl6 zQHgIRhVqopFVW@=SKoL#m}WSVS3)NIv^gez4_?@tVsmon;yxJa1PX#;lAD8ly5`<= z^$@16^+D;EnDDA`7Poor(-KqGCX#QKgxGPqDANR%OkuvNlA=SR3VS?}~)Gy*(1@&*f4q9dBvHXtCJP7(33+ zsO6p4K4zucrrWl@Pv)I8(=RR*j`E_%2k7X+QIzpthR5;#U6%j<`%tQs$|dAWqf%;R zoT5-6?r0(3cejJ0R>NCwL&f>qWLp+wNB{h>IKs+{>8Iyqn&UI0`pbM!Wy_(rK;z)$ zI9d_UTBXzrltRvvZ(4mkjXNU^kkExqxQ$V?S{?0yfULwzXrA_0^`4i| z<$89D)g;FO-50748kfxk`@{R2SZUiqei7fLKI;kvt^Sms`7u(Hm^Nqc_4&(>*)l=d z1>}gEbtJ}KHkOuJ;MlJwN4mqk!h;q3(LC zW*NhI?KV9q^QFNaM8v(SRW5&B`i1TBwDl1CI&yD_ok2(2ySzA?o?92UW#sycF?5W% zSBs|Rsv^tv;`V#+dM;vT^o41?k2Xl?*?t5Eiu@-+{9g_2>we&C_{Ht!^rppY=r8xC zsrQyZPH5U)&@;q!W)MA=D6h$^t@;)K7*vF%STuK~Q!RL^zo~Z~EfULbGR+w! z_0%GE%h_eT4L=D0jF{742*dtY&f_M!&`bt5sbNabCql9OtWW3NrO-Rib| zYts_m`&ogbBVDfo$UD1K&7d{-a43($ojO`YHI`~VZP4+s0@*^VCJYJd4Issp%R$Fp zU0I8XI za!b(RV&E#b=IJJ3Zw35J7kHh7?s-|%`P)c#p(g3N%xGx4;a*r7Pw9B3S^rEPJK}dE z?Hd@ZRJlH=u@GPrNhkTAxGnSq1zhuG-3k)df9b98ew~8Gn^ACG?O_a|t@CvmiD}!G zB+l5ls5&7&A+o}?k7CVMa@L{_dbsIc6NDsN%l_gV(OC#tB~-K520dN|4zq$cn^Pz< zn7*@Fr!+p)HGA-J*wTkR>c;0>vnV#kwFmmk7gybOGm#_bss$iEOF+c)`$s1{a^Pxy zsIyBqXV~D;);$j^=Eg_nvTTYOPzUdH^PGPS+3$F~Sf1+ki*N2erXR|*lqTBb^r+&Y5R2=N7{D||$5rOHahBju5T+y1w7|}uej|U6 zv}JcJ^e%=AJBBr`DC5$?F9wgRIq?^)Xel5So6wKOBgQ)J(YbVhRJ+VUTL5%!j1QM^VU;xA zs`GQ`cmbKokzw|Bv`Wa`fw1I;u2!Ha*rP;}j7`x?26H#Rr&(zp_cNgFSIlPY?H6u6mXol*UPLj*U zmp7k&2@(K9$1>>1*WuAE;}FZn-vjRt^XC@|ZP*h>q1`!e;`hkyHe6$GHg^{~qeJ#) z-z76T{Ue1cxN2QFFq*r%unZ7IslvJvb^9KH;Zq80T}IJ59n|xOk)#Q(?`d7o%Ac+{ zfAx6s;aPf9GTUsQ;_u#c`S)@B|HeyN02&PHNjLX0FsP{Wsp(U!CpQE283TP3V}8E< zlkruV;N5fHFn;PuXYMI|N3)8D5vjKId)I1pv{T(%h`|Do$qtJHUoSjN+`-^jnE4;g z^-Cim)oQ#{c-$iOa+IR&p!7fqKZd?p$%mD#(i?RI2+zaZCEPsE zH^Ma%dPFb&^fPe$`K`FUqQ{SICmb#AJ0{%Y#dv%3xWH|dRJ$D6qmHi;=(twRoVmV` zY7<@>{N~a^9&t!$W3#_9vx2-$&n5ceIHGQnCDg^5l1=laX0fT?E^gbMoVbCs;JSf? zhyVhq$h{Ol_~y5Z!8&rn{Gz>9eTq}@hg+qtUP4OeDF{Qrlx;)z8))8YDWL9(1L#Tq zn_C^Z2o;;t^4~s;go*hFoQtO&&U6Bud=s*BU0XuQHbn58+{~=199_<|K)yh&&~g98 z0B9ra*r%A(uv2z&Gvi{6c%f|LD%3<;*#Eamd9q)(EN|5bc=DmiQd@iKY^nQ zr?!R;!@i#bcpe)umO|xSs|mJNbFG^)%uOyfb6=(O)fAhdF8!z%)wNmzSfn^O(myyO zFb#MmM=$jFxZYd8McLW^L(;1&^A5`ZaT~5ly0A;bcq#=htQIGnvnszSP-r}yDOIC{ zxr=!dPthMsoPMiPD$e7H88*CVW0=8LX~pv%qN z>VhehQ7DKou_^3Au&-j^8A(vt$vwX|)j0Ox;?C~+Q<&K~l9r|f*N%K2h5n-PP=5{N zbUY4wa99}f{ye4XRu1f?X`pZaQXu`zIT-F|nLlW()yZAAKX=Xlgg?`z?g?l4+J2rw zxSMrWq54o8P(Ka(&TZj^XvlKZ54&BuAZ7TG-`8Bn| z$hTl{c4z3i!{ayB?zUF9i0rBnn@pG(nDQh~KnokLj~d=D4^qJ()hi_!%=Kk0olpP59!SHS^ujmRYP3*IkIEN1_!-y zHf#Qt$a%-U{z0ME#QUURq-WKe;K>2WZ{yqegHHDo>oS1c!A2CL{Hw=O%6OxTtwXjJ z!!Tpw(6LGXin%Yd>(jH|zj3|mpIIqH8I*%{fm%S1x;s6>$SQ}6-5HX!X-oCu@lB@K z^em>GJpcTTXycoSd6mkihIY5#KmnwG86xm3OQ&tX0qeDcusRb9s5|}VQ~DI(0U~PR>9|Alfg<0_Q=?AAY%d2i!G^5V+;2% zjLi(rL$9zIWJcp~DU?NSu2=UAMM|XpcCn5fJlxqt2+r$q2>e=b6l2Dv5~;*0YEPz; zdu8PA#@y#No@?8E>STEuoE)`j;?DN_jT{4v2ZL8^HW|C?0-%zH0s?S-W7f;spyOVD zZB7I8^p%TmSI z-T7SRHqp_rW5-FS2bi4F7RSHcE}}E}4F7EElMy$!e6^Nqf@c35EDj}TM{Iql)VN%u z8he^(<9tkCI?q(n>(DFg&0krd@e%Pz@O!g*NGjc#E;Dd?k5NB<^6rfYiFMlG9w&55 zWoB#esd&Q^fc0-O0T}B!$GB!oJVpGis1A=_Qm+$1=3pw5F6ZJ|5BDzNrfzO;yg8SQ#0zN+UBZ0g@eH79Y1 z@u_L3b?o-J%BOI$-a9ER`k9%ZKCJVQKAs(5gI7g9C-aL)H&0E=3y^A7kgsVR;ufn@ zgAt!@V+r?LNaNW7w2`?qjtDdvSYR<~y-nGf^`m(3jbMKSd!BX=RCqa>0i5UdtgC_D zOGX{m{pQ3E%1@s?Cz7mB8g)ruAU9`}>-NX@MN!dDc^tF{z1WihoT~it0Lm0(Lq!9G zi42Gz_dWv$585eDpLnq5A+J#lP-S6^&l}CERSpq*8iRh9FT`J$5!cYPP+TVQ))OUM zX+I4TfT2F$zMVTP>tZ2A?Z=j@@g8_=*&M@e!g4t*q?F#oY&Wgl#0R4QgqE>t=I;UvIp_|&L9ta5p)LGZXt_oashPO_velMmU;zLa2~_8;T1=av|sp>or}x*#V* zc_v22zK;0d=lc6Gp4cF_|ABzZm_Dbo$K0l7b6>BpR&nG-xQGylR&P%26;d8_96;Hq4Am`!+i3Z?=kh#ddlO zK~f@D9_12%QN9Apag^2yd#q3q#oi{Wdj{?oZ|$WEK>FY;Qx=!eJ0ioOtbve0Nue`x z!Vyc}62Smf#^z{YArv0Y^vJd4C)@|rh5F+lfCk=WUGL<1TO|r8k$_&LbS*6TwY%;< z08I3HsHWh6KQxr$eY{W1Hm5VM$U(E}Y6!>f^S2=oerINS#`^CXke6?g0HMk$!g@9_ zwO1o&Jke5F7__MfSEWAczlL$(t#v;=!6Ty?e-|A+oSpg_eiSWudblU|?I)k{bMwNS z<<*{g@(;SKv(`^?!KWw<0hg@Nd3IQ+h0Cd&CsEU_WS`-=R-Jgs2GTznQ<=<=;SSv=q@s z@yv`$XI%8=XlBS!6Z^cr*xsgt!{xR?*{+20?vEv_Er^qj(^;+&yASPf%0c3!#0Peh zPp*mgX{kJ~n<$0`6=o+tYp@ou_U3c3Xvo5z zzDjk!)+i*VEZv(+mbaemA=HybLRq5gzBoyJom0*xk4Z;mqg1bzx)yVfxV?h)#@BND zZ*N8o)`LmxIHzc|$Z!r1C$51RDHa`ZoMLlO(H;;zB8j{xYgrq9_} z`I_Y1dpxluWEyCu<_M_ztHr+VVr94h5PeX||D^F^s~$VjO>CmpBk^?Vi>ktt0kGDW zm&B17j+qe-MhfDtKm3t)ck5Z(8!*|K`KvO+d6zLLS2XUz))wq*9S?@40$@3!rJG`{ z_fAmS|HkynT-thlb#G*}cs0d{e5j)#!L+^e!wZq?U3H4lII0ikGT`Y0OsmZ8kpki| z9f(fM4bSt6XB4GhN8IynynyT+f3S8vYvemE@jagP^a_ale#yp`J3itcGhQi+fIli0Cs>aq+vrO*ogoU2!?O$Tq(@hpqdwG zOYpxu7u);{AZd53o~V^a3YK*2>A?n@V2fpJ70P;QNWHZh42gAfN@51qMHa|H!zJBdK`iJ)T%V3;>wZ0gj%OjySYIFw@BbeOYtNg1UFT(oI@!zF-{) z4}#zk%n-D;j(-n;CG6qsljbL%1`Eo_2i^02R%$Ghwdrw@a+{IlCw$#eKs!> z+8ZWGPZrS&2YXx9P_Sr`9h0@6EQfzIJPY>I2RtGR7k~IaBgfF*Zkl_M)gFgxPw8`Q zC3U}587mZ<2(mmF8aZEPhAVQw`4ww{eAA z+xbh^m5?zIeF64K6Xui$Ag@L7&6;%d{BKW*gI@)8<*tV)nRSwUr*aXQW+#Y$F6J@V zzchuDO(F|AX}r@e*1NTsdRaN=6{p-Aq8a8&Lz1>Da&mKQ^@kMCi`xM;G?mJJgFnD3 zckxj^Dq;X_8ll(-FYS~`87Q7hcDQ>e#f=nU*JF~@%n~c4?H31|KVQkU(`L)Z}ceMcz*8HH4upZ{{CHn zQZSfo*a6_a`*GNJz=YGY>pyh84}#Y!e^G*mZz=n@KBa)T?zZ^sM=rF>*Nd-C-Dj8+1Ha3sc*j z7TSwG^s0nilFyQ=3k)~`POF!5Tb(Q>Facgad|v8!dmaixWD#pPXb45mg9Nk`l;&%7 z4gwWM7udggjtSJ^xEPI?Jv?&6T6PxTsU#Sb>_(-)@tuH_O5ou}Es-HjK@LVOFZx&$ zHjG%U%DU#~>$+rVT0y-AJR>C6M7yde_ev1c<@6=f{!TnDD+1TI>2~Tz9Ly_Z%gw!j z$jyN@2|&PLpo*If(i(8ws>b63e>0MLZEj}Tr4}+*aIVdn8AjCNzE|K+3BP@R*-R%< zF%R8|F{x1F9io5S4%6w>d`P(aYhaZjOP4fC>ms3Ax)V8%`$I%1m%@a$gCnqeE-w_kZNGb`Vy-~k&LJESG!%#THW!kVh9`jrmFwW#>%TIr zr_(7#Te66HSY93cNJ+M5mg2m_Y;Sz;VTf{RX_@FT|LFGx(AL_5Bak5AMg`H#OCf1x zIZVqMw+wVA^uIL2$!?8ndI{{41&{qAnysnle*eDWwZgOOr!2fj!V+gnfHP;DnSq=s zN{ZBt_1)2wX*H5&JMXc3zT|Efm6n!*PeK7+tgG?Y*T3mn!M|3Se|4&0|IqC>E(Jmo zb{r5ij-JBD+I3z>_!MUR5yMSfU0UU?O??ir7QQtZIV^`s#j$78%s4Hp8YR&i-RHR+pn&DVEUUOc zp=~G+nWVa4Y>6CL9iW#3Zt`Q+`_!SM;{YnUA0bm}wyRCx>uV1eQF!(oKE{HX72QaQ z*sTb44^5`Tcv`P!kiTZI3U!ao`$yf;Q6(ZHs-d;3cYCI3-v`&Xk<$AIrYlLqOspJK?8N>-u9mDju{&v?bf`sn(bW4*XBx=9&jDG zmty?$N99Ni*xhQ^`K?d-8C5 zujXgh*@=gixpH#!CQo>V(z&Y;U*d53X z4W|NajqKl#gyKb6WKkv)sI+ozxWvcjQ9^yOtTG$ptD3KzSDCTgkSqOO@EH~&%+5P} zk}{W4!hT_$+H(@GrBI_YE?f`0!1hzk_MbBL@IIcYTDz9OB8zkR%<0PW|OIf2PNJ{ri-7 zQ9$p4I>?XHZ_UQ1mSpsj>vIKkjw~B?48mWuf2rYJ0ff4(!7!HV@Lcut zkR2-|x9;ZGdbNih9}dDpl0l#K)m!?t Date: Fri, 1 May 2020 21:08:50 +0200 Subject: [PATCH 17/36] bumping up mapmerge requirements.txt --- tools/mapmerge2/requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/mapmerge2/requirements.txt b/tools/mapmerge2/requirements.txt index d24cb40dcc..41ddc96c17 100644 --- a/tools/mapmerge2/requirements.txt +++ b/tools/mapmerge2/requirements.txt @@ -1,3 +1,3 @@ -pygit2==0.27.2 +pygit2==1.0.1 bidict==0.13.1 -Pillow==6.2.0 +Pillow==7.0.0 From f62aaddb1de9f59e11a7b038fdfdbd37a132eb5a Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Fri, 1 May 2020 23:22:23 +0200 Subject: [PATCH 18/36] Fixing some runtimes with kevinz skills and holodeck hotspots. --- code/datums/skills/_skill_holder.dm | 6 +++--- .../atmospherics/environmental/LINDA_fire.dm | 16 ++++++++++------ code/modules/holodeck/holo_effect.dm | 2 +- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/code/datums/skills/_skill_holder.dm b/code/datums/skills/_skill_holder.dm index 352adc46ff..e16804ab7f 100644 --- a/code/datums/skills/_skill_holder.dm +++ b/code/datums/skills/_skill_holder.dm @@ -15,7 +15,7 @@ CRASH("Invalid get_skill_value call. Use typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this. if(!skills) return null - return skills[skill] + return LAZYACCESS(skills, skill) /** * Grabs our affinity for a skill. !!This is a multiplier!! @@ -25,7 +25,7 @@ CRASH("Invalid get_skill_affinity call. Use typepaths.") //until a time when we somehow need text ids for dynamic skills, I'm enforcing this. if(!skills) return 1 - var/affinity = skill_affinities[skill] + var/affinity = LAZYACCESS(skill_affinities, skill) if(isnull(affinity)) return 1 return affinity @@ -39,7 +39,7 @@ LAZYINITLIST(skills) value = sanitize_skill_value(skill, value) if(!isnull(value)) - skills[skill] = value + LAZYSET(skills, skill, value) return TRUE return FALSE diff --git a/code/modules/atmospherics/environmental/LINDA_fire.dm b/code/modules/atmospherics/environmental/LINDA_fire.dm index c47c4a44af..06d73867f8 100644 --- a/code/modules/atmospherics/environmental/LINDA_fire.dm +++ b/code/modules/atmospherics/environmental/LINDA_fire.dm @@ -9,7 +9,7 @@ return -/turf/open/hotspot_expose(exposed_temperature, exposed_volume, soh) +/turf/open/hotspot_expose(exposed_temperature, exposed_volume, soh = FALSE, holo = FALSE) var/datum/gas_mixture/air_contents = return_air() if(!air_contents) return 0 @@ -35,7 +35,7 @@ if(oxy < 0.5) return 0 - active_hotspot = new /obj/effect/hotspot(src) + active_hotspot = new /obj/effect/hotspot(src, holo) active_hotspot.temperature = exposed_temperature*50 active_hotspot.volume = exposed_volume*25 @@ -67,8 +67,10 @@ var/bypassing = FALSE var/visual_update_tick = 0 -/obj/effect/hotspot/Initialize() +/obj/effect/hotspot/Initialize(mapload, holo = FALSE) . = ..() + if(holo) + flags_1 |= HOLOGRAM_1 SSair.hotspots += src perform_exposure() setDir(pick(GLOB.cardinals)) @@ -192,7 +194,8 @@ if(bypassing) icon_state = "3" - location.burn_tile() + if(!(flags_1 & HOLOGRAM_1)) + location.burn_tile() //Possible spread due to radiated heat if(location.air.temperature > FIRE_MINIMUM_TEMPERATURE_TO_SPREAD) @@ -200,7 +203,7 @@ for(var/t in location.atmos_adjacent_turfs) var/turf/open/T = t if(!T.active_hotspot) - T.hotspot_expose(radiated_temperature, CELL_VOLUME/4) + T.hotspot_expose(radiated_temperature, CELL_VOLUME/4, flags_1 & HOLOGRAM_1) else if(volume > CELL_VOLUME*0.4) @@ -224,7 +227,8 @@ var/turf/open/T = loc if(istype(T) && T.active_hotspot == src) T.active_hotspot = null - DestroyTurf() + if(!(flags_1 & HOLOGRAM_1)) + DestroyTurf() return ..() /obj/effect/hotspot/proc/DestroyTurf() diff --git a/code/modules/holodeck/holo_effect.dm b/code/modules/holodeck/holo_effect.dm index 7c3754b616..09dcd7fa64 100644 --- a/code/modules/holodeck/holo_effect.dm +++ b/code/modules/holodeck/holo_effect.dm @@ -62,7 +62,7 @@ s.set_up(3, 1, T) s.start() T.temperature = 5000 - T.hotspot_expose(50000,50000,1) + T.hotspot_expose(50000, 50000, TRUE, TRUE) From b383066e57ccb019380fe7770e12f9ee17709d39 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sat, 2 May 2020 00:00:49 +0200 Subject: [PATCH 19/36] Replacing the MATERIAL_NO_EFFECTS flag with MATERIAL_EFFECTS. --- code/__DEFINES/materials.dm | 2 +- code/game/atoms.dm | 2 +- code/game/mecha/equipment/tools/medical_tools.dm | 1 - code/game/mecha/mech_fabricator.dm | 1 - code/game/objects/items.dm | 8 -------- code/game/objects/items/melee/misc.dm | 2 +- code/game/objects/items/stacks/sheets/glass.dm | 3 --- code/game/objects/items/stacks/sheets/mineral.dm | 1 - code/game/objects/items/stacks/sheets/sheet_types.dm | 1 - code/game/objects/items/stacks/tiles/tile_mineral.dm | 1 - code/game/objects/objs.dm | 8 ++++++++ code/game/objects/structures/beds_chairs/chair.dm | 4 ++-- code/game/objects/structures/tables_racks.dm | 2 +- code/modules/clothing/head/helmet.dm | 2 +- code/modules/clothing/suits/armor.dm | 2 +- code/modules/mining/ores_coins.dm | 3 +-- code/modules/reagents/reagent_containers/glass.dm | 1 - code/modules/research/machinery/_production.dm | 8 +++----- 18 files changed, 20 insertions(+), 32 deletions(-) diff --git a/code/__DEFINES/materials.dm b/code/__DEFINES/materials.dm index 89553d9c6c..e2ae22345f 100644 --- a/code/__DEFINES/materials.dm +++ b/code/__DEFINES/materials.dm @@ -7,5 +7,5 @@ /// Flag for atoms, this flag ensures it isn't re-colored by materials. Useful for snowflake icons such as default toolboxes. #define MATERIAL_COLOR (1<<0) #define MATERIAL_ADD_PREFIX (1<<1) -#define MATERIAL_NO_EFFECTS (1<<2) +#define MATERIAL_EFFECTS (1<<2) #define MATERIAL_AFFECT_STATISTICS (1<<3) \ No newline at end of file diff --git a/code/game/atoms.dm b/code/game/atoms.dm index b71f51bd07..afa8cfed3b 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -965,7 +965,7 @@ Proc for attack log creation, because really why not for(var/x in materials) var/datum/material/custom_material = SSmaterials.GetMaterialRef(x) - if(!(material_flags & MATERIAL_NO_EFFECTS)) + if(material_flags & MATERIAL_EFFECTS) custom_material.on_applied(src, materials[custom_material] * multiplier * material_modifier, material_flags) custom_materials[custom_material] += materials[x] * multiplier diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index 7ff8696084..4a4d58ea73 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -530,7 +530,6 @@ equip_cooldown = 0 var/obj/item/gun/medbeam/mech/medigun custom_materials = list(/datum/material/iron = 15000, /datum/material/glass = 8000, /datum/material/plasma = 3000, /datum/material/gold = 8000, /datum/material/diamond = 2000) - material_flags = MATERIAL_NO_EFFECTS /obj/item/mecha_parts/mecha_equipment/medical/mechmedbeam/Initialize() . = ..() diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index fb321665bc..93228c7fee 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -188,7 +188,6 @@ var/location = get_step(src,(dir)) var/obj/item/I = new D.build_path(location) - I.material_flags |= MATERIAL_NO_EFFECTS //Find a better way to do this. I.set_custom_materials(res_coef) say("\The [I] is complete.") being_built = null diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 9cb03c6a85..f64be72cfa 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -897,11 +897,3 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) . = ..() if(var_name == NAMEOF(src, slowdown)) set_slowdown(var_value) //don't care if it's a duplicate edit as slowdown'll be set, do it anyways to force normal behavior. - -//Called when the object is constructed by an autolathe -//Has a reference to the autolathe so you can do !!FUN!! things with hacked lathes -/obj/item/proc/autolathe_crafted(obj/machinery/autolathe/A) - return - -/obj/item/proc/rnd_crafted(obj/machinery/rnd/production/P) - return diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 011837d48b..c2db529675 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -648,7 +648,7 @@ item_state = "mace_greyscale" lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS //Material type changes the prefix as well as the color. + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS //Material type changes the prefix as well as the color. custom_materials = list(/datum/material/iron = 12000) //Defaults to an Iron Mace. slot_flags = ITEM_SLOT_BELT force = 14 diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index c8ee6b05c7..fa218c5caa 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -109,7 +109,6 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \ merge_type = /obj/item/stack/sheet/plasmaglass grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10) tableVariant = /obj/structure/table/plasmaglass - material_flags = MATERIAL_NO_EFFECTS shard_type = /obj/item/shard/plasma /obj/item/stack/sheet/plasmaglass/fifty @@ -209,7 +208,6 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \ custom_materials = list(/datum/material/plasma=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT, /datum/material/iron=MINERAL_MATERIAL_AMOUNT * 0.5,) armor = list("melee" = 20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) resistance_flags = ACID_PROOF - material_flags = MATERIAL_NO_EFFECTS merge_type = /obj/item/stack/sheet/plasmarglass grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10, /datum/reagent/iron = 10) point_value = 23 @@ -259,7 +257,6 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( item_state = "sheet-plastitaniumglass" custom_materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/plasma=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT) armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) - material_flags = MATERIAL_NO_EFFECTS resistance_flags = ACID_PROOF merge_type = /obj/item/stack/sheet/plastitaniumglass shard_type = /obj/item/shard diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 4a7156db72..d28ae52b52 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -324,7 +324,6 @@ GLOBAL_LIST_INIT(titanium_recipes, list ( \ custom_materials = list(/datum/material/titanium=MINERAL_MATERIAL_AMOUNT, /datum/material/plasma=MINERAL_MATERIAL_AMOUNT) point_value = 45 merge_type = /obj/item/stack/sheet/mineral/plastitanium - material_flags = MATERIAL_NO_EFFECTS /obj/item/stack/sheet/mineral/plastitanium/fifty amount = 50 diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 6ddd7c136a..f19dbb2a6b 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -215,7 +215,6 @@ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ grind_results = list(/datum/reagent/iron = 20, /datum/reagent/toxin/plasma = 20) point_value = 23 tableVariant = /obj/structure/table/reinforced - material_flags = MATERIAL_NO_EFFECTS /obj/item/stack/sheet/plasteel/get_main_recipes() . = ..() diff --git a/code/game/objects/items/stacks/tiles/tile_mineral.dm b/code/game/objects/items/stacks/tiles/tile_mineral.dm index 50edc9d15a..1bcd8d72ca 100644 --- a/code/game/objects/items/stacks/tiles/tile_mineral.dm +++ b/code/game/objects/items/stacks/tiles/tile_mineral.dm @@ -78,4 +78,3 @@ turf_type = /turf/open/floor/mineral/plastitanium mineralType = "plastitanium" custom_materials = list(/datum/material/titanium=250, /datum/material/plasma=250) - material_flags = MATERIAL_NO_EFFECTS \ No newline at end of file diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index d2d72193b7..033304c707 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -314,3 +314,11 @@ current_skin = choice icon_state = unique_reskin[choice] to_chat(M, "[src] is now skinned as '[choice]'.") + +//Called when the object is constructed by an autolathe +//Has a reference to the autolathe so you can do !!FUN!! things with hacked lathes +/obj/proc/autolathe_crafted(obj/machinery/autolathe/A) + return + +/obj/proc/rnd_crafted(obj/machinery/rnd/production/P) + return diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index c593451c24..d3e8ecf0a6 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -153,7 +153,7 @@ ///Material chair /obj/structure/chair/greyscale icon_state = "chair_greyscale" - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS item_chair = /obj/item/chair/greyscale buildstacktype = null //Custom mats handle this @@ -382,7 +382,7 @@ /obj/item/chair/greyscale icon_state = "chair_greyscale_toppled" item_state = "chair_greyscale" - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS origin_type = /obj/structure/chair/greyscale /obj/item/chair/stool diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index bbdf6925f9..30e451aa14 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -211,7 +211,7 @@ /obj/structure/table/greyscale icon = 'icons/obj/smooth_structures/table_greyscale.dmi' icon_state = "table" - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS buildstack = null //No buildstack, so generate from mat datums /* diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 9ad05efb7a..3d744effb0 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -243,7 +243,7 @@ icon_state = "knight_greyscale" item_state = "knight_greyscale" armor = list("melee" = 35, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 10, "bio" = 10, "rad" = 10, "fire" = 40, "acid" = 40) - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS //Can change color and add prefix + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS //Can change color and add prefix /obj/item/clothing/head/helmet/skull name = "skull helmet" diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 8bd7ee741d..bbfab5fda7 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -285,7 +285,7 @@ icon_state = "knight_greyscale" item_state = "knight_greyscale" armor = list("melee" = 35, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 10, "bio" = 10, "rad" = 10, "fire" = 40, "acid" = 40) - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS //Can change color and add prefix + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS //Can change color and add prefix /obj/item/clothing/suit/armor/vest/durathread name = "makeshift vest" diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index c7c34b0389..183b4812f2 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -70,7 +70,6 @@ singular_name = "uranium ore chunk" points = 30 custom_materials = list(/datum/material/uranium=MINERAL_MATERIAL_AMOUNT) - material_flags = MATERIAL_NO_EFFECTS refined_type = /obj/item/stack/sheet/mineral/uranium /obj/item/stack/ore/iron @@ -319,7 +318,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ throwforce = 2 w_class = WEIGHT_CLASS_TINY custom_materials = list(/datum/material/iron = 400) - material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS | MATERIAL_EFFECTS var/string_attached var/list/sideslist = list("heads","tails") var/cooldown = 0 diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 800d66969d..368f476183 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -245,7 +245,6 @@ icon_state = "beakerbluespace" custom_materials = list(/datum/material/glass = 5000, /datum/material/plasma = 3000, /datum/material/diamond = 1000, /datum/material/bluespace = 1000) volume = 300 - material_flags = MATERIAL_NO_EFFECTS amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,20,25,30,50,100,300) container_HP = 5 diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index 0550fa9334..2159e9eba3 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -95,11 +95,9 @@ message_admins("[ADMIN_LOOKUPFLW(user)] has built [amount] of [path] at a [src]([type]).") for(var/i in 1 to amount) var/obj/O = new path(get_turf(src)) - if(efficient_with(O.type) && isitem(O)) - var/obj/item/I = O - I.material_flags |= MATERIAL_NO_EFFECTS //Find a better way to do this. - I.set_custom_materials(matlist.Copy()) - I.rnd_crafted(src) + if(efficient_with(O.type)) + O.set_custom_materials(matlist.Copy()) + O.rnd_crafted(src) SSblackbox.record_feedback("nested tally", "item_printed", amount, list("[type]", "[path]")) investigate_log("[key_name(user)] built [amount] of [path] at [src]([type]).", INVESTIGATE_RESEARCH) From 400e2523c27a708b54edf77ab96026344007f4fd Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sat, 2 May 2020 00:55:18 +0200 Subject: [PATCH 20/36] paint remover issue webedit. --- code/game/objects/items/paint.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/paint.dm b/code/game/objects/items/paint.dm index bdf9ab4270..cd65149f5d 100644 --- a/code/game/objects/items/paint.dm +++ b/code/game/objects/items/paint.dm @@ -112,7 +112,7 @@ . = ..() if(!proximity) return - if(!isturf(target) || !isobj(target)) + if(!isturf(target) && !isobj(target)) return if(target.color != initial(target.color)) target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY) From 8bad031979a2391f6902ad219404e2f644fe5485 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sat, 2 May 2020 01:01:14 +0200 Subject: [PATCH 21/36] Update shields.dm --- code/game/objects/items/shields.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index f7bf659f0a..fc7b196bd2 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -107,6 +107,8 @@ return TRUE /obj/item/shield/proc/user_shieldbash(mob/living/user, atom/target, harmful) + if(!(user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE)) //Combat mode has to be enabled for shield bashing + return FALSE if(!(shield_flags & SHIELD_CAN_BASH)) to_chat(user, "[src] can't be used to shield bash!") return FALSE From 202b517fa02d87c86264e2e54d879d4ef117f801 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sat, 2 May 2020 02:05:56 +0200 Subject: [PATCH 22/36] Fixing more issues. --- code/__HELPERS/global_lists.dm | 23 ++++++++++ code/controllers/subsystem/atoms.dm | 23 ---------- code/game/machinery/recharger.dm | 7 ++- code/modules/clothing/under/_under.dm | 2 +- .../mining/equipment/regenerative_core.dm | 44 +++++++++---------- 5 files changed, 51 insertions(+), 48 deletions(-) diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 38e25b04c5..bcfaa1bed2 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -88,6 +88,7 @@ init_subtypes(/datum/crafting_recipe, GLOB.crafting_recipes) INVOKE_ASYNC(GLOBAL_PROC, /proc/init_ref_coin_values) //so the current procedure doesn't sleep because of UNTIL() + INVOKE_ASYNC(GLOBAL_PROC, /proc/setupGenetics) //creates every subtype of prototype (excluding prototype) and adds it to list L. //if no list/L is provided, one is created. @@ -113,3 +114,25 @@ UNTIL(C.flags_1 & INITIALIZED_1) //we want to make sure the value is calculated and not null. GLOB.coin_values[path] = C.value qdel(C) + +/proc/setupGenetics() + var/list/mutations = subtypesof(/datum/mutation/human) + shuffle_inplace(mutations) + for(var/A in subtypesof(/datum/generecipe)) + var/datum/generecipe/GR = A + GLOB.mutation_recipes[initial(GR.required)] = initial(GR.result) + for(var/i in 1 to LAZYLEN(mutations)) + var/path = mutations[i] //byond gets pissy when we do it in one line + var/datum/mutation/human/B = new path () + B.alias = "Mutation #[i]" + GLOB.all_mutations[B.type] = B + GLOB.full_sequences[B.type] = generate_gene_sequence(B.blocks) + if(B.locked) + continue + if(B.quality == POSITIVE) + GLOB.good_mutations |= B + else if(B.quality == NEGATIVE) + GLOB.bad_mutations |= B + else if(B.quality == MINOR_NEGATIVE) + GLOB.not_good_mutations |= B + CHECK_TICK \ No newline at end of file diff --git a/code/controllers/subsystem/atoms.dm b/code/controllers/subsystem/atoms.dm index 35feab6648..c1644df9c9 100644 --- a/code/controllers/subsystem/atoms.dm +++ b/code/controllers/subsystem/atoms.dm @@ -16,7 +16,6 @@ SUBSYSTEM_DEF(atoms) /datum/controller/subsystem/atoms/Initialize(timeofday) GLOB.fire_overlay.appearance_flags = RESET_COLOR - setupGenetics() //to set the mutations' sequence. initialized = INITIALIZATION_INNEW_MAPLOAD InitializeAtoms() return ..() @@ -107,28 +106,6 @@ SUBSYSTEM_DEF(atoms) old_initialized = SSatoms.old_initialized BadInitializeCalls = SSatoms.BadInitializeCalls -/datum/controller/subsystem/atoms/proc/setupGenetics() - var/list/mutations = subtypesof(/datum/mutation/human) - shuffle_inplace(mutations) - for(var/A in subtypesof(/datum/generecipe)) - var/datum/generecipe/GR = A - GLOB.mutation_recipes[initial(GR.required)] = initial(GR.result) - for(var/i in 1 to LAZYLEN(mutations)) - var/path = mutations[i] //byond gets pissy when we do it in one line - var/datum/mutation/human/B = new path () - B.alias = "Mutation #[i]" - GLOB.all_mutations[B.type] = B - GLOB.full_sequences[B.type] = generate_gene_sequence(B.blocks) - if(B.locked) - continue - if(B.quality == POSITIVE) - GLOB.good_mutations |= B - else if(B.quality == NEGATIVE) - GLOB.bad_mutations |= B - else if(B.quality == MINOR_NEGATIVE) - GLOB.not_good_mutations |= B - CHECK_TICK - /datum/controller/subsystem/atoms/proc/InitLog() . = "" for(var/path in BadInitializeCalls) diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 24fd956677..c26c66a55f 100755 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -53,6 +53,11 @@ using_power = FALSE update_icon() +/obj/machinery/recharger/Exited(atom/movable/M, atom/newloc) + . = ..() + if(charging == M) + setCharging() + /obj/machinery/recharger/attackby(obj/item/G, mob/user, params) if(istype(G, /obj/item/wrench)) if(charging) @@ -111,13 +116,11 @@ charging.update_icon() charging.forceMove(drop_location()) user.put_in_hands(charging) - setCharging(null) /obj/machinery/recharger/attack_tk(mob/user) if(charging) charging.update_icon() charging.forceMove(drop_location()) - setCharging(null) /obj/machinery/recharger/process() if(stat & (NOPOWER|BROKEN) || !anchored) diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index 0d08b59be9..c1c76e1091 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -101,7 +101,7 @@ if((flags_inv & HIDEACCESSORY) || (A.flags_inv & HIDEACCESSORY)) return TRUE - accessory_overlay = mutable_appearance('icons/mob/clothing/accessories.dmi', "attached_accessory.icon_state") + accessory_overlay = mutable_appearance('icons/mob/clothing/accessories.dmi', attached_accessory.icon_state) accessory_overlay.alpha = attached_accessory.alpha accessory_overlay.color = attached_accessory.color diff --git a/code/modules/mining/equipment/regenerative_core.dm b/code/modules/mining/equipment/regenerative_core.dm index 47a1d84f58..7380a9135d 100644 --- a/code/modules/mining/equipment/regenerative_core.dm +++ b/code/modules/mining/equipment/regenerative_core.dm @@ -75,31 +75,31 @@ apply_healing_core(target, 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) - to_chat(user, "[src] has decayed and can no longer be used to heal.") - return - else - if(H.stat == DEAD) - to_chat(user, "[src] are useless on the dead.") - return - if(H != user) - H.visible_message("[user] forces [H] to apply [src]... [H.p_they()] quickly regenerate all injuries!") - SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "other")) - 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 = 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. + if(!user || !ishuman(target)) + return + 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(H.stat == DEAD) + to_chat(user, "[src] are useless on the dead.") + return + if(H != user) + H.visible_message("[user] forces [H] to apply [src]... [H.p_they()] quickly regenerate all injuries!") + SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "other")) + 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 = FALSE) + else + H.revive(full_heal = TRUE) + qdel(src) + user.log_message("[user] used [src] to heal [H == user ? "[H.p_them()]self" : 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' . = ..() - apply_healing_core(user) + apply_healing_core(user, user) /obj/item/organ/regenerative_core/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE) From 65104be982e90e2db50c421845d24715a638787a Mon Sep 17 00:00:00 2001 From: coldud13 Date: Sat, 2 May 2020 18:55:58 +1000 Subject: [PATCH 23/36] rad collectors now announce when empty --- code/modules/power/singularity/collector.dm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index 2e6ec57f77..68a6b34216 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -28,11 +28,19 @@ var/bitcoinproduction_drain = 0.15 var/bitcoinmining = FALSE rad_insulation = RAD_EXTREME_INSULATION + var/obj/item/radio/Radio /obj/machinery/power/rad_collector/anchored anchored = TRUE +/obj/machinery/power/rad_collector/Initialize() + . = ..() + Radio = new /obj/item/radio(src) + Radio.listening = 0 + Radio.set_frequency(FREQ_ENGINEERING) + /obj/machinery/power/rad_collector/Destroy() + QDEL_NULL(Radio) return ..() /obj/machinery/power/rad_collector/process() @@ -42,6 +50,7 @@ if(!loaded_tank.air_contents.gases[/datum/gas/plasma]) investigate_log("out of fuel.", INVESTIGATE_SINGULO) playsound(src, 'sound/machines/ding.ogg', 50, 1) + Radio.talk_into(src, "Insufficient plasma in [get_area(src)] [src], ejecting \the [loaded_tank].", FREQ_ENGINEERING) eject() else var/gasdrained = min(powerproduction_drain*drainratio,loaded_tank.air_contents.gases[/datum/gas/plasma]) @@ -55,6 +64,7 @@ else if(is_station_level(z) && SSresearch.science_tech) if(!loaded_tank.air_contents.gases[/datum/gas/tritium] || !loaded_tank.air_contents.gases[/datum/gas/oxygen]) playsound(src, 'sound/machines/ding.ogg', 50, 1) + Radio.talk_into(src, "Insufficient oxygen and tritium in [get_area(src)] [src] to produce research points, ejecting \the [loaded_tank].", FREQ_ENGINEERING) eject() else var/gasdrained = bitcoinproduction_drain*drainratio From c38c1755cd84f75e245ea24665f0a585b6944f80 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sat, 2 May 2020 19:05:41 +0200 Subject: [PATCH 24/36] Done, tested, too many options. --- code/__DEFINES/misc.dm | 7 ++ code/datums/elements/scavenging.dm | 101 ++++++++++++++++------ code/game/objects/structures/loot_pile.dm | 74 ++++++++-------- 3 files changed, 120 insertions(+), 62 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 9febca663d..4cc269cefe 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -530,3 +530,10 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S #define SCAVENGING_SPAWN_MOUSE "spawn_mouse" #define SCAVENGING_SPAWN_MICE "spawn_mice" #define SCAVENGING_SPAWN_TOM "spawn_tom_the_mouse" + +//Scavenging element defines for ckey/mind restrictions. +#define NO_LOOT_RESTRICTION 0 +#define LOOT_RESTRICTION_MIND 1 +#define LOOT_RESTRICTION_CKEY 2 +#define LOOT_RESTRICTION_MIND_PILE 3 //limited to the current pile. +#define LOOT_RESTRICTION_CKEY_PILE 4 //Idem diff --git a/code/datums/elements/scavenging.dm b/code/datums/elements/scavenging.dm index c34fd8f430..1993005be7 100644 --- a/code/datums/elements/scavenging.dm +++ b/code/datums/elements/scavenging.dm @@ -16,13 +16,17 @@ var/can_use_hands = TRUE //bare handed scavenge time multiplier. If set to zero, only tools are usable. var/list/tool_types //which tool types the player can use instead of scavenging by hand, associated value is their speed. var/del_atom_on_depletion = FALSE //Will the atom be deleted when there is no loot left? - var/list/search_texts = list("searches through ", "search through ", "You hear rummaging...") + var/list/search_texts = list("starts searching through", "start searching through", "You hear rummaging...") + var/loot_restriction = NO_LOOT_RESTRICTION + var/maximum_loot_per_player = 1 //only relevant if there is a restriction. + var/list/scavenger_restriction_list //used for restrictions. var/mean_loot_weight = 0 var/list/progress_per_atom = list() //seconds of ditched progress per atom, used to resume the work instead of starting over. var/static/list/players_busy_scavenging = list() //players already busy scavenging. -/datum/element/scavenging/Attach(atom/target, amount = 5, list/loot, list/unique, time = 10 SECONDS, hands = TRUE, list/tools, list/texts, del_deplete = FALSE) +/datum/element/scavenging/Attach(atom/target, amount = 5, list/loot, list/unique, time = 12 SECONDS, hands = TRUE, list/tools, list/texts, \ + del_deplete = FALSE, restriction = NO_LOOT_RESTRICTION, max_per_player = 1) . = ..() if(. == ELEMENT_INCOMPATIBLE || !length(loot) || !amount || !istype(target) || isarea(target)) return ELEMENT_INCOMPATIBLE @@ -40,6 +44,8 @@ if(texts) search_texts = texts del_atom_on_depletion = del_deplete + loot_restriction = restriction + maximum_loot_per_player = max_per_player if(can_use_hands) RegisterSignal(target, list(COMSIG_ATOM_ATTACK_HAND, COMSIG_ATOM_ATTACK_PAW), .proc/scavenge_barehanded) if(tool_types) @@ -50,25 +56,25 @@ . = ..() loot_left_per_atom -= target progress_per_atom -= target + if(maximum_loot_per_player == LOOT_RESTRICTION_MIND_PILE || maximum_loot_per_player == LOOT_RESTRICTION_CKEY_PILE) + maximum_loot_per_player -= target UnregisterSignal(target, list(COMSIG_ATOM_ATTACK_HAND, COMSIG_PARENT_ATTACKBY, COMSIG_PARENT_EXAMINE)) /datum/element/scavenging/proc/on_examine(atom/source, mob/user, list/examine_list) - var/text - var/methods = tool_types + var/methods = tool_types.Copy() if(can_use_hands) - if(!length(methods)) - methods = list("bare handed") - else - methods += "simply bare handed" - text = english_list(methods, "", " or ") - . += "Looks like [source.p_they()] can be scavenged[length(tool_types) ? " with either a" : ""] [text]" + methods += list("bare handed") + if(!length(methods)) + return + var/text = english_list(methods, "", " or ") + examine_list += "Looks like [source.p_they()] can be scavenged [length(tool_types) ? "with" : ""][length(methods == 1) ? "" : "either "][length(tool_types) ? "a " : ""][text]" /datum/element/scavenging/proc/scavenge_barehanded(atom/source, mob/user) scavenge(source, user, 1) return COMPONENT_NO_ATTACK_HAND /datum/element/scavenging/proc/scavenge_tool(atom/source, obj/item/I, mob/user, params) - if(user.a_intent == INTENT_HARM) //Robust trash disposal techniques! + if(user.a_intent == INTENT_HARM || !I.tool_behaviour) //Robust trash disposal techniques! return var/speed_multi = tool_types[I.tool_behaviour] if(!speed_multi) @@ -76,7 +82,10 @@ scavenge(source, user, speed_multi) return COMPONENT_NO_AFTERATTACK +/// This proc has to be asynced (cough cough, do_after) in order to return the comsig values in time to stop the attack chain. /datum/element/scavenging/proc/scavenge(atom/source, mob/user, speed_multi = 1) + set waitfor = FALSE + if(players_busy_scavenging[user]) return players_busy_scavenging[user] = TRUE @@ -84,37 +93,58 @@ var/len_messages = length(search_texts) var/msg_first_person if(len_messages >= 2) - msg_first_person = "You [progress_done ? "resume a ditched task and " : ""][search_texts[2]] [src]." + msg_first_person = "You [progress_done ? ", resume a ditched task and " : ""][search_texts[2]] [source]." var/msg_blind if(len_messages >= 3) msg_blind = "[search_texts[3]]" - user.visible_message("[user] [search_texts[1]] [src].", msg_first_person, msg_blind) - if(do_after(user, scavenge_time, TRUE, source, TRUE, CALLBACK(src, .proc/set_progress, source, world.time), resume_time = progress_done)) + user.visible_message("[user] [search_texts[1]] [source].", msg_first_person, msg_blind) + if(do_after(user, scavenge_time * speed_multi, TRUE, source, TRUE, CALLBACK(src, .proc/set_progress, source, world.time), resume_time = progress_done * speed_multi)) spawn_loot(source, user) players_busy_scavenging -= user - progress_per_atom -= source /datum/element/scavenging/proc/set_progress(atom/source, start_time) progress_per_atom[source] = world.time - start_time + return TRUE /datum/element/scavenging/proc/spawn_loot(atom/source, mob/user) + progress_per_atom -= source + var/loot = pickweight(loot_table) var/special = TRUE var/free = FALSE if(!loot_left_per_atom[source]) - to_chat(user, "Looks likes there is nothing worth of interest left in [src] anymore, further attempts would be futile.") + to_chat(user, "Looks likes there is nothing worth of interest left in [source], what a shame...") return + + var/num_times = 0 + switch(loot_restriction) + if(LOOT_RESTRICTION_MIND) + num_times = LAZYACCESS(scavenger_restriction_list, user.mind) + if(LOOT_RESTRICTION_CKEY) + num_times = LAZYACCESS(scavenger_restriction_list, user.ckey) + if(LOOT_RESTRICTION_MIND_PILE) + var/list/L = LAZYACCESS(scavenger_restriction_list, source) + if(L) + num_times = LAZYACCESS(L, user.mind) + if(LOOT_RESTRICTION_CKEY_PILE) + var/list/L = LAZYACCESS(scavenger_restriction_list, source) + if(L) + num_times = LAZYACCESS(L, user.ckey) + if(num_times >= maximum_loot_per_player) + to_chat(user, "You can't find anything else vaguely useful in [source]. Another set of eyes might, however.") + return + switch(loot) // TODO: datumize these out. if(SCAVENGING_FOUND_NOTHING) to_chat(user, "You found nothing, better luck next time.") free = TRUE //doesn't consume the loot pile. if(SCAVENGING_SPAWN_MOUSE) var/nasty_rodent = pick("mouse", "rodent", "squeaky critter", "stupid pest", "annoying cable chewer", "nasty, ugly, evil, disease-ridden rodent") - to_chat(user, "You found something in [src]... no wait, that's just another [nasty_rodent].") + to_chat(user, "You found something in [source]... no wait, that's just another [nasty_rodent].") new /mob/living/simple_animal/mouse(source.loc) if(SCAVENGING_SPAWN_MICE) user.visible_message("A small gang of mice emerges from [source].", \ - "You found something in [src]... no wait, that's just another- no wait, that's a lot of damn mice.") + "You found something in [source]... no wait, that's just another- no wait, that's a lot of damn mice.") for(var/i in 1 to rand(4, 6)) new /mob/living/simple_animal/mouse(source.loc) if(SCAVENGING_SPAWN_TOM) @@ -122,7 +152,7 @@ to_chat(user, "You found nothing, better luck next time.") free = TRUE else - to_chat(user, "You found something in [src]... no wait, that's Tom, the mouse! What is he doing here?") + to_chat(user, "You found something in [source]... no wait, that's Tom, the mouse! What is he doing here?") new /mob/living/simple_animal/mouse/brown/Tom(source.loc) else special = FALSE @@ -145,7 +175,7 @@ rarity_append = ". Nice." if(20 to 50) rarity_append = ". Not bad." - to_chat(user, "You found something in [src]... it's \a [A][rarity_append]") + to_chat(user, "You found something in [source]... it's \a [A][rarity_append]") if(unique_loot[loot]) var/loot_left = --unique_loot[loot] @@ -157,8 +187,29 @@ mean_loot_weight += loot_table[A] mean_loot_weight /= length(loot_table) - if(!free) - --loot_left_per_atom[source] - if(del_atom_on_depletion && !loot_left_per_atom[source]) - source.visible_message("[src] has been looted clean.") - qdel(source) + if(free) + return + + --loot_left_per_atom[source] + if(del_atom_on_depletion && !loot_left_per_atom[source]) + source.visible_message("[source] has been looted clean.") + qdel(source) + return + + if(!loot_restriction) + return + + LAZYINITLIST(scavenger_restriction_list) + switch(loot_restriction) + if(LOOT_RESTRICTION_MIND) + scavenger_restriction_list[user.mind]++ + if(LOOT_RESTRICTION_CKEY) + scavenger_restriction_list[user.ckey]++ + if(LOOT_RESTRICTION_MIND_PILE) + LAZYINITLIST(scavenger_restriction_list[source]) + var/list/L = scavenger_restriction_list[source] + L[user.mind]++ + if(LOOT_RESTRICTION_CKEY_PILE) + LAZYINITLIST(scavenger_restriction_list[source]) + var/list/L = scavenger_restriction_list[source] + L[user.ckey]++ diff --git a/code/game/objects/structures/loot_pile.dm b/code/game/objects/structures/loot_pile.dm index 0886c1c8b7..bbcfacd9c1 100644 --- a/code/game/objects/structures/loot_pile.dm +++ b/code/game/objects/structures/loot_pile.dm @@ -6,6 +6,7 @@ name = "pile of junk" desc = "Lots of junk lying around. They say one man's trash is another man's treasure." icon = 'icons/obj/loot_piles.dmi' + icon_state = "randompile" density = FALSE anchored = TRUE var/loot_amount = 5 @@ -14,43 +15,20 @@ var/scavenge_time = 12 SECONDS var/allowed_tools = list(TOOL_SHOVEL = 0.6) //list of tool_behaviours with associated speed multipliers (lower is better) var/icon_states_to_use = list("junk_pile1", "junk_pile2", "junk_pile3", "junk_pile4", "junk_pile5") - var/list/loot = list( - SCAVENGING_FOUND_NOTHING = 50, - SCAVENGING_SPAWN_MOUSE = 10, - SCAVENGING_SPAWN_MICE = 5, - SCAVENGING_SPAWN_TOM = 1, - /obj/item/flashlight/flare = 10, - /obj/item/flashlight/glowstick = 10, - /obj/item/flashlight/glowstick/blue = 10, - /obj/item/flashlight/glowstick/orange = 10, - /obj/item/flashlight/glowstick/red = 10, - /obj/item/flashlight/glowstick/yellow = 10, - /obj/item/clothing/mask/gas = 5, - /obj/item/clothing/mask/breath = 10, - /obj/item/storage/box = 10, - /obj/item/clothing/shoes/galoshes = 2, - /obj/item/clothing/shoes/sneakers/black = 10, - /obj/item/clothing/gloves/color/fyellow = 5, - /obj/item/clothing/gloves/color/yellow = 2, - /obj/item/clothing/glasses/sunglasses = 3, - /obj/item/clothing/glasses/meson = 3, - /obj/item/clothing/glasses/welding = 3, - /obj/item/clothing/head/hardhat = 10, - /obj/item/clothing/head/ushanka = 10, - /obj/item/clothing/head/welding = 5, - /obj/item/clothing/suit/hazardvest = 10, - /obj/item/clothing/under/syndicate/tacticool = 5, - /obj/item/clothing/under/pants/camo = 10, - /obj/item/stack/spacecash/c10 = 20, - /obj/item/stack/spacecash/c20 = 20, - /obj/item/stack/spacecash/c50 = 20, - /obj/item/radio/headset = 10) + var/list/loot /* * Associated values in this list are not weights but numbers of times the kery can be rolled * before being removed from ALL piles with same kind. This is why I wanted 'scavenging' to be an element and not a component. */ - var/list/unique_loot = list(/obj/item/clothing/gloves/color/yellow = 2, SCAVENGING_SPAWN_TOM = 1) + var/list/unique_loot + + /* + * used for restrictions such as "one per mind", "one per ckey". Depending on the setting, these can be either limited to + * the current pile or shared throughout all atoms attached to this element. + */ + var/loot_restriction = NO_LOOT_RESTRICTION + var/maximum_loot_per_player = 1 /obj/structure/loot_pile/Initialize() . = ..() @@ -58,9 +36,31 @@ /obj/structure/loot_pile/ComponentInitialize() . = ..() - AddElement(/datum/element/scavenging, loot_amount, loot, unique_loot, scavenge_time, can_use_hands, allowed_tools, null, delete_on_depletion) + if(loot) + AddElement(/datum/element/scavenging, loot_amount, loot, unique_loot, scavenge_time, can_use_hands, allowed_tools, null, delete_on_depletion, loot_restriction, maximum_loot_per_player) -/obj/structure/loot_pile/infinite - name = "endless pile of junk." - desc = "Lots of awful code lying around. They don't say one coder's trash is another coder's treasure though..." - loot_amount = INFINITY +//uses the maintenance_loot global list, mostly boring stuff and mices. +/obj/structure/loot_pile/maint + name = "trash pile" + desc = "A heap of garbage, but maybe there's something interesting inside?" + density = TRUE + layer = TABLE_LAYER + climbable = TRUE + pass_flags = LETPASSTHROW + loot = list( + SCAVENGING_FOUND_NOTHING = 50, + SCAVENGING_SPAWN_MOUSE = 10, + SCAVENGING_SPAWN_MICE = 5, + SCAVENGING_SPAWN_TOM = 1, + /obj/item/clothing/gloves/color/yellow = 0.5) + unique_loot = list(/obj/item/clothing/gloves/color/yellow = 5, SCAVENGING_SPAWN_TOM = 1) + +/obj/structure/loot_pile/maint/ComponentInitialize() + var/static/safe_maint_items + if(!safe_maint_items) + safe_maint_items = list() + for(var/A in GLOB.maintenance_loot) + if(ispath(A, /obj/item)) + safe_maint_items[A] = GLOB.maintenance_loot[A] + loot += safe_maint_items + return ..() From bdbe6c062e3677ee1234df37354dd37ad6a992fd Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Sat, 2 May 2020 19:11:30 +0200 Subject: [PATCH 25/36] Fixing a cargo exploit --- code/modules/cargo/order.dm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/code/modules/cargo/order.dm b/code/modules/cargo/order.dm index b78f218348..13e223bca3 100644 --- a/code/modules/cargo/order.dm +++ b/code/modules/cargo/order.dm @@ -66,12 +66,9 @@ P.info += "Item: [pack.name]
" P.info += "Contents:
" P.info += "

    " - for(var/atom/movable/AM in C.contents - P) - if((P.errors & MANIFEST_ERROR_CONTENTS)) - if(prob(50)) - P.info += "
  • [AM.name]
  • " - else - continue + for(var/atom/movable/AM in C.contents - P - C.lockerelectronics) + if((P.errors & MANIFEST_ERROR_CONTENTS) && prob(50)) + continue P.info += "
  • [AM.name]
  • " P.info += "
" P.info += "

Stamp below to confirm receipt of goods:

" From 7ae2615f519ad3ce2fffa8264d6351e955ee94f9 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sat, 2 May 2020 19:13:21 +0200 Subject: [PATCH 26/36] Whops. --- code/game/objects/structures/loot_pile.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/structures/loot_pile.dm b/code/game/objects/structures/loot_pile.dm index bbcfacd9c1..b6249ec1e4 100644 --- a/code/game/objects/structures/loot_pile.dm +++ b/code/game/objects/structures/loot_pile.dm @@ -60,7 +60,7 @@ if(!safe_maint_items) safe_maint_items = list() for(var/A in GLOB.maintenance_loot) - if(ispath(A, /obj/item)) - safe_maint_items[A] = GLOB.maintenance_loot[A] + if(ispath(A, /obj/item)) + safe_maint_items[A] = GLOB.maintenance_loot[A] loot += safe_maint_items return ..() From 592198d6598d76ff7be6e1b2cc430fe2397b782b Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sat, 2 May 2020 20:01:54 +0200 Subject: [PATCH 27/36] Makes privates not spew around upon disembowelment or gibbing. --- code/__DEFINES/obj_flags.dm | 1 + code/modules/mob/living/carbon/carbon.dm | 11 +++++++++-- code/modules/mob/living/carbon/death.dm | 8 ++------ code/modules/surgery/bodyparts/dismemberment.dm | 3 +-- code/modules/surgery/organs/augments_arms.dm | 1 + code/modules/surgery/organs/organ_internal.dm | 2 +- modular_citadel/code/modules/arousal/genitals.dm | 1 + 7 files changed, 16 insertions(+), 11 deletions(-) diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm index d78de86d25..8284f66f50 100644 --- a/code/__DEFINES/obj_flags.dm +++ b/code/__DEFINES/obj_flags.dm @@ -52,3 +52,4 @@ #define ORGAN_EXTERNAL (1<<3) //Was this organ implanted/inserted/etc, if true will not be removed during species change. #define ORGAN_VITAL (1<<4) //Currently only the brain #define ORGAN_NO_SPOIL (1<<5) //Do not spoil under any circumstances +#define ORGAN_NO_DISMEMBERMENT (1<<6) //Immune to disembowelment. diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index cef445113b..69c81229a7 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -540,10 +540,16 @@ return 1 /mob/living/carbon/proc/spew_organ(power = 5, amt = 1) + var/list/spillable_organs = list() + for(var/A in internal_organs) + var/obj/item/organ/O = A + if(!(O.organ_flags & ORGAN_NO_DISMEMBERMENT)) + spillable_organs += O for(var/i in 1 to amt) - if(!internal_organs.len) + if(!spillable_organs.len) break //Guess we're out of organs! - var/obj/item/organ/guts = pick(internal_organs) + var/obj/item/organ/guts = pick(spillable_organs) + spillable_organs -= guts var/turf/T = get_turf(src) guts.Remove() guts.forceMove(T) @@ -551,6 +557,7 @@ guts.throw_at(throw_target, power, 4, src) + /mob/living/carbon/fully_replace_character_name(oldname,newname) ..() if(dna) diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm index 28e0f2028d..60fa395319 100644 --- a/code/modules/mob/living/carbon/death.dm +++ b/code/modules/mob/living/carbon/death.dm @@ -41,18 +41,14 @@ if(no_brain && istype(O, /obj/item/organ/brain)) qdel(O) //so the brain isn't transfered to the head when the head drops. continue - var/org_zone = check_zone(O.zone) //both groin and chest organs. - if(org_zone == BODY_ZONE_CHEST) + if(!(O.organ_flags & ORGAN_NO_DISMEMBERMENT) && check_zone(O.zone) == BODY_ZONE_CHEST) O.Remove() O.forceMove(Tsec) O.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5) else for(var/X in internal_organs) var/obj/item/organ/I = X - if(no_brain && istype(I, /obj/item/organ/brain)) - qdel(I) - continue - if(no_organs && !istype(I, /obj/item/organ/brain)) + if(I.organ_flags & ORGAN_NO_DISMEMBERMENT || (no_brain && istype(I, /obj/item/organ/brain)) || (no_organs && !istype(I, /obj/item/organ/brain))) qdel(I) continue I.Remove() diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index 66bca919c4..f2db06ac2d 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -60,8 +60,7 @@ playsound(get_turf(C), 'sound/misc/splort.ogg', 80, 1) for(var/X in C.internal_organs) var/obj/item/organ/O = X - var/org_zone = check_zone(O.zone) - if(org_zone != BODY_ZONE_CHEST) + if(O.organ_flags & ORGAN_NO_DISMEMBERMENT || check_zone(O.zone) != BODY_ZONE_CHEST) continue O.Remove() O.forceMove(T) diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index e01059204c..b7dfa3eb88 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -2,6 +2,7 @@ name = "arm-mounted implant" desc = "You shouldn't see this! Adminhelp and report this as an issue on github!" zone = BODY_ZONE_R_ARM + organ_flags = ORGAN_SYNTHETIC icon_state = "implant-toolkit" w_class = WEIGHT_CLASS_NORMAL actions_types = list(/datum/action/item_action/organ_action/toggle) diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 534261f63d..761ebc17a2 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -8,7 +8,7 @@ var/zone = BODY_ZONE_CHEST var/slot // DO NOT add slots with matching names to different zones - it will break internal_organs_slot list! - var/organ_flags = 0 + var/organ_flags = NONE var/maxHealth = STANDARD_ORGAN_THRESHOLD var/damage = 0 //total damage this organ has sustained ///Healing factor and decay factor function on % of maxhealth, and do not work by applying a static number per tick diff --git a/modular_citadel/code/modules/arousal/genitals.dm b/modular_citadel/code/modules/arousal/genitals.dm index 69d2c791e7..a7b39f1706 100644 --- a/modular_citadel/code/modules/arousal/genitals.dm +++ b/modular_citadel/code/modules/arousal/genitals.dm @@ -1,6 +1,7 @@ /obj/item/organ/genital color = "#fcccb3" w_class = WEIGHT_CLASS_SMALL + organ_flags = ORGAN_NO_DISMEMBERMENT var/shape var/sensitivity = 1 // wow if this were ever used that'd be cool but it's not but i'm keeping it for my unshit code var/genital_flags //see citadel_defines.dm From c1436c4c7b3b840adb2d8f3b6444eabd8a2fdc38 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 2 May 2020 18:34:33 -0700 Subject: [PATCH 28/36] Maptick lag minimization port (#12066) * extools.dll * backend * queued pipenet builds * oh yeah we don't have that * wow * Update air.dm --- byond-extools.dll | Bin 0 -> 844288 bytes code/__DEFINES/_tick.dm | 23 ++++++++++-- code/__DEFINES/subsystems.dm | 11 +++++- code/_globalvars/misc.dm | 2 + code/controllers/master.dm | 35 ++++++++++++------ code/controllers/subsystem/air.dm | 32 ++++++++++------ code/game/world.dm | 2 + .../atmospherics/machinery/atmosmachinery.dm | 1 + .../components/binary_devices/circulator.dm | 2 +- .../machinery/components/components_base.dm | 2 +- .../components/unary_devices/cryo.dm | 2 +- .../components/unary_devices/thermomachine.dm | 2 +- .../machinery/pipes/layermanifold.dm | 2 +- .../atmospherics/machinery/pipes/pipes.dm | 2 +- .../machinery/portable/canister.dm | 7 +--- .../atmospherics/machinery/portable/pump.dm | 2 +- code/modules/shuttle/on_move.dm | 2 +- 17 files changed, 87 insertions(+), 42 deletions(-) create mode 100644 byond-extools.dll diff --git a/byond-extools.dll b/byond-extools.dll new file mode 100644 index 0000000000000000000000000000000000000000..a83ea1e5434afd04f1f7d9d5b03a6a48fd729de7 GIT binary patch literal 844288 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
wZ_q;$GfG9ywt12R&i zG-#Dv8!5fkDw!WCo$q_1wiiE#k@LrOxmK^`TqrP<%bE5j1rM_|0_svv&E${YM zpOz;Wf-r$vF-;blEl0qRT%vQP4~ev|J3X>N-RZ|6_Sz@CHAqZo|FPxMgc(<46vh7Z zMQSPrdZCW@9PO06!f&vJqsQvkT**K@Qt}GaFY*k3knhsB@Adj#d*`jl4?I3KSs&@6 zGyQ6=0EU+r9w_6T9BTbG@a07KVJ#8~)x&6UkV~@J{e7h%=A3Oq0b?)f8WhTeEdB*6 z^LWw*=WA($z4?00Rb^N7xdN$1^NnS4%D&XJ9e8tMj~*Pb;yrNg15Z!s@wdzu(hr{@ z`f#ppOsT2RCYy=`L`w8w;epW?!mX%BskO)O+4#K&f3=05R%2KUx#AdjbS8$f;2-)m zXalA}H$7F$f(A8~4Kv}Z`ddEWt?#!|zWwXq9ruWCs-K4E-pN1z`OgP0D~Y;`n)kUT zYq9)uqti!o^SZcP`7g9V8ko+IXz}RqzI~DD#};fq(C~H!w}9#)LG>3d$1H^f+s8K% z-{$Qea=ZMwbLWn*%g^Xt{uVN8klDNZ^Hb$Vdz8PtcljRE{?hdJk2dWeU#@~_<)7Ex ze#U^t<1QfIE}RIO&#yY23e@J`$=ureVN>e-TGg=;K%Tn7ck~b;;FeoE(WwO;3# zR|x~GB4~qnwfGNAV~r9Dm9OrcAEUb|RH1M7ChlNt zpaWI4NAWIWU+ce&GjnJ=8`bh$eXYNbdgZvOoUX6+cVn{>+D?$`D(A+4N)|V?oz2{# zHEl=Y?aTd79>{Q1-b5z#0$$$|IO_@Qtt`@oEEoxwa)Ja=oRZ@QdwX1RDfd=WuB#G; zJmqdImU73KcrC4PlJ!c}Ml<8j78lPjT9D*h|j{Z_AJ`p}pf@Ky(2kT=4}!d6Vp_+cS0G9`Pu(zxdRoN3%0F7wP`j4(sMofyd$N*xjeM&A@>6X2 z)S&b7a*MBNAN^$v%)U9(c%M}`AYZ2!5 zMCWIo`q7WEj1p+&oDz~Jm@Q>&5bQQva5MGC^X(I%`aHgG(6z(@ZJ1VoJStRYO&x{m z98lEH#k#}DCpBU&RTh(xPg-ZoC%JC0<&(CEn8}aGfQ}2vTR)ci?y z^a+8=<6FpNq=k}lOK=A8OvBR^RDK|p7Fr6qz}X7#-9#4OYVn3b5}lAlPYV|i)wk@V zT#^x%@;x4t(gUX^izhrh88))X(QBk0fsCENKVeWVM`oV7zU5Dr&xh-!e2iB6tBcZN z0}{(=A-TKYtD=w6L5wiOEZoiV_pd)lByNnA+zKbah{1VbSa_-yW4TJb_ET-Un;Rbq zupDMnDZOSqYbVc#gy*Op&h1W3f@E*g^olQZI1qT3CD#p=&3Tu%B?W(1b$B^MQs-SS zd(^K-9$1WgTC}d3U+itI5=8|GCuIae7a8%C5taGC>b@)Q)`6^|(~D%~p@4YcyXS~# ziT17pEb7ZeQIkjy??=E5+7VKdx~@xj!u6t=@ogoOC*qSX;me|NlqNXPM>}f{m9gD# z;>OB7#|o{-p^;Tn4@{{VQaPRGVimTo4bfO}0R_ANyP4z?qac?&vj3K!TE0Y6kSEfc(m1Smf7TA zk!Nq^_rYmjLPqZMMf@_>10!`Ch%9Ww4l9RewC=}}ux=y2(Yhb$@N^x1K!;cJ zEBxue2A6R`wMqSA3=kE833ueNO?+hq+$s$h|5`}m8wO^HVVpwMC>S6^ydhpEX?4>= zo3ME!?xu9P#|D{lsiM)P%Dc;+LHg)aIjaVX*P3A0-x5~cO+-clJ8;+)uag9(K%{0{ z#C4Z(O4Ul1A#BYJOzAE}5Y$|RsG@ZejMa%*aXf3i#miLh)z#Nc6O5>C62C6BYjmoE z_0+-os!n!rXx|RbbJIbcGhQdjb(0>G@*-MM(3(1fnqV|)Rl4kMtZiN9;j~(m!3&5Rws@p>DfoTOrB#B9XJM*(tRh- zeKb#%l85M13iaZszO126qG@9NK&x&oK}5lQ8nx8*+NM0n?)&IOYqgZ?S{B-GJ%t=m}F_>G454lHs9D&5#Yh{pP|4 zWYzlW1b~G*{87Eqt&gHnS-3Plm=YT}{1>*AUe8ukQVaiDFFw74;A5-%|AQ3IO0&_D zTK#-3xY`4i{AC?3{IGf$Yi<8XDv9|EKMZ|fMQ@ca@x0yPcROvaZk8Y}%_+pickdGv zfqA(d`i|{6@D2W~@>kaO*|5h>Pi@#Qqy2wE(B#NSf~HfGpy~6-=@1^r0#L<1TBU(! z)=2=Sk+cZlIodSP-m(3I#Cm74-Vw>V9_BPNe&7TozV=?S=F?B2<_AaVntzt7!M44X z`mcFds^;uu&3V*JmDj$jtF$^<5+_sXI8*5aQ)z_&;=09*nm}65M}K3>G%~3{^~^Ie zAGv54LkgnoGpJX-sNqiusuzt;;1A+Q#_Glqa;Qf}=+#G5jwvznuz)ow_okgdZ~=r& zkjeFVb=TX{d`YdGqjXN_ySsj1GR2$&5cI)fw1zIJTxY71?p!aPDJsa5q;CGj>xxpL zX?Dnp=F)a6*@ID$s5A%>#nroEDMaU2Mjn_!1T4#G{5f?Wcg{BD{t#GNgRB^44cjmz ziL*J(kNKuHySDK*2LvB|QxCd6FdqtI)#DbesV%5oI-m&g>qGpVgP=p<%he+qPN_Xw zyVOEFUve0P8Q^Ro41W9PNu;jUSv zHYF2vN6dbo8gq$VOcAWa)!qG)T}xL^S!a-_z_HwD^i}{}c<_dbDv zb*uT!jMc5<<@7xj}}~vrWn3*zi8aSPdH{StJ;% z!xuZ zvfKlW{Cz$xa8RPUL)R|BSX~ys)b8hH`kpP(fn(#MQ7KYtXOH0jQP(cPSRJT}o|6uqBUv`!EZ znv%~{#`Fp1LcLVZ(Y<6>oq}>}u}z&Y^4JVwBX!gHtr|wQi~5|@m5nqO=>FdzRpv+p zhakCZt;l0isKEhB%%%q}iN>_m*7(TJe|~=6i-!*w{Gs`1hIO?0{ZX!? z^VF;DGP65OMCJHKJkKww*IA?w9^PD`^VfroUzi zOwQ$Qv!bGP(o3*T66tmFtn@TeSHy3uZW_Nf?kQV}I<7$IpOCB*H|pNDL zZPp2Rwhcyd2$84MfKJI1B(HjrJO=m66yLBKmIjVp6;z9IdLV`ND*J!5y$yU*MbL%T;z)R(xIDWtDYt z#TT?HU<=q(Kq!g|!YV4OgRRe2VWD6pzwbFSdAV&t_j&&Rem-e#?#y>y&di)SGjryg z>v4vR03~AH{0e5+sAJh3vRI>FX~hgy+^7(H2<8CABu9J1aqRgJchvv=OKg(Fa8YWH zM|?^V3=-1C9p*T*WE>m z9wPoINm1SfkL=m5r?4RlIc@p3ERYknk-IXJrB-Jk4@+j9SMDtMQbM@j#)1brt6@+l zjEcX_B%aBRNrEr6E@WPBJ&#_+g2#!kKS3;#OnQnty0c_ru!uvF%(rM>7GA-RO5p5O zmAxl6s-=`7wz}xCFL8^rNUvgjDjuOuey6^Xq!I9{b6DQM@Z0wix?}AE@TQ++G~MWp zC{?-k3oFuh9zSf|U2`%~4U4;~7vST2^tCz3AosQWD!@}NNXNy#-4{+&;`Lf;$v)GLeSN- z3MP7#co$fUc&OMEa<()OlPPRg5OJ4g&8lP`SK7reD2}-Jl2f6j{0ig?YykB`>sKKl zEJc61j%mx?X{uO*U$S*5aa80xTxkgds3AS#uZSYoW@r-K_NW%9!26k)BJfokSc?Ca z=V@b8vps6)tEst}fg!=0v6$ulE~+8LU=xlPgm_6)EpNpQfxKa`P+X+j@kaDG6n-J5 zpeQIC(icT|M0z(K?u+ed>L*RyPx@gEqWa182#EBPj}nmx_mgR80PZJ`{VUo}UXMdC z_mf-1;D(rf@>B$OYq;Si0vGKk8U~_7&Je$RAJb2!N07INk>>-6ev-E*0s(pJ2o&xo z=@HP(Fi4>K0CfQ8B#Ueca z#AK9<6&sFR7E*(xa_lGDkKIeg#!$92V5_InJBVZ76^ZQ(CXB~MDn&T_PwYuioC1!M zABi&{HvjqqoImMTzg>sEC+>yXq$=Cv@1Yh?s8ptKDskadoE5`jJIdd{JY`4mq6N64 z%=|`n6q-zyhR_4Kqm+ow7@%G+QX{fLtw7=KqL!n$mjj2EoA^<Q za$;eVCPm`iD{*$S)ggxg*9MX95vzAm$tb?Kl&1n3ePSUo996d~QA|@W`Q0gu`R(Gt zCCFS>Z&3#jHODENWj?JufpI4cgv5_LSWVIF<=hKbsRrnx$C4JX9fPFWH;N#8Ad8K#%|0? z`nVMRhE#3EAiU6wA^49f0y#(DDydcksi1NIlWgg;%RmzZ&aK$*JNxyxO8zZMz@4zv zL{NjX{AXOJSWcH*_=U`fc36D0w?pKeBev0+lS@D)6#Fq^^{Y|Lz%9sK3I#f@Z5AGY zxsHP^h%*~k4-*a`Rv}F6!?eu-sz=n~Ed7GkkTORz6qiTO(+3-4>|!xeF6lc_Se$Zy z{S*w({;Q;K$hSxQ&>629!D^{S;SS;v?_pJ7?ilwA{XspHznp4B zNr^JdYKOBr$sSP2J>aFEBR$|TD(Y3_dKwMP8HrKEX1O2C3-^Pw4npMQTeaxg!|IXh zC6Ea`Fz(km^eK)h!jcjypzlEQXt=3VEWWv-oqj!E?AW1-KTj0Vf|on9RownB?847* z$Z|f;<&2M(lTJq?^TbPFhO&eYgiCnGmz1bjzB7`b-YmKzNm)5{C74f9#9e@knV4@q zdax#x(g%%ffd>;*q_5oRL=A#xpTbn*$x@+@d4mH;ZgmN*ok-C?H&~4z_z9M3z${RI0ORRh8;`dqN|ty zaVJ$nm1adM|1vQ*Zk`3<%9nfr!D5Kb8E64|X%?(PRaNHp<=-UDs^fY!E-L5R{9Ej>*V8CVqdiOc(}|4--!v+IhPE5 z5L9!43+g{&S9$@<(>Ruen2s`qu7-Sf8TVmsF@GlGO8YO3!!AB{6|se%jmz7-e-A}F zrDm+|6LL-s-Ecq4pxi~DYK%;NDOodRFAic7@z=tOiBI#^p>^c0jnL{qa4s}rRiHJJ zDTRUjw!bWTAiBXb8$}g)5OE}rWR)6NIGy$av6+rSE@iFCDwWf zBu-HW;>i;m5ReBC(J(Lxk+AV%rs2{=Oe_e1MIMb$YhXl43wSANBJ>)0cSor=@`eKO zJG$Y?oSt@;OR-=?N%YzPEhsJUorbZ)xz`5D>5UdxfG>)=Oh#QM_c1NvVvah6^5QK` zM134lB#8}uhY_H4EK?R5J$UqpaVJRdWu`kHOjoU1Vtua!q8)X13N z;vkqw;y$4kro3T6>0FJ)sJDIuu@s7oR$eK_qM?|RJt00zU}U&SCW`J`(A0vPTE%}- z^oquR5%Ik(984QL;yXk)<|P-a-R_l}@iU+{l%9%iYg3zuzt;n6E25&%m_bpV7B2!1 z@Ea69nZY|`&@<5;`D7yAJpjupJ{K;m+(a=}P~wWU?L`B7kH(h%Ph!SaRomypVX)bl zO)b?^p7n_FXPLT?D&AAL!)6Xpn_5pmhkybkA*j0I3o86P2kJr_ed4hiB81w^TNT~R zqb$XrA<>%&@w|8r_%I>HGFTDf&#ee?JHV0Ou!W;^Ar{gd*q*(L)|4#FG%y z%!GJRtN=bth>;9dgjmyx5K{n_gm~!;gs43NLZrqL;_qTCXw8IpNqiRH9wGh)8)8ZA z5#j~xf0_fR&gjV?go^?sA*jS+2Nix^D(Z5GewMvQgrI68`r7C*025+4Br7u^UKY!M z4-+Db!HN+7Xhn!|082uwix7ebg&ZJiXl(omgy(^{FWm^gyj32Jas|7~_u|IOc+aXRI<6Lhb~T_^4M?Lgr|tWWGQ3M2NpI*lNuV&7%7 zQL>}N=}p6ypjip75{COQ;fiih7(^{$z%YZ1k01?E4jEN%DrWzXaqzE-&X8xv1t`0y zO~x~Psay^=`8td%)QQKj8Dg@P7ipWvuoj5kYLfL^7h6AvsvjCdUCx*4&p%?n+20(G zE9T8{zW(yvKjk}LBW}1gpCTcbt_!6FEp$s5HV0R|0Gor|Oj@&~462L}hA(NG?GT=q zq4azOlDZ6P?a*7N-Um75GMFIz^n1$24wcc1*TvfZpma&)wh>V+!ijskP$jkF%OgJd zcdUQfU%BsGB>McMD$8IuOhq|ejm%;Dxk_K1ocPJ>Y@Rt9Q}j$~P9{$)c^G7e06S#!2*Z zsecv9RC-ZGwQ<8Bl^hsO5AfoK3q=})yIPJB*U$}|$caee1}8Rl`6Zt|AHbF;FISc$ zJ*n>(ScymR4zBA<^DhD1(#MHwZ~7ld!~anSNn@c3WLiVR8t zFkWilt>gD=@ZTz~kLH)&DnA@KQbcS^kXGO|^;nRz7NyjRFanf-ww@BxSVN*VumR8N zC=&}^f?~l)CBm^};c_t;N8N^dd98ajJoT-j>f^$NEK(gs4-m*I-ugL0g4RU>AhC_M zK}jO-%A<@|V>`~^RJ8S!qQ)8&$VfHwle8{8$N}`<2<*lGTGohwZXo?g)K(ngaKRyT zHm@qwL@%HxXBbpUs?ZuSvw4m$ct6@;Fhz@(j+`~kNy|wN}@-_((0ug$U z@9jtx3=X0WO$=7@X*ka|q|NgN$h z4mw7cQRr0RL-fAKOcQ9hCjc7$?J6d8M=B?b9rT}j`L8fcJBe@sN>5u)Ny)>} zTJ8sChKbUkhf~k6igTj*b!(MhWI!^*JZn2KOj(+hfI=juOx9CkQlG6>Dz{O8k@{w6 zKQK%x5jvYOAIS@{zi9;MvDUo|U9M6NJ;gTHBC6!@R#AS8r)#~*2(&I(ghL{Ow)|6s zJ|#k|=F(A$lEEV*nlhPZZsoW1-(V)MRN^GZ2hXhI@E!QCl-6XO_RtIFnUpvUpylGq zZ)pITCjrGX4=|oUR`J?@BF);SHZfY_?eNS2TpLP7TTdx!fkXI@+CW7EWF+Q%lwZ^T zu=e1SI-tChU51y4#jOI8V+2vnsGQl*Znv_?$B1;*CXKu5`|MlpT_{#(VD zM^9g+ByayPuX42IRX2Y^4MeFx`Hudx&{7+igy%SY3(C`}?VS)@=L%a<+YHVHAq z8P*x>jMc^zfW@BIhz9gn%lsB9XtVG`*0q#gL#^E~C~K-~wU`THM&|*^|IQ}C$0=t6+CV2<7%L2>y{1ReG4|$y}ZpDsnlnbh!Pi*aF47?a#MnwXk z8+^#nh-3xruD?M|x)Kcw1??qASbUC2ka`Rf?BWr*=A2f`0C3HI<^V+>aLq0Vkiu%W z3yAp=Clix!AEP}kc{Z{pE(uHV)BdckeoB7X<&7AAx$+GBlH^&*ZNMyDk11wJwy~+( ziiKyLM!K8=k^X-tUGD#gx**LH|BZCn_+uo$)}kExvm8pyEDyZ@f0i!yebtt+v?E>K z*s4e@??^HGSJ>p<-9!SKL)%D~icKD*FcvWX&!S~VuFbECmO2)8szF;5_*X>B4qO|O z8e&CDW|K66iA|E!XqFv``+-f8AbENbl4dhnuV65NO;Qe$bqoP{qO3#CV~S0Zz!w%F ztFW{@U6o=)$adJ|U@TD#7DP`gLUw8^LKZ~xYa>G1yuHJ0xpP~#9Nb0u{T30@87o3& zd`WaLi;&$SBBZ+sQl#RaiHIrrXYv_D$Sf3tMaXWV57yUF=E)*tSC5#BQ6IzTrW3K5 z(cNSYpr%3qwtlkB0o3Oa01nvK96 zdLR1{<6`+Aww6yTFP_jgEa_4I_NM2ep;^q zFavIK86a{`;j{}T{Nk}cg$kF8?dRT z5FdDz{k+JySS^soB>c0x5D>Nbsv&zRkuK_1RN=X)f&{J#kSAUhvbnu zw@~Qs3w(~Z@K1PS?hiVjwaFo!5(bk zD$#W>ako`;>lBwyS&-z-?6a_IPKBFIg}aOkM~}7c3dAe-^Fq2Kj?_tCfhwR_pcOHp z<-K;Y>4btJAjb|k|NSABx4A2c4DexWep`jNu-tGL-u@<6ErTH--g1~bs8N{K)>VtR z?3-4sjrbYt*FJ{JQq0t(Jom}^7$*srRDh6<`h9Y4rA5%P(uN>4`MUOXuY z4|fOfBgS7KX)n-trHa-vU$6)-%q|&j;v(^I3-*1*Db@ID^*n^42Qu*ADn>xHiu#>H z)eer4_%0$9LqPCuXY8(6Gzq+@lGD#GV zs!S3&6N=865C96v1XGz1Sd=3Z+(k=9F1(mcq4-Vu$yye0kP*GmHm2ggRPSY-3DhP@ z^g%{=uu_d=W-bC#jR<5I^fR0pB_O&{jjW;Bj?ipK=oY;4h%d3EA>GbpkR_x-2GX>P zy1x=*HYg6?x3n(pUfEe^;i_^4za4GYiyeHc)FbcBpjf*V|!IQqKwNaK&4KIUpYfVGi^VNn4C^Z0I%?I$Tr^am!O6IKOnh z$q6I1jyURYRy=~}bntOI{R;dQzx4Ish9O;A`AUyk`RZ==Ddv3Skwio$zhd7XVz$$k z`=*3AE%AYj&@fUrC~fi656}j2sKB)~%=QBTArXLmOwwrp}U0 zT~^-UqI>p~vv>e?)62@y$dn-Ed)h{>LWJMY$bYt}Mo#$V^o>kui9=s=1Zrgd-3h~i z8kv6tRUjIfGY&WM-X~QfzkmqT$Q=7gjx8G*G_+)bbjv1ws@Mj0iC3r_tS`jLiKcgYB^gHa4yG8 z^(0dCD^mi66~AIfpa&L8up_YGE7=h2Oo~Q(&|NOSD(Fk!NFyG(S&`da`m@9dBBl#2 zjmeMqYJVlm)$yF=S>Y_hOfAR~I_Ju370!49@u+yUowXtAM5B$dmeEKR(#q=xxgz?6 zs-SxZr-efreB)?}oxH&0%jz?vLT9H)0ZGJ^fXUyx1?rwY`dr7SAE_HNM zjv%=x7u$@s_UJtCWQ1Uz>!V56I^QZtzE+-Djs0 zZJzbwKaA<%Kcd6^B91@kjZ}4j$}Re3kQ&eqiy=H_Pp( zP_o{EL%-Nu-hzP;u?m-oQBSL-&gvvu=&XfA3zN=n7aYiHZWvXoiX%6(YvuBUEcRJ} zqHU@T;&)(kbXi)9-6L(^sP5>nZ(WmpgCW4c7LXoRch`E*yG=Z$cb&eqTCnp_OY{Q zEEYsJY@{{VYOQRos!y~kNs+45Vm@tM6CI7{(;B>loeAq8*e+@mAjQjTaZZ4prStVyiGrRv~=)AvRn= zC8rfDmE0+IAiTYjcZrnz!R@iMEQ#l>ny%REbnl^MEsG4rh_jUElBG;ioex7Qxfkp1 zib{^9a}U>;>qDf`3M(X9?o??LD#b1wMYO6mP9E2?&m+_P8<^%1N11Kg>pjgrqa9}OMY z?V5yQ@p1pTZNz7B-aB%<_}Y$_^CD&b;|FbNlxi;XT#6!Tv=R&$X=(7nWVg64Z%b3cP7A%07 z<)61#w+HbSuG^fOY6|?#z2@DH$+AFBmRb1HeI&S0+wGuTIK8Z*){UE1Wji!qy>~uU zm#!yYD$-U!6k&OEX?$(GO~2kz>E5d6z=K*nQT;)?HphXPQl!*Fq%U-opK$tag1taf z+EZoPQ+H@(^*V3Wdn=Fw((fm#A4mF4OA~7oZE$u&J09Ge$V9u@t}S$E6Y9kVED2yb z4C6|5_`lPOE$wahzWE6%4JF9sHy*ROdLOsBzQbqyNt@d<5?- z_PF@?c&okbUp!vf@JX;Iwhm01x!eX}V=_J@v{>TgU*tjkrZ0=Kcq-*1Z&W^F?}%+Q zO!X6dQ5xEtbYHvH-DD95wvx;Sby8mme#hza(%^~{S4R7h*_D~$^)JJ`e4F}}Iu`N( z7>dZaT=z{dKaGm1l4d1R@lqt&b6V*x6YV_WZ|~EI!e8(|yr1cBEG-{iPbM>qofR)2 zJ&}}rDl}8iN}idSumkU%70dBf#qsr*Cn=YE>)JgG(ci#f$ki~{fRmJl$#2g9UVL^h zZPaz5w8(&`kzDzF9iH_LT09t!N9#ntMBI2bNTu>A?J2PhxaL`2)@-Rw;3Agdlwg_o z6fd8r%jwY9^_?vyLT_9d`CN7|6k?}~{$^bMD@VEg!>1skrPM1j5KV6ydKLXHwGX{& zI=+3qg9#jtn85^kg9kW1i>7!DQY4eEzC7n!qjBot(ruOg=B}mGas%4~%WLzLj4Fur zZ5w_#N7Vd?_mN_iG1o1Vr3aV(}Pu)z0Ox2(4Un_sLf5CEUB9w3S5g8dU z!wT1Oa4?Y+^5767tc2_l)gNQamo8oEaU~t}th7*lB`I`c3gN{_H$6$;74ksyxD*aY z^g8&+=t_PCcZy3eapP;93-pWiu3_@rDGLnGpeJx&Q+KA<=<{4P&GDH{b5gx~p_}fV zeLEU?)JWRHxfnS@z8rY0!2#3D8cc!@dR3d}z&R9@pc9M5vDp^OG#Gvj+s96OH?scl zHx7#~K1}Y+$uWW6J$9x-lw#jMdlH@%tkFJu1F?kBP79e3xMw0*N(V-WDw0M1Fn%>38iPPei zy6u(mI2mn#BXev_!g8_Q6Z&Z22k%gF{^k&Q2tDa^pJ+%21#!*YrpN0AHtRNVMK27& zd|QHRi|%XW*f3wON`v85fZ;X3Vcpp=I50Hyfgw)!XC3SHY?uG*9xy?8(Pm#hqGJ0A zCbHM@r4qYdcu=Gtqr=OCC_IK87vDYvojgI0!%%BAnv}=OHMY{EO;sH`xEh>m;y2af zp-SMNb3_w5A@r}rcb$2WgGn03er|%ktM}kD9bJZdD{c>5YhL4{J!Ybe@ccHj!1-3S zmNQ)|>K)?`f!e#s1+Nw9wKQ1kO@ro7Zffrba3zoj&COegyhzOUM=jeSTOH}cc{96q zC}7tPMS7vjQ(_U{tfzY0qetx^4BT&wvC(#`P9 zzo8elVffuy^bUmxdQhYmBOg8ij^)wRm7*ttclJkN((C+Rol>SwyPA&#=B4xY)_!c} zkzN3t`3AKMrWuYKw9z)bu$dq1(&9Dr$a*ZmRh@#r^Hm*YuuKp8IQZ1FvjHfu+w{Tu z7+bpY`2ScxjT(YNg*e=79txEoeqn_RzTo~!R2#!obE=3{6e5jDZL2xl)4DA}Lz{l2 z!EOxdka@(Ja|HKu#QkV4a-g*LE_cfU>lV*MWG8N+Bq!QHE3~_wG%j9#K-s2i+0%pBGbGL{zh=>wo-;$so}uS> zwQR4RGfT^!70i**a%8j|juycAc zBT@D@a^Z-c_P_8Sx64z^w&*L~1v>x(b=%>G!io+%O|!GZ-B{%fIe(Bp=W+VJ_N+bX zc5qOzZ@7%PtQZo;_KA8kJW17r;wOqF3DhU;`at*sC>AqvS(r3zn_xEra>^FPTTvhA zBUQ%EPZ&)T+Y0RPZv`u?b}%OUl zxZ;`D?Ge)jM&rdeyCToetXq%BAcHriLdXM<_DeN2MXAr%N z(W#h~`F8<+#~U{kctkCJ>-p2Q-04Q{43GeSxJ)R&?DVD2n}I^;`CdS*)Ww=gZ_}qX z>2>Kl*)Znu!_bI}G5Gl}Y&&UI!?6hcOPhMgu+?d~c0Ci0Oti8C+SG&a28)yuW-cf0 zU4Y#E!4#PEL?En_zimOEdcJG)qXejQP5F!%k^HY zQ2wz}Pv@-bR?guPnM5#;Cy8KQ2J`8>REQrbDh1o=Qb^+z{lkhmOT&!x0*v|I2S&O|5yFh_9@jDI`dsy9Z@ z*7HiW3HHpq`K6F@T>flZd_xCgf*r&V9pgK|!%%^Ee)TUQya|^?ej|U9O)yz3215v4H}B4xZ{wA>nk$UFi!y8P zhi3cBThPU6B??KnFyf+0OVaXf)>>HJkuJNyYR)MZixF2#LR@nouGms^xQ-7;7oO*_ z_3*DbF|Et|j+dl^k=Vp>`ZOCX0bws$RKT4p8Pz2F^pKyVFh$lhC$}=EDZO`f)knAZ zt1n9b(O=u*Kh<;IrEmyY46_>CoOih$3n21nPMFxvx83D-EuaUkgu^1nn+gQ_kUXpJ zW1*`UewX2u)RsQ5we)sWbS2G^fqI>e8RLXj2&UA6K5x9>7i9Wc zeBVQULP{au(IPaR9fVi%lWA;G3sHX|Z!>xgH51Z=3=1p$r9GWJ%c)OdMJ-lRk8s1W zP&kJpuzwp=DaPzg#HPooVPZZ~dNHM#ekzwzo|oU$o|f;w(LuofhJdXPgmo%s1stwnvR>w| zE}#ooY~S7YgTAZkLsV__@vmyWw=Uhh^y}(_@$m=a5B1woUXuYuu5FND{%N>>!1iU> zH`Rn{G>s!2Mg^>sNrJZ$Wx!@vVRd*at%udCpnDa{j3w@B`r`GFdwF<4-M0)>_SY5^i@X2u3(RX2u0ir>WQ&-J-+Eyc zZYTI_$cngaXdxO+Fzs^+>&bOk5qS-xdsNt*m8IKj5%2$rHvXZz+me8m?dC6Q1k(ul z1ma>F=tYFei%B+BftU@LHkuru9#P})CPfWCmHrLXuavk~!#GeeLNn|U#n7zvo=*|7 zdr-pUW-a!s;B70q7Uz0G?fr}Ah&;>0#mLGmf$`SR2&6%}16YVYdbeb&;2)5mS1yT+ z&o+{?zbqA75#U8BAQsHW7J#t4pCeY0jphldRCSc!9&Pj1t=b$`?kU7RpH)wYcr-Or@o#d zV^=Ia4*Ow4vt3UAHDEEgPE4EA^HOF&z_!HF zqR7rMmWeSt$88u9Ecg&3nl2NB+J0M=GSPSxWnHlV6+l|pSm+|P*Wi9oz25&PdV)jUBV zeovvDfEdAu0?MOYBK~GZK-%R}O{Y-uAk~!-EtJP-iI`_bKVateZ6xtPt1&laKh$@Nr3Jw)x+Ps58 ztfbI$fw-O#Qfp-hUIc5aRGH@RC6xt7nC5&(oVv|ICx87898l6C_&_y5rpf(bJ6RrVyV}=pY~}88M3xTP5O$H%v88R*2OUdNmNm zjA$an?B26JiQD_bjr$$rFml5I`iMY*-xKJU^rO;d;b}(WkA?y+{ zz>Mgn5TY9pBY=2{5vvLDDZN`DLa&-?evv}FNuh2ayo^{!h}9DDp&8LzAu1>|4~VN7 zv4IeCB;si^qK`t1rOcQQM3zL{X-3czhT1%hLJNTSsE}y2hY+15Vz3!;i9-BO zS0F|Lv5FA~32}hlEf5K2L|=v2K%v(IaStOJ3GtFde7w#?E9}Z~sg_dc4L}TIL^C1g zOT_bLL_dX?M4_XA=)efujX>l{#Jy%jxHM^m5%Y<|t&@m-ub66nxk4|pm7*Ropg%a_i z8F7U|+)SZkfp9TmIUz<#gwKq~P>B8%N}j5|xPfZ^3?a^yh+H#bfI^&f0dW%$YZ>99 z`CQPu1)_@?aiv1kQRrkK9%Mu+A>NdTFaKex`9OvEBZW=}qJR-=s8kga@v<2)NFioW z=u9BGGomlG$5@GY$c(s3A+Ds*JAgQJJ=J^=A<`sbq#1FwLRcvDP9R=m#3Vxej}z|} zh#qFdV1?L8p(Q|+GhzlIHb}(3UN+Tyh(bI=q4xqYnh`r_c3vtGubUA=6{3Vf9|9tk z5pNK!CP~C%GvXSBpyffy0wBI0Nj0w~#KjUZ#*D~Rh(ro41EPu%BS>00+L=-j=bI73 z6k-oTy%qQYke@*X*o!;-o&<@trpgajpg$2PAVH%UG@d|9CFpfC=voCTA<%OYbPj_& zRJ;iiw9pK?PJyl>(BCBJPytb)g{Y7wK_kteECsR)2((y&UNVDn73dZMeJDXL1`VU)jglar z88kwH`V;623EH1egh-*BdPq=~8RS-=;|_qDCFlhPji;Qx#%tn#W>B62K{XG4Y0(`@ z88Mv@>m*{|OC~BHoO$eW%I1X3<~jz=BG5w;wAu_pg&8!NKqn=r1B2!hC{Kd!HG|My z7<4g#ewLt5P~c$V4(bkFB$^a8M7c7r9h7m2==vUFkQ`{QN&5+NYK+}P@w{iB~W(>iepd(5n{Lm%`}5X zE717_>LEcp(A>eqNTU^2NMqwXpjU=HG{?} zP%?pz;|D-n7&L{rO6V-EQ(rS^yaIhmq4xmsJ4Q57HXlmFu@_BLn4l0ZQ>Yh+X^hCC zW_?;Bwwe*e3h@v^y`RZ~^<$8i3N}-M9y5a`Do`GQk|hcL1AY-qv=eB61l?o?O;VsP z1PaQWsu@&DpcXrmppO}JqXHd3sP|72q%)|TKtTy=dcj16n-u6p0=*_d#SD6eNcVdQ zde;n^tUz-J^tuFH$e=X@nkqpLn?bbAMPl1<3cV2Y{x?`HmIG9_bcq;mMod+RjuhGp zh>eU`Nr)3kOoCo!#LWt^k3ug3LTAKkuD?Vy{nb?eX$tWoh4uvEMnCFOoX^ofu1MO6B6WMP+tNqlc4oxP>BM~qR@q)!Uc?| zB+}g^5q>k`E`_*;LKgwi2w^Cg_&6c@N<@(vF-sxr2=$iZ2S9HzXcd8u*q8*VX3*UV z^f5xcizR3YgVqvglLUSDXA=qTQK07tv_ygm8B|3eO@dxCgYH$JI|<~MpcDpeCD3>Y zDl>y-E6^Ycy&Dz!7IGw{f1-3RiMYXxxKAPCDVvXEHm@=$i$FhEnF`&_pg9WkAws?X zk)Q<(8bu&F8p1I8>Uk3t<|@!i0v(f}dloBMuOyzo&QD|1~4#Da1Aky$uK) zxFL^vLeNne)qj<#{__krD3XW=&4@(` zF@Qpof%pc?ykKG_A$m$gff-S*5Fvb*bO+*9Mm$c4AL!iz(cO$#tPmekXb&J3F=7=V z-j#?$&zUN}L?NE0(6fOkWW-uRXcF<78R2I{>D}H{cmN=k0aXArOh$<+%&{wE?CZR1 zWbFUBhAO?4Vqb>X#pc)n8M{jf>1S@?s5Z#y(9%4ncPv)g1mg2up%CmbizVoFr0_Kk zmU*CH4I2r|KgEHUJN5`ZqE)o~p>q>lFXQtiK3&dBaOL9j`^yqsK77B3&pv$IeG^
4aVnAe4fVV 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%0DiW&7K++EH?pomd65Ds-)##B2NN*=wFCj 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¨em*Bp@a!mB=Taec99yA!120O2hy$Ur_UhmO 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⁢8?Fp@r) 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

9NFIKMKe2Je>Gen5MSRk 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

gokc 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 B!ovUn literal 0 HcmV?d00001 diff --git a/code/__DEFINES/_tick.dm b/code/__DEFINES/_tick.dm index 10b815e547..fc6147c430 100644 --- a/code/__DEFINES/_tick.dm +++ b/code/__DEFINES/_tick.dm @@ -1,13 +1,28 @@ -#define TICK_LIMIT_RUNNING 80 +/// Percentage of tick to leave for master controller to run +#define MAPTICK_MC_MIN_RESERVE 70 +/// internal_tick_usage is updated every tick by extools +#define MAPTICK_LAST_INTERNAL_TICK_USAGE ((GLOB.internal_tick_usage / world.tick_lag) * 100) +/// Tick limit while running normally +#define TICK_BYOND_RESERVE 2 +#define TICK_LIMIT_RUNNING (max(100 - TICK_BYOND_RESERVE - MAPTICK_LAST_INTERNAL_TICK_USAGE, MAPTICK_MC_MIN_RESERVE)) +/// Tick limit used to resume things in stoplag #define TICK_LIMIT_TO_RUN 70 +/// Tick limit for MC while running #define TICK_LIMIT_MC 70 -#define TICK_LIMIT_MC_INIT_DEFAULT 98 +/// Tick limit while initializing +#define TICK_LIMIT_MC_INIT_DEFAULT (100 - TICK_BYOND_RESERVE) -#define TICK_USAGE world.tick_usage //for general usage -#define TICK_USAGE_REAL world.tick_usage //to be used where the result isn't checked +/// for general usage of tick_usage +#define TICK_USAGE world.tick_usage +/// to be used where the result isn't checked +#define TICK_USAGE_REAL world.tick_usage +/// Returns true if tick_usage is above the limit #define TICK_CHECK ( TICK_USAGE > Master.current_ticklimit ) +/// runs stoplag if tick_usage is above the limit #define CHECK_TICK ( TICK_CHECK ? stoplag() : 0 ) +/// Returns true if tick usage is above 95, for high priority usage #define TICK_CHECK_HIGH_PRIORITY ( TICK_USAGE > 95 ) +/// runs stoplag if tick_usage is above 95, for high priority usage #define CHECK_TICK_HIGH_PRIORITY ( TICK_CHECK_HIGH_PRIORITY? stoplag() : 0 ) diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index cadc1113c5..3abef3a61c 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -132,8 +132,15 @@ #define RUNLEVELS_DEFAULT (RUNLEVEL_SETUP | RUNLEVEL_GAME | RUNLEVEL_POSTGAME) - - +// SSair run section +#define SSAIR_PIPENETS 1 +#define SSAIR_ATMOSMACHINERY 2 +#define SSAIR_REACTQUEUE 3 +#define SSAIR_EXCITEDGROUPS 4 +#define SSAIR_HIGHPRESSURE 5 +#define SSAIR_HOTSPOTS 6 +#define SSAIR_SUPERCONDUCTIVITY 7 +#define SSAIR_REBUILD_PIPENETS 8 #define COMPILE_OVERLAYS(A)\ if (TRUE) {\ diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm index af483bf888..b039e6d114 100644 --- a/code/_globalvars/misc.dm +++ b/code/_globalvars/misc.dm @@ -33,3 +33,5 @@ GLOBAL_VAR(bible_icon_state) GLOBAL_VAR(bible_item_state) GLOBAL_VAR(holy_weapon_type) GLOBAL_VAR(holy_armor_type) + +GLOBAL_VAR_INIT(internal_tick_usage, 0.2 * world.tick_lag) diff --git a/code/controllers/master.dm b/code/controllers/master.dm index 8772fac5af..db828539af 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -36,6 +36,9 @@ GLOBAL_REAL(Master, /datum/controller/master) = new var/sleep_delta = 1 + ///Only run ticker subsystems for the next n ticks. + var/skip_ticks = 0 + var/make_runtime = 0 var/initializations_finished_with_no_players_logged_in //I wonder what this could be? @@ -335,7 +338,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new new/datum/controller/failsafe() // (re)Start the failsafe. //now do the actual stuff - if (!queue_head || !(iteration % 3)) + if (!skip_ticks) var/checking_runlevel = current_runlevel if(cached_runlevel != checking_runlevel) //resechedule subsystems @@ -381,6 +384,8 @@ GLOBAL_REAL(Master, /datum/controller/master) = new iteration++ last_run = world.time + if (skip_ticks) + skip_ticks-- src.sleep_delta = MC_AVERAGE_FAST(src.sleep_delta, sleep_delta) current_ticklimit = TICK_LIMIT_RUNNING if (processing * sleep_delta <= world.tick_lag) @@ -444,10 +449,12 @@ GLOBAL_REAL(Master, /datum/controller/master) = new while (queue_node) if (ran && TICK_USAGE > TICK_LIMIT_RUNNING) break - queue_node_flags = queue_node.flags queue_node_priority = queue_node.queued_priority + if (!(queue_node_flags & SS_TICKER) && skip_ticks) + queue_node = queue_node.queue_next + continue //super special case, subsystems where we can't make them pause mid way through //if we can't run them this tick (without going over a tick) //we bump up their priority and attempt to run them next tick @@ -455,14 +462,15 @@ GLOBAL_REAL(Master, /datum/controller/master) = new // in those cases, so we just let them run) if (queue_node_flags & SS_NO_TICK_CHECK) if (queue_node.tick_usage > TICK_LIMIT_RUNNING - TICK_USAGE && ran_non_ticker) - queue_node.queued_priority += queue_priority_count * 0.1 - queue_priority_count -= queue_node_priority - queue_priority_count += queue_node.queued_priority - current_tick_budget -= queue_node_priority - queue_node = queue_node.queue_next + if (!(queue_node_flags & SS_BACKGROUND)) + queue_node.queued_priority += queue_priority_count * 0.1 + queue_priority_count -= queue_node_priority + queue_priority_count += queue_node.queued_priority + current_tick_budget -= queue_node_priority + queue_node = queue_node.queue_next continue - if ((queue_node_flags & SS_BACKGROUND) && !bg_calc) + if (!bg_calc && (queue_node_flags & SS_BACKGROUND)) current_tick_budget = queue_priority_count_bg bg_calc = TRUE @@ -515,7 +523,7 @@ GLOBAL_REAL(Master, /datum/controller/master) = new queue_node.paused_ticks = 0 queue_node.paused_tick_usage = 0 - if (queue_node_flags & SS_BACKGROUND) //update our running total + if (bg_calc) //update our running total queue_priority_count_bg -= queue_node_priority else queue_priority_count -= queue_node_priority @@ -583,14 +591,19 @@ GLOBAL_REAL(Master, /datum/controller/master) = new log_world("MC: SoftReset: Finished.") . = 1 +/// Warns us that the end of tick byond map_update will be laggier then normal, so that we can just skip running subsystems this tick. +/datum/controller/master/proc/laggy_byond_map_update_incoming() + if (!skip_ticks) + skip_ticks = 1 /datum/controller/master/stat_entry() if(!statclick) statclick = new/obj/effect/statclick/debug(null, "Initializing...", src) - stat("Byond:", "(FPS:[world.fps]) (TickCount:[world.time/world.tick_lag]) (TickDrift:[round(Master.tickdrift,1)]([round((Master.tickdrift/(world.time/world.tick_lag))*100,0.1)]%))") - stat("Master Controller:", statclick.update("(TickRate:[Master.processing]) (Iteration:[Master.iteration])")) + stat("Byond:", "(FPS:[world.fps]) (TickCount:[world.time/world.tick_lag]) (TickDrift:[round(Master.tickdrift,1)]([round((Master.tickdrift/(world.time/world.tick_lag))*100,0.1)]%)) (Internal Tick Usage: [round(MAPTICK_LAST_INTERNAL_TICK_USAGE,0.1)]%)") + stat("Master Controller:", statclick.update("(TickRate:[Master.processing]) (Iteration:[Master.iteration]) (TickLimit: [round(Master.current_ticklimit, 0.1)])")) + /datum/controller/master/StartLoadingMap() //disallow more than one map to load at once, multithreading it will just cause race conditions diff --git a/code/controllers/subsystem/air.dm b/code/controllers/subsystem/air.dm index 13facc7666..d8c7724333 100644 --- a/code/controllers/subsystem/air.dm +++ b/code/controllers/subsystem/air.dm @@ -1,11 +1,3 @@ -#define SSAIR_PIPENETS 1 -#define SSAIR_ATMOSMACHINERY 2 -#define SSAIR_REACTQUEUE 3 -#define SSAIR_EXCITEDGROUPS 4 -#define SSAIR_HIGHPRESSURE 5 -#define SSAIR_HOTSPOTS 6 -#define SSAIR_SUPERCONDUCTIVITY 7 - SUBSYSTEM_DEF(air) name = "Atmospherics" init_order = INIT_ORDER_AIR @@ -20,6 +12,7 @@ SUBSYSTEM_DEF(air) var/cost_hotspots = 0 var/cost_superconductivity = 0 var/cost_pipenets = 0 + var/cost_rebuilds = 0 var/cost_atmos_machinery = 0 var/list/excited_groups = list() @@ -27,6 +20,7 @@ SUBSYSTEM_DEF(air) var/list/turf_react_queue = list() var/list/hotspots = list() var/list/networks = list() + var/list/pipenets_needing_rebuilt = list() var/list/obj/machinery/atmos_machinery = list() var/list/pipe_init_dirs_cache = list() @@ -39,7 +33,7 @@ SUBSYSTEM_DEF(air) var/list/currentrun = list() - var/currentpart = SSAIR_PIPENETS + var/currentpart = SSAIR_REBUILD_PIPENETS var/map_loading = TRUE var/list/queued_for_activation @@ -52,6 +46,7 @@ SUBSYSTEM_DEF(air) msg += "HS:[round(cost_hotspots,1)]|" msg += "SC:[round(cost_superconductivity,1)]|" msg += "PN:[round(cost_pipenets,1)]|" + msg += "RB:[round(cost_rebuilds,1)]|" msg += "AM:[round(cost_atmos_machinery,1)]" msg += "} " msg += "AT:[active_turfs.len]|" @@ -77,6 +72,18 @@ SUBSYSTEM_DEF(air) /datum/controller/subsystem/air/fire(resumed = 0) var/timer = TICK_USAGE_REAL + if(currentpart == SSAIR_REBUILD_PIPENETS) + var/list/pipenet_rebuilds = pipenets_needing_rebuilt + for(var/thing in pipenet_rebuilds) + var/obj/machinery/atmospherics/AT = thing + AT.build_network() + cost_rebuilds = MC_AVERAGE(cost_rebuilds, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer)) + pipenets_needing_rebuilt.Cut() + if(state != SS_RUNNING) + return + resumed = FALSE + currentpart = SSAIR_PIPENETS + if(currentpart == SSAIR_PIPENETS || !resumed) process_pipenets(resumed) cost_pipenets = MC_AVERAGE(cost_pipenets, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer)) @@ -137,9 +144,7 @@ SUBSYSTEM_DEF(air) if(state != SS_RUNNING) return resumed = 0 - currentpart = SSAIR_PIPENETS - - + currentpart = SSAIR_REBUILD_PIPENETS /datum/controller/subsystem/air/proc/process_pipenets(resumed = 0) if (!resumed) @@ -156,6 +161,9 @@ SUBSYSTEM_DEF(air) if(MC_TICK_CHECK) return +/datum/controller/subsystem/air/proc/add_to_rebuild_queue(atmos_machine) + if(istype(atmos_machine, /obj/machinery/atmospherics)) + pipenets_needing_rebuilt += atmos_machine /datum/controller/subsystem/air/proc/process_atmos_machinery(resumed = 0) var/seconds = wait * 0.1 diff --git a/code/game/world.dm b/code/game/world.dm index 1d719ee138..94cfb0baca 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -8,6 +8,8 @@ GLOBAL_LIST(topic_status_cache) //This happens after the Master subsystem new(s) (it's a global datum) //So subsystems globals exist, but are not initialised /world/New() + if(fexists("byond-extools.dll")) + call("byond-extools.dll", "maptick_initialize")() enable_debugger() world.Profile(PROFILE_START) diff --git a/code/modules/atmospherics/machinery/atmosmachinery.dm b/code/modules/atmospherics/machinery/atmosmachinery.dm index 864edfdbe6..8f5ab7dd5e 100644 --- a/code/modules/atmospherics/machinery/atmosmachinery.dm +++ b/code/modules/atmospherics/machinery/atmosmachinery.dm @@ -64,6 +64,7 @@ nullifyNode(i) SSair.atmos_machinery -= src + SSair.pipenets_needing_rebuilt -= src dropContents() if(pipe_vision_img) diff --git a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm index 73cb8eeecb..c164dc5ae3 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm @@ -116,7 +116,7 @@ if(node2) node2.atmosinit() node2.addMember(src) - build_network() + SSair.add_to_rebuild_queue(src) return TRUE diff --git a/code/modules/atmospherics/machinery/components/components_base.dm b/code/modules/atmospherics/machinery/components/components_base.dm index 63a03b1d40..a45728d51f 100644 --- a/code/modules/atmospherics/machinery/components/components_base.dm +++ b/code/modules/atmospherics/machinery/components/components_base.dm @@ -144,7 +144,7 @@ var/datum/pipeline/parent = parents[i] if(!parent) stack_trace("Component is missing a pipenet! Rebuilding...") - build_network() + SSair.add_to_rebuild_queue(src) parent.update = 1 /obj/machinery/atmospherics/components/returnPipenets() diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index e013a86fd2..38042fe64d 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -447,6 +447,6 @@ if(node) node.atmosinit() node.addMember(src) - build_network() + SSair.add_to_rebuild_queue(src) #undef CRYOMOBS diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm index dbe3c0b90b..dddfdf08c1 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm @@ -116,7 +116,7 @@ if(node) node.atmosinit() node.addMember(src) - build_network() + SSair.add_to_rebuild_queue(src) return TRUE /obj/machinery/atmospherics/components/unary/thermomachine/ui_status(mob/user) diff --git a/code/modules/atmospherics/machinery/pipes/layermanifold.dm b/code/modules/atmospherics/machinery/pipes/layermanifold.dm index 33092f5354..bc8fd6777d 100644 --- a/code/modules/atmospherics/machinery/pipes/layermanifold.dm +++ b/code/modules/atmospherics/machinery/pipes/layermanifold.dm @@ -31,7 +31,7 @@ nodes = list() for(var/obj/machinery/atmospherics/A in needs_nullifying) A.disconnect(src) - A.build_network() + SSair.add_to_rebuild_queue(A) /obj/machinery/atmospherics/pipe/layer_manifold/proc/get_all_connected_nodes() return front_nodes + back_nodes + nodes diff --git a/code/modules/atmospherics/machinery/pipes/pipes.dm b/code/modules/atmospherics/machinery/pipes/pipes.dm index 1e513b846c..c466a422b2 100644 --- a/code/modules/atmospherics/machinery/pipes/pipes.dm +++ b/code/modules/atmospherics/machinery/pipes/pipes.dm @@ -22,7 +22,7 @@ var/obj/machinery/atmospherics/oldN = nodes[i] ..() if(oldN) - oldN.build_network() + SSair.add_to_rebuild_queue(oldN) /obj/machinery/atmospherics/pipe/destroy_network() QDEL_NULL(parent) diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index a41bdee3b6..03463ff0f7 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -159,7 +159,6 @@ /obj/machinery/portable_atmospherics/canister/proto name = "prototype canister" - /obj/machinery/portable_atmospherics/canister/proto/default name = "prototype canister" desc = "The best way to fix an atmospheric emergency... or the best way to introduce one." @@ -172,7 +171,6 @@ can_min_release_pressure = (ONE_ATMOSPHERE / 30) prototype = TRUE - /obj/machinery/portable_atmospherics/canister/proto/default/oxygen name = "prototype canister" desc = "A prototype canister for a prototype bike, what could go wrong?" @@ -181,8 +179,6 @@ filled = 1 release_pressure = ONE_ATMOSPHERE*2 - - /obj/machinery/portable_atmospherics/canister/New(loc, datum/gas_mixture/existing_mixture) ..() if(existing_mixture) @@ -192,7 +188,7 @@ pump = new(src, FALSE) pump.on = TRUE pump.stat = 0 - pump.build_network() + SSair.add_to_rebuild_queue(pump) update_icon() @@ -208,6 +204,7 @@ air_contents.gases[gas_type] = (maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature) if(starter_temp) air_contents.temperature = starter_temp + /obj/machinery/portable_atmospherics/canister/air/create_gas() air_contents.gases[/datum/gas/oxygen] = (O2STANDARD * maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature) air_contents.gases[/datum/gas/nitrogen] = (N2STANDARD * maximum_pressure * filled) * air_contents.volume / (R_IDEAL_GAS_EQUATION * air_contents.temperature) diff --git a/code/modules/atmospherics/machinery/portable/pump.dm b/code/modules/atmospherics/machinery/portable/pump.dm index 18e4da621a..377e9285e3 100644 --- a/code/modules/atmospherics/machinery/portable/pump.dm +++ b/code/modules/atmospherics/machinery/portable/pump.dm @@ -20,7 +20,7 @@ pump = new(src, FALSE) pump.on = TRUE pump.stat = 0 - pump.build_network() + SSair.add_to_rebuild_queue(pump) /obj/machinery/portable_atmospherics/pump/Destroy() var/turf/T = get_turf(src) diff --git a/code/modules/shuttle/on_move.dm b/code/modules/shuttle/on_move.dm index 701c153783..8c1b3fa955 100644 --- a/code/modules/shuttle/on_move.dm +++ b/code/modules/shuttle/on_move.dm @@ -249,7 +249,7 @@ All ShuttleMove procs go here A.atmosinit() if(A.returnPipenet()) A.addMember(src) - build_network() + SSair.add_to_rebuild_queue(src) else // atmosinit() calls update_icon(), so we don't need to call it update_icon() From d4e6fada75bc986265320d1e450d83b33091f95a Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 2 May 2020 18:50:38 -0700 Subject: [PATCH 29/36] Update mirage_border.dm (#12092) --- code/datums/components/mirage_border.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/datums/components/mirage_border.dm b/code/datums/components/mirage_border.dm index de4425e208..56b41533f5 100644 --- a/code/datums/components/mirage_border.dm +++ b/code/datums/components/mirage_border.dm @@ -39,4 +39,5 @@ /obj/effect/abstract/mirage_holder name = "Mirage holder" anchored = TRUE + plane = PLANE_SPACE mouse_opacity = MOUSE_OPACITY_TRANSPARENT From 8f29839dbf4b8e2e315b935a3d2aa1ac3ab3e2ac Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 2 May 2020 18:53:19 -0700 Subject: [PATCH 30/36] Runechat Port (#12065) * A * A * Ports Runechat * compile fix * fuck * maybe? * will this work? * PLEASE * fix * fuck this --- code/__DEFINES/layers_planes.dm | 2 + code/datums/brain_damage/imaginary_friend.dm | 2 + code/datums/chatmessage.dm | 236 ++++++++++++++++++ code/game/atoms.dm | 7 + code/game/say.dm | 15 +- .../antagonists/disease/disease_mob.dm | 3 + code/modules/client/client_defines.dm | 3 + code/modules/client/preferences.dm | 14 ++ code/modules/client/preferences_savefile.dm | 11 +- code/modules/flufftext/Hallucination.dm | 3 + code/modules/mob/dead/observer/say.dm | 3 + code/modules/mob/living/say.dm | 6 +- code/modules/mob/living/silicon/ai/ai.dm | 10 +- icons/UI_Icons/chat/chat_icons.dmi | Bin 0 -> 237 bytes interface/skin.dmf | 20 +- modular_citadel/interface/skin.dmf | 13 +- tgstation.dme | 1 + 17 files changed, 325 insertions(+), 24 deletions(-) create mode 100644 code/datums/chatmessage.dm create mode 100644 icons/UI_Icons/chat/chat_icons.dmi diff --git a/code/__DEFINES/layers_planes.dm b/code/__DEFINES/layers_planes.dm index f4a30cd482..eccae15bff 100644 --- a/code/__DEFINES/layers_planes.dm +++ b/code/__DEFINES/layers_planes.dm @@ -89,6 +89,8 @@ #define MASSIVE_OBJ_LAYER 11 #define POINT_LAYER 12 +#define CHAT_LAYER 12.1 + #define EMISSIVE_BLOCKER_PLANE 12 #define EMISSIVE_BLOCKER_LAYER 12 #define EMISSIVE_BLOCKER_RENDER_TARGET "*EMISSIVE_BLOCKER_PLANE" diff --git a/code/datums/brain_damage/imaginary_friend.dm b/code/datums/brain_damage/imaginary_friend.dm index 428f355c31..3f71d192e3 100644 --- a/code/datums/brain_damage/imaginary_friend.dm +++ b/code/datums/brain_damage/imaginary_friend.dm @@ -150,6 +150,8 @@ friend_talk(message) /mob/camera/imaginary_friend/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode, atom/movable/source) + if (client?.prefs.chat_on_map && (client.prefs.see_chat_non_mob || ismob(speaker))) + create_chat_message(speaker, message_language, raw_message, spans, message_mode) to_chat(src, compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode, FALSE, source)) /mob/camera/imaginary_friend/proc/friend_talk(message) diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm new file mode 100644 index 0000000000..cbcb34ac5e --- /dev/null +++ b/code/datums/chatmessage.dm @@ -0,0 +1,236 @@ +#define CHAT_MESSAGE_SPAWN_TIME 0.2 SECONDS +#define CHAT_MESSAGE_LIFESPAN 5 SECONDS +#define CHAT_MESSAGE_EOL_FADE 0.7 SECONDS +#define CHAT_MESSAGE_EXP_DECAY 0.7 // Messages decay at pow(factor, idx in stack) +#define CHAT_MESSAGE_HEIGHT_DECAY 0.9 // Increase message decay based on the height of the message +#define CHAT_MESSAGE_APPROX_LHEIGHT 11 // Approximate height in pixels of an 'average' line, used for height decay +#define CHAT_MESSAGE_WIDTH 96 // pixels +#define CHAT_MESSAGE_MAX_LENGTH 110 // characters +#define WXH_TO_HEIGHT(x) text2num(copytext((x), findtextEx((x), "x") + 1)) // thanks lummox + +/** + * # Chat Message Overlay + * + * Datum for generating a message overlay on the map + */ +/datum/chatmessage + /// The visual element of the chat messsage + var/image/message + /// The location in which the message is appearing + var/atom/message_loc + /// The client who heard this message + var/client/owned_by + /// Contains the scheduled destruction time + var/scheduled_destruction + /// Contains the approximate amount of lines for height decay + var/approx_lines + +/** + * Constructs a chat message overlay + * + * Arguments: + * * text - The text content of the overlay + * * target - The target atom to display the overlay at + * * owner - The mob that owns this overlay, only this mob will be able to view it + * * extra_classes - Extra classes to apply to the span that holds the text + * * lifespan - The lifespan of the message in deciseconds + */ +/datum/chatmessage/New(text, atom/target, mob/owner, list/extra_classes = null, lifespan = CHAT_MESSAGE_LIFESPAN) + . = ..() + if (!istype(target)) + CRASH("Invalid target given for chatmessage") + if(QDELETED(owner) || !istype(owner) || !owner.client) + stack_trace("/datum/chatmessage created with [isnull(owner) ? "null" : "invalid"] mob owner") + qdel(src) + return + INVOKE_ASYNC(src, .proc/generate_image, text, target, owner, extra_classes, lifespan) + +/datum/chatmessage/Destroy() + if (owned_by) + if (owned_by.seen_messages) + LAZYREMOVEASSOC(owned_by.seen_messages, message_loc, src) + owned_by.images.Remove(message) + owned_by = null + message_loc = null + message = null + return ..() + +/** + * Generates a chat message image representation + * + * Arguments: + * * text - The text content of the overlay + * * target - The target atom to display the overlay at + * * owner - The mob that owns this overlay, only this mob will be able to view it + * * extra_classes - Extra classes to apply to the span that holds the text + * * lifespan - The lifespan of the message in deciseconds + */ +/datum/chatmessage/proc/generate_image(text, atom/target, mob/owner, list/extra_classes, lifespan) + // Register client who owns this message + owned_by = owner.client + RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, .proc/qdel, src) + + // Clip message + var/maxlen = owned_by.prefs.max_chat_length + if (length_char(text) > maxlen) + text = copytext_char(text, 1, maxlen + 1) + "..." // BYOND index moment + + // Calculate target color if not already present + if (!target.chat_color || target.chat_color_name != target.name) + target.chat_color = colorize_string(target.name) + target.chat_color_darkened = colorize_string(target.name, 0.85, 0.85) + target.chat_color_name = target.name + + // Get rid of any URL schemes that might cause BYOND to automatically wrap something in an anchor tag + var/static/regex/url_scheme = new(@"[A-Za-z][A-Za-z0-9+-\.]*:\/\/", "g") + text = replacetext(text, url_scheme, "") + + // Reject whitespace + var/static/regex/whitespace = new(@"^\s*$") + if (whitespace.Find(text)) + qdel(src) + return + + // Non mobs speakers can be small + if (!ismob(target)) + extra_classes |= "small" + + // Append radio icon if from a virtual speaker + if (extra_classes.Find("virtual-speaker")) + var/image/r_icon = image('icons/UI_Icons/chat/chat_icons.dmi', icon_state = "radio") + text = "\icon[r_icon] " + text + + // We dim italicized text to make it more distinguishable from regular text + var/tgt_color = extra_classes.Find("italics") ? target.chat_color_darkened : target.chat_color + + // Approximate text height + // Note we have to replace HTML encoded metacharacters otherwise MeasureText will return a zero height + // BYOND Bug #2563917 + // Construct text + var/static/regex/html_metachars = new(@"&[A-Za-z]{1,7};", "g") + var/complete_text = "[text]" + var/mheight = WXH_TO_HEIGHT(owned_by.MeasureText(replacetext(complete_text, html_metachars, "m"), null, CHAT_MESSAGE_WIDTH)) + approx_lines = max(1, mheight / CHAT_MESSAGE_APPROX_LHEIGHT) + + // Translate any existing messages upwards, apply exponential decay factors to timers + message_loc = target + if (owned_by.seen_messages) + var/idx = 1 + var/combined_height = approx_lines + for(var/msg in owned_by.seen_messages[message_loc]) + var/datum/chatmessage/m = msg + animate(m.message, pixel_y = m.message.pixel_y + mheight, time = CHAT_MESSAGE_SPAWN_TIME) + combined_height += m.approx_lines + var/sched_remaining = m.scheduled_destruction - world.time + if (sched_remaining > CHAT_MESSAGE_SPAWN_TIME) + var/remaining_time = (sched_remaining) * (CHAT_MESSAGE_EXP_DECAY ** idx++) * (CHAT_MESSAGE_HEIGHT_DECAY ** combined_height) + m.scheduled_destruction = world.time + remaining_time + addtimer(CALLBACK(m, .proc/end_of_life), remaining_time, TIMER_UNIQUE|TIMER_OVERRIDE) + + // Build message image + message = image(loc = message_loc, layer = CHAT_LAYER) + message.plane = GAME_PLANE + message.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA | KEEP_APART + message.alpha = 0 + message.pixel_y = owner.bound_height * 0.95 + message.maptext_width = CHAT_MESSAGE_WIDTH + message.maptext_height = mheight + message.maptext_x = (CHAT_MESSAGE_WIDTH - owner.bound_width) * -0.5 + message.maptext = complete_text + + // View the message + LAZYADDASSOC(owned_by.seen_messages, message_loc, src) + owned_by.images |= message + animate(message, alpha = 255, time = CHAT_MESSAGE_SPAWN_TIME) + + // Prepare for destruction + scheduled_destruction = world.time + (lifespan - CHAT_MESSAGE_EOL_FADE) + addtimer(CALLBACK(src, .proc/end_of_life), lifespan - CHAT_MESSAGE_EOL_FADE, TIMER_UNIQUE|TIMER_OVERRIDE) + +/** + * Applies final animations to overlay CHAT_MESSAGE_EOL_FADE deciseconds prior to message deletion + */ +/datum/chatmessage/proc/end_of_life(fadetime = CHAT_MESSAGE_EOL_FADE) + animate(message, alpha = 0, time = fadetime, flags = ANIMATION_PARALLEL) + QDEL_IN(src, fadetime) + +/** + * Creates a message overlay at a defined location for a given speaker + * + * Arguments: + * * speaker - The atom who is saying this message + * * message_language - The language that the message is said in + * * raw_message - The text content of the message + * * spans - Additional classes to be added to the message + * * message_mode - Bitflags relating to the mode of the message + */ +/mob/proc/create_chat_message(atom/movable/speaker, datum/language/message_language, raw_message, list/spans, message_mode) + // Ensure the list we are using, if present, is a copy so we don't modify the list provided to us + spans = spans?.Copy() + + // Check for virtual speakers (aka hearing a message through a radio) + var/atom/movable/originalSpeaker = speaker + if (istype(speaker, /atom/movable/virtualspeaker)) + var/atom/movable/virtualspeaker/v = speaker + speaker = v.source + spans |= "virtual-speaker" + + // Ignore virtual speaker (most often radio messages) from ourself + if (originalSpeaker != src && speaker == src) + return + + // Display visual above source + new /datum/chatmessage(lang_treat(speaker, message_language, raw_message, spans, null, TRUE), speaker, src, spans) + + +// Tweak these defines to change the available color ranges +#define CM_COLOR_SAT_MIN 0.6 +#define CM_COLOR_SAT_MAX 0.7 +#define CM_COLOR_LUM_MIN 0.65 +#define CM_COLOR_LUM_MAX 0.75 + +/** + * Gets a color for a name, will return the same color for a given string consistently within a round.atom + * + * Note that this proc aims to produce pastel-ish colors using the HSL colorspace. These seem to be favorable for displaying on the map. + * + * Arguments: + * * name - The name to generate a color for + * * sat_shift - A value between 0 and 1 that will be multiplied against the saturation + * * lum_shift - A value between 0 and 1 that will be multiplied against the luminescence + */ +/datum/chatmessage/proc/colorize_string(name, sat_shift = 1, lum_shift = 1) + // seed to help randomness + var/static/rseed = rand(1,26) + + // get hsl using the selected 6 characters of the md5 hash + var/hash = copytext(md5(name + GLOB.round_id), rseed, rseed + 6) + var/h = hex2num(copytext(hash, 1, 3)) * (360 / 255) + var/s = (hex2num(copytext(hash, 3, 5)) >> 2) * ((CM_COLOR_SAT_MAX - CM_COLOR_SAT_MIN) / 63) + CM_COLOR_SAT_MIN + var/l = (hex2num(copytext(hash, 5, 7)) >> 2) * ((CM_COLOR_LUM_MAX - CM_COLOR_LUM_MIN) / 63) + CM_COLOR_LUM_MIN + + // adjust for shifts + s *= clamp(sat_shift, 0, 1) + l *= clamp(lum_shift, 0, 1) + + // convert to rgb + var/h_int = round(h/60) // mapping each section of H to 60 degree sections + var/c = (1 - abs(2 * l - 1)) * s + var/x = c * (1 - abs((h / 60) % 2 - 1)) + var/m = l - c * 0.5 + x = (x + m) * 255 + c = (c + m) * 255 + m *= 255 + switch(h_int) + if(0) + return "#[num2hex(c, 2)][num2hex(x, 2)][num2hex(m, 2)]" + if(1) + return "#[num2hex(x, 2)][num2hex(c, 2)][num2hex(m, 2)]" + if(2) + return "#[num2hex(m, 2)][num2hex(c, 2)][num2hex(x, 2)]" + if(3) + return "#[num2hex(m, 2)][num2hex(x, 2)][num2hex(c, 2)]" + if(4) + return "#[num2hex(x, 2)][num2hex(m, 2)][num2hex(c, 2)]" + if(5) + return "#[num2hex(c, 2)][num2hex(m, 2)][num2hex(x, 2)]" diff --git a/code/game/atoms.dm b/code/game/atoms.dm index afa8cfed3b..dbb6864028 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -50,6 +50,13 @@ var/list/blood_DNA var/list/suit_fibers + /// Last name used to calculate a color for the chatmessage overlays + var/chat_color_name + /// Last color calculated for the the chatmessage overlays + var/chat_color + /// A luminescence-shifted value of the last color calculated for chatmessage overlays + var/chat_color_darkened + /atom/New(loc, ...) //atom creation method that preloads variables at creation if(GLOB.use_preloader && (src.type == GLOB._preloader.target_path))//in case the instanciated atom is creating other atoms in New() diff --git a/code/game/say.dm b/code/game/say.dm index 85ae9f0681..5fa5a2b35d 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -96,21 +96,26 @@ GLOBAL_LIST_INIT(freqtospan, list( return "[say_mod(input, message_mode)][spanned ? ", \"[spanned]\"" : ""]" // Citadel edit [spanned ? ", \"[spanned]\"" : ""]" -/atom/movable/proc/lang_treat(atom/movable/speaker, datum/language/language, raw_message, list/spans, message_mode) +/// Quirky citadel proc for our custom sayverbs to strip the verb out. Snowflakey as hell, say rewrite 3.0 when? +/atom/movable/proc/quoteless_say_quote(input, list/spans = list(speech_span), message_mode) + var/pos = findtext(input, "*") + return pos? copytext(input, pos + 1) : input + +/atom/movable/proc/lang_treat(atom/movable/speaker, datum/language/language, raw_message, list/spans, message_mode, no_quote = FALSE) if(has_language(language)) var/atom/movable/AM = speaker.GetSource() if(AM) //Basically means "if the speaker is virtual" - return AM.say_quote(raw_message, spans, message_mode) + return no_quote ? AM.quoteless_say_quote(raw_message, spans, message_mode) : AM.say_quote(raw_message, spans, message_mode) else - return speaker.say_quote(raw_message, spans, message_mode) + return no_quote ? speaker.quoteless_say_quote(raw_message, spans, message_mode) : speaker.say_quote(raw_message, spans, message_mode) else if(language) var/atom/movable/AM = speaker.GetSource() var/datum/language/D = GLOB.language_datum_instances[language] raw_message = D.scramble(raw_message) if(AM) - return AM.say_quote(raw_message, spans, message_mode) + return no_quote ? AM.quoteless_say_quote(raw_message, spans, message_mode) : AM.say_quote(raw_message, spans, message_mode) else - return speaker.say_quote(raw_message, spans, message_mode) + return no_quote ? speaker.quoteless_say_quote(raw_message, spans, message_mode) : speaker.say_quote(raw_message, spans, message_mode) else return "makes a strange sound." diff --git a/code/modules/antagonists/disease/disease_mob.dm b/code/modules/antagonists/disease/disease_mob.dm index a20a9cef85..e876beb5dc 100644 --- a/code/modules/antagonists/disease/disease_mob.dm +++ b/code/modules/antagonists/disease/disease_mob.dm @@ -128,6 +128,9 @@ the new instance inside the host to be updated to the template's stats. link = FOLLOW_LINK(src, to_follow) else link = "" + // Create map text prior to modifying message for goonchat + if (client?.prefs.chat_on_map && (client.prefs.see_chat_non_mob || ismob(speaker))) + create_chat_message(speaker, message_language, raw_message, spans, message_mode) // Recompose the message, because it's scrambled by default message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode, FALSE, source) to_chat(src, "[link] [message]") diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index 1deb702de4..f865cfddbb 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -84,3 +84,6 @@ var/next_keysend_reset = 0 var/next_keysend_trip_reset = 0 var/keysend_tripped = FALSE + + /// Messages currently seen by this client + var/list/seen_messages diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 37ae8b3b09..abe43e38ae 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -48,6 +48,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/UI_style = null var/buttons_locked = FALSE var/hotkeys = FALSE + var/chat_on_map = TRUE + var/max_chat_length = CHAT_MESSAGE_MAX_LENGTH + var/see_chat_non_mob = TRUE var/tgui_fancy = TRUE var/tgui_lock = TRUE var/windowflashing = TRUE @@ -824,6 +827,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "UI Style: [UI_style]
" dat += "tgui Monitors: [(tgui_lock) ? "Primary" : "All"]
" dat += "tgui Style: [(tgui_fancy) ? "Fancy" : "No Frills"]
" + dat += "Show Runechat Chat Bubbles: [chat_on_map ? "Enabled" : "Disabled"]
" + dat += "Runechat message char limit: [max_chat_length]
" + dat += "See Runechat for non-mobs: [see_chat_non_mob ? "Enabled" : "Disabled"]
" dat += "
" dat += "Action Buttons: [(buttons_locked) ? "Locked In Place" : "Unlocked"]
" dat += "Keybindings: [(hotkeys) ? "Hotkeys" : "Default"]
" @@ -2134,6 +2140,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/pickedPDASkin = input(user, "Choose your PDA reskin.", "Character Preference", pda_skin) as null|anything in GLOB.pda_reskins if(pickedPDASkin) pda_skin = pickedPDASkin + if ("max_chat_length") + var/desiredlength = input(user, "Choose the max character length of shown Runechat messages. Valid range is 1 to [CHAT_MESSAGE_MAX_LENGTH] (default: [initial(max_chat_length)]))", "Character Preference", max_chat_length) as null|num + if (!isnull(desiredlength)) + max_chat_length = clamp(desiredlength, 1, CHAT_MESSAGE_MAX_LENGTH) if("hud_toggle_color") var/new_toggle_color = input(user, "Choose your HUD toggle flash color:", "Game Preference",hud_toggle_color) as color|null @@ -2236,6 +2246,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) winset(user, null, "input.focus=true input.background-color=[COLOR_INPUT_ENABLED] mainwindow.macro=default") else winset(user, null, "input.focus=true input.background-color=[COLOR_INPUT_ENABLED] mainwindow.macro=old_default") + if("chat_on_map") + chat_on_map = !chat_on_map + if("see_chat_non_mob") + see_chat_non_mob = !see_chat_non_mob if("action_buttons") buttons_locked = !buttons_locked if("tgui_fancy") diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 715829b56e..29733acb8c 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -162,7 +162,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if(malformed_hockeys[hockey]) features["cock_shape"] = malformed_hockeys[hockey] features["cock_taur"] = TRUE - + if(current_version < 29) var/digestable var/devourable @@ -211,6 +211,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["lastchangelog"] >> lastchangelog S["UI_style"] >> UI_style S["hotkeys"] >> hotkeys + S["chat_on_map"] >> chat_on_map + S["max_chat_length"] >> max_chat_length + S["see_chat_non_mob"] >> see_chat_non_mob S["tgui_fancy"] >> tgui_fancy S["tgui_lock"] >> tgui_lock S["buttons_locked"] >> buttons_locked @@ -266,6 +269,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car lastchangelog = sanitize_text(lastchangelog, initial(lastchangelog)) UI_style = sanitize_inlist(UI_style, GLOB.available_ui_styles, GLOB.available_ui_styles[1]) hotkeys = sanitize_integer(hotkeys, 0, 1, initial(hotkeys)) + chat_on_map = sanitize_integer(chat_on_map, 0, 1, initial(chat_on_map)) + max_chat_length = sanitize_integer(max_chat_length, 1, CHAT_MESSAGE_MAX_LENGTH, initial(max_chat_length)) + see_chat_non_mob = sanitize_integer(see_chat_non_mob, 0, 1, initial(see_chat_non_mob)) tgui_fancy = sanitize_integer(tgui_fancy, 0, 1, initial(tgui_fancy)) tgui_lock = sanitize_integer(tgui_lock, 0, 1, initial(tgui_lock)) buttons_locked = sanitize_integer(buttons_locked, 0, 1, initial(buttons_locked)) @@ -319,6 +325,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["lastchangelog"], lastchangelog) WRITE_FILE(S["UI_style"], UI_style) WRITE_FILE(S["hotkeys"], hotkeys) + WRITE_FILE(S["chat_on_map"], chat_on_map) + WRITE_FILE(S["max_chat_length"], max_chat_length) + WRITE_FILE(S["see_chat_non_mob"], see_chat_non_mob) WRITE_FILE(S["tgui_fancy"], tgui_fancy) WRITE_FILE(S["tgui_lock"], tgui_lock) WRITE_FILE(S["buttons_locked"], buttons_locked) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index ea475b28d6..0c2cbc0c67 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -701,6 +701,9 @@ GLOBAL_LIST_INIT(hallucination_list, list( target.client.images |= speech_overlay sleep(30) target.client.images.Remove(speech_overlay) + var/spans = list(person.speech_span) + if (target.client?.prefs.chat_on_map) + target.create_chat_message(person, understood_language, chosen, spans, 0) else // Radio talk var/chosen = specific_message if(!chosen) diff --git a/code/modules/mob/dead/observer/say.dm b/code/modules/mob/dead/observer/say.dm index 8712f39531..c5c7350b47 100644 --- a/code/modules/mob/dead/observer/say.dm +++ b/code/modules/mob/dead/observer/say.dm @@ -33,6 +33,9 @@ else to_follow = V.source var/link = FOLLOW_LINK(src, to_follow) + // Create map text prior to modifying message for goonchat + if (client?.prefs.chat_on_map && (client.prefs.see_chat_non_mob || ismob(speaker))) + create_chat_message(speaker, message_language, raw_message, spans, message_mode) // Recompose the message, because it's scrambled by default message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode, FALSE, source) to_chat(src, "[link] [message]") diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index f90b285d2d..a772f4a278 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -237,6 +237,10 @@ GLOBAL_LIST_INIT(department_radio_keys, list( deaf_message = "You can't hear yourself!" deaf_type = 2 // Since you should be able to hear yourself without looking + // Create map text prior to modifying message for goonchat + if (client?.prefs.chat_on_map && stat != UNCONSCIOUS && (client.prefs.see_chat_non_mob || ismob(speaker)) && can_hear()) + create_chat_message(speaker, message_language, raw_message, spans, message_mode) + // Recompose message for AI hrefs, language incomprehension. message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode, FALSE, source) @@ -289,7 +293,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( //speech bubble var/list/speech_bubble_recipients = list() for(var/mob/M in listening) - if(M.client) + if(M.client && !M.client.prefs.chat_on_map) speech_bubble_recipients.Add(M.client) var/image/I = image('icons/mob/talk.dmi', src, "[bubble_type][say_test(message)]", FLY_LAYER) I.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index e959144ed5..dff5584617 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -822,21 +822,21 @@ return get_dist(src, A) <= max(viewscale[1]*0.5,viewscale[2]*0.5) /mob/living/silicon/ai/proc/relay_speech(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode) - raw_message = lang_treat(speaker, message_language, raw_message, spans, message_mode) + var/treated_message = lang_treat(speaker, message_language, raw_message, spans, message_mode) var/start = "Relayed Speech: " var/namepart = "[speaker.GetVoice()][speaker.get_alt_name()]" var/hrefpart = "" - var/jobpart + var/jobpart = "Unknown" if (iscarbon(speaker)) var/mob/living/carbon/S = speaker if(S.job) jobpart = "[S.job]" - else - jobpart = "Unknown" - var/rendered = "[start][hrefpart][namepart] ([jobpart]) [raw_message]" + var/rendered = "[start][hrefpart][namepart] ([jobpart]) [treated_message]" + if (client?.prefs.chat_on_map && (client.prefs.see_chat_non_mob || ismob(speaker))) + create_chat_message(speaker, message_language, raw_message, spans, message_mode) show_message(rendered, MSG_AUDIBLE) /mob/living/silicon/ai/fully_replace_character_name(oldname,newname) diff --git a/icons/UI_Icons/chat/chat_icons.dmi b/icons/UI_Icons/chat/chat_icons.dmi new file mode 100644 index 0000000000000000000000000000000000000000..7040b3966f005388c571bfe40e4cfe6973185e23 GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4^3?%3Nf7cA+1o(uw9yo9S$o#XF@qWpr*FY9y zNswPKgTu2MX+Ta!RY*jMOKNd)QD#9&W_}(6L&conu!5q}?_YuoK7M_o<*loA?#%h% z4WR}XjUPPHIq#!+lA%avr-gBl@nvJL18*KpIx;Cl!F#2Kp{j9wXScEH<`ohr%%42+ z(e^sy+qz+@Xw2W318qzUyiSsbg#1tb0op0&>Eal|F*7-#BrzeOJ0)QPS8>7#FXsdS ec@@4X> Date: Sat, 2 May 2020 21:53:44 -0400 Subject: [PATCH 31/36] Oh god please let this be the final boxstation update (#12089) --- _maps/map_files/BoxStation/BoxStation.dmm | 123 ++++++++++++---------- 1 file changed, 66 insertions(+), 57 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 9c2a1a2883..75efefd8e1 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -3098,7 +3098,9 @@ /turf/open/floor/plating, /area/maintenance/fore/secondary) "agd" = ( -/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 8 + }, /turf/open/floor/plasteel, /area/engine/atmos) "age" = ( @@ -6473,16 +6475,6 @@ }, /turf/open/floor/plasteel/white, /area/science/xenobiology) -"alX" = ( -/obj/machinery/button/door{ - id = "atmos"; - name = "Atmospherics Lockdown"; - pixel_x = 24; - pixel_y = 4; - req_access_txt = "24" - }, -/turf/open/floor/plasteel, -/area/engine/atmos) "alY" = ( /obj/structure/cable{ icon_state = "1-2" @@ -39435,7 +39427,10 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bPe" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Pure to Ports" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bPf" = ( @@ -39453,10 +39448,10 @@ /area/engine/atmos) "bPh" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold{ dir = 4 }, -/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/engine/atmos) "bPi" = ( @@ -40719,7 +40714,9 @@ /area/engine/atmos) "bSM" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 5 + }, /turf/open/floor/plating, /area/engine/atmos) "bSP" = ( @@ -41475,13 +41472,16 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bUN" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bUO" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Ports to External" +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -41912,8 +41912,9 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bVZ" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 8 +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Ports to External" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -46658,8 +46659,8 @@ /turf/closed/wall/r_wall, /area/engine/atmos) "ciu" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, /obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/layer_manifold, /turf/open/floor/plating, /area/engine/atmos) "civ" = ( @@ -46703,8 +46704,7 @@ /obj/structure/reagent_dispensers/watertank, /obj/item/extinguisher, /obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4; - pixel_y = 0 + dir = 4 }, /turf/open/floor/plasteel, /area/maintenance/disposal/incinerator) @@ -53525,8 +53525,9 @@ /turf/open/floor/plasteel, /area/security/brig) "daq" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, /turf/open/floor/plasteel, /area/engine/atmos) "daI" = ( @@ -53948,9 +53949,7 @@ /turf/open/floor/plating, /area/security/prison) "eqq" = ( -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/manifold/orange/visible, /turf/open/floor/plasteel, /area/engine/atmos) "eqA" = ( @@ -55365,7 +55364,7 @@ "ivJ" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/purple/visible{ +/obj/machinery/atmospherics/pipe/layer_manifold{ dir = 4 }, /turf/open/floor/plating, @@ -55418,7 +55417,7 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/layer_manifold, /turf/open/floor/plating, /area/engine/atmos) "iLJ" = ( @@ -55709,11 +55708,7 @@ /turf/closed/wall/r_wall, /area/engine/gravity_generator) "jBQ" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Pure to Ports" - }, -/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) "jCq" = ( @@ -56729,6 +56724,10 @@ }, /turf/open/floor/wood, /area/crew_quarters/bar) +"moS" = ( +/obj/machinery/atmospherics/pipe/manifold4w/yellow/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) "mps" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -57774,7 +57773,9 @@ /area/crew_quarters/fitness) "pCj" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 5 + }, /turf/open/floor/plating, /area/engine/atmos) "pDe" = ( @@ -57916,10 +57917,11 @@ /turf/open/floor/plasteel, /area/security/processing) "pUP" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/atmos) "qaY" = ( /obj/structure/table/reinforced, @@ -58470,6 +58472,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/maintenance/fore) +"rTo" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "External to Pumps" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "rTu" = ( /obj/structure/cable{ icon_state = "4-8" @@ -60035,18 +60044,18 @@ /turf/open/floor/plasteel/white, /area/science/circuit) "vPQ" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "External to Pumps" +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/yellow/visible{ + dir = 10 }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/engine/atmos) "vQf" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/components/binary/pump/on{ +/obj/machinery/atmospherics/components/binary/pump{ dir = 8; name = "Mix to External" }, @@ -93434,7 +93443,7 @@ bQp alk gAu eqq -pUP +bOd bOd bOd bOd @@ -93690,8 +93699,8 @@ bJF bVX bRA bTP +rTo bOd -vPQ bOd bOd bOd @@ -93948,7 +93957,7 @@ bMQ bRC rdl daq -bUN +bUO bOd bOd bOd @@ -94205,7 +94214,7 @@ cBF bRD rdl daq -bUN +bUO bOd bOd bOd @@ -94461,7 +94470,7 @@ bPc bQs cez ceA -bOd +daq bUO bOd bOd @@ -94719,7 +94728,7 @@ bQv bRF bSM bVZ -bUN +bOd bOd bOd bOd @@ -94974,7 +94983,7 @@ bOc udT omk nTU -bSM +pUP jBQ agd cCB @@ -95488,8 +95497,8 @@ oVN bPf bQx bRH -bMQ -bTU +vPQ +moS kGv bUS cCE @@ -96003,15 +96012,15 @@ ivJ bQy bRI bSP -bPh +ivJ jzM bRI cCF -bPh +ivJ bQy bRI bQy -bPh +ivJ bQy bRI bSP From 5f14ae28a12b02502922d073a064be762385becc Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Sun, 3 May 2020 23:06:54 +0100 Subject: [PATCH 32/36] food quality with sliced foods yay --- code/modules/food_and_drinks/food/snacks.dm | 1 + code/modules/food_and_drinks/food/snacks/meat.dm | 1 + 2 files changed, 2 insertions(+) diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index a485f0c864..ccac1d4a77 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -260,6 +260,7 @@ All foods are distributed among various categories. Use common sense. slice.desc = "[desc]" if(foodtype != initial(foodtype)) slice.foodtype = foodtype //if something happens that overrode our food type, make sure the slice carries that over + slice.adjust_food_quality(food_quality) /obj/item/reagent_containers/food/snacks/proc/generate_trash(atom/location) if(trash) diff --git a/code/modules/food_and_drinks/food/snacks/meat.dm b/code/modules/food_and_drinks/food/snacks/meat.dm index d44f859823..7f75a93464 100644 --- a/code/modules/food_and_drinks/food/snacks/meat.dm +++ b/code/modules/food_and_drinks/food/snacks/meat.dm @@ -47,6 +47,7 @@ slice.name = "raw [subjectname] cutlet" else if(subjectjob) slice.name = "raw [subjectjob] cutlet" + slice.adjust_food_quality(food_quality) /obj/item/reagent_containers/food/snacks/meat/slab/human/initialize_cooked_food(obj/item/reagent_containers/food/snacks/meat/S, cooking_efficiency) ..() From 87858e8f60bb9ecb5255d9456912b71d741e8bf6 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 3 May 2020 19:59:04 -0700 Subject: [PATCH 33/36] Update sentience.dm (#12101) --- code/modules/events/sentience.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/events/sentience.dm b/code/modules/events/sentience.dm index 8fe68f509b..5cb6c02c84 100644 --- a/code/modules/events/sentience.dm +++ b/code/modules/events/sentience.dm @@ -9,6 +9,8 @@ role_name = "random animal" var/animals = 1 var/one = "one" + /// Blacklisted mob_biotypes - Hey can we like, not have player controlled megafauna? + var/blacklisted_biotypes = MOB_EPIC fakeable = TRUE /datum/round_event/ghost_role/sentience/announce(fake) @@ -33,6 +35,8 @@ var/turf/T = get_turf(L) if(!T || !is_station_level(T.z)) continue + if(L.mob_biotypes & blacklisted_biotypes) //hey can you don't + continue if(!(L in GLOB.player_list) && !L.mind) potential += L From bb2942d0b809a967dae2aa8f610d1ebbc4ab44e5 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Sun, 3 May 2020 20:05:13 -0700 Subject: [PATCH 34/36] Fixes a gibber runtime. (#12103) --- code/modules/food_and_drinks/kitchen_machinery/gibber.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index c94aba95b4..dcea93f06f 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -184,9 +184,9 @@ for (var/i=1 to meat_produced) var/obj/item/reagent_containers/food/snacks/meat/slab/newmeat = new typeofmeat - newmeat.adjust_food_quality(meat_quality) newmeat.name = "[sourcename] [newmeat.name]" if(istype(newmeat)) + newmeat.adjust_food_quality(meat_quality) newmeat.subjectname = sourcename newmeat.reagents.add_reagent (/datum/reagent/consumable/nutriment, sourcenutriment / meat_produced) // Thehehe. Fat guys go first if(sourcejob) From 2ce118f85175a64e9ddaaf5a42010bcfd7cc0017 Mon Sep 17 00:00:00 2001 From: MrJWhit <48370570+MrJWhit@users.noreply.github.com> Date: Sun, 3 May 2020 23:05:27 -0400 Subject: [PATCH 35/36] MetaStation atmos update (#12099) * Finishes up meta station atmos * Update MetaStation.dmm --- _maps/map_files/MetaStation/MetaStation.dmm | 248 ++++++++++++++------ 1 file changed, 179 insertions(+), 69 deletions(-) diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 75af28d174..9d36d26f6f 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -39336,6 +39336,9 @@ /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, /turf/open/floor/plasteel, /area/engine/atmos) "byY" = ( @@ -40124,6 +40127,7 @@ /obj/structure/cable/yellow{ icon_state = "2-4" }, +/obj/machinery/light/small, /turf/open/floor/plasteel, /area/engine/atmos) "bAI" = ( @@ -41633,7 +41637,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, -/turf/closed/wall/r_wall, +/turf/closed/wall, /area/engine/atmos) "bDS" = ( /obj/effect/turf_decal/tile/yellow{ @@ -42650,7 +42654,7 @@ /area/engine/atmos) "bFI" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, +/turf/closed/wall/r_wall, /area/engine/atmos) "bFJ" = ( /obj/structure/disposalpipe/segment{ @@ -42659,7 +42663,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/turf/open/floor/plasteel/dark/corner, +/turf/open/floor/plasteel, /area/engine/atmos) "bFM" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ @@ -42702,15 +42706,13 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bFR" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 6 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/floor/plasteel, +/turf/closed/wall, /area/engine/atmos) "bFS" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible{ - dir = 9 - }, +/obj/machinery/atmospherics/pipe/simple/purple/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bFT" = ( @@ -43345,9 +43347,8 @@ /area/engine/atmos) "bHx" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/purple/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ + dir = 1 }, /turf/open/floor/plating, /area/engine/atmos) @@ -44017,7 +44018,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, -/turf/closed/wall/r_wall, +/turf/closed/wall, /area/engine/atmos) "bIP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, @@ -44047,27 +44048,29 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bIT" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ - dir = 4 - }, /obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bIU" = ( -/obj/machinery/atmospherics/pipe/simple/purple/visible, -/obj/machinery/meter, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Air to Ports" + }, /turf/open/floor/plasteel, /area/engine/atmos) "bIV" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 6 +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to Ports" }, -/obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/atmos) "bIW" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/closed/wall, /area/engine/atmos) "bIX" = ( /obj/machinery/atmospherics/pipe/manifold/yellow/visible{ @@ -44786,8 +44789,12 @@ /turf/open/floor/plasteel, /area/storage/tcom) "bKu" = ( -/obj/effect/turf_decal/bot, -/turf/closed/wall/r_wall, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/turf/open/floor/plating, /area/engine/atmos) "bKw" = ( /obj/structure/cable/yellow{ @@ -44800,7 +44807,7 @@ /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 4 }, -/turf/closed/wall/r_wall, +/turf/closed/wall, /area/engine/atmos) "bKz" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible{ @@ -44830,7 +44837,9 @@ /turf/open/floor/plasteel, /area/engine/atmos) "bKE" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bKF" = ( @@ -45559,9 +45568,9 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump/on{ +/obj/machinery/atmospherics/components/binary/pump{ dir = 1; - name = "Mix to External" + name = "Port to External" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -45569,7 +45578,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, -/turf/closed/wall/r_wall, +/turf/closed/wall, /area/engine/atmos) "bMh" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -46436,7 +46445,12 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 6 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bNR" = ( @@ -47128,6 +47142,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/floor/plasteel, /area/engine/atmos) "bPr" = ( @@ -50108,7 +50123,9 @@ }, /area/engine/atmos) "bVI" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible, +/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ + dir = 9 + }, /turf/open/floor/plasteel/dark/corner{ dir = 1 }, @@ -50860,6 +50877,9 @@ /obj/structure/cable/yellow{ icon_state = "1-8" }, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 9 + }, /turf/open/floor/plasteel, /area/engine/atmos) "bXq" = ( @@ -53689,9 +53709,7 @@ /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Mix to Fuel Pipe" - }, +/obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/floor/plasteel/dark, /area/engine/atmos) "ccP" = ( @@ -78788,11 +78806,10 @@ name = "Inner Pipe Access"; req_access_txt = "24" }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix to Engine" - }, /obj/machinery/atmospherics/pipe/simple/yellow/visible, +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/engine/atmos) "dhj" = ( @@ -81294,6 +81311,15 @@ }, /turf/open/floor/plating, /area/quartermaster/storage) +"dLd" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "dLK" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -81536,6 +81562,12 @@ /obj/item/integrated_circuit_printer, /turf/open/floor/plasteel/white, /area/science/circuit) +"gRX" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "gXY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -81605,6 +81637,13 @@ }, /turf/open/floor/plasteel/white, /area/science/lab) +"izM" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Pure to Ports" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "iCn" = ( /obj/machinery/vr_sleeper, /turf/open/floor/plasteel, @@ -81613,6 +81652,13 @@ /obj/structure/table, /turf/open/floor/plating, /area/maintenance/port/aft) +"iRL" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 0; + name = "Mix to Engine" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "iSt" = ( /obj/machinery/door/airlock/grunge, /obj/structure/cable/yellow{ @@ -81677,6 +81723,15 @@ }, /turf/open/floor/plating, /area/maintenance/solars/port/aft) +"jAj" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "jBe" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -82064,6 +82119,12 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) +"nBn" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "nIb" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/mining{ @@ -82143,6 +82204,13 @@ /obj/structure/table/reinforced, /turf/open/floor/plasteel/white, /area/science/circuit) +"oms" = ( +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plasteel, +/area/engine/atmos) "omz" = ( /obj/machinery/status_display/supply, /turf/closed/wall, @@ -82218,6 +82286,13 @@ /obj/structure/grille, /turf/open/floor/plating, /area/maintenance/port/aft) +"pbF" = ( +/obj/machinery/portable_atmospherics/canister, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "pmc" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -82403,6 +82478,12 @@ }, /turf/open/floor/plasteel, /area/security/prison) +"rpR" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "rzX" = ( /obj/structure/chair/office/light{ dir = 1; @@ -82416,6 +82497,12 @@ }, /turf/open/floor/plasteel/white, /area/science/lab) +"rAc" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "rLV" = ( /obj/structure/table, /obj/item/folder, @@ -82483,6 +82570,13 @@ /obj/structure/grille, /turf/open/floor/plating/airless, /area/space/nearstation) +"siI" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Port to Filter" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "soe" = ( /obj/effect/turf_decal/tile/green, /obj/effect/turf_decal/tile/green{ @@ -82501,6 +82595,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) +"stP" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Port to Fuel Pipe" + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "syk" = ( /obj/machinery/door/airlock{ id_tag = "AuxShower"; @@ -82649,6 +82749,10 @@ /obj/machinery/cryopod, /turf/open/floor/plasteel/dark, /area/crew_quarters/cryopod) +"uku" = ( +/obj/machinery/atmospherics/pipe/manifold4w/general/visible, +/turf/open/floor/plasteel, +/area/engine/atmos) "upN" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -82867,6 +82971,12 @@ /obj/machinery/vending/cola/random, /turf/open/floor/plasteel, /area/hallway/primary/port) +"xgC" = ( +/obj/machinery/atmospherics/pipe/simple/dark/visible{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/engine/atmos) "xkG" = ( /obj/item/integrated_electronics/wirer, /obj/structure/table/reinforced, @@ -122977,7 +123087,7 @@ bpg brA bep bvd -bxd +bxc byR bAB bCh @@ -123234,7 +123344,7 @@ bpg brB bep bve -bxd +bxc byS bAC dBJ @@ -123491,7 +123601,7 @@ bpg brC bep bCK -bxd +bxc byT bAD bCj @@ -124005,7 +124115,7 @@ bpi brE btz bvh -bxd +bxc byV bAF bCk @@ -124013,7 +124123,7 @@ dBJ bFH bHq bCk -bKu +bxd bxc bxc bxc @@ -124522,10 +124632,10 @@ bep bxc bKy bAG -bxg +bFR dBM bza -bxl +bIW bIO bMg bMb @@ -124536,8 +124646,8 @@ bSg bDS bDS bVI -dBJ -bCi +jAj +bYw bYw cbe ccO @@ -124784,7 +124894,7 @@ bDT bFM bHu bIP -bKw +dLd bKw bNQ bPq @@ -125041,9 +125151,9 @@ bDU bFN bAO bIS +siI bCi -bCi -bCi +rAc bCi bCi bCi @@ -125298,9 +125408,9 @@ bDV bFO bHv bIR -bCi -bCi -bCi +nBn +stP +xgC bCi bCi bCi @@ -125555,8 +125665,8 @@ bMe bFP bMe bMf -bCi -bCi +uku +pbF bCi bCi bCi @@ -125812,8 +125922,8 @@ bDW bFQ bHw bIT -bCi -bCi +oms +pbF bCi bCi bCi @@ -126066,11 +126176,11 @@ bzc bAL ddF bDX -bFR +bCi bHx bIU -bCi -bCi +uku +pbF bCi bCi bKD @@ -126324,11 +126434,11 @@ bAM bCt bDY bFS -bHy +bKu bIV -bCi -bCi -bCi +uku +iRL +rpR bCi bCi bCi @@ -126582,10 +126692,10 @@ bCu bDZ bFT bHz -bIW +bNR +izM bKD -bCi -bCi +gRX bCi bCi bCi @@ -126842,7 +126952,7 @@ bHy bIX bKE bNR -bCi +gRX bCi bCi bCi From e36bd50ad9ada2a20ff2e59ec6967fc59e4590d4 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Sun, 3 May 2020 20:08:01 -0700 Subject: [PATCH 36/36] Makes G gluid calcs only happen when it's required (#12095) * Made G fluid calcs only happen on moment it's required. * whoops * Update modular_citadel/code/modules/arousal/organs/testicles.dm Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> --- .../code/modules/arousal/arousal.dm | 2 ++ .../code/modules/arousal/genitals.dm | 18 ++++++------------ .../code/modules/arousal/organs/testicles.dm | 7 +++---- strings/traumas.json | 3 ++- 4 files changed, 13 insertions(+), 17 deletions(-) diff --git a/modular_citadel/code/modules/arousal/arousal.dm b/modular_citadel/code/modules/arousal/arousal.dm index 843672877e..44eafc5fc6 100644 --- a/modular_citadel/code/modules/arousal/arousal.dm +++ b/modular_citadel/code/modules/arousal/arousal.dm @@ -63,10 +63,12 @@ if(!target || !R) return var/turfing = isturf(target) + G.generate_fluid() if(spill && R.total_volume >= 5) R.reaction(turfing ? target : target.loc, TOUCH, 1, 0) if(!turfing) R.trans_to(target, R.total_volume * (spill ? G.fluid_transfer_factor : 1)) + G.time_since_last_orgasm = 0 R.clear_reagents() /mob/living/carbon/human/proc/mob_climax_outside(obj/item/organ/genital/G, mb_time = 30) //This is used for forced orgasms and other hands-free climaxes diff --git a/modular_citadel/code/modules/arousal/genitals.dm b/modular_citadel/code/modules/arousal/genitals.dm index a7b39f1706..731c69a457 100644 --- a/modular_citadel/code/modules/arousal/genitals.dm +++ b/modular_citadel/code/modules/arousal/genitals.dm @@ -16,6 +16,7 @@ var/fluid_efficiency = 1 var/fluid_rate = CUM_RATE var/fluid_mult = 1 + var/time_since_last_orgasm = 500 var/aroused_state = FALSE //Boolean used in icon_state strings var/obj/item/organ/genital/linked_organ var/linked_organ_slot //used for linking an apparatus' organ to its other half on update_link(). @@ -156,20 +157,13 @@ return reagents.maximum_volume = fluid_max_volume if(fluid_id && CHECK_BITFIELD(genital_flags, GENITAL_FUID_PRODUCTION)) - generate_fluid() + time_since_last_orgasm++ /obj/item/organ/genital/proc/generate_fluid() - var/amount = fluid_rate - if(!reagents.total_volume && amount < 0.1) // Apparently, 0.015 gets rounded down to zero and no reagents are created if we don't start it with 0.1 in the tank. - amount += 0.1 - var/multiplier = fluid_mult - if(reagents.total_volume >= 5) - multiplier *= 0.8 - if(reagents.total_volume < reagents.maximum_volume) - reagents.isolate_reagent(fluid_id)//remove old reagents if it changed and just clean up generally - reagents.add_reagent(fluid_id, (amount * multiplier))//generate the cum - return TRUE - return FALSE + var/amount = clamp(fluid_rate * time_since_last_orgasm * fluid_mult,0,fluid_max_volume) + reagents.clear_reagents() + reagents.add_reagent(fluid_id,amount) + return TRUE /obj/item/organ/genital/proc/update_link() if(owner) diff --git a/modular_citadel/code/modules/arousal/organs/testicles.dm b/modular_citadel/code/modules/arousal/organs/testicles.dm index a8946294b1..5fb1c75ad0 100644 --- a/modular_citadel/code/modules/arousal/organs/testicles.dm +++ b/modular_citadel/code/modules/arousal/organs/testicles.dm @@ -19,9 +19,8 @@ /obj/item/organ/genital/testicles/generate_fluid() if(!linked_organ && !update_link()) return FALSE - . = ..() - if(. && reagents.holder_full()) - to_chat(owner, "Your balls finally feel full, again.") + return ..() + // in memoriam "Your balls finally feel full, again." ??-2020 /obj/item/organ/genital/testicles/upon_link() size = linked_organ.size @@ -65,4 +64,4 @@ fluid_rate = D.features["balls_cum_rate"] fluid_mult = D.features["balls_cum_mult"] fluid_efficiency = D.features["balls_efficiency"] - toggle_visibility(D.features["balls_visibility"], FALSE) \ No newline at end of file + toggle_visibility(D.features["balls_visibility"], FALSE) diff --git a/strings/traumas.json b/strings/traumas.json index 8d1e9537ef..833c786b75 100644 --- a/strings/traumas.json +++ b/strings/traumas.json @@ -129,7 +129,8 @@ "@pick(semicolon)*nya", "@pick(semicolon)*awoo", "@pick(semicolon)*merp", - "@pick(semicolon)*weh" + "@pick(semicolon)*weh", + "@pick(semicolon)My balls finally feel full, again." ], "mutations": [