From ba998786d77d4ef5b39b0cf17976a688cc0c112b Mon Sep 17 00:00:00 2001 From: Nadyr Date: Tue, 22 Oct 2024 21:19:23 -0400 Subject: [PATCH 01/83] grindable ores, more grindable stacks, blacklisted slag --- code/__defines/chemistry.dm | 1 + .../objects/items/weapons/storage/bags.dm | 4 +- code/modules/reagents/machinery/grinder.dm | 89 +++++++++++++++---- 3 files changed, 74 insertions(+), 20 deletions(-) diff --git a/code/__defines/chemistry.dm b/code/__defines/chemistry.dm index 63ea0e136f6..8213aa200f5 100644 --- a/code/__defines/chemistry.dm +++ b/code/__defines/chemistry.dm @@ -41,6 +41,7 @@ #define CE_DARKSIGHT "darksight" // Gives perfect vision in dark #define REAGENTS_PER_SHEET 20 +#define REAGENTS_PER_ORE 20 // Attached to CE_ANTIBIOTIC #define ANTIBIO_NORM 1 diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index e27d9ade0cc..d4aecf02793 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -141,7 +141,7 @@ to_chat(user, span_notice("\the [src] is too full to possibly fit anything else inside of it.")) return - if (istype(W, /obj/item/ore)) + if (istype(W, /obj/item/ore) && !istype(W, /obj/item/ore/slag)) var/obj/item/ore/ore = W stored_ore[ore.material]++ current_capacity++ @@ -178,6 +178,8 @@ if(current_pickup >= max_pickup) max_pickup_reached = 1 break + if(istype(O, /obj/item/ore/slag)) + continue var/obj/item/ore/ore = O stored_ore[ore.material]++ current_capacity++ diff --git a/code/modules/reagents/machinery/grinder.dm b/code/modules/reagents/machinery/grinder.dm index 096e89a9434..a20920fc7eb 100644 --- a/code/modules/reagents/machinery/grinder.dm +++ b/code/modules/reagents/machinery/grinder.dm @@ -1,3 +1,55 @@ +// Don't need a new list for every grinder in the game +var/global/list/sheet_reagents = list( //have a number of reagents divisible by REAGENTS_PER_SHEET (default 20) unless you like decimals. + /obj/item/stack/material/plastic = list("carbon","carbon","oxygen","chlorine","sulfur"), + /obj/item/stack/material/copper = list("copper"), + /obj/item/stack/material/wood = list("carbon","woodpulp","nitrogen","potassium","sodium"), + /obj/item/stack/material/stick = list("carbon","woodpulp","nitrogen","potassium","sodium"), + /obj/item/stack/material/log = list("carbon","woodpulp","nitrogen","potassium","sodium"), + /obj/item/stack/material/algae = list("carbon","nitrogen","nitrogen","phosphorus","phosphorus"), + /obj/item/stack/material/graphite = list("carbon"), + /obj/item/stack/material/aluminium = list("aluminum"), // The material is aluminium, but the reagent is aluminum... + /obj/item/stack/material/glass/reinforced = list("silicon","silicon","silicon","iron","carbon"), + /obj/item/stack/material/leather = list("carbon","carbon","protein","protein","triglyceride"), + /obj/item/stack/material/cloth = list("carbon","carbon","carbon","protein","sodium"), + /obj/item/stack/material/fiber = list("carbon","carbon","carbon","protein","sodium"), + /obj/item/stack/material/fur = list("carbon","carbon","carbon","sulfur","sodium"), + /obj/item/stack/material/deuterium = list("hydrogen"), + /obj/item/stack/material/glass/phoronrglass = list("silicon","silicon","silicon","phoron","phoron"), + /obj/item/stack/material/diamond = list("carbon"), + /obj/item/stack/material/durasteel = list("iron","iron","carbon","carbon","platinum"), + /obj/item/stack/material/wax = list("ethanol","triglyceride"), + /obj/item/stack/material/iron = list("iron"), + /obj/item/stack/material/uranium = list("uranium"), + /obj/item/stack/material/phoron = list("phoron"), + /obj/item/stack/material/gold = list("gold"), + /obj/item/stack/material/silver = list("silver"), + /obj/item/stack/material/platinum = list("platinum"), + /obj/item/stack/material/mhydrogen = list("hydrogen"), + /obj/item/stack/material/steel = list("iron", "carbon"), + /obj/item/stack/material/plasteel = list("iron", "iron", "carbon", "carbon", "platinum"), //8 iron, 8 carbon, 4 platinum, + /obj/item/stack/material/snow = list("water"), + /obj/item/stack/material/sandstone = list("silicon", "oxygen"), + /obj/item/stack/material/glass = list("silicon"), + /obj/item/stack/material/glass/phoronglass = list("platinum", "silicon", "silicon", "silicon"), //5 platinum, 15 silicon, + /obj/item/stack/material/supermatter = list("supermatter") + ) +var/global/list/ore_reagents = list( //have a number of reageents divisible by REAGENTS_PER_ORE (default 20) unless you like decimals. + /obj/item/ore/glass = list("silicon"), + /obj/item/ore/iron = list("iron"), + /obj/item/ore/coal = list("carbon"), + /obj/item/ore/phoron = list("phoron"), + /obj/item/ore/silver = list("silver"), + /obj/item/ore/gold = list("gold"), + /obj/item/ore/marble = list("silicon","aluminum","aluminum","sodium","calcium"), // Some nice variety here + /obj/item/ore/uranium = list("uranium"), + /obj/item/ore/diamond = list("carbon"), + /obj/item/ore/osmium = list("platinum"), // should contain osmium + /obj/item/ore/lead = list("lead"), + /obj/item/ore/hydrogen = list("hydrogen"), + /obj/item/ore/verdantium = list("radium","phoron","nitrogen","phosphorus","sodium"), // Some fun stuff to be useful with + /obj/item/ore/rutile = list("tungsten","oxygen") // Should be titanium +) + /obj/machinery/reagentgrinder name = "All-In-One Grinder" @@ -14,22 +66,6 @@ var/obj/item/reagent_containers/beaker = null var/limit = 10 var/list/holdingitems = list() - var/list/sheet_reagents = list( //have a number of reageents divisible by REAGENTS_PER_SHEET (default 20) unless you like decimals, - /obj/item/stack/material/iron = list("iron"), - /obj/item/stack/material/uranium = list("uranium"), - /obj/item/stack/material/phoron = list("phoron"), - /obj/item/stack/material/gold = list("gold"), - /obj/item/stack/material/silver = list("silver"), - /obj/item/stack/material/platinum = list("platinum"), - /obj/item/stack/material/mhydrogen = list("hydrogen"), - /obj/item/stack/material/steel = list("iron", "carbon"), - /obj/item/stack/material/plasteel = list("iron", "iron", "carbon", "carbon", "platinum"), //8 iron, 8 carbon, 4 platinum, - /obj/item/stack/material/snow = list("water"), - /obj/item/stack/material/sandstone = list("silicon", "oxygen"), - /obj/item/stack/material/glass = list("silicon"), - /obj/item/stack/material/glass/phoronglass = list("platinum", "silicon", "silicon", "silicon"), //5 platinum, 15 silicon, - /obj/item/stack/material/supermatter = list("supermatter") - ) var/static/radial_examine = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_examine") var/static/radial_eject = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_eject") @@ -137,7 +173,7 @@ return 0 - if(!sheet_reagents[O.type] && (!O.reagents || !O.reagents.total_volume)) + if(!global.sheet_reagents[O.type] && !global.ore_reagents[O.type] && (!O.reagents || !O.reagents.total_volume)) to_chat(user, "\The [O] is not suitable for blending.") return 1 @@ -228,10 +264,10 @@ if(remaining_volume <= 0) break - if(sheet_reagents[O.type]) + if(global.sheet_reagents[O.type]) var/obj/item/stack/stack = O if(istype(stack)) - var/list/sheet_components = sheet_reagents[stack.type] + var/list/sheet_components = global.sheet_reagents[stack.type] var/amount_to_take = max(0,min(stack.get_amount(),round(remaining_volume/REAGENTS_PER_SHEET))) if(amount_to_take) stack.use(amount_to_take) @@ -245,6 +281,21 @@ beaker.reagents.add_reagent(sheet_components, (amount_to_take*REAGENTS_PER_SHEET)) continue + if(global.ore_reagents[O.type]) + var/obj/item/ore/R = O + if(istype(R)) + var/list/ore_components = global.ore_reagents[R.type] + if(remaining_volume >= REAGENTS_PER_ORE) + holdingitems -= R + qdel(R) + if(islist(ore_components)) + var/amount_to_take = (REAGENTS_PER_ORE/(ore_components.len)) + for(var/i in ore_components) + beaker.reagents.add_reagent(i, amount_to_take) + else + beaker.reagents.add_reagent(ore_components, REAGENTS_PER_ORE) + continue + if(O.reagents) O.reagents.trans_to_obj(beaker, min(O.reagents.total_volume, remaining_volume)) if(O.reagents.total_volume == 0) From 48695958550d9630450cd9eaf7458ae1d8c63ec6 Mon Sep 17 00:00:00 2001 From: Killian Date: Tue, 29 Oct 2024 00:23:23 +0000 Subject: [PATCH 02/83] ring/watch accessory transfer --- code/__defines/items_clothing.dm | 3 + code/datums/supplypacks/supply.dm | 6 +- code/datums/uplink/stealthy_weapons.dm | 6 - code/game/machinery/computer/arcade_vr.dm | 1 - code/game/objects/items/toys/toys_vr.dm | 29 --- .../crates_lockers/closets/misc_vr.dm | 2 +- .../loadout/loadout_fluffitems_vr.dm | 4 +- .../loadout/loadout_general_vr.dm | 1 - .../loadout/loadout_gloves.dm | 42 ++-- .../loadout/loadout_gloves_vr.dm | 4 +- .../{under => }/accessories/accessory.dm | 0 .../{under => }/accessories/accessory_vr.dm | 0 .../{under => }/accessories/altevian_vr.dm | 0 .../{under => }/accessories/armband.dm | 0 .../clothing/{under => }/accessories/armor.dm | 0 .../{under => }/accessories/badges.dm | 0 .../{under => }/accessories/badges_vr.dm | 0 .../{under => }/accessories/clothing.dm | 0 .../{under => }/accessories/clothing_vr.dm | 0 .../{under => }/accessories/holster.dm | 0 .../{under => }/accessories/holster_vr.dm | 0 .../{under => }/accessories/lockets.dm | 0 .../{under => }/accessories/permits.dm | 0 .../{under => }/accessories/permits_vr.dm | 0 code/modules/clothing/accessories/rings.dm | 201 ++++++++++++++++++ .../{under => }/accessories/shiny_vr.dm | 0 .../{under => }/accessories/storage.dm | 0 .../{under => }/accessories/storage_vr.dm | 0 .../accessories/temperature/poncho.dm | 0 .../clothing/{under => }/accessories/torch.dm | 0 .../{under => }/accessories/torch_vr.dm | 0 code/modules/clothing/accessories/watches.dm | 72 +++++++ code/modules/clothing/clothing.dm | 9 +- code/modules/clothing/gloves/antagonist.dm | 67 ------ code/modules/clothing/gloves/miscellaneous.dm | 62 ------ code/modules/clothing/rings/material.dm | 74 ------- code/modules/clothing/rings/rings.dm | 96 --------- code/modules/clothing/rings/rings_vr.dm | 17 -- code/modules/economy/vending_machines_vr.dm | 56 ++--- .../modules/materials/materials/_materials.dm | 2 +- .../materials/materials/organic/leather.dm | 2 +- .../human/ai_controlled/ai_controlled.dm | 2 +- .../mob/living/carbon/human/examine.dm | 19 +- code/modules/paperwork/paper.dm | 4 +- .../vore/fluffstuff/custom_boxes_vr.dm | 2 +- .../vore/fluffstuff/custom_clothes_vr.dm | 9 +- .../artifacts/replicator_vr.dm | 2 +- .../xenoarcheaology/finds/find_spawning.dm | 2 +- icons/inventory/accessory/mob.dmi | Bin 169683 -> 170119 bytes icons/inventory/hands/mob.dmi | Bin 31020 -> 31060 bytes vorestation.dme | 45 ++-- 51 files changed, 388 insertions(+), 453 deletions(-) rename code/modules/clothing/{under => }/accessories/accessory.dm (100%) rename code/modules/clothing/{under => }/accessories/accessory_vr.dm (100%) rename code/modules/clothing/{under => }/accessories/altevian_vr.dm (100%) rename code/modules/clothing/{under => }/accessories/armband.dm (100%) rename code/modules/clothing/{under => }/accessories/armor.dm (100%) rename code/modules/clothing/{under => }/accessories/badges.dm (100%) rename code/modules/clothing/{under => }/accessories/badges_vr.dm (100%) rename code/modules/clothing/{under => }/accessories/clothing.dm (100%) rename code/modules/clothing/{under => }/accessories/clothing_vr.dm (100%) rename code/modules/clothing/{under => }/accessories/holster.dm (100%) rename code/modules/clothing/{under => }/accessories/holster_vr.dm (100%) rename code/modules/clothing/{under => }/accessories/lockets.dm (100%) rename code/modules/clothing/{under => }/accessories/permits.dm (100%) rename code/modules/clothing/{under => }/accessories/permits_vr.dm (100%) create mode 100644 code/modules/clothing/accessories/rings.dm rename code/modules/clothing/{under => }/accessories/shiny_vr.dm (100%) rename code/modules/clothing/{under => }/accessories/storage.dm (100%) rename code/modules/clothing/{under => }/accessories/storage_vr.dm (100%) rename code/modules/clothing/{under => }/accessories/temperature/poncho.dm (100%) rename code/modules/clothing/{under => }/accessories/torch.dm (100%) rename code/modules/clothing/{under => }/accessories/torch_vr.dm (100%) create mode 100644 code/modules/clothing/accessories/watches.dm delete mode 100644 code/modules/clothing/rings/material.dm delete mode 100644 code/modules/clothing/rings/rings.dm delete mode 100644 code/modules/clothing/rings/rings_vr.dm diff --git a/code/__defines/items_clothing.dm b/code/__defines/items_clothing.dm index a7dba8be88c..8ecdb1326c0 100644 --- a/code/__defines/items_clothing.dm +++ b/code/__defines/items_clothing.dm @@ -40,6 +40,9 @@ #define ACCESSORY_SLOT_ARMOR_M 0x8000 #define ACCESSORY_SLOT_HELM_C 0x10000 //24 bit - higher than 0x80000 will overflow +#define ACCESSORY_SLOT_RING 0x20000 //rings +#define ACCESSORY_SLOT_WRIST 0x40000 //wristwatches, wrist PDA maybe? + // Bitmasks for the /obj/item/var/flags_inv variable. These determine when a piece of clothing hides another, i.e. a helmet hiding glasses. // WARNING: The following flags apply only to the external suit! #define HIDEGLOVES 0x1 diff --git a/code/datums/supplypacks/supply.dm b/code/datums/supplypacks/supply.dm index 0629a55d8ed..96610a68c50 100644 --- a/code/datums/supplypacks/supply.dm +++ b/code/datums/supplypacks/supply.dm @@ -175,7 +175,7 @@ /obj/item/material/knife/tacknife/survival, /obj/item/material/knife/machete, /obj/item/clothing/accessory/holster/machete, - /obj/item/clothing/gloves/watch/survival + /obj/item/clothing/accessory/watch/survival ) cost=25 containertype = /obj/structure/closet/crate/secure/xion @@ -200,7 +200,7 @@ /obj/item/clothing/head/pilot_vr, /obj/item/clothing/under/rank/pilot1, /obj/item/gun/energy/gun/protector/pilotgun/locked, - /obj/item/clothing/gloves/watch/survival + /obj/item/clothing/accessory/watch/survival ) cost=20 containertype = /obj/structure/closet/crate/secure/xion @@ -236,7 +236,7 @@ /obj/item/clothing/accessory/holster/machete, /obj/item/storage/box/explorerkeys, /obj/item/mapping_unit, - /obj/item/clothing/gloves/watch/survival + /obj/item/clothing/accessory/watch/survival ) cost = 75 containertype = /obj/structure/closet/crate/secure/xion diff --git a/code/datums/uplink/stealthy_weapons.dm b/code/datums/uplink/stealthy_weapons.dm index 29c80092113..39cc3bf9ae2 100644 --- a/code/datums/uplink/stealthy_weapons.dm +++ b/code/datums/uplink/stealthy_weapons.dm @@ -58,12 +58,6 @@ item_cost = 20 path = /obj/item/pen/blade/fountain -/datum/uplink_item/item/stealthy_weapons/angrybuzzer - name = "Morphium Shock Ring" - desc = "An enigmatic ring used to create powerful electric shocks when punching. Can be used as a brute-force method of defibrillation." - item_cost = 40 - path = /obj/item/clothing/gloves/ring/buzzer - /datum/uplink_item/item/stealthy_weapons/huntingtrap name = "Camonetted Beartraps" desc = "A box of unique beartraps which will partially cloak when deployed, allowing for more effective hunting." diff --git a/code/game/machinery/computer/arcade_vr.dm b/code/game/machinery/computer/arcade_vr.dm index a1d4ebb069e..80daaceb524 100644 --- a/code/game/machinery/computer/arcade_vr.dm +++ b/code/game/machinery/computer/arcade_vr.dm @@ -22,7 +22,6 @@ /obj/item/toy/redbutton = 2, /obj/item/toy/gnome = 2, /obj/item/toy/AI = 2, - /obj/item/clothing/gloves/ring/buzzer/toy = 2, /obj/item/storage/box/handcuffs/fake = 2, /obj/item/toy/nuke = 2, /obj/item/toy/minigibber = 2, diff --git a/code/game/objects/items/toys/toys_vr.dm b/code/game/objects/items/toys/toys_vr.dm index b6df0bcafd8..6a9b66f0c66 100644 --- a/code/game/objects/items/toys/toys_vr.dm +++ b/code/game/objects/items/toys/toys_vr.dm @@ -556,35 +556,6 @@ /obj/item/toy/AI/proc/cooldownreset() cooldown = 0 -/* - * Hand buzzer - */ -/obj/item/clothing/gloves/ring/buzzer/toy - name = "steel ring" - desc = "Torus shaped finger decoration. It has a small piece of metal on the palm-side." - icon_state = "seal-signet" - drop_sound = 'sound/items/drop/ring.ogg' - -/obj/item/clothing/gloves/ring/buzzer/toy/Touch(var/atom/A, var/proximity) - if(proximity && istype(usr, /mob/living/carbon/human)) - - return zap(usr, A, proximity) - return 0 - -/obj/item/clothing/gloves/ring/buzzer/toy/zap(var/mob/living/carbon/human/user, var/atom/movable/target, var/proximity) - . = FALSE - if(user.a_intent == I_HELP && battery.percent() >= 50) - if(isliving(target)) - var/mob/living/L = target - - to_chat(L, span_warning("You feel a powerful shock!")) - if(!.) - playsound(L, 'sound/effects/sparks7.ogg', 40, 1) - L.electrocute_act(battery.percent() * 0, src) - return . - - return 0 - /* * Toy cuffs */ diff --git a/code/game/objects/structures/crates_lockers/closets/misc_vr.dm b/code/game/objects/structures/crates_lockers/closets/misc_vr.dm index d8ccfd6025f..225f3c463e0 100644 --- a/code/game/objects/structures/crates_lockers/closets/misc_vr.dm +++ b/code/game/objects/structures/crates_lockers/closets/misc_vr.dm @@ -211,7 +211,7 @@ /obj/item/radio, /obj/item/gps/explorer, /obj/item/gun/energy/gun/protector/pilotgun/locked, - /obj/item/clothing/gloves/watch/survival, + /obj/item/clothing/accessory/watch/survival, /obj/item/clothing/accessory/storage/webbing/pilot1, /obj/item/clothing/accessory/storage/webbing/pilot2, /obj/item/emergency_beacon diff --git a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm index c63f709505c..74f2b7329b1 100644 --- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm @@ -271,7 +271,7 @@ // C CKEYS /datum/gear/fluff/cappy_watch - path = /obj/item/clothing/accessory/watch + path = /obj/item/clothing/accessory/watch/custom display_name = "Cappy's Pocket Watch" ckeywhitelist = list("cappycat") character_name = list("Cappy Fuzzlyfeathers") @@ -528,7 +528,7 @@ character_name = list("Elizabeth Bayou") /datum/gear/fluff/mercury_vopal_ring - path = /obj/item/clothing/gloves/ring/material/void_opal/fluff/mercury + path = /obj/item/clothing/accessory/ring/material/void_opal/fluff/mercury display_name = "Mercury's Mate Ring" ckeywhitelist = list("haloren") character_name = list("Mercury") diff --git a/code/modules/client/preference_setup/loadout/loadout_general_vr.dm b/code/modules/client/preference_setup/loadout/loadout_general_vr.dm index 3909acf199a..86a89ddfa83 100644 --- a/code/modules/client/preference_setup/loadout/loadout_general_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_general_vr.dm @@ -56,7 +56,6 @@ toytype["Big Red Button"] = /obj/item/toy/redbutton toytype["Garden gnome"] = /obj/item/toy/gnome toytype["Toy AI"] = /obj/item/toy/AI - toytype["Hand buzzer"] = /obj/item/clothing/gloves/ring/buzzer/toy toytype["Toy nuke"] = /obj/item/toy/nuke toytype["Toy gibber"] = /obj/item/toy/minigibber toytype["Toy xeno"] = /obj/item/toy/toy_xeno diff --git a/code/modules/client/preference_setup/loadout/loadout_gloves.dm b/code/modules/client/preference_setup/loadout/loadout_gloves.dm index 859d6a0c4cd..fa712ecd276 100644 --- a/code/modules/client/preference_setup/loadout/loadout_gloves.dm +++ b/code/modules/client/preference_setup/loadout/loadout_gloves.dm @@ -74,27 +74,27 @@ /datum/gear/gloves/ring display_name = "ring selection" description = "Choose from a number of rings." - path = /obj/item/clothing/gloves/ring + path = /obj/item/clothing/accessory/ring cost = 1 /datum/gear/gloves/ring/New() ..() var/ringtype = list() - ringtype["CTI ring"] = /obj/item/clothing/gloves/ring/cti - ringtype["Mariner University ring"] = /obj/item/clothing/gloves/ring/mariner - ringtype["engagement ring"] = /obj/item/clothing/gloves/ring/engagement - ringtype["signet ring"] = /obj/item/clothing/gloves/ring/seal/signet - ringtype["masonic ring"] = /obj/item/clothing/gloves/ring/seal/mason - ringtype["ring, glass"] = /obj/item/clothing/gloves/ring/material/glass - ringtype["ring, wood"] = /obj/item/clothing/gloves/ring/material/wood - ringtype["ring, plastic"] = /obj/item/clothing/gloves/ring/material/plastic - ringtype["ring, iron"] = /obj/item/clothing/gloves/ring/material/iron - ringtype["ring, bronze"] = /obj/item/clothing/gloves/ring/material/bronze - ringtype["ring, steel"] = /obj/item/clothing/gloves/ring/material/steel - ringtype["ring, copper"] = /obj/item/clothing/gloves/ring/material/copper - ringtype["ring, silver"] = /obj/item/clothing/gloves/ring/material/silver - ringtype["ring, gold"] = /obj/item/clothing/gloves/ring/material/gold - ringtype["ring, platinum"] = /obj/item/clothing/gloves/ring/material/platinum + ringtype["CTI ring"] = /obj/item/clothing/accessory/ring/cti + ringtype["Mariner University ring"] = /obj/item/clothing/accessory/ring/mariner + ringtype["engagement ring"] = /obj/item/clothing/accessory/ring/engagement + ringtype["signet ring"] = /obj/item/clothing/accessory/ring/seal/signet + ringtype["masonic ring"] = /obj/item/clothing/accessory/ring/seal/mason + ringtype["ring, glass"] = /obj/item/clothing/accessory/ring/material/glass + ringtype["ring, wood"] = /obj/item/clothing/accessory/ring/material/wood + ringtype["ring, plastic"] = /obj/item/clothing/accessory/ring/material/plastic + ringtype["ring, iron"] = /obj/item/clothing/accessory/ring/material/iron + ringtype["ring, bronze"] = /obj/item/clothing/accessory/ring/material/bronze + ringtype["ring, steel"] = /obj/item/clothing/accessory/ring/material/steel + ringtype["ring, copper"] = /obj/item/clothing/accessory/ring/material/copper + ringtype["ring, silver"] = /obj/item/clothing/accessory/ring/material/silver + ringtype["ring, gold"] = /obj/item/clothing/accessory/ring/material/gold + ringtype["ring, platinum"] = /obj/item/clothing/accessory/ring/material/platinum gear_tweaks += new/datum/gear_tweak/path(ringtype) @@ -105,14 +105,14 @@ /datum/gear/gloves/watch display_name = "wristwatch selector" description = "Pick from a range of wristwatches." - path = /obj/item/clothing/gloves/watch + path = /obj/item/clothing/accessory/watch /datum/gear/gloves/watch/New() ..() var/list/selector_watches = list( - "plain plastic"=/obj/item/clothing/gloves/watch, - "silver"=/obj/item/clothing/gloves/watch/silver, - "gold"=/obj/item/clothing/gloves/watch/gold, - "survival"=/obj/item/clothing/gloves/watch/survival + "plain plastic"=/obj/item/clothing/accessory/watch, + "silver"=/obj/item/clothing/accessory/watch/silver, + "gold"=/obj/item/clothing/accessory/watch/gold, + "survival"=/obj/item/clothing/accessory/watch/survival ) gear_tweaks += new/datum/gear_tweak/path(sortAssoc(selector_watches)) diff --git a/code/modules/client/preference_setup/loadout/loadout_gloves_vr.dm b/code/modules/client/preference_setup/loadout/loadout_gloves_vr.dm index cfc0a6b1053..fd25064e85b 100644 --- a/code/modules/client/preference_setup/loadout/loadout_gloves_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_gloves_vr.dm @@ -1,10 +1,10 @@ /datum/gear/gloves/goldring display_name = "wedding ring, gold" - path = /obj/item/clothing/gloves/ring/wedding + path = /obj/item/clothing/accessory/ring/wedding /datum/gear/gloves/silverring display_name = "wedding ring, silver" - path = /obj/item/clothing/gloves/ring/wedding/silver + path = /obj/item/clothing/accessory/ring/wedding/silver /datum/gear/gloves/colored display_name = "gloves, colorable" diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/accessories/accessory.dm similarity index 100% rename from code/modules/clothing/under/accessories/accessory.dm rename to code/modules/clothing/accessories/accessory.dm diff --git a/code/modules/clothing/under/accessories/accessory_vr.dm b/code/modules/clothing/accessories/accessory_vr.dm similarity index 100% rename from code/modules/clothing/under/accessories/accessory_vr.dm rename to code/modules/clothing/accessories/accessory_vr.dm diff --git a/code/modules/clothing/under/accessories/altevian_vr.dm b/code/modules/clothing/accessories/altevian_vr.dm similarity index 100% rename from code/modules/clothing/under/accessories/altevian_vr.dm rename to code/modules/clothing/accessories/altevian_vr.dm diff --git a/code/modules/clothing/under/accessories/armband.dm b/code/modules/clothing/accessories/armband.dm similarity index 100% rename from code/modules/clothing/under/accessories/armband.dm rename to code/modules/clothing/accessories/armband.dm diff --git a/code/modules/clothing/under/accessories/armor.dm b/code/modules/clothing/accessories/armor.dm similarity index 100% rename from code/modules/clothing/under/accessories/armor.dm rename to code/modules/clothing/accessories/armor.dm diff --git a/code/modules/clothing/under/accessories/badges.dm b/code/modules/clothing/accessories/badges.dm similarity index 100% rename from code/modules/clothing/under/accessories/badges.dm rename to code/modules/clothing/accessories/badges.dm diff --git a/code/modules/clothing/under/accessories/badges_vr.dm b/code/modules/clothing/accessories/badges_vr.dm similarity index 100% rename from code/modules/clothing/under/accessories/badges_vr.dm rename to code/modules/clothing/accessories/badges_vr.dm diff --git a/code/modules/clothing/under/accessories/clothing.dm b/code/modules/clothing/accessories/clothing.dm similarity index 100% rename from code/modules/clothing/under/accessories/clothing.dm rename to code/modules/clothing/accessories/clothing.dm diff --git a/code/modules/clothing/under/accessories/clothing_vr.dm b/code/modules/clothing/accessories/clothing_vr.dm similarity index 100% rename from code/modules/clothing/under/accessories/clothing_vr.dm rename to code/modules/clothing/accessories/clothing_vr.dm diff --git a/code/modules/clothing/under/accessories/holster.dm b/code/modules/clothing/accessories/holster.dm similarity index 100% rename from code/modules/clothing/under/accessories/holster.dm rename to code/modules/clothing/accessories/holster.dm diff --git a/code/modules/clothing/under/accessories/holster_vr.dm b/code/modules/clothing/accessories/holster_vr.dm similarity index 100% rename from code/modules/clothing/under/accessories/holster_vr.dm rename to code/modules/clothing/accessories/holster_vr.dm diff --git a/code/modules/clothing/under/accessories/lockets.dm b/code/modules/clothing/accessories/lockets.dm similarity index 100% rename from code/modules/clothing/under/accessories/lockets.dm rename to code/modules/clothing/accessories/lockets.dm diff --git a/code/modules/clothing/under/accessories/permits.dm b/code/modules/clothing/accessories/permits.dm similarity index 100% rename from code/modules/clothing/under/accessories/permits.dm rename to code/modules/clothing/accessories/permits.dm diff --git a/code/modules/clothing/under/accessories/permits_vr.dm b/code/modules/clothing/accessories/permits_vr.dm similarity index 100% rename from code/modules/clothing/under/accessories/permits_vr.dm rename to code/modules/clothing/accessories/permits_vr.dm diff --git a/code/modules/clothing/accessories/rings.dm b/code/modules/clothing/accessories/rings.dm new file mode 100644 index 00000000000..855cce0212a --- /dev/null +++ b/code/modules/clothing/accessories/rings.dm @@ -0,0 +1,201 @@ +//Generic Ring + +/obj/item/clothing/accessory/ring + name = "generic ring" + desc = "Torus shaped finger decoration." + icon_state = "material" + drop_sound = 'sound/items/drop/ring.ogg' + slot = ACCESSORY_SLOT_RING + slot_flags = SLOT_GLOVES + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_gloves.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_gloves.dmi', + ) + gender = PLURAL + w_class = ITEMSIZE_SMALL + icon = 'icons/inventory/hands/item.dmi' + drop_sound = 'sound/items/drop/ring.ogg' + pickup_sound = 'sound/items/pickup/ring.ogg' + +///////////////////////////////////////// +//Standard Rings +/obj/item/clothing/accessory/ring/engagement + name = "engagement ring" + desc = "An engagement ring. It certainly looks expensive." + icon_state = "diamond" + +/obj/item/clothing/accessory/ring/engagement/attack_self(mob/user) + user.visible_message(span_warning("\The [user] gets down on one knee, presenting \the [src]."),span_warning("You get down on one knee, presenting \the [src].")) + +/obj/item/clothing/accessory/ring/cti + name = "CTI ring" + desc = "A ring commemorating graduation from CTI." + icon_state = "cti-grad" + +/obj/item/clothing/accessory/ring/mariner + name = "Mariner University ring" + desc = "A ring commemorating graduation from Mariner University." + icon_state = "mariner-grad" + + +///////////////////////////////////////// +//Reagent Rings + +/obj/item/clothing/accessory/ring/reagent + flags = OPENCONTAINER + origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 4) + +/obj/item/clothing/accessory/ring/reagent/New() + ..() + create_reagents(15) + +/obj/item/clothing/accessory/ring/reagent/equipped(var/mob/living/carbon/human/H) + ..() + if(istype(H) && H.gloves==src) + + if(reagents.total_volume) + to_chat(H, span_danger("You feel a prick as you slip on \the [src].")) + if(H.reagents) + var/contained = reagents.get_reagents() + var/trans = reagents.trans_to_mob(H, 15, CHEM_BLOOD) + add_attack_logs(usr, H, "Injected with [name] containing [contained] transferred [trans] units") + return + +//Sleepy Ring +/obj/item/clothing/accessory/ring/reagent/sleepy + name = "silver ring" + desc = "A ring made from what appears to be silver." + icon_state = "material" + origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 5) + +/obj/item/clothing/accessory/ring/reagent/sleepy/New() + ..() + reagents.add_reagent("chloralhydrate", 15) // Less than a sleepy-pen, but still enough to knock someone out + +///////////////////////////////////////// +//Seals and Signet Rings + +/obj/item/clothing/accessory/ring/seal + var/stamptext = null + +/obj/item/clothing/accessory/ring/seal/secgen + name = "Secretary-General's official seal" + desc = "The official seal of the Secretary-General of the Sol Central Government, featured prominently on a silver ring." + icon_state = "seal-secgen" + +/obj/item/clothing/accessory/ring/seal/mason + name = "\improper Masonic ring" + desc = "The Square and Compasses feature prominently on this Masonic ring." + icon_state = "seal-masonic" + +/obj/item/clothing/accessory/ring/seal/signet + name = "signet ring" + desc = "A signet ring, for when you're too sophisticated to sign letters." + icon_state = "seal-signet" + var/nameset = FALSE + +/obj/item/clothing/accessory/ring/seal/signet/attack_self(mob/user) + if(nameset) + to_chat(user, span_notice("The [src] has already been claimed!")) + return + + to_chat(user, span_notice("You claim the [src] as your own!")) + change_name(user) + nameset = TRUE + +/obj/item/clothing/accessory/ring/seal/signet/proc/change_name(var/signet_name = "Unknown") + name = "[signet_name]'s signet ring" + desc = "A signet ring belonging to [signet_name], for when you're too sophisticated to sign letters." + +/obj/item/clothing/accessory/ring/wedding + name = "golden wedding ring" + desc = "For showing your devotion to another person. It has a golden glimmer to it." + icon = 'icons/inventory/hands/item_vr.dmi' + icon_state = "wedring_g" + item_state = "wedring_g" + var/partnername = "" + +/obj/item/clothing/accessory/ring/wedding/attack_self(mob/user) + partnername = copytext(sanitize(input(user, "Would you like to change the holoengraving on the ring?", "Name your spouse", "Bae") as null|text),1,MAX_NAME_LEN) + name = "[initial(name)] - [partnername]" + +/obj/item/clothing/accessory/ring/wedding/silver + name = "silver wedding ring" + desc = "For showing your devotion to another person. It has a silver glimmer to it." + icon_state = "wedring_s" + item_state = "wedring_s" + +///////////////////////////////////////// +//Material Rings +/obj/item/clothing/accessory/ring/material + icon = 'icons/inventory/hands/item.dmi' + icon_state = "material" + +/obj/item/clothing/accessory/ring/material/New(var/newloc, var/new_material) + ..(newloc) + if(!new_material) + new_material = MAT_STEEL + material = get_material_by_name(new_material) + if(!istype(material)) + qdel(src) + return + name = "[material.display_name] ring" + desc = "A ring made from [material.display_name]." + color = material.icon_colour + +/obj/item/clothing/accessory/ring/material/get_material() + return material + +/obj/item/clothing/accessory/ring/material/wood/New(var/newloc) + ..(newloc, MAT_WOOD) + +/obj/item/clothing/accessory/ring/material/plastic/New(var/newloc) + ..(newloc, MAT_PLASTIC) + +/obj/item/clothing/accessory/ring/material/iron/New(var/newloc) + ..(newloc, MAT_IRON) + +/obj/item/clothing/accessory/ring/material/glass/New(var/newloc) + ..(newloc, MAT_GLASS) + +/obj/item/clothing/accessory/ring/material/steel/New(var/newloc) + ..(newloc, MAT_STEEL) + +/obj/item/clothing/accessory/ring/material/silver/New(var/newloc) + ..(newloc, MAT_SILVER) + +/obj/item/clothing/accessory/ring/material/gold/New(var/newloc) + ..(newloc, MAT_GOLD) + +/obj/item/clothing/accessory/ring/material/platinum/New(var/newloc) + ..(newloc, MAT_PLATINUM) + +/obj/item/clothing/accessory/ring/material/phoron/New(var/newloc) + ..(newloc, MAT_PHORON) + +/obj/item/clothing/accessory/ring/material/titanium/New(var/newloc) + ..(newloc, MAT_TITANIUM) + +/obj/item/clothing/accessory/ring/material/copper/New(var/newloc) + ..(newloc, MAT_COPPER) + +/obj/item/clothing/accessory/ring/material/bronze/New(var/newloc) + ..(newloc, MAT_BRONZE) + +/obj/item/clothing/accessory/ring/material/uranium/New(var/newloc) + ..(newloc, MAT_URANIUM) + +/obj/item/clothing/accessory/ring/material/osmium/New(var/newloc) + ..(newloc, MAT_OSMIUM) + +/obj/item/clothing/accessory/ring/material/lead/New(var/newloc) + ..(newloc, MAT_LEAD) + +/obj/item/clothing/accessory/ring/material/diamond/New(var/newloc) + ..(newloc, MAT_DIAMOND) + +/obj/item/clothing/accessory/ring/material/tin/New(var/newloc) + ..(newloc, MAT_TIN) + +/obj/item/clothing/accessory/ring/material/void_opal/New(var/newloc) + ..(newloc, MAT_VOPAL) diff --git a/code/modules/clothing/under/accessories/shiny_vr.dm b/code/modules/clothing/accessories/shiny_vr.dm similarity index 100% rename from code/modules/clothing/under/accessories/shiny_vr.dm rename to code/modules/clothing/accessories/shiny_vr.dm diff --git a/code/modules/clothing/under/accessories/storage.dm b/code/modules/clothing/accessories/storage.dm similarity index 100% rename from code/modules/clothing/under/accessories/storage.dm rename to code/modules/clothing/accessories/storage.dm diff --git a/code/modules/clothing/under/accessories/storage_vr.dm b/code/modules/clothing/accessories/storage_vr.dm similarity index 100% rename from code/modules/clothing/under/accessories/storage_vr.dm rename to code/modules/clothing/accessories/storage_vr.dm diff --git a/code/modules/clothing/under/accessories/temperature/poncho.dm b/code/modules/clothing/accessories/temperature/poncho.dm similarity index 100% rename from code/modules/clothing/under/accessories/temperature/poncho.dm rename to code/modules/clothing/accessories/temperature/poncho.dm diff --git a/code/modules/clothing/under/accessories/torch.dm b/code/modules/clothing/accessories/torch.dm similarity index 100% rename from code/modules/clothing/under/accessories/torch.dm rename to code/modules/clothing/accessories/torch.dm diff --git a/code/modules/clothing/under/accessories/torch_vr.dm b/code/modules/clothing/accessories/torch_vr.dm similarity index 100% rename from code/modules/clothing/under/accessories/torch_vr.dm rename to code/modules/clothing/accessories/torch_vr.dm diff --git a/code/modules/clothing/accessories/watches.dm b/code/modules/clothing/accessories/watches.dm new file mode 100644 index 00000000000..5a93cb94f0e --- /dev/null +++ b/code/modules/clothing/accessories/watches.dm @@ -0,0 +1,72 @@ +/obj/item/clothing/accessory/watch + name = "wristwatch" + desc = "A cheap plastic quartz-based wristwatch. Painfully archaic by modern standards, but there's something charming about it all the same." + icon_state = "wristwatch_basic" + siemens_coefficient = 1 + gender = "neuter" + slot = ACCESSORY_SLOT_WRIST + slot_flags = SLOT_GLOVES + icon = 'icons/inventory/hands/item.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_gloves.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_gloves.dmi', + ) + sprite_sheets = list( + SPECIES_TESHARI = 'icons/inventory/hands/mob_teshari.dmi', + SPECIES_VOX = 'icons/inventory/hands/mob_vox.dmi' + ) + +/obj/item/clothing/accessory/watch/examine(mob/user) + . = ..() + + if(Adjacent(user)) + . += span_notice("The current station time is [stationtime2text()].") + +/obj/item/clothing/accessory/watch/silver + name = "silver wristwatch" + desc = "A humble silver (or maybe chrome) plated wristwatch. It's quite archaic, but nonetheless classy in its own way." + icon_state = "wristwatch_silver" + +/obj/item/clothing/accessory/watch/gold + name = "gold wristwatch" + desc = "A very fancy gold-plated wristwatch. For when you want to casually show off just how wealthy you are. It even tells the time!" + icon_state = "wristwatch_gold" + +/obj/item/clothing/accessory/watch/survival + name = "survival watch" + desc = "An overengineered wristwatch that purports to be both space and water proof, and includes a compass, micro GPS beacon, and temperature and pressure sensors. The beacon is off by default, and can only transmit its location: it cannot scan for other signals." + description_fluff = "Hold ALT whilst left-clicking on the survival watch to toggle the status of its micro-beacon." + icon_state = "wristwatch_survival" + + var/obj/item/gps/gps = null + +/obj/item/clothing/accessory/watch/survival/examine(mob/user) + . = ..() + + if(Adjacent(user)) + . += span_notice("You are currently facing [dir2text(user.dir)]. The micro beacon is [gps.tracking ? "on" : "off"].") + var/TB = user.loc + if(istype(TB, /turf/)) //no point returning light level if we're not on a turf (might be *in* someone!) + var/turf/TL = TB + var/light_level = TL.get_lumcount() + if(light_level) + . += span_notice("Light Level: [TL.get_lumcount()]") + else + . += span_notice("It's too dark to see the light level!") + if(istype(TB, /turf/simulated)) //no point returning atmospheric data from unsimulated tiles (they don't track pressure anyway, only temperature) + var/turf/simulated/T = TB + var/datum/gas_mixture/env = T.return_air() + . += span_notice("Pressure: [env.return_pressure()]kPa / Temperature: [env.temperature]K ") + +/obj/item/clothing/accessory/watch/survival/New() + gps = new/obj/item/gps/watch(src) + +/obj/item/gps/watch + gps_tag = "SRV-WTCH" + +/obj/item/clothing/accessory/watch/survival/AltClick(mob/user) + . = ..() + + if(Adjacent(user)) + gps.tracking = !gps.tracking + to_chat(user,span_notice("You turn the micro beacon [gps.tracking ? "on" : "off"].")) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index f45481622aa..c416698a646 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -326,6 +326,13 @@ drop_sound = 'sound/items/drop/gloves.ogg' pickup_sound = 'sound/items/pickup/gloves.ogg' + valid_accessory_slots = (\ + ACCESSORY_SLOT_RING\ + |ACCESSORY_SLOT_WRIST) + restricted_accessory_slots = (\ + ACCESSORY_SLOT_RING\ + |ACCESSORY_SLOT_WRIST) + /obj/item/clothing/proc/set_clothing_index() return @@ -422,8 +429,6 @@ if(special_attack_type && ispath(special_attack_type)) special_attack = new special_attack_type - - ///////////////////////////////////////////////////////////////////// //Rings diff --git a/code/modules/clothing/gloves/antagonist.dm b/code/modules/clothing/gloves/antagonist.dm index 83e595a0ddd..34574e2e538 100644 --- a/code/modules/clothing/gloves/antagonist.dm +++ b/code/modules/clothing/gloves/antagonist.dm @@ -88,70 +88,3 @@ if(proximity && istype(usr, /mob/living/carbon/human) && do_after(usr, 1 SECOND, A)) return pickpocket(usr, A, proximity) return 0 - -// Buzzer Ring - Traitor, Merc. -/obj/item/clothing/gloves/ring/buzzer - name = "ring" - desc = "A plain metal band." - description_antag = "This morphium-alloy ring continually generates an electric field, capable of electrocuting a target while not injuring the wearer.\ - The device is also capable of 'frankenstein'-ing a corpse, long after normal technology would be able to save them. The body will still be tied to the\ - normal damage limits for survival, however, so care must be taken." - icon_state = "material" - var/battery_type = /obj/item/cell/device/weapon/recharge - var/obj/item/cell/battery = null - -/obj/item/clothing/gloves/ring/buzzer/get_cell() - return battery - -/obj/item/clothing/gloves/ring/buzzer/Initialize() - . = ..() - if(!battery) - battery = new battery_type(src) - -/obj/item/clothing/gloves/ring/buzzer/Touch(var/atom/A, var/proximity) - if(proximity && istype(usr, /mob/living/carbon/human)) - return zap(usr, A, proximity) - return 0 - -/obj/item/clothing/gloves/ring/buzzer/proc/zap(var/mob/living/carbon/human/user, var/atom/movable/target, var/proximity) - . = FALSE - if(user.a_intent == I_HURT && battery.percent() >= 50) - if(isliving(target)) - var/mob/living/L = target - - if(ishuman(L) && battery.percent() >= 90) // Silent text-wise, for maximum potential for gimmicks. - var/mob/living/carbon/human/H = L - - if(H.stat == DEAD) - . = TRUE - - do_defib(H) - - to_chat(L, span_warning("You feel a powerful shock!")) - if(!.) - playsound(L, 'sound/effects/sparks7.ogg', 40, 1) - L.electrocute_act(battery.percent() * 0.25, src) - battery.emp_act(2) - return . - - return 0 - -/obj/item/clothing/gloves/ring/buzzer/proc/do_defib(var/mob/living/carbon/human/H = null) - if(!istype(H)) - return 0 - - dead_mob_list.Remove(H) - if((H in living_mob_list) || (H in dead_mob_list)) - WARNING("Mob [H] was ring-defibbed but already in the living or dead list still!") - living_mob_list += H - - H.timeofdeath = 0 - H.set_stat(UNCONSCIOUS) - H.failed_last_breath = 0 - H.reload_fullscreen() - - H.emote("gasp") - H.Weaken(rand(10,25)) - H.updatehealth() - - battery.emp_act(1) diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 3862469c857..cb5e214fd68 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -172,65 +172,3 @@ name = "water wings" desc = "Swim aids designed to help a wearer float in water and learn to swim." icon_state = "waterwings" - -/obj/item/clothing/gloves/watch - name = "wristwatch" - desc = "A cheap plastic quartz-based wristwatch. Painfully archaic by modern standards, but there's something charming about it all the same." - icon_state = "wristwatch_basic" - siemens_coefficient = 1 - gender = "neuter" - -/obj/item/clothing/gloves/watch/examine(mob/user) - . = ..() - - if(Adjacent(user)) - . += span_notice("The current station time is [stationtime2text()].") - -/obj/item/clothing/gloves/watch/silver - name = "silver wristwatch" - desc = "A humble silver (or maybe chrome) plated wristwatch. It's quite archaic, but nonetheless classy in its own way." - icon_state = "wristwatch_silver" - -/obj/item/clothing/gloves/watch/gold - name = "gold wristwatch" - desc = "A very fancy gold-plated wristwatch. For when you want to casually show off just how wealthy you are. It even tells the time!" - icon_state = "wristwatch_gold" - -/obj/item/clothing/gloves/watch/survival - name = "survival watch" - desc = "An overengineered wristwatch that purports to be both space and water proof, and includes a compass, micro GPS beacon, and temperature and pressure sensors. The beacon is off by default, and can only transmit its location: it cannot scan for other signals." - description_fluff = "Hold ALT whilst left-clicking on the survival watch to toggle the status of its micro-beacon." - icon_state = "wristwatch_survival" - - var/obj/item/gps/gps = null - -/obj/item/clothing/gloves/watch/survival/examine(mob/user) - . = ..() - - if(Adjacent(user) && src.loc == user) - . += span_notice("You are currently facing [dir2text(user.dir)]. The micro beacon is [gps.tracking ? "on" : "off"].") - var/TB = src.loc.loc - if(istype(TB, /turf/)) //no point returning light level if we're not on a turf (might be *in* someone!) - var/turf/TL = TB - var/light_level = TL.get_lumcount() - if(light_level) - . += span_notice("Light Level: [TL.get_lumcount()]") - else - . += span_notice("It's too dark to see the light level!") - if(istype(TB, /turf/simulated)) //no point returning atmospheric data from unsimulated tiles (they don't track pressure anyway, only temperature) - var/turf/simulated/T = TB - var/datum/gas_mixture/env = T.return_air() - . += span_notice("Pressure: [env.return_pressure()]kPa / Temperature: [env.temperature]K ") - -/obj/item/clothing/gloves/watch/survival/New() - gps = new/obj/item/gps/watch(src) - -/obj/item/gps/watch - gps_tag = "SRV-WTCH" - -/obj/item/clothing/gloves/watch/survival/AltClick(mob/user) - . = ..() - - if(Adjacent(user)) - gps.tracking = !gps.tracking - to_chat(user,span_notice("You turn the micro beacon [gps.tracking ? "on" : "off"].")) diff --git a/code/modules/clothing/rings/material.dm b/code/modules/clothing/rings/material.dm deleted file mode 100644 index 30242fef66e..00000000000 --- a/code/modules/clothing/rings/material.dm +++ /dev/null @@ -1,74 +0,0 @@ -///////////////////////////////////////// -//Material Rings -/obj/item/clothing/gloves/ring/material - icon = 'icons/inventory/hands/item.dmi' - icon_state = "material" - -/obj/item/clothing/gloves/ring/material/New(var/newloc, var/new_material) - ..(newloc) - if(!new_material) - new_material = MAT_STEEL - material = get_material_by_name(new_material) - if(!istype(material)) - qdel(src) - return - name = "[material.display_name] ring" - desc = "A ring made from [material.display_name]." - color = material.icon_colour - -/obj/item/clothing/gloves/ring/material/get_material() - return material - -/obj/item/clothing/gloves/ring/material/wood/New(var/newloc) - ..(newloc, MAT_WOOD) - -/obj/item/clothing/gloves/ring/material/plastic/New(var/newloc) - ..(newloc, MAT_PLASTIC) - -/obj/item/clothing/gloves/ring/material/iron/New(var/newloc) - ..(newloc, MAT_IRON) - -/obj/item/clothing/gloves/ring/material/glass/New(var/newloc) - ..(newloc, MAT_GLASS) - -/obj/item/clothing/gloves/ring/material/steel/New(var/newloc) - ..(newloc, MAT_STEEL) - -/obj/item/clothing/gloves/ring/material/silver/New(var/newloc) - ..(newloc, MAT_SILVER) - -/obj/item/clothing/gloves/ring/material/gold/New(var/newloc) - ..(newloc, MAT_GOLD) - -/obj/item/clothing/gloves/ring/material/platinum/New(var/newloc) - ..(newloc, MAT_PLATINUM) - -/obj/item/clothing/gloves/ring/material/phoron/New(var/newloc) - ..(newloc, MAT_PHORON) - -/obj/item/clothing/gloves/ring/material/titanium/New(var/newloc) - ..(newloc, MAT_TITANIUM) - -/obj/item/clothing/gloves/ring/material/copper/New(var/newloc) - ..(newloc, MAT_COPPER) - -/obj/item/clothing/gloves/ring/material/bronze/New(var/newloc) - ..(newloc, MAT_BRONZE) - -/obj/item/clothing/gloves/ring/material/uranium/New(var/newloc) - ..(newloc, MAT_URANIUM) - -/obj/item/clothing/gloves/ring/material/osmium/New(var/newloc) - ..(newloc, MAT_OSMIUM) - -/obj/item/clothing/gloves/ring/material/lead/New(var/newloc) - ..(newloc, MAT_LEAD) - -/obj/item/clothing/gloves/ring/material/diamond/New(var/newloc) - ..(newloc, MAT_DIAMOND) - -/obj/item/clothing/gloves/ring/material/tin/New(var/newloc) - ..(newloc, MAT_TIN) - -/obj/item/clothing/gloves/ring/material/void_opal/New(var/newloc) - ..(newloc, MAT_VOPAL) \ No newline at end of file diff --git a/code/modules/clothing/rings/rings.dm b/code/modules/clothing/rings/rings.dm deleted file mode 100644 index 34678198e74..00000000000 --- a/code/modules/clothing/rings/rings.dm +++ /dev/null @@ -1,96 +0,0 @@ -//Generic Ring - -/obj/item/clothing/gloves/ring - name = "generic ring" - desc = "Torus shaped finger decoration." - icon_state = "material" - drop_sound = 'sound/items/drop/ring.ogg' - -///////////////////////////////////////// -//Standard Rings -/obj/item/clothing/gloves/ring/engagement - name = "engagement ring" - desc = "An engagement ring. It certainly looks expensive." - icon_state = "diamond" - -/obj/item/clothing/gloves/ring/engagement/attack_self(mob/user) - user.visible_message(span_warning("\The [user] gets down on one knee, presenting \the [src]."),span_warning("You get down on one knee, presenting \the [src].")) - -/obj/item/clothing/gloves/ring/cti - name = "CTI ring" - desc = "A ring commemorating graduation from CTI." - icon_state = "cti-grad" - -/obj/item/clothing/gloves/ring/mariner - name = "Mariner University ring" - desc = "A ring commemorating graduation from Mariner University." - icon_state = "mariner-grad" - - -///////////////////////////////////////// -//Reagent Rings - -/obj/item/clothing/gloves/ring/reagent - flags = OPENCONTAINER - origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 4) - -/obj/item/clothing/gloves/ring/reagent/New() - ..() - create_reagents(15) - -/obj/item/clothing/gloves/ring/reagent/equipped(var/mob/living/carbon/human/H) - ..() - if(istype(H) && H.gloves==src) - - if(reagents.total_volume) - to_chat(H, span_danger("You feel a prick as you slip on \the [src].")) - if(H.reagents) - var/contained = reagents.get_reagents() - var/trans = reagents.trans_to_mob(H, 15, CHEM_BLOOD) - add_attack_logs(usr, H, "Injected with [name] containing [contained] transferred [trans] units") - return - -//Sleepy Ring -/obj/item/clothing/gloves/ring/reagent/sleepy - name = "silver ring" - desc = "A ring made from what appears to be silver." - icon_state = "material" - origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 5) - -/obj/item/clothing/gloves/ring/reagent/sleepy/New() - ..() - reagents.add_reagent("chloralhydrate", 15) // Less than a sleepy-pen, but still enough to knock someone out - -///////////////////////////////////////// -//Seals and Signet Rings - -/obj/item/clothing/gloves/ring/seal - var/stamptext = null -/obj/item/clothing/gloves/ring/seal/secgen - name = "Secretary-General's official seal" - desc = "The official seal of the Secretary-General of the Sol Central Government, featured prominently on a silver ring." - icon_state = "seal-secgen" - -/obj/item/clothing/gloves/ring/seal/mason - name = "\improper Masonic ring" - desc = "The Square and Compasses feature prominently on this Masonic ring." - icon_state = "seal-masonic" - -/obj/item/clothing/gloves/ring/seal/signet - name = "signet ring" - desc = "A signet ring, for when you're too sophisticated to sign letters." - icon_state = "seal-signet" - var/nameset = FALSE - -/obj/item/clothing/gloves/ring/seal/signet/attack_self(mob/user) - if(nameset) - to_chat(user, span_notice("The [src] has already been claimed!")) - return - - to_chat(user, span_notice("You claim the [src] as your own!")) - change_name(user) - nameset = TRUE - -/obj/item/clothing/gloves/ring/seal/signet/proc/change_name(var/signet_name = "Unknown") - name = "[signet_name]'s signet ring" - desc = "A signet ring belonging to [signet_name], for when you're too sophisticated to sign letters." diff --git a/code/modules/clothing/rings/rings_vr.dm b/code/modules/clothing/rings/rings_vr.dm deleted file mode 100644 index 45306a7acc1..00000000000 --- a/code/modules/clothing/rings/rings_vr.dm +++ /dev/null @@ -1,17 +0,0 @@ -/obj/item/clothing/gloves/ring/wedding - name = "golden wedding ring" - desc = "For showing your devotion to another person. It has a golden glimmer to it." - icon = 'icons/inventory/hands/item_vr.dmi' - icon_state = "wedring_g" - item_state = "wedring_g" - var/partnername = "" - -/obj/item/clothing/gloves/ring/wedding/attack_self(mob/user) - partnername = copytext(sanitize(input(user, "Would you like to change the holoengraving on the ring?", "Name your spouse", "Bae") as null|text),1,MAX_NAME_LEN) - name = "[initial(name)] - [partnername]" - -/obj/item/clothing/gloves/ring/wedding/silver - name = "silver wedding ring" - desc = "For showing your devotion to another person. It has a silver glimmer to it." - icon_state = "wedring_s" - item_state = "wedring_s" diff --git a/code/modules/economy/vending_machines_vr.dm b/code/modules/economy/vending_machines_vr.dm index 8af2af81395..f8d5a980322 100644 --- a/code/modules/economy/vending_machines_vr.dm +++ b/code/modules/economy/vending_machines_vr.dm @@ -519,7 +519,7 @@ /obj/item/clothing/under/color/yellow = 5, /obj/item/clothing/shoes/black = 20, /obj/item/clothing/shoes/white = 20, - /obj/item/clothing/gloves/watch = 20 + /obj/item/clothing/accessory/watch = 20 ) prices = list() @@ -636,13 +636,13 @@ /obj/item/clothing/ears/earmuffs/headphones = 5, /obj/item/clothing/ears/earring/stud = 5, /obj/item/clothing/ears/earring/dangle = 5, - /obj/item/clothing/gloves/ring/mariner = 5, - /obj/item/clothing/gloves/ring/engagement = 5, - /obj/item/clothing/gloves/ring/seal/signet = 5, - /obj/item/clothing/gloves/ring/seal/mason = 5, - /obj/item/clothing/gloves/ring/material/plastic = 5, - /obj/item/clothing/gloves/ring/material/steel = 5, - /obj/item/clothing/gloves/ring/material/gold = 5, + /obj/item/clothing/accessory/ring/mariner = 5, + /obj/item/clothing/accessory/ring/engagement = 5, + /obj/item/clothing/accessory/ring/seal/signet = 5, + /obj/item/clothing/accessory/ring/seal/mason = 5, + /obj/item/clothing/accessory/ring/material/plastic = 5, + /obj/item/clothing/accessory/ring/material/steel = 5, + /obj/item/clothing/accessory/ring/material/gold = 5, /obj/item/clothing/glasses/eyepatch = 5, /obj/item/clothing/glasses/gglasses = 5, /obj/item/clothing/glasses/regular/hipster = 5, @@ -670,9 +670,9 @@ /obj/item/clothing/accessory/pride/lesbian = 5, /obj/item/clothing/accessory/pride/intersex = 5, /obj/item/clothing/accessory/pride/vore = 5, - /obj/item/clothing/gloves/watch = 5, - /obj/item/clothing/gloves/watch/silver = 5, - /obj/item/clothing/gloves/watch/gold = 5 + /obj/item/clothing/accessory/watch = 5, + /obj/item/clothing/accessory/watch/silver = 5, + /obj/item/clothing/accessory/watch/gold = 5 ) prices = list(/obj/item/clothing/accessory = 50, /obj/item/clothing/accessory/armband/med/color = 50, @@ -781,13 +781,13 @@ /obj/item/clothing/ears/earmuffs/headphones = 50, /obj/item/clothing/ears/earring/stud = 50, /obj/item/clothing/ears/earring/dangle = 50, - /obj/item/clothing/gloves/ring/mariner = 50, - /obj/item/clothing/gloves/ring/engagement = 50, - /obj/item/clothing/gloves/ring/seal/signet = 50, - /obj/item/clothing/gloves/ring/seal/mason = 50, - /obj/item/clothing/gloves/ring/material/plastic = 50, - /obj/item/clothing/gloves/ring/material/steel = 50, - /obj/item/clothing/gloves/ring/material/gold = 100, + /obj/item/clothing/accessory/ring/mariner = 50, + /obj/item/clothing/accessory/ring/engagement = 50, + /obj/item/clothing/accessory/ring/seal/signet = 50, + /obj/item/clothing/accessory/ring/seal/mason = 50, + /obj/item/clothing/accessory/ring/material/plastic = 50, + /obj/item/clothing/accessory/ring/material/steel = 50, + /obj/item/clothing/accessory/ring/material/gold = 100, /obj/item/clothing/glasses/eyepatch = 50, /obj/item/clothing/glasses/gglasses = 50, /obj/item/clothing/glasses/regular/hipster = 50, @@ -811,9 +811,9 @@ /obj/item/clothing/accessory/pride/lesbian = 50, /obj/item/clothing/accessory/pride/intersex = 50, /obj/item/clothing/accessory/pride/vore = 50, - /obj/item/clothing/gloves/watch = 50, - /obj/item/clothing/gloves/watch/silver = 100, - /obj/item/clothing/gloves/watch/gold = 200 + /obj/item/clothing/accessory/watch = 50, + /obj/item/clothing/accessory/watch/silver = 100, + /obj/item/clothing/accessory/watch/gold = 200 ) premium = list(/obj/item/bedsheet/rainbow = 1) contraband = list(/obj/item/clothing/mask/gas/clown_hat = 1, @@ -1985,13 +1985,13 @@ /obj/item/clothing/ears/earmuffs/headphones = 5, /obj/item/clothing/ears/earring/stud = 5, /obj/item/clothing/ears/earring/dangle = 5, - /obj/item/clothing/gloves/ring/mariner = 5, - /obj/item/clothing/gloves/ring/engagement = 5, - /obj/item/clothing/gloves/ring/seal/signet = 5, - /obj/item/clothing/gloves/ring/seal/mason = 5, - /obj/item/clothing/gloves/ring/material/plastic = 5, - /obj/item/clothing/gloves/ring/material/steel = 5, - /obj/item/clothing/gloves/ring/material/gold = 5, + /obj/item/clothing/accessory/ring/mariner = 5, + /obj/item/clothing/accessory/ring/engagement = 5, + /obj/item/clothing/accessory/ring/seal/signet = 5, + /obj/item/clothing/accessory/ring/seal/mason = 5, + /obj/item/clothing/accessory/ring/material/plastic = 5, + /obj/item/clothing/accessory/ring/material/steel = 5, + /obj/item/clothing/accessory/ring/material/gold = 5, /obj/item/clothing/glasses/eyepatch = 5, /obj/item/clothing/glasses/gglasses = 5, /obj/item/clothing/glasses/regular/hipster = 5, diff --git a/code/modules/materials/materials/_materials.dm b/code/modules/materials/materials/_materials.dm index ca710cb04f1..322e5d7beaf 100644 --- a/code/modules/materials/materials/_materials.dm +++ b/code/modules/materials/materials/_materials.dm @@ -361,7 +361,7 @@ var/list/name_to_material new /datum/stack_recipe("[display_name] armor plate", /obj/item/material/armor_plating, 1, time = 20, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), new /datum/stack_recipe("[display_name] armor plate insert", /obj/item/material/armor_plating/insert, 2, time = 40, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), new /datum/stack_recipe("[display_name] grave marker", /obj/item/material/gravemarker, 5, time = 50, supplied_material = "[name]", pass_stack_color = TRUE), - new /datum/stack_recipe("[display_name] ring", /obj/item/clothing/gloves/ring/material, 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), + new /datum/stack_recipe("[display_name] ring", /obj/item/clothing/accessory/ring/material, 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), new /datum/stack_recipe("[display_name] bracelet", /obj/item/clothing/accessory/bracelet/material, 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE) ) diff --git a/code/modules/materials/materials/organic/leather.dm b/code/modules/materials/materials/organic/leather.dm index fe291e4d8d5..607361d07e2 100644 --- a/code/modules/materials/materials/organic/leather.dm +++ b/code/modules/materials/materials/organic/leather.dm @@ -33,7 +33,7 @@ new /datum/stack_recipe("pouch, melee", /obj/item/storage/pouch/baton, 10, time = 20 SECONDS, pass_stack_color = FALSE, recycle_material = "[name]"), //vorestation Add new /datum/stack_recipe("crude [display_name] bandage", /obj/item/stack/medical/crude_pack, 1, time = 2 SECONDS, pass_stack_color = TRUE, recycle_material = "[name]"), new /datum/stack_recipe("[display_name] net", /obj/item/material/fishing_net, 10, time = 5 SECONDS, supplied_material = "[name]", pass_stack_color = TRUE), - new /datum/stack_recipe("[display_name] ring", /obj/item/clothing/gloves/ring/material, 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), + new /datum/stack_recipe("[display_name] ring", /obj/item/clothing/accessory/ring/material, 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), new /datum/stack_recipe("[display_name] bracelet", /obj/item/clothing/accessory/bracelet/material, 1, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), new /datum/stack_recipe("[display_name] armor plate", /obj/item/material/armor_plating, 1, time = 20, on_floor = 1, supplied_material = "[name]", pass_stack_color = TRUE), new /datum/stack_recipe("empty sandbag", /obj/item/stack/emptysandbag, 2, time = 2 SECONDS, pass_stack_color = TRUE, supplied_material = "[name]"), diff --git a/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm b/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm index 7beb0276635..b1608dc51f8 100644 --- a/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm +++ b/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm @@ -22,7 +22,7 @@ var/to_wear_r_radio = null var/to_wear_uniform = /obj/item/clothing/under/color/grey var/to_wear_suit = /obj/item/clothing/suit/armor/material/makeshift/glass - var/to_wear_gloves = /obj/item/clothing/gloves/ring/material/platinum + var/to_wear_gloves = /obj/item/clothing/accessory/ring/material/platinum var/to_wear_shoes = /obj/item/clothing/shoes/galoshes var/to_wear_belt = /obj/item/storage/belt/utility/full var/to_wear_l_pocket = /obj/item/soap diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 73913ba2951..80dabf789d2 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -107,12 +107,10 @@ if(w_uniform && !(skip_gear & EXAMINE_SKIPJUMPSUIT) && w_uniform.show_examine) //Ties var/tie_msg - var/tie_msg_warn if(istype(w_uniform,/obj/item/clothing/under) && !(skip_gear & EXAMINE_SKIPTIE)) var/obj/item/clothing/under/U = w_uniform if(LAZYLEN(U.accessories)) tie_msg += ". Attached to it is" - tie_msg_warn += "! Attached to it is" var/list/accessory_descs = list() if(skip_gear & EXAMINE_SKIPHOLSTER) for(var/obj/item/clothing/accessory/A in U.accessories) @@ -139,12 +137,10 @@ //suit/armour if(wear_suit) var/tie_msg - var/tie_msg_warn if(istype(wear_suit,/obj/item/clothing/suit)) var/obj/item/clothing/suit/U = wear_suit if(LAZYLEN(U.accessories)) tie_msg += ". Attached to it is" - tie_msg_warn += "! Attached to it is" var/list/accessory_descs = list() for(var/accessory in U.accessories) accessory_descs += "\a [accessory]" @@ -185,10 +181,21 @@ //gloves if(gloves && !(skip_gear & EXAMINE_SKIPGLOVES) && gloves.show_examine) + var/gloves_acc_msg + if(istype(gloves,/obj/item/clothing/gloves)) + var/obj/item/clothing/gloves/G = gloves + if(LAZYLEN(G.accessories)) + gloves_acc_msg += ". Attached to it is" + var/list/accessory_descs = list() + for(var/obj/item/clothing/accessory/A in G.accessories) + accessory_descs += "\a [A]" + + gloves_acc_msg += " [lowertext(english_list(accessory_descs))]." if(gloves.blood_DNA) - msg += span_warning("[T.He] [T.has] [icon2html(gloves,user.client)] [gloves.gender==PLURAL?"some":"a"] [(gloves.blood_color != "#030303") ? "blood" : "oil"]-stained [gloves.name] on [T.his] hands!") + msg += span_warning("[T.He] [T.has] [icon2html(gloves,user.client)] [gloves.gender==PLURAL?"some":"a"] [(gloves.blood_color != "#030303") ? "blood" : "oil"]-stained [gloves.name] on [T.his] hands![gloves_acc_msg]") else - msg += "[T.He] [T.has] [icon2html(gloves,user.client)] \a [gloves] on [T.his] hands." + msg += "[T.He] [T.has] [icon2html(gloves,user.client)] \a [gloves] on [T.his] hands.[gloves_acc_msg]" + else if(blood_DNA && !(skip_body & EXAMINE_SKIPHANDS)) msg += span_warning("[T.He] [T.has] [(hand_blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained hands!") diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 0b11efd1303..883a4bd6626 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -597,7 +597,7 @@ user << browse("[name][info_links][stamps]", "window=[name]") return - else if(istype(P, /obj/item/stamp) || istype(P, /obj/item/clothing/gloves/ring/seal)) + else if(istype(P, /obj/item/stamp) || istype(P, /obj/item/clothing/accessory/ring/seal)) if(istype(P, /obj/item/stamp)) var/obj/item/stamp/the_stamp = P if(the_stamp.stamptext) @@ -605,7 +605,7 @@ else stamps += (stamps=="" ? "
" : "
") + span_italics("This paper has been stamped with the [the_stamp.name].") else - var/obj/item/clothing/gloves/ring/seal/the_stamp = P + var/obj/item/clothing/accessory/ring/seal/the_stamp = P if(the_stamp.stamptext) stamps += (stamps=="" ? "
" : "
") + span_italics("[the_stamp.stamptext]") else diff --git a/code/modules/vore/fluffstuff/custom_boxes_vr.dm b/code/modules/vore/fluffstuff/custom_boxes_vr.dm index 741d3055a12..1ff0dbeada2 100644 --- a/code/modules/vore/fluffstuff/custom_boxes_vr.dm +++ b/code/modules/vore/fluffstuff/custom_boxes_vr.dm @@ -198,7 +198,7 @@ name = "Phi's Personal Items" has_items = list( /obj/item/clothing/accessory/medal/bronze_heart, - /obj/item/clothing/gloves/ring/seal/signet/fluff/phi) + /obj/item/clothing/accessory/ring/seal/signet/fluff/phi) // Tabiranth: Ascian /obj/item/grenade/spawnergrenade/spirit diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm index a4a102ce847..6361637d45d 100644 --- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm +++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm @@ -1685,14 +1685,14 @@ Departamental Swimsuits, for general use item_state = "kilanosuit_p_mob" //Mewchild: Phi Vietsi -/obj/item/clothing/gloves/ring/seal/signet/fluff/phi +/obj/item/clothing/accessory/ring/seal/signet/fluff/phi name = "Phi's Bone Signet Ring" desc = "A signet ring belonging to Phi, carved from the bones of something long extinct, as a ward against bad luck." icon = 'icons/vore/custom_clothes_vr.dmi' icon_state = "phi_ring" -/obj/item/clothing/gloves/ring/seal/signet/fluff/phi/change_name(var/signet_name = "Unknown") +/obj/item/clothing/accessory/ring/seal/signet/fluff/phi/change_name(var/signet_name = "Unknown") name = "[signet_name]'s Bone Signet Ring" desc = "A signet ring belonging to [signet_name], carved from the bones of something long extinct, as a ward against bad luck." @@ -1949,12 +1949,13 @@ Departamental Swimsuits, for general use icon_override = 'icons/vore/custom_clothes_vr.dmi' //CappyCat:Cappy Fuzzlyfeathers -/obj/item/clothing/accessory/watch +/obj/item/clothing/accessory/watch/custom name = "silver pocket watch" desc = "A fancy silver-plated digital pocket watch. Looks expensive." icon = 'icons/obj/deadringer.dmi' icon_state = "deadringer" w_class = ITEMSIZE_SMALL + slot = ACCESSORY_SLOT_INSIGNIA slot_flags = SLOT_ID | SLOT_BELT | SLOT_TIE //Pimientopyro:Zaku Fyodorovna @@ -2706,7 +2707,7 @@ Departamental Swimsuits, for general use //Halored: Mercury -/obj/item/clothing/gloves/ring/material/void_opal/fluff/mercury +/obj/item/clothing/accessory/ring/material/void_opal/fluff/mercury name = "Mercury's Mate Ring" desc = "A band of void opal, given to Mercury by Lumen" diff --git a/code/modules/xenoarcheaology/artifacts/replicator_vr.dm b/code/modules/xenoarcheaology/artifacts/replicator_vr.dm index 144f51bd767..e8b1ff662a8 100644 --- a/code/modules/xenoarcheaology/artifacts/replicator_vr.dm +++ b/code/modules/xenoarcheaology/artifacts/replicator_vr.dm @@ -347,7 +347,7 @@ var/list/created_items = list() var/list/tgui_vore_selection = list() var/list/viable_items = list( - /obj/item/clothing/gloves/ring, + /obj/item/clothing/accessory/ring, /obj/item/clothing/gloves/evening, /obj/item/clothing/gloves/black, /obj/item/clothing/under/swimsuit/black, diff --git a/code/modules/xenoarcheaology/finds/find_spawning.dm b/code/modules/xenoarcheaology/finds/find_spawning.dm index 7c262bd3507..af11c748e72 100644 --- a/code/modules/xenoarcheaology/finds/find_spawning.dm +++ b/code/modules/xenoarcheaology/finds/find_spawning.dm @@ -576,7 +576,7 @@ apply_image_decorations = TRUE if(prob(25)) apply_material_decorations = FALSE - new_item = new /obj/item/clothing/gloves/ring/material(src.loc) + new_item = new /obj/item/clothing/accessory/ring/material(src.loc) item_type = new_item.name if(ARCHAEO_CLUB) diff --git a/icons/inventory/accessory/mob.dmi b/icons/inventory/accessory/mob.dmi index 587ec871283cc49f0247c646d0024adc7e2b92ff..9ec056adc92be7c369f6fae1c662d2da5da3a542 100644 GIT binary patch delta 10988 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 delta 10548 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 z zFGl)TNO0gBmABNfX1ynkjflX)P;3?kRYaA-U@+%BhM@-~h&P|?*}h<5AK*A2pC$LY zH*Rl>O!7b|jfnhaCCbvO`*~Zre>`_1I4zgs$e26N;i}ZgFkU3F8 zsuzXv+-sN08cWc#AByFQo9B>Kx$ytg#1%OtzJL(!QCz8u4Ks%3oUCM~c~TqHGgNRi zWoAGT$XM_H& z_3v6D0F$M`DV#BYAkO_5%=}A@ak=@!fva7b7IlvHo5whyNaY=Wdio1G9lbvO?ek^B zX9W;7DM>JpS&gAjsB$iyv0l5a-VeWmLSZkiR@#KES2TTY3Lme<&c*k{%e6l{XD1^X z+!VG?Vm{}vW^g~__)BBbg$v%}5x6a}$1aE$X8LFbLANn%-^a`L1s&(90RfTqhGm{Z zW;1f`$kgw0ZxhD!KcT^w-i@ETC!bsc|68o_OiKvF$ZjQ}DEK)Nide;VF2csdZ8BnY zaoNK_OxPujo3>ceqvCR4$_vWM3~bk!Wx08I?{1^~Pj=Fls;jD6_aM26&@uzCcUQz% zlxEIlk3SmbG6SXzN230r6F|g2cu0+~5k+WG`uimV|COAExzG`A^b8M0{aN$SxuuYs z{QAr4#zSKw4q8YcibXcTqs%cA{juNV1{5{H&DIVfkA~5{ak- zn=?9?+iwKWWk9&hH`12T;Gu-`Wf`)E@_(9efgfau<*vZ35UCK|qesI1b;_ zS>YU9Bg>VElIHvlbA$1Gts6&7!(F9oYnAa|;BSB$I}(<*Ek7;TM;hFj{m<$K`hE@K zua%p3x(DbW_2AOa1y-<6`*DA|H}TgU{^!~d=)b?+#Q5tGy&uo-2iZtCi)C-G(VaVy_q*Pe1QqU?V8O;E0e{zTONBff;@*WKMZE=51g23LD(-3 kcsS|5U*P|6%S^8NSa)^xH6JT5Fib~dhrT-Q(v9E$11=H%9{>OV delta 10410 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 f7bdoMhA(tWVzD-0 Date: Tue, 29 Oct 2024 01:00:54 +0000 Subject: [PATCH 03/83] Update mob.dmi --- icons/inventory/accessory/mob.dmi | Bin 169760 -> 170195 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/inventory/accessory/mob.dmi b/icons/inventory/accessory/mob.dmi index 8b67d7d7decfa6b73633f5377250880492c85f5e..9c30c1c501d3e522274be1a0418177053dc61709 100644 GIT binary patch delta 11081 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 xU6WPF{%{{usJd9eTh delta 10643 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 From 555ef7619781c557a79c1fa053f7104172ee49b7 Mon Sep 17 00:00:00 2001 From: Killian Date: Tue, 29 Oct 2024 01:09:42 +0000 Subject: [PATCH 04/83] Update drgnplateu.dmm --- maps/submaps/surface_submaps/wilderness/drgnplateu.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maps/submaps/surface_submaps/wilderness/drgnplateu.dmm b/maps/submaps/surface_submaps/wilderness/drgnplateu.dmm index 2f202bffdac..7043f0230ea 100644 --- a/maps/submaps/surface_submaps/wilderness/drgnplateu.dmm +++ b/maps/submaps/surface_submaps/wilderness/drgnplateu.dmm @@ -41,7 +41,7 @@ /obj/structure/flora/grass/green{ pixel_x = -8 }, -/obj/item/clothing/gloves/ring/material/gold, +/obj/item/clothing/accessory/ring/material/gold, /obj/item/clothing/ears/earring/stud/gold, /obj/item/gun/projectile/deagle/gold{ pixel_x = -11; From f865da7a6f5d216334abbfb3bc56bb17c0a45bd3 Mon Sep 17 00:00:00 2001 From: Killian Date: Tue, 29 Oct 2024 01:35:28 +0000 Subject: [PATCH 05/83] Update rings.dm --- code/modules/clothing/accessories/rings.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/clothing/accessories/rings.dm b/code/modules/clothing/accessories/rings.dm index 855cce0212a..e7eb623f4ce 100644 --- a/code/modules/clothing/accessories/rings.dm +++ b/code/modules/clothing/accessories/rings.dm @@ -45,8 +45,8 @@ flags = OPENCONTAINER origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 4) -/obj/item/clothing/accessory/ring/reagent/New() - ..() +/obj/item/clothing/accessory/ring/reagent/Initialize() + . = ..() create_reagents(15) /obj/item/clothing/accessory/ring/reagent/equipped(var/mob/living/carbon/human/H) @@ -68,8 +68,8 @@ icon_state = "material" origin_tech = list(TECH_MATERIAL = 2, TECH_ILLEGAL = 5) -/obj/item/clothing/accessory/ring/reagent/sleepy/New() - ..() +/obj/item/clothing/accessory/ring/reagent/sleepy/Initialize() + . = ..() reagents.add_reagent("chloralhydrate", 15) // Less than a sleepy-pen, but still enough to knock someone out ///////////////////////////////////////// From 878bab8abb23443b3b2d13f5c617b6c37e1c59a1 Mon Sep 17 00:00:00 2001 From: Killian Date: Fri, 1 Nov 2024 07:06:17 +0000 Subject: [PATCH 06/83] climbing/swimming trait tweak --- .../mob/living/carbon/human/species/species.dm | 3 +++ .../human/species/station/traits_vr/negative.dm | 4 ++-- .../human/species/station/traits_vr/positive.dm | 12 ++++++------ code/modules/multiz/ladders.dm | 7 ++++++- code/modules/multiz/movement.dm | 15 +++++++++++---- 5 files changed, 28 insertions(+), 13 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 72b4396d61a..863e6cd0a99 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -212,6 +212,9 @@ var/can_space_freemove = FALSE // Can we freely move in space? var/can_zero_g_move = FALSE // What about just in zero-g non-space? + var/swim_mult = 1 //multiplier to our z-movement rate for swimming + var/climb_mult = 1 //multiplier to our z-movement rate for lattices/catwalks + var/item_slowdown_mod = 1 // How affected by item slowdown the species is. var/primitive_form // Lesser form, if any (ie. monkey for humans) var/greater_form // Greater form, if any, ie. human for monkeys. diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm index 84fba1d1cba..27dfcf63073 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm @@ -188,7 +188,7 @@ /datum/trait/negative/bad_swimmer name = "Bad Swimmer" - desc = "You can't swim very well, all water slows you down a lot and you drown in deep water." + desc = "You can't swim very well, all water slows you down a lot and you drown in deep water. You also swim up and down 25% slower." cost = -1 custom_only = FALSE - var_changes = list("bad_swimmer" = 1, "water_movement" = 4) + var_changes = list("bad_swimmer" = 1, "water_movement" = 4, "swim_mult" = 1.25) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index 7551915c9dc..7457f9d6872 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -246,7 +246,7 @@ /datum/trait/positive/wall_climber name = "Climber, Amateur" - desc = "You can climb certain walls without tools! This is likely a personal skill you developed." + desc = "You can climb certain walls without tools! This is likely a personal skill you developed. You can also climb lattices and ladders a little bit faster than everyone else." tutorial = "You must approach a wall and right click it and select the \ 'climb wall' verb to climb it. You suffer from a movement delay of 1.5 with this trait.\n \ Your total climb time is expected to be 17.5 seconds. Tools may reduce this. \n\n \ @@ -255,12 +255,12 @@ cost = 1 custom_only = FALSE banned_species = list(SPECIES_TAJ, SPECIES_VASILISSAN) // They got unique climbing delay. - var_changes = list("can_climb" = TRUE) + var_changes = list("can_climb" = TRUE, "climb_mult" = 0.9) excludes = list(/datum/trait/positive/wall_climber_pro, /datum/trait/positive/wall_climber_natural) /datum/trait/positive/wall_climber_natural name = "Climber, Natural" - desc = "You can climb certain walls without tools! This is likely due to the unique anatomy of your species. CUSTOM AND XENOCHIM ONLY" + desc = "You can climb certain walls without tools! This is likely due to the unique anatomy of your species. You can climb lattices and ladders slightly faster than everyone else. CUSTOM AND XENOCHIM ONLY" tutorial = "You must approach a wall and right click it and select the \ 'climb wall' verb to climb it. You suffer from a movement delay of 1.5 with this trait.\n \ Your total climb time is expected to be 17.5 seconds. Tools may reduce this. \n\n \ @@ -268,13 +268,13 @@ a climbable wall. To climbe like so, use the verb 'Climb Down Wall' in IC tab!" cost = 0 custom_only = FALSE - var_changes = list("can_climb" = TRUE) + var_changes = list("can_climb" = TRUE, "climb_mult" = 0.8) allowed_species = list(SPECIES_XENOCHIMERA, SPECIES_CUSTOM) //So that we avoid needless bloat for xenochim excludes = list(/datum/trait/positive/wall_climber_pro, /datum/trait/positive/wall_climber) /datum/trait/positive/wall_climber_pro name = "Climber, Professional" - desc = "You can climb certain walls without tools! You are a professional rock climber at this, letting you climb almost twice as fast!" + desc = "You can climb certain walls without tools! You are a professional rock climber at this, letting you climb almost twice as fast! You can also climb lattices and ladders a fair bit faster than everyone else!" tutorial = "You must approach a wall and right click it and select the \ 'climb wall' verb to climb it. Your movement delay is just 1.25 with this trait.\n \ Your climb time is expected to be 9 seconds. Tools may reduce this. \n\n \ @@ -282,7 +282,7 @@ a climbable wall. To climbe like so, use the verb 'Climb Down Wall' in IC tab!" cost = 2 custom_only = FALSE - var_changes = list("climbing_delay" = 1.25) + var_changes = list("climbing_delay" = 1.25, "climb_mult" = 0.6) varchange_type = TRAIT_VARCHANGE_LESS_BETTER excludes = list(/datum/trait/positive/wall_climber,/datum/trait/positive/wall_climber_natural) diff --git a/code/modules/multiz/ladders.dm b/code/modules/multiz/ladders.dm index db56742c036..7822a87d80f 100644 --- a/code/modules/multiz/ladders.dm +++ b/code/modules/multiz/ladders.dm @@ -107,7 +107,12 @@ target_ladder.audible_message(span_notice("You hear something coming [direction] \the [src]"), runemessage = "clank clank") - if(do_after(M, climb_time, src)) + var/climb_modifier = 1 + if(istype(M, /mob/living/carbon/human)) + var/mob/living/carbon/human/MS = M + climb_modifier = MS.species.climb_mult + + if(do_after(M, (climb_time * climb_modifier), src)) var/turf/T = get_turf(target_ladder) for(var/atom/A in T) if(!A.CanPass(M, M.loc, 1.5, 0)) diff --git a/code/modules/multiz/movement.dm b/code/modules/multiz/movement.dm index 66fe8d90efe..c43a57a17a7 100644 --- a/code/modules/multiz/movement.dm +++ b/code/modules/multiz/movement.dm @@ -19,6 +19,13 @@ var/obj/mecha/mech = loc return mech.relaymove(src,direction) + var/swim_modifier = 1 + var/climb_modifier = 1 + if(istype(src,/mob/living/carbon/human)) + var/mob/living/carbon/human/MS = src + swim_modifier = MS.species.swim_mult + climb_modifier = MS.species.climb_mult + if(!can_ztravel()) to_chat(src, span_warning("You lack means of travel in that direction.")) return @@ -49,7 +56,7 @@ if(direction == DOWN) var/turf/simulated/floor/water/deep/ocean/diving/sink = start if(istype(sink) && !destination.density) - var/pull_up_time = max(3 SECONDS + (src.movement_delay() * 10), 1) + var/pull_up_time = max((3 SECONDS + (src.movement_delay() * 10) * swim_modifier), 1) to_chat(src, span_notice("You start diving underwater...")) src.audible_message(span_notice("[src] begins to dive under the water."), runemessage = "splish splosh") if(do_after(src, pull_up_time)) @@ -75,7 +82,7 @@ var/turf/simulated/floor/water/deep/ocean/diving/surface = destination if(lattice) - var/pull_up_time = max(5 SECONDS + (src.movement_delay() * 10), 1) + var/pull_up_time = max((5 SECONDS + (src.movement_delay() * 10) * climb_modifier), 1) to_chat(src, span_notice("You grab \the [lattice] and start pulling yourself upward...")) src.audible_message(span_notice("[src] begins climbing up \the [lattice]."), runemessage = "clank clang") if(do_after(src, pull_up_time)) @@ -85,7 +92,7 @@ return 0 else if(istype(surface)) - var/pull_up_time = max(5 SECONDS + (src.movement_delay() * 10), 1) + var/pull_up_time = max((5 SECONDS + (src.movement_delay() * 10) * swim_modifier), 1) to_chat(src, span_notice("You start swimming upwards...")) src.audible_message(span_notice("[src] begins to swim towards the surface."), runemessage = "splish splosh") if(do_after(src, pull_up_time)) @@ -95,7 +102,7 @@ return 0 else if(catwalk?.hatch_open) - var/pull_up_time = max(5 SECONDS + (src.movement_delay() * 10), 1) + var/pull_up_time = max((5 SECONDS + (src.movement_delay() * 10) * climb_modifier), 1) to_chat(src, span_notice("You grab the edge of \the [catwalk] and start pulling yourself upward...")) var/old_dest = destination destination = get_step(destination, dir) // mob's dir From 1c730349403b47f4af5bcd1d1f44b3d9bc24ca78 Mon Sep 17 00:00:00 2001 From: Killian Date: Fri, 1 Nov 2024 07:38:52 +0000 Subject: [PATCH 07/83] pro swimmer trait --- .../carbon/human/species/station/traits_vr/negative.dm | 2 ++ .../carbon/human/species/station/traits_vr/positive.dm | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm index 27dfcf63073..ffd9f10b88b 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm @@ -192,3 +192,5 @@ cost = -1 custom_only = FALSE var_changes = list("bad_swimmer" = 1, "water_movement" = 4, "swim_mult" = 1.25) + varchange_type = TRAIT_VARCHANGE_LESS_BETTER + excludes = list(/datum/trait/positive/good_swimmer) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index 7457f9d6872..4dc4a6f47c2 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -292,3 +292,13 @@ /datum/trait/positive/wall_climber_pro/apply(var/datum/species/S,var/mob/living/carbon/human/H) ..() S.can_climb = TRUE + +/datum/trait/positive/good_swimmer + name = "Pro Swimmer" + desc = "You were top of your group in swimming class! This is of questionable usefulness on most planets, but hey, maybe you'll get to visit a nice beach world someday?" + tutorial = "You move faster in water, and can move up and down z-levels faster than other swimmers!" + cost = 1 + custom_only = FALSE + var_changes = list("water_movement" = -0.5, "swim_mult" = 0.5) + varchange_type = TRAIT_VARCHANGE_LESS_BETTER + excludes = list(/datum/trait/negative/bad_swimmer) From 7fd0fba5559e169b523ca2445c00bae34622097c Mon Sep 17 00:00:00 2001 From: Killian Date: Fri, 1 Nov 2024 07:47:51 +0000 Subject: [PATCH 08/83] Update positive.dm --- .../living/carbon/human/species/station/traits_vr/positive.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index 4dc4a6f47c2..c002ee0a886 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -299,6 +299,6 @@ tutorial = "You move faster in water, and can move up and down z-levels faster than other swimmers!" cost = 1 custom_only = FALSE - var_changes = list("water_movement" = -0.5, "swim_mult" = 0.5) + var_changes = list("water_movement" = -2, "swim_mult" = 0.5) varchange_type = TRAIT_VARCHANGE_LESS_BETTER excludes = list(/datum/trait/negative/bad_swimmer) From f214bde20c24a1cb96403463979582d0dbded5a3 Mon Sep 17 00:00:00 2001 From: Killian Date: Fri, 1 Nov 2024 07:52:41 +0000 Subject: [PATCH 09/83] Update station_vr.dm --- .../mob/living/carbon/human/species/station/station_vr.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/carbon/human/species/station/station_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_vr.dm index e623591f576..6532e7c7492 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_vr.dm @@ -110,6 +110,7 @@ water_breather = TRUE water_movement = -4 //Negates shallow. Halves deep. + swim_mult = 0.5 flesh_color = "#AFA59E" base_color = "#777777" From 6507d7d2318859f042b6e09d969246f313bc2617 Mon Sep 17 00:00:00 2001 From: Killian Date: Fri, 1 Nov 2024 07:54:34 +0000 Subject: [PATCH 10/83] Update positive.dm --- .../living/carbon/human/species/station/traits_vr/positive.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index c002ee0a886..b53ef1d7782 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -302,3 +302,4 @@ var_changes = list("water_movement" = -2, "swim_mult" = 0.5) varchange_type = TRAIT_VARCHANGE_LESS_BETTER excludes = list(/datum/trait/negative/bad_swimmer) + banned_species = list(SPECIES_AKULA) // They already swim better than this From a0a2bb27ea8113e8d6ba5ac1d415d3dc0a846e9f Mon Sep 17 00:00:00 2001 From: Killian Date: Mon, 4 Nov 2024 02:34:23 +0000 Subject: [PATCH 11/83] speed tweaks --- .../mob/living/carbon/human/species/station/station.dm | 2 ++ .../carbon/human/species/station/station_special_vr.dm | 2 ++ .../carbon/human/species/station/traits_vr/positive.dm | 9 +++------ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index c2d52b273b9..cce23f93615 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -242,6 +242,8 @@ reagent_tag = IS_TAJARA allergens = ALLERGEN_STIMULANT + climb_mult = 0.75 + move_trail = /obj/effect/decal/cleanable/blood/tracks/paw heat_discomfort_level = 292 diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm index e2a346158a3..997aac129f9 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm @@ -384,6 +384,8 @@ silk_reserve = 500 silk_max_reserve = 1000 + climb_mult = 0.75 + /datum/species/spider/handle_environment_special(var/mob/living/carbon/human/H) if(H.stat == DEAD) // If they're dead they won't need anything. return diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index b53ef1d7782..2647603e8fb 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -241,9 +241,6 @@ cost = 1 var_changes = list("throwforce_absorb_threshold" = 10) - - - /datum/trait/positive/wall_climber name = "Climber, Amateur" desc = "You can climb certain walls without tools! This is likely a personal skill you developed. You can also climb lattices and ladders a little bit faster than everyone else." @@ -255,7 +252,7 @@ cost = 1 custom_only = FALSE banned_species = list(SPECIES_TAJ, SPECIES_VASILISSAN) // They got unique climbing delay. - var_changes = list("can_climb" = TRUE, "climb_mult" = 0.9) + var_changes = list("can_climb" = TRUE, "climb_mult" = 0.75) excludes = list(/datum/trait/positive/wall_climber_pro, /datum/trait/positive/wall_climber_natural) /datum/trait/positive/wall_climber_natural @@ -268,7 +265,7 @@ a climbable wall. To climbe like so, use the verb 'Climb Down Wall' in IC tab!" cost = 0 custom_only = FALSE - var_changes = list("can_climb" = TRUE, "climb_mult" = 0.8) + var_changes = list("can_climb" = TRUE, "climb_mult" = 0.75) allowed_species = list(SPECIES_XENOCHIMERA, SPECIES_CUSTOM) //So that we avoid needless bloat for xenochim excludes = list(/datum/trait/positive/wall_climber_pro, /datum/trait/positive/wall_climber) @@ -282,7 +279,7 @@ a climbable wall. To climbe like so, use the verb 'Climb Down Wall' in IC tab!" cost = 2 custom_only = FALSE - var_changes = list("climbing_delay" = 1.25, "climb_mult" = 0.6) + var_changes = list("climbing_delay" = 1.25, "climb_mult" = 0.5) varchange_type = TRAIT_VARCHANGE_LESS_BETTER excludes = list(/datum/trait/positive/wall_climber,/datum/trait/positive/wall_climber_natural) From 2c11b12814f2546bd6d362a94a46eda786641510 Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Wed, 6 Nov 2024 17:49:11 +0000 Subject: [PATCH 12/83] Headset Refactor and Selection (#16568) * headset refactor and selection * Update headset.dm formatting * Update code/modules/client/preference_setup/general/04_equipment.dm Co-authored-by: Selis <12716288+ItsSelis@users.noreply.github.com> * Update code/_helpers/global_lists.dm Co-authored-by: Selis <12716288+ItsSelis@users.noreply.github.com> * Update code/modules/client/preference_setup/general/04_equipment.dm Co-authored-by: Selis <12716288+ItsSelis@users.noreply.github.com> * Update code/modules/client/preference_setup/general/04_equipment.dm Co-authored-by: Selis <12716288+ItsSelis@users.noreply.github.com> * Update code/modules/client/preference_setup/general/04_equipment.dm Co-authored-by: Selis <12716288+ItsSelis@users.noreply.github.com> * Update code/modules/client/preference_setup/general/04_equipment.dm Co-authored-by: Selis <12716288+ItsSelis@users.noreply.github.com> --------- Co-authored-by: Selis <12716288+ItsSelis@users.noreply.github.com> --- code/_helpers/global_lists.dm | 5 +- code/datums/outfits/jobs/cargo.dm | 15 +- code/datums/outfits/jobs/civilian.dm | 15 +- code/datums/outfits/jobs/command.dm | 16 +- code/datums/outfits/jobs/engineering.dm | 11 +- code/datums/outfits/jobs/job.dm | 5 +- code/datums/outfits/jobs/medical.dm | 11 +- code/datums/outfits/jobs/science.dm | 11 +- code/datums/outfits/jobs/security.dm | 11 +- code/datums/outfits/outfit.dm | 10 +- code/datums/outfits/outfit_vr.dm | 20 +- code/datums/supplypacks/medical.dm | 2 +- code/datums/supplypacks/security.dm | 2 +- code/datums/supplypacks/supply.dm | 4 +- .../objects/items/devices/radio/headset.dm | 687 +++++++++++------- .../objects/items/devices/radio/headset_vr.dm | 131 ---- code/game/objects/random/mapping.dm | 4 +- .../crates_lockers/closets/job_closets.dm | 12 +- .../crates_lockers/closets/misc_vr.dm | 8 +- .../crates_lockers/closets/secure/cargo.dm | 12 +- .../closets/secure/engineering.dm | 9 +- .../closets/secure/hydroponics.dm | 4 +- .../crates_lockers/closets/secure/medical.dm | 10 +- .../closets/secure/scientist.dm | 3 +- .../crates_lockers/closets/secure/security.dm | 18 +- .../closets/secure/security_vr.dm | 15 +- .../crates_lockers/closets/wardrobe.dm | 2 +- .../crates_lockers/closets/wardrobe_vr.dm | 9 +- code/modules/awaymissions/corpse.dm | 2 +- .../preference_setup/general/04_equipment.dm | 14 + code/modules/client/preferences.dm | 1 + code/modules/economy/vending_machines.dm | 2 +- code/modules/economy/vending_machines_vr.dm | 2 +- .../human/ai_controlled/ai_controlled.dm | 2 +- .../mob/living/carbon/human/human_defines.dm | 1 + .../mob/new_player/preferences_setup.dm | 1 + icons/inventory/ears/mob.dmi | Bin 19096 -> 19037 bytes icons/inventory/ears/mob_teshari.dmi | Bin 2642 -> 2750 bytes icons/obj/radio_vr.dmi | Bin 24928 -> 25687 bytes maps/cynosure/cynosure-6.dmm | 8 +- maps/submaps/admin_use_vr/kk_mercship.dmm | 8 +- maps/submaps/depreciated_vr/mercbase.dmm | 8 +- vorestation.dme | 1 - 43 files changed, 645 insertions(+), 467 deletions(-) delete mode 100644 code/game/objects/items/devices/radio/headset_vr.dm diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm index 72bed469c97..80abfae6522 100644 --- a/code/_helpers/global_lists.dm +++ b/code/_helpers/global_lists.dm @@ -52,8 +52,9 @@ GLOBAL_LIST_INIT(custom_species_bases, new) // Species that can be used for a Cu //Underwear var/datum/category_collection/underwear/global_underwear = new() - //Backpacks -var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt", "Messenger Bag", "Sports Bag", "Strapless Satchel") //VOREStation edit + //Customizables +GLOBAL_LIST_INIT(headsetlist, list("Standard","Bowman","Earbud")) +var/global/list/backbaglist = list("Nothing", "Backpack", "Satchel", "Satchel Alt", "Messenger Bag", "Sports Bag", "Strapless Satchel") var/global/list/pdachoicelist = list("Default", "Slim", "Old", "Rugged", "Holographic", "Wrist-Bound","Slider", "Vintage") var/global/list/exclude_jobs = list(/datum/job/ai,/datum/job/cyborg) diff --git a/code/datums/outfits/jobs/cargo.dm b/code/datums/outfits/jobs/cargo.dm index 30955983df4..bed1308f398 100644 --- a/code/datums/outfits/jobs/cargo.dm +++ b/code/datums/outfits/jobs/cargo.dm @@ -1,17 +1,23 @@ /decl/hierarchy/outfit/job/cargo - l_ear = /obj/item/radio/headset/headset_cargo hierarchy_type = /decl/hierarchy/outfit/job/cargo + headset = /obj/item/radio/headset/cargo + headset_alt = /obj/item/radio/headset/alt/cargo + headset_earbud = /obj/item/radio/headset/earbud/cargo + /decl/hierarchy/outfit/job/cargo/qm name = OUTFIT_JOB_NAME("Cargo") uniform = /obj/item/clothing/under/rank/cargo - l_ear = /obj/item/radio/headset/headset_qm //VOREStation Add shoes = /obj/item/clothing/shoes/brown glasses = /obj/item/clothing/glasses/sunglasses l_hand = /obj/item/clipboard id_type = /obj/item/card/id/cargo/head pda_type = /obj/item/pda/quartermaster + headset = /obj/item/radio/headset/qm + headset_alt = /obj/item/radio/headset/alt/qm + headset_earbud = /obj/item/radio/headset/earbud/qm + /decl/hierarchy/outfit/job/cargo/cargo_tech name = OUTFIT_JOB_NAME("Cargo technician") uniform = /obj/item/clothing/under/rank/cargotech @@ -21,10 +27,13 @@ /decl/hierarchy/outfit/job/cargo/mining name = OUTFIT_JOB_NAME("Shaft miner") uniform = /obj/item/clothing/under/rank/miner - l_ear = /obj/item/radio/headset/headset_mine backpack = /obj/item/storage/backpack/industrial satchel_one = /obj/item/storage/backpack/satchel/eng id_type = /obj/item/card/id/cargo/miner pda_type = /obj/item/pda/shaftminer backpack_contents = list(/obj/item/tool/crowbar = 1, /obj/item/storage/bag/ore = 1) flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL + + headset = /obj/item/radio/headset/miner + headset_alt = /obj/item/radio/headset/miner + headset_earbud = /obj/item/radio/headset/miner diff --git a/code/datums/outfits/jobs/civilian.dm b/code/datums/outfits/jobs/civilian.dm index a62600a6eef..829e6f9c649 100644 --- a/code/datums/outfits/jobs/civilian.dm +++ b/code/datums/outfits/jobs/civilian.dm @@ -19,9 +19,12 @@ uniform = /obj/item/clothing/under/color/white /decl/hierarchy/outfit/job/service - l_ear = /obj/item/radio/headset/headset_service hierarchy_type = /decl/hierarchy/outfit/job/service + headset = /obj/item/radio/headset/service + headset_alt = /obj/item/radio/headset/alt/service + headset_earbud = /obj/item/radio/headset/earbud/service + /decl/hierarchy/outfit/job/service/bartender name = OUTFIT_JOB_NAME(JOB_BARTENDER) uniform = /obj/item/clothing/under/rank/bartender @@ -91,7 +94,6 @@ /decl/hierarchy/outfit/job/internal_affairs_agent name = OUTFIT_JOB_NAME("Internal affairs agent") - l_ear = /obj/item/radio/headset/ia uniform = /obj/item/clothing/under/rank/internalaffairs suit = /obj/item/clothing/suit/storage/toggle/internalaffairs shoes = /obj/item/clothing/shoes/brown @@ -100,6 +102,10 @@ id_type = /obj/item/card/id/civilian/internal_affairs pda_type = /obj/item/pda/lawyer + headset = /obj/item/radio/headset/ia + headset_alt = /obj/item/radio/headset/alt/ia + headset_earbud = /obj/item/radio/headset/earbud/ia + /decl/hierarchy/outfit/job/chaplain name = OUTFIT_JOB_NAME(JOB_CHAPLAIN) uniform = /obj/item/clothing/under/rank/chaplain @@ -114,10 +120,13 @@ mask = /obj/item/clothing/mask/gas/explorer suit = /obj/item/clothing/suit/storage/hooded/explorer gloves = /obj/item/clothing/gloves/black - l_ear = /obj/item/radio/headset id_slot = slot_wear_id id_type = /obj/item/card/id/exploration //VOREStation Edit pda_slot = slot_belt pda_type = /obj/item/pda/cargo // Brown looks more rugged r_pocket = /obj/item/gps/explorer id_pda_assignment = JOB_EXPLORER + + headset = /obj/item/radio/headset + headset_alt = /obj/item/radio/headset/alt + headset_earbud = /obj/item/radio/headset/earbud diff --git a/code/datums/outfits/jobs/command.dm b/code/datums/outfits/jobs/command.dm index 149020e4fed..e5a869d9ddf 100644 --- a/code/datums/outfits/jobs/command.dm +++ b/code/datums/outfits/jobs/command.dm @@ -2,7 +2,7 @@ name = OUTFIT_JOB_NAME(JOB_ALT_CAPTAIN) // Keep Captain for now, not JOB_SITE_MANAGER glasses = /obj/item/clothing/glasses/sunglasses uniform = /obj/item/clothing/under/rank/captain - l_ear = /obj/item/radio/headset/heads/captain + shoes = /obj/item/clothing/shoes/brown backpack = /obj/item/storage/backpack/captain satchel_one = /obj/item/storage/backpack/satchel/cap @@ -10,6 +10,10 @@ id_type = /obj/item/card/id/gold pda_type = /obj/item/pda/captain + headset = /obj/item/radio/headset/heads/captain + headset_alt = /obj/item/radio/headset/alt/heads/captain + headset_earbud = /obj/item/radio/headset/earbud/heads/captain + /decl/hierarchy/outfit/job/captain/post_equip(var/mob/living/carbon/human/H) ..() if(H.age>49) @@ -26,19 +30,25 @@ /decl/hierarchy/outfit/job/hop name = OUTFIT_JOB_NAME(JOB_HEAD_OF_PERSONNEL) uniform = /obj/item/clothing/under/rank/head_of_personnel - l_ear = /obj/item/radio/headset/heads/hop shoes = /obj/item/clothing/shoes/brown id_type = /obj/item/card/id/silver/hop pda_type = /obj/item/pda/heads/hop + headset = /obj/item/radio/headset/heads/hop + headset_alt = /obj/item/radio/headset/alt/heads/hop + headset_earbud = /obj/item/radio/headset/earbud/heads/hop + /decl/hierarchy/outfit/job/secretary name = OUTFIT_JOB_NAME(JOB_COMMAND_SECRETARY) - l_ear = /obj/item/radio/headset/headset_com shoes = /obj/item/clothing/shoes/brown id_type = /obj/item/card/id/silver/secretary pda_type = /obj/item/pda/heads r_hand = /obj/item/clipboard + headset = /obj/item/radio/headset/headset_com + headset_alt = /obj/item/radio/headset/alt/headset_com + headset_earbud = /obj/item/radio/headset/earbud/headset_com + /decl/hierarchy/outfit/job/secretary/pre_equip(mob/living/carbon/human/H) ..() if(H.gender == FEMALE) diff --git a/code/datums/outfits/jobs/engineering.dm b/code/datums/outfits/jobs/engineering.dm index 16de1539c3d..11c4a4cd3ce 100644 --- a/code/datums/outfits/jobs/engineering.dm +++ b/code/datums/outfits/jobs/engineering.dm @@ -1,7 +1,6 @@ /decl/hierarchy/outfit/job/engineering hierarchy_type = /decl/hierarchy/outfit/job/engineering belt = /obj/item/storage/belt/utility/full/multitool - l_ear = /obj/item/radio/headset/headset_eng shoes = /obj/item/clothing/shoes/boots/workboots r_pocket = /obj/item/t_scanner backpack = /obj/item/storage/backpack/industrial @@ -10,15 +9,23 @@ pda_slot = slot_l_store flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL + headset = /obj/item/radio/headset/headset_eng + headset_alt = /obj/item/radio/headset/alt/headset_eng + headset_earbud = /obj/item/radio/headset/earbud/headset_eng + /decl/hierarchy/outfit/job/engineering/chief_engineer name = OUTFIT_JOB_NAME(JOB_CHIEF_ENGINEER) head = /obj/item/clothing/head/hardhat/white uniform = /obj/item/clothing/under/rank/chief_engineer - l_ear = /obj/item/radio/headset/heads/ce + gloves = /obj/item/clothing/gloves/black id_type = /obj/item/card/id/engineering/head pda_type = /obj/item/pda/heads/ce + headset = /obj/item/radio/headset/heads/ce + headset_alt = /obj/item/radio/headset/alt/heads/ce + headset_earbud = /obj/item/radio/headset/earbud/heads/ce + /decl/hierarchy/outfit/job/engineering/engineer name = OUTFIT_JOB_NAME(JOB_ENGINEER) head = /obj/item/clothing/head/hardhat diff --git a/code/datums/outfits/jobs/job.dm b/code/datums/outfits/jobs/job.dm index adfa938bf33..fdb7af5dbed 100644 --- a/code/datums/outfits/jobs/job.dm +++ b/code/datums/outfits/jobs/job.dm @@ -3,7 +3,6 @@ hierarchy_type = /decl/hierarchy/outfit/job uniform = /obj/item/clothing/under/color/grey - l_ear = /obj/item/radio/headset shoes = /obj/item/clothing/shoes/black id_slot = slot_wear_id @@ -13,6 +12,10 @@ flags = OUTFIT_HAS_BACKPACK + headset = /obj/item/radio/headset + headset_alt = /obj/item/radio/headset/alt + headset_earbud = /obj/item/radio/headset/earbud + /decl/hierarchy/outfit/job/equip_id(mob/living/carbon/human/H, rank, assignment) var/obj/item/card/id/C = ..() var/datum/job/J = job_master.GetJob(rank) diff --git a/code/datums/outfits/jobs/medical.dm b/code/datums/outfits/jobs/medical.dm index a78636ea630..6a4d120d37d 100644 --- a/code/datums/outfits/jobs/medical.dm +++ b/code/datums/outfits/jobs/medical.dm @@ -1,16 +1,19 @@ /decl/hierarchy/outfit/job/medical hierarchy_type = /decl/hierarchy/outfit/job/medical - l_ear = /obj/item/radio/headset/headset_med shoes = /obj/item/clothing/shoes/white pda_type = /obj/item/pda/medical pda_slot = slot_l_store + backpack = /obj/item/storage/backpack/medic satchel_one = /obj/item/storage/backpack/satchel/med messenger_bag = /obj/item/storage/backpack/messenger/med + headset = /obj/item/radio/headset/headset_med + headset_alt = /obj/item/radio/headset/alt/headset_med + headset_earbud = /obj/item/radio/headset/earbud/headset_med + /decl/hierarchy/outfit/job/medical/cmo name = OUTFIT_JOB_NAME(JOB_CHIEF_MEDICAL_OFFICER) - l_ear =/obj/item/radio/headset/heads/cmo uniform = /obj/item/clothing/under/rank/chief_medical_officer suit = /obj/item/clothing/suit/storage/toggle/labcoat/cmo shoes = /obj/item/clothing/shoes/brown @@ -19,6 +22,10 @@ id_type = /obj/item/card/id/medical/head pda_type = /obj/item/pda/heads/cmo + headset = /obj/item/radio/headset/heads/cmo + headset_alt = /obj/item/radio/headset/alt/heads/cmo + headset_earbud = /obj/item/radio/headset/earbud/heads/cmo + /decl/hierarchy/outfit/job/medical/doctor name = OUTFIT_JOB_NAME(JOB_MEDICAL_DOCTOR) uniform = /obj/item/clothing/under/rank/medical diff --git a/code/datums/outfits/jobs/science.dm b/code/datums/outfits/jobs/science.dm index a9fe8a44370..eeeb84951d0 100644 --- a/code/datums/outfits/jobs/science.dm +++ b/code/datums/outfits/jobs/science.dm @@ -1,23 +1,30 @@ /decl/hierarchy/outfit/job/science hierarchy_type = /decl/hierarchy/outfit/job/science - l_ear = /obj/item/radio/headset/headset_sci suit = /obj/item/clothing/suit/storage/toggle/labcoat shoes = /obj/item/clothing/shoes/white pda_type = /obj/item/pda/science + backpack = /obj/item/storage/backpack/toxins satchel_one = /obj/item/storage/backpack/satchel/tox messenger_bag = /obj/item/storage/backpack/messenger/tox sports_bag = /obj/item/storage/backpack/sport/tox + headset = /obj/item/radio/headset/headset_sci + headset_alt = /obj/item/radio/headset/alt/headset_sci + headset_earbud = /obj/item/radio/headset/earbud/headset_sci + /decl/hierarchy/outfit/job/science/rd name = OUTFIT_JOB_NAME("Research Director") - l_ear = /obj/item/radio/headset/heads/rd uniform = /obj/item/clothing/under/rank/research_director shoes = /obj/item/clothing/shoes/brown l_hand = /obj/item/clipboard id_type = /obj/item/card/id/science/head pda_type = /obj/item/pda/heads/rd + headset = /obj/item/radio/headset/heads/rd + headset_alt = /obj/item/radio/headset/alt/heads/rd + headset_earbud = /obj/item/radio/headset/earbud/heads/rd + /decl/hierarchy/outfit/job/science/scientist name = OUTFIT_JOB_NAME(JOB_SCIENTIST) uniform = /obj/item/clothing/under/rank/scientist diff --git a/code/datums/outfits/jobs/security.dm b/code/datums/outfits/jobs/security.dm index e73b45e06bf..595601bbcdd 100644 --- a/code/datums/outfits/jobs/security.dm +++ b/code/datums/outfits/jobs/security.dm @@ -1,22 +1,29 @@ /decl/hierarchy/outfit/job/security hierarchy_type = /decl/hierarchy/outfit/job/security glasses = /obj/item/clothing/glasses/sunglasses/sechud - l_ear = /obj/item/radio/headset/headset_sec gloves = /obj/item/clothing/gloves/black shoes = /obj/item/clothing/shoes/boots/jackboots + backpack = /obj/item/storage/backpack/security satchel_one = /obj/item/storage/backpack/satchel/sec backpack_contents = list(/obj/item/handcuffs = 1) messenger_bag = /obj/item/storage/backpack/messenger/sec sports_bag = /obj/item/storage/backpack/sport/sec + headset = /obj/item/radio/headset/headset_sec + headset_alt = /obj/item/radio/headset/alt/headset_sec + headset_earbud = /obj/item/radio/headset/earbud/headset_sec + /decl/hierarchy/outfit/job/security/hos name = OUTFIT_JOB_NAME(JOB_HEAD_OF_SECURITY) - l_ear = /obj/item/radio/headset/heads/hos uniform = /obj/item/clothing/under/rank/head_of_security id_type = /obj/item/card/id/security/head pda_type = /obj/item/pda/heads/hos + headset = /obj/item/radio/headset/heads/hos + headset_alt = /obj/item/radio/headset/alt/heads/hos + headset_earbud = /obj/item/radio/headset/earbud/heads/hos + /decl/hierarchy/outfit/job/security/warden name = OUTFIT_JOB_NAME(JOB_WARDEN) uniform = /obj/item/clothing/under/rank/warden diff --git a/code/datums/outfits/outfit.dm b/code/datums/outfits/outfit.dm index ed8e81f9928..43fe69f0f22 100644 --- a/code/datums/outfits/outfit.dm +++ b/code/datums/outfits/outfit.dm @@ -52,6 +52,10 @@ var/list/outfits_decls_by_type_ var/id_pda_assignment + var/headset = /obj/item/radio/headset + var/headset_alt = /obj/item/radio/headset/alt + var/headset_earbud = /obj/item/radio/headset/earbud + var/backpack = /obj/item/storage/backpack var/satchel_one = /obj/item/storage/backpack/satchel/norm var/satchel_two = /obj/item/storage/backpack/satchel @@ -72,7 +76,11 @@ var/list/outfits_decls_by_type_ dd_insertObjectList(outfits_decls_, src) /decl/hierarchy/outfit/proc/pre_equip(mob/living/carbon/human/H) - if(flags & OUTFIT_HAS_BACKPACK) + switch(H.headset) + if(1) l_ear = headset + if(2) l_ear = headset_alt + if(3) l_ear = headset_earbud + if(flags && OUTFIT_HAS_BACKPACK) switch(H.backbag) if(2) back = backpack if(3) back = satchel_one diff --git a/code/datums/outfits/outfit_vr.dm b/code/datums/outfits/outfit_vr.dm index 97281f1a560..537f13d834f 100644 --- a/code/datums/outfits/outfit_vr.dm +++ b/code/datums/outfits/outfit_vr.dm @@ -112,7 +112,6 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go name = OUTFIT_JOB_NAME(JOB_EXPLORER) shoes = /obj/item/clothing/shoes/boots/winter/explorer uniform = /obj/item/clothing/under/explorer - l_ear = /obj/item/radio/headset/explorer id_slot = slot_wear_id pda_slot = slot_l_store pda_type = /obj/item/pda/explorer @@ -123,6 +122,10 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go messenger_bag = /obj/item/storage/backpack/messenger/explorer flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL + headset = /obj/item/radio/headset/explorer + headset_alt = /obj/item/radio/headset/alt/explorer + headset_earbud = /obj/item/radio/headset/explorer + /decl/hierarchy/outfit/job/pilot name = OUTFIT_JOB_NAME(JOB_PILOT) shoes = /obj/item/clothing/shoes/black @@ -130,7 +133,6 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go suit = /obj/item/clothing/suit/storage/toggle/bomber/pilot gloves = /obj/item/clothing/gloves/fingerless glasses = /obj/item/clothing/glasses/fakesunglasses/aviator - l_ear = /obj/item/radio/headset/pilot/alt uniform_accessories = list(/obj/item/clothing/accessory/storage/webbing/pilot1 = 1) id_slot = slot_wear_id pda_slot = slot_belt @@ -139,12 +141,15 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go id_pda_assignment = JOB_PILOT flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL + headset = /obj/item/radio/headset/pilot + headset_alt = /obj/item/radio/headset/alt/pilot + headset_earbud = /obj/item/radio/headset/alt/pilot + /decl/hierarchy/outfit/job/medical/sar name = OUTFIT_JOB_NAME(JOB_FIELD_MEDIC) uniform = /obj/item/clothing/under/utility/blue //suit = /obj/item/clothing/suit/storage/hooded/wintercoat/medical/sar shoes = /obj/item/clothing/shoes/boots/winter/explorer - l_ear = /obj/item/radio/headset/sar l_hand = /obj/item/storage/firstaid/regular belt = /obj/item/storage/belt/medical/emt pda_slot = slot_l_store @@ -156,11 +161,14 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go messenger_bag = /obj/item/storage/backpack/messenger/explorer flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL + headset = /obj/item/radio/headset/sar + headset_alt = /obj/item/radio/headset/alt/sar + headset_earbud = /obj/item/radio/headset/sar + /decl/hierarchy/outfit/job/pathfinder name = OUTFIT_JOB_NAME(JOB_PATHFINDER) shoes = /obj/item/clothing/shoes/boots/winter/explorer uniform = /obj/item/clothing/under/explorer //TODO: Uniforms. - l_ear = /obj/item/radio/headset/pathfinder id_slot = slot_wear_id pda_slot = slot_l_store pda_type = /obj/item/pda/pathfinder @@ -168,6 +176,10 @@ Keep outfits simple. Spawn with basic uniforms and minimal gear. Gear instead go id_pda_assignment = JOB_PATHFINDER flags = OUTFIT_HAS_BACKPACK|OUTFIT_EXTENDED_SURVIVAL|OUTFIT_COMPREHENSIVE_SURVIVAL + headset = /obj/item/radio/headset/pathfinder + headset_alt = /obj/item/radio/headset/alt/pathfinder + headset_earbud = /obj/item/radio/headset/pathfinder + /decl/hierarchy/outfit/job/assistant/explorer id_type = /obj/item/card/id/exploration flags = OUTFIT_HAS_BACKPACK|OUTFIT_COMPREHENSIVE_SURVIVAL diff --git a/code/datums/supplypacks/medical.dm b/code/datums/supplypacks/medical.dm index 0c099b32318..2e498c92f10 100644 --- a/code/datums/supplypacks/medical.dm +++ b/code/datums/supplypacks/medical.dm @@ -112,7 +112,7 @@ contains = list( /obj/item/storage/belt/medical = 3, /obj/item/clothing/glasses/hud/health = 3, - /obj/item/radio/headset/headset_med/alt = 3, + /obj/item/radio/headset/alt/headset_med = 3, /obj/item/clothing/suit/storage/hooded/wintercoat/medical = 3 ) cost = 10 diff --git a/code/datums/supplypacks/security.dm b/code/datums/supplypacks/security.dm index 1404b06e420..1f2cf06f89e 100644 --- a/code/datums/supplypacks/security.dm +++ b/code/datums/supplypacks/security.dm @@ -444,7 +444,7 @@ contains = list( /obj/item/storage/belt/security = 3, /obj/item/clothing/glasses/sunglasses/sechud = 3, - /obj/item/radio/headset/headset_sec/alt = 3, + /obj/item/radio/headset/alt/headset_sec = 3, /obj/item/clothing/suit/storage/hooded/wintercoat/security = 3, /obj/item/clothing/glasses/sunglasses/sechud/tactical_sec_vis = 3 ) diff --git a/code/datums/supplypacks/supply.dm b/code/datums/supplypacks/supply.dm index 0629a55d8ed..68a6b420c0b 100644 --- a/code/datums/supplypacks/supply.dm +++ b/code/datums/supplypacks/supply.dm @@ -118,7 +118,7 @@ /obj/item/storage/backpack/industrial, /obj/item/storage/backpack/satchel/eng, /obj/item/clothing/suit/storage/hooded/wintercoat/miner, - /obj/item/radio/headset/headset_cargo, + /obj/item/radio/headset/miner, /obj/item/clothing/under/rank/miner, /obj/item/clothing/gloves/black, /obj/item/clothing/shoes/black, @@ -187,7 +187,7 @@ contains = list ( /obj/item/storage/backpack/parachute, /obj/item/radio/headset/pilot, - /obj/item/radio/headset/pilot/alt, + /obj/item/radio/headset/alt/pilot, /obj/item/clothing/mask/gas/half, /obj/item/flashlight/glowstick, /obj/item/stack/marker_beacon/thirty, diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index f6af18a4aa6..24728cee218 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -8,7 +8,8 @@ subspace_transmission = 1 canhear_range = 0 // can't hear headsets from very far away slot_flags = SLOT_EARS - sprite_sheets = list(SPECIES_TESHARI = 'icons/inventory/ears/mob_teshari.dmi') + sprite_sheets = list(SPECIES_TESHARI = 'icons/inventory/ears/mob_teshari.dmi', + SPECIES_WEREBEAST = 'icons/inventory/ears/mob_vr_werebeast.dmi') var/translate_binary = 0 var/translate_hive = 0 @@ -83,254 +84,6 @@ /obj/item/radio/headset/tgui_state(mob/user) return GLOB.tgui_inventory_state -/obj/item/radio/headset/syndicate - origin_tech = list(TECH_ILLEGAL = 3) - syndie = 1 - ks1type = /obj/item/encryptionkey/syndicate - -/obj/item/radio/headset/syndicate/alt - icon_state = "syndie_headset" - item_state = "headset" - origin_tech = list(TECH_ILLEGAL = 3) - syndie = 1 - ks1type = /obj/item/encryptionkey/syndicate - -/obj/item/radio/headset/raider - origin_tech = list(TECH_ILLEGAL = 2) - syndie = 1 - ks1type = /obj/item/encryptionkey/raider - -/obj/item/radio/headset/raider/Initialize() - . = ..() - set_frequency(RAID_FREQ) - -/obj/item/radio/headset/binary - origin_tech = list(TECH_ILLEGAL = 3) - ks1type = /obj/item/encryptionkey/binary - -/obj/item/radio/headset/headset_sec - name = "security radio headset" - desc = "This is used by your elite security force." - icon_state = "sec_headset" - ks2type = /obj/item/encryptionkey/headset_sec - -/obj/item/radio/headset/headset_sec/alt - name = "security bowman headset" - desc = "This is used by your elite security force." - icon_state = "sec_headset_alt" - ks2type = /obj/item/encryptionkey/headset_sec - -/obj/item/radio/headset/headset_eng - name = "engineering radio headset" - desc = "When the engineers wish to chat like girls." - icon_state = "eng_headset" - ks2type = /obj/item/encryptionkey/headset_eng - -/obj/item/radio/headset/headset_eng/alt - name = "engineering bowman headset" - desc = "When the engineers wish to chat like girls." - icon_state = "eng_headset_alt" - ks2type = /obj/item/encryptionkey/headset_eng - -/obj/item/radio/headset/headset_rob - name = "robotics radio headset" - desc = "Made specifically for the roboticists who cannot decide between departments." - icon_state = "rob_headset" - ks2type = /obj/item/encryptionkey/headset_rob - -/obj/item/radio/headset/headset_med - name = "medical radio headset" - desc = "A headset for the trained staff of the medbay." - icon_state = "med_headset" - ks2type = /obj/item/encryptionkey/headset_med - -/obj/item/radio/headset/headset_med/alt - name = "medical bowman headset" - desc = "A headset for the trained staff of the medbay." - icon_state = "med_headset_alt" - ks2type = /obj/item/encryptionkey/headset_med - -/obj/item/radio/headset/headset_sci - name = "science radio headset" - desc = "A sciency headset. Like usual." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/headset_sci - -/obj/item/radio/headset/headset_medsci - name = "medical research radio headset" - desc = "A headset that is a result of the mating between medical and science." - icon_state = "med_headset" - ks2type = /obj/item/encryptionkey/headset_medsci - -/obj/item/radio/headset/headset_com - name = "command radio headset" - desc = "A headset with a commanding channel." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/headset_com - -/obj/item/radio/headset/headset_com/alt - name = "command bowman headset" - desc = "A headset with a commanding channel." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/headset_com - - -/obj/item/radio/headset/heads/captain - name = "site manager's headset" - desc = "The headset of the boss." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/captain - -/obj/item/radio/headset/heads/captain/alt - name = "site manager's bowman headset" - desc = "The headset of the boss." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/captain - -/obj/item/radio/headset/heads/captain/sfr - name = "SFR headset" - desc = "A headset belonging to a Sif Free Radio DJ. SFR, best tunes in the wilderness." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/captain - -/obj/item/radio/headset/heads/ai_integrated //No need to care about icons, it should be hidden inside the AI anyway. - name = "\improper AI subspace transceiver" - desc = "Integrated AI radio transceiver." - icon = 'icons/obj/robot_component.dmi' - icon_state = "radio" - item_state = "headset" - ks2type = /obj/item/encryptionkey/heads/ai_integrated - var/myAi = null // Atlantis: Reference back to the AI which has this radio. - var/disabledAi = 0 // Atlantis: Used to manually disable AI's integrated radio via intellicard menu. - -/obj/item/radio/headset/heads/ai_integrated/receive_range(freq, level) - if (disabledAi) - return -1 //Transciever Disabled. - return ..(freq, level, 1) - -/obj/item/radio/headset/heads/rd - name = "research director's headset" - desc = "Headset of the eccentric-in-chief." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/rd - -/obj/item/radio/headset/heads/rd/alt - name = "research director's bowman headset" - desc = "Headset of the eccentric-in-chief." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/rd - -/obj/item/radio/headset/heads/hos - name = "head of security's headset" - desc = "The headset of the hardass who protects your worthless lives." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/hos - -/obj/item/radio/headset/heads/hos/alt - name = "head of security's bowman headset" - desc = "The headset of the hardass who protects your worthless lives." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/hos - -/obj/item/radio/headset/heads/ce - name = "chief engineer's headset" - desc = "The headset of the clown who is in charge of the circus." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/ce - -/obj/item/radio/headset/heads/ce/alt - name = "chief engineer's bowman headset" - desc = "The headset of the clown who is in charge of the circus." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/ce - -/obj/item/radio/headset/heads/cmo - name = "chief medical officer's headset" - desc = "The headset of the highly trained medical chief." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/cmo - -/obj/item/radio/headset/heads/cmo/alt - name = "chief medical officer's bowman headset" - desc = "The headset of the highly trained medical chief." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/cmo - -/obj/item/radio/headset/heads/hop - name = "head of personnel's headset" - desc = "The headset of the poor fool who will one day be " + JOB_SITE_MANAGER + "." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/hop - -/obj/item/radio/headset/heads/hop/alt - name = "head of personnel's bowman headset" - desc = "The headset of the poor fool who will one day be " + JOB_SITE_MANAGER + "." - icon_state = "com_headset_alt" - ks2type = /obj/item/encryptionkey/heads/hop - -/obj/item/radio/headset/headset_mine - name = "mining radio headset" - desc = "Headset used by miners. Has inbuilt short-band radio for when comms are down." - icon_state = "mine_headset" - adhoc_fallback = TRUE - ks2type = /obj/item/encryptionkey/headset_cargo - -/obj/item/radio/headset/headset_cargo - name = "supply radio headset" - desc = "A headset used by the QM and their cronies." - icon_state = "cargo_headset" - ks2type = /obj/item/encryptionkey/headset_cargo - -/obj/item/radio/headset/headset_cargo/alt - name = "supply bowman headset" - desc = "A bowman headset used by the QM and their cronies." - icon_state = "cargo_headset_alt" - ks2type = /obj/item/encryptionkey/headset_cargo - -/obj/item/radio/headset/headset_service - name = "service radio headset" - desc = "Headset used by the service staff, tasked with keeping the station full, happy and clean." - icon_state = "srv_headset" - ks2type = /obj/item/encryptionkey/headset_service - -/obj/item/radio/headset/ert - name = "emergency response team radio headset" - desc = "The headset of the boss's boss." - icon_state = "com_headset" - centComm = 1 -// freerange = 1 - ks2type = /obj/item/encryptionkey/ert - -/obj/item/radio/headset/ert/alt - name = "emergency response team bowman headset" - desc = "The headset of the boss's boss." - icon_state = "com_headset_alt" -// freerange = 1 - ks2type = /obj/item/encryptionkey/ert - -/obj/item/radio/headset/omni //Only for the admin intercoms - ks2type = /obj/item/encryptionkey/omni - -/obj/item/radio/headset/ia - name = "internal affair's headset" - desc = "The headset of your worst enemy." - icon_state = "com_headset" - ks2type = /obj/item/encryptionkey/heads/hos - -/obj/item/radio/headset/mmi_radio - name = "brain-integrated radio" - desc = "MMIs and synthetic brains are often equipped with these." - icon = 'icons/obj/robot_component.dmi' - icon_state = "radio" - item_state = "headset" - var/mmiowner = null - var/radio_enabled = 1 - -/obj/item/radio/headset/mmi_radio/receive_range(freq, level) - if (!radio_enabled || istype(src.loc.loc, /mob/living/silicon) || istype(src.loc.loc, /obj/item/organ/internal)) - return -1 //Transciever Disabled. - return ..(freq, level, 1) - /obj/item/radio/headset/attackby(obj/item/W as obj, mob/user as mob) // ..() user.set_machine(src) @@ -361,15 +114,15 @@ keyslot2 = null recalculateChannels() - to_chat(user, "You pop out the encryption keys in the headset!") + to_chat(user, span_notice("You pop out the encryption keys in the headset!")) playsound(src, W.usesound, 50, 1) else - to_chat(user, "This headset doesn't have any encryption keys! How useless...") + to_chat(user, span_notice("This headset doesn't have any encryption keys! How useless...")) if(istype(W, /obj/item/encryptionkey/)) if(keyslot1 && keyslot2) - to_chat(user, "The headset can't hold another key!") + to_chat(user, span_notice("The headset can't hold another key!")) return if(!keyslot1) @@ -387,7 +140,6 @@ return - /obj/item/radio/headset/recalculateChannels(var/setDescription = 0) src.channels = list() src.translate_binary = 0 @@ -451,3 +203,432 @@ radio_text += ", " radio_desc = radio_text + +/obj/item/radio/headset/mob_headset/receive_range(freq, level) + if(ismob(src.loc)) + return ..(freq, level, 1) + return -1 + +/obj/item/radio/headset/mob_headset/afterattack(var/atom/movable/target, mob/living/user, proximity) + if(!proximity) + return + if(istype(target,/mob/living/simple_mob)) + var/mob/living/simple_mob/M = target + if(!M.mob_radio) + user.drop_item() + forceMove(M) + M.mob_radio = src + return + if(M.mob_radio) + M.mob_radio.forceMove(M.loc) + M.mob_radio = null + return + ..() + +/obj/item/radio/headset/alt + name = "bowman radio headset" + desc = "A larger, sturdier radio headset. A bit bulky, but guaranteed to stay on no matter what." + icon_state = "headset_alt" + +/obj/item/radio/headset/earbud + name = "radio earbud" + desc = "A discreet radio earbud and low-profile mic. Simple and unobtrusive." + icon_state = "headset_earbud" + +/obj/item/radio/headset/headset_sec + name = "security radio headset" + icon_state = "sec_headset" + ks2type = /obj/item/encryptionkey/headset_sec + +/obj/item/radio/headset/alt/headset_sec + name = "security bowman headset" + icon_state = "sec_headset_alt" + ks2type = /obj/item/encryptionkey/headset_sec + +/obj/item/radio/headset/earbud/headset_sec + name = "security earbud" + icon_state = "sec_earbud" + ks2type = /obj/item/encryptionkey/headset_sec + +/obj/item/radio/headset/headset_eng + name = "engineering radio headset" + icon_state = "eng_headset" + ks2type = /obj/item/encryptionkey/headset_eng + +/obj/item/radio/headset/alt/headset_eng + name = "engineering bowman headset" + icon_state = "eng_headset_alt" + ks2type = /obj/item/encryptionkey/headset_eng + +/obj/item/radio/headset/earbud/headset_eng + name = "engineering earbud" + icon_state = "eng_earbud" + ks2type = /obj/item/encryptionkey/headset_eng + +/obj/item/radio/headset/headset_med + name = "medical radio headset" + icon_state = "med_headset" + ks2type = /obj/item/encryptionkey/headset_med + +/obj/item/radio/headset/alt/headset_med + name = "medical bowman headset" + icon_state = "med_headset_alt" + ks2type = /obj/item/encryptionkey/headset_med + +/obj/item/radio/headset/earbud/headset_med + name = "medical earbud" + icon_state = "med_earbud" + ks2type = /obj/item/encryptionkey/headset_med + +/obj/item/radio/headset/headset_sci + name = "science radio headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/headset_sci + +/obj/item/radio/headset/alt/headset_sci + name = "science bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/headset_sci + +/obj/item/radio/headset/earbud/headset_sci + name = "science earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/headset_sci + +/obj/item/radio/headset/headset_com + name = "command radio headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/headset_com + +/obj/item/radio/headset/alt/headset_com + name = "command bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/headset_com + +/obj/item/radio/headset/earbud/headset_com + name = "command earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/headset_com + +/obj/item/radio/headset/heads/captain + name = "site manager's headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/captain + +/obj/item/radio/headset/heads/captain/sfr + name = "SFR headset" + desc = "A headset belonging to a Sif Free Radio DJ. SFR, best tunes in the wilderness." + icon_state = "com_headset_alt" + +/obj/item/radio/headset/alt/heads/captain + name = "site manager's bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/captain + +/obj/item/radio/headset/earbud/heads/captain + name = "site manager's earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/captain + +/obj/item/radio/headset/heads/rd + name = "research director's headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/rd + +/obj/item/radio/headset/alt/heads/rd + name = "research director's bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/rd + +/obj/item/radio/headset/earbud/heads/rd + name = "research director's earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/rd + +/obj/item/radio/headset/heads/hos + name = "head of security's headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/hos + +/obj/item/radio/headset/alt/heads/hos + name = "head of security's bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/hos + +/obj/item/radio/headset/earbud/heads/hos + name = "head of security's earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/hos + +/obj/item/radio/headset/heads/ce + name = "chief engineer's headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/ce + +/obj/item/radio/headset/alt/heads/ce + name = "chief engineer's bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/ce + +/obj/item/radio/headset/earbud/heads/ce + name = "chief engineer's earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/ce + +/obj/item/radio/headset/heads/cmo + name = "chief medical officer's headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/cmo + +/obj/item/radio/headset/alt/heads/cmo + name = "chief medical officer's bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/cmo + +/obj/item/radio/headset/earbud/heads/cmo + name = "chief medical officer's earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/cmo + +/obj/item/radio/headset/heads/hop + name = "head of personnel's headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/hop + +/obj/item/radio/headset/alt/heads/hop + name = "head of personnel's bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/hop + +/obj/item/radio/headset/earbud/heads/hop + name = "head of personnel's earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/hop + +/obj/item/radio/headset/miner + name = "mining radio headset" + desc = "Headset used by miners. Has inbuilt short-band radio for when comms are down." + icon_state = "mine_headset" + adhoc_fallback = TRUE + ks2type = /obj/item/encryptionkey/headset_cargo + +/obj/item/radio/headset/cargo + name = "supply radio headset" + icon_state = "cargo_headset" + ks2type = /obj/item/encryptionkey/headset_cargo + +/obj/item/radio/headset/alt/cargo + name = "supply bowman headset" + icon_state = "cargo_headset_alt" + ks2type = /obj/item/encryptionkey/headset_cargo + +/obj/item/radio/headset/earbud/cargo + name = "supply earbud" + icon_state = "cargo_earbud" + ks2type = /obj/item/encryptionkey/headset_cargo + +/obj/item/radio/headset/qm + name = "qm radio headset" + icon_state = "cargo_headset" + ks2type = /obj/item/encryptionkey/qm + +/obj/item/radio/headset/alt/qm + name = "qm bowman headset" + icon_state = "cargo_headset_alt" + ks2type = /obj/item/encryptionkey/qm + +/obj/item/radio/headset/earbud/qm + name = "qm earbud" + icon_state = "cargo_earbud" + ks2type = /obj/item/encryptionkey/qm + +/obj/item/radio/headset/service + name = "service radio headset" + icon_state = "srv_headset" + ks2type = /obj/item/encryptionkey/headset_service + +/obj/item/radio/headset/alt/service + name = "service bowman headset" + icon_state = "srv_headset_alt" + ks2type = /obj/item/encryptionkey/headset_service + +/obj/item/radio/headset/earbud/service + name = "service earbud" + icon_state = "srv_earbud" + ks2type = /obj/item/encryptionkey/headset_service + +/obj/item/radio/headset/ert + name = "emergency response team radio headset" + icon_state = "com_headset" + centComm = 1 + ks2type = /obj/item/encryptionkey/ert + +/obj/item/radio/headset/alt/ert + name = "emergency response team bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/ert + +/obj/item/radio/headset/ia + name = "internal affairs headset" + icon_state = "com_headset" + ks2type = /obj/item/encryptionkey/heads/hos + +/obj/item/radio/headset/alt/ia + name = "internal affairs bowman headset" + icon_state = "com_headset_alt" + ks2type = /obj/item/encryptionkey/heads/hos + +/obj/item/radio/headset/earbud/ia + name = "internal affairs earbud" + icon_state = "com_earbud" + ks2type = /obj/item/encryptionkey/heads/hos + +/obj/item/radio/headset/centcom + name = "centcom radio headset" + icon_state = "cent_headset" + item_state = "headset" + centComm = 1 + ks2type = /obj/item/encryptionkey/ert + +/obj/item/radio/headset/alt/centcom + name = "centcom bowman headset" + icon_state = "com_headset_alt" + +/obj/item/radio/headset/nanotrasen + name = "\improper NT radio headset" + icon_state = "nt_headset" + centComm = 1 + ks2type = /obj/item/encryptionkey/ert + +/obj/item/radio/headset/alt/nanotrasen + name = "\improper NT bowman headset" + icon_state = "nt_headset_alt" + +/obj/item/radio/headset/pathfinder + name = "pathfinder's headset" + icon_state = "exp_headset" + adhoc_fallback = TRUE + ks2type = /obj/item/encryptionkey/pathfinder + +/obj/item/radio/headset/alt/pathfinder + name = "pathfinder's bowman headset" + icon_state = "exp_headset_alt" + +/obj/item/radio/headset/pilot + name = "pilot's headset" + icon_state = "pilot_headset" + adhoc_fallback = TRUE + +/obj/item/radio/headset/alt/pilot + name = "pilot's bowman headset" + icon_state = "pilot_headset_alt" + +/obj/item/radio/headset/explorer + name = "away team member's headset" + icon_state = "exp_headset" + adhoc_fallback = TRUE + ks2type = /obj/item/encryptionkey/explorer + +/obj/item/radio/headset/alt/explorer + name = "away team's bowman headset" + icon_state = "exp_headset_alt" + +/obj/item/radio/headset/sar + name = "search and rescue headset" + icon_state = "sar_headset" + adhoc_fallback = TRUE + ks2type = /obj/item/encryptionkey/sar + +/obj/item/radio/headset/alt/sar + name = "search and rescue bowman headset" + icon_state = "sar_headset_alt" + adhoc_fallback = TRUE + ks2type = /obj/item/encryptionkey/sar + +/obj/item/radio/headset/talon + name = "talon headset" + adhoc_fallback = TRUE + icon_state = "pilot_headset" + ks2type = /obj/item/encryptionkey/talon + +/obj/item/radio/headset/alt/talon + name = "talon bowman headset" + adhoc_fallback = TRUE + icon_state = "pilot_headset" + ks2type = /obj/item/encryptionkey/talon + +/obj/item/radio/headset/earbud/talon + name = "talon earbud" + adhoc_fallback = TRUE + icon_state = "pilot_headset" + ks2type = /obj/item/encryptionkey/talon + +/obj/item/radio/headset/headset_rob + name = "robotics radio headset" + icon_state = "rob_headset" + ks2type = /obj/item/encryptionkey/headset_rob + +// Special Antag/Admin/Event/Other headsets + +/obj/item/radio/headset/syndicate + origin_tech = list(TECH_ILLEGAL = 3) + syndie = 1 + ks1type = /obj/item/encryptionkey/syndicate + +/obj/item/radio/headset/alt/syndicate + origin_tech = list(TECH_ILLEGAL = 3) + syndie = 1 + ks1type = /obj/item/encryptionkey/syndicate + +/obj/item/radio/headset/earbud/syndicate + origin_tech = list(TECH_ILLEGAL = 3) + syndie = 1 + ks1type = /obj/item/encryptionkey/syndicate + +/obj/item/radio/headset/raider + origin_tech = list(TECH_ILLEGAL = 2) + syndie = 1 + ks1type = /obj/item/encryptionkey/raider + +/obj/item/radio/headset/raider/Initialize() + . = ..() + set_frequency(RAID_FREQ) + +/obj/item/radio/headset/binary + origin_tech = list(TECH_ILLEGAL = 3) + ks1type = /obj/item/encryptionkey/binary + +/obj/item/radio/headset/omni //Only for the admin intercoms + ks2type = /obj/item/encryptionkey/omni + +/obj/item/radio/headset/mmi_radio + name = "brain-integrated radio" + icon = 'icons/obj/robot_component.dmi' + icon_state = "radio" + item_state = "headset" + var/mmiowner = null + var/radio_enabled = 1 + +/obj/item/radio/headset/mmi_radio/receive_range(freq, level) + if (!radio_enabled || istype(src.loc.loc, /mob/living/silicon) || istype(src.loc.loc, /obj/item/organ/internal)) + return -1 //Transciever Disabled. + return ..(freq, level, 1) + +/obj/item/radio/headset/mob_headset //Adminbus headset for simplemob shenanigans. + name = "nonhuman radio receiver" + desc = "An updated, self-adhesive modular intercom that requires no hands to operate or ears to hold, just stick it on. Takes encryption keys" + +/obj/item/radio/headset/heads/ai_integrated //No need to care about icons, it should be hidden inside the AI anyway. + name = "\improper AI subspace transceiver" + desc = "Integrated AI radio transceiver." + icon = 'icons/obj/robot_component.dmi' + icon_state = "radio" + item_state = "headset" + ks2type = /obj/item/encryptionkey/heads/ai_integrated + var/myAi = null // Atlantis: Reference back to the AI which has this radio. + var/disabledAi = 0 // Atlantis: Used to manually disable AI's integrated radio via intellicard menu. + +/obj/item/radio/headset/heads/ai_integrated/receive_range(freq, level) + if (disabledAi) + return -1 //Transciever Disabled. + return ..(freq, level, 1) \ No newline at end of file diff --git a/code/game/objects/items/devices/radio/headset_vr.dm b/code/game/objects/items/devices/radio/headset_vr.dm deleted file mode 100644 index bad15ccd483..00000000000 --- a/code/game/objects/items/devices/radio/headset_vr.dm +++ /dev/null @@ -1,131 +0,0 @@ -/obj/item/radio/headset/centcom - name = "centcom radio headset" - desc = "The headset of the boss's boss." - icon_state = "cent_headset" - item_state = "headset" - centComm = 1 - ks2type = /obj/item/encryptionkey/ert - -/obj/item/radio/headset/centcom/alt - name = "centcom bowman headset" - icon_state = "com_headset_alt" - -/obj/item/radio/headset/nanotrasen - name = "\improper NT radio headset" - desc = "The headset of a Nanotrasen corporate employee." - icon_state = "nt_headset" - centComm = 1 - ks2type = /obj/item/encryptionkey/ert - -/obj/item/radio/headset/nanotrasen/alt - name = "\improper NT bowman headset" - icon_state = "nt_headset_alt" - -/obj/item/radio/headset - sprite_sheets = list(SPECIES_TESHARI = 'icons/inventory/ears/mob_teshari.dmi', - SPECIES_WEREBEAST = 'icons/inventory/ears/mob_vr_werebeast.dmi') - -/obj/item/radio/headset/mob_headset //Adminbus headset for simplemob shenanigans. - name = "nonhuman radio receiver" - desc = "An updated, self-adhesive modular intercom that requires no hands to operate or ears to hold, just stick it on. Takes encryption keys" - -/obj/item/radio/headset/mob_headset/receive_range(freq, level) - if(ismob(src.loc)) - return ..(freq, level, 1) - return -1 - -/obj/item/radio/headset/mob_headset/afterattack(var/atom/movable/target, mob/living/user, proximity) - if(!proximity) - return - if(istype(target,/mob/living/simple_mob)) - var/mob/living/simple_mob/M = target - if(!M.mob_radio) - user.drop_item() - forceMove(M) - M.mob_radio = src - return - if(M.mob_radio) - M.mob_radio.forceMove(M.loc) - M.mob_radio = null - return - ..() - -/obj/item/radio/headset/headset_cargo - desc = "A headset used by the QM's slaves." - -/obj/item/radio/headset/headset_cargo/alt - desc = "A bowman headset used by the QM's slaves." - -/obj/item/radio/headset/headset_qm - name = "qm radio headset" - desc = "A headset used by the QM." - icon_state = "cargo_headset" - ks2type = /obj/item/encryptionkey/qm - -/obj/item/radio/headset/headset_qm/alt - name = "qm bowman headset" - desc = "A bowman headset used by the QM." - icon_state = "cargo_headset_alt" - -/obj/item/radio/headset/pathfinder - name = "pathfinder's headset" - desc = "Headset used by pathfinders for exploring. Access to the explorer and command channels." - icon_state = "exp_headset" - adhoc_fallback = TRUE - ks2type = /obj/item/encryptionkey/pathfinder - -/obj/item/radio/headset/pathfinder/alt - name = "pathfinder's bowman headset" - desc = "Bowman headset used by pathfinders for exploring. Access to the explorer and command channels." - icon_state = "exp_headset_alt" - -/obj/item/radio/headset/pilot - name = "pilot's headset" - desc = "A headset used by pilots." - icon_state = "pilot_headset" - adhoc_fallback = TRUE - -/obj/item/radio/headset/pilot/alt - name = "pilot's bowman headset" - desc = "A bowman headset used by pilots." - icon_state = "pilot_headset_alt" - -/obj/item/radio/headset/explorer - name = "away team member's headset" - desc = "Headset used by the away team for exploring. Access to the away team channel." - icon_state = "exp_headset" - adhoc_fallback = TRUE - ks2type = /obj/item/encryptionkey/explorer - -/obj/item/radio/headset/explorer/alt - name = "away team's bowman headset" - desc = "Bowman headset used by the away team for exploring. Access to the away team channel." - icon_state = "exp_headset_alt" - -/obj/item/radio/headset/sar - name = "fm radio headset" - desc = "A headset for field medics." - icon_state = "sar_headset" - adhoc_fallback = TRUE - ks2type = /obj/item/encryptionkey/sar - -/obj/item/radio/headset/sar/alt - name = "fm radio bowman headset" - desc = "A bowman headset for field medics." - icon_state = "sar_headset_alt" - -/* //They're all volunteers now. -/obj/item/radio/headset/volunteer - name = "volunteer's headset" - desc = "A headset used by volunteers to expedition teams, has access to the Away Team channel." - icon_state = "pilot_headset" - adhoc_fallback = TRUE - ks2type = /obj/item/encryptionkey/explorer -*/ - -/obj/item/radio/headset/talon - name = "talon headset" - desc = "A headset for communication between the crew of the ITV Talon." - adhoc_fallback = TRUE - icon_state = "pilot_headset" - ks2type = /obj/item/encryptionkey/talon diff --git a/code/game/objects/random/mapping.dm b/code/game/objects/random/mapping.dm index 3496fe8bb01..aa2a1bb880d 100644 --- a/code/game/objects/random/mapping.dm +++ b/code/game/objects/random/mapping.dm @@ -223,8 +223,8 @@ /obj/random/sfr/item_to_spawn() return pick(prob(25);/obj/item/radio/headset/heads/captain/sfr, - prob(25);/obj/item/radio/headset/headset_cargo/alt, - prob(25);/obj/item/radio/headset/headset_com/alt, + prob(25);/obj/item/radio/headset/alt/cargo, + prob(25);/obj/item/radio/headset/alt/headset_com, prob(25);/obj/item/radio/headset) // Mining Goodies diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index aa09e9fc5b6..cb8732ecbae 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -23,7 +23,9 @@ starts_with = list( /obj/item/clothing/head/that = 2, - /obj/item/radio/headset/headset_service = 2, + /obj/item/radio/headset/service = 2, + /obj/item/radio/headset/alt/service = 2, + /obj/item/radio/headset/earbud/service = 2, /obj/item/clothing/head/pin/flower, /obj/item/clothing/head/pin/flower/pink, /obj/item/clothing/head/pin/flower/yellow, @@ -51,7 +53,9 @@ starts_with = list( /obj/item/clothing/under/sundress, /obj/item/clothing/under/waiter = 2, - /obj/item/radio/headset/headset_service = 2, + /obj/item/radio/headset/service = 2, + /obj/item/radio/headset/alt/service = 2, + /obj/item/radio/headset/earbud/service = 2, /obj/item/storage/box/mousetraps = 2, /obj/item/clothing/under/rank/chef, /obj/item/clothing/head/chefhat, @@ -69,7 +73,9 @@ starts_with = list( /obj/item/clothing/under/rank/janitor, /obj/item/clothing/under/dress/maid/janitor, - /obj/item/radio/headset/headset_service, + /obj/item/radio/headset/service, + /obj/item/radio/headset/alt/service, + /obj/item/radio/headset/earbud/service, /obj/item/cartridge/janitor, /obj/item/clothing/suit/storage/hooded/wintercoat/janitor, /obj/item/clothing/gloves/black, diff --git a/code/game/objects/structures/crates_lockers/closets/misc_vr.dm b/code/game/objects/structures/crates_lockers/closets/misc_vr.dm index d8ccfd6025f..1aba1626ec6 100644 --- a/code/game/objects/structures/crates_lockers/closets/misc_vr.dm +++ b/code/game/objects/structures/crates_lockers/closets/misc_vr.dm @@ -63,7 +63,7 @@ /obj/item/clothing/shoes/boots/winter/explorer, /obj/item/clothing/gloves/black, /obj/item/radio/headset/explorer, - /obj/item/radio/headset/explorer/alt, + /obj/item/radio/headset/alt/explorer, /obj/item/cartridge/explorer, /obj/item/flashlight, /obj/item/gps/explorer, @@ -104,7 +104,7 @@ /obj/item/clothing/shoes/boots/winter/explorer, /obj/item/clothing/gloves/black, /obj/item/radio/headset/pathfinder, - /obj/item/radio/headset/pathfinder/alt, + /obj/item/radio/headset/alt/pathfinder, /obj/item/cartridge/explorer, /obj/item/flashlight, /obj/item/gps/explorer, @@ -153,7 +153,7 @@ /obj/item/clothing/suit/storage/hooded/wintercoat/medical/sar, /obj/item/clothing/shoes/boots/winter/explorer, /obj/item/radio/headset/sar, - /obj/item/radio/headset/sar/alt, + /obj/item/radio/headset/alt/sar, /obj/item/cartridge/sar, /obj/item/flashlight, /obj/item/tank/emergency/oxygen/engi, @@ -201,7 +201,7 @@ /obj/item/clothing/shoes/black, /obj/item/clothing/gloves/fingerless, /obj/item/radio/headset/pilot, - /obj/item/radio/headset/pilot/alt, + /obj/item/radio/headset/alt/pilot, /obj/item/flashlight, /obj/item/reagent_containers/food/snacks/liquidfood, /obj/item/reagent_containers/food/snacks/liquidprotein, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm index 34810bfe424..9ede8e655ca 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cargo.dm @@ -11,8 +11,9 @@ /obj/item/clothing/suit/storage/hooded/wintercoat/cargo, /obj/item/clothing/shoes/boots/winter/supply, /obj/item/clothing/shoes/black, - /obj/item/radio/headset/headset_cargo, - /obj/item/radio/headset/headset_cargo/alt, + /obj/item/radio/headset/cargo, + /obj/item/radio/headset/alt/cargo, + /obj/item/radio/headset/earbud/cargo, /obj/item/clothing/gloves/black, /obj/item/clothing/gloves/fingerless, /obj/item/clothing/head/soft) @@ -37,8 +38,9 @@ /obj/item/clothing/under/rank/cargo/jeans, /obj/item/clothing/under/rank/cargo/jeans/female, /obj/item/clothing/shoes/brown, - /obj/item/radio/headset/headset_qm, //VOREStation Edit, - /obj/item/radio/headset/headset_qm/alt, //VOREStation Edit, + /obj/item/radio/headset/qm, + /obj/item/radio/headset/alt/qm, + /obj/item/radio/headset/earbud/qm, /obj/item/clothing/under/rank/neo_qm, /obj/item/clothing/under/rank/neo_qm_skirt, /obj/item/clothing/under/rank/neo_qm_jacket, @@ -73,7 +75,7 @@ closet_appearance = /decl/closet_appearance/secure_closet/mining starts_with = list( - /obj/item/radio/headset/headset_mine, + /obj/item/radio/headset/miner, /obj/item/clothing/under/rank/miner, /obj/item/clothing/gloves/black, /obj/item/clothing/shoes/black, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 7186779efe9..78018e247ee 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -20,7 +20,8 @@ /obj/item/clothing/shoes/brown, /obj/item/cartridge/ce, /obj/item/radio/headset/heads/ce, - /obj/item/radio/headset/heads/ce/alt, + /obj/item/radio/headset/alt/heads/ce, + /obj/item/radio/headset/earbud/heads/ce, /obj/item/storage/toolbox/mechanical, /obj/item/clothing/suit/storage/hazardvest, ///obj/item/clothing/mask/gas, //VOREStation Removal: Locker bloat, grr. The fancy one below functions as a mask & helmet combined. @@ -92,7 +93,8 @@ /obj/item/clothing/accessory/storage/brown_vest, /obj/item/storage/toolbox/mechanical, /obj/item/radio/headset/headset_eng, - /obj/item/radio/headset/headset_eng/alt, + /obj/item/radio/headset/alt/headset_eng, + /obj/item/radio/headset/earbud/headset_eng, /obj/item/clothing/suit/storage/hazardvest, /obj/item/clothing/mask/gas, /obj/item/clothing/glasses/meson, @@ -129,7 +131,8 @@ /obj/item/extinguisher/atmo, ///obj/item/clamp, //VOREStation Removal: without leaks those are pointless, /obj/item/radio/headset/headset_eng, - /obj/item/radio/headset/headset_eng/alt, + /obj/item/radio/headset/alt/headset_eng, + /obj/item/radio/headset/earbud/headset_eng, /obj/item/clothing/suit/storage/hazardvest/atmos, //VOREStation edit. Eng locker gets regular haz-vest, atmos gets the themed one of their own /obj/item/clothing/mask/gas, /obj/item/cartridge/atmos, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm index e5fc9ce56e5..5e4389f0ef7 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm @@ -8,7 +8,9 @@ /obj/item/clothing/under/rank/hydroponics, /obj/item/clothing/gloves/botanic_leather, /obj/item/analyzer/plant_analyzer, - /obj/item/radio/headset/headset_service, + /obj/item/radio/headset/service, + /obj/item/radio/headset/alt/service, + /obj/item/radio/headset/earbud/service, /obj/item/clothing/head/greenbandana, /obj/item/shovel/spade, /obj/item/material/minihoe, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index a747bf9e3e2..231b17b6108 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -39,7 +39,8 @@ /obj/item/clothing/shoes/white, /obj/item/cartridge/medical, /obj/item/radio/headset/headset_med, - /obj/item/radio/headset/headset_med/alt, + /obj/item/radio/headset/alt/headset_med, + /obj/item/radio/headset/earbud/headset_med, /obj/item/clothing/suit/storage/hooded/wintercoat/medical, /obj/item/clothing/suit/storage/hooded/wintercoat/medical/alt, /obj/item/clothing/shoes/boots/winter/medical, @@ -108,7 +109,9 @@ /obj/item/clothing/suit/storage/toggle/labcoat/emt, /obj/item/clothing/suit/storage/hooded/wintercoat/medical/para, /obj/item/clothing/shoes/boots/winter/medical, - /obj/item/radio/headset/headset_med/alt, + /obj/item/radio/headset/headset_med, + /obj/item/radio/headset/alt/headset_med, + /obj/item/radio/headset/earbud/headset_med, /obj/item/cartridge/medical, /obj/item/storage/briefcase/inflatable, /obj/item/flashlight, @@ -143,7 +146,8 @@ /obj/item/clothing/under/rank/neo_cmo_turtle_skirt, /obj/item/clothing/under/rank/neo_cmo_gorka, /obj/item/radio/headset/heads/cmo, - /obj/item/radio/headset/heads/cmo/alt, + /obj/item/radio/headset/alt/heads/cmo, + /obj/item/radio/headset/earbud/heads/cmo, /obj/item/flash, /obj/item/reagent_containers/hypospray/vial, /obj/item/clothing/suit/storage/hooded/wintercoat/medical, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index 5b5d4c42f2a..f33d9ba9aee 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -45,7 +45,8 @@ /obj/item/clothing/shoes/laceup/brown, /obj/item/clothing/gloves/sterile/latex, /obj/item/radio/headset/heads/rd, - /obj/item/radio/headset/heads/rd/alt, + /obj/item/radio/headset/alt/heads/rd, + /obj/item/radio/headset/earbud/heads/rd, /obj/item/tank/air, /obj/item/clothing/mask/gas, /obj/item/flash, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 80d3bb90eb5..90661f4dd40 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -10,7 +10,8 @@ /obj/item/cartridge/captain, /obj/item/storage/lockbox/medal, /obj/item/radio/headset/heads/captain, - /obj/item/radio/headset/heads/captain/alt, + /obj/item/radio/headset/alt/heads/captain, + /obj/item/radio/headset/earbud/heads/captain, /obj/item/gun/energy/gun, /obj/item/melee/telebaton, /obj/item/flash, @@ -27,7 +28,8 @@ /obj/item/clothing/head/helmet, /obj/item/cartridge/hop, /obj/item/radio/headset/heads/hop, - /obj/item/radio/headset/heads/hop/alt, + /obj/item/radio/headset/alt/heads/hop, + /obj/item/radio/headset/earbud/heads/hop, /obj/item/storage/box/ids = 2, /obj/item/gun/energy/gun/compact, /obj/item/storage/box/commandkeys, @@ -90,7 +92,8 @@ /obj/item/clothing/head/helmet/dermal, /obj/item/cartridge/hos, /obj/item/radio/headset/heads/hos, - /obj/item/radio/headset/heads/hos/alt, + /obj/item/radio/headset/alt/heads/hos, + /obj/item/radio/headset/earbud/heads/hos, /obj/item/clothing/glasses/sunglasses/sechud, /obj/item/taperoll/police, /obj/item/shield/riot, @@ -151,7 +154,8 @@ /obj/item/clothing/under/rank/neo_sec_gorka, /obj/item/cartridge/security, /obj/item/radio/headset/headset_sec, - /obj/item/radio/headset/headset_sec/alt, + /obj/item/radio/headset/alt/headset_sec, + /obj/item/radio/headset/earbud/headset_sec, /obj/item/clothing/glasses/sunglasses/sechud, /obj/item/taperoll/police, /obj/item/clothing/accessory/badge/holo/warden, @@ -189,7 +193,8 @@ /obj/item/clothing/head/helmet, /obj/item/cartridge/security, /obj/item/radio/headset/headset_sec, - /obj/item/radio/headset/headset_sec/alt, + /obj/item/radio/headset/alt/headset_sec, + /obj/item/radio/headset/earbud/headset_sec, /obj/item/storage/belt/security, /obj/item/flash, /obj/item/reagent_containers/spray/pepper, @@ -257,7 +262,8 @@ /obj/item/storage/belt/detective, /obj/item/storage/box/evidence, /obj/item/radio/headset/headset_sec, - /obj/item/radio/headset/headset_sec/alt, + /obj/item/radio/headset/alt/headset_sec, + /obj/item/radio/headset/earbud/headset_sec, /obj/item/clothing/suit/storage/vest/detective, /obj/item/taperoll/police, /obj/item/clothing/accessory/holster/armpit, diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm b/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm index 7761b7f03f2..e627ad4a49c 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security_vr.dm @@ -31,7 +31,8 @@ /obj/item/clothing/head/helmet/HoS/hat/blue, /obj/item/clothing/head/helmet/dermal, /obj/item/radio/headset/heads/hos, - /obj/item/radio/headset/heads/hos/alt, + /obj/item/radio/headset/alt/heads/hos, + /obj/item/radio/headset/earbud/heads/hos, /obj/item/clothing/glasses/sunglasses/sechud, /obj/item/storage/belt/security, /obj/item/clothing/accessory/holster/waist, @@ -76,7 +77,8 @@ /obj/item/clothing/head/helmet, /obj/item/cartridge/security, /obj/item/radio/headset/headset_sec, - /obj/item/radio/headset/headset_sec/alt, + /obj/item/radio/headset/alt/headset_sec, + /obj/item/radio/headset/earbud/headset_sec, /obj/item/storage/belt/security, /obj/item/flash, /obj/item/reagent_containers/spray/pepper, @@ -122,7 +124,8 @@ /obj/item/clothing/head/helmet/dermal, /obj/item/cartridge/hos, /obj/item/radio/headset/heads/hos, - /obj/item/radio/headset/heads/hos/alt, + /obj/item/radio/headset/alt/heads/hos, + /obj/item/radio/headset/earbud/heads/hos, /obj/item/clothing/glasses/sunglasses/sechud, /obj/item/taperoll/police, /obj/item/shield/riot, @@ -169,7 +172,8 @@ /obj/item/clothing/head/helmet/warden, /obj/item/cartridge/security, /obj/item/radio/headset/headset_sec, - /obj/item/radio/headset/headset_sec/alt, + /obj/item/radio/headset/alt/headset_sec, + /obj/item/radio/headset/earbud/headset_sec, /obj/item/clothing/glasses/sunglasses/sechud, /obj/item/taperoll/police, /obj/item/clothing/accessory/badge/holo/warden, @@ -204,7 +208,8 @@ /obj/item/cartridge/captain, /obj/item/storage/lockbox/medal, /obj/item/radio/headset/heads/captain, - /obj/item/radio/headset/heads/captain/alt, + /obj/item/radio/headset/alt/heads/captain, + /obj/item/radio/headset/earbud/heads/captain, /obj/item/gunbox/captain, /obj/item/melee/telebaton, /obj/item/flash, diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index b920ecd8b79..f010c116e94 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -410,7 +410,7 @@ /obj/item/clothing/under/rank/centcom, /obj/item/clothing/under/ert, /obj/item/clothing/under/syndicate/combat, - /obj/item/radio/headset/ert/alt, + /obj/item/radio/headset/alt/ert, /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/shoes/boots/swat, /obj/item/clothing/gloves/swat, diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe_vr.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe_vr.dm index 67deb1eec87..7f9956a8553 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe_vr.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe_vr.dm @@ -3,13 +3,14 @@ closet_appearance = /decl/closet_appearance/tactical/alt //because ert lockers are red for some dumb reason starts_with = list( /obj/item/clothing/under/ert, - /obj/item/radio/headset/ert/alt, + /obj/item/radio/headset/ert, + /obj/item/radio/headset/alt/ert, /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/shoes/boots/swat, /obj/item/clothing/gloves/swat, /obj/item/clothing/mask/balaclava/tactical, /obj/item/clothing/mask/balaclava) - + //would you believe mercs have no official locker? well, now they do. basically just a rebranded ERT locker but hey, it's an option. -Killian /obj/structure/closet/wardrobe/merc name = "mercenary equipment" @@ -18,7 +19,9 @@ starts_with = list( /obj/item/clothing/under/tactical, /obj/item/clothing/under/syndicate/combat, - /obj/item/radio/headset/syndicate/alt, + /obj/item/radio/headset/syndicate, + /obj/item/radio/headset/alt/syndicate, + /obj/item/radio/headset/earbud/syndicate, /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/shoes/boots/combat, /obj/item/clothing/gloves/combat, diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index c61f8cd792d..95a17a4f71a 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -237,7 +237,7 @@ random_species = TRUE /obj/effect/landmark/corpse/miner - corpseradio = /obj/item/radio/headset/headset_cargo + corpseradio = /obj/item/radio/headset/miner corpseuniform = /obj/item/clothing/under/rank/miner corpsegloves = /obj/item/clothing/gloves/black corpseback = /obj/item/storage/backpack/industrial diff --git a/code/modules/client/preference_setup/general/04_equipment.dm b/code/modules/client/preference_setup/general/04_equipment.dm index 14c56354f93..b76ff9ee387 100644 --- a/code/modules/client/preference_setup/general/04_equipment.dm +++ b/code/modules/client/preference_setup/general/04_equipment.dm @@ -11,6 +11,7 @@ pref.all_underwear_metadata = check_list_copy(save_data["all_underwear_metadata"]) for(var/i in pref.all_underwear_metadata) pref.all_underwear_metadata[i] = path2text_list(pref.all_underwear_metadata[i]) + pref.headset = save_data["headset"] pref.backbag = save_data["backbag"] pref.pdachoice = save_data["pdachoice"] pref.communicator_visibility = save_data["communicator_visibility"] @@ -23,6 +24,7 @@ for(var/i in pref.all_underwear_metadata) underwear[i] = check_list_copy(pref.all_underwear_metadata[i]) save_data["all_underwear_metadata"] = underwear + save_data["headset"] = pref.headset save_data["backbag"] = pref.backbag save_data["pdachoice"] = pref.pdachoice save_data["communicator_visibility"] = pref.communicator_visibility @@ -72,6 +74,10 @@ var/global/list/valid_ringtones = list( pref.all_underwear -= underwear_category_name // TODO - Looks like this is duplicating the work of sanitize_character() if so, remove + if(pref.headset > GLOB.headsetlist.len || pref.headset < 1) + pref.headset = 1 //Same as above + character.headset = pref.headset + if(pref.backbag > backbaglist.len || pref.backbag < 1) pref.backbag = 2 //Same as above character.backbag = pref.backbag @@ -107,6 +113,7 @@ var/global/list/valid_ringtones = list( for(var/underwear_metadata in pref.all_underwear_metadata) if(!(underwear_metadata in pref.all_underwear)) pref.all_underwear_metadata -= underwear_metadata + pref.headset = sanitize_integer(pref.headset, 1, GLOB.headsetlist.len, initial(pref.headset)) pref.backbag = sanitize_integer(pref.backbag, 1, backbaglist.len, initial(pref.backbag)) pref.pdachoice = sanitize_integer(pref.pdachoice, 1, pdachoicelist.len, initial(pref.pdachoice)) pref.ringtone = sanitize(pref.ringtone, 20) @@ -123,6 +130,7 @@ var/global/list/valid_ringtones = list( . += " [gt.get_contents(get_metadata(UWC.name, gt))]" . += "
" + . += "Headset Type: [GLOB.headsetlist[pref.headset]]
" . += "Backpack Type: [backbaglist[pref.backbag]]
" . += "PDA Type: [pdachoicelist[pref.pdachoice]]
" . += "Communicator Visibility: [(pref.communicator_visibility) ? "Yes" : "No"]
" @@ -149,6 +157,12 @@ var/global/list/valid_ringtones = list( /datum/category_item/player_setup_item/general/equipment/OnTopic(var/href,var/list/href_list, var/mob/user) + if(href_list["change_headset"]) + var/new_headset = tgui_input_list(user, "Choose your character's style of headset:", "Character Preference", GLOB.headsetlist, GLOB.headsetlist[pref.headset]) + if(!isnull(new_headset) && CanUseTopic(user)) + pref.headset = GLOB.headsetlist.Find(new_headset) + return TOPIC_REFRESH_UPDATE_PREVIEW + if(href_list["change_backpack"]) var/new_backbag = tgui_input_list(user, "Choose your character's style of bag:", "Character Preference", backbaglist, backbaglist[pref.backbag]) if(!isnull(new_backbag) && CanUseTopic(user)) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index a6fbe938813..31899796a2f 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -47,6 +47,7 @@ var/list/preferences_datums = list() var/spawnpoint = "Arrivals Shuttle" //where this character will spawn (0-2). var/b_type = "A+" //blood type (not-chooseable) var/blood_reagents = "default" //blood restoration reagents + var/headset = 1 //headset type var/backbag = 2 //backpack type var/pdachoice = 1 //PDA type var/shoe_hater = FALSE //RS ADD - if true, will spawn with no shoes diff --git a/code/modules/economy/vending_machines.dm b/code/modules/economy/vending_machines.dm index 7942381c9d1..052cab2a26d 100644 --- a/code/modules/economy/vending_machines.dm +++ b/code/modules/economy/vending_machines.dm @@ -1615,7 +1615,7 @@ /obj/item/clothing/head/soft/purple = 5, /obj/item/clothing/head/beret/purple = 5, /obj/item/clothing/head/headband/maid = 5, - /obj/item/radio/headset/headset_service = 5, + /obj/item/radio/headset/service = 5, /obj/item/clothing/under/rank/janitor = 5, /obj/item/clothing/under/dress/maid/janitor = 5, /obj/item/clothing/suit/storage/hooded/wintercoat/janitor = 5, diff --git a/code/modules/economy/vending_machines_vr.dm b/code/modules/economy/vending_machines_vr.dm index 41e3645f003..fa8331cc348 100644 --- a/code/modules/economy/vending_machines_vr.dm +++ b/code/modules/economy/vending_machines_vr.dm @@ -343,7 +343,7 @@ /obj/item/storage/box/syndie_kit/chameleon = 1, /obj/item/clothing/mask/bandana = 1, /obj/item/clothing/glasses/sunglasses = 1, - /obj/item/radio/headset/syndicate/alt = 1, + /obj/item/radio/headset/syndicate = 1, /obj/item/pda = 1, /obj/item/communicator = 1, /obj/item/tape_roll = 2, diff --git a/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm b/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm index 7beb0276635..82243467c8b 100644 --- a/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm +++ b/code/modules/mob/living/carbon/human/ai_controlled/ai_controlled.dm @@ -126,7 +126,7 @@ to_wear_helmet = /obj/item/clothing/head/helmet/dermal to_wear_glasses = /obj/item/clothing/glasses/goggles to_wear_mask = /obj/item/clothing/mask/gas/half - to_wear_l_radio = /obj/item/radio/headset/headset_rob + to_wear_l_radio = /obj/item/radio/headset to_wear_r_radio = null to_wear_uniform = /obj/item/clothing/under/color/grey to_wear_suit = /obj/item/clothing/suit/armor/vest diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index d182593d1f0..8dca9ab08f8 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -54,6 +54,7 @@ var/list/all_underwear = list() var/list/all_underwear_metadata = list() var/list/hide_underwear = list() + var/headset = 1 //Which headset type the player has chosen. var/backbag = 2 //Which backpack type the player has chosen. var/pdachoice = 1 //Which PDA type the player has chosen. diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 54a5f2cf296..b2a03e9cf98 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -29,6 +29,7 @@ all_underwear[WRC.name] = WRI.name + headset = rand(1,3) backbag = rand(1,6) pdachoice = rand(1,7) age = rand(current_species.min_age, current_species.max_age) diff --git a/icons/inventory/ears/mob.dmi b/icons/inventory/ears/mob.dmi index 95ec0e9c8a954c4865e18051e65bb2de6ecf3540..016c3d081d25304cbc40cf231e4847ae0f734bcf 100644 GIT binary patch literal 19037 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 IRqL1k3-yi@_W%F@ literal 19096 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 diff --git a/icons/inventory/ears/mob_teshari.dmi b/icons/inventory/ears/mob_teshari.dmi index d41f5d871f28ee1c3acce50994b548f47721ebf0..69b6b42b0bc36f69546ca7e7fb3bfa3b5041e22d 100644 GIT binary patch literal 2750 zcma)7cTm&W8vVgq0Clk-0!mXbvVaLiK!k)Y5ed>3R1idIQW7ZwK?%F;%0|Jgv`CTY zf*_~_q(lNFKqwD2AfZGlB9JIWKp`Q7l;6Ymhi`m;y>I5u{k}72=ALuz%)R(CsFOPs z)D!>!*nxC*@Bjdr2j7<5PaDYSjD5t$HhJc>mt$*dYh+}kySsb6x~u>qi{C5bBq#S; zTQ-N@0D(X<6%;P++=<8I;c)nc-Mg!+tBs6|Iw1gWNFAI6?>+9Q)53KbA_&8uP=B_vZ`T6+`cSrB4)NDX9aULj7z~*X8g5FC3cCL9wNj*bR^#G*&Jw$Ti&osR5Py{DHWyj_Fz#^XG7E1!o|rD9aJD{R?@ z@tdH1I9gPRWISFDu^|w^d+5B*QK*rNGwq5%=ZxK+O`H{GUi2@$F%l4$Pf)eiU|p zh;6@7&iwLRzT*`Wt*2S%_!vUpA786XYD%6&HR_@DGae{K_o3!uuMp(D38L*(ZI$<# z1xT$5Qh%GgF3#BS7W%hIUPaXQUReDRTK3DtqOBD&p|YmYTSK8oG~g$c(5{&SV4~|t z$8YKVO?xAh8*0&4%oEBc5~6>7=0<^ebJqv!A9TM6k82tid3F{=CYXa&b>@YsEiIM& zS>+QqEBy%bp=_qX);F{K<)tgGFFKADhbtclb*6U6Y>4@9sXd%nB7>L-+F~?J#bU^O z>=`eDDUF(^Hl^_*kaWLsI)h)&o^E}Xl8*%vSma;$Z-k_` z!V=-ytwZfqi}QTV_s6|Zsa}fr!HNQerKROBYy>WqD4pMt)gD|;Hh`+iO}p@qCw*OQ zsID9JBX+Tem&yWOO_Ti|?gOchLlwWU5IFlIG+JkHbt0A9hZb6M0s|MJLr}ah=Q4$D z;`NAXN^3}o6U;2WTuaEi08U~59vayClw_AH3PsCxvWa~z(wp9iDK1OeMD*2lsmBde zZ#fTJR_R6Tg7)M13f3etOtNCWNyH|>FE6lR0(QWJE=qEu)QfNpA9WfWd8&DVJ16I| zf!t7U9cn;}eHFo&96WJd)ql6Qo8Vu_h$x<)3Wz_+m4;QTf36`=gSImcA z)*8mi7*uHJgE@WoK2E+XocVfnwN~uk{3WI4v4}arQIO~l-dKe;M=43q1%SF61dOTL z(PHn(%6z8xuYy8)kJ38S&}uY*?4v^W0^3KOq--_OlT44H`9&eIeXa9R>O14M_4R%B z|0E5Ucd^Nn3%g7Fw&@RTn}$NiUx&C%fH0!~yA1wkpDiLbdEM}kSoghVxZzVl{c{w) zWVs?)LRR%jt1B22U5PF4aL;W~7lWm#`cVsr$TXap`&>yQQ_=Yp8N)A;6Ef6%g5g$C zwsszG)z=9J?er*p=I~2nzuWKp9=h(|^l*!1bEdL2F3p>z@JGRl`MvX;fV$g>QylcI z6r;UMcttY&nu)3Dl-*Wq;fFE`}M&!~=l-3oilt84Y{-ds6r2FHB+o4(hKRo0XdVQSUQI%V0* z2fN-Olvi;gC9jJAtl~{I#^M+=p3^${_vW&DU)5Z_Zd7>j{fD9XJ2l{7_JoE@p~c@P zaZ*ujs>INV6z4YhXZ9i|m-oTEOHZZO43>Nh`M!XXXrMlg;`EbL30HlTOCkhc-dtZj z-Qq&e2p<3ZsjEDQm^Z*=_%^4sxX7RX>yl27p2_7hMA}%lMgrHCvr;#1bvo@LCW-ez zLWbYAo`E%V@?ePX>c2Iq%J}=ZhxA7HY_l1}z;6ZWAq{Demkhl>9M1{J>Jcf2$Ems{{S67T>j%RR{Qr{zeZYv_?IC@%!fFOa zjlkVaxX}+D!*b}5)kqb)E7k$wpC)B$yW9oMMQJt}qz{HRy$Ot~&xr_j76<Zw&U_u=dLPl)twJY>w={v35v8m9_m*d1tyffa2Fq#A-7oee z@h-f%G-kR^cfsY5A>G71mo4NQphq(x_q@^z-}N55P&x*^`qwRCc-^Hc^p9cyAkewY xH%f;ITDml2yxhi4uoO^Cm-k&Y;bD!ahn{|&ugT<8D* literal 2642 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 literal 24928 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 diff --git a/maps/cynosure/cynosure-6.dmm b/maps/cynosure/cynosure-6.dmm index 56fe694d8c2..95ac6376a5a 100644 --- a/maps/cynosure/cynosure-6.dmm +++ b/maps/cynosure/cynosure-6.dmm @@ -10652,10 +10652,10 @@ /area/beach) "lQh" = ( /obj/structure/table/standard, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, /turf/unsimulated/floor{ icon_state = "lino" }, diff --git a/maps/submaps/admin_use_vr/kk_mercship.dmm b/maps/submaps/admin_use_vr/kk_mercship.dmm index 79a61b4b31e..899fd7f7369 100644 --- a/maps/submaps/admin_use_vr/kk_mercship.dmm +++ b/maps/submaps/admin_use_vr/kk_mercship.dmm @@ -6594,10 +6594,10 @@ /obj/item/radio/headset/syndicate, /obj/item/radio/headset/syndicate, /obj/item/radio/headset/syndicate, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, /obj/effect/floor_decal/techfloor{ dir = 10 }, diff --git a/maps/submaps/depreciated_vr/mercbase.dmm b/maps/submaps/depreciated_vr/mercbase.dmm index 097b6bf8a43..ca3b40f71b9 100644 --- a/maps/submaps/depreciated_vr/mercbase.dmm +++ b/maps/submaps/depreciated_vr/mercbase.dmm @@ -419,10 +419,10 @@ /obj/item/radio/headset/syndicate, /obj/item/radio/headset/syndicate, /obj/item/radio/headset/syndicate, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, -/obj/item/radio/headset/syndicate/alt, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, +/obj/item/radio/headset/alt/syndicate, /turf/unsimulated/floor{ icon_state = "lino" }, diff --git a/vorestation.dme b/vorestation.dme index efa6a21a29a..b16e5b01f8b 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1356,7 +1356,6 @@ #include "code\game\objects\items\devices\radio\encryptionkey.dm" #include "code\game\objects\items\devices\radio\encryptionkey_vr.dm" #include "code\game\objects\items\devices\radio\headset.dm" -#include "code\game\objects\items\devices\radio\headset_vr.dm" #include "code\game\objects\items\devices\radio\intercom.dm" #include "code\game\objects\items\devices\radio\jammer.dm" #include "code\game\objects\items\devices\radio\jammer_vr.dm" From caa6f83e14d8129de80f45906fe89acce7f7e330 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Wed, 6 Nov 2024 22:07:54 +0100 Subject: [PATCH 13/83] fixes an invisibility exploit (#16573) --- code/modules/vehicles/rover_vr.dm | 7 +++++-- code/modules/vehicles/vehicle.dm | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/code/modules/vehicles/rover_vr.dm b/code/modules/vehicles/rover_vr.dm index 12094f58c62..9ad03c25bfa 100644 --- a/code/modules/vehicles/rover_vr.dm +++ b/code/modules/vehicles/rover_vr.dm @@ -292,12 +292,15 @@ if(!istype(C, /mob/living/carbon/human)) return 0 + . = ..(C) + + if(!.) + return + if(ismob(C)) buckle_mob(C) C.alpha = 0 - return ..() - /obj/vehicle/train/rover/engine/unload(var/mob/user, var/direction) var/mob/living/carbon/human/C = load diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm index 97e9dfa7469..963faa32f8a 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -340,7 +340,7 @@ C.pixel_y += load_offset_y C.layer = layer + 0.1 - if(ismob(C)) + if(ismob(C) && user) user_buckle_mob(C, user) return 1 From 9fff34e6ad0bb045c56ffa8083bb1fc847ac9955 Mon Sep 17 00:00:00 2001 From: Killian Date: Thu, 7 Nov 2024 03:06:56 +0000 Subject: [PATCH 14/83] attachable knuckledusters and force transfer --- code/datums/autolathe/arms.dm | 2 +- .../game/objects/items/weapons/material/shards.dm | 3 +-- code/game/objects/random/misc.dm | 2 +- code/game/objects/random/mob_vr.dm | 2 +- code/game/objects/structures/trash_pile_vr.dm | 2 +- code/modules/clothing/accessories/accessory.dm | 9 +++++++++ code/modules/clothing/accessories/hands.dm | 13 +++++++++++++ code/modules/clothing/accessories/rings.dm | 2 ++ code/modules/clothing/gloves/miscellaneous.dm | 15 --------------- maps/redgate/cybercity.dmm | 2 +- maps/redgate/fantasy.dmm | 2 +- maps/submaps/admin_use_vr/kk_mercship.dmm | 4 ++-- maps/submaps/depreciated_vr/mercbase.dmm | 10 +++++----- vorestation.dme | 1 + 14 files changed, 39 insertions(+), 30 deletions(-) create mode 100644 code/modules/clothing/accessories/hands.dm diff --git a/code/datums/autolathe/arms.dm b/code/datums/autolathe/arms.dm index 9bceaf27e6d..41caf5a74d9 100644 --- a/code/datums/autolathe/arms.dm +++ b/code/datums/autolathe/arms.dm @@ -443,7 +443,7 @@ /datum/category_item/autolathe/arms/knuckledusters name = "knuckle dusters" - path =/obj/item/clothing/gloves/knuckledusters + path =/obj/item/clothing/accessory/knuckledusters hidden = 1 /datum/category_item/autolathe/arms/tacknife diff --git a/code/game/objects/items/weapons/material/shards.dm b/code/game/objects/items/weapons/material/shards.dm index ecd8df84568..3095bce5845 100644 --- a/code/game/objects/items/weapons/material/shards.dm +++ b/code/game/objects/items/weapons/material/shards.dm @@ -65,8 +65,7 @@ var/light_glove_d = rand(2, 4) var/no_glove_d = rand(4, 6) var/list/forbidden_gloves = list( - /obj/item/clothing/gloves/sterile, - /obj/item/clothing/gloves/knuckledusters + /obj/item/clothing/gloves/sterile ) if(src == user.l_hand) diff --git a/code/game/objects/random/misc.dm b/code/game/objects/random/misc.dm index adc52260937..51c745c1cec 100644 --- a/code/game/objects/random/misc.dm +++ b/code/game/objects/random/misc.dm @@ -263,7 +263,7 @@ prob(6);/obj/item/material/butterflyblade, prob(6);/obj/item/material/butterflyhandle, prob(2);/obj/item/material/butterfly/switchblade, - prob(2);/obj/item/clothing/gloves/knuckledusters, + prob(2);/obj/item/clothing/accessory/knuckledusters, prob(1);/obj/item/material/knife/tacknife, prob(1);/obj/item/clothing/suit/storage/vest/heavy/merc, prob(1);/obj/item/beartrap, diff --git a/code/game/objects/random/mob_vr.dm b/code/game/objects/random/mob_vr.dm index 6b7dfa39679..e13801e1497 100644 --- a/code/game/objects/random/mob_vr.dm +++ b/code/game/objects/random/mob_vr.dm @@ -154,7 +154,7 @@ prob(4);/obj/item/storage/pill_bottle/zoom, prob(4);/obj/item/material/butterfly, prob(2);/obj/item/material/butterfly/switchblade, - prob(2);/obj/item/clothing/gloves/knuckledusters, + prob(2);/obj/item/clothing/accessory/knuckledusters, prob(2);/obj/item/reagent_containers/syringe/drugs, prob(1);/obj/item/material/knife/tacknife, prob(1);/obj/item/clothing/suit/storage/vest/heavy/merc, diff --git a/code/game/objects/structures/trash_pile_vr.dm b/code/game/objects/structures/trash_pile_vr.dm index 26d9b82066c..c53a14b659b 100644 --- a/code/game/objects/structures/trash_pile_vr.dm +++ b/code/game/objects/structures/trash_pile_vr.dm @@ -292,7 +292,7 @@ prob(3);/obj/item/cracker, prob(3);/obj/item/material/butterfly, prob(3);/obj/item/material/butterfly/switchblade, - prob(3);/obj/item/clothing/gloves/knuckledusters, + prob(3);/obj/item/clothing/accessory/knuckledusters, prob(3);/obj/item/clothing/gloves/heavy_engineer, prob(3);/obj/item/reagent_containers/syringe/drugs, prob(2);/obj/item/implanter/sizecontrol, diff --git a/code/modules/clothing/accessories/accessory.dm b/code/modules/clothing/accessories/accessory.dm index 7c4b968b093..29721f42af5 100644 --- a/code/modules/clothing/accessories/accessory.dm +++ b/code/modules/clothing/accessories/accessory.dm @@ -82,6 +82,11 @@ src.forceMove(S) has_suit.add_overlay(get_inv_overlay()) + has_suit.force += force + if(istype(S,/obj/item/clothing/gloves)) + var/obj/item/clothing/gloves/has_gloves = S + has_gloves.punch_force += force + if(user) to_chat(user, span_notice("You attach \the [src] to \the [has_suit].")) add_fingerprint(user) @@ -90,6 +95,10 @@ if(!has_suit) return has_suit.cut_overlay(get_inv_overlay()) + has_suit.force = initial(has_suit.force) + if(istype(has_suit,/obj/item/clothing/gloves)) + var/obj/item/clothing/gloves/has_gloves = has_suit + has_gloves.punch_force = initial(has_gloves.punch_force) has_suit = null if(user) usr.put_in_hands(src) diff --git a/code/modules/clothing/accessories/hands.dm b/code/modules/clothing/accessories/hands.dm new file mode 100644 index 00000000000..433dac69c26 --- /dev/null +++ b/code/modules/clothing/accessories/hands.dm @@ -0,0 +1,13 @@ +/obj/item/clothing/accessory/knuckledusters + name = "knuckle dusters" + desc = "A pair of brass knuckles. Generally used to enhance the user's punches." + icon_state = "knuckledusters" + slot = ACCESSORY_SLOT_RING + slot_flags = SLOT_GLOVES + matter = list(MAT_STEEL = 500) + attack_verb = list("punched", "beaten", "struck") + siemens_coefficient = 1 + force = 5 + icon = 'icons/inventory/hands/item.dmi' + drop_sound = 'sound/items/drop/metalboots.ogg' + pickup_sound = 'sound/items/pickup/toolbox.ogg' diff --git a/code/modules/clothing/accessories/rings.dm b/code/modules/clothing/accessories/rings.dm index e7eb623f4ce..2be023e1295 100644 --- a/code/modules/clothing/accessories/rings.dm +++ b/code/modules/clothing/accessories/rings.dm @@ -16,6 +16,8 @@ icon = 'icons/inventory/hands/item.dmi' drop_sound = 'sound/items/drop/ring.ogg' pickup_sound = 'sound/items/pickup/ring.ogg' + force = 2 + siemens_coefficient = 1 ///////////////////////////////////////// //Standard Rings diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index cb5e214fd68..31e641348a5 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -121,21 +121,6 @@ heat_protection = HANDS max_heat_protection_temperature = GLOVES_MAX_HEAT_PROTECTION_TEMPERATURE -/obj/item/clothing/gloves/knuckledusters - name = "knuckle dusters" - desc = "A pair of brass knuckles. Generally used to enhance the user's punches." - icon_state = "knuckledusters" - matter = list(MAT_STEEL = 500) - attack_verb = list("punched", "beaten", "struck") - flags = THICKMATERIAL // Stops rings from increasing hit strength - siemens_coefficient = 1 - fingerprint_chance = 100 - overgloves = 1 - force = 5 - punch_force = 5 - drop_sound = 'sound/items/drop/metalboots.ogg' - pickup_sound = 'sound/items/pickup/toolbox.ogg' - /obj/item/clothing/gloves/ranger var/glovecolor = "white" name = "ranger gloves" diff --git a/maps/redgate/cybercity.dmm b/maps/redgate/cybercity.dmm index b6ee0422167..f805c026d89 100644 --- a/maps/redgate/cybercity.dmm +++ b/maps/redgate/cybercity.dmm @@ -9085,7 +9085,7 @@ /turf/simulated/floor/tiled/white, /area/redgate/city/supermarket) "lXc" = ( -/obj/item/clothing/gloves/knuckledusters, +/obj/item/clothing/accessory/knuckledusters, /turf/simulated/floor/wood/alt/tile, /area/redgate/city/fightclub) "lXi" = ( diff --git a/maps/redgate/fantasy.dmm b/maps/redgate/fantasy.dmm index 55252e07c65..3ab8fa68a0e 100644 --- a/maps/redgate/fantasy.dmm +++ b/maps/redgate/fantasy.dmm @@ -5126,7 +5126,7 @@ /area/redgate/fantasy/house) "FQ" = ( /obj/structure/table/woodentable, -/obj/item/clothing/gloves/knuckledusters, +/obj/item/clothing/accessory/knuckledusters, /turf/simulated/floor/wood/alt, /area/redgate/fantasy/house) "FS" = ( diff --git a/maps/submaps/admin_use_vr/kk_mercship.dmm b/maps/submaps/admin_use_vr/kk_mercship.dmm index 79a61b4b31e..ae2921fbf7d 100644 --- a/maps/submaps/admin_use_vr/kk_mercship.dmm +++ b/maps/submaps/admin_use_vr/kk_mercship.dmm @@ -9996,8 +9996,8 @@ /obj/machinery/recharger/wallcharger{ pixel_y = 20 }, -/obj/item/clothing/gloves/knuckledusters, -/obj/item/clothing/gloves/knuckledusters, +/obj/item/clothing/accessory/knuckledusters, +/obj/item/clothing/accessory/knuckledusters, /obj/item/flash, /obj/item/flash, /obj/item/laser_pointer/upgraded, diff --git a/maps/submaps/depreciated_vr/mercbase.dmm b/maps/submaps/depreciated_vr/mercbase.dmm index 097b6bf8a43..1c3ea488ffc 100644 --- a/maps/submaps/depreciated_vr/mercbase.dmm +++ b/maps/submaps/depreciated_vr/mercbase.dmm @@ -2463,11 +2463,11 @@ }, /area/antag/antag_base) "dM" = ( -/obj/item/clothing/gloves/knuckledusters, -/obj/item/clothing/gloves/knuckledusters, -/obj/item/clothing/gloves/knuckledusters, -/obj/item/clothing/gloves/knuckledusters, -/obj/item/clothing/gloves/knuckledusters, +/obj/item/clothing/accessory/knuckledusters, +/obj/item/clothing/accessory/knuckledusters, +/obj/item/clothing/accessory/knuckledusters, +/obj/item/clothing/accessory/knuckledusters, +/obj/item/clothing/accessory/knuckledusters, /obj/structure/table/steel, /obj/effect/floor_decal/borderfloorblack{ dir = 6 diff --git a/vorestation.dme b/vorestation.dme index 0d08bb68dca..b356b34d550 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2137,6 +2137,7 @@ #include "code\modules\clothing\accessories\badges_vr.dm" #include "code\modules\clothing\accessories\clothing.dm" #include "code\modules\clothing\accessories\clothing_vr.dm" +#include "code\modules\clothing\accessories\hands.dm" #include "code\modules\clothing\accessories\holster.dm" #include "code\modules\clothing\accessories\holster_vr.dm" #include "code\modules\clothing\accessories\lockets.dm" From 7c0942e8b05b718692ca2ce5e3d248a104206870 Mon Sep 17 00:00:00 2001 From: Killian Date: Fri, 8 Nov 2024 10:49:57 +0000 Subject: [PATCH 15/83] restore bonus damage w/o gloves --- code/__defines/items_clothing.dm | 2 +- code/modules/clothing/accessories/accessory.dm | 2 ++ code/modules/clothing/accessories/hands.dm | 5 +++++ code/modules/clothing/accessories/rings.dm | 1 + code/modules/mob/living/carbon/human/human_attackhand.dm | 8 ++++++-- 5 files changed, 15 insertions(+), 3 deletions(-) diff --git a/code/__defines/items_clothing.dm b/code/__defines/items_clothing.dm index 8ecdb1326c0..2a0b2ce9dea 100644 --- a/code/__defines/items_clothing.dm +++ b/code/__defines/items_clothing.dm @@ -40,7 +40,7 @@ #define ACCESSORY_SLOT_ARMOR_M 0x8000 #define ACCESSORY_SLOT_HELM_C 0x10000 //24 bit - higher than 0x80000 will overflow -#define ACCESSORY_SLOT_RING 0x20000 //rings +#define ACCESSORY_SLOT_RING 0x20000 //rings, knuckledusters #define ACCESSORY_SLOT_WRIST 0x40000 //wristwatches, wrist PDA maybe? // Bitmasks for the /obj/item/var/flags_inv variable. These determine when a piece of clothing hides another, i.e. a helmet hiding glasses. diff --git a/code/modules/clothing/accessories/accessory.dm b/code/modules/clothing/accessories/accessory.dm index 29721f42af5..56234bb5bbd 100644 --- a/code/modules/clothing/accessories/accessory.dm +++ b/code/modules/clothing/accessories/accessory.dm @@ -12,6 +12,8 @@ var/image/inv_overlay = null // Overlay used when attached to clothing. var/image/mob_overlay = null var/overlay_state = null + var/punch_force = 0 // added melee damage + var/punch_damtype = BRUTE // added melee damage type var/concealed_holster = 0 var/mob/living/carbon/human/wearer = null // To check if the wearer changes, so species spritesheets change properly. var/list/on_rolled = list() // Used when jumpsuit sleevels are rolled ("rolled" entry) or it's rolled down ("down"). Set to "none" to hide in those states. diff --git a/code/modules/clothing/accessories/hands.dm b/code/modules/clothing/accessories/hands.dm index 433dac69c26..8422e5e7862 100644 --- a/code/modules/clothing/accessories/hands.dm +++ b/code/modules/clothing/accessories/hands.dm @@ -7,7 +7,12 @@ matter = list(MAT_STEEL = 500) attack_verb = list("punched", "beaten", "struck") siemens_coefficient = 1 + punch_force = 5 force = 5 icon = 'icons/inventory/hands/item.dmi' + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_gloves.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_gloves.dmi', + ) drop_sound = 'sound/items/drop/metalboots.ogg' pickup_sound = 'sound/items/pickup/toolbox.ogg' diff --git a/code/modules/clothing/accessories/rings.dm b/code/modules/clothing/accessories/rings.dm index 2be023e1295..15f52a6b1ca 100644 --- a/code/modules/clothing/accessories/rings.dm +++ b/code/modules/clothing/accessories/rings.dm @@ -17,6 +17,7 @@ drop_sound = 'sound/items/drop/ring.ogg' pickup_sound = 'sound/items/pickup/ring.ogg' force = 2 + punch_force = 2 siemens_coefficient = 1 ///////////////////////////////////////// diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 542dafb6f68..7911b330397 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -272,8 +272,12 @@ var/obj/item/clothing/gloves/G = H.gloves real_damage += G.punch_force hit_dam_type = G.punch_damtype - if(H.pulling_punches && !attack.sharp && !attack.edge) //SO IT IS DECREED: PULLING PUNCHES WILL PREVENT THE ACTUAL DAMAGE FROM RINGS AND KNUCKLES, BUT NOT THE ADDED PAIN, BUT YOU CAN'T "PULL" A KNIFE - hit_dam_type = AGONY + else if(istype(H.gloves, /obj/item/clothing/accessory)) + var/obj/item/clothing/accessory/G = H.gloves + real_damage += G.punch_force + hit_dam_type = G.punch_damtype + if(H.pulling_punches && !attack.sharp && !attack.edge) //SO IT IS DECREED: PULLING PUNCHES WILL PREVENT THE ACTUAL DAMAGE FROM RINGS AND KNUCKLES, BUT NOT THE ADDED PAIN, BUT YOU CAN'T "PULL" A KNIFE + hit_dam_type = AGONY real_damage *= damage_multiplier rand_damage *= damage_multiplier if(HULK in H.mutations) From 26503760bf63f1c6161e2315cf76b17c6d5c0500 Mon Sep 17 00:00:00 2001 From: Killian Date: Fri, 8 Nov 2024 11:06:49 +0000 Subject: [PATCH 16/83] melee damage adjustments --- code/modules/clothing/accessories/accessory.dm | 2 +- code/modules/clothing/accessories/hands.dm | 4 ++-- code/modules/clothing/accessories/rings.dm | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/clothing/accessories/accessory.dm b/code/modules/clothing/accessories/accessory.dm index 56234bb5bbd..e005048399f 100644 --- a/code/modules/clothing/accessories/accessory.dm +++ b/code/modules/clothing/accessories/accessory.dm @@ -87,7 +87,7 @@ has_suit.force += force if(istype(S,/obj/item/clothing/gloves)) var/obj/item/clothing/gloves/has_gloves = S - has_gloves.punch_force += force + has_gloves.punch_force = has_gloves.punch_force + punch_force if(user) to_chat(user, span_notice("You attach \the [src] to \the [has_suit].")) diff --git a/code/modules/clothing/accessories/hands.dm b/code/modules/clothing/accessories/hands.dm index 8422e5e7862..26533291f18 100644 --- a/code/modules/clothing/accessories/hands.dm +++ b/code/modules/clothing/accessories/hands.dm @@ -7,8 +7,8 @@ matter = list(MAT_STEEL = 500) attack_verb = list("punched", "beaten", "struck") siemens_coefficient = 1 - punch_force = 5 - force = 5 + force = 10 //base punch strength is 5 + punch_force = 5 //added to base punch strength when added as a glove accessory icon = 'icons/inventory/hands/item.dmi' item_icons = list( slot_l_hand_str = 'icons/mob/items/lefthand_gloves.dmi', diff --git a/code/modules/clothing/accessories/rings.dm b/code/modules/clothing/accessories/rings.dm index 15f52a6b1ca..361c87c854d 100644 --- a/code/modules/clothing/accessories/rings.dm +++ b/code/modules/clothing/accessories/rings.dm @@ -16,8 +16,8 @@ icon = 'icons/inventory/hands/item.dmi' drop_sound = 'sound/items/drop/ring.ogg' pickup_sound = 'sound/items/pickup/ring.ogg' - force = 2 - punch_force = 2 + force = 7 //base punch strength is 5 + punch_force = 2 //added to base punch strength when added as a glove accessory siemens_coefficient = 1 ///////////////////////////////////////// From 7175a48c8dea532cdea8a00b0e04db34c19a4bb8 Mon Sep 17 00:00:00 2001 From: Guti <32563288+TheCaramelion@users.noreply.github.com> Date: Sat, 9 Nov 2024 01:18:07 +0100 Subject: [PATCH 17/83] Virology Patch 1 (#16581) * Update * Small oopsies --- .../effects/decals/Cleanable/humans.dm | 19 +++++++++++++++++++ .../objects/items/devices/scanners/health.dm | 2 +- code/modules/reagents/reagents/virology.dm | 12 ++++++------ 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index 84b47051aa1..184bee8bede 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -112,6 +112,10 @@ var/global/list/image/splatter_cache=list() var/obj/structure/bed/chair/wheelchair/W = perp.buckled W.bloodiness = 4 + if(viruses) + for(var/datum/disease/D in viruses) + perp.ContractDisease(D) + amount-- /obj/effect/decal/cleanable/blood/proc/dry() @@ -124,6 +128,11 @@ var/global/list/image/splatter_cache=list() ..() if (amount && istype(user)) add_fingerprint(user) + + if(viruses) + for(var/datum/disease/D in viruses) + user.ContractDisease(D) + if (user.gloves) return var/taken = rand(1,amount) @@ -258,4 +267,14 @@ var/global/list/image/splatter_cache=list() viruses.Cut() return ..() +/obj/effect/decal/cleanable/mucus/Crossed(mob/living/carbon/human/perp) + if(viruses) + for(var/datum/disease/D in viruses) + perp.ContractDisease(D) + +/obj/effect/decal/cleanable/vomit/Crossed(mob/living/carbon/human/perp) + if(viruses) + for(var/datum/disease/D in viruses) + perp.ContractDisease(D) + #undef DRYING_TIME diff --git a/code/game/objects/items/devices/scanners/health.dm b/code/game/objects/items/devices/scanners/health.dm index c9927024305..348d8b55e6e 100644 --- a/code/game/objects/items/devices/scanners/health.dm +++ b/code/game/objects/items/devices/scanners/health.dm @@ -248,7 +248,7 @@ else dat += span_warning("Unknown substance[(unknown > 1)?"s":""] found in subject's dermis.") dat += "
" - if(C.resistances.len) + if(LAZYLEN(C.resistances)) for (var/datum/disease/virus in C.GetViruses()) if(virus.visibility_flags & HIDDEN_SCANNER || virus.visibility_flags & HIDDEN_PANDEMIC) continue diff --git a/code/modules/reagents/reagents/virology.dm b/code/modules/reagents/reagents/virology.dm index 4556b1ed09c..e2147f401d7 100644 --- a/code/modules/reagents/reagents/virology.dm +++ b/code/modules/reagents/reagents/virology.dm @@ -20,7 +20,7 @@ /datum/reagent/mutagen/mutagenvirusfood name = "Mutagenic agar" id = "mutagenvirusfood" - description = "mutates blood" + description = "Mutates viruses when mixed in blood. This one seems rather alright." color = "#A3C00F" /datum/reagent/mutagen/mutagenvirusfood/sugar @@ -32,16 +32,16 @@ /datum/reagent/medicine/adranol/adranolvirusfood name = "Virus rations" id = "adranolvirusfood" - description = "mutates blood" + description = "Mutates viruses when mixed in blood. This one seems rather weak." color = "#D18AA5" -/datum/reagent/phoron_dust/phoronvirusfood +/datum/reagent/toxin/phoron/phoronvirusfood name = "Phoronic virus food" id = "phoronvirusfood" - description = "mutates blood" + description = "Mutates viruses when mixed in blood. This one seems to be the strongest." color = "#A69DA9" -/datum/reagent/phoron_dust/phoronvirusfood/weak - name = "Weakened phoronic virus food" +/datum/reagent/toxin/phoron/phoronvirusfood/weak + name = "Weakened phoronic virus food. This one seems to have been weakened, but still strong." id = "weakphoronvirusfood" color = "#CEC3C6" From e784285462348fa73010ec98572715090168331a Mon Sep 17 00:00:00 2001 From: SatinIsle <98125273+SatinIsle@users.noreply.github.com> Date: Sat, 9 Nov 2024 01:00:05 +0000 Subject: [PATCH 18/83] Fixed virology themed redgate maps (#16577) * Fixed virology themed redgate maps Added 4 new props based on the old virology machines for decoration. Fixed the missing virology equipment in the city and facility redgate maps. * Update facility.dmm --- .../game/objects/structures/props/machines.dm | 108 ++++++++++++++++-- maps/redgate/cybercity.dmm | 28 +++-- maps/redgate/facility.dmm | 28 +---- 3 files changed, 121 insertions(+), 43 deletions(-) diff --git a/code/game/objects/structures/props/machines.dm b/code/game/objects/structures/props/machines.dm index 9e9e0d7714c..a7aa684edff 100644 --- a/code/game/objects/structures/props/machines.dm +++ b/code/game/objects/structures/props/machines.dm @@ -556,9 +556,9 @@ * This one is a bit more fancy than others. Anything in the contents (PLEASE LIMIT TO ONE THING) * will show up inside it! Also if you map in an item on it, it will grab that at mapload and start * in the 'closed, full of fluid' state, so you can put a body on it or whatever. - * + * * As an aghost you can also dragdrop something into it (you have to be ghosted next to it) - * + * * Possible 'state' options for change_state(state) are: * open: Open, no fluid or anything. At the end the contents are ejected. * closed: Closed, full of liquid @@ -582,7 +582,7 @@ /obj/structure/prop/machine/nt_pod/Initialize(mapload) // Our non-map-preview state icon_state = "nt_pod" - + // Alpha mask to make sure things don't sneak out var/obj/effect/overlay/vis/mask = new mask.icon = icon @@ -607,7 +607,7 @@ // Save old settings contents_vis_flags = AM.vis_flags contents_original_pixel_y = AM.pixel_y - + // Arrange AM.add_filter("podmask", 1, alpha_mask_filter(render_source = "nt_podmask[REF(src)]", flags = MASK_INVERSE)) AM.pixel_y = 12 @@ -616,7 +616,7 @@ if(ismob(AM)) var/mob/M = AM buckle_mob(M, TRUE, FALSE) - + // TRAP THEM change_state("closed") @@ -639,7 +639,7 @@ return if(!user.client?.holder) return - + AM.forceMove(src) /obj/structure/prop/machine/nt_pod/change_state(state) @@ -648,17 +648,17 @@ if("open") cut_overlay("nt_pod_top_on") cut_overlay("nt_pod_under") - + // Fluid drains fluid.icon_state = "nothing" flick("nt_pod_emptying", fluid) // 8ds sleep(8) - + // Door opens door.icon_state = "nothing" flick("nt_pod_opening", door) // 9ds sleep(9) - + // GET OUT outside.layer = BELOW_MOB_LAYER if(contents.len) @@ -670,7 +670,7 @@ cut_overlay("nt_pod_top_on") add_overlay("nt_pod_top_on") add_overlay("nt_pod_under") - + // Door closes door.icon_state = "nt_pod_glass" flick("nt_pod_closing", door) // 9ds @@ -683,4 +683,90 @@ cut_overlay("nt_pod_panel") add_overlay("nt_pod_panel") if("panel_closed") - cut_overlay("nt_pod_panel") \ No newline at end of file + cut_overlay("nt_pod_panel") + +// Old Virology stuff + +/obj/structure/prop/machine/centrifuge + name = "centrifuge" + desc = "Used to separate things with different weight. Spin 'em round, round, right round." + icon = 'icons/obj/virology_vr.dmi' + icon_state = "centrifuge" + var/on = FALSE + +/obj/structure/prop/machine/centrifuge/attack_hand(mob/user as mob) + ..() + + if(!on) + on = TRUE + user.visible_message("\The [user] turns on \the [src].") + icon_state = "centrifuge_moving" + else + on = FALSE + user.visible_message("\The [user] turns off \the [src].") + icon_state = "centrifuge" + + update_icon() + +/obj/structure/prop/machine/incubator + name = "incubator" + desc = "Encourages the growth of diseases. This model comes with a dispenser system and a small radiation generator." + icon = 'icons/obj/virology_vr.dmi' + icon_state = "incubator" + var/on = FALSE + +/obj/structure/prop/machine/incubator/attack_hand(mob/user as mob) + ..() + + if(!on) + on = TRUE + user.visible_message("\The [user] turns on \the [src].") + icon_state = "incubator_on" + else + on = FALSE + user.visible_message("\The [user] turns off \the [src].") + icon_state = "incubator" + + update_icon() + +/obj/structure/prop/machine/disease_analyser + name = "disease analyser" + desc = "Analyzes diseases to find out information about them!" + icon = 'icons/obj/virology_vr.dmi' + icon_state = "analyser" + var/on = FALSE + +/obj/structure/prop/machine/disease_analyser/attack_hand(mob/user as mob) + ..() + + if(!on) + on = TRUE + user.visible_message("\The [user] turns on \the [src].") + icon_state = "analyser_" + else + on = FALSE + user.visible_message("\The [user] turns off \the [src].") + icon_state = "analyser" + + update_icon() + +/obj/structure/prop/machine/isolator + name = "disease isolator" + desc = "Used to isolate and identify diseases, allowing for comparison with a remote database." + icon = 'icons/obj/virology_vr.dmi' + icon_state = "isolator_in" + var/on = FALSE + +/obj/structure/prop/machine/isolator/attack_hand(mob/user as mob) + ..() + + if(!on) + on = TRUE + user.visible_message("\The [user] turns on \the [src].") + icon_state = "isolator_" + else + on = FALSE + user.visible_message("\The [user] turns off \the [src].") + icon_state = "isolator_in" + + update_icon() diff --git a/maps/redgate/cybercity.dmm b/maps/redgate/cybercity.dmm index b6ee0422167..8c1f1046b05 100644 --- a/maps/redgate/cybercity.dmm +++ b/maps/redgate/cybercity.dmm @@ -3641,10 +3641,8 @@ /turf/simulated/floor/water/digestive_enzymes, /area/redgate/city/waterworks) "eSM" = ( -/obj/machinery/disease2/incubator, -/obj/machinery/light{ - dir = 1 - }, +/obj/structure/table/standard, +/obj/item/book/manual/virology, /turf/simulated/floor/tiled/white, /area/redgate/city/science) "eTR" = ( @@ -11034,6 +11032,13 @@ /obj/structure/undies_wardrobe, /turf/simulated/floor/tiled/freezer, /area/redgate/city/laundry) +"ozN" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/prop/machine/disease_analyser, +/turf/simulated/floor/tiled/white, +/area/redgate/city/science) "ozW" = ( /obj/machinery/light{ dir = 1 @@ -14361,8 +14366,8 @@ /turf/simulated/floor/tiled/neutral, /area/redgate/city/house10) "sLw" = ( -/obj/machinery/computer/centrifuge, /obj/machinery/light, +/obj/machinery/computer/pandemic, /turf/simulated/floor/tiled/white, /area/redgate/city/science) "sLB" = ( @@ -17015,7 +17020,7 @@ /turf/simulated/floor/tiled/eris/dark/gray_platform, /area/redgate/city/engine) "wgN" = ( -/obj/machinery/disease2/diseaseanalyser, +/obj/structure/prop/machine/centrifuge, /turf/simulated/floor/tiled/white, /area/redgate/city/science) "wgO" = ( @@ -17388,7 +17393,10 @@ /turf/simulated/floor/tiled/steel_dirty, /area/redgate/city/dodgypharmacy) "wIw" = ( -/obj/machinery/computer/diseasesplicer, +/obj/structure/reagent_dispensers/virusfood{ + pixel_y = 29 + }, +/obj/structure/prop/machine/incubator, /turf/simulated/floor/tiled/white, /area/redgate/city/science) "wIy" = ( @@ -23051,10 +23059,10 @@ lyJ jNE kfL rdM +ozN +fpI +fpI eSM -fpI -fpI -uEa rdM btI kWt diff --git a/maps/redgate/facility.dmm b/maps/redgate/facility.dmm index bff1c55fc63..5c0259ff98e 100644 --- a/maps/redgate/facility.dmm +++ b/maps/redgate/facility.dmm @@ -3246,10 +3246,6 @@ /obj/item/bone, /turf/simulated/floor/grass, /area/redgate/facility/cell27) -"eFo" = ( -/obj/machinery/computer/centrifuge, -/turf/simulated/floor/tiled/white, -/area/redgate/facility/cell20) "eGK" = ( /turf/simulated/wall/tgmc/whitewall, /area/redgate/facility/cell27) @@ -4471,7 +4467,7 @@ /turf/simulated/floor/tiled/white, /area/redgate/facility/cell2) "gmR" = ( -/obj/machinery/computer/centrifuge, +/obj/structure/prop/machine/disease_analyser, /turf/simulated/floor/tiled/white, /area/redgate/facility/sw) "gmU" = ( @@ -4913,13 +4909,6 @@ /obj/random/forgotten_tram, /turf/simulated/floor/tiled/white, /area/redgate/facility/nw) -"gQm" = ( -/obj/machinery/disease2/isolator, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/white, -/area/redgate/facility/sw) "gQy" = ( /obj/effect/floor_decal/corner/black/border{ dir = 4 @@ -11648,7 +11637,7 @@ /turf/simulated/floor/tiled/white, /area/redgate/facility/cell15) "qsU" = ( -/obj/machinery/disease2/diseaseanalyser, +/obj/structure/prop/machine/centrifuge, /turf/simulated/floor/tiled/white, /area/redgate/facility/sw) "qtt" = ( @@ -11908,7 +11897,7 @@ /turf/simulated/floor/tiled/techfloor, /area/redgate/facility/cell9) "qMo" = ( -/obj/machinery/disease2/incubator, +/obj/structure/closet/l3closet/virology, /turf/simulated/floor/tiled/white, /area/redgate/facility/sw) "qNh" = ( @@ -11950,10 +11939,10 @@ /turf/simulated/floor/tiled/white, /area/redgate/facility/sw) "qQL" = ( -/obj/machinery/computer/diseasesplicer, /obj/machinery/light{ dir = 1 }, +/obj/machinery/computer/pandemic, /turf/simulated/floor/tiled/white, /area/redgate/facility/sw) "qQY" = ( @@ -14775,12 +14764,7 @@ "uMq" = ( /obj/structure/closet/walllocker_double/science/east, /obj/item/book/manual/virology, -/obj/item/antibody_scanner, -/obj/item/antibody_scanner, /obj/item/reagent_containers/glass/beaker, -/obj/item/virusdish/random, -/obj/item/virusdish/random, -/obj/item/virusdish/random, /turf/simulated/floor/tiled/white, /area/redgate/facility/sw) "uNl" = ( @@ -19788,7 +19772,7 @@ pLg fPE mzU aOv -gQm +xRG vrp oWf aOv @@ -30193,7 +30177,7 @@ aKz ehw lnw sCO -eFo +ehw hgj hgj hgj From 887700472d53dd5adaa2c2171a50b2d09c21f2bc Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Sat, 9 Nov 2024 01:00:52 +0000 Subject: [PATCH 19/83] Syndicate Headset Icons (#16578) * Update headset.dm * syndie headset fixes * Update radio_vr.dmi --- .../objects/items/devices/radio/headset.dm | 4 ++++ icons/inventory/ears/mob.dmi | Bin 19037 -> 18939 bytes icons/obj/radio_vr.dmi | Bin 25687 -> 25507 bytes 3 files changed, 4 insertions(+) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 24728cee218..ead212defab 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -572,21 +572,25 @@ /obj/item/radio/headset/syndicate origin_tech = list(TECH_ILLEGAL = 3) + icon_state = "syndie_headset" syndie = 1 ks1type = /obj/item/encryptionkey/syndicate /obj/item/radio/headset/alt/syndicate origin_tech = list(TECH_ILLEGAL = 3) + icon_state = "syndie_headset_alt" syndie = 1 ks1type = /obj/item/encryptionkey/syndicate /obj/item/radio/headset/earbud/syndicate origin_tech = list(TECH_ILLEGAL = 3) + icon_state = "syndie_earbud" syndie = 1 ks1type = /obj/item/encryptionkey/syndicate /obj/item/radio/headset/raider origin_tech = list(TECH_ILLEGAL = 2) + icon_state = "syndie_headset" syndie = 1 ks1type = /obj/item/encryptionkey/raider diff --git a/icons/inventory/ears/mob.dmi b/icons/inventory/ears/mob.dmi index 016c3d081d25304cbc40cf231e4847ae0f734bcf..6071bf0efaa96eabd2443081e5bf80d93d08aea9 100644 GIT binary patch literal 18939 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 HY~K7IoQic| literal 19037 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 IRqL1k3-yi@_W%F@ diff --git a/icons/obj/radio_vr.dmi b/icons/obj/radio_vr.dmi index a4e69892f607b704f2f88f71ec0a637aeaa8a160..482f9c09f03932a9108b9dfca2f10fe8a8c76f8b 100644 GIT binary patch literal 25507 zcmb@u2UJtvw=En%L`6YFK%}XNh;)%6Ql*KA2uLrX2!iz92?z>E6Qn5!O7FdwfCz*p zNJm=eMS2Y(?c34c{ogX)9q--uJ;s2XlboEg&)RFvIoCXdJ$tHj;oQ}85D4Ug@*{Z- z2!v#o_T zTT5OY#4q>mM$3fX>+32Jylt_Dk6jX)k=MBkO`fV2?{JW?<|)04{ou2UTk|5^ap%YQ zo;u(0Ks_vke_i4MBMVq^PJYRfR2`nkf4%!m`X!GGkCvv5QmunzpPPMnNfAf?I=4-v z|K7nK&z&-~zHRokxQSzQQm}Xz-s)O6-fDIwdin<2ll2!!GQQXj1(~JIQ&PU?NBvV? zHgj;$Z}+?Vp?4foM_P29AxhagWRcWgI@>unUaqTY(CC}Ue&C=zs)$v-^ZEsa21RIi z#Zh8`h1yG5vwao*`R>V2`7xz8>6Uo4$P86RAL+)Pu1&}{mHi-mDIwETR#TYtcDZ6} z>^<;uI?6RNEX#WK(TEK4r)ay_m;Q>jQ39K4GAyi!Gc5o~hCB6yr|8$EHKzMznNvY) zem7q>r(3I@Qc_E6&D@BX>g}D|sQlVLFWjdWC%N0Lr=9x=9>n8a$$V+ zM8fxxXVeEe@YSJ-^@5_TO;lOY8a;J&sFL z{w*g->-4IAnc174{kLe|bdWMZPY&#WkB{d4XPz9ZN zc7MD>D%we%Vb()rhI>QKvFf<^?n9bt{i1rhIfeD@57|#Xz79#8;`T%Jqm&^#JC|^K zJ8Fp2O%Kn;rwX3e)6=th^{O=vn+FLb273JmW zQ8a~3&JFgApTjNI3&5I1bRW$s#&zZ&lfs?4hKwQ3h=ReX0+IlBCq8h?-a$9@1h?a65f5*Ly) z&E2%$6YY8X83#Buc$0F@5SO=8{gs-I)0y7eY0 z=kloU;rQTE<&P7$>!+$s>?Q)PcaE7~KYw%TLZRax+rD{A1sj&F5xt!J3E{QK6zws& z=73ugrkv$%y>Q{eAaBi7`bnbszzHUkCi>vpC-N$pG<}mm6k5}#+UzGO<(BRU1JVyI zwHEK--+80(bxTwC+qb6&!WW08rXu(y1!y6&$E$J>Ybz_O9o`J%p5IA=^p16IVHWrH z&WV%?tf~7R9(>ni(|uUQg)F;eKf%Z+?83B9u1g*5yWphES2~AHHn6X2-|ON`do+}- zs(JYR7Ml^DqGx>&5P6C2fIr32MDH;rmU_Aq!luw zM#!~h*mh6VK9+iy)vEDz^7j;Rr!TwbD!E|Bhi;Qj4qrX6N~{H1^^AUyM3FLztjw?A z{2()tfk#nK?MT(-<3g0`uABJMFw821)1!+nYHDiw_47jEhWo+mjD#2m3BC(Ys^(|- zr3cqh$E({8Z>lI*s8HHxM;jU)*k5gL3?SHISan@>I>&~2TKAs3$XZ^ud|_$%7AyVD zczZKXY?I}4ZgKIEq}0;=K*1}t<+-2tQg$Y3hs%$z%0B*m(f4^3ja-O=^sn%Uf(Aj8 zcTeTXJqOYi1~ZjEKp>)q9=BH4_32I3ch#7suO4`LOwzkjQAyDX&MjJG-YW12j3Aw) z&ddp+{+@P=jSTW!M~D6Xea5Fbw03rOGO(7zykIGD<{{6QS!5ccZvOpxpZIPtp1qD& z+SV(|)2)V|V-h$O#b~~pMe*mZ4UgGTKzhA$&)6W1$RJ4qPL11#EDBWPoY0O`jyGby znOQnzA1=}Q=Aa=m?(S4nEU(U=I7n`3_kI*YY#+Y$^AVmFO4)x#^EBIknG^QuCb zN#JJsZbuyjB?o4)C&_KlH2?L$v}aMwjL@as6hf%>7z+yvB*1R6+H`Rz@VL2Oa?@v% zv!5`5s@IlpcX+V*txOIhC@}JF$e!V?Wi%nnx=v_ylVNu}fMYUE+44ot_AWUu zFhqMt%Vge8O{8v0mD=2$PRz=rlKn=Z;OGyjHT3aenS7HtP)p{q@pqYPR&ORvH{xN1p)1%Bqk#Aje@@j;r~1PPv*4=5SDS~-_@BG_)*Vwl zsX9q*n28UCN}bsLgr)iVLmUsq&lEuU5oFX7Uw-fTx-F=w`{%LZNTy1sBNx=9sb$iX zbrZ6~XI?YyFuxDz=QulHg#QKw)#3NL$1&>zsgsLf!abxHLAwdp8rnaXmZD*V7&@9C z+LT-q5*qU8bW{0p3+b1*KC$kg#`>;CaQJdX&=|boRx!0~zxY~d?^VWMgf5T5ve52E z`jGG+zGw8;u_0Ok&HJCXiAmx+XPWP8H7RuFBzeBB&OB~`-5a_Pt zru$q6Ne~1Q^mh8KtSJ^Md=xNU0)K@*OxymTh#aAaENJQoo6>@3p@A3_Vgmc|BEh$z@5eqyxI4H$`rk6)hS5q`DXl~Pe z?U)vpT=bJ^lAImx8iQ-Xng~jd8g{n%2#V2?vqu#xWxKEf_2ZES5=inZ5A%t*GO-UC zcm=1|KejHQ9ZLF6;=@aZ*4jYX@~6$aVY;}^#NAIe1IN+be07;~ywG83W9uv};=9Fb zNk1WT!Lg^hNTkPYOPB(u~jY~_1Y)j|A6q1_r35}{++ z*Y>Fh7T{ALRq^G4y;#s&q<_RNB|IX}%e?e#gP^d(dHlpSbb^99D5k_D>(=DS=W)E% z*K9#jn8n(}{Q+w+*IXJ_kAmeD5^lt`AV~*p;p!V)j+TxRQDgaDYf2e&Z^T+1;q1pH z7c8dl4xqeq!DZfaFDyC6Z{kqG;j~X4D#50tVB&l#i6jv82WKa}`UsN9j$hYSxks6k$P zw&2QEVMekQNZ+n`;p`ByvHbb-OLp2N6Cyy* z>POI<_(u<>$f5+1xP3njkC2a5GZ>B=H{41gv@|qlFU}lj0065&_n#pv@uQai6_)*P zK9JW6;HH?YB<$+l_oTg- znj1tuN)o2&<~+M#9=$1q)OP~=4!(l>F2UZH<8*Jq&cZx@lc`7?X-QObUG4VmiC(CK z%{TeQ#A3el;4YPHz96~vUDJMUU&!Ps7N2a;xD5TE_wxpVwn1rZz4yMH{s2Du$bNVG&gJJPL2g#m?u6BtJLjez!^{j57J!W__|7h!z!HmiE=R zXDZ4BLqHqs%5fPL>2cc6N+3I!c(nMkHKL+#LUd7i`nsYb&W%G|WUT`ypSRjqgU8 z*y$&)!dI|}CnQmbzMLIFLYZtqJjcF+{q8415?4z)SItJ92ZO$ZLs2(riBx-k(EVL2 zY6b3mWnJQoM3!auyc3y;8VSLWhv$fduh#<)-Y@vUKK`Eci;coFL|3( zciG~0e30E>;Rmy)HP?3k!~(dEeYSn_q|ngY^iG%P|06s4ZzAe%c>Ygf@SlJlBCmBW zRlU@7{w5U|k>2LIb~(IxJtWa#v%sJbdf~+E=Zl;PGlJa3NU)NAIp3kO0~^kPI=ioS zqfHKv$*U6x^e4uU!;G|HNp#`h0q%PliQIdB@9VDgJcMtl=Jk^C^Ay zF2wqz4XgAp+>Gnw*@JzyW^bMr;&@L5y`kYK@6f*K($=&5>?+^X z8d`-#ESyV1Q>W3_U23A}#Ue^rIZc23Q`nQ2AB^fwH5uKwdl}3FGhRZsS)MkH$o`XU z-5yxs+;yvW-03K7WuE0Uv$K?rNyl$QME_3np*sYg7Qx4h9M_a31{PxFFE=H@FDgYA zJ-Yin-m2c9>kd?CQoH`wKAUdvN5b)oI2GxusuGLR*_1o3l@AY02;ih+N5^hnIBLJU z{#d7L11-A0c&%j$opapT+&<@+TPwD#d4K#?p5Szv8SUQ@Qb>l;n}D1}B6c=BH1rYV z?}~0fSZL@e6OvmuZd?i=2HO9{2LVZVNt2kzj~}<5#B9)UYwzTA&&%hgY_paznNvmY zN{-%H!S;q7j+;lL4`Bp6j$}2F&~p5>(75RndMrsFsUSySHm!}^h@ywS1(ctQOOQm{ z=8hqs=)?o@n7E_>F0|&Ht9VRIOkj5QtxB=z^rj4};HD+az*ECFz$A5Y^ zKX3N@`SV%#8YWKr2Gv7fB9pIKS~kPhI*r54L$>)L8^0PD0((08gX&p*HUzom>iw^X zSwWtri3jzCC;l8A%{IWZfe)-bwdtLmoqvvxuVN@6N}oPmthL>J7W|_WFS>EvsxIdK z{rk6X-!n)*D1H7-!MK0t{VNYXKYd|gab40}_xUyyNDt&T+xF}B z5aRa~&#NhEn7z*4%(O`;YEIY(r@rx6wf$qEUT$vgj^yazwoY-|vD3m1CY~FY+HB#< zmrztPcu$1nEPJ%Mt~NbH5DnGQ3rk61E-WZK@bL$4DK<=f>KN6`J#2PEtt6F~a1|zl zg||=wQ#FK4#=AoRoXgj|yt4oUkV5SH)`I-yN`l=Q?ki0$$2)AUHQG3 z_-)lBLtNca^ytgafUS?Us)ys5<;3tAt2N=_DZ8vNYZ*Y^#O z?n)2W^siq@Mn*>9&6_L}{xpFF+(wa|A%Sr2RA6Scn0@3urGcU^7ZwSgrp?PpWWy$V}H&m_8#w2mQpdDTQB{Z1TMjG z)sg+F*Ha?Fr{$au159{izH1@1+hFqJ&_73MlUss$YA0;d+cL(LQ1^FhSg?~qo~BBK zsb@IHq^1T|3+2p-&&fJF-<^RG{E*PGvuY(Gms$q~=i6!FI^eF5ka~@s5a6e6U*amim=Epg7SUJgubnQ}*WCR*D(-8y zE~s0S=ee=F-TF$ky(~jj%zfC$>Jhxe7iVJ-JvUP1R;r)DMEilWw%6}>EEovRWRW>= zxlq}YXo~2|bl(V zXHoA?Qv}FzS?5kxGrCQRunP%kj(Cz$T#&)Ht6Uj$W(JEbWJ51aX1|b#InAGX3h2p{ zfy4f^4%}a4h-|%$>OAwkYx&3D_L_bASt~2W{K&a>ZZ%hfmBq!ygNxUFgD9vw@HihZ zLh^e7fpAjf=;&z!S(1r~2?4`5ra6wC3RfVp6zAK(Hf1n^@p)DW-Na+>(5ypPX_@u< zR=&*A&zHWlfyr@zEWRihV*&3pG5Zjo|{e> zKSv2D31W*O0*$eI*ZZ@ea)J-nIZ=ye#AmtSG#aLEaF>`u&8#KjI+5w39U^|z5wbOMm(aOTAb<}J*_>G$sgHfZk4Ql>fw$=C(n z*ExE#2d7^=I^Fj=0ks2U7sZN<>z^6;Pc}EXy2$zG>enGw$*{4r+vkYO?^9E0DrdPw z&kP@JM-xVt-uvW!pM6DXTOvWJKl7b{LJ%}?7w?S`zUGzTx62@4Zm&7lspF32UqBqc zMUIp-z3%OOf_!ZGUlgC`hnjaI9`(fYL68b;pfV0;9h2_-=r95|$Egr4rlFzX%iSxa zS5ZnCFLpm2^bKrZ+ug!-=8~^BdGt@2f$e$#A}>TahR~58M78Ip@^=jxM3)ECfhf^?oHLB{p8l zaH7((uqA%|R;n$s?7Qfi^3k)C_g`oO;WZ{CGx`atzxl} ziXzTAF!z30sKG$YUq@K_6qJ<>h_0Pot*;SXKAQ9kk$c(yiCoF8Dj%&@Tb#Dttr_6K zUz){n95G&9Jyg41+<-Nfo*2%2C5vzUao@`3LD2+8;dka_5J)_xMiv%{k~sdUl%SzI zX%x28IIl5E{mRowQgPQc9)V?Wx$Hm9NvK2`L>HTz#MgDUd~=4v09^FJk>A@pv`tP< zCTg^#kZK1QdDzwVvm)yT_ZtktF#pARwt(|13AafkKoiL?XY zuR)i*uG|q=Q4aeE7yRX6px+SDm2cNS)AUGL`I~{w=rs=PFX@_u4e^SoZ)=Q5xX=6Wpn9D6zbapP^ z{#oJ6>ger#8eeAG^ya}<@8(U{ve{6N(<2- zC{aKXf;1Yrjd=Os*9<@p&;s0@XET5?G)%>nkj*${5FGSC{u;_Su}A`(M3>aOE9B$D z>DNug%L%R~eM3TTO>vacqf3`FSJG^^oIPuHXJg*?&=-vq=om!Z6PEQ_Z}iOTQALY? zF~;kZ7~7qVh?g)i`DwAb4U@l47Mt#uB@!UFGD+ASOyNWQ^Ry4HKHz20{XXntC~DpXt)2 zdX_}3p{X1`w5sDdX7kTc+S|s>@8k)EpI46qL43U3t9Lm&W;C{0TlneW5&?%oQa~aa z*G|_~HrzHIufVJ13{_rUPM`Z7pZfan z!xY=V8KBJ>#22 zME35TZ+j7#l-5@p8nA43uO6<*9+tGZuMXFGtmmGwJK4SXY7`}3{at3hL`Tw8N+h5t^XGspM1-ft@ zNO{m2pB8{lV*k>ou5HU{+}LSBmPKNM~9wg#2b*2 zo%ODL+X>U#ijWrG43{!nzxZWJ>wDUhxY!Z*=1gDa<9gN}b$C??t0^SdUNb+En?yYc zw(zW&_81oplNslD4SkZk11^F9Y?7uXg8s~d4dCj zF&5#8SdS1iHU4TdVV8T@TYATZ<|#gduLZQDND?1R)PyNJQ&9K|93JnjbuEosogK;c zMSQBYepx%uRWo3QZ(59Z@Ic1v3c5}W|C<+}eY;t@PI?g|vpt4x;%mu~;C%o2bI`^H zbD{qx-TBAL>zfAcDJ@Z3Yl1ZGqDvl9GjM|U)(GNU)hN12>VoyN$5($>+bK?0|LE-P z-PoLb-@RCNwyEQ5r)QE6kTcDdp0AMPfCiD@w0l*;oAZyiyEx=uFz?Ny7&2^}%m6r@KiuV>ufrO)~#63ktQFBGB<=?+exdZx4Caa}|R>+Q0AnNE^Mn-H9 z7J+ah|ATVOtTp%}r)ir$UfBp}Ue=!pNn)o|=V<+ElS13(d?UvP7g%?`s=N#=(1Gvy zY~}yyMhxx;{CM4-a?B_ox(sEK+#+e{n0m*XQGvBD7OXkxBTE%qdwNe))CT@#+Gr~# zXZj)-wp5np^{*f2&ge=MVSJ{@o<4rk0=gcKz#7om830-!1KDzrL4XU{CAPFd8x%+! zniX%(yXkTyJTSgMlpl8<-`f>4w)vw3m0}SYCP;!w+Sz5K1QJG*h#z?vP44*^|NNe? z@O5tP9-Uy4FMzm0N;5hGBj^_H8FiW@KGc*FvALf5SLMfOc)C#2Kh}qS5TS3@^*)mT zYg&tkp@mpH&&mi1t)ryJ>!r1&sp&($)9keqH5pD$M9FbCte~Jk(6m+T1&<%)NVJ+f z=#s%`$AgJ_tsbXW{Tn?&!g2>zDF-1r3#=579q!gWujUJwqt=Sdix=T6Pt$jLUJ|uM zLBhbAJN1>FE%K0k#VMk$ehwNq?s6|rDY)iSGbB;^u&-sDC zVr$Ah=ZGGKzv5MjF094`-Fh%$*+(5X#rE|?f%?x0&gq5y}brKc(}?_di?gpv7VVp_y_eqzhW)7A<#9+dtjw2U~Y%!LzrZNthqxSIAa(U zNnfz(uZ-3?xEp3RiVZhDogv_ZUuv}(?UyfHkzS@O)$4+aRrv3Qh9U{NIbA$fRfwAr z0yD~U=Bd4re?{_q1{2bP?svy9@XHctsNAVI&`k zU4$R1Jy-*fg-aNCE?04$=F(}joTLQ9@B!fQNUIK0AT%FKesxQdq48g$(K_n4_VsTYskv%y;3603++Z+GVC= zqsWNgo8D&97*cVplAt-y}QJw${Hf$n{Z)#!`SS_=NY61(GI9 z-MI}nHk@sTUBh<{W3*ap#6(Tb>?!aE_q9&Xn&Hh2w6zl)99q|0-x;Uy0V4rP-V8=5 znTjL;$@(+llj3+qq+0V_FI+Gtiav6V=iaA=3;Dwi_$SZtn**;g!! zCwcb4W{nl(NDVWZk{J@}R~&Qf7G#R4G|R_EMQXZ^~W@(a`}Yed$S+4nW(gAH;67 zYv3E03PxV*qodc9b-yNgMW@Vj6K=dr2UvSCdFlq+`~z@HE`Gbo!#gr&hiH0(BC8eA zUe7^BI$B@$`CCp;&+?uI4wz4Eg8F!yWGMyK*0f;ZY|+5)nZ3;t+68eT4UTZ*$Y+810KTQYJj?Q+3qS-W?Z@*Bd>}^hHA3HPL37et=IVWq?X$y2wfDel% zQnXJ}_x3MN=xMc~Fgqa714+8|^!Y%b&HAndekAI2z&Jz#abdmF3MwuHa_b56wvQjc zx&URCy;QzV#b&*xwE>vu)Lrp0lo()6AynkjMc)_f+f(klV2vHdYji3k{*gfh z2wy=H%I8m;Mgt^knjd0CAae{2oU4%|#5dEoYaFnaPR^Ceiw_-v0HRNcka90vlAZxJ z4eb1Y5(L8aZe>Z%AxF)}7i9t1(6b#`niMt&-`I>XqFP@wrtE+>&S5j$$;KAwy@817 ztIkW*o;q#ShYtiq7;hz0V3hp95k4VdqFC@#zRS?uu zEU!ge$}*2>54tsrRAmX9f1!xg)r9!Sh=}t@x`-Q9X6@%xW>0+qK{*ZADIKe76dw)_ zTbOgId3AX7_M%vWXj3w*pz$H?J{!|~F~sH#`Sg_hlJx4v%(G(PztDjL*Avkfpqd#L z9K&CfD?#mwInucoPHQ__3bj zf@MbdlCul{8r^O?Qlb=&q&en(FxD5Q`VYetmZYu~O@bX-0XW9j0`B*~ckDlKW!(0S zupw~=aSRy_uLdpqf1UyT;Yr~rK@M1c3I9^Ofa9h{$b)yxow|Zg7qUXn@0YL^?XwM$ ziw#@zdDHX!V>@`4!nlV_=2q*{5r~D+3LEo&RzEW)wQVgT898#KJ=-nnSTZPuzUwX8 zdNp;%(5pKFy=`4sT~pad?5@ezh015rW#DhuTj>*?)icYXlWX_7byD@1k27}kamT)u z+uyJ#skfu(m!Pk9PBxlOk}>h`%8g53qF2d*_w_FO|GWMhgnsrmASMbpgU^>6{`QSk zBe94VB-M-bj}oRxmC<55ZjuQZzzHhZ3OO^K{hUdMG+ltu@zs!X2g642&L{DH#!e7K z`?SotS69}E^ZDO2_%+iaG6I}eMEYR$vbHw?)-t(lvS|utKq7V@v(2Bn2S!zQYqlj` zGdEs~CmbQ7ew;+u;u<@8%JPM@YJj4=Gs*oZ0J>^~jc%DsO<95_#UbHLvs z-+{G3?3fdqxWw$>>GwiwygldNSU|}8*IDhJpY;%skFd=dA$m|A zfI>nWD@6@o`4Ya1pJK7C(MOLL8pwd4_GoeOhMsc(@P;dv@pY4FHNST4>m{gz_YxHU zguZv~s{ zE}10X^k#g-{P(a7?!?$SrRtvlBZZB$PWs_tI4b~_BfRwc4idf1p2VOV77su(s6<}< z$v^RC9Qb&nk5tW`m>@zP2UONfq%S!)0-Ns;iaO-uK9crd*qLyg+3V&Zd@bbVinjDe{#lyKI>f0pA@l$iyXO})QG!vGy6fc~yIX`}8 z;qzsw<*vVG8gnIG@+2RhvLGfE`OI6znw7M)IoGo$Y&9Z_Zl^EygM#+a=@XouN#$Qb zMce`WUrxI%veR(Ypp})(^5Ks^c%EqVv1@C)S@=v|jq1h?L3v}+*tYOQ zH`o)y(2Rzs+P7M54XpoKPHt^Y+7c<>g?)!D^jXV(mY_sYcvqkOrDyFa_OkQ;;y<5riOwY&1-@)f zQ}Eh;=l@+g3dn^4eB7IpnR#6>@)EFIRjiI>LGJ9 z4&Xx~e;mM~LUo-fU)!I}nXpyg=6JRZ@=R>FgQg~J_M#d&Wbr@2-;V^7c2RC_?%!94 zE%x<OFq@9)$4;N8X*yG10rLLbRHZT1GSmRr?}5qy zZ&nntkNn|5uo}AFe1m7Z%0@LB+tbbfk-{IF508zl>j$UlRz8YFRcgn_qv0;j*CEB5 zk?rO*3E}(@TfHXIBq^h@8-*4G1omd3FXHN)f{er9%&VcQ`*DA;wZ;Dtwmvyth%WQp zf2r%b!jdFl`kGG=>WlZXmT|tTua?qsVGO$Mapk!&y1CJ}ZYfM5JQH00YWb6N;_<7h zsycgmzE`K=o+KveqohH`yL;PWS9pTe(bDo35TH7MIDI89_U$xn!ou5MlUVx(PM$HI zf2{K+^O+9@rltz@n6r+K+@~zo!odsivM=rbT1lKtbcMt?$eZGY=@Q?Di`}jQIVG{Y$)Wkx0wEn@R2m}2fX`*5u*w%D!|6L9?JSD7= z*a)`VB}zGswD0!-!Y`aTMWqRZuPFmh=>Qw^s>fcnlqG2b4Z zm1ykE#Rn(Ic;cYg577CVU)tN@(bBB$1VkHasYGfXqV`tIlhnwwlLknK;?SCV}BV03R~&OaJ4%&*a)a-M_3?ac4>>Tu)p*B8I1Iq#AO zAaPqBV!p=${`md0g(n8d#XUl>8Hu%T6l`sC-$Qn1gQz=}bSq=a2}`?c$^;w|zPsj# zfgX|;DwM^cvgJ3m{w?bs^@6OcMHPi)thY3+%ANV2FaTe5jwni zKw_tbtdqruiPdwK1Type{SB`0ZJ+I?kckQXM%0WCd|v>l-!~e?jG?K(yOM-zsCv}@h(H#{8Wjp_|#^c(B zK_`U-!s@{-l|K<0oiAcG+j1G{_YpDuZr9=Y9HDVn`+2)GGkBsPV+|7`w;dS((karf z33Zo@i}Jm*@4?R8cW^sOi+jrR3wt$;jj5s$L83@cGJO`jh(4jAW}9RdNl;^Tp6ik; zE}fA(6g06YdtPux#ixLG_g?Xpu>WM6^jm(@(fp_5zP%&q4tOyzgU{{6Bzz$l`x{*V zP6eXacN)SlrHh;31~M;TjWhc;#P-6pM_q9f{%G;5CzG68G7HZjpnk_EGTci`O9|-x zWo04Yj-K{FUV!Kl@E9Y$)9QwX8R!{s2%M-Zt?_+}JFMR2L?5~M|` z*}yUhpBP@cfo%`31#R2blV%`*2{EX=lMd7|d%V4jyi@Y?9uGGYC>3ySU4>VFnwez_ z|Ahki`7H0+Yw3MdkYcM%PfwrZ7F?^_LwQPo9^L?Vihwf#w)87)&Ve6aV|voOSxM1F z)^J2XhckRXAqcv#3Q*S9g>}P9e>GhvY>wzP|9zqclqg{1X?kb(FROaIz37v4ntzd{ z4DnvJFpx)X^YbHGNXQ=InP`0Az~SQFz_O$!eW78x*u!)BJg6@dX_7Xzc;cfPyNi;6FYd95ig37f8@_~q!ay1ou8jGJo}ZdT9n>cBg}wF{dTG zeA$fdV9KXMKI+gaF@zT?cG@#m5nMWuksInY8DIz_C#9(x2pM<&aJC_d<-Z`M?AJM) z+TK{gBd-5wNdJ1MSNp#(q(>&UrWu}!i#~iu7vb!yzbT1yoF|)E7hbPI*bU>;cA!G) zgze%F`}MRV*R5*UkF7T=$-b7CEFMa%1p zXIunIH0hZcHD{PSd+G6=aDi)E7^u3sX^ew+8|g#BL?6~`|E8C(e)x?m_P&ygWrTGp zyiXe__1h%0?GIuS)9;l#VmLlkQ{Zov8~QGNT=FKcmeQQ!CiOOU)^PP57`B%Npo%ep z^-b!d%YX3{@I(L4OuLum12-u&z^^*=0)Jc*T9Rnll=R!2i>cl1VA@Sm-0uJL7Ri4y zZko5y#KNL}{|g~uIp{x^657oO;qCZne!)YVM*uWjeV-B`WM}sYyW^^ss$1FVATouf zWN`d`IEKM@U>E{%{PY+o&r!4PjT0DpZ)q@6bS4zR>eHL9fCcVoumfjps-}}%dd7-D zH{7M(G*Pu!>5V;V0Se5+w)JSu$xZjX>S}t(EJzQ95$BJZqc+?d?l}Rok&LV?iT{2w zvXtQVqGmGd)2FM*1uWJVY$0DnSR!pS{eJp69LtN`uSh-qaA()t?7Z$TwAVhzH3zAb zcwPX8K7CHhI%rE*Fp|OspngU-j&M1==?)2<4=X?JOO<4zggh7jyaD@sJA8Y00pYar z*<(I0C)JFwF0bdi()*FDVB{S*=27$0xHLi|`qHa??caN7DBQR1R7=TmAGDfA4$&vG z)PvOE@PBgIL~q9TtV#lptnrNYv>E&uyFVDP_yS3R1%Tux`W7KMF_FKf6Z+m$#OKJ? z)p!p-%}abfLkMBZ4sS_Iz8gC^4I;w61S|L4bY`g|=2}RVAg> zXe4^FY5UEhJn`j`y5%pFE%b| zRdkI6a{4CcLit;ePW=+Mke z)OJnvF`UBNgaFMjB&;5ysUu)T_*}UWy`KQwBvj)zUg|b_mK_YL@VEcaZL8>)9LwU} zqhF0q^->gf+_?sB1AOeRr5D2XfHhhVZ28>a0i&1K)g!{9mQ3-jZDtKI96#F)ih#yO z2~(UyUQzpeqr{LOo)X~f5-lAa%5{QzhN5*j-U~b%+2B{0<#^JZoqbxnfQ~Pb5{*W; zo)A8$Nqwud9-249?QcQH^cTPX)K|Bo_5{FZFb?s!)C4A!EunoW(VXV--gtQV@$!$f zMW!^Vq0#L1Jz^;48(EONvQcm7Hp|EBM5*OuXQx+JYd<2C7}QX03yYdh*Slr^CV;4O zb#*lX9%M-4hc@{GLaurS1d^c`snJ9Tp=R4^+Rs?SN0X}`HA_fI+D+U;9#@9qp$+c5 zhI|a8#YRl1G+0&J@Rgk*)B&Q{sA13#Gha1dz??Sf5}Rb4pP&Ce z8DsNYON&H6kw93763rfPq~T$VgKsf7F%-TeKYwq!Qowof(bOj&Dt4u)QzjAkGyzjm z$n5GsMs88nF`a1>ra3FC-DBvXu`#Q2|Ma`Y0+(wMKMCDkrT`B6E9h?H2@7n5)duUi zHJ=l9QPfy{F@b?se{u2ye`;)~QG@$e&&TPncD1-$3c9;_Mw$t9pdidXax3tcIFxXo+E0Dg~=@ z2gIoTWg&3_?r(ju`EdE*phk~0ewSKRny_~Q?eB+qdDSfy{dh?NsX%xlPr#B^7@JVY z7oGTcJ^#HKK}d_*%!5(8SnfM_T$6nTj{5ZF=uC?W?{HU)Z@NPQrUAAftSl~G$v^pNBVt_usq#)aKiTn|GyHqCuv~ zsI47;hC_~zhXS8DIGD2httH zeCKzF?@|!s;_9kV!v3r{F}_19@RE?2kZ|(OQ9~ovA^JGgXUmjeV+#ht0txqnBS7?8 zfn3=h&Y-TT`5iwt{-1#nAgeN1R!Ya4h$;Y9n60s)TF;;Bk|rwj^lj(i_Kpwwet7A^ zt(e^H`zXbwinM$=Dvk)r4vm2zswEDGHLYxI+ra8KypFOMZoAQ2Jpni+57ve_SC3P) zcjJ2}2q!q#%1mP>zOy?mM2gM}4p81W zGwHB(MB6U3Me@P27mn&UN^Zc(OU|(hSa)prIM_DVO{xvkZjt_OC;N}cY^5hlo?_VV5CO+Ohy`Hjv8ExSKA|Ck#lE4eojX|7~R!`zQF$>8q9W{Y}!4bWoj?0BV|#h$IXek#XV;_<&W-K~dn z)oZyVSx{3h)RPXaM+}!Q15rU4JO>h*d;}inUE-I9fakd>z<)#-iw|gAa>BQggL%Af zXVJ+*a_kVfTK2?Smk2o^Od_^Kut5sx{fj()R-Fm|4YR=5*w}zH@v^^zRA%gkZSYYt z8pFxJ1`+evVorIQQ>+lW$$-TFEnu@f4$Z(kPjAXQ$u@Aa@V?8kNmndKl8BxDO#<&7 zeknrZy=(V>jkR#n^TsYFV;vTYi1O8HwW0TM>2I=T#D1b(TP%ml&XN+tdiD7m80k_R z@xTC`yx-e<9y!FqUIpt*x$oJyp{40h7?pha4LnM*vxW?J0=W~5t~v2N9Wjc}iDDDA zz>v(&bw6$tvPl3Bv|3N&L(e$^p=8Eug$2M6CFb0kRKKnJDjH_#$S3v z9;M}U%r3g{a$+KQi=5xMQMY1TaT^AK<8`*0@)Ybnz&`GNO4jm0ZXF!$=V)P?krQU) zSesw?U;Qe?Igd7iDS>Ua`17AH`T3Z|9Y#<2L$YmQFJIV$a?_oCX)gsh-+J$}!?MFb=A)jq-HqbrAC`Dd<@1;Xz9ZRupZ%!W(iYp~zkPeBN!!SX#T{dQBw>OcZ`kXR2GBF} z55l1bBj{?BN@UvWqeVfJn;rFT>+`R8#IINoD45co*5Xfp?a2{tl7@lWfSN%MxDpVr zPgN84mU{d*btX4fvh3N`Re$+=`D(lOOQLd9VHGvdY>(Xw3dHyHwVyq^=>B&yvNX7F zzMi(Hn4P}Bu-5V|=y zdcIXx(zL6a^YhQu)io<>Y0*K1L+R@j0 zrFc3YQK4T{yN@X<)h~iX4B+M5)F@ceq@JTH!Jq*^??A<9Hh#p7$QiM3E^p}y$%y<( zoE*r7nJ1ShF&7Wm2**m`Q7etu?Xnr4kAaJ)QXY6b?L5vMB-RL1)2{~r#LVaLH$tkY zn+pw4Y7l3Fif+wT+S@glOxo@m5%WmFAm@kt(fg=hFVn0?@c^Qk9Pi9Mdi?mIzW&uH z=KE%~N3iB9^17=qLPP@0i$}X;*P6WsiZ9T@JP;S(8C#oSm-+np^INOtM#1;*-_IuB zOt|vRC%B5j5WpF){YX&=gxYu-2Lns>Dd&w04SBk1&LmvF;{ZonCa&~-evqT%DGkbG z0t3`n{czrZ_$`}#JxI%j;7qX}Sdu${dEjx|u!21)qTJ$RCjx0v;cp@WwuS$%wl9x| z>ihq{V-g}1SyF_evWylfLMgnXqE%Xq7DUWwk!8k=>?PD&Q7KbYwisEn%~(Q+NeCmx zSh6+7jAa(He2?Cr_xF#_@1NiAkKbeNWA2&zm^pLqIrpCD^SqYlbxUniWH4vuGCh|9 znbfG|#($1ov-j4h^j#*^BWFEgfO08h_3kKhs@( z+K9@mGM_v-sDu(w@Nyj@Sr;!WJg=HF+YT~B*chhm?jwf34}DvvmY|hT7@&8kxTChV zQK%#WNS~AYm!RCrP=X3>WptVdi7971JXC@w>QQAH?}Z_uB4BKG-Q!1H0reJpC++CR z2VmEKdk>n=lp3;Jd*#U@1?RTP+$wib&8Q#g*;j_vf?ktIgC-2ADqAkGGjl24Dds|? z?s~W;SlU_(=n4axn4U^je0=s4v;q5hs>UH z;Z*8ZU`1Uh@iJ}svM80{)Y^r@17r3ZDnb@;`S6Z@BG}ad_VRn6vd5Y6FXbVkdc(-a z2{VBer}rAl$LOYuoxuP~-nf=EUg8NBxd7yKfIJYH*M^?$I_2~R1WbcYsz4&{(Cea3 zdV6QT-x1#{mYtzM(1(6M)uKw797$R9Y`jT<|Y zGkWMV=o+u3W8Xy`8TN39KR+2UO-w^vL?X4$F6kQA9O!BE=?fZT37mKQqNM7F3Ono{ zCnZGyK2x=9w~4QhRzj9<2ziO|{Vc+dwrhkY(x}+83pZzLJa(R6D&Y&F&g+%Z&N0Z_ zEC*b|63U7TgnBpdcAk2`)MRyc{(3J1q~Xd3)^_PMO&KRtZOLy)4*bMg_&KuYiWu?9 z`cRQ2&AGL!^H#RHW7jyb(qqcIyz61ZVjxWf@+Lq;WRXzMPYhN!AJH^YER{Ab@u3Wu zw7iGHU9PZ*PT!n#9URl* zZUA&4?wraRFkoNT0W(Q@kYZ6!I7noD;PJ17)c-}2^nqn2Ltmnrsqpjb*o(+wVfU6s zFD%%;tAJRnzr;`OO%QfIVyP3rHVn!7%ee~K2*dIHnSYM3w#k3Cg&A+#HhJsb@1S@@ zi0rfFueNCry4I;m2DLod_CCSs@aC3qN!iF5=zfA${HLuofVjTDkKijRkL`!U>Bey*M*_qf!x*X?BAGoOcBpY2GVr9MMTAD zA8yjuN$*v?Eg96DW|NIVX+kx;scTr#e92OXa_tt(s&`WOsrY^3q~@*XgBc`EmaSI! zmE{wgYt#<_5!x{m9@72k3!EcFr-_IdGdC7S)MYFafhrq%wNy>4X16Jr?mH6tub2`k zC89}77|Ais8zys!4cfAT+Dj=|PAiGCbNMWGk@QB7I2pL)7k^0{TMAL!h&-0VgdyBE z@DHucd%I@P%BsZChMILUVwP@i z=*77v^$vvcAoo#5kFn1lCdVl&4Zb`oW@v$Xvhk(uMwcp1_kK(L!j)AqeDtJjkd&B{ zl70~wCU*ODZ8ZdZVj0MH59l=iqqzhWzVwd0h=gCT?%erOdsypdfXrTV?TH(@nan>u z(%94W{hi~xYV_~=?BpA{oP(2V-y5IbZgipa=v=jP2MdN~g^Ip!`H%_()CxRWbE|QP z?p3qET=*8`95$rTa2j|qwP%@8c!SkR&c@-v?Jy38cG4KfMp|y@wOX4&n24b4S(#|f zzfm^q(76uM@~PNhHn4xsm!d($P@niZ`5<@52`>$CeHT{#WcA*`mWD*+v(Od6hBHCF z6||kd1)Q=w@d%}EQT}`z89%cSj~GWL80m;xD1;OdPqjnrA!}97*Y2TzW%NYTR~9cG z>zS>;zp0QX<1dHQ2;RtM$UF$PHqrfzN@VImZOV(5r8D-%R6N zyjsqcr1F?$SPohcUZD~GX1LWro4Lwa%x&>-{=SP;C6`V`bXt&ha&(3bu1c+C@sxzT zo}IYY>UpXx2Lg%I)R3q8QI;=Xo5spQUJY6MfotbjvSSFKMe;~f;z)NTvvH7O9Ye*C zEy(^Y%$q(w+t(^7RW~?E>5Ldqgcznhxy~!s>`wWlI#REx8~jt+kB^5MTox;17vtK= zg^YAI(f;?$@N|jX8#d7e`!3jkS(E=trHVhReAJ>yiD*Nn}ECs@^) znwu}TyW~L$m#TUFB&6_@_J|gK6=V{yGHgV{Bp|w-byIFHsTQqX+~p^Z^T9*abHuOJ zGc4jSFqWIaSZb{pLuQH;em(a}t1Tl7{r1m&-4%vOAk|7XF!QVHPDx$HQ-$?H5fNhfL=U|*&ek9zV z`}^B$d%&kLdK{_g{D0;Gh239QeO;QQu$rtzYiOdyvX3JBifGmK*5_ElygPnBg-0B( zEv4-U&`tmnKkGR?OZdoQ3*1a)bMa5O$~rv50?(FACi|A{$96D3CaZyIl2*lnZw!C| z!wyn7sZdm>gzv4cZK;J`*ZhZ?g_XXjQiHLf;vJj-Z4=EVvK@m*R1IIWgoFHJ7Zq6P2Y?dk*XxI?&E{6@e5RmKOi~R;PQ9ez>xzf)yH)| zi(8SRE4)TClC~d}YkRa>3|}E)U>x5h1Y-!A%@A$yL3Zb(u-u*qlEdI!*KN6T*8~So zDTOD%R=;>rvpn<H}BYZ_z*WK4-tY_<{SGho_y@a{b=<8X?+sPDZo8moQ$pPe@_4HCm$7gZu0p zx}(%bcB`ow9g})#TYK`YG%ic~T0|lCoBBo77MpiRd(S+7YT71ITD3R7^S$rT3uEIx zg-OfuBZxQNx7&{~#Lt^w-e#7!CEdP#8@JEQ%$ss65Jw6UqpQ>wrq4iO3ju^AWPx~A z1wn0(PC@qSh?`$GRN<6DGs}NU2F|Co3 z2j~{c^-gH~_DH5HGU$0-N}Wrwb>9e*0DlI`DRqI@m$qS-U-g?o!zOkO1<`Xw&M$hT zhFNz>(&P%UMPQoZj2GQvGSAIVN5GP|S|bXgAHs>iyFnfJV^o^epQ085Ys(#pVmhmd zgCF8$kdg1!kx+r7GCS7C-yig_xy}%zr_-+XrtI<$eIaF^NUHB928v7SdZs@mbq6CK zy$hK2n+0HB*%GW`z@Nv0`2TR(PI{@xAcbI&dA5e3sk(?BmNn zKU+syy_!~N&Xg@IuIu@zS14Yti^C=SW+C1{$#3sx5s6JM$WTcrX!NnY^NABMC@a?@ zp{2!Drdi20?T&O$zR;+}`pV}!rE@W%`yz6Yxnf*1^r%^R3=vT7+}5VnHg>Atf5Li)sPZBgna}sAWj+`>J*)cE@e`IuhQdx{pc*<> z#+cxb8yD~+CPd`wuBZc2?rQKA=AW`*k@bP}3lH$B7NXoml#5>j8WPRMvGy|fr+|;x zHzYb0k-R*v-N=HDyj&z`w zQ85D5IHak`HEi9!-LtjU9fCeFv6An^4ihUQU{wP4h9B)q8=rZK1CSMCu!HUy#jNNav$5?UMU5 z4Q&T`bMnZj3R)CVZ?Oj2b_G0c5kz0oH^E9*M zE6g3aJHnuO?YvBA{yYV_PkR@^1j3Y~y@BB4DhKYwn9C4@Q21Bf6Wg`92C-B4g(khz zc;71loAxiAaTpY}ywW>8BZql9LiSok*o?0&aN|Sh- zrp&4RYjfdn4e{DEm_g=CAUr;O*M%bs}tM;9t-i9Y{#Pf zNE7rTY5iT}U@vnEQTMK)2r1s8^{tkYQxlUe?3j<}=hRcOSyRJ};*1>if{H;Ji%5YP zw(e|cZC%P%-&<%XD{gpxP8`oi?`GpKviJm|IpgcJkYL!_`!hvWZf`aGsfT*1n3~cV zH#$Cs2)0Fv46+&8=9od3irRGDeC)afsxCFH*n>e|Bw4^ z2@O|dTn&@I9VpYr`|y?o;xL);P12!%IXN|fqzm_=KGfbCKyA~@%byD(zBs{-Dz123 z*XvvA92jUOw-R1aS-Ar*61eqm*y|rw(gPBJfEzT`PSnNe+;%;DQ>=1>XHisPQ4tKf zcOdNP6j-S<6MVER?)v_GzMglg=}&z-q)pW1KAc8%{zL%_ZeiA4wt}Yht8l%QtIy^x zyk~A_+{Ju9ZuyuX$R6VGuuxcMrV~8&Yq9bZk9Py(bJ~`cuLKb_G$ynswe5t|NWw;o zPaC*Gx=Vwk28-6q59vqABC`yt#4LeqNo;{&H_6 z`E|+#i@-e%%+g7CMefqN8qcDAcY@+n{k-a15x&h#%D}t^zz3h}*Td>rM$pig$8B}O z!Fo5tQeTN>G>TlRtf-j%rC<#~d&c8v;=p{?6?;lyvFiuxWZ>?!UmZTGFGe&Io<5Z% zP*hFpPmUODg%qFP^YHN4VjA{^LLvA=P0{G%sC15r$(4GSzx9T{toeuw;Nm_thYQx; zgehx~rW@lAMVnxlv!=5C=ktCz13v`tB%>-Aole%T=3S-1DP|%Ms&nVq?A`rWBJK&Y znNC~7PVKrr=46@zG%+=$W6i^N;Koj0zmco&Q%%E5 zX4qTTP&3O1uD5^PEZ#KB;cdUZ3b_htS+6RsfNdG-IlZU|4NX6Ie&{K<=HHm~x(>iepw~WvY?Et`F;4$BX)v5-DMmWm`@#kn7{K zs_w|Zg=e<1=Q#TFrf-AjH}<3+YB74ebTo1q{r&@aL}`50>^i!ObDdM7;!#QRT2e@) ziJ}bB(nc*dlBlUIcepOaOZtLgva`4MwhQg8t%tUDMUAy;#!-zeER_2Co(EywG|ep# z1)UiKz`9;sTujqGjN2iKw1)p!MN1rt`xaP0X6u^~-# zBMNPzc5R^_RT-a)G{D-UW9P|p0U|<-s>Ov4&=CfiKM0UmDJ*-0HsafmUKn$({8#~P z=#Gx_*~S*a^t2=u24p7+3wNIVA-mY)U~porx80%jlx#U6yuGF6N~YB-jP-Q4mDghZ zr==N-4(e2G(sBK%RjZt-Hw@UBFRb6F`yV&{W@=~C@2^XZ*61*`lYmy3E1qH7fNNyX zV!i)#iTTfvJbBJwM-6pqDq-%a?grBPZoSczQC;$8El`>{Zn}KwfDmFJWc~;Ur2(@V z6jqXFlrtKoeqbbH?UbI{3A5VRM*A&47E$^x0f+~$@}RKn1^v$tPJJe4Hj$6%lWQke zKy-TU&~H{8z^3!wTc8?tmkmmOq36<-?1KEd{n^rUZ*?wK^OY_zImlY?xG16U07(I} z3*Q)d^pcQNidW!^^aYORdMM`Z6aMwz=#2|S@}+5k-0gywqV;wOC6`CfY2c3IS0C7n zwT&#eQ7t;6&q0XW@0sGvesBlQ zi7s(@_%fv+@8VC2`FSPwPnp$ammWS7jH-^htVHF(1XJCFZ`8XEb4<^6!*V)pODCCH zr70PugIw!NMGSwhTpvjUkBT7=u%g3@qRa~#$@G(Cm#DcDv!p} z2Q+q6VRUoh2Rz0M0ivc3n$*rm-|xOkXCMp>4`05loeOuT-|)LJGDBN<9eGK?;e-6) zI?lTeEFWFg-wEzne<08RhjMa0oEVEk5FW~JFtEZ^4y3&wN5hf`0v#cUkMy1r zXJu%1p^04h_ohVqo?ObukjiXDocL)LgWBJJ;?ku7V$&gTgYI5RTDbX+fHG$? z&7!QikmK#^JIdDCB>uLj^x654%)Q^geTz#&3a$h*#kR7MUhetUnvGwdZ~5(|xTIk< zsyYrPz-35d0nqx!p%H4~3P0oa6=~Vcsfs7gxP6+{ovB3IoD7cdyDmI{5`rM0gdiP1MMOlULnTE(Kmn;CrMq)RMY_9@P*hr^V^A7II;6W{ z9BPP(?;d^M^{sCoYwvxm{p~;WnPK9&FAVl+o zf8?a#F99RXNe~DzlkYP-Ub5|Q@cN-^12*f+{eabh-soPX?{YSdwJEP3;wdbqf z2t5ktY?%yr&8ZqG*cLDK*liUt$0<;3rmj}{o0o`fLn%By-Vb%SF@;iK&5k)CXNvU7 zqoc{G_VE;!@XVuIk?EJX?Z8+DeV9lq&%1jywx^*%YMAuR$F^Jj>i-Cy(+ms9wpm}{ zxlwUuxV_4eIC;F18dTqfv*+l++0S>PTW_#G*|L};DUI(?kXzZIl4+zF3p9L*;NfK` z>kst9{&vdlYw=!zL_cvNy~-{Z7ojl`GnP}p^|j?SpDN$B5^ut@bKTSh)R%Ovc7$|$ zvwyyBTTL-;PpY~1oZD38MvuW~(%R(WxN@G0&VtWdU-Q}V+*E0O{lWI!Q;Vn|UK?<^ z$hvV=M0L0&?(?hWT%m9mxg4vo61;5seLS6k#w-zn?36n7g?=UP5Tol$l{&KFGv%MS z;1Bm`S)~ImBzzHZ6%h&Pwt1A(eh~7Qn}5hAzM~k)6}nErNy#{~bx(Ktx8;=@RN?Tc zg!&^gZ&H2sb@!*i4-5tx;c)H{()M>{Ary~h#Z2a91xZN9?^qvPEL86o-oUhMa)v1W zwD6E|mKRgaziBnYvLq%V=3;&R)}7zlNa-;ow!trxCL_QlfNh^@!7Q^mt7weF$@pW$ z;J};kb+S)Crw%u=7iR7l{+zVbWLU{anT;q+c_SvpzAwv`5A!+INgszmI3OzW51x5v zZqN96UtXD!#i5B6>8WC4+j%aLe|mgbJXk)?sn6E-{Dov+n=d+(W(L%gJ}vph0}Dez?kgLo0Vq zjcYH4LhQ-T&JM$%iWn#7w}Cy}={VxC>`AwVSzv2vd)#?xIujR{io{FoWJULwZ|RCm zPD;jJVh@>a40D#qQdU)c6c8YNHLLTfq2bN9l~hj-Z*Vu47- zmkn>oD=Ly|4F?Aup0u~O$CsV%R_qc%c-lHmCkCE@iwl!HeDBr$YM(?(Ng_l8O5GIt zTA(6tx8HolFHT`lqBBF?DL8GwF>^M>diMwEs=o{oBykO`QLpWbMzilfeW!Tm&Yi^B zg5izJO=3oo#ttO$GyO56?4*zww%^I0)#`;>NvVdKB9%wA>2RYPG#*BbbF9XuUG=xd z`*gGJn_Sw9)C(o2Tc_6HK*gL2&u^e{qO-nRf-}87zm;gbrq-SC{VWVESwVJocJEo7 z8a4Nm%yFj;1*SAd-#6<<<;rYLO3%=RXvcPV9m8~eqi7&*&uFMf78k0bM>5;gGdZb0 z7*SwtZQbI9OuGPa_Q%k|FOQ6k-RQL*`6BTllGv~>IPr?j^2K5=vpZZTS2uJEWxpO5 zX=j^z{1_2=s^4*clfImm4KvsppJ_sJk^zP=xOcLaqnf~{HgwRNcKZj`rO->Ywt2jS zU}O6FSE~;vgWohD&Or>D3oOG{Kd3jyjghEpXejkn_bESS3nEgvK4CsHyb_E4R^Q9C zarKkxNuhx{mxu^uTG|UeR7Vk0Y+|0OcwCns$@H)t7c3R-$AR|u+ax+W&EVxNdn{*# z)Khic^N`45k`0uicEoCJan&CVw9Im>d7FxMM=zJEO-WBE}d+19P4 zQ%IpYYjFcrz);TAQTnyo$`)xHcg*N#qZnhjYR(rjp7-xwPQ8TeX1%IDq7Jx__wFN2 zjH?pI-uW!}T7M3*;=vPjb)CQ(i*C9Z5=V;@8r-_+C)k%OUV+GOv9e1`u*PdoX(TT7 z8Sv^kdBGw-&i;BtBm2*c2;LKcv`GtEN$aw`c=4jLh6egfwt1H3@L49f%`+XH8)X_b znQh9E2N@&kHJJzN6q{-O+z+(&IQ$JOXy1ec$^MGq()BWLxt#ru?lnr% z$?Aq}wL=G3FbJF(eZ{QLuZRd@-WjDiJNIH89`IdsqM;n36n#JVndd|QOxJW8h{em7 z3%?g6a$r+K(?QH4FTER~4X~V2=~nRZ#UE)5GcvMTJX7{Vq*NDd8(mg&iMwSMSe{6( z+_mB(nKMUbfL^|OZ}L_e*DQ&t{6MBFZ*mk%il{`(4bcanKT|9Bl{g*a2XM%76_#TdE*8V!+a_IoOqW{lwu2;& zfjjqlRbdUPS6%#sMoOIVrJs=$=!7XE@f9W)a^F>&!ZQr^42I?3#pzA$$2M7^J4kBh ztuBp8Z`knAEiT>W;ik8-v6;}Sx?a%QqMCB6%3A}%5}P=*V|C&S?N_}UeNB{9u&;xi zD7TCE)LHmE|9szJcLIN0divFYxs3lP8e#=2o4E)XrE zT=)A$3PL!KZ2IWX#~w5H_%ddG3IbOf^}BuD>+;W+HZVOtMxGLUZY+pZOMPJ37A^zzB-DaAiTh@(lnB+B^-W2J0r>Vi0{?SJ3UU%<| z4J*sQbOmPDh|VN$Tq=z#Ev;-;`hL6*Z)li!>mQmJ_Bv0kMcPC$Tto)Q3?hC*Ni+&qJx3BKdVTG)t0)){xiTz$_ohaN8( zE@6c(PM$3$izlF>4lY7Coc!-M$2C7d)OQ`@ikuXmLZL#wF76`CY7@C`%m5!GRVOCg z9`O0poAs8uK=4}0)}7<4;|HT8_cOY!U!%Xl@;l*HY&T*Ln)y8L@{P#}6L~G|;C)*6 z=405Bf8Gu8^45qEFm;%!DpIAH_=iz4vSHTpAKmQuG85i8dQlx|@%NBY?Cx-}@71D< zNnU%0GM`OyeqVgZVoIa#mEsq#}78c-}XIqbxs+un&^Y^X6 zWxa~t?=bXynij@7kBiB)Z!9yp(w*?>A!kj*>9d>1O}Js;Qx&%8>sG#QrZ|fS1!bpU7q4M04JUwjXD(EIBzw z!j8W`Zm~4*v#Vm2K5c~~kEuMrL_vvLW@KDhPV59qgmH@>mjn^_eVLhHE|JFL0j8K% z#xX1$giTJ&m>0`!a-TfL?d|2uVYCG~Eo}I}oaE1B=MN@c&}EGrMj~#RxA?M_#f%EWvlD5)s(=+B zySG%{qw|lNB7OQbYR;YZW4jQPD4G>+9f2^e2p>I^Egp_lh7GHW-y9AmL(BR^k0!qi zU?uQljRWJynBnM^zKjX27h=B+@nir(|;hu8Zn>U)Flk42A?)xU1n z$|6}1z*UHu2BXkXTZlrv&u$z{Fpb<1aq#Yh!E=KN(l7ry(I;QCS7=^H-w$0(RI^mJ zCQ28fGv5DWj!dKk-yG;v-TS~-#1B(->0V0SL81RUwRF$NKQThwsM;Sh~hYTO`2Hlr!R}^WRwbypi*=dD+Bp~Z4zpc zgQ8(}{pFmz6xDMgojKoQV9FG!${k6Ajms1Jl5&^RKeCY=DUGCFRv-o2#{_eW_;B25 zLCiN4zuv9L!?2{`Yf2nV+RsU1df`4pgFINV2Ezt~*-^S4U#^*00e>3h& zw;q`+$Hn#7HJSZHX6jYG?Ax=(HwT;%-@b*LT{){XYroI|wbCz%pbe1xE+_EonzT;v z;-cAgP8n()yE_17ey#H208c>5T5y+$OHK|xJ@vgS5tCce#9eGTuPA!wINZnFoZHdH zv151H;_{U%rlX&q*S@b~=67m-vF}ab4n(c2%zvy8PE@!R?$JYzcBjaYmP_ad24FDp zi=~@ya3rS-KQ=1YYrQE-N=ky;VPnNFh6W<3EG#W^OH0*HC?HB(TMJG06|q5m<=B{s zM+2_Bm0!NZ=H$c#9g9I)*tXaVYY&UyY<|UlcPa8@Me)tVqS0NTw(ane$m;6qlCzzR zEtf&m*6Qs&p991I1P(q&#gZNlE=F4_Sqx>!NFPm2T2FrdCHs!M#rjo`eM$;-lLcE- z2lG)qUo6=W2p9SL3}s~lRrbV-!8t9lkyH?~MMQNYD(|J!NoA(3>kUvv2J4y=vO1fs0Q@;Wk-YGizzThxgQGJjfZye@L=Di^a=c~D~f zmmgT_^^;@P)fsU<{#<4#8Qua*9n}`0h6<$V(=GHu(1k4>WuliQ*Z&v#?DO|5_l)uz#mrN%`A)2V8|=^6l9;U z<>mNNss5`n&wi2j%I08)`5@P30^}z?U{1v$EvIXNQ9n#yu=SEg`8{|QE$PXh*_u0x zlJ(ln%w6$gnZ8e@>@LfA1wSZG4}nM))o|Urr*?vUyUhY0w(=01Qho`><4!Z-SH=~8 z_wHSj>Eo%`w6wRwg8YMHv#$URKXY1llWu&KC_ot^|zdPNjI_E(xDmgxy;Nx zt>bq-&atP*<#wx|gJep0To9d(jT#xb`!!pdWW1XJl(1$q^&UMMKrd53AW393w;4e#^n=Y8tvw>KQAr?ns5VKTO za<5#!m4!ZmzxIbeCf=24b6+h3%q=TEHn4HqV}+CdeXG*u?~@N|Od`Ht8Tuga?0&4A zn;RN>O-4yM2re0wmG=bt8NsU53VFotu|mKw2%N)+{Z!<^fxBAomh3zBy<5iL-*wQh zgNM6mQs=Q`2d$tiaoJl|v6yqO+yi47-w-U1wo}3rVZYy))5V~-XCgWj3*%!O+4ubX zj&>DvbaZHV&pFPwyb^OZVZX|frMx{3RrwA4zkFpaAC&)(?lE~@2+9m1;;4YaSjEa| z$f&nlTV9b|ygo-h_!W!3ci&-V|9MQ#@DitWTnMD*nS&N-&B`qtU~6h+TCl-yJW_-rVA7E;7YKXL6#!SaI% z)Kel)i1W@Iqt3}@t6z~$$wOc~Y-y5=!13}ANG;LtslWRv9a>E>4+5NZ*VX9S;)PIcY~XgS3j|(@laF%j{H8Hp8Ss@y zu>@*oX4mq}mkDsD{LDDVQ9LY;X+!i=7I;9Uk_DBMPH^HGu*)wR1HQL2 zC7F=Av=nojwqaCiZ`wn+u4c2xlVbEl65az~`n`M4Y@ zJ(;}9_ajxfbqNcK824)lfCAzCnQ1e)v(Nns%{khtR9}to<%;!Jx1Gt&XKNaJ8Yy*$ z?s}hJ1XWW+XWZlX+y9fAX4mZ8zRcRBCAEV}9W~{) zN>13=+@1bB2GfzD&-M+Gv&#uMRY`fY zi=%#H*VoXzchkBq1plir$2yQaeF}yL2@0JGS73YXUYD+U@>{Hc$T^o;VAlJ}#>PgE z;!D+0zLmP((G#2`J?YXlsxeGrq;kQUA|u>&Fa#t<50z#};;&l5hD3{I%4uoEfB7br zA$+kxGg`a#VNT?SY|Ck2+#rKANEh7fSB|vYQ&*~G^rZ;$2kEX`#mLtW-oSrf!iv~a z$Ep3(OLVbG$s%lbT0G`OM`?nfwX`3pQiFKjwC@oW*s}|t8m&3`7nWb0vOBIEL7~!o z^8jVAF@6mtbN<$^>5VQZj8hJcX^oA1QtqbJh1&A|y;L8J_=GJaQN3qI;-WDs{fr?^RS(vsGJlb@sQN znz>yRuHw{Jjef7DwEv;q7IUABkX~WB!R>&_yTyV+$f05U*x?JYe3Vbim^9R*>77CX zQu) zZT_0^wRayKkv2K`z2^5Bz4B-P?l+WBPsX~-#4#^JbqLdKE{S{)CPlS!Z9nMP-SWv% zQ^$u}=3n%u8l2eUiUGX9x6<-E-$^=~1I+)EsW}a$k+> zjLR6*vn1Y9)cHW*^{_Hs^%GP!`G=JJ!$ajKPlEEl(1nGC_2gQeNX>(Ek8x}D?c@7K z6bL5oW;s^IT!YUYT6wG&=Z{O)S>A5}Y^0;Ke&Wws9^tD`y7$^t`(Np57V=4mbMyGk5*j zKaJ;73>@@4-ScS)3&X}ulp*f$322<#XG<8>nrjYd2t)Wi)B{^j#VYpnnA2Ot5s$rg zWj*W`<6`KtK&o|jbzsV_C1{ax%F42f&U)wXiGZ4bBz~I3NcvVYhe5sjCre~=z*AY! z&8wFhL6YpcxQ_$e7Qg& z=AOHFqk-4@$2m*N@$f4GHv!zw4Rkkb99hW?WFNSN6VNFx_fAOyqwcp{-whBHQt&x! zCSfZ}Ap2lqb*S^`r7Zd~eu+ZK9U3g>e8w&|={&CAgicI5cxAk}GtX@EEe*F6W zl+wt+fD$tCVqI=hYp3*RS?$1-V{pZ9KlFxm`_ZFx?)1Zcp2wl zO%=USbIp%eB)QGIhSSe=JtS`x@xoBh8pmr8lVgwZmiKcCDB_MC*u3vH5qoh%q-v+% z`2#V%H8z1+ttu58jN)3wZAM{N0wq_aTY9iul(l?B9s)SI*`lu+$9&s&{&C(+?Ohgd zl)mFtT535rG`;OY#&&XVKHL6iIg!|?m)`_&kGZokKHR^(WMlZlhQ6m4N>&FN6a8os z8n*NMeVOK5p_3fVNsso+Y22A@puPtZ_$pU3U=}=fIB(g-p+|ToM;}Q-hJQkoV+Q9JH$7m!xtr%P^QwMyQuy(&(yOw=x`*A}z z%iQi*l6CvxT*5Tlo*PH2cO35DT7UzGz%Gho_g)pyoFX)92+58lUh5(DW2Kn# zpCsy_ow;*Q@~b{W_)|rVTby}aoao(&vr*$`hN0ZQUM76DfBV1zL!g^~h^awik`xXu zbp544L657P-?Xo`>=Niw+Em;OyeG+;Y+^OpB;NS_we~`a5ui7c0FE4qYz1WbU1l|F zPqEt0k3|2XgH{MjGu~Kp^-YLH(3vo;-Q@KU%gNvKIR5^MNiJLCS~hyVA5s+DlZzUY zW|%%Tw05oyWNEnM0Hx!z5O zGrw&jeh|n&37)CWKQuHn?=Im|jJplL%qn9T0`Oo#VPSqr)1#WV2VQ!-=`6;SfOhOY zdwjP-%$VhRN?_#O=0)}he?S{H(?=qF#$dE5xY0*I^#Hzbb89OuE-shH6!Nj8jL-_ahP(6xT;E^TC`ARxdGcs?o>_yg6WJ7(wpm=22IzM4~z4q5+z?-QV;cck)3|=tId4*}b<(aP9}$=2gFi zUJV*XM=|_~0@??6!pz2wBaDNUO^=Ry!^Vr}!mMLpBm5?n@w#G_rQY&whq99!cPRC@ zgu|4XkOeKm>cD*fQ^+pXM_&#&^roiuZ&|!tLs~bTw7uE>gGqn(`#=09i+50f<1fv( z!3+aE5OSYym_c8&Sl?E=YGXo&;aPQ+*HaPdBKx;P7I$-hE!=J_IS5aB!Jh$0OQHa? z_G2X_OdXCaB%z#Z`l~i|@7INISPd|h_b+nVH{#etDo3T~^$aN*=p9h}4#K#KD9~|7 zF~RcITRiTGrSqFK5x2n8|FkaKm*b)Ff55jNJXR<0j6d6H%+8Lo*jS*2!(o8kgUA^f8Fl4Afqd!Y zGZNI|tspvmOn_$}Uj7Efpd*c5XGTtuoJMY*3gyY*nl}xM@aGjBbIMdOtyf8^CwG%a zWTSMdt7=RwPm0XH^zjw!wjFP&%^r{ai#6oZgcFV$O}iV+x*V%{( z4G(KpI*9xWPxn{Y_!R5V{8wTeE(L8&154598y!^4rivaewN6RB;tDKIM3X=d@zr#N z98*J2uacY5C1+QUZ?|Nf_aa$mEjk2U$XfRsesWqDfQ*E6UY!)AwE9GP8&p{-o>-jR zpKh${=>_Uo3EZAui9WSs=gH1#V##xi`5huVHR+$%1Xw)7{r8?cs|pS#1=-^a%ML|` zNIa@6X(CBVO6u7HRpzTW(GxXWFy;;mje#7%Fdf&Lag)+ez`n!?#WCUIrq<5XY-ds9 zA}5N(f{W~K6ndaT;+rW6vh#hDr%#unL};!kA5qM~3peCNfp89NvIz<4H^9j@`}IE~ zAOMiyArO&W0YWiP0_lim$!|nd4iKFMIhA{v5=FB*P<`44bT<&g8Te!YYPB^aAZKjw zKdWCHr608zp#cZxeuhzQIX+{gL;*&D(2x4t1^fyk$Db}>hZE*dIXTa-rH?v{j4^r}T!5%Yx$gL?CWPGdjGq1Q7G z!&|bIpf4z8qTK=I2VW9%uAhW-K6{(KSC=bZq31n2chrkT_G0Dc*Kx`ATVAG}kIvU8 zF9f7y{d6zEhNQCD>G@ovm_7Y*dxD8ZUn{#Z={cVe%z_%A>EnE65TsabLw| zLS9=1ABVWETtB&>xF@Y?KANC?VSW-R)AymUV)ChvlYf(660miSue4(=LEvp79SFh; z8`u6MRX5r&WuZ70X3cuT;M45dy$;>%7ux~a-c61&?7LRCak(kEUYIl>W5wJy zd!!MkiaZwigI@+z4~PN4Nu&M00d4+`lAM`($R@ux>+&lI{l&e*TsX}%xZtmocwR}U z7UC#yE_CIesmZBOGstn7_LnFYB26ZISMDsIGd3nbdIiF5O^g57$nN|uN^qwrGAzTQ zXlu);5CH1LHN9)}hg6Bb7HMj?wu@vU5wHq6SSdc+>^e>}3%){nG%I#8rKeD-S4@9C z8imaE&A1fda3#Xyf|7+-Pw0Z094ymug|oVrr8LcTF>Y5&ygQd^U#arE`un^4I70Awnfaltvxm#~yv3i! zv}gxZmR6S3@NWSS1(L|QOn*>F`~^0b;>!=1%0#x9IF`!htQ1K)posoR(h4?ws7A}6 zVhja+W)Q7WEzx~Zuwbvlu5`lh@d0@gZCLBc)l~+2%-MQ_SiyNdw?(g(X@ci$`>Ye8 zfi!5ETcd$9++kDN?=PHZs=-cDSW}55-@?A{65tVGsopog z8ZyJutY7+C=2&%F^#Tp&%ctlwMu?nhc@rk~?Z+jmx4(3XZ2soxkV>X zc@QyvMl;?>?;=P~gjJ=x!B&a-w6bhDv>toCSD+?uAhXwTeY3BsVqpxlD5?>xmj;-e zc_O{E=9&2a!u%LEB3_fDqdYRN%$sE(F-a@b%UuePzv^9OlHFlO@POnoQ0KfS80~NCxRjTuY z4X-zGMCLDO4FjQ}z^1S*)A7OLzwghUT}}u;wC9CB^P7UJg1~=UvGhMz0hA*FK3>%} zG~C|j+n7zhWz=IZN_+Bcik42{qg;Za*MTw|XauwXuTnf_QES)-uq}aPaos1#Zn*>n zFCHEqTD!A7GVoK<>ur%o+Wg%9MF%l-I~?sn8XJFUyX+BjPQL~e2&tmxz`(A78nl-b^$H@bB&KCoLDLe+LvM zXUbok3|igDEJ#yA`HW-ADKFomy`4Z$PY)G-R#pPm-1)QXgp$#@Z&X)6)?Avl)9efY zL_<(XiQ(BUt9mx~OD|Yt2yPn_zYRu>1A=P{6yX5rLt+zLBujgvDc5PO^Qe;~aLw^f zii(O8mW0lF8HK7qx!a!``{?f8mt;avC5!!=~Fm#1o+MDJ1%rpbf;nw*k+ zV=FV09R71w?sXY%MO;moIBDjI^^2|S}`AgRWpasj02+k!VxHL>^?Z{djk`Yuh|2N@&D9JuTRP! z8ygFr5^Nd-mz}8^7OmCcei=KJ&=_>;0SN?4N00iRr||d=VLVm_1}@cA&#i^Lzr8+R zpENTzM%o*E(b~?gb(*B3%@BDs{+`Uf`)A68sz{k$IHD`9i-6`tA_xZ>=Ck36Z#ei& z-)cF-{}aZ4-urDwtV}!mYHZ?bK$a2JdXa+i@8J4B#8TMpN~303SB>qo!t8izHi;mg z{Z-S6a#IMrFx&Tn+sppskr36Wa+7bw8;pqK^9(ojIGT&IpSGrlm)&}-zf;Xr_f&2iJLJ`1CG6_xBskJ4{ zBua)o3dXXD@&&%4FRCK1@|UfX7Ye?#x1d2Vf*d@?idEe89O7&S>0DhkIT>^IsR|DDn z0b^#mJu%or&>f(?O9Fv-W^x4^bX=QFNzod4cEJOSQFiN>MsxU$^wq9q`$1}H9)%aE zH?#ZyCi+}dg!)Ft4uQv}P5So2mUX)V7b%uy_XHqugTN86Uk_qFmX>xLXR<=bz2j3? z|I|M9WYgQudatv#_g8;kh+tUjN(OZZ2)yT>BLOhF+*`QD)D5~NFzEvhPpN0{g5{sg zHC_zUQIeFq9cdzhJ#HshP-XooI@)QzU+Fl<392R=jpnExWU->E8$ASIbP9G|`!>*^ zA4I_7_YB8CEhH=;@Ef$BuIcRkX^L*0p1iv4%g@2d`M}4~U1&H%g6LDHQVgs3Yi^}z zruv(`s;YvPmX_8wHs1^cbRU+r&c%)4`XrBtf7|0bsT+PznCi;q+g$;f84P;vbX6O`E-0#gSZIMLpU0xL_7f6 ztm~3ZK+AAvruuV1LE9atS*gCx?3E+LKBESgmyR%Geo0m+I`t?ep?n+D9#Omcxrq1_ z3h1x21m1Qwq=4{y&;6QBfx8#GyX5ut(_POOnFt!yk1R@iN^x9&Kh?i?*qp5!a#hkX za!4e`gRnSzCoSN9n@5kIC^}*c^z~yC6D^*(eDB)9V+(US&x9~aZC_zqX$(9^$VuFq zkTKOdK7UopgwNfL9zc@+QJfwMl0s}x^zs%^X$cH~kl4(j#CEE0#J>y|+LP3r7ZC_N`UV(Vg=?GlE zE{yT*-e2uYc>MUWyMPGY6zt4u3sReKyVMiObQd`>WiDjIphH8T+}ih&LM>jYs+^e-FK6qWszm^)D(Fo2aYqTA`5rOV7?vH|LETwOv zYR^d%z1@AKct>< zYy_y8Rq~F>rSamvY0X7~vuVZ$i|a4%q`yPIsQoWg==)mU@d@zLDox9iJhq&%`ZX5i z6Zn~LpW49!HruF-|*> z4<0~36mi{iaAzC#IFa{teN1GFMv}}o{Hyu(oZnP#`V>K!B<6PB%@+KO=jxAa!S1DD zU!HGry`ow?)v&%oJb68~wVwU9W--0b^&Vvg>xLk0FQgw=Z#Ss-91pN??pI|zCd<71 z3MoSAV~3y`&I`4a&*P_i`&XX}Qq_Nt$3BS#=aCYf&MYT%Tle{G30$MRMFH6^d$e6y z6GNr@ssGXc=WOI36>u~WnM(7u(R;ek63p%juc|jc!<%w!yV+Sp`%#RbriUm`!_2Ki z)hBJg#&nDvrDhU9f<>oZ^um2V{|8s~>p^KJaAp;MKEj)aO}Y7k%gAr1D)pXSvO>&W zJ|EH4j%W7^nd6=!+X6M!d+xlcApG;deyyG_H1xmv-%`00SinKlAV`1;6{4%_~q_#=IQ0BHxCzTbQ(fd z)cL38I5wC47TYMMJ*OPJF{sX8I8sgiIdHD3#kMN%^XKp#r%Q)uS*z%v%}mQ+e>`D^ zM8B1r-58wO<~6mS;`TJ|UYET=SAG+`J4Fz{v^rNwmy z{oov1Q#h*S2nkLw21D=OyRr2O>~Pk|6nlO%es;xcmEFNwg3=d&o1yBpoX*$hDGPww zOZa66S9ajhuUj5*Xt^Ap&FdTUxsRNaMQTZvx=zV2x zB=f6GZW1aZPYn?l7ymvvr)3m%UR?ac8E$QDO#t~^N9Teap2e~DLCQ|QIXDu#V<&xn z2>1N?^K$(X=Q_i#-d_4KTn-E;&Zm}snSLqz=x#LK>`wT8EfUsUp~BJlcQpM~f7ch@6k8oZXmBu|N**@I~bYvhf5`*XR7 zE$6;#e5&S+8#iLJuyo)8kyku}?RE1*rn}Ldy|OwTYXFH{bi#*+Us%ZvS!fMe`mpWB zB;zjz@3O{Mn0FFGqOVB?Z`wvE(cQ1dfBukck!)4Zm?K# zHZTs?N&Ix38v*>LKm)IT#X`Lo&X0_aF4Xi(7fx+(#7*F?UAxA%G|Y8VNU$nX%!L>- zZ*M)&h>c;B4o^(H%)`UO!OMGIDTXa7^@wbG$MIMB1M9Ptq@>*U@6S7x0I|s&*ed*r zCT_9{KUCna=GVf@%bRSJgMYN&AtWGBi9vT-5kcJeYh_OnvNBUEQpI_BTq=RqF9N+h z9d;#{?T6L#AETdXX_=jDAS*p=@RAPqAuSO?&7mY@)br{Yf?SjMlA77gy#}|npUlr2 zL*nDa3;LFVVkXcXnopudIptHIIokBicYiHUmZnPR!BXUJbo zEMWNU<)*F92kV;KznUb$S5|bgZQWtRwzA^}283;2sHlXk0GwP{ItTMPb6Q3t01DbW zS}h}j3@g>kp6>KP?X&_%SYI211b)&-)=30GoXmUIJTR`ZO)^cOQJm4arm3PQL;x+G z4M5pZGsXP@3mUFmHz>9&eQZ9x|L}nn@>E-!UU-K_UWab1m#|+S)G{EDjQbAZsYmP* z?*DW|GB2STgv~qLPmI3OH(~#Ph3Y{Hh+g&Jrxz#Sa0?NdGsS97c5J7@D_>Nm;r^P* zh{LE+N1?eUqD}t&D~alVYXJaOQ+ReZK03-NAV3KQbPpDIc~AY}&CQh5P;lB5yasLd zXHF4pQLXVjv?v**t%{`Cq-=a5~VVjV55??*AO_xzr;d}AGN z24Lk|GW*x(MLI7UQxy6;ke>*JN@<_C-W?c=r^8Q_xJ-%eiS0`Ve2q@2yphp0HW5xqDGIPzy0?1bQ&U5Yn|x1LbB2rj?^RagPd&CE5cISg4dnM3yTS^Yy9jAr z%kG7Wsh#*ZKf_JMfd&*w2_7~p$pm(~cGWN29^bMl3ox(I5#|@})hMhjly(9ElbwPV ze)0Vb1M+{J5`B=d^Y%!ZS+q1Y<37uEWS3CVjjA1)M z3{$fA&j(08gzAb3Yqv&}BG&g5=#5~5D-nG4xV&CQHFvB+3cFq2Y9OJ3UcvKO{Si1i z6n^Eu)lYX0>aD?Q_0(X8%31uCu8z%3AM%G=2FMFRJdm%>LYBY*)%Kf%lw9OnPP?b{ z?RSpgDxxouO%=G+Qdv!nRPc;uT9%cj|0=JqaF8js&j@xWWN~pZ*6R*|9S?n&n32J< zhgY0oD)*NxwkvJcKbh%OP5$kvM=I=hR*5T?Z8?qj3}zOfqO44Q0(c6GBz7!)2G=|yD>Y~)R8P1qN(v7AFuC$JD@I-ny;s1}GJ z4h{~SF!h#@cRQX9z_mU{Gu6?gvlON@F~!TYjxT2_ zLHQT1>yXUk^J&B_sGw+92N@N{?*rEr$#2!k#SyXZo>-A@i)9-y7p2Xc4$`=1>73x;}O z5htrGF{gG8r(B<=#uc^4p=>!xGcKLi(t(cS5Lt?8Y?S(1QzL*}SzFuE3fv$2c|Rqg z3?uUF0k28JOf-O6t&TM$&g`U@2uSOAIY9$bD;fxJ9vD%p)rCz{9Ok6Q*ih3^$`d&o zl{f88AaypEi#m_L*5j^RxzhDBkOEvFT=}?7Z z0YpGbP)Y!$m(W5&LNa%9-t*nH-gW=@{<&*qWlu6Qd!E_z?5FPMH)HJm!zC<-wn~Ki zSNhfy9)3N`kc2mkZZZ*0+`U%AP}C2RxD+E|3~5EE9s{yc`eTbgc-n!N#hVQ2d+W&^ zx3CBBxZjL!1k|oV69$J90WP?>99)INJL(7Wl-y#<1H+e2`;~15Ja}*tn$XYk^71|z zXlE+;L8j6SqzSnID9#55CZWyxx592vIHEJ*Q_>LuR3p_snVg{;^zC1x$qlj(dtReB zr$JT^50IDeNPA^8orsIwrhN0nhv#+9y-7^Gv0C{90N@0=vdF=67+v4$*aCDA8KJpE z^rYQC2;EL=^uE^qY|}F6r|l4EbXx_;M3D&qMjVS3vjHJ~|1|6!`<+B-5!0mh5+2An zE-`}US`t%x$;?Tf23_9+1X?q{LQFPw;~AFNURQOhkJf!&rgk@ChSqG^vX?Hp1zAuQ zW@dswW=>AdsA>gdJhUE0K;bmw>;IZp<=EA-Xb-szu>rQp4ajbL8Dp><7}_>SE})SA z%l!JvK+59zwmyK+lL2ZIB8|*h`S4d^xLz-P6Yp&fT~R`G=I>7W1i#{>qJvJXliJiQ z$*rPcE917~yTKoocHvf;5OhP>gHTVBV-2(*y}lbvChqdGnAAsvIVj`rY zaOLGEq4=s4B&3Zxi3gMmS)>w{betXRwu*@ULIxfVWIMxTFy*8fZ%R=?!R3=W^arIb69SN(uO9k4Xv{xm zie!=TKSo|E=M`#lXf9@sz6=eVBRZpo z$gzK!Gzve^kcclmh+Bmyu(L}nnX$^yk&F^&E6#`=;Vf)p;2WM5d#(-rl4W;sf)QJ- zF$#wE_EL+Bi)+JOiD}qYzH5Y#^YQ0s=k||+&7&oDZp6kN@1Bn4#$=7}i=`x5FZpB{ z`=uSYbj>z#)7|Ry*>X1Dee@h8-EwpDd4Le=V$`n=+`@OZ5KZcG_v>TyZx-aqWJEC6 zFH>v_b7^>rX`4U&A3TAem!)iaHl|xdgNvv6P@Z3>M}Pwk%IeJaq;q_Y9$FZ;Ci!oL zAk}JctbX8=PxinI6&N%SjRf?#rmasudVf}HZJbM?nJ%n?@vP&C0RQp%p2bOvn z73`Odtf6|AN+JKTze%!&J|mWB8eh zu&e@UJHg=gZqVaA=|ME~2Xx@`tapb6Yinyqz}$I=0Lo>6p)9k1qa|Af*x*r%Lu30MZDM1TVt@{Lnq48OmAkP8- z2i+>FTL&-qGSXP_=`9Z3=`~@>n!EwJEjvq;SJC<-LXdy7yv~G1Sh%+RsaV2iawxS! zapA$MT_OCjwe(5Y3L!@i9{$_opJC`GMd>Zv`%&&8wNte_CXm&wwz4M?BTbRflJ{9` zTEJ>gGu&!8$x#kiOSP|@h#Px9&uU3~^FC7RIyo^74WT&g{25Xb`OgS$CY2smYs$${ z1uj6*XCqa2o0+2Ii(fV_9Yy@Mu<7a~Ej+rlOJ6@%OYOEs9C42cL~`S>)SZd7&iWgi zkvfKSurk=msYK00yuH6XHX(93@wh+x_4n!axBx5etZx3XPS5^a3rAglEx^4yi4?Cs zoV^RljoUL_;T#Ml>3wj7HqG-geNiiD2Z@l_@Z?Rzz*c2&VhP(V$#U;ikvnQYeDLI9 zmlC4zWcCYbby1QlqN@Wnesq!q4x_b38i_1PV6t0M&Tr{sC;dS?-=%KiD#NBWVEE4j zj}ht*D`8FK;X<~ntQ@*`M9!IT5MAdZw(fui$Kn%+vD@$r=AmKO=e?e&g@e&cq(PzF zhr~7wSBuqSiU50%9zGL9G;_V}xHHii#K`j)`QB0Myf;{l9HY=>;*oo^J;;pUs~x__ zN07D2eZMYj6rQUVEz*osJID_}Rlv$8PH4Pp;a02YpH6!tPng2SH`FuLQlkn*8oGezCoho_lp3}&h4 z&P3j6*S4a@kfWt>X^~kAA;@_c4a@+xrnjCux48UX^^DS5GJe!f6U^u(Y%^ z2@7k`-C4X6zDnlr-Q_}-jP%Xi{B!4IolADNLvnu54|bPBO?@mQ4oCdFnl+6w`Z1n} z8azplBSP%Z;}&={kWxNb#e8^TVOgso5UmCMbl)y_-lqx1f%?zzXv(3mb)u)R2ENmQ z`CBOR1m7;CM~#2vuFMNfrpfo5TW?banr1Ad(rA^#Uo5>}PAHvo) zN-x^iq8)~4k<8AO3tfrCfnTCq?c0HX;D~=F@0na*8EsvzDvDc_9EDiWFf7jDadHDx z6@H8N4!9i@4B27p19-N?68=PG@cS92IRX7jr(;~PVm?%T!eJwPE+gp8987NwQ^MIt zW^ezRw|gDe{i}L%zzUQZoZ}5p!u=M^z%ps|_={b|L|cWE`XNo;6Re_ZpBl=?gF)j2 zQpo>^2~>y6sx3NV?U`aG6aedRnN>$aOc;!6*`qg_4|}&Vz)!iF;(n#sL2t|YtlQ%m z$*-xW_#e)GZ9ZDskktSos~sNiM%6EsP4Kv`Lh?#C7zU zom=wT!~w2JlPi$g%wE*>%r2Q=NS{_D$9&c&@$`8*{d_;3>=$BdnoNeJ$iz(5JhC?~ zO?~mN^q^>JXb5U*YC?c_8Z!tN+ku^|JU$a-@-l+`3!&#$Q(39rNs3i{n{v0chUjbS zhDT7|@kp9)@U}F_eW&GHQt2ORpj71>LD@z8V&cY6)Qv~!yq%D=@76{^*__jv&L(E& z8y4o~Et=V?Gh2T&KGy=V{=e3~)cSWlM1_!3<{;p_j?G>~sUAOOXH)G6f~rNV8hSEp z9|M(xYbA_k?Fv`#zA*LaNH`D$VIQ?Z*KCJWR21U`*Xz;;DoCMW<{Wf`kH$AW{*}!? zmOW~24ZP}c1ivP`Mi7I`R@;T(Afecq3-G+&i{1KLB?0iGh0V-e@Z3KS`xztYmY_Xw9ZGBHXF=D0Rv;yzm9YQDi@4}NfLq{1-|_mn8|%=;_hrfRk>_T-7U zAdblK2dyk^Jfv%e`w8d>U-(CXT}2Xn)~DN(o^Rsc070nh2CR;PBJ1Zzh{eVGdJhDX zgOD@5si#cu?u59kTWl(7z;p?q34RWn{5tdr-72{@B=yhgRiGuxI)0L)ygeAnm%jUCQ}T+Nw6FCslTOQTS~H zV<7>7{=;h|gGX34V4EL(>C&YZ2w<;~-{9R7vr~wRcg@h0KKUlZGEM%sm}wKYO)n;9 zOh-amw>KuyB;&~dw8&(APK_YSm_=T=)JhR^`cBq;gp3^WA3-O5z=dIhVKQs3D>4iE znZM15nRw`WYJXmM@4crXWI10j4mKCcHA(fY{zP>}hLi&N2j0I@biQ%6Qui|;mzCsYIj(DvV*g? zYt;w1VAFqBgWU?30D!OF(-i0^@bx$wDi^w0qsRj+Pc-I{h!!-7$|DZoPFG4sV-hX8 zZ!LqC*Xf6zY_1u!4h^QiMO=Frh0i3GvYucO;W_U^9FIv+PSo3aF@=Q5SDB}B=tFDa zcbn}sBF=Itos{mN!^mO&+Jq5`>Y_rKs~#Ez*5E3VxYk zEXJjqx&_0=jY=g^loV3Su)#y;v48yLO3L#Z?`&&o? z=*l&04BIM@87D<(q%IKzj=pO6(22evB_T1-O8guvL9k@@IJs`|-gqfOaLBMMW@k+b z?N^TKElS{{BXW?cFAspBrF51RL3LPBBaAjoXW1tIMK#?^e*4z=Kj*d75ZEd9(%~2F zbJnWhG>~PCd?Be3mVY%=1w{-eIR6vXn1)b?_j)o`soY#9W? zrgZ1d3=uEtvMp*p3XPb%@HgB;^Wk*Z2exR6-VE$L_(qkTY`XC~6O+M7DS)hkD3bieZh ztO_jHr%?S^WG*9tPy`P3QG>?{(khIc5djG!M9^`w<%MUwFW34i(pLM-Z&__X0ESE~ zeV|-}$gX|Vf>W)E5NWbTju&jx9!?9%oNUM!0nF73i(ml8e(@r$;{}x0v$nC}0{rUJ zx#%s9;p%^7g{o~$25Nh|RYlHx+7?|Qd!4*l)R{BHmHE-rRrZew^l)Uc=T#?H<9&)Z zA|(6S%-J-5vP*@%!-+*|G7)9C!#rFpLjOh>x>ia2vr+KSQn(wH4j(VK42|7ZtU|Tf zFinaT_OfoVx-~<~#>yRvc$y#{a?)sERi*eN<8Bo3eAz}nGf6vfH;1!bO>7=7I$j%^ zXwRRC4YM#mys*8bzy(#d@&Lo7h~MdK-lrxIwBkGq%dpN+NN_IV$6^$vmwJQfCV$9t z1vH^W|2hmNDS*7_aqW%kW@p9}39#uATNJEFZihj3oQ!pJ(B>YZdbu5ouhZ=Dz2kqjn)^VLGU__yIKO@W zh+F;pJ4(;isZ14&r13=?8=JNOUfyX+WVU*j2Yl`Cy(xiG0qkt`y~8d&ynIi;HAxsZ zrx9Iywv<^}y94;dB}HG6E#_#;U{cdu`%cCEkQ39NrFas2zkB6oV1zaEF*12x z7Z=6wprOl0$uk=ir`ko0`RM5AJ;pX`3)`Ks*9&1b94!FJVDzya@wD`GW&}!5DN=O5 zWQ4pD)GBlF9sggO@t_uENLMhPLXpfL^?yj>Fq|#~kN+ zRCROIhfHvFM%vg+xt85B=4O>mC3u|Uy(+L!1BKZh4}AX)0QYO0kMbxI$7)a9WvxxM zX5$9u70cFR_%KE$BJ>IA2 z%yu+#08IBHRh~-_Oqf^^@`b{}LICjm_O}1s((>{i;88$8zZLolbLd0g@NiP*oUSh1 zedJSp6;(Vf?GyY^6kBGqL)jr*@^q`ieL6P*XSK4MCPd){!ffD$f8apT8LVmD<5i?@UW+Ry00dbQuO|YLCd{lQ5*Lk}$p1 z!9;+Ey(TH!VqY|rj>ng3dfvIyvb55Y6$RtFdb&CwcNe~ngOpC~Vt@{jFFI$2}ir6IbdKR75x_Q94 z-zB)z9#^WrXI&h_>LAvYNj?;!40RoN#xlcV{iLP5W_qit_zv_H8qv<=VhTFJ^(m7J6mh)6~aXG ze=Sh3!z|kH-VJX0Sj@DIv4&tSun^+wdR0ukBuyNgRX}4^(bu48w2T7b2v$ELyVW7L zt6>k|9{vb-+;pI>Ihr#ijPKttLg_0f?fVXSKO9M8hQ6-vG<#NR6rs{aJ@t5GtbCYxnN%MRVRH3 z;}Y%>1L&m^!<=^n*p!5qX1z#Hj~g3vDHgdPgmiXJ_XDFtzmE7NKpKb5p(2HZgaZE7 zPELQ-uYMK+tew1sj^IPQo>#B%D~9#W1*v4=BU0Jc(ZY3Nqf3bI3YVhC3W}j=DfwY| zSEEMlW+=<_+{53s5@4!I2QvyWv#r|7DvMmDVdPQgl!vidb#>=Imf*sU4h%f8NRDL8 zfvu~hLG&dnn0O&n=RRKV&=48HV5WkDA8aqmhfckXX|2A8LdaF>v&w!Yc$DZsN~W$* z?!LO{DQ-In-p)=3!c265*rzP@CcE)<^LQc@Rlhjfh*`)dUq(YLVK}M1xF>K?TZ)Kl zix+;R4@TOfv}dv^HVyj%A;fKUIGi%X{)h8b_u$k^+y2WVlD&NC(z6$ckOrpUbL~M< z4&J-Bw~!QkFR10zq|Nb zCZ7Va_Vx;R@}pijgMaMtoVrrB7Neam+XN|szk!?U({;%ieCWB1o)*t{^Au+UPYS0C yBkpyDrq76IBLStz7v3BRuM~M1^Iy#*_-@rEZ^!+qGW5a_z|7dvsKn6y>Hh(WvU^Ja From 25da9801238e92fbe944ed673f5d971807803ecc Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sat, 9 Nov 2024 02:29:12 +0100 Subject: [PATCH 20/83] we really don't need initialize here (#16583) --- code/modules/economy/vending_machines.dm | 42 ++++++++++++++++----- code/modules/economy/vending_machines_vr.dm | 38 ------------------- 2 files changed, 32 insertions(+), 48 deletions(-) diff --git a/code/modules/economy/vending_machines.dm b/code/modules/economy/vending_machines.dm index 052cab2a26d..4663e9bb54f 100644 --- a/code/modules/economy/vending_machines.dm +++ b/code/modules/economy/vending_machines.dm @@ -415,7 +415,12 @@ /obj/item/stack/medical/advanced/ointment = 6, /obj/item/stack/medical/splint = 4, /obj/item/storage/pill_bottle/carbon = 2, - /obj/item/clothing/mask/chewable/candy/lolli = 15) + /obj/item/clothing/mask/chewable/candy/lolli = 15, + /obj/item/storage/box/khcrystal = 4, + /obj/item/backup_implanter = 3, + /obj/item/clothing/glasses/omnihud/med = 4, + /obj/item/glasses_kit = 1, + /obj/item/storage/quickdraw/syringe_case = 4) contraband = list(/obj/item/reagent_containers/pill/tox = 3, /obj/item/reagent_containers/pill/stox = 4, /obj/item/reagent_containers/pill/antitox = 6) @@ -448,7 +453,8 @@ products = list(/obj/item/stack/medical/bruise_pack = 2, /obj/item/stack/medical/ointment = 2, /obj/item/reagent_containers/hypospray/autoinjector = 4, - /obj/item/healthanalyzer = 1) + /obj/item/healthanalyzer = 1, + /obj/item/bodybag/cryobag = 2) contraband = list(/obj/item/reagent_containers/syringe/antitoxin = 4, /obj/item/reagent_containers/syringe/antiviral = 4, /obj/item/reagent_containers/pill/tox = 1) @@ -467,14 +473,19 @@ /obj/item/reagent_containers/syringe/antitoxin = 3, /obj/item/stack/medical/bruise_pack = 3, /obj/item/stack/medical/ointment =3, - /obj/item/healthanalyzer = 3) + /obj/item/healthanalyzer = 3, + /obj/item/bodybag/cryobag = 3) contraband = list(/obj/item/reagent_containers/pill/tox = 3) req_log_access = access_cmo has_logs = 1 can_rotate = 0 /obj/machinery/vending/wallmed1/public - products = list(/obj/item/stack/medical/bruise_pack = 8,/obj/item/stack/medical/ointment = 8,/obj/item/reagent_containers/hypospray/autoinjector = 16,/obj/item/healthanalyzer = 4) + products = list(/obj/item/stack/medical/bruise_pack = 8, + /obj/item/stack/medical/ointment = 8, + /obj/item/reagent_containers/hypospray/autoinjector = 16, + /obj/item/healthanalyzer = 4, + /obj/item/bodybag/cryobag = 4) /obj/machinery/vending/security name = "SecTech" @@ -488,9 +499,15 @@ /obj/item/flash = 5, /obj/item/reagent_containers/food/snacks/donut/plain = 6, /obj/item/reagent_containers/food/snacks/donut/plain/jelly = 6, - /obj/item/storage/box/evidence = 6) + /obj/item/storage/box/evidence = 6, + /obj/item/gun/energy/taser = 8, + /obj/item/gun/energy/stunrevolver = 4, + /obj/item/reagent_containers/spray/pepper = 6, + /obj/item/taperoll/police = 6, + /obj/item/clothing/glasses/omnihud/sec = 6) contraband = list(/obj/item/clothing/glasses/sunglasses = 2, - /obj/item/storage/box/donut = 2) + /obj/item/storage/box/donut = 2, + /obj/item/implanter/compliance = 1) req_log_access = access_armory has_logs = 1 @@ -553,7 +570,9 @@ /obj/item/seeds/pumpkinseed = 3, /obj/item/seeds/cherryseed = 3, /obj/item/seeds/plastiseed = 3, - /obj/item/seeds/riceseed = 3) + /obj/item/seeds/riceseed = 3, + /obj/item/seeds/shrinkshroom = 3, + /obj/item/seeds/megashroom = 3) contraband = list(/obj/item/seeds/amanitamycelium = 2, /obj/item/seeds/glowshroom = 2, /obj/item/seeds/libertymycelium = 2, @@ -652,7 +671,8 @@ /obj/item/flashlight/glowstick/red = 3, /obj/item/flashlight/glowstick/blue = 3, /obj/item/flashlight/glowstick/orange =3, - /obj/item/flashlight/glowstick/yellow = 3) + /obj/item/flashlight/glowstick/yellow = 3, + /obj/item/reagent_containers/spray/windowsealant = 5) contraband = list(/obj/item/weldingtool/hugetank = 2, /obj/item/clothing/gloves/fyellow = 2) premium = list(/obj/item/clothing/gloves/heavy_engineer = 1) //VOREStation Edit - yellow gloves are common in engineering, let's make "premium" actually mean something @@ -695,8 +715,10 @@ /obj/item/circuitboard/body_scanner, /obj/item/circuitboard/medical_kiosk, /obj/item/circuitboard/sleeper, - /obj/item/circuitboard/dna_analyzer) - contraband = list(/obj/item/cell/potato = 3) + /obj/item/circuitboard/dna_analyzer, + /obj/item/clothing/glasses/omnihud/eng = 6) + contraband = list(/obj/item/cell/potato = 3, + /obj/item/rms = 5) premium = list(/obj/item/storage/belt/utility = 3) product_records = list() req_log_access = access_ce diff --git a/code/modules/economy/vending_machines_vr.dm b/code/modules/economy/vending_machines_vr.dm index fa8331cc348..8d0cbff234b 100644 --- a/code/modules/economy/vending_machines_vr.dm +++ b/code/modules/economy/vending_machines_vr.dm @@ -1,41 +1,3 @@ -//Tweaked existing vendors -/obj/machinery/vending/hydroseeds/Initialize() - . = ..() - products += list(/obj/item/seeds/shrinkshroom = 3,/obj/item/seeds/megashroom = 3) - -/obj/machinery/vending/security/Initialize() - . = ..() - products += list(/obj/item/gun/energy/taser = 8,/obj/item/gun/energy/stunrevolver = 4, - /obj/item/reagent_containers/spray/pepper = 6,/obj/item/taperoll/police = 6, - /obj/item/clothing/glasses/omnihud/sec = 6) - contraband += list(/obj/item/implanter/compliance = 1) - -/obj/machinery/vending/tool/Initialize() - . = ..() - products += list(/obj/item/reagent_containers/spray/windowsealant = 5) - -/obj/machinery/vending/engivend/Initialize() - . = ..() - products += list(/obj/item/clothing/glasses/omnihud/eng = 6) - contraband += list(/obj/item/rms = 5) - -/obj/machinery/vending/medical/Initialize() - . = ..() - products += list(/obj/item/storage/box/khcrystal = 4,/obj/item/backup_implanter = 3, - /obj/item/clothing/glasses/omnihud/med = 4, /obj/item/glasses_kit = 1, /obj/item/storage/quickdraw/syringe_case = 4) - -/obj/machinery/vending/wallmed1/Initialize() - . = ..() - products += list(/obj/item/bodybag/cryobag = 2) - -/obj/machinery/vending/wallmed2/Initialize() - . = ..() - products += list(/obj/item/bodybag/cryobag = 3) - -/obj/machinery/vending/wallmed1/public/Initialize() - . = ..() - products += list(/obj/item/bodybag/cryobag = 4) - // Food Machines (for event/away maps) //I want this not just as part of the zoo. ;v From dd77c3ff6b0eb7c3ba12ff6fd2db9e10ae967e78 Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Sat, 9 Nov 2024 14:34:44 +0000 Subject: [PATCH 21/83] Contraband Scanner (#16492) * contraband scanner * Update contraband_scanner.dm --- code/game/machinery/contraband_scanner.dm | 67 +++++++++++++++++++++++ vorestation.dme | 1 + 2 files changed, 68 insertions(+) create mode 100644 code/game/machinery/contraband_scanner.dm diff --git a/code/game/machinery/contraband_scanner.dm b/code/game/machinery/contraband_scanner.dm new file mode 100644 index 00000000000..265cad9bd8c --- /dev/null +++ b/code/game/machinery/contraband_scanner.dm @@ -0,0 +1,67 @@ +/obj/machinery/contraband_scanner + name = "contraband scanner" + gender = PLURAL + icon = 'icons/obj/atm_fieldgen.dmi' + icon_state = "arfg_off" + desc = "A simple scanner that analyzes those who pass over it, and sounds an alarm if it detects any items that are programmed into its contraband list." + anchored = TRUE + opacity = FALSE + density = FALSE + power_channel = EQUIP + use_power = USE_POWER_IDLE + idle_power_usage = 10 + active_power_usage = 250 + + var/deep_scan = TRUE //check more than just their hands/pockets? + var/contraband_count = 0 //how many items have we detected? only one actually needs to be found to set off the alarm + var/area_lockdown = TRUE //do we set off the fire alarm for our area when triggered? + var/close_blastdoors = TRUE //close all blast doors in the area when triggered? + var/power_fields = TRUE //do we activate all ARFs when triggered? use w/ impassable fieldgens. requires area_lockdown = TRUE to do anything. + + var/last_trigger //when were we last triggered? combined with the cooldown below for sanity reasons + var/cooldown = 15 SECONDS //minimum time between retriggers, so people can't spam trigger the scanner to be obnoxious + var/auto_cancel = TRUE //automatically cancel alarm states after a delay? same duration as the cooldown for sanity + var/trigger_message = "The contraband scanner has been tripped!" + var/trigger_sound = 'sound/machines/airalarm.ogg' //sound that plays when we're set off + + var/list/contraband = list(/obj/item/melee,/obj/item/gun,/obj/item/material) + +/obj/machinery/contraband_scanner/Crossed(mob/living/M as mob) + if(M.is_incorporeal()) + return + if(isliving(M)) + var/area/A = src.loc.loc + if(last_trigger > world.time - cooldown) + return + for(var/obj/O in M.contents) + if(is_type_in_list(O,contraband)) + contraband_count++ + if(deep_scan) + for(var/obj/O2 in O.contents) //one layer deep is fine for now I think + if(is_type_in_list(O2,contraband)) + contraband_count++ + if(contraband_count && last_trigger < world.time - cooldown) + visible_message(span_danger(trigger_message)) + playsound(src, trigger_sound, 25, 0, 4, volume_channel = VOLUME_CHANNEL_ALARMS) + for(var/obj/machinery/contraband_scanner/CS in A) + CS.last_trigger = world.time //set everyone's trigger time at once, to cut down on spam + CS.contraband_count = 0 //clear all our contraband counts too + if(area_lockdown) + if(close_blastdoors) + for(var/obj/machinery/door/blast/B in A) + if(!B.density) + spawn(0) + B.close() + if(power_fields) + A.arfgs_activate() + if(auto_cancel) + spawn(cooldown) + if(close_blastdoors) + for(var/obj/machinery/door/blast/B in A) + if(B.density) + spawn(0) + B.open() + if(power_fields) + A.arfgs_deactivate() + + ..() diff --git a/vorestation.dme b/vorestation.dme index b16e5b01f8b..6edc0211680 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -941,6 +941,7 @@ #include "code\game\machinery\cell_charger.dm" #include "code\game\machinery\clawmachine.dm" #include "code\game\machinery\cloning.dm" +#include "code\game\machinery\contraband_scanner.dm" #include "code\game\machinery\cryo.dm" #include "code\game\machinery\cryopod.dm" #include "code\game\machinery\cryopod_vr.dm" From b7d77d7245701dd6fac749260aa6c18f590452af Mon Sep 17 00:00:00 2001 From: SatinIsle <98125273+SatinIsle@users.noreply.github.com> Date: Sat, 9 Nov 2024 14:36:15 +0000 Subject: [PATCH 22/83] Hammers for hurting people (#16569) * Hammers for hurting people Added a new dark variant of the squish hammer that breaks every bone in the targets body and shoots out blood. Unfortunately they will become unsquished when they fall over, but still gets a nice initial squeeze! Added a simple claw hammer weapon that I have plans for in an upcoming event. Strong melee weapon that easily breaks down windows and barricades, but also has a high chance of breaking any bones that it hits. * Just a friendly little warning to my fellow staff :) --- code/game/objects/items/weapons/joke.dm | 22 +++++++++- .../objects/items/weapons/melee/misc_vr.dm | 40 +++++++++++++++++- icons/mob/items/lefthand_melee.dmi | Bin 37304 -> 37501 bytes icons/mob/items/righthand_melee.dmi | Bin 35989 -> 36122 bytes icons/obj/items.dmi | Bin 73998 -> 74655 bytes icons/obj/weapons.dmi | Bin 51342 -> 52897 bytes 6 files changed, 60 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/joke.dm b/code/game/objects/items/weapons/joke.dm index feba68dbc72..efe530e5f94 100644 --- a/code/game/objects/items/weapons/joke.dm +++ b/code/game/objects/items/weapons/joke.dm @@ -16,4 +16,24 @@ else M.ClearTransform() M.update_transform() - return ..() \ No newline at end of file + return ..() + +// Do not ever just leave this laying about, it will go horribly wrong! +/obj/item/squishhammer/dark + name = "The Dark Short Stacker" + desc = "Wield the power of this weapon with responsibility (God knows you won't)." + icon = 'icons/obj/items.dmi' + icon_state = "dark_hammer" + attack_verb = list("stacked") + force = 0 + throwforce = 0 + +/obj/item/squishhammer/dark/attack(mob/M as mob, mob/user as mob) + ..() + var/mob/living/carbon/human/H = M + if(istype(H)) + for(var/obj/item/organ/external/E in H.organs) + E.fracture() // Oof, ouch, owie + var/turf/T = M.loc + if(isturf(T)) + new /obj/effect/gibspawner/generic(T) diff --git a/code/game/objects/items/weapons/melee/misc_vr.dm b/code/game/objects/items/weapons/melee/misc_vr.dm index 5e9f318aa6d..092ec058919 100644 --- a/code/game/objects/items/weapons/melee/misc_vr.dm +++ b/code/game/objects/items/weapons/melee/misc_vr.dm @@ -13,4 +13,42 @@ sharp = TRUE edge = FALSE attack_verb = list("stabbed", "lunged at", "dextrously struck", "sliced", "lacerated", "impaled", "diced", "charioted") - hitsound = 'sound/weapons/bladeslice.ogg' \ No newline at end of file + hitsound = 'sound/weapons/bladeslice.ogg' + +/obj/item/melee/hammer + name = "claw hammer" + desc = "A simple claw hammer for hitting things or people with, and the claw part probably does something too." + icon = 'icons/obj/weapons.dmi' + icon_state = "claw_hammer" + force = 15 + throwforce = 10 + w_class = ITEMSIZE_SMALL + attack_verb = list("smashed", "swung at", "pummelled", "nailed", "crushed", "bonked", "hammered", "cracked") + defend_chance = 0 + +/obj/item/melee/hammer/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone, var/attack_modifier) + if(istype(target,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = target + if(prob(50)) + var/obj/item/organ/external/affecting = H.get_organ(hit_zone) + affecting.fracture() + return ..() + +/obj/item/melee/hammer/afterattack(atom/A as mob|obj|turf|area, mob/user as mob, proximity) + if(!proximity) return + ..() + if(A) + if(istype(A,/obj/structure/window)) + var/obj/structure/window/W = A + if(prob(50)) + W.visible_message(span_warning("\The [W] shatters under the force of the impact!")) + W.shatter() + else if(istype(A,/obj/structure/barricade)) + var/obj/structure/barricade/B = A + if(prob(50)) + B.visible_message(span_warning("\The [B] is broken apart with ease!")) + B.dismantle() + else if(istype(A,/obj/structure/grille)) + if(prob(50)) + A.visible_message(span_warning("\The [A] is smashed open!")) + qdel(A) diff --git a/icons/mob/items/lefthand_melee.dmi b/icons/mob/items/lefthand_melee.dmi index da3401ccedf55a2e960d0c2092f1552edc07f2e4..bc4ea4cdc347d334c42870b25e6a5e4b16b94c75 100644 GIT binary patch delta 14881 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

OpQVU9%7;oSh(@*b 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 Jm8e+0{y$w8c)tJu From 4c7425865dda071a56520038c36ce3f78ac4a5e6 Mon Sep 17 00:00:00 2001 From: Guti <32563288+TheCaramelion@users.noreply.github.com> Date: Sat, 9 Nov 2024 15:36:45 +0100 Subject: [PATCH 23/83] Fix (#16584) --- code/modules/organs/blood.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm index 72b24602f9e..3364d330680 100644 --- a/code/modules/organs/blood.dm +++ b/code/modules/organs/blood.dm @@ -250,7 +250,7 @@ var/const/CE_STABLE_THRESHOLD = 0.5 B.data["viruses"] = list() for(var/datum/disease/D in GetViruses()) - if(D.spread_flags & SPECIAL || D.spread_flags & NON_CONTAGIOUS) + if(D.spread_flags & SPECIAL) continue B.data["viruses"] |= D.Copy() From 8557359c750c7b8e88d2065156ec4267e7b2e40c Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sat, 9 Nov 2024 15:38:16 +0100 Subject: [PATCH 24/83] refactors chameleon projector (#16582) --- .../objects/items/devices/chameleonproj.dm | 40 +++++++++++-------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm index 14cd916ea89..e85308b5dda 100644 --- a/code/game/objects/items/devices/chameleonproj.dm +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -28,10 +28,10 @@ disrupt() ..() -/obj/item/chameleon/attack_self() - toggle() +/obj/item/chameleon/attack_self(mob/user) + toggle(user) -/obj/item/chameleon/afterattack(atom/target, mob/user , proximity) +/obj/item/chameleon/afterattack(atom/target, mob/user, proximity) if(!proximity) return if(!active_dummy) if(istype(target,/obj/item) && !istype(target, /obj/item/disk/nuclear)) @@ -42,30 +42,32 @@ saved_icon_state = target.icon_state saved_overlays = target.overlays -/obj/item/chameleon/proc/toggle() +/obj/item/chameleon/proc/toggle(mob/user) if(!can_use || !saved_item) return if(active_dummy) eject_all() playsound(src, 'sound/effects/pop.ogg', 100, 1, -6) qdel(active_dummy) active_dummy = null - to_chat(usr, span_notice("You deactivate the [src].")) + to_chat(user, span_notice("You deactivate the [src].")) var/obj/effect/overlay/T = new /obj/effect/overlay(get_turf(src)) T.icon = 'icons/effects/effects.dmi' flick("emppulse",T) - spawn(8) qdel(T) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), T), 0.8 SECONDS, TIMER_DELETE_ME) else playsound(src, 'sound/effects/pop.ogg', 100, 1, -6) var/obj/O = new saved_item(src) if(!O) return - var/obj/effect/dummy/chameleon/C = new /obj/effect/dummy/chameleon(usr.loc) - C.activate(O, usr, saved_icon, saved_icon_state, saved_overlays, src) + if(istype(user.loc, /obj/item/holder)) // This doesn't go well... + return + var/obj/effect/dummy/chameleon/C = new /obj/effect/dummy/chameleon(user.loc) + C.activate(O, user, saved_icon, saved_icon_state, saved_overlays, src) qdel(O) - to_chat(usr, span_notice("You activate the [src].")) + to_chat(user, span_notice("You activate the [src].")) var/obj/effect/overlay/T = new/obj/effect/overlay(get_turf(src)) T.icon = 'icons/effects/effects.dmi' flick("emppulse",T) - spawn(8) qdel(T) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(qdel), T), 0.8 SECONDS, TIMER_DELETE_ME) /obj/item/chameleon/proc/disrupt(var/delete_dummy = 1) if(active_dummy) @@ -78,7 +80,10 @@ qdel(active_dummy) active_dummy = null can_use = 0 - spawn(50) can_use = 1 + addtimer(CALLBACK(src, PROC_REF(allow_use)), 5 SECONDS, TIMER_DELETE_ME) + +/obj/item/chameleon/proc/allow_use() + can_use = 1 /obj/item/chameleon/proc/eject_all() for(var/atom/movable/A in active_dummy) @@ -127,6 +132,9 @@ ..() master.disrupt() +/obj/effect/dummy/chameleon/proc/allow_move() + can_move = 1 + /obj/effect/dummy/chameleon/relaymove(var/mob/user, direction) if(istype(loc, /turf/space)) return //No magical space movement! @@ -134,15 +142,15 @@ can_move = 0 switch(user.bodytemperature) if(300 to INFINITY) - spawn(10) can_move = 1 + addtimer(CALLBACK(src, PROC_REF(allow_move)), 1 SECOND, TIMER_DELETE_ME) if(295 to 300) - spawn(13) can_move = 1 + addtimer(CALLBACK(src, PROC_REF(allow_move)), 1.3 SECONDS, TIMER_DELETE_ME) if(280 to 295) - spawn(16) can_move = 1 + addtimer(CALLBACK(src, PROC_REF(allow_move)), 1.6 SECONDS, TIMER_DELETE_ME) if(260 to 280) - spawn(20) can_move = 1 + addtimer(CALLBACK(src, PROC_REF(allow_move)), 2 SECONDS, TIMER_DELETE_ME) else - spawn(25) can_move = 1 + addtimer(CALLBACK(src, PROC_REF(allow_move)), 2.5 SECONDS, TIMER_DELETE_ME) step(src, direction) return From 7117658a33663dad56bc0dd5ee3840a07c833e0f Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Sat, 9 Nov 2024 14:41:06 +0000 Subject: [PATCH 25/83] lockpicks (#16580) --- code/game/objects/items/lockpicks.dm | 54 +++++++++++++++++++ code/game/objects/structures/simple_doors.dm | 3 ++ icons/obj/lockpicks.dmi | Bin 0 -> 725 bytes vorestation.dme | 1 + 4 files changed, 58 insertions(+) create mode 100644 code/game/objects/items/lockpicks.dm create mode 100644 icons/obj/lockpicks.dmi diff --git a/code/game/objects/items/lockpicks.dm b/code/game/objects/items/lockpicks.dm new file mode 100644 index 00000000000..0af583a1736 --- /dev/null +++ b/code/game/objects/items/lockpicks.dm @@ -0,0 +1,54 @@ +//For bypassing locked /obj/structure/simple_doors + +/obj/item/lockpick + name = "set of lockpicks" + desc = "A set of picks and tension wrenches, ideal for picking old-style mechanical locks... not that any of those exist on most NT facilities these days. Still, it might be useful elsewhere?" + icon = 'icons/obj/lockpicks.dmi' + icon_state = "lockpicks" + w_class = ITEMSIZE_SMALL + var/pick_type = "simple" + var/pick_time = 10 SECONDS + var/pick_verb = "pick" + +/obj/item/lockpick/afterattack(atom/A, mob/user) + if(!user.IsAdvancedToolUser()) //no lockpicking for monkeys + return + if(istype(A, /obj/structure/simple_door)) + var/obj/structure/simple_door/D = A + if(!D.locked) //you can pick your nose, but you can't pick an unlocked door + to_chat(user, span_notice("\The [D] isn't locked.")) + return + else if(D.lock_type != pick_type) //make sure our types match + to_chat(user, span_warning("\The [src] can't pick \the [D]. Another tool might work?")) + return + else if(!D.can_pick) //make sure we're actually allowed to bypass it at all + to_chat(user, span_warning("\The [D] can't be [pick_verb]ed.")) + return + else //finally, we can assume that they do match + to_chat(user, span_notice("You start to [pick_verb] the lock on \the [D]...")) + playsound(src, D.keysound,100, 1) + if(do_after(user, pick_time * D.lock_difficulty)) + to_chat(user, span_notice("Success!")) + D.locked = FALSE + else if(istype(A,/mob/living/carbon/human)) //you can pick your friends, and you can pick your nose, but you can't pick your friend's nose + var/mob/living/carbon/human/H = A + if(user.zone_sel.selecting == BP_HEAD) + if(H == user) + to_chat(user, span_notice("Your nose isn't locked. If you're feeling stuffy, maybe you should talk to a doctor..?")) + else + user.visible_message(span_notice("[user] tries to [pick_verb] [H]'s nose with \the [src]! They don't seem to be having much success."),span_notice("You try to [pick_verb] [H]'s nose. It doesn't seem to be working.")) + return + +/obj/item/lockpick/pick_gun + name = "pick gun" + desc = "A more sophisticated and automated alternative to traditional lockpicking methods. Contains a dazzling array of tools in a simple-to-use housing: just press the face plate against the lock face and hold the trigger down until it goes click." + icon_state = "pick_gun" + pick_time = 3 SECONDS + +/obj/item/lockpick/mag_sequencer + name = "magnetic sequencer" + desc = "A deceptively simple gadget that brute-forces magnetic locks using a small electromagnet. A predecessor to the cryptographic sequencer, a more complicated device that is considered contraband in most jurisdictions. Not that these aren't illegal either, mind you!" + icon_state = "mag_sequencer" + pick_type = "maglock" + pick_time = 5 SECONDS + pick_verb = "bypass" diff --git a/code/game/objects/structures/simple_doors.dm b/code/game/objects/structures/simple_doors.dm index db06f7fea8e..c68d08208bf 100644 --- a/code/game/objects/structures/simple_doors.dm +++ b/code/game/objects/structures/simple_doors.dm @@ -18,6 +18,9 @@ var/locked = FALSE //has the door been locked? var/lock_id = null //does the door have an associated key? + var/lock_type = "simple" //string matched to "pick_type" on /obj/item/lockpick + var/can_pick = TRUE //can it be picked/bypassed? + var/lock_difficulty = 1 //multiplier to picking/bypassing time var/keysound = 'sound/items/toolbelt_equip.ogg' /obj/structure/simple_door/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) diff --git a/icons/obj/lockpicks.dmi b/icons/obj/lockpicks.dmi new file mode 100644 index 0000000000000000000000000000000000000000..11880cd0f52a5d2f8b724bb87ecaf39e0ed2cc79 GIT binary patch literal 725 zcmV;`0xJE9P){t^IiBLle1%2QqD&^NdsgH{Id@jGSvdGG@vK!OlT z2r-+_I6e5fAOj&mYKaQd6thK^&9fxy8wA(B1BI7&&LF?f^F{u!T!j@Rhs&@6sX;zU zG?*gh>%3SOPs`Oaw+Bad0wkq?Mj14wcqz))GTepX>MCj8DYU3PjQVhHZgGX!(RwLk zj6DJsXgPx}epdvA#uVP(d4o1?GrhC)Hq+|$alLQgf8!g_SsvHBfL_o*Z$Qfv1{fqfg=t!eQG)OVIYjb zhVc}1qi61wg(LhM`wk-yqS7&@pO~1KxCPsQs-jU<=juN>mc*G3+b@n7gKv(1l|lW( z5oJ)df-TxpQh91*=RF>y7&V5~O!xs&X500000NkvXX Hu0mjfogX<7 literal 0 HcmV?d00001 diff --git a/vorestation.dme b/vorestation.dme index 6edc0211680..07be19acdd6 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1292,6 +1292,7 @@ #include "code\game\objects\items\gunbox.dm" #include "code\game\objects\items\gunbox_vr.dm" #include "code\game\objects\items\latexballoon.dm" +#include "code\game\objects\items\lockpicks.dm" #include "code\game\objects\items\magazine.dm" #include "code\game\objects\items\paintkit.dm" #include "code\game\objects\items\pizza_voucher_vr.dm" From 6c8fa2dba105fb597535474050b34db5d520054a Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sat, 9 Nov 2024 15:42:44 +0100 Subject: [PATCH 26/83] maptest redgate (#16579) * maptest redgate * . * . * . * . * . --- code/game/machinery/camera/camera.dm | 4 ++-- .../objects/items/weapons/material/kitchen.dm | 4 ++-- code/modules/power/singularity/singularity.dm | 4 ++-- maps/offmap_vr/common_offmaps.dm | 23 +++++++++++++++++++ maps/redgate/eggnogtown.dmm | 2 +- 5 files changed, 30 insertions(+), 7 deletions(-) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 383a96868b5..1f89fdbe980 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -254,19 +254,19 @@ if (!(src.status)) if(user) visible_message(span_notice(" [user] has deactivated [src]!")) + add_hiddenprint(user) else visible_message(span_notice(" [src] clicks and shuts down. ")) playsound(src, 'sound/items/Wirecutter.ogg', 100, 1) icon_state = "[initial(icon_state)]1" - add_hiddenprint(user) else if(user) visible_message(span_notice(" [user] has reactivated [src]!")) + add_hiddenprint(user) else visible_message(span_notice(" [src] clicks and reactivates itself. ")) playsound(src, 'sound/items/Wirecutter.ogg', 100, 1) icon_state = initial(icon_state) - add_hiddenprint(user) /obj/machinery/camera/take_damage(var/force, var/message) //prob(25) gives an average of 3-4 hits diff --git a/code/game/objects/items/weapons/material/kitchen.dm b/code/game/objects/items/weapons/material/kitchen.dm index 43c524b51fa..cb5458c936d 100644 --- a/code/game/objects/items/weapons/material/kitchen.dm +++ b/code/game/objects/items/weapons/material/kitchen.dm @@ -108,12 +108,12 @@ if(M == user) if(!M.can_eat(loaded)) return - M.visible_message(span_bold("\The [user]") + "eats some of [loaded] with \the [src].") + M.visible_message(span_bold("\The [user]") + " eats some of [loaded] with \the [src].") else user.visible_message(span_warning("\The [user] begins to feed \the [M]!")) if(!(M.can_force_feed(user, loaded) && do_mob(user, M, 5 SECONDS))) return - M.visible_message(span_bold("\The [user]") + "feeds some of [loaded] to \the [M] with \the [src].") + M.visible_message(span_bold("\The [user]") + " feeds some of [loaded] to \the [M] with \the [src].") playsound(src,'sound/items/eatfood.ogg', rand(10,40), 1) loaded = null update_icon() diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index e8ffacc8f52..6d7da776df6 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -445,10 +445,10 @@ GLOBAL_LIST_BOILERPLATE(all_singularities, /obj/singularity) /obj/singularity/proc/smwave() for(var/mob/living/M in view(10, src.loc)) if(prob(67)) - to_chat(M, span_warning("You hear an uneartly ringing, then what sounds like a shrilling kettle as you are washed with a wave of heat.")) + to_chat(M, span_warning("You hear an unearthly ringing, then what sounds like a shrilling kettle as you are washed with a wave of heat.")) to_chat(M, span_notice("Miraculously, it fails to kill you.")) else - to_chat(M, span_danger("You hear an uneartly ringing, then what sounds like a shrilling kettle as you are washed with a wave of heat.")) + to_chat(M, span_danger("You hear an unearthly ringing, then what sounds like a shrilling kettle as you are washed with a wave of heat.")) to_chat(M, span_danger("You don't even have a moment to react as you are reduced to ashes by the intense radiation.")) M.dust() SSradiation.radiate(src, rand(energy)) diff --git a/maps/offmap_vr/common_offmaps.dm b/maps/offmap_vr/common_offmaps.dm index 2d7bacc46b3..b0bac955da0 100644 --- a/maps/offmap_vr/common_offmaps.dm +++ b/maps/offmap_vr/common_offmaps.dm @@ -226,6 +226,29 @@ ////////////////////////////////////////////////////////////////////////////////////// +#ifdef AWAY_MISSION_TEST +#include "../redgate/falls/falls.dmm" +#include "../redgate/abandonedisland.dmm" +#include "../redgate/cybercity.dmm" +#include "../redgate/darkadventure.dmm" +#include "../redgate/eggnogtown.dmm" +#include "../redgate/eggnogtownunderground.dmm" +#include "../redgate/facility.dmm" +#include "../redgate/fantasy_dungeon.dmm" +#include "../redgate/fantasy.dmm" +#include "../redgate/hotsprings.dmm" +#include "../redgate/innland.dmm" +#include "../redgate/islands_underwater.dmm" +#include "../redgate/islands.dmm" +#include "../redgate/jungle_underground.dmm" +#include "../redgate/jungle.dmm" +#include "../redgate/laserdome.dmm" +#include "../redgate/stardog.dmm" +#include "../redgate/teppiranch.dmm" +#include "../redgate/train_upper.dmm" +#include "../redgate/train.dmm" +#endif + /datum/map_template/common_lateload/redgate name = "Redgate Submap" desc = "Please do not use this." diff --git a/maps/redgate/eggnogtown.dmm b/maps/redgate/eggnogtown.dmm index 9dc3ed22d03..3771a88096d 100644 --- a/maps/redgate/eggnogtown.dmm +++ b/maps/redgate/eggnogtown.dmm @@ -4090,7 +4090,7 @@ "XK" = ( /obj/effect/map_effect/perma_light/gateway{ light_color = "#fc8c03"; - light_power = .5 + light_power = 0.5 }, /turf/simulated/floor/wood, /area/redgate/eggnogtown/bar) From 7106b4a2b9a6d32167f26b7a9f0d176eb7d43acf Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Sat, 9 Nov 2024 14:46:06 +0000 Subject: [PATCH 27/83] choker tweak (#16575) --- .../clothing/under/accessories/accessory_vr.dm | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/code/modules/clothing/under/accessories/accessory_vr.dm b/code/modules/clothing/under/accessories/accessory_vr.dm index 4c8e2c61432..db12dc815cc 100644 --- a/code/modules/clothing/under/accessories/accessory_vr.dm +++ b/code/modules/clothing/under/accessories/accessory_vr.dm @@ -5,7 +5,7 @@ /obj/item/clothing/accessory/choker //A colorable, tagless choker name = "plain choker" slot_flags = SLOT_TIE | SLOT_OCLOTHING - desc = "A simple, plain choker. Or maybe it's a collar? Use in-hand to customize it." + desc = "A simple, plain choker. Or maybe it's a collar?" icon = 'icons/inventory/accessory/item_vr.dmi' icon_override = 'icons/inventory/accessory/mob_vr.dmi' icon_state = "choker_cst" @@ -44,18 +44,6 @@ /obj/item/clothing/accessory/choker/dropped() icon_override = icon_previous_override -/obj/item/clothing/accessory/choker/attack_self(mob/user as mob) - if(!customized) - var/design = tgui_input_list(user,"Descriptor?","Pick descriptor","Descriptor", list("plain","simple","ornate","elegant","opulent")) - var/material = tgui_input_list(user,"Material?","Pick material","Material", list("leather","velvet","lace","fabric","latex","plastic","metal","chain","silver","gold","platinum","steel","bead","ruby","sapphire","emerald","diamond")) - var/type = tgui_input_list(user,"Type?","Pick type","Type", list("choker","collar","necklace")) - name = "[design] [material] [type]" - desc = "A [type], made of [material]. It's rather [design]." - customized = 1 - to_chat(usr,span_notice("[src] has now been customized.")) - else - to_chat(usr,span_notice("[src] has already been customized!")) - /obj/item/clothing/accessory/collar slot_flags = SLOT_TIE | SLOT_OCLOTHING icon = 'icons/inventory/accessory/item_vr.dmi' From 7013ff1e53edf0f93a33257c46f7a962359fd54a Mon Sep 17 00:00:00 2001 From: SatinIsle <98125273+SatinIsle@users.noreply.github.com> Date: Sat, 9 Nov 2024 14:48:35 +0000 Subject: [PATCH 28/83] Allow pouring stuff into tanks (#16576) Added the ability to alt-click a reagent dispenser (such as a water or fuel tank) to open the input. When the input is open, reagent containers (such as buckets and beakers) will pour their contents into the dispenser to refill it. --- .../reagents/machinery/dispenser/reagent_tank.dm | 16 ++++++++++++++++ .../reagent_containers/_reagent_containers.dm | 3 +++ 2 files changed, 19 insertions(+) diff --git a/code/modules/reagents/machinery/dispenser/reagent_tank.dm b/code/modules/reagents/machinery/dispenser/reagent_tank.dm index 058cbe26ea8..9e823fb51a2 100644 --- a/code/modules/reagents/machinery/dispenser/reagent_tank.dm +++ b/code/modules/reagents/machinery/dispenser/reagent_tank.dm @@ -1,6 +1,7 @@ /obj/structure/reagent_dispensers name = "Dispenser" desc = "..." + description_info = "The input can be opened by Alt-clicking it, allowing you to pour reagents inside." icon = 'icons/obj/chemical_tanks.dmi' icon_state = "tank" layer = TABLE_LAYER @@ -16,6 +17,8 @@ var/amount_per_transfer_from_this = 10 var/possible_transfer_amounts = list(10,25,50,100) + var/open_top = FALSE + /obj/structure/reagent_dispensers/attackby(obj/item/W as obj, mob/user as mob) return @@ -79,6 +82,19 @@ /obj/structure/reagent_dispensers/blob_act() qdel(src) +/obj/structure/reagent_dispensers/AltClick(mob/user) + if(!Adjacent(user)) + return + + if(flags & OPENCONTAINER) + to_chat(user, span_notice("You close the input on \the [src]")) + flags -= OPENCONTAINER + open_top = FALSE + else + to_chat(user, span_notice("You open the input on \the [src], allowing you to pour reagents in.")) + flags |= OPENCONTAINER + open_top = TRUE + /* * Tanks */ diff --git a/code/modules/reagents/reagent_containers/_reagent_containers.dm b/code/modules/reagents/reagent_containers/_reagent_containers.dm index 33128f94a1b..2c40ca03cc3 100644 --- a/code/modules/reagents/reagent_containers/_reagent_containers.dm +++ b/code/modules/reagents/reagent_containers/_reagent_containers.dm @@ -48,6 +48,9 @@ if(!istype(target)) return 0 + if(target.open_top) + return 0 + if(!target.reagents || !target.reagents.total_volume) to_chat(user, span_notice("[target] is empty.")) return 1 From 361effe064d52a13539f12a2190612b552d66ecf Mon Sep 17 00:00:00 2001 From: Killian Date: Sun, 10 Nov 2024 15:11:05 +0000 Subject: [PATCH 29/83] bracelet refactor --- .../loadout/loadout_accessories.dm | 16 +- .../modules/clothing/accessories/accessory.dm | 151 ------------------ code/modules/clothing/accessories/hands.dm | 123 ++++++++++++++ code/modules/economy/vending_machines_vr.dm | 28 ++-- icons/inventory/hands/item.dmi | Bin 34196 -> 35895 bytes icons/inventory/hands/mob.dmi | Bin 31060 -> 31054 bytes 6 files changed, 145 insertions(+), 173 deletions(-) diff --git a/code/modules/client/preference_setup/loadout/loadout_accessories.dm b/code/modules/client/preference_setup/loadout/loadout_accessories.dm index d22bdcc20e9..dcd8cf03c38 100644 --- a/code/modules/client/preference_setup/loadout/loadout_accessories.dm +++ b/code/modules/client/preference_setup/loadout/loadout_accessories.dm @@ -360,18 +360,18 @@ /datum/gear/accessory/wristband_collection display_name = "wristbands (selection)" - path = /obj/item/clothing/accessory/wristbandcollection + path = /obj/item/clothing/accessory/wristband/collection /datum/gear/accessory/wristband_collection/New() ..() var/list/wristband_lists = list( - "Green, Blue and Yellow" = /obj/item/clothing/accessory/wristbandcollection, - "Pink, Black and Red" = /obj/item/clothing/accessory/wristbandcollection/pink, - "Red and Orange" = /obj/item/clothing/accessory/wristbandcollection/les, - "White, Pink and Blue" = /obj/item/clothing/accessory/wristbandcollection/trans, - "Blue, Purple and Pink" = /obj/item/clothing/accessory/wristbandcollection/bi, - "Black, White and Grey" = /obj/item/clothing/accessory/wristbandcollection/ace, - "Spiked" = /obj/item/clothing/accessory/wristband_spiked + "Green, Blue and Yellow" = /obj/item/clothing/accessory/wristband/collection, + "Pink, Black and Red" = /obj/item/clothing/accessory/wristband/collection/pink, + "Red and Orange" = /obj/item/clothing/accessory/wristband/collection/les, + "White, Pink and Blue" = /obj/item/clothing/accessory/wristband/collection/trans, + "Blue, Purple and Pink" = /obj/item/clothing/accessory/wristband/collection/bi, + "Black, White and Grey" = /obj/item/clothing/accessory/wristband/collection/ace, + "Spiked" = /obj/item/clothing/accessory/wristband/spiked ) gear_tweaks += new/datum/gear_tweak/path(wristband_lists) diff --git a/code/modules/clothing/accessories/accessory.dm b/code/modules/clothing/accessories/accessory.dm index e005048399f..7610687a9a0 100644 --- a/code/modules/clothing/accessories/accessory.dm +++ b/code/modules/clothing/accessories/accessory.dm @@ -387,85 +387,6 @@ icon_state = "tesh_neckscarf" species_restricted = list(SPECIES_TESHARI) -//bracelets - -/obj/item/clothing/accessory/bracelet - name = "bracelet" - desc = "A simple silver bracelet with a clasp." - icon = 'icons/inventory/accessory/item.dmi' - icon_state = "bracelet" - w_class = ITEMSIZE_TINY - slot_flags = SLOT_TIE - slot = ACCESSORY_SLOT_DECOR - -/obj/item/clothing/accessory/bracelet/friendship - name = "friendship bracelet" - desc = "A beautiful friendship bracelet in all the colors of the rainbow." - icon_state = "friendbracelet" - -/obj/item/clothing/accessory/bracelet/friendship/verb/dedicate_bracelet() - set name = "Dedicate Bracelet" - set category = "Object" - set desc = "Dedicate your friendship bracelet to a special someone." - var/mob/M = usr - if(!M.mind) - return 0 - - var/input = sanitizeSafe(input(usr, "Who do you want to dedicate the bracelet to?", ,""), MAX_NAME_LEN) - - if(src && input && !M.stat && in_range(M,src)) - desc = "A beautiful friendship bracelet in all the colors of the rainbow. It's dedicated to [input]." - to_chat(M, "You dedicate the bracelet to [input], remembering the times you've had together.") - return 1 - - -/obj/item/clothing/accessory/bracelet/material - icon_state = "materialbracelet" - -/obj/item/clothing/accessory/bracelet/material/New(var/newloc, var/new_material) - ..(newloc) - if(!new_material) - new_material = MAT_STEEL - material = get_material_by_name(new_material) - if(!istype(material)) - qdel(src) - return - name = "[material.display_name] bracelet" - desc = "A bracelet made from [material.display_name]." - color = material.icon_colour - -/obj/item/clothing/accessory/bracelet/material/get_material() - return material - -/obj/item/clothing/accessory/bracelet/material/wood/New(var/newloc) - ..(newloc, "wood") - -/obj/item/clothing/accessory/bracelet/material/plastic/New(var/newloc) - ..(newloc, "plastic") - -/obj/item/clothing/accessory/bracelet/material/iron/New(var/newloc) - ..(newloc, "iron") - -/obj/item/clothing/accessory/bracelet/material/steel/New(var/newloc) - ..(newloc, "steel") - -/obj/item/clothing/accessory/bracelet/material/silver/New(var/newloc) - ..(newloc, "silver") - -/obj/item/clothing/accessory/bracelet/material/gold/New(var/newloc) - ..(newloc, "gold") - -/obj/item/clothing/accessory/bracelet/material/platinum/New(var/newloc) - ..(newloc, "platinum") - -/obj/item/clothing/accessory/bracelet/material/phoron/New(var/newloc) - ..(newloc, "phoron") - -/obj/item/clothing/accessory/bracelet/material/glass/New(var/newloc) - ..(newloc, "glass") - - ..() - /obj/item/clothing/accessory/halfcape name = "half cape" desc = "A tasteful half-cape, suitible for European nobles and retro anime protagonists." @@ -484,78 +405,6 @@ icon_state = "sash" slot = ACCESSORY_SLOT_OVER -/obj/item/clothing/accessory/wristband - name = "wristband" - desc = "A simple plastic wristband." - icon = 'icons/inventory/accessory/item.dmi' - icon_state = "wristband" - w_class = ITEMSIZE_TINY - slot_flags = SLOT_TIE - slot = ACCESSORY_SLOT_DECOR - -/obj/item/clothing/accessory/wristbandcollection - name = "wristband collection" - desc = "A mix of colourable plastic wristbands." - icon = 'icons/inventory/accessory/item.dmi' - icon_state = "wristband_collection" - w_class = ITEMSIZE_TINY - slot_flags = SLOT_TIE - slot = ACCESSORY_SLOT_DECOR - -/obj/item/clothing/accessory/wristbandcollection/pink - name = "wristband collection" - desc = "A mix of colourable plastic wristbands." - icon = 'icons/inventory/accessory/item.dmi' - icon_state = "wristband_collection2" - w_class = ITEMSIZE_TINY - slot_flags = SLOT_TIE - slot = ACCESSORY_SLOT_DECOR - -/obj/item/clothing/accessory/wristbandcollection/les - name = "wristband collection" - desc = "A mix of colourable plastic wristbands." - icon = 'icons/inventory/accessory/item.dmi' - icon_state = "wristband_collection3" - w_class = ITEMSIZE_TINY - slot_flags = SLOT_TIE - slot = ACCESSORY_SLOT_DECOR - -/obj/item/clothing/accessory/wristbandcollection/trans - name = "wristband collection" - desc = "A mix of colourable plastic wristbands." - icon = 'icons/inventory/accessory/item.dmi' - icon_state = "wristband_collection4" - w_class = ITEMSIZE_TINY - slot_flags = SLOT_TIE - slot = ACCESSORY_SLOT_DECOR - -/obj/item/clothing/accessory/wristbandcollection/bi - name = "wristband collection" - desc = "A mix of colourable plastic wristbands." - icon = 'icons/inventory/accessory/item.dmi' - icon_state = "wristband_collection5" - w_class = ITEMSIZE_TINY - slot_flags = SLOT_TIE - slot = ACCESSORY_SLOT_DECOR - -/obj/item/clothing/accessory/wristbandcollection/ace - name = "wristband collection" - desc = "A mix of colourable plastic wristbands." - icon = 'icons/inventory/accessory/item.dmi' - icon_state = "wristband_collection6" - w_class = ITEMSIZE_TINY - slot_flags = SLOT_TIE - slot = ACCESSORY_SLOT_DECOR - -/obj/item/clothing/accessory/wristband_spiked - name = "wristband (spiked)" - desc = "A black wristband with short spikes around it." - icon = 'icons/inventory/accessory/item.dmi' - icon_state = "wristband_spiked" - w_class = ITEMSIZE_TINY - slot_flags = SLOT_TIE - slot = ACCESSORY_SLOT_DECOR - //Gaiter scarves /obj/item/clothing/accessory/gaiter name = "red neck gaiter" diff --git a/code/modules/clothing/accessories/hands.dm b/code/modules/clothing/accessories/hands.dm index 26533291f18..befe128fc71 100644 --- a/code/modules/clothing/accessories/hands.dm +++ b/code/modules/clothing/accessories/hands.dm @@ -16,3 +16,126 @@ ) drop_sound = 'sound/items/drop/metalboots.ogg' pickup_sound = 'sound/items/pickup/toolbox.ogg' + +//bracelets + +/obj/item/clothing/accessory/bracelet + name = "bracelet" + desc = "A simple silver bracelet with a clasp." + icon = 'icons/inventory/accessory/item.dmi' + icon_state = "bracelet" + w_class = ITEMSIZE_TINY + slot_flags = SLOT_GLOVES + slot = ACCESSORY_SLOT_WRIST + +/obj/item/clothing/accessory/bracelet/friendship + name = "friendship bracelet" + desc = "A beautiful friendship bracelet in all the colors of the rainbow." + icon_state = "friendbracelet" + +/obj/item/clothing/accessory/bracelet/friendship/verb/dedicate_bracelet() + set name = "Dedicate Bracelet" + set category = "Object" + set desc = "Dedicate your friendship bracelet to a special someone." + var/mob/M = usr + if(!M.mind) + return 0 + + var/input = sanitizeSafe(input(usr, "Who do you want to dedicate the bracelet to?", ,""), MAX_NAME_LEN) + + if(src && input && !M.stat && in_range(M,src)) + desc = "A beautiful friendship bracelet in all the colors of the rainbow. It's dedicated to [input]." + to_chat(M, "You dedicate the bracelet to [input], remembering the times you've had together.") + return 1 + + +/obj/item/clothing/accessory/bracelet/material + icon_state = "materialbracelet" + +/obj/item/clothing/accessory/bracelet/material/New(var/newloc, var/new_material) + ..(newloc) + if(!new_material) + new_material = MAT_STEEL + material = get_material_by_name(new_material) + if(!istype(material)) + qdel(src) + return + name = "[material.display_name] bracelet" + desc = "A bracelet made from [material.display_name]." + color = material.icon_colour + +/obj/item/clothing/accessory/bracelet/material/get_material() + return material + +/obj/item/clothing/accessory/bracelet/material/wood/New(var/newloc) + ..(newloc, "wood") + +/obj/item/clothing/accessory/bracelet/material/plastic/New(var/newloc) + ..(newloc, "plastic") + +/obj/item/clothing/accessory/bracelet/material/iron/New(var/newloc) + ..(newloc, "iron") + +/obj/item/clothing/accessory/bracelet/material/steel/New(var/newloc) + ..(newloc, "steel") + +/obj/item/clothing/accessory/bracelet/material/silver/New(var/newloc) + ..(newloc, "silver") + +/obj/item/clothing/accessory/bracelet/material/gold/New(var/newloc) + ..(newloc, "gold") + +/obj/item/clothing/accessory/bracelet/material/platinum/New(var/newloc) + ..(newloc, "platinum") + +/obj/item/clothing/accessory/bracelet/material/phoron/New(var/newloc) + ..(newloc, "phoron") + +/obj/item/clothing/accessory/bracelet/material/glass/New(var/newloc) + ..(newloc, "glass") + +//wristbands + +/obj/item/clothing/accessory/wristband + name = "wristband" + desc = "A simple plastic wristband." + icon = 'icons/inventory/accessory/item.dmi' + icon_state = "wristband" + w_class = ITEMSIZE_TINY + slot_flags = SLOT_GLOVES + slot = ACCESSORY_SLOT_WRIST + +/obj/item/clothing/accessory/wristband/spiked + name = "wristband (spiked)" + desc = "A black wristband with short spikes around it." + icon_state = "wristband_spiked" + +/obj/item/clothing/accessory/wristband/collection + name = "wristband collection" + desc = "A mix of colourable plastic wristbands." + icon_state = "wristband_collection" + +/obj/item/clothing/accessory/wristband/collection/pink + name = "wristband collection" + desc = "A mix of colourable plastic wristbands." + icon_state = "wristband_collection2" + +/obj/item/clothing/accessory/wristband/collection/les + name = "wristband collection" + desc = "A mix of colourable plastic wristbands." + icon_state = "wristband_collection3" + +/obj/item/clothing/accessory/wristband/collection/trans + name = "wristband collection" + desc = "A mix of colourable plastic wristbands." + icon_state = "wristband_collection4" + +/obj/item/clothing/accessory/wristband/collection/bi + name = "wristband collection" + desc = "A mix of colourable plastic wristbands." + icon_state = "wristband_collection5" + +/obj/item/clothing/accessory/wristband/collection/ace + name = "wristband collection" + desc = "A mix of colourable plastic wristbands." + icon_state = "wristband_collection6" diff --git a/code/modules/economy/vending_machines_vr.dm b/code/modules/economy/vending_machines_vr.dm index cc917731284..47f4a765d47 100644 --- a/code/modules/economy/vending_machines_vr.dm +++ b/code/modules/economy/vending_machines_vr.dm @@ -614,13 +614,13 @@ /obj/item/clothing/accessory/wcoat/swvest/blue = 5, /obj/item/clothing/accessory/wcoat/swvest/red = 5, /obj/item/clothing/accessory/wristband = 5, - /obj/item/clothing/accessory/wristbandcollection = 5, - /obj/item/clothing/accessory/wristbandcollection/pink = 5, - /obj/item/clothing/accessory/wristbandcollection/les = 5, - /obj/item/clothing/accessory/wristbandcollection/bi = 5, - /obj/item/clothing/accessory/wristbandcollection/trans = 5, - /obj/item/clothing/accessory/wristbandcollection/ace = 5, - /obj/item/clothing/accessory/wristband_spiked = 5, + /obj/item/clothing/accessory/wristband/collection = 5, + /obj/item/clothing/accessory/wristband/collection/pink = 5, + /obj/item/clothing/accessory/wristband/collection/les = 5, + /obj/item/clothing/accessory/wristband/collection/bi = 5, + /obj/item/clothing/accessory/wristband/collection/trans = 5, + /obj/item/clothing/accessory/wristband/collection/ace = 5, + /obj/item/clothing/accessory/wristband/spiked = 5, /obj/item/clothing/accessory/belt = 5, /obj/item/clothing/accessory/belt/thick = 5, /obj/item/clothing/accessory/belt/strap = 5, @@ -759,13 +759,13 @@ /obj/item/clothing/accessory/wcoat/swvest/blue = 50, /obj/item/clothing/accessory/wcoat/swvest/red = 50, /obj/item/clothing/accessory/wristband = 10, - /obj/item/clothing/accessory/wristbandcollection = 30, - /obj/item/clothing/accessory/wristbandcollection/pink = 30, - /obj/item/clothing/accessory/wristbandcollection/les = 30, - /obj/item/clothing/accessory/wristbandcollection/bi = 30, - /obj/item/clothing/accessory/wristbandcollection/trans = 30, - /obj/item/clothing/accessory/wristbandcollection/ace = 30, - /obj/item/clothing/accessory/wristband_spiked = 20, + /obj/item/clothing/accessory/wristband/collection = 30, + /obj/item/clothing/accessory/wristband/collection/pink = 30, + /obj/item/clothing/accessory/wristband/collection/les = 30, + /obj/item/clothing/accessory/wristband/collection/bi = 30, + /obj/item/clothing/accessory/wristband/collection/trans = 30, + /obj/item/clothing/accessory/wristband/collection/ace = 30, + /obj/item/clothing/accessory/wristband/spiked = 20, /obj/item/clothing/accessory/belt = 50, /obj/item/clothing/accessory/belt/thick = 50, /obj/item/clothing/accessory/belt/strap = 50, diff --git a/icons/inventory/hands/item.dmi b/icons/inventory/hands/item.dmi index 228d79992399d2312e0fc5b7fa9aa30564bc98a1..3adca7d964f9c13efb0c51408af303840ead6739 100644 GIT binary patch literal 35895 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%0DbtUpI@cD5E7eXd#O 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

OzVa@`3h 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 WN+w=Bz9;z*_)?HjmM)Sq4*DO4eJ)P` diff --git a/icons/inventory/hands/mob.dmi b/icons/inventory/hands/mob.dmi index 3b8fdbf6ac480667548e0f7785ba66392b875659..bf041c8a0236c7e463a1c73fbf8ddd11126363ba 100644 GIT binary patch literal 31054 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 z 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 z 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 From d0aa7c266dbb5c08f13d5a06cad56c00ea16d728 Mon Sep 17 00:00:00 2001 From: Killian Date: Sun, 10 Nov 2024 15:21:18 +0000 Subject: [PATCH 30/83] redgate map fixes --- maps/redgate/cybercity.dmm | 2 +- maps/redgate/fantasy.dmm | 16 ++++++++-------- maps/redgate/fantasy_dungeon.dmm | 2 +- maps/redgate/hotsprings.dmm | 2 +- maps/redgate/islands_underwater.dmm | 2 +- maps/redgate/train_upper.dmm | 4 ++-- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/maps/redgate/cybercity.dmm b/maps/redgate/cybercity.dmm index a82478c9526..b5b094ca1b1 100644 --- a/maps/redgate/cybercity.dmm +++ b/maps/redgate/cybercity.dmm @@ -9484,7 +9484,7 @@ /obj/structure/closet/wardrobe, /obj/random/maintenance/cargo, /obj/item/clothing/glasses/goggles, -/obj/item/clothing/gloves/ring/material/plastic, +/obj/item/clothing/accessory/ring/material/plastic, /obj/item/clothing/under/cuttop/red, /turf/simulated/floor/wood, /area/redgate/city/apartments) diff --git a/maps/redgate/fantasy.dmm b/maps/redgate/fantasy.dmm index 3ab8fa68a0e..072d62751c1 100644 --- a/maps/redgate/fantasy.dmm +++ b/maps/redgate/fantasy.dmm @@ -550,7 +550,7 @@ /area/redgate/fantasy/butcher) "dw" = ( /obj/structure/table/woodentable, -/obj/item/clothing/gloves/ring/material/silver, +/obj/item/clothing/accessory/ring/material/silver, /obj/structure/window/basic{ dir = 4 }, @@ -2067,7 +2067,7 @@ /area/redgate/fantasy/redgate) "mW" = ( /obj/structure/table/woodentable, -/obj/item/clothing/gloves/ring/material/diamond, +/obj/item/clothing/accessory/ring/material/diamond, /obj/structure/window/basic{ dir = 4 }, @@ -2507,7 +2507,7 @@ /area/redgate/fantasy/grocery) "pq" = ( /obj/structure/table/woodentable, -/obj/item/clothing/gloves/ring/material/gold, +/obj/item/clothing/accessory/ring/material/gold, /obj/structure/window/basic{ dir = 4 }, @@ -2906,7 +2906,7 @@ /area/redgate/fantasy/church) "rO" = ( /obj/structure/table/woodentable, -/obj/item/clothing/gloves/ring/material/wood, +/obj/item/clothing/accessory/ring/material/wood, /turf/simulated/floor/wood/alt, /area/redgate/fantasy/jewler) "rP" = ( @@ -3465,7 +3465,7 @@ /area/redgate/fantasy/butcher) "vl" = ( /obj/structure/table/rack/shelf/wood, -/obj/item/clothing/gloves/ring/material/silver, +/obj/item/clothing/accessory/ring/material/silver, /obj/machinery/light/small/torch{ dir = 8 }, @@ -3489,7 +3489,7 @@ /area/redgate/fantasy/castle) "vp" = ( /obj/structure/table/woodentable, -/obj/item/clothing/gloves/ring/material/void_opal, +/obj/item/clothing/accessory/ring/material/void_opal, /obj/structure/window/basic{ dir = 4 }, @@ -7836,7 +7836,7 @@ /area/redgate/fantasy/butcher) "WW" = ( /obj/structure/table/rack/shelf/wood, -/obj/item/clothing/gloves/ring/material/gold, +/obj/item/clothing/accessory/ring/material/gold, /turf/simulated/floor/wood/alt, /area/redgate/fantasy/jewler) "WZ" = ( @@ -8255,7 +8255,7 @@ /area/redgate/fantasy/bard) "ZP" = ( /obj/structure/table/woodentable, -/obj/item/clothing/gloves/ring/material/iron, +/obj/item/clothing/accessory/ring/material/iron, /turf/simulated/floor/wood/alt, /area/redgate/fantasy/jewler) "ZS" = ( diff --git a/maps/redgate/fantasy_dungeon.dmm b/maps/redgate/fantasy_dungeon.dmm index 64436653a2a..44cc56930bf 100644 --- a/maps/redgate/fantasy_dungeon.dmm +++ b/maps/redgate/fantasy_dungeon.dmm @@ -209,7 +209,7 @@ /turf/simulated/floor/concrete, /area/redgate/fantasy/castle) "ez" = ( -/obj/item/clothing/gloves/ring/material/gold, +/obj/item/clothing/accessory/ring/material/gold, /turf/simulated/mineral/floor/ignore_cavegen/cave, /area/redgate/fantasy/caves) "eP" = ( diff --git a/maps/redgate/hotsprings.dmm b/maps/redgate/hotsprings.dmm index 725aafba2a2..4a8eaccc540 100644 --- a/maps/redgate/hotsprings.dmm +++ b/maps/redgate/hotsprings.dmm @@ -1209,7 +1209,7 @@ /obj/random/mouseray, /obj/random/cash/huge, /obj/item/clothing/ears/earring/dangle/diamond, -/obj/item/clothing/gloves/ring/material/diamond, +/obj/item/clothing/accessory/ring/material/diamond, /obj/structure/closet/grave/dirthole, /obj/random/coin, /turf/simulated/floor/outdoors/dirt{ diff --git a/maps/redgate/islands_underwater.dmm b/maps/redgate/islands_underwater.dmm index 834ec9585ae..5f25f246f3c 100644 --- a/maps/redgate/islands_underwater.dmm +++ b/maps/redgate/islands_underwater.dmm @@ -848,7 +848,7 @@ /turf/simulated/floor/water/underwater/sand, /area/redgate/islands/ruins) "qY" = ( -/obj/item/clothing/gloves/ring/material/gold, +/obj/item/clothing/accessory/ring/material/gold, /turf/simulated/floor/water/underwater/sand, /area/redgate/islands/ruins) "rk" = ( diff --git a/maps/redgate/train_upper.dmm b/maps/redgate/train_upper.dmm index f5921a71d0a..56b08472297 100644 --- a/maps/redgate/train_upper.dmm +++ b/maps/redgate/train_upper.dmm @@ -3121,8 +3121,8 @@ /obj/structure/closet/cabinet, /obj/item/clothing/under/suit_jacket, /obj/item/clothing/shoes/dress, -/obj/item/clothing/gloves/ring/wedding, -/obj/item/clothing/gloves/ring/wedding, +/obj/item/clothing/accessory/ring/wedding, +/obj/item/clothing/accessory/ring/wedding, /obj/item/clothing/accessory/bowtie/black, /turf/simulated/floor/wood, /area/redgate/train/dorm6) From 7c3788f095b9567a7748fb8085268001872e63f4 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sun, 10 Nov 2024 17:42:08 +0100 Subject: [PATCH 31/83] initial --- .../mob/living/silicon/robot/drone/drone.dm | 3 - .../modules/mob/living/silicon/robot/login.dm | 7 +- .../modules/mob/living/silicon/robot/robot.dm | 105 ++--------------- .../silicon/robot/robot_modules/station.dm | 3 +- .../living/silicon/robot/robot_ui_module.dm | 106 ++++++++++++++++++ vorestation.dme | 1 + 6 files changed, 120 insertions(+), 105 deletions(-) create mode 100644 code/modules/mob/living/silicon/robot/robot_ui_module.dm diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index fd1132d05a8..c7c1a1a2fbc 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -203,9 +203,6 @@ var/list/mob_hat_cache = list() can_pick_shell = FALSE update_icon() -/mob/living/silicon/robot/drone/choose_icon() - return - /mob/living/silicon/robot/drone/pick_module() return diff --git a/code/modules/mob/living/silicon/robot/login.dm b/code/modules/mob/living/silicon/robot/login.dm index 89a136223e2..ef25b1bece0 100644 --- a/code/modules/mob/living/silicon/robot/login.dm +++ b/code/modules/mob/living/silicon/robot/login.dm @@ -11,11 +11,6 @@ repick_laws() // Forces synths to select an icon relevant to their module - if(!icon_selected) - icon_selection_tries = SSrobot_sprites.get_module_sprites_len(modtype, src) + 1 - choose_icon(icon_selection_tries) - - if(sprite_datum && module) - sprite_datum.do_equipment_glamour(module) + pick_module() plane_holder.set_vis(VIS_AUGMENTED, TRUE) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index a79310c02be..4e7ea7bd00e 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -31,8 +31,7 @@ //Icon stuff var/datum/robot_sprite/sprite_datum // Sprite datum, holding all our sprite data - var/icon_selected = 1 // If icon selection has been completed yet - var/icon_selection_tries = 0 // Remaining attempts to select icon before a selection is forced + var/icon_selected = 0 // If icon selection has been completed yet var/list/sprite_extra_customization = list() var/rest_style = "Default" var/notransform @@ -336,46 +335,17 @@ return module_sprites */ /mob/living/silicon/robot/proc/pick_module() + if(icon_selected) + return if(module) - return - var/list/modules = list() - //VOREStatation Edit Start: shell restrictions - if(shell) - if(restrict_modules_to.len > 0) - modules.Add(restrict_modules_to) - else - modules.Add(shell_module_types) - else - if(restrict_modules_to.len > 0) - modules.Add(restrict_modules_to) - else - modules.Add(robot_module_types) - if(crisis || security_level == SEC_LEVEL_RED || crisis_override) - to_chat(src, span_red("Crisis mode active. Combat module available.")) - modules |= emergency_module_types - for(var/module_name in whitelisted_module_types) - if(is_borg_whitelisted(src, module_name)) - modules |= module_name - //VOREStatation Edit End: shell restrictions - modtype = tgui_input_list(usr, "Please, select a module!", "Robot module", modules) + var/list/module_sprites = SSrobot_sprites.get_module_sprites(module, src) + if(module_sprites.len == 1 || !client) + sprite_datum = module_sprites[1] + return + new/datum/tgui_module/robot_ui_module(src) + if(sprite_datum && module) + sprite_datum.do_equipment_glamour(module) - if(module) - return - if(!(modtype in robot_modules)) - return - if(!is_borg_whitelisted(src, modtype)) - return - - var/module_type = robot_modules[modtype] - transform_with_anim() //VOREStation edit: sprite animation - new module_type(src) - - hands.icon_state = get_hud_module_icon() - feedback_inc("cyborg_[lowertext(modtype)]",1) - updatename() - hud_used.update_robot_modules_display() - notify_ai(ROBOT_NOTIFICATION_NEW_MODULE, module.name) - robotact?.update_static_data_for_all_viewers() /mob/living/silicon/robot/proc/update_braintype() if(istype(mmi, /obj/item/mmi/digital/posibrain)) @@ -796,6 +766,7 @@ notify_ai(ROBOT_NOTIFICATION_MODULE_RESET, module.name) module.Reset(src) qdel(module) + icon_selected = 0 module = null updatename("Default") has_recoloured = FALSE @@ -1088,60 +1059,6 @@ return -/mob/living/silicon/robot/proc/choose_icon(var/triesleft) - var/robot_species = null - if(!SSrobot_sprites) - to_chat(src, "Robot Sprites have not been initialized yet. How are you choosing a sprite? Harass a coder.") - return - - var/list/module_sprites = SSrobot_sprites.get_module_sprites(modtype, src) - if(!module_sprites || !module_sprites.len) - to_chat(src, "Your module appears to have no sprite options. Harass a coder.") - return - - icon_selected = 0 - icon_selection_tries = triesleft - if(module_sprites.len == 1 || !client) - if(!(sprite_datum in module_sprites)) - sprite_datum = module_sprites[1] - else - var/selection = tgui_input_list(src, "Select an icon! [triesleft ? "You have [triesleft] more chance\s." : "This is your last try."]", "Robot Icon", module_sprites) - if(selection) - sprite_datum = selection - else - sprite_datum = module_sprites[1] - if(!istype(src,/mob/living/silicon/robot/drone)) - robot_species = sprite_datum.name - if(notransform) - to_chat(src, "Your current transformation has not finished yet!") - choose_icon(icon_selection_tries) - return - else - transform_with_anim() - - var/tempheight = vis_height - update_icon() - // This is bad but I dunno other way to 'reset' our resize offset based on vis_height changes other than resizing to normal and back. - if(tempheight != vis_height) - var/tempsize = size_multiplier - resize(1) - resize(tempsize) - - - if (module_sprites.len > 1 && triesleft >= 1 && client) - icon_selection_tries-- - var/choice = tgui_alert(usr, "Look at your icon - is this what you want?", "Icon Choice", list("Yes","No")) - if(choice == "No") - choose_icon(icon_selection_tries) - return - - icon_selected = 1 - icon_selection_tries = 0 - sprite_type = robot_species - if(hands) - update_hud() - to_chat(src, span_filter_notice("Your icon has been set. You now require a module reset to change it.")) - /mob/living/silicon/robot/proc/set_default_module_icon() if(!SSrobot_sprites) return diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station.dm b/code/modules/mob/living/silicon/robot/robot_modules/station.dm index 8f8c0757e0c..5764989ecff 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -73,7 +73,6 @@ var/global/list/robot_modules = list( R.radio.recalculateChannels() R.set_default_module_icon() - R.choose_icon(SSrobot_sprites.get_module_sprites_len(R.modtype, R) + 1) if(!R.client) R.icon_selected = FALSE // It wasnt a player selecting icon? Let them do it later! @@ -93,7 +92,7 @@ var/global/list/robot_modules = list( if(R.radio) R.radio.recalculateChannels() - R.choose_icon(0) + R.set_default_module_icon() R.scrubbing = FALSE diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm new file mode 100644 index 00000000000..addf1bf6ef1 --- /dev/null +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -0,0 +1,106 @@ +// Robot module selection +/datum/tgui_module/robot_ui_module + name = "Robot Module Configurator" + tgui_id = "RobotChoose" + var/selected_module + var/datum/robot_sprite/sprite_datum + +/datum/tgui_module/robot_ui_module/tgui_state(mob/user) + return GLOB.tgui_self_state + +/datum/tgui_module/robot_ui_module/tgui_static_data() + var/list/data = ..() + + var/mob/living/silicon/robot/R = host + + var/list/modules = list() + if(R.module) + modules = list(R.module) + selected_module = R.module + else + if(LAZYLEN(R.restrict_modules_to) > 0) + modules.Add(R.restrict_modules_to) + else if(R.shell) + modules.Add(shell_module_types) + else + modules.Add(robot_module_types) + if(R.crisis || security_level == SEC_LEVEL_RED || R.crisis_override) + to_chat(R, span_red("Crisis mode active. Combat module available.")) + modules |= emergency_module_types + for(var/module_name in whitelisted_module_types) + if(is_borg_whitelisted(R, module_name)) + modules |= module_name + data["possible_modules"] = modules + + return data + +/datum/tgui_module/robot_ui_module/tgui_data() + var/list/data = ..() + + var/mob/living/silicon/robot/R = host + + if(selected_module) + if(!SSrobot_sprites) + to_chat(R, span_warning("Robot Sprites have not been initialized yet. How are you choosing a sprite? Harass a coder.")) + selected_module = null + return + + var/list/module_sprites = SSrobot_sprites.get_module_sprites(selected_module, R) + if(!module_sprites || !module_sprites.len) + to_chat(R, span_warning("Your module appears to have no sprite options. Harass a coder.")) + selected_module = null + return + + data["possible_sprites"] = module_sprites + + return data + +/datum/tgui_module/robot_ui_module/tgui_act(action, params) + . = ..() + if(.) + return + + var/mob/living/silicon/robot/R = host + + switch(action) + if("pick_module") + if(R.module) + return + var/new_module = params["value"] + if(!(new_module in robot_modules)) + return + if(!is_borg_whitelisted(R, new_module)) + return + selected_module = new_module + . = TRUE + if("pick_icon") + var/sprite = params["value"] + if(!sprite) + return + var/list/module_sprites = SSrobot_sprites.get_module_sprites(selected_module, R) + sprite_datum = module_sprites[sprite] + . = TRUE + if("confirm") + R.icon_selected = 1 + var/module_type = robot_modules[selected_module] + R.module = new module_type(R) + R.hands.icon_state = R.get_hud_module_icon() + feedback_inc("cyborg_[lowertext(selected_module)]",1) + R.updatename() + R.hud_used.update_robot_modules_display() + R.notify_ai(ROBOT_NOTIFICATION_NEW_MODULE, R.module.name) + R.robotact?.update_static_data_for_all_viewers() + if(!istype(R,/mob/living/silicon/robot/drone)) + R.sprite_type = sprite_datum.name + R.transform_with_anim() + var/tempheight = R.vis_height + R.update_icon() + // This is bad but I dunno other way to 'reset' our resize offset based on vis_height changes other than resizing to normal and back. + if(tempheight != R.vis_height) + var/tempsize = R.size_multiplier + R.resize(1) + R.resize(tempsize) + if(R.hands) + R.update_hud() + to_chat(R, span_filter_notice("Your icon has been set. You now require a module reset to change it.")) + tgui_close() diff --git a/vorestation.dme b/vorestation.dme index 07be19acdd6..576a9c1f1b3 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -3163,6 +3163,7 @@ #include "code\modules\mob\living\silicon\robot\robot_movement.dm" #include "code\modules\mob\living\silicon\robot\robot_remote_control.dm" #include "code\modules\mob\living\silicon\robot\robot_ui.dm" +#include "code\modules\mob\living\silicon\robot\robot_ui_module.dm" #include "code\modules\mob\living\silicon\robot\dogborg\dog_modules_vr.dm" #include "code\modules\mob\living\silicon\robot\dogborg\dog_sleeper_vr.dm" #include "code\modules\mob\living\silicon\robot\drone\drone.dm" From dafcd12ecd83e15a76fc17b9f63cdb0df801db20 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sun, 10 Nov 2024 17:45:14 +0100 Subject: [PATCH 32/83] . --- code/modules/mob/living/silicon/robot/robot_modules/station.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station.dm b/code/modules/mob/living/silicon/robot/robot_modules/station.dm index 5764989ecff..bc54a72e638 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -73,6 +73,7 @@ var/global/list/robot_modules = list( R.radio.recalculateChannels() R.set_default_module_icon() + R.pick_module() if(!R.client) R.icon_selected = FALSE // It wasnt a player selecting icon? Let them do it later! From 48e75791fbbe43d05f0eb3a0cafd81fa91b95bdb Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sun, 10 Nov 2024 17:56:32 +0100 Subject: [PATCH 33/83] . --- code/modules/mob/living/silicon/robot/robot.dm | 4 +--- code/modules/mob/living/silicon/robot/robot_ui_module.dm | 2 ++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 4e7ea7bd00e..4b1bb55aec1 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -341,11 +341,9 @@ var/list/module_sprites = SSrobot_sprites.get_module_sprites(module, src) if(module_sprites.len == 1 || !client) sprite_datum = module_sprites[1] + sprite_datum.do_equipment_glamour(module) return new/datum/tgui_module/robot_ui_module(src) - if(sprite_datum && module) - sprite_datum.do_equipment_glamour(module) - /mob/living/silicon/robot/proc/update_braintype() if(istype(mmi, /obj/item/mmi/digital/posibrain)) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index addf1bf6ef1..708c3c23316 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -90,6 +90,7 @@ R.hud_used.update_robot_modules_display() R.notify_ai(ROBOT_NOTIFICATION_NEW_MODULE, R.module.name) R.robotact?.update_static_data_for_all_viewers() + R.sprite_datum = sprite_datum if(!istype(R,/mob/living/silicon/robot/drone)) R.sprite_type = sprite_datum.name R.transform_with_anim() @@ -102,5 +103,6 @@ R.resize(tempsize) if(R.hands) R.update_hud() + R.sprite_datum.do_equipment_glamour(module) to_chat(R, span_filter_notice("Your icon has been set. You now require a module reset to change it.")) tgui_close() From f1207e8fd2445e284e74044f5a9418e4d4305b0c Mon Sep 17 00:00:00 2001 From: Casey Date: Sun, 10 Nov 2024 13:34:08 -0500 Subject: [PATCH 34/83] Map swap --- maps/~map_system/_map_selection.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/maps/~map_system/_map_selection.dm b/maps/~map_system/_map_selection.dm index 47ff0d984d0..879f058f545 100644 --- a/maps/~map_system/_map_selection.dm +++ b/maps/~map_system/_map_selection.dm @@ -5,8 +5,8 @@ /* FOR LIVE SERVER */ /*********************/ -//#define USE_MAP_TETHER -#define USE_MAP_STELLARDELIGHT +#define USE_MAP_TETHER +//#define USE_MAP_STELLARDELIGHT //#define USE_MAP_GROUNDBASE // Debug From 0601585dd71924ae47cf6c3b88dc7f84c4934a76 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sun, 10 Nov 2024 19:48:21 +0100 Subject: [PATCH 35/83] make the basics work --- .../modules/mob/living/silicon/robot/robot.dm | 5 +- .../mob/living/silicon/robot/robot_ui.dm | 4 ++ .../living/silicon/robot/robot_ui_module.dm | 18 +++++-- .../silicon/robot/subtypes/gravekeeper.dm | 1 + .../silicon/robot/subtypes/lost_drone.dm | 1 + .../silicon/robot/subtypes/syndicate.dm | 1 + tgui/packages/tgui/interfaces/RobotChoose.tsx | 52 +++++++++++++++++++ .../tgui/interfaces/Robotact/index.tsx | 2 +- .../tgui/interfaces/Robotact/types.ts | 1 + 9 files changed, 79 insertions(+), 6 deletions(-) create mode 100644 tgui/packages/tgui/interfaces/RobotChoose.tsx diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 4b1bb55aec1..cf978597b2f 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -46,6 +46,8 @@ var/shown_robot_modules = 0 //Used to determine whether they have the module menu shown or not var/obj/screen/robot_modules_background + var/ui_theme + //3 Modules can be activated at any one time. var/obj/item/robot_module/module = null var/module_active = null @@ -343,7 +345,8 @@ sprite_datum = module_sprites[1] sprite_datum.do_equipment_glamour(module) return - new/datum/tgui_module/robot_ui_module(src) + var/datum/tgui_module/robot_ui_module/ui = new(src) + ui.tgui_interact(src) /mob/living/silicon/robot/proc/update_braintype() if(istype(mmi, /obj/item/mmi/digital/posibrain)) diff --git a/code/modules/mob/living/silicon/robot/robot_ui.dm b/code/modules/mob/living/silicon/robot/robot_ui.dm index 7262f45364a..7499fb198ea 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui.dm @@ -63,6 +63,10 @@ data["health"] = R.health data["max_health"] = R.getMaxHealth() data["light_color"] = R.robot_light_col + if(R.emagged) + data["theme"] = "syndicate" + else if (R.ui_theme) + data["theme"] = R.ui_theme data["weapon_lock"] = R.weapon_lock diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 708c3c23316..e861cbabb84 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -31,6 +31,10 @@ if(is_borg_whitelisted(R, module_name)) modules |= module_name data["possible_modules"] = modules + if(R.emagged) + data["theme"] = "syndicate" + else if (R.ui_theme) + data["theme"] = R.ui_theme return data @@ -40,6 +44,7 @@ var/mob/living/silicon/robot/R = host if(selected_module) + data["selected_module"] = selected_module if(!SSrobot_sprites) to_chat(R, span_warning("Robot Sprites have not been initialized yet. How are you choosing a sprite? Harass a coder.")) selected_module = null @@ -52,6 +57,8 @@ return data["possible_sprites"] = module_sprites + if(sprite_datum) + data["sprite_datum"] = sprite_datum return data @@ -78,13 +85,16 @@ if(!sprite) return var/list/module_sprites = SSrobot_sprites.get_module_sprites(selected_module, R) - sprite_datum = module_sprites[sprite] + for(var/datum/robot_sprite/S in module_sprites) + if(S.name == sprite) + sprite_datum = S + break . = TRUE if("confirm") R.icon_selected = 1 var/module_type = robot_modules[selected_module] + R.modtype = selected_module R.module = new module_type(R) - R.hands.icon_state = R.get_hud_module_icon() feedback_inc("cyborg_[lowertext(selected_module)]",1) R.updatename() R.hud_used.update_robot_modules_display() @@ -103,6 +113,6 @@ R.resize(tempsize) if(R.hands) R.update_hud() - R.sprite_datum.do_equipment_glamour(module) + R.sprite_datum.do_equipment_glamour(R.module) to_chat(R, span_filter_notice("Your icon has been set. You now require a module reset to change it.")) - tgui_close() + close_ui() diff --git a/code/modules/mob/living/silicon/robot/subtypes/gravekeeper.dm b/code/modules/mob/living/silicon/robot/subtypes/gravekeeper.dm index 73357c10711..ccf1908c166 100644 --- a/code/modules/mob/living/silicon/robot/subtypes/gravekeeper.dm +++ b/code/modules/mob/living/silicon/robot/subtypes/gravekeeper.dm @@ -9,6 +9,7 @@ icon_selected = FALSE can_be_antagged = FALSE restrict_modules_to = list("Gravekeeper") + ui_theme = "malfunction" /mob/living/silicon/robot/gravekeeper/init() aiCamera = new/obj/item/camera/siliconcam/robot_camera(src) diff --git a/code/modules/mob/living/silicon/robot/subtypes/lost_drone.dm b/code/modules/mob/living/silicon/robot/subtypes/lost_drone.dm index 24e449c411c..9f0aa11446c 100644 --- a/code/modules/mob/living/silicon/robot/subtypes/lost_drone.dm +++ b/code/modules/mob/living/silicon/robot/subtypes/lost_drone.dm @@ -9,6 +9,7 @@ icon_selected = FALSE restrict_modules_to = list("Lost") var/law_retries = 5 + ui_theme = "malfunction" /mob/living/silicon/robot/lost/init() aiCamera = new/obj/item/camera/siliconcam/robot_camera(src) diff --git a/code/modules/mob/living/silicon/robot/subtypes/syndicate.dm b/code/modules/mob/living/silicon/robot/subtypes/syndicate.dm index 5dd72332e44..15a8257a499 100644 --- a/code/modules/mob/living/silicon/robot/subtypes/syndicate.dm +++ b/code/modules/mob/living/silicon/robot/subtypes/syndicate.dm @@ -8,6 +8,7 @@ idcard_type = /obj/item/card/id/syndicate icon_selected = FALSE restrict_modules_to = list("Protector", "Mechanist", "Combat Medic") + ui_theme = "syndicate" /mob/living/silicon/robot/syndicate/init() aiCamera = new/obj/item/camera/siliconcam/robot_camera(src) diff --git a/tgui/packages/tgui/interfaces/RobotChoose.tsx b/tgui/packages/tgui/interfaces/RobotChoose.tsx new file mode 100644 index 00000000000..670fba547cd --- /dev/null +++ b/tgui/packages/tgui/interfaces/RobotChoose.tsx @@ -0,0 +1,52 @@ +import { useBackend } from 'tgui/backend'; +import { Window } from 'tgui/layouts'; +import { Button, Dropdown, Stack } from 'tgui-core/components'; + +type Data = { + possible_modules: string[]; + possible_sprites: string[]; + theme?: string; + selected_module?: string; + sprite_datum?: string; +}; + +export const RobotChoose = (props) => { + const { act, data } = useBackend(); + + const { + possible_modules, + possible_sprites, + selected_module, + sprite_datum, + theme, + } = data; + + return ( + + + + + act('pick_module', { value })} + selected={selected_module} + /> + + + act('pick_icon', { value })} + selected={sprite_datum} + /> + + + + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Robotact/index.tsx b/tgui/packages/tgui/interfaces/Robotact/index.tsx index 94b97253342..1ab5ea486aa 100644 --- a/tgui/packages/tgui/interfaces/Robotact/index.tsx +++ b/tgui/packages/tgui/interfaces/Robotact/index.tsx @@ -18,7 +18,7 @@ export const Robotact = (props) => { } return ( - + {content} ); diff --git a/tgui/packages/tgui/interfaces/Robotact/types.ts b/tgui/packages/tgui/interfaces/Robotact/types.ts index bd33676d99d..b4232ff6e43 100644 --- a/tgui/packages/tgui/interfaces/Robotact/types.ts +++ b/tgui/packages/tgui/interfaces/Robotact/types.ts @@ -31,6 +31,7 @@ export type Data = { max_health: number; light_color: string; + theme?: string; // Modules modules_static: Module[]; From 890548b14ffc69cbc3c4133aa0ec5f2671a11a12 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sun, 10 Nov 2024 22:07:17 +0100 Subject: [PATCH 36/83] =?UTF-8?q?=C2=B4some=20ui=20basics?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../living/silicon/robot/robot_ui_module.dm | 12 +++-- tgui/packages/tgui/interfaces/RobotChoose.tsx | 52 ------------------- .../interfaces/RobotChoose/ModuleSection.tsx | 47 +++++++++++++++++ .../RobotChoose/SelectorElement.tsx | 36 +++++++++++++ .../interfaces/RobotChoose/SpriteSection.tsx | 48 +++++++++++++++++ .../tgui/interfaces/RobotChoose/index.tsx | 46 ++++++++++++++++ .../tgui/interfaces/RobotChoose/types.ts | 9 ++++ 7 files changed, 195 insertions(+), 55 deletions(-) delete mode 100644 tgui/packages/tgui/interfaces/RobotChoose.tsx create mode 100644 tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx create mode 100644 tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx create mode 100644 tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx create mode 100644 tgui/packages/tgui/interfaces/RobotChoose/index.tsx create mode 100644 tgui/packages/tgui/interfaces/RobotChoose/types.ts diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index e861cbabb84..8e8fbcb6aaf 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -15,8 +15,8 @@ var/list/modules = list() if(R.module) - modules = list(R.module) - selected_module = R.module + modules = list(R.modtype) + selected_module = R.modtype else if(LAZYLEN(R.restrict_modules_to) > 0) modules.Add(R.restrict_modules_to) @@ -55,8 +55,11 @@ to_chat(R, span_warning("Your module appears to have no sprite options. Harass a coder.")) selected_module = null return + var/list/available_sprites = list() + for(var/datum/robot_sprite/S in module_sprites) + available_sprites += list(list("sprite" = S.name, "belly" = S.has_vore_belly_sprites)) - data["possible_sprites"] = module_sprites + data["possible_sprites"] = available_sprites if(sprite_datum) data["sprite_datum"] = sprite_datum @@ -79,6 +82,9 @@ if(!is_borg_whitelisted(R, new_module)) return selected_module = new_module + var/list/module_sprites = SSrobot_sprites.get_module_sprites(selected_module, R) + if(!R.sprite_datum in module_sprites) + sprite_datum = null . = TRUE if("pick_icon") var/sprite = params["value"] diff --git a/tgui/packages/tgui/interfaces/RobotChoose.tsx b/tgui/packages/tgui/interfaces/RobotChoose.tsx deleted file mode 100644 index 670fba547cd..00000000000 --- a/tgui/packages/tgui/interfaces/RobotChoose.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { useBackend } from 'tgui/backend'; -import { Window } from 'tgui/layouts'; -import { Button, Dropdown, Stack } from 'tgui-core/components'; - -type Data = { - possible_modules: string[]; - possible_sprites: string[]; - theme?: string; - selected_module?: string; - sprite_datum?: string; -}; - -export const RobotChoose = (props) => { - const { act, data } = useBackend(); - - const { - possible_modules, - possible_sprites, - selected_module, - sprite_datum, - theme, - } = data; - - return ( - - - - - act('pick_module', { value })} - selected={selected_module} - /> - - - act('pick_icon', { value })} - selected={sprite_datum} - /> - - - - - - ); -}; diff --git a/tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx new file mode 100644 index 00000000000..2a7fafc3718 --- /dev/null +++ b/tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx @@ -0,0 +1,47 @@ +import { createSearch } from 'common/string'; +import { useState } from 'react'; +import { Input, Section, Stack } from 'tgui-core/components'; + +import { SelectorElement } from './SelectorElement'; + +export const ModuleSection = (props: { + title: string; + sortable?: string[]; + selected?: string; +}) => { + const { title, sortable, selected } = props; + + const [searchText, setSearchText] = useState(''); + + const searcher = createSearch(searchText, (element: string) => { + return element; + }); + + const filtered = sortable?.filter(searcher); + + return ( +

+ + setSearchText(value)} + /> + + + + {filtered && + filtered.map((filter) => ( + + ))} + + +
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx b/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx new file mode 100644 index 00000000000..3335fa8192d --- /dev/null +++ b/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx @@ -0,0 +1,36 @@ +import { useBackend } from 'tgui/backend'; +import { Button, Flex, Icon, Stack } from 'tgui-core/components'; + +export const SelectorElement = (props: { + option: string; + action: string; + selected?: string; + belly?: boolean; +}) => { + const { act } = useBackend(); + const { option, action, selected, belly } = props; + + return ( + + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx new file mode 100644 index 00000000000..7c8782aa231 --- /dev/null +++ b/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx @@ -0,0 +1,48 @@ +import { createSearch } from 'common/string'; +import { useState } from 'react'; +import { Input, Section, Stack } from 'tgui-core/components'; + +import { SelectorElement } from './SelectorElement'; +import { spriteOption } from './types'; + +export const SpriteSection = (props: { + title: string; + sortable?: { sprite: string; belly: boolean }[]; + selected?: string; +}) => { + const { title, sortable, selected } = props; + + const [searchText, setSearchText] = useState(''); + + const searcher = createSearch(searchText, (element: spriteOption) => { + return element.sprite; + }); + + const filtered = sortable?.filter(searcher); + return ( +
+ + setSearchText(value)} + /> + + + + {filtered && + filtered.map((filter) => ( + + ))} + + +
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/RobotChoose/index.tsx b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx new file mode 100644 index 00000000000..fcb6e5c408d --- /dev/null +++ b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx @@ -0,0 +1,46 @@ +import { useBackend } from 'tgui/backend'; +import { Window } from 'tgui/layouts'; +import { Button, Stack } from 'tgui-core/components'; + +import { ModuleSection } from './ModuleSection'; +import { SpriteSection } from './SpriteSection'; +import { Data } from './types'; + +export const RobotChoose = (props) => { + const { act, data } = useBackend(); + + const { + possible_modules, + possible_sprites, + selected_module, + sprite_datum, + theme, + } = data; + + return ( + + + + + + + + + + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/RobotChoose/types.ts b/tgui/packages/tgui/interfaces/RobotChoose/types.ts new file mode 100644 index 00000000000..ac06afe56de --- /dev/null +++ b/tgui/packages/tgui/interfaces/RobotChoose/types.ts @@ -0,0 +1,9 @@ +export type Data = { + possible_modules: string[]; + possible_sprites?: spriteOption[]; + theme?: string; + selected_module?: string; + sprite_datum?: string; +}; + +export type spriteOption = { sprite: string; belly: boolean }; From 9b24439eac848a586e327d6e84873db1838202b7 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sun, 10 Nov 2024 22:18:05 +0100 Subject: [PATCH 37/83] . --- code/modules/mob/living/silicon/robot/robot_ui_module.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 8e8fbcb6aaf..8f2e4bbe93c 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -83,7 +83,7 @@ return selected_module = new_module var/list/module_sprites = SSrobot_sprites.get_module_sprites(selected_module, R) - if(!R.sprite_datum in module_sprites) + if(!sprite_datum in module_sprites) sprite_datum = null . = TRUE if("pick_icon") From 6b88488c55d165facbc567474b37702d234df9ad Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Sun, 10 Nov 2024 23:10:29 +0100 Subject: [PATCH 38/83] divide by sprite type --- .../living/silicon/robot/robot_ui_module.dm | 7 ++- .../RobotChoose/SelectorElement.tsx | 1 - .../interfaces/RobotChoose/SpriteSection.tsx | 50 +++++++++++++++---- .../tgui/interfaces/RobotChoose/functions.ts | 47 +++++++++++++++++ .../tgui/interfaces/RobotChoose/types.ts | 2 +- 5 files changed, 95 insertions(+), 12 deletions(-) create mode 100644 tgui/packages/tgui/interfaces/RobotChoose/functions.ts diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 8f2e4bbe93c..7ea6049d0ee 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -57,7 +57,12 @@ return var/list/available_sprites = list() for(var/datum/robot_sprite/S in module_sprites) - available_sprites += list(list("sprite" = S.name, "belly" = S.has_vore_belly_sprites)) + var/model_type = "def" + if(istype(S, /datum/robot_sprite/dogborg)) + model_type = "wide" + if(istype(S, /datum/robot_sprite/dogborg/tall)) + model_type = "tall" + available_sprites += list(list("sprite" = S.name, "belly" = S.has_vore_belly_sprites, "type" = model_type)) data["possible_sprites"] = available_sprites if(sprite_datum) diff --git a/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx b/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx index 3335fa8192d..d1beda36d0f 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx @@ -15,7 +15,6 @@ export const SelectorElement = (props: { + } + > + {!!sprite && !!module && ( + <> + + + + + + + + + + + + + + )} + + ); +}; diff --git a/tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx index 2a7fafc3718..c90dbbe7be5 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/ModuleSection.tsx @@ -31,7 +31,7 @@ export const ModuleSection = (props: { - {filtered && + {!!filtered && filtered.map((filter) => ( - {' '} diff --git a/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx index 31fb410700d..13cba8fc052 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx @@ -63,7 +63,7 @@ export const SpriteSection = (props: { - {filtered && + {!!filtered && filtered.map((filter) => ( { - const { act, data } = useBackend(); + const { data } = useBackend(); const { possible_modules, @@ -31,14 +32,7 @@ export const RobotChoose = (props) => { sortable={possible_sprites} selected={sprite_datum} /> - - - + From b09bdf0397c9ce8c3420dd97262342a61c28a5a9 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 00:21:24 +0100 Subject: [PATCH 42/83] . --- code/modules/mob/living/silicon/robot/robot_ui_module.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 5dc30cfdbcf..6037834bf14 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -92,7 +92,7 @@ return selected_module = new_module var/list/module_sprites = SSrobot_sprites.get_module_sprites(selected_module, R) - if(!sprite_datum in module_sprites) + if(!(sprite_datum in module_sprites)) sprite_datum = null . = TRUE if("pick_icon") From b563c08d04b2efe32cf86561c91125384701b5d9 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 00:31:32 +0100 Subject: [PATCH 43/83] . --- code/modules/asset_cache/asset_list_items.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index c2296302211..699e48e99cf 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -445,7 +445,6 @@ for(var/datum/robot_sprite/S as anything in typesof(/datum/robot_sprite)) if(!S.name) continue - to_world("[S.name]]") var/icon/I_S = icon(S.sprite_icon, S.sprite_icon_state, SOUTH) var/icon/I_N = icon(S.sprite_icon, S.sprite_icon_state, NORTH) var/icon/I_W = icon(S.sprite_icon, S.sprite_icon_state, WEST) From e6e6449c79b8ea6580b26a207d3eea2ea3ae1814 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 01:25:24 +0100 Subject: [PATCH 44/83] we only need out own asset --- code/modules/mob/living/silicon/robot/robot_ui_module.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 6037834bf14..435c5241460 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -10,7 +10,9 @@ /datum/tgui_module/robot_ui_module/ui_assets(mob/user) - . += get_asset_datum(/datum/asset/spritesheet/robot_icons) + return list( + get_asset_datum(/datum/asset/spritesheet/robot_icons) + ) /datum/tgui_module/robot_ui_module/tgui_static_data() var/list/data = ..() From bbff768a4650bc2309775a1df0102fd2aafee215 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 01:27:51 +0100 Subject: [PATCH 45/83] we need sprite and module for it anyway --- code/modules/asset_cache/asset_list_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 699e48e99cf..911dd62fb06 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -443,7 +443,7 @@ /datum/asset/spritesheet/robot_icons/create_spritesheets() for(var/datum/robot_sprite/S as anything in typesof(/datum/robot_sprite)) - if(!S.name) + if(!S.name || !S.module_type) continue var/icon/I_S = icon(S.sprite_icon, S.sprite_icon_state, SOUTH) var/icon/I_N = icon(S.sprite_icon, S.sprite_icon_state, NORTH) From 1ca37e1ad73ee9c317dbf8f4be1fa38c105600b4 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 02:05:08 +0100 Subject: [PATCH 46/83] some Ui things --- code/_helpers/text.dm | 5 +++++ code/modules/asset_cache/asset_list_items.dm | 11 ++++++----- .../mob/living/silicon/robot/robot_ui_module.dm | 4 +++- .../tgui/interfaces/RobotChoose/IconSection.tsx | 14 +++++++------- .../interfaces/RobotChoose/SelectorElement.tsx | 2 +- .../tgui/interfaces/RobotChoose/SpriteSection.tsx | 2 +- .../packages/tgui/interfaces/RobotChoose/index.tsx | 3 ++- tgui/packages/tgui/interfaces/RobotChoose/types.ts | 3 ++- 8 files changed, 27 insertions(+), 17 deletions(-) diff --git a/code/_helpers/text.dm b/code/_helpers/text.dm index 520b98d39ad..3357116d308 100644 --- a/code/_helpers/text.dm +++ b/code/_helpers/text.dm @@ -620,3 +620,8 @@ return json_decode(data) catch return null + +/// Removes all non-alphanumerics from the text, keep in mind this can lead to id conflicts +/proc/sanitize_css_class_name(name) + var/static/regex/regex = new(@"[^a-zA-Z0-9]","g") + return replacetext(name, regex, "") diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 911dd62fb06..b0dc6223e6b 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -443,7 +443,7 @@ /datum/asset/spritesheet/robot_icons/create_spritesheets() for(var/datum/robot_sprite/S as anything in typesof(/datum/robot_sprite)) - if(!S.name || !S.module_type) + if(!S.name) continue var/icon/I_S = icon(S.sprite_icon, S.sprite_icon_state, SOUTH) var/icon/I_N = icon(S.sprite_icon, S.sprite_icon_state, NORTH) @@ -461,10 +461,11 @@ var/icon/I_EE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", EAST) if(I_EE) I_E.Blend(I_EE, ICON_OVERLAY) - Insert(S.module_type + S.name + "_S", I_S) - Insert(S.module_type + S.name + "_N", I_N) - Insert(S.module_type + S.name + "_W", I_W) - Insert(S.module_type + S.name + "_E", I_E) + var/imgid = sanitize_css_class_name("[S.type]") + Insert(imgid + "_S", I_S) + Insert(imgid + "_N", I_N) + Insert(imgid + "_W", I_W) + Insert(imgid + "_E", I_E) //Cloning pod sprites for UIs diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 435c5241460..1c3973d5dc6 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -71,8 +71,10 @@ available_sprites += list(list("sprite" = S.name, "belly" = S.has_vore_belly_sprites, "type" = model_type)) data["possible_sprites"] = available_sprites + data["sprite_datum"] = sprite_datum + data["asset"] = null if(sprite_datum) - data["sprite_datum"] = sprite_datum + data["asset"] = sanitize_css_class_name("[sprite_datum.type]") return data diff --git a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx index f066f1b5071..8f18137ea19 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx @@ -2,9 +2,9 @@ import { resolveAsset } from 'tgui/assets'; import { useBackend } from 'tgui/backend'; import { Button, Image, Section, Stack } from 'tgui-core/components'; -export const IconSection = (props: { module?: string; sprite?: string }) => { +export const IconSection = (props: { sprite?: string | null }) => { const { act } = useBackend(); - const { module, sprite } = props; + const { sprite } = props; return (
{ } > - {!!sprite && !!module && ( + {!!sprite && ( <> { { { { const { act } = useBackend(); diff --git a/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx index 13cba8fc052..b9906e252e7 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx @@ -7,8 +7,8 @@ import { spriteOption } from './types'; export const SpriteSection = (props: { title: string; + selected?: string | null; sortable?: spriteOption[]; - selected?: string; }) => { const { title, sortable, selected } = props; diff --git a/tgui/packages/tgui/interfaces/RobotChoose/index.tsx b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx index 999b0c687fb..3f04b68e772 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/index.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx @@ -16,6 +16,7 @@ export const RobotChoose = (props) => { selected_module, sprite_datum, theme, + asset, } = data; return ( @@ -32,7 +33,7 @@ export const RobotChoose = (props) => { sortable={possible_sprites} selected={sprite_datum} /> - + diff --git a/tgui/packages/tgui/interfaces/RobotChoose/types.ts b/tgui/packages/tgui/interfaces/RobotChoose/types.ts index 1fa9774eb9a..60bab5ac9de 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/types.ts +++ b/tgui/packages/tgui/interfaces/RobotChoose/types.ts @@ -3,7 +3,8 @@ export type Data = { possible_sprites?: spriteOption[]; theme?: string; selected_module?: string; - sprite_datum?: string; + sprite_datum?: string | null; + asset?: string | null; }; export type spriteOption = { sprite: string; belly: boolean; type: string }; From f80786eb9d9b72ef4fb19e5ea1872a73ed97d6a6 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 02:38:48 +0100 Subject: [PATCH 47/83] getting there, thanks Shadow --- code/modules/asset_cache/asset_list_items.dm | 16 ++++---- .../living/silicon/robot/robot_ui_module.dm | 6 ++- .../interfaces/RobotChoose/IconSection.tsx | 41 ++++++------------- .../tgui/interfaces/RobotChoose/index.tsx | 5 ++- .../tgui/interfaces/RobotChoose/types.ts | 3 +- 5 files changed, 29 insertions(+), 42 deletions(-) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index b0dc6223e6b..09cb6d2af95 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -445,16 +445,16 @@ for(var/datum/robot_sprite/S as anything in typesof(/datum/robot_sprite)) if(!S.name) continue - var/icon/I_S = icon(S.sprite_icon, S.sprite_icon_state, SOUTH) var/icon/I_N = icon(S.sprite_icon, S.sprite_icon_state, NORTH) + var/icon/I_S = icon(S.sprite_icon, S.sprite_icon_state, SOUTH) var/icon/I_W = icon(S.sprite_icon, S.sprite_icon_state, WEST) var/icon/I_E = icon(S.sprite_icon, S.sprite_icon_state, EAST) - var/icon/I_SE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", SOUTH) - if(I_SE) - I_S.Blend(I_SE, ICON_OVERLAY) var/icon/I_NE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", NORTH) if(I_NE) I_N.Blend(I_NE, ICON_OVERLAY) + var/icon/I_SE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", SOUTH) + if(I_SE) + I_S.Blend(I_SE, ICON_OVERLAY) var/icon/I_WE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", WEST) if(I_WE) I_W.Blend(I_WE, ICON_OVERLAY) @@ -462,10 +462,10 @@ if(I_EE) I_E.Blend(I_EE, ICON_OVERLAY) var/imgid = sanitize_css_class_name("[S.type]") - Insert(imgid + "_S", I_S) - Insert(imgid + "_N", I_N) - Insert(imgid + "_W", I_W) - Insert(imgid + "_E", I_E) + Insert(imgid + "N", I_N) + Insert(imgid + "S", I_S) + Insert(imgid + "W", I_W) + Insert(imgid + "E", I_E) //Cloning pod sprites for UIs diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 1c3973d5dc6..1090c527140 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -48,6 +48,7 @@ var/list/data = ..() var/mob/living/silicon/robot/R = host + var/datum/asset/spritesheet/robot_icons/spritesheet = get_asset_datum(/datum/asset/spritesheet/robot_icons) if(selected_module) data["selected_module"] = selected_module @@ -72,9 +73,10 @@ data["possible_sprites"] = available_sprites data["sprite_datum"] = sprite_datum - data["asset"] = null + data["sprite_datum_class"] = null if(sprite_datum) - data["asset"] = sanitize_css_class_name("[sprite_datum.type]") + data["sprite_datum_class"] = sanitize_css_class_name("[sprite_datum.type]") + data["sprite_datum_size"] = spritesheet.icon_size_id(data["sprite_datum_class"] + "S") // just get the south icon's size, the rest will be the same return data diff --git a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx index 8f18137ea19..ac61e464a13 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx @@ -1,10 +1,13 @@ -import { resolveAsset } from 'tgui/assets'; import { useBackend } from 'tgui/backend'; -import { Button, Image, Section, Stack } from 'tgui-core/components'; +import { Box, Button, Section, Stack } from 'tgui-core/components'; +import { classes } from 'tgui-core/react'; -export const IconSection = (props: { sprite?: string | null }) => { +export const IconSection = (props: { + sprite?: string | null; + size?: string; +}) => { const { act } = useBackend(); - const { sprite } = props; + const { sprite, size } = props; return (
{ } > - {!!sprite && ( + {!!sprite && !!size && ( <> - + - + - + - + )} diff --git a/tgui/packages/tgui/interfaces/RobotChoose/index.tsx b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx index 3f04b68e772..e3fe8f5a0f9 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/index.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx @@ -16,7 +16,8 @@ export const RobotChoose = (props) => { selected_module, sprite_datum, theme, - asset, + sprite_datum_class, + sprite_datum_size, } = data; return ( @@ -33,7 +34,7 @@ export const RobotChoose = (props) => { sortable={possible_sprites} selected={sprite_datum} /> - + diff --git a/tgui/packages/tgui/interfaces/RobotChoose/types.ts b/tgui/packages/tgui/interfaces/RobotChoose/types.ts index 60bab5ac9de..9f5f425e9d6 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/types.ts +++ b/tgui/packages/tgui/interfaces/RobotChoose/types.ts @@ -4,7 +4,8 @@ export type Data = { theme?: string; selected_module?: string; sprite_datum?: string | null; - asset?: string | null; + sprite_datum_class?: string | null; + sprite_datum_size?: string; }; export type spriteOption = { sprite: string; belly: boolean; type: string }; From 9157d163bc1b25c8fa5fa194f632d9fec114d816 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 03:23:43 +0100 Subject: [PATCH 48/83] some styling --- code/modules/asset_cache/asset_list_items.dm | 4 +++ .../living/silicon/robot/robot_ui_module.dm | 1 + .../interfaces/RobotChoose/IconSection.tsx | 36 +++++++++++++++---- .../tgui/interfaces/RobotChoose/types.ts | 2 +- 4 files changed, 36 insertions(+), 7 deletions(-) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 09cb6d2af95..88211f7a4dc 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -462,6 +462,10 @@ if(I_EE) I_E.Blend(I_EE, ICON_OVERLAY) var/imgid = sanitize_css_class_name("[S.type]") + I_N.Scale(120,120) + I_S.Scale(120,120) + I_W.Scale(120,120) + I_E.Scale(120,120) Insert(imgid + "N", I_N) Insert(imgid + "S", I_S) Insert(imgid + "W", I_W) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 1090c527140..78b9c592e40 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -74,6 +74,7 @@ data["possible_sprites"] = available_sprites data["sprite_datum"] = sprite_datum data["sprite_datum_class"] = null + data["sprite_datum_size"] = null if(sprite_datum) data["sprite_datum_class"] = sanitize_css_class_name("[sprite_datum.type]") data["sprite_datum_size"] = spritesheet.icon_size_id(data["sprite_datum_class"] + "S") // just get the south icon's size, the rest will be the same diff --git a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx index ac61e464a13..20a03b5cd09 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx @@ -1,10 +1,10 @@ import { useBackend } from 'tgui/backend'; -import { Box, Button, Section, Stack } from 'tgui-core/components'; +import { Box, Button, Flex, Section, Stack } from 'tgui-core/components'; import { classes } from 'tgui-core/react'; export const IconSection = (props: { sprite?: string | null; - size?: string; + size?: string | null; }) => { const { act } = useBackend(); const { sprite, size } = props; @@ -24,16 +24,40 @@ export const IconSection = (props: { {!!sprite && !!size && ( <> - + + + + + + + - + + + + + + + - + + + + + + + - + + + + + + + )} diff --git a/tgui/packages/tgui/interfaces/RobotChoose/types.ts b/tgui/packages/tgui/interfaces/RobotChoose/types.ts index 9f5f425e9d6..18b57f6ce0d 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/types.ts +++ b/tgui/packages/tgui/interfaces/RobotChoose/types.ts @@ -5,7 +5,7 @@ export type Data = { selected_module?: string; sprite_datum?: string | null; sprite_datum_class?: string | null; - sprite_datum_size?: string; + sprite_datum_size?: string | null; }; export type spriteOption = { sprite: string; belly: boolean; type: string }; From d2bb281b45a1d0e3b243a5345f8eb17b2cfff317 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 03:58:53 +0100 Subject: [PATCH 49/83] fix --- code/modules/asset_cache/asset_list_items.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 88211f7a4dc..7e268c77736 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -443,7 +443,7 @@ /datum/asset/spritesheet/robot_icons/create_spritesheets() for(var/datum/robot_sprite/S as anything in typesof(/datum/robot_sprite)) - if(!S.name) + if(!S.name || !S.sprite_icon_state) // snowflake out those customs... they suck continue var/icon/I_N = icon(S.sprite_icon, S.sprite_icon_state, NORTH) var/icon/I_S = icon(S.sprite_icon, S.sprite_icon_state, SOUTH) From acb6f568d5ce8c1343573391dfa15e39ffe3da99 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 04:03:41 +0100 Subject: [PATCH 50/83] ensure eyes --- code/modules/asset_cache/asset_list_items.dm | 28 +++++++++++--------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 7e268c77736..54be950ed54 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -449,18 +449,22 @@ var/icon/I_S = icon(S.sprite_icon, S.sprite_icon_state, SOUTH) var/icon/I_W = icon(S.sprite_icon, S.sprite_icon_state, WEST) var/icon/I_E = icon(S.sprite_icon, S.sprite_icon_state, EAST) - var/icon/I_NE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", NORTH) - if(I_NE) - I_N.Blend(I_NE, ICON_OVERLAY) - var/icon/I_SE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", SOUTH) - if(I_SE) - I_S.Blend(I_SE, ICON_OVERLAY) - var/icon/I_WE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", WEST) - if(I_WE) - I_W.Blend(I_WE, ICON_OVERLAY) - var/icon/I_EE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", EAST) - if(I_EE) - I_E.Blend(I_EE, ICON_OVERLAY) + if(S.has_eye_sprites) + var/icon/I_NE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", NORTH) + if(I_NE) + I_N.Blend(I_NE, ICON_OVERLAY) + if(S.has_eye_sprites) + var/icon/I_SE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", SOUTH) + if(I_SE) + I_S.Blend(I_SE, ICON_OVERLAY) + if(S.has_eye_sprites) + var/icon/I_WE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", WEST) + if(I_WE) + I_W.Blend(I_WE, ICON_OVERLAY) + if(S.has_eye_sprites) + var/icon/I_EE = icon(S.sprite_icon, "[S.sprite_icon_state]-eyes", EAST) + if(I_EE) + I_E.Blend(I_EE, ICON_OVERLAY) var/imgid = sanitize_css_class_name("[S.type]") I_N.Scale(120,120) I_S.Scale(120,120) From ba9b3e3676abaf83021962a42f133d40bcd0818f Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 08:53:52 +0100 Subject: [PATCH 51/83] include renaming --- code/game/objects/items/antag_spawners.dm | 1 - code/game/objects/items/robot/robot_parts.dm | 1 - code/game/objects/structures/ghost_pods/silicon.dm | 2 -- .../objects/structures/ghost_pods/silicon_vr.dm | 1 - code/modules/mob/living/silicon/robot/robot.dm | 13 +++++-------- .../mob/living/silicon/robot/robot_ui_module.dm | 11 +++++++++++ code/modules/mob/transform_procs.dm | 1 - .../tgui/interfaces/RobotChoose/IconSection.tsx | 13 +++++++++++-- tgui/packages/tgui/interfaces/RobotChoose/index.tsx | 7 ++++++- tgui/packages/tgui/interfaces/RobotChoose/types.ts | 1 + 10 files changed, 34 insertions(+), 17 deletions(-) diff --git a/code/game/objects/items/antag_spawners.dm b/code/game/objects/items/antag_spawners.dm index 8371f5b0175..28817531895 100644 --- a/code/game/objects/items/antag_spawners.dm +++ b/code/game/objects/items/antag_spawners.dm @@ -118,7 +118,6 @@ to speak with your team, and learn what their plan is for today.")) R.key = C.key -// R.Namepick() // Apparnetly making someone a merc lets them pick a name, so this isn't needed. spawn(1) mercs.add_antagonist(R.mind, FALSE, TRUE, FALSE, FALSE, FALSE) diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 32af47b31af..2667b9d3f66 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -225,7 +225,6 @@ feedback_inc("cyborg_birth",1) callHook("borgify", list(O)) - O.namepick() qdel(src) else diff --git a/code/game/objects/structures/ghost_pods/silicon.dm b/code/game/objects/structures/ghost_pods/silicon.dm index 64ac8f5674b..4f50784aed2 100644 --- a/code/game/objects/structures/ghost_pods/silicon.dm +++ b/code/game/objects/structures/ghost_pods/silicon.dm @@ -31,7 +31,6 @@ from the pod is not a crewmember.")) R.ckey = M.ckey visible_message(span_warning("As \the [src] opens, the eyes of the robot flicker as it is activated.")) - R.namepick() log_and_message_admins("successfully opened \a [src] and got a Lost Drone.") ..() @@ -57,7 +56,6 @@ definiton of 'your gravesite' is where your pod is.")) R.ckey = M.ckey visible_message(span_warning("As \the [src] opens, the eyes of the robot flicker as it is activated.")) - R.namepick() ..() /obj/structure/ghost_pod/ghost_activated/swarm_drone diff --git a/code/game/objects/structures/ghost_pods/silicon_vr.dm b/code/game/objects/structures/ghost_pods/silicon_vr.dm index cfc3b781d2f..1039349f2e1 100644 --- a/code/game/objects/structures/ghost_pods/silicon_vr.dm +++ b/code/game/objects/structures/ghost_pods/silicon_vr.dm @@ -21,7 +21,6 @@ from the pod is not a crewmember.")) R.ckey = M.ckey visible_message(span_warning("As \the [src] opens, the eyes of the robot flicker as it is activated.")) - R.namepick() log_and_message_admins("successfully opened \a [src] and got a Lost Drone.") used = TRUE return TRUE diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index cf978597b2f..28e680a0b76 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -407,15 +407,12 @@ to_chat(usr, "You can't pick another custom name. [isshell(src) ? "" : "Go ask for a name change."]") return 0 - spawn(0) - var/newname - newname = sanitizeSafe(tgui_input_text(src,"You are a robot. Enter a name, or leave blank for the default name.", "Name change","", MAX_NAME_LEN), MAX_NAME_LEN) - if (newname) - custom_name = newname - sprite_name = newname + var/newname = sanitizeSafe(tgui_input_text(src,"You are a robot. Enter a name, or leave blank for the default name.", "Name change","", MAX_NAME_LEN), MAX_NAME_LEN) + if (newname) + custom_name = newname + sprite_name = newname - updatename() - update_icon() + updatename() /mob/living/silicon/robot/verb/extra_customization() set name = "Customize Appearance" diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 78b9c592e40..883ad8c22c9 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -3,6 +3,7 @@ name = "Robot Module Configurator" tgui_id = "RobotChoose" var/selected_module + var/newName var/datum/robot_sprite/sprite_datum /datum/tgui_module/robot_ui_module/tgui_state(mob/user) @@ -50,6 +51,8 @@ var/mob/living/silicon/robot/R = host var/datum/asset/spritesheet/robot_icons/spritesheet = get_asset_datum(/datum/asset/spritesheet/robot_icons) + data["currentName"] = newName ? newName : R.name + if(selected_module) data["selected_module"] = selected_module if(!SSrobot_sprites) @@ -112,7 +115,15 @@ sprite_datum = S break . = TRUE + if("rename") + var/name = params["value"] + if(name) + newName = sanitizeSafe(name, MAX_NAME_LEN) if("confirm") + if(!R.custom_name) + if (newName) + R.custom_name = newName + R.sprite_name = newName R.icon_selected = 1 var/module_type = robot_modules[selected_module] R.modtype = selected_module diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index a686e35de7b..5d018586f1d 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -190,7 +190,6 @@ O.custom_speech_bubble = B.custom_speech_bubble callHook("borgify", list(O)) - O.namepick() spawn(0) // Mobs still instantly del themselves, thus we need to spawn or O will never be returned qdel(src) diff --git a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx index 20a03b5cd09..5426dac0c15 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx @@ -1,13 +1,14 @@ import { useBackend } from 'tgui/backend'; -import { Box, Button, Flex, Section, Stack } from 'tgui-core/components'; +import { Box, Button, Flex, Input, Section, Stack } from 'tgui-core/components'; import { classes } from 'tgui-core/react'; export const IconSection = (props: { + currentName: string; sprite?: string | null; size?: string | null; }) => { const { act } = useBackend(); - const { sprite, size } = props; + const { currentName, sprite, size } = props; return (
} > + + act('rename', { value })} + maxLength={52} + /> + {!!sprite && !!size && ( <> diff --git a/tgui/packages/tgui/interfaces/RobotChoose/index.tsx b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx index e3fe8f5a0f9..50288a56a69 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/index.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx @@ -16,6 +16,7 @@ export const RobotChoose = (props) => { selected_module, sprite_datum, theme, + currentName, sprite_datum_class, sprite_datum_size, } = data; @@ -34,7 +35,11 @@ export const RobotChoose = (props) => { sortable={possible_sprites} selected={sprite_datum} /> - + diff --git a/tgui/packages/tgui/interfaces/RobotChoose/types.ts b/tgui/packages/tgui/interfaces/RobotChoose/types.ts index 18b57f6ce0d..4febf2232a6 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/types.ts +++ b/tgui/packages/tgui/interfaces/RobotChoose/types.ts @@ -1,6 +1,7 @@ export type Data = { possible_modules: string[]; possible_sprites?: spriteOption[]; + currentName: string; theme?: string; selected_module?: string; sprite_datum?: string | null; From dde2880e50f8fb26f73839eab29f979aa7e87755 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 09:52:39 +0100 Subject: [PATCH 52/83] lock state --- code/modules/asset_cache/asset_list_items.dm | 8 ++++---- code/modules/mob/living/silicon/robot/robot.dm | 6 ++++-- .../mob/living/silicon/robot/robot_ui_module.dm | 11 +++++++++++ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 54be950ed54..564b0879488 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -466,10 +466,10 @@ if(I_EE) I_E.Blend(I_EE, ICON_OVERLAY) var/imgid = sanitize_css_class_name("[S.type]") - I_N.Scale(120,120) - I_S.Scale(120,120) - I_W.Scale(120,120) - I_E.Scale(120,120) + I_N.Scale(120, 120) + I_S.Scale(120, 120) + I_W.Scale(120, 120) + I_E.Scale(120, 120) Insert(imgid + "N", I_N) Insert(imgid + "S", I_S) Insert(imgid + "W", I_W) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 28e680a0b76..7b095cdc495 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -47,6 +47,7 @@ var/obj/screen/robot_modules_background var/ui_theme + var/selecting_module = FALSE //3 Modules can be activated at any one time. var/obj/item/robot_module/module = null @@ -345,8 +346,9 @@ sprite_datum = module_sprites[1] sprite_datum.do_equipment_glamour(module) return - var/datum/tgui_module/robot_ui_module/ui = new(src) - ui.tgui_interact(src) + if(!selecting_module) + var/datum/tgui_module/robot_ui_module/ui = new(src) + ui.tgui_interact(src) /mob/living/silicon/robot/proc/update_braintype() if(istype(mmi, /obj/item/mmi/digital/posibrain)) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 883ad8c22c9..6b1ea6b2a6e 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -9,6 +9,17 @@ /datum/tgui_module/robot_ui_module/tgui_state(mob/user) return GLOB.tgui_self_state +/datum/tgui_module/robot_ui_module/tgui_close(mob/user) + . = ..() + if(isrobot(user)) + var/mob/living/silicon/robot/R = user + R.selecting_module = FALSE + +/datum/tgui_module/robot_ui_module/tgui_interact(mob/user, datum/tgui/ui, datum/tgui/parent_ui) + . = ..() + if(isrobot(user)) + var/mob/living/silicon/robot/R = user + R.selecting_module = TRUE /datum/tgui_module/robot_ui_module/ui_assets(mob/user) return list( From fbb720a66d4ffbce2470f723cb426d41052f89b6 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 10:14:05 +0100 Subject: [PATCH 53/83] modify robot to spritesheet --- code/modules/admin/modify_robot.dm | 20 +++++++++------ .../ModifyRobotTabs/ModifyRobotComponent.tsx | 24 ++++++++++-------- .../ModifyRobotTabs/ModifyRobotModules.tsx | 25 +++++++++++-------- .../ModifyRobotTabs/ModifyRobotRadio.tsx | 21 ++++++++-------- .../ModifyRobotTabs/ModifyRobotUpgrades.tsx | 21 ++++++++-------- .../tgui/interfaces/ModifyRobot/types.ts | 9 +++---- 6 files changed, 67 insertions(+), 53 deletions(-) diff --git a/code/modules/admin/modify_robot.dm b/code/modules/admin/modify_robot.dm index f2847943f35..64f486824d7 100644 --- a/code/modules/admin/modify_robot.dm +++ b/code/modules/admin/modify_robot.dm @@ -43,9 +43,16 @@ qdel(source) . = ..() +/datum/eventkit/modify_robot/ui_assets(mob/user) + return list( + get_asset_datum(/datum/asset/spritesheet/robot_icons) + ) + /datum/eventkit/modify_robot/tgui_data(mob/user) . = list() // Target section for general data + var/datum/asset/spritesheet/robot_icons/spritesheet = get_asset_datum(/datum/asset/spritesheet/robot_icons) + if(target) .["target"] = list() .["target"]["name"] = target.name @@ -62,10 +69,8 @@ // Target section for options once a module has been selected if(target.module) .["target"]["active"] = target.icon_selected - .["target"]["front"] = icon2base64(get_flat_icon(target,dir=SOUTH,no_anim=TRUE)) - .["target"]["side"] = icon2base64(get_flat_icon(target,dir=WEST,no_anim=TRUE)) - .["target"]["side_alt"] = icon2base64(get_flat_icon(target,dir=EAST,no_anim=TRUE)) - .["target"]["back"] = icon2base64(get_flat_icon(target,dir=NORTH,no_anim=TRUE)) + .["target"]["sprite"] = sanitize_css_class_name("[target.sprite_datum.type]") + .["target"]["sprite_size"] = spritesheet.icon_size_id(.["target"]["sprite"] + "S") .["target"]["modules"] = get_target_items(user) var/list/module_options = list() for(var/module in robot_modules) @@ -110,7 +115,7 @@ .["access_options"] = access_options // Section for source data for the module we might want to salvage if(source) - .["source"] += get_module_source(user) + .["source"] += get_module_source(user, spritesheet) var/list/all_robots = list() for(var/mob/living/silicon/robot/R in silicon_mob_list) if(!R.loc) @@ -573,10 +578,11 @@ target_items += list(list("name" = item.name, "ref" = "\ref[item]", "icon" = icon2html(item, user, sourceonly=TRUE), "desc" = item.desc)) return target_items -/datum/eventkit/modify_robot/proc/get_module_source(var/mob/user) +/datum/eventkit/modify_robot/proc/get_module_source(var/mob/user, var/datum/asset/spritesheet/robot_icons/spritesheet) var/list/source_list = list() source_list["model"] = source.module - source_list["front"] = icon2base64(get_flat_icon(source,dir=SOUTH,no_anim=TRUE)) + source_list["sprite"] = sanitize_css_class_name("[source.sprite_datum.type]") + source_list["sprite_size"] = spritesheet.icon_size_id(source_list["sprite"] + "S") var/list/source_items = list() for(var/obj/item in (source.module.modules | source.module.emag)) var/exists diff --git a/tgui/packages/tgui/interfaces/ModifyRobot/ModifyRobotTabs/ModifyRobotComponent.tsx b/tgui/packages/tgui/interfaces/ModifyRobot/ModifyRobotTabs/ModifyRobotComponent.tsx index 293db7da7de..165b95af2e7 100644 --- a/tgui/packages/tgui/interfaces/ModifyRobot/ModifyRobotTabs/ModifyRobotComponent.tsx +++ b/tgui/packages/tgui/interfaces/ModifyRobot/ModifyRobotTabs/ModifyRobotComponent.tsx @@ -2,16 +2,17 @@ import { capitalize } from 'common/string'; import { useState } from 'react'; import { useBackend } from 'tgui/backend'; import { + Box, Button, Divider, Flex, Icon, - Image, Input, Section, Stack, Tabs, } from 'tgui/components'; +import { classes } from 'tgui-core/react'; import { NoSpriteWarning } from '../components'; import { @@ -163,15 +164,18 @@ export const ModifyRobotComponent = (props: { - + + + + + + + diff --git a/tgui/packages/tgui/interfaces/ModifyRobot/ModifyRobotTabs/ModifyRobotModules.tsx b/tgui/packages/tgui/interfaces/ModifyRobot/ModifyRobotTabs/ModifyRobotModules.tsx index 045025ccd56..85ad5a6da4c 100644 --- a/tgui/packages/tgui/interfaces/ModifyRobot/ModifyRobotTabs/ModifyRobotModules.tsx +++ b/tgui/packages/tgui/interfaces/ModifyRobot/ModifyRobotTabs/ModifyRobotModules.tsx @@ -13,6 +13,7 @@ import { Section, Stack, } from 'tgui/components'; +import { classes } from 'tgui-core/react'; import { NoSpriteWarning } from '../components'; import { prepareSearch } from '../functions'; @@ -47,7 +48,8 @@ export const ModifyRobotModules = (props: { /> {!!source && ( - + + + + + + + { /> - + + + + + + + { /> - + + + + + + + Date: Mon, 11 Nov 2024 10:26:17 +0100 Subject: [PATCH 54/83] returns and ui state --- code/modules/mob/living/silicon/robot/robot_ui_module.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 6b1ea6b2a6e..91cd796c5a0 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -17,7 +17,7 @@ /datum/tgui_module/robot_ui_module/tgui_interact(mob/user, datum/tgui/ui, datum/tgui/parent_ui) . = ..() - if(isrobot(user)) + if(isrobot(user) && ui) var/mob/living/silicon/robot/R = user R.selecting_module = TRUE @@ -130,6 +130,7 @@ var/name = params["value"] if(name) newName = sanitizeSafe(name, MAX_NAME_LEN) + . = TRUE if("confirm") if(!R.custom_name) if (newName) @@ -160,3 +161,4 @@ R.sprite_datum.do_equipment_glamour(R.module) to_chat(R, span_filter_notice("Your icon has been set. You now require a module reset to change it.")) close_ui() + . = TRUE From ea8ca79712550af533f7a8989d69b42208d19d88 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 11:47:29 +0100 Subject: [PATCH 55/83] update --- .../living/silicon/robot/robot_ui_module.dm | 1 + .../interfaces/RobotChoose/IconSection.tsx | 27 ++++++++++++++----- .../RobotChoose/SelectorElement.tsx | 2 +- .../interfaces/RobotChoose/SpriteSection.tsx | 8 +++--- .../tgui/interfaces/RobotChoose/functions.ts | 4 +-- .../tgui/interfaces/RobotChoose/index.tsx | 2 ++ .../tgui/interfaces/RobotChoose/types.ts | 1 + 7 files changed, 31 insertions(+), 14 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 91cd796c5a0..7d37eca48f6 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -63,6 +63,7 @@ var/datum/asset/spritesheet/robot_icons/spritesheet = get_asset_datum(/datum/asset/spritesheet/robot_icons) data["currentName"] = newName ? newName : R.name + data["isDefaultName"] = !newName if(selected_module) data["selected_module"] = selected_module diff --git a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx index 5426dac0c15..3fd39c36e1a 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/IconSection.tsx @@ -2,13 +2,16 @@ import { useBackend } from 'tgui/backend'; import { Box, Button, Flex, Input, Section, Stack } from 'tgui-core/components'; import { classes } from 'tgui-core/react'; +import { Tooltip } from '../../components'; + export const IconSection = (props: { currentName: string; + isDefaultName: boolean; sprite?: string | null; size?: string | null; }) => { const { act } = useBackend(); - const { currentName, sprite, size } = props; + const { currentName, isDefaultName, sprite, size } = props; return (
- act('rename', { value })} - maxLength={52} - /> + + + Name: + + + + act('rename', { value })} + maxLength={52} + textColor={isDefaultName ? 'red' : undefined} + /> + + + {!!sprite && !!size && ( <> diff --git a/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx b/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx index 7da0a1ad325..3279ce78829 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/SelectorElement.tsx @@ -19,7 +19,7 @@ export const SelectorElement = (props: { > {option} - {belly && ( + {!!belly && ( <> diff --git a/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx b/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx index b9906e252e7..d287792d025 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/SpriteSection.tsx @@ -14,13 +14,13 @@ export const SpriteSection = (props: { const [searchText, setSearchText] = useState(''); const [includeDefault, setIncludeDefault] = useState(false); - const [includeDog, setInclideDog] = useState(false); + const [includeWide, setInclideDog] = useState(false); const [includeTall, setIncludeTall] = useState(false); const filtered = robotSpriteSearcher( searchText, includeDefault, - includeDog, + includeWide, includeTall, sortable, ); @@ -39,8 +39,8 @@ export const SpriteSection = (props: { Def setInclideDog(!includeDog)} + checked={includeWide} + onClick={() => setInclideDog(!includeWide)} > Wide diff --git a/tgui/packages/tgui/interfaces/RobotChoose/functions.ts b/tgui/packages/tgui/interfaces/RobotChoose/functions.ts index 81b0688ad8e..f42d00d83c2 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/functions.ts +++ b/tgui/packages/tgui/interfaces/RobotChoose/functions.ts @@ -7,7 +7,7 @@ import { spriteOption } from './types'; export function robotSpriteSearcher( searchText: string, includeDefault: boolean, - includeDog: boolean, + includeWide: boolean, includeTall: boolean, sprites?: spriteOption[], ): spriteOption[] { @@ -19,7 +19,7 @@ export function robotSpriteSearcher( if (includeDefault) { subtypes.push('def'); } - if (includeDog) { + if (includeWide) { subtypes.push('wide'); } if (includeTall) { diff --git a/tgui/packages/tgui/interfaces/RobotChoose/index.tsx b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx index 50288a56a69..91d8dcb7d57 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/index.tsx +++ b/tgui/packages/tgui/interfaces/RobotChoose/index.tsx @@ -17,6 +17,7 @@ export const RobotChoose = (props) => { sprite_datum, theme, currentName, + isDefaultName, sprite_datum_class, sprite_datum_size, } = data; @@ -37,6 +38,7 @@ export const RobotChoose = (props) => { /> diff --git a/tgui/packages/tgui/interfaces/RobotChoose/types.ts b/tgui/packages/tgui/interfaces/RobotChoose/types.ts index 4febf2232a6..06d691c5893 100644 --- a/tgui/packages/tgui/interfaces/RobotChoose/types.ts +++ b/tgui/packages/tgui/interfaces/RobotChoose/types.ts @@ -2,6 +2,7 @@ export type Data = { possible_modules: string[]; possible_sprites?: spriteOption[]; currentName: string; + isDefaultName: boolean; theme?: string; selected_module?: string; sprite_datum?: string | null; From 455da0a4315e8d21481b3de806ab65422cd9ffec Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 12:08:31 +0100 Subject: [PATCH 56/83] fix ag janitor --- .../living/silicon/robot/robot_ui_module.dm | 8 ++++++-- icons/mob/robot/janitor.dmi | Bin 83218 -> 73403 bytes 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 7d37eca48f6..74c6ad4cda7 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -113,9 +113,13 @@ if(!is_borg_whitelisted(R, new_module)) return selected_module = new_module + var/new_datum var/list/module_sprites = SSrobot_sprites.get_module_sprites(selected_module, R) - if(!(sprite_datum in module_sprites)) - sprite_datum = null + for(var/datum/robot_sprite/S in module_sprites) + if(S.name == sprite_datum.name) + new_datum = S + break + sprite_datum = new_datum . = TRUE if("pick_icon") var/sprite = params["value"] diff --git a/icons/mob/robot/janitor.dmi b/icons/mob/robot/janitor.dmi index 7410b353a75514c1409b0b6109aee0dc6264d34a..3dbaa27a420e85e275ecd9be76fc98b9d7ef21c7 100644 GIT binary patch literal 73403 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 UlAf?)wgiElPMpk=Q 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 From a411368c80c34b4ed3288ccc988bf82420dc3683 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 12:50:04 +0100 Subject: [PATCH 57/83] theme should always be returned --- code/modules/mob/living/silicon/robot/robot_ui.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot_ui.dm b/code/modules/mob/living/silicon/robot/robot_ui.dm index 7499fb198ea..11027cc20da 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui.dm @@ -52,6 +52,10 @@ var/mob/living/silicon/robot/R = host data["module_name"] = R.module ? "[R.module]" : null + if(R.emagged) + data["theme"] = "syndicate" + else if (R.ui_theme) + data["theme"] = R.ui_theme if(!R.module) return data @@ -63,10 +67,6 @@ data["health"] = R.health data["max_health"] = R.getMaxHealth() data["light_color"] = R.robot_light_col - if(R.emagged) - data["theme"] = "syndicate" - else if (R.ui_theme) - data["theme"] = R.ui_theme data["weapon_lock"] = R.weapon_lock From e5b47c5e49433f29a950f1f41da7b1b51acecdc2 Mon Sep 17 00:00:00 2001 From: Kashargul <144968721+Kashargul@users.noreply.github.com> Date: Mon, 11 Nov 2024 12:51:44 +0100 Subject: [PATCH 58/83] less numbers --- code/modules/mob/living/silicon/robot/robot.dm | 4 ++-- code/modules/mob/living/silicon/robot/robot_ui_module.dm | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 7b095cdc495..f3161e0e090 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -31,7 +31,7 @@ //Icon stuff var/datum/robot_sprite/sprite_datum // Sprite datum, holding all our sprite data - var/icon_selected = 0 // If icon selection has been completed yet + var/icon_selected = FALSE // If icon selection has been completed yet var/list/sprite_extra_customization = list() var/rest_style = "Default" var/notransform @@ -766,7 +766,7 @@ notify_ai(ROBOT_NOTIFICATION_MODULE_RESET, module.name) module.Reset(src) qdel(module) - icon_selected = 0 + icon_selected = FALSE module = null updatename("Default") has_recoloured = FALSE diff --git a/code/modules/mob/living/silicon/robot/robot_ui_module.dm b/code/modules/mob/living/silicon/robot/robot_ui_module.dm index 74c6ad4cda7..25b199b47c0 100644 --- a/code/modules/mob/living/silicon/robot/robot_ui_module.dm +++ b/code/modules/mob/living/silicon/robot/robot_ui_module.dm @@ -141,7 +141,7 @@ if (newName) R.custom_name = newName R.sprite_name = newName - R.icon_selected = 1 + R.icon_selected = TRUE var/module_type = robot_modules[selected_module] R.modtype = selected_module R.module = new module_type(R) From d2b4730c314d46b93b4650b1d2338386d7856c9d Mon Sep 17 00:00:00 2001 From: Guti <32563288+TheCaramelion@users.noreply.github.com> Date: Mon, 11 Nov 2024 12:59:22 +0100 Subject: [PATCH 59/83] Virology Patch 2 (#16592) * Fixes * Fix * Macrophage * oops --- code/datums/diseases/_MobProcs.dm | 26 ++++++++++-------- code/datums/diseases/advance/advance.dm | 18 ++++++------ .../diseases/advance/symptoms/macrophage.dm | 2 +- .../simple_mob/subtypes/vore/macrophage.dm | 8 +++++- icons/mob/macrophage.dmi | Bin 4509 -> 4613 bytes 5 files changed, 32 insertions(+), 22 deletions(-) diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm index a24fa9264f8..b664a349a61 100644 --- a/code/datums/diseases/_MobProcs.dm +++ b/code/datums/diseases/_MobProcs.dm @@ -177,19 +177,21 @@ if(!is_admin()) return FALSE - var/datum/disease/D = tgui_input_list(usr, "Choose virus", "Viruses", subtypesof(/datum/disease), subtypesof(/datum/disease)) - var/mob/living/carbon/human/H = null + var/disease = tgui_input_list(usr, "Choose virus", "Viruses", subtypesof(/datum/disease), subtypesof(/datum/disease)) + var/mob/living/carbon/human/H = tgui_input_list(usr, "Choose infectee", human_mob_list) - if(isnull(D)) + var/datum/disease/D = new disease + + if(isnull(D) || isnull(H)) return FALSE - for(var/thing in shuffle(human_mob_list)) - H = thing - if(H.stat == DEAD) - continue - if(!H.HasDisease(D)) - H.ForceContractDisease(D) - break + if(H.stat == DEAD) + return FALSE - message_admins("[key_name_admin(usr)] has triggered a virus outbreak of [D.name]! Affected mob: [key_name_admin(H)]") - log_admin("[key_name_admin(usr)] infected [key_name_admin(H)] with [D.name]") + if(!H.HasDisease(D)) + H.ForceContractDisease(D) + + message_admins("[key_name_admin(usr)] has triggered a virus outbreak of [D.name]! Affected mob: [key_name_admin(H)]") + log_admin("[key_name_admin(usr)] infected [key_name_admin(H)] with [D.name]") + + return TRUE diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index 73ef6649988..4e593ea7f13 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -354,20 +354,20 @@ GLOBAL_LIST_INIT(advance_cures, list( var/new_name = tgui_input_text(usr, "Name your new disease.", "New Name") if(!new_name) - return + return FALSE D.AssignName(new_name) D.Refresh() for(var/datum/disease/advance/AD in active_diseases) AD.Refresh() - for(var/thing in shuffle(human_mob_list)) - H = thing - if(H.stat == DEAD) - continue - if(!H.HasDisease(D)) - H.ForceContractDisease(D) - break + H = tgui_input_list(usr, "Choose infectee", human_mob_list) + + if(isnull(H)) + return FALSE + + if(!H.HasDisease(D)) + H.ForceContractDisease(D) var/list/name_symptoms = list() for(var/datum/symptom/S in D.symptoms) @@ -375,6 +375,8 @@ GLOBAL_LIST_INIT(advance_cures, list( message_admins("[key_name_admin(usr)] has triggered a custom virus outbreak of [D.name]! It has these symptoms: [english_list(name_symptoms)]") log_admin("[key_name_admin(usr)] infected [key_name_admin(H)] with [D.name]. It has these symptoms: [english_list(name_symptoms)]") + return TRUE + /datum/disease/advance/proc/totalStageSpeed() var/total_stage_speed = 0 for(var/i in symptoms) diff --git a/code/datums/diseases/advance/symptoms/macrophage.dm b/code/datums/diseases/advance/symptoms/macrophage.dm index 5769fadaa6c..a04a3fc50fe 100644 --- a/code/datums/diseases/advance/symptoms/macrophage.dm +++ b/code/datums/diseases/advance/symptoms/macrophage.dm @@ -70,4 +70,4 @@ BONUS phage.viruses += D M.visible_message(span_danger("A strange crearure bursts out of [M]!"), span_userdanger("A slimy creature bursts forth from your flesh!")) - addtimer(CALLBACK(phage, TYPE_PROC_REF(/mob/living/simple_mob/vore/aggressive/macrophage, dust)), 3000) + addtimer(CALLBACK(phage, TYPE_PROC_REF(/mob/living/simple_mob/vore/aggressive/macrophage, deathcheck)), 3000) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/macrophage.dm b/code/modules/mob/living/simple_mob/subtypes/vore/macrophage.dm index dacbebb57da..3e340e0abca 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/macrophage.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/macrophage.dm @@ -32,6 +32,12 @@ ai_holder_type = /datum/ai_holder/simple_mob/melee +/mob/living/simple_mob/vore/aggressive/macrophage/proc/deathcheck() + if(locate(/mob/living/carbon/human) in vore_selected) + addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living/simple_mob/vore/aggressive/macrophage, deathcheck)), 3000) + else + dust() + /mob/living/simple_mob/vore/aggressive/macrophage/green icon_state = "macrophage-2" @@ -47,7 +53,7 @@ contamination_color = "green" vore_verb = "absorb" escapable = TRUE - escapable = 5 + escapable = 20 desc = "In an attempt to get away from the giant virus, it's oversized envelope proteins dragged you right past it's matrix, encapsulating you deep inside it's capsid... The strange walls kneading and keeping you tight along within it's nucleoprotein." belly_fullscreen = "VBO_gematically_angular" belly_fullscreen_color = "#87d8d8" diff --git a/icons/mob/macrophage.dmi b/icons/mob/macrophage.dmi index 4b7518bfc64a15e2ec408cafeadcd22b8f2a1006..3d8d5fdeabc467db78653297f726fbb82e305896 100644 GIT binary patch delta 4572 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 Date: Mon, 11 Nov 2024 13:12:19 +0100 Subject: [PATCH 60/83] adds Search to smart vendors (#16587) --- tgui/packages/tgui/interfaces/SmartVend.tsx | 309 ++++++++++++++------ 1 file changed, 215 insertions(+), 94 deletions(-) diff --git a/tgui/packages/tgui/interfaces/SmartVend.tsx b/tgui/packages/tgui/interfaces/SmartVend.tsx index 7c8eeba29d3..29a2cf76713 100644 --- a/tgui/packages/tgui/interfaces/SmartVend.tsx +++ b/tgui/packages/tgui/interfaces/SmartVend.tsx @@ -1,8 +1,18 @@ -import { map } from 'common/collections'; import { BooleanLike } from 'common/react'; +import { createSearch } from 'common/string'; +import { useState } from 'react'; import { useBackend } from '../backend'; -import { Box, Button, NoticeBox, Section, Table } from '../components'; +import { + Box, + Button, + Dropdown, + Flex, + Input, + NoticeBox, + Section, + Table, +} from '../components'; import { Window } from '../layouts'; type Data = { @@ -14,8 +24,28 @@ type Data = { type content = { name: string; index: number; amount: number }; +const sortTypes = { + Alphabetical: (a: content, b: content) => a.name > b.name, + 'By amount': (a: content, b: content) => -(a.amount - b.amount), +}; + export const SmartVend = (props) => { - const { act, config, data } = useBackend(); + const { config, data } = useBackend(); + const [searchText, setSearchText] = useState(''); + const [sortOrder, setSortOrder] = useState('Alphabetical'); + const [descending, setDescending] = useState(false); + + function handleSearchText(value: string) { + setSearchText(value); + } + + function handleSortOrder(value: string) { + setSortOrder(value); + } + + function handleDescending(value: boolean) { + setDescending(value); + } const { secure, locked, contents } = data; @@ -39,100 +69,191 @@ export const SmartVend = (props) => { {(contents.length === 0 && ( Unfortunately, this {config.title} is empty. )) || ( - - - Item - - Amount - - - Dispense - - - {map(contents, (value: content, key) => ( - - - {value.name} - - - {value.amount} in stock - - - - - - - - - - - ))} -
+ <> + + + )}
); }; + +const SheetSearch = (props: { + searchText: string; + sortOrder: string; + descending: boolean; + onSearchText: Function; + onSortOrder: Function; + onDescending: Function; +}) => { + const { + searchText, + sortOrder, + descending, + onSearchText, + onSortOrder, + onDescending, + } = props; + return ( + + + + onSearchText(value)} + /> + + + onSortOrder(v)} + /> + + +

Xw?-bXA#p@^fNM7@HuXwSR>j4ULq}EX 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 RXq76drJ<`{eDm3>{{zJrIKBV? diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index b09963ba6db98e62da2837021a26f39a8be056bf..80566ece9e43373a6ac60d448e03097ad2643b02 100644 GIT binary patch delta 15422 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 delta 14786 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 U?yb)&2z<#sQ`@W5R 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%0A0h`swU!{12 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