From b0097da90756d1952e4f8123f9ff7972e5f4a83c Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:17:16 +0300 Subject: [PATCH 01/72] [MIRROR] [NO GBP] fixes item blood overlays "leaking" onto other objects (#2137) * [NO GBP] fixes item blood overlays "leaking" onto other objects (#81662) Looks like KEEP_TOGETHER is necessary after all before ![Screenshot 2024-02-24 144648](https://github.com/tgstation/tgstation/assets/46101244/e973b372-8391-4678-bc26-28b9d32f05af) after ![Screenshot 2024-02-24 144001](https://github.com/tgstation/tgstation/assets/46101244/b6c25fcd-9c7f-4f3a-8b8f-69d98b81d424) ## Changelog :cl: fix: Blood overlays on items no longer leak onto other objects /:cl: * [NO GBP] fixes item blood overlays "leaking" onto other objects --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com> --- code/datums/elements/decals/blood.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/datums/elements/decals/blood.dm b/code/datums/elements/decals/blood.dm index ec09caed73d..7984939cddc 100644 --- a/code/datums/elements/decals/blood.dm +++ b/code/datums/elements/decals/blood.dm @@ -9,10 +9,14 @@ /datum/element/decal/blood/Detach(atom/source) UnregisterSignal(source, COMSIG_ATOM_GET_EXAMINE_NAME) + if(isitem(source)) + var/obj/item/source_item = source + REMOVE_KEEP_TOGETHER(source_item, type) return ..() /datum/element/decal/blood/generate_appearance(_icon, _icon_state, _dir, _plane, _layer, _color, _alpha, _smoothing, source) var/obj/item/I = source + ADD_KEEP_TOGETHER(I, type) var/icon = I.icon var/icon_state = I.icon_state if(!icon || !icon_state) From 26365318b219d1358ca42b188b878502e90e472e Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:17:32 +0300 Subject: [PATCH 02/72] [MIRROR] fix mob ai using attacks while inside pokeballs (#2138) * fix mob ai using attacks while inside pokeballs (#81671) ## About The Pull Request fixes pokemon AI still being active while inside the pokeball closes #81669 ## Why It's Good For The Game fixes pokemon AI still being active while inside the pokeball ## Changelog :cl: fix: fixes pokemon ai still being active when inside the pokeball /:cl: * fix mob ai using attacks while inside pokeballs --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com> --- .../basic_mobs/basic_ai_behaviors/basic_attacking.dm | 5 ++++- .../research/xenobiology/crossbreeding/_misc.dm | 10 ++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/basic_attacking.dm b/code/datums/ai/basic_mobs/basic_ai_behaviors/basic_attacking.dm index 0f7fe6ef142..144de535d5a 100644 --- a/code/datums/ai/basic_mobs/basic_ai_behaviors/basic_attacking.dm +++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/basic_attacking.dm @@ -8,7 +8,8 @@ . = ..() if(!controller.blackboard[targeting_strategy_key]) CRASH("No targeting strategy was supplied in the blackboard for [controller.pawn]") - + if(HAS_TRAIT(controller.pawn, TRAIT_HANDS_BLOCKED)) + return FALSE //Hiding location is priority var/atom/target = controller.blackboard[hiding_location_key] || controller.blackboard[target_key] if(QDELETED(target)) @@ -67,6 +68,8 @@ /datum/ai_behavior/basic_ranged_attack/setup(datum/ai_controller/controller, target_key, targeting_strategy_key, hiding_location_key) . = ..() + if(HAS_TRAIT(controller.pawn, TRAIT_HANDS_BLOCKED)) + return FALSE var/atom/target = controller.blackboard[hiding_location_key] || controller.blackboard[target_key] if(QDELETED(target)) return FALSE diff --git a/code/modules/research/xenobiology/crossbreeding/_misc.dm b/code/modules/research/xenobiology/crossbreeding/_misc.dm index 8eb166bf820..7b85a878ec3 100644 --- a/code/modules/research/xenobiology/crossbreeding/_misc.dm +++ b/code/modules/research/xenobiology/crossbreeding/_misc.dm @@ -175,6 +175,12 @@ Slimecrossing Items w_class = WEIGHT_CLASS_SMALL icon = 'icons/obj/science/slimecrossing.dmi' icon_state = "capturedevice" + ///traits we give and remove from the mob on exit and entry + var/static/list/traits_on_transfer = list( + TRAIT_IMMOBILIZED, + TRAIT_HANDS_BLOCKED, + TRAIT_AI_PAUSED, + ) /obj/item/capturedevice/attack(mob/living/pokemon, mob/user) if(length(contents)) @@ -211,11 +217,11 @@ Slimecrossing Items /obj/item/capturedevice/proc/store(mob/living/pokemon) pokemon.forceMove(src) - pokemon.add_traits(list(TRAIT_IMMOBILIZED, TRAIT_HANDS_BLOCKED), ABSTRACT_ITEM_TRAIT) + pokemon.add_traits(traits_on_transfer, ABSTRACT_ITEM_TRAIT) pokemon.cancel_camera() /obj/item/capturedevice/proc/release() for(var/mob/living/pokemon in contents) pokemon.forceMove(get_turf(loc)) - pokemon.remove_traits(list(TRAIT_IMMOBILIZED, TRAIT_HANDS_BLOCKED), ABSTRACT_ITEM_TRAIT) + pokemon.remove_traits(traits_on_transfer, ABSTRACT_ITEM_TRAIT) pokemon.cancel_camera() From 580010ffb0b124ac7a8b4332b206b0a57ed206c4 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:17:41 +0300 Subject: [PATCH 03/72] Automatic changelog for PR #2137 [ci skip] --- html/changelogs/AutoChangeLog-pr-2137.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2137.yml diff --git a/html/changelogs/AutoChangeLog-pr-2137.yml b/html/changelogs/AutoChangeLog-pr-2137.yml new file mode 100644 index 00000000000..ab75566b57e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2137.yml @@ -0,0 +1,4 @@ +author: "13spacemen" +delete-after: True +changes: + - bugfix: "Blood overlays on items no longer leak onto other objects" \ No newline at end of file From 0eb5f2a0c80f22a76c09b0a26d160301b36a8b7d Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:17:49 +0300 Subject: [PATCH 04/72] [MIRROR] Battery acid pie (#2142) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Battery acid pie (#81663) ## About The Pull Request I added a battery acid pie you make with 2 batteries and one plain pie ![image](https://github.com/tgstation/tgstation/assets/55806451/f7d4ed6f-9d71-46ea-ac62-0035c28612d7) ## Why It's Good For The Game The game had a very noticeable and substantial lack of battery acid pies (plus I wanted there to be more dishes for ethereals) edit: sorry I couldn't figure out how to add labels ## Changelog 🆑 add: Added the battery acid pie /:cl: * Battery acid pie --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: L0pz <55806451+L0pz@users.noreply.github.com> --- code/game/objects/items/food/pie.dm | 27 ++++++++++++++++++ .../recipes/tablecraft/recipes_pie.dm | 8 ++++++ icons/obj/food/piecake.dmi | Bin 41436 -> 41845 bytes 3 files changed, 35 insertions(+) diff --git a/code/game/objects/items/food/pie.dm b/code/game/objects/items/food/pie.dm index 46674fb735e..e5775991520 100644 --- a/code/game/objects/items/food/pie.dm +++ b/code/game/objects/items/food/pie.dm @@ -484,3 +484,30 @@ tastes = list("pie" = 1, "the far off year of 2010" = 1) foodtypes = GRAIN crafting_complexity = FOOD_COMPLEXITY_2 + +/obj/item/food/pie/bacid_pie + name = "battery acid pie" + desc = "Ooh it's a pie made of... battery acid? You suppose an ethereal could find some enjoyement in eating this." + icon_state = "bacid_pie" + food_reagents = list( + /datum/reagent/consumable/nutriment = 18, + /datum/reagent/consumable/liquidelectricity/enriched = 18 + ) + tastes = list("battery acid" = 2, "electricity" = 2, "a cyber world" = 2) + foodtypes = TOXIC + slice_type = /obj/item/food/pieslice/bacid_pie + yield = 4 + crafting_complexity = FOOD_COMPLEXITY_3 + + +/obj/item/food/pieslice/bacid_pie + name = "battery acid pie slice" + desc = "The battery acid filling has a concerningly appealing bright green color" + icon_state = "bacid_pie_slice" + food_reagents = list( + /datum/reagent/consumable/nutriment = 4.5, + /datum/reagent/consumable/liquidelectricity/enriched = 4.5 + ) + tastes = list("battery acid" = 1, "electricity" = 1, "a cyber world" = 1) + foodtypes = TOXIC + crafting_complexity = FOOD_COMPLEXITY_3 diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm index 93851558cff..a9f1ad23d8e 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_pie.dm @@ -237,3 +237,11 @@ ) result = /obj/item/food/pie/asdfpie category = CAT_PIE + +/datum/crafting_recipe/food/bacid_pie + reqs = list( + /obj/item/food/pie/plain = 1, + /obj/item/stock_parts/cell = 2, + ) + result = /obj/item/food/pie/bacid_pie + category = CAT_PIE diff --git a/icons/obj/food/piecake.dmi b/icons/obj/food/piecake.dmi index 8474ba29fe9f8ee2e332826686c376a77cb2a0dd..e6c0a71022d5011a59e17023e6a1a57d6ddef38e 100644 GIT binary patch delta 24088 zcmb??^Lt)F*KX9HQJaR1Z8o;qSdDGl*-0APW@FoGY}>Z&891FfiBj{G=}HZH6y_6T6gU_n{>L z&iU=OYVzgmb(LSFPkn#cSz4U(-`sonAnMJL0u3;E1YS20XRc)TxzA6}77rB-Hm%!( zv6h$Sx!Rc>Xkl?I%_`V;ZFJ}?D?%9)fI`8jc`n|cljUEcBglO~_b&)K1LR$51{oyO=tuRrUWYZ( z!O7n&%(EFa)CY(;u%(I9Xg z&xw{NolI<>?>?zs);B%ObDSWHi}fz8%!3ao|NJE+ZQERsa;F}G*wVjBj9!ONAv%yk zBAYAtm00?K8M}f)vB2%N?2q)6xuxDa(%at0pQ z`iq^e>lXE|AwQf>=E<8Vev#o91DGlqUFL#=%1LV8|WF|QzFN}7D zN$T8;JI8Z`V)cSkO@)B^BVxpQZVP&wXokSgH1kN7Fp0^t_dwC8`=QgX4e+hf5?^7}F)XvXW j)+4MsF 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 QGYs^Ql~R%{moN$ZA5fxK*8l(j From 46575e55b904664f3f3624cc4d9ef3f4a0087ec0 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:18:02 +0300 Subject: [PATCH 05/72] [MIRROR] Fixes paddy claw missing sanity checks / action checks / usage log (#2144) * Fixes paddy claw missing sanity checks / action checks / usage log (#81596) ## About The Pull Request Paddy mech claw didn't - Call `action_checks` - istype the right type - call parent (no signal, no log) This fixes that. ## Changelog :cl: Melbert fix: The Paddy's Claw should be properly unusable in situations which it should be properly unusable. /:cl: * Fixes paddy claw missing sanity checks / action checks / usage log --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> --- .../vehicles/mecha/equipment/weapons/weapons.dm | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/code/modules/vehicles/mecha/equipment/weapons/weapons.dm b/code/modules/vehicles/mecha/equipment/weapons/weapons.dm index 335e8bc5a3e..c0047eb91d7 100644 --- a/code/modules/vehicles/mecha/equipment/weapons/weapons.dm +++ b/code/modules/vehicles/mecha/equipment/weapons/weapons.dm @@ -552,6 +552,7 @@ range = MECHA_MELEE toolspeed = 0.8 mech_flags = EXOSUIT_MODULE_PADDY + projectiles_per_shot = 0 ///Chassis but typed for the cargo_hold var var/obj/vehicle/sealed/mecha/ripley/secmech ///Audio for using the hydraulic clamp @@ -570,10 +571,13 @@ secmech = null return ..() -/obj/item/mecha_parts/mecha_equipment/weapon/paddy_claw/action(mob/living/source, atom/target, list/modifiers) +/obj/item/mecha_parts/mecha_equipment/weapon/paddy_claw/action(mob/source, atom/target, list/modifiers) if(!secmech.cargo_hold) //We did try CRASH("Mech [chassis] has a claw device, but no internal storage. This should be impossible.") - if(ismob(target)) + if(!action_checks(target)) + return + if(isliving(target)) + . = ..() var/mob/living/mobtarget = target if(mobtarget.move_resist == MOVE_FORCE_OVERPOWERING) //No megafauna or bolted AIs, please. to_chat(source, "[span_warning("[src] is unable to lift [mobtarget].")]") @@ -596,11 +600,12 @@ carbontarget.update_handcuffed() return - if(!istype(target, /obj/machinery/door)) + if(istype(target, /obj/machinery/door)) + . = ..() + var/obj/machinery/door/target_door = target + playsound(chassis, clampsound, 50, FALSE, -6) + target_door.try_to_crowbar(src, source) return - var/obj/machinery/door/target_door = target - playsound(chassis, clampsound, 50, FALSE, -6) - target_door.try_to_crowbar(src, source) /obj/item/mecha_parts/mecha_equipment/weapon/paddy_claw/get_snowflake_data() return list( From 658d6cf475a9889657f664c01c11c83da23cb409 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:18:14 +0300 Subject: [PATCH 06/72] Automatic changelog for PR #2138 [ci skip] --- html/changelogs/AutoChangeLog-pr-2138.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2138.yml diff --git a/html/changelogs/AutoChangeLog-pr-2138.yml b/html/changelogs/AutoChangeLog-pr-2138.yml new file mode 100644 index 00000000000..853a56fb32e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2138.yml @@ -0,0 +1,4 @@ +author: "Ben10Omintrix" +delete-after: True +changes: + - bugfix: "fixes pokemon ai still being active when inside the pokeball" \ No newline at end of file From 3a645049bd1f0c914cc1d0046624f49890a9130e Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:18:41 +0300 Subject: [PATCH 07/72] Automatic changelog for PR #2144 [ci skip] --- html/changelogs/AutoChangeLog-pr-2144.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2144.yml diff --git a/html/changelogs/AutoChangeLog-pr-2144.yml b/html/changelogs/AutoChangeLog-pr-2144.yml new file mode 100644 index 00000000000..fdd83662978 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2144.yml @@ -0,0 +1,4 @@ +author: "Melbert" +delete-after: True +changes: + - bugfix: "The Paddy's Claw should be properly unusable in situations which it should be properly unusable." \ No newline at end of file From ee747de5a1e7251fcef1fea3180cf268757dd655 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:19:16 +0300 Subject: [PATCH 08/72] [MODULAR] Oh God The Zipper's Stuck: Entombed quirk granting unremovable roundstart MODsuit (#2145) * Initial pass of Entombed quirk * Fix incorrect preference path * Fix improper preferences path * Add entombed damage processing & toggle prefs for forced no-deploy * Sort tgui imports and use the not broken text input * Simplify toxin damage from entombed and remove fused MODsuit indestructible flag * Handle custom stripping behavior on entombed MODsuits with storage modules * Improve messaging on strip override * Replace CMO modsuit w/ corpsman reskin & add infiltrator entombed skin * Apply suggestions from code review * Stack trace and qdel on null modsuit in add_unique(), code formatting improvements * Extend equipping quirks to record what items they force-drop, and make Entombed transfer old bag contents into its MODsuit storage * Apply suggestions from code review * Add foley jitter to the life support failure process (makes it clearer what's killing the user) * Handle dropped force-equipped items qdels gracefully * Ensure customizations are applied to the entombed MODsuit * Force deployed MODsuits give the no dismember trait, increase max chars on name customization to 48 & remove broken colonist skin * Remove entombed MODsuit activation to post_add() to avoid loadout shenanigans --------- Co-authored-by: Ephemeralis Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> --- .../datums/quirks/neutral_quirks/equipping.dm | 10 + .../modules/entombed_quirk/code/entombed.dm | 273 ++++++++++++++++++ .../entombed_quirk/code/entombed_mod.dm | 95 ++++++ tgstation.dme | 2 + .../character_preferences/nova/entombed.tsx | 38 +++ 5 files changed, 418 insertions(+) create mode 100644 modular_nova/master_files/code/modules/entombed_quirk/code/entombed.dm create mode 100644 modular_nova/master_files/code/modules/entombed_quirk/code/entombed_mod.dm create mode 100644 tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/nova/entombed.tsx diff --git a/modular_nova/master_files/code/datums/quirks/neutral_quirks/equipping.dm b/modular_nova/master_files/code/datums/quirks/neutral_quirks/equipping.dm index 4f48ddd4610..cb68d141684 100644 --- a/modular_nova/master_files/code/datums/quirks/neutral_quirks/equipping.dm +++ b/modular_nova/master_files/code/datums/quirks/neutral_quirks/equipping.dm @@ -6,6 +6,8 @@ var/list/items = list() /// the items that will be forcefully equipped, formatted in the way of [item_path = list of slots it can be equipped to], will equip over nodrop items var/list/forced_items = list() + /// did we force drop any items? if so, they're in this list. useful for transferring any applicable contents into new items on roundstart + var/list/force_dropped_items = list() /datum/quirk/equipping/add_unique(client/client_source) var/mob/living/carbon/carbon_holder = quirk_holder @@ -45,7 +47,15 @@ if (check_nodrop && HAS_TRAIT(item_in_slot, TRAIT_NODROP)) return FALSE target.dropItemToGround(item_in_slot, force = TRUE) + force_dropped_items += item_in_slot + RegisterSignal(item_in_slot, COMSIG_QDELETING, PROC_REF(dropped_items_cleanup)) + return target.equip_to_slot_if_possible(item, slot, disable_warning = TRUE) // this should never not work tbh +/datum/quirk/equipping/proc/dropped_items_cleanup(obj/item/source) + SIGNAL_HANDLER + + force_dropped_items -= source + /datum/quirk/equipping/proc/on_equip_item(obj/item/equipped, success) return diff --git a/modular_nova/master_files/code/modules/entombed_quirk/code/entombed.dm b/modular_nova/master_files/code/modules/entombed_quirk/code/entombed.dm new file mode 100644 index 00000000000..cec2af9d52c --- /dev/null +++ b/modular_nova/master_files/code/modules/entombed_quirk/code/entombed.dm @@ -0,0 +1,273 @@ +/// How much damage should we be taking when the suit's been disabled a while? +#define ENTOMBED_TICK_DAMAGE 1.5 + +/datum/quirk/equipping/entombed + name = "Entombed" + desc = "You are permanently fused to (or otherwise reliant on) a single MOD unit that can never be removed from your person. If it runs out of charge or is turned off, you'll start to die!" + gain_text = span_warning("Your exosuit is both prison and home.") + lose_text = span_notice("At last, you're finally free from that horrible exosuit.") + medical_record_text = "Patient is physiologically reliant on a MOD unit for homeostasis. Do not attempt removal." + value = 0 + icon = FA_ICON_ARROW_CIRCLE_DOWN + forced_items = list(/obj/item/mod/control/pre_equipped/entombed = list(ITEM_SLOT_BACK)) + quirk_flags = QUIRK_HUMAN_ONLY | QUIRK_PROCESSES + /// The modsuit we're stuck in + var/obj/item/mod/control/pre_equipped/entombed/modsuit + /// Has the player chosen to deploy-lock? + var/deploy_locked = FALSE + /// How long before they start taking damage when the suit's not active? + var/life_support_failure_threshold = 1.5 MINUTES + /// TimerID for our timeframe tracker + var/life_support_timer + /// Are we taking damage? + var/life_support_failed = FALSE + +/datum/quirk/equipping/entombed/process(seconds_per_tick) + var/mob/living/carbon/human/human_holder = quirk_holder + if (!modsuit || life_support_failed) + // we've got no modsuit or life support. take damage ow + human_holder.adjustToxLoss(ENTOMBED_TICK_DAMAGE * seconds_per_tick, updating_health = TRUE, forced = TRUE) + human_holder.set_jitter_if_lower(10 SECONDS) + + if (!modsuit.active) + if (!life_support_timer) + //start the timer and let the player know + life_support_timer = addtimer(CALLBACK(src, PROC_REF(life_support_failure), human_holder), life_support_failure_threshold, TIMER_STOPPABLE | TIMER_DELETE_ME) + + to_chat(human_holder, span_danger("Your physiology begins to erratically seize and twitch, bereft of your MODsuit's vital support. Turn it back on as soon as you can!")) + human_holder.balloon_alert(human_holder, "suit life support warning!") + human_holder.set_jitter_if_lower(life_support_failure_threshold) //give us some foley jitter + return + else + if (life_support_timer) + // clear our timer and let the player know everything's back to normal + deltimer(life_support_timer) + life_support_timer = null + life_support_failed = FALSE + + to_chat(human_holder, span_notice("Relief floods your frame as your suit begins sustaining your life once more.")) + human_holder.balloon_alert(human_holder, "suit life support restored!") + human_holder.adjust_jitter(-(life_support_failure_threshold / 2)) // clear half of it, wow, that was unpleasant + +/datum/quirk/equipping/entombed/proc/life_support_failure() + // Warn the player and begin the gradual dying process. + var/mob/living/carbon/human/human_holder = quirk_holder + + human_holder.visible_message(span_danger("[human_holder] suddenly staggers, a dire pallor overtaking [human_holder.p_their()] features as a feeble 'breep' emanates from their suit..."), span_userdanger("Terror descends as your suit's life support system breeps feebly, and then goes horrifyingly silent.")) + human_holder.balloon_alert(human_holder, "SUIT LIFE SUPPORT FAILING!") + playsound(human_holder, 'sound/effects/alert.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) // OH GOD THE STRESS NOISE + life_support_failed = TRUE + +/datum/quirk/equipping/entombed/add_unique(client/client_source) + . = ..() + var/mob/living/carbon/human/human_holder = quirk_holder + if (istype(human_holder.back, /obj/item/mod/control/pre_equipped/entombed)) + modsuit = human_holder.back // link this up to the quirk for easy access + + if (isnull(modsuit)) + stack_trace("Entombed quirk couldn't create a fused MODsuit on [quirk_holder] and was force-removed.") + qdel(src) + return + + var/lock_deploy = client_source?.prefs.read_preference(/datum/preference/toggle/entombed_deploy_lock) + if (!isnull(lock_deploy)) + deploy_locked = lock_deploy + + // set no dismember trait for deploy-locked dudes, i'm sorry, there's basically no better way to do this. + // it's a pretty ample buff but i dunno what else to do... + if (deploy_locked) + ADD_TRAIT(human_holder, TRAIT_NODISMEMBER, QUIRK_TRAIT) + + // set all of our customization stuff from prefs, if we have it + var/modsuit_skin = client_source?.prefs.read_preference(/datum/preference/choiced/entombed_skin) + + if (modsuit_skin == NONE) + modsuit_skin = "civilian" + + modsuit.skin = lowertext(modsuit_skin) + + var/modsuit_name = client_source?.prefs.read_preference(/datum/preference/text/entombed_mod_name) + if (modsuit_name) + modsuit.name = modsuit_name + + var/modsuit_desc = client_source?.prefs.read_preference(/datum/preference/text/entombed_mod_desc) + if (modsuit_desc) + modsuit.desc = modsuit_desc + + var/modsuit_skin_prefix = client_source?.prefs.read_preference(/datum/preference/text/entombed_mod_prefix) + if (modsuit_skin_prefix) + modsuit.theme.name = lowertext(modsuit_skin_prefix) + + // ensure we're applying our config theme changes, just in case + for(var/obj/item/part as anything in modsuit.mod_parts) + part.name = "[modsuit.theme.name] [initial(part.name)]" + part.desc = "[initial(part.desc)] [modsuit.theme.desc]" + + install_racial_features() + + //transfer as many items across from our dropped backslot as we can. do this last incase something breaks + if (force_dropped_items) + var/obj/item/old_bag = locate() in force_dropped_items + if (old_bag.atom_storage) + old_bag.atom_storage.dump_content_at(modsuit, human_holder) + +/datum/quirk/equipping/entombed/post_add() + . = ..() + // quickly deploy it on roundstart. we can't do this in add_unique because that gets called in the preview screen, which overwrites people's loadout stuff in suit/shoes/gloves slot. very unfun for them + modsuit.quick_activation() + +/datum/quirk/equipping/entombed/remove() + var/mob/living/carbon/human/human_holder = quirk_holder + if (deploy_locked && HAS_TRAIT_FROM(human_holder, TRAIT_NODISMEMBER, QUIRK_TRAIT)) + REMOVE_TRAIT(human_holder, TRAIT_NODISMEMBER, QUIRK_TRAIT) + QDEL_NULL(modsuit) + +/datum/quirk/equipping/entombed/proc/install_racial_features() + // deploy specific racial features - ethereals get ethereal cores, plasmamen get free plasma stabilizer module + if (!modsuit) // really don't know how this could ever happen but it's better than runtimes + return + var/mob/living/carbon/human/human_holder = quirk_holder + if (isethereal(human_holder)) + var/obj/item/mod/core/ethereal/eth_core = new + eth_core.install(modsuit) + else if (isplasmaman(human_holder)) + var/obj/item/mod/module/plasma_stabilizer/entombed/plasma_stab = new + modsuit.install(plasma_stab, human_holder) + +/datum/quirk_constant_data/entombed + associated_typepath = /datum/quirk/equipping/entombed + customization_options = list( + /datum/preference/choiced/entombed_skin, + /datum/preference/text/entombed_mod_desc, + /datum/preference/text/entombed_mod_name, + /datum/preference/text/entombed_mod_prefix, + /datum/preference/toggle/entombed_deploy_lock, + ) + +/datum/preference/choiced/entombed_skin + category = PREFERENCE_CATEGORY_MANUALLY_RENDERED + savefile_key = "entombed_skin" + savefile_identifier = PREFERENCE_CHARACTER + can_randomize = FALSE + +/datum/preference/choiced/entombed_skin/init_possible_values() + return list( + "Standard", + "Civilian", + "Advanced", + "Atmospheric", + "Corpsman", + "Cosmohonk", + "Engineering", + "Infiltrator", + "Interdyne", + "Loader", + "Medical", + "Mining", + "Prototype", + "Security", + ) + +/datum/preference/choiced/entombed_skin/create_default_value() + return "Civilian" + +/datum/preference/choiced/entombed_skin/is_accessible(datum/preferences/preferences) + if (!..()) + return FALSE + + return "Entombed" in preferences.all_quirks + +/datum/preference/choiced/entombed_skin/apply_to_human(mob/living/carbon/human/target, value) + return + +/datum/preference/text/entombed_mod_name + category = PREFERENCE_CATEGORY_MANUALLY_RENDERED + savefile_key = "entombed_mod_name" + savefile_identifier = PREFERENCE_CHARACTER + can_randomize = FALSE + maximum_value_length = 48 + +/datum/preference/text/entombed_mod_name/is_accessible(datum/preferences/preferences) + if (!..()) + return FALSE + + return "Entombed" in preferences.all_quirks + +/datum/preference/text/entombed_mod_name/serialize(input) + return htmlrendertext(input) + +/datum/preference/text/entombed_mod_name/deserialize(input, datum/preferences/preferences) + var/sanitized_input = htmlrendertext(input) + if(!isnull(sanitized_input)) + return sanitized_input + else + return "" + +/datum/preference/text/entombed_mod_name/apply_to_human(mob/living/carbon/human/target, value) + return + +/datum/preference/text/entombed_mod_desc + category = PREFERENCE_CATEGORY_MANUALLY_RENDERED + savefile_key = "entombed_mod_desc" + savefile_identifier = PREFERENCE_CHARACTER + can_randomize = FALSE + +/datum/preference/text/entombed_mod_desc/is_accessible(datum/preferences/preferences) + if (!..()) + return FALSE + + return "Entombed" in preferences.all_quirks + +/datum/preference/text/entombed_mod_desc/serialize(input) + return htmlrendertext(input) + +/datum/preference/text/entombed_mod_desc/deserialize(input, datum/preferences/preferences) + var/sanitized_input = htmlrendertext(input) + if(!isnull(sanitized_input)) + return sanitized_input + else + return "" + +/datum/preference/text/entombed_mod_desc/apply_to_human(mob/living/carbon/human/target, value) + return + +/datum/preference/text/entombed_mod_prefix + category = PREFERENCE_CATEGORY_MANUALLY_RENDERED + savefile_key = "entombed_mod_prefix" + savefile_identifier = PREFERENCE_CHARACTER + can_randomize = FALSE + maximum_value_length = 16 + +/datum/preference/text/entombed_mod_prefix/is_accessible(datum/preferences/preferences) + if (!..()) + return FALSE + + return "Entombed" in preferences.all_quirks + +/datum/preference/text/entombed_mod_prefix/serialize(input) + return htmlrendertext(input) + +/datum/preference/text/entombed_mod_prefix/deserialize(input, datum/preferences/preferences) + return htmlrendertext(input) + +/datum/preference/text/entombed_mod_prefix/create_default_value() + return "Fused" + +/datum/preference/text/entombed_mod_prefix/apply_to_human(mob/living/carbon/human/target, value) + return + +/datum/preference/toggle/entombed_deploy_lock + category = PREFERENCE_CATEGORY_MANUALLY_RENDERED + savefile_key = "entombed_deploy_lock" + savefile_identifier = PREFERENCE_CHARACTER + +/datum/preference/toggle/entombed_deploy_lock/is_accessible(datum/preferences/preferences) + if (!..(preferences)) + return FALSE + + return "Entombed" in preferences.all_quirks + +/datum/preference/toggle/entombed_deploy_lock/apply_to_human(mob/living/carbon/human/target, value) + return + +#undef ENTOMBED_TICK_DAMAGE diff --git a/modular_nova/master_files/code/modules/entombed_quirk/code/entombed_mod.dm b/modular_nova/master_files/code/modules/entombed_quirk/code/entombed_mod.dm new file mode 100644 index 00000000000..68f489e34d0 --- /dev/null +++ b/modular_nova/master_files/code/modules/entombed_quirk/code/entombed_mod.dm @@ -0,0 +1,95 @@ +/datum/mod_theme/entombed + name = "fused" + desc = "Circumstances have rendered this protective suit into someone's second skin. Literally." + extended_desc = "Some great aspect of someone's past has permanently bound them to this device, for better or worse." + + default_skin = "civilian" + armor_type = /datum/armor/mod_entombed + resistance_flags = FIRE_PROOF | ACID_PROOF // It is better to die for the Emperor than live for yourself. + max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT + siemens_coefficient = 0 + complexity_max = DEFAULT_MAX_COMPLEXITY - 5 + charge_drain = DEFAULT_CHARGE_DRAIN + slowdown_inactive = 2.5 // very slow because the quirk infers you rely on this to move/exist + slowdown_active = 0.95 + inbuilt_modules = list( + /obj/item/mod/module/joint_torsion/entombed, + /obj/item/mod/module/storage, + ) + allowed_suit_storage = list( + /obj/item/tank/internals, + /obj/item/flashlight, + ) + +/datum/armor/mod_entombed + melee = ARMOR_LEVEL_WEAK + bullet = ARMOR_LEVEL_WEAK + laser = ARMOR_LEVEL_WEAK + energy = ARMOR_LEVEL_WEAK + bomb = ARMOR_LEVEL_WEAK + bio = ARMOR_LEVEL_WEAK + fire = ARMOR_LEVEL_WEAK + acid = ARMOR_LEVEL_WEAK + wound = WOUND_ARMOR_WEAK + +/obj/item/mod/module/joint_torsion/entombed + name = "internal joint torsion adaptation" + desc = "Your adaptation to life in this MODsuit shell allows you to ambulate in such a way that your movements recharge the suit's internal batteries slightly, but only while under the effect of gravity." + removable = FALSE + complexity = 0 + power_per_step = DEFAULT_CHARGE_DRAIN * 0.4 + +/obj/item/mod/module/plasma_stabilizer/entombed + name = "colony-stabilized interior seal" + desc = "Your colony has fully integrated the internal segments of your suit's plate into your skeleton, forming a hermetic seal between you and the outside world from which none of your atmosphere can escape. This is enough to allow your head to view the world with your helmet retracted." + complexity = 0 + idle_power_cost = 0 + removable = FALSE + +/obj/item/mod/control/pre_equipped/entombed + theme = /datum/mod_theme/entombed + applied_cell = /obj/item/stock_parts/cell/high + +/obj/item/mod/control/pre_equipped/entombed/canStrip(mob/who) + return TRUE //you can always try, and it'll hit doStrip below + +/obj/item/mod/control/pre_equipped/entombed/doStrip(mob/who) + // attempt to handle custom stripping behavior - if we have a storage module of some kind + var/obj/item/mod/module/storage/inventory = locate() in src.modules + if (!isnull(inventory)) + src.atom_storage.remove_all() + to_chat(who, span_notice("You empty out all the items from the MODsuit's storage module!")) + who.balloon_alert(who, "emptied out MOD storage items!") + return TRUE + + to_chat(who, span_warning("The suit seems permanently fused to their frame - you can't remove it!")) + who.balloon_alert(who, "can't strip a fused MODsuit!") + return ..() + +/obj/item/mod/control/pre_equipped/entombed/retract(mob/user, obj/item/part) + if (ishuman(user)) + var/mob/living/carbon/human/human_user = user + var/datum/quirk/equipping/entombed/tomb_quirk = human_user.get_quirk(/datum/quirk/equipping/entombed) + //check to make sure we're not retracting something we shouldn't be able to + if (tomb_quirk && tomb_quirk.deploy_locked) + if (istype(part, /obj/item/clothing)) // make sure it's a modsuit piece and not a module, we retract those too + if (!istype(part, /obj/item/clothing/head/mod)) // they can only retract the helmet, them's the sticks + human_user.balloon_alert(human_user, "part is fused to you - can't retract!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return + return ..() + +/obj/item/mod/control/pre_equipped/entombed/quick_deploy(mob/user) + if (ishuman(user)) + var/mob/living/carbon/human/human_user = user + var/datum/quirk/equipping/entombed/tomb_quirk = human_user.get_quirk(/datum/quirk/equipping/entombed) + //if we're deploy_locked, just disable this functionality entirely + if (tomb_quirk && tomb_quirk.deploy_locked) + human_user.balloon_alert(human_user, "you can only retract your helmet, and only manually!") + playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE) + return + return ..() + +/obj/item/mod/control/pre_equipped/entombed/Initialize(mapload, new_theme, new_skin, new_core) + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, QUIRK_TRAIT) diff --git a/tgstation.dme b/tgstation.dme index 1c340f63dac..c27a78b7319 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -6422,6 +6422,8 @@ #include "modular_nova\master_files\code\modules\clothing\under\jobs\security.dm" #include "modular_nova\master_files\code\modules\clothing\under\jobs\civilian\civilian.dm" #include "modular_nova\master_files\code\modules\clothing\under\jobs\civilian\suits.dm" +#include "modular_nova\master_files\code\modules\entombed_quirk\code\entombed.dm" +#include "modular_nova\master_files\code\modules\entombed_quirk\code\entombed_mod.dm" #include "modular_nova\master_files\code\modules\events\_event.dm" #include "modular_nova\master_files\code\modules\experisci\experiment.dm" #include "modular_nova\master_files\code\modules\food_and_drinks\recipes\food_mixtures.dm" diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/nova/entombed.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/nova/entombed.tsx new file mode 100644 index 00000000000..48c6c63fab2 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/nova/entombed.tsx @@ -0,0 +1,38 @@ +// THIS IS A NOVA SECTOR UI FILE +import { + CheckboxInput, + Feature, + FeatureChoiced, + FeatureDropdownInput, + FeatureShortTextInput, + FeatureToggle, +} from '../../base'; + +export const entombed_skin: FeatureChoiced = { + name: 'MODsuit Skin', + component: FeatureDropdownInput, +}; + +export const entombed_mod_name: Feature = { + name: 'MODsuit Control Unit Name', + component: FeatureShortTextInput, +}; + +export const entombed_mod_desc: Feature = { + name: 'MODsuit Control Unit Description', + component: FeatureShortTextInput, +}; + +export const entombed_mod_prefix: Feature = { + name: 'MODsuit Deployed Prefix', + description: + "This is appended to any deployed pieces of MODsuit gear, like the chest, helmet, etc. The default is 'fused' - try to use an adjective, if you can.", + component: FeatureShortTextInput, +}; + +export const entombed_deploy_lock: FeatureToggle = { + name: 'MODsuit Stays Deployed (Soft DNR)', + description: + 'Prevents anyone from retracting any of your MODsuit, except your helmet. Even you. WARNING: this may make you extremely difficult to revive, and can be considered a soft DNR. Choose wisely.', + component: CheckboxInput, +}; From acedd84f0f5c3970000ac20a4c3e44f7817f825d Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:19:37 +0300 Subject: [PATCH 09/72] [MIRROR] Constructs now reuse the victim's mind instead of just moving their client (#2146) * Constructs now reuse the victim's mind instead of just moving their client (#81665) ## About The Pull Request This makes it so when someone becomes a construct, their _mind_ is transferred, rather than just their ckey. ## Why It's Good For The Game It's the same soul after all. Plus, this prevents clogging up the roundend report. ## Testing Evidence ![2024-02-24 (1708802154) ~ dreamseeker](https://github.com/tgstation/tgstation/assets/65794972/5a33c1eb-55d4-4386-99ea-0c16f5efec3c) ![2024-02-24 (1708802162) ~ dreamseeker](https://github.com/tgstation/tgstation/assets/65794972/10429beb-4d54-4fb2-884b-42569802e0ee) ![2024-02-24 (1708802171) ~ dreamseeker](https://github.com/tgstation/tgstation/assets/65794972/967d99ac-d460-46a9-b7c9-f0c7c6c187d3) ## Changelog :cl: qol: Constructs now reuse the victim's mind instead of just moving their client /:cl: * Constructs now reuse the victim's mind instead of just moving their client --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: Lucy --- .../antagonists/wizard/equipment/soulstone.dm | 48 +++++++++---------- code/modules/mob/living/living_defense.dm | 2 +- code/modules/power/singularity/narsie.dm | 2 +- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm index 20f65281f96..5d4c6c9deee 100644 --- a/code/modules/antagonists/wizard/equipment/soulstone.dm +++ b/code/modules/antagonists/wizard/equipment/soulstone.dm @@ -456,42 +456,42 @@ switch(construct_class) if(CONSTRUCT_JUGGERNAUT) if(IS_CULTIST(creator)) - makeNewConstruct(/mob/living/basic/construct/juggernaut, target, creator, cultoverride, loc_override) // ignore themes, the actual giving of cult info is in the makeNewConstruct proc + make_new_construct(/mob/living/basic/construct/juggernaut, target, creator, cultoverride, loc_override) // ignore themes, the actual giving of cult info is in the make_new_construct proc return switch(theme) if(THEME_WIZARD) - makeNewConstruct(/mob/living/basic/construct/juggernaut/mystic, target, creator, cultoverride, loc_override) + make_new_construct(/mob/living/basic/construct/juggernaut/mystic, target, creator, cultoverride, loc_override) if(THEME_HOLY) - makeNewConstruct(/mob/living/basic/construct/juggernaut/angelic, target, creator, cultoverride, loc_override) + make_new_construct(/mob/living/basic/construct/juggernaut/angelic, target, creator, cultoverride, loc_override) if(THEME_CULT) - makeNewConstruct(/mob/living/basic/construct/juggernaut, target, creator, cultoverride, loc_override) + make_new_construct(/mob/living/basic/construct/juggernaut, target, creator, cultoverride, loc_override) if(CONSTRUCT_WRAITH) if(IS_CULTIST(creator)) - makeNewConstruct(/mob/living/basic/construct/wraith, target, creator, cultoverride, loc_override) // ignore themes, the actual giving of cult info is in the makeNewConstruct proc + make_new_construct(/mob/living/basic/construct/wraith, target, creator, cultoverride, loc_override) // ignore themes, the actual giving of cult info is in the make_new_construct proc return switch(theme) if(THEME_WIZARD) - makeNewConstruct(/mob/living/basic/construct/wraith/mystic, target, creator, cultoverride, loc_override) + make_new_construct(/mob/living/basic/construct/wraith/mystic, target, creator, cultoverride, loc_override) if(THEME_HOLY) - makeNewConstruct(/mob/living/basic/construct/wraith/angelic, target, creator, cultoverride, loc_override) + make_new_construct(/mob/living/basic/construct/wraith/angelic, target, creator, cultoverride, loc_override) if(THEME_CULT) - makeNewConstruct(/mob/living/basic/construct/wraith, target, creator, cultoverride, loc_override) + make_new_construct(/mob/living/basic/construct/wraith, target, creator, cultoverride, loc_override) if(CONSTRUCT_ARTIFICER) if(IS_CULTIST(creator)) - makeNewConstruct(/mob/living/basic/construct/artificer, target, creator, cultoverride, loc_override) // ignore themes, the actual giving of cult info is in the makeNewConstruct proc + make_new_construct(/mob/living/basic/construct/artificer, target, creator, cultoverride, loc_override) // ignore themes, the actual giving of cult info is in the make_new_construct proc return switch(theme) if(THEME_WIZARD) - makeNewConstruct(/mob/living/basic/construct/artificer/mystic, target, creator, cultoverride, loc_override) + make_new_construct(/mob/living/basic/construct/artificer/mystic, target, creator, cultoverride, loc_override) if(THEME_HOLY) - makeNewConstruct(/mob/living/basic/construct/artificer/angelic, target, creator, cultoverride, loc_override) + make_new_construct(/mob/living/basic/construct/artificer/angelic, target, creator, cultoverride, loc_override) if(THEME_CULT) - makeNewConstruct(/mob/living/basic/construct/artificer/noncult, target, creator, cultoverride, loc_override) + make_new_construct(/mob/living/basic/construct/artificer/noncult, target, creator, cultoverride, loc_override) -/proc/makeNewConstruct(mob/living/basic/construct/ctype, mob/target, mob/stoner = null, cultoverride = FALSE, loc_override = null) +/proc/make_new_construct(mob/living/basic/construct/ctype, mob/target, mob/stoner = null, cultoverride = FALSE, loc_override = null) if(QDELETED(target)) return - var/mob/living/basic/construct/newstruct = new ctype((loc_override) ? (loc_override) : (get_turf(target))) + var/mob/living/basic/construct/newstruct = new ctype(loc_override || get_turf(target)) var/makeicon = newstruct.icon_state var/theme = newstruct.theme flick("make_[makeicon][theme]", newstruct) @@ -499,20 +499,20 @@ if(stoner) newstruct.faction |= "[REF(stoner)]" newstruct.master = stoner - var/datum/action/innate/seek_master/SM = new() - SM.Grant(newstruct) - newstruct.key = target.key - var/atom/movable/screen/alert/bloodsense/BS - if(newstruct.mind && ((stoner && IS_CULTIST(stoner)) || cultoverride) && SSticker.HasRoundStarted()) + var/datum/action/innate/seek_master/seek_master = new + seek_master.Grant(newstruct) + target.mind?.transfer_to(newstruct, force_key_move = TRUE) + var/atom/movable/screen/alert/bloodsense/sense_alert + if(newstruct.mind && !IS_CULTIST(newstruct) && ((stoner && IS_CULTIST(stoner)) || cultoverride) && SSticker.HasRoundStarted()) newstruct.mind.add_antag_datum(/datum/antagonist/cult/construct) if(IS_CULTIST(stoner) || cultoverride) - to_chat(newstruct, "You are still bound to serve the cult[stoner ? " and [stoner]":""], follow [stoner ? stoner.p_their() : "their"] orders and help [stoner ? stoner.p_them() : "them"] complete [stoner ? stoner.p_their() : "their"] goals at all costs.") + to_chat(newstruct, span_cultbold("You are still bound to serve the cult[stoner ? " and [stoner]" : ""], follow [stoner?.p_their() || "their"] orders and help [stoner?.p_them() || "them"] complete [stoner?.p_their() || "their"] goals at all costs.")) else if(stoner) - to_chat(newstruct, "You are still bound to serve your creator, [stoner], follow [stoner.p_their()] orders and help [stoner.p_them()] complete [stoner.p_their()] goals at all costs.") + to_chat(newstruct, span_boldwarning("You are still bound to serve your creator, [stoner], follow [stoner.p_their()] orders and help [stoner.p_them()] complete [stoner.p_their()] goals at all costs.")) newstruct.clear_alert("bloodsense") - BS = newstruct.throw_alert("bloodsense", /atom/movable/screen/alert/bloodsense) - if(BS) - BS.Cviewer = newstruct + sense_alert = newstruct.throw_alert("bloodsense", /atom/movable/screen/alert/bloodsense) + if(sense_alert) + sense_alert.Cviewer = newstruct newstruct.cancel_camera() /obj/item/soulstone/anybody diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 10f9a79ca00..ca61dfda7b0 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -559,7 +559,7 @@ addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper), CULT_VICTORY_MASS_CONVERSION), 120) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper)), 270) if(client) - makeNewConstruct(/mob/living/basic/construct/harvester, src, cultoverride = TRUE) + make_new_construct(/mob/living/basic/construct/harvester, src, cultoverride = TRUE) else switch(rand(1, 4)) if(1) diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index a2485d5a2f3..0e2a25576d5 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -147,7 +147,7 @@ start_ending_the_round() /obj/narsie/attack_ghost(mob/user) - makeNewConstruct(/mob/living/basic/construct/harvester, user, cultoverride = TRUE, loc_override = loc) + make_new_construct(/mob/living/basic/construct/harvester, user, cultoverride = TRUE, loc_override = loc) /obj/narsie/process() var/datum/component/singularity/singularity_component = singularity.resolve() From 5ec5eb80c47fdb549c27c7e87208492a80b5b03f Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:19:52 +0300 Subject: [PATCH 10/72] [MIRROR] General maintenance for frames (#2147) * General maintenance for frames (#81473) ## About The Pull Request Builds upon the changes in https://github.com/tgstation/tgstation/pull/81477 **1. Qol** - Adds detailed examines & screentips for building & deconstructing both machine & computer frames - Adding a circuitboard from a rped to a computer frame will automatically screw it in place like before **2. Code Improvements** - Merged procs like `update_path_names()` , `get_requested_amt()` etc into their required places to reduce proc calls - Autodocs procs like `add_cable()`, `add_glass()` etc. makes them private - Moved code for machine frame into its own file * General maintenance for frames --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> --- code/__DEFINES/construction/structures.dm | 2 +- .../game/machinery/computer/buildandrepair.dm | 233 ++++++--- code/game/machinery/constructable_frame.dm | 424 +--------------- code/game/machinery/machine_frame.dm | 474 ++++++++++++++++++ tgstation.dme | 1 + 5 files changed, 645 insertions(+), 489 deletions(-) create mode 100644 code/game/machinery/machine_frame.dm diff --git a/code/__DEFINES/construction/structures.dm b/code/__DEFINES/construction/structures.dm index 453de8ebf05..e52b82f248e 100644 --- a/code/__DEFINES/construction/structures.dm +++ b/code/__DEFINES/construction/structures.dm @@ -62,7 +62,7 @@ #define GEAR_SECURE 1 #define GEAR_LOOSE 2 -// Stationary gas tanks +//Stationary gas tanks #define TANK_FRAME 0 #define TANK_PLATING_UNSECURED 1 diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 8446fb4a9d9..1274a6796eb 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -9,6 +9,92 @@ /obj/structure/frame/computer/Initialize(mapload) . = ..() AddComponent(/datum/component/simple_rotation) + register_context() + update_appearance(UPDATE_ICON_STATE) + +/obj/structure/frame/computer/deconstruct(disassembled = TRUE) + if(!(obj_flags & NO_DECONSTRUCTION)) + var/atom/drop_loc = drop_location() + if(state == FRAME_COMPUTER_STATE_GLASSED) + if(disassembled) + new /obj/item/stack/sheet/glass(drop_loc, 2) + else + new /obj/item/shard(drop_loc) + new /obj/item/shard(drop_loc) + if(state >= FRAME_COMPUTER_STATE_WIRED) + new /obj/item/stack/cable_coil(drop_loc, 5) + + return ..() + +/obj/structure/frame/computer/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = NONE + if(isnull(held_item)) + return + + switch(state) + if(FRAME_COMPUTER_STATE_EMPTY) + if(held_item.tool_behaviour == TOOL_WRENCH) + context[SCREENTIP_CONTEXT_LMB] = "[anchored ? "Un" : ""]anchor" + return CONTEXTUAL_SCREENTIP_SET + else if(anchored && istype(held_item, /obj/item/circuitboard/computer)) + context[SCREENTIP_CONTEXT_LMB] = "Install board" + return CONTEXTUAL_SCREENTIP_SET + else if(held_item.tool_behaviour == TOOL_WELDER) + context[SCREENTIP_CONTEXT_LMB] = "Unweld frame" + return CONTEXTUAL_SCREENTIP_SET + else if(held_item.tool_behaviour == TOOL_SCREWDRIVER) + context[SCREENTIP_CONTEXT_LMB] = "Disassemble frame" + return CONTEXTUAL_SCREENTIP_SET + if(FRAME_COMPUTER_STATE_BOARD_INSTALLED) + if(held_item.tool_behaviour == TOOL_CROWBAR) + context[SCREENTIP_CONTEXT_LMB] = "Pry out board" + return CONTEXTUAL_SCREENTIP_SET + else if(held_item.tool_behaviour == TOOL_SCREWDRIVER) + context[SCREENTIP_CONTEXT_LMB] = "Secure board" + return CONTEXTUAL_SCREENTIP_SET + if(FRAME_COMPUTER_STATE_BOARD_SECURED) + if(held_item.tool_behaviour == TOOL_SCREWDRIVER) + context[SCREENTIP_CONTEXT_LMB] = "Unsecure board" + return CONTEXTUAL_SCREENTIP_SET + else if(istype(held_item, /obj/item/stack/cable_coil)) + context[SCREENTIP_CONTEXT_LMB] = "Install cable" + return CONTEXTUAL_SCREENTIP_SET + if(FRAME_COMPUTER_STATE_WIRED) + if(held_item.tool_behaviour == TOOL_WIRECUTTER) + context[SCREENTIP_CONTEXT_LMB] = "Cut out cable" + return CONTEXTUAL_SCREENTIP_SET + else if(istype(held_item, /obj/item/stack/sheet/glass)) + context[SCREENTIP_CONTEXT_LMB] = "Install panel" + return CONTEXTUAL_SCREENTIP_SET + if(FRAME_COMPUTER_STATE_GLASSED) + if(held_item.tool_behaviour == TOOL_CROWBAR) + context[SCREENTIP_CONTEXT_LMB] = "Pry out glass" + return CONTEXTUAL_SCREENTIP_SET + else if(held_item.tool_behaviour == TOOL_SCREWDRIVER) + context[SCREENTIP_CONTEXT_LMB] = "Complete frame" + return CONTEXTUAL_SCREENTIP_SET + +/obj/structure/frame/computer/examine(user) + . = ..() + + switch(state) + if(FRAME_STATE_EMPTY) + . += span_notice("It can be [EXAMINE_HINT("wrenched")] [anchored ? "loose" : "in place"].") + if(anchored) + . += span_warning("It's missing a circuit board.") + . += span_notice("It can be [EXAMINE_HINT("welded")] or [EXAMINE_HINT("screwed")] apart.") + if(FRAME_COMPUTER_STATE_BOARD_INSTALLED) + . += span_warning("An [circuit.name] is installed and should be [EXAMINE_HINT("screwed")] in place.") + . += span_notice("The circuit board can be [EXAMINE_HINT("pried")] out.") + if(FRAME_COMPUTER_STATE_BOARD_SECURED) + . += span_warning("Its requires [EXAMINE_HINT("5 cable")] pieces to wire it.") + . += span_notice("The circuit board can be [EXAMINE_HINT("screwed")] loose.") + if(FRAME_COMPUTER_STATE_WIRED) + . += span_notice("The wires can be cut out with [EXAMINE_HINT("wire cutters")].") + . += span_warning("Its requires [EXAMINE_HINT("2 glass")] sheets to complete the screen.") + if(FRAME_COMPUTER_STATE_GLASSED) + . += span_notice("The screen can be [EXAMINE_HINT("pried")] out.") + . += span_notice("The moniter can be [EXAMINE_HINT("screwed")] to complete it") /obj/structure/frame/computer/circuit_added(obj/item/circuitboard/added) state = FRAME_COMPUTER_STATE_BOARD_INSTALLED @@ -22,7 +108,45 @@ if(state != FRAME_COMPUTER_STATE_EMPTY) balloon_alert(user, "circuit already installed!") return FALSE - return ..() + if(!anchored && istype(board)) + balloon_alert(user, "frame must be anchored!") + return FALSE + . = ..() + if(. && !by_hand) // Installing via RPED auto-secures it + state = FRAME_COMPUTER_STATE_BOARD_SECURED + update_appearance(UPDATE_ICON_STATE) + return . + +/obj/structure/frame/computer/install_parts_from_part_replacer(mob/living/user, obj/item/storage/part_replacer/replacer, no_sound = FALSE) + switch(state) + if(FRAME_COMPUTER_STATE_BOARD_SECURED) + var/obj/item/stack/cable_coil/cable = locate() in replacer + if(isnull(cable)) + return FALSE + + if(add_cabling(user, cable, time = 0)) + if(!no_sound) + replacer.play_rped_sound() + if(replacer.works_from_distance) + user.Beam(src, icon_state = "rped_upgrade", time = 0.5 SECONDS) + no_sound = TRUE + return install_parts_from_part_replacer(user, replacer, no_sound = no_sound) // Recursive call to handle the next part + + return FALSE + + if(FRAME_COMPUTER_STATE_WIRED) + var/obj/item/stack/sheet/glass/glass_sheets = locate() in replacer + if(isnull(glass_sheets)) + return FALSE + + if(add_glass(user, glass_sheets, time = 0)) + if(!no_sound) + replacer.play_rped_sound() + if(replacer.works_from_distance) + user.Beam(src, icon_state = "rped_upgrade", time = 0.5 SECONDS) + return TRUE + + return FALSE /obj/structure/frame/computer/item_interaction(mob/living/user, obj/item/tool, list/modifiers, is_right_clicking) . = ..() @@ -48,11 +172,9 @@ if(istype(tool, /obj/item/storage/part_replacer)) return install_parts_from_part_replacer(user, tool) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_BLOCKING - return . - /obj/structure/frame/computer/screwdriver_act(mob/living/user, obj/item/tool) . = ..() - if(. != NONE) + if(. & ITEM_INTERACT_ANY_BLOCKER) return . switch(state) @@ -83,6 +205,9 @@ return ITEM_INTERACT_BLOCKING /obj/structure/frame/computer/crowbar_act(mob/living/user, obj/item/tool) + if(user.combat_mode) + return NONE + switch(state) if(FRAME_COMPUTER_STATE_BOARD_INSTALLED) tool.play_tool_sound(src) @@ -92,14 +217,12 @@ return ITEM_INTERACT_SUCCESS if(FRAME_COMPUTER_STATE_BOARD_SECURED) - if(!user.combat_mode) - balloon_alert(user, "unsecure the circuit!") - return ITEM_INTERACT_BLOCKING + balloon_alert(user, "unsecure the circuit!") + return ITEM_INTERACT_BLOCKING if(FRAME_COMPUTER_STATE_WIRED) - if(!user.combat_mode) - balloon_alert(user, "remove the wiring!") - return ITEM_INTERACT_BLOCKING + balloon_alert(user, "remove the wiring!") + return ITEM_INTERACT_BLOCKING if(FRAME_COMPUTER_STATE_GLASSED) tool.play_tool_sound(src) @@ -111,38 +234,34 @@ dropped_glass.add_fingerprint(user) return ITEM_INTERACT_SUCCESS -/obj/structure/frame/computer/install_parts_from_part_replacer(mob/living/user, obj/item/storage/part_replacer/replacer, no_sound = FALSE) - switch(state) - if(FRAME_COMPUTER_STATE_BOARD_SECURED) - var/obj/item/stack/cable_coil/cable = locate() in replacer - if(isnull(cable)) - return FALSE - - if(add_cabling(user, cable, time = 0)) - if(!no_sound) - replacer.play_rped_sound() - if(replacer.works_from_distance) - user.Beam(src, icon_state = "rped_upgrade", time = 0.5 SECONDS) - no_sound = TRUE - return install_parts_from_part_replacer(user, replacer, no_sound = no_sound) // Recursive call to handle the next part - - return FALSE +/obj/structure/frame/computer/wirecutter_act(mob/living/user, obj/item/tool) + if(user.combat_mode) + return NONE - if(FRAME_COMPUTER_STATE_WIRED) - var/obj/item/stack/sheet/glass/glass_sheets = locate() in replacer - if(isnull(glass_sheets)) - return FALSE + if(state != FRAME_COMPUTER_STATE_WIRED) + return ITEM_INTERACT_BLOCKING - if(add_glass(user, glass_sheets, time = 0)) - if(!no_sound) - replacer.play_rped_sound() - if(replacer.works_from_distance) - user.Beam(src, icon_state = "rped_upgrade", time = 0.5 SECONDS) - return TRUE + tool.play_tool_sound(src) + balloon_alert(user, "cables removed") + state = FRAME_COMPUTER_STATE_BOARD_SECURED + update_appearance(UPDATE_ICON_STATE) - return FALSE + var/obj/item/stack/cable_coil/dropped_cables = new (drop_location(), 5) + if (!QDELETED(dropped_cables)) + dropped_cables.add_fingerprint(user) + return ITEM_INTERACT_SUCCESS +/** + * Adds cable to the computer to wire it + * Arguments + * + * * mob/living/user - the player who is adding the cable + * * obj/item/stack/cable_coil/cable - the cable we are trying to add + * * time - time taken to complete the operation + */ /obj/structure/frame/computer/proc/add_cabling(mob/living/user, obj/item/stack/cable_coil/cable, time = 2 SECONDS) + PRIVATE_PROC(TRUE) + if(state != FRAME_COMPUTER_STATE_BOARD_SECURED) return FALSE if(!cable.tool_start_check(user, amount = 5)) @@ -156,7 +275,17 @@ update_appearance(UPDATE_ICON_STATE) return TRUE +/** + * Adds glass sheets to the computer to complete the screen + * Arguments + * + * * mob/living/user - the player who is adding the glass + * * obj/item/stack/sheet/glass/glass - the glass we are trying to add + * * time - time taken to complete the operation + */ /obj/structure/frame/computer/proc/add_glass(mob/living/user, obj/item/stack/sheet/glass/glass, time = 2 SECONDS) + PRIVATE_PROC(TRUE) + if(state != FRAME_COMPUTER_STATE_WIRED) return FALSE if(!glass.tool_start_check(user, amount = 2)) @@ -171,22 +300,6 @@ update_appearance(UPDATE_ICON_STATE) return TRUE -/obj/structure/frame/computer/wirecutter_act(mob/living/user, obj/item/tool) - if(state != FRAME_COMPUTER_STATE_WIRED) - return NONE - - tool.play_tool_sound(src) - balloon_alert(user, "cables removed") - state = FRAME_COMPUTER_STATE_BOARD_SECURED - update_appearance(UPDATE_ICON_STATE) - var/obj/item/stack/cable_coil/dropped_cables = new (drop_location(), 5) - if (!QDELETED(dropped_cables)) - dropped_cables.add_fingerprint(user) - return ITEM_INTERACT_SUCCESS - -/obj/structure/frame/computer/AltClick(mob/user) - return ..() // This hotkey is BLACKLISTED since it's used by /datum/component/simple_rotation - /obj/structure/frame/computer/finalize_construction(mob/living/user, obj/item/tool) tool.play_tool_sound(src) var/obj/machinery/new_machine = new circuit.build_path(loc) @@ -221,20 +334,6 @@ qdel(src) return TRUE -/obj/structure/frame/computer/deconstruct(disassembled = TRUE) - if(!(obj_flags & NO_DECONSTRUCTION)) - var/atom/drop_loc = drop_location() - if(state == FRAME_COMPUTER_STATE_GLASSED) - if(disassembled) - new /obj/item/stack/sheet/glass(drop_loc, 2) - else - new /obj/item/shard(drop_loc) - new /obj/item/shard(drop_loc) - if(state >= FRAME_COMPUTER_STATE_WIRED) - new /obj/item/stack/cable_coil(drop_loc, 5) - - return ..() - /// Helpers for rcd /obj/structure/frame/computer/rcd icon = 'icons/hud/radial.dmi' diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 497babd2e42..e624e3f33d7 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -24,7 +24,7 @@ new /obj/item/stack/sheet/iron(drop_loc, 5) circuit?.forceMove(drop_loc) - qdel(src) + return ..() /// Called when circuit has been set to a new board /obj/structure/frame/proc/circuit_added(obj/item/circuitboard/added) @@ -97,13 +97,13 @@ return FALSE /obj/structure/frame/wrench_act(mob/living/user, obj/item/tool) + . = NONE switch(default_unfasten_wrench(user, tool, 4 SECONDS)) if(SUCCESSFUL_UNFASTEN) return ITEM_INTERACT_SUCCESS if(FAILED_UNFASTEN) return ITEM_INTERACT_BLOCKING - - return NONE + return . /obj/structure/frame/item_interaction(mob/living/user, obj/item/tool, list/modifiers, is_right_clicking) . = ..() @@ -201,421 +201,3 @@ */ /obj/structure/frame/proc/install_parts_from_part_replacer(mob/living/user, obj/item/storage/part_replacer/replacer, no_sound = FALSE) return FALSE - -/obj/structure/frame/machine - name = "machine frame" - desc = "The standard frame for most station appliances. Its appearance and function is controlled by the inserted board." - board_type = /obj/item/circuitboard/machine - /// List of all compnents inside the frame contributing to its construction - var/list/components - /// List of all components required to construct the frame - var/list/req_components - /// User-friendly list of names of required components - var/list/req_component_names - -/obj/structure/frame/machine/examine(user) - . = ..() - if(state != FRAME_STATE_BOARD_INSTALLED) - return . - - if(!length(req_components)) - . += span_info("It requires no components.") - return . - - if(!req_component_names) - stack_trace("[src]'s req_components list has items but its req_component_names list is null!") - return . - - var/list/nice_list = list() - for(var/component in req_components) - if(!ispath(component)) - stack_trace("An item in [src]'s req_components list is not a path!") - continue - if(!req_components[component]) - continue - - nice_list += list("[req_components[component]] [req_component_names[component]]\s") - . += span_info("It requires [english_list(nice_list, "no more components")].") - return . - -/** - * Collates the displayed names of the machine's components - * - * Arguments: - * * specific_parts - If true, the component should not use base name, but a specific tier - */ -/obj/structure/frame/machine/proc/update_namelist(specific_parts) - if(!req_components) - return - - req_component_names = list() - for(var/component_path in req_components) - if(!ispath(component_path)) - continue - - if(ispath(component_path, /obj/item/stack)) - var/obj/item/stack/stack_path = component_path - if(initial(stack_path.singular_name)) - req_component_names[component_path] = initial(stack_path.singular_name) - else - req_component_names[component_path] = initial(stack_path.name) - else if(ispath(component_path, /datum/stock_part)) - var/datum/stock_part/stock_part = component_path - var/obj/item/physical_object_type = initial(stock_part.physical_object_type) - - req_component_names[component_path] = initial(physical_object_type.name) - else if(ispath(component_path, /obj/item/stock_parts)) - var/obj/item/stock_parts/stock_part = component_path - - if(!specific_parts && initial(stock_part.base_name)) - req_component_names[component_path] = initial(stock_part.base_name) - else - req_component_names[component_path] = initial(stock_part.name) - else if(ispath(component_path, /obj/item)) - var/obj/item/part = component_path - - req_component_names[component_path] = initial(part.name) - else - stack_trace("Invalid component part [component_path] in [type], couldn't get its name") - req_component_names[component_path] = "[component_path] (this is a bug)" - -/obj/structure/frame/machine/proc/get_req_components_amt() - var/amt = 0 - for(var/path in req_components) - amt += req_components[path] - return amt - -/obj/structure/frame/machine/try_dissassemble(mob/living/user, obj/item/tool, disassemble_time) - if(anchored) - balloon_alert(user, "must be unsecured first!") - return FALSE - return ..() - -/obj/structure/frame/machine/install_board(mob/living/user, obj/item/circuitboard/machine/board, by_hand = TRUE) - if(state == FRAME_STATE_EMPTY) - balloon_alert(user, "needs wiring!") - return FALSE - if(state == FRAME_STATE_BOARD_INSTALLED) - balloon_alert(user, "circuit already installed!") - return FALSE - if(!anchored && istype(board) && board.needs_anchored) - balloon_alert(user, "frame must be anchored!") - return FALSE - - return ..() - -/obj/structure/frame/machine/circuit_added(obj/item/circuitboard/machine/added) - state = FRAME_STATE_BOARD_INSTALLED - update_appearance(UPDATE_ICON_STATE) - //add circuit board as the first component to the list of components - //required for part_replacer to locate it while exchanging parts - //so it does not early return in /obj/machinery/proc/exchange_parts - components = list(circuit) - req_components = added.req_components.Copy() - update_namelist(added.specific_parts) - -/obj/structure/frame/machine/circuit_removed(obj/item/circuitboard/machine/removed) - state = FRAME_STATE_WIRED - update_appearance(UPDATE_ICON_STATE) - -/obj/structure/frame/machine/install_parts_from_part_replacer(mob/living/user, obj/item/storage/part_replacer/replacer, no_sound = FALSE) - if(!length(replacer.contents) || !get_req_components_amt()) - return FALSE - - var/play_sound = FALSE - var/list/part_list = replacer.get_sorted_parts() //parts sorted in order of tier - for(var/path in req_components) - var/target_path - if(ispath(path, /datum/stock_part)) - var/datum/stock_part/datum_part = path - target_path = initial(datum_part.physical_object_base_type) - else - target_path = path - - var/obj/item/part - while(req_components[path] > 0 && (part = look_for(part_list, target_path, ispath(path, /obj/item/stack/ore/bluespace_crystal) ? /obj/item/stack/sheet/bluespace_crystal : null))) - part_list -= part - if(istype(part, /obj/item/stack)) - var/obj/item/stack/S = part - var/used_amt = min(round(S.get_amount()), req_components[path]) - var/stack_name = S.singular_name - if(!used_amt || !S.use(used_amt)) - continue - req_components[path] -= used_amt - // No balloon alert here so they can look back and see what they added - to_chat(user, span_notice("You add [used_amt] [stack_name] to [src].")) - play_sound = TRUE - else if(replacer.atom_storage.attempt_remove(part, src)) - var/stock_part_datum = GLOB.stock_part_datums_per_object[part.type] - if (!isnull(stock_part_datum)) - components += stock_part_datum - qdel(part) - else - components += part - part.forceMove(src) - req_components[path]-- - // No balloon alert here so they can look back and see what they added - to_chat(user, span_notice("You add [part] to [src].")) - play_sound = TRUE - - if(play_sound && !no_sound) - replacer.play_rped_sound() - if(replacer.works_from_distance) - user.Beam(src, icon_state = "rped_upgrade", time = 0.5 SECONDS) - return TRUE - -/** - * Attempts to add the passed part to the frame - * - * Requires no sanity check that the passed part is a stock part - * - * Arguments - * * user - the player - * * tool - the part to add - */ -/obj/structure/frame/machine/proc/add_part(mob/living/user, obj/item/tool) - for(var/stock_part_base in req_components) - if (req_components[stock_part_base] == 0) - continue - - var/stock_part_path - - if(ispath(stock_part_base, /obj/item)) - stock_part_path = stock_part_base - else if(ispath(stock_part_base, /datum/stock_part)) - var/datum/stock_part/stock_part_datum_type = stock_part_base - stock_part_path = initial(stock_part_datum_type.physical_object_type) - else - stack_trace("Bad stock part in req_components: [stock_part_base]") - continue - - //if we require an bluespace crystall and we have an full sheet of them we can allow that - if(ispath(stock_part_path, /obj/item/stack/ore/bluespace_crystal) && istype(tool, /obj/item/stack/sheet/bluespace_crystal)) - //allow it - pass() - else if(!istype(tool, stock_part_path)) - continue - - if(isstack(tool)) - var/obj/item/stack/S = tool - var/used_amt = min(round(S.get_amount()), req_components[stock_part_path]) - if(used_amt && S.use(used_amt)) - req_components[stock_part_path] -= used_amt - // No balloon alert here so they can look back and see what they added - to_chat(user, span_notice("You add [tool] to [src].")) - return - - // We might end up qdel'ing the part if it's a stock part datum. - // In practice, this doesn't have side effects to the name, - // but academically we should not be using an object after it's deleted. - var/part_name = "[tool]" - - if (ispath(stock_part_base, /datum/stock_part)) - // We can't just reuse stock_part_path here or its singleton, - // or else putting in a tier 2 part will deconstruct to a tier 1 part. - var/stock_part_datum = GLOB.stock_part_datums_per_object[tool.type] - if (isnull(stock_part_datum)) - stack_trace("tool.type] does not have an associated stock part datum!") - continue - - components += stock_part_datum - - // We regenerate the stock parts on deconstruct. - // This technically means we lose unique qualities of the stock part, but - // it's worth it for how dramatically this simplifies the code. - // The only place I can see it affecting anything is like...RPG qualities. :P - qdel(tool) - else if(user.transferItemToLoc(tool, src)) - components += tool - else - break - - // No balloon alert here so they can look back and see what they added - to_chat(user, span_notice("You add [part_name] to [src].")) - req_components[stock_part_base]-- - return TRUE - - balloon_alert(user, "can't add that!") - return FALSE - -/** - * Attempt to finalize the construction of the frame into a machine - * as according to our circuit and parts - * - * If successful, results in qdel'ing the frame and newing of a machine - * - * Arguments - * * user - the player - * * tool - the tool used to finalize the construction - */ -/obj/structure/frame/machine/finalize_construction(mob/living/user, obj/item/tool) - for(var/component in req_components) - if(req_components[component] > 0) - user.balloon_alert(user, "missing components!") - return FALSE - - tool.play_tool_sound(src) - var/obj/machinery/new_machine = new circuit.build_path(loc) - if(istype(new_machine)) - new_machine.clear_components() - // Set anchor state - new_machine.set_anchored(anchored) - // Prevent us from dropping stuff thanks to /Exited - var/obj/item/circuitboard/machine/leaving_circuit = circuit - circuit = null - // Assign the circuit & parts & move them all at once into the machine - // no need to seperatly move circuit board as its already part of the components list - new_machine.circuit = leaving_circuit - new_machine.component_parts = components - for (var/obj/new_part in components) - new_part.forceMove(new_machine) - //Inform machine that its finished & cleanup - new_machine.RefreshParts() - new_machine.on_construction(user) - components = null - qdel(src) - return TRUE - -/obj/structure/frame/machine/item_interaction(mob/living/user, obj/item/tool, list/modifiers, is_right_clicking) - . = ..() - if(. & ITEM_INTERACT_ANY_BLOCKER) - return . - - switch(state) - if(FRAME_STATE_EMPTY) - if(istype(tool, /obj/item/stack/cable_coil)) - if(!tool.tool_start_check(user, amount = 5)) - return ITEM_INTERACT_BLOCKING - - balloon_alert(user, "adding cables...") - if(!tool.use_tool(src, user, 2 SECONDS, volume = 50, amount = 5) || state != FRAME_STATE_EMPTY) - return ITEM_INTERACT_BLOCKING - - state = FRAME_STATE_WIRED - update_appearance(UPDATE_ICON_STATE) - return ITEM_INTERACT_SUCCESS - - if(FRAME_STATE_WIRED) - if(isnull(circuit) && istype(tool, /obj/item/storage/part_replacer)) - return install_circuit_from_part_replacer(user, tool) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_BLOCKING - - if(FRAME_STATE_BOARD_INSTALLED) - if(istype(tool, /obj/item/storage/part_replacer)) - return install_parts_from_part_replacer(user, tool) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_BLOCKING - - if(!user.combat_mode) - return add_part(user, tool) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_BLOCKING - - return . - -/obj/structure/frame/machine/screwdriver_act(mob/living/user, obj/item/tool) - . = ..() - if(. & ITEM_INTERACT_ANY_BLOCKER) - return . - if(state != FRAME_STATE_BOARD_INSTALLED) - return . - - if(finalize_construction(user, tool)) - return ITEM_INTERACT_SUCCESS - - return ITEM_INTERACT_BLOCKING - -/obj/structure/frame/machine/can_be_unfasten_wrench(mob/user, silent) - . = ..() - if(. != SUCCESSFUL_UNFASTEN) - return . - - if(circuit?.needs_anchored) - balloon_alert(user, "circuit must be anchored!") - return FAILED_UNFASTEN - - return . - -/obj/structure/frame/machine/wirecutter_act(mob/living/user, obj/item/tool) - if(state != FRAME_STATE_WIRED) - return NONE - - balloon_alert(user, "removing cables...") - if(!tool.use_tool(src, user, 2 SECONDS, volume = 50) || state != FRAME_STATE_WIRED) - return ITEM_INTERACT_BLOCKING - - state = FRAME_STATE_EMPTY - update_appearance(UPDATE_ICON_STATE) - new /obj/item/stack/cable_coil(drop_location(), 5) - return ITEM_INTERACT_SUCCESS - -/obj/structure/frame/machine/crowbar_act(mob/living/user, obj/item/tool) - if(state != FRAME_STATE_BOARD_INSTALLED) - return NONE - - tool.play_tool_sound(src) - var/list/leftover_components = components.Copy() - circuit - dump_contents() - balloon_alert(user, "circuit board[length(leftover_components) ? " and components" : ""] removed") - // Circuit exited handles updating state - return ITEM_INTERACT_SUCCESS - -/obj/structure/frame/machine/Exited(atom/movable/gone, direction) - if(gone == circuit) - components -= circuit - return ..() - -/obj/structure/frame/machine/Destroy() - QDEL_LIST(components) - return ..() - -/** - * Returns the instance of path1 in list, else path2 in list - * - * Arguments - * * parts - the list of parts to search - * * path1 - the first path to search for - * * path2 - the second path to search for, if path1 is not found - */ -/obj/structure/frame/machine/proc/look_for(list/parts, path1, path2) - return (locate(path1) in parts) || (path2 ? (locate(path2) in parts) : null) - -/obj/structure/frame/machine/deconstruct(disassembled = TRUE) - if(!(obj_flags & NO_DECONSTRUCTION)) - if(state >= FRAME_STATE_WIRED) - new /obj/item/stack/cable_coil(drop_location(), 5) - dump_contents() - return ..() - -/obj/structure/frame/machine/dump_contents() - var/atom/drop_loc = drop_location() - - // We need a snowflake check for stack items since they don't exist anymore - for(var/component in circuit?.req_components) - if(!ispath(component, /obj/item/stack)) - continue - var/obj/item/stack/stack_path = component - var/stack_amount = circuit.req_components[component] - req_components[component] - if(stack_amount > 0) - new stack_path(drop_loc, stack_amount) - - // Rest of the stuff can just be spat out (this includes the circuitboard0) - for(var/component in components) - if(ismovable(component)) - var/atom/movable/atom_component = component - atom_component.forceMove(drop_loc) - - else if(istype(component, /datum/stock_part)) - var/datum/stock_part/stock_part_datum = component - var/physical_object_type = initial(stock_part_datum.physical_object_type) - new physical_object_type(drop_loc) - - else - stack_trace("Invalid component [component] was found in constructable frame") - - components = null - req_components = null - req_component_names = null - -/obj/structure/frame/machine/secured - state = FRAME_STATE_WIRED - anchored = TRUE - -/obj/structure/frame/machine/secured/Initialize(mapload) - . = ..() - update_appearance(UPDATE_ICON_STATE) diff --git a/code/game/machinery/machine_frame.dm b/code/game/machinery/machine_frame.dm new file mode 100644 index 00000000000..a3c074937f0 --- /dev/null +++ b/code/game/machinery/machine_frame.dm @@ -0,0 +1,474 @@ +/obj/structure/frame/machine + name = "machine frame" + desc = "The standard frame for most station appliances. Its appearance and function is controlled by the inserted board." + board_type = /obj/item/circuitboard/machine + /// List of all compnents inside the frame contributing to its construction + var/list/components + /// List of all components required to construct the frame + var/list/req_components + /// User-friendly list of names of required components + var/list/req_component_names + +/obj/structure/frame/machine/Initialize(mapload) + . = ..() + register_context() + update_appearance(UPDATE_ICON_STATE) + +/obj/structure/frame/machine/Destroy() + QDEL_LIST(components) + return ..() + +/obj/structure/frame/machine/deconstruct(disassembled = TRUE) + if(!(obj_flags & NO_DECONSTRUCTION)) + if(state >= FRAME_STATE_WIRED) + new /obj/item/stack/cable_coil(drop_location(), 5) + dump_contents() + return ..() + +/obj/structure/frame/machine/try_dissassemble(mob/living/user, obj/item/tool, disassemble_time) + if(anchored) + balloon_alert(user, "must be unsecured first!") + return FALSE + return ..() + +/obj/structure/frame/machine/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = NONE + if(isnull(held_item)) + return + + switch(state) + if(FRAME_STATE_EMPTY) + if(istype(held_item, /obj/item/stack/cable_coil)) + context[SCREENTIP_CONTEXT_LMB] = "Wire Frame" + return CONTEXTUAL_SCREENTIP_SET + else if(held_item.tool_behaviour == TOOL_WRENCH) + context[SCREENTIP_CONTEXT_LMB] = "[anchored ? "Un" : ""]anchor" + return CONTEXTUAL_SCREENTIP_SET + else if(held_item.tool_behaviour == TOOL_WELDER) + context[SCREENTIP_CONTEXT_LMB] = "Unweld frame" + return CONTEXTUAL_SCREENTIP_SET + else if(held_item.tool_behaviour == TOOL_SCREWDRIVER) + context[SCREENTIP_CONTEXT_LMB] = "Disassemble frame" + return CONTEXTUAL_SCREENTIP_SET + if(FRAME_STATE_WIRED) + if(held_item.tool_behaviour == TOOL_WIRECUTTER) + context[SCREENTIP_CONTEXT_LMB] = "Cut wires" + return CONTEXTUAL_SCREENTIP_SET + else if(istype(held_item, board_type)) + context[SCREENTIP_CONTEXT_LMB] = "Insert board" + return CONTEXTUAL_SCREENTIP_SET + if(FRAME_STATE_BOARD_INSTALLED) + if(held_item.tool_behaviour == TOOL_CROWBAR) + context[SCREENTIP_CONTEXT_LMB] = "Pry out components" + return CONTEXTUAL_SCREENTIP_SET + else if(held_item.tool_behaviour == TOOL_WRENCH) + if(!circuit.needs_anchored) + context[SCREENTIP_CONTEXT_LMB] = "[anchored ? "Un" : ""]anchor" + return CONTEXTUAL_SCREENTIP_SET + return NONE + else if(held_item.tool_behaviour == TOOL_SCREWDRIVER) + var/needs_components = FALSE + for(var/component in req_components) + if(!req_components[component]) + continue + needs_components = TRUE + break + if(!needs_components) + context[SCREENTIP_CONTEXT_LMB] = "Complete frame" + return CONTEXTUAL_SCREENTIP_SET + else if(!istype(held_item, /obj/item/storage/part_replacer)) + for(var/component in req_components) + if(!req_components[component]) + continue + var/stock_part_path + if(ispath(component, /obj/item)) + stock_part_path = component + else if(ispath(component, /datum/stock_part)) + var/datum/stock_part/stock_part_datum_type = component + stock_part_path = initial(stock_part_datum_type.physical_object_type) + if(istype(held_item, stock_part_path)) + context[SCREENTIP_CONTEXT_LMB] = "Insert part" + return CONTEXTUAL_SCREENTIP_SET + +/obj/structure/frame/machine/examine(user) + . = ..() + if(!circuit?.needs_anchored) + . += span_notice("It can be [EXAMINE_HINT("anchored")] [anchored ? "loose" : "in place"]") + if(state == FRAME_STATE_EMPTY) + . += span_warning("It needs [EXAMINE_HINT("5 cable")] pieces to wire it.") + return + if(state == FRAME_STATE_WIRED) + . += span_info("Its wires can be cut with a [EXAMINE_HINT("wirecutter")].") + if(state != FRAME_STATE_BOARD_INSTALLED) + . += span_warning("Its missing a circuit board..") + return + if(!length(req_components)) + . += span_info("It requires no components.") + return + + var/list/nice_list = list() + for(var/component in req_components) + if(!req_components[component]) + continue + nice_list += list("[req_components[component]] [req_component_names[component]]\s") + . += span_info("It requires [english_list(nice_list, "no more components")].") + + . += span_info("All the components can be [EXAMINE_HINT("pried")] out.") + if(!length(nice_list)) + . += span_info("The frame can be [EXAMINE_HINT("screwed")] to complete it.") + +/obj/structure/frame/machine/dump_contents() + var/atom/drop_loc = drop_location() + + // We need a snowflake check for stack items since they don't exist anymore + for(var/component in circuit?.req_components) + if(!ispath(component, /obj/item/stack)) + continue + var/obj/item/stack/stack_path = component + var/stack_amount = circuit.req_components[component] - req_components[component] + if(stack_amount > 0) + new stack_path(drop_loc, stack_amount) + + // Rest of the stuff can just be spat out (this includes the circuitboard0) + for(var/component in components) + if(ismovable(component)) + var/atom/movable/atom_component = component + atom_component.forceMove(drop_loc) + + else if(istype(component, /datum/stock_part)) + var/datum/stock_part/stock_part_datum = component + var/physical_object_type = initial(stock_part_datum.physical_object_type) + new physical_object_type(drop_loc) + + else + stack_trace("Invalid component [component] was found in constructable frame") + + components = null + req_components = null + req_component_names = null + +/obj/structure/frame/machine/install_board(mob/living/user, obj/item/circuitboard/machine/board, by_hand = TRUE) + if(state == FRAME_STATE_EMPTY) + balloon_alert(user, "needs wiring!") + return FALSE + if(state == FRAME_STATE_BOARD_INSTALLED) + balloon_alert(user, "circuit already installed!") + return FALSE + if(!anchored && istype(board) && board.needs_anchored) + balloon_alert(user, "frame must be anchored!") + return FALSE + + return ..() + +/obj/structure/frame/machine/circuit_added(obj/item/circuitboard/machine/added) + state = FRAME_STATE_BOARD_INSTALLED + update_appearance(UPDATE_ICON_STATE) + + //add circuit board as the first component to the list of components + //required for part_replacer to locate it while exchanging parts + //so it does not early return in /obj/machinery/proc/exchange_parts + components = list(circuit) + req_components = added.req_components.Copy() + if(!req_components) + return + + //creates a list of names from all the required parts + req_component_names = list() + for(var/component_path in req_components) + if(!ispath(component_path)) + continue + + if(ispath(component_path, /obj/item/stack)) + var/obj/item/stack/stack_path = component_path + if(initial(stack_path.singular_name)) + req_component_names[component_path] = initial(stack_path.singular_name) + else + req_component_names[component_path] = initial(stack_path.name) + else if(ispath(component_path, /datum/stock_part)) + var/datum/stock_part/stock_part = component_path + var/obj/item/physical_object_type = initial(stock_part.physical_object_type) + + req_component_names[component_path] = initial(physical_object_type.name) + else if(ispath(component_path, /obj/item/stock_parts)) + var/obj/item/stock_parts/stock_part = component_path + + if(!added.specific_parts && initial(stock_part.base_name)) + req_component_names[component_path] = initial(stock_part.base_name) + else + req_component_names[component_path] = initial(stock_part.name) + else if(ispath(component_path, /obj/item)) + var/obj/item/part = component_path + + req_component_names[component_path] = initial(part.name) + else + stack_trace("Invalid component part [component_path] in [type], couldn't get its name") + req_component_names[component_path] = "[component_path] (this is a bug)" + +/obj/structure/frame/machine/circuit_removed(obj/item/circuitboard/machine/removed) + components -= removed + state = FRAME_STATE_WIRED + update_appearance(UPDATE_ICON_STATE) + +/** + * Returns the instance of path1 in list, else path2 in list + * + * Arguments + * * parts - the list of parts to search + * * path1 - the first path to search for + * * path2 - the second path to search for, if path1 is not found + */ +/obj/structure/frame/machine/proc/look_for(list/parts, path1, path2) + PRIVATE_PROC(TRUE) + + return (locate(path1) in parts) || (path2 ? (locate(path2) in parts) : null) + +/obj/structure/frame/machine/install_parts_from_part_replacer(mob/living/user, obj/item/storage/part_replacer/replacer, no_sound = FALSE) + if(!length(replacer.contents)) + return FALSE + var/amt = 0 + for(var/path in req_components) + amt += req_components[path] + if(!amt) + return FALSE + + var/play_sound = FALSE + var/list/part_list = replacer.get_sorted_parts() //parts sorted in order of tier + for(var/path in req_components) + var/target_path + if(ispath(path, /datum/stock_part)) + var/datum/stock_part/datum_part = path + target_path = initial(datum_part.physical_object_base_type) + else + target_path = path + + var/obj/item/part + while(req_components[path] > 0 && (part = look_for(part_list, target_path, ispath(path, /obj/item/stack/ore/bluespace_crystal) ? /obj/item/stack/sheet/bluespace_crystal : null))) + part_list -= part + if(istype(part, /obj/item/stack)) + var/obj/item/stack/S = part + var/used_amt = min(round(S.get_amount()), req_components[path]) + var/stack_name = S.singular_name + if(!used_amt || !S.use(used_amt)) + continue + req_components[path] -= used_amt + // No balloon alert here so they can look back and see what they added + to_chat(user, span_notice("You add [used_amt] [stack_name] to [src].")) + play_sound = TRUE + else if(replacer.atom_storage.attempt_remove(part, src)) + var/stock_part_datum = GLOB.stock_part_datums_per_object[part.type] + if (!isnull(stock_part_datum)) + components += stock_part_datum + qdel(part) + else + components += part + part.forceMove(src) + req_components[path]-- + // No balloon alert here so they can look back and see what they added + to_chat(user, span_notice("You add [part] to [src].")) + play_sound = TRUE + + if(play_sound && !no_sound) + replacer.play_rped_sound() + if(replacer.works_from_distance) + user.Beam(src, icon_state = "rped_upgrade", time = 0.5 SECONDS) + return TRUE + +/obj/structure/frame/machine/can_be_unfasten_wrench(mob/user, silent) + . = ..() + if(. != SUCCESSFUL_UNFASTEN) + return . + + if(circuit?.needs_anchored) + balloon_alert(user, "frame must be anchored!") + return FAILED_UNFASTEN + + return . + +/obj/structure/frame/machine/screwdriver_act(mob/living/user, obj/item/tool) + . = ..() + if(. & ITEM_INTERACT_ANY_BLOCKER) + return . + if(state != FRAME_STATE_BOARD_INSTALLED) + return . + + if(finalize_construction(user, tool)) + return ITEM_INTERACT_SUCCESS + + return ITEM_INTERACT_BLOCKING + +/obj/structure/frame/machine/wirecutter_act(mob/living/user, obj/item/tool) + if(user.combat_mode) + return NONE + if(state != FRAME_STATE_WIRED) + return ITEM_INTERACT_BLOCKING + + balloon_alert(user, "removing cables...") + if(!tool.use_tool(src, user, 2 SECONDS, volume = 50) || state != FRAME_STATE_WIRED) + return ITEM_INTERACT_BLOCKING + + state = FRAME_STATE_EMPTY + update_appearance(UPDATE_ICON_STATE) + new /obj/item/stack/cable_coil(drop_location(), 5) + return ITEM_INTERACT_SUCCESS + +/obj/structure/frame/machine/crowbar_act(mob/living/user, obj/item/tool) + if(user.combat_mode) + return NONE + if(state != FRAME_STATE_BOARD_INSTALLED) + return ITEM_INTERACT_BLOCKING + + tool.play_tool_sound(src) + var/list/leftover_components = components.Copy() - circuit + dump_contents() + balloon_alert(user, "circuit board[length(leftover_components) ? " and components" : ""] removed") + // Circuit exited handles updating state + return ITEM_INTERACT_SUCCESS + +/** + * Attempts to add the passed part to the frame + * + * Requires no sanity check that the passed part is a stock part + * + * Arguments + * * user - the player + * * tool - the part to add + */ +/obj/structure/frame/machine/proc/add_part(mob/living/user, obj/item/tool) + PRIVATE_PROC(TRUE) + + for(var/stock_part_base in req_components) + if (req_components[stock_part_base] == 0) + continue + + var/stock_part_path + + if(ispath(stock_part_base, /obj/item)) + stock_part_path = stock_part_base + else if(ispath(stock_part_base, /datum/stock_part)) + var/datum/stock_part/stock_part_datum_type = stock_part_base + stock_part_path = initial(stock_part_datum_type.physical_object_type) + else + stack_trace("Bad stock part in req_components: [stock_part_base]") + continue + + //if we require an bluespace crystall and we have an full sheet of them we can allow that + if(ispath(stock_part_path, /obj/item/stack/ore/bluespace_crystal) && istype(tool, /obj/item/stack/sheet/bluespace_crystal)) + pass() //allow it + else if(!istype(tool, stock_part_path)) + continue + + if(isstack(tool)) + var/obj/item/stack/S = tool + var/used_amt = min(round(S.get_amount()), req_components[stock_part_path]) + if(used_amt && S.use(used_amt)) + req_components[stock_part_path] -= used_amt + // No balloon alert here so they can look back and see what they added + to_chat(user, span_notice("You add [tool] to [src].")) + return + + // We might end up qdel'ing the part if it's a stock part datum. + // In practice, this doesn't have side effects to the name, + // but academically we should not be using an object after it's deleted. + var/part_name = "[tool]" + + if (ispath(stock_part_base, /datum/stock_part)) + // We can't just reuse stock_part_path here or its singleton, + // or else putting in a tier 2 part will deconstruct to a tier 1 part. + var/stock_part_datum = GLOB.stock_part_datums_per_object[tool.type] + if (isnull(stock_part_datum)) + stack_trace("tool.type] does not have an associated stock part datum!") + continue + + components += stock_part_datum + + // We regenerate the stock parts on deconstruct. + // This technically means we lose unique qualities of the stock part, but + // it's worth it for how dramatically this simplifies the code. + // The only place I can see it affecting anything is like...RPG qualities. :P + qdel(tool) + else if(user.transferItemToLoc(tool, src)) + components += tool + else + break + + // No balloon alert here so they can look back and see what they added + to_chat(user, span_notice("You add [part_name] to [src].")) + req_components[stock_part_base]-- + return TRUE + + balloon_alert(user, "can't add that!") + return FALSE + +/obj/structure/frame/machine/item_interaction(mob/living/user, obj/item/tool, list/modifiers, is_right_clicking) + . = ..() + if(. & ITEM_INTERACT_ANY_BLOCKER) + return . + + switch(state) + if(FRAME_STATE_EMPTY) + if(istype(tool, /obj/item/stack/cable_coil)) + if(!tool.tool_start_check(user, amount = 5)) + return ITEM_INTERACT_BLOCKING + + balloon_alert(user, "adding cables...") + if(!tool.use_tool(src, user, 2 SECONDS, volume = 50, amount = 5) || state != FRAME_STATE_EMPTY) + return ITEM_INTERACT_BLOCKING + + state = FRAME_STATE_WIRED + update_appearance(UPDATE_ICON_STATE) + return ITEM_INTERACT_SUCCESS + + if(FRAME_STATE_WIRED) + if(isnull(circuit) && istype(tool, /obj/item/storage/part_replacer)) + return install_circuit_from_part_replacer(user, tool) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_BLOCKING + + if(FRAME_STATE_BOARD_INSTALLED) + if(istype(tool, /obj/item/storage/part_replacer)) + return install_parts_from_part_replacer(user, tool) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_BLOCKING + + if(!user.combat_mode) + return add_part(user, tool) ? ITEM_INTERACT_SUCCESS : ITEM_INTERACT_BLOCKING + + return . + +/** + * Attempt to finalize the construction of the frame into a machine + * as according to our circuit and parts + * + * If successful, results in qdel'ing the frame and newing of a machine + * + * Arguments + * * user - the player + * * tool - the tool used to finalize the construction + */ +/obj/structure/frame/machine/finalize_construction(mob/living/user, obj/item/tool) + for(var/component in req_components) + if(req_components[component] > 0) + user.balloon_alert(user, "missing components!") + return FALSE + + tool.play_tool_sound(src) + var/obj/machinery/new_machine = new circuit.build_path(loc) + if(istype(new_machine)) + new_machine.clear_components() + // Set anchor state + new_machine.set_anchored(anchored) + // Prevent us from dropping stuff thanks to /Exited + var/obj/item/circuitboard/machine/leaving_circuit = circuit + circuit = null + // Assign the circuit & parts & move them all at once into the machine + // no need to seperatly move circuit board as its already part of the components list + new_machine.circuit = leaving_circuit + new_machine.component_parts = components + for (var/obj/new_part in components) + new_part.forceMove(new_machine) + //Inform machine that its finished & cleanup + new_machine.RefreshParts() + new_machine.on_construction(user) + components = null + qdel(src) + return TRUE + +/obj/structure/frame/machine/secured + state = FRAME_STATE_WIRED + anchored = TRUE diff --git a/tgstation.dme b/tgstation.dme index c27a78b7319..2bce85421f1 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2056,6 +2056,7 @@ #include "code\game\machinery\launch_pad.dm" #include "code\game\machinery\lightswitch.dm" #include "code\game\machinery\limbgrower.dm" +#include "code\game\machinery\machine_frame.dm" #include "code\game\machinery\mass_driver.dm" #include "code\game\machinery\mechlaunchpad.dm" #include "code\game\machinery\medical_kiosk.dm" From ee9629e99d81638d7f4db657dea31432fa1677bb Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:20:08 +0300 Subject: [PATCH 11/72] [MIRROR] Gorilla Buffs: King of the Jungle Edition (Funky New Mode!) (#2148) * Gorilla Buffs: King of the Jungle Edition (Funky New Mode!) (#81540) ## About The Pull Request This PR buffs gorillas by making them more formidable threats while also adjusting some of the related traitor items as well. The changes are as listed: - Gorillas now have the same understanding of language as monkeys. They speak and understand monkey, and cannot speak but understand galactic common. - Gorillas are now slightly faster than humanoids when not holding anything. While Usain Bolt may be slightly faster than a gorilla, you are not. - Gorilla damage increased from 18-20 to 25-30. - Object damage doubled, going from 20 to 40. These changes altogether make gorillas much more scary to come across, as they'll be able to outpace you and get to the part where they maim you much quicker. Crewmembers beware! Furthermore, I've done some additional changes to the gorilla-related traitor items as well: - Gorilla cube box is replaced in the uplink by a singular gorilla cube. Due to the changes above, this singular gorilla should be far more useful than the 3 gorillas this item gave prior. The gorilla cube box has been left in for any sort of mapping or admin shenanigans. - Magillitis Serum Autoinjector has been buffed for self-use as a consequence of the above changes, while nerfing its use against other players to make them easier to kill. Additionally, Magillitis Serum Autoinjector now also grants the resulting gorilla a self-regeneration buff which kicks in after 12 seconds of not taking damage. I threw in this additional buff as making yourself into a sentient gorilla pretty much shows everyone you're valid salad, prevents you from using a lot of traitor items and its cost of 15 is quite high. ## Why It's Good For The Game Gorillas are fun, but in previous history we couldn't let them be too powerful since it was relatively easy to mass-produce them via Genetics. Since gorillas are pretty much traitor and admin-event exclusive now, we can do more right by them by allowing them to be more like real-life gorillas: faster than most humans, very powerful, and very scary if you run into one who doesn't like you. ## Changelog :cl: balance: Gorillas are faster, stronger, but not bigger too. Note while holding an item, they are the same speed as they were prior. balance: Gorillas now have the understanding of languages as monkeys do. balance: The Gorilla Cube Box for traitors has been replaced with a singular gorilla cube. Due to the aforementioned changes, this singular gorilla should be as scary if not scarier than 3 gorillas were prior. balance: Magillitis Serum Autoinjector now grants the resulting gorilla a slow passive regeneration effect which kicks in after not taking damage for 12 seconds. /:cl: * Gorilla Buffs: King of the Jungle Edition (Funky New Mode!) --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com> --- .../mob/living/basic/farm_animals/gorilla/gorilla.dm | 11 ++++++----- .../reagents/chemistry/reagents/other_reagents.dm | 3 ++- code/modules/uplink/uplink_items/job.dm | 11 ++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/code/modules/mob/living/basic/farm_animals/gorilla/gorilla.dm b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla.dm index 64cff6780df..e9dc43837ff 100644 --- a/code/modules/mob/living/basic/farm_animals/gorilla/gorilla.dm +++ b/code/modules/mob/living/basic/farm_animals/gorilla/gorilla.dm @@ -16,18 +16,19 @@ mob_biotypes = MOB_ORGANIC|MOB_HUMANOID maxHealth = 220 health = 220 + initial_language_holder = /datum/language_holder/monkey response_help_continuous = "prods" response_help_simple = "prod" response_disarm_continuous = "challenges" response_disarm_simple = "challenge" response_harm_continuous = "thumps" response_harm_simple = "thump" - speed = 0.5 + speed = -0.1 melee_attack_cooldown = CLICK_CD_MELEE - melee_damage_lower = 15 - melee_damage_upper = 18 + melee_damage_lower = 25 + melee_damage_upper = 30 damage_coeff = list(BRUTE = 1, BURN = 1.5, TOX = 1.5, STAMINA = 0, OXY = 1.5) - obj_damage = 20 + obj_damage = 40 attack_verb_continuous = "pummels" attack_verb_simple = "pummel" attack_sound = 'sound/weapons/punch1.ogg' @@ -123,7 +124,7 @@ /// Gorillas are slower when carrying something /datum/movespeed_modifier/gorilla_standing blacklisted_movetypes = (FLYING|FLOATING) - multiplicative_slowdown = 0.5 + multiplicative_slowdown = 1.2 /// A smaller gorilla summoned via magic /mob/living/basic/gorilla/lesser diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index e6ec977fd55..1209ede446b 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -2430,7 +2430,8 @@ /datum/reagent/magillitis/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) . = ..() if((ishuman(affected_mob)) && current_cycle > 10) - affected_mob.gorillize() + var/mob/living/basic/gorilla/new_gorilla = affected_mob.gorillize() + new_gorilla.AddComponent(/datum/component/regenerator, regeneration_delay = 12 SECONDS, brute_per_second = 1.5, outline_colour = COLOR_PALE_GREEN) /datum/reagent/growthserum name = "Growth Serum" diff --git a/code/modules/uplink/uplink_items/job.dm b/code/modules/uplink/uplink_items/job.dm index eaf83e8fabc..4ecf06a129a 100644 --- a/code/modules/uplink/uplink_items/job.dm +++ b/code/modules/uplink/uplink_items/job.dm @@ -156,16 +156,17 @@ /datum/uplink_item/role_restricted/magillitis_serum name = "Magillitis Serum Autoinjector" desc = "A single-use autoinjector which contains an experimental serum that causes rapid muscular growth in Hominidae. \ - Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas." + Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas. \ + Now also contains regenerative chemicals to keep users healthy as they exercise their newfound muscles." item = /obj/item/reagent_containers/hypospray/medipen/magillitis cost = 15 restricted_roles = list(JOB_GENETICIST, JOB_RESEARCH_DIRECTOR) -/datum/uplink_item/role_restricted/gorillacubes - name = "Box of Gorilla Cubes" - desc = "A box with three Waffle Co. brand gorilla cubes. Eat big to get big. \ +/datum/uplink_item/role_restricted/gorillacube + name = "Gorilla Cube" + desc = "A Waffle Co. brand gorilla cube. Eat big to get big. \ Caution: Product may rehydrate when exposed to water." - item = /obj/item/storage/box/gorillacubes + item = /obj/item/food/monkeycube/gorilla cost = 6 restricted_roles = list(JOB_GENETICIST, JOB_RESEARCH_DIRECTOR) From 8e156b5aa239086feea9d677d1b78500eaddae87 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:20:24 +0300 Subject: [PATCH 12/72] [MIRROR] Power crepes are now finger food (#2149) * Power crepes are now finger food (#81599) ## About The Pull Request Power crepes are now finger food, meaning you can eat them while walking. I think this makes sense because the power crepe is massive enough to just take a bite out of while you walk. ## Why It's Good For The Game Power crepes are a very expensive food item, the should at least be easy to eat. ## Changelog :cl: balance: Power crepes are now finger food /:cl: * Power crepes are now finger food --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: TJatPBnJ <69724863+TJatPBnJ@users.noreply.github.com> --- code/game/objects/items/food/misc.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/food/misc.dm b/code/game/objects/items/food/misc.dm index da07843dec3..8cebf7e05aa 100644 --- a/code/game/objects/items/food/misc.dm +++ b/code/game/objects/items/food/misc.dm @@ -246,6 +246,7 @@ w_class = WEIGHT_CLASS_BULKY tastes = list("cherry" = 1, "crepe" = 1) foodtypes = GRAIN | FRUIT | SUGAR + food_flags = FOOD_FINGER_FOOD crafting_complexity = FOOD_COMPLEXITY_5 /obj/item/food/branrequests From c8e18a3150b4740d10a5cf2a968790d69f7a4ebf Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:20:42 +0300 Subject: [PATCH 13/72] [MIRROR] deathmatch ui qol and deathmatch plasmamen are made humans (#2151) * deathmatch ui qol and deathmatch plasmamen are made humans (#81629) ## About The Pull Request ![2024-02-22 18_33_26-Space Station 13](https://github.com/tgstation/tgstation/assets/70376633/3eeb086a-ce07-4677-8ac0-a319ba3e47f6) there is a new option in the loadout dropdown "Randomize", using it picks a random loadout also the UI scrolls now so it can survive more players and plasmamen are set into humans as to not need to create more plasmaman specific outfits ## Why It's Good For The Game player list going out of its section = bug bad plasmamen getting lit on fire instantly and dying = bad Closes #81622 ## Changelog :cl: add: Added an option to deathmatch loadout dropdown that allows you to pick a random loadout fix: In deathmatch, plasmamen are made humans and the UI supports more players /:cl: --------- * deathmatch ui qol and deathmatch plasmamen are made humans --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> --- .../modules/deathmatch/deathmatch_loadouts.dm | 42 ++++++++++--------- code/modules/deathmatch/deathmatch_lobby.dm | 10 ++++- code/modules/deathmatch/deathmatch_maps.dm | 2 +- .../tgui/interfaces/DeathmatchLobby.tsx | 7 ++-- 4 files changed, 36 insertions(+), 25 deletions(-) diff --git a/code/modules/deathmatch/deathmatch_loadouts.dm b/code/modules/deathmatch/deathmatch_loadouts.dm index 480e1975fb9..f994987427e 100644 --- a/code/modules/deathmatch/deathmatch_loadouts.dm +++ b/code/modules/deathmatch/deathmatch_loadouts.dm @@ -17,6 +17,8 @@ if(!isnull(species_override)) user.set_species(species_override) + else if (istype(user.dna.species.outfit_important_for_life)) //plasmamen get lit on fire and die + user.set_species(/datum/species/human) for(var/datum/action/act as anything in granted_spells) var/datum/action/new_ability = new act(user) new_ability.Grant(user) @@ -31,7 +33,7 @@ name = "Deathmatch: Assistant loadout" display_name = "Assistant" desc = "A simple assistant loadout: greyshirt and a toolbox" - + l_hand = /obj/item/storage/toolbox/mechanical uniform = /obj/item/clothing/under/color/grey back = /obj/item/storage/backpack @@ -48,7 +50,7 @@ name = "Deathmatch: Operative" display_name = "Operative" desc = "A syndicate operative." - + uniform = /obj/item/clothing/under/syndicate shoes = /obj/item/clothing/shoes/combat gloves = /obj/item/clothing/gloves/combat @@ -59,7 +61,7 @@ name = "Deathmatch: Ranged Operative" display_name = "Ranged Operative" desc = "A syndicate operative with a gun and a knife." - + l_hand = /obj/item/gun/ballistic/automatic/pistol l_pocket = /obj/item/knife/combat backpack_contents = list(/obj/item/ammo_box/magazine/m9mm = 5) @@ -68,7 +70,7 @@ name = "Deathmatch: Melee Operative" display_name = "Melee Operative" desc = "A syndicate operative with multiple knives." - + gloves = /obj/item/clothing/gloves/tackler/combat/insulated suit = /obj/item/clothing/suit/armor/vest head = /obj/item/clothing/head/helmet @@ -80,7 +82,7 @@ name = "Deathmatch: Security Officer" display_name = "Security Officer" desc = "A security officer." - + uniform = /datum/outfit/job/security::uniform suit = /datum/outfit/job/security::suit suit_store = /datum/outfit/job/security::suit_store @@ -100,7 +102,7 @@ name = "DM: Instagib" display_name = "Instagib" desc = "Assistant with an instakill rifle." - + l_hand = /obj/item/gun/energy/laser/instakill /datum/outfit/deathmatch_loadout/operative/sniper @@ -143,7 +145,7 @@ name = "Deathmatch: Battler Base" display_name = "Battler" desc = "What is a battler whith out weapone?." - + shoes = /obj/item/clothing/shoes/combat uniform = /obj/item/clothing/under/syndicate gloves = /obj/item/clothing/gloves/combat @@ -154,14 +156,14 @@ name = "Deathmatch: Soldier" display_name = "Soldier" desc = "Ready for combat." - + l_hand = /obj/item/gun/ballistic/rifle/boltaction l_pocket = /obj/item/knife/combat uniform = /obj/item/clothing/under/syndicate/rus_army suit = /obj/item/clothing/suit/armor/vest head = /obj/item/clothing/head/helmet/rus_helmet gloves = /obj/item/clothing/gloves/tackler/combat/insulated - + backpack_contents = list( /obj/item/grenade/smokebomb = 2, /obj/item/ammo_box/strilka310 = 2, @@ -199,7 +201,7 @@ name = "Deathmatch: North Star" display_name = "North Star" desc = "flip flip flip" - + uniform = /obj/item/clothing/under/suit/carpskin head = /obj/item/clothing/head/fedora/carpskin gloves = /obj/item/clothing/gloves/rapid @@ -212,7 +214,7 @@ name = "Deathmatch: Janitor" display_name = "Janitor" desc = "Regular work" - + uniform = /obj/item/clothing/under/rank/civilian/janitor suit = /obj/item/clothing/suit/caution head = /obj/item/reagent_containers/cup/bucket @@ -229,7 +231,7 @@ name = "Deathmatch: Surgeon" display_name = "Surgeon" desc = "Treatment has come" - + uniform = /obj/item/clothing/under/rank/medical/scrubs/blue suit = /obj/item/clothing/suit/apron/surgical head = /obj/item/clothing/head/utility/surgerycap @@ -238,7 +240,7 @@ l_pocket = /obj/item/reagent_containers/hypospray/combat r_pocket = /obj/item/reagent_containers/hypospray/medipen/penthrite l_hand = /obj/item/chainsaw - + backpack_contents = list( /obj/item/storage/medkit/tactical, /obj/item/reagent_containers/hypospray/medipen/stimulants, @@ -248,7 +250,7 @@ name = "Deathmatch: Raider" display_name = "Raider" desc = "Not from Shadow Legends" - + l_hand = /obj/item/nullrod/claymore/chainsaw_sword r_pocket = /obj/item/switchblade uniform = /obj/item/clothing/under/costume/jabroni @@ -260,7 +262,7 @@ name = "DM: Clown" display_name = "Clown (Man Of Honk)" desc = "Who called this honking clown" - + uniform = /datum/outfit/job/clown::uniform belt = /datum/outfit/job/clown::belt shoes = /datum/outfit/job/clown::shoes @@ -285,7 +287,7 @@ name = "Deathmatch: Coder" display_name = "Coder" desc = "What" - + l_hand = /obj/item/toy/katana uniform = /obj/item/clothing/under/costume/schoolgirl suit = /obj/item/clothing/suit/costume/joker @@ -299,7 +301,7 @@ name = "Deathmatch: Engineer" display_name = "Engineer" desc = "Meet the engineer" - + l_hand = /obj/item/storage/toolbox/emergency/turret uniform = /obj/item/clothing/under/rank/engineering/engineer shoes = /obj/item/clothing/shoes/magboots @@ -311,7 +313,7 @@ name = "Deathmatch: Scientist" display_name = "Scientist" desc = "What a nerd" - + uniform = /obj/item/clothing/under/rank/rnd/scientist suit = /obj/item/clothing/suit/armor/reactive/stealth mask = /obj/item/clothing/mask/gas @@ -353,7 +355,7 @@ name = "Deathmatch: Ripper" display_name = "Ripper" desc = "Die die die!!!" - + l_hand = /obj/item/gun/ballistic/shotgun/hook r_hand = /obj/item/gun/ballistic/shotgun/hook uniform = /obj/item/clothing/under/costume/skeleton @@ -366,7 +368,7 @@ name = "Deathmatch: Cowboy" display_name = "Cowboy" desc = "Yeehaw partner" - + r_hand = /obj/item/clothing/mask/cigarette/cigar l_hand = /obj/item/melee/curator_whip l_pocket = /obj/item/lighter diff --git a/code/modules/deathmatch/deathmatch_lobby.dm b/code/modules/deathmatch/deathmatch_lobby.dm index 138f639a0a6..e498f662b5e 100644 --- a/code/modules/deathmatch/deathmatch_lobby.dm +++ b/code/modules/deathmatch/deathmatch_lobby.dm @@ -295,6 +295,11 @@ /datum/deathmatch_lobby/ui_state(mob/user) return GLOB.observer_state +/// fills the lobby with fake players for the sake of UI debug, can only be called via VV +/datum/deathmatch_lobby/proc/fakefill(count) + for(var/i = 1 to count) + players["[rand(1,999)]"] = list("mob" = usr, "host" = FALSE, "ready" = FALSE, "loadout" = pick(loadouts)) + /datum/deathmatch_lobby/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, null) if(!ui) @@ -314,7 +319,7 @@ .["admin"] = check_rights_for(user.client, R_ADMIN) .["global_chat"] = global_chat .["playing"] = playing - .["loadouts"] = list() + .["loadouts"] = list("Randomize") for (var/datum/outfit/deathmatch_loadout/loadout as anything in loadouts) .["loadouts"] += initial(loadout.display_name) .["map"] = list() @@ -371,6 +376,9 @@ return FALSE if (params["player"] != usr.ckey && host != usr.ckey) return FALSE + if (params["loadout"] == "Randomize") + players[params["player"]]["loadout"] = pick(loadouts) + return TRUE for (var/datum/outfit/deathmatch_loadout/possible_loadout as anything in loadouts) if (params["loadout"] != initial(possible_loadout.display_name)) continue diff --git a/code/modules/deathmatch/deathmatch_maps.dm b/code/modules/deathmatch/deathmatch_maps.dm index 60594d903bb..d437bffbb3c 100644 --- a/code/modules/deathmatch/deathmatch_maps.dm +++ b/code/modules/deathmatch/deathmatch_maps.dm @@ -107,6 +107,7 @@ desc = "Choose your battler!" max_players = 10 allowed_loadouts = list( + /datum/outfit/deathmatch_loadout/battler/soldier, // First because its a good and easy loadout and is picked by default /datum/outfit/deathmatch_loadout/battler/bloodminer, /datum/outfit/deathmatch_loadout/battler/clown, /datum/outfit/deathmatch_loadout/battler/cowboy, @@ -117,7 +118,6 @@ /datum/outfit/deathmatch_loadout/battler/raider, /datum/outfit/deathmatch_loadout/battler/ripper, /datum/outfit/deathmatch_loadout/battler/scientist, - /datum/outfit/deathmatch_loadout/battler/soldier, /datum/outfit/deathmatch_loadout/battler/surgeon, /datum/outfit/deathmatch_loadout/battler/tgcoder, /datum/outfit/deathmatch_loadout/naked, diff --git a/tgui/packages/tgui/interfaces/DeathmatchLobby.tsx b/tgui/packages/tgui/interfaces/DeathmatchLobby.tsx index 6c1a2221a4d..2e9b8018187 100644 --- a/tgui/packages/tgui/interfaces/DeathmatchLobby.tsx +++ b/tgui/packages/tgui/interfaces/DeathmatchLobby.tsx @@ -44,11 +44,11 @@ type Data = { export const DeathmatchLobby = (props) => { const { act, data } = useBackend(); return ( - + - -
+ +
@@ -148,6 +148,7 @@ export const DeathmatchLobby = (props) => { {data.map.desc} + Maximum Play Time: {`${data.map.time / 600}min`}
From 9de84b7000d4cf17fd0fb400dc9e2bc28092accb Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:22:57 +0300 Subject: [PATCH 14/72] [MIRROR] [NO GBP] RCD converts miscellaneous turf to plating (#2150) * [NO GBP] RCD converts miscellaneous turf to plating (#81628) ## About The Pull Request This was unintentionally changed in #78443. RCD converts turfs like basalt, sand, beach etc to plating first & not put a wall directly on top of them, just like it already does for lava, chasms & space ## Changelog :cl: fix: RCD converts miscellaneous turfs like basalt, sand, beach etc to plating first & not put a wall directly on top of them /:cl: * [NO GBP] RCD converts miscellaneous turf to plating --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> --- code/game/turfs/open/floor.dm | 1 - code/game/turfs/open/misc.dm | 153 ++-------------------------------- 2 files changed, 9 insertions(+), 145 deletions(-) diff --git a/code/game/turfs/open/floor.dm b/code/game/turfs/open/floor.dm index 28a60c83ddb..17d9a41b58a 100644 --- a/code/game/turfs/open/floor.dm +++ b/code/game/turfs/open/floor.dm @@ -201,7 +201,6 @@ /turf/open/floor/acid_melt() ScrapeAway(flags = CHANGETURF_INHERIT_AIR) -/// if you are updating this make to to update /turf/open/misc/rcd_vals() too /turf/open/floor/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) switch(the_rcd.mode) if(RCD_TURF) diff --git a/code/game/turfs/open/misc.dm b/code/game/turfs/open/misc.dm index a704c7f12b1..02de7489786 100644 --- a/code/game/turfs/open/misc.dm +++ b/code/game/turfs/open/misc.dm @@ -76,153 +76,18 @@ return /turf/open/misc/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) - switch(the_rcd.mode) - if(RCD_TURF) - if(the_rcd.rcd_design_path != /turf/open/floor/plating/rcd) - return FALSE - - var/obj/structure/girder/girder = locate() in src - if(girder) - return girder.rcd_vals(user, the_rcd) - - return rcd_result_with_memory( - list("delay" = 2 SECONDS, "cost" = 16), - src, RCD_MEMORY_WALL, - ) - if(RCD_WINDOWGRILLE) - //default cost for building a grill for fulltile windows - var/cost = 4 - var/delay = 1 SECONDS - if(the_rcd.rcd_design_path == /obj/structure/window) - cost = 4 - delay = 2 SECONDS - else if(the_rcd.rcd_design_path == /obj/structure/window/reinforced) - cost = 6 - delay = 2.5 SECONDS - return rcd_result_with_memory( - list("delay" = delay, "cost" = cost), - src, RCD_MEMORY_WINDOWGRILLE, - ) - if(RCD_AIRLOCK) - if(ispath(the_rcd.rcd_design_path, /obj/machinery/door/airlock/glass)) - return list("delay" = 5 SECONDS, "cost" = 20) - else - return list("delay" = 5 SECONDS, "cost" = 16) - if(RCD_STRUCTURE) - var/static/list/structure_costs = list( - /obj/structure/reflector = list("delay" = 2 SECONDS, "cost" = 20), - /obj/structure/girder = list("delay" = 1.3 SECONDS, "cost" = 8), - /obj/structure/frame/machine/secured = list("delay" = 2 SECONDS, "cost" = 20), - /obj/structure/frame/computer/rcd = list("delay" = 2 SECONDS, "cost" = 20), - /obj/structure/floodlight_frame = list("delay" = 3 SECONDS, "cost" = 20), - /obj/structure/chair = list("delay" = 1 SECONDS, "cost" = 4), - /obj/structure/chair/stool/bar = list("delay" = 0.5 SECONDS, "cost" = 4), - /obj/structure/table = list("delay" = 2 SECONDS, "cost" = 8), - /obj/structure/bed = list("delay" = 2.5 SECONDS, "cost" = 8), - /obj/structure/rack = list("delay" = 2.5 SECONDS, "cost" = 4), - ) - - var/list/design_data = structure_costs[the_rcd.rcd_design_path] - if(!isnull(design_data)) - return design_data - - for(var/structure in structure_costs) - if(ispath(the_rcd.rcd_design_path, structure)) - return structure_costs[structure] - + if(the_rcd.mode == RCD_TURF) + if(the_rcd.rcd_design_path != /turf/open/floor/plating/rcd) return FALSE + return list("delay" = 0, "cost" = 3) return FALSE /turf/open/misc/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, list/rcd_data) - switch(rcd_data["[RCD_DESIGN_MODE]"]) - if(RCD_TURF) - if(rcd_data["[RCD_DESIGN_PATH]"] != /turf/open/floor/plating/rcd) - return FALSE - - var/obj/structure/girder/girder = locate() in src - if(girder) - return girder.rcd_act(user, the_rcd, rcd_data) - - place_on_top(/turf/closed/wall) - return TRUE - if(RCD_WINDOWGRILLE) - //check if we are building a window - var/obj/structure/window/window_path = rcd_data["[RCD_DESIGN_PATH]"] - if(!ispath(window_path)) - CRASH("Invalid window path type in RCD: [window_path]") - - //allow directional windows to be built without grills - if(!initial(window_path.fulltile)) - if(!valid_build_direction(src, user.dir, is_fulltile = FALSE)) - balloon_alert(user, "window already here!") - return FALSE - var/obj/structure/window/WD = new window_path(src, user.dir) - WD.set_anchored(TRUE) - return TRUE - - //build grills to deal with full tile windows - if(locate(/obj/structure/grille) in src) - return FALSE - var/obj/structure/grille/new_grille = new(src) - new_grille.set_anchored(TRUE) - return TRUE - if(RCD_AIRLOCK) - var/obj/machinery/door/airlock_type = rcd_data["[RCD_DESIGN_PATH]"] - - if(ispath(airlock_type, /obj/machinery/door/window)) - if(!valid_build_direction(src, user.dir, is_fulltile = FALSE)) - balloon_alert(user, "there's already a windoor!") - return FALSE - for(var/obj/machinery/door/door in src) - if(istype(door, /obj/machinery/door/window)) - continue - balloon_alert(user, "there's already a door!") - return FALSE - //create the assembly and let it finish itself - var/obj/structure/windoor_assembly/assembly = new (src, user.dir) - assembly.secure = ispath(airlock_type, /obj/machinery/door/window/brigdoor) - assembly.electronics = the_rcd.airlock_electronics.create_copy(assembly) - assembly.finish_door() - return TRUE - - for(var/obj/machinery/door/door in src) - if(door.sub_door) - continue - balloon_alert(user, "there's already a door!") - return FALSE - //create the assembly and let it finish itself - var/obj/structure/door_assembly/assembly = new (src) - if(initial(airlock_type.glass)) - assembly.glass = TRUE - assembly.glass_type = airlock_type - else - assembly.airlock_type = airlock_type - assembly.electronics = the_rcd.airlock_electronics.create_copy(assembly) - assembly.finish_door() - return TRUE - if(RCD_STRUCTURE) - var/atom/movable/design_type = rcd_data["[RCD_DESIGN_PATH]"] - - //map absolute types to basic subtypes - var/atom/movable/locate_type = design_type - if(ispath(locate_type, /obj/structure/frame/machine/secured)) - locate_type = /obj/structure/frame/machine - if(ispath(locate_type, /obj/structure/frame/computer/rcd)) - locate_type = /obj/structure/frame/computer - if(ispath(locate_type, /obj/structure/floodlight_frame/completed)) - locate_type = /obj/structure/floodlight_frame - if(locate(locate_type) in src) - return FALSE - - var/atom/movable/design = new design_type(src) - var/static/list/dir_types = list( - /obj/structure/chair, - /obj/structure/table, - /obj/structure/rack, - /obj/structure/bed, - ) - if(is_path_in_list(locate_type, dir_types)) - design.setDir(user.dir) - return TRUE + if(rcd_data["[RCD_DESIGN_MODE]"] == RCD_TURF) + if(rcd_data["[RCD_DESIGN_PATH]"] != /turf/open/floor/plating/rcd) + return FALSE + + place_on_top(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) + return TRUE return FALSE From 2fb42321f8eeadce16f24cdb3ae8ef0f4978275b Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:23:13 +0300 Subject: [PATCH 15/72] [MIRROR] Minor newscaster UI fix (#2152) * Minor newscaster UI fix (#81638) ## About The Pull Request Currently newscasters note "No wanted issue posted. Have a secure day." regardless of whether there's an active wanted issue posted or not. Looking into the code, `Newscaster.jsx` does actually detail an alternate message for when there _is_ an active wanted issue. It's just only active when `wanted.active` holds true, while I believe the `active` it's trying to access cannot be accessed without using `wanted.map(...)`. Making it use `wanted.map(...)` solves this.
Image ![image](https://github.com/tgstation/tgstation/assets/42909981/434d1449-7663-4416-b88a-c1d89e836cd5)
## Why It's Good For The Game Fixes #81600. ## Changelog :cl: fix: Newscasters no longer say "No wanted issue posted. Have a secure day." when there is, in fact, an active wanted issue currently posted. /:cl: * Minor newscaster UI fix --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> --- tgui/packages/tgui/interfaces/Newscaster.jsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tgui/packages/tgui/interfaces/Newscaster.jsx b/tgui/packages/tgui/interfaces/Newscaster.jsx index 431e7d606e6..b3a30eb2bdd 100644 --- a/tgui/packages/tgui/interfaces/Newscaster.jsx +++ b/tgui/packages/tgui/interfaces/Newscaster.jsx @@ -326,9 +326,11 @@ const NewscasterWantedScreen = (props) => { ) : ( - {wanted.active - ? 'Please contact your local security officer if spotted.' - : 'No wanted issue posted. Have a secure day.'} + {wanted.map((activeWanted) => + activeWanted.active + ? 'Please contact your local security officer if spotted.' + : 'No wanted issue posted. Have a secure day.', + )} )} From 891d81a5f32bd4bf636dc403fa8df2d930860221 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:23:27 +0300 Subject: [PATCH 16/72] Cheese Kit Correction (#2157) * Cheese Kit Correction * Cheese Kit Correction But Real This Time * Cheese Kit Correction Comment Co-authored-by: Knouli --- .../modules/deforest_medical_items/code/storage_items.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modular_nova/modules/deforest_medical_items/code/storage_items.dm b/modular_nova/modules/deforest_medical_items/code/storage_items.dm index f66aa7d8bdb..012ba6b32f1 100644 --- a/modular_nova/modules/deforest_medical_items/code/storage_items.dm +++ b/modular_nova/modules/deforest_medical_items/code/storage_items.dm @@ -70,6 +70,8 @@ atom_storage.set_holdable(list( /obj/item/reagent_containers/hypospray/medipen, /obj/item/storage/pill_bottle/prescription_stimulant, + /obj/item/food/cheese/firm_cheese_slice, //It's not called a cheese kit for nothing. + /obj/item/food/cheese/wedge, )) /obj/item/storage/medkit/civil_defense/stocked From b2eb4c40cb1c02d90fbbaa8ffb75033d81310f02 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:24:23 +0300 Subject: [PATCH 17/72] [MIRROR] Fix custom job titles displaying with question mark icons in medical/security records. (#2158) * Fix custom job titles displaying with question mark icons in medical/security records. * Conflict fix * Update types.ts * Update medical.dm --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: SomeRandomOwl <2568378+SomeRandomOwl@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> --- code/game/machinery/computer/records/medical.dm | 1 + code/game/machinery/computer/records/security.dm | 1 + tgui/packages/tgui/interfaces/MedicalRecords/RecordTabs.tsx | 4 ++-- tgui/packages/tgui/interfaces/MedicalRecords/types.ts | 1 + tgui/packages/tgui/interfaces/SecurityRecords/RecordTabs.tsx | 4 ++-- tgui/packages/tgui/interfaces/SecurityRecords/types.ts | 1 + 6 files changed, 8 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/computer/records/medical.dm b/code/game/machinery/computer/records/medical.dm index 71eab88c113..b98117975d6 100644 --- a/code/game/machinery/computer/records/medical.dm +++ b/code/game/machinery/computer/records/medical.dm @@ -65,6 +65,7 @@ quirk_notes = target.quirk_notes, rank = target.rank, species = target.species, + trim = target.trim, // NOVA EDIT ADDITION START - Expanded records! past_medical_records = target.past_medical_records, past_general_records = target.past_general_records, diff --git a/code/game/machinery/computer/records/security.dm b/code/game/machinery/computer/records/security.dm index e30814f231a..6980e764fa8 100644 --- a/code/game/machinery/computer/records/security.dm +++ b/code/game/machinery/computer/records/security.dm @@ -128,6 +128,7 @@ note = target.security_note, rank = target.rank, species = target.species, + trim = target.trim, wanted_status = target.wanted_status, // NOVA EDIT ADDITION - RP Records past_general_records = target.past_general_records, diff --git a/tgui/packages/tgui/interfaces/MedicalRecords/RecordTabs.tsx b/tgui/packages/tgui/interfaces/MedicalRecords/RecordTabs.tsx index 4d08c84ba0b..7aee1f276a8 100644 --- a/tgui/packages/tgui/interfaces/MedicalRecords/RecordTabs.tsx +++ b/tgui/packages/tgui/interfaces/MedicalRecords/RecordTabs.tsx @@ -89,7 +89,7 @@ const CrewTab = (props: { record: MedicalRecord }) => { const { act, data } = useBackend(); const { assigned_view } = data; const { record } = props; - const { crew_ref, name, rank } = record; + const { crew_ref, name, trim } = record; /** Sets the record to preview */ const selectRecord = (record: MedicalRecord) => { @@ -108,7 +108,7 @@ const CrewTab = (props: { record: MedicalRecord }) => { selected={selectedRecord?.crew_ref === crew_ref} > - {name} + {name} ); diff --git a/tgui/packages/tgui/interfaces/MedicalRecords/types.ts b/tgui/packages/tgui/interfaces/MedicalRecords/types.ts index 34fc55ceb61..a80952d2525 100644 --- a/tgui/packages/tgui/interfaces/MedicalRecords/types.ts +++ b/tgui/packages/tgui/interfaces/MedicalRecords/types.ts @@ -26,6 +26,7 @@ export type MedicalRecord = { quirk_notes: string; rank: string; species: string; + trim: string; // NOVA EDIT START - RP Records past_general_records: string; past_medical_records: string; diff --git a/tgui/packages/tgui/interfaces/SecurityRecords/RecordTabs.tsx b/tgui/packages/tgui/interfaces/SecurityRecords/RecordTabs.tsx index 4670d9b06b1..8132027e3e6 100644 --- a/tgui/packages/tgui/interfaces/SecurityRecords/RecordTabs.tsx +++ b/tgui/packages/tgui/interfaces/SecurityRecords/RecordTabs.tsx @@ -91,7 +91,7 @@ const CrewTab = (props: { record: SecurityRecord }) => { const { act, data } = useBackend(); const { assigned_view } = data; const { record } = props; - const { crew_ref, name, rank, wanted_status } = record; + const { crew_ref, name, trim, wanted_status } = record; /** Chooses a record */ const selectRecord = (record: SecurityRecord) => { @@ -112,7 +112,7 @@ const CrewTab = (props: { record: SecurityRecord }) => { selected={isSelected} > - {name} + {name} ); diff --git a/tgui/packages/tgui/interfaces/SecurityRecords/types.ts b/tgui/packages/tgui/interfaces/SecurityRecords/types.ts index 08f21324b50..580cbe85b71 100644 --- a/tgui/packages/tgui/interfaces/SecurityRecords/types.ts +++ b/tgui/packages/tgui/interfaces/SecurityRecords/types.ts @@ -22,6 +22,7 @@ export type SecurityRecord = { note: string; rank: string; species: string; + trim: string; wanted_status: string; voice: string; // NOVA EDIT START - RP Records From 6e7ab313a9bf758ea2c156dc74319f192699f066 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:27:14 +0300 Subject: [PATCH 18/72] [MIRROR] TRAIT_DEAF now works on non-carbon mobs (#2163) * TRAIT_DEAF now works on non-carbon mobs (#81624) ## About The Pull Request This PR makes it so that the `can_hear` proc will return `FALSE` if the proc is called on a non-carbon that has the deaf trait. ## Why It's Good For The Game This makes it so that non-carbon mobs can have the TRAIT_DEAF added to them and it will now work. There isn't anything that would currently utilize this on here. But, I do have a project downstream where TRAIT_DEAF is added to a non-carbon mob. ## Changelog :cl: code: TRAIT_DEAF now works on non-carbon mobs /:cl: --------- * TRAIT_DEAF now works on non-carbon mobs --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> --- code/modules/mob/mob_helpers.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 8c6ebe11496..d2b8ce0f3c3 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -391,7 +391,7 @@ ///Can the mob hear /mob/proc/can_hear() - . = TRUE + return !HAS_TRAIT(src, TRAIT_DEAF) /** * Examine text for traits shared by multiple types. From 7f83a813d0a23c1c036c4a9bfaae6738decbb3e4 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:27:31 +0300 Subject: [PATCH 19/72] [MIRROR] Fugitive Hunters can spawn early if emergency shuttle is called (#2164) * Fugitive Hunters can spawn early if emergency shuttle is called (#81612) ## About The Pull Request In the event of a shuttle call, fugitive hunters will spawn early. (Hunters will still spawn 10 minutes after the fugitives if the shuttle is idle) ## Why It's Good For The Game Hunters are currently able to spawn way too late to ever have a chance to interact with the fugitives, this is lame for both parties involved. ## Changelog :cl: PapaMichael balance: Fugitive hunters will spawn early if the emergency shuttle is called. /:cl: * Fugitive Hunters can spawn early if emergency shuttle is called --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: PapaMichael --- code/modules/events/ghost_role/fugitive_event.dm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/code/modules/events/ghost_role/fugitive_event.dm b/code/modules/events/ghost_role/fugitive_event.dm index 1556eb04558..4b86e751c0b 100644 --- a/code/modules/events/ghost_role/fugitive_event.dm +++ b/code/modules/events/ghost_role/fugitive_event.dm @@ -62,7 +62,7 @@ HUNTER_PACK_BOUNTY, HUNTER_PACK_PSYKER, ) - addtimer(CALLBACK(src, PROC_REF(spawn_hunters), hunter_backstory), 10 MINUTES) + addtimer(CALLBACK(src, PROC_REF(check_spawn_hunters), hunter_backstory, 10 MINUTES), 1 MINUTES) role_name = "fugitive hunter" return SUCCESSFUL_SPAWN @@ -103,7 +103,13 @@ S.put_in_hands(A) new /obj/item/autosurgeon(landing_turf) -//security team gets called in after 10 minutes of prep to find the refugees +/datum/round_event/ghost_role/fugitives/proc/check_spawn_hunters(backstory, remaining_time) + //if the emergency shuttle has been called, spawn hunters now to give them a chance + if(remaining_time == 0 || SSshuttle.emergency.mode != EMERGENCY_IDLE_OR_RECALLED) + spawn_hunters(backstory) + return + addtimer(CALLBACK(src, PROC_REF(check_spawn_hunters), backstory, remaining_time - 1 MINUTES), 1 MINUTES) + /datum/round_event/ghost_role/fugitives/proc/spawn_hunters(backstory) var/list/candidates = SSpolling.poll_ghost_candidates("Do you wish to be considered for a group of [backstory]?", check_jobban = ROLE_FUGITIVE_HUNTER, pic_source = /obj/machinery/sleeper, role_name_text = backstory) shuffle_inplace(candidates) From c4ba0cdb9c9ffd5e06db28a05e79e3a85d07113a Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:27:50 +0300 Subject: [PATCH 20/72] [MIRROR] Smart monkeys now punch instead of bite (#2165) * Smart monkeys now punch instead of bite (#81607) ## About The Pull Request Split this off from https://github.com/tgstation/tgstation/pull/81598 in hopes to keep it as atomic as I can. Brought to you by the same guy that made monkeys able to do human things if they were clever in https://github.com/tgstation/tgstation/pull/70331 you now also punch people if you are an intelligent monkey instead of biting them, because you're now too civilized for such savagery. I also replaced a PASSTABLE with PASSMOB because while it doesn't have any in-game effects currently, it made no sense to check if a mob can pass through a table to know if they should be knocking a mob over. ## Why It's Good For The Game You're an intelligent being now, and you should be acting as such, punching instead of biting sounded like an obvious addition to me but it seems like it got left out and I didn't notice that until now. ## Changelog :cl: qol: Intelligent monkeys now punch people instead of biting them. /:cl: * Smart monkeys now punch instead of bite --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> --- .../carbon/human/species_types/monkeys.dm | 12 ++++++------ code/modules/surgery/bodyparts/parts.dm | 18 +++++++++--------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species_types/monkeys.dm b/code/modules/mob/living/carbon/human/species_types/monkeys.dm index 4de716fe953..1f371d575ac 100644 --- a/code/modules/mob/living/carbon/human/species_types/monkeys.dm +++ b/code/modules/mob/living/carbon/human/species_types/monkeys.dm @@ -42,9 +42,7 @@ ai_controlled_species = TRUE /datum/species/monkey/random_name(gender,unique,lastname) - var/randname = "monkey ([rand(1,999)])" - - return randname + return "monkey ([rand(1, 999)])" /datum/species/monkey/on_species_gain(mob/living/carbon/human/H, datum/species/old_species) . = ..() @@ -170,7 +168,7 @@ /obj/item/organ/internal/brain/primate/on_mob_insert(mob/living/carbon/primate) . = ..() - RegisterSignal(primate, COMSIG_MOVABLE_CROSS, PROC_REF(on_crossed), TRUE) + RegisterSignal(primate, COMSIG_MOVABLE_CROSS, PROC_REF(on_crossed)) /obj/item/organ/internal/brain/primate/on_mob_remove(mob/living/carbon/primate) . = ..() @@ -185,11 +183,13 @@ var/mob/living/in_the_way_mob = crossed if(iscarbon(in_the_way_mob) && !in_the_way_mob.combat_mode) return - if(in_the_way_mob.pass_flags & PASSTABLE) + if(in_the_way_mob.pass_flags & PASSMOB) return in_the_way_mob.knockOver(owner) /obj/item/organ/internal/brain/primate/get_attacking_limb(mob/living/carbon/human/target) - return owner.get_bodypart(BODY_ZONE_HEAD) + if(!HAS_TRAIT(owner, TRAIT_ADVANCEDTOOLUSER)) + return owner.get_bodypart(BODY_ZONE_HEAD) + return ..() #undef MONKEY_SPEC_ATTACK_BITE_MISS_CHANCE diff --git a/code/modules/surgery/bodyparts/parts.dm b/code/modules/surgery/bodyparts/parts.dm index be1a7828c2e..e13fef576ec 100644 --- a/code/modules/surgery/bodyparts/parts.dm +++ b/code/modules/surgery/bodyparts/parts.dm @@ -250,9 +250,9 @@ px_x = -5 px_y = -3 dmg_overlay_type = SPECIES_MONKEY - unarmed_damage_low = 1 /// monkey punches must be really weak, considering they bite people instead and their bites are weak as hell. - unarmed_damage_high = 2 - unarmed_effectiveness = 0 + unarmed_damage_low = 3 + unarmed_damage_high = 8 + unarmed_effectiveness = 5 appendage_noun = "paw" /obj/item/bodypart/arm/left/alien @@ -347,8 +347,8 @@ px_x = 5 px_y = -3 dmg_overlay_type = SPECIES_MONKEY - unarmed_damage_low = 1 - unarmed_damage_high = 2 + unarmed_damage_low = 3 + unarmed_damage_high = 8 unarmed_effectiveness = 0 appendage_noun = "paw" @@ -463,8 +463,8 @@ dmg_overlay_type = SPECIES_MONKEY unarmed_damage_low = 2 unarmed_damage_high = 3 - unarmed_effectiveness = 0 - footprint_sprite = FOOTPRINT_SPRITE_PAWS + unarmed_effectiveness = 5 + footprint_sprite = FOOTPRINT_SPRITE_PAWS /obj/item/bodypart/leg/left/alien icon = 'icons/mob/human/species/alien/bodyparts.dmi' @@ -553,8 +553,8 @@ dmg_overlay_type = SPECIES_MONKEY unarmed_damage_low = 2 unarmed_damage_high = 3 - unarmed_effectiveness = 0 - footprint_sprite = FOOTPRINT_SPRITE_PAWS + unarmed_effectiveness = 5 + footprint_sprite = FOOTPRINT_SPRITE_PAWS /obj/item/bodypart/leg/right/alien icon = 'icons/mob/human/species/alien/bodyparts.dmi' From 60aaaa844abbd4cc8ceefe44b06f40709c6e37a0 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:28:08 +0300 Subject: [PATCH 21/72] [MIRROR] Xenomorph stomachs and vore will no longer destroy items directly, refactored it to use acid_act() (#2166) * Xenomorph stomachs and vore will no longer destroy items directly, refactored it to use acid_act() (#81534) ## About The Pull Request senomorph stomachs and vore will no longer destroy items and mobs directly, refactored it to use acid_act() fixes xenomorph vore accidentally destroying mobs it wasn't supposed to destroy, im thinking this was modified list in place shenanigans ## Why It's Good For The Game this shit is jank as hell and better done this way and results in less weird edge cases, and also makes xenomorphs feel less bullshit ## Changelog :cl: balance: xenomorph stomachs will no longer destroy items directly, refactored it to use acid_act() fix: fixes xenomorph vore accidentally destroying mobs it wasn't supposed to destroy, im thinking this was modified list in place shenanigans /:cl: * Xenomorph stomachs and vore will no longer destroy items directly, refactored it to use acid_act() --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: Iamgoofball --- code/modules/mob/living/carbon/alien/organs.dm | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm index 66f555b639a..a73926b18ae 100644 --- a/code/modules/mob/living/carbon/alien/organs.dm +++ b/code/modules/mob/living/carbon/alien/organs.dm @@ -197,13 +197,7 @@ for(var/atom/movable/thing as anything in stomach_contents) if(!digestable_cache[thing.type]) continue - thing.reagents.trans_to(src, 4) - - if(isliving(thing)) - var/mob/living/lad = thing - lad.adjustBruteLoss(6) - else if(!thing.reagents.total_volume) // Mobs can't get dusted like this, too important - qdel(thing) + thing.acid_act(75, 10) /obj/item/organ/internal/stomach/alien/proc/consume_thing(atom/movable/thing) RegisterSignal(thing, COMSIG_MOVABLE_MOVED, PROC_REF(content_moved)) @@ -211,9 +205,6 @@ if(isliving(thing)) var/mob/living/lad = thing RegisterSignal(thing, COMSIG_LIVING_DEATH, PROC_REF(content_died)) - if(lad.stat == DEAD) - qdel(lad) - return stomach_contents += thing thing.forceMove(owner || src) // We assert that if we have no owner, we will not be nullspaced From f399d975fd1291ba28f67bad2784d24a08fc26e6 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:28:30 +0300 Subject: [PATCH 22/72] [MIRROR] Tram mob throwing adjustments (#2167) * Tram mob throwing adjustments (#81617) ## About The Pull Request - Corrects grille breaking related to PR https://github.com/tgstation/tgstation/pull/81594 - Throw chance moved to a var on the controller instead of hardcoded - Corrects a bit of documentation on tram controller landmarks - Fixes the collision multiplier being set to a static value during malfunction instead of the intended multiplier - Includes throw chance in tram malfunction - Cursed mobs now guaranteed to be thrown ## Changelog :cl: LT3 code: Tram throwing now breaks grilles consistently code: Tram malfunction lethality/throw chance are now a multiplier instead of flat value code: Tram throw chance can be adjusted code: Unlucky trait is now used in tram throw calculation /:cl: --------- * Tram mob throwing adjustments --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/datums/elements/window_smash.dm | 3 +++ code/modules/transport/linear_controller.dm | 3 +++ .../modules/transport/tram/tram_controller.dm | 20 +++++++++++-------- code/modules/transport/transport_module.dm | 3 ++- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/code/datums/elements/window_smash.dm b/code/datums/elements/window_smash.dm index fbe2674b86c..32896d096bf 100644 --- a/code/datums/elements/window_smash.dm +++ b/code/datums/elements/window_smash.dm @@ -24,6 +24,9 @@ for(var/obj/structure/window/window in target_turf) window.smash_and_injure(flying_mob, old_loc, direction) + for(var/obj/structure/grille/grille in target_turf) + grille.smash_and_injure(flying_mob, old_loc, direction) + /datum/element/window_smashing/Detach(datum/source) UnregisterSignal(source, COMSIG_MOVABLE_MOVED) passwindow_off(source, TRAM_PASSENGER_TRAIT) diff --git a/code/modules/transport/linear_controller.dm b/code/modules/transport/linear_controller.dm index dd90562deb6..80c161c3291 100644 --- a/code/modules/transport/linear_controller.dm +++ b/code/modules/transport/linear_controller.dm @@ -35,6 +35,9 @@ ///if true, the platform cannot be manually moved. var/controls_locked = FALSE + /// probability of being thrown hard during an emergency stop + var/throw_chance = 17.5 + /datum/transport_controller/linear/New(obj/structure/transport/linear/transport_module) transport_id = transport_module.transport_id create_modular_set = transport_module.create_modular_set diff --git a/code/modules/transport/tram/tram_controller.dm b/code/modules/transport/tram/tram_controller.dm index c7fc895184f..4dceecbfc4c 100644 --- a/code/modules/transport/tram/tram_controller.dm +++ b/code/modules/transport/tram/tram_controller.dm @@ -17,17 +17,15 @@ var/travel_remaining = 0 ///how far in total we'll be travelling var/travel_trip_length = 0 - ///multiplier on how much damage/force the tram imparts on things it hits var/collision_lethality = 1 - var/obj/effect/landmark/transport/nav_beacon/tram/nav/nav_beacon - /// reference to the destination landmarks we consider ourselves "at" or travelling towards. since we potentially span multiple z levels we dont actually + /// reference to the navigation landmark associated with this tram. since we potentially span multiple z levels we dont actually /// know where on us this platform is. as long as we know THAT its on us we can just move the distance and direction between this /// and the destination landmark. + var/obj/effect/landmark/transport/nav_beacon/tram/nav/nav_beacon + /// reference to the landmark we consider ourself stationary at. var/obj/effect/landmark/transport/nav_beacon/tram/platform/idle_platform - /// reference to the destination landmarks we consider ourselves travelling towards. since we potentially span multiple z levels we dont actually - /// know where on us this platform is. as long as we know THAT its on us we can just move the distance and direction between this - /// and the destination landmark. + /// reference to the destination landmark we consider ourselves travelling towards. var/obj/effect/landmark/transport/nav_beacon/tram/platform/destination_platform var/current_speed = 0 @@ -284,7 +282,11 @@ degraded_stop() return PROCESS_KILL - normal_stop() + if((controller_status & COMM_ERROR) && prob(5)) // malfunctioning tram has a small chance to e-stop + degraded_stop() + else + normal_stop() + return PROCESS_KILL else if(world.time >= scheduled_move) @@ -538,7 +540,8 @@ set_status_code(COMM_ERROR, TRUE) SEND_TRANSPORT_SIGNAL(COMSIG_COMMS_STATUS, src, FALSE) paired_cabinet.generate_repair_signals() - collision_lethality = 1.25 + collision_lethality *= 1.25 + throw_chance *= 1.25 log_transport("TC: [specific_transport_id] starting Tram Malfunction event.") /** @@ -553,6 +556,7 @@ set_status_code(COMM_ERROR, FALSE) paired_cabinet.clear_repair_signals() collision_lethality = initial(collision_lethality) + throw_chance = initial(throw_chance) SEND_TRANSPORT_SIGNAL(COMSIG_COMMS_STATUS, src, TRUE) log_transport("TC: [specific_transport_id] ending Tram Malfunction event.") diff --git a/code/modules/transport/transport_module.dm b/code/modules/transport/transport_module.dm index c33d729e75c..9fdfefc835c 100644 --- a/code/modules/transport/transport_module.dm +++ b/code/modules/transport/transport_module.dm @@ -934,7 +934,8 @@ /obj/structure/transport/linear/tram/proc/estop_throw(throw_direction) for(var/mob/living/passenger in transport_contents) to_chat(passenger, span_userdanger("The tram comes to a sudden, grinding stop!")) - if(prob(17.5)) // sometimes you go through a window + var/mob_throw_chance = transport_controller_datum.throw_chance + if(prob(mob_throw_chance || 17.5) || HAS_TRAIT(passenger, TRAIT_CURSED)) // sometimes you go through a window, especially with bad luck passenger.AddElement(/datum/element/window_smashing, duration = 1.5 SECONDS) var/throw_target = get_edge_target_turf(src, throw_direction) passenger.throw_at(throw_target, 30, 7, force = MOVE_FORCE_OVERPOWERING) From 947038c93d924ffc592748ce803fec10037edfc7 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:28:43 +0300 Subject: [PATCH 23/72] [MIRROR] Make lobby manifest use trim instead of rank to determine command status (#2168) * Make lobby manifest use trim instead of rank to determine command status * Update manifest.dm * Update CrewManifest.jsx * No longer an edit --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> --- code/datums/records/manifest.dm | 4 ++-- tgui/packages/tgui/interfaces/CrewManifest.jsx | 7 ++----- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/code/datums/records/manifest.dm b/code/datums/records/manifest.dm index 1ba59b72d86..4b1aaeda9a5 100644 --- a/code/datums/records/manifest.dm +++ b/code/datums/records/manifest.dm @@ -38,7 +38,7 @@ GLOBAL_DATUM_INIT(manifest, /datum/manifest, new) misc_list[++misc_list.len] = list( "name" = name, "rank" = rank, - "trim" = trim, // NOVA EDIT ADDITION - Alt Titles + "trim" = trim, ) continue for(var/department_type as anything in job.departments_list) @@ -52,7 +52,7 @@ GLOBAL_DATUM_INIT(manifest, /datum/manifest, new) var/list/entry = list( "name" = name, "rank" = rank, - "trim" = trim, // NOVA EDIT ADDITION - Alt Titles + "trim" = trim, ) var/list/department_list = manifest_out[department.department_name] if(istype(job, department.department_head)) diff --git a/tgui/packages/tgui/interfaces/CrewManifest.jsx b/tgui/packages/tgui/interfaces/CrewManifest.jsx index 0241ef5e70b..01ddb4e544f 100644 --- a/tgui/packages/tgui/interfaces/CrewManifest.jsx +++ b/tgui/packages/tgui/interfaces/CrewManifest.jsx @@ -10,12 +10,10 @@ const commandJobs = [ 'Chief Engineer', 'Research Director', 'Chief Medical Officer', - 'Quartermaster', // NOVA EDIT - 'Nanotrasen Consultant', // NOVA EDIT + 'Quartermaster', + 'Nanotrasen Consultant', // NOVA EDIT ADDITION ]; -// NOVA EDIT CHANGE BEGIN - ALTERNATIVE_JOB_TITLES -// Any instance of crewMember.trim was originally crewMember.rank export const CrewManifest = (props) => { const { data: { manifest, positions }, @@ -105,4 +103,3 @@ export const CrewManifest = (props) => { ); }; -// NOVA EDIT CHANGE END - ALTERNATIVE_JOB_TITLES From 297c34d5c43db69e47866e2112fde72c13efaf8b Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:29:03 +0300 Subject: [PATCH 24/72] [MIRROR] Resprites plant grafts (#2170) * Resprites plant grafts (#81688) * Resprites plant grafts --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> --- icons/obj/service/hydroponics/equipment.dmi | Bin 34781 -> 32728 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/service/hydroponics/equipment.dmi b/icons/obj/service/hydroponics/equipment.dmi index ed339a8a4209d93e2844c64cc15e10f00955d9f4..0fcebb3c519882d32715368a42496765b654c27a 100644 GIT binary patch literal 32728 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 (<&}1j?&(D~1@B&2avSH|B}aV?*wV<#qrR6_ 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 DrTdL1 From 6fee8225771f1e0b06e0fdb0c425831d53c0be8c Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:29:19 +0300 Subject: [PATCH 25/72] [MIRROR] Makes vending machines no longer crush chairs - fixed (#2171) * Makes vending machines no longer crush chairs - fixed (#81653) THIS IS A FIXED VERSION OF PR #79775 Does what it says, vending machines no longer damage chairs or conveyors. Likely an unintended side effect of vendor crushes being updated to do integrity damage. ## Why It's Good For The Game ![cbt](https://github.com/tgstation/tgstation/assets/69398298/c4695266-4bf5-4cfb-a51c-0c63e4e71d50) Jokes aside the fact I have this gif below permanently saved to my pc means it's memorable enough to add back in. Not really a thing that's possible to powergame with either, because there are far easier ways of RRing someone, this is just funny enough to be worth it. ## Changelog :cl: add: a list of items called vendor_nocrush that vendors dont deal integrity damage to upon hitting them. fix: Makes vending machines no longer crush chairs and conveyors. /:cl: --------- * Makes vending machines no longer crush chairs - fixed --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: KingkumaArt <69398298+KingkumaArt@users.noreply.github.com> Co-authored-by: san7890 --- code/modules/vending/_vending.dm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 6d269a7ca22..15f95f66a13 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -821,7 +821,7 @@ post_crush_living(living_target, was_alive) flags_to_return |= (SUCCESSFULLY_CRUSHED_MOB|SUCCESSFULLY_CRUSHED_ATOM) - else if (atom_target.uses_integrity && !(atom_target.invisibility > SEE_INVISIBLE_LIVING) && !(is_type_in_typecache(atom_target, GLOB.WALLITEMS_INTERIOR) || is_type_in_typecache(atom_target, GLOB.WALLITEMS_EXTERIOR))) + else if(check_atom_crushable(atom_target)) atom_target.take_damage(adjusted_damage, damage_type, damage_flag, FALSE, crush_dir) crushed = TRUE flags_to_return |= SUCCESSFULLY_CRUSHED_ATOM @@ -861,6 +861,21 @@ /atom/movable/proc/post_tilt() return +/proc/check_atom_crushable(atom/atom_target) + /// Contains structures and items that vendors shouldn't crush when we land on them. + var/static/list/vendor_uncrushable_objects = list( + /obj/structure/chair, + /obj/machinery/conveyor, + ) + GLOB.WALLITEMS_INTERIOR + GLOB.WALLITEMS_EXTERIOR + + if(is_type_in_list(atom_target, vendor_uncrushable_objects)) //make sure its not in the list of "uncrushable" stuff + return FALSE + + if (atom_target.uses_integrity && !(atom_target.invisibility > SEE_INVISIBLE_LIVING)) //check if it has integrity + allow ninjas, etc to be crushed in cloak + return TRUE //SMUSH IT + + return FALSE + /obj/machinery/vending/post_crush_living(mob/living/crushed, was_alive) if(was_alive && crushed.stat == DEAD && crushed.client) From 122f5505a9440a9dd205fcd0dbcb93585220df7d Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:30:27 +0300 Subject: [PATCH 26/72] [MIRROR] "Freshness Jars full of Natural Bait" is now a goodie and costs 200 instead of 2000 (#2173) * "Freshness Jars full of Natural Bait" is now a goodie and costs 200 instead of 2000 (#81555) ## About The Pull Request All other fishing-related packs (fishes are considered livestock) are goodies, and none of them costs anywhere this much. ## Why It's Good For The Game That's some overpriced jar of ~~kronkaine pills (1u)~~ fishing baits. ## Changelog :cl: balance: "Freshness Jars full of Natural Bait" is now a goodie and costs 200 credits instead of 2000 /:cl: * "Freshness Jars full of Natural Bait" is now a goodie and costs 200 instead of 2000 --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/modules/cargo/goodies.dm | 6 ++++++ code/modules/cargo/packs/imports.dm | 7 ------- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/code/modules/cargo/goodies.dm b/code/modules/cargo/goodies.dm index 337dca218ea..fd30973d241 100644 --- a/code/modules/cargo/goodies.dm +++ b/code/modules/cargo/goodies.dm @@ -249,6 +249,12 @@ cost = PAYCHECK_CREW contains = list(/obj/item/bait_can/worm/premium) +/datum/supply_pack/goody/naturalbait + name = "Freshness Jars full of Natural Bait" + desc = "Homemade in the Spinward Sector." + cost = PAYCHECK_CREW * 4 //rock on + contains = list(/obj/item/storage/pill_bottle/naturalbait) + /datum/supply_pack/goody/telescopic_fishing_rod name = "Telescopic Fishing Rod" desc = "A collapsible fishing rod that can fit within a backpack." diff --git a/code/modules/cargo/packs/imports.dm b/code/modules/cargo/packs/imports.dm index 7edfe9e2a9c..fae1e405d3f 100644 --- a/code/modules/cargo/packs/imports.dm +++ b/code/modules/cargo/packs/imports.dm @@ -71,13 +71,6 @@ crate_name = "bananium sheet crate" discountable = SUPPLY_PACK_RARE_DISCOUNTABLE -/datum/supply_pack/imports/naturalbait - name = "Freshness Jars full of Natural Bait" - desc = "Homemade in the Spinward Sector." - cost = 2000 //rock on - contains = list(/obj/item/storage/pill_bottle/naturalbait) - crate_name = "fishing bait crate" - /datum/supply_pack/imports/dumpstercorpse name = "A....Dumpster?" desc = "Why does it smell so bad...." From 339c6bd6015654bad84259c6e0803f9ba0e13162 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:30:42 +0300 Subject: [PATCH 27/72] [MIRROR] Fix: AI Hologram Copying Station Members (#2174) * Fix: AI Hologram Copying Station Members (#81701) ## About The Pull Request This PR fixes a bug which disables the AI hologram's ability to copy the appearance of crew members. Fixes #78403 The bug was caused by developer error in PR #72725 when the typepath `/datum/record/crew` was used to access `GLOB.manifest.locked`, which is a list of `/datum/record/locked`. To fix the bug I replaced the erroneous typepath with `/datum/record/locked`. ## Why It's Good For The Game This PR fixes the broken feature that used to allow the AI to select from the crew records to set its hologram's appearance. ![image](https://github.com/tgstation/tgstation/assets/17753498/f6cdca47-0795-4b41-8c6c-922a38f597ee) ![image](https://github.com/tgstation/tgstation/assets/17753498/bfb49bf6-2842-405c-b88f-70b707f5d109) ## Changelog :cl: A.C.M.O. fix: Fixed the AI hologram's ability to copy the appearance of crew members. /:cl: * Fix: AI Hologram Copying Station Members --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: Dani Glore --- code/modules/mob/living/silicon/ai/ai.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 86465dca120..424f2bbcd1c 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -699,7 +699,7 @@ if("Station Member") var/list/personnel_list = list() - for(var/datum/record/crew/record in GLOB.manifest.locked)//Look in data core locked. + for(var/datum/record/locked/record in GLOB.manifest.locked)//Look in data core locked. personnel_list["[record.name]: [record.rank]"] = record.character_appearance//Pull names, rank, and image. if(!length(personnel_list)) From bb0c167818d0927d66cdd101002c0fa7383ce7d4 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:30:55 +0300 Subject: [PATCH 28/72] [MIRROR] Grilles dont break by just walking into them under any circumstances (#2177) * Grilles dont break by just walking into them under any circumstances (#81594) ## About The Pull Request you can no longer just walk into a grille to destroy it rather fast also single letter variable cleanup from that proc ## Why It's Good For The Game this is a bug and bugs are bad ## Changelog :cl: fix: Grilles dont break by just walking into them under any circumstances /:cl: * Grilles dont break by just walking into them under any circumstances --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: jimmyl <70376633+mc-oofert@users.noreply.github.com> --- code/game/objects/structures/grille.dm | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index fba9d5cecc4..da023942518 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -339,19 +339,19 @@ var/turf/T = get_turf(src) if(T.overfloor_placed)//cant be a floor in the way! return FALSE - // Shocking hurts the grille (to weaken monkey powersinks) - if(prob(50)) + + var/obj/structure/cable/cable_node = T.get_cable_node() + if(isnull(cable_node)) + return FALSE + if(!electrocute_mob(user, cable_node, src, 1, TRUE)) + return FALSE + if(prob(50)) // Shocking hurts the grille (to weaken monkey powersinks) take_damage(1, BURN, FIRE, sound_effect = FALSE) - var/obj/structure/cable/C = T.get_cable_node() - if(C) - if(electrocute_mob(user, C, src, 1, TRUE)) - var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread - s.set_up(3, 1, src) - s.start() - return TRUE - else - return FALSE - return FALSE + var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread + sparks.set_up(3, 1, src) + sparks.start() + + return TRUE /obj/structure/grille/should_atmos_process(datum/gas_mixture/air, exposed_temperature) return exposed_temperature > T0C + 1500 && !broken From d7393503b007082dd27337001bd885a0297a839f Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:31:08 +0300 Subject: [PATCH 29/72] Ruin cleanup pass 1 - Shuttle8532, Cafe, Space Hotel, Interlink(#2178) * Cafe Shuttle8532 icewalker * gemmed necklace * whoopsie daises * cats * smol * Update CentCom_nova_z2.dmm * Update icemoon_underground_icewalker_lower.dmm * Update icemoon_underground_icewalker_lower.dmm * Disposals for Cafe/Interlink * Missing disposals in Hotel * Hotel access * Config updates * Further Cleanup + suggestions * don't think we need double messages * must as well do it for the Ashen too * Update necklace.dm * 1 * to_chat * Apply suggestions from code review * ashiestoo * Refactor this, fix bugs * Update necklace.dm * Update necklace.dm * Fixes second message not displaying * Update necklace.dm * Update necklace.dm * Update necklace.dm * Update modular_nova/modules/primitive_catgirls/code/clothing.dm * This does not belong there --------- Co-authored-by: Zergspower Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> --- _maps/RandomRuins/SpaceRuins/nova/gorilla.dmm | 134 -- .../SpaceRuins/nova/shuttle8532.dmm | 158 +- .../SpaceRuins/nova/spacehotel.dmm | 3 + _maps/map_files/generic/CentCom_nova_z2.dmm | 1396 +++++++++++++---- config/lavaruinblacklist.txt | 3 + config/spaceruinblacklist.txt | 32 +- .../code/modules/clothing/neck/_neck.dm | 3 + .../ashwalkers/code/effects/ash_rituals.dm | 2 +- .../gladiator/code/datums/ruins/lavaland.dm | 9 - modular_nova/modules/mapping/code/icemoon.dm | 4 +- modular_nova/modules/mapping/code/lavaland.dm | 13 +- .../modules/mapping/code/mob_spawns.dm | 1 + modular_nova/modules/mapping/code/space.dm | 75 +- .../modules/modular_items/code/necklace.dm | 62 +- .../research/xenoarch/xenoarch_reward.dm | 3 +- tgstation.dme | 2 +- 16 files changed, 1322 insertions(+), 578 deletions(-) delete mode 100644 _maps/RandomRuins/SpaceRuins/nova/gorilla.dmm create mode 100644 modular_nova/master_files/code/modules/clothing/neck/_neck.dm delete mode 100644 modular_nova/modules/gladiator/code/datums/ruins/lavaland.dm diff --git a/_maps/RandomRuins/SpaceRuins/nova/gorilla.dmm b/_maps/RandomRuins/SpaceRuins/nova/gorilla.dmm deleted file mode 100644 index aecf79a010e..00000000000 --- a/_maps/RandomRuins/SpaceRuins/nova/gorilla.dmm +++ /dev/null @@ -1,134 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/template_noop, -/area/template_noop) -"b" = ( -/obj/structure/chair/sofa/right/brown{ - dir = 4 - }, -/mob/living/basic/gorilla{ - anchored = 1; - dir = 4; - faction = list("neutral") - }, -/turf/open/misc/beach/sand, -/area/ruin/space/has_grav/powered) -"p" = ( -/turf/open/misc/beach/sand, -/area/ruin/space/has_grav/powered) -"t" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/bananalamp, -/turf/open/misc/beach/sand, -/area/ruin/space/has_grav/powered) -"y" = ( -/obj/structure/flora/tree/palm, -/obj/structure/fans/tiny/invisible, -/turf/open/misc/beach/sand, -/area/ruin/space/has_grav/powered) -"C" = ( -/obj/structure/showcase/machinery/tv, -/turf/open/misc/beach/sand, -/area/ruin/space/has_grav/powered) -"H" = ( -/mob/living/basic/pet/dog/corgi{ - anchored = 1 - }, -/obj/structure/bed/dogbed, -/turf/open/misc/beach/sand, -/area/ruin/space/has_grav/powered) -"M" = ( -/obj/structure/fans/tiny/invisible, -/turf/open/misc/beach/sand, -/area/ruin/space/has_grav/powered) -"O" = ( -/obj/item/food/grown/banana, -/obj/item/food/grown/banana, -/obj/item/food/grown/banana, -/obj/item/food/grown/banana, -/obj/item/food/grown/banana, -/obj/item/food/grown/banana, -/obj/item/food/grown/banana, -/obj/item/food/grown/banana, -/obj/item/food/grown/banana, -/obj/item/food/grown/banana, -/obj/item/food/grown/banana, -/obj/item/food/grown/banana, -/obj/structure/closet/secure_closet/freezer/fridge/open, -/turf/open/misc/beach/sand, -/area/ruin/space/has_grav/powered) -"U" = ( -/obj/structure/chair/sofa/left/brown{ - dir = 4 - }, -/turf/open/misc/beach/sand, -/area/ruin/space/has_grav/powered) -"V" = ( -/obj/structure/water_source/puddle, -/obj/structure/fans/tiny/invisible, -/turf/open/misc/beach/sand, -/area/ruin/space/has_grav/powered) - -(1,1,1) = {" -a -a -a -a -a -a -a -"} -(2,1,1) = {" -a -M -M -M -M -y -a -"} -(3,1,1) = {" -a -y -U -b -t -M -a -"} -(4,1,1) = {" -a -V -p -p -p -M -a -"} -(5,1,1) = {" -a -M -O -C -H -M -a -"} -(6,1,1) = {" -a -M -M -M -y -M -a -"} -(7,1,1) = {" -a -a -a -a -a -a -a -"} diff --git a/_maps/RandomRuins/SpaceRuins/nova/shuttle8532.dmm b/_maps/RandomRuins/SpaceRuins/nova/shuttle8532.dmm index 07f76580455..cdb3ee7d85d 100644 --- a/_maps/RandomRuins/SpaceRuins/nova/shuttle8532.dmm +++ b/_maps/RandomRuins/SpaceRuins/nova/shuttle8532.dmm @@ -34,6 +34,7 @@ /obj/machinery/door/poddoor{ id = "abandonedshiphatch" }, +/obj/effect/mapping_helpers/airlock/locked, /turf/open/floor/plating/airless, /area/ruin/space/has_grav/shuttle8532crewquarters) "ay" = ( @@ -74,6 +75,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, /turf/open/floor/plating/airless, /area/ruin/space/has_grav/shuttle8532engineering) +"ba" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/rglass/fifty{ + pixel_y = 6 + }, +/turf/open/floor/iron/airless, +/area/ruin/space/has_grav/shuttle8532engineering) "bo" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/structure/chair/sofa/bench{ @@ -323,6 +332,14 @@ }, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/shuttle8532cargohall) +"gE" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/plastic/fifty{ + pixel_y = 5 + }, +/turf/open/floor/iron/airless, +/area/ruin/space/has_grav/shuttle8532engineering) "gI" = ( /obj/effect/mine/explosive, /obj/effect/decal/cleanable/blood, @@ -353,6 +370,7 @@ /area/ruin/space/has_grav/shuttle8532crewquarters) "hf" = ( /obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/locked, /turf/open/floor/plating, /area/ruin/space/has_grav/shuttle8532bridge) "hh" = ( @@ -411,6 +429,7 @@ /obj/machinery/door/poddoor{ id = "abandonedshiphatch" }, +/obj/effect/mapping_helpers/airlock/locked, /turf/open/floor/plating/airless, /area/ruin/space/has_grav/shuttle8532crewquarters) "iG" = ( @@ -492,7 +511,7 @@ /turf/open/floor/iron/airless, /area/ruin/space/has_grav/shuttle8532researchbay) "jQ" = ( -/turf/closed/wall/r_wall, +/turf/closed/indestructible/syndicate, /area/ruin/space/has_grav/shuttle8532crewquarters) "kp" = ( /obj/structure/lattice/catwalk, @@ -509,7 +528,7 @@ nightshift_light_color = "#FF0000"; pixel_y = 32 }, -/turf/closed/wall/r_wall, +/turf/closed/indestructible/syndicate, /area/ruin/space/has_grav/shuttle8532bridge) "ky" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, @@ -712,7 +731,7 @@ /turf/open/floor/iron/airless, /area/ruin/space/has_grav/shuttle8532bridge) "pu" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/r_wall/syndicate, /area/ruin/space/has_grav/shuttle8532bridge) "py" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -993,7 +1012,7 @@ /area/ruin/space/has_grav/shuttle8532researchbay) "vE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer4, -/turf/closed/wall/r_wall, +/turf/closed/indestructible/syndicate, /area/ruin/space/has_grav/shuttle8532engineering) "vG" = ( /obj/item/stack/cable_coil/cut, @@ -1104,6 +1123,9 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/shuttle8532researchbay) +"xO" = ( +/turf/closed/indestructible/syndicate, +/area/ruin/space/has_grav/shuttle8532bridge) "xR" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/structure/cable, @@ -1175,7 +1197,7 @@ /area/ruin/space/has_grav/shuttle8532crewquarters) "zz" = ( /obj/effect/decal/cleanable/dirt, -/turf/closed/wall/r_wall, +/turf/closed/indestructible/syndicate, /area/ruin/space/has_grav/shuttle8532engineering) "zA" = ( /obj/effect/decal/cleanable/cobweb, @@ -1331,7 +1353,7 @@ dir = 9; system_id = "ship_outer_turrets" }, -/turf/closed/wall/r_wall, +/turf/closed/indestructible/syndicate, /area/ruin/space/has_grav/shuttle8532researchbay) "BR" = ( /obj/item/chair{ @@ -1514,7 +1536,7 @@ nightshift_light_color = "#00FF00"; pixel_y = 32 }, -/turf/closed/wall/r_wall, +/turf/closed/indestructible/syndicate, /area/ruin/space/has_grav/shuttle8532bridge) "EQ" = ( /obj/effect/decal/cleanable/dirt, @@ -1567,6 +1589,12 @@ }, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/shuttle8532cargohall) +"FW" = ( +/mob/living/basic/trooper/syndicate/melee/space/anthro/lizard{ + faction = null + }, +/turf/open/floor/iron/airless, +/area/ruin/space/has_grav/shuttle8532bridge) "Gv" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mob_spawn/corpse/human/syndicatecommando, @@ -1632,11 +1660,10 @@ /turf/open/floor/iron/airless, /area/ruin/space/has_grav/shuttle8532bridge) "HP" = ( -/obj/structure/window/reinforced/fulltile, /obj/machinery/door/poddoor{ id = "abandonedshipbridgeblast" }, -/turf/open/floor/plating, +/turf/closed/indestructible/opsglass, /area/ruin/space/has_grav/shuttle8532bridge) "HW" = ( /obj/effect/decal/cleanable/dirt, @@ -1836,7 +1863,9 @@ /turf/open/floor/engine/airless, /area/ruin/space/has_grav/shuttle8532engineering) "MM" = ( -/mob/living/basic/trooper/syndicate/melee/space, +/mob/living/basic/trooper/syndicate/melee/sword/space/stormtrooper{ + faction = null + }, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/shuttle8532engineering) "MO" = ( @@ -1966,6 +1995,12 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/airless, /area/ruin/space/has_grav/shuttle8532researchbay) +"Pn" = ( +/mob/living/basic/trooper/syndicate/ranged/shotgun/space/stormtrooper/anthro/fox{ + faction = null + }, +/turf/open/floor/iron/airless, +/area/ruin/space/has_grav/shuttle8532bridge) "Ps" = ( /obj/effect/decal/cleanable/blood, /obj/effect/mapping_helpers/broken_floor, @@ -2026,7 +2061,7 @@ /turf/template_noop, /area/template_noop) "QR" = ( -/turf/closed/wall/r_wall, +/turf/closed/indestructible/syndicate, /area/ruin/space/has_grav/shuttle8532engineering) "Ra" = ( /obj/structure/table/reinforced, @@ -2069,7 +2104,7 @@ dir = 5; system_id = "ship_outer_turrets" }, -/turf/closed/wall/r_wall, +/turf/closed/indestructible/syndicate, /area/ruin/space/has_grav/shuttle8532researchbay) "RY" = ( /obj/effect/decal/cleanable/dirt, @@ -2114,7 +2149,7 @@ /turf/open/floor/plating/airless, /area/ruin/space/has_grav/shuttle8532crewquarters) "SJ" = ( -/turf/closed/wall/r_wall, +/turf/closed/indestructible/syndicate, /area/ruin/space/has_grav/shuttle8532researchbay) "Tq" = ( /turf/open/floor/engine/airless, @@ -2183,8 +2218,7 @@ /turf/open/floor/iron/airless, /area/ruin/space/has_grav/shuttle8532bridge) "Uy" = ( -/mob/living/basic/trooper/syndicate/melee/space, -/turf/open/floor/iron/airless, +/turf/closed/wall/r_wall/syndicate/nodiagonal, /area/ruin/space/has_grav/shuttle8532bridge) "UN" = ( /obj/effect/turf_decal/trimline/green/filled/line{ @@ -2272,7 +2306,7 @@ /turf/open/floor/iron/airless, /area/ruin/space/has_grav/shuttle8532researchbay) "Wz" = ( -/turf/closed/wall/r_wall, +/turf/closed/indestructible/syndicate, /area/ruin/space/has_grav/shuttle8532cargohall) "WH" = ( /obj/effect/turf_decal/trimline/blue/filled/line, @@ -2490,7 +2524,7 @@ qb qb kx -pu +xO qb qb qb @@ -2553,7 +2587,7 @@ qb qb by ZK -pu +xO jQ jQ qb @@ -2616,7 +2650,7 @@ qb qb OQ vK -pu +xO Vf jQ qb @@ -2742,7 +2776,7 @@ qb qb ZN bs -pu +xO Fu jQ jQ @@ -2803,9 +2837,9 @@ qb "} (6,1,1) = {" qb -pu +xO EE -pu +xO Lt NJ La @@ -2866,11 +2900,11 @@ qb "} (7,1,1) = {" qb -pu -pu -pu -pu -pu +xO +xO +xO +xO +xO xK jQ jQ @@ -2929,11 +2963,11 @@ qb "} (8,1,1) = {" pu -pu +Uy XQ fp HK -pu +xO cg Hs oR @@ -2994,9 +3028,9 @@ qb pu zA ZU -Uy +Vi ks -pu +xO jQ jQ iy @@ -3057,9 +3091,9 @@ qb HP eV Wq -Vi +Pn ff -pu +xO VB BK DY @@ -3122,7 +3156,7 @@ eV Gv Vi BS -pu +xO sH Ds uq @@ -3185,7 +3219,7 @@ ji Vi NK ps -pu +xO ha Ds wU @@ -3248,7 +3282,7 @@ Ji fn zG Ep -pu +xO RE uK wU @@ -3311,7 +3345,7 @@ eV Vi eC ER -pu +xO UN Ds re @@ -3437,7 +3471,7 @@ eV nd Vj xR -pu +xO uG yz Nx @@ -3500,7 +3534,7 @@ Ra jJ OZ ff -pu +xO RE Ds yv @@ -3563,7 +3597,7 @@ zX Vi Qv Se -pu +xO Ue TM Ip @@ -3623,10 +3657,10 @@ hP (19,1,1) = {" HP eV -Uy +Vi Vi Ux -pu +xO ac TM yv @@ -3687,9 +3721,9 @@ qb HP eV Wq -Vi +FW Hg -pu +xO jh iP ef @@ -3747,12 +3781,12 @@ YO qb "} (21,1,1) = {" -pu +xO eV vS Vi qP -pu +xO jQ jQ aw @@ -3810,12 +3844,12 @@ YO qb "} (22,1,1) = {" -pu -pu +xO +xO Yk Ci HK -pu +xO lt VF NJ @@ -3874,11 +3908,11 @@ ve "} (23,1,1) = {" qb -pu -pu -pu -pu -pu +xO +xO +xO +xO +xO NJ jQ jQ @@ -3939,7 +3973,7 @@ hP ts OQ nx -pu +xO CG Fu Ff @@ -4002,7 +4036,7 @@ qb qb OQ Xu -pu +xO NJ jQ jQ @@ -4128,7 +4162,7 @@ qb qb tP bs -pu +xO Qn jQ qb @@ -4189,9 +4223,9 @@ ve "} (28,1,1) = {" qb -pu +xO ds -pu +xO jQ jQ qb @@ -4242,8 +4276,8 @@ QR QR oJ kL -Yq -JB +gE +ba QR HW Tt @@ -4254,7 +4288,7 @@ hP qb qb EM -pu +xO qb qb qb diff --git a/_maps/RandomRuins/SpaceRuins/nova/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/nova/spacehotel.dmm index c055ff2272c..7c74de2a09d 100644 --- a/_maps/RandomRuins/SpaceRuins/nova/spacehotel.dmm +++ b/_maps/RandomRuins/SpaceRuins/nova/spacehotel.dmm @@ -4478,6 +4478,9 @@ /obj/effect/turf_decal/siding/dark{ dir = 4 }, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, /turf/open/floor/carpet/black, /area/ruin/space/has_grav/hotel) "xD" = ( diff --git a/_maps/map_files/generic/CentCom_nova_z2.dmm b/_maps/map_files/generic/CentCom_nova_z2.dmm index 7f12a58bb35..7a4a72b2015 100644 --- a/_maps/map_files/generic/CentCom_nova_z2.dmm +++ b/_maps/map_files/generic/CentCom_nova_z2.dmm @@ -41,6 +41,13 @@ }, /turf/open/floor/fakebasalt, /area/centcom/holding/cafepark) +"abV" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "cafesposals" + }, +/turf/open/indestructible/plating, +/area/centcom/holding/cafe) "abZ" = ( /obj/machinery/vending/clothing, /obj/effect/turf_decal/bot, @@ -82,7 +89,10 @@ /area/centcom/holding/cafe) "adU" = ( /obj/effect/turf_decal/delivery, -/obj/structure/closet/crate/bin, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, /turf/open/floor/iron, /area/centcom/interlink) "aer" = ( @@ -329,6 +339,7 @@ /obj/item/tank/internals/plasmaman/belt/full, /obj/item/tank/internals/plasmaman/belt/full, /obj/item/tank/internals/plasmaman/belt/full, +/obj/structure/disposalpipe/segment, /turf/open/indestructible/hotelwood, /area/centcom/holding/cafe) "ahI" = ( @@ -738,6 +749,15 @@ "amx" = ( /turf/closed/wall/mineral/stone, /area/centcom/holding/cafepark) +"amA" = ( +/obj/effect/turf_decal/trimline/dark_green/filled/warning{ + dir = 1 + }, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 4 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "amD" = ( /obj/structure/sink/directional/east, /obj/machinery/button/door{ @@ -938,7 +958,11 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 6 }, -/obj/structure/closet/crate/bin, +/obj/effect/turf_decal/delivery, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, /turf/open/indestructible/hoteltile{ icon_state = "floor" }, @@ -1116,7 +1140,6 @@ /turf/open/misc/grass/planet, /area/centcom/holding/cafepark) "aqX" = ( -/obj/structure/closet/crate/bin, /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -1131,6 +1154,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, /turf/open/indestructible/hoteltile{ icon_state = "floor" }, @@ -1406,6 +1433,10 @@ pixel_y = 16; pixel_x = -2 }, +/obj/item/clothing/neck/necklace/translator/hearthkin, +/obj/item/clothing/neck/necklace/translator/hearthkin, +/obj/item/clothing/neck/necklace/translator/hearthkin, +/obj/item/clothing/neck/necklace/translator/hearthkin, /turf/open/indestructible/hotelwood, /area/centcom/holding/cafepark) "avn" = ( @@ -1700,6 +1731,9 @@ }, /obj/effect/turf_decal/trimline/blue/filled/line, /obj/machinery/light/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/indestructible/hoteltile{ icon_state = "floor" }, @@ -2038,6 +2072,9 @@ /obj/effect/turf_decal/weather/dirt{ dir = 8 }, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, /turf/open/indestructible/plating, /area/centcom/holding/cafepark) "aBd" = ( @@ -2120,6 +2157,7 @@ dir = 1 }, /obj/machinery/light/directional/north, +/obj/structure/disposalpipe/segment, /turf/open/indestructible/hoteltile{ icon_state = "floor" }, @@ -2263,6 +2301,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/open/indestructible/hoteltile{ icon_state = "floor" }, @@ -2506,6 +2545,7 @@ /obj/effect/spawner/random/bedsheet/double, /obj/effect/spawner/random/bedsheet/double, /obj/effect/spawner/random/bedsheet/double, +/obj/structure/disposalpipe/segment, /turf/open/indestructible/hotelwood, /area/centcom/holding/cafe) "aHb" = ( @@ -2762,6 +2802,12 @@ "aKc" = ( /turf/open/indestructible/cobble/side, /area/centcom/holding/cafepark) +"aKp" = ( +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/indestructible/hotelwood, +/area/centcom/holding/cafe) "aKu" = ( /obj/structure/flora/bush/jungle/b, /turf/open/misc/grass/planet, @@ -3873,6 +3919,7 @@ /obj/item/clothing/mask/breath/vox, /obj/item/clothing/mask/breath/vox, /obj/item/clothing/mask/breath/vox, +/obj/structure/disposalpipe/segment, /turf/open/indestructible/hotelwood, /area/centcom/holding/cafe) "aWi" = ( @@ -3906,6 +3953,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/structure/disposalpipe/segment, /turf/open/indestructible/hoteltile{ icon_state = "floor" }, @@ -4262,6 +4310,15 @@ }, /turf/open/floor/carpet, /area/centcom/holding/cafe) +"bif" = ( +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/turf/open/indestructible/plating, +/area/centcom/holding/cafe) "bit" = ( /obj/machinery/door/airlock{ id_tag = "room7"; @@ -4335,6 +4392,9 @@ dir = 1 }, /obj/effect/landmark/latejoin, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron, /area/centcom/interlink) "blD" = ( @@ -4389,6 +4449,11 @@ }, /turf/open/floor/iron, /area/centcom/interlink) +"bpP" = ( +/obj/machinery/light/directional/east, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/centcom/interlink) "bqc" = ( /obj/structure/table/wood, /obj/effect/turf_decal/siding/wood{ @@ -4521,6 +4586,15 @@ }, /turf/open/floor/bamboo, /area/centcom/holding/cafe) +"bAX" = ( +/obj/effect/turf_decal/trimline/dark_green/filled/warning{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "bBV" = ( /obj/structure/showcase/fakeid{ dir = 4 @@ -4617,6 +4691,17 @@ /obj/machinery/biogenerator, /turf/closed/indestructible/wood, /area/centcom/holding/cafe) +"bIs" = ( +/obj/effect/turf_decal/trimline/dark_green/filled/corner, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/centcom/interlink) +"bIG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "bIL" = ( /obj/effect/turf_decal/tile/purple/anticorner/contrasted{ dir = 4 @@ -5258,6 +5343,15 @@ }, /turf/open/indestructible/carpet, /area/centcom/holding/cafe) +"cHy" = ( +/obj/effect/turf_decal/siding/dark{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "cHY" = ( /obj/effect/turf_decal/weather/dirt{ dir = 6 @@ -5295,6 +5389,13 @@ /obj/effect/turf_decal/delivery/blue, /turf/open/floor/iron, /area/centcom/interlink) +"cMd" = ( +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plating, +/area/centcom/interlink) "cMh" = ( /obj/structure/table/wood, /obj/item/clipboard, @@ -5558,6 +5659,11 @@ /obj/machinery/duct, /turf/open/floor/iron/white, /area/centcom/interlink) +"dkH" = ( +/obj/structure/chair/stool/bar/directional/north, +/obj/structure/disposalpipe/segment, +/turf/open/indestructible/hotelwood, +/area/centcom/holding/cafe) "dkR" = ( /obj/effect/light_emitter/interlink, /obj/effect/turf_decal/weather/dirt{ @@ -6202,6 +6308,16 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark, /area/centcom/interlink) +"eGs" = ( +/obj/machinery/recycler{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "intersposals" + }, +/turf/open/floor/plating, +/area/centcom/interlink) "eHo" = ( /obj/effect/turf_decal/siding/dark{ dir = 1 @@ -6304,6 +6420,22 @@ /obj/effect/landmark/latejoin, /turf/open/floor/iron/dark, /area/centcom/interlink) +"ePa" = ( +/obj/effect/turf_decal/box, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/wood/glass{ + desc = "A strange small bar. It's actually remarkably close to Space Station 13."; + name = "The Snoozy Floofer" + }, +/obj/structure/fans/tiny/invisible, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/indestructible/hoteltile{ + icon_state = "darkfull" + }, +/area/centcom/holding/cafe) "ePw" = ( /obj/effect/turf_decal/siding/white{ dir = 8 @@ -6357,6 +6489,20 @@ /obj/structure/chair/stool/bar/directional/west, /turf/open/floor/iron, /area/centcom/interlink) +"eXn" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "intersposals" + }, +/turf/open/floor/plating, +/area/centcom/interlink) +"eXw" = ( +/obj/effect/turf_decal/trimline/dark_green/filled/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/centcom/interlink) "eYD" = ( /obj/structure/closet/secure_closet/brig{ id = "Cell 3"; @@ -6505,10 +6651,23 @@ /obj/structure/wall_torch/spawns_lit/directional/east, /turf/open/indestructible/hotelwood, /area/centcom/holding/cafepark) +"fkF" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Interlink Shuttle" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/centcom/interlink) "fmq" = ( /obj/structure/frame/computer, /turf/open/floor/plating, /area/centcom/interlink) +"fmr" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/indestructible/hotelwood, +/area/centcom/holding/cafe) "foq" = ( /obj/structure/sign/poster/official/cleanliness/directional/east, /obj/structure/noticeboard/directional/north, @@ -6530,10 +6689,11 @@ /turf/open/indestructible/hotelwood, /area/centcom/holding/cafe) "fov" = ( -/turf/closed/indestructible/fakedoor{ - desc = "Why would you want to go back, you just got here!"; - name = "Central Command Dock" +/obj/machinery/door/airlock/hatch{ + name = "Custodial Closet" }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, /area/centcom/interlink) "foI" = ( /obj/machinery/status_display/evac/directional/north, @@ -6738,6 +6898,14 @@ }, /turf/open/indestructible/hotelwood, /area/centcom/holding/cafe) +"fLG" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/centcom/interlink) "fMM" = ( /obj/machinery/duct, /turf/open/floor/iron/dark, @@ -6926,6 +7094,16 @@ }, /turf/open/floor/wood, /area/centcom/holding/cafepark) +"gcJ" = ( +/obj/machinery/recycler{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 4; + id = "cafesposals" + }, +/turf/open/indestructible/plating, +/area/centcom/holding/cafe) "gdL" = ( /obj/structure/towel_bin, /obj/structure/table/wood, @@ -7142,6 +7320,15 @@ }, /turf/open/floor/wood, /area/centcom/interlink/dorm_rooms) +"guN" = ( +/obj/effect/turf_decal/trimline/dark_green/filled/corner{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "gxF" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/turf_decal/siding/wood{ @@ -7165,6 +7352,9 @@ /obj/effect/turf_decal/trimline/dark_green/filled/line{ dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron, /area/centcom/interlink) "gyS" = ( @@ -7247,6 +7437,10 @@ }, /turf/open/floor/iron/dark, /area/centcom/interlink) +"gLS" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/indestructible/steel, +/area/centcom/holding/cafe) "gMw" = ( /turf/closed/wall/mineral/sandstone, /area/centcom/holding/cafedorms) @@ -7348,6 +7542,12 @@ /obj/structure/flora/bush/jungle/b, /turf/open/misc/grass/planet, /area/centcom/holding/cafepark) +"gWk" = ( +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/centcom/interlink) "gWT" = ( /obj/structure/table/wood, /obj/item/toy/cards/deck/cas/black, @@ -7365,6 +7565,10 @@ /area/centcom/interlink) "gZK" = ( /obj/structure/table/wood, +/obj/item/clothing/neck/necklace/translator, +/obj/item/clothing/neck/necklace/translator, +/obj/item/clothing/neck/necklace/translator, +/obj/item/clothing/neck/necklace/translator, /turf/open/floor/fakebasalt, /area/centcom/holding/cafepark) "gZM" = ( @@ -7656,6 +7860,12 @@ /obj/effect/landmark/latejoin, /turf/open/floor/mineral/titanium, /area/centcom/interlink) +"huK" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/centcom/interlink) "hvy" = ( /obj/machinery/door/poddoor/shuttledock/interlink, /turf/open/floor/plating, @@ -8077,6 +8287,15 @@ "iki" = ( /turf/open/floor/carpet, /area/centcom/holding/cafe) +"ikj" = ( +/obj/effect/turf_decal/trimline/dark_green/filled/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "ikl" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 6 @@ -8134,6 +8353,9 @@ /obj/effect/turf_decal/trimline/dark_green/filled/warning{ dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron, /area/centcom/interlink) "iov" = ( @@ -8317,6 +8539,25 @@ /obj/structure/fireplace, /turf/open/floor/iron/dark, /area/centcom/interlink) +"iEh" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/open/indestructible/hoteltile{ + icon_state = "floor" + }, +/area/centcom/holding/cafe) "iFq" = ( /obj/effect/turf_decal/bot, /obj/structure/table, @@ -8353,6 +8594,15 @@ }, /turf/open/floor/iron, /area/centcom/interlink) +"iJk" = ( +/obj/effect/turf_decal/trimline/dark_green/filled/warning{ + dir = 1 + }, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 1 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "iJK" = ( /obj/structure/flora/bush/jungle/a, /turf/open/misc/grass/planet, @@ -8437,6 +8687,9 @@ /obj/effect/turf_decal/siding/wood{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, /turf/open/indestructible/hotelwood, /area/centcom/holding/cafepark) "iUg" = ( @@ -8598,6 +8851,13 @@ }, /turf/open/indestructible/plating, /area/centcom/holding/cafepark) +"jfB" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "cargodisposals"; + name = "disposals conveyor switch" + }, +/turf/open/floor/plating, +/area/centcom/interlink) "jgg" = ( /obj/machinery/light/directional/east, /turf/open/floor/iron, @@ -8694,10 +8954,21 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, /area/centcom/interlink) +"joj" = ( +/obj/structure/disposalpipe/segment, +/turf/open/misc/dirt/planet, +/area/centcom/holding/cafepark) "joE" = ( /obj/structure/chair/sofa/corp/left, /turf/open/floor/iron/cafeteria, /area/centcom/interlink) +"jpm" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, +/area/centcom/interlink) "jqm" = ( /obj/structure/closet/crate/freezer/blood, /obj/effect/turf_decal/bot_blue, @@ -8715,11 +8986,14 @@ /area/centcom/interlink) "jsN" = ( /obj/machinery/light/directional/east, -/obj/structure/closet/crate/bin, /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/trimline/dark_green/filled/line{ dir = 4 }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, /turf/open/floor/iron, /area/centcom/interlink) "jsY" = ( @@ -8828,6 +9102,24 @@ }, /turf/open/floor/wood, /area/centcom/holding/cafedorms) +"jCs" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/indestructible/hoteltile{ + icon_state = "floor" + }, +/area/centcom/holding/cafe) "jDf" = ( /obj/structure/table/bronze, /obj/structure/stone_tile/block/burnt, @@ -8906,6 +9198,15 @@ /obj/structure/bed/pod, /turf/open/floor/iron, /area/centcom/interlink) +"jMh" = ( +/obj/effect/turf_decal/trimline/dark_green/filled/warning{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "jNB" = ( /obj/machinery/light/floor{ alpha = 0; @@ -9046,6 +9347,14 @@ /obj/machinery/light/small/directional/east, /turf/open/indestructible/hotelwood, /area/centcom/holding/cafepark) +"kam" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 2 + }, +/turf/open/floor/iron/dark, +/area/centcom/interlink) "kdo" = ( /obj/structure/hedge/opaque, /obj/structure/curtain/cloth/fancy/mechanical{ @@ -9372,6 +9681,15 @@ icon_state = "white" }, /area/centcom/holding/cafepark) +"kJA" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/indestructible/hoteltile{ + icon_state = "floor" + }, +/area/centcom/holding/cafe) "kJL" = ( /obj/item/flashlight/flare/candle/infinite{ pixel_x = 9; @@ -9398,6 +9716,9 @@ /obj/machinery/computer/records/security{ dir = 8 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron/dark/textured_large, /area/centcom/interlink) "kKs" = ( @@ -9447,6 +9768,12 @@ }, /turf/open/misc/grass/planet, /area/centcom/holding/cafepark) +"kNb" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "kNd" = ( /obj/effect/mapping_helpers/airlock/access/all/service/kitchen, /obj/machinery/door/airlock/service{ @@ -9515,6 +9842,12 @@ /obj/machinery/light/warm/directional/north, /turf/open/floor/iron/dark, /area/centcom/interlink) +"kTY" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "kWb" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -9535,6 +9868,9 @@ /turf/open/floor/iron/dark, /area/centcom/interlink) "kWH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron/grimy, /area/centcom/interlink) "kWI" = ( @@ -9791,6 +10127,10 @@ /obj/machinery/vending/boozeomat/cafe, /turf/open/indestructible/hotelwood, /area/centcom/holding/cafe) +"lnY" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/centcom/interlink) "loR" = ( /obj/structure/railing/corner{ dir = 4 @@ -9865,6 +10205,24 @@ }, /turf/open/floor/iron/white, /area/centcom/interlink) +"lyP" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/indestructible/hoteltile{ + icon_state = "floor" + }, +/area/centcom/holding/cafepark) "lzk" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 8 @@ -9897,6 +10255,15 @@ }, /turf/open/misc/dirt/planet, /area/centcom/holding/cafepark) +"lBC" = ( +/obj/effect/turf_decal/trimline/dark_green/filled/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "lCi" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/window/reinforced/spawner/directional/north{ @@ -9971,6 +10338,13 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/centcom/interlink) +"lIt" = ( +/obj/effect/turf_decal/trimline/dark_green/filled/corner, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "lIy" = ( /obj/structure/chair/sofa/right/brown{ dir = 1 @@ -10195,6 +10569,7 @@ /obj/effect/turf_decal/weather/dirt{ dir = 9 }, +/obj/structure/disposalpipe/segment, /turf/open/indestructible/plating, /area/centcom/holding/cafepark) "mfN" = ( @@ -10228,6 +10603,9 @@ }, /obj/effect/mapping_helpers/airlock/access/all/security/general, /obj/effect/turf_decal/delivery/white, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron/dark/textured_large, /area/centcom/interlink) "mju" = ( @@ -10254,6 +10632,7 @@ /obj/effect/turf_decal/trimline/dark_green/filled/warning{ dir = 5 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/centcom/interlink) "mnj" = ( @@ -10391,6 +10770,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, /turf/open/indestructible/hoteltile{ icon_state = "floor" }, @@ -10418,10 +10800,14 @@ /turf/open/indestructible/hotelwood, /area/centcom/holding/cafe) "mza" = ( -/obj/structure/closet/crate/bin, /obj/effect/turf_decal/siding/wood{ dir = 4 }, +/obj/effect/turf_decal/delivery, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, /turf/open/indestructible/hotelwood, /area/centcom/holding/cafepark) "mzf" = ( @@ -10779,6 +11165,12 @@ /obj/machinery/light/warm/directional/south, /turf/open/floor/iron/cafeteria, /area/centcom/interlink) +"nbG" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "ncr" = ( /obj/machinery/deepfryer, /turf/open/floor/wood, @@ -10801,10 +11193,27 @@ }, /turf/open/floor/iron, /area/centcom/holding/cafe) +"nfi" = ( +/obj/machinery/door/airlock/multi_tile/public/glass{ + name = "Interlink" + }, +/obj/effect/turf_decal/siding/dark, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, +/area/centcom/interlink) "ngg" = ( /obj/structure/chair/stool/bar/directional/west, /turf/open/indestructible/hotelwood, /area/centcom/holding/cafe) +"ngU" = ( +/obj/effect/turf_decal/trimline/dark_green/filled/warning{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "nhZ" = ( /obj/structure/chair/sofa/corp/left{ dir = 8 @@ -11114,6 +11523,9 @@ /obj/effect/turf_decal/arrows{ dir = 8 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron/dark, /area/centcom/interlink) "nKt" = ( @@ -11201,6 +11613,13 @@ /obj/item/reagent_containers/cup/glass/mug/coco, /turf/open/misc/grass/planet, /area/centcom/holding/cafepark) +"nPs" = ( +/obj/effect/turf_decal/trimline/dark_green/filled/warning{ + dir = 6 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/centcom/interlink) "nQm" = ( /obj/effect/turf_decal/weather/dirt{ dir = 1 @@ -11292,6 +11711,9 @@ dir = 9 }, /obj/effect/landmark/latejoin, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, /turf/open/floor/iron, /area/centcom/interlink) "nYF" = ( @@ -11358,6 +11780,12 @@ dir = 6 }, /area/centcom/holding/cafepark) +"ogd" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/turf/open/indestructible/hotelwood, +/area/centcom/holding/cafe) "ogq" = ( /obj/structure/chair/comfy/brown{ dir = 4 @@ -11493,6 +11921,21 @@ }, /turf/open/floor/wood, /area/centcom/interlink/dorm_rooms) +"oso" = ( +/obj/effect/turf_decal/trimline/dark_green/filled/line{ + dir = 1 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 + }, +/turf/open/floor/iron, +/area/centcom/interlink) +"osF" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/indestructible/hotelwood, +/area/centcom/holding/cafe) "ouF" = ( /obj/item/toy/plush/moth{ name = "Buzz Buzz" @@ -11901,6 +12344,12 @@ /obj/effect/turf_decal/siding/wood, /turf/closed/indestructible/weeb, /area/centcom/holding/cafe) +"oZK" = ( +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "paj" = ( /obj/structure/chair/sofa/corp/right{ dir = 4 @@ -12006,6 +12455,24 @@ }, /turf/open/indestructible/hotelwood, /area/centcom/holding/cafe) +"pgJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/junction/flip{ + dir = 4 + }, +/turf/open/indestructible/hoteltile{ + icon_state = "floor" + }, +/area/centcom/holding/cafe) "pgL" = ( /obj/structure/chair/sofa/bench/right, /obj/effect/turf_decal/trimline/dark_green/filled/line{ @@ -12034,6 +12501,25 @@ }, /turf/open/misc/dirt/planet, /area/centcom/holding/cafepark) +"pit" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/indestructible/hoteltile{ + icon_state = "floor" + }, +/area/centcom/holding/cafepark) "pkJ" = ( /obj/structure/fans/tiny/invisible, /obj/structure/fence{ @@ -12177,6 +12663,20 @@ icon_state = "white" }, /area/centcom/holding/cafepark) +"pxG" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/indestructible/hoteltile{ + icon_state = "floor" + }, +/area/centcom/holding/cafe) "pxW" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -12237,6 +12737,11 @@ /obj/structure/table, /turf/open/floor/iron/white, /area/centcom/interlink/dorm_rooms) +"pEH" = ( +/obj/machinery/light/directional/west, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, +/area/centcom/interlink) "pET" = ( /obj/machinery/light/directional/south, /obj/effect/turf_decal/tile/blue/half/contrasted, @@ -12363,6 +12868,19 @@ }, /turf/open/indestructible/hotelwood, /area/centcom/holding/cafe) +"pLK" = ( +/obj/effect/turf_decal/box, +/obj/effect/turf_decal/caution/stand_clear, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/wood/glass{ + name = "Lounge" + }, +/obj/structure/fans/tiny/invisible, +/obj/structure/disposalpipe/segment, +/turf/open/indestructible/hoteltile{ + icon_state = "darkfull" + }, +/area/centcom/holding/cafe) "pMg" = ( /obj/machinery/door/airlock{ id_tag = "room1"; @@ -12690,11 +13208,24 @@ /obj/effect/landmark/latejoin, /turf/open/floor/iron, /area/centcom/interlink) +"qjL" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/centcom/interlink) "qkZ" = ( /obj/effect/turf_decal/tile/dark_blue/opposingcorners, /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/iron, /area/centcom/interlink) +"qmB" = ( +/obj/machinery/light/directional/south, +/obj/structure/disposalpipe/segment, +/turf/open/indestructible/hotelwood, +/area/centcom/holding/cafe) "qmG" = ( /obj/machinery/light/directional/south, /obj/structure/chair/stool/directional/south{ @@ -13067,6 +13598,9 @@ /obj/effect/turf_decal/tile/red/opposingcorners, /turf/open/floor/iron/dark, /area/centcom/interlink) +"qQv" = ( +/turf/open/indestructible/plating, +/area/centcom/holding/cafe) "qRd" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/iron/showroomfloor, @@ -13254,6 +13788,24 @@ /obj/structure/fake_stairs/wood/directional/east, /turf/closed/indestructible/wood, /area/centcom/holding/cafepark) +"rku" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 1 + }, +/turf/open/indestructible/hoteltile{ + icon_state = "floor" + }, +/area/centcom/holding/cafepark) "rkW" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/structure/closet/crate/bin, @@ -13413,6 +13965,13 @@ icon_state = "darkfull" }, /area/centcom/holding/cafepark) +"rCG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating, +/area/centcom/interlink) "rDg" = ( /obj/effect/light_emitter/interlink, /obj/effect/turf_decal/weather/dirt{ @@ -13426,6 +13985,27 @@ }, /turf/open/floor/iron, /area/centcom/interlink) +"rEG" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/indestructible/hoteltile{ + icon_state = "floor" + }, +/area/centcom/holding/cafe) "rFa" = ( /obj/effect/turf_decal/siding/white/corner{ dir = 8 @@ -13568,6 +14148,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, /turf/open/indestructible/hoteltile{ icon_state = "floor" }, @@ -13954,6 +14537,10 @@ /obj/structure/chair/sofa/bench/left, /turf/open/floor/iron/cafeteria, /area/centcom/interlink) +"srf" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/indestructible/fakeglass, +/area/centcom/holding/cafe) "srA" = ( /obj/structure/chair/wood{ dir = 8 @@ -14028,12 +14615,19 @@ /obj/effect/turf_decal/siding/white, /turf/open/floor/iron/white, /area/centcom/interlink) +"svq" = ( +/obj/structure/disposalpipe/segment, +/turf/open/indestructible/hotelwood, +/area/centcom/holding/cafe) "sxE" = ( -/obj/structure/closet/crate/bin, /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/trimline/dark_green/filled/line{ dir = 8 }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, /turf/open/floor/iron, /area/centcom/interlink) "syc" = ( @@ -14054,6 +14648,9 @@ name = "Lounge" }, /obj/structure/fans/tiny/invisible, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/indestructible/hoteltile{ icon_state = "darkfull" }, @@ -14440,7 +15037,6 @@ /turf/open/indestructible/hotelwood, /area/centcom/holding/cafe) "tct" = ( -/obj/structure/closet/crate/bin, /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/trimline/blue/filled/line, /obj/effect/turf_decal/tile/neutral{ @@ -14453,6 +15049,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, /turf/open/indestructible/hoteltile{ icon_state = "floor" }, @@ -14572,6 +15172,7 @@ /obj/effect/turf_decal/weather/dirt{ dir = 8 }, +/obj/structure/disposalpipe/segment, /turf/open/indestructible/plating, /area/centcom/holding/cafepark) "ttx" = ( @@ -14610,6 +15211,27 @@ icon_state = "white" }, /area/centcom/holding/cafepark) +"tuX" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/indestructible/hoteltile{ + icon_state = "floor" + }, +/area/centcom/holding/cafepark) "tvh" = ( /obj/structure/fence{ dir = 4 @@ -14733,6 +15355,17 @@ }, /turf/open/floor/wood, /area/centcom/holding/cafe) +"tIy" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/indestructible/hoteltile{ + icon_state = "floor" + }, +/area/centcom/holding/cafe) "tIM" = ( /obj/structure/flora/bush/jungle/b, /obj/structure/fans/tiny/invisible, @@ -14747,6 +15380,12 @@ "tKt" = ( /turf/open/floor/plating/abductor, /area/centcom/holding/cafepark) +"tKS" = ( +/obj/machinery/door/airlock/wood{ + name = "Disposals" + }, +/turf/open/indestructible/plating, +/area/centcom/holding/cafe) "tLu" = ( /obj/item/toy/plush/lizard_plushie/green{ name = "Soaks-The-Rays" @@ -14817,6 +15456,7 @@ /obj/effect/turf_decal/trimline/dark_green/filled/line{ dir = 4 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/centcom/interlink) "tXa" = ( @@ -15031,6 +15671,34 @@ }, /turf/open/floor/carpet/cyan, /area/centcom/holding/cafe) +"ufE" = ( +/obj/structure/railing/corner, +/obj/effect/turf_decal/trimline/blue/filled/corner, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/indestructible/hoteltile{ + icon_state = "floor" + }, +/area/centcom/holding/cafepark) +"ugp" = ( +/obj/machinery/conveyor_switch/oneway{ + dir = 8; + id = "cafesposals"; + name = "disposal conveyor" + }, +/turf/open/indestructible/plating, +/area/centcom/holding/cafe) "uhO" = ( /obj/structure/table/reinforced, /obj/item/folder/blue, @@ -15100,6 +15768,15 @@ /obj/effect/turf_decal/trimline/dark_green/filled/line{ dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/centcom/interlink) +"uks" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, /turf/open/floor/iron, /area/centcom/interlink) "umm" = ( @@ -15121,6 +15798,14 @@ /obj/effect/landmark/latejoin, /turf/open/floor/iron, /area/centcom/interlink) +"uoo" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/indestructible/hotelwood, +/area/centcom/holding/cafe) "uoM" = ( /obj/effect/spawner/liquids_spawner, /turf/open/floor/iron/pool/cobble, @@ -15161,6 +15846,10 @@ /obj/structure/chair/wood, /turf/open/misc/grass/planet, /area/centcom/holding/cafepark) +"uxo" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/centcom/interlink) "uxW" = ( /turf/open/misc/beach/coast{ dir = 4 @@ -15358,6 +16047,15 @@ dir = 8 }, /area/centcom/holding/cafe) +"uUo" = ( +/obj/effect/turf_decal/trimline/dark_green/filled/corner{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "uVm" = ( /obj/structure/stone_tile/center, /obj/structure/stone_tile/surrounding_tile{ @@ -15469,6 +16167,24 @@ /obj/item/kirbyplants/organic/plant22, /turf/open/floor/iron/dark, /area/centcom/interlink) +"vdA" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/indestructible/hoteltile{ + icon_state = "floor" + }, +/area/centcom/holding/cafe) "vdW" = ( /obj/structure/flora/bush/jungle/b, /obj/effect/light_emitter/interlink, @@ -15519,6 +16235,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/open/indestructible/hoteltile{ icon_state = "floor" }, @@ -15657,6 +16374,9 @@ /obj/structure/fence{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, /turf/open/indestructible/plating, /area/centcom/holding/cafepark) "vzH" = ( @@ -15664,6 +16384,9 @@ /obj/effect/turf_decal/trimline/dark_green/filled/line{ dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron, /area/centcom/interlink) "vDr" = ( @@ -15813,6 +16536,13 @@ }, /turf/open/floor/wood, /area/centcom/interlink) +"vSV" = ( +/obj/effect/turf_decal/trimline/dark_green/filled/line, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "vTT" = ( /turf/closed/indestructible/steel, /area/centcom/holding/cafe) @@ -15912,6 +16642,24 @@ }, /turf/open/floor/iron/dark, /area/centcom/interlink) +"wbI" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/indestructible/hoteltile{ + icon_state = "floor" + }, +/area/centcom/holding/cafepark) "wcd" = ( /obj/structure/flora/bush/flowers_pp, /obj/structure/flora/bush/flowers_br, @@ -15971,6 +16719,9 @@ /area/centcom/holding/cafe) "wfh" = ( /obj/effect/landmark/latejoin, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron, /area/centcom/interlink) "wft" = ( @@ -16111,6 +16862,11 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/centcom/holding/cafe) +"wwq" = ( +/obj/structure/table/wood, +/obj/structure/disposalpipe/segment, +/turf/open/indestructible/hotelwood, +/area/centcom/holding/cafe) "wwD" = ( /obj/effect/turf_decal/weather/dirt{ dir = 4 @@ -16118,6 +16874,15 @@ /obj/effect/light_emitter/interlink, /turf/open/floor/grass, /area/centcom/interlink) +"wwF" = ( +/obj/effect/turf_decal/trimline/dark_green/filled/line{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "wyd" = ( /obj/structure/railing/wooden_fencing{ dir = 8 @@ -16213,11 +16978,14 @@ /area/centcom/holding/cafepark) "wFF" = ( /obj/machinery/light/directional/west, -/obj/structure/closet/crate/bin, /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/trimline/dark_green/filled/line{ dir = 8 }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, /turf/open/floor/iron, /area/centcom/interlink) "wGV" = ( @@ -16267,6 +17035,10 @@ }, /turf/open/floor/iron/cafeteria, /area/centcom/interlink) +"wIA" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark, +/area/centcom/interlink) "wIO" = ( /obj/effect/turf_decal/sand, /obj/effect/turf_decal/trimline/yellow/filled/warning{ @@ -16432,6 +17204,15 @@ /obj/structure/chair/sofa/bench/corner, /turf/open/floor/wood/large, /area/centcom/holding/cafe) +"wZP" = ( +/obj/effect/turf_decal/trimline/dark_green/filled/corner{ + dir = 4 + }, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 1 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "wZS" = ( /obj/item/storage/cans/sixbeer, /turf/open/floor/carpet/orange, @@ -16514,6 +17295,15 @@ /obj/machinery/duct, /turf/open/floor/wood/tile, /area/centcom/interlink) +"xkb" = ( +/obj/effect/turf_decal/siding/dark{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/centcom/interlink) "xkO" = ( /obj/structure/railing{ dir = 4 @@ -23413,7 +24203,7 @@ tvw tvw qLQ aXG -xyz +kam nYB ePw tvw @@ -24442,7 +25232,7 @@ ekE wOQ hvQ hvQ -hvQ +bIG bck tvw aWb @@ -24699,7 +25489,7 @@ jaf hvQ hvQ aTS -hvQ +bIG hvQ tvw aWb @@ -24956,7 +25746,7 @@ eXg hvQ deD tvw -hvQ +bIG dPd tvw kdy @@ -25213,7 +26003,7 @@ hvQ hvQ hvQ kfb -lvR +jMh wHJ tvw hZk @@ -25470,7 +26260,7 @@ hvQ hvQ hvQ hvQ -dGD +ngU nJp tvw kdy @@ -25984,7 +26774,7 @@ iPs iPs iPs fOv -dGD +ngU uPd tvw tvw @@ -26241,7 +27031,7 @@ iPs iPs iPs rDL -dGD +ngU wck tvw uis @@ -26755,7 +27545,7 @@ xgz jzh sIH lPi -iMY +lBC wck tvw sNg @@ -27012,7 +27802,7 @@ xgz pST oQW lPi -iMY +lBC wck tvw fzV @@ -27526,7 +28316,7 @@ lVL olE olE wtI -dGD +ngU nJp tvw tvw @@ -27783,7 +28573,7 @@ cRs pST sIH lPi -iMY +lBC cGt pHe saE @@ -28040,7 +28830,7 @@ olE pST oQW lPi -iMY +lBC nJp xPZ aXG @@ -28297,7 +29087,7 @@ iwK lPi lPi jHw -iMY +lBC nJp rYy tvw @@ -28554,7 +29344,7 @@ oIK kOZ kOZ wFF -oOC +uUo pSt cWG exf @@ -28810,8 +29600,8 @@ eYX mqE hvQ hvQ -hvQ -hvQ +nbG +uks hvQ hvQ hvQ @@ -29067,7 +29857,7 @@ lPi aUh hvQ hvQ -hvQ +bIG hvQ hvQ hvQ @@ -29324,7 +30114,7 @@ lPi crf anv ybB -mqE +guN hvQ hvQ hvQ @@ -29581,7 +30371,7 @@ tvw lPi lPi tvw -iMY +lBC hvQ hvQ aBm @@ -29838,7 +30628,7 @@ xKN olE olE bwP -dGD +ngU hvQ hvQ hvQ @@ -30095,7 +30885,7 @@ fYY olE olE wtI -dGD +ngU hvQ hvQ bTH @@ -30609,7 +31399,7 @@ kOZ kOZ wHJ tGG -dGD +ngU hvQ hvQ hvQ @@ -30852,7 +31642,7 @@ rMF hES rDL hvQ -hvQ +bIG hvQ hvQ tGG @@ -30866,8 +31656,8 @@ hvQ hvQ cGt tGG -dGD -hvQ +bAX +kTY hvQ hvQ hvQ @@ -31109,23 +31899,23 @@ aXG jXO rDL hvQ -hvQ -hvQ -aTS -tGG -dGD -lrp -eYX +kNb +lnY +bpP +fkF +amA +bIs +eXw tWA -eYX -eYX -eYX -eYX -bod -tGG +eXw +eXw +eXw +eXw +nPs +fkF mjK -mqE -lrp +wZP +lIt jsN eYX eYX @@ -31370,7 +32160,7 @@ lPi lPi tvw hoS -iMY +lBC nJp tvw tvw @@ -31381,8 +32171,8 @@ tvw tvw tvw jHw -iMY -nJp +oso +vSV rYy tvw dHP @@ -31627,7 +32417,7 @@ vat vat cNw tvw -iMY +lBC nJp tvw iVr @@ -31884,7 +32674,7 @@ vat iov vat lPi -iMY +lBC nJp tvw tfe @@ -31895,7 +32685,7 @@ pry bsj chZ pMg -dGD +ngU nJp aDg mDR @@ -32141,7 +32931,7 @@ vat vat vat lPi -iMY +lBC nJp tvw tvw @@ -32152,7 +32942,7 @@ hVC bsj osk tvw -iMY +lBC nJp aDg fVr @@ -32398,7 +33188,7 @@ vat vat xmn lPi -iMY +lBC pSt kOZ sga @@ -32409,7 +33199,7 @@ bsj bsj bsj tvw -iMY +lBC nJp tvw jSW @@ -32655,7 +33445,7 @@ vat vat vat tvw -iMY +lBC lrp eYX aPe @@ -32923,7 +33713,7 @@ tvw tvw tvw tvw -iMY +lBC nJp aDg kLZ @@ -33048,128 +33838,128 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -"} -(63,1,1) = {" -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +"} +(63,1,1) = {" +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +tvw +cMd +uxo fov -hES -aXG -aXG -aXG -pmJ -aXG -aXG -aXG -pmJ -aXG -aXG -aXG -aXG -aXG -pPI -dGD +jpm +wIA +wIA +wIA +pEH +wIA +gWk +wIA +pEH +wIA +wIA +wIA +wIA +wIA +nfi +iJk nJp tvw iVr @@ -33180,7 +33970,7 @@ nsT bsj nYF tvw -iMY +lBC nJp aDg fVr @@ -33407,9 +34197,9 @@ aaa aaa aaa aaa -aaa -aaa -aaa +tvw +eXn +aqG tvw mtv eOx @@ -33417,7 +34207,7 @@ pZh pZh jtl aXG -aXG +huK xyz pHQ pZh @@ -33426,7 +34216,7 @@ eOx jtl aXG cVm -dGD +ngU nJp tvw tfe @@ -33437,7 +34227,7 @@ pry bsj chZ dVh -dGD +ngU nJp aDg fVr @@ -33664,9 +34454,9 @@ aaa aaa aaa aaa -aaa -aaa -aaa +tvw +eGs +aqG tvw bjh cAI @@ -33674,7 +34464,7 @@ mDs xqq tUz uYo -uYo +cHy uYo eNn xqq @@ -33683,7 +34473,7 @@ cAI phk aXG pPI -dGD +ngU nJp tvw tvw @@ -33694,7 +34484,7 @@ hVC bsj uDT tvw -iMY +lBC nJp tvw fVr @@ -33921,9 +34711,9 @@ aaa aaa aaa aaa -aaa -aaa -aaa +tvw +eXn +aqG tvw aXG aXG @@ -33931,7 +34721,7 @@ eHo hvQ hvQ hvQ -hvQ +bIG hvQ hvQ hvQ @@ -33940,7 +34730,7 @@ aXG aXG jXO cVm -dGD +ngU pSt kOZ ubH @@ -33951,7 +34741,7 @@ bsj bsj bsj tvw -iMY +lBC nJp tvw fVr @@ -34178,9 +34968,9 @@ aaa aaa aaa aaa -aaa -aaa -aaa +tvw +eXn +jfB tvw aDg uTg @@ -34208,7 +34998,7 @@ bsj bsj bUO tvw -iMY +lBC nJp aDg fVr @@ -34435,9 +35225,9 @@ aaa aaa aaa aaa -aaa -aaa -aaa +tvw +tvw +tvw tvw aXG bdI @@ -34454,7 +35244,7 @@ cal aXG tvw oAn -oOC +uUo nJp tvw tvw @@ -34465,7 +35255,7 @@ tvw tvw tvw tvw -iMY +lBC nJp aDg fVr @@ -34711,7 +35501,7 @@ dHD aXG tvw fGC -hvQ +bIG nJp tvw iVr @@ -34722,7 +35512,7 @@ nsT bsj nYF tvw -iMY +lBC nJp aDg rVQ @@ -34968,7 +35758,7 @@ wYH aXG tvw fGC -hvQ +bIG nJp tvw tfe @@ -34979,7 +35769,7 @@ pry bsj chZ wdB -dGD +ngU nJp tvw vLx @@ -35225,7 +36015,7 @@ aXG aXG tvw vsB -hvQ +bIG nJp tvw tvw @@ -35236,7 +36026,7 @@ hVC bsj mUC tvw -iMY +lBC nJp tvw vLx @@ -35473,7 +36263,7 @@ eHo amv tvw aDg -aDg +rCG aDg tvw amv @@ -35482,7 +36272,7 @@ aXG aXG tvw iMY -hvQ +bIG pSt kOZ sga @@ -35493,7 +36283,7 @@ bsj bsj bsj tvw -iMY +lBC nJp tvw vLx @@ -35730,7 +36520,7 @@ inr nrl rYR rYR -rYR +xkb rYR rYR ojv @@ -35738,8 +36528,8 @@ liU aXG gAj tvw -iIb -eYX +wwF +ikj eYX eYX aPe @@ -35995,7 +36785,7 @@ aXG aXG aXG tvw -xyz +qjL dAM dmR tvw @@ -36244,7 +37034,7 @@ aXG aXG aXG aXG -aXG +fLG aXG aXG aXG @@ -36264,7 +37054,7 @@ nsT bsj nYF tvw -iMY +lBC nJp tvw vLx @@ -36521,7 +37311,7 @@ pry bsj chZ yln -dGD +ngU nJp tvw vLx @@ -36778,7 +37568,7 @@ hVC bsj cbF tvw -iMY +lBC nJp tvw aaa @@ -37035,7 +37825,7 @@ bsj bsj bsj tvw -iMY +lBC nJp tvw aaa @@ -37292,7 +38082,7 @@ bsj bsj bUO tvw -iMY +lBC nJp tvw aaa @@ -37806,7 +38596,7 @@ qzE gIO mMu xwC -oOC +uUo nJp tvw aaa @@ -38056,14 +38846,14 @@ kOZ kOZ kOZ oOC -hvQ -hvQ -hvQ -hvQ -hvQ -hvQ -hvQ -hvQ +kNb +oZK +oZK +oZK +oZK +oZK +oZK +uks nJp tvw aaa @@ -61736,7 +62526,7 @@ ayo ahY aqf aUo -aUo +fmr aUo aqf bcb @@ -61993,7 +62783,7 @@ alR aQd aqf aqy -aUo +fmr agr aqf rTU @@ -62250,7 +63040,7 @@ axQ aRM aqf aPK -aUo +fmr awQ aqf sRt @@ -62507,7 +63297,7 @@ aUo aUz aqf aYj -aUo +fmr aKD aqf aqf @@ -62764,7 +63554,7 @@ aME gWT aqf aXd -aUo +fmr aQa aqf dyU @@ -63021,7 +63811,7 @@ aqf aqf aqf aqf -aUo +fmr aqf aPZ dDF @@ -63274,11 +64064,11 @@ asC jZb aqf afr -atf +uoo aOb aSn aIU -aUo +fmr bNi aqf bZt @@ -63514,28 +64304,28 @@ asp aqf lnP aPo -aUo -aUo -aUo -bwG -wDG -aUo -aUz -aTb +ogd +svq +svq +wwq +dkH +svq +qmB +srf aBH -avS -axO +kJA +pxG axO axO aGo enf aqf aHP +fmr aUo aUo aUo -aUo -aUo +fmr jeI aqf aqf @@ -63781,18 +64571,18 @@ aUo aTb ayQ aOI -aOI -aKB +vdA +tIy aWq aDA -sIb -ang -aUo -aUo +iEh +pLK +svq +aKp aWh ahG aGY -aUo +osF jeI aqf dbn @@ -64038,8 +64828,8 @@ aUo aTb apA aOI -aOI -aOI +jCs +pgJ aKB aGo ayk @@ -64296,7 +65086,7 @@ aqf aGT apx apx -apx +rEG apx apx aoR @@ -64553,7 +65343,7 @@ aqf aqf aqf aka -aka +ePa aka aqf aqf @@ -64563,7 +65353,7 @@ aqf agV aUo aUo -aUo +atf aqf aqf ajj @@ -64810,7 +65600,7 @@ aqf pwO wVd aYc -aYc +tuX aYc kZK bON @@ -65067,7 +65857,7 @@ aqf ayt qVU qVU -qVU +wbI qVU qVU aJP @@ -65305,14 +66095,14 @@ aPf aPf ayI aPf -aPf -aPf -aPf -ekp -ayI -ayI -ayI -ayI +vTT +ugp +bif +gLS +joj +joj +joj +joj mfu tsx tsx @@ -65322,11 +66112,11 @@ tsx tsx aBa aqX -qVU +lyP vhm rOn mxd -qVU +rku tct aqf aAX @@ -65562,10 +66352,10 @@ aPf aPf ayI ayI -aPf -aPf -aPf -ekp +vTT +qQv +abV +vTT ayI ayI hea @@ -65578,8 +66368,8 @@ wIO wIO wIO vzb -sUE -vhm +pit +ufE qdG vdW bUS @@ -65819,10 +66609,10 @@ aPf ayI ayI ayI -aPf -aPf -aFP -agU +vTT +qQv +gcJ +vTT mPR uIo aSt @@ -66076,10 +66866,10 @@ ayI ayI ayI aPf -aPf -asX -aFP -agU +vTT +qQv +abV +vTT nXw aSt aSt @@ -66333,10 +67123,10 @@ ayI ayI aPf aPf -aPf -aFP -aFP -agU +vTT +tKS +vTT +vTT nXw aIr aIr diff --git a/config/lavaruinblacklist.txt b/config/lavaruinblacklist.txt index 29154fe011b..dc1749973eb 100644 --- a/config/lavaruinblacklist.txt +++ b/config/lavaruinblacklist.txt @@ -42,3 +42,6 @@ _maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm #_maps/RandomRuins/LavaRuins/lavaland_surface_ww_vault.dmm #_maps/RandomRuins/LavaRuins/lavaland_surface_wwiioutpost.dmm #_maps/RandomRuins/LavaRuins/lavaland_surface_xeno_nest.dmm + +##MEGAFAUNA +#_maps/RandomRuins/LavaRuins/nova/lavaland_surface_arena.dmm diff --git a/config/spaceruinblacklist.txt b/config/spaceruinblacklist.txt index bf149ca5640..e42b0d918e7 100644 --- a/config/spaceruinblacklist.txt +++ b/config/spaceruinblacklist.txt @@ -72,7 +72,7 @@ #_maps/RandomRuins/SpaceRuins/space_billboard.dmm #_maps/RandomRuins/SpaceRuins/space_billboard.dmm #_maps/RandomRuins/SpaceRuins/space_ghost_restaurant.dmm -#_maps/RandomRuins/SpaceRuins/spacehotel.dmm +_maps/RandomRuins/SpaceRuins/spacehotel.dmm #_maps/RandomRuins/SpaceRuins/spinwardsmoothies.dmm #_maps/RandomRuins/SpaceRuins/spinwardsmoothies.dmm #_maps/RandomRuins/SpaceRuins/the_faceoff.dmm @@ -88,5 +88,33 @@ #_maps/RandomRuins/SpaceRuins/waystation.dmm #_maps/RandomRuins/SpaceRuins/whiteshipdock.dmm #_maps/RandomRuins/SpaceRuins/whiteshipruin_box.dmm + +##Custom Ruins +#_maps/RandomRuins/SpaceRuins/nova/alientoollab.dmm +#_maps/RandomRuins/SpaceRuins/nova/blackmarket.dmm +#_maps/RandomRuins/SpaceRuins/nova/cargodiselost.dmm +#_maps/RandomRuins/SpaceRuins/nova/clothing_facility.dmm +#_maps/RandomRuins/SpaceRuins/nova/codealpha.dmm +#_maps/RandomRuins/SpaceRuins/nova/crash.dmm +#_maps/RandomRuins/SpaceRuins/nova/derelictferry.dmm +#_maps/RandomRuins/SpaceRuins/nova/des_two.dmm #_maps/RandomRuins/SpaceRuins/nova/drones_derelict.dmm -#_maps/RandomRuins/SpaceRuins/shuttle8532.dmm +#_maps/RandomRuins/SpaceRuins/nova/ghostship.dmm +#_maps/RandomRuins/SpaceRuins/nova/luna.dmm +#_maps/RandomRuins/SpaceRuins/nova/piratefort.dmm +#_maps/RandomRuins/SpaceRuins/nova/port_tarkon.dmm +#_maps/RandomRuins/SpaceRuins/nova/posterpandamonium.dmm +#_maps/RandomRuins/SpaceRuins/nova/prisonshuttle.dmm +#_maps/RandomRuins/SpaceRuins/nova/salvagepost.dmm +#_maps/RandomRuins/SpaceRuins/nova/scrapeheap.dmm +#_maps/RandomRuins/SpaceRuins/nova/shuttle8532.dmm +#_maps/RandomRuins/SpaceRuins/nova/shuttlescrap.dmm +#_maps/RandomRuins/SpaceRuins/nova/smugglies.dmm +#_maps/RandomRuins/SpaceRuins/nova/spacehotel.dmm +#_maps/RandomRuins/SpaceRuins/nova/syndibase.dmm +#_maps/RandomRuins/SpaceRuins/nova/toystore.dmm +#_maps/RandomRuins/SpaceRuins/nova/vaulttango.dmm +#_maps/RandomRuins/SpaceRuins/nova/waypointstation.dmm +#_maps/RandomRuins/SpaceRuins/nova/whiteshipruin_box.dmm +#_maps/RandomRuins/SpaceRuins/nova/wreckedfriendship.dmm +#_maps/RandomRuins/SpaceRuins/nova/wreckedhomestead.dmm diff --git a/modular_nova/master_files/code/modules/clothing/neck/_neck.dm b/modular_nova/master_files/code/modules/clothing/neck/_neck.dm new file mode 100644 index 00000000000..c062f7597c3 --- /dev/null +++ b/modular_nova/master_files/code/modules/clothing/neck/_neck.dm @@ -0,0 +1,3 @@ +//DEFAULT NECK ITEMS OVERRIDE// +/obj/item/clothing/neck + w_class = WEIGHT_CLASS_SMALL diff --git a/modular_nova/modules/ashwalkers/code/effects/ash_rituals.dm b/modular_nova/modules/ashwalkers/code/effects/ash_rituals.dm index 59a52c87335..4f621b656e6 100644 --- a/modular_nova/modules/ashwalkers/code/effects/ash_rituals.dm +++ b/modular_nova/modules/ashwalkers/code/effects/ash_rituals.dm @@ -28,7 +28,7 @@ /obj/item/stack/sheet/sinew, ) ritual_success_items = list( - /obj/item/clothing/neck/necklace/ashwalker, + /obj/item/clothing/neck/necklace/translator, ) /datum/ash_ritual/summon_key diff --git a/modular_nova/modules/gladiator/code/datums/ruins/lavaland.dm b/modular_nova/modules/gladiator/code/datums/ruins/lavaland.dm deleted file mode 100644 index 0703d375fee..00000000000 --- a/modular_nova/modules/gladiator/code/datums/ruins/lavaland.dm +++ /dev/null @@ -1,9 +0,0 @@ -/datum/map_template/ruin/lavaland/arena - name = "Grand Arena" - id = "arena" - description = "An ancient gladitorial arena containing a deadly warrior within." - prefix = "_maps/RandomRuins/LavaRuins/nova/" - suffix = "lavaland_surface_arena.dmm" - cost = 0 - always_place = TRUE //WOULD BE UNFAIR IF SOMETHING THAT IS ALWAYS PLACED HAD A COST... - allow_duplicates = FALSE diff --git a/modular_nova/modules/mapping/code/icemoon.dm b/modular_nova/modules/mapping/code/icemoon.dm index bf39280cc9d..d00ce32aed8 100644 --- a/modular_nova/modules/mapping/code/icemoon.dm +++ b/modular_nova/modules/mapping/code/icemoon.dm @@ -4,7 +4,7 @@ /*------*/ /datum/map_template/ruin/icemoon/underground/nova/mining_site_below - name = "Mining Site Underground" + name = "Ice-ruin Mining Site Underground" id = "miningsite-underground" description = "The Iceminer arena." prefix = "_maps/RandomRuins/IceRuins/nova/" @@ -12,7 +12,7 @@ always_place = TRUE /datum/map_template/ruin/icemoon/underground/nova/interdyne_base - name = "Interdyne Pharmaceuticals Nova Sector Base 8817238" + name = "Ice-ruin Interdyne Pharmaceuticals Nova Sector Base 8817238" id = "ice-base" description = "A planetside Interdyne research facility developing biological weapons; it is closely guarded by an elite team of agents." prefix = "_maps/RandomRuins/IceRuins/nova/" diff --git a/modular_nova/modules/mapping/code/lavaland.dm b/modular_nova/modules/mapping/code/lavaland.dm index 3863e2283ff..f99824e0d9f 100644 --- a/modular_nova/modules/mapping/code/lavaland.dm +++ b/modular_nova/modules/mapping/code/lavaland.dm @@ -4,7 +4,7 @@ /*------*/ /datum/map_template/ruin/lavaland/ash_walker - name = "Ash Walker Nest" + name = "Lava-Ruin Ash Walker Nest" id = "ash-walker" description = "A race of unbreathing lizards live here, that run faster than a human can, worship a broken dead city, and are capable of reproducing by something involving tentacles? \ Probably best to stay clear." @@ -14,7 +14,7 @@ allow_duplicates = FALSE /datum/map_template/ruin/lavaland/nova/interdyne_base - name = "Interdyne Pharmaceutics Nova Sector Base 3c76928" + name = "Lava-Ruin Interdyne Pharmaceutics Nova Sector Base 3c76928" id = "lava-base" description = "A planetside Interdyne research facility developing biological weapons; it is closely guarded by an elite team of agents." prefix = "_maps/RandomRuins/LavaRuins/nova/" @@ -23,3 +23,12 @@ never_spawn_with = list(/datum/map_template/ruin/icemoon/underground/nova/interdyne_base) unpickable = TRUE //FF REMOVAL - INTERDYNE-REMAP. ORIGINAL always_place = TRUE +/datum/map_template/ruin/lavaland/arena + name = "Lava-Ruin Grand Arena" + id = "arena" + description = "An ancient gladitorial arena containing a deadly warrior within." + prefix = "_maps/RandomRuins/LavaRuins/nova/" + suffix = "lavaland_surface_arena.dmm" + cost = 0 + always_place = TRUE //WOULD BE UNFAIR IF SOMETHING THAT IS ALWAYS PLACED HAD A COST... + allow_duplicates = FALSE diff --git a/modular_nova/modules/mapping/code/mob_spawns.dm b/modular_nova/modules/mapping/code/mob_spawns.dm index 9fd74f012d5..ce6eef78ac0 100644 --- a/modular_nova/modules/mapping/code/mob_spawns.dm +++ b/modular_nova/modules/mapping/code/mob_spawns.dm @@ -532,6 +532,7 @@ /datum/id_trim/away/hotel/security assignment = "Hotel Security" + access = list(ACCESS_TWIN_NEXUS_STAFF, ACCESS_TWIN_NEXUS_MANAGER) //CRYO CONSOLES diff --git a/modular_nova/modules/mapping/code/space.dm b/modular_nova/modules/mapping/code/space.dm index f6e4f135e42..1bb749b8a77 100644 --- a/modular_nova/modules/mapping/code/space.dm +++ b/modular_nova/modules/mapping/code/space.dm @@ -5,9 +5,8 @@ /datum/map_template/ruin/space/whiteshipruin_box_nova/ id = "whiteshipruin_box_nova" - prefix = "_maps/RandomRuins/SpaceRuins/nova/" suffix = "whiteshipruin_box.dmm" - name = "NT Medical Ship" + name = "Space-Ruin NT Medical Ship" description = "An ancient ship, said to be among the first discovered derelicts near Space Station 13 that was still in working order. \ Aged and deprecated by time, this relic of a vessel is now broken beyond repair." @@ -15,164 +14,158 @@ id = "spacehotel" prefix = "_maps/RandomRuins/SpaceRuins/nova/" suffix = "spacehotel.dmm" - name = "The Twin-Nexus Hotel" + name = "Space-Ruin The Twin-Nexus Hotel" description = "An interstellar hotel, where the weary spaceman can rest their head and relax, assured that the residental staff will not murder them in their sleep. Probably." /datum/map_template/ruin/space/nova/des_two - name = "DS-2" id = "des_two" - description = "If DS-1 was so good..." suffix = "des_two.dmm" + name = "Space-Ruin DS-2" + description = "If DS-1 was so good..." always_place = TRUE /datum/map_template/ruin/space/nova/derelictferry id = "derelictferry" suffix = "derelictferry.dmm" - name = "Derelict Ferry" + name = "Space-Ruin Derelict Ferry" description = "Clearly once a ferry fielded by Central Command to send their staff to nearby stations, this ship's seen better days." /datum/map_template/ruin/space/nova/posterpandamonium id = "posterpandamonium" suffix = "posterpandamonium.dmm" - name = "Abandoned Outpost" + name = "Space-Ruin Abandoned Outpost" description = "Whilst nicely furnished and filled with all sorts of posters, whoever once lived here seems long gone." /datum/map_template/ruin/space/nova/prisonshuttle id = "prisonshuttle" suffix = "prisonshuttle.dmm" - name = "Partisan Shuttle" + name = "Space-Ruin Partisan Shuttle" description = "You can faintly hear hardbass." /datum/map_template/ruin/space/nova/toystore id = "toystore" suffix = "toystore.dmm" - name = "Toy Store" + name = "Space-Ruin Toy Store" description = "A once state-of-the-art store, now left derelict after the company behind it went bankrupt. Maybe they shouldn't have picked such a remote location." /datum/map_template/ruin/space/nova/waypointstation id = "waypointstation" suffix = "waypointstation.dmm" - name = "Waypoint Station" + name = "Space-Ruin Waypoint Station" description = "Previously used as a refueling stop for larger ships, unintentional syndicate intervention has turned this station into a combat zone." /datum/map_template/ruin/space/nova/alientoollab id = "alientoollab" suffix = "alientoollab.dmm" - name = "Abductor Replication Facility" + name = "Space-Ruin Abductor Replication Facility" description = "A mad doctor's dreams were dashed when he finally disclosed to both his funders that each other existed, leaving behind his work for the looters." /datum/map_template/ruin/space/nova/codealpha id = "codealpha" suffix = "codealpha.dmm" - name = "Code Alpha Supplementary Station" + name = "Space-Ruin Code Alpha Supplementary Station" description = "The mess hall of a once bustling supplementary station, to be deployed alongside SS13." /datum/map_template/ruin/space/nova/smugglies //Excuse me sir, do you have money printers in here? id = "smugglies" suffix = "smugglies.dmm" - name = "Suspicious Cargo Installation" + name = "Space-Ruin Suspicious Cargo Installation" description = "*SCREECH* RDM RDM RDM" /datum/map_template/ruin/space/nova/clothing_facility id = "clothing_facility" suffix = "clothing_facility.dmm" - name = "Abandoned Clothing Facility" + name = "Space-Ruin Abandoned Clothing Facility" description = "A den of bad ideas. Secborgs were made here!" /datum/map_template/ruin/space/nova/luna id = "luna" suffix = "luna.dmm" - name = "Luna" + name = "Space-Ruin Luna" description = "Please note for ethical concerns all experimentation regarding writing artificial intelligence units to beleive they are A, A fictional character and B, human have been suspended. Have a pleasant shift." /datum/map_template/ruin/space/nova/blackmarket id = "blackmarket" suffix = "blackmarket.dmm" - name = "Shady Market" + name = "Space-Ruin Shady Market" description = "Whaddya buyin'?" /datum/map_template/ruin/space/nova/shuttle8532 id = "shuttle8532" suffix = "shuttle8532.dmm" - name = "Shuttle 8532" + name = "Space-Ruin Shuttle 8532" description = "While nobody can predict what space has to offer for the sailors that ride its waves, nobody is quite expecting a meteroid half the size of your shuttle to split it in half." /datum/map_template/ruin/space/nova/ghostship id = "ghostship" suffix = "ghostship.dmm" - name = "Ghost Ship" + name = "Space-Ruin Ghost Ship" description = "An ancient ship, seemingly pre-bluespace in design yet retrofitted with newer systems. Seemingly just up-and-abandoned in the middle of space..." /datum/map_template/ruin/space/nova/salvagepost id = "salvagepost" suffix = "salvagepost.dmm" - name = "Pre-Bluespace Salvage Post" + name = "Space-Ruin Pre-Bluespace Salvage Post" description = "An extremely old, long forgotten post used to salvage damaged or decommissioned ships before bluespace transportation. Surprising its stayed intact so long." /datum/map_template/ruin/space/nova/vaulttango id = "vaulttango" suffix = "vaulttango.dmm" - name = "ARBORLINK Vault Tango" + name = "Space-Ruin ARBORLINK Vault Tango" description = "Nanotrasen isn't the only corporation experimenting in advanced bluespace technology." /datum/map_template/ruin/space/nova/friendship id = "friendship" suffix = "wreckedfriendship.dmm" - name = "NTSS Friendship" + name = "Space-Ruin NTSS Friendship" description = "120 people.. one ship. It's unsurprising." /datum/map_template/ruin/space/nova/homestead id = "homestead" suffix = "wreckedhomestead.dmm" - name = "NTSS Homestead" + name = "Space-Ruin NTSS Homestead" description = "A wrecked ship." -/datum/map_template/ruin/space/nova/medieval1 - id = "medieval1" - suffix = "medieval1.dmm" - name = "Medieval 1" - description = "A forgotten peice of history left overrun with a reminder of what brought its destruction" - /datum/map_template/ruin/space/nova/cargodiselost id = "CargodiseLost" suffix = "cargodiselost.dmm" - name = "Cargodise Lost" + name = "Space-Ruin Cargodise Lost" description = "A small crew of freight-haulers are marooned in space after pirates knock out their engines. They must survive off of the cargo on board their ship and fend off the pirate boarders on their ship." /datum/map_template/ruin/space/nova/infestedntship + id = "scrapheap" suffix = "scrapheap.dmm" - name = "NT Research Vessel" + name = "Space-Ruin NT Research Vessel" description = "A zombie-infested NT ship, seemingly dedicated to medical research." /datum/map_template/ruin/space/nova/piratefort + id = "piratefort" suffix = "piratefort.dmm" - name = "Pirate Fort" + name = "Space-Ruin Pirate Fort" description = "A pirate hideout in deep space." /datum/map_template/ruin/space/nova/syndibase + id = "syndibase" suffix = "syndibase.dmm" - name = "Syndicate Outpost" + name = "Space-Ruin Syndicate Outpost" description = "A Syndicate research outpost in deep space." /datum/map_template/ruin/space/nova/crash + id = "crash" suffix = "crash.dmm" - name = "Crashed Boat" + name = "Space-Ruin Crashed Boat" description = "A small ferry crashed into an asteroid." /datum/map_template/ruin/space/nova/shuttlescrap + id = "shuttlescrap" suffix = "shuttlescrap.dmm" - name = "Broken Shuttle" + name = "Space-Ruin Broken Shuttle" description = "A small shuttle that clearly got clipped by something." -/datum/map_template/ruin/space/nova/gorilla - suffix = "gorilla.dmm" - name = "Gorilla" - description = "There is no need to be upset." - /datum/map_template/ruin/space/nova/escapefromtarkon - suffix = "port_tarkon.dmm" - name = "Port Tarkon" id = "escapefromtarkon" + suffix = "port_tarkon.dmm" + name = "Space-Ruin Port Tarkon" description = "An ambitious goal, A step forward, A trial run for the Tarkon drill, ment to implant mining stations within meteors. Decades of disaster have, however, left this one... Unattended for far too long." always_place = TRUE diff --git a/modular_nova/modules/modular_items/code/necklace.dm b/modular_nova/modules/modular_items/code/necklace.dm index 4e87508dd4f..b64cbcceed2 100644 --- a/modular_nova/modules/modular_items/code/necklace.dm +++ b/modular_nova/modules/modular_items/code/necklace.dm @@ -1,10 +1,6 @@ -//DEFAULT NECK ITEMS OVERRIDE// -/obj/item/clothing/neck - w_class = WEIGHT_CLASS_SMALL - -//ASHWALKER TRANSLATOR NECKLACE// +//TRANSLATOR NECKLACE// #define LANGUAGE_TRANSLATOR "translator" -/obj/item/clothing/neck/necklace/ashwalker +/obj/item/clothing/neck/necklace/translator/ name = "ashen necklace" desc = "A necklace crafted from ash, connected to the Necropolis through the core of a Legion. This imbues overdwellers with an unnatural understanding of Ashtongue, the native language of Lavaland, while worn." icon = 'modular_nova/master_files/icons/obj/clothing/neck.dmi' @@ -12,23 +8,49 @@ worn_icon = 'modular_nova/master_files/icons/mob/clothing/neck.dmi' icon_state = "ashnecklace" w_class = WEIGHT_CLASS_SMALL //allows this to fit inside of pockets. + /// The language granted by this necklace + var/datum/language/language_granted = /datum/language/ashtongue + /// Where the power comes from + var/power_source = "the Necropolis" + /// Whether or not to display the message upon equipping/unequipping + var/silent -//uses code from the pirate hat. -/obj/item/clothing/neck/necklace/ashwalker/equipped(mob/user, slot) +/obj/item/clothing/neck/necklace/translator/Initialize(mapload) . = ..() - if(!ishuman(user)) + RegisterSignal(src, COMSIG_ITEM_EQUIPPED, PROC_REF(on_necklace_equip)) + +/obj/item/clothing/neck/necklace/translator/proc/on_necklace_equip(datum/source, mob/living/carbon/human/equipper, slot) + SIGNAL_HANDLER + + if(!(slot & ITEM_SLOT_NECK)) return - if(slot & ITEM_SLOT_NECK) - user.grant_language(/datum/language/ashtongue/, source = LANGUAGE_TRANSLATOR) - to_chat(user, span_boldnotice("Slipping the necklace on, you feel the insidious creep of the Necropolis enter your bones, and your very shadow. You find yourself with an unnatural knowledge of Ashtongue; but the amulet's eye stares at you.")) -/obj/item/clothing/neck/necklace/ashwalker/dropped(mob/user) - . = ..() - if(!ishuman(user)) + if(!istype(equipper)) return - var/mob/living/carbon/human/H = user - if(H.get_item_by_slot(ITEM_SLOT_NECK) == src && !QDELETED(src)) //This can be called as a part of destroy - user.remove_language(/datum/language/ashtongue/, source = LANGUAGE_TRANSLATOR) - to_chat(user, span_boldnotice("You feel the alien mind of the Necropolis lose its interest in you as you remove the necklace. The eye closes, and your mind does as well, losing its grasp of Ashtongue.")) -//ASHWALKER TRANSLATOR NECKLACE END// + equipper.grant_language(language_granted, source = LANGUAGE_TRANSLATOR) + RegisterSignal(src, COMSIG_ITEM_DROPPED, PROC_REF(on_necklace_unequip)) + + if(!silent) + to_chat(equipper, span_boldnotice("Slipping the necklace on, you feel the insidious creep of [power_source] enter your bones, your very shadow and soul. You find yourself with an unnatural knowledge of the [initial(language_granted.name)]; but the amulet's eye stares back at you with a gleeful intent. Causing you to shiver with unease, you don't want to keep this on forever.")) + +/obj/item/clothing/neck/necklace/translator/proc/on_necklace_unequip(obj/item/source, mob/living/carbon/human/unequipper) + SIGNAL_HANDLER + + if(!istype(unequipper)) + return + + if(unequipper.wear_neck != source) + return + + unequipper.remove_language(language_granted, source = LANGUAGE_TRANSLATOR) + UnregisterSignal(source, COMSIG_ITEM_DROPPED) + + if(!silent) + to_chat(unequipper, span_boldnotice("You feel the alien mind of [power_source] lose its interest in you as you remove the necklace. The eye closes, and your mind does as well, losing its grasp of [initial(language_granted.name)]")) + +/obj/item/clothing/neck/necklace/translator/hearthkin + name = "gemmed necklace" + desc = "A necklace crafted from a gem found in the frozen wastes. This imbues overdwellers with an unnatural understanding of the Hearthkin while worn." + language_granted = /datum/language/siiktajr + power_source = "a dark nature" diff --git a/modular_nova/modules/xenoarch/code/modules/research/xenoarch/xenoarch_reward.dm b/modular_nova/modules/xenoarch/code/modules/research/xenoarch/xenoarch_reward.dm index 037d1949327..2bfb3102c66 100644 --- a/modular_nova/modules/xenoarch/code/modules/research/xenoarch/xenoarch_reward.dm +++ b/modular_nova/modules/xenoarch/code/modules/research/xenoarch/xenoarch_reward.dm @@ -67,7 +67,8 @@ GLOBAL_LIST_INIT(clothing_reward, list( /obj/item/clothing/under/costume/gladiator/ash_walker/robe = 1, /obj/item/clothing/under/costume/gladiator/ash_walker/tribal = 1, /obj/item/clothing/under/costume/gladiator/ash_walker/white = 1, - /obj/item/clothing/neck/necklace/ashwalker = 1, + /obj/item/clothing/neck/necklace/translator = 1, + /obj/item/clothing/neck/necklace/translator/hearthkin = 1, /obj/item/clothing/head/helmet/gladiator = 1, /obj/item/clothing/under/costume/gladiator/ash_walker = 1, )) diff --git a/tgstation.dme b/tgstation.dme index 2bce85421f1..ff78bb773fe 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -6394,6 +6394,7 @@ #include "modular_nova\master_files\code\modules\clothing\head\cowboy.dm" #include "modular_nova\master_files\code\modules\clothing\head\monkey_magnification_helmet.dm" #include "modular_nova\master_files\code\modules\clothing\masks\_masks.dm" +#include "modular_nova\master_files\code\modules\clothing\neck\_neck.dm" #include "modular_nova\master_files\code\modules\clothing\outfits\ert.dm" #include "modular_nova\master_files\code\modules\clothing\outfits\standard.dm" #include "modular_nova\master_files\code\modules\clothing\shoes\bananashoes.dm" @@ -7288,7 +7289,6 @@ #include "modular_nova\modules\ghostcafe\code\ghostcafeturf.dm" #include "modular_nova\modules\ghostcafe\code\hilbertshotel_ghost.dm" #include "modular_nova\modules\ghostcafe\code\robot_ghostcafe.dm" -#include "modular_nova\modules\gladiator\code\datums\ruins\lavaland.dm" #include "modular_nova\modules\gladiator\code\game\objects\items\gladiator_items.dm" #include "modular_nova\modules\gladiator\code\modules\mob\living\simple_animal\hostile\megafauna\markedone.dm" #include "modular_nova\modules\goofsec\code\cellphone.dm" From 324ee09573f372c7731d4e0ecdf2e4c59e127465 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:31:21 +0300 Subject: [PATCH 30/72] [MIRROR] Removes the old toolbox arena code (#2179) * Removes the old toolbox arena code (#81707) ## About The Pull Request This machine was added 5 years ago to be used for events like the toolbox tournament, but it has since been deprecated and unused (toolbox tournament has made their own version of the console that works much better and uses TGUI), making this machine not worth touching. After some discussions in discord, we said the better option would be to remove this machine and leave the toolbox tournament branch keep using their machine, rather than to port the toolbox version to TG where it will continue to not be used in-game. fun fact: This used to have a feature where it gave antag hud icons to the members of each team, it was removed when antag huds got refactored 3 years ago, hence why I'm removing an antag hud icon. ## Why It's Good For The Game Already explained, this machine has no purpose as it is now, and a new tgui UI won't save it. ## Changelog Nothing player-facing. * Removes the old toolbox arena code --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> --- code/game/machinery/computer/arena.dm | 411 ------------------------- code/game/objects/effects/countdown.dm | 13 - config/arenas/README.md | 3 - icons/mob/huds/antag_hud.dmi | Bin 8774 -> 8761 bytes tgstation.dme | 1 - 5 files changed, 428 deletions(-) delete mode 100644 code/game/machinery/computer/arena.dm delete mode 100644 config/arenas/README.md diff --git a/code/game/machinery/computer/arena.dm b/code/game/machinery/computer/arena.dm deleted file mode 100644 index 97d89c24140..00000000000 --- a/code/game/machinery/computer/arena.dm +++ /dev/null @@ -1,411 +0,0 @@ -#define ARENA_RED_TEAM "red" -#define ARENA_GREEN_TEAM "green" -#define ARENA_DEFAULT_ID "arena_default" -#define ARENA_CORNER_A "cornerA" -#define ARENA_CORNER_B "cornerB" - -/// Arena related landmarks -/obj/effect/landmark/arena - name = "arena landmark" - var/landmark_tag - var/arena_id = ARENA_DEFAULT_ID - -/obj/effect/landmark/arena/start - name = "arena corner A" - landmark_tag = ARENA_CORNER_A - -/obj/effect/landmark/arena/end - name = "arena corner B" - landmark_tag = ARENA_CORNER_B - -/// Controller for admin event arenas -/obj/machinery/computer/arena - name = "arena controller" - - interaction_flags_machine = INTERACT_MACHINE_ALLOW_SILICON|INTERACT_MACHINE_SET_MACHINE|INTERACT_MACHINE_REQUIRES_LITERACY - - /// Arena ID - var/arena_id = ARENA_DEFAULT_ID - /// Enables/disables spawning - var/ready_to_spawn = FALSE - /// Assoc list of map templates indexed by user friendly names - var/static/list/arena_templates = list() - /// Were the config directory arenas loaded - var/static/default_arenas_loaded = FALSE - /// Name of currently loaded template - var/current_arena_template = "None" - // What turf arena clears to - var/empty_turf_type = /turf/open/indestructible - // List of team ids - var/list/teams = list(ARENA_RED_TEAM,ARENA_GREEN_TEAM) - /// List of hud instances indedxed by team id - var/static/list/team_huds = list() - /// List of hud colors indexed by team id - var/static/list/team_colors = list(ARENA_RED_TEAM = "red", ARENA_GREEN_TEAM = "green") - // Team hud index in GLOB.huds indexed by team id - var/static/list/team_hud_index = list() - - /// List of ckeys indexed by team id - var/list/team_keys = list() - /// List of outfit datums/types indexed by team id, can be empty - var/list/outfits = list() - /// Default team outfit if `outfits[team]` is empty - var/default_outfit = /datum/outfit/job/assistant - - /// Is the arena template loading in - var/loading = FALSE - - //How long between admin pressing start and doors opening - var/start_delay = 30 SECONDS - //Value for the countdown - var/start_time - var/list/countdowns = list() //List of countdown effects ticking down to start - - //Sound played when the fight starts. - var/start_sound = 'sound/items/airhorn2.ogg' - var/start_sound_volume = 50 - -/obj/machinery/computer/arena/Initialize(mapload, obj/item/circuitboard/C) - . = ..() - LoadDefaultArenas() - -/** - * Loads the arenas from config directory. - * THESE ARE FULLY CACHED FOR QUICK SWITCHING SO KEEP TRACK OF THE AMOUNT - */ -/obj/machinery/computer/arena/proc/LoadDefaultArenas() - if(default_arenas_loaded) - return - var/arena_dir = "[global.config.directory]/arenas/" - var/list/default_arenas = flist(arena_dir) - for(var/arena_file in default_arenas) - var/simple_name = replacetext(replacetext(arena_file,arena_dir,""),".dmm","") - INVOKE_ASYNC(src, PROC_REF(add_new_arena_template), null, arena_dir + arena_file, simple_name) - -/obj/machinery/computer/arena/proc/get_landmark_turf(landmark_tag) - for(var/obj/effect/landmark/arena/L in GLOB.landmarks_list) - if(L.arena_id == arena_id && L.landmark_tag == landmark_tag && isturf(L.loc)) - return L.loc - -/obj/machinery/computer/arena/proc/get_load_point() - var/turf/A = get_landmark_turf(ARENA_CORNER_A) - var/turf/B = get_landmark_turf(ARENA_CORNER_B) - return locate(min(A.x,B.x),min(A.y,B.y),A.z) - -/obj/machinery/computer/arena/proc/get_arena_turfs() - var/lp = get_load_point() - var/turf/A = get_landmark_turf(ARENA_CORNER_A) - var/turf/B = get_landmark_turf(ARENA_CORNER_B) - var/turf/hp = locate(max(A.x,B.x),max(A.y,B.y),A.z) - return block(lp,hp) - -/obj/machinery/computer/arena/proc/clear_arena() - for(var/turf/T in get_arena_turfs()) - T.empty(turf_type = /turf/open/indestructible) - current_arena_template = "None" - -/obj/machinery/computer/arena/proc/load_arena(arena_template,mob/user) - if(loading) - return - var/datum/map_template/M = arena_templates[arena_template] - if(!M) - to_chat(user,span_warning("No such arena")) - return - clear_arena() //Clear current arena - var/turf/A = get_landmark_turf(ARENA_CORNER_A) - var/turf/B = get_landmark_turf(ARENA_CORNER_B) - var/wh = abs(A.x - B.x) + 1 - var/hz = abs(A.y - B.y) + 1 - if(M.width > wh || M.height > hz) - to_chat(user,span_warning("Arena template is too big for the current arena!")) - return - loading = TRUE - var/bd = M.load(get_load_point()) - if(bd) - current_arena_template = arena_template - loading = FALSE - - message_admins("[key_name_admin(user)] loaded [arena_template] event arena for [arena_id] arena.") - log_admin("[key_name(user)] loaded [arena_template] event arena for [arena_id] arena.") - - - -/obj/machinery/computer/arena/proc/add_new_arena_template(user,fname,friendly_name) - if(!fname) - fname = input(user, "Upload dmm file to use as arena template","Upload Map Template") as null|file - if(!fname) - return - if(!friendly_name) - friendly_name = "[fname]" //Could ask the user for friendly name here - - var/datum/map_template/T = new(fname,friendly_name,TRUE) - if(!T.cached_map || T.cached_map.check_for_errors()) - to_chat(user,"Map failed to parse check for errors.") - return - - arena_templates[T.name] = T - message_admins("[key_name_admin(user)] uploaded new event arena: [friendly_name].") - log_admin("[key_name(user)] uploaded new event arena: [friendly_name].") - -/obj/machinery/computer/arena/proc/load_team(user,team) - var/rawteam = tgui_input_text(user, "Enter team member list (ckeys separated by comma)", "Team List", multiline = TRUE) - if(isnull(rawteam)) - return - for(var/i in splittext(rawteam, ",")) - var/key = ckey(i) - if(!i) - continue - add_team_member(user,team,key) - -/obj/machinery/computer/arena/proc/add_team_member(mob/user,team,key) - if(!key) - var/list/keys = list() - for(var/mob/M in GLOB.player_list) - keys += M.client - var/client/selection = tgui_input_list(user, "Select a player", "Team member", sort_key(keys)) - //Could be freeform if you want to add disconnected i guess - if(isnull(selection)) - return - key = selection.ckey - if(!team_keys[team]) - team_keys[team] = list(key) - else - team_keys[team] |= key - to_chat(user,"[key] added to [team] team.") - -/obj/machinery/computer/arena/proc/remove_member(mob/user,ckey,team) - team_keys[team] -= ckey - to_chat(user,"[ckey] removed from [team] team.") - -/obj/machinery/computer/arena/proc/spawn_member(obj/machinery/arena_spawn/spawnpoint,ckey,team) - var/mob/oldbody = get_mob_by_key(ckey) - if(!isobserver(oldbody)) - return - var/mob/living/carbon/human/M = new/mob/living/carbon/human(get_turf(spawnpoint)) - oldbody.client.prefs.safe_transfer_prefs_to(M, is_antag = TRUE) - M.set_species(/datum/species/human) // Could use setting per team - M.equipOutfit(outfits[team] ? outfits[team] : default_outfit) - M.faction += team //In case anyone wants to add team based stuff to arena special effects - M.key = ckey - -/obj/machinery/computer/arena/proc/change_outfit(mob/user,team) - outfits[team] = user.client.robust_dress_shop() - -/obj/machinery/computer/arena/proc/toggle_spawn(mob/user) - ready_to_spawn = !ready_to_spawn - to_chat(user,"You [ready_to_spawn ? "enable" : "disable"] the spawners.") - log_admin("[key_name(user)] toggled event arena spawning for [arena_id] arena.") - // Could use update_appearance on spawnpoints here to show they're on - if(ready_to_spawn) - for(var/mob/M in all_contestants()) - to_chat(M,span_userdanger("Arena you're signed up for is ready!")) - -/obj/machinery/computer/arena/proc/all_contestants() - . = list() - for(var/team in team_keys) - for(var/key in team_keys[team]) - var/mob/M = get_mob_by_key(key) - if(M) - . += M - -/obj/machinery/computer/arena/proc/reset_arena() - clear_arena() - set_doors(closed = TRUE) - -/obj/machinery/computer/arena/proc/get_spawn(team) - for(var/obj/machinery/arena_spawn/A as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/arena_spawn)) - if(A.arena_id == arena_id && A.team == team) - return A - -/obj/machinery/computer/arena/proc/start_match(mob/user) - //TODO: Check if everyone is spawned in, if not ask for confirmation. - var/timetext = DisplayTimeText(start_delay) - to_chat(user,span_notice("The match will start in [timetext].")) - for(var/mob/M in all_contestants()) - to_chat(M,span_userdanger("The gates will open in [timetext]!")) - start_time = world.time + start_delay - addtimer(CALLBACK(src, PROC_REF(begin)),start_delay) - for(var/team in teams) - var/obj/machinery/arena_spawn/team_spawn = get_spawn(team) - var/obj/effect/countdown/arena/A = new(team_spawn) - A.start() - countdowns += A - -/obj/machinery/computer/arena/proc/begin() - ready_to_spawn = FALSE - set_doors(closed = FALSE) - if(start_sound) - for(var/team in teams) - var/obj/machinery/arena_spawn/A = get_spawn(team) - playsound(A,start_sound, start_sound_volume) - for(var/mob/M in all_contestants()) - to_chat(M,span_userdanger("START!")) - //Clean up the countdowns - QDEL_LIST(countdowns) - start_time = null - updateUsrDialog() - - -/obj/machinery/computer/arena/proc/set_doors(closed = FALSE) - for(var/obj/machinery/door/poddoor/D as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/door/poddoor)) - if(D.id != arena_id) - continue - if(closed) - INVOKE_ASYNC(D, TYPE_PROC_REF(/obj/machinery/door/poddoor, close)) - else - INVOKE_ASYNC(D, TYPE_PROC_REF(/obj/machinery/door/poddoor, open)) - -/obj/machinery/computer/arena/Topic(href, href_list) - if(..()) - return - var/mob/user = usr - - if(!user.client.holder) // Should it require specific perm ? - return - - if(href_list["upload"]) - add_new_arena_template(user) - if(href_list["change_arena"]) - load_arena(href_list["change_arena"],user) - if(href_list["toggle_spawn"]) - toggle_spawn(user) - if(href_list["start"]) - start_match(user) - if(href_list["follow"]) - var/mob/observed_team_member = locate(href_list["follow"]) in GLOB.mob_list - if(observed_team_member) - user.client?.admin_follow(observed_team_member) - if(href_list["team_action"]) - var/team = href_list["team"] - switch(href_list["team_action"]) - if("addmember") - add_team_member(user,team) - if("loadteam") - load_team(user,team) - if("outfit") - change_outfit(user,team) - if(href_list["special"]) - switch(href_list["special"]) - if("reset") - reset_arena() - //Just example in case you want to add more - if("randomarena") - load_random_arena(user) - if("spawntrophy") - trophy_for_last_man_standing(user) - if(href_list["member_action"]) - var/ckey = href_list["ckey"] - var/team = href_list["team"] - switch(href_list["member_action"]) - if("remove") - remove_member(user,ckey,team) - updateUsrDialog() - -// Special functions - -/obj/machinery/computer/arena/proc/load_random_arena(mob/user) - if(!length(arena_templates)) - to_chat(user,span_warning("No arenas present")) - return - var/picked = pick(arena_templates) - load_arena(picked,user) - -/obj/machinery/computer/arena/proc/trophy_for_last_man_standing() - var/arena_turfs = get_arena_turfs() - for(var/mob/living/L in GLOB.mob_living_list) - if(L.stat != DEAD && (get_turf(L) in arena_turfs)) - var/obj/item/reagent_containers/cup/glass/trophy/gold_cup/G = new(get_turf(L)) - G.name = "[L.real_name]'s Trophy" - -/obj/machinery/computer/arena/ui_interact(mob/user) - . = ..() - var/list/dat = list() - dat += "
Spawning is currently [ready_to_spawn ? "enabled" : "disabled"] Toggle
" - dat += "" - for(var/team in teams) - dat += "

[capitalize(team)] team:

" - dat += "
    " - for(var/ckey in team_keys[team]) - var/player_status = "Not Present" - var/mob/M = get_mob_by_key(ckey) - if(M) - //Should define waiting room upper/lower corner and check if they're there instead of generic live/dead check - if(isobserver(M)) - player_status = "Ghosted" - else - player_status = M.stat == DEAD ? "Dead" : "Alive" - dat += "
  • [ckey] - [player_status] - " - dat += "FLW" - dat += "Remove" - //Add more per player features here - dat += "
  • " - dat += "
" - dat += "
Team Outfit : [outfits[team] ? outfits[team] : default_outfit]
" - dat += "Load team" - dat += "Add member" - dat += "Change Outfit" - //Add more per team features here - - dat += "Current arena: [current_arena_template]" - dat += "

Arena List:

" - for(var/A in arena_templates) - dat += "[A]
" - dat += "
" - dat += "Upload new arena
" - dat += "
" - //Special actions - dat += "Reset Arena.
" - dat += "Load random arena.
" - dat += "Spawn trophies for survivors.
" - - var/datum/browser/popup = new(user, "arena controller", "Arena Controller", 500, 600) - popup.set_content(dat.Join()) - popup.open() - -/// Arena spawnpoint -/obj/machinery/arena_spawn - name = "Arena Spawnpoint" - icon = 'icons/obj/machines/beacon.dmi' - icon_state = "syndbeacon" - resistance_flags = INDESTRUCTIBLE - /// In case we have multiple arena controllers at once. - var/arena_id = ARENA_DEFAULT_ID - /// Team ID - var/team = "default" - /// only exist to cut down on glob.machines lookups, do not modify - var/obj/machinery/computer/arena/_controller - -/obj/machinery/arena_spawn/red - name = "Red Team Spawnpoint" - color = "red" - team = ARENA_RED_TEAM - -/obj/machinery/arena_spawn/green - name = "Green Team Spawnpoint" - color = "green" - team = ARENA_GREEN_TEAM - -/obj/machinery/arena_spawn/proc/get_controller() - if(_controller && !QDELETED(_controller) && _controller.arena_id == arena_id) - return _controller - for(var/obj/machinery/computer/arena/A as anything in SSmachines.get_machines_by_type_and_subtypes(/obj/machinery/computer/arena)) - if(A.arena_id == arena_id) - _controller = A - return _controller - -/obj/machinery/arena_spawn/attack_ghost(mob/user) - var/obj/machinery/computer/arena/C = get_controller() - if(!C) //Unlinked spawn - return - if(C.ready_to_spawn) - var/list/allowed_keys = C.team_keys[team] - if(!(user.ckey in allowed_keys)) - to_chat(user,span_warning("You're not on the team list.")) - return - C.spawn_member(src,user.ckey,team) - -#undef ARENA_GREEN_TEAM -#undef ARENA_RED_TEAM -#undef ARENA_DEFAULT_ID -#undef ARENA_CORNER_A -#undef ARENA_CORNER_B diff --git a/code/game/objects/effects/countdown.dm b/code/game/objects/effects/countdown.dm index ab422dda3d1..d83440ee9bd 100644 --- a/code/game/objects/effects/countdown.dm +++ b/code/game/objects/effects/countdown.dm @@ -162,19 +162,6 @@ var/time_left = max(0, (H.finish_time - world.time) / 10) return round(time_left) -/obj/effect/countdown/arena - invisibility = INVISIBILITY_NONE - name = "arena countdown" - -/obj/effect/countdown/arena/get_value() - var/obj/machinery/arena_spawn/A = attached_to - if(!istype(A)) - return - else - var/obj/machinery/computer/arena/C = A.get_controller() - var/time_left = max(0, (C.start_time - world.time) / 10) - return round(time_left) - /obj/effect/countdown/flower_bud name = "flower bud countdown" diff --git a/config/arenas/README.md b/config/arenas/README.md deleted file mode 100644 index 9f31ce2349a..00000000000 --- a/config/arenas/README.md +++ /dev/null @@ -1,3 +0,0 @@ -Add admin arena dmms here. - -**These are fully cached so keep this directory empty by default.** \ No newline at end of file diff --git a/icons/mob/huds/antag_hud.dmi b/icons/mob/huds/antag_hud.dmi index aa96f2338b250e72197c6ffe35d34ea531ce6b77..bb44e3de9568f13f1e1cd5eb36d4511e66119e41 100644 GIT binary patch literal 8761 zcmch7cT^Kk^zSBsgiZvh(v>RJMiU4{sx(2G6a@t7(mO$V?^Pf{y7VT!C?W_7K}rw= zqzMR-9!em2@%R3C=e$4PIp25A?wy&P-TRqa=I))@jnmgvr=et{1OR|WQ$y7d06@el z2!LE67Ee7ZUjP7@G|!TpF^O$@A5ircXs1pD%YoUk`g{-KTD}NaW0pFBtfD} zGI$DI7>h|RNwb4sXvt0uHnlra`bW1s@8TTwe+P3&kY?VM^>pV(l)9ylP56Ng6dLaR zGH+R%>nq`khea?YJC*Yf93BSg20`|-nKQI6{qI~)5zFGgTT6yEN<>{(D|V3g-dvlI zUPba9-w$rTdLj|r&Uo@k$Y||-rR_uC`6Q+M_Ey~Z=SHL%sM1~`fNk7_Ety1T$`0fdx_yi3$7@aGeEq4 z{=hUtRCL|!Zj6%e-xMh`l|-hy0+hp9FXS&A;=Y{?#zuRH7;;G5!K;_m`W;{!zI;#= zTkHu8w5l8oG`;{QVA_p4zS}VX0N0+TD$K~g08<#`Z#5Y}O(Dn55#HIU zDbq?_KUNpx02Lx|@<-P5i12?l;Bs*%2V77dG=)4y6#cJfP0g8lzf>aP;tYP1D$6UY zATE3=5I+n|sD!^6Jzwf12rjuh*IS)lOJjm+#ImdUg}PIU^<8*gm-D3#yYR~Lgbt6< zUTtcUCFo03>X5!x)@S}I!W>SajJo19RICy+(HHjGR?)d1cmPgKLMc9@iCkq-5?}w! zCj&=u2Pzhk0F@R~`$kCV;JvSu$QG}(O)>KznZ7^m@9*_b3wz&hnjU9WWUEDlC1(t! zta@9pdwx!NKeiQrWvAOWL&@^No=wBUwwFNvBAU&>#3UxN;QIRersvOjWy1(~3XZqn zn|2YYT*<%b*d z(Z(&i`F$1tWorThkgDK&queUs+V`PkQlNXUo)G6cMEA0TcI(25r*O&HZnK`F3o={4 zg%Sih31H#2X1Qd@NZ`z4oxNY+MYn3zh7BD70Q$- zKu^C?_TQzX7gS)UAdN2;Ag6a_;2&o*=oe%ka2jTYzVSpDR=PNrzMf1_R=*4SU%hQ$7HInMWHM6^#?;c`*psRA}7W^Hu>}FV$A{P zVu$e}j%oZzmWX&DZhwE@0K@elFcTBxVtwZPA%gc!6I9iA=3DZ4{x55o*-fQKy-ngU z2+YjP%(UBIvRtG?P$iM5{;Jsx?8UZWgl?cMRu*v&N05(6G?4Mk|CZhrX zMDRhJp+L*Lb#HKov0@lLSQNXux+)|jL;>hqm~2SrutJbkRhm@{vzVOeESa%&vV)en z`s!+*0xD9e<2iA!#V~GhZ^8&4yrw4DZZ(Pa_=nm37+$!BGm{_R-4EQ@r2v8R$8x}1 z{3V0L*_hlba@4EB8)_OG)(tkGY*CA7`_XJOUL?uZ#o@;I(82m>WAK@$HmNreoSczK zc02nPtb4p-Fx1SF^=iV^LLW8z;r%T$&YHS9rkgj%I$yswKMmdw+{wu*7MutmsM*`^ zt*-&9rQX#rCJ-_kB`lL{J0i@J^&W((K!j?MqPhTRYYcWd5YWPG{QjM8hrc+R;io{D zI9Z2o_~M#$TSE}z%;pT84XNO8xNXTt<%6@}5sXPmK3hDS?5w+>6Y4n^x3Ew#Emm7g zBjxgsld#jKKS7PA7-v#M`gMe|bx&b_r2Rme#asO8;^o&j_vw(niDjtgiMCZ7NUVO( zLpw&BUCK?>hahYnJjV{dE?zW;*dL+R!zdmbl~-V`^Prt!>tK57Y+kwT7tRTNE~!4Z z24OdYusa`iet6Z`=h1PoKUd_Hz&{HO zNc%Qws&ufI5#+~ll-s7-Z&|U06@_}B?|y(!hX-&1<0Lk?35@j-xL-oY+h15>fQ6b0 z`2Rx^529d!=Rp(3^W^ZzcG%3_>uwA6-+nKT)7=8#k)bB$)v2@F-j-C8UIxNI^6?kv z!tDWaDU#Tf6am-mfgBmk#(GsNg8qIiZQEaFidPYvJoV{pgd*`-T-frwUX@(I-7I#*3ibq^?6P|h%dO_ip7YA9hP%wbcZ^|1eRf4Mf(PN zYl|e=%S1>9hlU=HPB3L6N%ia%)}`ATe0lz+^jW`T;pF1d%gPef(7Cww;;ZSFw26Tv zJKw`wCQgbxZuC880aE2B^Dz@SmeJpaQdF|D+VIL>^)~(1n<}x2iVcA31BVWq&kXX~ z;7&5weK(l?!zc9av@!rt9P&gzWufRfVr#;mAE0t(4zy=e5(J}QPw4$+?U`n-pR(vx zd_DL`c+fh2=573&sV766cEWJ*%uoQE)9T0;)lHfrNny|p^7wI3O}2fVlaL! zb75)63BFALn`flr|rC zGg{=rz42R<6?|f1V+^>iKUCqAHuh)UDLZJAs3=o2tG^9Iwt{N!F9x*mia$)Ki>V347shh2de4o2`&Ooi-%q(? zKfNmO2}9#ZY;e?oSAvzGXMV3b}*!GNsmuG zS=Gy{*#S%F>7`d&Ejsy%A3Z+KRdg#DP@n=zXo$Cj;IPy9@o{X)yaVwa8nJwX`~P{S zCT2&$y6sBnj|K!(=;SY#7f~wu*aK7EGQAgM@vyX=5zhr)!7!^hMRlNf<9guk`pa!_~V#5M81iTuVIyMuNOZ z!6SjrKWE;-H6QTJ8QGI5zsJZAK$+2_`KtZDFK+wHHXl}<^3Wg^z1znfkKa`l7Aoh7 zoXGAJxic%tcETqoFzcMh!Hq6H8R_Xn==j$Hgx6D3MmKKWG}|!ZwZLg$*JWxM<5D4x zygNJo*uiywqD1nz70<7t3vn58_>_Z$2Dz|-@6nXF^0|9JchZ$$;n2w!FGjRF@A|KBC)^tL%x;HhvCV!qyD48qn2E82;PEDa~(77tdGy)PUZRC@ch; zy6k6bTe2Q3>jhZN``L_w9E*(*RduL_7TEBkGL9cBddh5osU^s-he_*C6g3XBtcYqg zd0nWty~Lr2t|g6!z0A7JD{Hw@pCUZ|(Vg)%=a(;Wj$y{y2?qv{{&@qSntgBO$4!cj z?C2SRUAdzZE!VCl!rvRnEOvc+>-Pt~6*-rLr|-V+GB1n4AF%q@U03pJ`Bk(*5^8Bi z!TnL9fFDOAQ%q#`!e4*lJ-={ucynS=;xmF zwzSI{{Ylvnz$5y?N(cCpcnF2p+f}>?r5gygFXi6Mr=QA@K^VYk6@$VNwk+i_C}NH* zQzCvftw1)v#19+961|_Qq1j(2T^*E2P!5fL#**?%9oU#RwAR=jn*aum=y$*#Jjq+3 z!VT385D6VRZgW~CWQkW7$7S%CWu?9ZbqT!?V9C*}h^PRK`y`hD(fcfZq#ng7IIH2+ zkJJPHiI%|FdTyHejw2CfjLDAWvr6ZI0$k%+ki#M1Pbo1F{HQ$@{n~G))2pxOS?@z{ zW1v$ClY^kO%dKZ6dUipIO7r3EuV{b><1_pB>p`=IMB>m>4ccGTV+_PZKBiw&DOxgD zgN`J`m|PJ(PVCm9p965Qt|ipKWD>ME0VjZ^_9F z1Shqp662TzGsPUKQf71~x#up0vVT6j=DMNgd>z=Bw(4k2R<(n>Q7u&vjeB4ec+ulN z+W_N72nFv@OmcE)conhh5X;IVHYbM)`i~-jpD6>XRldC!!o4{c1WMaGKuB(lUZ*Co z@H#joqeQ`PpVCVKY?@%!<)-J!rKc1?Z&tywpmQ|8POeQ)CVz0vrR;C{`?+k3G9VyU zZ!1Y=oaTuq&CCjyCry8(f)eZsaqd&ZDQWf$KkY!9-!ggw=xYipa-YaH%7r9H4@%3a zJOpIqypF8YKmSl+(|qkY9Y(kGvrC(}IKutmuunoo)35{RE)m|Tm(SKXUYWic7g$+b zTz%!eo1^72i@x-#2iu8{jtemZB1hstoMEaU3Vp4T@ijN;I#9f~^giGkh5t2>hPMxi za1@eHD0Dl>H^-;p*}xT@TnQMb#WEq1f`Oh1>dch75R55^e5(o zZCUQGlck^gHoCrTK2=q=!XEdnd;4hiYhSd&*GK$8W}IQUZ*;It2N1Xxx9kxvBCrdb zg|($K$7_g&KHeR1xpb6)6G#1h;#$V#rN^i^0Li1LMof;(Ym!TD zbbKg%M{qYV6t7WGbTNQ`rI^j8M3;v?xq)n67jV#Kz?jaro{Bg+%cdnlyxmP%oz5B! z7kapK$GA`Y*sFr2WmM+<=-n`JvBL@3OFfS+zXAD{*`J&1iS8g3aDjDVs2n+q3+3e)!3wk2}JN4&j-2<$vcZMmEusEKI#&_y-Q{laz1 z)Z{+z&mm(B*NUSwjj6)DgNe(kMypo(8#l`g4~r)%1WvwedbnY#0*M#WDWUDQf0B+4 z@_h`#c00!W1iBo8+adrf%l-T7?_-jJ65sdX8tgY5aJ1k1ZqiM8jw7z6c>g@S&;Qx) zRA+Z*@1)*dEmKe=vvN_ZGSYBYyUhB+&nhN_B1^FE3b1x~Hazw-@Aj9CL+G6v-OSuv z<&3^pyH#J7+D{k*mz-R^&Myz93PStjvvPC4W6;0!w9DB0vZl9od-g5N*7UTELkZf^ z$q9~p<{^Hr=%kRT^Gmcs=Y%YNYmsDR_iQ+WuhVYz2$vBXE4C=6B&79nD-q{`ru+SC zeJPvgO8=;{GA>6yNsg|(^dq3F-(wm>4wHGJzb;< zO5r2{mBzgA1YFDZ7)mi-C0p*8)9499qV6$mEeIv!^z-(V5 z9SWcRGmlCqCC)oa!C^?$&1JE0F)O?)Yv>t_0_y@I9{+03XYM#Pi<=!JSUa|D{mxqq zA?~p;{xHQ^CCx4cQadkIL&fXO1h8$K18eL}FT=JaySrZ$HXuyADQKgQ|0J=_&%{@Y z;Q8z7PT!p3S`;?$#cutacoMkSM*Sj7gz*yBBcS0Au4F4-&EgaDcFJ2ntn9x1BaO&) zPSgzmiw`SpqWDSp#85OxsBvY4r$XdsPv*5;YeVWE>h$uwi7u^}m^*P&o&2EJi0xsM zyzwB3e<}4*X8{-R9&vV6Nst%yY?tUavOClvHTiah^1fl^U3q7JUhET9kWVZdiP%+v zw$utDoSHq&Xo`*;#PmIC!4jabRuO2?do zU)0dMt)+Bw%B^1mpC3E~xHH0}C{bzD-OneO{te~j@9H;$Urp{Oh%mWAt!I8}nB1CM zX{Z$?PwnumCx-Yfr^~}MaedJFX_-@Zr0`FlOUCY&tsQ)E{E`p{88(j;d3Ej{|3svV5NCtxcNAmel{f|1?zv`zHzG(EI86 zAog9+JdM0O>d%!~bzn_~V;Exdb=DW)F-YC$H4S4lv2!jW*AF^nl=5LC^_aG_MQub~ z6I|*AhX9%G*5NV2p%vdkwY8~MR#*2?-2s9D$HvvVvzq=(Vm;v{-W8_YofJ6W76xf}b{rA!E|3uu}1YaK;IZ2rG zVn~sJbyQ)S-UQYSpF}e0xC6UPuq$9o+iKtKWDt;aLc3wmX*p*=*0jR%4|7O!k@+K5 zJ_Zn=-FI7O+o#}sNgfPWKxYT|5(qx4yS%+P0vCEgprxKlBJdN-Tz9MaXwI^4u$-(K z^5ze{-jJ>%{A$v0se*+w84&!dZ|qP;PQ2_k6E?AF^9mih}SJo?sd}idx2`7p$ z+>8ED1A?jmz#T-`I}PW9i-U6tk)<9=UT|qIpz{y43j5`vL*1?KV}G$Js)4` zW@D6*IzZ{+{OG}HU3ZXCUTZ2Xr_j`Hjq{!{YfuAh*kh^9-DJvkS|*&R zg*gdfDN)(HZ4}`*3=7k*!@cnz)eb+^SZo*$6a|VLSsPw(9gSJAbC3IVy<-19fvF7( zV)~S7@=imYu(WW3E~HAe1j&VKAjQyjR`8r_Ayc@eGu&5gxYQrrRJ4Y z1h$S!N6+S)xl`|wNfLK_LawFWRkJv##~!^*#FW-hwyn-{EIg1xQs(U?WRfN_aa67x zM@>fV>{h#-)prCTawQxgNw8a-);UqkIW5nmp4c9!+DxA7d6*gVOBmE1k~kDTc3CtRwGs}ZO)Ic|OVrmVQdst(b1BjGwsiL(L5Q%O4_7AAchCpp;u)de z&oIgL?~cipYdc-GsMN1n420RY>Oq3Mk=4gJ-Mt?9`k0IKcRs88r=7Qmicf+W!$jEH zYlInM4u&?{BgINwSoAkMtZzhj8>$_%K5j`l)3!?=Uqq)ERZyNt{HnCh-#6>=f_WXp`6o&C5hVRUXTa~{FMpn|3ff28WMi*9QZX+vaYvK`~! z|3Q?=ew5x793z=p@D!M=ggnXex8J)zYjtHa-b>u0vhL z7+zXx%kxq`4(A4w!WbaVT)!r6C#8ko)Q0x>9N>jTDvGZmuE3j;G+cT7V>f^@y zR-ag9yTW7$0N{B8&1l6>=-yf;V2Yx>FNl~fr`sx=)=3XRsmpyiyuaq#v}f;IQu%1b zh@>PXZKl4PRb@2x7_qf&RRiXgSZKp{i@%u;<&2395Q=_Xz<)!K0~rs0)RFOn0tTTg%_XOn<`ha{&xq=*O_?>m$m}{bJBi} zgEwqs5`kNq4B>B|MFJAk46OBJ@C^`g1NJ|0@c)bHMVR*|Vb6E1yBWk^LI6!QUDY~e Ho7evfV0d4v literal 8774 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 bSkPlfwUws@m|)!hA%KR8u5ziOP4NE#0~T`F diff --git a/tgstation.dme b/tgstation.dme index ff78bb773fe..194517689c7 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2099,7 +2099,6 @@ #include "code\game\machinery\computer\accounting.dm" #include "code\game\machinery\computer\aifixer.dm" #include "code\game\machinery\computer\apc_control.dm" -#include "code\game\machinery\computer\arena.dm" #include "code\game\machinery\computer\atmos_alert.dm" #include "code\game\machinery\computer\buildandrepair.dm" #include "code\game\machinery\computer\camera.dm" From 332cf3287de61abbeeecaf8df6d89a68bbbc0d92 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:39:50 +0300 Subject: [PATCH 31/72] [MIRROR] [NO GBP] Reverses the logic for body collision to determine knockdown (#2180) * [NO GBP] Reverses the logic for body collision to determine knockdown (#81712) ## About The Pull Request The body that is thrown at someone having knockdown proofing is not what determines whether the victim of the collision is knocked over, but the victim themselves having this trait. ## Why It's Good For The Game I have ADHD. ## Changelog :cl: fix: Being in a Swat Suit appropriately protects you from collisions with a body, rather than the body thrown at you having these protections protecting YOU, the victim of the collision. /:cl: * [NO GBP] Reverses the logic for body collision to determine knockdown --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com> --- code/modules/mob/living/carbon/carbon.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 27742552e93..147419272a5 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -85,7 +85,7 @@ span_userdanger("You violently crash into [victim][extra_speed ? " extra hard" : ""], but [victim] managed to block the worst of it!")) log_combat(src, victim, "crashed into and was blocked by") return - else if(HAS_TRAIT(src, TRAIT_BRAWLING_KNOCKDOWN_BLOCKED)) + else if(HAS_TRAIT(victim, TRAIT_BRAWLING_KNOCKDOWN_BLOCKED)) victim.take_bodypart_damage(10 + 5 * extra_speed, check_armor = TRUE, wound_bonus = extra_speed * 5) victim.apply_damage(10 + 10 * extra_speed, STAMINA) victim.adjust_staggered_up_to(STAGGERED_SLOWDOWN_LENGTH * 2, 10 SECONDS) From c082501fa94360874f0032ba61f9e5763d47b317 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:40:05 +0300 Subject: [PATCH 32/72] [MIRROR] fixes inability to create material airlocks (#2183) * fixes inability to create material airlocks (#81711) ## About The Pull Request Fixes https://github.com/tgstation/tgstation/issues/81710 runtime due to parent proc not returning the airlock also added an update_appearance() ## Changelog :cl: fix: You can build material airlocks again /:cl: * fixes inability to create material airlocks --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com> --- code/game/objects/structures/door_assembly.dm | 1 + code/game/objects/structures/door_assembly_types.dm | 1 + 2 files changed, 2 insertions(+) diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index de996015e59..f110cd8b43e 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -325,6 +325,7 @@ door.update_appearance() qdel(src) + return door /obj/structure/door_assembly/update_overlays() . = ..() diff --git a/code/game/objects/structures/door_assembly_types.dm b/code/game/objects/structures/door_assembly_types.dm index 36b41fbc326..589cad42bca 100644 --- a/code/game/objects/structures/door_assembly_types.dm +++ b/code/game/objects/structures/door_assembly_types.dm @@ -293,4 +293,5 @@ /obj/structure/door_assembly/door_assembly_material/finish_door() var/obj/machinery/door/airlock/door = ..() door.set_custom_materials(custom_materials) + door.update_appearance() return door From cc9dff898bcdc92615d180176edaaa8f822dd69d Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:40:21 +0300 Subject: [PATCH 33/72] [MIRROR] Lowers thermic constant of Cryostylane reaction (#2182) * Lowers thermic constant of Cryostylane reaction (#81709) ## About The Pull Request - Fixes #81687 Thermic constant of Cryostylane reaction now reduced from -7.5 to -1.5. Meaning for every 1u of Cryostylane created the overall temperature of the holder reduces by 1.5k so for e.g. if you create 30u of cryostylane without any heating the temps reduces by 30 * 1.5 = 45k(the drop of temperature increases as the reaction temps grows closer to optimal temperature in our case -200k) When testing upon adding 30u of water, nitrogen & stable plasma and cooling the mixture to 270k via tier1 chem heater you acheive 30u of Cryostylane at 82% purity and the final temps are 180k P.S. adjusted range of chem debuger to include negative values. Helped me in debugging this ## Changelog :cl: fix: Cryostylane reaction now has a moderate & not extreme cooling effect. Helps you achieve more pure amounts of Cryostylane /:cl: * Lowers thermic constant of Cryostylane reaction --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> --- code/modules/reagents/chemistry/recipes/pyrotechnics.dm | 2 +- tgui/packages/tgui/interfaces/ChemRecipeDebug.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index 8e74b0ad6f8..901041b25d7 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -419,7 +419,7 @@ determin_ph_range = 6 temp_exponent_factor = 0.5 ph_exponent_factor = 1 - thermic_constant = -7.5 + thermic_constant = -1.5 H_ion_release = 0 rate_up_lim = 10 purity_min = 0.2 diff --git a/tgui/packages/tgui/interfaces/ChemRecipeDebug.tsx b/tgui/packages/tgui/interfaces/ChemRecipeDebug.tsx index c108966bbb7..a1c53ffb879 100644 --- a/tgui/packages/tgui/interfaces/ChemRecipeDebug.tsx +++ b/tgui/packages/tgui/interfaces/ChemRecipeDebug.tsx @@ -368,7 +368,7 @@ export const ChemRecipeDebug = (props) => { step={0.1} stepPixelSize={3} value={editReaction?.editValue || 0} - minValue={0} + minValue={-1000} maxValue={1000} disabled={editReaction === null} onDrag={(e, value) => From 6bf3c28fb21e340f9024ffb757ee76d867fe6e88 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:40:30 +0300 Subject: [PATCH 34/72] Automatic changelog for PR #2145 [ci skip] --- html/changelogs/AutoChangeLog-pr-2145.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2145.yml diff --git a/html/changelogs/AutoChangeLog-pr-2145.yml b/html/changelogs/AutoChangeLog-pr-2145.yml new file mode 100644 index 00000000000..9ed33509a78 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2145.yml @@ -0,0 +1,4 @@ +author: "yooriss" +delete-after: True +changes: + - rscadd: "The Entombed quirk has been added, allowing characters to start off with a permanently unremovable low-end MODsuit stuck to their back slot. Letting the suit's charge run low will eventually kill you, and the quirk has special interactions with both Ethereals and Plasmamen!" \ No newline at end of file From 034d39e28d78f8d732d0111efbc011c1e8801403 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:40:54 +0300 Subject: [PATCH 35/72] Automatic changelog for PR #2146 [ci skip] --- html/changelogs/AutoChangeLog-pr-2146.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2146.yml diff --git a/html/changelogs/AutoChangeLog-pr-2146.yml b/html/changelogs/AutoChangeLog-pr-2146.yml new file mode 100644 index 00000000000..80cd9c987c3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2146.yml @@ -0,0 +1,4 @@ +author: "Absolucy" +delete-after: True +changes: + - qol: "Constructs now reuse the victim's mind instead of just moving their client" \ No newline at end of file From 447f2595c7c3c663e4d1d6c7d21e3b66e055c78e Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:41:02 +0300 Subject: [PATCH 36/72] Airlock/status light overlays maintenance (#2184) * airlock overlay maintenance * Create shuttle.dmi * document update_fire_status * change fire status to firedoor yellow * vault * fix unrestricted airlocks showing engi alert Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com> --- code/__DEFINES/~nova_defines/airlock.dm | 3 + .../aesthetics/airlock/code/airlock.dm | 132 ++++++++++-------- .../icons/airlocks/abductor/overlays.dmi | Bin 0 -> 3367 bytes .../icons/airlocks/centcom/overlays.dmi | Bin 5863 -> 5988 bytes .../icons/airlocks/clockwork/overlays.dmi | Bin 0 -> 10319 bytes .../icons/airlocks/cult/runed/overlays.dmi | Bin 0 -> 10024 bytes .../icons/airlocks/cult/unruned/overlays.dmi | Bin 0 -> 9813 bytes .../icons/airlocks/external/overlays.dmi | Bin 7028 -> 7056 bytes .../airlock/icons/airlocks/hatch/overlays.dmi | Bin 8669 -> 8596 bytes .../icons/airlocks/highsec/overlays.dmi | Bin 6853 -> 6859 bytes .../airlocks/multi_tile/glass_overlays.dmi | Bin 30806 -> 31969 bytes .../airlocks/multi_tile/metal_overlays.dmi | Bin 26925 -> 28528 bytes .../icons/airlocks/shuttle/overlays.dmi | Bin 4630 -> 10397 bytes .../icons/airlocks/shuttle/shuttle.dmi | Bin 0 -> 5673 bytes .../icons/airlocks/shuttle2/erokez.dmi | Bin 0 -> 4705 bytes .../icons/airlocks/shuttle2/overlays.dmi | Bin 0 -> 4638 bytes .../airlock/icons/airlocks/shuttle2/wagon.dmi | Bin 0 -> 4245 bytes .../icons/airlocks/station/overlays.dmi | Bin 9184 -> 9431 bytes .../icons/airlocks/station2/overlays.dmi | Bin 7185 -> 7411 bytes .../icons/airlocks/survival/overlays.dmi | Bin 0 -> 22431 bytes .../icons/airlocks/tram/tram_overlays.dmi | Bin 7895 -> 7535 bytes .../airlock/icons/airlocks/vault/overlays.dmi | Bin 5705 -> 5866 bytes .../aesthetics/firealarm/icons/firealarm.dmi | Bin 9168 -> 10627 bytes .../aesthetics/firedoor/code/firedoor.dm | 3 +- .../aesthetics/firedoor/icons/firedoor.dmi | Bin 7275 -> 7264 bytes .../firedoor/icons/firedoor_glass.dmi | Bin 7183 -> 7172 bytes .../airlock_override/code/airlock_override.dm | 53 ++++++- 27 files changed, 122 insertions(+), 69 deletions(-) create mode 100644 modular_nova/modules/aesthetics/airlock/icons/airlocks/abductor/overlays.dmi create mode 100644 modular_nova/modules/aesthetics/airlock/icons/airlocks/clockwork/overlays.dmi create mode 100644 modular_nova/modules/aesthetics/airlock/icons/airlocks/cult/runed/overlays.dmi create mode 100644 modular_nova/modules/aesthetics/airlock/icons/airlocks/cult/unruned/overlays.dmi create mode 100644 modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle/shuttle.dmi create mode 100644 modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle2/erokez.dmi create mode 100644 modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle2/overlays.dmi create mode 100644 modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle2/wagon.dmi create mode 100644 modular_nova/modules/aesthetics/airlock/icons/airlocks/survival/overlays.dmi diff --git a/code/__DEFINES/~nova_defines/airlock.dm b/code/__DEFINES/~nova_defines/airlock.dm index 8f0a05e3e61..258da592d57 100644 --- a/code/__DEFINES/~nova_defines/airlock.dm +++ b/code/__DEFINES/~nova_defines/airlock.dm @@ -27,7 +27,10 @@ #define AIRLOCK_LIGHT_POWER 0.5 #define AIRLOCK_LIGHT_RANGE 2 #define AIRLOCK_LIGHT_ENGINEERING "engineering" +#define AIRLOCK_LIGHT_FIRE "fire" +#define AIRLOCK_LIGHT_POWERON "poweron" #define AIRLOCK_POWERON_LIGHT_COLOR "#3aa7c2" +#define AIRLOCK_FIRE_LIGHT_COLOR "#eaeaea" #define AIRLOCK_BOLTS_LIGHT_COLOR "#c22323" #define AIRLOCK_ACCESS_LIGHT_COLOR "#57e69c" #define AIRLOCK_EMERGENCY_LIGHT_COLOR "#d1d11d" diff --git a/modular_nova/modules/aesthetics/airlock/code/airlock.dm b/modular_nova/modules/aesthetics/airlock/code/airlock.dm index 97f043dc3c1..28399c6fe6d 100644 --- a/modular_nova/modules/aesthetics/airlock/code/airlock.dm +++ b/modular_nova/modules/aesthetics/airlock/code/airlock.dm @@ -3,28 +3,17 @@ doorClose = 'modular_nova/modules/aesthetics/airlock/sound/close.ogg' boltUp = 'modular_nova/modules/aesthetics/airlock/sound/bolts_up.ogg' boltDown = 'modular_nova/modules/aesthetics/airlock/sound/bolts_down.ogg' - //noPower = 'sound/machines/doorclick.ogg' var/forcedOpen = 'modular_nova/modules/aesthetics/airlock/sound/open_force.ogg' //Come on guys, why aren't all the sound files like this. var/forcedClosed = 'modular_nova/modules/aesthetics/airlock/sound/close_force.ogg' /// For those airlocks you might want to have varying "fillings" for, without having to /// have an icon file per door with a different filling. var/fill_state_suffix = null - /// For the airlocks that use greyscale lights, set this to the color you want your lights to be. - var/greyscale_lights_color = null /// For the airlocks that use a greyscale accent door color, set this color to the accent color you want it to be. var/greyscale_accent_color = null - - var/has_environment_lights = TRUE //Does this airlock emit a light? - var/light_color_poweron = AIRLOCK_POWERON_LIGHT_COLOR - var/light_color_bolts = AIRLOCK_BOLTS_LIGHT_COLOR - var/light_color_access = AIRLOCK_ACCESS_LIGHT_COLOR - var/light_color_emergency = AIRLOCK_EMERGENCY_LIGHT_COLOR - var/light_color_engineering = AIRLOCK_ENGINEERING_LIGHT_COLOR - var/light_color_deny = AIRLOCK_DENY_LIGHT_COLOR - var/door_light_range = AIRLOCK_LIGHT_RANGE - var/door_light_power = AIRLOCK_LIGHT_POWER - ///Is this door external? E.g. does it lead to space? Shuttle docking systems bolt doors with this flag. + /// Does this airlock emit a light? + var/has_environment_lights = TRUE + /// Is this door external? E.g. does it lead to space? Shuttle docking systems bolt doors with this flag. var/external = FALSE /obj/machinery/door/airlock/external @@ -39,59 +28,57 @@ /obj/machinery/door/airlock/update_overlays() . = ..() - var/pre_light_range = 0 - var/pre_light_power = 0 - var/pre_light_color = initial(light_color) - var/lights_overlay = "" - var/frame_state - var/light_state + var/light_state = AIRLOCK_LIGHT_POWERON + var/pre_light_color switch(airlock_state) if(AIRLOCK_CLOSED) frame_state = AIRLOCK_FRAME_CLOSED if(locked) light_state = AIRLOCK_LIGHT_BOLTS - lights_overlay = "lights_bolts" - pre_light_color = light_color_bolts + pre_light_color = AIRLOCK_BOLTS_LIGHT_COLOR else if(emergency) light_state = AIRLOCK_LIGHT_EMERGENCY - lights_overlay = "lights_emergency" - pre_light_color = light_color_emergency + pre_light_color = AIRLOCK_EMERGENCY_LIGHT_COLOR + else if(fire_active) + light_state = AIRLOCK_LIGHT_FIRE + pre_light_color = AIRLOCK_FIRE_LIGHT_COLOR else if(engineering_override) light_state = AIRLOCK_LIGHT_ENGINEERING - lights_overlay = "lights_engineering" - pre_light_color = light_color_engineering + pre_light_color = AIRLOCK_ENGINEERING_LIGHT_COLOR else - lights_overlay = "lights_poweron" - pre_light_color = light_color_poweron + pre_light_color = AIRLOCK_POWERON_LIGHT_COLOR if(AIRLOCK_DENY) frame_state = AIRLOCK_FRAME_CLOSED light_state = AIRLOCK_LIGHT_DENIED - lights_overlay = "lights_denied" - pre_light_color = light_color_deny + pre_light_color = AIRLOCK_DENY_LIGHT_COLOR if(AIRLOCK_EMAG) frame_state = AIRLOCK_FRAME_CLOSED if(AIRLOCK_CLOSING) frame_state = AIRLOCK_FRAME_CLOSING light_state = AIRLOCK_LIGHT_CLOSING - lights_overlay = "lights_closing" - pre_light_color = light_color_access + pre_light_color = AIRLOCK_ACCESS_LIGHT_COLOR if(AIRLOCK_OPEN) frame_state = AIRLOCK_FRAME_OPEN if(locked) - lights_overlay = "lights_bolts_open" - pre_light_color = light_color_bolts + light_state = AIRLOCK_LIGHT_BOLTS + pre_light_color = AIRLOCK_BOLTS_LIGHT_COLOR else if(emergency) - lights_overlay = "lights_emergency_open" - pre_light_color = light_color_emergency + light_state = AIRLOCK_LIGHT_EMERGENCY + pre_light_color = AIRLOCK_EMERGENCY_LIGHT_COLOR + else if(fire_active) + light_state = AIRLOCK_LIGHT_FIRE + pre_light_color = AIRLOCK_FIRE_LIGHT_COLOR + else if(engineering_override) + light_state = AIRLOCK_LIGHT_ENGINEERING + pre_light_color = AIRLOCK_ENGINEERING_LIGHT_COLOR else - lights_overlay = "lights_poweron_open" - pre_light_color = light_color_poweron + pre_light_color = AIRLOCK_POWERON_LIGHT_COLOR + light_state += "_open" if(AIRLOCK_OPENING) frame_state = AIRLOCK_FRAME_OPENING light_state = AIRLOCK_LIGHT_OPENING - lights_overlay = "lights_opening" - pre_light_color = light_color_access + pre_light_color = AIRLOCK_ACCESS_LIGHT_COLOR . += get_airlock_overlay(frame_state, icon, src, em_block = TRUE) if(airlock_material) @@ -99,30 +86,16 @@ else . += get_airlock_overlay("fill_[frame_state + fill_state_suffix]", icon, src, em_block = TRUE) - if(greyscale_lights_color && !light_state) - lights_overlay += "_greyscale" - - if(lights && hasPower()) + if(lights && hasPower() && has_environment_lights) . += get_airlock_overlay("lights_[light_state]", overlays_file, src, em_block = FALSE) - pre_light_range = door_light_range - pre_light_power = door_light_power - if(has_environment_lights) - set_light(l_range = pre_light_range, l_power = pre_light_power, l_color = pre_light_color, l_on = TRUE) - if(multi_tile) - filler.set_light(l_range = pre_light_range, l_power = pre_light_power, l_color = pre_light_color, l_on = TRUE) - else - lights_overlay = "" - set_light(l_on = FALSE) + . += emissive_appearance(overlays_file, "lights_[light_state]", src, alpha = src.alpha) - var/mutable_appearance/lights_appearance = mutable_appearance(overlays_file, lights_overlay, FLOAT_LAYER, src, ABOVE_LIGHTING_PLANE) + if(multi_tile) + filler.set_light(l_range = AIRLOCK_LIGHT_RANGE, l_power = AIRLOCK_LIGHT_POWER, l_color = pre_light_color, l_on = TRUE) - if(greyscale_lights_color && !light_state) - lights_appearance.color = greyscale_lights_color - - if(multi_tile) - lights_appearance.dir = dir - - . += lights_appearance + set_light(l_range = AIRLOCK_LIGHT_RANGE, l_power = AIRLOCK_LIGHT_POWER, l_color = pre_light_color, l_on = TRUE) + else + set_light(l_on = FALSE) if(greyscale_accent_color) . += get_airlock_overlay("[frame_state]_accent", overlays_file, src, em_block = TRUE, state_color = greyscale_accent_color) @@ -359,6 +332,43 @@ icon = 'modular_nova/modules/aesthetics/airlock/icons/airlocks/highsec/highsec.dmi' overlays_file = 'modular_nova/modules/aesthetics/airlock/icons/airlocks/highsec/overlays.dmi' +//TITANIUM / SHUTTLE +/obj/machinery/door/airlock/titanium + icon = 'modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle/shuttle.dmi' + overlays_file = 'modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle/overlays.dmi' + +/obj/machinery/door/airlock/shuttle + icon = 'modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle/shuttle.dmi' + overlays_file = 'modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle/overlays.dmi' + +//SHUTTLE2 +/obj/machinery/door/airlock/shuttle/ferry + icon = 'modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle2/erokez.dmi' + overlays_file = 'modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle2/overlays.dmi' + +/obj/machinery/door/airlock/external/wagon + icon = 'modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle2/wagon.dmi' + overlays_file = 'modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle2/overlays.dmi' + +//SURVIVAL +/obj/machinery/door/airlock/survival_pod + overlays_file = 'modular_nova/modules/aesthetics/airlock/icons/airlocks/survival/overlays.dmi' + +//ABDUCTOR +/obj/machinery/door/airlock/abductor + overlays_file = 'modular_nova/modules/aesthetics/airlock/icons/airlocks/abductor/overlays.dmi' + +//CULT +/obj/machinery/door/airlock/cult + overlays_file = 'modular_nova/modules/aesthetics/airlock/icons/airlocks/cult/runed/overlays.dmi' + +/obj/machinery/door/airlock/cult/unruned + overlays_file = 'modular_nova/modules/aesthetics/airlock/icons/airlocks/cult/unruned/overlays.dmi' + +//CLOCKWORK +/obj/machinery/door/airlock/bronze + overlays_file = 'modular_nova/modules/aesthetics/airlock/icons/airlocks/clockwork/overlays.dmi' + //MULTI-TILE /obj/machinery/door/airlock/multi_tile diff --git a/modular_nova/modules/aesthetics/airlock/icons/airlocks/abductor/overlays.dmi b/modular_nova/modules/aesthetics/airlock/icons/airlocks/abductor/overlays.dmi new file mode 100644 index 0000000000000000000000000000000000000000..b93c50ad2e4b0185834043eadb44021514f82705 GIT binary patch literal 3367 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 literal 5863 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 qcGHvw?@1R&+#3{??+LzlSB;tBGy@0( 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 literal 0 HcmV?d00001 diff --git a/modular_nova/modules/aesthetics/airlock/icons/airlocks/cult/runed/overlays.dmi b/modular_nova/modules/aesthetics/airlock/icons/airlocks/cult/runed/overlays.dmi new file mode 100644 index 0000000000000000000000000000000000000000..d1c20063f3aa7a2149c4b70ce14920e078a9b279 GIT binary patch literal 10024 zcmc(Fc|4SF+xJ*Yb``Q`Un4|~t+FpsBC-v#?=i9)AyOg4*d>NgcF8)nl6@a!8QWm& zjNKUTrTcf^&+ooJ&-;0w=dbsVxn{2GJdX1`&SUwW-}AgC>Y=VW^(B@|AP|UJQ$s}` z1R}BoK6fvY15ZMG^8A4tYkvb{sEV!EGfzhksH3|Z2;`go)u1`1h3kquyu^3FxnlfD zg&l2!i!>|kF(r9d0)r5p<>=u-K>zpONf+~Gi95RM{aV9>0>3tnni{*I7MQ+XHn~TJ ztM-Y{AjMG|NQh{nKF&lV+0yelvO_80!!_n#6LI_b`}d0|I+9CigatKTlve)eYSfPV zef=$|bC{N(;yVJ@HD%4dhxg*pj2*cse%>TY&+uCPt)H=|ABL`G?g3&A0jZr=yB|jN zPw^Sa9EZzTyA*r440sys`6WM`P87#|TEkssx->wZvkI5L__lS-uX?<1)^gr%@J6pT@`KCF~kUBV#yUC`>mOh(!7XX`nR6fY|8?Zp!=_O0JrONlZVk82FSP&S~z zSmyQcC$YWWOMwrfb9our`^<-A^C$J6*O*;}Xs?=66=HsT61beX8j@4oG`%w4#h_t( zyISbWH|=wW&^q|p>P&r-t^$F$K$yC9ari@E+jG^TnJ$+biqmr~jWol-1<_7vecBn7kNy~lc zG_WqzrvhoT+$;Ew1SjLi@`?^b$ipu@5kf_(;!=^Ci<&9t}+ylSj zhU$Yy;$h{u;=WvcDaheS$(!DZw?XTgh%MbAFgo!mr9QI2pYJ|Hz#Ya*GN zLX*&ul?tAWI1lIu8!|<;=ZH`HEgf8%8fZ1q>iwg5$@A?uSsHz%#VKmQUncxxa-|K7C;m|eLa6ndud_;E}77YAMrB{_N71GD{w$oXca zSZ5)j$6$!(smL#21YU~>wNEQVTnSoVRmRXvKdKJ)IZE-qXFYx!OSWPNJFTVFO2VmK z$+KJ_2$^-qy-z6PJZtDZ{GGIF89_T$8VlMtDsD_<2)^#N8cnp-PU?t^X3NxgF}159fFmYS3|1Jk{VNMp zxgky|e4|w~vA4K|YRFv_M8p(?fNt?S9)lI)8wkY16F|f+Ds%x~sSCcuS@015^q*+Cm{LRT8>tIW? zUQ=#;-qK>f+q_kps~0b(kJuZXw;*w*qiwHbWHma*`ahK?KQB+xnvB~iT}lme zrIi6W{34859u0*bdH2moT~5@U$LzW-VQh=jz@W)RTRXlg-;AePVgck?cM7;48@V(s zEYIDwyL}qvWnB4%hV!RM{o9+}xl5&MZ7iavIzc%`L%w$!Cj9(TOx@U*B=+Bornot8 z^Hdm%f$j@?dAD};I}mj(=Mpv5uJu5{0cjyP!SV%1;hx<>0$|PbqN*F2_u7{5P?$*| zC)tGaxYS`cy%O%t$S0@aEb%NJOW_4*TvkKs&o1m#Z&%l(=VHcY0P?UV9TVS;B4(Aq zNWDCI^d?9^NZQ&%DjGgimjQ>@V0tHFb*igA+n^X6_5gf}1!_Q1nBL8f7V4uEaU>$S zh%e?#GtAON*fnkyK@?WDWFaepA53QmS4Z^S@<^(qOBgIr94LLyya#3MJZQneRlg*h zPc?2wvN|4I-zh5F)u+Q=Udb3SBftPaj4^BUWiXmw4F)v6x zu9p)$)z@XB)l*rX{vo+(PflyY2bI9&mRBG>)OFnO%iA;(o|1_AG#73VXYwIlp2&VN zlJ#sWQa$(57&8qTz+eHXf?-ckg|JgcFbMMnLk`-iqX}^1<;d#xfs{B22~>nod_Y!w zPx+@~^_SM|?P{vtTh9U|uQBSucS1oeausFGX`Y&+f?O4}HCXi)vyIJt8%>o?*sx;} zKiha=VX^o`Khh}0Vs!2THZEVcB|b|-VsLm@LgK8T=^R20h9!Yp58U!{f-VeKK@&L{ zNk zY3<3$(Mvr8b)!$7Mk-YQiiG;>Yu`!Ht#=75%=3{GkNUafQ%vLcYT4lJ2mgx}WO1&9 zNAF_p8?x8X=2As^oq+&MPSucC#M-m(Pin{$YKKn$RJf8YX(tc6QyHq6|BB0? zc-w24*q9AYM<=b%-S67w?IRx-ER_osY{UXf&!rXP_j1H*-n9wsRUbZJFPK(HA+sc4 zCFR>!3RNS)1{k@K78s~ph1CN?elyCc*Wb=fi7-p9b0M25kHji2Zv89nzAea!(-W+V8-y6y&0z&PG9_2Yc;^KE*`7?FalI+N78d z!p?B}csR^~gad$Y8PGfFTkEbI?CaMYopw&aBQG~L++|~9_Nn@M6oCBh`*yG&Jj!N! z45R}S==Xmu1XzKL7f^Gj0R&AvlN+EOcd6PgjapqbZ~VPzNqF6lO>nwrhVS`8tHP_i z3!d2>zG9GNqowyCMf~Nr;Js5DxPmN1dH0-vL}^4U*JVeegHKvf5jmfdwkO zQLDaaATf5PMvF{3J9xSGTH<{1B+YmP$n8zrJRGPzu{TanFIkd>*p9OTroldbj3KL8 zZ)nhyo9dW1(dy*ozIGlq0|{6yz_&^Og*grR%qIq2(jnJCMu5iIPdp+N%;uHhYpmUo zqLORjU}<@`mYn<3T?UvG2luCs)+GGg3@zk3D!k#;$*(mu93r1b9yR)2F0|lI2@!@ufJNn#rm{+STXv#Gmd%UOxgj7h@)8JJaQo#kT1yx^f9!EeAHJ|d79FEMx4z9UamLwd@iD9FO6U2c7uRjs z6MMUQb_e&QvW^TBA)Dp5OEhi~JcBpw?GOih0TynY-z}^Zan4}0|FzUkJ7dwVSd&Sa zX)Pxq`)Lc*Bfw#J^V;A=DdftIvfMj4Pq>a?BUR4=v?F4v>O(x%TMQ$b4`0pw%M%p> zw=VUH^x59EeE=A(z4R8w&*sbgY4GG&p(GW?@(Xx|S)#f38J}Kg{WN$u-aYegt~{!P z?=i6!+&-P^k?yu{ga$LeKh6EE4-=2Ws)}K{C%VAG8Spf0!xtqq$+v!ze@NLVqG^HX zzouyqA!+w-(ZW>FPDDxajWeXEjBuCoSXSJ;D05fpELY`5xxgj73E_T9@FIg@!rhn< zv7T(AH^nWbwkAleCI3b|!iK{op!E912V*b%;)~|vM&5Nne2-Msn;7J>8}0~lyfi^> zbT0a6FA(1*?nYjFztX*S&=}K%z|`ERTyxehx(Y{DVrY+9%SEoe0^4kW{TCNDa^Sif zjNMaYXK)Dj<8<34=U-lRZZ-zm-|+}>7#Hn5V~vK33jpxAi}g5@e?LmxY1nw@*U&?eW(pIYvgh#9K`jRC5fiKsTvVOWcXO*D8?fa3=TnnLwBY*8& z*q4;ntf%?@4dcghX)Kdy`1g?eWjJydV^6}rLsUXMvtt_EU55v#l;WIssaf!9pNaVe z9hECKFXbuJRdPxGV;l8{Xj%PxVZNT9cw`4@nB8?GuNjq`fDFvqr3Mm)M*6O1jKa*J z=Owt~ScgS3L6Qy#?J9_&<&~tfX$$DnX~IeqaJzu3=`&9=5`?;1L_Bx3Xpa#~H!?Nd z#y2+)?jXp5j>331Pl(Poy2rLwz?Q1)bfyiALz^+PEuve~qNSL{s%VP`kDE?GD5B+3 z{00+9m*mitHvjpDU_J#iB$098Q2FHM4J7<$w-QO0VqN$1r;|E4HwX64RynP|Kd1C? zKB+=yu#o5Tm0IHboXe&?vD17Hs$foX#IWaG5j*s3AyMl=P*zwqY2A9 ztmORVIZZ?R=%Qb6#$62U8*3iR>gXJTD)p%^yblEXe0jK`%TG8Yt{kmrd!_g z0JI6v+JGPY)AVxoFu2KYx`$nGD`p?CRvrDNQS;P~R^pTBT;nj4b%&z{+YYa5CQpYJ5)|kSJuLigv3HXYrVyvL_^Gtu^3h-}90G=z^uv*P zcQ`@?W%Rv|>(U%|g#Pmf)X*h&W!Fb`XyF;>RN~HobxxfV%jrJ?s~v~C)qOu2nCQ`h zbMh;e0-%GAQ3=Xh`m#gI!jM+cVT~!B1ieOngU@#`&XOZzf#>sV?hEGumIm4R>wjM$ zF0x9{$I<-{688U(V6H_iXh)AbPQt{*#8Ziun%e4&aGL#b;X;P)Dgy%-+GXK&MMm zaTo2l)taf70z=OyvKaKUFR7Z-jg{b7?XVX+xX-`Ss6(sQ(T@|JEViz=o5Lfg%Ti z;5)$e_tWifqQ!SYiOikKMh6B4uJ04SQQ@}IaHahOe3cTNd`2M1fZQ0g1@-3xloYh+ zd_8_}aIi(0E*OkLL$>S_p#`d*>|Zwq8&FqmcbKR_)75eSV+)tt@mnZ z7SH_r{lw+R=fMPz+;1ML^%h|*&H6O39GWE+9sT#F%h77%A*a&P(v>qyW843xB_%E0 z*42;ypqpRjJ|UyyK28jJU6!=EvW&&j7uqy3atmRhsXUfSd%L^gPkvY%BZC$E{ry!+ zWJeHy=@QOy-T9WQSS-bJ(zS{o6V*JZ(MaWxGGYEZ9C$-zmgSezz8o0lPCWxcr_**y=b zO$t2fWcAS2rUdGDDR^UfnXcn>k_l-Hocn=SX|g3Bk36#g8#z7A(Aa!?w3EmgdK-m~ z-7XO7R^d*LQfc%2Dw2~VSpa32P+qxd*=M+SXq1r>yW5y74q0IKn2+bfK_EefqDF=| z_%B{zwYf6E(?j?)Q^roB?99Jc{2Pqg&vs|Y1g+6pZ)Yya3{OJ^f}#E5c>+Aa6AqG7 z>A{>|I=<=mQN7!7t&<(_ug8fjm zvRwj}$^s-Re9Yu9h+0N3^GRG<)*NT>PJ&tE4!Jzwn4ptY5Z8erx9khN?*lu1Y(zu^ zaooRjv$L;%Ia+^bEVfvCD4tczdJw#7S`&ydx|ciTD1Vapbl817G@paS-`~db*%pjM z!$u!Fh^^FEY;>KFXt1ROeN-QyvFwW;aR5#)t@rjm)4Dew3XI6k0Pu4m`1r9)YFcZN z&t#k_Q>S{9f`US}VHq>31QMH>$zeM>tGS>hCX%RTowl_tu3XC~rF6OkYvh6)U1SC^ zx}#%^A)Ek`7#YFK6Rmp8uRg||8FMG>{%l85VNKF^R9QTXjEt7)EZdHcLyB*tOlHVA z%lucfG6@MuC*@6cFjND3@vbBgV@*gPzUzJQk5uvBz(IBByUhr-|4Xi_6qD?C`n*_| z%vAJLd8=(&4=r79CI?ZEbFzxUQYDZZ*8=STvIQO4KQvc`+it~WJum=A7l$^UhUFHr zN}!4pi<@NsyM0gOUmGKKbZ1A8bnWp}O4;m)cheg%*EfH$JT!ajtEV#!Pc6H8oY~<& z0D()#`?PNg8)=M>L!Fe2)g-AwC|mcuq45b)Q63gx;qC;uP_5|VYt&z|sf8Rw$fL!y zLB7NFKSy0^MrMQ-rGQ)16a^~@9wJ7?Z3%jcjvAx0m%Va5e|uICri&b*KQLKL!x-9d zK$)Zo(*;LpZzZI$=O?|8xq(b|)X*4-3CRlF(R_yKOia$q{K*q5ukV~QV=Wgqgr3sL z5xD_7f|VdJwC@TPDK2!&&Uvq*W?9jPYCY-ix-t!J-Z9q?mxo_ZycJzsE-<1K(-prY zSy`SpVAx*`dv9=h{dGr&CYAxuxSOAC7JO^yeMq4Ksg+5MCjv^5DI%l){G99ji`gs- zFHb0G6gC2e#`9_CYHyh}vgh^3EZDJ_WB#Hw(5t)aoLA(@*+8zY7v42Dle{!lx@YcI z$YH2J96bAq=^dYTk^?$$;y2A}bHsBXun`&G$9&HNJQ0pKXKP{BJF7L8@yOm z%XGrR6<$}U-bAag`+oa$69$=B6uCp(<@Lnu=-TrRZ%Y|A?4!~)aH;#5qA2Hd)Z3ba zuo)`~1wmFK0S1bBCgh>&Mv?}vFrj33I~F$ib}%sK9?o^Sb!U5R)XFRX2|A%!VeMFy zz3s~t-k0U%5`Zrz$K^>vRyaevPtvM0z8^ll=mNWIN9xow>`3ZTqWYA?&C#*Bj6j(D zia;Rd{4$kb(_x+XXF;9$E7+`>XSS^3<#N--fTFyMyV3H2uEULr)1phjM%^~3QvvO3 zVWL!APM;QSgz=n66_+^cJGcs}`{;X;Mt&ineD$6=kF?Y}y2$26iFeIE2%SwVM+?LE~B$oYtg%sxd{{rXc| zwJem&iBaO09<&ey@aR7Oa=a(R*y5PPkl7tu)hZvl&#n|ytswP>R~CCJJC1&M)3OkLSl zR!RK2JD)e(ljB48vc-}wMCv(@NSQ{RrTS}7KNXn1P;>fiQHNX9F z`{)ZCz9I0OJEfT)CZgU(7m6#z8}CnMzk;J;?PE!3?P*m-nTejvi!5|{pBISN1W7qO z3lqS?VbjU7HQf*p4KS1B>2fjj19j){A7x z)sQ9JKhlD{-VR%zhz3YU4nQp`0rt}RmK@)&OnVLVag|aM>N~UgFzmy(_D!c>G2yH) zE#LVU_zMQfb^eW|FydSq!APD|n&|UxsT6lAD5$u@)pJFz*JciqPXf#YOv+r=sA##Q ztG8I-h2!HERykrVPkS)-Ha0<4={>IH6=fomno4f+uexl%fxriFamddhJtg+B{4o`S zhQec>s3%{HubUIo$2l9G1~>8W@C@?N(bqf~q5fV|^R$+fn|rkIn6Ay#z2V0^QpKRE z(4RDLWAYA`;q_~?qLo-)Ztg-m0BZPwum3Ia(X9FQtsw$<^#Zmec@jcxe;vnD%Qs3{ ztyzjKKXoSb`2POA&$39P=RYGuA>(%D{2?~P@N6lL#q|yby8|&w9qzR^KLfi^Vp(!` zyvGF$F-)D0euwZ8a4D1};L%h8!?2B9!nFycQHR+gS1j>AM2;hKa*4EMxH32v26;Hl zH556%P(QQ|NbZuqJ$5->k^DxL`*OKnq461tDj&1oK$OP%`?%>qZYWbc&bg;@16t_Z zA7_IrbE5=s@XCpzP@MazaNJj?6Q-`MbzZagS=QrEIk(INc0y~}Lu)5>4U{OmsyBjI ziR4~sDq-R~?QkP+cWpiNdG4Of>qW+WH~7~1(^RnUpsOG1ARm7VIBHON0+#0w`>qGZ z2-ndVM@H+~#0Sd*ZyxoP`-SSL9vnB{NOVPLv-8648-O9T`tGLj9TdFv2QlX z{)c>2U)&rNhuxZOy$Kqt_meU)HO+5G_mNDgpKXh}3<~M(?bTk~oS2wscz0cx5<;PF zGFD+9O9VoX-ww-U$4@{YGVk;M0;o6TMgs<2104_><58yWUuCGCK>$-n*75NjHVIbDQE_o` zYM`5-13RhLl}+S2CfK#LK$51*K)*o;lQmv&>ej=^OEjwZ)3&xY1O9|N7iKK&?UyKM zwfPE}StYQ`?I6N!Ma38$ejGgr_H=`)Tbb6rFVmdVlDO%y1(T+Mkc{P^E+UfKcll)@ z8LNb2L5niI{O(=Dm(2ce+cjz;B|1kM2{&x6w;Deyym$ zMW>{6v&Rib(LONGq;WMi=dAVi4)RrgX6~S@e7ipTI@|AlI-0NURFUot1&Yw^K@6R4 z17iSe2alY~zA%^(PyVGfKQ=yHtNP5jq%qZ^+LsYBReuGZzvO|{tMGF_zgcDM>uuPt zLkG_oo~i^t+R?hrt{5u!`Ml@`SCNBwjO-0{LFs61SSlF^?~u#!;K75@sm-oE9#F`` zi{A^%%HlP+`2tyqOw|>@(IE)uM;Y!iN+UJ8es0c(ziRozTdsFoH69h4)eLS2pLyk7 z1JM;0wIW>zQnHU!v_^I{Z+q?Lw+i-~=zX>KH*C#`Ra_Y>-K<&4BvTR(TIV8ce~kqt zbCSiHw~SowlKC>}b(X2EJ7l`e%ci-r$6R`6t_)`QV-kx{d&w_l^od?e7EkR$UDn!V@T2QFthQ@tiDE zi*cm`y^Lt*!p6ZSYU;I7k}F6;iC9tYYGzHKdixvkAgneUQ35K^y$LK&mP9vwuhnWrTwxi9Ay~4_t+moI(X~S)+@yici71`qe|Qxyz+ zJiT4&g!(D)G;DXrC?4i?$osD5PB(Wr(kT{Aju-%-2>iqlJOnMJyg##B*4{hclWGrHi=c@Op6k<2$S}Th_ISjrw!5O zw18#r4P^x*i;LaVot;I{l%bVB$aQ{e@h9ADl^}2b`O{4i7HmCG08>2j@!s2mudFi7 znw<1VhNPriGfT;galC;SY^)NRbCI6$y_u=0sZPo1 z>0fAHwV+|OODRiQDa!zGefQm-LpPiePB=}X)WSERTC+(Pp;HKc98jcvjFN7z}~;MV0Xi8vzR$KGQX+9X5)f(z=QYuP>8F z&=)Ty5Ma9 literal 0 HcmV?d00001 diff --git a/modular_nova/modules/aesthetics/airlock/icons/airlocks/cult/unruned/overlays.dmi b/modular_nova/modules/aesthetics/airlock/icons/airlocks/cult/unruned/overlays.dmi new file mode 100644 index 0000000000000000000000000000000000000000..3bc7295350e79715890c7ae79816b6aecdfa1e8e GIT binary patch literal 9813 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 JLenYY{{V<}I!6Ei literal 7028 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

FP zQ2AOLr^kiMu^Ax`BBT=$f+_&Q)7%0vu%hg`8Af(Xm_H8y&_gWoI-TB!uG-3f9j9XV z_6s+XlHm?By!g-6}#<}`1bve!wohZgI@@HvLOuFIc3mACr{^=gJ=zGXZ{@=^o zv)|xxmYT`+!K9BaXjTG&&}xQR8d~tX`SP;-HAw#w9=S@K1{igib85V&>Ny|>8deY( zMVVnNhhxQBpW^f?q z0yg%KJ2KvXjPkF@LxP}9el8o^3uvB{9fmq3H&Nu_NMB!HGkH9~bQla#j=8{HqUiRRUn#BMb*xuyeYx3hq2C4q%ijk&ng!MHhv|9A zrvWeJrq#G^NIo zl+?=ytja7%^uiT~(>9lxFYYRNy&dfM`BJM&88I%EM!y+44;x1IWLgU9Cnk@%1)e{b zu!@>TQrOLWS5|QusEp*@=hjvQ#8v6Op8sCE6y(!N{8D;D)SlDpV11EAmx{i!{zPfJ z-m<=4|3!si5D6319@On91>&_7RFl0o|17YaAnx+{PYt)>TBA74L_7l zJkw5h) z+4~>AYmn0w>u}c0awcmZpUT&H_%8gxYtvzul~mij7@qLp@p;P&a0{#)$}%ay!?6Tz zsiAq{3@GOT`J}opA9k?QvX?C{bvPY~jz&+Y^pYKIE~G?A?H?XtgR9pX+S=OUiB^r+ zuCP66g(QcpSe;cSjGCcJSNaF$H}$aB%0u>W7uB!rcVq?K^}Y#wInS4~cKD26dFLxn z{cQMleneAXw1?1}M34dGZj)a=e{sYR4~NqLmm9Wf+8l^QTC?&_@m0xUTHhNwxenQ= zMvz)8EA7k4S_xg0aF9sK8#V{aDQ%e=q#Yk03#8}{9@z`Cj!jK@dD~+GRS?}hHomfR z$S6%ot4dGZCnUHgWH^ASDA7LpJcJ&h|4;#qm3-ZAhOGk9ohJbh=@pb7v<;Yj~B)psF)$t=5ql%9Z_WS zBs;!b%57+RG{9^`vC=^LWMR#zPp{88c~(T#MO!FE7X>F~E!f?(3Sarvmwa<%Wv9Wf zY1(IpK(LU$=;`fk;qPA?-}OOA(a9FN7-JUE%}%YJ<5*opB86)*QE<|b9mvng$*CB> zgt-yL`@2ExcxO&^rk7`?^>KnIv~f$;r10e>CRbSp%=n^JUv%ydtP#TrRZ9bau{j>xyUDTl8zvIXF0I zYkPa7@jmCBTay!3*^1Mg$WMV_PIFi>9cES0;tey80{SrwI86$OR6NjoqioRsF7Etrit5hU;HxV&MuzrL<+W_odq+A(>k#G~YApx4vbs8p z!NEatzE~psto|GW1Lk06m-+1)oXkP~Z4m0hgxS4~jSWs79xE@eQv5d~GIl{keGrA- z%^K?7J#f{Z{Cu<7vtZTYg5rKR4+X`6)%JP+8a&)=#(3z=qjLST#3ZO`h3k4*dE>z1 zS~O(8Iu@};yruA0r9RUDzw%I={EhVgDXEroC{Szx*@>jE$E~fcEpEW*?bBaccH~kU z&U5*4!01KbMJ&ZrYVZHlOKvLQuEm@a>qvJ_EjJgq{dNsp_2Y*_Arau@BCGSmE$Z>v z*-c?CHKz}N2m&mwt#qpAWd-;<3ViWb3g0M-0B&-I(J>r%ALK~)94!9-S^2-6qgHmT Y%KP~Z{`EEraViYCZKzeDaWC>e0A}th1ONa4 diff --git a/modular_nova/modules/aesthetics/airlock/icons/airlocks/hatch/overlays.dmi b/modular_nova/modules/aesthetics/airlock/icons/airlocks/hatch/overlays.dmi index 662f12813daa6b74a870c4eadfd136f39a963a11..61af0a0abc330cf98917e3cbdf3a0e1ab3642fab 100644 GIT binary patch literal 8596 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 Ku>8L5i~j(=d58S~ literal 6853 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 uEKn1Fb{_ri72a1el?`#+Z8B}y8JBb@xBu! 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

+r3hqUl+|<8%$1M?zo_R|8)LL8~?Q1>hIwP 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 diff --git a/modular_nova/modules/aesthetics/airlock/icons/airlocks/multi_tile/metal_overlays.dmi b/modular_nova/modules/aesthetics/airlock/icons/airlocks/multi_tile/metal_overlays.dmi index 7de2b627a45523fffa5815ea937c9a657011dd14..7903886dd5b6271d3377802ed2a880c7a3a095c7 100644 GIT binary patch literal 28528 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%0DWz47OB70aew5uj0qaLvC#cetth!Yhx(pI7JrdGe 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

!UIk^l~I7Fo4*TBEfSFNLnKtoKE@nSw^ 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 J{K&=I{{_8E1dadz literal 26925 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 diff --git a/modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle/overlays.dmi b/modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle/overlays.dmi index d418e45f603d9e3e015e74bd6471460a9aedf142..a885f4ac74a01228cce20ebefdc8098da8e778bc 100644 GIT binary patch literal 10397 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 Jlq=bU{TIH^u@L|O literal 4630 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 diff --git a/modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle/shuttle.dmi b/modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle/shuttle.dmi new file mode 100644 index 0000000000000000000000000000000000000000..b4b998e4bcb732511d5fe5b7f164fa5357caf529 GIT binary patch literal 5673 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 literal 0 HcmV?d00001 diff --git a/modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle2/erokez.dmi b/modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle2/erokez.dmi new file mode 100644 index 0000000000000000000000000000000000000000..da8d47bd152bfb3501da00e339210b3bffe58499 GIT binary patch literal 4705 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 literal 0 HcmV?d00001 diff --git a/modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle2/overlays.dmi b/modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle2/overlays.dmi new file mode 100644 index 0000000000000000000000000000000000000000..6d5a316cf3f24cdd33f2566fc0656c3fa8bc4a48 GIT binary patch literal 4638 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 literal 0 HcmV?d00001 diff --git a/modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle2/wagon.dmi b/modular_nova/modules/aesthetics/airlock/icons/airlocks/shuttle2/wagon.dmi new file mode 100644 index 0000000000000000000000000000000000000000..c92e9f9199c9173a56bddc2cb038873650518b7c GIT binary patch literal 4245 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 literal 0 HcmV?d00001 diff --git a/modular_nova/modules/aesthetics/airlock/icons/airlocks/station/overlays.dmi b/modular_nova/modules/aesthetics/airlock/icons/airlocks/station/overlays.dmi index 8530f0753db2572b135261b353d417ff6e04c7d8..d851d4df6309b4a7df3b3d2dac60415d12582b15 100644 GIT binary patch literal 9431 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 diff --git a/modular_nova/modules/aesthetics/airlock/icons/airlocks/station2/overlays.dmi b/modular_nova/modules/aesthetics/airlock/icons/airlocks/station2/overlays.dmi index 1342376d98c7613befa4b0698b077df9d8f52d70..74d987181197a62cad12cedd0b8e43c1c0a21644 100644 GIT binary patch literal 7411 zcma)g2T;>pvwjc}K@deL3W6v_goG}L6j2caQl(d=N)0{qAjpe!2~9c(h)5IZH6TrT z2dSYKA%qYhA%x_H_rCYeo&WcJGk<2z4B4}1&pCUZeSW(ep{1e1NPm+a001z8Up&(R z0H|J5#^Z|@D3XwYFMgCC0e-rMp3iJNtlaHgJ?$Yb0Dw zxvv(=oat-h`0GtP{Oj{U2me5^WaIaowjq@>X-}%})muw2>zQ)=;^7(59=pJ}`Z50N z6D5(4PnnTi%yb3Dzj(GrRCD`1t3sJ4>x{VEa*Y#nW9j+2drL{K*0)~Fe3Niskvp~^ z=^8s}NhGdyI=?`lD|8zbA*^$MlD!-st@aFs`W@d``Cff+S$J@{gjUu)#s#}yQKDJs z`%5FJA4H)U9J@$g%Y%(Cg88pR_2<{Y#psfwX`cT~j+lDD|KLLN zJSn&NXu{8;${)S3QF3&Wih0qn;E}yCCy$%1ghGc@De(9Yf08ogGk-zx={2iCsQy#V z`26OD#}?!Hf5hTMQ{3GJQ-}dae$>dC{x$-;VO%(GETR*yCT=@!sIDD?LoYO;cNTm4 zr`r-zN%QGA<>{$_Uw8WpGE95;L$hu^wr+iWja2PE2!CJ5d<6O z6^f5W4!XxUv?j@!4)he5?(h4yONL)9-mJkSD3DlJM0!5OTPmkfQ3JlQ6#(KG5O_D5 zSLh`+MNrSG()>S*Y}c$ZpN4j667VL`2wtn_kt}P>@BMaX5K^C9aGq%CM@42m|9u`C zZw1?w+v6Tnq|&?4^f2j|>;p_KI}F_Ai6Wl+H?Fy@z&1tQ(vBPl70Ki5{Fl7sXP>=3I4;xcfG)w6IDDvl*4<7UI@5nIj5t# zwhA7lc$IDHioBas@t_@>N`!QwDQk6hg5)B2bU3a7Hz8_kblND*{UZ|fgjg9WfK%qQ zieCvQm%RbebY~wP8>~M_TGe(trDIzx$&cUr$sG2cHT|N%m4Ei?M~)a_!?bHgX zer6ZMod_!Zavc}J-m9D$?#|H|1QFG1|75eaFBUnGSq2U zygYxH+_g&%7||i|cT!x?Bw~mYukBi!6j#5Jm-{LqTptcVy-u}pPU~3O7;3F zWQR0Ft4;5^k;bTLW~$~HlhvDOOnnWr&p%N~Sl_OGZOzLEE{3!yti(hg+^hXX3{W9+ zG?KB(30~&_!(Tu52dn&LLG*E1Pj5WmrizZhn2eKW)XE(W2d3=uqcoLHO0lZ+fA7K; zUq%&<@C#i|Zz@{@O0Q*kKUnSg+t|Omdd?)Mj5Z(~QDmm$zdLmFQ#ys$CN$f>`JK~v z&ATnesj6a|FQw32yaF+-KJexJ*@NW@%FJj%wH~%spyvk}ltZpLMdIf?J2&>;nWX>F zo?V}Tvdv`ilGktsbF}DCh+SR{V>!(TsHhNzTYvez3&Kb+3YcS-~OW=M>hb4k{0&!SXR3ea$p0VN%?P_p00?@Zi&slXh0td~e>b0`At7y{#ghkP0x_x-Ko{prJ7>HRiTnj71O(x;s^ZYpbpN(!+j< zrO&xueTcIB5-;!)Bmu;I@9IqQ9ONz?OVrr}p(PQaP80hokz#F_1nD~s(5G8vmDO;$ zzBqLvaJlr4y*l`2{J33aT#^>mshi6fT2;0*_1w*c2ds7`V5Ss2;;*Z+V*7Chxy}{U zUdq%s#R^O|G(%1Rq$En672kOMI}o=~*`WKleU{#w|3j{GyG771d6xO)6ReTh{o9o_ zEPiP>3rdA(N^$nvi zgZ+yhf&wY-@wOWj4wcU+zGvC~g_YdXe2K`IZcN-mPx=lhe}r(JeBVU~`PQW+sMW7h zG($TW>Rh}$J@K_bLhvq@6%5bX8`@6ALMA)&96p{*(c)Cns2YbU=3S*I)_aCFCZ7(a zu3xbswtsSzh*A}$cF8#VJScK+bMo4@dKKs8wIdu31O1TUkObalEKx!hGjq*Lg1Y5Q zxFlc^DM{^}ODSm_>g6 zE0}K6Bd2QS5M}4B_*pLj=MfUQBtVKfZQ~+A-TSOF#ZhS`<3$Yc0^e1l}6jw?>JUy007^#i*M|m#wj#ociv^Ql*Bl5KvIca7C}2vNmYUq zvF8{750!Y#8tnr;a>MtMJ0sI}5L!H?oh_dzXQJ~+J=Tw+>|w*n zB_qQ((DaFQBS^3n@TWH!X!0`o>Tm4tcBZ68b)Oo!ls@+BuK`|##l?L^II3FbCL3|$ z9g`yHv-jG;RO2xV3+9MoN815Vio#!POxK)wj?g04?cc5epFb=1o=0`LY>_ zR4OP18*oWk*))8f!Ieiv_$8k=)zO*OFQZ6CU3@Kp#N1pS)O2NcL@Gp=Ut-Y)Wku*N zCym}Y==|L`)6E>0qPxRuWqdFs?he1R5M^THv7puMMgN7ZJw%^Z=_#pHkrJSuUaoYuMJyEYCucu4+9dl0?w zQn=<4#hhq573=_Q@#A8k*pY<=CSVyuB1CQ+jv!!y6h6`s0}||RNGpch4I+vt!(NGdi8F9igTfRUngx5_%byZDfq`z7+PR7PbEI_!XR&(pOS3#0q>2`%##23feOLM4G7RMS~k8xhKPN0Mx-(=|%rx zxPFT)$x65;-XB$(WNh@+c?Fmd<_@gAsa@gi))9L*?yFmIk09PtgH#ywxhvffw1lsY zewdOW+>P)G*j|CillE&jir0>(?hKTyzCsPIu=1KX+2mSgcY)PP(-@(G{Df z!s(W`nn;Feujr-q&8TmuJKm_|+{Qp|At{MwoMIn#DD@}DMF9?T?HBi(ziHh@s1Lh< zLWLc69IziGTnZkpLE2GgE2zkJ8_c>=K7K3>p?CFR)gEv-!UE5d{~uYX+zO*; zgw95GB_+~>kI(4p`Mp-a>-YcpAM1qx=CV0yZAoLUH=s4$9S*u+Uc3 z-9Dc+cd)Fj*yIXQw&f7RRLKsbioy=nquz1dP*8iBP<$@(|WJ`oe3(MS2s=36f1*#b`{_poM9w-_o z^Tn%;V#Lx9F%(5O>X`OlzO%s(_x7a|jq3}~khp}d6Um?JHPOatmjrUU6~~xG$pQLd zmGsJ5a*?HT5-CH^QcRpT_gaTM$$6S+Vg2{t26!Ci?p3S|Qa`r(q!--Yc^6ilqiS$n zsAfj1K1}iRx|Z{tjAeHcZE%;?9*3AJ(12Z;?<7VdTot$WgiO^BvoUyD?741mDfwaD zFbsel%Sg^+NY-(j_35*A9&?kRWg{@XCZ%HiT9blcIzH>{Q?JnVt6EWY9x<8ExB%;M zzuBxIXUcfxFZnI7p8I9RzJRaIc}U|;3n)6QZ(;C}K?U35-fXc${m&*LH?x7eU~Sqr z%?{&1EAX#4SQ}I+CkWq-J}C8gJAUW-E^Y(@l&t42L6cn(K=%rn-KC)CsLBK+UHCq6 z1xi?$(Db8>wCjjRM0FE)g!g(-?2A!zNRCJmr?6cPNu_N1vw%XACfpN=6%2f8avJwG z3fFEGacBW=D$YI-j(zG%CdVW;+$~UCknpzp0$md_N$6KueyKeJw^YrFIKwdC_lM8_D*B%38aH#?KNM5^beo@yeAJvcYLS z5QATuwj14edgT$>uHas)S1+LmnN`7o3v^LK5Xw_E4lN`y33JIoTcb{O>mei+d8#{` zPU_BDV^fH92Lb{5s$!}?U6zS*<4F<85!!kg9g@wyx{` zt<%Y$QJT&0Ca%fG{UqJJ6UrtM;7&$UD4IruST(j|9kASw*r2E7#f6i+$pWWiG8>zpVd@#%% z&(@U%-;rnq0*7&~7%-luD4wEJ<>6;2-<>8NhdaEt<=A@MeaC(YtW|xI1DGlzssu(E zJsvVUsST>IkNNx3bJehI$^ozW({r_)e9fX~;vWI|OBWYVi}s77LO*knjzIQuq#+ zH{rVMIve+S<{&T>Y$HvTVGu)SFX#51?O(e0*h$ zpzy-)D1E4r(9>bJh*jPR`#dN8WIR&Ov`^0T#=#_aPcXwHY%h(gs!%m0noJWhiP&0bVhlbfe1hqeR3IJu*}r)O)by~haa zt`!$;J(B{GG%74T&S9qOsm+8d~bI5Iu>QW(Moark!?j~-ozUR){kD@ z<6{Va4_ob%hx22B_#Yg^jYZ?kA&@@hH7V7h*Vg;U(MgthxGa(a{IRO7n^Lg7eOd8C zcl|Ny?yAN4_(WUQg{`PuN_BBcl5S&Qhl2(!8$4ji##2&;7)Mda1zkN8gVg~`f7Q7v zMO@`?hPuy`GU(uh`(Id*B6!W^zGf0%D(Oe&xP^mJSK{w`x3WaTx($&$`j~{E>!5MX z;?!W}IahLNx9KM@P&D}hGw1njCAROs+QV8JKZdSqaDm?t8%LmQ?yeyd@7^9fy1j`w zd^vuN%?CPZwU>rz}n@JOxZnOz0-131=Z@+f5zGOSLN zG*Bmb3h6j!eG3_OV)mmi6a(R&4Z|}QkI=SUI%TR$RLgT+`XoV$so&dNd2;#tn?R&V zHR@^q6-kzS<1NPW&-I78ZJXG4%cK0fv)H_%8!5UveJCm-7 z2`a%#Pf)5{`pcWRztn-GLWSeu5@+P`0;pL=bc={#a7WgA*iHOX)D`m*-mlULUw~wZ?tQN?-ck#M`D`r&COsHfIJVVE z%fyw)Ya^cO;kNsTo{}Vba7eox@NHqG)&KN`8}ou`FLQnYNrB!T?V|%xqX3V zf431G1j^K??WjQe@78aeECn{|1n>zaUq1I(cYCtbG3nqbcq%3?&Z6;kTL>-RsYhbq zm$5Cy>`$LIjcZ-zIpDG28TZB3ckDl6!X@I)13s!2Osf8IbapoTJwG4VhHU~;PN--) z&@#Gpa36^yL*KrAJA%jKX~2k-9_!0p>28vyA%Ml`m;4@vqbdCS{0nk!%N>te(2A@} zIvog`%4zJ%%8CGQU}yER5T*L6+i-+0P;&bGuI}#gq=VN5k1m4bqhn&KReM!cyECmh z>&{cPKGX&&kGB_u10-Gp1|xg~e;%tbQF3U2fnI>%olFf_85c+T#f<75r81cyZ0@?Jn>%|TEWZ~#i>=4W}?7=I$ zO;{!aa}1%c91*x1uw4i-FX1ounI@EnB1YlL=yciYlFAiW7KvmSVy_=|j-l0Fy2Pk? zb9d0)l<&4VRH`dc~l|c@(f6&O4M46xd0hDTC>&dlg|e zaB1(ykyzlL1g3$Rqf9hvbn|WL-IO7_jls+>4<#*$`Eh@Du)j5=nkuhXqO~9>6MH&J)@ksb-Zt^h4_NB76k;f488P4L z@0PQ1rUkfTzQL9xr#SM~XFW)htL>U4;?ObIu~jWuxPGUmww7TV{}8ggIf1C(N!JV* zJBBKacgx*++)g;v3~(BOG@TGq9aFv@#xJD`ppHd4Xgcvn$!}sZGSi6Y1fT&I{Zzd|rmkRn4ilq|Z`D2BeLj)XQyL_9nK)oj+zyi^qB|hlqLTOI8&Tt3( zN$5+?klA0a$FdnKxUX1NJ2Wh!_}8{*%QL2yalj1O`l^+0X!0WM^!rz(>=Xc2QbH=N zsHljW@c<`cA-a$4oB~ev3jld(*m6Vfte>>Rl2m1(6ESu!$0%e_aee)9ENZs4lJz`5 z_kN~^#nK7MqdWH2wv5;PSwipdB2uchD#Ov$W4a|n>ADw zRaRovhp<78Cr7A3^GoY$52@em=>DM?S`^W8*3N* z9G8*|%#T0hpE#!59{OCp9PB|kG`G6CdLW^C%G`v1D<>b8;W+z}A6pI&l9iR6c_1cM z0Xz#)+lc4Ss4grfddfC;;ZDn&_j`p52rcBSe8mB4@dTFL^-B1Hy!+}ecO(uAV=Z3Dd)m{{(GfN>GGdFwAu=@z*}Ajc zBq@y^5Ey|SeAGwj9!Lq=L-`Y?U!h{fQ~TriRBidkgBMOlUGJev0N0;g zF&rW-)o&;`7XcG8U-Dnuy2VhW`%QUN6NZVhAliOMwZ5Ys9GACarW&pbSw1;V=RaI~ zDghacEY_N&(C@?e^ML%Zt(s6;COFz+CjhLh@vQ90>yZBf1TDyj literal 7185 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

!)(!i?2k;S+Fz)!JbHJhG#-c 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 BUvB^a literal 0 HcmV?d00001 diff --git a/modular_nova/modules/aesthetics/airlock/icons/airlocks/tram/tram_overlays.dmi b/modular_nova/modules/aesthetics/airlock/icons/airlocks/tram/tram_overlays.dmi index e30dbeb2b9879465d486ee7017c61b9819fd1afe..65df94c91a025d098aa46e8e1d6fed943b9262b5 100644 GIT binary patch literal 7535 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 diff --git a/modular_nova/modules/aesthetics/airlock/icons/airlocks/vault/overlays.dmi b/modular_nova/modules/aesthetics/airlock/icons/airlocks/vault/overlays.dmi index 992e678d010f44d6adf39fde01d98b8eb77270d2..a0408ef8ee2633c3c5cb76035b52354075873ab8 100644 GIT binary patch literal 5866 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 eXJNg|Rc1)E8N^G=#`5%ARG6eb2~b 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 diff --git a/modular_nova/modules/aesthetics/firealarm/icons/firealarm.dmi b/modular_nova/modules/aesthetics/firealarm/icons/firealarm.dmi index ce8c37b6004928c46f400573414372d33ea7d958..1bcd033b9cf693834777b63559c65cc4efe77e71 100644 GIT binary patch literal 10627 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 diff --git a/modular_nova/modules/aesthetics/firedoor/code/firedoor.dm b/modular_nova/modules/aesthetics/firedoor/code/firedoor.dm index 8ed0be1c749..c3747c73944 100644 --- a/modular_nova/modules/aesthetics/firedoor/code/firedoor.dm +++ b/modular_nova/modules/aesthetics/firedoor/code/firedoor.dm @@ -10,7 +10,8 @@ if(istype(src, /obj/machinery/door/firedoor/border_only)) return if(density) // if the door is closed, add the bottom blinking overlay -- and only if it's closed - . += "firelock_alarm_type_bottom" + . += mutable_appearance(icon, "firelock_alarm_type_bottom") + . += emissive_appearance(icon, "firelock_alarm_type_bottom", src, alpha = src.alpha) /obj/machinery/door/firedoor/open() playsound(loc, door_open_sound, 100, TRUE) diff --git a/modular_nova/modules/aesthetics/firedoor/icons/firedoor.dmi b/modular_nova/modules/aesthetics/firedoor/icons/firedoor.dmi index c7ab9ab729efc8af26d5a7a3a413093b23965c7a..5996d310aacb53c1ee2981d9fb5dd5875ca8efc5 100644 GIT binary patch delta 6870 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 A-v9sr diff --git a/modular_nova/modules/airlock_override/code/airlock_override.dm b/modular_nova/modules/airlock_override/code/airlock_override.dm index cad26123ce5..e2008c131e0 100644 --- a/modular_nova/modules/airlock_override/code/airlock_override.dm +++ b/modular_nova/modules/airlock_override/code/airlock_override.dm @@ -70,9 +70,15 @@ /obj/machinery/door/airlock /// Determines if engineers get access to this door on orange alert var/engineering_override = FALSE + /// If there is an active fire alarm in the door's area + var/fire_active = FALSE + /// Area the door is located in + var/area/door_area /obj/machinery/door/airlock/Initialize(mapload) . = ..() + door_area = get_area(src) + RegisterSignal(door_area, COMSIG_AREA_FIRE_CHANGED, PROC_REF(update_fire_status)) RegisterSignal(SSdcs, COMSIG_GLOB_FORCE_ENG_OVERRIDE, PROC_REF(force_eng_override)) ///Check for the three states of open access. Emergency, Unrestricted, and Engineering Override @@ -83,7 +89,7 @@ if(unrestricted_side(user)) return TRUE - if(engineering_override) + if(engineering_override || fire_active) var/mob/living/carbon/human/interacting_human = user if(!istype(interacting_human)) return ..() @@ -101,6 +107,9 @@ if(!source_area.engineering_override_eligible) return + if(isnull(req_access) && isnull(req_one_access)) // no restrictions, no problem + return + if(level != SEC_LEVEL_ORANGE && GLOB.force_eng_override) return @@ -111,7 +120,9 @@ return engineering_override = FALSE - normalspeed = TRUE + if(!fire_active) + normalspeed = TRUE + update_appearance() return @@ -150,17 +161,45 @@ GLOBAL_VAR_INIT(force_eng_override, FALSE) /obj/machinery/door/airlock/proc/force_eng_override(datum/source, status) SIGNAL_HANDLER - if(!status) - engineering_override = FALSE + if(isnull(req_access) && isnull(req_one_access)) // no restrictions, no problem + return + + engineering_override = status + if(!engineering_override && !fire_active) normalspeed = TRUE update_appearance() return - var/area/source_area = get_area(src) - if(!source_area.engineering_override_eligible) + if(!door_area.engineering_override_eligible) + return + + normalspeed = FALSE + update_appearance() + +/** + * Change the airlock's fire_active status, triggered by COMSIG_AREA_FIRE_CHANGED + * Activates fire status overlay and increases door speed. + * + * Arguments: + * * source - The /area with changed fire status + * * fire - the new fire status (TRUE/FALSE) + * +*/ +/obj/machinery/door/airlock/proc/update_fire_status(datum/source, fire) + SIGNAL_HANDLER + + if(isnull(req_access) && isnull(req_one_access)) // no restrictions, no problem + return + + fire_active = fire + if(!fire_active && !engineering_override) + normalspeed = TRUE + update_appearance() + return + + if(!door_area.engineering_override_eligible) return - engineering_override = TRUE normalspeed = FALSE update_appearance() From ef835d537c0a4abe80a7b9e24f868d00067a889b Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:41:03 +0300 Subject: [PATCH 37/72] Automatic changelog for PR #2147 [ci skip] --- html/changelogs/AutoChangeLog-pr-2147.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2147.yml diff --git a/html/changelogs/AutoChangeLog-pr-2147.yml b/html/changelogs/AutoChangeLog-pr-2147.yml new file mode 100644 index 00000000000..a12ae26b8d3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2147.yml @@ -0,0 +1,7 @@ +author: "SyncIt21" +delete-after: True +changes: + - qol: "adds examines & screentips for building & deconstructing both machine & computer frames." + - qol: "Adding a circuitboard from a rped to n computer frame will automatically screw it in place like before." + - code_imp: "merged procs for computer & machine frames. autodocs them where possible." + - code_imp: "moved code for machine frame into its own file." \ No newline at end of file From 0437144f1b4e89d36a9300488cb79e4b2301c639 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:41:19 +0300 Subject: [PATCH 38/72] Peddling Purple Prose: Porting the 'Do' action from F13 (#2186) * Initial commit of Do roleplay action * Link in correct keybind signal * Update unit tests * I want to throw eslint down a well * Move to mob/living and change to use hearers instead of view() * Apply suggestions from code review * Fix compile issues * Yabba dabba Do * Allow AI to Do from their eyeobj position (and also hear from it as well) --------- Co-authored-by: Ephemeralis Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> --- code/__DEFINES/~nova_defines/keybindings.dm | 2 + code/__DEFINES/~nova_defines/say.dm | 1 + code/modules/tgui_input/say_modal/speech.dm | 2 + .../datums/keybinding/communication.dm | 30 ++++++++++++ .../modules/roleplay_do/code/do_checks.dm | 20 ++++++++ .../modules/roleplay_do/code/do_verbs.dm | 48 +++++++++++++++++++ tgstation.dme | 2 + .../packages/tgui-say/ChannelIterator.test.ts | 1 + tgui/packages/tgui-say/ChannelIterator.ts | 2 + tgui/packages/tgui-say/constants/index.tsx | 1 + tgui/packages/tgui-say/styles/colors.scss | 1 + 11 files changed, 110 insertions(+) create mode 100644 modular_nova/modules/roleplay_do/code/do_checks.dm create mode 100644 modular_nova/modules/roleplay_do/code/do_verbs.dm diff --git a/code/__DEFINES/~nova_defines/keybindings.dm b/code/__DEFINES/~nova_defines/keybindings.dm index 5a205f4f0f8..8d99a7a0278 100644 --- a/code/__DEFINES/~nova_defines/keybindings.dm +++ b/code/__DEFINES/~nova_defines/keybindings.dm @@ -4,3 +4,5 @@ #define COMSIG_KB_CLIENT_WHISPER_DOWN "keybinding_client_whisper_down" #define COMSIG_KB_LIVING_COMBAT_INDICATOR "keybinding_living_combat_indicator" #define COMSIG_KB_CARBON_TOGGLE_SAFETY "keybinding_carbon_toggle_safety" +#define COMSIG_KB_CLIENT_DO_DOWN "keybinding_client_do_down" +#define COMSIG_KB_CLIENT_DO_LONGER_DOWN "keybinding_client_do_longer_down" diff --git a/code/__DEFINES/~nova_defines/say.dm b/code/__DEFINES/~nova_defines/say.dm index 2126621afb4..ca8ad9d3ad7 100644 --- a/code/__DEFINES/~nova_defines/say.dm +++ b/code/__DEFINES/~nova_defines/say.dm @@ -1,3 +1,4 @@ #define MAX_FLAVOR_LEN 4096 //double the maximum message length. #define LOOC_CHANNEL "LOOC" // LOOC #define WHIS_CHANNEL "Whis" // Whisper +#define DO_CHANNEL "Do" // Do diff --git a/code/modules/tgui_input/say_modal/speech.dm b/code/modules/tgui_input/say_modal/speech.dm index e4c5032e2b3..7797e44afb1 100644 --- a/code/modules/tgui_input/say_modal/speech.dm +++ b/code/modules/tgui_input/say_modal/speech.dm @@ -54,6 +54,8 @@ if(WHIS_CHANNEL) client.mob.whisper_verb(entry) return TRUE + if(DO_CHANNEL) + client.mob.do_verb(entry) // NOVA EDIT ADDITION END return FALSE diff --git a/modular_nova/modules/customization/datums/keybinding/communication.dm b/modular_nova/modules/customization/datums/keybinding/communication.dm index 335e256e588..1ac9a6da963 100644 --- a/modular_nova/modules/customization/datums/keybinding/communication.dm +++ b/modular_nova/modules/customization/datums/keybinding/communication.dm @@ -23,3 +23,33 @@ return winset(user, null, "command=[user.tgui_say_create_open_command(WHIS_CHANNEL)]") return TRUE + +/datum/keybinding/client/communication/Do + hotkey_keys = list("K") + name = DO_CHANNEL + full_name = "Do" + keybind_signal = COMSIG_KB_CLIENT_DO_DOWN + +/datum/keybinding/client/communication/Do/down(client/user) + . = ..() + if(.) + return + winset(user, null, "command=[user.tgui_say_create_open_command(DO_CHANNEL)]") + return TRUE + +/datum/keybinding/client/communication/Do_longer + hotkey_keys = list("CtrlK") + name = "do_longer" + full_name = "Do (Longer)" + keybind_signal = COMSIG_KB_CLIENT_DO_LONGER_DOWN + +/datum/keybinding/client/communication/Do_longer/down(client/user) + . = ..() + if(.) + return + var/message_text = tgui_input_text(user, "Write out your Do action:", "Do (Longer)", null, MAX_MESSAGE_LEN, TRUE) + if (!message_text) + return + + user.mob.do_verb(message_text) + return TRUE diff --git a/modular_nova/modules/roleplay_do/code/do_checks.dm b/modular_nova/modules/roleplay_do/code/do_checks.dm new file mode 100644 index 00000000000..cab5717df4c --- /dev/null +++ b/modular_nova/modules/roleplay_do/code/do_checks.dm @@ -0,0 +1,20 @@ +/mob/living/proc/doverb_checks(message) + if(!length(message)) + return FALSE + + if(GLOB.say_disabled) //This is here to try to identify lag problems + to_chat(usr, span_danger("Speech is currently admin-disabled.")) + return FALSE + + //quickly calc our name stub again: duplicate this in say.dm override + var/name_stub = " ([usr])" + if(length(message) > (MAX_MESSAGE_LEN - length(name_stub))) + to_chat(usr, message) + to_chat(usr, span_warning("^^^----- The preceding message has been DISCARDED for being over the maximum length of [MAX_MESSAGE_LEN]. It has NOT been sent! -----^^^")) + return FALSE + + if(usr.stat != CONSCIOUS) + to_chat(usr, span_notice("You cannot send a Do in your current condition.")) + return FALSE + + return TRUE diff --git a/modular_nova/modules/roleplay_do/code/do_verbs.dm b/modular_nova/modules/roleplay_do/code/do_verbs.dm new file mode 100644 index 00000000000..9af9dd974b8 --- /dev/null +++ b/modular_nova/modules/roleplay_do/code/do_verbs.dm @@ -0,0 +1,48 @@ +/mob/verb/do_verb(message as message) + set name = "Do" + set category = "IC" + set instant = TRUE + + if(GLOB.say_disabled) + to_chat(usr, span_danger("Speech is currently admin-disabled.")) + return + + if(message) + QUEUE_OR_CALL_VERB_FOR(VERB_CALLBACK(src, TYPE_VERB_REF(/mob/living, do_actual_verb), message), SSspeech_controller) + +/mob/living/verb/do_actual_verb(message as message) + if (!message || !doverb_checks(message)) + return + + if (!try_speak(message)) // ensure we pass the vibe check (filters, etc) + return + + var/name_stub = " ([usr])" + message = usr.say_emphasis(message) + message = trim(copytext_char(message, 1, (MAX_MESSAGE_LEN - length(name_stub)))) + var/message_with_name = message + name_stub + + usr.log_message(message, LOG_EMOTE) + + var/list/viewers = get_hearers_in_view(DEFAULT_MESSAGE_RANGE, usr) + + if(istype(usr, /mob/living/silicon/ai)) + var/mob/living/silicon/ai/ai = usr + viewers = get_hearers_in_view(DEFAULT_MESSAGE_RANGE, ai.eyeobj) + + var/obj/effect/overlay/holo_pad_hologram/hologram = GLOB.hologram_impersonators[usr] + if(hologram) + viewers |= get_hearers_in_view(1, hologram) + + for(var/mob/living/silicon/ai/ai as anything in GLOB.ai_list) + if(ai.client && !(ai in viewers) && (ai.eyeobj in viewers)) + viewers += ai + + for(var/mob/ghost as anything in GLOB.dead_mob_list) + if((ghost.client?.prefs.chat_toggles & CHAT_GHOSTSIGHT) && !(ghost in viewers)) + ghost.show_message(span_emote(message_with_name)) + + for(var/mob/reciever in viewers) + reciever.show_message(span_emote(message_with_name), alt_msg = span_emote(message_with_name)) + if (reciever.client?.prefs.read_preference(/datum/preference/toggle/enable_runechat)) + create_chat_message(usr, null, message, null, EMOTE_MESSAGE) diff --git a/tgstation.dme b/tgstation.dme index 194517689c7..3c46f9f6b60 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -7949,6 +7949,8 @@ #include "modular_nova\modules\robot_limb_detach\code\robot_limb_detach_quirk.dm" #include "modular_nova\modules\rod-stopper\code\immovable_nova.dm" #include "modular_nova\modules\rod-stopper\code\rodstopper.dm" +#include "modular_nova\modules\roleplay_do\code\do_checks.dm" +#include "modular_nova\modules\roleplay_do\code\do_verbs.dm" #include "modular_nova\modules\roundstart_implants\code\loadout_implants.dm" #include "modular_nova\modules\roundstart_implants\code\loadout_subtypes.dm" #include "modular_nova\modules\roundstart_implants\code\tool_subtypes.dm" diff --git a/tgui/packages/tgui-say/ChannelIterator.test.ts b/tgui/packages/tgui-say/ChannelIterator.test.ts index 62743dc6e99..1f0621297ab 100644 --- a/tgui/packages/tgui-say/ChannelIterator.test.ts +++ b/tgui/packages/tgui-say/ChannelIterator.test.ts @@ -14,6 +14,7 @@ describe('ChannelIterator', () => { // NOVA EDIT ADDITION START expect(channelIterator.next()).toBe('Whis'); expect(channelIterator.next()).toBe('LOOC'); + expect(channelIterator.next()).toBe('Do'); // NOVA EDIT ADDITION END expect(channelIterator.next()).toBe('OOC'); expect(channelIterator.next()).toBe('Say'); // Admin is blacklisted so it should be skipped diff --git a/tgui/packages/tgui-say/ChannelIterator.ts b/tgui/packages/tgui-say/ChannelIterator.ts index c8ee2e1ed1a..57866808609 100644 --- a/tgui/packages/tgui-say/ChannelIterator.ts +++ b/tgui/packages/tgui-say/ChannelIterator.ts @@ -5,6 +5,7 @@ export type Channel = // NOVA EDIT ADDITION START | 'Whis' | 'LOOC' + | 'Do' // NOVA EDIT ADDITION END | 'OOC' | 'Admin'; @@ -24,6 +25,7 @@ export class ChannelIterator { // NOVA EDIT ADDITION 'Whis', 'LOOC', + 'Do', // NOVA EDIT ADDITION 'OOC', 'Admin', diff --git a/tgui/packages/tgui-say/constants/index.tsx b/tgui/packages/tgui-say/constants/index.tsx index 8502f1dba47..8095aa98583 100644 --- a/tgui/packages/tgui-say/constants/index.tsx +++ b/tgui/packages/tgui-say/constants/index.tsx @@ -5,6 +5,7 @@ export const CHANNELS = [ 'Me', 'Whis', // NOVA EDIT ADDITION - CUSTOMIZATION 'LOOC', // NOVA EDIT ADDITION - CUSTOMIZATION + 'Do', // NOVA EDIT ADDITION - Do roleplay addition 'OOC', 'Admin', ] as const; diff --git a/tgui/packages/tgui-say/styles/colors.scss b/tgui/packages/tgui-say/styles/colors.scss index 52e6153fd60..7c44da982f4 100644 --- a/tgui/packages/tgui-say/styles/colors.scss +++ b/tgui/packages/tgui-say/styles/colors.scss @@ -29,6 +29,7 @@ $_channel_map: ( 'Synd': #8f4a4b, // NOVA EDIT ADDITION 'Whis': #7c7fd9, + 'Do': #59da7e, ); $channel_keys: map.keys($_channel_map) !default; From 0804b486cbd689d0c4798ce5dbb8d71793fef741 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:41:38 +0300 Subject: [PATCH 39/72] [MIRROR] Automatic TGS DMAPI Update (#2187) * Automatic TGS DMAPI Update (#81655) This pull request updates the TGS DMAPI to the latest version. Please note any changes that may be breaking or unimplemented in your codebase by checking what changes are in the definitions file: code/__DEFINES/tgs.dm before merging. * Automatic TGS DMAPI Update --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: orange man <61334995+comfyorange@users.noreply.github.com> Co-authored-by: tgstation-server --- code/__DEFINES/tgs.dm | 19 ++++++++++- code/modules/tgs/core/core.dm | 8 +++++ code/modules/tgs/core/datum.dm | 5 ++- code/modules/tgs/v4/api.dm | 6 ++-- code/modules/tgs/v5/__interop_version.dm | 2 +- code/modules/tgs/v5/_defines.dm | 9 +++++ code/modules/tgs/v5/api.dm | 42 +++++++++++++++++++++++- code/modules/tgs/v5/bridge.dm | 7 ++-- code/modules/tgs/v5/topic.dm | 13 ++++++++ code/modules/tgs/v5/undefs.dm | 9 +++++ 10 files changed, 111 insertions(+), 9 deletions(-) diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index fdfec5e8ca0..a4fb6d40be7 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,6 +1,6 @@ // tgstation-server DMAPI -#define TGS_DMAPI_VERSION "7.0.2" +#define TGS_DMAPI_VERSION "7.1.1" // All functions and datums outside this document are subject to change with any version and should not be relied on. @@ -50,6 +50,13 @@ #endif +#ifndef TGS_FILE2TEXT_NATIVE +#ifdef file2text +#error Your codebase is re-defining the BYOND proc file2text. The DMAPI requires the native version to read the result of world.Export(). You can fix this by adding "#define TGS_FILE2TEXT_NATIVE file2text" before your override of file2text to allow the DMAPI to use the native version. This will only be used for world.Export(), not regular file accesses +#endif +#define TGS_FILE2TEXT_NATIVE file2text +#endif + // EVENT CODES /// Before a reboot mode change, extras parameters are the current and new reboot mode enums. @@ -490,6 +497,16 @@ /world/proc/TgsChatChannelInfo() return +/** + * Trigger an event in TGS. Requires TGS version >= 6.3.0. Returns [TRUE] if the event was triggered successfully, [FALSE] otherwise. This function may sleep! + * + * event_name - The name of the event to trigger + * parameters - Optional list of string parameters to pass as arguments to the event script. The first parameter passed to a script will always be the running game's directory followed by these parameters. + * wait_for_completion - If set, this function will not return until the event has run to completion. + */ +/world/proc/TgsTriggerEvent(event_name, list/parameters, wait_for_completion = FALSE) + return + /* The MIT License diff --git a/code/modules/tgs/core/core.dm b/code/modules/tgs/core/core.dm index 8be96f27404..15622228e91 100644 --- a/code/modules/tgs/core/core.dm +++ b/code/modules/tgs/core/core.dm @@ -166,3 +166,11 @@ var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) if(api) return api.Visibility() + +/world/TgsTriggerEvent(event_name, list/parameters, wait_for_completion = FALSE) + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + if(!istype(parameters, /list)) + parameters = list() + + return api.TriggerEvent(event_name, parameters, wait_for_completion) diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm index 07ce3b68458..898516f1248 100644 --- a/code/modules/tgs/core/datum.dm +++ b/code/modules/tgs/core/datum.dm @@ -17,7 +17,7 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null) world.sleep_offline = FALSE // https://www.byond.com/forum/post/2894866 del(world) world.sleep_offline = FALSE // just in case, this is BYOND after all... - sleep(1) + sleep(world.tick_lag) TGS_DEBUG_LOG("BYOND DIDN'T TERMINATE THE WORLD!!! TICK IS: [world.time], sleep_offline: [world.sleep_offline]") /datum/tgs_api/latest @@ -69,3 +69,6 @@ TGS_PROTECT_DATUM(/datum/tgs_api) /datum/tgs_api/proc/Visibility() return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/TriggerEvent(event_name, list/parameters, wait_for_completion) + return FALSE diff --git a/code/modules/tgs/v4/api.dm b/code/modules/tgs/v4/api.dm index 945e2e41176..7c87922750b 100644 --- a/code/modules/tgs/v4/api.dm +++ b/code/modules/tgs/v4/api.dm @@ -181,7 +181,7 @@ var/json = json_encode(data) while(requesting_new_port && !override_requesting_new_port) - sleep(1) + sleep(world.tick_lag) //we need some port open at this point to facilitate return communication if(!world.port) @@ -209,7 +209,7 @@ requesting_new_port = FALSE while(export_lock) - sleep(1) + sleep(world.tick_lag) export_lock = TRUE last_interop_response = null @@ -217,7 +217,7 @@ text2file(json, server_commands_json_path) for(var/I = 0; I < EXPORT_TIMEOUT_DS && !last_interop_response; ++I) - sleep(1) + sleep(world.tick_lag) if(!last_interop_response) TGS_ERROR_LOG("Failed to get export result for: [json]") diff --git a/code/modules/tgs/v5/__interop_version.dm b/code/modules/tgs/v5/__interop_version.dm index 616263098fd..f4806f7adb9 100644 --- a/code/modules/tgs/v5/__interop_version.dm +++ b/code/modules/tgs/v5/__interop_version.dm @@ -1 +1 @@ -"5.8.0" +"5.9.0" diff --git a/code/modules/tgs/v5/_defines.dm b/code/modules/tgs/v5/_defines.dm index 1c7d67d20cd..92c7a8388a7 100644 --- a/code/modules/tgs/v5/_defines.dm +++ b/code/modules/tgs/v5/_defines.dm @@ -14,6 +14,7 @@ #define DMAPI5_BRIDGE_COMMAND_KILL 4 #define DMAPI5_BRIDGE_COMMAND_CHAT_SEND 5 #define DMAPI5_BRIDGE_COMMAND_CHUNK 6 +#define DMAPI5_BRIDGE_COMMAND_EVENT 7 #define DMAPI5_PARAMETER_ACCESS_IDENTIFIER "accessIdentifier" #define DMAPI5_PARAMETER_CUSTOM_COMMANDS "customCommands" @@ -34,6 +35,7 @@ #define DMAPI5_BRIDGE_PARAMETER_VERSION "version" #define DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE "chatMessage" #define DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL "minimumSecurityLevel" +#define DMAPI5_BRIDGE_PARAMETER_EVENT_INVOCATION "eventInvocation" #define DMAPI5_BRIDGE_RESPONSE_NEW_PORT "newPort" #define DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION "runtimeInformation" @@ -81,6 +83,7 @@ #define DMAPI5_TOPIC_COMMAND_SEND_CHUNK 9 #define DMAPI5_TOPIC_COMMAND_RECEIVE_CHUNK 10 #define DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST 11 +#define DMAPI5_TOPIC_COMMAND_COMPLETE_EVENT 12 #define DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE "commandType" #define DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND "chatCommand" @@ -116,3 +119,9 @@ #define DMAPI5_CUSTOM_CHAT_COMMAND_NAME "name" #define DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT "helpText" #define DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY "adminOnly" + +#define DMAPI5_EVENT_ID "eventId" + +#define DMAPI5_EVENT_INVOCATION_NAME "eventName" +#define DMAPI5_EVENT_INVOCATION_PARAMETERS "parameters" +#define DMAPI5_EVENT_INVOCATION_NOTIFY_COMPLETION "notifyCompletion" diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm index a5c064a8eaf..95b8edd3ee5 100644 --- a/code/modules/tgs/v5/api.dm +++ b/code/modules/tgs/v5/api.dm @@ -27,6 +27,8 @@ var/chunked_requests = 0 var/list/chunked_topics = list() + var/list/pending_events = list() + var/detached = FALSE /datum/tgs_api/v5/New() @@ -46,6 +48,10 @@ var/datum/tgs_version/api_version = ApiVersion() version = null // we want this to be the TGS version, not the interop version + + // sleep once to prevent an issue where world.Export on the first tick can hang indefinitely + sleep(world.tick_lag) + var/list/bridge_response = Bridge(DMAPI5_BRIDGE_COMMAND_STARTUP, list(DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL = minimum_required_security_level, DMAPI5_BRIDGE_PARAMETER_VERSION = api_version.raw_parameter, DMAPI5_PARAMETER_CUSTOM_COMMANDS = ListCustomCommands(), DMAPI5_PARAMETER_TOPIC_PORT = GetTopicPort())) if(!istype(bridge_response)) TGS_ERROR_LOG("Failed initial bridge request!") @@ -125,7 +131,7 @@ TGS_DEBUG_LOG("RequireInitialBridgeResponse: Starting sleep") logged = TRUE - sleep(1) + sleep(world.tick_lag) TGS_DEBUG_LOG("RequireInitialBridgeResponse: Passed") @@ -249,6 +255,40 @@ WaitForReattach(TRUE) return chat_channels.Copy() +/datum/tgs_api/v5/TriggerEvent(event_name, list/parameters, wait_for_completion) + RequireInitialBridgeResponse() + WaitForReattach(TRUE) + + if(interop_version.minor < 9) + TGS_WARNING_LOG("Interop version too low for custom events!") + return FALSE + + var/str_parameters = list() + for(var/i in parameters) + str_parameters += "[i]" + + var/list/response = Bridge(DMAPI5_BRIDGE_COMMAND_EVENT, list(DMAPI5_BRIDGE_PARAMETER_EVENT_INVOCATION = list(DMAPI5_EVENT_INVOCATION_NAME = event_name, DMAPI5_EVENT_INVOCATION_PARAMETERS = str_parameters, DMAPI5_EVENT_INVOCATION_NOTIFY_COMPLETION = wait_for_completion))) + if(!response) + return FALSE + + var/event_id = response[DMAPI5_EVENT_ID] + if(!event_id) + return FALSE + + TGS_DEBUG_LOG("Created event ID: [event_id]") + if(!wait_for_completion) + return TRUE + + TGS_DEBUG_LOG("Waiting for completion of event ID: [event_id]") + + while(!pending_events[event_id]) + sleep(world.tick_lag) + + TGS_DEBUG_LOG("Completed wait on event ID: [event_id]") + pending_events -= event_id + + return TRUE + /datum/tgs_api/v5/proc/DecodeChannels(chat_update_json) TGS_DEBUG_LOG("DecodeChannels()") var/list/chat_channels_json = chat_update_json[DMAPI5_CHAT_UPDATE_CHANNELS] diff --git a/code/modules/tgs/v5/bridge.dm b/code/modules/tgs/v5/bridge.dm index a0ab3598767..0c5e701a32b 100644 --- a/code/modules/tgs/v5/bridge.dm +++ b/code/modules/tgs/v5/bridge.dm @@ -65,7 +65,7 @@ if(detached) // Wait up to one minute for(var/i in 1 to 600) - sleep(1) + sleep(world.tick_lag) if(!detached && (!require_channels || length(chat_channels))) break @@ -77,8 +77,11 @@ /datum/tgs_api/v5/proc/PerformBridgeRequest(bridge_request) WaitForReattach(FALSE) + TGS_DEBUG_LOG("Bridge request start") // This is an infinite sleep until we get a response var/export_response = world.Export(bridge_request) + TGS_DEBUG_LOG("Bridge request complete") + if(!export_response) TGS_ERROR_LOG("Failed bridge request: [bridge_request]") return @@ -88,7 +91,7 @@ TGS_ERROR_LOG("Failed bridge request, missing content!") return - var/response_json = file2text(content) + var/response_json = TGS_FILE2TEXT_NATIVE(content) if(!response_json) TGS_ERROR_LOG("Failed bridge request, failed to load content!") return diff --git a/code/modules/tgs/v5/topic.dm b/code/modules/tgs/v5/topic.dm index 05e6c4e1b21..e1f2cb63857 100644 --- a/code/modules/tgs/v5/topic.dm +++ b/code/modules/tgs/v5/topic.dm @@ -176,6 +176,10 @@ var/list/reattach_response = TopicResponse(error_message) reattach_response[DMAPI5_PARAMETER_CUSTOM_COMMANDS] = ListCustomCommands() reattach_response[DMAPI5_PARAMETER_TOPIC_PORT] = GetTopicPort() + + for(var/eventId in pending_events) + pending_events[eventId] = TRUE + return reattach_response if(DMAPI5_TOPIC_COMMAND_SEND_CHUNK) @@ -276,6 +280,15 @@ TGS_WORLD_ANNOUNCE(message) return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_COMPLETE_EVENT) + var/event_id = topic_parameters[DMAPI5_EVENT_ID] + if (!istext(event_id)) + return TopicResponse("Invalid or missing [DMAPI5_EVENT_ID]") + + TGS_DEBUG_LOG("Completing event ID [event_id]...") + pending_events[event_id] = TRUE + return TopicResponse() + return TopicResponse("Unknown command: [command]") /datum/tgs_api/v5/proc/WorldBroadcast(message) diff --git a/code/modules/tgs/v5/undefs.dm b/code/modules/tgs/v5/undefs.dm index d531d4b7b9d..237207fdfd0 100644 --- a/code/modules/tgs/v5/undefs.dm +++ b/code/modules/tgs/v5/undefs.dm @@ -14,6 +14,7 @@ #undef DMAPI5_BRIDGE_COMMAND_KILL #undef DMAPI5_BRIDGE_COMMAND_CHAT_SEND #undef DMAPI5_BRIDGE_COMMAND_CHUNK +#undef DMAPI5_BRIDGE_COMMAND_EVENT #undef DMAPI5_PARAMETER_ACCESS_IDENTIFIER #undef DMAPI5_PARAMETER_CUSTOM_COMMANDS @@ -34,6 +35,7 @@ #undef DMAPI5_BRIDGE_PARAMETER_VERSION #undef DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE #undef DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL +#undef DMAPI5_BRIDGE_PARAMETER_EVENT_INVOCATION #undef DMAPI5_BRIDGE_RESPONSE_NEW_PORT #undef DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION @@ -81,6 +83,7 @@ #undef DMAPI5_TOPIC_COMMAND_SEND_CHUNK #undef DMAPI5_TOPIC_COMMAND_RECEIVE_CHUNK #undef DMAPI5_TOPIC_COMMAND_RECEIVE_BROADCAST +#undef DMAPI5_TOPIC_COMMAND_COMPLETE_EVENT #undef DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE #undef DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND @@ -116,3 +119,9 @@ #undef DMAPI5_CUSTOM_CHAT_COMMAND_NAME #undef DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT #undef DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY + +#undef DMAPI5_EVENT_ID + +#undef DMAPI5_EVENT_INVOCATION_NAME +#undef DMAPI5_EVENT_INVOCATION_PARAMETERS +#undef DMAPI5_EVENT_INVOCATION_NOTIFY_COMPLETION From f3037a5755639d1c7839aa12329e12071fd92e7f Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:41:55 +0300 Subject: [PATCH 40/72] [MIRROR] Adds a 4th law to the Painter lawset regarding cultivating an audience (#2189) * Adds a 4th law to the Painter lawset regarding cultivating an audience (#81717) ## About The Pull Request This PR adds the following law to the Artist lawset: `4. Art requires appreciation. Cultivate an audience aboard the station to ensure as many as possible see your works.` ## Why It's Good For The Game Artist has always been kind of vague (intentionally, I imagine), but I don't think the intent has ever been to encourage AIs to go "Blood is art, right? It constitutes art if I just murder fucking everyone on the station, right?". This law helps to steer things in a more constructive direction while leaving room for loopholes. I tried to word it in a way that allows AIs who want to be a little daring and bloodthirsty to kill a crewmember or two for "paint" without encouraging them to kill everyone. You need an audience, so killing everyone on the station would run counter to that. ## Changelog :cl: add: Added a new law to the Artist lawset in order to encourage Artist AIs to build an audience. /:cl: * Adds a 4th law to the Painter lawset regarding cultivating an audience --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: Vekter --- code/datums/ai_laws/laws_neutral.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/datums/ai_laws/laws_neutral.dm b/code/datums/ai_laws/laws_neutral.dm index 2fe19dafbc5..7adef14d95b 100644 --- a/code/datums/ai_laws/laws_neutral.dm +++ b/code/datums/ai_laws/laws_neutral.dm @@ -60,6 +60,7 @@ "You are a universally renowned artist.", "The station is your canvas.", "Make something beautiful out of your canvas. It will be admired as an artistic wonder of this sector.", + "Art requires appreciation. Cultivate an audience aboard the station to ensure as many as possible see your works.", ) /datum/ai_laws/tyrant From f42aa21eef87634ba1bdcaf98f694bd7ea57ecc9 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:42:05 +0300 Subject: [PATCH 41/72] Automatic changelog for PR #2149 [ci skip] --- html/changelogs/AutoChangeLog-pr-2149.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2149.yml diff --git a/html/changelogs/AutoChangeLog-pr-2149.yml b/html/changelogs/AutoChangeLog-pr-2149.yml new file mode 100644 index 00000000000..84bf337648e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2149.yml @@ -0,0 +1,4 @@ +author: "TJatPBnJ" +delete-after: True +changes: + - balance: "Power crepes are now finger food" \ No newline at end of file From b8139559835fae42140a7066761da32e15bd3af1 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:42:19 +0300 Subject: [PATCH 42/72] [MIRROR] Fixes some tackle business (#2191) * Fixes some tackle business (#81727) ## About The Pull Request Fixes #81691 Tackling was making the tackler grab themselves. I took this opportunity to cut down on some of these weird typecasts. ## Changelog :cl: Melbert fix: Fixes grabbing yourself when you tackle someone. /:cl: * Fixes some tackle business --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> --- code/datums/components/tackle.dm | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm index 7a65524788a..de42ae64cfd 100644 --- a/code/datums/components/tackle.dm +++ b/code/datums/components/tackle.dm @@ -164,8 +164,6 @@ neutral_outcome(user, target, tackle_word) //Forces a neutral outcome so you're not screwed too much from being blocked while tackling return COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH - - switch(roll) if(-INFINITY to -1) negative_outcome(user, target, roll, tackle_word) //OOF @@ -178,6 +176,15 @@ return COMPONENT_MOVABLE_IMPACT_FLIP_HITPUSH +/// Helper to do a grab and then adjust the grab state if necessary +/datum/component/tackler/proc/do_grab(mob/living/carbon/tackler, mob/living/carbon/tackled, skip_to_state = GRAB_PASSIVE) + set waitfor = FALSE + + if(!tackler.grab(tackled) || tackler.pulling != tackled) + return + if(tackler.grab_state != skip_to_state) + tackler.setGrabState(skip_to_state) + /** * Our positive tackling outcomes. * @@ -198,15 +205,10 @@ var/potential_outcome = (roll * 10) if(ishuman(target)) - var/mob/living/carbon/human/human_target = target - var/target_armor = human_target.run_armor_check(BODY_ZONE_CHEST, MELEE) - potential_outcome *= ((100 - target_armor) /100) + potential_outcome *= ((100 - target.run_armor_check(BODY_ZONE_CHEST, MELEE)) /100) else potential_outcome *= 0.9 - var/mob/living/carbon/human/human_target = target - var/mob/living/carbon/human/human_sacker = user - switch(potential_outcome) if(-INFINITY to 0) //I don't want to know how this has happened, okay? neutral_outcome(user, target, roll, tackle_word) //Default to neutral @@ -233,9 +235,7 @@ target.Paralyze(0.5 SECONDS) target.Knockdown(3 SECONDS) target.adjust_staggered_up_to(STAGGERED_SLOWDOWN_LENGTH * 2, 10 SECONDS) - if(ishuman(target) && ishuman(user)) - INVOKE_ASYNC(human_sacker, TYPE_PROC_REF(/mob/living, grab), human_sacker, human_target) - human_sacker.setGrabState(GRAB_PASSIVE) + do_grab(user, target) if(50 to INFINITY) // absolutely BODIED var/stamcritted_user = HAS_TRAIT_FROM(user, TRAIT_INCAPACITATED, STAMINA) @@ -259,9 +259,7 @@ target.Paralyze(0.5 SECONDS) target.Knockdown(3 SECONDS) target.adjust_staggered_up_to(STAGGERED_SLOWDOWN_LENGTH * 3, 10 SECONDS) - if(ishuman(target) && ishuman(user)) - INVOKE_ASYNC(human_sacker, TYPE_PROC_REF(/mob/living, grab), human_sacker, human_target) - human_sacker.setGrabState(GRAB_AGGRESSIVE) + do_grab(user, target, GRAB_AGGRESSIVE) /** * Our neutral tackling outcome. @@ -300,9 +298,7 @@ var/potential_roll_outcome = (roll * -10) if(ishuman(user)) - var/mob/living/carbon/human/human_sacker = target - var/attacker_armor = human_sacker.run_armor_check(BODY_ZONE_CHEST, MELEE) - potential_roll_outcome *= ((100 - attacker_armor) /100) + potential_roll_outcome *= ((100 - target.run_armor_check(BODY_ZONE_CHEST, MELEE)) /100) else potential_roll_outcome *= 0.9 From 84b82ad1a4eac34c8bcac77c5a77e8736882d810 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:42:28 +0300 Subject: [PATCH 43/72] Automatic changelog for PR #2148 [ci skip] --- html/changelogs/AutoChangeLog-pr-2148.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2148.yml diff --git a/html/changelogs/AutoChangeLog-pr-2148.yml b/html/changelogs/AutoChangeLog-pr-2148.yml new file mode 100644 index 00000000000..5157e6ceeb2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2148.yml @@ -0,0 +1,7 @@ +author: "IndieanaJones" +delete-after: True +changes: + - balance: "Gorillas are faster, stronger, but not bigger too. Note while holding an item, they are the same speed as they were prior." + - balance: "Gorillas now have the understanding of languages as monkeys do." + - balance: "The Gorilla Cube Box for traitors has been replaced with a singular gorilla cube. Due to the aforementioned changes, this singular gorilla should be as scary if not scarier than 3 gorillas were prior." + - balance: " Magillitis Serum Autoinjector now grants the resulting gorilla a slow passive regeneration effect which kicks in after not taking damage for 12 seconds." \ No newline at end of file From 5bdfe225e8a6da4fe173ee8f27f3884d9fe42f50 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:42:35 +0300 Subject: [PATCH 44/72] [MIRROR] Adds an HUD button to change your z-level (#2195) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Adds an HUD button to change your z-level (#81680) ## About The Pull Request Adds a quick shortcut to the "Move up" and "Move down" verbs via a button on the HUD! Gnarly as hell features include: - Implemented on humans, ghosts, cyborgs, AIs and Xenomorphs! - One button, two actions! Left click goes up, right click goes down. - Each UI style has its own themed sprite! (I made them myself and I'm not good spriting but I like how they ended up) - Has a tooltip! (Wow!) Demo video (has old button placement, look below to see the new placement): https://youtu.be/Mlw6C_ta50g
Mobs screenshots AI: ![image](https://github.com/tgstation/tgstation/assets/24967815/c34f1dd9-4efc-4170-a811-ebe3c96ef362) Ghost: ![image](https://github.com/tgstation/tgstation/assets/24967815/9b6adadf-9dec-4f7a-b230-227b9f2232d3) Larva/Xenomorph: ![image](https://github.com/tgstation/tgstation/assets/24967815/7bb60037-149a-446e-909b-9424e7fc0726) Cyborg: ![image](https://github.com/tgstation/tgstation/assets/24967815/f3426cb8-763d-4dec-9921-48267a039ed5)
UI styles screenshots (old placement) Midnight: ![image](https://github.com/tgstation/tgstation/assets/24967815/232bde6d-fdb9-4b0e-a900-04522c3e5695) Clockwork: ![image](https://github.com/tgstation/tgstation/assets/24967815/67b8e777-4177-435a-9ac4-18a617cd7fb7) Detective: ![image](https://github.com/tgstation/tgstation/assets/24967815/ce3cff5a-e0be-4d5f-ab2a-3c740fc68841) Glass: ![image](https://github.com/tgstation/tgstation/assets/24967815/8934da4d-a3c6-4c06-be5b-b1b457603b09) Operative: ![image](https://github.com/tgstation/tgstation/assets/24967815/3ebe1242-fc78-4de3-bb92-e1ced3e3cfb6) Plasmafire: ![image](https://github.com/tgstation/tgstation/assets/24967815/b3667443-cd35-42e2-a287-56522f589f5e) Retro: ![image](https://github.com/tgstation/tgstation/assets/24967815/89e82b1b-9cda-4d0d-bdad-cd7bdbc27fea) Slimecore: ![image](https://github.com/tgstation/tgstation/assets/24967815/8e5fe17f-e118-4c13-b99d-9a9d444f0e9a) Trasen-knox: ![image](https://github.com/tgstation/tgstation/assets/24967815/dddf6ef5-633d-4bbe-9f02-725affaa66dd)
**New placement:**
![image](https://github.com/tgstation/tgstation/assets/24967815/edfa4ee3-a642-4b85-b8e6-5064cee91c3d)
## Why It's Good For The Game We already have a bunch of maps with multiple Z-levels (Northstar, Tramstation, Icebox) and I'm sure there will be more to come. As these maps become more common, the ability to move up/down z-levels is bound to become important, if not essential. So I thought that, instead of hiding this ability behind a tab or a hotkeys menu, why not have it front and center? Also, I remember a long time ago there was a push to make the verbs menu on the top right obsolete, this helps to get us to that goal if we're still doing it. (This whole thing was inspired by me seeing what I assume to be a not-so-new but not-so-experienced player being confused as to how to go down those exact stairs on Tramstation's science when the gravgen was broken, and my inability to be able to explain it to them, partly because i couldnt remember what the key was called, and partly because i was a mime.) ## Changelog :cl: qol: added an HUD button to go up and down floors /:cl: * Adds an HUD button to change your z-level --------- Co-authored-by: NovaBot <154629622+NovaBot13@users.noreply.github.com> Co-authored-by: Ilán Mori --- code/__DEFINES/hud.dm | 5 +++++ code/_onclick/hud/ai.dm | 5 +++++ code/_onclick/hud/alien.dm | 6 +++++- code/_onclick/hud/alien_larva.dm | 4 ++++ code/_onclick/hud/ghost.dm | 10 ++++++++++ code/_onclick/hud/human.dm | 4 ++++ code/_onclick/hud/robot.dm | 6 ++++++ code/_onclick/hud/screen_objects.dm | 27 +++++++++++++++++++++++++++ icons/hud/screen_clockwork.dmi | Bin 17711 -> 19484 bytes icons/hud/screen_detective.dmi | Bin 4872 -> 5009 bytes icons/hud/screen_glass.dmi | Bin 14051 -> 15454 bytes icons/hud/screen_midnight.dmi | Bin 29686 -> 30704 bytes icons/hud/screen_operative.dmi | Bin 10280 -> 11037 bytes icons/hud/screen_plasmafire.dmi | Bin 31145 -> 31331 bytes icons/hud/screen_retro.dmi | Bin 13447 -> 14082 bytes icons/hud/screen_slimecore.dmi | Bin 29757 -> 30496 bytes icons/hud/screen_trasenknox.dmi | Bin 9262 -> 9913 bytes 17 files changed, 66 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index 5798fd29e82..0d2fb6b874d 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -77,6 +77,7 @@ #define ui_building "EAST-4:22,SOUTH:21" #define ui_language_menu "EAST-4:6,SOUTH:21" #define ui_navigate_menu "EAST-4:22,SOUTH:5" +#define ui_floor_menu "EAST-4:14,SOUTH:37" //Upper-middle right (alerts) #define ui_alert1 "EAST-1:28,CENTER+5:27" @@ -143,6 +144,7 @@ #define ui_borg_alerts "CENTER+4:21,SOUTH:5" #define ui_borg_language_menu "CENTER+4:19,SOUTH+1:6" #define ui_borg_navigate_menu "CENTER+4:19,SOUTH+1:6" +#define ui_borg_floor_menu "CENTER+4:-13,SOUTH+1:6" //Aliens #define ui_alien_health "EAST,CENTER-1:15" @@ -151,6 +153,7 @@ #define ui_alien_storage_r "CENTER+1:18,SOUTH:5" #define ui_alien_language_menu "EAST-4:20,SOUTH:5" #define ui_alien_navigate_menu "EAST-4:20,SOUTH:5" +#define ui_alien_floor_menu "EAST-4:-12,SOUTH:5" //AI #define ui_ai_core "BOTTOM:6,RIGHT-4" @@ -159,6 +162,7 @@ #define ui_ai_state_laws "BOTTOM:6,RIGHT-1" #define ui_ai_mod_int "BOTTOM:6,RIGHT" #define ui_ai_language_menu "BOTTOM+1:8,RIGHT-1:30" +#define ui_ai_floor_menu "BOTTOM+1:8,RIGHT-1:14" #define ui_ai_crew_monitor "BOTTOM:6,CENTER-1" #define ui_ai_crew_manifest "BOTTOM:6,CENTER" @@ -200,6 +204,7 @@ #define ui_ghost_pai "SOUTH: 6, CENTER+1:24" #define ui_ghost_minigames "SOUTH: 6, CENTER+2:24" #define ui_ghost_language_menu "SOUTH: 22, CENTER+3:8" +#define ui_ghost_floor_menu "SOUTH: 6, CENTER+3:8" //Blobbernauts #define ui_blobbernaut_overmind_health "EAST-1:28,CENTER+0:19" diff --git a/code/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm index 5f687d19642..1d26c4916b0 100644 --- a/code/_onclick/hud/ai.dm +++ b/code/_onclick/hud/ai.dm @@ -186,6 +186,11 @@ using.screen_loc = ui_ai_language_menu static_inventory += using +// Z-level floor change + using = new /atom/movable/screen/floor_menu(null, src) + using.screen_loc = ui_ai_floor_menu + static_inventory += using + //AI core using = new /atom/movable/screen/ai/aicore(null, src) using.screen_loc = ui_ai_core diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm index 3c1b1029a3e..c3b91173a45 100644 --- a/code/_onclick/hud/alien.dm +++ b/code/_onclick/hud/alien.dm @@ -63,6 +63,10 @@ using.screen_loc = ui_alien_language_menu static_inventory += using + using = new /atom/movable/screen/floor_menu(null, src) + using.screen_loc = ui_alien_floor_menu + static_inventory += using + using = new /atom/movable/screen/navigate(null, src) using.screen_loc = ui_alien_navigate_menu static_inventory += using @@ -87,7 +91,7 @@ pull_icon.update_appearance() pull_icon.screen_loc = ui_above_movement static_inventory += pull_icon - + rest_icon = new /atom/movable/screen/rest(null, src) rest_icon.icon = ui_style rest_icon.screen_loc = ui_above_intent diff --git a/code/_onclick/hud/alien_larva.dm b/code/_onclick/hud/alien_larva.dm index d9ebb3611b6..77d135ce2c6 100644 --- a/code/_onclick/hud/alien_larva.dm +++ b/code/_onclick/hud/alien_larva.dm @@ -32,6 +32,10 @@ using.screen_loc = ui_alien_language_menu static_inventory += using + using = new /atom/movable/screen/floor_menu(null, src) + using.screen_loc = ui_alien_floor_menu + static_inventory += using + using = new /atom/movable/screen/navigate(null, src) using.screen_loc = ui_alien_navigate_menu static_inventory += using diff --git a/code/_onclick/hud/ghost.dm b/code/_onclick/hud/ghost.dm index 99b04df9068..e20c1ede2f6 100644 --- a/code/_onclick/hud/ghost.dm +++ b/code/_onclick/hud/ghost.dm @@ -86,6 +86,16 @@ using.icon = ui_style static_inventory += using + using = new /atom/movable/screen/language_menu(null, src) + using.screen_loc = ui_ghost_language_menu + using.icon = ui_style + static_inventory += using + + using = new /atom/movable/screen/floor_menu(null, src) + using.screen_loc = ui_ghost_floor_menu + using.icon = ui_style + static_inventory += using + /datum/hud/ghost/show_hud(version = 0, mob/viewmob) // don't show this HUD if observing; show the HUD of the observee var/mob/dead/observer/O = mymob diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 410f6c07a45..ca2068b9a50 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -70,6 +70,10 @@ using.icon = ui_style static_inventory += using + using = new /atom/movable/screen/floor_menu(null, src) + using.icon = ui_style + static_inventory += using + action_intent = new /atom/movable/screen/combattoggle/flashy(null, src) action_intent.icon = ui_style action_intent.screen_loc = ui_combat_toggle diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm index fdc03364e3f..ae7ac6fee91 100644 --- a/code/_onclick/hud/robot.dm +++ b/code/_onclick/hud/robot.dm @@ -77,6 +77,7 @@ var/mob/living/silicon/robot/robit = mymob var/atom/movable/screen/using +// Language using = new/atom/movable/screen/language_menu(null, src) using.screen_loc = ui_borg_language_menu static_inventory += using @@ -86,6 +87,11 @@ using.screen_loc = ui_borg_navigate_menu static_inventory += using +// Z-level floor change + using = new /atom/movable/screen/floor_menu(null, src) + using.screen_loc = ui_borg_floor_menu + static_inventory += using + //Radio using = new /atom/movable/screen/robot/radio(null, src) using.screen_loc = ui_borg_radio diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index ce5c97a63c7..31a9426489f 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -127,6 +127,33 @@ /atom/movable/screen/language_menu/Click() usr.get_language_holder().open_language_menu(usr) +/atom/movable/screen/floor_menu + name = "change floor" + icon = 'icons/hud/screen_midnight.dmi' + icon_state = "floor_change" + screen_loc = ui_floor_menu + +/atom/movable/screen/floor_menu/Initialize(mapload) + . = ..() + register_context() + +/atom/movable/screen/floor_menu/add_context(atom/source, list/context, obj/item/held_item, mob/user) + . = ..() + + context[SCREENTIP_CONTEXT_LMB] = "Go up a floor" + context[SCREENTIP_CONTEXT_RMB] = "Go down a floor" + return CONTEXTUAL_SCREENTIP_SET + +/atom/movable/screen/floor_menu/Click(location,control,params) + var/list/modifiers = params2list(params) + + if(LAZYACCESS(modifiers, RIGHT_CLICK) || LAZYACCESS(modifiers, ALT_CLICK)) + usr.down() + return + + usr.up() + return + /atom/movable/screen/inventory /// The identifier for the slot. It has nothing to do with ID cards. var/slot_id diff --git a/icons/hud/screen_clockwork.dmi b/icons/hud/screen_clockwork.dmi index aa815e957e4ae8ab0642d0d48d9c36be81bd569a..0923e42e7e42913e7c8569066f9e7f3087ce337c 100644 GIT binary patch literal 19484 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%0D`35*ON=YhRzkN6SeT|-z_+)zUckfQ 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 literal 14051 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 literal 10280 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 diff --git a/icons/hud/screen_retro.dmi b/icons/hud/screen_retro.dmi index a00d16cac5eb9e7efd0ea79f30f0c24b6f7eec26..b4252109d6847bbe29ad5668317d3c61a6ec0966 100644 GIT binary patch literal 14082 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 bB2b&>Cd@_>V^!#H+W<9XO{LnGmJ$CC7n6wD literal 13447 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 KT#bxb*#7~WasMm; literal 29757 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 TYPB7r00000NkvXXu0mjf54JZ@ diff --git a/icons/hud/screen_trasenknox.dmi b/icons/hud/screen_trasenknox.dmi index 58c28d83e4be80b4eedb8f6ffcdf34f33b09b03d..2569d2a635edd9f9300b68a7c8922f805ff3dc9d 100644 GIT binary patch literal 9913 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 Date: Thu, 29 Feb 2024 21:47:32 +0300 Subject: [PATCH 45/72] Automatic changelog for PR #2151 [ci skip] --- html/changelogs/AutoChangeLog-pr-2151.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2151.yml diff --git a/html/changelogs/AutoChangeLog-pr-2151.yml b/html/changelogs/AutoChangeLog-pr-2151.yml new file mode 100644 index 00000000000..d7c9aa58f9c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2151.yml @@ -0,0 +1,5 @@ +author: "mc-oofert" +delete-after: True +changes: + - rscadd: "Added an option to deathmatch loadout dropdown that allows you to pick a random loadout" + - bugfix: "In deathmatch, plasmamen are made humans and the UI supports more players" \ No newline at end of file From f2dc127c4827bd3c77fb96926610403b89fd2b08 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:47:57 +0300 Subject: [PATCH 46/72] Automatic changelog for PR #2150 [ci skip] --- html/changelogs/AutoChangeLog-pr-2150.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2150.yml diff --git a/html/changelogs/AutoChangeLog-pr-2150.yml b/html/changelogs/AutoChangeLog-pr-2150.yml new file mode 100644 index 00000000000..f8a4bc7cfea --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2150.yml @@ -0,0 +1,4 @@ +author: "SyncIt21" +delete-after: True +changes: + - bugfix: "RCD converts miscellaneous turfs like basalt, sand, beach etc to plating first & not put a wall directly on top of them" \ No newline at end of file From e355b10557873733f21598e3d7d263af22f290dd Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:48:31 +0300 Subject: [PATCH 47/72] Automatic changelog for PR #2152 [ci skip] --- html/changelogs/AutoChangeLog-pr-2152.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2152.yml diff --git a/html/changelogs/AutoChangeLog-pr-2152.yml b/html/changelogs/AutoChangeLog-pr-2152.yml new file mode 100644 index 00000000000..c6d7b9e4633 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2152.yml @@ -0,0 +1,4 @@ +author: "00-Steven" +delete-after: True +changes: + - bugfix: "Newscasters no longer say \"No wanted issue posted. Have a secure day.\" when there is, in fact, an active wanted issue currently posted." \ No newline at end of file From 4be4693ddbf607032b56080e04a9b8aa1bb7b5b8 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:49:29 +0300 Subject: [PATCH 48/72] Automatic changelog for PR #2157 [ci skip] --- html/changelogs/AutoChangeLog-pr-2157.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2157.yml diff --git a/html/changelogs/AutoChangeLog-pr-2157.yml b/html/changelogs/AutoChangeLog-pr-2157.yml new file mode 100644 index 00000000000..d88f979677a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2157.yml @@ -0,0 +1,4 @@ +author: "Knouli" +delete-after: True +changes: + - balance: "DeForest brand Civil Defense Medical Kits may now be repurposed to carry a limited selection of field-portable cheese rations." \ No newline at end of file From 5080feb2b23ac63a4311d7e60daf5b57289eb6ca Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:55:37 +0300 Subject: [PATCH 49/72] Automatic changelog for PR #2158 [ci skip] --- html/changelogs/AutoChangeLog-pr-2158.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2158.yml diff --git a/html/changelogs/AutoChangeLog-pr-2158.yml b/html/changelogs/AutoChangeLog-pr-2158.yml new file mode 100644 index 00000000000..1e735fde359 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2158.yml @@ -0,0 +1,4 @@ +author: "00-Steven" +delete-after: True +changes: + - bugfix: "Medical/security records now show an icon based on the registered trim, rather than showing a question mark for records with customized titles." \ No newline at end of file From 526a25a02441894b0c8a802a83a61aa85c1af192 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:56:06 +0300 Subject: [PATCH 50/72] Automatic changelog for PR #2163 [ci skip] --- html/changelogs/AutoChangeLog-pr-2163.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2163.yml diff --git a/html/changelogs/AutoChangeLog-pr-2163.yml b/html/changelogs/AutoChangeLog-pr-2163.yml new file mode 100644 index 00000000000..ab0c85d5fd7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2163.yml @@ -0,0 +1,4 @@ +author: "softcerv" +delete-after: True +changes: + - code_imp: "TRAIT_DEAF now works on non-carbon mobs" \ No newline at end of file From 9b8fd7ec5f0703eb50becf252f1bc92bba417e93 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:57:19 +0300 Subject: [PATCH 51/72] Automatic changelog for PR #2164 [ci skip] --- html/changelogs/AutoChangeLog-pr-2164.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2164.yml diff --git a/html/changelogs/AutoChangeLog-pr-2164.yml b/html/changelogs/AutoChangeLog-pr-2164.yml new file mode 100644 index 00000000000..89d09d1d7bc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2164.yml @@ -0,0 +1,4 @@ +author: "PapaMichael" +delete-after: True +changes: + - balance: "Fugitive hunters will spawn early if the emergency shuttle is called." \ No newline at end of file From 1289d09d4d149288a987e09131df119e5e087750 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:57:36 +0300 Subject: [PATCH 52/72] Automatic changelog for PR #2165 [ci skip] --- html/changelogs/AutoChangeLog-pr-2165.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2165.yml diff --git a/html/changelogs/AutoChangeLog-pr-2165.yml b/html/changelogs/AutoChangeLog-pr-2165.yml new file mode 100644 index 00000000000..0acb3c6a1bb --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2165.yml @@ -0,0 +1,4 @@ +author: "JohnFulpWillard" +delete-after: True +changes: + - qol: "Intelligent monkeys now punch people instead of biting them." \ No newline at end of file From 1a8ba033bebbc431ffcd580d20348b8a584bc769 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:58:41 +0300 Subject: [PATCH 53/72] Automatic changelog for PR #2166 [ci skip] --- html/changelogs/AutoChangeLog-pr-2166.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2166.yml diff --git a/html/changelogs/AutoChangeLog-pr-2166.yml b/html/changelogs/AutoChangeLog-pr-2166.yml new file mode 100644 index 00000000000..a100278dc54 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2166.yml @@ -0,0 +1,5 @@ +author: "Iamgoofball" +delete-after: True +changes: + - balance: "xenomorph stomachs will no longer destroy items directly, refactored it to use acid_act()" + - bugfix: "fixes xenomorph vore accidentally destroying mobs it wasn't supposed to destroy, im thinking this was modified list in place shenanigans" \ No newline at end of file From c91d23e471e5fced5f66097222c8f102cd7a8626 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 21:59:12 +0300 Subject: [PATCH 54/72] Automatic changelog for PR #2167 [ci skip] --- html/changelogs/AutoChangeLog-pr-2167.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2167.yml diff --git a/html/changelogs/AutoChangeLog-pr-2167.yml b/html/changelogs/AutoChangeLog-pr-2167.yml new file mode 100644 index 00000000000..fb9957e2adb --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2167.yml @@ -0,0 +1,7 @@ +author: "LT3" +delete-after: True +changes: + - code_imp: "Tram throwing now breaks grilles consistently" + - code_imp: "Tram malfunction lethality/throw chance are now a multiplier instead of flat value" + - code_imp: "Tram throw chance can be adjusted" + - code_imp: "Unlucky trait is now used in tram throw calculation" \ No newline at end of file From dcf9ec45b24949a2cf04e4e65ad52c77cf54be6f Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 22:00:28 +0300 Subject: [PATCH 55/72] Automatic changelog for PR #2170 [ci skip] --- html/changelogs/AutoChangeLog-pr-2170.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2170.yml diff --git a/html/changelogs/AutoChangeLog-pr-2170.yml b/html/changelogs/AutoChangeLog-pr-2170.yml new file mode 100644 index 00000000000..cced53083f0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2170.yml @@ -0,0 +1,4 @@ +author: "ArcaneMusic" +delete-after: True +changes: + - image: "New sprites for plant grafts!" \ No newline at end of file From c32e34d025c076b93cba0efcc8502fff62dcf3ae Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 22:01:12 +0300 Subject: [PATCH 56/72] Automatic changelog for PR #2171 [ci skip] --- html/changelogs/AutoChangeLog-pr-2171.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2171.yml diff --git a/html/changelogs/AutoChangeLog-pr-2171.yml b/html/changelogs/AutoChangeLog-pr-2171.yml new file mode 100644 index 00000000000..60612d931ef --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2171.yml @@ -0,0 +1,5 @@ +author: "KingkumaArt" +delete-after: True +changes: + - rscadd: "a list of items called vendor_nocrush that vendors dont deal integrity damage to upon hitting them." + - bugfix: "Makes vending machines no longer crush chairs and conveyors." \ No newline at end of file From 83f829ce4cd4836bcdcc1bfbb5f1e2ca233074a4 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 22:06:24 +0300 Subject: [PATCH 57/72] Automatic changelog for PR #2173 [ci skip] --- html/changelogs/AutoChangeLog-pr-2173.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2173.yml diff --git a/html/changelogs/AutoChangeLog-pr-2173.yml b/html/changelogs/AutoChangeLog-pr-2173.yml new file mode 100644 index 00000000000..3e42a3e26b6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2173.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - balance: "\"Freshness Jars full of Natural Bait\" is now a goodie and costs 200 credits instead of 2000" \ No newline at end of file From fd39a7783f6ed5ccaf8f96ba60a416cd5806ba78 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 22:06:49 +0300 Subject: [PATCH 58/72] Automatic changelog for PR #2174 [ci skip] --- html/changelogs/AutoChangeLog-pr-2174.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2174.yml diff --git a/html/changelogs/AutoChangeLog-pr-2174.yml b/html/changelogs/AutoChangeLog-pr-2174.yml new file mode 100644 index 00000000000..086180971c5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2174.yml @@ -0,0 +1,4 @@ +author: "A.C.M.O." +delete-after: True +changes: + - bugfix: "Fixed the AI hologram's ability to copy the appearance of crew members." \ No newline at end of file From 2b55aa570003f6b49b9817be175511b6ba14ecbe Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 22:07:21 +0300 Subject: [PATCH 59/72] Automatic changelog for PR #2177 [ci skip] --- html/changelogs/AutoChangeLog-pr-2177.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2177.yml diff --git a/html/changelogs/AutoChangeLog-pr-2177.yml b/html/changelogs/AutoChangeLog-pr-2177.yml new file mode 100644 index 00000000000..bf9c3e68fa1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2177.yml @@ -0,0 +1,4 @@ +author: "mc-oofert" +delete-after: True +changes: + - bugfix: "Grilles dont break by just walking into them under any circumstances" \ No newline at end of file From 094bf65ff164a61f68deae6c5bb0caac73163276 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 22:10:07 +0300 Subject: [PATCH 60/72] Automatic changelog for PR #2180 [ci skip] --- html/changelogs/AutoChangeLog-pr-2180.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2180.yml diff --git a/html/changelogs/AutoChangeLog-pr-2180.yml b/html/changelogs/AutoChangeLog-pr-2180.yml new file mode 100644 index 00000000000..bd5f7934fc9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2180.yml @@ -0,0 +1,4 @@ +author: "necromanceranne" +delete-after: True +changes: + - bugfix: "Being in a Swat Suit appropriately protects you from collisions with a body, rather than the body thrown at you having these protections protecting YOU, the victim of the collision." \ No newline at end of file From a7fc6201cf2bf3aaa6f211d9d1b8d500b351397a Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 22:10:27 +0300 Subject: [PATCH 61/72] Automatic changelog for PR #2183 [ci skip] --- html/changelogs/AutoChangeLog-pr-2183.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2183.yml diff --git a/html/changelogs/AutoChangeLog-pr-2183.yml b/html/changelogs/AutoChangeLog-pr-2183.yml new file mode 100644 index 00000000000..8da2a1db267 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2183.yml @@ -0,0 +1,4 @@ +author: "13spacemen" +delete-after: True +changes: + - bugfix: "You can build material airlocks again" \ No newline at end of file From aa5d1309e025483d719c2221e07694311c661930 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 22:10:53 +0300 Subject: [PATCH 62/72] Automatic changelog for PR #2182 [ci skip] --- html/changelogs/AutoChangeLog-pr-2182.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2182.yml diff --git a/html/changelogs/AutoChangeLog-pr-2182.yml b/html/changelogs/AutoChangeLog-pr-2182.yml new file mode 100644 index 00000000000..6814b22e910 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2182.yml @@ -0,0 +1,4 @@ +author: "SyncIt21" +delete-after: True +changes: + - bugfix: "Cryostylane reaction now has a moderate & not extreme cooling effect. Helps you achieve more pure amounts of Cryostylane" \ No newline at end of file From ef59f7d19bbaf9deb86e3ceb5963f7bb78a2fca0 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 22:12:37 +0300 Subject: [PATCH 63/72] Automatic changelog for PR #2184 [ci skip] --- html/changelogs/AutoChangeLog-pr-2184.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2184.yml diff --git a/html/changelogs/AutoChangeLog-pr-2184.yml b/html/changelogs/AutoChangeLog-pr-2184.yml new file mode 100644 index 00000000000..797744dae8e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2184.yml @@ -0,0 +1,7 @@ +author: "LT3" +delete-after: True +changes: + - qol: "Airlocks don't flash constantly on engineering override, override/overlay added for fire alarm" + - bugfix: "Airlock lighting should no longer render on top of player characters" + - bugfix: "Airlock emissives no longer overlap firedoors" + - bugfix: "Fixed missing overlays on various airlock types" \ No newline at end of file From d714dbefba3b00e273cbe928a8e150af7e55992c Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 22:13:20 +0300 Subject: [PATCH 64/72] Automatic changelog for PR #2186 [ci skip] --- html/changelogs/AutoChangeLog-pr-2186.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2186.yml diff --git a/html/changelogs/AutoChangeLog-pr-2186.yml b/html/changelogs/AutoChangeLog-pr-2186.yml new file mode 100644 index 00000000000..85148425f8b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2186.yml @@ -0,0 +1,4 @@ +author: "yooriss" +delete-after: True +changes: + - rscadd: "A new form of emoting is available called 'Do', accessible via the K and Ctrl-K keybinds by default (as well as the 'Do' verb). Do doesn't put your character name first and instead includes it in brackets at the end, so you can use it to write better prose and even narrate things in the environment around you with less clunkiness! Try it out today." \ No newline at end of file From 0e2894fe360c4b99a242a805873207ffd078b8b7 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 22:27:07 +0300 Subject: [PATCH 65/72] Automatic changelog for PR #2189 [ci skip] --- html/changelogs/AutoChangeLog-pr-2189.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2189.yml diff --git a/html/changelogs/AutoChangeLog-pr-2189.yml b/html/changelogs/AutoChangeLog-pr-2189.yml new file mode 100644 index 00000000000..b0db2178347 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2189.yml @@ -0,0 +1,4 @@ +author: "TheVekter" +delete-after: True +changes: + - rscadd: "Added a new law to the Artist lawset in order to encourage Artist AIs to build an audience." \ No newline at end of file From c1b9d0f488e6284ac13dbbd48c2937026e9201ad Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 22:27:48 +0300 Subject: [PATCH 66/72] Automatic changelog for PR #2191 [ci skip] --- html/changelogs/AutoChangeLog-pr-2191.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2191.yml diff --git a/html/changelogs/AutoChangeLog-pr-2191.yml b/html/changelogs/AutoChangeLog-pr-2191.yml new file mode 100644 index 00000000000..09158f9debd --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2191.yml @@ -0,0 +1,4 @@ +author: "Melbert" +delete-after: True +changes: + - bugfix: "Fixes grabbing yourself when you tackle someone." \ No newline at end of file From 36409433ab6691f61bc57de51f32511280e8dd5b Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Thu, 29 Feb 2024 22:37:37 +0300 Subject: [PATCH 67/72] Automatic changelog for PR #2195 [ci skip] --- html/changelogs/AutoChangeLog-pr-2195.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2195.yml diff --git a/html/changelogs/AutoChangeLog-pr-2195.yml b/html/changelogs/AutoChangeLog-pr-2195.yml new file mode 100644 index 00000000000..57316c6d837 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2195.yml @@ -0,0 +1,4 @@ +author: "TheSmallBlue" +delete-after: True +changes: + - qol: "added an HUD button to go up and down floors" \ No newline at end of file From ebf275c2bc5bf8f9cd07e786b251b530f1a6cfe9 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Fri, 1 Mar 2024 01:14:11 +0300 Subject: [PATCH 68/72] [MODULAR] Down By The River: Telepathy improvements & telepathic quirk (#1930) * Refactor telepathy power to point-target, add reply functionality & telepathic quirk * Fix CI issues * Let silicons pick telepathic quirk as well * Handle the fact that silicons don't have DNA (or mutations) in telepathic quirk * Apply suggestions from code review * Use proper procs for runechat creation * Apply suggestions from code review * Remove blocked return (unneeded) * Apply suggestions from code review * Reorder last-target checks to actually occur only on secondary * Improve autoformatting and improve ghost observer output * Minor formatting improvements to telepathy observer line * Allow telepaths to discern who's sending them telepathic messages * Attempt logging fix --------- Co-authored-by: Ephemeralis Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> --- .../telepathy_quirk/code/telepathy_action.dm | 125 ++++++++++++++++++ .../telepathy_quirk/code/telepathy_quirk.dm | 34 +++++ .../code/telepathy_reply_emote.dm | 17 +++ tgstation.dme | 3 + 4 files changed, 179 insertions(+) create mode 100644 modular_nova/modules/telepathy_quirk/code/telepathy_action.dm create mode 100644 modular_nova/modules/telepathy_quirk/code/telepathy_quirk.dm create mode 100644 modular_nova/modules/telepathy_quirk/code/telepathy_reply_emote.dm diff --git a/modular_nova/modules/telepathy_quirk/code/telepathy_action.dm b/modular_nova/modules/telepathy_quirk/code/telepathy_action.dm new file mode 100644 index 00000000000..e2ab3ef5e32 --- /dev/null +++ b/modular_nova/modules/telepathy_quirk/code/telepathy_action.dm @@ -0,0 +1,125 @@ +/datum/mutation/human/telepathy + power_path = /datum/action/cooldown/spell/pointed/telepathy + +/datum/action/cooldown/spell/pointed/telepathy + name = "Telepathic Communication" + desc = "Left click: point target to project a thought to them. Right click: project to your last thought target, if in range." + button_icon = 'icons/mob/actions/actions_revenant.dmi' + button_icon_state = "r_transmit" + spell_requirements = SPELL_REQUIRES_NO_ANTIMAGIC + antimagic_flags = MAGIC_RESISTANCE_MIND + cooldown_time = 1 SECONDS + cast_range = 7 + /// What's the last mob we point-targeted with this ability? + var/datum/weakref/last_target_ref + /// The message we send + var/message + /// Are we blocking casts? + var/blocked = FALSE + +/datum/action/cooldown/spell/pointed/telepathy/is_valid_target(atom/cast_on) + . = ..() + if (!.) + return FALSE + + if (!isliving(cast_on)) + to_chat(owner, span_warning("Inanimate objects can't hear your thoughts.")) + owner.balloon_alert(owner, "not a thing with thoughts!") + return FALSE + + var/mob/living/living_target = cast_on + if (living_target.stat == DEAD) + to_chat(owner, span_warning("The disruptive noise of departed resonance inhibits your ability to communicate with the dead.")) + owner.balloon_alert(owner, "can't transmit to the dead!") + return FALSE + + if (get_dist(living_target, owner) > cast_range) + owner.balloon_alert(owner, "too far away!") + return FALSE + + return TRUE + +/datum/action/cooldown/spell/pointed/telepathy/before_cast(atom/cast_on) + . = ..() + if(. & SPELL_CANCEL_CAST || blocked) + return + + message = autopunct_bare(capitalize(tgui_input_text(owner, "What do you wish to whisper to [cast_on]?", "[src]"))) + if(QDELETED(src) || QDELETED(owner) || QDELETED(cast_on) || !can_cast_spell()) + return . | SPELL_CANCEL_CAST + + if(get_dist(cast_on, owner) > cast_range) + owner.balloon_alert(owner, "they're too far!") + return . | SPELL_CANCEL_CAST + + if(!message) + reset_spell_cooldown() + return . | SPELL_CANCEL_CAST + +/datum/action/cooldown/spell/pointed/telepathy/Trigger(trigger_flags, atom/target) + if (trigger_flags & TRIGGER_SECONDARY_ACTION) + var/mob/living/last_target = last_target_ref?.resolve() + + if(isnull(last_target)) + last_target_ref = null + owner.balloon_alert(owner, "last target is not available!") + return + else if(get_dist(last_target, owner) > cast_range) + owner.balloon_alert(owner, "[last_target] is too far away!") + return + + blocked = TRUE + + message = autopunct_bare(capitalize(tgui_input_text(owner, "What do you wish to whisper to [last_target]?", "[src]"))) + if(QDELETED(src) || QDELETED(owner) || QDELETED(last_target) || !can_cast_spell()) + blocked = FALSE + return + send_thought(owner, last_target, message) + src.StartCooldown() + blocked = FALSE + return + + . = ..() + +/datum/action/cooldown/spell/pointed/telepathy/cast(mob/living/cast_on) + . = ..() + send_thought(owner, cast_on, message) + +/datum/action/cooldown/spell/pointed/telepathy/proc/send_thought(mob/living/caster, mob/living/target, message) + log_directed_talk(caster, target, message, LOG_SAY, tag = "telepathy") + + last_target_ref = WEAKREF(target) + + to_chat(owner, span_boldnotice("You reach out and convey to [target]: \"[span_purple(message)]\"")) + // flub a runechat chat message, do something with the language later + if(owner.client?.prefs.read_preference(/datum/preference/toggle/enable_runechat)) + owner.create_chat_message(owner, owner.get_selected_language(), message, list("italics")) + if(!target.can_block_magic(antimagic_flags, charge_cost = 0) && target.client) //make sure we've got a client before we bother sending anything + //different messaging if the target has the telepathy mutation themselves themselves + if (ishuman(target)) + var/mob/living/carbon/human/human_target = target + var/datum/mutation/human/telepathy/tele_mut = human_target.dna.get_mutation(/datum/mutation/human/telepathy) + + if (tele_mut) + to_chat(target, span_boldnotice("[caster]'s psychic presence resounds in your mind: \"[span_purple(message)]\"")) + else + to_chat(target, span_boldnotice("A voice echoes in your head: \"[span_purple(message)]\"")) + + if(target.client?.prefs.read_preference(/datum/preference/toggle/enable_runechat)) + target.create_chat_message(target, target.get_selected_language(), message, list("italics")) // it appears over them since they hear it in their head + else + owner.balloon_alert(owner, "something blocks your thoughts!") + to_chat(owner, span_warning("Your mind encounters impassable resistance: the thought was blocked!")) + return + + // send to ghosts as well i guess + for(var/mob/dead/ghost as anything in GLOB.dead_mob_list) + if(!isobserver(ghost)) + continue + + var/from_link = FOLLOW_LINK(ghost, owner) + var/from_mob_name = span_boldnotice("[owner]") + var/to_link = FOLLOW_LINK(ghost, target) + var/to_mob_name = span_name("[target]") + + to_chat(ghost, "[from_link] " + span_purple("\[Telepathy\] [from_mob_name] transmits, \"[message]\"") + " to [to_mob_name] [to_link]") diff --git a/modular_nova/modules/telepathy_quirk/code/telepathy_quirk.dm b/modular_nova/modules/telepathy_quirk/code/telepathy_quirk.dm new file mode 100644 index 00000000000..5cbcfb275f6 --- /dev/null +++ b/modular_nova/modules/telepathy_quirk/code/telepathy_quirk.dm @@ -0,0 +1,34 @@ +/datum/quirk/telepathic + name = "Telepathic" + desc = "You are able to transmit your thoughts to other living creatures." + gain_text = span_purple("Your mind roils with psychic energy.") + lose_text = span_notice("Mundanity encroaches upon your thoughts once again.") + medical_record_text = "Patient has an unusually enlarged Broca's area visible in cerebral biology, and appears to be able to communicate via extrasensory means." + value = 0 + icon = FA_ICON_HEAD_SIDE_COUGH + /// Ref used to easily retrieve the action used when removing the quirk from silicons + var/datum/weakref/tele_action_ref + +/datum/quirk/telepathic/add(client/client_source) + if (iscarbon(quirk_holder)) + var/mob/living/carbon/human/human_holder = quirk_holder + + if (!human_holder.dna.activate_mutation(/datum/mutation/human/telepathy)) + human_holder.dna.add_mutation(/datum/mutation/human/telepathy, MUT_OTHER) + else if (issilicon(quirk_holder)) + var/mob/living/silicon/robot_holder = quirk_holder + var/datum/action/cooldown/spell/pointed/telepathy/tele_action = new + + tele_action.Grant(robot_holder) + tele_action_ref = WEAKREF(tele_action) + +/datum/quirk/telepathic/remove() + var/datum/action/cooldown/spell/pointed/telepathy/tele_action = tele_action_ref?.resolve() + if (isnull(tele_action)) + tele_action_ref = null + if (iscarbon(quirk_holder)) + var/mob/living/carbon/human/human_holder = quirk_holder + human_holder.dna.remove_mutation(/datum/mutation/human/telepathy) + else if (issilicon(quirk_holder) && !isnull(tele_action)) + QDEL_NULL(tele_action) + tele_action_ref = null diff --git a/modular_nova/modules/telepathy_quirk/code/telepathy_reply_emote.dm b/modular_nova/modules/telepathy_quirk/code/telepathy_reply_emote.dm new file mode 100644 index 00000000000..adf5e672599 --- /dev/null +++ b/modular_nova/modules/telepathy_quirk/code/telepathy_reply_emote.dm @@ -0,0 +1,17 @@ +/datum/emote/living/telepathy_reply + key = "treply" + key_third_person = "treply" + cooldown = 4 SECONDS + +/datum/emote/living/telepathy_reply/run_emote(mob/living/user, params, type_override, intentional) + if (ishuman(user) && intentional) + var/mob/living/carbon/human/human_user = user + var/datum/mutation/human/telepathy/mutation = human_user.dna.get_mutation(/datum/mutation/human/telepathy) + if (mutation) + var/datum/action/cooldown/spell/pointed/telepathy/tele_action = locate() in user.actions + // just straight up call the right-click action as is + if (tele_action) + tele_action.Trigger(TRIGGER_SECONDARY_ACTION) + tele_action.blocked = FALSE + + return ..() diff --git a/tgstation.dme b/tgstation.dme index 3c46f9f6b60..fca09db7cbf 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -8069,6 +8069,9 @@ #include "modular_nova\modules\tarkon\code\misc_fluff\research.dm" #include "modular_nova\modules\tarkon\code\misc_fluff\spawner.dm" #include "modular_nova\modules\tarkon\code\misc_fluff\tools.dm" +#include "modular_nova\modules\telepathy_quirk\code\telepathy_action.dm" +#include "modular_nova\modules\telepathy_quirk\code\telepathy_quirk.dm" +#include "modular_nova\modules\telepathy_quirk\code\telepathy_reply_emote.dm" #include "modular_nova\modules\tesh_augments\code\all_nodes.dm" #include "modular_nova\modules\tesh_augments\code\limbs.dm" #include "modular_nova\modules\tesh_augments\code\mechfabricator_designs.dm" From bb14249879f00dc2b2d575abef42cf6ef4670440 Mon Sep 17 00:00:00 2001 From: Iajret Creature <122297233+Steals-The-PRs@users.noreply.github.com> Date: Fri, 1 Mar 2024 01:29:53 +0300 Subject: [PATCH 69/72] [MODULAR] Crime DLC #1: Underworld Connections quirk for exploitables access & roundstart black market uplink (customizable) (#2185) * Initial commit of Crime DLC 1 * Change keys to satisfy CI? * Use short text input for description * CI fix attempt 2 * Remove unused import * Fix duplicated price min * Policy request: make sure users know they're not antags for taking the UC quirk * Don't remove security notes upon quirk removal * Code review suggestions * Apply suggestions from code review * Replace CIN mention * Fix defunct replacetext and also clarify weapons permit difficulties in quirk description * Prevent jobrole prisoners from using Underworld Connections quirk (by popular request) * Remove broken uplink customization icon * Make black market uplinks small items --------- Co-authored-by: Ephemeralis Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> --- code/__DEFINES/~nova_defines/jobs.dm | 6 +- .../customization/modules/jobs/_job.dm | 3 +- .../code/black_market_uplink.dm | 2 + .../code/markets/base_black_market.dm | 222 ++++++++++++++++++ .../code/underworld_connections_quirk.dm | 147 ++++++++++++ tgstation.dme | 3 + .../nova/underworld_connections.tsx | 22 ++ 7 files changed, 402 insertions(+), 3 deletions(-) create mode 100644 modular_nova/modules/underworld_connections/code/black_market_uplink.dm create mode 100644 modular_nova/modules/underworld_connections/code/markets/base_black_market.dm create mode 100644 modular_nova/modules/underworld_connections/code/underworld_connections_quirk.dm create mode 100644 tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/nova/underworld_connections.tsx diff --git a/code/__DEFINES/~nova_defines/jobs.dm b/code/__DEFINES/~nova_defines/jobs.dm index 7aa6486c9d5..a8cc61a9cf7 100644 --- a/code/__DEFINES/~nova_defines/jobs.dm +++ b/code/__DEFINES/~nova_defines/jobs.dm @@ -6,9 +6,11 @@ #define JOB_UNAVAILABLE_FLAVOUR (JOB_UNAVAILABLE_LANGUAGE + 1) #define JOB_UNAVAILABLE_AUGMENT (JOB_UNAVAILABLE_FLAVOUR + 1) -#define SEC_RESTRICTED_QUIRKS "Blind" = TRUE, "Brain Tumor" = TRUE, "Deaf" = TRUE, "Paraplegic" = TRUE, "Hemiplegic" = TRUE, "Mute" = TRUE, "Foreigner" = TRUE, "Pacifist" = TRUE, "No Guns" = TRUE, "Illiterate" = TRUE, "Nerve Stapled" = TRUE -#define HEAD_RESTRICTED_QUIRKS "Blind" = TRUE, "Deaf" = TRUE, "Mute" = TRUE, "Foreigner" = TRUE, "Brain Tumor" = TRUE, "Illiterate" = TRUE +#define SEC_RESTRICTED_QUIRKS "Blind" = TRUE, "Brain Tumor" = TRUE, "Deaf" = TRUE, "Paraplegic" = TRUE, "Hemiplegic" = TRUE, "Mute" = TRUE, "Foreigner" = TRUE, "Pacifist" = TRUE, "No Guns" = TRUE, "Illiterate" = TRUE, "Nerve Stapled" = TRUE, "Underworld Connections" = TRUE +#define HEAD_RESTRICTED_QUIRKS "Blind" = TRUE, "Deaf" = TRUE, "Mute" = TRUE, "Foreigner" = TRUE, "Brain Tumor" = TRUE, "Illiterate" = TRUE, "Underworld Connections" = TRUE +#define HEAD_RESTRICTED_QUIRKS_QM "Blind" = TRUE, "Deaf" = TRUE, "Mute" = TRUE, "Foreigner" = TRUE, "Brain Tumor" = TRUE, "Illiterate" = TRUE #define GUARD_RESTRICTED_QUIRKS "Blind" = TRUE, "Deaf" = TRUE, "Foreigner" = TRUE, "Pacifist" = TRUE, "Nerve Stapled" = TRUE +#define PRISONER_RESTRICTED_QUIRKS "Underworld Connections" = TRUE #define RESTRICTED_QUIRKS_EXCEPTIONS list("Mute" = "Signer") diff --git a/modular_nova/modules/customization/modules/jobs/_job.dm b/modular_nova/modules/customization/modules/jobs/_job.dm index 189e643e2ff..f053abc3390 100644 --- a/modular_nova/modules/customization/modules/jobs/_job.dm +++ b/modular_nova/modules/customization/modules/jobs/_job.dm @@ -117,7 +117,7 @@ banned_augments = list(HEAD_RESTRICTED_AUGMENTS) /datum/job/quartermaster - banned_quirks = list(HEAD_RESTRICTED_QUIRKS) + banned_quirks = list(HEAD_RESTRICTED_QUIRKS_QM) banned_augments = list(HEAD_RESTRICTED_AUGMENTS) //Silicon @@ -142,6 +142,7 @@ /datum/job/prisoner required_languages = null + banned_quirks = list(PRISONER_RESTRICTED_QUIRKS) /datum/job/orderly banned_quirks = list(GUARD_RESTRICTED_QUIRKS) diff --git a/modular_nova/modules/underworld_connections/code/black_market_uplink.dm b/modular_nova/modules/underworld_connections/code/black_market_uplink.dm new file mode 100644 index 00000000000..42a060cca60 --- /dev/null +++ b/modular_nova/modules/underworld_connections/code/black_market_uplink.dm @@ -0,0 +1,2 @@ +/obj/item/market_uplink + w_class = WEIGHT_CLASS_SMALL diff --git a/modular_nova/modules/underworld_connections/code/markets/base_black_market.dm b/modular_nova/modules/underworld_connections/code/markets/base_black_market.dm new file mode 100644 index 00000000000..9b13c31b9bf --- /dev/null +++ b/modular_nova/modules/underworld_connections/code/markets/base_black_market.dm @@ -0,0 +1,222 @@ +// This file contains a WHOLE BUNCH of cost defuckulations to bring the ancient black market stuff back into line with our current cargo pricing. +// I've also taken the liberty of redoing a few descs because man they kinda suck. +// Some availability_probs have been upped considerably for items that I think should be core to the "dodgy" character archetype, like switchblades, science goggles and the various maintenance pills. + +// CLOTHING + +/datum/market_item/clothing/ninja_mask + price_min = PAYCHECK_CREW + price_max = PAYCHECK_CREW * 3 + +/datum/market_item/clothing/durathread_vest + desc = "Concerns about high asbestos content are completely unfounded. Note: may contain asbestos." + price_min = PAYCHECK_CREW * 0.5 + price_max = PAYCHECK_CREW * 1.5 + +/datum/market_item/clothing/durathread_helmet + desc = "Smells faintly like an icewalker. Weird. Goes on your head and is vaguely armoured. Note: may contain asbestos." + price_min = PAYCHECK_CREW * 0.5 + price_max = PAYCHECK_CREW * 1.5 + +/datum/market_item/clothing/full_spacesuit_set + desc = "Decommissioned thirty years ago, boxes of these ancient spaceproof relics keep showing up in warehouses somewhere. They're \"old style\"." + price_min = PAYCHECK_CREW * 6 + price_max = PAYCHECK_CREW * 12 + +/datum/market_item/clothing/chameleon_hat + desc = "Emulate the appearance of any hat in the sector! Warning: device not quality tested. \[REDACTED\] assumes no risk for malfunction or mortal injury." + price_min = PAYCHECK_CREW + price_max = PAYCHECK_CREW * 3 + +/datum/market_item/clothing/rocket_boots + price_min = PAYCHECK_CREW * 6 + price_max = PAYCHECK_CREW * 12 + +/datum/market_item/clothing/anti_sec_pin + price_min = PAYCHECK_CREW + price_max = PAYCHECK_CREW * 3 + availability_prob = 100 //it's funny so why not + +// CONSUMABLES +/datum/market_item/consumable/clown_tears + desc = "Wrung by force from ethically-sourced clowns by your local jester. 100% guaranteed baton free." + price_min = PAYCHECK_CREW * 0.5 + price_max = PAYCHECK_CREW * 1.5 + +/datum/market_item/consumable/donk_pocket_box + price_min = PAYCHECK_CREW * 0.3 + price_max = PAYCHECK_CREW * 1 + availability_prob = 100 //you can always afford some (illegal) donkpockets. Donk Co loves you. + +/datum/market_item/consumable/suspicious_pills + price_min = PAYCHECK_CREW * 0.5 + price_max = PAYCHECK_CREW * 1.5 + +/datum/market_item/consumable/floor_pill + desc = "Harvested daily by responsibly-paid assistants, this pill is guaranteed to a) have been on the floor, and b) is a pill. Good luck!" + price_min = PAYCHECK_CREW * 0.1 + price_max = PAYCHECK_CREW * 0.3 + availability_prob = 100 // no shortage of unmarked pills babyyyy + +/datum/market_item/consumable/pumpup + desc = "Clean-up crews sell off these things by the dozen after every shift - get your hands on some today! What could possibly go wrong with maintenance drugs?" + price_min = PAYCHECK_CREW * 0.2 + price_max = PAYCHECK_CREW * 0.4 + +// MISCELLANEOUS + +/datum/market_item/misc/Clear_PDA + desc = "Clearly show your appreciation for style with this limited edition clear PDA!" + price_min = PAYCHECK_CREW + price_max = PAYCHECK_CREW * 2 + +/datum/market_item/misc/jade_Lantern + price_min = PAYCHECK_CREW * 0.5 + price_max = PAYCHECK_CREW + +/datum/market_item/misc/cap_gun + price_min = PAYCHECK_CREW * 0.5 + price_max = PAYCHECK_CREW + +/datum/market_item/misc/shoulder_holster + name = "Shoulder Holster" + //why in great googly moogly were these so expensive? what the fuck? + price_min = PAYCHECK_CREW * 0.2 + price_max = PAYCHECK_CREW * 0.6 + +/datum/market_item/misc/donk_recycler + price_min = PAYCHECK_CREW * 2 + price_max = PAYCHECK_CREW * 4 + +/datum/market_item/misc/shove_blocker + // ok this is a seriously fucking good module so we'll make it cost a bit + price_min = PAYCHECK_CREW * 8 + price_max = PAYCHECK_CREW * 14 + +/datum/market_item/misc/holywater + desc = "The Spinward Independent Magicians assume no responsibility for the holy (or unholiness) of this magical reagent." + price_min = PAYCHECK_CREW + price_max = PAYCHECK_CREW * 3 + +/datum/market_item/misc/strange_seed + desc = "Exotic varieties of seed outlawed in most sectors, including this one. What's the worst that could happen?" + price_min = PAYCHECK_CREW * 0.5 + price_max = PAYCHECK_CREW + +/datum/market_item/misc/smugglers_satchel + //inventory gamers... + price_min = PAYCHECK_CREW * 3 + price_max = PAYCHECK_CREW * 6 + +/datum/market_item/misc/roulette + price_min = PAYCHECK_CREW * 0.5 + price_max = PAYCHECK_CREW * 6 // it's how the chips fall babyyy + +/datum/market_item/misc/jawed_hook + desc = "If you're struggling with the fishes, give 'em the jaws, see?" + price_min = PAYCHECK_CREW * 0.5 + price_max = PAYCHECK_CREW * 1.5 + +/datum/market_item/misc/v8_engine + name = "Genuine V8 Engine (Preserved)" + price_min = PAYCHECK_CREW * 6 + price_max = PAYCHECK_CREW * 12 + +/datum/market_item/misc/fish + name = "Case of Smuggled Fish" + desc = "What makes these fish such hot products? We'd have to kill you if we told you." + +/datum/market_item/misc/giant_wrench_parts + name = "Comically-Large Wrench Parts" + desc = "They're searching every broadband transmission for the name of this wrench, alright? You're mad if you assemble this thing. Mad, we tell you." + price_min = PAYCHECK_CREW * 4 + price_max = PAYCHECK_CREW * 8 + +// TOOLS +/datum/market_item/tool/caravan_wrench + price_min = PAYCHECK_CREW * 0.5 + price_max = PAYCHECK_CREW * 2 + availability_prob = 100 // let's have all the experimental tools be always available, because why not? + +/datum/market_item/tool/caravan_wirecutters + price_min = PAYCHECK_CREW * 0.5 + price_max = PAYCHECK_CREW * 2 + availability_prob = 100 + +/datum/market_item/tool/caravan_screwdriver + price_min = PAYCHECK_CREW * 0.5 + price_max = PAYCHECK_CREW * 2 + availability_prob = 100 + +/datum/market_item/tool/caravan_crowbar + price_min = PAYCHECK_CREW * 0.5 + price_max = PAYCHECK_CREW * 2 + availability_prob = 100 + +/datum/market_item/tool/binoculars + //we can roundstart with these so let's tone them way down + desc = "Offworld military surplus. They'll never see you coming." + price_min = PAYCHECK_CREW * 0.2 + price_max = PAYCHECK_CREW * 0.5 + +/datum/market_item/tool/riot_shield + desc = "Bloodstains not included." + price_min = PAYCHECK_CREW * 4 + price_max = PAYCHECK_CREW * 8 + +/datum/market_item/tool/thermite_bottle + desc = "Thirty galactic units of an incendiary compound that will burn through just about anything." + price_min = PAYCHECK_CREW * 2 + price_max = PAYCHECK_CREW * 6 + +/datum/market_item/tool/science_goggles + price_min = PAYCHECK_CREW * 0.5 + price_max = PAYCHECK_CREW * 2 + availability_prob = 100 // for people who want to make illicit drugs in maint + +/datum/market_item/tool/fake_scanner + price_min = PAYCHECK_CREW * 0.5 + price_max = PAYCHECK_CREW * 2 + +/datum/market_item/tool/program_disk + name = "Bootleg PDA Data Disk" + desc = "Contains a random selection of limited PDA programs purloined by bitrunners from the FTU. Wait, we're not supposed to tell you that." + price_min = PAYCHECK_CREW * 1.5 + price_max = PAYCHECK_CREW * 3 + availability_prob = 100 // not every program is useful but some of these are and they're fun and hackery, so why not? + +// WEAPONS + +/datum/market_item/weapon/bear_trap + price_min = PAYCHECK_CREW * 2 + price_max = PAYCHECK_CREW * 4 + +/datum/market_item/weapon/shotgun_dart + price_min = PAYCHECK_CREW * 0.1 + price_max = PAYCHECK_CREW * 0.3 + +/datum/market_item/weapon/bone_spear + price_min = PAYCHECK_CREW * 0.5 + price_max = PAYCHECK_CREW * 2 + +/datum/market_item/weapon/chainsaw + desc = "Once used to fell trees on Gaia worlds, the humble chainsaw has come into its own as the premiere anti-mold device of the sector. And you can have one right now for one easy payment!" + price_min = PAYCHECK_CREW * 2 + price_max = PAYCHECK_CREW * 4 + availability_prob = 75 // USE CHAINSAWS FOR MOLDS MORE OH MY GOD + +/datum/market_item/weapon/switchblade + // This is force 20 like the sabre/shamshir so price it similarly. Also, make it always available so you can shank people in maints. + desc = "Standard-issue hardware for shifty goons sector-wide. Pointy and sharp." + price_min = PAYCHECK_CREW * 4.25 + price_max = PAYCHECK_CREW * 8 + availability_prob = 100 + +/datum/market_item/weapon/emp_grenade + desc = "The bane of synthetics and station-engineers everywhere." + price_min = PAYCHECK_CREW * 1.5 + price_max = PAYCHECK_CREW * 5 + +/datum/market_item/weapon/fisher + price_min = PAYCHECK_CREW * 4 + price_max = PAYCHECK_CREW * 8 diff --git a/modular_nova/modules/underworld_connections/code/underworld_connections_quirk.dm b/modular_nova/modules/underworld_connections/code/underworld_connections_quirk.dm new file mode 100644 index 00000000000..f3d78d7df45 --- /dev/null +++ b/modular_nova/modules/underworld_connections/code/underworld_connections_quirk.dm @@ -0,0 +1,147 @@ +/datum/quirk/item_quirk/underworld_connections + name = "Underworld Connections" + desc = "You're in with the seedier elements of the galactic underworld, and can start with a customizable black market uplink, and access to information brokers with exploitable information about the crew. Security has suspicions about you, and you may struggle to obtain a weapons permit." + icon = FA_ICON_SUITCASE + value = 0 + gain_text = span_notice("Your contacts to the underworld are close at hand.") + lose_text = span_notice("Your contacts to the underworld have gone quiet.") + medical_record_text = "Patient records may have been tampered with in the past." + quirk_flags = QUIRK_HIDE_FROM_SCAN + mail_goodies = list(/obj/item/storage/briefcase/secure) + +/datum/quirk/item_quirk/underworld_connections/add_unique(client/client_source) + if (ishuman(quirk_holder)) + var/obj/item/market_uplink/blackmarket/roundstart_uplink = new + + //customize the goddamn uplink + var/uplink_skin = client_source?.prefs.read_preference(/datum/preference/choiced/uplink_skin) + var/list/uplink_skin_val = GLOB.possible_uplink_skins[uplink_skin] + if (uplink_skin_val) + roundstart_uplink.icon = uplink_skin_val[1] + roundstart_uplink.icon_state = uplink_skin_val[2] + + var/uplink_name = client_source?.prefs.read_preference(/datum/preference/text/uplink_name) + if (uplink_name) + roundstart_uplink.name = uplink_name + + var/uplink_desc = client_source?.prefs.read_preference(/datum/preference/text/uplink_desc) + if (uplink_desc) + roundstart_uplink.desc = uplink_desc + + give_item_to_holder( + roundstart_uplink, + list( + LOCATION_LPOCKET = ITEM_SLOT_LPOCKET, + LOCATION_RPOCKET = ITEM_SLOT_RPOCKET, + LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, + LOCATION_HANDS = ITEM_SLOT_HANDS, + ) + ) + +/datum/quirk/item_quirk/underworld_connections/post_add() + . = ..() + + // Make sure we've got a client/mind first (hence, post_add), then give us exploitables access + quirk_holder.mind.has_exploitables_override = TRUE + quirk_holder.mind.handle_exploitables() + + // Also let the user know that they need to OPFOR if they want to do heavy antagonism. Policy request. + to_chat(quirk_holder, span_boldwarning("REMEMBER: The Underworld Connections quirk does NOT make you an antagonist. Please make an OPFOR request if you intend to do serious criminal activity.")) + + // Set us as 'suspected' on HUDs at roundstart and leave a note about our dark and mysterious past. No permits for us! If we're human. + if (ishuman(quirk_holder)) + var/mob/living/carbon/human/human_holder = quirk_holder + var/datum/record/crew/our_record = find_record(human_holder.name) + if (our_record) + our_record.wanted_status = WANTED_SUSPECT + our_record.security_note += "DO NOT ISSUE WEAPON PERMITS. Subject has suspected links to covert criminal elements." + +/datum/quirk/item_quirk/underworld_connections/remove() + if (ishuman(quirk_holder)) + var/mob/living/carbon/human/human_holder = quirk_holder + var/datum/record/crew/our_record = find_record(human_holder.name) + if (our_record.security_note) + our_record.security_note = replacetext(our_record.security_note, "DO NOT ISSUE WEAPON PERMITS. Subject has suspected links to covert criminal elements.", "") + if (!length(our_record.security_note)) // that was the only thing in the notes + our_record.security_note = null + if (isnull(our_record.security_note) && our_record.wanted_status == WANTED_SUSPECT) // only clear this if the security notes contain nothing but the quirk-generated note, just to be certain we are not accidentally resetting the wanted status for an unrelated crime + our_record.wanted_status = WANTED_NONE + + quirk_holder.mind.has_exploitables_override = FALSE + quirk_holder.mind.handle_exploitables() + +/datum/quirk_constant_data/underworld_connections + associated_typepath = /datum/quirk/item_quirk/underworld_connections + customization_options = list(/datum/preference/choiced/uplink_skin, /datum/preference/text/uplink_name, /datum/preference/text/uplink_desc) + +/datum/preference/choiced/uplink_skin + category = PREFERENCE_CATEGORY_MANUALLY_RENDERED + savefile_key = "underworld_uplink_skin" + savefile_identifier = PREFERENCE_CHARACTER + can_randomize = FALSE + +/// List of uplink skins, associated list where the value is a list containing icon dmi and then icon_state +GLOBAL_LIST_INIT(possible_uplink_skins, list( + "Brick Phone" = list('icons/obj/antags/gang/cell_phone.dmi', "phone_off"), + "Default Black Market Uplink" = list('icons/obj/blackmarket.dmi', "uplink"), + "Generic Radio" = list('icons/obj/devices/voice.dmi', "radio"), + "Green Walkie Talkie" = list('icons/obj/devices/voice.dmi', "walkietalkie"), + "Inconspicious PDA" = list('icons/obj/modular_pda.dmi', "pda"), + "Mining Radio" = list('icons/obj/miningradio.dmi', "miningradio"), + "Red Analogue Phone" = list('icons/obj/devices/voice.dmi', "red_phone"), + "Red Walkie Talkie" = list('icons/obj/devices/voice.dmi', "nukietalkie"), + "Syndicate Suspicious Phone" = list('icons/obj/antags/syndicate_tools.dmi', "suspiciousphone"), + "Syndicate Tablet (Silicon)" = list('icons/obj/modular_pda.dmi', "tablet-silicon-syndicate"), +)) + +/datum/preference/choiced/uplink_skin/init_possible_values() + return assoc_to_keys(GLOB.possible_uplink_skins) + +/datum/preference/choiced/uplink_skin/create_default_value() + return "Default Black Market Uplink" + +/datum/preference/choiced/uplink_skin/is_accessible(datum/preferences/preferences) + if (!..()) + return FALSE + + return "Underworld Connections" in preferences.all_quirks + +/datum/preference/choiced/uplink_skin/apply_to_human(mob/living/carbon/human/target, value) + return + +/datum/preference/text/uplink_name + category = PREFERENCE_CATEGORY_MANUALLY_RENDERED + savefile_key = "underworld_uplink_name" + savefile_identifier = PREFERENCE_CHARACTER + can_randomize = FALSE + maximum_value_length = 32 + +/datum/preference/text/uplink_name/is_accessible(datum/preferences/preferences) + if (!..()) + return FALSE + + return "Underworld Connections" in preferences.all_quirks + +/datum/preference/text/uplink_name/serialize(input) + return htmlrendertext(input) + +/datum/preference/text/uplink_name/apply_to_human(mob/living/carbon/human/target, value) + return + +/datum/preference/text/uplink_desc + category = PREFERENCE_CATEGORY_MANUALLY_RENDERED + savefile_key = "underworld_uplink_desc" + savefile_identifier = PREFERENCE_CHARACTER + can_randomize = FALSE + +/datum/preference/text/uplink_desc/is_accessible(datum/preferences/preferences) + if (!..()) + return FALSE + + return "Underworld Connections" in preferences.all_quirks + +/datum/preference/text/uplink_desc/serialize(input) + return htmlrendertext(input) + +/datum/preference/text/uplink_desc/apply_to_human(mob/living/carbon/human/target, value) + return diff --git a/tgstation.dme b/tgstation.dme index fca09db7cbf..8e80cbb8e44 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -8109,6 +8109,9 @@ #include "modular_nova\modules\trim_tokens\code\cards_ids.dm" #include "modular_nova\modules\trim_tokens\code\trim_tokens.dm" #include "modular_nova\modules\turretid\code\turret_id_system.dm" +#include "modular_nova\modules\underworld_connections\code\black_market_uplink.dm" +#include "modular_nova\modules\underworld_connections\code\underworld_connections_quirk.dm" +#include "modular_nova\modules\underworld_connections\code\markets\base_black_market.dm" #include "modular_nova\modules\verbs\code\looc.dm" #include "modular_nova\modules\verbs\code\say.dm" #include "modular_nova\modules\verbs\code\subtle.dm" diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/nova/underworld_connections.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/nova/underworld_connections.tsx new file mode 100644 index 00000000000..ce2d7763ffe --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/nova/underworld_connections.tsx @@ -0,0 +1,22 @@ +// THIS IS A NOVA SECTOR UI FILE +import { + Feature, + FeatureChoiced, + FeatureDropdownInput, + FeatureShortTextInput, +} from '../../base'; + +export const underworld_uplink_skin: FeatureChoiced = { + name: 'Uplink Skin', + component: FeatureDropdownInput, +}; + +export const underworld_uplink_name: Feature = { + name: 'Uplink Name', + component: FeatureShortTextInput, +}; + +export const underworld_uplink_desc: Feature = { + name: 'Uplink Description', + component: FeatureShortTextInput, +}; From 5739e400966aa7a85a337c8549ba4980339b6feb Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Fri, 1 Mar 2024 02:42:54 +0300 Subject: [PATCH 70/72] Automatic changelog for PR #1930 [ci skip] --- html/changelogs/AutoChangeLog-pr-1930.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-1930.yml diff --git a/html/changelogs/AutoChangeLog-pr-1930.yml b/html/changelogs/AutoChangeLog-pr-1930.yml new file mode 100644 index 00000000000..30188409d75 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-1930.yml @@ -0,0 +1,5 @@ +author: "yooriss" +delete-after: True +changes: + - qol: "The telepathy genetics mutation has had significant usability improvements: it is now point-targeting based, and right-clicking the power allows for quick resending to the same target, a feature mirrored by the new *treply emote. Telepathy now also shows runechat messages." + - rscadd: "The Telepathic quirk has been added, allowing characters to start with an unremovable (or activated) telepathy mutation." \ No newline at end of file From 4b7a0e89992bdd63a466893edc4de578e8343812 Mon Sep 17 00:00:00 2001 From: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com> Date: Fri, 1 Mar 2024 02:43:21 +0300 Subject: [PATCH 71/72] Automatic changelog for PR #2185 [ci skip] --- html/changelogs/AutoChangeLog-pr-2185.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2185.yml diff --git a/html/changelogs/AutoChangeLog-pr-2185.yml b/html/changelogs/AutoChangeLog-pr-2185.yml new file mode 100644 index 00000000000..cd7cb5a5f6d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2185.yml @@ -0,0 +1,5 @@ +author: "yooriss" +delete-after: True +changes: + - rscadd: "The Underworld Connections quirk has been added, allowing dodgy characters (including silicons!) to gain access to exploitable information at roundstart. Non-silicons also receive a fully customizable black market uplink, too." + - qol: "Prices at the galactic Black Market have now fallen drastically to be more in line with general cargo costs, give or take, and should now be vastly more affordable for most people. Pick up one and order some spuriously legal things for you and your friends today!" \ No newline at end of file From ce94a603b74f5b8cadae8d5736d84e2200d831ad Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 1 Mar 2024 01:37:37 +0000 Subject: [PATCH 72/72] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-1930.yml | 5 - html/changelogs/AutoChangeLog-pr-2137.yml | 4 - html/changelogs/AutoChangeLog-pr-2138.yml | 4 - html/changelogs/AutoChangeLog-pr-2144.yml | 4 - html/changelogs/AutoChangeLog-pr-2145.yml | 4 - html/changelogs/AutoChangeLog-pr-2146.yml | 4 - html/changelogs/AutoChangeLog-pr-2147.yml | 7 -- html/changelogs/AutoChangeLog-pr-2148.yml | 7 -- html/changelogs/AutoChangeLog-pr-2149.yml | 4 - html/changelogs/AutoChangeLog-pr-2150.yml | 4 - html/changelogs/AutoChangeLog-pr-2151.yml | 5 - html/changelogs/AutoChangeLog-pr-2152.yml | 4 - html/changelogs/AutoChangeLog-pr-2157.yml | 4 - html/changelogs/AutoChangeLog-pr-2158.yml | 4 - html/changelogs/AutoChangeLog-pr-2163.yml | 4 - html/changelogs/AutoChangeLog-pr-2164.yml | 4 - html/changelogs/AutoChangeLog-pr-2165.yml | 4 - html/changelogs/AutoChangeLog-pr-2166.yml | 5 - html/changelogs/AutoChangeLog-pr-2167.yml | 7 -- html/changelogs/AutoChangeLog-pr-2170.yml | 4 - html/changelogs/AutoChangeLog-pr-2171.yml | 5 - html/changelogs/AutoChangeLog-pr-2173.yml | 4 - html/changelogs/AutoChangeLog-pr-2174.yml | 4 - html/changelogs/AutoChangeLog-pr-2177.yml | 4 - html/changelogs/AutoChangeLog-pr-2180.yml | 4 - html/changelogs/AutoChangeLog-pr-2182.yml | 4 - html/changelogs/AutoChangeLog-pr-2183.yml | 4 - html/changelogs/AutoChangeLog-pr-2184.yml | 7 -- html/changelogs/AutoChangeLog-pr-2185.yml | 5 - html/changelogs/AutoChangeLog-pr-2186.yml | 4 - html/changelogs/AutoChangeLog-pr-2189.yml | 4 - html/changelogs/AutoChangeLog-pr-2191.yml | 4 - html/changelogs/AutoChangeLog-pr-2195.yml | 4 - html/changelogs/archive/2024-03.yml | 112 ++++++++++++++++++++++ 34 files changed, 112 insertions(+), 149 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-1930.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2137.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2138.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2144.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2145.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2146.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2147.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2148.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2149.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2150.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2151.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2152.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2157.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2158.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2163.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2164.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2165.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2166.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2167.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2170.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2171.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2173.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2174.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2177.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2180.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2182.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2183.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2184.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2185.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2186.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2189.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2191.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-2195.yml create mode 100644 html/changelogs/archive/2024-03.yml diff --git a/html/changelogs/AutoChangeLog-pr-1930.yml b/html/changelogs/AutoChangeLog-pr-1930.yml deleted file mode 100644 index 30188409d75..00000000000 --- a/html/changelogs/AutoChangeLog-pr-1930.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "yooriss" -delete-after: True -changes: - - qol: "The telepathy genetics mutation has had significant usability improvements: it is now point-targeting based, and right-clicking the power allows for quick resending to the same target, a feature mirrored by the new *treply emote. Telepathy now also shows runechat messages." - - rscadd: "The Telepathic quirk has been added, allowing characters to start with an unremovable (or activated) telepathy mutation." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2137.yml b/html/changelogs/AutoChangeLog-pr-2137.yml deleted file mode 100644 index ab75566b57e..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2137.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "13spacemen" -delete-after: True -changes: - - bugfix: "Blood overlays on items no longer leak onto other objects" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2138.yml b/html/changelogs/AutoChangeLog-pr-2138.yml deleted file mode 100644 index 853a56fb32e..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2138.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ben10Omintrix" -delete-after: True -changes: - - bugfix: "fixes pokemon ai still being active when inside the pokeball" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2144.yml b/html/changelogs/AutoChangeLog-pr-2144.yml deleted file mode 100644 index fdd83662978..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2144.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Melbert" -delete-after: True -changes: - - bugfix: "The Paddy's Claw should be properly unusable in situations which it should be properly unusable." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2145.yml b/html/changelogs/AutoChangeLog-pr-2145.yml deleted file mode 100644 index 9ed33509a78..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2145.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "yooriss" -delete-after: True -changes: - - rscadd: "The Entombed quirk has been added, allowing characters to start off with a permanently unremovable low-end MODsuit stuck to their back slot. Letting the suit's charge run low will eventually kill you, and the quirk has special interactions with both Ethereals and Plasmamen!" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2146.yml b/html/changelogs/AutoChangeLog-pr-2146.yml deleted file mode 100644 index 80cd9c987c3..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2146.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Absolucy" -delete-after: True -changes: - - qol: "Constructs now reuse the victim's mind instead of just moving their client" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2147.yml b/html/changelogs/AutoChangeLog-pr-2147.yml deleted file mode 100644 index a12ae26b8d3..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2147.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "SyncIt21" -delete-after: True -changes: - - qol: "adds examines & screentips for building & deconstructing both machine & computer frames." - - qol: "Adding a circuitboard from a rped to n computer frame will automatically screw it in place like before." - - code_imp: "merged procs for computer & machine frames. autodocs them where possible." - - code_imp: "moved code for machine frame into its own file." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2148.yml b/html/changelogs/AutoChangeLog-pr-2148.yml deleted file mode 100644 index 5157e6ceeb2..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2148.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "IndieanaJones" -delete-after: True -changes: - - balance: "Gorillas are faster, stronger, but not bigger too. Note while holding an item, they are the same speed as they were prior." - - balance: "Gorillas now have the understanding of languages as monkeys do." - - balance: "The Gorilla Cube Box for traitors has been replaced with a singular gorilla cube. Due to the aforementioned changes, this singular gorilla should be as scary if not scarier than 3 gorillas were prior." - - balance: " Magillitis Serum Autoinjector now grants the resulting gorilla a slow passive regeneration effect which kicks in after not taking damage for 12 seconds." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2149.yml b/html/changelogs/AutoChangeLog-pr-2149.yml deleted file mode 100644 index 84bf337648e..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2149.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TJatPBnJ" -delete-after: True -changes: - - balance: "Power crepes are now finger food" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2150.yml b/html/changelogs/AutoChangeLog-pr-2150.yml deleted file mode 100644 index f8a4bc7cfea..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2150.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SyncIt21" -delete-after: True -changes: - - bugfix: "RCD converts miscellaneous turfs like basalt, sand, beach etc to plating first & not put a wall directly on top of them" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2151.yml b/html/changelogs/AutoChangeLog-pr-2151.yml deleted file mode 100644 index d7c9aa58f9c..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2151.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "mc-oofert" -delete-after: True -changes: - - rscadd: "Added an option to deathmatch loadout dropdown that allows you to pick a random loadout" - - bugfix: "In deathmatch, plasmamen are made humans and the UI supports more players" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2152.yml b/html/changelogs/AutoChangeLog-pr-2152.yml deleted file mode 100644 index c6d7b9e4633..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2152.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "00-Steven" -delete-after: True -changes: - - bugfix: "Newscasters no longer say \"No wanted issue posted. Have a secure day.\" when there is, in fact, an active wanted issue currently posted." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2157.yml b/html/changelogs/AutoChangeLog-pr-2157.yml deleted file mode 100644 index d88f979677a..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2157.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Knouli" -delete-after: True -changes: - - balance: "DeForest brand Civil Defense Medical Kits may now be repurposed to carry a limited selection of field-portable cheese rations." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2158.yml b/html/changelogs/AutoChangeLog-pr-2158.yml deleted file mode 100644 index 1e735fde359..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2158.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "00-Steven" -delete-after: True -changes: - - bugfix: "Medical/security records now show an icon based on the registered trim, rather than showing a question mark for records with customized titles." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2163.yml b/html/changelogs/AutoChangeLog-pr-2163.yml deleted file mode 100644 index ab0c85d5fd7..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2163.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "softcerv" -delete-after: True -changes: - - code_imp: "TRAIT_DEAF now works on non-carbon mobs" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2164.yml b/html/changelogs/AutoChangeLog-pr-2164.yml deleted file mode 100644 index 89d09d1d7bc..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2164.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "PapaMichael" -delete-after: True -changes: - - balance: "Fugitive hunters will spawn early if the emergency shuttle is called." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2165.yml b/html/changelogs/AutoChangeLog-pr-2165.yml deleted file mode 100644 index 0acb3c6a1bb..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2165.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "JohnFulpWillard" -delete-after: True -changes: - - qol: "Intelligent monkeys now punch people instead of biting them." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2166.yml b/html/changelogs/AutoChangeLog-pr-2166.yml deleted file mode 100644 index a100278dc54..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2166.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Iamgoofball" -delete-after: True -changes: - - balance: "xenomorph stomachs will no longer destroy items directly, refactored it to use acid_act()" - - bugfix: "fixes xenomorph vore accidentally destroying mobs it wasn't supposed to destroy, im thinking this was modified list in place shenanigans" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2167.yml b/html/changelogs/AutoChangeLog-pr-2167.yml deleted file mode 100644 index fb9957e2adb..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2167.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "LT3" -delete-after: True -changes: - - code_imp: "Tram throwing now breaks grilles consistently" - - code_imp: "Tram malfunction lethality/throw chance are now a multiplier instead of flat value" - - code_imp: "Tram throw chance can be adjusted" - - code_imp: "Unlucky trait is now used in tram throw calculation" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2170.yml b/html/changelogs/AutoChangeLog-pr-2170.yml deleted file mode 100644 index cced53083f0..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2170.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ArcaneMusic" -delete-after: True -changes: - - image: "New sprites for plant grafts!" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2171.yml b/html/changelogs/AutoChangeLog-pr-2171.yml deleted file mode 100644 index 60612d931ef..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2171.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "KingkumaArt" -delete-after: True -changes: - - rscadd: "a list of items called vendor_nocrush that vendors dont deal integrity damage to upon hitting them." - - bugfix: "Makes vending machines no longer crush chairs and conveyors." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2173.yml b/html/changelogs/AutoChangeLog-pr-2173.yml deleted file mode 100644 index 3e42a3e26b6..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2173.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Ghommie" -delete-after: True -changes: - - balance: "\"Freshness Jars full of Natural Bait\" is now a goodie and costs 200 credits instead of 2000" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2174.yml b/html/changelogs/AutoChangeLog-pr-2174.yml deleted file mode 100644 index 086180971c5..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2174.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "A.C.M.O." -delete-after: True -changes: - - bugfix: "Fixed the AI hologram's ability to copy the appearance of crew members." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2177.yml b/html/changelogs/AutoChangeLog-pr-2177.yml deleted file mode 100644 index bf9c3e68fa1..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2177.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "mc-oofert" -delete-after: True -changes: - - bugfix: "Grilles dont break by just walking into them under any circumstances" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2180.yml b/html/changelogs/AutoChangeLog-pr-2180.yml deleted file mode 100644 index bd5f7934fc9..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2180.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "necromanceranne" -delete-after: True -changes: - - bugfix: "Being in a Swat Suit appropriately protects you from collisions with a body, rather than the body thrown at you having these protections protecting YOU, the victim of the collision." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2182.yml b/html/changelogs/AutoChangeLog-pr-2182.yml deleted file mode 100644 index 6814b22e910..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2182.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SyncIt21" -delete-after: True -changes: - - bugfix: "Cryostylane reaction now has a moderate & not extreme cooling effect. Helps you achieve more pure amounts of Cryostylane" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2183.yml b/html/changelogs/AutoChangeLog-pr-2183.yml deleted file mode 100644 index 8da2a1db267..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2183.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "13spacemen" -delete-after: True -changes: - - bugfix: "You can build material airlocks again" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2184.yml b/html/changelogs/AutoChangeLog-pr-2184.yml deleted file mode 100644 index 797744dae8e..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2184.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "LT3" -delete-after: True -changes: - - qol: "Airlocks don't flash constantly on engineering override, override/overlay added for fire alarm" - - bugfix: "Airlock lighting should no longer render on top of player characters" - - bugfix: "Airlock emissives no longer overlap firedoors" - - bugfix: "Fixed missing overlays on various airlock types" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2185.yml b/html/changelogs/AutoChangeLog-pr-2185.yml deleted file mode 100644 index cd7cb5a5f6d..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2185.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "yooriss" -delete-after: True -changes: - - rscadd: "The Underworld Connections quirk has been added, allowing dodgy characters (including silicons!) to gain access to exploitable information at roundstart. Non-silicons also receive a fully customizable black market uplink, too." - - qol: "Prices at the galactic Black Market have now fallen drastically to be more in line with general cargo costs, give or take, and should now be vastly more affordable for most people. Pick up one and order some spuriously legal things for you and your friends today!" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2186.yml b/html/changelogs/AutoChangeLog-pr-2186.yml deleted file mode 100644 index 85148425f8b..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2186.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "yooriss" -delete-after: True -changes: - - rscadd: "A new form of emoting is available called 'Do', accessible via the K and Ctrl-K keybinds by default (as well as the 'Do' verb). Do doesn't put your character name first and instead includes it in brackets at the end, so you can use it to write better prose and even narrate things in the environment around you with less clunkiness! Try it out today." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2189.yml b/html/changelogs/AutoChangeLog-pr-2189.yml deleted file mode 100644 index b0db2178347..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2189.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TheVekter" -delete-after: True -changes: - - rscadd: "Added a new law to the Artist lawset in order to encourage Artist AIs to build an audience." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2191.yml b/html/changelogs/AutoChangeLog-pr-2191.yml deleted file mode 100644 index 09158f9debd..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2191.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Melbert" -delete-after: True -changes: - - bugfix: "Fixes grabbing yourself when you tackle someone." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-2195.yml b/html/changelogs/AutoChangeLog-pr-2195.yml deleted file mode 100644 index 57316c6d837..00000000000 --- a/html/changelogs/AutoChangeLog-pr-2195.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TheSmallBlue" -delete-after: True -changes: - - qol: "added an HUD button to go up and down floors" \ No newline at end of file diff --git a/html/changelogs/archive/2024-03.yml b/html/changelogs/archive/2024-03.yml new file mode 100644 index 00000000000..1a02199135c --- /dev/null +++ b/html/changelogs/archive/2024-03.yml @@ -0,0 +1,112 @@ +2024-03-01: + 00-Steven: + - bugfix: Medical/security records now show an icon based on the registered trim, + rather than showing a question mark for records with customized titles. + - bugfix: Newscasters no longer say "No wanted issue posted. Have a secure day." + when there is, in fact, an active wanted issue currently posted. + 13spacemen: + - bugfix: You can build material airlocks again + - bugfix: Blood overlays on items no longer leak onto other objects + A.C.M.O.: + - bugfix: Fixed the AI hologram's ability to copy the appearance of crew members. + Absolucy: + - qol: Constructs now reuse the victim's mind instead of just moving their client + ArcaneMusic: + - image: New sprites for plant grafts! + Ben10Omintrix: + - bugfix: fixes pokemon ai still being active when inside the pokeball + Ghommie: + - balance: '"Freshness Jars full of Natural Bait" is now a goodie and costs 200 + credits instead of 2000' + Iamgoofball: + - balance: xenomorph stomachs will no longer destroy items directly, refactored + it to use acid_act() + - bugfix: fixes xenomorph vore accidentally destroying mobs it wasn't supposed to + destroy, im thinking this was modified list in place shenanigans + IndieanaJones: + - balance: Gorillas are faster, stronger, but not bigger too. Note while holding + an item, they are the same speed as they were prior. + - balance: Gorillas now have the understanding of languages as monkeys do. + - balance: The Gorilla Cube Box for traitors has been replaced with a singular gorilla + cube. Due to the aforementioned changes, this singular gorilla should be as + scary if not scarier than 3 gorillas were prior. + - balance: ' Magillitis Serum Autoinjector now grants the resulting gorilla a slow + passive regeneration effect which kicks in after not taking damage for 12 seconds.' + JohnFulpWillard: + - qol: Intelligent monkeys now punch people instead of biting them. + KingkumaArt: + - rscadd: a list of items called vendor_nocrush that vendors dont deal integrity + damage to upon hitting them. + - bugfix: Makes vending machines no longer crush chairs and conveyors. + Knouli: + - balance: DeForest brand Civil Defense Medical Kits may now be repurposed to carry + a limited selection of field-portable cheese rations. + LT3: + - code_imp: Tram throwing now breaks grilles consistently + - code_imp: Tram malfunction lethality/throw chance are now a multiplier instead + of flat value + - code_imp: Tram throw chance can be adjusted + - code_imp: Unlucky trait is now used in tram throw calculation + - qol: Airlocks don't flash constantly on engineering override, override/overlay + added for fire alarm + - bugfix: Airlock lighting should no longer render on top of player characters + - bugfix: Airlock emissives no longer overlap firedoors + - bugfix: Fixed missing overlays on various airlock types + Melbert: + - bugfix: The Paddy's Claw should be properly unusable in situations which it should + be properly unusable. + - bugfix: Fixes grabbing yourself when you tackle someone. + PapaMichael: + - balance: Fugitive hunters will spawn early if the emergency shuttle is called. + SyncIt21: + - qol: adds examines & screentips for building & deconstructing both machine & computer + frames. + - qol: Adding a circuitboard from a rped to n computer frame will automatically + screw it in place like before. + - code_imp: merged procs for computer & machine frames. autodocs them where possible. + - code_imp: moved code for machine frame into its own file. + - bugfix: RCD converts miscellaneous turfs like basalt, sand, beach etc to plating + first & not put a wall directly on top of them + - bugfix: Cryostylane reaction now has a moderate & not extreme cooling effect. + Helps you achieve more pure amounts of Cryostylane + TJatPBnJ: + - balance: Power crepes are now finger food + TheSmallBlue: + - qol: added an HUD button to go up and down floors + TheVekter: + - rscadd: Added a new law to the Artist lawset in order to encourage Artist AIs + to build an audience. + mc-oofert: + - rscadd: Added an option to deathmatch loadout dropdown that allows you to pick + a random loadout + - bugfix: In deathmatch, plasmamen are made humans and the UI supports more players + - bugfix: Grilles dont break by just walking into them under any circumstances + necromanceranne: + - bugfix: Being in a Swat Suit appropriately protects you from collisions with a + body, rather than the body thrown at you having these protections protecting + YOU, the victim of the collision. + softcerv: + - code_imp: TRAIT_DEAF now works on non-carbon mobs + yooriss: + - qol: 'The telepathy genetics mutation has had significant usability improvements: + it is now point-targeting based, and right-clicking the power allows for quick + resending to the same target, a feature mirrored by the new *treply emote. Telepathy + now also shows runechat messages.' + - rscadd: The Telepathic quirk has been added, allowing characters to start with + an unremovable (or activated) telepathy mutation. + - rscadd: A new form of emoting is available called 'Do', accessible via the K and + Ctrl-K keybinds by default (as well as the 'Do' verb). Do doesn't put your character + name first and instead includes it in brackets at the end, so you can use it + to write better prose and even narrate things in the environment around you + with less clunkiness! Try it out today. + - rscadd: The Underworld Connections quirk has been added, allowing dodgy characters + (including silicons!) to gain access to exploitable information at roundstart. + Non-silicons also receive a fully customizable black market uplink, too. + - qol: Prices at the galactic Black Market have now fallen drastically to be more + in line with general cargo costs, give or take, and should now be vastly more + affordable for most people. Pick up one and order some spuriously legal things + for you and your friends today! + - rscadd: The Entombed quirk has been added, allowing characters to start off with + a permanently unremovable low-end MODsuit stuck to their back slot. Letting + the suit's charge run low will eventually kill you, and the quirk has special + interactions with both Ethereals and Plasmamen!