From 8ae3bf9a16d282bf0ba0085b99ff504bc6adb776 Mon Sep 17 00:00:00 2001 From: Gristlebee <56049844+Gristlebee@users.noreply.github.com> Date: Sun, 26 May 2024 20:48:06 -0700 Subject: [PATCH 001/107] Generic ammo boxes and printable ammo cans (#2940) Adds generic ammo boxes, printable in the autolathe. They can be set to hold any ammo type by using a bullet on it, and the capacity changes depending on the bullet type. Also makes ammo cans autolathe printable. Replaces a few instances of update_appearence with update_ammo_count in ammo box code so the materials properly update. Thanks to FalloutFalcon for the idea Basically a redo of my other PR, #2868 intentwise. This PR aims to make ammo storage more practical by adding these generic ammo boxes to prevent having loose rounds everywhere if you don't have a compatible ammo box with space. Ammo cans are basically just themed toolboxes, so they're just nice to have thematically as well. Also some bug fixes I guess, that's good. :cl: add: Generic Ammo Boxes, printable in the autolathe add: Ammo cans are printable in the autolathe fix: Ammo boxes sometimes not properly updating their materials /:cl: --- .../projectiles/ammunition/_ammunition.dm | 2 + .../projectiles/ammunition/ballistic/lmg.dm | 1 + .../ammunition/ballistic/pistol.dm | 5 ++ .../ammunition/ballistic/revolver.dm | 3 + .../projectiles/ammunition/ballistic/rifle.dm | 9 +++ .../ammunition/ballistic/shotgun.dm | 1 + .../projectiles/ammunition/ballistic/smg.dm | 3 + .../ammunition/ballistic/sniper.dm | 1 + .../projectiles/ammunition/caseless/foam.dm | 1 + .../boxes_magazines/_box_magazine.dm | 8 +-- .../boxes_magazines/generic_ammo_box.dm | 53 ++++++++++++++++++ .../research/designs/autolathe_designs.dm | 16 ++++++ icons/obj/ammo.dmi | Bin 51572 -> 51761 bytes shiptest.dme | 1 + 14 files changed, 100 insertions(+), 4 deletions(-) create mode 100644 code/modules/projectiles/boxes_magazines/generic_ammo_box.dm diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammunition.dm index a02f7dc61a4a..5120bf761f9e 100644 --- a/code/modules/projectiles/ammunition/_ammunition.dm +++ b/code/modules/projectiles/ammunition/_ammunition.dm @@ -38,6 +38,8 @@ var/list/bounce_sfx_override // if true, overrides the bouncing sfx from the turf to this one + var/bullet_per_box + /obj/item/ammo_casing/spent name = "spent bullet casing" diff --git a/code/modules/projectiles/ammunition/ballistic/lmg.dm b/code/modules/projectiles/ammunition/ballistic/lmg.dm index 90030e7b0944..d46001951ba4 100644 --- a/code/modules/projectiles/ammunition/ballistic/lmg.dm +++ b/code/modules/projectiles/ammunition/ballistic/lmg.dm @@ -6,6 +6,7 @@ icon_state = "rifle-steel" caliber = "7.12x82mm" projectile_type = /obj/projectile/bullet/mm712x82 + bullet_per_box = 100 /obj/item/ammo_casing/mm712x82/ap name = "7.12x82mm armor-piercing bullet casing" diff --git a/code/modules/projectiles/ammunition/ballistic/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm index a105ae6602ee..0f37b5426d2d 100644 --- a/code/modules/projectiles/ammunition/ballistic/pistol.dm +++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm @@ -6,6 +6,7 @@ icon_state = "pistol-steel" caliber = "10mm" projectile_type = /obj/projectile/bullet/c10mm + bullet_per_box = 50 /obj/item/ammo_casing/c10mm/surplus name = "10mm surplus bullet casing" @@ -45,6 +46,7 @@ icon_state = "pistol-brass" caliber = "9mm" projectile_type = /obj/projectile/bullet/c9mm + bullet_per_box = 50 /obj/item/ammo_casing/c9mm/surplus name = "9mm surplus bullet casing" @@ -84,6 +86,7 @@ icon_state = "pistol-steel" caliber = ".45" projectile_type = /obj/projectile/bullet/c45 + bullet_per_box = 50 /obj/item/ammo_casing/c45/surplus name = ".45 surplus bullet casing" @@ -122,6 +125,7 @@ desc = "A .50 AE bullet casing." caliber = ".50 AE" projectile_type = /obj/projectile/bullet/a50AE + bullet_per_box = 20 /obj/item/ammo_casing/a50AE/hp name = ".50 AE hollow point bullet casing" @@ -134,4 +138,5 @@ desc = "A .22 LR bullet casing." projectile_type = /obj/projectile/bullet/c22lr caliber = "22lr" + bullet_per_box = 75 diff --git a/code/modules/projectiles/ammunition/ballistic/revolver.dm b/code/modules/projectiles/ammunition/ballistic/revolver.dm index d5684e834e3d..fa77095de9b9 100644 --- a/code/modules/projectiles/ammunition/ballistic/revolver.dm +++ b/code/modules/projectiles/ammunition/ballistic/revolver.dm @@ -6,6 +6,7 @@ caliber = ".357" icon_state = "magnum-brass" projectile_type = /obj/projectile/bullet/a357 + bullet_per_box = 50 /obj/item/ammo_casing/a357/match name = ".357 match bullet casing" @@ -28,6 +29,7 @@ caliber = ".45-70" icon_state = "magnum-brass" projectile_type = /obj/projectile/bullet/a4570 + bullet_per_box = 12 /obj/item/ammo_casing/a4570/match name = ".45-70 match bullet casing" @@ -53,6 +55,7 @@ desc = "A .38 Special bullet casing." caliber = ".38" projectile_type = /obj/projectile/bullet/c38 + bullet_per_box = 50 /obj/item/ammo_casing/c38/surplus name = ".38 surplus bullet casing" diff --git a/code/modules/projectiles/ammunition/ballistic/rifle.dm b/code/modules/projectiles/ammunition/ballistic/rifle.dm index 3ab1de13e2d0..12e5cfa6b23c 100644 --- a/code/modules/projectiles/ammunition/ballistic/rifle.dm +++ b/code/modules/projectiles/ammunition/ballistic/rifle.dm @@ -6,6 +6,7 @@ icon_state = "rifle-brass" caliber = "8x50mmR" projectile_type = /obj/projectile/bullet/a8_50r + bullet_per_box = 20 /obj/item/ammo_casing/a8_50rhp name = "8x50mmR hollow point bullet casing" @@ -23,6 +24,7 @@ icon_state = "caseless" caliber = "a858" projectile_type = /obj/projectile/bullet/a858 + bullet_per_box = 20 // .300 Magnum (Smile Rifle) @@ -32,6 +34,7 @@ icon_state = "rifle-steel" caliber = "a300" projectile_type = /obj/projectile/bullet/a300 + bullet_per_box = 20 // 5.56x39mm (M-90gl Carbine & P-16) - хрень полная , описание калибра не сходится с указанием в коде @@ -48,6 +51,7 @@ icon_state = "rifle-brass" caliber = "5.56x45mm" projectile_type = /obj/projectile/bullet/a556_45 + bullet_per_box = 80 // [/CELADON-EDIT] // 5.45x39mm (SKM-24v) @@ -59,6 +63,7 @@ caliber = "5.45x39mm" randomspread = TRUE projectile_type = /obj/projectile/bullet/a545_39 + bullet_per_box = 80 /obj/item/ammo_casing/a545_39/recycled name = "recycled 5.45x39mm bullet casing" @@ -75,6 +80,7 @@ icon_state = "rifle-brass" caliber = "7.62x40mm" projectile_type = /obj/projectile/bullet/a762_40 + bullet_per_box = 80 // .300 Blackout (Polymer Survivor Rifle) @@ -84,6 +90,7 @@ icon_state = "rifle-steel" caliber = ".300 BLK" projectile_type = /obj/projectile/bullet/aac_300blk + bullet_per_box = 20 /obj/item/ammo_casing/aac_300blk/recycled name = "recycled .300 BLK bullet casing" @@ -99,6 +106,7 @@ icon_state = "rifle-brass" caliber = ".308" projectile_type = /obj/projectile/bullet/a308 + bullet_per_box = 20 /obj/item/ammo_casing/caseless/c299 name = ".229 Eoehoma caseless bullet casing" @@ -106,3 +114,4 @@ icon_state = "caseless" caliber = ".299 caseless" projectile_type = /obj/projectile/bullet/c299 + bullet_per_box = 80 diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index b297ee30e776..8e5f2e128ac7 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -8,6 +8,7 @@ caliber = "12ga" custom_materials = list(/datum/material/iron=4000) projectile_type = /obj/projectile/bullet/slug + bullet_per_box = 25 bounce_sfx_override = 'sound/weapons/gun/general/bulletcasing_shotgun_bounce.ogg' diff --git a/code/modules/projectiles/ammunition/ballistic/smg.dm b/code/modules/projectiles/ammunition/ballistic/smg.dm index d947736d5f25..74bb35b1ec2e 100644 --- a/code/modules/projectiles/ammunition/ballistic/smg.dm +++ b/code/modules/projectiles/ammunition/ballistic/smg.dm @@ -6,6 +6,7 @@ icon_state = "rifle-brass" caliber = "4.6x30mm" projectile_type = /obj/projectile/bullet/c46x30mm + bullet_per_box = 50 /obj/item/ammo_casing/c46x30mm/ap name = "4.6x30mm armor-piercing bullet casing" @@ -18,6 +19,7 @@ desc = "A 4.6x30mm incendiary bullet casing." bullet_skin = "incen" projectile_type = /obj/projectile/bullet/incendiary/c46x30mm + bullet_per_box = 50 // 4.73x33mm caseless (Solar) @@ -27,6 +29,7 @@ icon_state = "caseless" caliber = "4.73x33mm caseless" projectile_type = /obj/projectile/bullet/c47x33mm + bullet_per_box = 50 // 5.56mm HITP caseless (Pistole C) diff --git a/code/modules/projectiles/ammunition/ballistic/sniper.dm b/code/modules/projectiles/ammunition/ballistic/sniper.dm index af7369204e6d..e4b668c2228f 100644 --- a/code/modules/projectiles/ammunition/ballistic/sniper.dm +++ b/code/modules/projectiles/ammunition/ballistic/sniper.dm @@ -6,6 +6,7 @@ icon_state = "big-steel" caliber = ".50 BMG" projectile_type = /obj/projectile/bullet/p50 + bullet_per_box = 20 /obj/item/ammo_casing/p50/soporific name = ".50 BMG soporific bullet casing" diff --git a/code/modules/projectiles/ammunition/caseless/foam.dm b/code/modules/projectiles/ammunition/caseless/foam.dm index 3c71d31eb5ed..0051680fd1e8 100644 --- a/code/modules/projectiles/ammunition/caseless/foam.dm +++ b/code/modules/projectiles/ammunition/caseless/foam.dm @@ -9,6 +9,7 @@ custom_materials = list(/datum/material/iron = 11.25) harmful = FALSE var/modified = FALSE + bullet_per_box = 40 /obj/item/ammo_casing/caseless/foam_dart/update_icon_state() . = ..() diff --git a/code/modules/projectiles/boxes_magazines/_box_magazine.dm b/code/modules/projectiles/boxes_magazines/_box_magazine.dm index c63dbf047d76..9a73e8a6230a 100644 --- a/code/modules/projectiles/boxes_magazines/_box_magazine.dm +++ b/code/modules/projectiles/boxes_magazines/_box_magazine.dm @@ -51,7 +51,7 @@ if(!start_empty) for(var/i = 1, i <= max_ammo, i++) stored_ammo += new ammo_type(src) - update_appearance() + update_ammo_count() ///gets a round from the magazine, if keep is TRUE the round will stay in the gun /obj/item/ammo_box/proc/get_round(keep = FALSE) @@ -110,8 +110,8 @@ if(!silent) playsound(get_turf(attacking_box), 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE) //src is nullspaced, which means internal magazines won't properly play sound, thus we use attacking_box num_loaded++ - attacking_obj.update_appearance() - update_appearance() + attacking_box.update_ammo_count() + update_ammo_count() if(istype(attacking_obj, /obj/item/ammo_casing)) var/obj/item/ammo_casing/casing_to_insert = attacking_obj @@ -120,7 +120,7 @@ if(!silent) playsound(casing_to_insert, 'sound/weapons/gun/general/mag_bullet_insert.ogg', 60, TRUE) num_loaded++ - update_appearance() + update_ammo_count() if(num_loaded) diff --git a/code/modules/projectiles/boxes_magazines/generic_ammo_box.dm b/code/modules/projectiles/boxes_magazines/generic_ammo_box.dm new file mode 100644 index 000000000000..2c88824623e2 --- /dev/null +++ b/code/modules/projectiles/boxes_magazines/generic_ammo_box.dm @@ -0,0 +1,53 @@ +/obj/item/ammo_box/generic + name = "generic ammo box" + desc = "A generic, unbranded box of ammo. It doesn't have great capacity, but it can hold a variety of different calibers." + max_ammo = 20 + start_empty = TRUE + icon_state = "generic-ammo" + /// Does the box currently have an ammo type set? + var/ammo_set = FALSE + /// Name of the currently set ammo type + var/ammo_name + +/obj/item/ammo_box/generic/update_ammo_count() + . = ..() + if(LAZYLEN(stored_ammo) == 0) + ammo_set = FALSE + ammo_type = /obj/item/ammo_casing + +/obj/item/ammo_box/generic/proc/update_max_ammo(obj/item/ammo_casing/ammo) + if(ammo.bullet_per_box) + max_ammo = round(ammo.bullet_per_box) + else + max_ammo = 10 + + return + +/obj/item/ammo_box/generic/attackby(obj/item/attacking_obj, mob/user, params, silent, replace_spent) + . = ..() + + if(!ammo_set && istype(attacking_obj, /obj/item/ammo_casing)) + var/obj/item/ammo_casing/ammo_load = attacking_obj.type + ammo_type = ammo_load + ammo_set = TRUE + ammo_name = attacking_obj.name + update_max_ammo(attacking_obj) + to_chat(user, span_notice("You set the box to hold [attacking_obj]!")) + + if(istype(attacking_obj, /obj/item/pen)) + if(!user.is_literate()) + to_chat(user, span_notice("You scribble illegibly on the cover of [src]!")) + return + var/inputvalue = stripped_input(user, "What would you like to label the box?", "Box Labelling", "", MAX_NAME_LEN) + + if(!inputvalue) + return + + if(user.canUseTopic(src, BE_CLOSE)) + name = "[initial(src.name)][(inputvalue ? " - '[inputvalue]'" : null)]" + +/obj/item/ammo_box/generic/examine(mob/user) + . = ..() + . += span_notice("[ammo_set ? "It's set to hold [ammo_name]\s. The box can hold up to [max_ammo] rounds." : "It doesn't have an ammo type set. Use a bullet on the box to set it."]") + . += span_notice("You can use a pen on it to rename the box.") + diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index 7c43c3fc5acb..8a0c572015db 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -870,6 +870,22 @@ build_path = /obj/item/ammo_box/c556mmHITP/surplus category = list("initial", "Security", "Ammo") +/datum/design/generic_ammo_box + name = "Generic Ammo Box" + id = "ammo-generic" + build_type = AUTOLATHE | PROTOLATHE + materials = list(/datum/material/iron = 1500) + build_path = /obj/item/ammo_box/generic + category = list("initial", "Security", "Ammo") + +/datum/design/ammo_can + name = "Ammo Can" + id = "ammo-can" + build_type = AUTOLATHE | PROTOLATHE + materials = list(/datum/material/iron = 500) + build_path = /obj/item/storage/toolbox/ammo + category = list("initial", "Security", "Ammo") + /datum/design/cleaver name = "Butcher's Cleaver" id = "cleaver" diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 4f2f029a96b7f599792b1222db4819dd48052d92..6fac77253d60a466df89a52e880286215dfba953 100644 GIT binary patch delta 6485 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 delta 6294 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 P0QJ&C8flek*oOTVD+5hh diff --git a/shiptest.dme b/shiptest.dme index 4b3b7dc0f37c..80206e3f3c61 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -3006,6 +3006,7 @@ #include "code\modules\projectiles\ammunition\special\syringe.dm" #include "code\modules\projectiles\boxes_magazines\_box_magazine.dm" #include "code\modules\projectiles\boxes_magazines\ammo_boxes.dm" +#include "code\modules\projectiles\boxes_magazines\generic_ammo_box.dm" #include "code\modules\projectiles\boxes_magazines\external\gauss.dm" #include "code\modules\projectiles\boxes_magazines\external\grenade.dm" #include "code\modules\projectiles\boxes_magazines\external\lmg.dm" From 36def0fc7e15fcb6315ffa39858950ad51b334aa Mon Sep 17 00:00:00 2001 From: Sun-Soaked <45698967+Sun-Soaked@users.noreply.github.com> Date: Sun, 26 May 2024 23:48:15 -0400 Subject: [PATCH 002/107] Movable Physics Subsystem (#2880) Ports some mojave code (originally written on Daedalus by Spyroshark) hat allows you to fling ingame objects with a simple, bouncing physics quality. This is currently implemented on bullet casings. Technical issues currently: - [x] Makes the bouncing less dramatic - [x] Physics must have a "low grav" version for tiles without gravity, since mojave didn't think gravity was real - [x] The code handling the angle physics objects travel at is fucky and needs to be fixed up the hit feature from 2003, coming to a shiptest near you :cl: Spyroshark, Sun-Soaked add: A movable physics subsystem, deployed using a component. add: Bullet casings now drop using movable physics code: ports NO_PIXEL_RANDOM_DROP from TG. /:cl: --------- Co-authored-by: Sun-Soaked <45698967+MemedHams@users.noreply.github.com> --- code/__DEFINES/obj_flags.dm | 1 + code/__DEFINES/subsystems.dm | 1 + code/_globalvars/bitfields.dm | 1 + .../subsystem/processing/movable_physics.dm | 24 +++ code/datums/components/movable_physics.dm | 151 ++++++++++++++++++ code/game/objects/items.dm | 2 +- code/game/objects/items/devices/powersink.dm | 1 + code/modules/mob/inventory.dm | 2 +- .../projectiles/ammunition/_ammunition.dm | 10 +- .../ammunition/caseless/_caseless.dm | 2 +- code/modules/projectiles/gun.dm | 6 +- code/modules/projectiles/guns/ballistic.dm | 13 +- .../projectiles/guns/ballistic/revolver.dm | 11 +- .../projectiles/guns/ballistic/rifle.dm | 4 +- .../projectiles/guns/ballistic/shotgun.dm | 4 +- .../modules/projectiles/guns/ballistic/toy.dm | 4 +- code/modules/projectiles/guns/energy.dm | 2 +- .../projectiles/guns/energy/special.dm | 2 +- code/modules/projectiles/guns/magic.dm | 2 +- .../modules/projectiles/guns/misc/chem_gun.dm | 2 +- .../projectiles/guns/misc/syringe_gun.dm | 2 +- shiptest.dme | 2 + 22 files changed, 222 insertions(+), 27 deletions(-) create mode 100644 code/controllers/subsystem/processing/movable_physics.dm create mode 100644 code/datums/components/movable_physics.dm diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm index 865470774039..d9ca63008c1d 100644 --- a/code/__DEFINES/obj_flags.dm +++ b/code/__DEFINES/obj_flags.dm @@ -33,6 +33,7 @@ #define IN_STORAGE (1<<11) //is this item in the storage item, such as backpack? used for tooltips #define SURGICAL_TOOL (1<<12) //Tool commonly used for surgery: won't attack targets in an active surgical operation on help intent (in case of mistakes) #define EYE_STAB (1<<13) /// Item can be used to eyestab +#define NO_PIXEL_RANDOM_DROP (1<<14) //if dropped, it wont have a randomized pixel_x/pixel_y // Flags for the clothing_flags var on /obj/item/clothing diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 629755487849..36aa57e48625 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -174,6 +174,7 @@ #define FIRE_PRIORITY_PARALLAX 65 #define FIRE_PRIORITY_INSTRUMENTS 80 #define FIRE_PRIORITY_MOBS 100 +#define FIRE_PRIORITY_MOVABLE_PHYSICS 105 #define FIRE_PRIORITY_TGUI 110 #define FIRE_PRIORITY_TICKER 200 #define FIRE_PRIORITY_ATMOS_ADJACENCY 300 diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index ca2520fc1b23..be5713d4ad0c 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -152,6 +152,7 @@ DEFINE_BITFIELD(item_flags, list( "NOBLUDGEON" = NOBLUDGEON, "NO_MAT_REDEMPTION" = NO_MAT_REDEMPTION, "SLOWS_WHILE_IN_HAND" = SLOWS_WHILE_IN_HAND, + "NO_PIXEL_RANDOM_DROP" = NO_PIXEL_RANDOM_DROP, )) DEFINE_BITFIELD(machine_stat, list( diff --git a/code/controllers/subsystem/processing/movable_physics.dm b/code/controllers/subsystem/processing/movable_physics.dm new file mode 100644 index 000000000000..65015edbd668 --- /dev/null +++ b/code/controllers/subsystem/processing/movable_physics.dm @@ -0,0 +1,24 @@ +///Real fast ticking subsystem for moving movables via modifying pixel_x/y/z +PROCESSING_SUBSYSTEM_DEF(movablephysics) + name = "Movable Physics" + wait = 0.05 SECONDS + stat_tag = "MP" + priority = FIRE_PRIORITY_MOVABLE_PHYSICS + +/datum/controller/subsystem/processing/movablephysics/fire(resumed = FALSE) + if (!resumed) + currentrun = processing.Copy() + //cache for sanic speed (lists are references anyways) + var/list/current_run = currentrun + + while(current_run.len) + var/datum/component/thing = current_run[current_run.len] + current_run.len-- + if(QDELETED(thing)) + processing -= thing + else + if(thing.process(wait * 0.1) == PROCESS_KILL) + // fully stop so that a future START_PROCESSING will work + STOP_PROCESSING(src, thing) + if (MC_TICK_CHECK) + return diff --git a/code/datums/components/movable_physics.dm b/code/datums/components/movable_physics.dm new file mode 100644 index 000000000000..55686bb1e259 --- /dev/null +++ b/code/datums/components/movable_physics.dm @@ -0,0 +1,151 @@ +#define PHYSICS_GRAV_STANDARD 9.80665 + +///Remove the component as soon as there's zero velocity, useful for movables that will no longer move after being initially moved (blood splatters) +#define QDEL_WHEN_NO_MOVEMENT (1<<0) + +///Stores information related to the movable's physics and keeping track of relevant signals to trigger movement +/datum/component/movable_physics + ///Modifies the pixel_x/pixel_y of an object every process() + var/horizontal_velocity + ///Modifies the pixel_z of an object every process(), movables aren't Move()'d into another turf if pixel_z exceeds 16, so try not to supply a super high vertical value if you don't want the movable to clip through multiple turfs + var/vertical_velocity + ///The horizontal_velocity is reduced by this every process(), this doesn't take into account the object being in the air vs gravity pushing it against the ground + var/horizontal_friction + ///The vertical_velocity is reduced by this every process() + var/z_gravity + ///The pixel_z that the object will no longer be influenced by gravity for a 32x32 turf, keep this value between -16 to 0 so it's visuals matches up with it physically being in the turf + var/z_floor + ///The angle of the path the object takes on the x/y plane + var/angle_of_movement + ///Flags for turning on certain physic properties, see the top of the file for more information on flags + var/physic_flags + ///The cached animate_movement of the parent; any kind of gliding when doing Move() makes the physics look derpy, so we'll just make Move() be instant + var/cached_animate_movement + ///The sound effect to play when bouncing off of something + var/bounce_sound + + var/numbounce = 1 + +/datum/component/movable_physics/Initialize(_horizontal_velocity = 0, _vertical_velocity = 0, _horizontal_friction = 0, _z_gravity = 0, _z_floor = 0, _angle_of_movement = 0, _physic_flags = 0, _bounce_sound) + . = ..() + if(!ismovable(parent)) + return COMPONENT_INCOMPATIBLE + RegisterSignal(parent, COMSIG_MOVABLE_IMPACT, PROC_REF(throw_impact_ricochet), override = TRUE) + horizontal_velocity = _horizontal_velocity + vertical_velocity = _vertical_velocity + horizontal_friction = _horizontal_friction + z_gravity = _z_gravity + z_floor = _z_floor + angle_of_movement = _angle_of_movement + physic_flags = _physic_flags + bounce_sound = _bounce_sound + if(vertical_velocity || horizontal_velocity) + start_movement() + +///Let's get moving +/datum/component/movable_physics/proc/start_movement() + var/atom/movable/moving_atom = parent + cached_animate_movement = moving_atom.animate_movement + moving_atom.animate_movement = NO_STEPS + START_PROCESSING(SSmovablephysics, src) + moving_atom.SpinAnimation(speed = 1 SECONDS, loops = 1) + +///Alright it's time to stop +/datum/component/movable_physics/proc/stop_movement() + var/atom/movable/moving_atom = parent + moving_atom.animate_movement = cached_animate_movement + STOP_PROCESSING(SSmovablephysics, src) + if(physic_flags & QDEL_WHEN_NO_MOVEMENT) + qdel(src) + +/datum/component/movable_physics/UnregisterFromParent() + UnregisterSignal(parent, COMSIG_MOVABLE_IMPACT) + +/datum/component/movable_physics/proc/throw_impact_ricochet(datum/source, atom/hit_atom, datum/thrownthing/throwingdatum) + SIGNAL_HANDLER + var/atom/movable/atom_source = source + ricochet(atom_source, Get_Angle(atom_source, throwingdatum.target_turf)) + +/datum/component/movable_physics/proc/z_floor_bounce(atom/movable/moving_atom) + angle_of_movement += rand(-3000, 3000) / 100 + var/turf/a_turf = get_turf(moving_atom) + if(istype(moving_atom, /obj/item/ammo_casing)) + playsound(moving_atom, a_turf.bullet_bounce_sound, 50, TRUE) + else + playsound(moving_atom, bounce_sound, 50, TRUE) + moving_atom.SpinAnimation(speed = 1 SECONDS / numbounce, loops = 1) + moving_atom.pixel_z = z_floor + horizontal_velocity = max(0, horizontal_velocity + (vertical_velocity * -0.8)) + vertical_velocity = max(0, ((vertical_velocity * -0.8) - 0.2)) + numbounce += 0.5 + +/datum/component/movable_physics/proc/ricochet(atom/movable/moving_atom, bounce_angle) + angle_of_movement = ((180 - bounce_angle) - angle_of_movement) + if(angle_of_movement < 0) + angle_of_movement += 360 + //var/turf/a_turf = get_turf(moving_atom) + //playsound(src, a_turf.bullet_bounce_sound, 50, TRUE) + +/datum/component/movable_physics/proc/fix_angle(angle, atom/moving_atom)//fixes an angle below 0 or above 360 + if(!(angle_of_movement > 360) && !(angle_of_movement < 0)) + return angle //early return if it doesn't need to change + var/new_angle + if(angle_of_movement > 360) + new_angle = angle_of_movement - 360 + if(angle_of_movement < 0) + new_angle = angle_of_movement + 360 + return new_angle + +/datum/component/movable_physics/process(delta_time) + var/atom/movable/moving_atom = parent + var/turf/location = get_turf(moving_atom) + + angle_of_movement = fix_angle(angle_of_movement, moving_atom) + if(horizontal_velocity <= 0 && moving_atom.pixel_z == 0) + horizontal_velocity = 0 + stop_movement() + return + + moving_atom.pixel_x += (horizontal_velocity * (sin(angle_of_movement))) + moving_atom.pixel_y += (horizontal_velocity * (cos(angle_of_movement))) + + horizontal_velocity = max(0, horizontal_velocity - horizontal_friction) + + moving_atom.pixel_z = max(z_floor, moving_atom.pixel_z + vertical_velocity) + if(moving_atom.pixel_z > z_floor) + vertical_velocity -= (z_gravity * 0.05) + + if(moving_atom.pixel_z <= z_floor && (vertical_velocity != 0) && moving_atom.has_gravity(location)) //z bounce + z_floor_bounce(moving_atom) + + if(moving_atom.pixel_x > 16) + if(moving_atom.Move(get_step(moving_atom, EAST))) + moving_atom.pixel_x = -16 + else + moving_atom.pixel_x = 16 + ricochet(moving_atom, 0) + return + + if(moving_atom.pixel_x < -16) + if(moving_atom.Move(get_step(moving_atom, WEST))) + moving_atom.pixel_x = 16 + else + moving_atom.pixel_x = -16 + ricochet(moving_atom, 0) + return + + if(moving_atom.pixel_y > 16) + if(moving_atom.Move(get_step(moving_atom, NORTH))) + moving_atom.pixel_y = -16 + else + moving_atom.pixel_y = 16 + ricochet(moving_atom, 180) + return + + if(moving_atom.pixel_y < -16) + if(moving_atom.Move(get_step(moving_atom, SOUTH))) + moving_atom.pixel_y = 16 + else + moving_atom.pixel_y = -16 + ricochet(moving_atom, 180) + diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 00943573a12e..75cc7c0556fb 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -694,7 +694,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb if (callback) //call the original callback . = callback.Invoke() item_flags &= ~IN_INVENTORY - if(!pixel_y && !pixel_x) + if(!pixel_y && !pixel_x && !(item_flags & NO_PIXEL_RANDOM_DROP)) pixel_x = rand(-8,8) pixel_y = rand(-8,8) diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index 3a6ba2f73950..5b69cab9cc7b 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -10,6 +10,7 @@ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' w_class = WEIGHT_CLASS_BULKY flags_1 = CONDUCT_1 + item_flags = NO_PIXEL_RANDOM_DROP throwforce = 5 throw_speed = 1 throw_range = 2 diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index de07b3d4f0fd..0d9dab7a035f 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -275,7 +275,7 @@ */ /mob/proc/dropItemToGround(obj/item/I, force = FALSE, silent = FALSE) . = doUnEquip(I, force, drop_location(), FALSE, silent = silent) - if(. && I) //ensure the item exists and that it was dropped properly. + if(. && I && !(I.item_flags & NO_PIXEL_RANDOM_DROP)) //ensure the item exists and that it was dropped properly. I.pixel_x = rand(-6,6) I.pixel_y = rand(-6,6) diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammunition.dm index 5120bf761f9e..c9697aa4e80f 100644 --- a/code/modules/projectiles/ammunition/_ammunition.dm +++ b/code/modules/projectiles/ammunition/_ammunition.dm @@ -51,6 +51,7 @@ BB = new projectile_type(src) pixel_x = base_pixel_x + rand(-10, 10) pixel_y = base_pixel_y + rand(-10, 10) + item_flags |= NO_PIXEL_RANDOM_DROP if(auto_rotate) transform = transform.Turn(pick(0, 90, 180, 270)) update_appearance() @@ -107,9 +108,14 @@ bounce_away(FALSE, NONE) . = ..() -/obj/item/ammo_casing/proc/on_eject() +/obj/item/ammo_casing/proc/on_eject(atom/shooter) forceMove(drop_location()) //Eject casing onto ground. - bounce_away(TRUE) + pixel_x = rand(-4, 4) + pixel_y = rand(-4, 4) + pixel_z = 8 //bounce time + var/angle_of_movement = !isnull(shooter) ? (rand(-3000, 3000) / 100) + dir2angle(turn(shooter.dir, 180)) : rand(-3000, 3000) / 100 + AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(400, 450) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement) + /obj/item/ammo_casing/proc/bounce_away(still_warm = FALSE, bounce_delay = 3) if(!heavy_metal) diff --git a/code/modules/projectiles/ammunition/caseless/_caseless.dm b/code/modules/projectiles/ammunition/caseless/_caseless.dm index 78525277f28c..230f5f9a9969 100644 --- a/code/modules/projectiles/ammunition/caseless/_caseless.dm +++ b/code/modules/projectiles/ammunition/caseless/_caseless.dm @@ -3,7 +3,7 @@ firing_effect_type = null heavy_metal = FALSE -/obj/item/ammo_casing/caseless/on_eject() +/obj/item/ammo_casing/caseless/on_eject(atom/shooter) // [CELADON-EDIT] - CELADON_FIXES // qdel(src) // CELADON-EDIT - ORIGINAL if(BB) // Проверяем, что гильза не пустая diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 5cd55858537a..ca4d0217b380 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -209,7 +209,7 @@ zoom(user, user.dir, FALSE) //we can only stay zoomed in if it's in our hands //yeah and we only unzoom if we're actually zoomed using the gun!! //called after the gun has successfully fired its chambered ammo. -/obj/item/gun/proc/process_chamber() +/obj/item/gun/proc/process_chamber(atom/shooter) SEND_SIGNAL(src, COMSIG_GUN_CHAMBER_PROCESSED) return FALSE @@ -357,7 +357,7 @@ shoot_with_empty_chamber(user) firing_burst = FALSE return FALSE - process_chamber() + process_chamber(shooter = user) update_appearance() return TRUE @@ -408,7 +408,7 @@ else shoot_with_empty_chamber(user) return - process_chamber() + process_chamber(shooter = user) update_appearance() if(fire_delay) semicd = TRUE diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 227abceffa01..4f3b80bf478a 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -144,13 +144,13 @@ if(!chambered && empty_indicator) . += "[icon_state]_empty" -/obj/item/gun/ballistic/process_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE) +/obj/item/gun/ballistic/process_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE, atom/shooter) if(!semi_auto && from_firing) return var/obj/item/ammo_casing/casing = chambered //Find chambered round if(istype(casing)) //there's a chambered round if(casing_ejector || !from_firing) - casing.on_eject() + casing.on_eject(shooter) chambered = null else if(empty_chamber) chambered = null @@ -179,7 +179,7 @@ bolt_locked = FALSE if (user) to_chat(user, "You rack the [bolt_wording] of \the [src].") - process_chamber(!chambered, FALSE) + process_chamber(!chambered, FALSE, shooter = user) if (bolt_type == BOLT_TYPE_LOCKING && !chambered) bolt_locked = TRUE playsound(src, lock_back_sound, lock_back_sound_volume, lock_back_sound_vary) @@ -267,7 +267,7 @@ if (istype(A, /obj/item/ammo_casing) || istype(A, /obj/item/ammo_box)) if (bolt_type == BOLT_TYPE_NO_BOLT || internal_magazine) if (chambered && !chambered.BB) - chambered.on_eject() + chambered.on_eject(shooter = user) chambered = null var/num_loaded = magazine.attackby(A, user, params) if (num_loaded) @@ -364,7 +364,10 @@ var/num_unloaded = 0 for(var/obj/item/ammo_casing/CB in get_ammo_list(FALSE, TRUE)) CB.forceMove(drop_location()) - CB.bounce_away(FALSE, NONE) + + var/angle_of_movement =(rand(-3000, 3000) / 100) + dir2angle(turn(user.dir, 180)) + CB.AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(350, 450) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement) + num_unloaded++ SSblackbox.record_feedback("tally", "station_mess_created", 1, CB.name) if (num_unloaded) diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index b08e156927fa..4f76267752a1 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -57,7 +57,7 @@ . += "[base_icon_state || initial(icon_state)][safety ? "_hammer_up" : "_hammer_down"]" -/obj/item/gun/ballistic/revolver/process_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE) +/obj/item/gun/ballistic/revolver/process_chamber(empty_chamber = TRUE, from_firing = TRUE, chamber_next_round = TRUE, atom/shooter) SEND_SIGNAL(src, COMSIG_UPDATE_AMMO_HUD) return ..() @@ -84,7 +84,9 @@ if(!casing_to_eject) continue casing_to_eject.forceMove(drop_location()) - casing_to_eject.bounce_away(FALSE, NONE) + var/angle_of_movement =(rand(-3000, 3000) / 100) + dir2angle(turn(user.dir, 180)) + casing_to_eject.AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(450, 550) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement) + num_unloaded++ SSblackbox.record_feedback("tally", "station_mess_created", 1, casing_to_eject.name) chamber_round(FALSE) @@ -120,8 +122,9 @@ to_chat(user, "There's nothing in the gate to eject from [src]!") return FALSE playsound(src, eject_sound, eject_sound_volume, eject_sound_vary) - casing_to_eject.forceMove(drop_location()) - casing_to_eject.bounce_away(FALSE, NONE) + var/angle_of_movement =(rand(-3000, 3000) / 100) + dir2angle(turn(user.dir, 180)) + casing_to_eject.AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(350, 450) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement) + SSblackbox.record_feedback("tally", "station_mess_created", 1, casing_to_eject.name) if(!gate_loaded) magazine.stored_ammo[casing_index] = null diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 1632e175fd8e..24cf3323048a 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -33,11 +33,11 @@ . = ..() . += "[icon_state]_bolt[bolt_locked ? "_locked" : ""]" -/obj/item/gun/ballistic/rifle/rack(mob/user = null) +/obj/item/gun/ballistic/rifle/rack(mob/living/user) if (bolt_locked == FALSE) to_chat(user, "You open the bolt of \the [src].") playsound(src, rack_sound, rack_sound_volume, rack_sound_vary) - process_chamber(FALSE, FALSE, FALSE) + process_chamber(FALSE, FALSE, FALSE, shooter = user) bolt_locked = TRUE update_appearance() if (magazine && !magazine?.ammo_count() && empty_autoeject && !internal_magazine) diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 0b7e526c8a2b..4502f7fe9b2c 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -303,7 +303,9 @@ var/num_unloaded = 0 for(var/obj/item/ammo_casing/casing_bullet in get_ammo_list(FALSE, TRUE)) casing_bullet.forceMove(drop_location()) - casing_bullet.bounce_away(FALSE, NONE) + var/angle_of_movement =(rand(-3000, 3000) / 100) + dir2angle(turn(user.dir, 180)) + casing_bullet.AddComponent(/datum/component/movable_physics, _horizontal_velocity = rand(450, 550) / 100, _vertical_velocity = rand(400, 450) / 100, _horizontal_friction = rand(20, 24) / 100, _z_gravity = PHYSICS_GRAV_STANDARD, _z_floor = 0, _angle_of_movement = angle_of_movement) + num_unloaded++ SSblackbox.record_feedback("tally", "station_mess_created", 1, casing_bullet.name) if (num_unloaded) diff --git a/code/modules/projectiles/guns/ballistic/toy.dm b/code/modules/projectiles/guns/ballistic/toy.dm index 95911c9269bc..5f62b8c7ca78 100644 --- a/code/modules/projectiles/guns/ballistic/toy.dm +++ b/code/modules/projectiles/guns/ballistic/toy.dm @@ -59,8 +59,8 @@ . = ..() . += "[icon_state]_toy" -/obj/item/gun/ballistic/shotgun/toy/process_chamber(empty_chamber = 0) - ..() +/obj/item/gun/ballistic/shotgun/toy/process_chamber(empty_chamber = 0, from_firing = TRUE, chamber_next_round = TRUE, atom/shooter) + . = ..() if(chambered && !chambered.BB) qdel(chambered) diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index a6e424901d5e..705789b3484a 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -204,7 +204,7 @@ if(!chambered.BB) chambered.newshot() -/obj/item/gun/energy/process_chamber() +/obj/item/gun/energy/process_chamber(atom/shooter) if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired... var/obj/item/ammo_casing/energy/shot = chambered cell.use(shot.e_cost)//... drain the cell cell diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 27b7b65b622d..d84655fb5813 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -221,7 +221,7 @@ if(istype(WH)) WH.gun = WEAKREF(src) -/obj/item/gun/energy/wormhole_projector/process_chamber() +/obj/item/gun/energy/wormhole_projector/process_chamber(atom/shooter) ..() select_fire() diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index 9360c24be499..1f8be937b645 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -41,7 +41,7 @@ if (charges && chambered && !chambered.BB) chambered.newshot() -/obj/item/gun/magic/process_chamber() +/obj/item/gun/magic/process_chamber(atom/shooter) if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired... charges--//... drain a charge recharge_newshot() diff --git a/code/modules/projectiles/guns/misc/chem_gun.dm b/code/modules/projectiles/guns/misc/chem_gun.dm index fef47121af5f..7c99b7156000 100644 --- a/code/modules/projectiles/guns/misc/chem_gun.dm +++ b/code/modules/projectiles/guns/misc/chem_gun.dm @@ -29,7 +29,7 @@ /obj/item/gun/chem/can_shoot() return syringes_left -/obj/item/gun/chem/process_chamber() +/obj/item/gun/chem/process_chamber(atom/shooter) if(chambered && !chambered.BB && syringes_left) chambered.newshot() diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm index 96927eb91afc..84d00b226371 100644 --- a/code/modules/projectiles/guns/misc/syringe_gun.dm +++ b/code/modules/projectiles/guns/misc/syringe_gun.dm @@ -29,7 +29,7 @@ /obj/item/gun/syringe/can_shoot() return syringes.len -/obj/item/gun/syringe/process_chamber() +/obj/item/gun/syringe/process_chamber(atom/shooter) if(chambered && !chambered.BB) //we just fired recharge_newshot() diff --git a/shiptest.dme b/shiptest.dme index 80206e3f3c61..9f044e024f08 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -378,6 +378,7 @@ #include "code\controllers\subsystem\processing\fastprocess.dm" #include "code\controllers\subsystem\processing\fluids.dm" #include "code\controllers\subsystem\processing\instruments.dm" +#include "code\controllers\subsystem\processing\movable_physics.dm" #include "code\controllers\subsystem\processing\nanites.dm" #include "code\controllers\subsystem\processing\networks.dm" #include "code\controllers\subsystem\processing\obj.dm" @@ -502,6 +503,7 @@ #include "code\datums\components\material_container.dm" #include "code\datums\components\mirv.dm" #include "code\datums\components\mood.dm" +#include "code\datums\components\movable_physics.dm" #include "code\datums\components\nanites.dm" #include "code\datums\components\ntnet_interface.dm" #include "code\datums\components\orbiter.dm" From f605e1c7b6566e4d17194065a78d06b37102be6a Mon Sep 17 00:00:00 2001 From: HelmCrab <90987989+Thera-Pissed@users.noreply.github.com> Date: Sun, 26 May 2024 23:15:54 -0500 Subject: [PATCH 003/107] Idle & Active power rework and defines (#2632) ## About The Pull Request Implements new defines set in power.dm for nearly all machines using idle/active_power_usage Kills auto_use_power() in favor of useStaticPower() procs Standardizes power draws for most things using said defines Decreases power used for lighting by half Generally increases power used by machinery, especially those that are only active for short periods. SSUs now consume power when decontaminating, ORMs and vending machines now take idle power. ![image](https://github.com/shiptest-ss13/Shiptest/assets/90987989/071f8fa8-0639-4fb5-9c3c-5b4b4ad254e4) If you have any feedback, feel free to share it! Most of these numbers are based on their original values, so definitely could be changed. ## Why It's Good For The Game This PR standardizes the draw of most machinery, while making it easier to change power use across the board. Additionally, lighting takes less power, while actual machines have been tweaked to fill this gap. ## Changelog :cl: tweak: SSUs draw power to decontaminate balance: lights no longer take 60% of a ships power, machines use more to account for this. code: added standardized defines for power usage /:cl: --------- Signed-off-by: HelmCrab <90987989+Thera-Pissed@users.noreply.github.com> Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- code/__DEFINES/power.dm | 13 +++++ code/controllers/subsystem/machines.dm | 5 +- code/game/machinery/PDApainter.dm | 2 + code/game/machinery/Sleeper.dm | 7 ++- code/game/machinery/_machinery.dm | 30 +++++++++--- code/game/machinery/airlock_cycle_control.dm | 4 +- code/game/machinery/announcement_system.dm | 4 +- code/game/machinery/autolathe.dm | 11 +++-- code/game/machinery/bank_machine.dm | 2 +- code/game/machinery/buttons.dm | 2 +- code/game/machinery/camera/camera.dm | 4 +- code/game/machinery/cell_charger.dm | 4 +- code/game/machinery/cloning.dm | 2 + code/game/machinery/computer/_computer.dm | 4 +- code/game/machinery/computer/crew.dm | 4 +- code/game/machinery/computer/dna_console.dm | 4 +- code/game/machinery/dance_machine.dm | 2 + code/game/machinery/defibrillator_mount.dm | 2 +- code/game/machinery/dish_drive.dm | 4 +- code/game/machinery/dna_scanner.dm | 4 +- code/game/machinery/doppler_array.dm | 2 + code/game/machinery/droneDispenser.dm | 2 + .../embedded_controller/access_controller.dm | 4 +- code/game/machinery/firealarm.dm | 4 +- code/game/machinery/gulag_item_reclaimer.dm | 4 +- code/game/machinery/gulag_teleporter.dm | 4 +- code/game/machinery/harvester.dm | 4 +- code/game/machinery/hologram.dm | 11 +++-- code/game/machinery/hypnochair.dm | 2 + code/game/machinery/igniter.dm | 4 +- code/game/machinery/launch_pad.dm | 8 ++-- code/game/machinery/limbgrower.dm | 4 +- code/game/machinery/mass_driver.dm | 4 +- code/game/machinery/medical_kiosk.dm | 2 + code/game/machinery/medipen_refiller.dm | 2 +- .../machinery/porta_turret/portable_turret.dm | 6 +-- code/game/machinery/prisonlabor.dm | 4 +- code/game/machinery/quantum_pad.dm | 4 +- code/game/machinery/recharger.dm | 8 ++-- code/game/machinery/rechargestation.dm | 8 ++-- code/game/machinery/recycler.dm | 2 + code/game/machinery/roulette_machine.dm | 4 +- code/game/machinery/scan_gate.dm | 2 +- code/game/machinery/sheetifier.dm | 4 +- code/game/machinery/shieldgen.dm | 4 +- code/game/machinery/shuttle/ship_gravity.dm | 4 +- code/game/machinery/shuttle/shuttle_heater.dm | 2 +- code/game/machinery/slotmachine.dm | 2 +- code/game/machinery/stasis.dm | 8 ++-- code/game/machinery/status_display.dm | 2 +- code/game/machinery/suit_storage_unit.dm | 3 ++ .../telecomms/machines/broadcaster.dm | 2 +- code/game/machinery/telecomms/machines/bus.dm | 2 +- code/game/machinery/telecomms/machines/hub.dm | 2 +- .../telecomms/machines/message_server.dm | 8 ++-- .../machinery/telecomms/machines/processor.dm | 2 +- .../machinery/telecomms/machines/receiver.dm | 2 +- .../machinery/telecomms/machines/relay.dm | 2 +- .../machinery/telecomms/machines/server.dm | 2 +- code/game/machinery/teleporter.dm | 8 ++-- code/game/mecha/mech_fabricator.dm | 8 ++-- code/modules/NTNet/relays.dm | 8 ++-- .../atmospherics/machinery/airalarm.dm | 8 ++-- .../components/binary_devices/pump.dm | 12 +++++ .../components/binary_devices/valve.dm | 3 ++ .../components/binary_devices/volume_pump.dm | 12 +++++ .../components/trinary_devices/filter.dm | 12 +++++ .../components/trinary_devices/mixer.dm | 12 +++++ .../components/unary_devices/thermomachine.dm | 12 ++++- .../components/unary_devices/vent_scrubber.dm | 13 +++-- .../atmospherics/machinery/other/meter.dm | 4 +- .../atmospherics/machinery/other/miner.dm | 4 +- .../machinery/portable/scrubber.dm | 10 ++-- code/modules/awaymissions/gateway.dm | 8 ++-- .../cargo/blackmarket/blackmarket_telepad.dm | 2 +- .../modules/fishing/fishing_portal_machine.dm | 6 +-- .../kitchen_machinery/coffeemaker.dm | 5 +- .../kitchen_machinery/deep_fryer.dm | 2 +- .../kitchen_machinery/gibber.dm | 4 +- .../kitchen_machinery/microwave.dm | 9 ++-- .../kitchen_machinery/monkeyrecycler.dm | 4 +- .../kitchen_machinery/processor.dm | 4 +- .../kitchen_machinery/smartfridge.dm | 12 ++--- code/modules/holodeck/items.dm | 4 +- code/modules/hydroponics/biogenerator.dm | 2 +- code/modules/hydroponics/hydroponics.dm | 13 +++-- code/modules/mining/machine_bluespaceminer.dm | 2 +- code/modules/mining/machine_processing.dm | 1 + .../computers/machinery/modular_console.dm | 4 +- .../overmap/missions/research_mission.dm | 4 +- code/modules/paperwork/photocopier.dm | 4 +- .../plumbing/plumbers/_plumb_machinery.dm | 2 +- code/modules/plumbing/plumbers/pumps.dm | 4 +- code/modules/power/floodlight.dm | 4 +- code/modules/power/gravitygenerator.dm | 7 ++- code/modules/power/lighting.dm | 14 +++--- code/modules/power/monitor.dm | 10 ++-- code/modules/power/power.dm | 48 ++++++++++++++++--- code/modules/power/singularity/emitter.dm | 6 +-- .../particle_accelerator/particle_control.dm | 12 ++--- code/modules/power/solar.dm | 2 +- .../chemistry/machinery/chem_dispenser.dm | 2 +- .../chemistry/machinery/chem_heater.dm | 2 +- .../chemistry/machinery/chem_master.dm | 2 +- .../reagents/chemistry/machinery/pandemic.dm | 4 +- .../chemistry/machinery/reagentgrinder.dm | 13 +++-- code/modules/research/bepis.dm | 8 ++-- .../modules/research/machinery/_production.dm | 10 +++- .../research/nanites/nanite_chamber.dm | 4 +- .../research/nanites/public_chamber.dm | 4 +- .../security_levels/keycard_authentication.dm | 4 +- code/modules/station_goals/dna_vault.dm | 2 +- code/modules/vending/_vending.dm | 2 + 113 files changed, 416 insertions(+), 230 deletions(-) diff --git a/code/__DEFINES/power.dm b/code/__DEFINES/power.dm index a95fec219552..29d6e72dffa5 100644 --- a/code/__DEFINES/power.dm +++ b/code/__DEFINES/power.dm @@ -12,3 +12,16 @@ #define TESLA_DEFAULT_POWER 1738260 #define TESLA_MINI_POWER 869130 + +#define LIGHT_DRAW 10 // mulitplied by brightness, typically 4-8 + +#define IDLE_DRAW_MINIMAL 50 // 20x = 1kw, used for small things and computers on stand-by +#define IDLE_DRAW_LOW 200 //5x = 1kw, used for always-active computers +#define IDLE_DRAW_MEDIUM 500 //2x = 1kw +#define IDLE_DRAW_HIGH 1000 //1kw + +#define ACTIVE_DRAW_MINIMAL 200 //5x = 1kw +#define ACTIVE_DRAW_LOW 500 //2x = 1kw +#define ACTIVE_DRAW_MEDIUM 1000 //microwaves use this +#define ACTIVE_DRAW_HIGH 2000 +#define ACTIVE_DRAW_EXTREME 5000 //highest this value should be in most cases diff --git a/code/controllers/subsystem/machines.dm b/code/controllers/subsystem/machines.dm index 4440d1c17b33..e8285abafde1 100644 --- a/code/controllers/subsystem/machines.dm +++ b/code/controllers/subsystem/machines.dm @@ -47,10 +47,7 @@ SUBSYSTEM_DEF(machines) while(currentrun.len) var/obj/machinery/thing = currentrun[currentrun.len] currentrun.len-- - if(!QDELETED(thing) && thing.process(seconds) != PROCESS_KILL) - if(thing.use_power) - thing.auto_use_power() //add back the power state - else + if(QDELETED(thing) || thing.process(seconds) == PROCESS_KILL) processing -= thing if (!QDELETED(thing)) thing.datum_flags &= ~DF_ISPROCESSING diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm index e9906a6a0089..b423b28ce4d2 100644 --- a/code/game/machinery/PDApainter.dm +++ b/code/game/machinery/PDApainter.dm @@ -5,6 +5,8 @@ icon_state = "pdapainter" base_icon_state = "pdapainter" density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_MINIMAL max_integrity = 200 var/obj/item/pda/storedpda = null var/list/colorlist = list() diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index f0a1c403cfa4..3d4d05336c3c 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -11,6 +11,8 @@ icon_state = "sleeper" base_icon_state = "sleeper" density = FALSE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW state_open = TRUE circuit = /obj/item/circuitboard/machine/sleeper clicksound = 'sound/machines/pda_button1.ogg' @@ -100,7 +102,7 @@ playsound(src, 'sound/machines/synth_yes.ogg', 50, TRUE, frequency = rand(5120, 8800)) target.apply_status_effect(STATUS_EFFECT_STASIS, STASIS_MACHINE_EFFECT) target.ExtinguishMob() - use_power = ACTIVE_POWER_USE + set_active_power() /obj/machinery/sleeper/proc/thaw_them(mob/living/target) if(IS_IN_STASIS(target)) @@ -109,7 +111,8 @@ /obj/machinery/sleeper/process() if(!occupant || !isliving(occupant)) - use_power = IDLE_POWER_USE + if(use_static_power != IDLE_POWER_USE) + set_idle_power() return var/mob/living/L_occupant = occupant if(stasis_running()) diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index a17b9c705dc1..4cddf93b2478 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -21,7 +21,7 @@ Class Variables: power_channel (num) What channel to draw from when drawing power for power mode Possible Values: - AREA_USAGE_EQUIP:0 -- Equipment Channel + AREA_USAGE_EQUIP:1 -- Equipment Channel AREA_USAGE_LIGHT:2 -- Lighting Channel AREA_USAGE_ENVIRON:3 -- Environment Channel @@ -44,7 +44,7 @@ Class Procs: auto_use_power() 'game/machinery/machine.dm' This proc determines how power mode power is deducted by the machine. 'auto_use_power()' is called by the 'master_controller' game_controller every - tick. + tick. (not anymore) Return Value: return:1 -- if object is powered @@ -102,6 +102,7 @@ Class Procs: //0 = dont run the auto //1 = run auto, use idle //2 = run auto, use active + var/use_static_power = NO_POWER_USE var/idle_power_usage = 0 var/active_power_usage = 0 var/power_channel = AREA_USAGE_EQUIP @@ -151,7 +152,11 @@ Class Procs: if(occupant_typecache) occupant_typecache = typecacheof(occupant_typecache) - + switch(use_power) + if(IDLE_POWER_USE) + set_idle_power() + if(ACTIVE_POWER_USE) + set_active_power() return INITIALIZE_HINT_LATELOAD /// Helper proc for telling a machine to start processing with the subsystem type that is located in its `subsystem_type` var. @@ -168,7 +173,16 @@ Class Procs: . = ..() power_change() become_area_sensitive(ROUNDSTART_TRAIT) - RegisterSignal(src, COMSIG_ENTER_AREA, PROC_REF(power_change)) + RegisterSignal(src, COMSIG_ENTER_AREA, PROC_REF(enter_area)) + RegisterSignal(src, COMSIG_EXIT_AREA, PROC_REF(exit_area)) + +/obj/machinery/proc/enter_area(datum/source, area/A) + SIGNAL_HANDLER + power_change(A) + +/obj/machinery/proc/exit_area(datum/source, area/A) + SIGNAL_HANDLER + set_no_power(A) /obj/machinery/Destroy() GLOB.machines.Remove(src) @@ -177,6 +191,7 @@ Class Procs: lose_area_sensitivity(ROUNDSTART_TRAIT) QDEL_NULL(circuit) QDEL_LIST(component_parts) + set_no_power() return ..() /obj/machinery/proc/locate_machinery() @@ -273,8 +288,8 @@ Class Procs: target.forceMove(src) updateUsrDialog() update_appearance() - -/obj/machinery/proc/auto_use_power() +/* +/obj/machinery/proc/auto_use_power() //obsolete, tick controller doesn't call this anymore because machines use addStaticPower now. if(!powered(power_channel)) return 0 if(use_power == 1) @@ -282,7 +297,7 @@ Class Procs: else if(use_power >= 2) use_power(active_power_usage,power_channel) return 1 - +*/ ///Called when we want to change the value of the `is_operational` variable. Boolean. /obj/machinery/proc/set_is_operational(new_value) @@ -618,6 +633,7 @@ Class Procs: //called on deconstruction before the final deletion /obj/machinery/proc/on_deconstruction() + set_no_power() return /obj/machinery/proc/can_be_overridden() diff --git a/code/game/machinery/airlock_cycle_control.dm b/code/game/machinery/airlock_cycle_control.dm index 76094e803cd3..7ba391fae782 100644 --- a/code/game/machinery/airlock_cycle_control.dm +++ b/code/game/machinery/airlock_cycle_control.dm @@ -67,8 +67,8 @@ icon = 'icons/obj/monitors.dmi' icon_state = "aac" use_power = IDLE_POWER_USE - idle_power_usage = 4 - active_power_usage = 8 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL power_channel = AREA_USAGE_ENVIRON req_access = list(ACCESS_ATMOSPHERICS) max_integrity = 250 diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm index f275d234fca7..d4057603957d 100644 --- a/code/game/machinery/announcement_system.dm +++ b/code/game/machinery/announcement_system.dm @@ -12,8 +12,8 @@ GLOBAL_LIST_EMPTY(announcement_systems) verb_ask = "queries" verb_exclaim = "alarms" - idle_power_usage = 20 - active_power_usage = 50 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = IDLE_DRAW_LOW circuit = /obj/item/circuitboard/machine/announcement_system diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index d83831f2c634..5e61d276b226 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -9,8 +9,9 @@ icon_state = "autolathe" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_HIGH + power_channel = AREA_USAGE_EQUIP circuit = /obj/item/circuitboard/machine/autolathe layer = BELOW_OBJ_LAYER @@ -223,7 +224,7 @@ for(var/MAT in being_built.materials) total_amount += being_built.materials[MAT] - var/power = max(active_power_usage, (total_amount)*multiplier/5) //Change this to use all materials + var/power = max(active_power_usage, total_amount) //Change this to use all materials var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) @@ -252,6 +253,7 @@ use_power(power) icon_state = "autolathe_n" var/time = is_stack ? 32 : (32 * coeff * multiplier) ** 0.8 + set_active_power() addtimer(CALLBACK(src, PROC_REF(make_item), power, materials_used, custom_materials, multiplier, coeff, is_stack, usr), time) . = TRUE else @@ -326,12 +328,13 @@ else flick("autolathe_o", src) //plays metal insertion animation - use_power(min(1000, amount_inserted / 100)) + use_power(min(active_power_usage, amount_inserted)) /obj/machinery/autolathe/proc/make_item(power, list/materials_used, list/picked_materials, multiplier, coeff, is_stack, mob/user) var/datum/component/material_container/materials = GetComponent(/datum/component/material_container) var/atom/A = drop_location() use_power(power) + set_idle_power() materials.use_materials(materials_used) diff --git a/code/game/machinery/bank_machine.dm b/code/game/machinery/bank_machine.dm index 2e93cd179ed5..83f3e366e8a3 100644 --- a/code/game/machinery/bank_machine.dm +++ b/code/game/machinery/bank_machine.dm @@ -3,7 +3,7 @@ desc = "A machine used to deposit and withdraw funds." icon_screen = "vault" icon_keyboard = "security_key" - idle_power_usage = 100 + idle_power_usage = IDLE_DRAW_LOW var/siphoning = FALSE var/next_warning = 0 diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index 1a89a2b011cc..b10dba436e0d 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -12,7 +12,7 @@ var/initialized_button = 0 armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 70) use_power = IDLE_POWER_USE - idle_power_usage = 2 + idle_power_usage = IDLE_DRAW_MINIMAL resistance_flags = LAVA_PROOF | FIRE_PROOF /obj/machinery/button/indestructible diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index c1cca432efd4..fda41eab7789 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -9,8 +9,8 @@ icon_state = "camera" //mapping icon to represent upgrade states. if you want a different base icon, update default_camera_icon as well as this. light_color = "#CDDDFF" use_power = ACTIVE_POWER_USE - idle_power_usage = 5 - active_power_usage = 10 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = IDLE_DRAW_MINIMAL*2 layer = WALL_OBJ_LAYER resistance_flags = FIRE_PROOF damage_deflection = 12 diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index e1be8d8e4453..85d2d5651203 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -4,8 +4,8 @@ icon = 'icons/obj/power.dmi' icon_state = "ccharger" use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 60 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_LOW power_channel = AREA_USAGE_EQUIP circuit = /obj/item/circuitboard/machine/cell_charger pass_flags = PASSTABLE diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index c71e94a0948a..ad4cd3834f06 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -16,6 +16,8 @@ density = TRUE icon = 'icons/obj/machines/cloning.dmi' icon_state = "pod_0" + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW req_access = list(ACCESS_CLONING) //FOR PREMATURE UNLOCKING. verb_say = "states" circuit = /obj/item/circuitboard/machine/clonepod diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm index bdbadf79a943..3a36603c5070 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -4,8 +4,8 @@ icon_state = "computer" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 300 - active_power_usage = 300 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_LOW max_integrity = 200 integrity_failure = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 40, "acid" = 20) diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index f875defd6044..c1a1171e57cc 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -6,8 +6,8 @@ icon_screen = "crew" icon_keyboard = "med_key" use_power = IDLE_POWER_USE - idle_power_usage = 250 - active_power_usage = 500 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_MEDIUM circuit = /obj/item/circuitboard/computer/crew light_color = LIGHT_COLOR_BLUE diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm index ffeabbdc4e0a..815e2496d41b 100644 --- a/code/game/machinery/computer/dna_console.dm +++ b/code/game/machinery/computer/dna_console.dm @@ -43,8 +43,8 @@ circuit = /obj/item/circuitboard/computer/scan_consolenew use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 400 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_MEDIUM light_color = LIGHT_COLOR_BLUE /// Link to the techweb's stored research. Used to retrieve stored mutations diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index 20c3d66e8585..8419ee80ce1e 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -5,6 +5,8 @@ icon_state = "jukebox-" verb_say = "states" density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_MINIMAL var/active = FALSE var/list/rangers = list() var/stop = 0 diff --git a/code/game/machinery/defibrillator_mount.dm b/code/game/machinery/defibrillator_mount.dm index f3fa616032d3..645e8eee762f 100644 --- a/code/game/machinery/defibrillator_mount.dm +++ b/code/game/machinery/defibrillator_mount.dm @@ -165,7 +165,7 @@ name = "PENLITE defibrillator mount" desc = "Holds defibrillators. You can grab the paddles if one is mounted. This PENLITE variant also allows for slow, passive recharging of the defibrillator." icon_state = "penlite_mount" - idle_power_usage = 1 + idle_power_usage = 0 wallframe_type = /obj/item/wallframe/defib_mount/charging diff --git a/code/game/machinery/dish_drive.dm b/code/game/machinery/dish_drive.dm index baf3d6ae2cc1..740ea5c935fa 100644 --- a/code/game/machinery/dish_drive.dm +++ b/code/game/machinery/dish_drive.dm @@ -5,8 +5,8 @@ Or you can just drop your plates on the floor, like civilized folk." icon = 'icons/obj/kitchen.dmi' icon_state = "synthesizer" - idle_power_usage = 8 //5 with default parts - active_power_usage = 13 //10 with default parts + idle_power_usage = IDLE_DRAW_MINIMAL //lower + active_power_usage = ACTIVE_DRAW_MINIMAL //lower ingame because stockparts density = FALSE circuit = /obj/item/circuitboard/machine/dish_drive pass_flags = PASSTABLE diff --git a/code/game/machinery/dna_scanner.dm b/code/game/machinery/dna_scanner.dm index 7f61dde6ef79..a45aaa474438 100644 --- a/code/game/machinery/dna_scanner.dm +++ b/code/game/machinery/dna_scanner.dm @@ -6,8 +6,8 @@ base_icon_state = "scanner" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 50 - active_power_usage = 300 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM occupant_typecache = list(/mob/living, /obj/item/bodypart/head, /obj/item/organ/brain) circuit = /obj/item/circuitboard/machine/dnascanner var/locked = FALSE diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index aa3e4ece65e9..25da902ea3f5 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -6,6 +6,8 @@ icon = 'icons/obj/machines/research.dmi' base_icon_state = "tdoppler" density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW verb_say = "states coldly" var/cooldown = 10 var/next_announce = 0 diff --git a/code/game/machinery/droneDispenser.dm b/code/game/machinery/droneDispenser.dm index dbf055d98079..4603044ab285 100644 --- a/code/game/machinery/droneDispenser.dm +++ b/code/game/machinery/droneDispenser.dm @@ -9,6 +9,8 @@ icon = 'icons/obj/machines/droneDispenser.dmi' icon_state = "on" density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW max_integrity = 250 integrity_failure = 0.33 diff --git a/code/game/machinery/embedded_controller/access_controller.dm b/code/game/machinery/embedded_controller/access_controller.dm index 9d190b2e1369..34d4bb320c46 100644 --- a/code/game/machinery/embedded_controller/access_controller.dm +++ b/code/game/machinery/embedded_controller/access_controller.dm @@ -7,8 +7,8 @@ /obj/machinery/doorButtons power_channel = AREA_USAGE_ENVIRON use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 4 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF var/idSelf diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index faceb46419d5..6cbd6eaed278 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -23,8 +23,8 @@ integrity_failure = 0.4 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 30) use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 6 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL power_channel = AREA_USAGE_ENVIRON resistance_flags = FIRE_PROOF diff --git a/code/game/machinery/gulag_item_reclaimer.dm b/code/game/machinery/gulag_item_reclaimer.dm index 8833a20d90c4..81c422ea31fa 100644 --- a/code/game/machinery/gulag_item_reclaimer.dm +++ b/code/game/machinery/gulag_item_reclaimer.dm @@ -6,8 +6,8 @@ req_access = list(ACCESS_SECURITY) //REQACCESS TO ACCESS ALL STORED ITEMS density = FALSE use_power = IDLE_POWER_USE - idle_power_usage = 100 - active_power_usage = 2500 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = IDLE_DRAW_MEDIUM var/list/stored_items = list() var/obj/machinery/gulag_teleporter/linked_teleporter = null diff --git a/code/game/machinery/gulag_teleporter.dm b/code/game/machinery/gulag_teleporter.dm index e147e24717ca..3632c204f36b 100644 --- a/code/game/machinery/gulag_teleporter.dm +++ b/code/game/machinery/gulag_teleporter.dm @@ -15,8 +15,8 @@ The console is located at computer/gulag_teleporter.dm state_open = FALSE density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 200 - active_power_usage = 5000 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_EXTREME circuit = /obj/item/circuitboard/machine/gulag_teleporter var/locked = FALSE var/message_cooldown diff --git a/code/game/machinery/harvester.dm b/code/game/machinery/harvester.dm index 9cf4470cab5c..1b0093458e49 100644 --- a/code/game/machinery/harvester.dm +++ b/code/game/machinery/harvester.dm @@ -2,12 +2,14 @@ name = "organ harvester" desc = "An advanced machine used for harvesting organs and limbs from the deceased." density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW icon = 'icons/obj/machines/harvester.dmi' icon_state = "harvester" base_icon_state = "harvester" verb_say = "states" state_open = FALSE - idle_power_usage = 50 + idle_power_usage = IDLE_DRAW_MINIMAL circuit = /obj/item/circuitboard/machine/harvester light_color = LIGHT_COLOR_BLUE var/interval = 20 diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 4a31d650f9a1..9b2591bd59cd 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -36,8 +36,8 @@ Possible to do for anyone motivated enough: plane = FLOOR_PLANE req_access = list(ACCESS_KEYCARD_AUTH) //Used to allow for forced connecting to other (not secure) holopads. Anyone can make a call, though. use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM max_integrity = 300 armor = list("melee" = 50, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0) circuit = /obj/item/circuitboard/machine/holopad @@ -446,8 +446,11 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ /obj/machinery/holopad/proc/SetLightsAndPower() var/total_users = LAZYLEN(masters) + LAZYLEN(holo_calls) - use_power = total_users > 0 ? ACTIVE_POWER_USE : IDLE_POWER_USE - active_power_usage = HOLOPAD_PASSIVE_POWER_USAGE + (HOLOGRAM_POWER_USAGE * total_users) + if(total_users > 0) + set_active_power() + else + set_idle_power() + active_power_usage = initial(active_power_usage) * total_users if(total_users || replay_mode) set_light(2) else diff --git a/code/game/machinery/hypnochair.dm b/code/game/machinery/hypnochair.dm index b31dd9925375..e14756815bb2 100644 --- a/code/game/machinery/hypnochair.dm +++ b/code/game/machinery/hypnochair.dm @@ -6,6 +6,8 @@ base_icon_state = "hypnochair" circuit = /obj/item/circuitboard/machine/hypnochair density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW opacity = FALSE var/mob/living/carbon/victim = null ///Keeps track of the victim to apply effects if it teleports away diff --git a/code/game/machinery/igniter.dm b/code/game/machinery/igniter.dm index 8117ad2c251a..c82d67a9df62 100644 --- a/code/game/machinery/igniter.dm +++ b/code/game/machinery/igniter.dm @@ -6,8 +6,8 @@ base_icon_state = "igniter" plane = FLOOR_PLANE use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 4 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_LOW max_integrity = 300 armor = list("melee" = 50, "bullet" = 30, "laser" = 70, "energy" = 50, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 70) resistance_flags = FIRE_PROOF diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index c7752a8cbfaa..c3e6bead671a 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -3,9 +3,9 @@ desc = "A bluespace pad able to thrust matter through bluespace, teleporting it to or from nearby locations." icon = 'icons/obj/telescience.dmi' icon_state = "lpad-idle" - use_power = TRUE - idle_power_usage = 200 - active_power_usage = 2500 + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_EXTREME hud_possible = list(DIAG_LAUNCHPAD_HUD) circuit = /obj/item/circuitboard/machine/launchpad var/icon_teleport = "lpad-beam" @@ -149,7 +149,7 @@ teleporting = FALSE // use a lot of power - use_power(1000) + use_power(active_power_usage) var/turf/source = target var/list/log_msg = list() diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm index 40f405ad4a16..c0f296c1ffcf 100644 --- a/code/game/machinery/limbgrower.dm +++ b/code/game/machinery/limbgrower.dm @@ -7,8 +7,8 @@ icon_state = "limbgrower_idleoff" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_LOW circuit = /obj/item/circuitboard/machine/limbgrower /// The category of limbs we're browing in our UI. diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm index 4f91bea3ab7a..7316e5b42422 100644 --- a/code/game/machinery/mass_driver.dm +++ b/code/game/machinery/mass_driver.dm @@ -4,8 +4,8 @@ icon = 'icons/obj/stationobjs.dmi' icon_state = "mass_driver" use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 50 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM var/power = 1 var/code = 1 var/id = 1 diff --git a/code/game/machinery/medical_kiosk.dm b/code/game/machinery/medical_kiosk.dm index d7be7fea98ee..52933a5aba74 100644 --- a/code/game/machinery/medical_kiosk.dm +++ b/code/game/machinery/medical_kiosk.dm @@ -18,6 +18,8 @@ base_icon_state = "kiosk" layer = ABOVE_MOB_LAYER density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW circuit = /obj/item/circuitboard/machine/medical_kiosk var/obj/item/scanner_wand /// Emag mode diff --git a/code/game/machinery/medipen_refiller.dm b/code/game/machinery/medipen_refiller.dm index e104257b5493..ceb0ed389c17 100644 --- a/code/game/machinery/medipen_refiller.dm +++ b/code/game/machinery/medipen_refiller.dm @@ -5,7 +5,7 @@ icon_state = "medipen_refiller" density = TRUE circuit = /obj/item/circuitboard/machine/medipen_refiller - idle_power_usage = 100 + idle_power_usage = IDLE_DRAW_LOW /// list of medipen subtypes it can refill var/list/allowed = list( /obj/item/reagent_containers/hypospray/medipen = /datum/reagent/medicine/epinephrine, diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 75498600b007..5891898ef6dc 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -33,8 +33,8 @@ DEFINE_BITFIELD(turret_flags, list( density = TRUE desc = "A covered turret that shoots at its enemies." use_power = IDLE_POWER_USE //this turret uses and requires power - idle_power_usage = 50 //when inactive, this turret takes up constant 50 Equipment power - active_power_usage = 300 //when active, this turret takes up constant 300 Equipment power + idle_power_usage = IDLE_DRAW_MINIMAL //when inactive, this turret takes up constant 50 Equipment power + active_power_usage = ACTIVE_DRAW_LOW //when active, this turret takes up constant 300 Equipment power req_access = list(ACCESS_SECURITY) /// Only people with Security access power_channel = AREA_USAGE_EQUIP //drains power from the EQUIPMENT channel max_integrity = 160 //the turret's health @@ -795,7 +795,7 @@ DEFINE_BITFIELD(turret_flags, list( max_integrity = 300 always_up = 1 use_power = ACTIVE_POWER_USE - active_power_usage = 300 + active_power_usage = ACTIVE_DRAW_MINIMAL has_cover = 0 scan_range = 9 stun_projectile = /obj/projectile/beam/disabler diff --git a/code/game/machinery/prisonlabor.dm b/code/game/machinery/prisonlabor.dm index 6fe329ed4a71..76612018d87a 100644 --- a/code/game/machinery/prisonlabor.dm +++ b/code/game/machinery/prisonlabor.dm @@ -4,8 +4,8 @@ icon = 'icons/obj/machines/prison.dmi' icon_state = "offline" use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 50 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_LOW var/obj/item/stack/license_plates/empty/current_plate var/pressing = FALSE diff --git a/code/game/machinery/quantum_pad.dm b/code/game/machinery/quantum_pad.dm index cc9f8f6d3d59..7d0455ab82f0 100644 --- a/code/game/machinery/quantum_pad.dm +++ b/code/game/machinery/quantum_pad.dm @@ -4,8 +4,8 @@ icon = 'icons/obj/telescience.dmi' icon_state = "qpad-idle" use_power = IDLE_POWER_USE - idle_power_usage = 200 - active_power_usage = 5000 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_EXTREME obj_flags = CAN_BE_HIT | UNIQUE_RENAME circuit = /obj/item/circuitboard/machine/quantumpad var/teleport_cooldown = 400 //30 seconds base due to base parts diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index c604b3eeccf6..2720443d2424 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -5,8 +5,8 @@ base_icon_state = "recharger" desc = "A charging dock for energy based weaponry." use_power = IDLE_POWER_USE - idle_power_usage = 4 - active_power_usage = 250 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_LOW circuit = /obj/item/circuitboard/machine/recharger pass_flags = PASSTABLE var/obj/item/charging = null @@ -50,11 +50,11 @@ if (new_charging) START_PROCESSING(SSmachines, src) finished_recharging = FALSE - use_power = ACTIVE_POWER_USE + set_active_power() using_power = TRUE update_appearance() else - use_power = IDLE_POWER_USE + set_idle_power() using_power = FALSE update_appearance() diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 14e253298070..cedf6c0a56ff 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -5,8 +5,8 @@ icon_state = "borgcharger0" density = FALSE use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 1000 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM req_access = list(ACCESS_ROBOTICS) state_open = TRUE circuit = /obj/item/circuitboard/machine/cyborgrecharger @@ -90,12 +90,12 @@ /obj/machinery/recharge_station/open_machine() . = ..() - use_power = IDLE_POWER_USE + set_idle_power() /obj/machinery/recharge_station/close_machine() . = ..() if(occupant) - use_power = ACTIVE_POWER_USE //It always tries to charge, even if it can't. + set_active_power() //It always tries to charge, even if it can't. add_fingerprint(occupant) /obj/machinery/recharge_station/update_icon_state() diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index b548ecf73125..af0c08162311 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -7,6 +7,8 @@ icon_state = "grinder-o0" layer = ABOVE_ALL_MOB_LAYER // Overhead density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW circuit = /obj/item/circuitboard/machine/recycler var/safety_mode = FALSE // Temporarily stops machine if it detects a mob var/icon_name = "grinder-o" diff --git a/code/game/machinery/roulette_machine.dm b/code/game/machinery/roulette_machine.dm index c9e1d108c1e5..351f1c42ae5e 100644 --- a/code/game/machinery/roulette_machine.dm +++ b/code/game/machinery/roulette_machine.dm @@ -26,8 +26,8 @@ density = TRUE use_power = IDLE_POWER_USE anchored = FALSE - idle_power_usage = 10 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL max_integrity = 500 armor = list("melee" = 45, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 10, "bio" = 30, "rad" = 30, "fire" = 30, "acid" = 30) var/static/list/numbers = list("0" = "green", "1" = "red", "3" = "red", "5" = "red", "7" = "red", "9" = "red", "12" = "red", "14" = "red", "16" = "red",\ diff --git a/code/game/machinery/scan_gate.dm b/code/game/machinery/scan_gate.dm index 672928a0b7f1..acdecc10fbb7 100644 --- a/code/game/machinery/scan_gate.dm +++ b/code/game/machinery/scan_gate.dm @@ -27,7 +27,7 @@ icon = 'icons/obj/machines/scangate.dmi' icon_state = "scangate" use_power = IDLE_POWER_USE - idle_power_usage = 50 + idle_power_usage = IDLE_DRAW_LOW circuit = /obj/item/circuitboard/machine/scanner_gate var/scanline_timer diff --git a/code/game/machinery/sheetifier.dm b/code/game/machinery/sheetifier.dm index 569bfa4b6f9e..ec9f0f5ff5a3 100644 --- a/code/game/machinery/sheetifier.dm +++ b/code/game/machinery/sheetifier.dm @@ -5,8 +5,8 @@ icon_state = "base_machine" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_LOW circuit = /obj/item/circuitboard/machine/sheetifier layer = BELOW_OBJ_LAYER var/busy_processing = FALSE diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index bc578a856300..9f2f56e2e1ce 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -219,8 +219,8 @@ req_access = list(ACCESS_TELEPORTER) flags_1 = CONDUCT_1 use_power = NO_POWER_USE - idle_power_usage = 10 - active_power_usage = 50 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_HIGH circuit = /obj/item/circuitboard/machine/shieldwallgen max_integrity = 300 var/active = FALSE diff --git a/code/game/machinery/shuttle/ship_gravity.dm b/code/game/machinery/shuttle/ship_gravity.dm index bfcf937f341a..4f63c60d7824 100644 --- a/code/game/machinery/shuttle/ship_gravity.dm +++ b/code/game/machinery/shuttle/ship_gravity.dm @@ -9,8 +9,8 @@ icon_state = "shipgrav" base_icon_state = "shipgrav" density = TRUE - idle_power_usage = 10 - active_power_usage = 5000 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_EXTREME circuit = /obj/item/circuitboard/machine/ship_gravity var/charging = FALSE var/active = FALSE diff --git a/code/game/machinery/shuttle/shuttle_heater.dm b/code/game/machinery/shuttle/shuttle_heater.dm index 261549428768..3d2455fc6834 100644 --- a/code/game/machinery/shuttle/shuttle_heater.dm +++ b/code/game/machinery/shuttle/shuttle_heater.dm @@ -19,7 +19,7 @@ icon_state = "heater_pipe" var/icon_state_closed = "heater_pipe" var/icon_state_open = "heater_pipe_open" - idle_power_usage = 50 + idle_power_usage = IDLE_DRAW_MINIMAL circuit = /obj/item/circuitboard/machine/shuttle/heater density = TRUE diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm index 0ae88638d5b3..2038612c2791 100644 --- a/code/game/machinery/slotmachine.dm +++ b/code/game/machinery/slotmachine.dm @@ -22,7 +22,7 @@ base_icon_state = "slots" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 50 + idle_power_usage = IDLE_DRAW_MINIMAL circuit = /obj/item/circuitboard/computer/slot_machine light_color = LIGHT_COLOR_BROWN unique_icon = TRUE diff --git a/code/game/machinery/stasis.dm b/code/game/machinery/stasis.dm index 37e079715dcd..2582c57da903 100644 --- a/code/game/machinery/stasis.dm +++ b/code/game/machinery/stasis.dm @@ -9,8 +9,8 @@ can_buckle = TRUE buckle_lying = 90 circuit = /obj/item/circuitboard/machine/stasis - idle_power_usage = 40 - active_power_usage = 340 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_HIGH var/stasis_enabled = TRUE var/last_stasis_sound = FALSE var/stasis_can_toggle = 0 @@ -112,12 +112,12 @@ playsound(src, 'sound/effects/spray.ogg', 5, TRUE, 2, frequency = freq) target.apply_status_effect(STATUS_EFFECT_STASIS, STASIS_MACHINE_EFFECT) target.ExtinguishMob() - use_power = ACTIVE_POWER_USE + set_active_power() /obj/machinery/stasis/proc/thaw_them(mob/living/target) target.remove_status_effect(STATUS_EFFECT_STASIS, STASIS_MACHINE_EFFECT) if(target == occupant) - use_power = IDLE_POWER_USE + set_idle_power() /obj/machinery/stasis/post_buckle_mob(mob/living/L) if(!can_be_occupant(L)) diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm index 1e402ee02e5a..9e1b5b28690b 100644 --- a/code/game/machinery/status_display.dm +++ b/code/game/machinery/status_display.dm @@ -22,7 +22,7 @@ icon_state = "frame" density = FALSE use_power = IDLE_POWER_USE - idle_power_usage = 10 + idle_power_usage = IDLE_DRAW_MINIMAL maptext_height = 26 maptext_width = 32 diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index e86d4ae9f0f9..960df9263c81 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -6,6 +6,8 @@ icon_state = "ssu_classic" base_icon_state = "ssu_classic" density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_MINIMAL max_integrity = 250 var/obj/item/clothing/suit/space/suit = null @@ -403,6 +405,7 @@ uv = TRUE locked = TRUE update_appearance() + use_power(ACTIVE_DRAW_HIGH) if(occupant) if(uv_super) mob_occupant.adjustFireLoss(rand(20, 36)) diff --git a/code/game/machinery/telecomms/machines/broadcaster.dm b/code/game/machinery/telecomms/machines/broadcaster.dm index f9cbc692e050..2a12e6bcf937 100644 --- a/code/game/machinery/telecomms/machines/broadcaster.dm +++ b/code/game/machinery/telecomms/machines/broadcaster.dm @@ -14,7 +14,7 @@ GLOBAL_VAR_INIT(message_delay, 0) // To make sure restarting the recentmessages desc = "A dish-shaped machine used to broadcast processed subspace signals." density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 25 + idle_power_usage = IDLE_DRAW_MINIMAL circuit = /obj/item/circuitboard/machine/telecomms/broadcaster /obj/machinery/telecomms/broadcaster/receive_information(datum/signal/subspace/signal, obj/machinery/telecomms/machine_from) diff --git a/code/game/machinery/telecomms/machines/bus.dm b/code/game/machinery/telecomms/machines/bus.dm index 2496ee41c874..6428456d1614 100644 --- a/code/game/machinery/telecomms/machines/bus.dm +++ b/code/game/machinery/telecomms/machines/bus.dm @@ -14,7 +14,7 @@ desc = "A mighty piece of hardware used to send massive amounts of data quickly." density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 50 + idle_power_usage = IDLE_DRAW_MINIMAL netspeed = 40 circuit = /obj/item/circuitboard/machine/telecomms/bus var/change_frequency = 0 diff --git a/code/game/machinery/telecomms/machines/hub.dm b/code/game/machinery/telecomms/machines/hub.dm index dedf7c7f3a77..a01225b4f4fd 100644 --- a/code/game/machinery/telecomms/machines/hub.dm +++ b/code/game/machinery/telecomms/machines/hub.dm @@ -14,7 +14,7 @@ desc = "A mighty piece of hardware used to send/receive massive amounts of data." density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 80 + idle_power_usage = IDLE_DRAW_MINIMAL long_range_link = TRUE netspeed = 40 circuit = /obj/item/circuitboard/machine/telecomms/hub diff --git a/code/game/machinery/telecomms/machines/message_server.dm b/code/game/machinery/telecomms/machines/message_server.dm index d11067c290fd..d9f927a7c355 100644 --- a/code/game/machinery/telecomms/machines/message_server.dm +++ b/code/game/machinery/telecomms/machines/message_server.dm @@ -12,8 +12,8 @@ name = "Blackbox Recorder" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 70) var/obj/item/stored @@ -80,8 +80,8 @@ desc = "A machine that processes and routes PDA and request console messages." density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL circuit = /obj/item/circuitboard/machine/telecomms/message_server var/list/datum/data_pda_msg/pda_msgs = list() diff --git a/code/game/machinery/telecomms/machines/processor.dm b/code/game/machinery/telecomms/machines/processor.dm index 86bc02438d95..6c13ee65d510 100644 --- a/code/game/machinery/telecomms/machines/processor.dm +++ b/code/game/machinery/telecomms/machines/processor.dm @@ -12,7 +12,7 @@ desc = "This machine is used to process large quantities of information." density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 30 + idle_power_usage = IDLE_DRAW_MINIMAL circuit = /obj/item/circuitboard/machine/telecomms/processor var/process_mode = 1 // 1 = Uncompress Signals, 0 = Compress Signals diff --git a/code/game/machinery/telecomms/machines/receiver.dm b/code/game/machinery/telecomms/machines/receiver.dm index 79b989648d55..33b0bc7028ec 100644 --- a/code/game/machinery/telecomms/machines/receiver.dm +++ b/code/game/machinery/telecomms/machines/receiver.dm @@ -12,7 +12,7 @@ desc = "This machine has a dish-like shape and green lights. It is designed to detect and process subspace radio activity." density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 30 + idle_power_usage = IDLE_DRAW_MINIMAL circuit = /obj/item/circuitboard/machine/telecomms/receiver /obj/machinery/telecomms/receiver/receive_signal(datum/signal/subspace/signal) diff --git a/code/game/machinery/telecomms/machines/relay.dm b/code/game/machinery/telecomms/machines/relay.dm index ffaeda72e26d..763c42dbbf9c 100644 --- a/code/game/machinery/telecomms/machines/relay.dm +++ b/code/game/machinery/telecomms/machines/relay.dm @@ -12,7 +12,7 @@ desc = "A mighty piece of hardware used to send massive amounts of data far away." density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 30 + idle_power_usage = IDLE_DRAW_MINIMAL netspeed = 5 long_range_link = 1 circuit = /obj/item/circuitboard/machine/telecomms/relay diff --git a/code/game/machinery/telecomms/machines/server.dm b/code/game/machinery/telecomms/machines/server.dm index 664d45b5b1c1..5607b6bbec8c 100644 --- a/code/game/machinery/telecomms/machines/server.dm +++ b/code/game/machinery/telecomms/machines/server.dm @@ -11,7 +11,7 @@ desc = "A machine used to store data and network statistics." density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 15 + idle_power_usage = IDLE_DRAW_MINIMAL circuit = /obj/item/circuitboard/machine/telecomms/server var/list/log_entries = list() var/totaltraffic = 0 // gigabytes (if > 1024, divide by 1024 -> terrabytes) diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 6e0551b25d41..1a342f0554cd 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -9,8 +9,8 @@ icon_state = "tele0" base_icon_state = "tele" use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 2000 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_HIGH circuit = /obj/item/circuitboard/machine/teleporter_hub var/accuracy = 0 var/obj/machinery/teleport/station/power_station @@ -106,8 +106,8 @@ icon_state = "controller" base_icon_state = "controller" use_power = IDLE_POWER_USE - idle_power_usage = 10 - active_power_usage = 2000 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_HIGH circuit = /obj/item/circuitboard/machine/teleporter_station var/engaged = FALSE var/obj/machinery/computer/teleporter/teleporter_console diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 6814f0cc2e7f..83a2c4861c90 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -5,8 +5,8 @@ desc = "Nothing is being built." density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 20 - active_power_usage = 5000 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_HIGH req_access = list(ACCESS_ROBOTICS) circuit = /obj/item/circuitboard/machine/mechfab var/time_coeff = 1 @@ -196,10 +196,10 @@ rmat.silo_log(src, "built", -1, "[D.name]", res_coef) add_overlay("fab-active") - use_power = ACTIVE_POWER_USE + set_active_power() updateUsrDialog() sleep(get_construction_time_w_coeff(D)) - use_power = IDLE_POWER_USE + set_idle_power() cut_overlay("fab-active") desc = initial(desc) diff --git a/code/modules/NTNet/relays.dm b/code/modules/NTNet/relays.dm index 9a1b01403eda..f161eced8060 100644 --- a/code/modules/NTNet/relays.dm +++ b/code/modules/NTNet/relays.dm @@ -3,8 +3,8 @@ name = "NTNet Quantum Relay" desc = "A very complex router and transmitter capable of connecting electronic devices together. Looks fragile." use_power = ACTIVE_POWER_USE - active_power_usage = 10000 //10kW, apropriate for machine that keeps massive cross-Zlevel wireless network operational. Used to be 20 but that actually drained the smes one round - idle_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_EXTREME //Since NTnet is barely used, this has been lowered by half. icon = 'icons/obj/machines/telecomms.dmi' icon_state = "bus" density = TRUE @@ -64,9 +64,9 @@ /obj/machinery/ntnet_relay/process() if(is_operational) - use_power = ACTIVE_POWER_USE + set_active_power() else - use_power = IDLE_POWER_USE + set_idle_power() update_appearance() diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index bef2f277f7e1..895bfdc96cf4 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -65,8 +65,8 @@ icon = 'icons/obj/monitors.dmi' icon_state = "alarm" use_power = IDLE_POWER_USE - idle_power_usage = 4 - active_power_usage = 1200 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM power_channel = AREA_USAGE_ENVIRON //req_access = list(ACCESS_ATMOSPHERICS) max_integrity = 250 @@ -753,14 +753,14 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/airalarm, 27) visible_message("The air alarm makes a quiet click as it stops heating the area") playsound(src, 'sound/machines/terminal_off.ogg', 40) heating_current_mode = "Idle" - use_power = IDLE_POWER_USE + set_idle_power() return if(wanted_mode == "Heat" & heating_current_mode == "Idle") visible_message("The air alarm makes a quiet click as it starts heating the area") playsound(src, 'sound/machines/terminal_on.ogg', 40) heating_current_mode = "Heat" - use_power = ACTIVE_POWER_USE + set_active_power() if(heating_current_mode == "Heat") var/temperature = environment.return_temperature() diff --git a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm index 8579d70a1165..8cd12ddf27cf 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/pump.dm @@ -18,6 +18,10 @@ can_unwrench = TRUE shift_underlay_only = FALSE + use_power = IDLE_POWER_USE + idle_power_usage = 0 + active_power_usage = ACTIVE_DRAW_MINIMAL + var/target_pressure = ONE_ATMOSPHERE var/frequency = 0 @@ -30,6 +34,10 @@ /obj/machinery/atmospherics/components/binary/pump/CtrlClick(mob/user) if(can_interact(user)) on = !on + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS) update_appearance() return ..() @@ -110,6 +118,10 @@ switch(action) if("power") on = !on + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS) . = TRUE if("pressure") diff --git a/code/modules/atmospherics/machinery/components/binary_devices/valve.dm b/code/modules/atmospherics/machinery/components/binary_devices/valve.dm index 020570f34785..24ef0997406d 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/valve.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/valve.dm @@ -73,6 +73,9 @@ It's like a regular ol' straight pipe, but you can turn it on and off. return ..() +/obj/machinery/atmospherics/components/binary/valve/digital/toggle() + use_power(ACTIVE_DRAW_MINIMAL) + . = ..() /obj/machinery/atmospherics/components/binary/valve/layer2 piping_layer = 2 diff --git a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm index 03b41df05e32..c32a750848da 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/volume_pump.dm @@ -18,6 +18,10 @@ can_unwrench = TRUE shift_underlay_only = FALSE + use_power = IDLE_POWER_USE + idle_power_usage = 0 + active_power_usage = ACTIVE_DRAW_MINIMAL + var/transfer_rate = MAX_TRANSFER_RATE var/overclocked = FALSE @@ -31,6 +35,10 @@ /obj/machinery/atmospherics/components/binary/volume_pump/CtrlClick(mob/user) if(can_interact(user)) on = !on + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS) update_appearance() return ..() @@ -130,6 +138,10 @@ switch(action) if("power") on = !on + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS) . = TRUE if("rate") diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm index 404ecbf46eb2..d196bca1c3b3 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/filter.dm @@ -5,6 +5,10 @@ name = "gas filter" desc = "Very useful for filtering gasses." + use_power = IDLE_POWER_USE + idle_power_usage = 0 + active_power_usage = ACTIVE_DRAW_MINIMAL + can_unwrench = TRUE var/transfer_rate = MAX_TRANSFER_RATE var/filter_type = null @@ -17,6 +21,10 @@ /obj/machinery/atmospherics/components/trinary/filter/CtrlClick(mob/user) if(can_interact(user)) on = !on + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS) update_appearance() return ..() @@ -114,6 +122,10 @@ switch(action) if("power") on = !on + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS) . = TRUE if("rate") diff --git a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm index c1ce88286b4c..9ea52bd847be 100644 --- a/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm +++ b/code/modules/atmospherics/machinery/components/trinary_devices/mixer.dm @@ -5,6 +5,10 @@ name = "gas mixer" desc = "Very useful for mixing gasses." + use_power = IDLE_POWER_USE + idle_power_usage = 0 + active_power_usage = ACTIVE_DRAW_MINIMAL + can_unwrench = TRUE var/target_pressure = ONE_ATMOSPHERE @@ -19,6 +23,10 @@ /obj/machinery/atmospherics/components/trinary/mixer/CtrlClick(mob/user) if(can_interact(user)) on = !on + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS) update_appearance() return ..() @@ -137,6 +145,10 @@ switch(action) if("power") on = !on + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS) . = TRUE if("pressure") diff --git a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm index 1b6df20c721e..bcb46dedf147 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/thermomachine.dm @@ -6,6 +6,7 @@ desc = "Heats or cools gas in connected pipes." density = TRUE + idle_power_usage = IDLE_DRAW_LOW max_integrity = 300 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 30) layer = OBJ_LAYER @@ -83,7 +84,7 @@ var/temperature_delta= abs(old_temperature - air_contents.return_temperature()) if(temperature_delta > 1) - active_power_usage = (heat_capacity * temperature_delta) / 10 + idle_power_usage + active_power_usage = (heat_capacity * temperature_delta) / 5 + idle_power_usage update_parents() else active_power_usage = idle_power_usage @@ -152,7 +153,10 @@ switch(action) if("power") on = !on - use_power = on ? ACTIVE_POWER_USE : IDLE_POWER_USE + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS) . = TRUE if("target") @@ -182,6 +186,10 @@ if(!istype(user) || !user.canUseTopic(src, BE_CLOSE)) return on = !on + if(on) + set_active_power() + else + set_idle_power() investigate_log("was turned [on ? "on" : "off"] by [key_name(user)]", INVESTIGATE_ATMOS) update_appearance() investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", INVESTIGATE_ATMOS) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm index c55b8da80436..dc8b278959f6 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm @@ -48,8 +48,8 @@ radio_connection = null adjacent_turfs.Cut() return ..() - -/obj/machinery/atmospherics/components/unary/vent_scrubber/auto_use_power() +/* +/obj/machinery/atmospherics/components/unary/vent_scrubber/auto_use_power() //auto_use_power no longer called if(!on || welded || !is_operational || !powered(power_channel)) return FALSE @@ -64,7 +64,7 @@ amount += amount * (adjacent_turfs.len * (adjacent_turfs.len / 2)) use_power(amount, power_channel) return TRUE - +*/ /obj/machinery/atmospherics/components/unary/vent_scrubber/update_icon_nopipes() cut_overlays() if(showpipe) @@ -138,13 +138,20 @@ ..() if(welded || !on || !is_operational) + if(use_static_power != NO_POWER_USE) + set_no_power() return FALSE if(!nodes[1]) return FALSE scrub(loc) if(widenet) + if(use_static_power != ACTIVE_POWER_USE) + set_active_power() for(var/turf/tile in adjacent_turfs) scrub(tile) + else + if(use_static_power != IDLE_POWER_USE) + set_idle_power() return TRUE /obj/machinery/atmospherics/components/unary/vent_scrubber/proc/scrub(turf/tile) diff --git a/code/modules/atmospherics/machinery/other/meter.dm b/code/modules/atmospherics/machinery/other/meter.dm index 811979dd4c39..07aca0757568 100644 --- a/code/modules/atmospherics/machinery/other/meter.dm +++ b/code/modules/atmospherics/machinery/other/meter.dm @@ -6,8 +6,8 @@ layer = GAS_PUMP_LAYER power_channel = AREA_USAGE_ENVIRON use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 4 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = IDLE_DRAW_MINIMAL max_integrity = 150 armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 100, "bomb" = 0, "bio" = 100, "rad" = 100, "fire" = 40, "acid" = 0) var/frequency = 0 diff --git a/code/modules/atmospherics/machinery/other/miner.dm b/code/modules/atmospherics/machinery/other/miner.dm index 37045635cf1a..ca85e9cc5569 100644 --- a/code/modules/atmospherics/machinery/other/miner.dm +++ b/code/modules/atmospherics/machinery/other/miner.dm @@ -26,8 +26,8 @@ var/power_draw_dynamic_kpa_coeff = 0.5 var/broken = FALSE var/broken_message = "ERROR" - idle_power_usage = 150 - active_power_usage = 2000 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_HIGH /obj/machinery/atmospherics/miner/Initialize() . = ..() diff --git a/code/modules/atmospherics/machinery/portable/scrubber.dm b/code/modules/atmospherics/machinery/portable/scrubber.dm index b608d5849e38..8e71222ab4d4 100644 --- a/code/modules/atmospherics/machinery/portable/scrubber.dm +++ b/code/modules/atmospherics/machinery/portable/scrubber.dm @@ -113,8 +113,8 @@ name = "huge air scrubber" icon_state = "scrubber:0" anchored = TRUE - active_power_usage = 500 - idle_power_usage = 10 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM overpressure_m = 200 volume_rate = 1500 @@ -137,8 +137,10 @@ if((!anchored && !movable) || !is_operational) on = FALSE update_appearance() - use_power = on ? ACTIVE_POWER_USE : IDLE_POWER_USE - if(!on) + if(on) + set_active_power() + else + set_idle_power() return ..() diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index a643be115aab..51ab76479657 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -157,8 +157,8 @@ GLOBAL_LIST_EMPTY(gateway_destinations) density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 100 - active_power_usage = 5000 + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_EXTREME var/calibrated = TRUE /// Type of instanced gateway destination, needs to be subtype of /datum/gateway_destination/gateway @@ -198,7 +198,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations) target = null dest.deactivate(src) QDEL_NULL(portal) - use_power = IDLE_POWER_USE + set_idle_power() update_appearance() portal_visuals.reset_visuals() @@ -221,7 +221,7 @@ GLOBAL_LIST_EMPTY(gateway_destinations) target.activate(destination) portal_visuals.setup_visuals(target) generate_bumper() - use_power = ACTIVE_POWER_USE + set_active_power() update_appearance() /obj/machinery/gateway/proc/Transfer(atom/movable/AM) diff --git a/code/modules/cargo/blackmarket/blackmarket_telepad.dm b/code/modules/cargo/blackmarket/blackmarket_telepad.dm index 0dea6c59b819..14211cad6878 100644 --- a/code/modules/cargo/blackmarket/blackmarket_telepad.dm +++ b/code/modules/cargo/blackmarket/blackmarket_telepad.dm @@ -16,7 +16,7 @@ circuit = /obj/item/circuitboard/machine/ltsrbt density = TRUE - idle_power_usage = 200 + idle_power_usage = IDLE_DRAW_LOW /// Divider for power_usage_per_teleport. var/power_efficiency = 1 diff --git a/code/modules/fishing/fishing_portal_machine.dm b/code/modules/fishing/fishing_portal_machine.dm index 0cbeae7c3dac..a070e7b7f797 100644 --- a/code/modules/fishing/fishing_portal_machine.dm +++ b/code/modules/fishing/fishing_portal_machine.dm @@ -6,7 +6,7 @@ icon_state = "portal_off" idle_power_usage = 0 - active_power_usage = 2000 + active_power_usage = ACTIVE_DRAW_HIGH anchored = FALSE density = TRUE @@ -35,12 +35,12 @@ /obj/machinery/fishing_portal_generator/proc/activate() active = AddComponent(/datum/component/fishing_spot, fishing_source) - use_power = ACTIVE_POWER_USE + set_active_power() update_appearance() /obj/machinery/fishing_portal_generator/proc/deactivate() QDEL_NULL(active) - use_power = IDLE_POWER_USE + set_idle_power() update_appearance() /obj/machinery/fishing_portal_generator/on_set_is_operational(old_value) diff --git a/code/modules/food_and_drinks/kitchen_machinery/coffeemaker.dm b/code/modules/food_and_drinks/kitchen_machinery/coffeemaker.dm index 7b98be6a16c4..bebf3dda83a4 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/coffeemaker.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/coffeemaker.dm @@ -6,6 +6,8 @@ icon = 'icons/obj/machines/coffeemaker.dmi' icon_state = "coffeemaker_nopot_nocart" base_icon_state = "coffeemaker" + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL resistance_flags = FIRE_PROOF | ACID_PROOF circuit = /obj/item/circuitboard/machine/coffeemaker var/obj/item/reagent_containers/food/drinks/bottle/coffeepot/coffeepot = null @@ -375,11 +377,12 @@ if(!silent) playsound(src, 'sound/machines/coffeemaker_brew.ogg', 20, vary = TRUE) toggle_steam() - use_power(active_power_usage * time * 0.1) // .1 needed here to convert time (in deciseconds) to seconds such that watts * seconds = joules + set_active_power() addtimer(CALLBACK(src, PROC_REF(stop_operating)), time / speed) /obj/machinery/coffeemaker/proc/stop_operating() brewing = FALSE + set_idle_power() toggle_steam() /obj/machinery/coffeemaker/proc/brew() diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm index 4fa5354339c5..8eccd04c8404 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -25,7 +25,7 @@ icon_state = "fryer_off" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 5 + idle_power_usage = IDLE_DRAW_LOW layer = BELOW_OBJ_LAYER var/obj/item/reagent_containers/food/snacks/deepfryholder/frying //What's being fried RIGHT NOW? var/cook_time = 0 diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index fad3c3bc963f..7be027c012f4 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -5,8 +5,8 @@ icon_state = "grinder" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 500 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM circuit = /obj/item/circuitboard/machine/gibber var/operating = FALSE //Is it on? diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 4a739d2ab7fc..678016182428 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -8,8 +8,8 @@ layer = BELOW_OBJ_LAYER density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM circuit = /obj/item/circuitboard/machine/microwave pass_flags = PASSTABLE light_color = LIGHT_COLOR_YELLOW @@ -275,6 +275,7 @@ /obj/machinery/microwave/proc/start() wzhzhzh() + set_active_power() loop(MICROWAVE_NORMAL, 10) /obj/machinery/microwave/proc/start_can_fail() @@ -303,11 +304,11 @@ pre_success() return time-- - use_power(500) addtimer(CALLBACK(src, PROC_REF(loop), type, time, wait), wait) /obj/machinery/microwave/proc/loop_finish() operating = FALSE + set_idle_power() var/metal = 0 for(var/obj/item/O in ingredients) @@ -330,6 +331,7 @@ /obj/machinery/microwave/proc/pre_fail() broken = 2 operating = FALSE + set_idle_power() spark() after_finish_loop() @@ -338,6 +340,7 @@ /obj/machinery/microwave/proc/muck_finish() visible_message("\The [src] gets covered in muck!") + set_idle_power() dirty = 100 dirty_anim_playing = FALSE diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm index 005ffa7632ba..79382343e1ae 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm @@ -8,8 +8,8 @@ GLOBAL_LIST_EMPTY(monkey_recyclers) layer = BELOW_OBJ_LAYER density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 50 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM circuit = /obj/item/circuitboard/machine/monkey_recycler var/stored_matter = 0 var/cube_production = 0.2 diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm index ba26a265f8ee..bc17a9fd22af 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm @@ -7,8 +7,8 @@ layer = BELOW_OBJ_LAYER density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 50 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM circuit = /obj/item/circuitboard/machine/processor var/broken = FALSE var/processing = FALSE diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index ed1347fb5124..d2e919f00882 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -9,8 +9,8 @@ layer = BELOW_OBJ_LAYER density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL circuit = /obj/item/circuitboard/machine/smartfridge var/max_n_of_items = 1500 @@ -245,8 +245,8 @@ icon = 'icons/obj/hydroponics/equipment.dmi' icon_state = "drying_rack" use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 200 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL visible_contents = FALSE var/drying = FALSE @@ -326,10 +326,10 @@ /obj/machinery/smartfridge/drying_rack/proc/toggle_drying(forceoff) if(drying || forceoff) drying = FALSE - use_power = IDLE_POWER_USE + set_idle_power() else drying = TRUE - use_power = ACTIVE_POWER_USE + set_active_power() update_appearance() /obj/machinery/smartfridge/drying_rack/proc/rack_dry() diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm index f1a5862649a4..d56fd4f9c32c 100644 --- a/code/modules/holodeck/items.dm +++ b/code/modules/holodeck/items.dm @@ -152,8 +152,8 @@ var/eventstarted = FALSE use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 6 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL power_channel = AREA_USAGE_ENVIRON /obj/machinery/readybutton/attack_ai(mob/user as mob) diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index e9e40fd167b8..c3bcc09940d0 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -5,7 +5,7 @@ icon_state = "biogen-empty" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 40 + idle_power_usage = IDLE_DRAW_LOW circuit = /obj/item/circuitboard/machine/biogenerator var/processing = FALSE var/obj/item/reagent_containers/glass/beaker = null diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index a5e66f6df4ef..66e4904e64d4 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -6,7 +6,9 @@ pixel_z = 1 obj_flags = CAN_BE_HIT | UNIQUE_RENAME circuit = /obj/item/circuitboard/machine/hydroponics - idle_power_usage = 0 + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_HIGH var/waterlevel = 100 //The amount of water in the tray (max 100) var/maxwater = 100 //The maximum amount of water in the tray var/nutridrain = 1 // How many units of nutrient will be drained in the tray @@ -114,7 +116,7 @@ if(!powered() && self_sustaining) visible_message("[name]'s auto-grow functionality shuts off!") - idle_power_usage = 0 + set_idle_power() self_sustaining = FALSE update_appearance() @@ -671,7 +673,10 @@ if(!anchored) return self_sustaining = !self_sustaining - idle_power_usage = self_sustaining ? 1250 : 0 + if(self_sustaining) + set_active_power() + else + set_idle_power() to_chat(user, "You [self_sustaining ? "activate" : "deactivated"] [src]'s autogrow function[self_sustaining ? ", maintaining the tray's health while using high amounts of power" : ""].") update_appearance() @@ -702,7 +707,7 @@ desc = initial(desc) TRAY_NAME_UPDATE if(self_sustaining) //No reason to pay for an empty tray. - idle_power_usage = 0 + set_idle_power() self_sustaining = FALSE update_appearance() diff --git a/code/modules/mining/machine_bluespaceminer.dm b/code/modules/mining/machine_bluespaceminer.dm index feffb562a7e0..f44775d20c20 100644 --- a/code/modules/mining/machine_bluespaceminer.dm +++ b/code/modules/mining/machine_bluespaceminer.dm @@ -7,7 +7,7 @@ circuit = /obj/item/circuitboard/machine/bluespace_miner layer = BELOW_OBJ_LAYER use_power = NO_POWER_USE - idle_power_usage = 50000 + idle_power_usage = ACTIVE_DRAW_EXTREME * 10 var/powered = FALSE var/active = FALSE diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index bbc84ec7ee68..74d35e830a7e 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -3,6 +3,7 @@ /**********************Mineral processing unit console**************************/ /obj/machinery/mineral + idle_power_usage = IDLE_DRAW_MINIMAL processing_flags = START_PROCESSING_MANUALLY subsystem_type = /datum/controller/subsystem/processing/fastprocess /// The current direction of `input_turf`, in relation to the machine. diff --git a/code/modules/modular_computers/computers/machinery/modular_console.dm b/code/modules/modular_computers/computers/machinery/modular_console.dm index 6213cba441a6..a1af42ca3169 100644 --- a/code/modules/modular_computers/computers/machinery/modular_console.dm +++ b/code/modules/modular_computers/computers/machinery/modular_console.dm @@ -9,8 +9,8 @@ screen_icon_state_menu = "menu" hardware_flag = PROGRAM_CONSOLE density = TRUE - base_idle_power_usage = 100 - base_active_power_usage = 500 + base_idle_power_usage = IDLE_DRAW_MINIMAL + base_active_power_usage = ACTIVE_DRAW_LOW max_hardware_size = 4 steel_sheet_cost = 10 light_strength = 2 diff --git a/code/modules/overmap/missions/research_mission.dm b/code/modules/overmap/missions/research_mission.dm index a84b07b6529a..9481556d33be 100644 --- a/code/modules/overmap/missions/research_mission.dm +++ b/code/modules/overmap/missions/research_mission.dm @@ -106,7 +106,7 @@ density = FALSE anchored = FALSE use_power = NO_POWER_USE - idle_power_usage = 400 + idle_power_usage = IDLE_DRAW_MEDIUM processing_flags = START_PROCESSING_MANUALLY /obj/machinery/mission_scanner/wrench_act(mob/living/user, obj/item/I) @@ -122,7 +122,7 @@ if(anchorvalue) set_is_operational(TRUE) START_PROCESSING(SSmachines, src) - use_power = IDLE_POWER_USE + set_idle_power() else set_is_operational(FALSE) STOP_PROCESSING(SSmachines, src) diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index f85bd0bc77f9..40b0771981e4 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -24,8 +24,8 @@ anchored = TRUE density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 30 - active_power_usage = 200 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_LOW power_channel = AREA_USAGE_EQUIP max_integrity = 300 integrity_failure = 0.33 diff --git a/code/modules/plumbing/plumbers/_plumb_machinery.dm b/code/modules/plumbing/plumbers/_plumb_machinery.dm index 87096bad7e56..f4448c4a53ac 100644 --- a/code/modules/plumbing/plumbers/_plumb_machinery.dm +++ b/code/modules/plumbing/plumbers/_plumb_machinery.dm @@ -8,7 +8,7 @@ icon = 'icons/obj/plumbing/plumbers.dmi' icon_state = "pump" density = TRUE - active_power_usage = 30 + active_power_usage = ACTIVE_DRAW_MINIMAL use_power = ACTIVE_POWER_USE resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF ///Plumbing machinery is always gonna need reagents, so we might aswell put it here diff --git a/code/modules/plumbing/plumbers/pumps.dm b/code/modules/plumbing/plumbers/pumps.dm index 331e3fc24d89..294b50eff748 100644 --- a/code/modules/plumbing/plumbers/pumps.dm +++ b/code/modules/plumbing/plumbers/pumps.dm @@ -7,8 +7,8 @@ base_icon_state = "pump" anchored = FALSE density = TRUE - idle_power_usage = 10 - active_power_usage = 1000 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM rcd_cost = 30 rcd_delay = 40 diff --git a/code/modules/power/floodlight.dm b/code/modules/power/floodlight.dm index e112b38f2fd7..0fe0b51c6193 100644 --- a/code/modules/power/floodlight.dm +++ b/code/modules/power/floodlight.dm @@ -61,8 +61,8 @@ density = TRUE max_integrity = 100 integrity_failure = 0.8 - idle_power_usage = 100 - active_power_usage = 1000 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM anchored = FALSE light_power = 1.75 var/list/light_setting_list = list(0, 5, 10, 15) diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index a6020d0fae11..3ed7e262a53d 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -115,7 +115,7 @@ /obj/machinery/gravity_generator/main icon_state = "on_8" idle_power_usage = 0 - active_power_usage = 3000 + active_power_usage = ACTIVE_DRAW_EXTREME power_channel = AREA_USAGE_ENVIRON sprite_number = 8 use_power = IDLE_POWER_USE @@ -286,7 +286,10 @@ /obj/machinery/gravity_generator/main/proc/set_state(new_state) charging_state = POWER_IDLE on = new_state - use_power = on ? ACTIVE_POWER_USE : IDLE_POWER_USE + if(on) + set_active_power() + else + set_idle_power() // Sound the alert if gravity was just enabled or disabled. var/alert = FALSE if(SSticker.IsRoundInProgress()) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 5b0655ddd42d..b4748c674fc6 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -217,9 +217,9 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/light_construct/small, 28) desc = "A lighting fixture." layer = WALL_OBJ_LAYER max_integrity = 100 - use_power = ACTIVE_POWER_USE - idle_power_usage = 2 - active_power_usage = 20 + use_power = IDLE_POWER_USE + idle_power_usage = 0 + active_power_usage = 0 power_channel = AREA_USAGE_LIGHT //Lights are calc'd via area so they dont need to be in the machine list var/on = FALSE // 1 if on, 0 if off var/on_gs = FALSE @@ -360,6 +360,8 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/light/small/built, 28) addtimer(CALLBACK(src, PROC_REF(update), 0), 1) /obj/machinery/light/Destroy() + if(on) + removeStaticPower(static_power_used, AREA_USAGE_STATIC_LIGHT) var/area/A = get_area(src) if(A) on = FALSE @@ -420,22 +422,18 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/light/small/built, 28) if(trigger) burn_out() else - use_power = ACTIVE_POWER_USE set_light(BR, PO, CO) else if(has_emergency_power(LIGHT_EMERGENCY_POWER_USE) && !turned_off()) - use_power = IDLE_POWER_USE emergency_mode = TRUE START_PROCESSING(SSmachines, src) else - use_power = IDLE_POWER_USE set_light(0) update_appearance() - active_power_usage = (brightness * 10) if(on != on_gs) on_gs = on if(on) - static_power_used = brightness * 20 //20W per unit luminosity + static_power_used = brightness * LIGHT_DRAW //defined in power defines addStaticPower(static_power_used, AREA_USAGE_STATIC_LIGHT) else removeStaticPower(static_power_used, AREA_USAGE_STATIC_LIGHT) diff --git a/code/modules/power/monitor.dm b/code/modules/power/monitor.dm index b1c2a95a938f..debdba4946bf 100644 --- a/code/modules/power/monitor.dm +++ b/code/modules/power/monitor.dm @@ -7,8 +7,8 @@ icon_keyboard = "power_key" light_color = LIGHT_COLOR_YELLOW use_power = ACTIVE_POWER_USE - idle_power_usage = 20 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL circuit = /obj/item/circuitboard/computer/powermonitor tgui_id = "PowerMonitor" @@ -49,10 +49,12 @@ /obj/machinery/computer/monitor/process() if(!get_powernet()) - use_power = IDLE_POWER_USE + if(use_static_power != IDLE_POWER_USE) + set_idle_power() search() else - use_power = ACTIVE_POWER_USE + if(use_static_power != ACTIVE_POWER_USE) + set_active_power() record() /obj/machinery/computer/monitor/proc/search() //keep in sync with /datum/computer_file/program/power_monitor's version diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 3cf5f5766097..a386a739622d 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -19,6 +19,7 @@ /obj/machinery/power/Destroy() disconnect_from_network() + set_no_power() return ..() /////////////////////////////// @@ -96,14 +97,47 @@ chan = power_channel A.use_power(amount, chan) -/obj/machinery/proc/addStaticPower(value, powerchannel) - var/area/A = get_area(src) +/obj/machinery/proc/addStaticPower(value, powerchannel, area/A) if(!A) - return + if(get_area(src)) + A = get_area(src) + else + return A.addStaticPower(value, powerchannel) -/obj/machinery/proc/removeStaticPower(value, powerchannel) - addStaticPower(-value, powerchannel) +/obj/machinery/proc/removeStaticPower(value, powerchannel, area/A) + addStaticPower(-value, powerchannel, A) + +/obj/machinery/proc/set_idle_power(area/A) + set_no_power(A) + if(use_power == NO_POWER_USE) + return + use_static_power = IDLE_POWER_USE + addStaticPower(idle_power_usage, power_channel + 3, A) + +/obj/machinery/proc/set_active_power(area/A) + set_no_power(A) + if(use_power == NO_POWER_USE) + return + use_static_power = ACTIVE_POWER_USE + addStaticPower(active_power_usage, power_channel + 3, A) + +/obj/machinery/proc/set_no_power(area/A) + switch(use_static_power) + if(IDLE_POWER_USE) + removeStaticPower(idle_power_usage, power_channel + 3, A) + if(ACTIVE_POWER_USE) + removeStaticPower(active_power_usage, power_channel + 3, A) + use_static_power = NO_POWER_USE + +/obj/machinery/proc/set_static_power(area/A)//used to set the actual draw to the value of use_static_power + switch(use_power) + if(NO_POWER_USE) + set_no_power(A) + if(IDLE_POWER_USE) + set_idle_power(A) + if(ACTIVE_POWER_USE) + set_active_power(A) /** * Called whenever the power settings of the containing area change @@ -112,13 +146,15 @@ * * Returns TRUE if the NOPOWER flag was toggled */ -/obj/machinery/proc/power_change() +/obj/machinery/proc/power_change(area/A) SIGNAL_HANDLER SHOULD_CALL_PARENT(1) + set_no_power(A) if(machine_stat & BROKEN) return if(powered(power_channel)) + set_static_power(A) if(machine_stat & NOPOWER) SEND_SIGNAL(src, COMSIG_MACHINERY_POWER_RESTORED) . = TRUE diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index d17e12264706..2dcaa224a71e 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -11,8 +11,8 @@ circuit = /obj/item/circuitboard/machine/emitter use_power = NO_POWER_USE - idle_power_usage = 10 - active_power_usage = 300 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_LOW var/icon_state_on = "emitter_+a" var/icon_state_underpowered = "emitter_+u" @@ -67,7 +67,7 @@ var/max_firedelay = 120 var/firedelay = 120 var/min_firedelay = 24 - var/power_usage = 350 + var/power_usage = ACTIVE_DRAW_LOW for(var/obj/item/stock_parts/micro_laser/L in component_parts) max_firedelay -= 20 * L.rating min_firedelay -= 4 * L.rating diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm index 7bc3fa552ad3..ddcaf026a40e 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_control.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm @@ -6,8 +6,8 @@ anchored = FALSE density = TRUE use_power = NO_POWER_USE - idle_power_usage = 500 - active_power_usage = 10000 + idle_power_usage = IDLE_DRAW_MEDIUM + active_power_usage = ACTIVE_DRAW_EXTREME * 2 dir = NORTH mouse_opacity = MOUSE_OPACITY_OPAQUE var/strength_upper_limit = 2 @@ -53,7 +53,7 @@ connected_parts.Cut() return if(!part_scan()) - use_power = IDLE_POWER_USE + set_idle_power() active = FALSE connected_parts.Cut() @@ -106,7 +106,7 @@ active = FALSE use_power = NO_POWER_USE else if(!machine_stat && construction_state == PA_CONSTRUCTION_COMPLETE) - use_power = IDLE_POWER_USE + set_idle_power() /obj/machinery/particle_accelerator/control_box/process() if(active) @@ -175,14 +175,14 @@ message_admins("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? ADMIN_LOOKUPFLW(usr) : "outside forces"] in [ADMIN_VERBOSEJMP(src)]") log_game("PA Control Computer turned [active ?"ON":"OFF"] by [usr ? "[key_name(usr)]" : "outside forces"] at [AREACOORD(src)]") if(active) - use_power = ACTIVE_POWER_USE + set_active_power() for(var/CP in connected_parts) var/obj/structure/particle_accelerator/part = CP part.strength = strength part.powered = TRUE part.update_appearance() else - use_power = IDLE_POWER_USE + set_idle_power() for(var/CP in connected_parts) var/obj/structure/particle_accelerator/part = CP part.strength = null diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index 8ca409051d6c..d25fc732abe7 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -324,7 +324,7 @@ icon_state = "computer" density = TRUE use_power = IDLE_POWER_USE - idle_power_usage = 250 + idle_power_usage = IDLE_DRAW_LOW max_integrity = 200 integrity_failure = 0.5 var/icon_screen = "solar" diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 290aec1f6c54..037256db302f 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -19,7 +19,7 @@ icon_state = "dispenser" base_icon_state = "dispenser" use_power = IDLE_POWER_USE - idle_power_usage = 40 + idle_power_usage = IDLE_DRAW_MINIMAL interaction_flags_machine = INTERACT_MACHINE_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OFFLINE resistance_flags = FIRE_PROOF | ACID_PROOF circuit = /obj/item/circuitboard/machine/chem_dispenser diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm index e8892390e189..88e7973dd29c 100644 --- a/code/modules/reagents/chemistry/machinery/chem_heater.dm +++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm @@ -5,7 +5,7 @@ icon_state = "mixer0b" base_icon_state = "mixer" use_power = IDLE_POWER_USE - idle_power_usage = 40 + idle_power_usage = IDLE_DRAW_MINIMAL resistance_flags = FIRE_PROOF | ACID_PROOF circuit = /obj/item/circuitboard/machine/chem_heater diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index e53a7f20ae16..c9791666b54f 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -7,7 +7,7 @@ icon_state = "mixer0" base_icon_state = "mixer" use_power = IDLE_POWER_USE - idle_power_usage = 20 + idle_power_usage = IDLE_DRAW_MINIMAL resistance_flags = FIRE_PROOF | ACID_PROOF circuit = /obj/item/circuitboard/machine/chem_master diff --git a/code/modules/reagents/chemistry/machinery/pandemic.dm b/code/modules/reagents/chemistry/machinery/pandemic.dm index 65bcf56ef25c..6c85e75ccd86 100644 --- a/code/modules/reagents/chemistry/machinery/pandemic.dm +++ b/code/modules/reagents/chemistry/machinery/pandemic.dm @@ -8,8 +8,8 @@ icon = 'icons/obj/chemical/misc.dmi' icon_state = "pandemic0" base_icon_state = "pandemic" - use_power = TRUE - idle_power_usage = 20 + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_MINIMAL resistance_flags = ACID_PROOF circuit = /obj/item/circuitboard/computer/pandemic unique_icon = TRUE diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 5e5bd21747dc..5beaca629934 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -8,8 +8,8 @@ base_icon_state = "juicer" layer = BELOW_OBJ_LAYER use_power = IDLE_POWER_USE - idle_power_usage = 5 - active_power_usage = 100 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MEDIUM circuit = /obj/item/circuitboard/machine/reagentgrinder pass_flags = PASSTABLE resistance_flags = ACID_PROOF @@ -261,10 +261,11 @@ operating = FALSE /obj/machinery/reagentgrinder/proc/juice() - power_change() if(!beaker || machine_stat & (NOPOWER|BROKEN) || beaker.reagents.total_volume >= beaker.reagents.maximum_volume) return + set_active_power() operate_for(50, juicing = TRUE) + set_idle_power() for(var/obj/item/i in holdingitems) if(beaker.reagents.total_volume >= beaker.reagents.maximum_volume) break @@ -281,10 +282,11 @@ remove_object(I) /obj/machinery/reagentgrinder/proc/grind(mob/user) - power_change() if(!beaker || machine_stat & (NOPOWER|BROKEN) || beaker.reagents.total_volume >= beaker.reagents.maximum_volume) return + set_active_power() operate_for(60) + set_idle_power() for(var/i in holdingitems) if(beaker.reagents.total_volume >= beaker.reagents.maximum_volume) break @@ -310,10 +312,11 @@ /obj/machinery/reagentgrinder/proc/mix(mob/user) //For butter and other things that would change upon shaking or mixing - power_change() if(!beaker || machine_stat & (NOPOWER|BROKEN)) return + set_active_power() operate_for(50, juicing = TRUE) + set_idle_power() addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/machinery/reagentgrinder, mix_complete)), 50) /obj/machinery/reagentgrinder/proc/mix_complete() diff --git a/code/modules/research/bepis.dm b/code/modules/research/bepis.dm index 84d948f7c2b9..a033b59b56ae 100644 --- a/code/modules/research/bepis.dm +++ b/code/modules/research/bepis.dm @@ -17,7 +17,7 @@ density = TRUE layer = ABOVE_MOB_LAYER use_power = IDLE_POWER_USE - active_power_usage = 1500 + active_power_usage = ACTIVE_DRAW_HIGH circuit = /obj/item/circuitboard/machine/bepis var/banking_amount = 100 @@ -254,7 +254,7 @@ return calcsuccess() use_power(MACHINE_OPERATION * power_saver) //This thing should eat your APC battery if you're not careful. - use_power = IDLE_POWER_USE //Machine shuts off after use to prevent spam and look better visually. + set_idle_power() //Machine shuts off after use to prevent spam and look better visually. update_icon_state() if("amount") var/input = text2num(params["amount"]) @@ -262,9 +262,9 @@ banking_amount = input if("toggle_power") if(use_power == ACTIVE_POWER_USE) - use_power = IDLE_POWER_USE + set_idle_power() else - use_power = ACTIVE_POWER_USE + set_active_power() update_icon_state() if("account_reset") if(use_power == IDLE_POWER_USE) diff --git a/code/modules/research/machinery/_production.dm b/code/modules/research/machinery/_production.dm index 36a22dac2cc7..0f8c2eb53c1d 100644 --- a/code/modules/research/machinery/_production.dm +++ b/code/modules/research/machinery/_production.dm @@ -2,6 +2,10 @@ name = "technology fabricator" desc = "Makes researched and prototype items with materials and energy." layer = BELOW_OBJ_LAYER + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_LOW + active_power_usage = ACTIVE_DRAW_HIGH + power_channel = AREA_USAGE_EQUIP var/consoleless_interface = FALSE //Whether it can be used without a console. var/efficiency_coeff = 1 //Materials needed / coeff = actual. var/list/categories = list() @@ -96,6 +100,7 @@ if(notify_admins) investigate_log("[key_name(usr)] built [amount] of [path] at [src]([type]).", INVESTIGATE_RESEARCH) message_admins("[ADMIN_LOOKUPFLW(usr)] has built [amount] of [path] at \a [src]([type]).") + set_idle_power() for(var/i in 1 to amount) var/obj/item/I = new path(get_turf(src)) if(efficient_with(I.type)) @@ -142,11 +147,11 @@ if(materials.on_hold()) say("Mineral access is on hold, please contact the quartermaster.") return FALSE - var/power = 1000 + var/power = active_power_usage amount = clamp(amount, 1, 50) for(var/M in D.materials) power += round(D.materials[M] * amount / 35) - power = min(3000, power) + power = min(ACTIVE_DRAW_EXTREME, power) use_power(power) var/coeff = efficient_with(D.build_path) ? efficiency_coeff : 1 var/list/efficient_mats = list() @@ -168,6 +173,7 @@ flick(production_animation, src) var/timecoeff = D.lathe_time_factor / efficiency_coeff addtimer(CALLBACK(src, PROC_REF(reset_busy)), (30 * timecoeff * amount) ** 0.5) + set_active_power() addtimer(CALLBACK(src, PROC_REF(do_print), D.build_path, amount, efficient_mats, D.dangerous_construction), (32 * timecoeff * amount) ** 0.8) return TRUE diff --git a/code/modules/research/nanites/nanite_chamber.dm b/code/modules/research/nanites/nanite_chamber.dm index d5d5fa79e8ca..eb50a70af0bb 100644 --- a/code/modules/research/nanites/nanite_chamber.dm +++ b/code/modules/research/nanites/nanite_chamber.dm @@ -9,8 +9,8 @@ use_power = IDLE_POWER_USE anchored = TRUE density = TRUE - idle_power_usage = 50 - active_power_usage = 300 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_HIGH var/locked = FALSE var/breakout_time = 1200 diff --git a/code/modules/research/nanites/public_chamber.dm b/code/modules/research/nanites/public_chamber.dm index 9e39486c2052..b149fda6baae 100644 --- a/code/modules/research/nanites/public_chamber.dm +++ b/code/modules/research/nanites/public_chamber.dm @@ -8,8 +8,8 @@ use_power = IDLE_POWER_USE anchored = TRUE density = TRUE - idle_power_usage = 50 - active_power_usage = 300 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_HIGH var/cloud_id = 1 var/locked = FALSE diff --git a/code/modules/security_levels/keycard_authentication.dm b/code/modules/security_levels/keycard_authentication.dm index 7f3693e98760..58e75c399d81 100644 --- a/code/modules/security_levels/keycard_authentication.dm +++ b/code/modules/security_levels/keycard_authentication.dm @@ -10,8 +10,8 @@ GLOBAL_DATUM_INIT(keycard_events, /datum/events, new) icon = 'icons/obj/monitors.dmi' icon_state = "auth_off" use_power = IDLE_POWER_USE - idle_power_usage = 2 - active_power_usage = 6 + idle_power_usage = IDLE_DRAW_MINIMAL + active_power_usage = ACTIVE_DRAW_MINIMAL power_channel = AREA_USAGE_ENVIRON req_access = list(ACCESS_KEYCARD_AUTH) resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm index 9679aa860c9c..b894f99c255d 100644 --- a/code/modules/station_goals/dna_vault.dm +++ b/code/modules/station_goals/dna_vault.dm @@ -120,7 +120,7 @@ icon_state = "vault" density = TRUE anchored = TRUE - idle_power_usage = 5000 + idle_power_usage = ACTIVE_DRAW_EXTREME pixel_x = -32 pixel_y = -64 light_range = 3 diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 93fcacba45b1..4c97b3f7eaa2 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -47,6 +47,8 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C icon_state = "generic" layer = BELOW_OBJ_LAYER density = TRUE + use_power = IDLE_POWER_USE + idle_power_usage = IDLE_DRAW_MINIMAL verb_say = "beeps" verb_ask = "beeps" verb_exclaim = "beeps" From 406a6747a0cdaa7f734a830e3ea6c9a23d911d56 Mon Sep 17 00:00:00 2001 From: Mirag19 Date: Mon, 27 May 2024 07:41:15 +0300 Subject: [PATCH 004/107] Fix ammo check for revolvers (#3025) Loading rockets and rifle ammo into the revolver is prohibited :cl: fix: Fix revolver ammo check /:cl: --------- Co-authored-by: Sun-Soaked <45698967+Sun-Soaked@users.noreply.github.com> --- code/modules/projectiles/guns/ballistic/revolver.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index 4f76267752a1..6663f2cbceab 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -142,11 +142,12 @@ /obj/item/gun/ballistic/revolver/proc/insert_casing(mob/living/user, obj/item/ammo_casing/casing_to_insert, allow_ejection) if(!casing_to_insert) return FALSE -// [CELADON-ADD] - CELADON FIXES + +// Check if the bullet's caliber matches the magazine's caliber.If not, send a warning message to the user and return FALSE. if(casing_to_insert.caliber != magazine.caliber) - to_chat(user, "Этот патрон [casing_to_insert] не подходит для [src].") + to_chat(user, "\The [casing_to_insert] is not suitable for [src].") return FALSE -// [/CELADON-ADD] + var/list/rounds = magazine.ammo_list() var/obj/item/ammo_casing/slot = rounds[gate_offset+1] //byond arrays start at 1, so we add 1 to get the correct index var/doafter_time = 0.4 SECONDS From 272405d1b3995cc719cb8c6676527a9e3bf57e34 Mon Sep 17 00:00:00 2001 From: Theos Date: Mon, 27 May 2024 18:22:54 -0400 Subject: [PATCH 005/107] Compactification of survivor loot (#2976) ## About The Pull Request default whitesands hermits now pull from the "survivor" loot variant rather than no loot variant hunters spawning now actually delete the old hermit mob, rather than committing mitosis hermit loot has been compactified, defaults are now declared in the object rather than initialize, and variant-specific loot now uses a switch statement fixes a bug where non-gunslinger hermits had their pockets overwritten with default equipment, they will now sometimes have goliath steaks, cash (for melee hermits) or .300 BLK strippers (hunters) in their pockets reduces the cash bundle melee hermits can drop from a medium random (500-3000) to small random (100-500) bundle since they are quite common. This can be reduced further if deemed necessary. ## Why It's Good For The Game babe it's 3:00 PM time for your code scrunching ## Changelog :cl: fix: melee hermits now pull from the "survivor" loot variant rather than no loot variant fix: hermits can no longer commit mitosis tweak: hermit loot has been compactified, defaults are now declared in the object rather than initialize, and variant-specific loot now uses a switch statement fix: all hermits now have pocket loot randomized as intended tweak: reduces the cash bundle melee hermits can drop from a medium random (500-3000) to small random (100-500) bundle since they are quite common /:cl: Signed-off-by: Theos --- .../living/simple_animal/hostile/survivors.dm | 223 ++++++++---------- 1 file changed, 95 insertions(+), 128 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/survivors.dm b/code/modules/mob/living/simple_animal/hostile/survivors.dm index d5759431d65a..2f9837c4b1cb 100644 --- a/code/modules/mob/living/simple_animal/hostile/survivors.dm +++ b/code/modules/mob/living/simple_animal/hostile/survivors.dm @@ -44,11 +44,15 @@ /mob/living/simple_animal/hostile/asteroid/whitesands/survivor name = "Hermit Wanderer" desc =" A wild-eyed figure, wearing tattered mining equipment and boasting a malformed body, twisted by the heavy metals and high background radiation of the sandworlds." + loot = list( + /obj/effect/mob_spawn/human/corpse/damaged/whitesands/survivor + ) /mob/living/simple_animal/hostile/asteroid/whitesands/survivor/random/Initialize() . = ..() if(prob(35)) new /mob/living/simple_animal/hostile/asteroid/whitesands/ranged/hunter(loc) + return INITIALIZE_HINT_QDEL if(prob(10)) new /mob/living/simple_animal/hostile/asteroid/whitesands/ranged/gunslinger(loc) return INITIALIZE_HINT_QDEL @@ -88,6 +92,12 @@ //survivor corpses /obj/effect/mob_spawn/human/corpse/damaged/whitesands + uniform = /obj/item/clothing/under/color/random + belt = /obj/item/storage/belt/fannypack + shoes = /obj/item/clothing/shoes/workboots/mining + suit = /obj/item/clothing/suit/hooded/survivor + l_pocket = /obj/item/radio + r_pocket = /obj/item/tank/internals/emergency_oxygen/engi var/survivor_type //room for alternatives inside the fuckoff grade init. /obj/effect/mob_spawn/human/corpse/damaged/whitesands/Initialize() //everything here should equal out to 100 for the sake of my sanity. @@ -102,88 +112,6 @@ ) ) //to-do: learn how to make mobsprites for other survivors - //uniforms are random to show varied backgrounds, but similar goal - if(survivor_type == "survivor") - uniform = pickweight(list( - /obj/item/clothing/under/color/random = 65, - /obj/item/clothing/under/rank/cargo/miner/lavaland = 10, - /obj/item/clothing/under/rank/prisoner = 10, - /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 5, - /obj/item/clothing/under/color/khaki/buster = 5, - /obj/item/clothing/under/rank/cargo/miner = 5 - ) - ) - else if (survivor_type == "hunter") - uniform = pickweight(list( - /obj/item/clothing/under/color/random = 50, - /obj/item/clothing/under/rank/cargo/miner/lavaland = 25, - /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 15, - /obj/item/clothing/under/rank/security/officer/camo = 5, - /obj/item/clothing/under/utility = 5 - ) - ) - else if (survivor_type == "gunslinger") - uniform = pickweight(list( - /obj/item/clothing/under/rank/cargo/miner/lavaland = 35, - /obj/item/clothing/under/color/random = 25, - /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 15, - /obj/item/clothing/under/rank/security/officer/camo = 10, - /obj/item/clothing/under/syndicate/camo = 10, - /obj/item/clothing/under/syndicate/combat = 5 - ) - ) - else - uniform = /obj/item/clothing/under/color/random - - //storage is semi-randomized, giving some variety - if(survivor_type == "survivor") - belt = pickweight(list( - /obj/item/storage/belt/fannypack = 40, - /obj/item/storage/belt/mining = 20, - /obj/item/storage/belt/mining/alt = 15, - /obj/item/storage/belt/utility = 10, - /obj/item/storage/belt/bandolier = 9, - /obj/item/storage/belt/utility/full = 5, - /obj/item/storage/belt/chameleon= 1, - ) - ) - else if(survivor_type == "hunter") - belt = pickweight(list( - /obj/item/storage/belt/mining = 30, - /obj/item/storage/belt/fannypack = 20, - /obj/item/storage/belt/mining/alt = 15, - /obj/item/storage/belt/mining/primitive = 15, - /obj/item/storage/belt/bandolier = 10, - /obj/item/storage/belt/military = 7, - /obj/item/storage/belt/mining/vendor = 3, - ) - ) - else if(survivor_type == "gunslinger") - belt = pickweight(list( - /obj/item/storage/belt/mining = 30, - /obj/item/storage/belt/bandolier = 30, - /obj/item/storage/belt/military = 20, - /obj/item/storage/belt/fannypack = 15, - /obj/item/storage/belt/mining/alt = 5, - /obj/item/storage/belt/mining/primitive = 5 - ) - ) - else - belt = /obj/item/storage/belt/fannypack - - //everyone wears the same suit - suit = /obj/item/clothing/suit/hooded/survivor - - if (survivor_type == "gunslinger") - if(prob(30)) - shoes = /obj/item/clothing/shoes/combat //but sometimes there are nicer shoes - else - shoes = /obj/item/clothing/shoes/workboots/mining - else - shoes = /obj/item/clothing/shoes/workboots/mining - - - //gloves are a tossup gloves = pickweight(list( @@ -260,35 +188,6 @@ if(prob(30)) //some pens maybe? backpack_contents += /obj/item/reagent_containers/hypospray/medipen/survival - //pockets - if(survivor_type == "survivor") //could also use fleshing out - if(prob(30)) - l_pocket = /obj/item/reagent_containers/food/snacks/meat/steak/goliath - else - l_pocket = /obj/item/tank/internals/emergency_oxygen/engi - if (prob(20)) - r_pocket = /obj/item/spacecash/bundle/mediumrand - else - r_pocket = null - - if(survivor_type == "hunter") - l_pocket = /obj/item/tank/internals/emergency_oxygen/engi - if (prob(20)) - r_pocket = /obj/item/reagent_containers/food/snacks/meat/steak/goliath - else if (prob(60)) - r_pocket = /obj/item/ammo_box/aac_300blk_stripper - else - r_pocket = null - - if(survivor_type == "gunslinger") - if(prob(50)) - l_pocket = /obj/item/ammo_box/magazine/skm_545_39 - r_pocket = /obj/item/tank/internals/emergency_oxygen/engi - - else - r_pocket = /obj/item/tank/internals/emergency_oxygen/engi - l_pocket = /obj/item/radio - //masks mask = pickweight(list( /obj/item/clothing/mask/gas = 40, @@ -298,7 +197,7 @@ ) ) - //the eyes are the window into the soul. I don't think these things have souls but whatever. + //the eyes are the window into the soul. if(prob(70)) glasses = pickweight(list( /obj/item/clothing/glasses/heat = 20, @@ -307,8 +206,6 @@ /obj/item/clothing/glasses = 20 ) ) - else - glasses = null //and of course, ears. if(prob(1)) //oh my god they can't hear the sandstorm coming they've got airpods in @@ -319,21 +216,91 @@ /obj/item/radio/headset/alt = 50 ) ) + //now for the fun stuff + switch(survivor_type) + if("survivor") + //uniforms are random to show varied backgrounds, but similar goal + uniform = pickweight(list( + /obj/item/clothing/under/color/random = 65, + /obj/item/clothing/under/rank/cargo/miner/lavaland = 10, + /obj/item/clothing/under/rank/prisoner = 10, + /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 5, + /obj/item/clothing/under/color/khaki/buster = 5, + /obj/item/clothing/under/rank/cargo/miner = 5 + ) + ) + //storage is semi-randomized, giving some variety + belt = pickweight(list( + /obj/item/storage/belt/fannypack = 40, + /obj/item/storage/belt/mining = 20, + /obj/item/storage/belt/mining/alt = 15, + /obj/item/storage/belt/utility = 10, + /obj/item/storage/belt/bandolier = 9, + /obj/item/storage/belt/utility/full = 5, + /obj/item/storage/belt/chameleon= 1, + ) + ) + if(prob(30)) + l_pocket = /obj/item/reagent_containers/food/snacks/meat/steak/goliath + if(prob(20)) + r_pocket = /obj/item/spacecash/bundle/smallrand + + if("hunter") + uniform = pickweight(list( + /obj/item/clothing/under/color/random = 50, + /obj/item/clothing/under/rank/cargo/miner/lavaland = 25, + /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 15, + /obj/item/clothing/under/rank/security/officer/camo = 5, + /obj/item/clothing/under/utility = 5 + ) + ) + belt = pickweight(list( + /obj/item/storage/belt/mining = 30, + /obj/item/storage/belt/fannypack = 20, + /obj/item/storage/belt/mining/alt = 15, + /obj/item/storage/belt/mining/primitive = 15, + /obj/item/storage/belt/bandolier = 10, + /obj/item/storage/belt/military = 7, + /obj/item/storage/belt/mining/vendor = 3, + ) + ) + if(prob(20)) + l_pocket = /obj/item/reagent_containers/food/snacks/meat/steak/goliath + else if(prob(60)) + l_pocket = /obj/item/ammo_box/aac_300blk_stripper + if(prob(20)) + new /obj/item/gun/ballistic/rifle/polymer(loc) + else + visible_message(span_warning("The hunter's weapon shatters as they impact the ground!")) + + if("gunslinger") + uniform = pickweight(list( + /obj/item/clothing/under/rank/cargo/miner/lavaland = 35, + /obj/item/clothing/under/color/random = 25, + /obj/item/clothing/under/rank/cargo/miner/lavaland/old = 15, + /obj/item/clothing/under/rank/security/officer/camo = 10, + /obj/item/clothing/under/syndicate/camo = 10, + /obj/item/clothing/under/syndicate/combat = 5 + ) + ) + belt = pickweight(list( + /obj/item/storage/belt/mining = 30, + /obj/item/storage/belt/bandolier = 30, + /obj/item/storage/belt/military = 20, + /obj/item/storage/belt/fannypack = 15, + /obj/item/storage/belt/mining/alt = 5, + /obj/item/storage/belt/mining/primitive = 5 + ) + ) + if(prob(30)) + shoes = /obj/item/clothing/shoes/combat //sometimes there are nicer shoes + if(prob(50)) + l_pocket = /obj/item/ammo_box/magazine/skm_545_39 + if(prob(20)) + new /obj/item/gun/ballistic/automatic/smg/skm_carbine(loc) + else + visible_message(span_warning("The gunslinger's weapon shatters as they impact the ground!")) - //exosuit bits - suit_store = null - if (survivor_type == "hunter") - if(prob(20)) - new /obj/item/gun/ballistic/rifle/polymer(loc) - else - visible_message("The hunter's weapon shatters as they impact the ground!") - suit_store = null - if(survivor_type == "gunslinger") - if(prob(20)) - new /obj/item/gun/ballistic/automatic/smg/skm_carbine(loc) - else - visible_message("The gunslinger's weapon shatters as they impact the ground!") - suit_store = null . = ..() From 805648da1e0fd6d909894984b1c6c7754465b48b Mon Sep 17 00:00:00 2001 From: CoreyLee Hassell Date: Mon, 27 May 2024 18:48:19 -0400 Subject: [PATCH 006/107] Changed portable generator sheet burn times (#2882) ## About The Pull Request Portable generators all have different burn times. This unifies them. ## Why It's Good For The Game The superpacman was actually inferior, and considerably so, to the regular pacman in total energy generated. A pacman had a time_per_sheet of 260, while a superpacman was only 85 for only double the power! This made it inferior in every way, because uranium is also quite rare. While there are no obtainable mrspacmans as far as I am aware, I find no reason to have any of these generators set with different burn times. This simplifies it by unifying all of them into the same base time_per_sheet of 260. I am aware this is going to mess with balance a little bit, but I believe that simplifying the amount of variables in play will help make balancing easier in the long run, because it isn't immediately obvious that there were different sheet burn times. Balance should be affected by changing power generated, uranium spawn rate, number of sheets and generators at round start... etc, not some property that you can't see unless you stand there comparing generators side by side. ## Changelog :cl: tweak: All pacman and its variants now have the same sheet burn times. Superpacmans are no longer the vastly inferior generator. /:cl: Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- code/modules/power/port_gen.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index e235e9328549..e63cd1298616 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -291,7 +291,6 @@ circuit = /obj/item/circuitboard/machine/pacman/super sheet_path = /obj/item/stack/sheet/mineral/uranium power_gen = 15000 - time_per_sheet = 85 /obj/machinery/power/port_gen/pacman/super/overheat() . =..() @@ -304,7 +303,6 @@ circuit = /obj/item/circuitboard/machine/pacman/mrs sheet_path = /obj/item/stack/sheet/mineral/diamond power_gen = 40000 - time_per_sheet = 80 /obj/machinery/power/port_gen/pacman/mrs/overheat() . =..() From 08e0394b6479564fb533c080940bba7a9c9147a8 Mon Sep 17 00:00:00 2001 From: Skies-Of-Blue <86762641+Skies-Of-Blue@users.noreply.github.com> Date: Mon, 27 May 2024 16:33:54 -0700 Subject: [PATCH 007/107] Rilena Hoodie Fix (#3018) Resolves https://github.com/shiptest-ss13/Shiptest/issues/2802 Bugs bad, yeah? :cl: fix: fbp and rilena hoodies now work as intended /:cl: --- code/modules/clothing/suits/hoodies.dm | 4 ++-- icons/obj/clothing/hats.dmi | Bin 70634 -> 71027 bytes icons/obj/clothing/suits/hooded.dmi | Bin 20651 -> 20648 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/suits/hoodies.dm b/code/modules/clothing/suits/hoodies.dm index e0b1ab28f812..f58d445c53f0 100644 --- a/code/modules/clothing/suits/hoodies.dm +++ b/code/modules/clothing/suits/hoodies.dm @@ -85,14 +85,13 @@ /obj/item/clothing/head/hooded/hood/fbp name = "\improper FBP kepori hood" desc = "A hood for your FBP hoodie." + icon_state = "hoodie_fbp" item_state = "hoodie_fbp" /obj/item/clothing/suit/hooded/hoodie/rilena name = "K4L1 hoodie" desc = "A hoodie themed to look like K4L1 from the popular webseries RILENA. It has a comfy pocket for keeping your hands warm." - // [CELADON-ADD] - CELADON_FIXES - чиним код офов icon_state = "hoodie_rilena" - // [/CELADON-ADD] item_state = "hoodie_rilena" hoodtype = /obj/item/clothing/head/hooded/hood/rilena @@ -113,5 +112,6 @@ /obj/item/clothing/head/hooded/hood/rilena name = "RILENA: LMR K4L1 hood" desc = "A hood for your RILENA themed hoodie." + icon_state = "hoodie_rilena" item_state = "hoodie_rilena" diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 2ee023557f567b88b41ab9537a3b17265a73b6c8..fb23d4bc2afe6621d1afd3351591416c0a6ef54b 100644 GIT binary patch delta 11700 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 Nih`#6M_J48{{@glCQ1MR delta 11304 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 diff --git a/icons/obj/clothing/suits/hooded.dmi b/icons/obj/clothing/suits/hooded.dmi index 06d98acf23586a57f16cf04f4e1de1cab2535c1f..5b04aa13aaa7b6952a7f5e4da1ac6cb3c011785b 100644 GIT binary patch delta 429 zcmV;e0aE^}p#i9&0gxnrlX_HGbVOxyV{&P5bZKvH004NLm6XA5gD?z+&+rscd!44O zYmZ!}R#Ok{DuiOdPo`Kwr@;*O_2vUfXRG+JPAJD~&82ZxUic)#3YCUH14;`E z@Fve{)Nm7p*gfrk{;ynWv{b9fw7vt0tZaIq8Q;`eO%PNmwT1Y$9%zQWvl<*vJ)sP5 z?Vz>sfEh7PwtjWmI>w#9gPebm44KyInolyUzIOu+jO4h345zBBL0%qBC?`3r53d=ViH&vH_ChV9r8c3s;?Q3y3 X@5TOf%)bE`vHpWre#Tw1!vW|{;poq? delta 432 zcmV;h0Z;y@p#iI*0gxnrmU>iJbVOxyV{&P5bZKvH004NLm6Xd)!!Qs<*U48{?G_;@ zu*?RvLS4WwM3ZC^kLucy?G*a=EGkHOM84i7(wQ@paeUY6dH1q^Q`^^ld14>LSyidW z+q<%Omo92msfSHjXqG|8%S(t9SygJ)8wxs15?5u>i4Uq$_hr$4dph#v`7c?g*@hWm z02A9mY+&{?`IsQDtqW}AR*zmdqz9N$U|J!IFo3DmG#V0HYv(#iZ}S(Q-=Q{4-SwKY z%8-7Oi8cA71A2U;px3*G15V~x$>hO+`*;pfTJM_lvCb&sb@tGE*B)>Zuu@|v%86S? z3-G2aIyQ7xm3q2=dHTO{snJrc5j%vDT86Ue2Mv7F;EYhzb!!}@xAlVt?4vW}G4+fB z-p Date: Mon, 27 May 2024 19:34:11 -0400 Subject: [PATCH 008/107] Prismwine's burn resistance is no longer goofy (#3011) ## About The Pull Request currently it uhhhhhhhhh stacks with itself :3 ## Why It's Good For The Game fix ## Changelog :cl: fix: prismwine's burn resistance can no longer end up stacking /:cl: Signed-off-by: Theos --- .../reagents/chemistry/reagents/trickwine_reagents.dm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index df76f85b1f64..88f1871e6a28 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -180,15 +180,13 @@ /datum/reagent/consumable/ethanol/trickwine/prism_wine/on_mob_metabolize(mob/living/carbon/human/M) ..() ADD_TRAIT(M, TRAIT_REFLECTIVE, "trickwine") - if(M.physiology.burn_mod <= initial(M.physiology.burn_mod)) - M.physiology.burn_mod *= 0.5 + M.physiology.burn_mod *= 0.5 M.add_filter("prism-wine", 2, list("type"="outline", "color"="#8FD7DF", "size"=1)) M.visible_message("[M] seems to shimmer with power!") /datum/reagent/consumable/ethanol/trickwine/prism_wine/on_mob_end_metabolize(mob/living/carbon/human/M) REMOVE_TRAIT(M, TRAIT_REFLECTIVE, "trickwine") - if(M.physiology.burn_mod > initial(M.physiology.burn_mod)) - M.physiology.burn_mod *= 2 + M.physiology.burn_mod *= 2 M.remove_filter("prism-wine") M.visible_message("[M] has returned to normal!") ..() From f78f10fe0d9174b5df2cef21406b8de87de08e22 Mon Sep 17 00:00:00 2001 From: Martinpachu <86135885+Martinpachu@users.noreply.github.com> Date: Mon, 27 May 2024 20:34:23 -0300 Subject: [PATCH 009/107] Makes double bedsheets craftable. (#3003) ## About The Pull Request Double beds have been craftable for a while, HOWEVER double bedsheets have been largely rare. That ends NOW. ## Why It's Good For The Game lets blorbos be comfy ## Changelog :cl: add: Double bedsheets, fit for double beds, are now craftable via cloth. /:cl: --- code/game/objects/items/stacks/sheets/sheet_types.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 7c28c93200a3..00f995ed70dd 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -249,6 +249,7 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ new/datum/stack_recipe("rag", /obj/item/reagent_containers/glass/rag, 1), \ new/datum/stack_recipe("towel", /obj/item/towel, 2), \ new/datum/stack_recipe("bedsheet", /obj/item/bedsheet, 3), \ + new/datum/stack_recipe("double bedsheet", /obj/item/bedsheet/double, 4), \ new/datum/stack_recipe("empty sandbag", /obj/item/emptysandbag, 4), \ null, \ new/datum/stack_recipe("fingerless gloves", /obj/item/clothing/gloves/fingerless, 1), \ From f0ba445a5619892705cc2207d0a3132603c29ad2 Mon Sep 17 00:00:00 2001 From: Gristlebee <56049844+Gristlebee@users.noreply.github.com> Date: Mon, 27 May 2024 16:35:56 -0700 Subject: [PATCH 010/107] Removes elzu multitool and emag interaction (#2993) ## About The Pull Request Removes the color changing interaction elzu have with multitools and emags. ## Why It's Good For The Game ![image](https://github.com/shiptest-ss13/Shiptest/assets/56049844/b81646c9-1490-46ad-88ea-ec5b08b0d6ad) Thgvr asked me too ## Changelog :cl: del: Elzu can no longer change their color with the multitool or emag. /:cl: --- .../carbon/human/species_types/ethereal.dm | 59 +------------------ 1 file changed, 1 insertion(+), 58 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species_types/ethereal.dm b/code/modules/mob/living/carbon/human/species_types/ethereal.dm index 6aa59e824169..12b824f5eac4 100644 --- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm +++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm @@ -46,7 +46,6 @@ var/current_color var/EMPeffect = FALSE - var/emag_effect = FALSE var/static/unhealthy_color = rgb(237, 164, 149) loreblurb = "Elzuosa are an uncommon and unusual species best described as crystalline, electrically-powered plantpeople. They hail from the warm planet Kalixcis, where they evolved alongside the Sarathi. Kalixcian culture places no importance on blood-bonds, and those from it tend to consider their family anyone they are sufficiently close to, and choose their own names." var/drain_time = 0 //used to keep ethereals from spam draining power sources @@ -64,7 +63,6 @@ return var/mob/living/carbon/human/ethereal = _carbon default_color = "#[ethereal.dna.features["ethcolor"]]" - RegisterSignal(ethereal, COMSIG_ATOM_EMAG_ACT, PROC_REF(on_emag_act)) RegisterSignal(ethereal, COMSIG_ATOM_EMP_ACT, PROC_REF(on_emp_act)) ethereal_light = ethereal.mob_light() spec_updatehealth(ethereal) @@ -80,7 +78,6 @@ BP.update_limb(is_creating = TRUE) /datum/species/elzuose/on_species_loss(mob/living/carbon/human/_carbon, datum/species/new_species, pref_load) - UnregisterSignal(_carbon, COMSIG_ATOM_EMAG_ACT) UnregisterSignal(_carbon, COMSIG_ATOM_EMP_ACT) UnregisterSignal(_carbon, COMSIG_DIGOUT) UnregisterSignal(_carbon, COMSIG_MOVABLE_MOVED) @@ -180,8 +177,7 @@ return if(_human.stat != DEAD && !EMPeffect) - if(!emag_effect) - current_color = health_adjusted_color(_human, default_color) + current_color = health_adjusted_color(_human, default_color) set_ethereal_light(_human, current_color) ethereal_light.set_light_on(TRUE) fixed_mut_color = copytext_char(current_color, 2) @@ -235,16 +231,6 @@ if(EMP_HEAVY) addtimer(CALLBACK(src, PROC_REF(stop_emp), _human), 20 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 20 seconds -/datum/species/elzuose/proc/on_emag_act(mob/living/carbon/human/_human, mob/user) - if(emag_effect) - return - emag_effect = TRUE - if(user) - to_chat(user, span_notice("You tap [_human] on the back with your card.")) - _human.visible_message(span_danger("[_human] starts flickering in an array of colors!")) - handle_emag(_human) - addtimer(CALLBACK(src, PROC_REF(stop_emag), _human), 30 SECONDS) //Disco mode for 30 seconds! This doesn't affect the ethereal at all besides either annoying some players, or making someone look badass. - /datum/species/elzuose/spec_life(mob/living/carbon/human/_human) .=..() handle_charge(_human) @@ -254,18 +240,6 @@ spec_updatehealth(_human) to_chat(_human, span_notice("You feel more energized as your shine comes back.")) -/datum/species/elzuose/proc/handle_emag(mob/living/carbon/human/_human) - if(!emag_effect) - return - current_color = pick(ELZUOSE_EMAG_COLORS) - spec_updatehealth(_human) - addtimer(CALLBACK(src, PROC_REF(handle_emag), _human), 5) //Call ourselves every 0.5 seconds to change color - -/datum/species/elzuose/proc/stop_emag(mob/living/carbon/human/_human) - emag_effect = FALSE - spec_updatehealth(_human) - _human.visible_message(span_danger("[_human] stops flickering and goes back to their normal state!")) - /datum/species/elzuose/proc/handle_charge(mob/living/carbon/human/_human) brutemod = 1.25 switch(get_charge(_human)) @@ -320,34 +294,3 @@ if(istype(stomach)) return stomach.crystal_charge return ELZUOSE_CHARGE_NONE - -/datum/species/elzuose/spec_attacked_by(obj/item/I, mob/living/user, obj/item/bodypart/affecting, intent, mob/living/carbon/human/_human) - if(istype(I, /obj/item/multitool)) - if(user.a_intent == INTENT_HARM) - . = ..() // multitool beatdown - return - - if (emag_effect == TRUE) - to_chat(user, span_warning("The multitool can't get a lock on [_human]'s EM frequency!")) - return - - if(user != _human) - // random color change - default_color = "#" + GLOB.color_list_ethereal[pick(GLOB.color_list_ethereal)] - current_color = health_adjusted_color(_human, default_color) - spec_updatehealth(_human) - _human.visible_message(span_danger("[_human]'s EM frequency is scrambled to a random color.")) - else - // select new color - var/new_etherealcolor = input(user, "Choose your Elzuose color:", "Character Preference",default_color) as color|null - if(new_etherealcolor) - var/temp_hsv = RGBtoHSV(new_etherealcolor) - if(ReadHSV(temp_hsv)[3] >= ReadHSV("#505050")[3]) // elzu colors should be bright ok?? - default_color = sanitize_hexcolor(new_etherealcolor, 6, TRUE) - current_color = health_adjusted_color(_human, default_color) - spec_updatehealth(_human) - _human.visible_message(span_notice("[_human] modulates [_human.p_their()] EM frequency to [new_etherealcolor]")) - else - to_chat(user, span_danger("Invalid color. Your color is not bright enough.")) - else - . = ..() From e887de4b83967a018333462c5c5ead6e1b61848e Mon Sep 17 00:00:00 2001 From: zevo <95449138+Zevotech@users.noreply.github.com> Date: Mon, 27 May 2024 19:36:19 -0400 Subject: [PATCH 011/107] Removes clown/mime fan quirks (#2986) ## About The Pull Request Does as it says in the title Removes the quirks, their mood buffs and their accessories. ## Why It's Good For The Game Clowns and mimes are no longer in the spotlight, and these quirks are kind of incompatible with the server. Because there are no clowns and mimes around. They serve no purpose. ## Changelog :cl: del: Clown and mime fan quirks have been removed del: Removes the clown and mime fan pins /:cl: --- code/__DEFINES/traits.dm | 2 - code/_globalvars/traits.dm | 2 - .../subsystem/processing/quirks.dm | 1 - .../mood_events/generic_positive_events.dm | 8 ---- code/datums/traits/good.dm | 40 ------------------- code/game/data_huds.dm | 18 --------- code/modules/clothing/under/_under.dm | 4 -- code/modules/clothing/under/accessories.dm | 39 ------------------ code/modules/mob/living/carbon/human/human.dm | 2 - code/modules/vending/autodrobe.dm | 2 - 10 files changed, 118 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 72123b78268c..f88f0c9d791c 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -294,8 +294,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_NIGHT_VISION "night_vision" #define TRAIT_LIGHT_STEP "light_step" #define TRAIT_SPIRITUAL "spiritual" -#define TRAIT_FAN_CLOWN "fan_clown" -#define TRAIT_FAN_MIME "fan_mime" #define TRAIT_FAN_RILENA "fan_rilena" #define TRAIT_VORACIOUS "voracious" #define TRAIT_SELF_AWARE "self_aware" diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index dbc3607129f4..5f5c26731d15 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -125,8 +125,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NIGHT_VISION" = TRAIT_NIGHT_VISION, "TRAIT_LIGHT_STEP" = TRAIT_LIGHT_STEP, "TRAIT_SPIRITUAL" = TRAIT_SPIRITUAL, - "TRAIT_FAN_CLOWN" = TRAIT_FAN_CLOWN, - "TRAIT_FAN_MIME" = TRAIT_FAN_MIME, "TRAIT_VORACIOUS" = TRAIT_VORACIOUS, "TRAIT_SELF_AWARE" = TRAIT_SELF_AWARE, "TRAIT_FREERUNNING" = TRAIT_FREERUNNING, diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index 9dc117783af9..c6f9e4404c07 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -23,7 +23,6 @@ PROCESSING_SUBSYSTEM_DEF(quirks) list("Ageusia","Vegetarian","Deviant Tastes"), \ list("Ananas Affinity","Ananas Aversion"), \ list("Alcohol Tolerance","Light Drinker"), \ - list("Clown Fan","Mime Fan", "RILENA Super Fan"), \ list("Bad Touch", "Friendly")) species_blacklist = list("Blood Deficiency" = list(SPECIES_IPC, SPECIES_JELLYPERSON, SPECIES_PLASMAMAN, SPECIES_VAMPIRE)) diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index 899c617a99d2..f9e339c3c081 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -105,14 +105,6 @@ description = "My family heirloom is safe with me.\n" mood_change = 1 -/datum/mood_event/fan_clown_pin - description = "I love showing off my clown pin!\n" - mood_change = 1 - -/datum/mood_event/fan_mime_pin - description = "I love showing off my mime pin!\n" - mood_change = 1 - /datum/mood_event/rilena_fan description = "I love my RILENA merch!\n" mood_change = 1 diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm index 52ee20e23c27..574c35f60beb 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -62,26 +62,6 @@ lose_text = "You feel isolated from others." medical_record_text = "Patient is highly perceptive of and sensitive to social cues, or may possibly have ESP. Further testing needed." -/datum/quirk/fan_clown - name = "Clown Fan" - desc = "You enjoy clown antics and get a mood boost from wearing your clown pin." - value = 1 - mob_traits = list(TRAIT_FAN_CLOWN) - gain_text = "You are a big fan of clowns." - lose_text = "The clown doesn't seem so great." - medical_record_text = "Patient reports being a big fan of clowns." - -/datum/quirk/fan_clown/on_spawn() - var/mob/living/carbon/human/H = quirk_holder - var/obj/item/clothing/accessory/fan_clown_pin/B = new(get_turf(H)) - var/list/slots = list ( - "backpack" = ITEM_SLOT_BACKPACK, - "hands" = ITEM_SLOT_HANDS, - ) - H.equip_in_one_of_slots(B, slots , qdel_on_fail = TRUE) - var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN] - fan.add_hud_to(H) - /datum/quirk/fan_rilena name = "RILENA Super Fan" desc = "You are a major fan of the popular webseries RILENA: LMR. You get a mood boost from plushies of your favorite characters, and wearing your Xader pin." @@ -102,26 +82,6 @@ var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN] fan.add_hud_to(H) -/datum/quirk/fan_mime - name = "Mime Fan" - desc = "You enjoy mime antics and get a mood boost from wearing your mime pin." - value = 1 - mob_traits = list(TRAIT_FAN_MIME) - gain_text = "You are a big fan of the Mime." - lose_text = "The mime doesn't seem so great." - medical_record_text = "Patient reports being a big fan of mimes." - -/datum/quirk/fan_mime/on_spawn() - var/mob/living/carbon/human/H = quirk_holder - var/obj/item/clothing/accessory/fan_mime_pin/B = new(get_turf(H)) - var/list/slots = list ( - "backpack" = ITEM_SLOT_BACKPACK, - "hands" = ITEM_SLOT_HANDS, - ) - H.equip_in_one_of_slots(B, slots , qdel_on_fail = TRUE) - var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN] - fan.add_hud_to(H) - /datum/quirk/freerunning name = "Freerunning" desc = "You're great at quick moves! You can climb tables more quickly." diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 1dee49da7f54..4020895f29bd 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -216,24 +216,6 @@ Medical HUD! Basic mode needs suit sensors on. holder.icon_state = "hudhealthy" -/*********************************************** -FAN HUDs! For identifying other fans on-sight. -************************************************/ - -//HOOKS - -/mob/living/carbon/human/proc/fan_hud_set_fandom() - var/image/holder = hud_list[FAN_HUD] - var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size - holder.icon_state = "hudfan_no" - var/obj/item/clothing/under/U = get_item_by_slot(ITEM_SLOT_ICLOTHING) - if(U) - if(istype(U.attached_accessory, /obj/item/clothing/accessory/fan_mime_pin)) - holder.icon_state = "fan_mime_pin" - else if(istype(U.attached_accessory, /obj/item/clothing/accessory/fan_clown_pin)) - holder.icon_state = "fan_clown_pin" - /*********************************************** Security HUDs! Basic mode shows only the job. ************************************************/ diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index 7a8e21ae2bea..a28d6d323a83 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -86,7 +86,6 @@ if(attached_accessory && slot != ITEM_SLOT_HANDS && ishuman(user)) var/mob/living/carbon/human/H = user attached_accessory.on_uniform_equip(src, user) - H.fan_hud_set_fandom() if(attached_accessory.above_suit) H.update_inv_wear_suit() @@ -101,7 +100,6 @@ attached_accessory.on_uniform_dropped(src, user) if(ishuman(user)) var/mob/living/carbon/human/H = user - H.fan_hud_set_fandom() if(attached_accessory.above_suit) H.update_inv_wear_suit() @@ -136,7 +134,6 @@ var/mob/living/carbon/human/H = loc H.update_inv_w_uniform() H.update_inv_wear_suit() - H.fan_hud_set_fandom() return TRUE @@ -158,7 +155,6 @@ var/mob/living/carbon/human/H = loc H.update_inv_w_uniform() H.update_inv_wear_suit() - H.fan_hud_set_fandom() /obj/item/clothing/under/examine(mob/user) diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index ed1d12be3fcb..76de51b173cd 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -376,45 +376,6 @@ for(var/i in 1 to 3) new /obj/item/lipstick/random(src) -//////////////// -//REAL BIG FAN// -//////////////// - -/obj/item/clothing/accessory/fan_clown_pin - name = "Clown Pin" - desc = "A pin to show off your appreciation for clowns and clowning" - icon_state = "fan_clown_pin" - above_suit = FALSE - minimize_when_attached = TRUE - attachment_slot = CHEST - -/obj/item/clothing/accessory/fan_clown_pin/on_uniform_equip(obj/item/clothing/under/U, user) - var/mob/living/L = user - if(HAS_TRAIT(L, TRAIT_FAN_CLOWN)) - SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "fan_clown_pin", /datum/mood_event/fan_clown_pin) - -/obj/item/clothing/accessory/fan_clown_pin/on_uniform_dropped(obj/item/clothing/under/U, user) - var/mob/living/L = user - if(HAS_TRAIT(L, TRAIT_FAN_CLOWN)) - SEND_SIGNAL(L, COMSIG_CLEAR_MOOD_EVENT, "fan_clown_pin") - -/obj/item/clothing/accessory/fan_mime_pin - name = "Mime Pin" - desc = "A pin to show off your appreciation for mimes and miming" - icon_state = "fan_mime_pin" - above_suit = FALSE - minimize_when_attached = TRUE - attachment_slot = CHEST - -/obj/item/clothing/accessory/fan_mime_pin/on_uniform_equip(obj/item/clothing/under/U, user) - var/mob/living/L = user - if(HAS_TRAIT(L, TRAIT_FAN_MIME)) - SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "fan_mime_pin", /datum/mood_event/fan_mime_pin) - -/obj/item/clothing/accessory/fan_mime_pin/on_uniform_dropped(obj/item/clothing/under/U, user) - var/mob/living/L = user - if(HAS_TRAIT(L, TRAIT_FAN_MIME)) - SEND_SIGNAL(L, COMSIG_CLEAR_MOOD_EVENT, "fan_mime_pin") //////////////// //OONGA BOONGA// diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 3c34e4d18fdb..5d958d14cecd 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -52,8 +52,6 @@ sec_hud_set_ID() sec_hud_set_implants() sec_hud_set_security_status() - //...fan gear - fan_hud_set_fandom() //...and display them. add_to_all_human_data_huds() diff --git a/code/modules/vending/autodrobe.dm b/code/modules/vending/autodrobe.dm index b1d85fb3fcbb..c1bbe7c2d337 100644 --- a/code/modules/vending/autodrobe.dm +++ b/code/modules/vending/autodrobe.dm @@ -113,8 +113,6 @@ contraband = list( /obj/item/clothing/suit/judgerobe = 1, /obj/item/clothing/head/powdered_wig = 1, - /obj/item/clothing/accessory/fan_mime_pin = 1, - /obj/item/clothing/accessory/fan_clown_pin = 1, /obj/item/gun/magic/wand/nothing = 2, /obj/item/clothing/glasses/sunglasses/garb = 2, /obj/item/clothing/glasses/blindfold = 1, From d4202ec67b2700049ea1b239b80f7a38dae291de Mon Sep 17 00:00:00 2001 From: Gristlebee <56049844+Gristlebee@users.noreply.github.com> Date: Mon, 27 May 2024 16:38:38 -0700 Subject: [PATCH 012/107] Holopad Caller History (#3005) ## About The Pull Request Holopads now show the location of the last holopad that called them on examine. ## Why It's Good For The Game While having to shamefully ask over wideband to have someone call again after you missed their call is funny, knowing where to callback if you miss someone should help streamline ship to ship communication and improve quality of life. ## Changelog :cl: add: Holopads now display the location of the last holopad that called them on examine. code: Span macros for hologram.dm /:cl: --------- Signed-off-by: Gristlebee <56049844+Gristlebee@users.noreply.github.com> Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- code/game/machinery/hologram.dm | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 9b2591bd59cd..60ded054842a 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -78,6 +78,8 @@ Possible to do for anyone motivated enough: var/secure = FALSE /// If we are currently calling another holopad var/calling = FALSE + /// The last holopad that called this one. + var/caller_history /obj/machinery/holopad/Initialize() . = ..() @@ -178,7 +180,9 @@ Possible to do for anyone motivated enough: /obj/machinery/holopad/examine(mob/user) . = ..() if(in_range(user, src) || isobserver(user)) - . += "The status display reads: Current projection range: [holo_range] units." + . += span_notice("The status display reads: Current projection range: [holo_range] units.") + if(caller_history) + . += span_notice("The caller history displays the last recieved call to be from: [caller_history].") /obj/machinery/holopad/attackby(obj/item/P, mob/user, params) if(default_deconstruction_screwdriver(user, "holopad_open", "holopad0", P)) @@ -195,11 +199,11 @@ Possible to do for anyone motivated enough: if(istype(P,/obj/item/disk/holodisk)) if(disk) - to_chat(user,"There's already a disk inside [src]!") + to_chat(user,span_warning("There's already a disk inside [src]!")) return if (!user.transferItemToLoc(P,src)) return - to_chat(user,"You insert [P] into [src].") + to_chat(user,span_notice("You insert [P] into [src].")) disk = P return @@ -249,15 +253,15 @@ Possible to do for anyone motivated enough: if("AIrequest") if(last_request + 200 < world.time) last_request = world.time - to_chat(usr, "You requested an AI's presence.") + to_chat(usr, span_info("You requested an AI's presence.")) var/area/area = get_area(src) for(var/mob/living/silicon/ai/AI in GLOB.silicon_mobs) if(!AI.client) continue - to_chat(AI, "Your presence is requested at \the [area].") + to_chat(AI, span_info("Your presence is requested at \the [area].")) return TRUE else - to_chat(usr, "A request for AI presence was already sent recently.") + to_chat(usr, span_info("A request for AI presence was already sent recently.")) return if("holocall") if(outgoing_call) @@ -280,7 +284,7 @@ Possible to do for anyone motivated enough: calling = TRUE return TRUE else - to_chat(usr, "You must stand on the holopad to make a call!") + to_chat(usr, span_warning("You must stand on the holopad to make a call!")) if("connectcall") var/datum/holocall/call_to_connect = locate(params["holopad"]) in holo_calls if(!QDELETED(call_to_connect)) @@ -374,6 +378,7 @@ Possible to do for anyone motivated enough: for(var/I in holo_calls) var/datum/holocall/HC = I if(HC.connected_holopad != src) + caller_history = get_area_name(HC.calling_holopad) if(force_answer_call && world.time > (HC.call_start_time + (HOLOPAD_MAX_DIAL_TIME / 2))) HC.Answer(src) break @@ -392,7 +397,7 @@ Possible to do for anyone motivated enough: if(is_operational && (!AI || AI.eyeobj.loc == loc))//If the projector has power and client eye is on it if (AI && istype(AI.current, /obj/machinery/holopad)) - to_chat(user, "ERROR: \black Image feed in progress.") + to_chat(user, span_danger("ERROR: \black Image feed in progress.")) return var/obj/effect/overlay/holo_pad_hologram/Hologram = new(loc)//Spawn a blank effect at the location. @@ -415,11 +420,11 @@ Possible to do for anyone motivated enough: move_hologram(user, loc) set_holo(user, Hologram) - visible_message("A holographic image of [user] flickers to life before your eyes!") + visible_message(span_notice("A holographic image of [user] flickers to life before your eyes!")) return Hologram else - to_chat(user, "ERROR: Unable to project hologram.") + to_chat(user, span_danger("ERROR:Unable to project hologram.")) /*This is the proc for special two-way communication between AI and holopad/people talking near holopad. For the other part of the code, check silicon say.dm. Particularly robot talk.*/ @@ -583,7 +588,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ Hologram.set_anchored(TRUE)//So space wind cannot drag it. Hologram.name = "[record.caller_name] (Hologram)"//If someone decides to right click. Hologram.set_light(2) //hologram lighting - visible_message("A holographic image of [record.caller_name] flickers to life before your eyes!") + visible_message(span_notice("A holographic image of [record.caller_name] flickers to life before your eyes!")) return Hologram /obj/machinery/holopad/proc/replay_start() From 628c63f89c7aa9ff91a2b67daafce2e3e52c92a6 Mon Sep 17 00:00:00 2001 From: Chituka <102897715+Chituka@users.noreply.github.com> Date: Tue, 28 May 2024 02:40:08 +0300 Subject: [PATCH 013/107] Choose layers for circulator and engine heater (#2977) ## About The Pull Request Lets you choose pipe layer for circulator and engine heater by using multitool on circuitboard. I literally just copy-pasted freezers code. Unfortunately, sprites aren't compatible with these changes, so this problem needs to be solved by brave spriters. ## Why It's Good For The Game Makes engine heaters and circulators more flexible and easier to place for both mappers and players. ## Changelog :cl: add: Layer changing to engine heaters and freezers --- code/game/machinery/shuttle/shuttle_heater.dm | 9 +++++++- .../circuitboards/machine_circuitboards.dm | 23 +++++++++++++++++++ .../components/binary_devices/circulator.dm | 9 +++++++- 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/shuttle/shuttle_heater.dm b/code/game/machinery/shuttle/shuttle_heater.dm index 3d2455fc6834..513f98eae2c6 100644 --- a/code/game/machinery/shuttle/shuttle_heater.dm +++ b/code/game/machinery/shuttle/shuttle_heater.dm @@ -28,7 +28,7 @@ layer = OBJ_LAYER showpipe = TRUE - pipe_flags = PIPING_ONE_PER_TURF | PIPING_DEFAULT_LAYER_ONLY + pipe_flags = PIPING_ONE_PER_TURF var/efficiency_multiplier = 1 var/gas_capacity = 0 @@ -37,6 +37,13 @@ ///The internals tank to draw from var/obj/item/tank/fuel_tank +/obj/machinery/atmospherics/components/unary/shuttle/heater/on_construction(obj_color, set_layer) + var/obj/item/circuitboard/machine/shuttle/heater/board = circuit + if(board) + piping_layer = board.pipe_layer + set_layer = piping_layer + ..() + /obj/machinery/atmospherics/components/unary/shuttle/heater/New() . = ..() SetInitDirections() diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index bd0a1ffce9c1..10690a766ebf 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -201,8 +201,19 @@ name = "Circulator/Heat Exchanger (Machine Board)" icon_state = "engineering" build_path = /obj/machinery/atmospherics/components/binary/circulator + var/pipe_layer = PIPING_LAYER_DEFAULT req_components = list() +/obj/item/circuitboard/machine/circulator/attackby(obj/item/I, mob/user, params) + if(I.tool_behaviour == TOOL_MULTITOOL) + pipe_layer = (pipe_layer >= PIPING_LAYER_MAX) ? PIPING_LAYER_MIN : (pipe_layer + 1) + to_chat(user, "You change the circuitboard to layer [pipe_layer].") + return + +/obj/item/circuitboard/machine/circulator/examine() + . = ..() + . += "It is set to layer [pipe_layer]." + /obj/item/circuitboard/machine/emitter name = "Emitter (Machine Board)" icon_state = "engineering" @@ -1473,10 +1484,22 @@ /obj/item/circuitboard/machine/shuttle/heater name = "Fueled Engine Heater (Machine Board)" + desc = "You can use mulitool to switch pipe layers" build_path = /obj/machinery/atmospherics/components/unary/shuttle/heater + var/pipe_layer = PIPING_LAYER_DEFAULT req_components = list(/obj/item/stock_parts/micro_laser = 2, /obj/item/stock_parts/matter_bin = 1) +/obj/item/circuitboard/machine/shuttle/heater/attackby(obj/item/I, mob/user, params) + if(I.tool_behaviour == TOOL_MULTITOOL) + pipe_layer = (pipe_layer >= PIPING_LAYER_MAX) ? PIPING_LAYER_MIN : (pipe_layer + 1) + to_chat(user, "You change the circuitboard to layer [pipe_layer].") + return + +/obj/item/circuitboard/machine/shuttle/heater/examine() + . = ..() + . += "It is set to layer [pipe_layer]." + /obj/item/circuitboard/machine/shuttle/smes name = "Electric Engine Precharger (Machine Board)" build_path = /obj/machinery/power/smes/shuttle diff --git a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm index 9f2d582be256..30703b2f4a02 100644 --- a/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm +++ b/code/modules/atmospherics/machinery/components/binary_devices/circulator.dm @@ -15,12 +15,19 @@ var/active = FALSE var/last_pressure_delta = 0 - pipe_flags = PIPING_ONE_PER_TURF | PIPING_DEFAULT_LAYER_ONLY + pipe_flags = PIPING_ONE_PER_TURF var/flipped = 0 var/mode = CIRCULATOR_HOT var/obj/machinery/power/generator/generator +/obj/machinery/atmospherics/components/unary/shuttle/heater/on_construction(obj_color, set_layer) + var/obj/item/circuitboard/machine/circulator/board = circuit + if(board) + piping_layer = board.pipe_layer + set_layer = piping_layer + ..() + //for mappers /obj/machinery/atmospherics/components/binary/circulator/cold mode = CIRCULATOR_COLD From 7d05b1a6c43cbeea7dd4f7163090a65643a72260 Mon Sep 17 00:00:00 2001 From: Apogee-dev <60533805+Apogee-dev@users.noreply.github.com> Date: Mon, 27 May 2024 18:41:56 -0700 Subject: [PATCH 014/107] Corrects syndicate mob names (#3029) ## About The Pull Request Quick edit to syndicate mobs to reflect the fact that they are Ramzi pirates. No custom sprites yet. ## Why It's Good For The Game please god can we stop getting questions about the syndie mobs ## Changelog :cl: tweak: Syndicate mobs have been renamed to Ramzi Clique mobs. New sprites will come later. /:cl: --- .../mob/living/simple_animal/corpse.dm | 4 +- .../living/simple_animal/hostile/syndicate.dm | 69 +++++++------------ 2 files changed, 26 insertions(+), 47 deletions(-) diff --git a/code/modules/mob/living/simple_animal/corpse.dm b/code/modules/mob/living/simple_animal/corpse.dm index aa49c6e52b59..a1b10b897db6 100644 --- a/code/modules/mob/living/simple_animal/corpse.dm +++ b/code/modules/mob/living/simple_animal/corpse.dm @@ -47,14 +47,14 @@ id = /obj/item/card/id/syndicate /obj/effect/mob_spawn/human/corpse/syndicateramzi - name = "Ramzi's Clique Commando" + name = "Ramzi Clique Commando" id_job = "Cutthroat" hairstyle = "Bald" facial_hairstyle = "Shaved" outfit = /datum/outfit/syndicateramzicorpse /datum/outfit/syndicateramzicorpse - name = "Ramzi's Clique Commando Corpse" + name = "Ramzi Clique Commando Corpse" uniform = /obj/item/clothing/under/syndicate/gorlex suit = /obj/item/clothing/suit/space/hardsuit/syndi/ramzi shoes = /obj/item/clothing/shoes/combat diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index b98d14128e12..a05f79e473c8 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -15,8 +15,8 @@ /mob/living/simple_animal/hostile/syndicate - name = "Syndicate Operative" - desc = "Death to Nanotrasen." + name = "Ramzi Clique Operative" + desc = "An ex-Syndicate pirate of the Ramzi Clique." icon = 'icons/mob/simple_human.dmi' icon_state = "syndicate" icon_living = "syndicate" @@ -39,6 +39,7 @@ a_intent = INTENT_HARM loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) + maxbodytemp = 400 unsuitable_atmos_damage = 15 faction = list(FACTION_ANTAG_SYNDICATE) check_friendly_fire = 1 @@ -53,11 +54,12 @@ /mob/living/simple_animal/hostile/syndicate/space icon_state = "syndicate_space" icon_living = "syndicate_space" - name = "Syndicate Commando" + name = "Ramzi Clique Commando" maxHealth = 170 health = 170 atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 + maxbodytemp = 1000 speed = 1 /mob/living/simple_animal/hostile/syndicate/space/Initialize() @@ -68,7 +70,7 @@ /mob/living/simple_animal/hostile/syndicate/space/stormtrooper icon_state = "syndicate_stormtrooper" icon_living = "syndicate_stormtrooper" - name = "Syndicate Stormtrooper" + name = "Ramzi Clique Assault Trooper" maxHealth = 250 health = 250 @@ -87,11 +89,12 @@ /mob/living/simple_animal/hostile/syndicate/melee/space icon_state = "syndicate_space_knife" icon_living = "syndicate_space_knife" - name = "Syndicate Commando" + name = "Ramzi Clique Commando" maxHealth = 170 health = 170 atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 + maxbodytemp = 1000 speed = 1 projectile_deflect_chance = 50 @@ -103,7 +106,7 @@ /mob/living/simple_animal/hostile/syndicate/melee/space/stormtrooper icon_state = "syndicate_stormtrooper_knife" icon_living = "syndicate_stormtrooper_knife" - name = "Syndicate Stormtrooper" + name = "Ramzi Clique Stormtrooper" maxHealth = 250 health = 250 projectile_deflect_chance = 50 @@ -139,11 +142,12 @@ /mob/living/simple_animal/hostile/syndicate/melee/sword/space icon_state = "syndicate_space_sword" icon_living = "syndicate_space_sword" - name = "Syndicate Commando" + name = "Ramzi Clique Commando" maxHealth = 170 health = 170 atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 + maxbodytemp = 1000 speed = 1 projectile_deflect_chance = 50 @@ -160,7 +164,7 @@ /mob/living/simple_animal/hostile/syndicate/melee/sword/space/stormtrooper icon_state = "syndicate_stormtrooper_sword" icon_living = "syndicate_stormtrooper_sword" - name = "Syndicate Stormtrooper" + name = "Ramzi Clique Stormtrooper" maxHealth = 250 health = 250 projectile_deflect_chance = 50 @@ -186,11 +190,12 @@ /mob/living/simple_animal/hostile/syndicate/ranged/space icon_state = "syndicate_space_pistol" icon_living = "syndicate_space_pistol" - name = "Syndicate Commando" + name = "Ramzi Clique Commando" maxHealth = 170 health = 170 atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 + maxbodytemp = 1000 speed = 1 /mob/living/simple_animal/hostile/syndicate/ranged/space/Initialize() @@ -201,7 +206,7 @@ /mob/living/simple_animal/hostile/syndicate/ranged/space/stormtrooper icon_state = "syndicate_stormtrooper_pistol" icon_living = "syndicate_stormtrooper_pistol" - name = "Syndicate Stormtrooper" + name = "Ramzi Clique Stormtrooper" maxHealth = 250 health = 250 @@ -213,17 +218,18 @@ projectilesound = 'sound/weapons/gun/smg/shot.ogg' /mob/living/simple_animal/hostile/syndicate/ranged/smg/pilot //caravan ambush ruin - name = "Syndicate Salvage Pilot" + name = "Ramzi Clique Salvage Pilot" loot = list(/obj/effect/mob_spawn/human/corpse/syndicatesoldier) /mob/living/simple_animal/hostile/syndicate/ranged/smg/space icon_state = "syndicate_space_smg" icon_living = "syndicate_space_smg" - name = "Syndicate Commando" + name = "Ramzi Clique Commando" maxHealth = 170 health = 170 atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 + maxbodytemp = 1000 speed = 1 /mob/living/simple_animal/hostile/syndicate/ranged/smg/space/Initialize() @@ -234,7 +240,7 @@ /mob/living/simple_animal/hostile/syndicate/ranged/smg/space/stormtrooper icon_state = "syndicate_stormtrooper_smg" icon_living = "syndicate_stormtrooper_smg" - name = "Syndicate Stormtrooper" + name = "Ramzi Clique Stormtrooper" maxHealth = 250 health = 250 @@ -244,16 +250,17 @@ minimum_distance = 3 icon_state = "syndicate_shotgun" icon_living = "syndicate_shotgun" - casingtype = /obj/item/ammo_casing/shotgun/buckshot //buckshot (up to 72.5 brute) fired in a two-round burst + casingtype = /obj/item/ammo_casing/shotgun/buckshot //buckshot fired in a two-round burst. This will two-tap unarmored players. /mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space icon_state = "syndicate_space_shotgun" icon_living = "syndicate_space_shotgun" - name = "Syndicate Commando" + name = "Ramzi Clique Commando" maxHealth = 170 health = 170 atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 + maxbodytemp = 1000 speed = 1 /mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space/Initialize() @@ -264,7 +271,7 @@ /mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space/stormtrooper icon_state = "syndicate_stormtrooper_shotgun" icon_living = "syndicate_stormtrooper_shotgun" - name = "Syndicate Stormtrooper" + name = "Ramzi Clique Stormtrooper" maxHealth = 250 health = 250 @@ -302,6 +309,7 @@ faction = list(ROLE_SYNDICATE) atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 + maxbodytemp = 1000 mob_size = MOB_SIZE_TINY movement_type = FLYING limb_destroyer = 1 @@ -314,32 +322,3 @@ /mob/living/simple_animal/hostile/viscerator/Initialize() . = ..() AddComponent(/datum/component/swarming) - -/mob/living/simple_animal/hostile/syndicate/melee/sword/space/oldcode - melee_damage_lower = 20 - melee_damage_upper = 20 - icon = 'icons/mob/simple_human.dmi' - icon_state = "oldcode_syndicate_csaber" - icon_living = "oldcode_syndicate_csaber" - name = "Syndicate Spaceman" - desc = "Death to IS-Nanotrasen." - maxHealth = 170 - health = 170 - armour_penetration = 20 - light_color = LIGHT_COLOR_BLUE - sord = /obj/effect/light_emitter/blue_energy_sword - projectile_deflect_chance = 10 - -/mob/living/simple_animal/hostile/syndicate/ranged/space/oldcode - icon = 'icons/mob/simple_human.dmi' - icon_state = "oldcode_syndicate_gun" - icon_living = "oldcode_syndicate_gun" - name = "Syndicate Spaceman" - desc = "Death to IS-Nanotrasen." - maxHealth = 170 - health = 170 - -/obj/effect/light_emitter/blue_energy_sword - set_luminosity = 2 - set_cap = 2.5 - light_color = LIGHT_COLOR_BLUE From d2498dac0094789ad74928149e348b229d4f8918 Mon Sep 17 00:00:00 2001 From: Gristlebee <56049844+Gristlebee@users.noreply.github.com> Date: Tue, 28 May 2024 15:12:01 -0700 Subject: [PATCH 015/107] Blastdoor and Atmos Holofield ID multitool syncing (#3004) ## About The Pull Request Multitools can be used on a button with it's panel open to add a blast door or holofield controller to it's buffer. The ID can be copied onto a blast door the same way as changing it normally with a multitool. For holofields, you need to have the access mode on unlocked and it's panel closed. Adds holofield controllers to the autolathe. Changes all the span classes to span macros ## Why It's Good For The Game When you have a roundstart blast door break or holofield break for whatever reason, it's almost impossible to replace and properly resync without ripping out the rest of the blastdoors or the other holofield. This should make reconstruction more convienent. Also being able to make and use your own holofield controller adds a more intuitive way to rig up player made holofields, as currently you have to use signallers on the activation wire. ## Changelog :cl: add: Autolathe can print holofield controllers. add: You can sync blastdoors and holofields to a controller in a button with a multitool code: span macros for blast doors, buttons and holofields /:cl: --------- Signed-off-by: Gristlebee <56049844+Gristlebee@users.noreply.github.com> Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- code/game/machinery/buttons.dm | 26 +++-- code/game/machinery/doors/poddoor.dm | 34 +++--- code/game/machinery/shieldgen.dm | 109 ++++++++++-------- .../research/designs/autolathe_designs.dm | 8 ++ 4 files changed, 106 insertions(+), 71 deletions(-) diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index b10dba436e0d..f6c004ddca71 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -68,34 +68,40 @@ default_deconstruction_screwdriver(user, "button-open", "[skin]",W) update_appearance() else - to_chat(user, "Maintenance Access Denied.") + to_chat(user, span_alert("Maintenance Access Denied.")) flick("[skin]-denied", src) return if(panel_open) if(!device && istype(W, /obj/item/assembly)) if(!user.transferItemToLoc(W, src)) - to_chat(user, "\The [W] is stuck to you!") + to_chat(user, span_warning("\The [W] is stuck to you!")) return device = W - to_chat(user, "You add [W] to the button.") + to_chat(user, span_notice("You add [W] to the button.")) if(!board && istype(W, /obj/item/electronics/airlock)) if(!user.transferItemToLoc(W, src)) - to_chat(user, "\The [W] is stuck to you!") + to_chat(user, span_warning("\The [W] is stuck to you!")) return board = W if(board.one_access) req_one_access = board.accesses else req_access = board.accesses - to_chat(user, "You add [W] to the button.") + to_chat(user, span_notice("You add [W] to the button.")) + + if(device && W.tool_behaviour == TOOL_MULTITOOL) + var/obj/item/multitool/multi = W + if(istype(device, /obj/item/assembly/control)) + multi.buffer = device + to_chat(user, span_notice("You copy the [device] to your multitool's buffer.")) if(!device && !board && W.tool_behaviour == TOOL_WRENCH) - to_chat(user, "You start unsecuring the button frame...") + to_chat(user, span_notice("You start unsecuring the button frame...")) W.play_tool_sound(src) if(W.use_tool(src, user, 40)) - to_chat(user, "You unsecure the button frame.") + to_chat(user, span_notice("You unsecure the button frame.")) transfer_fingerprints_to(new /obj/item/wallframe/button(get_turf(src))) playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE) qdel(src) @@ -153,14 +159,14 @@ req_one_access = list() board = null update_appearance() - to_chat(user, "You remove electronics from the button frame.") + to_chat(user, span_notice("You remove electronics from the button frame.")) else if(skin == "doorctrl") skin = "launcher" else skin = "doorctrl" - to_chat(user, "You change the button frame's front panel.") + to_chat(user, span_notice("You change the button frame's front panel.")) return if((machine_stat & (NOPOWER|BROKEN))) @@ -170,7 +176,7 @@ return if(!allowed(user)) - to_chat(user, "Access Denied.") + to_chat(user, span_alert("Access Denied.")) flick("[skin]-denied", src) return diff --git a/code/game/machinery/doors/poddoor.dm b/code/game/machinery/doors/poddoor.dm index 4e846c26f14a..ce705c71e434 100644 --- a/code/game/machinery/doors/poddoor.dm +++ b/code/game/machinery/doors/poddoor.dm @@ -23,26 +23,32 @@ /obj/machinery/door/poddoor/attackby(obj/item/W, mob/user, params) . = ..() if((resistance_flags & INDESTRUCTIBLE) && W.tool_behaviour == TOOL_SCREWDRIVER) // This makes it so ERT members cannot cheese by opening their blast doors. - to_chat(user, "You can't find the panel!") + to_chat(user, span_warning("You can't find the panel!")) return if(W.tool_behaviour == TOOL_SCREWDRIVER) if(density) - to_chat(user, "You need to open [src] to access the maintenance panel!") + to_chat(user, span_warning("You need to open [src] to access the maintenance panel")) return else if(default_deconstruction_screwdriver(user, icon_state, icon_state, W)) - to_chat(user, "You [panel_open ? "open" : "close"] the maintenance hatch of [src].") + to_chat(user, span_notice("You [panel_open ? "open" : "close"] the maintenance hatch of [src].")) return TRUE if(panel_open && !density) if(W.tool_behaviour == TOOL_MULTITOOL) - var/change_id = input("Set [src]'s ID. It must be a number between 1 and 100.", "ID", id) as num|null - if(change_id) - id = clamp(round(change_id, 1), 1, 100) - to_chat(user, "You change the ID to [id].") + var/obj/item/multitool/multi = W + if (istype(multi.buffer,/obj/item/assembly/control)) + var/obj/item/assembly/control/controller = multi.buffer + id = controller.id + to_chat(user, span_notice("You copy the ID in your multitool's buffer into the [src].")) + else + var/change_id = input("Set [src]'s ID. It must be a number between 1 and 100.", "ID", id) as num|null + if(change_id) + id = clamp(round(change_id, 1), 1, 100) + to_chat(user, span_notice("You change the ID to [id].")) if(W.tool_behaviour == TOOL_CROWBAR) - to_chat(user, "You start to remove the airlock electronics.") + to_chat(user, span_notice("You start to remove the airlock electronics.")) if(!(machine_stat & NOPOWER)) do_sparks(5, TRUE, src) electrocute_mob(user, get_area(src), src, 1, TRUE) //fuck this fella @@ -52,9 +58,9 @@ /obj/machinery/door/poddoor/examine(mob/user) . = ..() - . += "The maintenance panel is [panel_open ? "opened" : "closed"]." + . += span_notice("The maintenance panel is [panel_open ? "opened" : "closed"].") if(panel_open) - . += "The airlock electronics are exposed and could be pried out." + . += span_notice("The airlock electronics are exposed and could be pried out.") /obj/machinery/door/poddoor/deconstruct(disassembled = TRUE, mob/user) if(!(flags_1 & NODECONSTRUCT_1)) @@ -142,9 +148,9 @@ /obj/machinery/door/poddoor/attack_alien(mob/living/carbon/alien/humanoid/user) if(density & !(resistance_flags & INDESTRUCTIBLE)) add_fingerprint(user) - user.visible_message("[user] begins prying open [src].",\ - "You begin digging your claws into [src] with all your might!",\ - "You hear groaning metal...") + user.visible_message(span_warning("[user] begins prying open [src]."),\ + span_noticealien("You begin digging your claws into [src] with all your might"),\ + span_warning("You hear groaning metal...")) playsound(src, 'sound/machines/creaking.ogg', 100, TRUE) var/time_to_open = 5 SECONDS @@ -153,7 +159,7 @@ if(do_after(user, time_to_open, TRUE, src)) if(density && !open(TRUE)) //The airlock is still closed, but something prevented it opening. (Another player noticed and bolted/welded the airlock in time!) - to_chat(user, "Despite your efforts, [src] managed to resist your attempts to open it!") + to_chat(user, span_warning("Despite your efforts, [src] managed to resist your attempts to open it!")) else return ..() diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 9f2f56e2e1ce..df865aee82e5 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -122,25 +122,23 @@ if(.) return if(locked && !issilicon(user)) - to_chat(user, "The machine is locked, you are unable to use it!") + to_chat(user, span_notice("The machine is locked, you are unable to use it!")) return if(panel_open) - to_chat(user, "The panel must be closed before operating this machine!") + to_chat(user, span_warning("The panel must be closed before operating this machine!")) return if (active) - user.visible_message("[user] deactivated \the [src].", \ - "You deactivate \the [src].", \ - "You hear heavy droning fade out.") + user.visible_message(span_notice("[user] deactivated \the [src]."), span_notice("You deactivate \the [src]."), span_hear("You hear heavy droning fade out")) shields_down() else if(anchored) - user.visible_message("[user] activated \the [src].", \ - "You activate \the [src].", \ - "You hear heavy droning.") + user.visible_message(span_notice("[user] activated \the [src]."), \ + span_notice("You activate \the [src]."), \ + span_hear("You hear heavy droning.")) shields_up() else - to_chat(user, "The device must first be secured to the floor!") + to_chat(user, span_warning("The device must first be secured to the floor!")) return /obj/machinery/shieldgen/attackby(obj/item/W, mob/user, params) @@ -148,60 +146,60 @@ W.play_tool_sound(src, 100) panel_open = !panel_open if(panel_open) - to_chat(user, "You open the panel and expose the wiring.") + to_chat(user, span_notice("You open the panel and expose the wiring.")) else - to_chat(user, "You close the panel.") + to_chat(user, span_notice("You close the panel.")) else if(istype(W, /obj/item/stack/cable_coil) && (machine_stat & BROKEN) && panel_open) var/obj/item/stack/cable_coil/coil = W if (coil.get_amount() < 1) - to_chat(user, "You need one length of cable to repair [src]!") + to_chat(user, span_warning("You need one length of cable to repair [src]!")) return - to_chat(user, "You begin to replace the wires...") + to_chat(user, span_notice("You begin to replace the wires...")) if(do_after(user, 30, target = src)) if(coil.get_amount() < 1) return coil.use(1) obj_integrity = max_integrity set_machine_stat(machine_stat & ~BROKEN) - to_chat(user, "You repair \the [src].") + to_chat(user, span_notice("You repair \the [src].")) update_appearance() else if(W.tool_behaviour == TOOL_WRENCH) if(locked) - to_chat(user, "The bolts are covered! Unlocking this would retract the covers.") + to_chat(user, span_warning("The bolts are covered! Unlocking this would retract the covers.")) return if(!anchored && !isinspace()) W.play_tool_sound(src, 100) - to_chat(user, "You secure \the [src] to the floor!") + to_chat(user, span_notice("You secure \the [src] to the floor!")) set_anchored(TRUE) else if(anchored) W.play_tool_sound(src, 100) - to_chat(user, "You unsecure \the [src] from the floor!") + to_chat(user, span_notice("You unsecure \the [src] from the floor!")) if(active) - to_chat(user, "\The [src] shuts off!") + to_chat(user, span_notice("\The [src] shuts off!")) shields_down() set_anchored(FALSE) else if(W.GetID()) if(allowed(user) && !(obj_flags & EMAGGED)) locked = !locked - to_chat(user, "You [locked ? "lock" : "unlock"] the controls.") + to_chat(user, span_notice("You [locked ? "lock" : "unlock"] the controls.")) else if(obj_flags & EMAGGED) - to_chat(user, "Error, access controller damaged!") + to_chat(user, span_danger("Error, access controller damaged!")) else - to_chat(user, "Access denied.") + to_chat(user, span_danger("Access denied.")) else return ..() /obj/machinery/shieldgen/emag_act(mob/user) if(obj_flags & EMAGGED) - to_chat(user, "The access controller is damaged!") + to_chat(user, span_warning("The access controller is damaged!")) return obj_flags |= EMAGGED locked = FALSE playsound(src, "sparks", 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - to_chat(user, "You short out the access controller.") + to_chat(user, span_warning("You short out the access controller.")) /obj/machinery/shieldgen/update_icon_state() icon_state = "shield[active ? "on" : "off"][(machine_stat & BROKEN) ? "br" : null]" @@ -275,9 +273,7 @@ if(!active_power_usage || surplus() >= active_power_usage) add_load(active_power_usage) else - visible_message("The [src.name] shuts down due to lack of power!", \ - "If this message is ever seen, something is wrong.", - "You hear heavy droning fade out.") + visible_message(span_danger("The [src.name] shuts down due to lack of power!"), "If this message is ever seen, something is wrong.",span_hear("You hear heavy droning fade out.Turn off the shield generator first!") + to_chat(user, span_warning("Turn off the shield generator first!")) return FAILED_UNFASTEN return ..() @@ -388,11 +384,11 @@ if(item.GetID()) if(allowed(user) && !(obj_flags & EMAGGED)) locked = !locked - to_chat(user, "You [src.locked ? "lock" : "unlock"] the controls.") + to_chat(user, span_notice("You [src.locked ? "lock" : "unlock"] the controls.")) else if(obj_flags & EMAGGED) - to_chat(user, "Error, access controller damaged!") + to_chat(user, span_danger("Error, access controller damaged!")) else - to_chat(user, "Access denied.") + to_chat(user, span_danger("Access denied.")) else add_fingerprint(user) @@ -406,25 +402,23 @@ shock(user,50) return if(!anchored) - to_chat(user, "\The [src] needs to be firmly secured to the floor first!") + to_chat(user, span_warning("\The [src] needs to be firmly secured to the floor first!")) return if(locked && !issilicon(user)) - to_chat(user, "The controls are locked!") + to_chat(user, span_warning("The controls are locked!")) return if(!powernet) - to_chat(user, "\The [src] needs to be powered by a wire!") + to_chat(user, span_warning("\The [src] needs to be powered by a wire!")) return if(active) - user.visible_message("[user] turned \the [src] off.", \ - "You turn off \the [src].", \ - "You hear heavy droning fade out.") + user.visible_message(span_notice("[user] turned \the [src] off."), \ + span_notice("You turn off \the [src]."), \ + span_hear("You hear heavy droning fade out.")) active = FALSE log_game("[src] was deactivated by [key_name(user)] at [AREACOORD(src)]") else - user.visible_message("[user] turned \the [src] on.", \ - "You turn on \the [src].", \ - "You hear heavy droning.") + user.visible_message(span_notice("[user] turned \the [src] on."), span_notice("ou turn on \the [src]."), span_hear("ou hear heavy droning.")) active = ACTIVE_SETUPFIELDS log_game("[src] was activated by [key_name(user)] at [AREACOORD(src)]") add_fingerprint(user) @@ -435,28 +429,28 @@ if(!powernet) return if(active) - visible_message("The [src.name] hums as it powers down.", \ + visible_message(span_notice("The [src.name] hums as it powers down."), \ "If this message is ever seen, something is wrong.", \ - "You hear heavy droning fade out.") + span_notice("You hear heavy droning fade out.")) playsound(src, 'sound/machines/synth_no.ogg', 50, TRUE, frequency = 6120) active = FALSE log_game("[src] was deactivated by wire pulse at [AREACOORD(src)]") else - visible_message("The [src.name] beeps as it powers up.", \ + visible_message(span_notice("The [src.name] beeps as it powers up."), \ "If this message is ever seen, something is wrong.", \ - "You hear heavy droning.") + span_notice("You hear heavy droning.")) playsound(src, 'sound/machines/synth_yes.ogg', 50, TRUE, frequency = 6120) active = ACTIVE_SETUPFIELDS log_game("[src] was activated by wire pulse at [AREACOORD(src)]") /obj/machinery/power/shieldwallgen/emag_act(mob/user) if(obj_flags & EMAGGED) - to_chat(user, "The access controller is damaged!") + to_chat(user, span_warning("The access controller is damaged!")) return obj_flags |= EMAGGED locked = FALSE playsound(src, "sparks", 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - to_chat(user, "You short out the access controller.") + to_chat(user, span_warning("You short out the access controller.")) /obj/machinery/power/shieldwallgen/proc/shock(mob/user, prb) if(machine_stat & (BROKEN|NOPOWER)) // unpowered, no shock @@ -511,10 +505,31 @@ /obj/machinery/power/shieldwallgen/atmos/proc/can_be_rotated(mob/user, rotation_type) if (anchored) - to_chat(user, "It is fastened to the floor!") + to_chat(user, span_warning("It is fastened to the floor!")) return FALSE return TRUE +/obj/machinery/power/shieldwallgen/atmos/attacked_by(obj/item/I, mob/living/user) + if(I.tool_behaviour == TOOL_MULTITOOL) + var/obj/item/multitool/multi = I + if(!panel_open && !locked) + if(istype(multi.buffer,/obj/item/assembly/control/shieldwallgen)) + var/obj/item/assembly/control/shieldwallgen/controller = multi.buffer + to_chat(user, span_notice("You copy the ID in your multitool's buffer to the [src].")) + id = controller.id + return TRUE + + else + to_chat(user, span_warning("The controls are locked!")) + return + + return ..() + +/obj/machinery/power/shieldwallgen/atmos/multitool_act(mob/living/user, obj/item/I) + . = ..() + + + /// Same as in the normal shieldwallgen, but with the shieldwalls replaced with atmos shieldwalls /obj/machinery/power/shieldwallgen/atmos/setup_field(direction) if(!direction) @@ -586,7 +601,7 @@ setDir(get_dir(gen_primary, gen_secondary)) if(hardshield == TRUE) for(var/mob/living/victim in get_turf(src)) - visible_message("\The [src] is suddenly occupying the same space as \the [victim]!") + visible_message(span_danger("\The [src] is suddenly occupying the same space as \the [victim]!")) victim.gib() /obj/machinery/shieldwall/Destroy() diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index 8a0c572015db..e39d48e5cc77 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -1191,6 +1191,14 @@ build_path = /obj/item/assembly/control category = list("initial","Misc") +/datum/design/holofield_control + name = "Holofield Controller" + id = "holofield" + build_type = AUTOLATHE + materials = list(/datum/material/iron = 100, /datum/material/glass = 50) + build_path = /obj/item/assembly/control/shieldwallgen + category = list("initial","Misc") + /datum/design/trashbag name="Trash Bag" id="trashbag" From 11b0b255a1f233003cc97a4c71e84fb2eccd28c8 Mon Sep 17 00:00:00 2001 From: Imaginos16 <77556824+Imaginos16@users.noreply.github.com> Date: Tue, 28 May 2024 20:25:24 -0700 Subject: [PATCH 016/107] Adds Representation For The Solarian Marine Biologist's Society (#3032) ## About The Pull Request Does what it says on the tin. Those marine biologists really need representation you know? ![image](https://github.com/shiptest-ss13/Shiptest/assets/77556824/88f13d8f-34ef-407c-9ddd-89cc86decdcc) ## Why It's Good For The Game It looks cute. I intend to add more when I can figure out jokes for each of them. ## Changelog :cl: PositiveEntropy add: Solarian Marine Bi-ologists now have proper representation in the form of a cute cloak! /:cl: --------- Co-authored-by: FalloutFalcon --- .../icemoon_surface_corporate_rejects.dmm | 8 +- _maps/RandomRuins/SpaceRuins/crashedship.dmm | 2 +- .../WasteRuins/wasteplanet_clowncrash.dmm | 2 +- .../wasteplanet_fortress_of_solitide.dmm | 32 +++-- .../nanotrasen/nanotrasen_skipper.dmm | 2 +- code/__DEFINES/icon_smoothing.dm | 1 - code/controllers/subsystem/traumas.dm | 2 +- .../components/crafting/recipes/misc.dm | 7 ++ code/datums/components/remote_materials.dm | 2 +- code/datums/materials/basemats.dm | 86 ++------------ .../game/gamemodes/clown_ops/clown_weapons.dm | 6 +- code/game/machinery/doors/airlock_types.dm | 10 -- code/game/machinery/recycler.dm | 2 +- .../objects/items/stacks/sheets/mineral.dm | 109 +++++------------- .../items/stacks/sheets/sheet_types.dm | 50 -------- .../items/stacks/tiles/tile_mineral.dm | 10 -- code/game/objects/items/storage/boxes.dm | 4 +- .../crates_lockers/closets/syndicate.dm | 2 +- .../objects/structures/door_assembly_types.dm | 8 -- code/game/objects/structures/false_walls.dm | 13 --- code/game/objects/structures/girders.dm | 12 +- .../structures/icemoon/cave_entrance.dm | 30 +++-- code/game/objects/structures/spawner.dm | 2 +- code/game/objects/structures/statues.dm | 2 +- code/game/turfs/closed/_closed.dm | 41 ------- code/game/turfs/closed/minerals.dm | 13 +-- code/game/turfs/closed/wall/mineral_walls.dm | 18 --- code/game/turfs/closed/wall/misc_walls.dm | 2 +- code/game/turfs/open/floor/mineral_floor.dm | 42 ------- code/game/turfs/open/lava.dm | 21 +++- code/modules/antagonists/cult/blood_magic.dm | 2 +- code/modules/antagonists/cult/cult.dm | 17 +-- .../antagonists/cult/cult_structures.dm | 2 +- code/modules/cargo/bounties/special.dm | 8 +- code/modules/cargo/bounty.dm | 2 +- code/modules/cargo/exports/materials.dm | 21 +--- code/modules/clothing/shoes/bananashoes.dm | 8 +- code/modules/clothing/suits/cloaks.dm | 5 + .../recipes/tablecraft/recipes_soup.dm | 2 +- code/modules/mining/abandoned_crates.dm | 2 +- code/modules/mining/equipment/mining_tools.dm | 2 + code/modules/mining/machine_processing.dm | 2 +- code/modules/mining/machine_redemption.dm | 2 +- code/modules/mining/machine_silo.dm | 2 +- code/modules/mining/minebot.dm | 2 +- code/modules/mining/mint.dm | 5 +- code/modules/mining/money_bag.dm | 2 +- code/modules/mining/ores_coins.dm | 33 ++---- .../projectiles/guns/ballistic/pistol.dm | 6 + .../reagents/chemistry/recipes/others.dm | 2 +- .../chemistry/recipes/slime_extracts.dm | 2 +- .../designs/mechfabricator_designs.dm | 22 ++-- .../research/designs/medical_designs.dm | 2 +- code/modules/research/designs/misc_designs.dm | 2 +- .../xenobiology/crossbreeding/charged.dm | 2 +- icons/effects/ore_visuals.dmi | Bin 22791 -> 21414 bytes icons/mob/clothing/belt.dmi | Bin 30611 -> 32413 bytes icons/mob/clothing/belt_mirror.dmi | Bin 62055 -> 65317 bytes icons/mob/clothing/neck.dmi | Bin 100787 -> 109602 bytes icons/mob/inhands/misc/sheets_lefthand.dmi | Bin 8412 -> 5744 bytes icons/mob/inhands/misc/sheets_righthand.dmi | Bin 9280 -> 7962 bytes icons/mob/inhands/weapons/guns_lefthand.dmi | Bin 106692 -> 107205 bytes icons/mob/inhands/weapons/guns_righthand.dmi | Bin 110757 -> 111147 bytes icons/obj/clothing/cloaks.dmi | Bin 27607 -> 28046 bytes icons/obj/guns/projectile.dmi | Bin 46428 -> 46505 bytes icons/obj/ores.dmi | Bin 3957 -> 8098 bytes icons/obj/stack_objects.dmi | Bin 50559 -> 44543 bytes icons/turf/walls/bananium_wall.dmi | Bin 5785 -> 0 bytes 68 files changed, 188 insertions(+), 510 deletions(-) delete mode 100644 icons/turf/walls/bananium_wall.dmi diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm index 28a963ed476a..add7c0f50743 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_corporate_rejects.dmm @@ -84,8 +84,8 @@ "cN" = ( /obj/structure/safe/floor, /obj/item/hand_tele, -/obj/item/stack/sheet/mineral/adamantine, -/obj/item/stack/sheet/mineral/adamantine, +/obj/item/stack/sheet/mineral/hidden/hellstone, +/obj/item/stack/sheet/mineral/hidden/hellstone, /turf/open/floor/plating/asteroid/snow/icemoon, /area/ruin/unpowered/corprejectrooms) "cP" = ( @@ -1726,11 +1726,11 @@ /obj/item/spacecash/bundle/c1000, /obj/item/spacecash/bundle/c1000, /obj/item/stack/sheet/bluespace_crystal/five, -/obj/item/stack/sheet/mineral/bananium{ +/obj/item/stack/sheet/mineral/hidden/hellstone{ amount = 15 }, /obj/item/stack/sheet/mineral/gold/twenty, -/obj/item/stack/sheet/mineral/runite/ten, +/obj/item/stack/sheet/mineral/hidden/hellstone/ten, /obj/item/toy/figure/captain, /obj/item/organ/cyberimp/brain/anti_stun, /obj/item/disk/design_disk/adv/knight_gear, diff --git a/_maps/RandomRuins/SpaceRuins/crashedship.dmm b/_maps/RandomRuins/SpaceRuins/crashedship.dmm index 9a154053c0bf..358b08790095 100644 --- a/_maps/RandomRuins/SpaceRuins/crashedship.dmm +++ b/_maps/RandomRuins/SpaceRuins/crashedship.dmm @@ -2232,7 +2232,7 @@ /turf/closed/mineral/diamond, /area/awaymission/BMPship) "hw" = ( -/turf/closed/mineral/bananium, +/turf/closed/mineral/bscrystal, /area/awaymission/BMPship) "hE" = ( /turf/closed/wall/mineral/titanium/nodiagonal, diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_clowncrash.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_clowncrash.dmm index ae2434a3ca45..11c0ecc1a2ff 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_clowncrash.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_clowncrash.dmm @@ -96,7 +96,7 @@ /area/overmap_encounter/planetoid/cave/explored) "r" = ( /obj/structure/table/reinforced, -/obj/item/stack/ore/bananium, +/obj/item/stack/ore/hellstone, /turf/open/floor/plating/asteroid, /area/overmap_encounter/planetoid/cave/explored) "s" = ( diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm index 73735c65542b..227bbf0c0338 100644 --- a/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_fortress_of_solitide.dmm @@ -342,7 +342,7 @@ "cX" = ( /obj/structure/statue/bananium/clown, /obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "dg" = ( /obj/structure/sign/poster/contraband/eat, @@ -430,7 +430,7 @@ /area/ruin/powered) "ed" = ( /obj/item/trash/cheesie, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "ee" = ( /obj/machinery/photocopier, @@ -578,12 +578,8 @@ /turf/open/floor/plating/rust, /area/ruin/powered) "fk" = ( -/obj/machinery/door/airlock/bananium{ - name = "Clown Embassy"; - dir = 4 - }, /obj/item/grown/bananapeel, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "fn" = ( /obj/effect/gibspawner/human, @@ -695,7 +691,7 @@ /area/ruin/powered) "go" = ( /obj/machinery/light/small/directional/west, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "gp" = ( /mob/living/simple_animal/hostile/rat, @@ -735,7 +731,7 @@ /turf/open/floor/plating, /area/ruin/powered) "gL" = ( -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "gM" = ( /obj/structure/rack, @@ -762,7 +758,7 @@ /area/ruin/powered) "hd" = ( /obj/item/reagent_containers/food/snacks/cakeslice/clown_slice, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "he" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ @@ -1123,7 +1119,7 @@ /obj/effect/decal/cleanable/blood, /obj/effect/mob_spawn/human/clown/corpse, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "kO" = ( /obj/item/trash/chips, @@ -1133,7 +1129,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "kS" = ( /obj/effect/decal/cleanable/blood, @@ -1507,7 +1503,7 @@ /obj/item/pneumatic_cannon/pie, /obj/item/reagent_containers/spray/waterflower/lube, /obj/machinery/light/small/directional/east, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "nK" = ( /obj/structure/table, @@ -2375,7 +2371,7 @@ /obj/effect/decal/cleanable/blood, /obj/effect/mob_spawn/human/clown/corpse, /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "vX" = ( /obj/item/ammo_casing, @@ -2773,7 +2769,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/generic, /obj/item/trash/cheesie, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "Aa" = ( /obj/effect/decal/cleanable/dirt/dust, @@ -3113,7 +3109,7 @@ /area/ruin/powered) "Cy" = ( /obj/structure/closet/cardboard, -/obj/item/coin/bananium, +/obj/item/coin/hellstone, /obj/item/reagent_containers/food/snacks/soup/clownstears, /turf/open/floor/plating, /area/ruin/powered) @@ -4333,7 +4329,7 @@ "Ow" = ( /obj/structure/table/wood/fancy/orange, /obj/item/clothing/under/rank/civilian/clown/rainbow, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "Ox" = ( /obj/effect/decal/cleanable/dirt/dust, @@ -4422,7 +4418,7 @@ /area/ruin/powered) "Pr" = ( /obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/bananium, +/turf/open/floor/mineral/gold, /area/ruin/powered) "Px" = ( /mob/living/simple_animal/hostile/rat, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm index 436d6185ee54..93c59445ee41 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm @@ -2868,7 +2868,7 @@ pixel_x = 4; pixel_y = 8 }, -/obj/item/coin/adamantine{ +/obj/item/coin/hellstone{ pixel_x = -12; pixel_y = -3 }, diff --git a/code/__DEFINES/icon_smoothing.dm b/code/__DEFINES/icon_smoothing.dm index 6c07dd234392..ff1072ffdbad 100644 --- a/code/__DEFINES/icon_smoothing.dm +++ b/code/__DEFINES/icon_smoothing.dm @@ -99,7 +99,6 @@ DEFINE_BITFIELD(smoothing_flags, list( #define SMOOTH_GROUP_SILVER_WALLS S_OBJ(3) ///turf/closed/wall/mineral/silver, /obj/structure/falsewall/silver #define SMOOTH_GROUP_DIAMOND_WALLS S_OBJ(4) ///turf/closed/wall/mineral/diamond, /obj/structure/falsewall/diamond #define SMOOTH_GROUP_PLASMA_WALLS S_OBJ(5) ///turf/closed/wall/mineral/plasma, /obj/structure/falsewall/plasma -#define SMOOTH_GROUP_BANANIUM_WALLS S_OBJ(6) ///turf/closed/wall/mineral/bananium, /obj/structure/falsewall/bananium #define SMOOTH_GROUP_SANDSTONE_WALLS S_OBJ(7) ///turf/closed/wall/mineral/sandstone, /obj/structure/falsewall/sandstone #define SMOOTH_GROUP_WOOD_WALLS S_OBJ(8) ///turf/closed/wall/mineral/wood, /obj/structure/falsewall/wood #define SMOOTH_GROUP_IRON_WALLS S_OBJ(9) ///turf/closed/wall/mineral/iron, /obj/structure/falsewall/iron diff --git a/code/controllers/subsystem/traumas.dm b/code/controllers/subsystem/traumas.dm index 6eaf530d2100..d65663a59e99 100644 --- a/code/controllers/subsystem/traumas.dm +++ b/code/controllers/subsystem/traumas.dm @@ -128,7 +128,7 @@ SUBSYSTEM_DEF(traumas) /obj/item/melee/cultblade, /obj/item/cult_bastard, /obj/item/restraints/legcuffs/bola/cult, /obj/item/clothing/suit/space/hardsuit/cult, /obj/item/clothing/suit/hooded/cultrobes, /obj/item/clothing/head/hooded/cult_hoodie, /obj/effect/rune, - /obj/item/stack/sheet/runed_metal, /obj/machinery/door/airlock/cult, /obj/singularity/narsie, + /obj/machinery/door/airlock/cult, /obj/singularity/narsie, /obj/item/soulstone, /obj/item/clothing/suit/wizrobe, /obj/item/clothing/head/wizard, /obj/item/spellbook, /obj/item/staff, /obj/item/clothing/suit/space/hardsuit/shielded/wizard, /obj/item/clothing/suit/space/hardsuit/wizard, diff --git a/code/datums/components/crafting/recipes/misc.dm b/code/datums/components/crafting/recipes/misc.dm index 4df0521bcff3..0ed4acb5be78 100644 --- a/code/datums/components/crafting/recipes/misc.dm +++ b/code/datums/components/crafting/recipes/misc.dm @@ -211,3 +211,10 @@ /obj/item/organ/heart = 1, /obj/item/stack/sheet/cotton/cloth = 3) category = CAT_MISC + +/datum/crafting_recipe/candorupgrade + name = "Candor Upgrade" + result = /obj/item/gun/ballistic/automatic/pistol/candor/phenex + reqs = list(/obj/item/stack/sheet/mineral/hidden = 4, + /obj/item/gun/ballistic/automatic/pistol/candor = 1) + category = CAT_MISC diff --git a/code/datums/components/remote_materials.dm b/code/datums/components/remote_materials.dm index de61c13ae295..2f3aa79749b2 100644 --- a/code/datums/components/remote_materials.dm +++ b/code/datums/components/remote_materials.dm @@ -52,7 +52,7 @@ handles linking back and forth. /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, - /datum/material/bananium, + /datum/material/hellstone, /datum/material/titanium, /datum/material/bluespace, /datum/material/plastic, diff --git a/code/datums/materials/basemats.dm b/code/datums/materials/basemats.dm index 98db1541c953..ed8dd509ec3b 100644 --- a/code/datums/materials/basemats.dm +++ b/code/datums/materials/basemats.dm @@ -127,30 +127,6 @@ Unless you know what you're doing, only use the first three numbers. They're in ore_type = /obj/item/stack/ore/bluespace_crystal value_per_unit = 0.15 -///Honks and slips -/datum/material/bananium - name = "bananium" - id = "bananium" - desc = "Material with hilarious properties" - color = "#ffff00" //obnoxiously bright yellow - categories = list(MAT_CATEGORY_ORE = TRUE, MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) - sheet_type = /obj/item/stack/sheet/mineral/bananium - ore_type = /obj/item/stack/ore/bananium - value_per_unit = 0.5 - beauty_modifier = 0.5 - armor_modifiers = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 100, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0) //Clowns cant be blown away. - -/datum/material/bananium/on_applied(atom/source, amount, material_flags) - . = ..() - source.LoadComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 50, falloff_exponent = 20) - source.AddComponent(/datum/component/slippery, min(amount / 10, 80)) - - -/datum/material/bananium/on_removed(atom/source, amount, material_flags) - . = ..() - qdel(source.GetComponent(/datum/component/slippery)) - qdel(source.GetComponent(/datum/component/squeak)) - ///Mediocre force increase /datum/material/titanium @@ -166,18 +142,6 @@ Unless you know what you're doing, only use the first three numbers. They're in beauty_modifier = 0.05 armor_modifiers = list("melee" = 1.35, "bullet" = 1.3, "laser" = 1.3, "energy" = 1.25, "bomb" = 1.25, "bio" = 1, "rad" = 1, "fire" = 0.7, "acid" = 1) -/datum/material/runite - name = "runite" - id = "runite" - desc = "Runite" - color = "#3F9995" - strength_modifier = 1.3 - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) - sheet_type = /obj/item/stack/sheet/mineral/runite - value_per_unit = 0.3 - beauty_modifier = 0.5 - armor_modifiers = list("melee" = 1.35, "bullet" = 2, "laser" = 0.5, "energy" = 1.25, "bomb" = 1.25, "bio" = 1, "rad" = 1, "fire" = 1.4, "acid" = 1) //rune is weak against magic lasers but strong against bullets. This is the combat triangle. - ///Force decrease /datum/material/plastic name = "plastic" @@ -224,42 +188,20 @@ Unless you know what you're doing, only use the first three numbers. They're in var/obj/wooden = source wooden.resistance_flags &= ~FLAMMABLE -///Stronk force increase -/datum/material/adamantine - name = "adamantine" - id = "adamantine" - desc = "A powerful material made out of magic, I mean science!" - color = "#6d7e8e" +//Remember when the theme used to be "Eerie" before 1.3? Good times. +/datum/material/hellstone + name = "hellstone" + id = "hellstone" + desc = "A colloquialism given to millenia-old slag, heat-treated through the eons in deep magma." + color = "#ffaf5e" strength_modifier = 1.5 categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) - sheet_type = /obj/item/stack/sheet/mineral/adamantine + sheet_type = /obj/item/stack/sheet/mineral/hidden/hellstone + ore_type = /obj/item/stack/ore/hellstone value_per_unit = 0.25 beauty_modifier = 0.4 armor_modifiers = list("melee" = 1.5, "bullet" = 1.5, "laser" = 1.3, "energy" = 1.3, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 2.5, "acid" = 1) -///RPG Magic. -/datum/material/mythril - name = "mythril" - id = "mythril" - desc = "How this even exists is byond me" - color = "#f2d5d7" - categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) - sheet_type = /obj/item/stack/sheet/mineral/mythril - value_per_unit = 0.75 - strength_modifier = 1.2 - armor_modifiers = list("melee" = 1.5, "bullet" = 1.5, "laser" = 1.5, "energy" = 1.5, "bomb" = 1.5, "bio" = 1.5, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5) - beauty_modifier = 0.5 - -/datum/material/mythril/on_applied_obj(atom/source, amount, material_flags) - . = ..() - if(istype(source, /obj/item)) - source.AddComponent(/datum/component/fantasy) - -/datum/material/mythril/on_removed_obj(atom/source, material_flags) - . = ..() - if(istype(source, /obj/item)) - qdel(source.GetComponent(/datum/component/fantasy)) - //formed when freon react with o2, emits a lot of plasma when heated /datum/material/hot_ice name = "hot ice" @@ -323,18 +265,6 @@ Unless you know what you're doing, only use the first three numbers. They're in turf_sound_override = FOOTSTEP_SAND texture_layer_icon_state = "sand" -/datum/material/runedmetal - name = "runed metal" - id = "runed metal" - desc = "Mir'ntrath barhah Nar'sie." - color = "#3C3434" - categories = list(MAT_CATEGORY_RIGID = TRUE) - sheet_type = /obj/item/stack/sheet/runed_metal - value_per_unit = 0.75 - armor_modifiers = list("melee" = 1.2, "bullet" = 1.2, "laser" = 1, "energy" = 1, "bomb" = 1.2, "bio" = 1.2, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5) - beauty_modifier = -0.15 - texture_layer_icon_state = "runed" - /datum/material/bronze name = "bronze" id = "bronze" diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm index fe95ea3c5988..3064a52a48ad 100644 --- a/code/game/gamemodes/clown_ops/clown_weapons.dm +++ b/code/game/gamemodes/clown_ops/clown_weapons.dm @@ -40,14 +40,14 @@ /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/Initialize() . = ..() var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) - bananium.insert_amount_mat(max_recharge, /datum/material/bananium) + bananium.insert_amount_mat(max_recharge, /datum/material/hellstone) START_PROCESSING(SSobj, src) /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/process() var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) - var/bananium_amount = bananium.get_material_amount(/datum/material/bananium) + var/bananium_amount = bananium.get_material_amount(/datum/material/hellstone) if(bananium_amount < max_recharge) - bananium.insert_amount_mat(min(recharge_rate, max_recharge - bananium_amount), /datum/material/bananium) + bananium.insert_amount_mat(min(recharge_rate, max_recharge - bananium_amount), /datum/material/hellstone) /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/attack_self(mob/user) ui_action_click(user) diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 8e0ed982b501..492ce30f6ac4 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -264,17 +264,7 @@ opacity = FALSE glass = TRUE -/obj/machinery/door/airlock/bananium - name = "bananium airlock" - desc = "Honkhonkhonk" - icon = 'icons/obj/doors/airlocks/station/bananium.dmi' - assemblytype = /obj/structure/door_assembly/door_assembly_bananium - doorOpen = 'sound/items/bikehorn.ogg' - has_hatch = FALSE -/obj/machinery/door/airlock/bananium/glass - opacity = FALSE - glass = TRUE /obj/machinery/door/airlock/sandstone name = "sandstone airlock" diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index af0c08162311..82265e244448 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -21,7 +21,7 @@ /obj/machinery/recycler/Initialize() AddComponent(/datum/component/butchering/recycler, 1, amount_produced,amount_produced/5) - AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/plasma, /datum/material/gold, /datum/material/diamond, /datum/material/plastic, /datum/material/uranium, /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace), INFINITY, FALSE, null, null, null, TRUE) + AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/plasma, /datum/material/gold, /datum/material/diamond, /datum/material/plastic, /datum/material/uranium, /datum/material/hellstone, /datum/material/titanium, /datum/material/bluespace), INFINITY, FALSE, null, null, null, TRUE) . = ..() update_appearance() req_one_access = get_all_accesses() + get_all_centcom_access() diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index e3ef63e116d4..9fc6fa808a46 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -332,32 +332,6 @@ GLOBAL_LIST_INIT(silver_recipes, list ( \ /obj/item/stack/sheet/mineral/silver/five amount = 5 -/* - * Clown - */ -/obj/item/stack/sheet/mineral/bananium - name = "bananium" - icon_state = "sheet-bananium" - item_state = "sheet-bananium" - singular_name = "bananium sheet" - sheettype = "bananium" - custom_materials = list(/datum/material/bananium=MINERAL_MATERIAL_AMOUNT) - - grind_results = list(/datum/reagent/consumable/banana = 20) - point_value = 50 - merge_type = /obj/item/stack/sheet/mineral/bananium - material_type = /datum/material/bananium - walltype = /turf/closed/wall/mineral/bananium - -GLOBAL_LIST_INIT(bananium_recipes, list ( \ - new/datum/stack_recipe("bananium tile", /obj/item/stack/tile/mineral/bananium, 1, 4, 20), \ - new/datum/stack_recipe("Clown Statue", /obj/structure/statue/bananium/clown, 5, one_per_turf = 1, on_floor = 1), \ - )) - -/obj/item/stack/sheet/mineral/bananium/get_main_recipes() - . = ..() - . += GLOB.bananium_recipes - /* * Titanium */ @@ -436,7 +410,6 @@ GLOBAL_LIST_INIT(plastitanium_recipes, list ( \ . = ..() . += GLOB.plastitanium_recipes - /* * Snow */ @@ -465,56 +438,6 @@ GLOBAL_LIST_INIT(snow_recipes, list ( \ . = ..() . += GLOB.snow_recipes -/****************************** Others ****************************/ - -/* - * Adamantine -*/ - -/obj/item/stack/sheet/mineral/adamantine - name = "adamantine" - icon_state = "sheet-adamantine" - item_state = "sheet-adamantine" - singular_name = "adamantine sheet" - custom_materials = list(/datum/material/adamantine=MINERAL_MATERIAL_AMOUNT) - merge_type = /obj/item/stack/sheet/mineral/adamantine - grind_results = list(/datum/reagent/liquidadamantine = 10) - -/obj/item/stack/sheet/mineral/adamantine/ten - amount = 10 - -/* - * Runite - */ - -/obj/item/stack/sheet/mineral/runite - name = "runite" - desc = "Rare material found in distant lands." - singular_name = "runite bar" - icon_state = "sheet-runite" - item_state = "sheet-runite" - custom_materials = list(/datum/material/runite=MINERAL_MATERIAL_AMOUNT) - merge_type = /obj/item/stack/sheet/mineral/runite - material_type = /datum/material/runite - -/obj/item/stack/sheet/mineral/runite/ten - amount = 10 - -/* - * Mythril - */ -/obj/item/stack/sheet/mineral/mythril - name = "mythril" - icon_state = "sheet-mythril" - item_state = "sheet-mythril" - singular_name = "mythril sheet" - novariants = TRUE - custom_materials = list(/datum/material/mythril=MINERAL_MATERIAL_AMOUNT) - merge_type = /obj/item/stack/sheet/mineral/mythril - -/obj/item/stack/sheet/mineral/mythril/ten - amount = 10 - /* * Alien Alloy */ @@ -573,3 +496,35 @@ GLOBAL_LIST_INIT(abductor_recipes, list ( \ /obj/item/stack/sheet/mineral/coal/ten amount = 10 + +/* + * Hellstone + */ +/obj/item/stack/sheet/mineral/hidden + name = "????????" + singular_name = "????????" + +/obj/item/stack/sheet/mineral/hidden/hellstone + name = "hellstone" + icon_state = "sheet-hellstone" + item_state = "sheet-hellstone" + singular_name = "hellstone bar" + sheettype = "hellstone" + resistance_flags = FIRE_PROOF | LAVA_PROOF + custom_materials = list(/datum/material/hellstone=MINERAL_MATERIAL_AMOUNT) + grind_results = list(/datum/reagent/clf3 = 5) + point_value = 20 + merge_type = /obj/item/stack/sheet/mineral/hidden/hellstone + material_type = /datum/material/hellstone + +/obj/item/stack/sheet/mineral/hidden/hellstone/fifty + amount = 50 + +/obj/item/stack/sheet/mineral/hidden/hellstone/twenty + amount = 20 + +/obj/item/stack/sheet/mineral/hidden/hellstone/ten + amount = 10 + +/obj/item/stack/sheet/mineral/hidden/hellstone/five + amount = 5 diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 00f995ed70dd..68a6772bb4e4 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -31,10 +31,6 @@ tableVariant = /obj/structure/table material_type = /datum/material/iron -/obj/item/stack/sheet/metal/narsie_act() - new /obj/item/stack/sheet/runed_metal(loc, amount) - qdel(src) - /obj/item/stack/sheet/metal/fifty amount = 50 @@ -444,52 +440,6 @@ GLOBAL_LIST_INIT(cardboard_recipes, list ( \ else . = ..() - -/* - * Runed Metal - */ - -GLOBAL_LIST_INIT(runed_metal_recipes, list ( \ - new/datum/stack_recipe("runed door", /obj/machinery/door/airlock/cult, 1, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("runed girder", /obj/structure/girder/cult, 1, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("pylon", /obj/structure/destructible/cult/pylon, 4, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("forge", /obj/structure/destructible/cult/forge, 3, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("archives", /obj/structure/destructible/cult/tome, 3, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("altar", /obj/structure/destructible/cult/talisman, 3, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ - )) - -/obj/item/stack/sheet/runed_metal - name = "runed metal" - desc = "Sheets of cold metal with shifting inscriptions writ upon them." - singular_name = "runed metal sheet" - icon_state = "sheet-runed" - item_state = "sheet-runed" - icon = 'icons/obj/stack_objects.dmi' - custom_materials = list(/datum/material/runedmetal = MINERAL_MATERIAL_AMOUNT) - merge_type = /obj/item/stack/sheet/runed_metal - novariants = TRUE - grind_results = list(/datum/reagent/iron = 5, /datum/reagent/blood = 15) - material_type = /datum/material/runedmetal - -/obj/item/stack/sheet/runed_metal/attack_self(mob/living/user) - if(!iscultist(user)) - to_chat(user, "Only one with forbidden knowledge could hope to work this metal...") - return FALSE - return ..() - -/obj/item/stack/sheet/runed_metal/get_main_recipes() - . = ..() - . += GLOB.runed_metal_recipes - -/obj/item/stack/sheet/runed_metal/fifty - amount = 50 - -/obj/item/stack/sheet/runed_metal/ten - amount = 10 - -/obj/item/stack/sheet/runed_metal/five - amount = 5 - /* * Bronze */ diff --git a/code/game/objects/items/stacks/tiles/tile_mineral.dm b/code/game/objects/items/stacks/tiles/tile_mineral.dm index c5e05b5212fc..ad00f3902c50 100644 --- a/code/game/objects/items/stacks/tiles/tile_mineral.dm +++ b/code/game/objects/items/stacks/tiles/tile_mineral.dm @@ -48,16 +48,6 @@ mineralType = "diamond" custom_materials = list(/datum/material/diamond=500) -/obj/item/stack/tile/mineral/bananium - name = "bananium tile" - singular_name = "bananium floor tile" - desc = "A tile made out of bananium, HOOOOOOOOONK!" - icon_state = "tile_bananium" - item_state = "tile-bananium" - turf_type = /turf/open/floor/mineral/bananium - mineralType = "bananium" - custom_materials = list(/datum/material/bananium=500) - /obj/item/stack/tile/mineral/abductor name = "alien floor tile" singular_name = "alien floor tile" diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index fb001b2eb56b..a7fdbc05691a 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -1370,10 +1370,10 @@ /obj/item/stack/sheet/mineral/uranium=20,\ /obj/item/stack/sheet/mineral/diamond=50,\ /obj/item/stack/sheet/bluespace_crystal=50,\ - /obj/item/stack/sheet/mineral/bananium=50,\ + /obj/item/stack/sheet/mineral/hidden/hellstone=50,\ /obj/item/stack/sheet/mineral/wood=50,\ /obj/item/stack/sheet/plastic/fifty=1,\ - /obj/item/stack/sheet/runed_metal/fifty=1 + /obj/item/stack/sheet/mineral/hidden/hellstone/fifty=1 ) generate_items_inside(items_inside,src) diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm index ee9a29945aa0..fc0aae860782 100644 --- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -105,7 +105,7 @@ /obj/item/stack/sheet/mineral/plasma, /obj/item/stack/sheet/mineral/uranium, /obj/item/stack/sheet/mineral/diamond, - /obj/item/stack/sheet/mineral/bananium, + /obj/item/stack/sheet/mineral/hidden/hellstone, /obj/item/stack/sheet/plasteel, /obj/item/stack/sheet/mineral/titanium, /obj/item/stack/sheet/mineral/plastitanium, diff --git a/code/game/objects/structures/door_assembly_types.dm b/code/game/objects/structures/door_assembly_types.dm index 2558993a5278..d2bcf77cfda7 100644 --- a/code/game/objects/structures/door_assembly_types.dm +++ b/code/game/objects/structures/door_assembly_types.dm @@ -214,14 +214,6 @@ mineral = "plasma" glass_type = /obj/machinery/door/airlock/plasma/glass -/obj/structure/door_assembly/door_assembly_bananium - name = "bananium airlock assembly" - desc = "Honk." - icon = 'icons/obj/doors/airlocks/station/bananium.dmi' - base_name = "bananium airlock" - airlock_type = /obj/machinery/door/airlock/bananium - mineral = "bananium" - glass_type = /obj/machinery/door/airlock/bananium/glass /obj/structure/door_assembly/door_assembly_sandstone name = "sandstone airlock assembly" diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index a0097504c1d3..d5a8c3e496c1 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -269,19 +269,6 @@ if(exposed_temperature > 300) burnbabyburn() -/obj/structure/falsewall/bananium - name = "bananium wall" - desc = "A wall with bananium plating. Honk!" - icon = 'icons/turf/walls/bananium_wall.dmi' - icon_state = "bananium_wall-0" - base_icon_state = "bananium_wall" - mineral = /obj/item/stack/sheet/mineral/bananium - walltype = /turf/closed/wall/mineral/bananium - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BANANIUM_WALLS) - canSmoothWith = list(SMOOTH_GROUP_BANANIUM_WALLS) - - /obj/structure/falsewall/sandstone name = "sandstone wall" desc = "A wall with sandstone plating. Rough." diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 25822d69ff00..6463282eb6df 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -364,7 +364,7 @@ add_fingerprint(user) if(istype(W, /obj/item/melee/cultblade/dagger) && iscultist(user)) //Cultists can demolish cult girders instantly with their tomes user.visible_message("[user] strikes [src] with [W]!", "You demolish [src].") - new /obj/item/stack/sheet/runed_metal(drop_location(), 1) + new /obj/item/stack/sheet/mineral/hidden/hellstone(drop_location(), 1) qdel(src) else if(W.tool_behaviour == TOOL_WELDER) @@ -374,19 +374,19 @@ to_chat(user, "You start slicing apart the girder...") if(W.use_tool(src, user, 40, volume=50)) to_chat(user, "You slice apart the girder.") - var/obj/item/stack/sheet/runed_metal/R = new(drop_location(), 1) + var/obj/item/stack/sheet/mineral/hidden/hellstone/R = new(drop_location(), 1) transfer_fingerprints_to(R) qdel(src) else if(istype(W, /obj/item/pickaxe/drill/jackhammer)) to_chat(user, "Your jackhammer smashes through the girder!") - var/obj/item/stack/sheet/runed_metal/R = new(drop_location(), 2) + var/obj/item/stack/sheet/mineral/hidden/hellstone/R = new(drop_location(), 2) transfer_fingerprints_to(R) W.play_tool_sound(src) qdel(src) - else if(istype(W, /obj/item/stack/sheet/runed_metal)) - var/obj/item/stack/sheet/runed_metal/R = W + else if(istype(W, /obj/item/stack/sheet/mineral/hidden/hellstone)) + var/obj/item/stack/sheet/mineral/hidden/hellstone/R = W if(R.get_amount() < 1) to_chat(user, "You need at least one sheet of runed metal to construct a runed wall!") return 0 @@ -408,7 +408,7 @@ /obj/structure/girder/cult/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) - new /obj/item/stack/sheet/runed_metal(drop_location(), 1) + new /obj/item/stack/sheet/mineral/hidden/hellstone(drop_location(), 1) qdel(src) /obj/structure/girder/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) diff --git a/code/game/objects/structures/icemoon/cave_entrance.dm b/code/game/objects/structures/icemoon/cave_entrance.dm index 07ecef04afac..d1fc91c8e596 100644 --- a/code/game/objects/structures/icemoon/cave_entrance.dm +++ b/code/game/objects/structures/icemoon/cave_entrance.dm @@ -5,7 +5,6 @@ GLOBAL_LIST_INIT(ore_probability, list( /obj/item/stack/ore/silver = 50, /obj/item/stack/ore/gold = 50, /obj/item/stack/ore/diamond = 25, - /obj/item/stack/ore/bananium = 5, /obj/item/stack/ore/titanium = 75, /obj/item/pickaxe/diamond = 15, /obj/item/borg/upgrade/modkit/cooldown = 5, @@ -258,8 +257,7 @@ GLOBAL_LIST_INIT(ore_probability, list( new /mob/living/simple_animal/hostile/clown/fleshclown(loc) if(prob(25))//you lost new /obj/item/circlegame(loc) - new /obj/item/stack/sheet/mineral/bananium(loc) - new /turf/open/floor/mineral/bananium(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone(loc) if(2)//basic demonic incursion visible_message("You glimpse an indescribable abyss in the portal. Horrifying monsters appear in a gout of flame.") playsound(loc,'sound/hallucinations/wail.ogg', 200, FALSE, 50, TRUE, TRUE) @@ -618,19 +616,19 @@ GLOBAL_LIST_INIT(ore_probability, list( visible_message("You catch a brief glimpse of a vast production complex. One of the assembly lines outputs through the portal!") playsound(loc,'sound/ambience/antag/clockcultalr.ogg', 100, FALSE, 50, TRUE, TRUE) if(prob(45)) - new /obj/item/stack/sheet/mineral/adamantine/ten(loc) - new /obj/item/stack/sheet/mineral/runite/ten(loc) - new /obj/item/stack/sheet/mineral/mythril/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) new /mob/living/simple_animal/hostile/hivebot(loc) if(prob(35)) - new /obj/item/stack/sheet/mineral/adamantine/ten(loc) - new /obj/item/stack/sheet/mineral/runite/ten(loc) - new /obj/item/stack/sheet/mineral/mythril/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) new /mob/living/simple_animal/hostile/hivebot(loc) if(prob(25)) - new /obj/item/stack/sheet/mineral/adamantine/ten(loc) - new /obj/item/stack/sheet/mineral/runite/ten(loc) - new /obj/item/stack/sheet/mineral/mythril/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) new /mob/living/simple_animal/hostile/hivebot/strong(loc) if(prob(35)) new /obj/item/stack/sheet/mineral/silver/twenty(loc) @@ -665,9 +663,9 @@ GLOBAL_LIST_INIT(ore_probability, list( new /obj/item/circuitboard/machine/ore_silo(loc) new /mob/living/simple_animal/hostile/hivebot/mechanic(loc) if(prob(35)) - new /obj/item/stack/sheet/mineral/adamantine/ten(loc) - new /obj/item/stack/sheet/mineral/runite/ten(loc) - new /obj/item/stack/sheet/mineral/mythril/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) new /mob/living/simple_animal/hostile/hivebot/strong(loc) if(prob(35)) new /obj/item/circuitboard/machine/medipen_refiller(loc) @@ -838,7 +836,7 @@ GLOBAL_LIST_INIT(ore_probability, list( new /obj/item/bedsheet/cult(loc) new /mob/living/simple_animal/hostile/construct/wraith/hostile(loc) if(prob(50)) - new /obj/item/stack/sheet/runed_metal/ten(loc) + new /obj/item/stack/sheet/mineral/hidden/hellstone/ten(loc) if(prob(35)) new /obj/item/sharpener/cult(loc) new /mob/living/simple_animal/hostile/construct/artificer/hostile(loc) diff --git a/code/game/objects/structures/spawner.dm b/code/game/objects/structures/spawner.dm index 9773221f0c22..c3c8e07cc3ab 100644 --- a/code/game/objects/structures/spawner.dm +++ b/code/game/objects/structures/spawner.dm @@ -5,7 +5,7 @@ GLOBAL_LIST_INIT(astroloot, list( /obj/item/stack/ore/silver = 50, /obj/item/stack/ore/gold = 50, /obj/item/stack/ore/diamond = 25, - /obj/item/stack/ore/bananium = 5, + /obj/item/stack/ore/hellstone = 5, /obj/item/stack/ore/titanium = 75, /obj/item/pickaxe/diamond = 15, /obj/item/borg/upgrade/modkit/cooldown = 5, diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 642c2c2efdd4..9f51ba34476a 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -224,7 +224,7 @@ /obj/structure/statue/bananium max_integrity = 300 - material_drop_type = /obj/item/stack/sheet/mineral/bananium + material_drop_type = /obj/item/stack/sheet/mineral/hidden/hellstone impressiveness = 50 desc = "A bananium statue with a small engraving:'HOOOOOOONK'." var/spam_flag = 0 diff --git a/code/game/turfs/closed/_closed.dm b/code/game/turfs/closed/_closed.dm index cfede10541d4..bb5d6f7311c0 100644 --- a/code/game/turfs/closed/_closed.dm +++ b/code/game/turfs/closed/_closed.dm @@ -86,47 +86,6 @@ smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS) canSmoothWith = list(SMOOTH_GROUP_CLOSED_TURFS) -/turf/closed/indestructible/riveted/supermatter - name = "wall" - desc = "A wall made out of a strange metal. The squares on it pulse in a predictable pattern." - icon = 'icons/turf/walls/bananium_wall.dmi' - icon_state = "bananium_wall-0" - base_icon_state = "bananium_wall" - smoothing_flags = SMOOTH_BITMASK - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BANANIUM_WALLS) - canSmoothWith = list(SMOOTH_GROUP_BANANIUM_WALLS) - -/turf/closed/indestructible/riveted/supermatter/Bumped(atom/movable/AM) - if(isliving(AM)) - AM.visible_message("\The [AM] slams into \the [src] inducing a resonance... [AM.p_their()] body starts to glow and burst into flames before flashing into dust!",\ - "You slam into \the [src] as your ears are filled with unearthly ringing. Your last thought is \"Oh, fuck.\"",\ - "You hear an unearthly noise as a wave of heat washes over you.") - else if(isobj(AM) && !iseffect(AM)) - AM.visible_message("\The [AM] smacks into \the [src] and rapidly flashes to ash.", null,\ - "You hear a loud crack as you are washed with a wave of heat.") - else - return - - playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, TRUE) - Consume(AM) - -/turf/closed/indestructible/riveted/supermatter/proc/Consume(atom/movable/AM) - if(isliving(AM)) - var/mob/living/user = AM - if(user.status_flags & GODMODE) - return - message_admins("[src] has consumed [key_name_admin(user)] [ADMIN_JMP(src)].") - investigate_log("has consumed [key_name(user)].", INVESTIGATE_SUPERMATTER) - user.dust(force = TRUE) - else if(isobj(AM)) - if(!iseffect(AM)) - var/suspicion = "" - if(AM.fingerprintslast) - suspicion = "last touched by [AM.fingerprintslast]" - message_admins("[src] has consumed [AM], [suspicion] [ADMIN_JMP(src)].") - investigate_log("has consumed [AM] - [suspicion].", INVESTIGATE_SUPERMATTER) - qdel(AM) - /turf/closed/indestructible/syndicate icon = 'icons/turf/walls/plastitanium_wall.dmi' icon_state = "plastitanium_wall-0" diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index ab46afa7e884..370afeaeedf2 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -281,14 +281,13 @@ light_range = 2 light_power = 1 - /turf/closed/mineral/random/snow/underground baseturfs = /turf/open/floor/plating/asteroid/snow/icemoon // abundant ore mineralChance = 10 mineralSpawnChanceList = list( /obj/item/stack/ore/uranium = 10, /obj/item/stack/ore/diamond = 4, /obj/item/stack/ore/gold = 20, /obj/item/stack/ore/titanium = 22, - /obj/item/stack/ore/silver = 24, /obj/item/stack/ore/plasma = 20, /obj/item/stack/ore/iron = 20, /obj/item/stack/ore/bananium = 1, + /obj/item/stack/ore/silver = 24, /obj/item/stack/ore/plasma = 20, /obj/item/stack/ore/iron = 20, /turf/closed/mineral/gibtonite/ice/icemoon = 8, /obj/item/stack/ore/bluespace_crystal = 2) /turf/closed/mineral/random/snow/high_chance @@ -404,11 +403,6 @@ initial_gas_mix = FROZEN_ATMOS defer_change = TRUE -/turf/closed/mineral/bananium - mineralType = /obj/item/stack/ore/bananium - mineralAmt = 3 - scan_state = "rock_Bananium" - /turf/closed/mineral/bscrystal mineralType = /obj/item/stack/ore/bluespace_crystal mineralAmt = 1 @@ -650,10 +644,7 @@ H.mind.adjust_experience(/datum/skill/mining, 100) //yay! /turf/closed/mineral/strong/proc/drop_ores() - if(prob(10)) - new /obj/item/stack/sheet/mineral/mythril(src, 5) - else - new /obj/item/stack/sheet/mineral/adamantine(src, 5) + new /obj/item/stack/sheet/mineral/hidden/hellstone(src, 5) /turf/closed/mineral/strong/acid_melt() return diff --git a/code/game/turfs/closed/wall/mineral_walls.dm b/code/game/turfs/closed/wall/mineral_walls.dm index 720a95afd0e1..89a00d04c142 100644 --- a/code/game/turfs/closed/wall/mineral_walls.dm +++ b/code/game/turfs/closed/wall/mineral_walls.dm @@ -68,24 +68,6 @@ icon_state = "diamond_wall-255" smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS -/turf/closed/wall/mineral/bananium - name = "bananium wall" - desc = "A wall with bananium plating. Honk!" - icon = 'icons/turf/walls/bananium_wall.dmi' - icon_state = "bananium_wall-0" - base_icon_state = "bananium_wall" - sheet_type = /obj/item/stack/sheet/mineral/bananium - smoothing_flags = SMOOTH_BITMASK | SMOOTH_CONNECTORS - smoothing_groups = list(SMOOTH_GROUP_CLOSED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_BANANIUM_WALLS) - canSmoothWith = list(SMOOTH_GROUP_BANANIUM_WALLS, SMOOTH_GROUP_WALLS,SMOOTH_GROUP_AIRLOCK) - connector_icon = 'icons/turf/connectors/bananium_wall_connector.dmi' - connector_icon_state = "bananium_wall_connector" - no_connector_typecache = list(/turf/closed/wall/mineral/bananium, /obj/structure/falsewall/bananium) - -/turf/closed/wall/mineral_bananium/yesdiag - icon_state = "bananium_wall-255" - smoothing_flags = SMOOTH_BITMASK | SMOOTH_DIAGONAL_CORNERS - /turf/closed/wall/mineral/sandstone name = "sandstone wall" desc = "A wall with sandstone plating. Rough." diff --git a/code/game/turfs/closed/wall/misc_walls.dm b/code/game/turfs/closed/wall/misc_walls.dm index e6e5c8f0c557..20fcb2cb9f57 100644 --- a/code/game/turfs/closed/wall/misc_walls.dm +++ b/code/game/turfs/closed/wall/misc_walls.dm @@ -6,7 +6,7 @@ base_icon_state = "cult_wall" smoothing_flags = SMOOTH_BITMASK canSmoothWith = null - sheet_type = /obj/item/stack/sheet/runed_metal + sheet_type = /obj/item/stack/sheet/mineral/hidden/hellstone sheet_amount = 1 girder_type = /obj/structure/girder/cult diff --git a/code/game/turfs/open/floor/mineral_floor.dm b/code/game/turfs/open/floor/mineral_floor.dm index 476a69fa468d..5d53a162b087 100644 --- a/code/game/turfs/open/floor/mineral_floor.dm +++ b/code/game/turfs/open/floor/mineral_floor.dm @@ -172,48 +172,6 @@ /turf/open/floor/mineral/plastitanium/red/brig name = "brig floor" -//BANANIUM - -/turf/open/floor/mineral/bananium - name = "bananium floor" - icon_state = "bananium" - floor_tile = /obj/item/stack/tile/mineral/bananium - icons = list("bananium","bananium_dam") - var/spam_flag = 0 - -/turf/open/floor/mineral/bananium/Entered(atom/movable/AM) - .=..() - if(!.) - if(isliving(AM)) - squeak() - -/turf/open/floor/mineral/bananium/attackby(obj/item/W, mob/user, params) - .=..() - if(!.) - honk() - -/turf/open/floor/mineral/bananium/attack_hand(mob/user) - .=..() - if(!.) - honk() - -/turf/open/floor/mineral/bananium/attack_paw(mob/user) - .=..() - if(!.) - honk() - -/turf/open/floor/mineral/bananium/proc/honk() - if(spam_flag < world.time) - playsound(src, 'sound/items/bikehorn.ogg', 50, TRUE) - spam_flag = world.time + 20 - -/turf/open/floor/mineral/bananium/proc/squeak() - if(spam_flag < world.time) - playsound(src, "clownstep", 50, TRUE) - spam_flag = world.time + 10 - -/turf/open/floor/mineral/bananium/airless - initial_gas_mix = AIRLESS_ATMOS //DIAMOND diff --git a/code/game/turfs/open/lava.dm b/code/game/turfs/open/lava.dm index 99f1d590c05a..eb2132940bd9 100644 --- a/code/game/turfs/open/lava.dm +++ b/code/game/turfs/open/lava.dm @@ -18,6 +18,8 @@ heavyfootstep = FOOTSTEP_LAVA var/particle_emitter = /obj/effect/particle_emitter/lava + /// Whether the lava has been dug with hellstone found successfully + var/is_mined = FALSE /turf/open/lava/Initialize(mapload) . = ..() @@ -100,10 +102,10 @@ /turf/open/lava/TakeTemperature(temp) -/turf/open/lava/attackby(obj/item/C, mob/user, params) +/turf/open/lava/attackby(obj/item/attacking_item, mob/user, params) ..() - if(istype(C, /obj/item/stack/rods/lava)) - var/obj/item/stack/rods/lava/R = C + if(istype(attacking_item, /obj/item/stack/rods/lava)) + var/obj/item/stack/rods/lava/R = attacking_item var/obj/structure/lattice/lava/H = locate(/obj/structure/lattice/lava, src) if(H) to_chat(user, "There is already a lattice here!") @@ -115,6 +117,19 @@ else to_chat(user, "You need one rod to build a heatproof lattice.") return + if(attacking_item.tool_behaviour == TOOL_MINING && (attacking_item.custom_materials[SSmaterials.GetMaterialRef(/datum/material/diamond)])) + if(is_mined) + to_chat(user, span_notice("This has already been cleared out of hellstone...")) + return FALSE + to_chat(user, span_notice("You start parting away [src]...")) + if(attacking_item.use_tool(src, user, 175, volume=30)) + to_chat(user, span_notice("You part away [src].")) + playsound(src, 'sound/effects/break_stone.ogg', 30, TRUE) + if (prob(10)) + new /obj/item/stack/ore/hellstone(src) + is_mined = TRUE + return TRUE + return FALSE /turf/open/lava/proc/is_safe() //if anything matching this typecache is found in the lava, we don't burn things diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 003abfd42991..00dc550c11ce 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -601,7 +601,7 @@ var/quantity = candidate.amount if(candidate.use(quantity)) uses -- - new /obj/item/stack/sheet/runed_metal(T,quantity) + new /obj/item/stack/sheet/mineral/hidden/hellstone(T,quantity) to_chat(user, "A dark cloud emanates from you hand and swirls around the plasteel, transforming it into runed metal!") SEND_SOUND(user, sound('sound/effects/magic.ogg',0,1,25)) else if(istype(target,/mob/living/silicon/robot)) diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index e7f37d37f4a6..406c51956035 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -61,7 +61,7 @@ var/mob/living/current = owner.current add_objectives() if(give_equipment) - equip_cultist(TRUE) + equip_cultist() SSticker.mode.cult += owner // Only add after they've been given objectives current.log_message("has been converted to the cult of Nar'Sie!", LOG_ATTACK, color="#960000") @@ -69,13 +69,11 @@ current.client.images += cult_team.blood_target_image -/datum/antagonist/cult/proc/equip_cultist(metal=TRUE) +/datum/antagonist/cult/proc/equip_cultist() var/mob/living/carbon/H = owner.current if(!istype(H)) return . += cult_give_item(/obj/item/melee/cultblade/dagger, H) - if(metal) - . += cult_give_item(/obj/item/stack/sheet/runed_metal/ten, H) to_chat(owner, "These will help you jumpstart a cult of your own in this sector. Use them well, and remember - you are not the only one.") @@ -163,21 +161,16 @@ /datum/antagonist/cult/get_admin_commands() . = ..() .["Dagger"] = CALLBACK(src, PROC_REF(admin_give_dagger)) - .["Dagger and Metal"] = CALLBACK(src, PROC_REF(admin_give_metal)) - .["Remove Dagger and Metal"] = CALLBACK(src, PROC_REF(admin_take_all)) + .["Metal"] = CALLBACK(src, PROC_REF(admin_take_all)) /datum/antagonist/cult/proc/admin_give_dagger(mob/admin) - if(!equip_cultist(metal=FALSE)) + if(!equip_cultist()) to_chat(admin, "Spawning dagger failed!") -/datum/antagonist/cult/proc/admin_give_metal(mob/admin) - if (!equip_cultist(metal=TRUE)) - to_chat(admin, "Spawning runed metal failed!") - /datum/antagonist/cult/proc/admin_take_all(mob/admin) var/mob/living/current = owner.current for(var/o in current.GetAllContents()) - if(istype(o, /obj/item/melee/cultblade/dagger) || istype(o, /obj/item/stack/sheet/runed_metal)) + if(istype(o, /obj/item/melee/cultblade/dagger)) qdel(o) /datum/antagonist/cult/master diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm index 66526d96a34f..60816a90d45d 100644 --- a/code/modules/antagonists/cult/cult_structures.dm +++ b/code/modules/antagonists/cult/cult_structures.dm @@ -5,7 +5,7 @@ light_power = 2 var/cooldowntime = 0 break_sound = 'sound/hallucinations/veryfar_noise.ogg' - debris = list(/obj/item/stack/sheet/runed_metal = 1) + debris = list(/obj/item/stack/sheet/mineral/hidden/hellstone = 1) /obj/structure/destructible/cult/proc/conceal() //for spells that hide cult presence density = FALSE diff --git a/code/modules/cargo/bounties/special.dm b/code/modules/cargo/bounties/special.dm index af61a6698e44..fa581504ca89 100644 --- a/code/modules/cargo/bounties/special.dm +++ b/code/modules/cargo/bounties/special.dm @@ -19,12 +19,12 @@ return (Copy.copy_type && ispath(Copy.copy_type, /obj/item/documents/syndicate)) return TRUE -/datum/bounty/item/adamantine - name = "Adamantine" - description = "Nanotrasen's anomalous materials division is in desparate need for Adamantine. Send them a large shipment and we'll make it worth your while." +/datum/bounty/item/hellstone + name = "Hellstone" + description = "Nanotrasen's anomalous materials division is in desparate need for Hellstone. Send them a large shipment and we'll make it worth your while." reward = 35000 required_count = 10 - wanted_types = list(/obj/item/stack/sheet/mineral/adamantine) + wanted_types = list(/obj/item/stack/sheet/mineral/hidden/hellstone) /datum/bounty/item/trash name = "Trash" diff --git a/code/modules/cargo/bounty.dm b/code/modules/cargo/bounty.dm index 01efd57be70b..3807e9bd6984 100644 --- a/code/modules/cargo/bounty.dm +++ b/code/modules/cargo/bounty.dm @@ -166,7 +166,7 @@ GLOBAL_LIST_EMPTY(bounties_list) /********************************Low Priority Gens********************************/ var/list/low_priority_strict_type_list = list( /datum/bounty/item/alien_organs, /datum/bounty/item/syndicate_documents, - /datum/bounty/item/adamantine, + /datum/bounty/item/hellstone, /datum/bounty/item/trash, /datum/bounty/more_bounties) diff --git a/code/modules/cargo/exports/materials.dm b/code/modules/cargo/exports/materials.dm index 1bf35a94c440..f81654978ac2 100644 --- a/code/modules/cargo/exports/materials.dm +++ b/code/modules/cargo/exports/materials.dm @@ -26,11 +26,6 @@ // Materials. Prices have been heavily nerfed from the original values; mining is boring, so it shouldn't be a good way to make money. -/datum/export/material/bananium - cost = 250 - material_id = /datum/material/bananium - message = "cm3 of bananium" - /datum/export/material/diamond cost = 125 material_id = /datum/material/diamond @@ -62,15 +57,10 @@ material_id = /datum/material/titanium message = "cm3 of titanium" -/datum/export/material/adamantine +/datum/export/material/hellstone cost = 125 - material_id = /datum/material/adamantine - message = "cm3 of adamantine" - -/datum/export/material/mythril - cost = 375 - material_id = /datum/material/mythril - message = "cm3 of mythril" + material_id = /datum/material/hellstone + message = "cm3 of hellstone" /datum/export/material/bscrystal cost = 75 @@ -82,11 +72,6 @@ message = "cm3 of plastic" material_id = /datum/material/plastic -/datum/export/material/runite - cost = 150 - message = "cm3 of runite" - material_id = /datum/material/runite - /datum/export/material/metal cost = 2 message = "cm3 of metal" diff --git a/code/modules/clothing/shoes/bananashoes.dm b/code/modules/clothing/shoes/bananashoes.dm index a09ea07a3250..4ed246a587be 100644 --- a/code/modules/clothing/shoes/bananashoes.dm +++ b/code/modules/clothing/shoes/bananashoes.dm @@ -16,7 +16,7 @@ /obj/item/clothing/shoes/clown_shoes/banana_shoes/ComponentInitialize() . = ..() AddElement(/datum/element/update_icon_updates_onmob) - AddComponent(/datum/component/material_container, list(/datum/material/bananium), 200000, TRUE, /obj/item/stack) + AddComponent(/datum/component/material_container, list(/datum/material/hellstone), 200000, TRUE, /obj/item/stack) AddComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 75, falloff_exponent = 20) /obj/item/clothing/shoes/clown_shoes/banana_shoes/step_action() @@ -24,7 +24,7 @@ var/mob/wearer = loc var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) if(on && istype(wearer)) - if(bananium.get_material_amount(/datum/material/bananium) < 100) + if(bananium.get_material_amount(/datum/material/hellstone) < 100) on = !on if(!always_noslip) clothing_flags &= ~NOSLIP @@ -32,7 +32,7 @@ to_chat(loc, "You ran out of bananium!") else new /obj/item/grown/bananapeel/specialpeel(get_step(src,turn(wearer.dir, 180))) //honk - bananium.use_amount_mat(100, /datum/material/bananium) + bananium.use_amount_mat(100, /datum/material/hellstone) /obj/item/clothing/shoes/clown_shoes/banana_shoes/attack_self(mob/user) var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) @@ -48,7 +48,7 @@ /obj/item/clothing/shoes/clown_shoes/banana_shoes/ui_action_click(mob/user) var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) - if(bananium.get_material_amount(/datum/material/bananium)) + if(bananium.get_material_amount(/datum/material/hellstone)) on = !on update_appearance() to_chat(user, "You [on ? "activate" : "deactivate"] the prototype shoes.") diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index bce5d5bd2445..4e3f6d5e3a9c 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -67,6 +67,11 @@ desc = "Worn by high ranking vampires of the transylvanian society of vampires." icon_state = "trans" +/obj/item/clothing/neck/cloak/bi + name = "solarian marine biologist cloak" + desc = "Commonly worn by members of the Solarian Marine Biologist Society, dedicated to the study and preservation of marine wildlife." + icon_state = "bi" + /obj/item/clothing/suit/hooded/cloak/goliath name = "goliath cloak" icon_state = "goliath_cloak" diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm index 0d7f403b538d..d0558f94fdb5 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm @@ -152,7 +152,7 @@ /datum/reagent/water = 10, /obj/item/reagent_containers/glass/bowl = 1, /obj/item/reagent_containers/food/snacks/grown/banana = 1, - /obj/item/stack/ore/bananium = 1 + /obj/item/stack/sheet/mineral/hidden/hellstone = 1 ) result = /obj/item/reagent_containers/food/snacks/soup/clownstears subcategory = CAT_SOUP diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index 613a68a2de47..d86cfebf1197 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -192,7 +192,7 @@ if(77 to 78) new /obj/item/toy/plush/lizardplushie(src) if(79 to 80) - new /obj/item/stack/sheet/mineral/bananium(src, 10) + new /obj/item/stack/sheet/mineral/hidden/hellstone(src, 10) if(81 to 82) new /obj/item/bikehorn/airhorn(src) if(83 to 84) diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm index ed8be5000a66..d38a3ce8b55b 100644 --- a/code/modules/mining/equipment/mining_tools.dm +++ b/code/modules/mining/equipment/mining_tools.dm @@ -53,6 +53,7 @@ force = 19 custom_price = 1500 custom_premium_price = 2000 + custom_materials = list(/datum/material/diamond=2000) /obj/item/pickaxe/drill name = "mining drill" @@ -81,6 +82,7 @@ toolspeed = 0.2 desc = "EXOCOM's improvement on the NT autodrill design, featuring a premium diamond cutting head. Yours is the drill that will pierce the heavens!" force = 20 + custom_materials = list(/datum/material/diamond=2000) /obj/item/pickaxe/drill/cyborg/diamond //This is the BORG version! name = "diamond-tipped integrated mining drill" //To inherit the NODROP_1 flag, and easier to change borg specific drill mechanics. diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index 74d35e830a7e..0ae29ca8ee54 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -143,7 +143,7 @@ /obj/machinery/mineral/processing_unit/Initialize() . = ..() proximity_monitor = new(src, 1) - AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/gold, /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace), INFINITY, TRUE, /obj/item/stack) + AddComponent(/datum/component/material_container, list(/datum/material/iron, /datum/material/glass, /datum/material/silver, /datum/material/gold, /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, /datum/material/hellstone, /datum/material/titanium, /datum/material/bluespace), INFINITY, TRUE, /obj/item/stack) stored_research = new /datum/techweb/specialized/autounlocking/smelter selected_material = SSmaterials.GetMaterialRef(/datum/material/iron) diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index fd36a4bb4ab1..65aea8732d03 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -17,7 +17,7 @@ var/points = 0 var/ore_multiplier = 1 var/point_upgrade = 1 - var/list/ore_values = list(/datum/material/iron = 1, /datum/material/glass = 1, /datum/material/plasma = 15, /datum/material/silver = 16, /datum/material/gold = 18, /datum/material/titanium = 30, /datum/material/uranium = 30, /datum/material/diamond = 50, /datum/material/bluespace = 50, /datum/material/bananium = 60) + var/list/ore_values = list(/datum/material/iron = 1, /datum/material/glass = 1, /datum/material/plasma = 15, /datum/material/silver = 16, /datum/material/gold = 18, /datum/material/titanium = 30, /datum/material/uranium = 30, /datum/material/diamond = 50, /datum/material/bluespace = 50, /datum/material/hellstone = 60) /// Variable that holds a timer which is used for callbacks to `send_console_message()`. Used for preventing multiple calls to this proc while the ORM is eating a stack of ores. var/console_notify_timer var/datum/techweb/stored_research diff --git a/code/modules/mining/machine_silo.dm b/code/modules/mining/machine_silo.dm index 788d1c102f75..6a210f4d87ff 100644 --- a/code/modules/mining/machine_silo.dm +++ b/code/modules/mining/machine_silo.dm @@ -22,10 +22,10 @@ GLOBAL_LIST_EMPTY(silo_access_logs) /datum/material/diamond, /datum/material/plasma, /datum/material/uranium, - /datum/material/bananium, /datum/material/titanium, /datum/material/bluespace, /datum/material/plastic, + /datum/material/hellstone, ) AddComponent(/datum/component/material_container, materials_list, INFINITY, allowed_types=/obj/item/stack, _disable_attackby=TRUE) diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index 707d68a871f7..cc2a9f176c70 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -33,7 +33,7 @@ wanted_objects = list( /obj/item/stack/ore/diamond, /obj/item/stack/ore/gold, /obj/item/stack/ore/silver, /obj/item/stack/ore/plasma, /obj/item/stack/ore/uranium, /obj/item/stack/ore/iron, - /obj/item/stack/ore/bananium, /obj/item/stack/ore/titanium) + /obj/item/stack/ore/hellstone, /obj/item/stack/ore/titanium) healable = 0 loot = list(/obj/effect/decal/cleanable/robot_debris) del_on_death = TRUE diff --git a/code/modules/mining/mint.dm b/code/modules/mining/mint.dm index 33117d99c518..79c2f0d52208 100644 --- a/code/modules/mining/mint.dm +++ b/code/modules/mining/mint.dm @@ -24,11 +24,8 @@ /datum/material/uranium, /datum/material/titanium, /datum/material/diamond, - /datum/material/bananium, - /datum/material/adamantine, - /datum/material/mythril, /datum/material/plastic, - /datum/material/runite + /datum/material/hellstone, ), MINERAL_MATERIAL_AMOUNT * 75, FALSE, /obj/item/stack) chosen = SSmaterials.GetMaterialRef(chosen) diff --git a/code/modules/mining/money_bag.dm b/code/modules/mining/money_bag.dm index 46011ae8ec7e..2c8ac19a353a 100644 --- a/code/modules/mining/money_bag.dm +++ b/code/modules/mining/money_bag.dm @@ -26,4 +26,4 @@ new /obj/item/coin/silver(src) new /obj/item/coin/gold(src) new /obj/item/coin/gold(src) - new /obj/item/coin/adamantine(src) + new /obj/item/coin/hellstone(src) diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index ec971ed84bed..1dfe590cac0a 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -217,16 +217,6 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ mine_experience = 10 scan_state = "rock_Diamond" -/obj/item/stack/ore/bananium - name = "bananium ore" - icon_state = "Bananium ore" - item_state = "Bananium ore" - singular_name = "bananium ore chunk" - points = 60 - custom_materials = list(/datum/material/bananium=MINERAL_MATERIAL_AMOUNT) - refined_type = /obj/item/stack/sheet/mineral/bananium - mine_experience = 15 - scan_state = "rock_Bananium" /obj/item/stack/ore/titanium name = "titanium ore" @@ -240,6 +230,16 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ scan_state = "rock_Titanium" spreadChance = 5 +/obj/item/stack/ore/hellstone + name = "hellstone ore" + icon_state = "hellstone-ore" + item_state = "hellstone-ore" + singular_name = "hellstone ore chunk" + resistance_flags = LAVA_PROOF + points = 50 + custom_materials = list(/datum/material/hellstone=MINERAL_MATERIAL_AMOUNT) + refined_type = /obj/item/stack/sheet/mineral/hidden/hellstone + /obj/item/stack/ore/slag name = "slag" desc = "Completely useless." @@ -458,20 +458,11 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ /obj/item/coin/titanium custom_materials = list(/datum/material/titanium = 400) -/obj/item/coin/bananium - custom_materials = list(/datum/material/bananium = 400) - -/obj/item/coin/adamantine - custom_materials = list(/datum/material/adamantine = 400) - -/obj/item/coin/mythril - custom_materials = list(/datum/material/mythril = 400) - /obj/item/coin/plastic custom_materials = list(/datum/material/plastic = 400) -/obj/item/coin/runite - custom_materials = list(/datum/material/runite = 400) +/obj/item/coin/hellstone + custom_materials = list(/datum/material/hellstone = 400) /obj/item/coin/twoheaded desc = "Hey, this coin's the same on both sides!" diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm index 1cb86fec256d..4c3aafad7ce3 100644 --- a/code/modules/projectiles/guns/ballistic/pistol.dm +++ b/code/modules/projectiles/guns/ballistic/pistol.dm @@ -79,6 +79,12 @@ /obj/item/gun/ballistic/automatic/pistol/candor/factory/no_mag spawnwithmagazine = FALSE +/obj/item/gun/ballistic/automatic/pistol/candor/phenex + name = "\improper HP Phenex" + desc = "A uniquely modified version of the Candor, famously created by Hunter's Pride. Named after the daemonic Phoenix of legend that the Ashen Huntsman had once slain, this hell-kissed weapon is more visually intimidating than its original counterpart, but mechanically acts the same. Chambered in .45." + icon_state = "phenex" + item_state = "hp_phenex" + /obj/item/gun/ballistic/automatic/pistol/deagle name = "\improper Desert Eagle" desc = "An oversized handgun chambered in .50 AE. A true hand cannon." diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index 10cd8ffc72eb..e7494191d1df 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -56,7 +56,7 @@ /datum/chemical_reaction/adamantinesolidification/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) for(var/i = 1, i <= created_volume, i++) - new /obj/item/stack/sheet/mineral/adamantine(location) + new /obj/item/stack/sheet/mineral/hidden/hellstone(location) /datum/chemical_reaction/silversolidification required_reagents = list(/datum/reagent/silver = 20, /datum/reagent/consumable/frostoil = 5, /datum/reagent/carbon = 10) diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index 97290d54213f..d3bf1e211290 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -425,7 +425,7 @@ required_other = TRUE /datum/chemical_reaction/slime/adamantine/on_reaction(datum/reagents/holder) - new /obj/item/stack/sheet/mineral/adamantine(get_turf(holder.my_atom)) + new /obj/item/stack/sheet/mineral/hidden/hellstone(get_turf(holder.my_atom)) ..() //Bluespace diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index dfd373dcd3d7..46dddeb0c586 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -445,7 +445,7 @@ id = "honk_torso" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/honker_torso - materials = list(/datum/material/iron=20000,/datum/material/glass = 10000,/datum/material/bananium=10000) + materials = list(/datum/material/iron=20000,/datum/material/glass = 10000,/datum/material/hellstone=10000) construction_time = 300 category = list("H.O.N.K") @@ -454,7 +454,7 @@ id = "honk_head" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/honker_head - materials = list(/datum/material/iron=10000,/datum/material/glass = 5000,/datum/material/bananium=5000) + materials = list(/datum/material/iron=10000,/datum/material/glass = 5000,/datum/material/hellstone=5000) construction_time = 200 category = list("H.O.N.K") @@ -463,7 +463,7 @@ id = "honk_left_arm" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/honker_left_arm - materials = list(/datum/material/iron=15000,/datum/material/bananium=5000) + materials = list(/datum/material/iron=15000,/datum/material/hellstone=5000) construction_time = 200 category = list("H.O.N.K") @@ -472,7 +472,7 @@ id = "honk_right_arm" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/honker_right_arm - materials = list(/datum/material/iron=15000,/datum/material/bananium=5000) + materials = list(/datum/material/iron=15000,/datum/material/hellstone=5000) construction_time = 200 category = list("H.O.N.K") @@ -481,7 +481,7 @@ id = "honk_left_leg" build_type = MECHFAB build_path =/obj/item/mecha_parts/part/honker_left_leg - materials = list(/datum/material/iron=20000,/datum/material/bananium=5000) + materials = list(/datum/material/iron=20000,/datum/material/hellstone=5000) construction_time = 200 category = list("H.O.N.K") @@ -490,7 +490,7 @@ id = "honk_right_leg" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/honker_right_leg - materials = list(/datum/material/iron=20000,/datum/material/bananium=5000) + materials = list(/datum/material/iron=20000,/datum/material/hellstone=5000) construction_time = 200 category = list("H.O.N.K") @@ -657,7 +657,7 @@ id = "mech_mousetrap_mortar" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/mousetrap_mortar - materials = list(/datum/material/iron=20000,/datum/material/bananium=5000) + materials = list(/datum/material/iron=20000,/datum/material/hellstone=5000) construction_time = 300 category = list("Exosuit Equipment") @@ -666,7 +666,7 @@ id = "mech_banana_mortar" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/banana_mortar - materials = list(/datum/material/iron=20000,/datum/material/bananium=5000) + materials = list(/datum/material/iron=20000,/datum/material/hellstone=5000) construction_time = 300 category = list("Exosuit Equipment") @@ -675,7 +675,7 @@ id = "mech_honker" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/honker - materials = list(/datum/material/iron=20000,/datum/material/bananium=10000) + materials = list(/datum/material/iron=20000,/datum/material/hellstone=10000) construction_time = 500 category = list("Exosuit Equipment") @@ -684,7 +684,7 @@ id = "mech_punching_face" build_type = MECHFAB build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/punching_glove - materials = list(/datum/material/iron=20000,/datum/material/bananium=7500) + materials = list(/datum/material/iron=20000,/datum/material/hellstone=7500) construction_time = 400 category = list("Exosuit Equipment") @@ -769,7 +769,7 @@ id = "borg_transform_clown" build_type = MECHFAB build_path = /obj/item/borg/upgrade/transform/clown - materials = list(/datum/material/iron = 15000, /datum/material/glass = 15000, /datum/material/bananium = 1000) + materials = list(/datum/material/iron = 15000, /datum/material/glass = 15000, /datum/material/hellstone = 1000) construction_time = 120 category = list("Cyborg Upgrade Modules") diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 343ff920df20..95a03b829608 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -476,7 +476,7 @@ desc = "Makes death amusing." id = "implant_trombone" build_type = PROTOLATHE - materials = list(/datum/material/glass = 500, /datum/material/bananium = 500) + materials = list(/datum/material/glass = 500, /datum/material/hellstone = 500) build_path = /obj/item/implantcase/sad_trombone category = list("Medical Designs") diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index eeca189ef2dc..816cd4f9fdbf 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -130,7 +130,7 @@ desc = "Damn son, where'd you find this?" id = "air_horn" build_type = PROTOLATHE - materials = list(/datum/material/iron = 4000, /datum/material/bananium = 1000) + materials = list(/datum/material/iron = 4000, /datum/material/hellstone = 1000) build_path = /obj/item/bikehorn/airhorn category = list("Equipment") diff --git a/code/modules/research/xenobiology/crossbreeding/charged.dm b/code/modules/research/xenobiology/crossbreeding/charged.dm index 501ff548e08f..25aa79302918 100644 --- a/code/modules/research/xenobiology/crossbreeding/charged.dm +++ b/code/modules/research/xenobiology/crossbreeding/charged.dm @@ -146,7 +146,7 @@ Charged extracts: effect_desc = "Creates bananium. Oh no." /obj/item/slimecross/charged/pyrite/do_effect(mob/user) - new /obj/item/stack/sheet/mineral/bananium(get_turf(user), 10) + new /obj/item/stack/sheet/mineral/hidden/hellstone(get_turf(user), 10) user.visible_message("[src] solidifies with a horrifying banana stench!") ..() diff --git a/icons/effects/ore_visuals.dmi b/icons/effects/ore_visuals.dmi index 1353a2d814ad318313b994ee7490af4e58840184..b64b8f0427e2c58524a30de282ed775bb176738c 100644 GIT binary patch literal 21414 zcmeHvXH-+!+wY;-XrqkM1RNb@7%3_xAWcPOMw-e1N(&AGB9b62KnMW~4k9p&6zL)Y zDgpvRXekt7s6puj5|9!gkOTq*NJ#F<_HB$}U*fLX zT1xLz+6MrD^sm2Mybb`nqX9tT<(^&OH~3`tQShTK;

Y7rlZ!1APO6ec>;9~a z7}&L9_C~|;)k3YcNarh0Pw5wi%IRauv!!3JhxdOmz8s5{HQXKiou0hOxy|rs-}PNv zr4Eni=FdC)-K3J%MCu;Ai#Vbi+W`RA-~4*<{BL2|OA{{728M67ujnc~DfH-m(4#f( zc9`_TxV6^eIq$EpE5SjzduQ)ebno3f^`0 z*j7H*3%#2>X}H(cFX;Zgd-NkuJzvW3={GA0+LB#^-8}BrF9jJnlG}Kd-biY8zmkH& zPaq)$!#eVL8C&Ap90&;6L-^112XT*Yv*_(tpa`|XlT>ylB_J15yxYig2&FKwu zl%jP7!3uemo=HA^O(I&gvT(w{K#U;%A!=v4$kY(Vm}tO+V9O;8Er8f_Nrxl)E-C`r z*Bf?r_x#8|xhp!ivWB#N{0!jgWsIOV&NC87_|4Of98vSmcjZ`Svt*&)cx>);iT0i~ z5B{-Io!%Y${R)8g1q{coR82+kPLE08lmnqOy$yPN+&z?zghk-`KT=U2>S!+<+JJyk zlZ`TjqK}BjVXJg)?EF=i0{Z6y%PiKX2_-ZXxm+E%$-K29AMqz3m9IL&8XdBr;ECek z`d_9L#Y#79a=d5bf-IJwYUC8%)C=f+yw!a^75kxOeMW8}5C zBF-{e_4H89uvuR)CUPZvg}s5ZWtq3{a_*8vWM=4Eh3~9i&&~RoCkg<4#&`GRp7H9e zB|*xatKWrhjQS9}lh75%*GBVPs=RGj-MYjV>x7F>V9o7aPq)^P)a;Hco<+uo2 zy)r5whW)h9&+iQy!rlUv)2P^TQq~!0FEPS6fz| zxv5;laH=hv8Cs`(skg6w4C+khWZ{7Av)N#FAG!-hm&RTL`Lyp{_asxrHHF; zvo07U?kczRF1K_Fv0O>&9L8~{SDS0nDetYsqklozF!XlIJd31ryk4#^&BP3SylEdR z%IqPXEvRYFH2qqBeD^LWo>q1S)%46SvKlyd9OPZDt*>0d~}BH0Gd)$O$HOjcT7 zFiKVseBMqmwN;;|Y7*9WO{(vqxX1kYka#M}+$gk({mhKTo|LoM;uhn=BfhvCTh*^O z0sa_pAM&kHRk_o1v&y4;xPgNotFJ&u_%{@yNS3i}qZ^H~240MlvlI5lHpn?n=El<` zeRbQE)fsaWm-+_YMEYkSAcs5M{CKVv2-v&$l)_=)@zz-erQ?yT9;&JGW||93@$_(x zzF%6M&e{=|b1mWym?vc=XuqGxm7XLck=l19f6!kST_;#*JQ46_n*PTB=$ zPBd6$=oZ^X?&e!y!>;Wp1{(#wPML1E8XfZ?`2e-9(2S4yM!4;;tx_$QXT<>X#97Y0 z$*E1_A%i|btB1rX>vPkkJe3VXF0rN+3e@V!KgACwkq!DHs0{K=7?w8l#Tio*j4>Nq z4 z0oK8g#ELKT7&P-Cs~2s)JsuPlDFHaWfo++Lz5exiCj!UH$sZ)F8-y$lc=s3CP;=O1 z6nkQ>wa?<7h_vae+)*S=1vTpj<=wBlI$oN*d7(T{1vzZ4$68~B=rbJ}ZUABNzU920 zBF;lypY0krKg?b%;O3dq?D4Js)n)loE_kFp(lts2&^t7!PQ1L1_DRS03fssqi$FW;&i*Nn^on?j#;Iy1osni9?B_ zk-9=eiq^~gC(jV>@Proq#oQg-arSx+PP(1)uI$IMDGYg0u}O_n!XA4d254Jw5;jfEJ$1(O7v&b!qi^M|RuImT<-^8^<@xzfw3q>WNwnUr=Z z{*Zp}zF4xSRA8O$wgmYSJKFgpJ`S4^yGl*wUKNkub* zd9$Tgd{=Z(H6-%mLKIul!gGei&VJe`c}Oa;UES_6nQhI`EBzFIr7omtvUNizp%9FZ ztZ!H*srnb$<(d5sGmfM)0=i32#;})0b?IEh8a0~MrAX-W1R2LbGSi>b1eBRE`;4E| zgqU&OQ$C-rg-M$>equd#3fP=m(q7Qt$AHu?{sP)(&w>lS3W<13(WNz})Jy~hMH8WNHY>y2jb#-7x zmt>4#@Cu5o(e0BzZW5nifq;a@F&M-Ws^RsCmClw}O{dotZzUAx890g&jw`s=A-}f9 ztq$1R<>)4wvB!gYau8%AxqE9qrg|p@q5w}G5N9VUoTTU)6flNiI?vNu61)!2nNdf6FdYP>~q9KA; z1kGkQeC+=S%W$jDQd8bWwmh(9O*lQe1@iGk4YH74(FG!{y5g#XUOI%PRlXkd zEwa|Q1pZE=l|Z<6gZM<^MCJjYHmoa6tK;qJbY1cpBsU?zql z1G6?kwflX2aj=KC!|6&?F?JUC#2PpScJJ}ke==u21AlM?<~P=fl^BWxFL%XlaAoyb zbE)<#2q}GD4P$5Xg{LmSoZFnK@t^K}g2@X>`vC|jb1ZQPT^`fdE3(ZpSdM_o1V|f+ zDFD%!kL%CR_RKx6L4b+1BQ6aSu=CK9CTIlJ(&&|Uxt82y&2i|911 zDHaE!yG{rXS0H%=LwLCQA0MuSv=e5#g{ggE9pfK6D$LjlGq(S~1{HiFdFRuJ+fevn zbnlwEf5qTmp&DcxIG06vIH0PIp7iH{oS7?%KeKdHY-u=yO9YXMh zVBd;XujDlIwx!34@LGZ*Lay{+$ne4Mnhssj&=T{fVp!Q3x;clOi>{vaF~hk(e;(A! z;C3XHKy4|JdAk8&om5y9Cj4VTg|VoxdqCJKA?yqJW(W^?s1Cw*o?)X zZ}Q}^{atjvm1)=nJ4@2r?M6*`gPk~-J(?tr9d{Yt^p^tQ&y69bGiN1lf#nj%(xN3J zZlrH#{#!FS@cuB8TVThu4HipYkwd{2o|p{`kVpt`;7=M)jsL!GMKaHyVz*ug6!&(& zH4~YvR&9j&1=$*5vh~^TE5rDWs}D;sdTJbUb?I9(9dJFv!5TAM(E_Q@=?WaKfkIhI zP$?Wl}j%LpWCVYU%|^A}D;=Sxb_CuhB(S>9Zt;IS7vnyO^=mcW|OxPjIU4-YKB;KDeFu?%I(eI-PGJ%#|(%`c{Ya2 zJ>xg`{#W$IZYN4VNU*R7aQA>K@7?a-e#QQBQdJROoj3fG$tk4=PCUlf)q&N|(-3@b z6k$j1#6yv2$WX?N8$N1hvm$h4V(qFue7!pEe68~~Z+7-=ah|_9ZwzCQ<^r$p;WhOY zYKlm^d6ViH`c}?Xol8blmbv;~VA_2a)xvnN9-O!oj)t-1AZ6f)4r-wfQRmlC|8am)}_j|fZ z7PnNc>F6mSyHN>c%v&dAjU^-6Ji^j5F@L5s8IRCsXmU2NH|A8cozk>!IL=8CVffXEP*>Is7IU3#;G~IfbnOc|f3rT| z=2p+&d0@5_o<~x>(H{)6M`;76CPIp$bx?E3p#xwwQDqnsNK%!lOp9?7B+NHl0sUz)<=wcLy(j zng4kUE1z`v7TAhFZfr{STl{iN>~g^h1|AHZ^x@O{ABsp`;d& zy{lb&M^J{(a#D{rPI6k`NUQKiwNJwbeQ^)5VwPrMOMms1aIT>F`-X1=VJd9?rcY0n zbTxdoiZCGH;e7MZ(=#O*4l-#@U5dKY^dQ+>UEY}0@Y3C0Gh}$U_i+B|ZC1l|8BFJ6 zMEPB}8`@`^AZe?FdSq6K0lM>&5@0LRBoET2{Ymdtt8!Qm;sCWy!2B; zL}+Rkp2gPw0-6Zxx3=QBZ{W;%YERK#JLmP{rFVg&El^)`f6K{U@edtPAk0&eGLap$ z@kJ>{z4|sQCrkA%jN9yEwPWpI?!*==&SS%w4?*)Ca)+m>8NW&H+iG+`WgU#54_h4H5`9xTTKO&@mpC{;%x7R-J>;S{W7epCt5u23qS={)hFkBx9u@&M@z_NmNJAa=SinXo0eki$A8r zmPxeb*}B>)0frSyQ8Yb90(A3U9ZMPUu{fM$Wl;{LM7bYh+{R6h?47K)WVV|}Ci|TU zj?1t|i4xwb3;JOk5e4qhw{14j-=L)4Ut-o z@|%9mUOR}+HwHyw_Ru)?<2r2zuYpz~I~adW9Qoz7KQAz1%9b#DBniM+)>dxtx zbA9Ggs6YO5I+`k{-7L_3$#nOXUpTxuOEoPF1rxUB;RE&P2dm9#19x1e8FW)~oe=ZM z!hN!GaLE9t;Kt24?e0 z>cxW{)MNala*V!_?E( zH`Xe=am%4DkmW4z4Zc)Swe6lVky;gWi5Zd)%9!41(cxbwuW%nriJr37B@O%g^D0Ab z-E6#b|1CZiVU8&|oU8AerfFCrh2;j0t}N9-J1gx5c67@v|At*S? zKkE*vf13h?x56|O;XkwxmPCamQSfLe7(&F(f45W!(N02WmryJIp@0yyCj>nH57C{Q z{0+Ld<X{#h-kr{0*fO@-hWPQo6qfM{^ZJnnaavGCrs_J4lcRqDX#y+(-q~I z@SyZV8NRzR6us)}uw}3NO(z^KRV}`bTIWgvSN=87$Nx3Z2ma;G-v9FCFaOOZU;Ven z^3%T|U&_D0JK=Id+Wkkeg@Pi~3Xg9NKU!!}{tL}7)C!?i{6C--1no#>({37zCnM0% zQ&wOfYP8A~uA7UCT#TS2^M>L7?#Dvs7Y9qMFt7=wJnD{{;2w`-g4iJRydVb+cHA&ut@9u(v@z_yVZ_>ezB8oc=wu z)5@TDGX?`NXg@f2ZyEwcLF;|7Ll{HLCAQ+Dx0>aKze7hh6ylIAvManWvYgOX# zPGzq9V?;dCi+rJ<|GD6h=qb%Vk69*4fxt&K*m!M4>9QOOEOL$Hv{FFSpG1_|!#}<)c#gRq)970x&rhqXs{($mR6UxtGuyh|0^f6{8LLz2MjqsFyYAo8BGEba+vGEpu;E=exA3R)DSzJ=;FFp8o}XQR8W_X!?kNy6$} zi|DT(a@=~io~T7B9AoAfBig)vOj0#Hn;X{KF-J7#M;Zprb$ceId)oBl)8ckTTY6o9 z$l>?a#Z|}E)Q$X%hNrLtR~%~MxQBeQE>7h|ZTpVvw0BTOwUey(`fwU$1^XaB9q9XT zY>1nq~~{k&s^v)egb01lAaTcwzB2A!gEmOoTVxwzAP{~`WNN1#ur)r19Nhptf*Ta!;Ui zMY5?}TWYfBkNfOShRr-E_2t)bse)xU?GAuicYAxjGxek_L&C&Hgi6LkQR{=XGeH;N zC*mvDf^y~1LCt6L6@U?(#!^{XS>hA~|8`5ucBaSEG3}3B?dHs)D7mLW=Z8K<21n&V zRMAA9u3%}Vyokb~Uyd>|bbSo4kV}(|y%(?DHkuy^`wK)j>EP4>y^aBxgTt9B5pv^AYvv$t9l#Q@WlFHwkwbNEuTIt!fP_imv*|()(=Ouxy)X zs^awhH-;={fu6vitMxPf_zI-U*;cLSFT4b`>=r3I50AH2``h1;WbIFJ*& zY%L@BPa^{UlQ?LoeD`fqvPXKbQo5gSA5Z}O$R&4d zn;Qh9k0^dBMJ`HU8~}i4JPu;K{u#nUtMG(Q_$CT~FuNg4<@~28Bg|U~bAJEzpK-zj mCwTJvX9%_8|BhC)@bZ3n(%wMcNEFf2nx>1?khR+ zS@Ag6lt##tyver@kI7rQy$QI-_pz+$!dRnuUSVIv<`jIfWcH3 zoi6C99e;-W=Sk;r_cI?Kd#Eh;c8)cF%r-;(Rq}Bql(umxeE~Uj?pgCo$8TbdBb+#t z+DY-E8&uR2cS9=L=+5|+XC_^Cdd)SR*V?8xAn0evNbk~(;H;HNyJtglAq^Blw0kN4 zet{P@of5M9qwekh`+UwD7(ja%0CU*m!5#)|Rovsj9tL|n zU?cEv&jTNvb5D+qJWUxQpNQmuw!T=MFS_&U2qbs+WpS4?l(yfz*xGWbM*iS2k@xbn zGWJuyysH0X%k2cEy{usloNs2G+IP{|66djVTnLgcwXll_{G2O1LXHqB5F;2{2HK<& z$I*rZ6OU46^5p+`kIqAdV%FUy6rrmZ%eEDUhSlf=?l=*ofY0X6DE#n<_B$+LDOLC_ zX~)6RZ&2P5s=6_Z+!>gcg|eD=x7Vda+%mhIRaI1Obf1JT*T{R>o?=B4WnbBHNn-*%7xiO!)<5k+ny$waahRJ3`33uKFgpsd}6IL^?4I+LtN7>r6 zz;GH84)*phYc_|i4C~$%FPAzrKS^rU@t&-yxLxUyeuziT0D5HPFqJH-H2l3WFAJ^V zT|$zIkWWxFfo9Q_jsK7V!(KPZ731@tZ`y5)`>SV{=(pJs*S|}_W{dfZkG1TgZ8gX2 zHhC_zPaLpl84~rROy3M*ayIBOCI>$dFqIJ#(cO^GwVK-64$4gHOeTJJz6!o;pcfDj zpl37UG~0u#3p1@%lR7@`+=QiW#56#P9A(a3zp?SU;5l|f&Z@F-tjc%Bl`ptEOG7G( z{KdV?x$Lx{U`(oQsOw;1J%c*l(cAk>LFaPphaEay0Wja?AFqyVCyZm3xHapd#zYxR zLV{F7nE$%_<@r`iM8fGx$cJNiqF1_Sca33Fi`LJ>&`FO|!kSO-?5CsBGxwJP%=oWue#kwNKqCy06d-nMpIqYfAi8 ziMX?vy5-6d8FPpt0LgdON6kz9~0HAJ}V|7Qg}>U zXXWIvdzUyB%U|N+>z6!QHFHA=Q=+5_K zM(4aQUP>L^|dz*r+zf}fZDeHATVk7C|VM+W7=crPebk~o`&R; zkR(#&S*}R`UXKd}wd8tO{wZ({+=kEP#a`M=NywWDH;}e=cm)vbod!acL*IZNV0>b`afDkR5ZQ1%r`mNx7(+i_6hQN zzFSk=k^F8#V@upPH3g3(RVxvQXz!X2;oHpuT@Fwcv_9V@gQ}yBy$`7gB94J!7qmiq zsk+?x$#1_(`LjSPQdX~8LA@_NZ)lWsFkYSSi6PT^Yk&iis-t@~t**9hSt(TI4azVZ zFb5*J1Kf7wV$`pLKgW?AQ=hxilxE6D@~@`uk<&LQd5@s(XG7ov{*p}Qt`N-ix8P0{8j*;}n3P$ia**=b_h)RqspkvA zN*fSc9CuLg)CzJo^B(AK;(rIMf`ffC_Rc_6D?iNB!2woTm7heGR{sc#M{=mE|%DpTyj%4-ZM# zi3rtu8eeri|LVEc1aWaVzryYE_n4J{WB1On73z5!{nK#_#^qZZ3}NW7suv&41$B4H zHOBdE4)OKWuQMs#n@_OPO2q4Z9?axXAkSZLHS(9kB>3yX5ua#Si=yA`zLvKY0vS>) z^@j%stLH>eM+fE?VioFddDSfDmx=B3Bq)^g0}Q^hF>prIpAJNm*K!_8A#vk`m=f*h-@+vz-K2qBi-g0Xv0Jdm%M46m(2HG}40}@vHrGU((^mA+cpa0#F6njxhcsjgXI+ zCS0w3W06n6j)9B7t_#1d2{KnvL!l%j%kvTDWh6yQD zYLL4_+L?T7prQuL!Ygv(yL3l8WQ``~RnxblPMtOl@0dAT+z`Qqx)MXB#)J}cUzm!x zzYwn*vr`4d&)i7k2+z-A*gy@zp`oEy3=LZ~n(^$Z<*WeEm52Y*l{&h( zn133M)hjwzg3|Tu1rS|e`Q&xdZ-lAvB3R`bRtojCDroIH!0Mbf7Ct|myDtjs1ZzIX zI8|N_Ohr#7YvC5``4R>vsaXAT?t9@u8#meOJk3CX)$fy8eQ0;;6$^`}LP$x8jPacJ zOXFCFRzAqu;KXArOxGv%7hnb-KRVDzlQ;F620vU^pv^$3&qNy_DEv)PR=;#+0t_bv z#AE_2bGw`eb_8@d_uB&iL5e&h!f_N_FB*@|s=Gjtx;LjH`@Wo0^2|97XbN+kU@f(5HPkIG?N(}hPWI$Hb$~9}c#r_`W{y%nCrkmm~OPfePoAI_&So}jHfpN>U z7@>)v)9D;1|I=N%mxG`^4E`$^JiBF@@vpN0Kg4toxBm)mdszMJkj5Tg_V~iKhCLqa zVeo&#gUbiU{TNsk7dqHzVy86C{q_rg;#m{$Om1iEG`Rxtcw9cpn|ux%iKuf=+O!TZ8}RSbNBACv zyg$!-)@B5vCth@o2U!}w0vpAey)<3)2g|P;^OwsAguJ4J*|3obZ^{7(dilmAEVZK1 z8;MLj@k_AZ7SS#voT7TYAtEzHbtdVPUD!*yXoNHL{_eL2IfWRvW>@_wP^zj1YoAFs z>!N?F4Sc6gH9(qO#n)R&>owgy3U<3r@v4Rcszrg7;)g*$aekT9%6+6Y!_aYo9l9x| zKmL<3oxZ+pn&7iD z8LeMZ%DvAq#p8jiEJzm#PYT*!Pvl2aVP_Fh zmOiYiO(usTyIr%B4x+{fts_{!aVvnfih6(RofERoSlRxvK#{RpPc~NQS}khpW}b;^ z%d6gf6PBVin$4U^!m>vSxYDz#K|{_mBYIlyZ^$lnky??8zKlwR!rVicT5;B;#Jh7h zWzI^hGWRta_0RTRAHK8jb7kbCV*^)Y$ey^Q%h8DJQB-%^?)tpT@Yl{Wz#B=br&8vh z3)c@=kA~^XFVy_3P3Y;VUx@{Kzuvjy;?~1YvE9@%sNn|M%@;Nyj|_DOEz;?r$p9zo zv@loFhB%S~@_wA0YBMp0nR`Wv%nZA5>~1jr&quVQbB?)N9cS7=V-_t3VZJ>WQUbc? z2yU&nsRH!kS}1P-*NKK+-wctq=bc>>YycH7tH0}frN6?c2h6@8PegRhn9$0rH9}XS zLMRUK!X=$X|lc*5m|ps&qbMIZ>Qxy4J>>I8L@3p75=BEC~gd?d(u5 zF!psMUd@5J^?0uNNpL2>nB-5{My&oBUBXs%gRvK}@>dlo>k;KK?v3c*{-ez&$lmnN zL=!OLJY?batxYh>_dEdymFrKb^j6;Wp<~?kx!b&$53$4y? zZW6O^S)@{FgsqbL6BIR#zHm5|tnNGGj{dv;F5BmYw_mTc>B>A>f$gYk7`?-NZ{eaq zCBKV-vLtFgIZK%_fng0jJYfe5Cw_AN^Z=(7v3d{Dx9ja!n9Pl>E)TpTkBG`m)2iBm zbq&!Xh9!WqaeM+0Vd_mfGMI0rx|tE$GZeUCnWU>t;v3P(RJ)MyBU`GK;)udzVl2MW zg)8y{2?)k~PTan(g-_25w>zawmz9ZIFUVbL#U`wy7HVjGXlBo6Mg27B(XowzAy|e` zQM%$hfpNllt^vsu_PK zot}N5Xdn)2X!z1}(QdP6b-kJf=NV1FAIOjn5iJ(`1*l=f=J)oDjmPy?~Kw%BpF#x*mWq zL$kZQ<#rbhzfV7jc6H&3MXm$gTf>thBz31xHomOiz%c?SGX9^4p~u8rEcGHh@#_A` zISVh7#KK99bDZz$4g@5QOmfyBFYf1x#Lr)?M2dkbx~#<7f#IJR;Sb+ReEL-9dB~)= zDUCkw#1^Qtf8XzR07S9xu~VDC(3v^PN6^tIWWJHb8rcw;cB*@qJ!eJ58ICjWGgrvk z+u``PQN*oUNuyHbC|9x&L!gIgm3X%;Y0{Fp@g|IG{PEYIUTAgrtKzE9K-qgWFrloq z`zuHpId^9VUfG>Q+N*19yx0`bj5%z-VDEAonRM5~Ll*0yon2h4oGSv()JMYmsl-^T zakPThQIb|*Dcl7KV^o%T!I;I`2+y`8;)ic-v<=>kgOIv*CYtC*s#@+=o6vTg9Fw`t z7T)3T`J|%feNv@f#8X9-*ZJyg*X<3^}LPplo)S^hS3PKdNIGycX0CH3*MmJS~(l-qOon)#rpswz-tUcvbh| zyN#2}WuOvlpv@$BV1103OCD8!2K3j%tm{rE|{# z7AX^B+03^_T+M){*V%pWs`vFI?JkM3`O2=Ok^YE{8hVB-r{>hy(D+WfEey;vXEYYG z>|ZKh)dh6Lln8ij-Au}F1FL|1*Tj-DMQ?_Nt_-Mzj4+T}R=O)<_005n0Y_7(wusMc z_gS_(o!VRkEcq;gf+0xe86~2KS|vm4Q)8D1yPOS~<*Wvud4*tjzDrQz8y7QgbK44u zOtjXEFxFyAA-%tay#iP_NNSK#sI5xAZ0a=UB;dlj|IK+lCHgAs_h=;!9?@bUcfamx z!u(LN#k%!!wMaVkFXyhD( zxwqcLqO|+rKL0Q{A>51abC?fpM=N4#n?2ROXQ&-ZPE70Q5Bna_J|2CPcC?d75!v}NNV7+eLW z&CG8RmxY8PB-U$m5&a{E2Dx7z@Y*E;BAkiNDV_g(@>i(wBqeD%NM)cud7GS(``j+! zZqP^;I7S1LREVFQfahk~=^~|#Nmg!`0MG5)GcXMQL~00DgAbVmJejNfg1n!MO4mM~ zG8#*20JY?#`@1-Gx#+moJv?_6dUWn?k1A{QDmml1kfXA)3spnIZ=+cYua%oV;QUs| zn0i6C>j~Z5GL6l-{+7!=V0NXbDS<;#-X(2(!C)Pb7=!)uZ;0o5XUb4!hOV1U8mW5H zHSwvIzhbNNQzu*qx#M}NZ9B;VkySvVTXCzfO=QeypkW#;kFqXs2e+t7=g$I69V zTN3jeQO-N%Lg^PGoLk~WyGkrLQmSv1B4_0o zHk>{U=VhQ}q6lFcpY@L6NH@IQWV&5U|69;|dlBXLHHx;9c+;SW*3;?*Cw}Y0#Iw zMFn1tvdk?k62cBcKGR=0{^#rc-{{+39sfHV+QWGdXP_Ye9hDOID+NJP0t@W#0{kzi z-5yi_Tcfl$GXEWJ@1gc@gIYuC@91&4gfOtXuekUl8sMxgxRaWis&5ZIslvtaV|NMq z`7k?|b{;??qN@2=-)_@9-xt~zdPY|Ps{AfW2=e*qP=n$t&FpI-bM47# zIXUqlrZ83BCiE3ufS>>MUzA1{D3}jrG2G5A;Ns}(Dx$xA2NO1PV}-hGT8Ch6*xop% z6SJ6ZV0{it;s%diV%L59_LFZuf-@9#w~E`Hot=7Rqv6vP2~6*xpbH?{>xGlh3}x$W zA@HN0&4zeRtVHqZ#FWZ9dU?r%_A!2^b@%kNZm$!tFOxYgUL&VWw#T`T%tY&MsUucr z1}J4#6=^lQ38oDFq2VBzmZ&&s8oBjDGpfGxE$7A4(ceJd%FIsc>uDXT%^f5LbtESz zw@Ucr^~IPMoZ1Z4CgJMb_k+zyJ-xZ5p@P;ruBmfkqWBda5N<5XSVr11KV{M!DbvX@ z(;ngBbc5YlCO(A9*}$#-v^KAAK^ijD!_aVHyazx(t#nQY>k9qdY?pSmpa2xLA5!<- zZ=d$_YdI)CsfCq1Lf>LQI|!g#E-~wa8af8tk*GBs@%HYj z?h+-|j>i$hK>7NR4g0)^P1B{qTD^#-JPz^th6;@_LhU zL@rHLXB!Qg0j(-ZzP$55eIGEk$ikXQuj;BQ!Q?ByIy*bR#*hppBs+ZoC7axTkVjfg;KQHOzhxqj5$`EeB}Mxufd% zWn^SP3ml!D&r)eLN6=s|e7z_roZWmkx8Lfi6)0`rRG)VP=M?PfMSxhO*T!&6y|EHP zrJ(AAenGHy?NYHyo9`5MC#=CenVF%rA!B_W@7;$4c}U9v2<2Lzp?EWhee4q?#KaU8 z6@i8sN@h!nHQ_-Rn0`~#YHeLz#K{M|$BwWIHD|ATj_QpsHYYkGIJvxbN)lYn`<{bJa6VPmvntzT=G;f?dhjgQCPF5+h(bjOH6D`awOh5N{KoEk0$C?PQj7FuV! zLL#*Ydt)d~X1$*kAgx?mdRQ{eD?HB{$4XUK4b$OIMJh?_NY%kb46WJ$?TGTB4LpCT&Wj0WA1S(UVTsOGjeGL;p_Q3C>sn_eL2^FzwTNkR@S+T#nO=p6K@;M}BebK| zmO2+q*q3ap>lLmjnjDL#%*a4nss?#|W^c5g)<(N6iTa)hGDKhCC!gk&PLqm*h^A z1R|)6KdOv18|w@OKkB=8l8?{H(x71I2{1;WDoWbg5dmFeW4GUq6H_`mI{L^o&?HgO z*Z?0NpYqr$*^ab~49$#}71h-t0jv^?2JoXn-O!`M{r6O+L2$FCCUB%MWUJ5gH1M-&MYGp3^YhL?%V02ANnM>NP(Pq8 z2rTRCX5+Wj1;gIxS_JQ9$~TwkuCA_y&CrtSY9V)b_fz0(Kx9%kh`s(<%^UZW{jGxy zY@=B(A8+^m_!u@VVq$Djw67Hkj@e)d;n9P&c^o563eUrYNlkBj4u7gf%?ouq8w!`W zpk~-7uBUX!)_J#DsJ;Ksp~~o zA;gD)#TNn!wofzFyb)eXXz&a8ox_8a;q{idan}~+rzrBPOpE&E?ITcb|DCVwNrMtB z0<;8>$VI1?wi>8^Cr#u(r)41VhX>p$bkHM9Kok4>`}_WIg{B6^ErVwp?U?bZ)g&2n3}n z;Mp5-TMmb@;1)AHTHT(@0Am3Bk@rEB6 q=mh8g+x)Ws9qes=Pya)OJ%&&{hx2>${egEAAg6y#ulRTS2mb-SOTl6Q diff --git a/icons/mob/clothing/belt.dmi b/icons/mob/clothing/belt.dmi index 398d4589ad71aa3c9c5a663287ace76b5800c4b1..f334af20104e2739fa4b13c705000cda712f33f3 100644 GIT binary patch literal 32413 zcmd43cUV*1w?7Cf;430FKtaGl5m1n>w4kVnG^O__NN*~=B`PW+0!lAJP&%PV2?zlq zBA`-24-g;}>4XqM2ni{3^1k0YzwgZ4`#keJGxyH?k>u=h_St){wLWXFauR#bM4#`F z@F5Nk4nBiBH_bRW_T>SeX9u}~8ol?wNkD-VZebI6(>1{5spsQBPk%oSj?j-eX=uOm ziibPVnpSiL-s~~kuKe4Fb+oPMqp+7T?rgZ;$ z+IGyf2;bOhb)Q!tC|{?OSnuAn6+68$@Jg&@Bwzh}`10rPV+YeJ;vbAp9!$dnKQqLN z(LjPt-tugyQsT0Uvtq%J4-u{GW> z*{8^W6w61*DT$b>Orh`S1e7IhBLG8mMHFgeBkxY#GQVw8hngjhBZ7MYbhFslWC5`c3WA?r&(8d388$ zpL>|JG_Ng##_r`!Iu9LfSZyBO0+wW#@pZ;qJHB4#$Eoo7KTyLPUsP|s$9@#O@dTu# zVxTB>_2qeg6j*szt=ZU)rk5X;?46%sqx<9=U!At#t#^wzCS~WYg~A8UAT zHU`ln=CowZ#F-pD_nZ&e#CfapjJu7mqDvBCywpeJ1^L_4A=6ix0;YSVC8qInuM&@( z4q5ury*e9aS&=KY#Ny!7OX@;A*j?b@ILl#h^SVXo$MvbOj}{|2EEdJ`SZZ3~tw#d) z-d%D&{!SNi zUFZ8*bo+juXP#&MKCXRB6#alW>@CYG%Ez+LPUxcU)ImvkvD487l?K##t%@GQ}T1-;NiSIUajaINoch$av!GlYBLw zvAhUE3x*fo`1{T6{M?&Y?g&BYLqMlf)=@X}@1tE?jM6u%GeFSRknj9Z4+~Ula=5e) zwus8w5FJo5@TeP~GZ ztCDfk{;)(b?H>6Ua_~r%0(tr2A{vIK=yE@p<^1Vnc_=Tlhjl$;L+7c16qlmV^*5WD z4jOtT-DmGC_h`{04%AqWqIgu^2wezK@-1g@JX%XXirquIz2oD^D@!QhcsuDDAs|0h zoTYr)Wj{xWtb%ZS5t0WW-k+mZ|6SDke}ysby8x8CdHz`PhR%#2DK|SKgyZ2s$!A;6 zDcQT%Q?fHClO4?$G6Nytdzum6n5)mWUZfz|+a7|tFjxHMH0Xw9lT}<^D$G_xs^$svuRIQpM~w;ii9#e-!F{zp z(0?JjKb?(DKn#8nCKb)P6C!>m(I()RrVZamWMM_lI~n5wE2QqT3Dp*7owi1>dN`{NPGa zf2m>aLC^QrQVYPGtVJR;z@(nw^9>exAt~Tl{=mR)3BjbDS;y z9~4)3UnF?{ukqSL?}Cp8I%;AP)K7R>OJE=}J&5_3co4Ak52I$?F9ER3VU+5E55sCIS40TAlkIsbCL&1%IAC$+6qw$FB7AmMrkVcd@VJ6>IO}Bsl7@8MdW~u~b4R2wRbbeR%3=w7LV!ZzO1CZm8Wj z@%z@D#vSMP-d)*$A-a?M1gZmv`~F^wzzU`cY%=msAt}&jDvie2LTIQ~I6g`PrjRBr zS~%fNFbWa*H0zSVk@p&4($xCL9}^}TgPSw&*(dGzFfFLv=^p4s)1mR(x1U^-ico`= z5fv(o*G^{;)GnL4Q}3}c{O7(9(3NpG;!znnQRKIjeAkbvRC(`14IaOwD-cDG4JX16 zCIf;sG_@b#2HE$0=<|Fc|8UWhLt;SHf1e^?5B*&B&F%9=vRKE_#M}8M;T#-!MF;b~ z9Xo$KHdKD~>mjV=hgfY+4zml-_Ss4tj}MQ1C?_17aYtoUBC=@pT#kb{h$C--= zCG#5>XHRg{oZvk9Q>krJpJPAAqYL{kzJGOophP`k^DmB{W(V$_<-K*`n6iwXN%Ve> zdzM|pfjkYkr^z1*@Ywn?CkA)Z-t%8p){p#93sNpf?)Sf56i+dRh~+Q$anu;ZTkE13 z4-tU2?zy_)yY1~mOkf$=6<17MJ` zR^wCJsol5Y-`)fi*8sqX7Ks5Lx)twWLU|PE2IS^m-IL|n>-iZHl;@YmV&D@iC7C~2 zJtMB!hDKeUS*e5>X@vhyd6E(3^5by$#nr~$R{cfd5=uW&%ng#Dp!?_ZF1;!t zgX-?q>1|g3*TVS%fcZT(G)-Su!`}(=YhE~>d+Nhxa|caC&8Po0pU8HfCgDyJ`@vMK zLyRd(+8`z|);OV40A+;r5>?ZieaWrrWKHtSlc zAVvDo*OLjH^YMXmF{Z#1fISq?y|-^U>-%N9Ed%cgnaSgw8?u(X0FRH$q;P~&_9wUC z=nvs!GzZ@(0PniNhZeN+fL2{sBKXPQc)#x=Q2coQAMpR5DLiVtBjH@*i92wQgX6t` z&+AJm3hUL<>=`_2^iWwHpAN}5m%;(qS4v`V*vd#tM2NwlXvpNT-&#j?Ka3=36D6G9 z=K(|bH4|^Q3Y{@n3ayGx7_9>PCunY5)n?I2D}Ivh#viW^ ztWCEdb#`a=8)qsNcCt1S{>qm*E9xf(O=t0c(+XuB@Gcg6FPe7AHfclf>Dx8pPW0kt zgnxhiHFd+Xe3yx;WQmqthm`<44d;#zda%+}2zu-tRec{9S!0$IXqN0!=h}|iUa6-g z6%dEqHK3wfU6NMYulhtaySx~QMLWu2@#y!DLdwml8+#{IutE1z6rar9R5%`+VZGF6 zDgMg=${>$0b$-$W`Tb`{=#g@iz+gbcj0BkqJ~RF2S%K%pH0}el z=#RG^8LCYaie?Dl9${l}5z(|D+2Q`&ppMh|d3TxI_0HPDn)p|uAeR9oez zb$Eoy-mi7*weh*5eBoEJMe?SMYZylkAXI@`*Kl#$%hz{*UaxhsFB_4w@*4Fv9GW_$ z#37gG*C^CW6ARIa} zKwC^s4PP$B)6g;N?w@DXMWJK$KXm=$FaCq*?i&=LhzUm3yjy10H?c$z-(D!SEb)i<4Ph=M$B@0gfJu`pS z_SU;!uGZ9gEwX~+Q;o9eq zDT9vQfDhSQargh&Je>mq;ZN+Nh~<#=4MYkypu=Npodrlyjw53bn2Xfipq{0KoO!PO zjlI>^Le|gtFAhU)`xjNF#swtz6c{A;e0?&1Lo`mtyeOkFV99G^vaxfq>$0WQl}K)# zoV>f|h5J~2byvxk-abT);Co^Po;7Dk6f94{A;o7Gv7nX zT8!zh4fm+gm*O`fC>xF|l-F+L2;C1z`IeGwb>yt-mj6riw*KBf7FyC3_ zlA8a$Uvn5~aOy^UPqsRte3jnfa|C9#VA@r?4?v6eoHg2!+?I96e;)!cO_%$s+4o|L zU`dtJ|1uop*ueMrEgM)kiU9@tKUgUH&AGj;Nl;M}{^i!FBo%bw*okI}Z`{py(0~y= z*9PSKgo(;dO%LWe(s*;4GV|kpC#rGvQw`Sfj=rz;Jm2o9Xk?3R`eqZ!Ny3?)ji<#T zPDB{S1P)K1j?KvN)LQ&<#yl0I#Y~Ux70*TtD2E)mw*Jk!5~pC$#QL?={65^!4xBWh zs!98@Y~Ot+|RQKF87 z0lCnPoX~K;=3N1TF@40(w2RIY@l=&n+Bvy+>ag&WoDT)!2#_HNIn%tmLrhk}r4*1g2OFya@Y$*7Bsm7#|EaYce?Grx}d?hM2C!<$BVVT2XS$iO)1fC8$R zFU@Q1!PF0iy1^;_Y%(J}sm^?mU&6QKX5z!s{m{H$-QDJw1kIhCa*OERRh6K{vE6x_ zOGQH9@K1LU@Vb2ymE!|VdSJNy{DfU21XU?Ac25pNux{u?i~uddR{bb1eT!T8EYXVK z-h>3qwm;CC2y#b4YJ3T5^6wI3eA^UF)uz?DX3P!j-_~~#&`d1_=B|pjCI4TeCe2i= zFGiuNxE6%2wF8^Ia`6i|ti$j!_ryn2a&9|RUcQAzgms%R{?wf)A0cyji>tAC8nBgM zCsUx+57An1s0-L+df|dtQ1irn^6%4rA#>H3vs)OmCOyIA!n7UvUui z54T`{*j>EhvrnR0NX!`Gk`Kl-5LYSb+S#rK?eUJ!P6=%GO=y!fklRlI9n|u3sqnIe zYS<_f7b%a-YZ%fAF}}XI>d4x0zGcvt zyYL#oJpgP6W?6>daeY7x;T>EDq1>njSksR8?M{hn7ipxKT58uaqbk?^9WK=DW>tw3 z=g$V(e)vN!lC7`%+BQOE#GSor&n{*>aSt>?y~-SW z^#K3Felskaoc|oxn*ZUA!5Mz+@h+`U8Vk?NeWJ+CWORqn)s_}nY1J`(x|2%5|LPIB zGn}2%1C5S|$*wi^EptuQ_rw)Ep^bAbtq|SaJFJ;$#$v98e*HDS^6PxIE;80%km~#g zzwYAQg+2;FE8AMyD{|5t)WR%)S!$?AwGqGcij$&}I}J4I_Q|DILMC!!O!relxWtg# zo=Mq{Q0b;Dq62MNzx=c&VE`8`#+}-L%BozQ$*OpBjPM#*KPp&s04<@VfU|!s#9o z&VbFZgyU)01M6Rcy|`2EI1rpoHjj_t9grygX{3 zh47eGvE*k}BCe#2YcRyhlgn>Ao2o@@t`!LL3qjKVka5BMY&KcQajsgXJ}NuIcI!OL zngJ}r{{c_k|Hbx8Jez+zUTM4;YO&6oJx2OokiE#=&~jy^sFA{-cr`m)NNP%jLL4Y0 zi-|{tg1)#rN;q5TpSR{|s7Sb3=_LG+$@wUq?RNM+;A8OPhjYbn6&R%K-gib}ok3Z{ zp#Ll^l#VC8v4xtbY%|=EZieTJ&_nJk1N!3Hb6svTUw^eQj+!-4O_?f>C;v>#ukFq1 zC*3wOBv72C$a9BCu*?>Y@z)&TFPBN%wr@M$4u5^(!Y8UR-1G68a-C57C%u@g&Ug`c zNy(k4Tph#2+!Ld@wcuLGV*vwoR&P6m@5&CA+|Pd(eUyfjNMubt?Nw@}&JkGh2KM~Z z$fvB$H>W}K{rt2peSM=Q$fopY@L2bYLt^$_^x`1q^9%cmXA(II;V?ymL3q24dB&`H zl3U-$l@^V4Wdkz+B5Nf#Oen5RgEQjhfU-_aPnU*%^znS$%w9@JG?qIdo9-7qZwS3= ze;LxxXunXja2iA%+C6>0ihYsXJ;Z9;{NU;EGEvLG{dT@wG`8>EZR^p#?xBbTlXhj+ zuVXsT%g#L$+6i88eYQ}lMUoPv8zEXRiA3Z+fq%jZ9@%YJQt0!1?0L=9Nm_ep&jF3sso|mDYaN!-zYAecaKuP zBUU$}xwf{FzF0Kbu*Q2oa^cm}>?XB|#b!6sNjNMiFj!@^MJP6-wwtP~+D1=LO`!55 zsFXi*JC`m8i&c6esq$5Lr6vuYivBIDaCUe&Q`&8sfAZMSXQ!s=6U#h|K(4$;@^vS5 zBo{%pzB09o;y=}#RD_K~_)7|ARIpzcc?Xrr^2S%q4?vV4Gzl60SvNG-$@$@=w6&c z%L9DO)-&dQ<2hzmLSviHq)majiDx;^N8$doGTMfZtNNT?4;0g#4h~qoz@J{4Uf%U3 zrL{{@kUzKT$lfL2a~^Dpi!pcpg`!~ zJA#f4ubhs^_)QD=Jl&HSqw{hKoEapepkSKxu|;Tzyr;vdE6bP5#9+Z2B}a@vk&2CeJ{in^y_8lx(4KcadX6k@^09=}r)iqBJsTt53HzsSsTboe z>;-=%M2gp1KpSjcy5o=ZE28Y<_$kUfwETL!@cG(WP-Dx!CR*v6YlIo+&6w_W?t4N( zvU63>j)-a5B-MqH7RwzuD+VKU@sOdUA(1bVJ^l01qW#ORpt-am) zs@|gfx|Fnjz74(j5){Qw@?#MDJPQa@gAn8U+7?vG;GRqgSvb zK1VjCHf#{_A}rcx$IY| z`IMG&LUJWm+WA3s!n%&brEgICXiyNNRKl}Z@mkA18l_ua8FCg_Ed-vgQ;GS9-9yW!tb0wf-_n5Acz`6t{nSnr6BTN9UgJ`T&60x`W7*Y32^ zf&vMkxhfbxAuBImxrO5eTz9qZ=pFgi-MK^QG3{S~mQZ6Mve~&nv8PwwYi6=?I)8XK zm82i~M0yY4$S-;qQy>l#cwa%_#?m=}=E+pd^UK66lhs1qWvxFC&W0$l)*3bv{#TDM z1Q2B~-vrKKfPYZY=zr2e{=a9Ir=E;u+su~eTRB%O3NbD|YJk)5alxCL=cR<>!%M~T zw`@4MI5lULEh`!Rn zGbe2-PqjX73?tWUtdcr;h`!2A!4H^;j{%x1Ck4*MO5aTqly@kpbVS}w3f^G5!?eTe z5QJ#xRHFr9N7GQWAar-T#ooq{MgD2FqHRB7xF)>;1r#AMweuCPkQZ%x#fl~R?##8p zT^D%+y_h4H%?aQT`P9yjwkr%vnP-B6f@1aMfFIplVH{>KDfSvz%ke7EVkYZe%cAt1 zr1~nXD74S*DBq}QhZV!3Yw6$d2h3-GrplkY0%N+>mnOl`u2*4x{0|5!O+f!US_I33 z0-42pfU5W>7r<_*z*lIwpw=`^;<9biwg2+I*9s0|RiNFqin5{B?a+`48^Ql_Hrf$8 zDH5vw(+)|)753`dyED;Q8bM{F74|~GjqPUwmc|F&c_a+tgf3ex$>;Dxr-K;>_VXNh z2b}_X!^x5>i`o7OiD61zlVSB1HN}H_q|XB$g{;R9AAX{?@k7oU(C8#|#mk=Go7TEj zkb*=BPjp`t8@%8vdPY~?VGrlYuUh;7b2^R`Z*zq#F&)`$BVRhCPIdbJhpyeQwVddF zZ7fx6ts5erm=Un=;iTKYFv)|}0hcg{Q1}16BG5m}o1XpPRKsZiD-9&4R&Weg1ja3x(b7x?M$XYf#~K`Lnw*R@aM- zv)$Yn%kUYQ-9r(jTQa+Ib8}_P)P6RLPQS-F_`OIR8aI^+ee_d&?)hX9p@C5Alz$#z z)$zR&4A^M%iN@Zq1JmnnL|wn3RRYtq<@PO;^`qp`$o_!?;>EQvqc4TbJ)qJ2;e8sI zkp>9Py&UOoEv9#2(EQlNG}2 zy>ba{?kcDbZ{D{G&8ZwQl@QX>-k3Y7^$Apaz%&tgmCJM)eW`6|Uf!hb1Wnm+bNg$Y z`DUXSE!sK^xqDCwQW2agK%NF` zu`D-E6mUFF)ZVdKCb8ZW{3^~ZYi@4-5+d5P zgU8AV#;p|jql`o3Qq2lEG<+viE*MDXhJKdtoc;c4bpipG@LcN4Nh%n~*S9yEVl@Sn zPUAz;H14oxE2v;s-scD$DyA=&7qY@1m2T%&tQL|_P(XmCxa)t0S4e(%du6DCIjZ>d z&zKt}|+3Bdu^iQR)ORaRt{tI*%gjxmYIDn;a0v+}pu>OLRor0M@Q0+Xi~u z;ha=p?G)BAL1g)oy%3ewz&SnqdqA~~QTJ#SM!Np3cscAV>&1%~yYwz+MR=D&YTxxM z2hmxoaHAGfg;PaBZSuux`@tmx)SfY$fc$%(v&n zDrC@_8=_TWDw5PoR5V@8&_t)*-LWanF(4@z-Zxf`xZe_B!yV2>3eSy zbc|HLCjGOJifizP6%2ADrKbb9p;r22zLTvN=-09#;ftArZQsl@=BQnlFs75N`}(3y z3D}NP>)3`Wqu!e!ZIaQ-gHv_)?GJ@8;U{%*ktAb-7#27EJFmh4=>AHp3zn&;bR09) ze6xtqZhq#DTnBW2y&bEKNBmtP^?E1kawt2JJDRvY(pNyG1Z@o3+Wn~%BcbWatW0HA z<-!&nQ)X#sw&G=dNl>m9n0!cq+{KGmm}M@H$>vX$xe;C?gU|QJK>jjZ?^?tj@ach$ zI=&p<1mL1p%<0oel5o`64L+gr5higEz!_^IDu%`6FWruB;is@Z$$K@S?c%?v(1#F< zQ{U~HW(%Q@IWsUWz!?H*<-B=180!csSt-h_wh*1=%uMc1 z)A4>wHI=ugmCG!G8huu3i!xY$Y6?xkqugv9dQ@D_fV~GU-sk+!MkfC2b645KKe#05 zrnfK>a9{fHzd=R^y*TaviYKpBSzQ(lq5lao!LZ*yvb?IE=?pYf5&cJ|^j)bknj(-| z0PVa#`(o=mQR9`V#x7aLEu#lWFb4pmPV_*Z0uMC4!ukbZljA59R|lrXq;>y}r*ih?n|$d|m;oBm3N1=MJ)WvwVhguH55>(2=s z@7+qM$VWp!W^k*DyCIsNoSAZ+0IT*uzhKNMj2l2_Yz!1wMQHJt(KtD3joj+k>s?d_L)$gS(hatBwCo8@uLaQg&}qL{rqG}-(e)76)x}C^aBva>~FPqED^vP*G~GLf=-;^VE3BCCo>$Z*GRmT|4{B4z0{l3vA!YPCDC0-lW*GV9A2jy84@+M( z$bw$)kJACpQJ%QgC|575qOLE)eiQZEqkm>9Jnb{Jk#k^--^8e$uYs5PdYe+B&}BP| z4FGryHB84!A#S*Y3h6!Gp%WHQ<^PKWyOzP)Qe@4#FqQSkNZl9h>%Xa`-h3l2XO}zBsxT+L7;Gr_5&0+fx2w}Ui zQe>KxgvoLkk$BR=1+`b>FYRpkG&i={4v*o}I?9@d3Rh4~9#*WQ`sP=@Jb&Ww1Kk647MO`TmxyfG$I5 z$|scA`+r2a)h5i3qh1%bcV`2DRp+8ui5elJyY_xh0^V6Wd0w``_9H|50~S)PU$^4O zYnbf$1Wgk(h!wfK*Jov3WTYq_x%s>)gislKLfQ?lAjdHYx8S%eD{BUD)oMYvU;UJ6 zJR7vU#+FP31Oy6^sr`=B8Ii>;5iunI+Jv=2zl4)l3!PfR**KVv+kD@+)uvwl^1vc0 z(%Nb+<*_lfZK!JKlZ(DVjo1xX)Q&A_t6M?NMl+eJ-Ado;4&NDf*CSAn1k-~N>9*d# zQ)CuL8UrL{ioY+t{Od%IICC@R9jjsHH&A%$e2IJdYX1R3G?tOwOB0$7X>HtWB_)rZ z(tUe#vqJP2iAw+t&f9TIUNnqUixaFd^fmI?35X~Y0FfA?W?ze=K z2LTgmxX@6DK}AEY<~xf$hKhP)dQDGdu*}%eC_r+7(;VBWodU&=kh{)^K+nW=Y|j}g z*w}MwSMCsL5Ohe=U292XZ^kFC_L#M}k#0m(ml)v9J{itX1=1+NViDz8DxRNBKpQ1% z{$Cq={&s8E`Au1Xp^hd0;nvP!jlDm&h+13duDVA45Ys)Jy|o#=IB%Nf2_&|KKP5OJ zvOu6ZNcc^fu&HFTkm6auG`QdiNqG0G=YwAFhq~Y{TAhOf6ood~!>E75b*!q~@zuDvkWIiQIwFJDvi(u@W_ul=)aeGmarzy!=By=a-cA@HX#aa+53hf* z{xb*Od3zK%U)ri+P}<(!bB*FXIAt>7%YYd7z3Z6Hi9jGjL+GtmId;S@vfXIFpk6Y* zw~k#WWq^ze@t$G^5xeRouu$e=q(GHyWiZ~Qj3xvy+0-uFq-{ju7nrNL+%Dc?H1}`K zF#za>E;UvMElDJJXj?W@sF5L$V9DyCy)}y`c zr?;G1sY+G2>X6LNc!C9BZjAs!WKc*N`hw2MQr=OLV<@sx-AQFnpg71+{1mcb95BB8 zY@3YuRZ6Owg4Vn?XWAAUmvVV4Vhq7hgKptre(#XJ;Zk#b+@-zjg2($j>N8b5lTNGq zIh5ey*!Tvh$&ty%fOynarp&DJ6l`&DI=k-HQ3-~#kT2}|)@cv~N{yAuEG#(}f z0lafJGv)asm38d+C6ZDvLE* zCVfcP(bxdK%C@lfzsJG9qp0G&fivGY4Q5}PLRsTLpw4r&+}3HTDM*hOmMmrb`!_tY zeN|KBdvRb%13M=Sz-6n&9uOC6p4_v#GAiz5vU&XJ>wg3rJjUIyq22%FZ ztQ91Xuhs*&#H+G$U!&7DPycb2JgM7D1fAp5Jv4qwM{=d2VS0*??-`fp0Yb z$;djX>-LcA@3#!twg1nPv1-2mz;c7R!p(03Q+rnKVOqG zL$RUrlo{`#=1<)5&835kFTi|%hO)<`|0y?5(xD{Rn#A&)!DHWEOaj!q`GHbO;Ro?6%XWl8zKc4v2<<;MdLLd)O zW~$zS*WkSoWMB~kA1SCe6jyuVj^paYC)YuNJL%-;Ps+qQB~2w#^V3W`T3 z1P?dI!dnxKvKI?iRRw_f-`RPDmxVR8Smhot6u&0dhJVPz-Xc-ged+L2RNiT2_b~QW zSjDf}@#kD`vtv)}>tPss)TUsMQe``p;nSCo@Y`Gdr88~=It@As8~FS%(|oo*va!-8 zomp4WYGZ%q?(*VEE#OI0JKyrBftgAX5yY+lrXtW_4ODev>F2d#* z&c4;mtp-ci4aU$=eH1WEygjT)VKl8JgrUY^Agml-N3@Pc*{oHzf~Flc>xMH1^1Zja zg@6|X-V2z$(oR2jMRB`O`9P5zy{Qrp+iBS@_ML}6j-|AL-1UI{@dCKvZ7cJxd)>td zTv3>wH0Ra(bEn3%Ags^%4|=oMnbbb|W!;i0;0%;9;M zdmPZ_!&Y2MH|<1W|K9ijv>RAvFa5#QpnERM|9LRdu`e$cYw;W<6l)Fl98L$ zy=NCO{v#!o^f>57qif1vI`xjAC%9-oW<~l{F*Psgonz&hp_~>qI^L@vJcpXyadziR zw=cY>!~0GUBv-~8(tcER9zn(cqA+k_s3?pXAGmYZDuCo|~1RAQC8qt%Y_PYk+w+UT@K$M3U|475P_?g#03 zsCeXt{t`V~qLhH=Hy3M@SeD6ckLt1)9X)`iz1B;ii8%P01{WoJwyFR!2(JD0%%v+qHEHS-MmD~D^?<-WE^6DAKA~)w##-lE$ z=!v3t1?yhG;yvZwaINu++dVMBhL&qMK0)X}@UgoiGxe+KLViPJ)VV?p6Z`9v{5lJ- z%HQUqgMTGl7VWZk>Mh$bUohX~5j=D8gc47pxX%kP5ZWVzWz+d2s(ewh-bovOGF^pk3Jh1^W10M2nf7{w%fZW?pm}<=$ zyp3@HMN$(T%OTu}gfe)gQfwFD#+OA)YexY>*W#FA;U|KSLN6&8@0|y3RzZ7Pz*Pci z4UT)lW0%0I-#GCT=BCIx%OEfRL|m(8a6@P7ZrYGIH=4h>AK)Mls=EEG!ZNTmOI+SM zpv@cZ{=6j@C&!(*wkaT&#Y+UnLPu64tHsqy-1jv&9sW`EAsiFi5MOo0!R^LwVA!#w zZo7JmYtM8-SOL=k6ws1^S&ccK8Bni9>QT-GmJc|G>mRi31G4z!Q!AfJ0edln!zQhd z(X*=PPtx3xtzb0af~|J;JnR$)V?;-YvmZQCzTU#uHZP(XTyCJ{hlRu1gxeK~ z_?w!CM!)s`i6uoI)dmhV|DCVYlv#1K&}-z3!V-N&`l0V-2-U{v;NVw4_VWA2#U@3Q z#6~TQgL>!TWzf&BSuuZ|kjnV`a8zuPouAuzj+fn7GHy4|kiDwi$51+d7 z<7+NYUJ;PUseoEPH1yeWO$lpP=Y_xY(g`vyP;|ZhwQIeq$5_8X6l;t@1145vv<#%Z zZ+e3cssq)(v<{zE`tfIJ$@}}uzdBJ1z{Ss_>YxLIwom{-iU1#)IFw$k!`yXI^_>_V zeQzbIYi7)JPd0MHuo(lNm0Q zHSq;eu+(bYHn_)BE)%FH9N@SSy66W@Wdo_cfpx~GCSB7pKL;KFsYXM~eK4pS1R zsz6VFWGH5p|LWq7rdhlO1Zal7^@oXs3H zwLD`!g*xRBWOVpteGb4|nKTgHK)u3|gc!+U)8x-WP6@)hb#%?YdC?$dUun01%}W1R zgU1N%3uJ4{WLOmwuZUtzUC6DV0jry+eZ>6KwY2@kQnoZ19A&vWRJ=Z)cDVvGwYdSG zcx+~<%@$P)VGhlp)q-<+uQS|p!#cCCJbcl(R*5W+2dtin2#jM$7zB?2LtBhM5otZ? zoe7BX7X^csUHZ5vyL@@!q93{*_Q;*$m6c*}94lKyZT--iYT{Oc`Vu(w`35p1t8+?Y zGWiJC;H$Va5d%BOjL2HlCD5jEWCvvwoTyU{BPlfN>W6h@?_bn}<6_z@yVwK9x%GAr z6UJJjTOE;|UcKNk-Ln741^95GGovX;WEqR_-d@ax?iA=fA6__A9_X=d>N~Ld1+qHo zo5$|6l86ms_>Y!*rq;*cU(S<)C_ix7Ld^LKBZSCL^_L;0`&o}GO|I(T45C2GYCgku zT+y8wwzYW1$BK6^uDkU7B|U0REUFr*LO)Pm8d(~gFtxP2_G}R#fVn+lsI=m@AI{F< zjG3VTCjG9Sdkwz+<3w2wgoX6}ZM4BA&lF{b5DyZ>RoZ$YcuG|Qa{+SFpIq^vUEgly zf%@aQs{N*#exuQtU)6e8wIw9Ai-5sR7ALZuWO^cd+xMqtTzI97G9GL|we8%PjD8t| zd4%TMcDosjC0xh!F^ZmuS@HK7=(>a>4K^|2pBk(g4(1bdDvFj=%x05}h1Gf>j9|R!5GN@I(@63p`p)}_Zm@6n#4uGH ziT!s}wTnNDh)HyG(GeoWT@eR&0=`(+MpB>3k=KA-7VORPUf8ZA`ht)VIrY9cze1-P zTGBQRWw>puBOqv87SM6EcVr&2{uY z{N6%iG3oaq+0fney?(P&S#4G~nNF zmr1Pbx>*0VJi5K#sVz@&@m)P$1rRScbT0XA2k@^TRh7B9RFKu)DYb3XJ1{&L@1~LO zs~J`8RakR5lvWmaNN0S-9~L(>132*BVpv@`A>b{6sBF0pker)s{b644;2P?5zjvjG z%ZpiM%NgSlZ(}|HY5?fC4Fo(bE7mIGa9L`;vO>je(PU%@K@0^TjD_z+ok91?rmFX7 ziFvV!hNe~14KM8L5b(&jVkuBzSL+r}4!_H@W~dYi{jL{pl)~#6v@@8Aj)Uj;P^8Rteau1&m2b8Rp8zf%+U_HLnU#U*^2F zHVN9yzEA~t-@VS)ng~AfDBO;c9sq+ssBk#(Z zdsF)Gv@U6J4PKm@MHp8gKC7w%wqYVEh%M#j6IsOqFJF{Dqg}rwi1n-po_h-qTuz}( zsQPy{j61|m**QeoRCFsKzwgSy7RbV{0T)jhfYD|vp1X89U5P?o9YvU_mjG3OZ(`^L z7w_*$DBv+3^_Jc;jZRNVxf4Yz*=eh;F5S7NT}Pb>2kMb+Ftv4cl`W)a~+q z$b9OpeaWHDflud}$|74@7F#H-e^tIHT2;M-t8~ow$5h^@yh_TABF>DW>`GHTx)LhN zz*V`UmEht8Jbw$mo!?nA*au;yX@g#ZZ5>I7=}jH;#WukETw^+${ie8A$7|Dx);is5 zs+SDYTZ@5>H!qsr?jr0!rmJ8dDyyy30gm-+Omxg7tp@NUYHGJ)?Mtpz_5GUIl(Brs zH4GltR2Vc53zL>=;b%5}p~B(JQl>wq{2lHE*0Qr`6<``b z`kv4}80BaLJ++k056_@X?->vrM*s7iE2p9ZMQc%m8KH!lVAlq0TA$*b zE=APloR9xlKTDP*tm(51%@lI_i1(3{H@DJ-0^|t`Uu2z86O%tILIW?ZWU`V+1;(xb z0U~Z|v2J8Tm|_w%T(kN$Yi#G$o!F%K*xq}m;_!hQ)2(dg_8cmbm5~`>b8?ISL|tiW z>K!NyQZaL=1dN4F7qW5U%a<=bj1TwZKA^rYS5+1^0R}i9^VMw#A1IQR=;(NG!B9;~ zO>efDG998ZeZ4KUYiq;T>D?dLv`P6as6OhP+2=^q1IJj6h z)E5t3H`}bnCpxn$Nhoo8uNGVCS&SL~+ev^YAnIfaVb>*F_KB9m!BH)yjXF%{K^*Yc z2XbT{M&cP+0s{sxoGc*NKPVEfJD_OSn)mL=ooCEwBjCj?%>{qbu3Xtd;y|3jt38nw z;Gb&d5o?hxMo7C5t@UYjAm2u=OPu~SpZ+bC0uX8ol=X9Q?_9E@qfXGO1&P=t4hH~{ zwmYBby2r?1dewmg0JG0^b-ZccH0$T5nF!qzqLHSbkK>Y0x$#5zFbE+9=5N3SUt`Wx zOGJIPW1b4yh_oxw-W9)QG2JCPQi0V4B+zm$;&}UdTh(mS&NEKE|MNUw?`g1gM3HT6 z5gWo*fpY<34|$vofgRbc2_WWdB6^5MewD@Co%$q>0z(bwDGXLXB<^?jAwXv@Kx|ck!3o|F_oO1FFerOB4qy0ioY=|z+xAicNHdoR)<^xk_95PC@RzIgAQng4(D zW@f$hvQ{8D->LiTzV|ul-Qa!N3trwIhqv`i9BlCiv5SQ4)br8-s(zsZHFrCeVwPeqpf- z11?BVYUyw5RX6WEc6^)-Zeq*mQ+t6A3TJgNGFsS@d56K~T&Ko4st^8QZy(Hx4$|N+ z!-$I)fMM8~xk$5-!Qw>mYKsjKlLQ*whZlDh7%oBgNf4awKLIbagUQov+G-eD6LN%h z$C?i!-@fN69pnd$XuhOg&u=}N1C*&-{KX5Si+>E5br;BDY#Kee+Fn#XcgkA#?t{W< zs~g~8ckDS3k3hAyFB0`@V(0lxGvKosz4}wbx`uZ{e&?My;pD<3o!stW5QlEkCEV`S z7X|@(c$!xmPmG#eG$JQ42-Xo1w)4h|t#G2^NnlVp-xZy-3-lKHV>?DcJ)E&P#XT9B>)H8e3&hv*0lf&rp2 z{F8tHxCY^gB^oD?OZu{vIv%ebUc{iRAoH-{Eq2~;BB8RWg=tTT< z4WRQs`h){6wSewcZwUzQe_)HdIMF^|c+8F`QLAQir^ztIz$J6?2*w{wc_S1?(K=1MaiLHAUAWo zx?1uL;`|WIaFewyE#n=8C?UWKLYj~l`Vkd)^5(}T<=&f*TYP&T9q+hl)sj>tDKK&Y z=P*FR8u|FkKvpm)OW^@V{&sw;0)FL(UzwnvzrTOSJE|l(;PsK0Oyw5v zDyAp7cMW)H2NFd9kNxle0VyoE`xkyJ`Vggfspjgf;@QTqPZTFPerKq}SGURfuNwZj zA6;oJC)%KW{$8k?`-Km8MXsQ#U+$iEwkhZ8&i3Pp0Jo8r=DJOz@L>^exS&U+mgIdh z*ppO<#{|}v=|Bl~WsbH>iY~hawE3C;Q&p>JdgHF3E6WbGF1we_!w8Q6F};ypkNTns z=r7rI!b~th2`@a;uk-$NKG5Cn$bWv^Y5u~kMf2r6E7eRc#|;;rhCjPuEt7Rf@&u2O z@o-)5Naa~U5HiOMsCaRroJK*CMH168YMP#qMBn4O-N@Exa;iSS$Sm_yPl8?f_-0EK zFyRlc=HSgG_@cYZcx)WWX%`QQQQXdQud$?nY&zN$ZyciPbbL!oD&UDB$nhp~xw|qA zdGX|!>Yb`#ALMrHNl4n)*TkT}=$A>Z&UvxK0mOG&qV%v4#M(Ps_kNsz@-Hr7B)PgG zxr%to7nMN?dKFYdWx`sK%lqBGR)EHdXc!iEm1M$NxnF_r*PUXzIhu*c?^`b-f?_3r z{_Y3TXmPQ6oyht210zxEslUI^>pbIs@V!Rj!%}skY{GTK`&d5L9tiupcAKbS5!nc$ zdsCI{=C%npIn0zlQtSvhm)WXoB&W&0o1+2_n@M+RN~0>5Di;4#J$?XwyKjJ0rmj-E zeLxR{Am86%cym3OLuyM;K=tPdQ_5AXg`gnTV6rA5X{T*|8y|~TeGPg=yX(sv^Ti=k zszpyUd|Xd|C)B=*fKG?baQZE*A8k?Df2MMn1F8#>oBgAD){o*{x>c=>)BPnG*gC@K zbZ-IHZf4=87?I~WYuj$~$1&jAGi_VVKf9Byj~L8=Me7YQ!gZJSsm;WCJY1aYCByQCmiuq^e>KY~FV_S~1GM4Y$Vf+* z>amSpLk1~>vGlgKwjs@{nTfDKAR{WUFJ8RD{A$Fdez!K5A1a5h&~Av0O+52MSbhbz z*KYgN^$E;;r||hT3$T^$(j`x<^s7T}^xXSJT+s(#?v(RGHO zp0ea%ih#YQGn@MntDGQf_DC{!s^HMN?iy%!6#bjnCzlP}_rHx6!G(^m&6|K|p5p4b zm=ks;{Km@76BUTfnqmYhZF0QUOdqtcBk_8F1aw#OT^i^`-fjeRJFmWf`stzQg5S=y zXho{xtoqvm(S>ecb-U&Zl2I%>McEm-XI`)t6x-r-@W7cechk+qTi55^Dd-vgQ}Q#s z<(#f3rjQBvXE>>2(K!xxmt?^Ej+`!SWrx6&tvSWZp&0e+(wva$w!PoJsN@gM`M28b zQF$-!{e~6TcNlvflX!M>FM@n5Daq`(A4W9$0l8}}E7w!!v!l@keE>ZEZ2V|8j2_@S zC|ySfsg?Hh0{iq~xS_HT-!Q{PC-n?ZeZpyh7Cb`D%}H~~;c?iyc8HD+pJstRHHZle zt1T}A4#rsCv@Bx+)Ul-mk+M3{E^8Urt^5X-FoCjN7YDmq6^cYpd(DQ7s+l&}m(7u; zz6Dv+SEXA*n8k}NH4St8)--?+X6hOogXMUaE2BZG_(d7bw%l@YYDr0#Yio(G^qTB^W?)`XDU(( z*)+MP*Zl&Bqm?S4Vy8>1;Mb)GTs~;jwH)+ZxR9rqXFPoUJk^+?XLo^QZ#d(&&p5Wy z!xlH=0 zxS!{ro>?C$ib39GEyqMYa{n#BTk1%GLHo+LC3|xwX}$ScZ0cx7s3|Vivg1TvLuSzi zFxLf-)yx(G&5vj~{$XSkDXlps@Eu3+dB{$SUrgXq)H8gtB%TBu%eDL%tTFs4Jup3c zu{sgbI8c_9GhoX0cA(ToTb%gQ zf61EyB5s1mpWX>LMjBJ)3b~spFh-57og&jjnFDDI4Q(s>cnZpFf|kAwJR0 z=DA0j%OS1<^woB#I>btlf&$^E`#U0|AIGNCa+FezySln46;31a*ecR#VpR>c_5YpW$aYfdMkiZ|Qv$G8KN{|?)i)8OFX=}=Ya{R4_tsdrbV-vx_2&CQ9* z@`%c;ZY|^uTPmNjzA||NM{hVoauYxG?to8v*CyHhnWd*1>0xb{Gf9w+tZJ%IT#@3@ z{K2?K7;5l%KLc5Ilq75{tdYq#b5bog7iYY`va4`YwVk4mzT7^r@=Hq`7hT6oAMT*H zesS>oidj|Ga#dMZw*ra7>z3G&89PMz@Ac2E2o916T-7IkY4LGPD;AYlH{F#@t z`I&Nyyk@ZlcRcT!%SWr*W+r2 zOpUI;;h6wBJRomyy#{JNP)=QMTtyg%X3TT-I`5YJ^!{g{}7URK#I~ zOl? zI2ir=2hEXMi?cEU{CL0Z6Ozw12~(=8T=F=9;q_3$ljYoLeQj;LY^9rX-5jHPyR~@@ z!&jm5?W$c^oVG`cs+zlvl#?(NxaO{_ufJ=v_hmt^X5pL1l!`*=Te^e%KvjY38Q*afZD=&vyt zkl$oWrj;U^*J?PA1W7ns+^!+>T$@y>A-$WcN12H6JRjO+FJk23@4NlfA`;LyI9{(D zC8P5>K{Kg|hwgT&#zaQqEFlj})PsqdohbBbRi_%7-Xb#s4Zu~^O}L+3kXxxAf-5q% z6I@BYv$anF_X}cjRnraqlpmwBotb6w5nTPS(v7=monUBfpWp6=mF>^oFWnv(Kd z*<~d7SQs>4aRTv8A@SR5p0w9#&Mb(rZ)Sy}cl@lw>8x7^7Ioa6t@(GWYtl4?a|XGK zuLH`s%w4mx7ttLG?t1iM3+SSkgO@Q94S|mB@lIsdk6H{-uIE&&8EU@9ZXBoOVOn!!?H^w0F5KJ^1!)=q>2*4k zkvMyFtztvYCD8EbXrRA81qlc^LB|)$5%1?kauf`)=i{`DB6_^`(FoYytjCa2m@;BYAI((2Gq~CZzH-*Q`o~-P43J}dJ z+gLeS76?T&XC59^QG)izYiU3dJX*Mw%+X*-Q7?Lvc?yqm#>dz1i=aqc9qcc=Ox6?+ za$kkym@GHmKDFX}_~m>3J`qyL+BbVGLt{=BZW~bKy5#p@y?&uX0ZN$!9OZbbLcCxz zHQ(g@z`U!`i$oB+Qa}$s>o!>aL<9n3CXf!Jg_eDbT`!3Y|587Esb>;Zc#0f(#AYFi zMc6j{vqxvlG} zGq*tNx<(pY0Eu{wQ{;0w$h|LqR#n5qIp#nU6R8ZkcTYly5(L~384o6{iMnyY5i4tV z&sQ15bRk~hRmb~b57pCNs}Qm3ByS}r6_|SzPkI18=6(y+lBhp(9lK#UsP4U{btFlC zAStY^PLge0IkRgxHqX>MLrSA2O*OjY~(CPAbm}@n>1mwY@H! ziqVhu7t>?del)paX8XW*HS^MiS?D#RPU6CoE*_9x?ZVq7pxje&tT|_?!l)w_rMs$ZP8X0yIW49kLz$XxoIiL+=vui_PuRSp^=>3E-*2Z z{xIW?zbKcxLiDEEjoN@$oC#lfQtoy}%JKLp-@0XYb=F5t?(K)YJGXAJf1ynHmzn-Q zP>232EB`-j9zoWBCt5LUnv>uYaFp0 z?jP#j|HBzA@n=g(mg?{G7-AhFXfO5aY6&s7s9%zzL>p+EKii#`zc?J)TbSbAjk1XZz20P_+7R5uWjM723}@*`HH8H>@janna|1`$GjExTL)D z4`n#SJgDw}TzEVtJ`V7|DbVk6Ro zM|ZD0(i70~E)f)vI)AXNM`vIDoMMxeZgP&qU5nRoZ>MU6Yj|6kUx^Fodv-q+Zf9Sp zP((VXp}?+wqIafitFzI%VV?rWb1sb+E%|Sad;@#R^pt=%1v&h8d?Wvu?k!Ik|Awbr zRYGiru!vDy4uGh>SNYbwXhG#T{sQ5KDp>3xEgATwr@F}qQ7@B4J@0Vj2xuN+^W0D)Ma6MiE= zqQT*HKZ!p?bJ5{=TB+ z!0r%JE|GMGI)RFY#@}m4AcIN`bSI)*x9@&WK+{VAeBj(v{#z!`(Ri77Thtq( z#+pTKM_g%fP3KgL_0f~eI?1u;vk@d91FRZSbL+bY$T5zgfbPF1(ZDg>lGpqjzg?#&3>;f_MD-QyWvrvbVz zGaK%I{_52>CE!6g;+=9g-kPjpy#67zwrt~zO2ygul`A>lAHlytLk$$>3P;{IEORC2 z(ttU~8L&$d$Yc9nmx-tCiQ~d-9@TzsmP7kV*61Qman;b64OXcA#o&3qc3W(z_&01>!;S1_gx+v+1Mmm1DCEDFak7T5nfwm0??{1%ovUMs-L6A zjS7+cGXg_Btq3Yz4v^8}T<)btzKOHyUW(2&ELMtKmQv*3x|oGpF#_C=0^%`Ga3pLs zpAh6=Z=ARR)rO8AFsbrdGIa&TgnJopILI4ID1T`&gsw#kT+Y%*7m+l^#hr}r?km=- zpBT+fpM7ZjCUY3JW!`NGN(cCDYn=#$6lfAL$NRkVqT86q4o-vxySNwK-zIm14IZ?OlJ6TuhU| z0eZYPe&YA*@I2ZvVQDua=`+sj!Y(N#<=yjdqbd`A1I8~F7-ij(hQ7C3f$@;*%@4nP zHqZ-#eL3l_^gQ7S11`~J7h~ST<)u{9h}n`x__Nux)jj^Rx6m>ma+d`oHC3<;$D&vJ z7*pGWn>&9zlDK#ky91{nX;kbU`nD-G&c4>5f3FYkRl&jFthDR9o;V#0jVq2MUA^KW z=pP4<_bG0$X&ESNXCLVHVoapV!6aQFxL?|TF32(h=+pbUET{RbU@c8YBYZ*apCykx z0Ry6N#Ty#>7lAam`x^XyT4-#fuRUU`vKjfU&JW`oNUT{Pn`J-nJ%6tJGIalExYvcG=BTU0ckO0sqw6P8d97 z_+`c7OhqW~RHn7qIS6E|MI+>jOXBZBx`*)NXp@&wveHN*2taA7@AX2e{m*N5^>q>i zejij)vaj~W3pQJJf2U>r7IDTOaoB|L(EsU_c`rXt7TQCLdMZB5@P>dH*SK8>O2gwJ z5xxx)%(R%snzAv#-#XMTLSs^WuQuZZ!?I?wUsRtPI+JQRo}M)#I<#u%2ojklOe`~o zQ2rZE1MxUrH=qexXHAs(_|f#@Gn{9DAMscz@mZL@ZM>~EO6nA+&Ku|^F_w||dPkoq z5*6m|z12=p@IY2xo|`adV0(mYb}zm|sIL?}XrV@M^1FdQ)f{WrgLh9Y7q6-QFpaDJ z`XJ>F%~C;t)-kMh+kVS&XSy4Mkmqx~eG>kCoB<+!Lh0Zfr8+~N`D&YG*JF$&5`;3!x=!N&3sQOD)Ue$sfUdNqR{2Z@nVDqEwF0z4(I$2GB^T15O zqLLs)4gmY%YG~SV;Cv}#MSrV-p9qvb7XM3hf%Bctfm}EM*7)5ekOa7r*afw1cvvNz z5c5>KqhY>AN>B#S%}(p{URgqb4gaUEHhxr<$%tKYB|Dt$Y+AQhb25>FVsJdIFI?dH zDd1I)UnfxK91IAwYeF*#!(ki>XfEfh&DGk}sLhajqB%Fw4I;wIAn7w^q&ZeMM%Z8eIp}Yw6O@;b=EY4i{!2gGeE91u57JjQJ`6Hp@TBX2 zprQ=Qm6YVoY6iGn(&oj66AHO0RiO!}IQmmCrgo(WW23fDsinn;COoaphIXzyj_}vQ zdGd}E^-FUT_8Xt9o)VH06Z$#8JJ5LkLY#38T#2E0 zs?oj&Hab#O^;Kb*bfh*r_syrinzMOfKCH*#O(!b)3ubvAlyp80;~vYdE0ut#b57B; zUOf9gVk zGjrQ)xoAyeN2^?UM*V~fsKCdzw<~rQf4!d@MxP?6CXQzi8t4#o?z_m{ZJ9zs0@f4X zJU=$#t{Gb0)i$<87yR7A0Q^x^9uv`C4^=Bqk=)Eor2*HT(nO?EO2X$wZ|lNVEe~bo z8Zp%CckgtvMF9FGCFs{97dFolqHn3uQJF!OANq)ez-_>87+$C|jBFO|mI+UiBq5~8 zyVxS$0lFsWGwQ7t(cBuj1YQfCNTWv=1_&Ns%g~&_k&+KM$D=B46O;7QfeKQP)ddZ0 z!d5{8?CFkYQhkvW_%05oO`~Q&mU8CY(taQ2Sm^Vx^r5J1a zC@-U$M)WM67E8xnQ!J+h<8fdaJQyo;GEfq8dK?MxKWn-KGN-)86A>w&$J)xtoUY`x z$}32sNUrR{M*FdGVIk8g$Jl;WskfM7k{XHc+8T)(Ke;x>FC$4iwG1dreivvpHSP%j$PEUcKG`;&5oRy~))Ulb5N23*-CU>6+8TdnRq>LhAt_*o&?U1_Cre zW^T_O`5{F_P|tx9U)09B;lnW#a<60U=p)^dU;<{0mAmy#lnS%Ow5$QxZ2al`MazkU z!^2-&#op4GX`O)qkB7sKaho%I(e*~TLcqrZ@^Bi*nbCDSCULbHzx8z~CU>{uA08W} zFv}>R)8mgTXz=Or@{8z}@t94iyvZBB&JDq8#e(rKX7^L}ccX3JmpynhA+=HzR=XtM z-qR2&1xldh10(QZxe!&Og>d~6bF?V=X8P$ro2USWZAqu(L^_d0fff_XzYrmPGJn8ZzK*!*W|s|638 zs>4zXlPK%H`}Oqn+|@Gs*uj54t6Ay9cIun5b~JlgI#M$>rhZ`j$mJS9-Y>&aAP@TB zz~5(1DQo~sD~6m#I8LbQp1%RiY^$hR##(ouegMo*m_t8yxB-j@l^UFvmCx;z-<>#m zD9W^a+Xvt$m7SmO$j$=5b>lRl57zORC=-C|44DE3y?8&2a`w$^6+4HAu;=*+V-%7( zmtUMBX@AM@>mMNYl9nw+9#?B$bF!xjVnO1w*^sG9+je!4kS&YXY94oiyn`!>fP^Om zfVeZ~3H|{8JO2t0{iFOpCL|D?1OH9nhv4ZT*J=2iY_@AZGo2e9xGFVfj&1(d4BQ>? ztk5JKI=gn!7!^tQT4=$ss~E=>i_xo)7wnR z+1t_;$tq``xD{2lJw(_K3ncAgJ`?-#NEI#FLuJZO5(_-uIb} zek$84_fmNL1|7Re=jp-t$|*2$5eg5@5kp)VRkP55YE%zl0j)bj8BfQZFs0d1-})o@ zMf{Cg$VJAVTAdmywneuKvyz=( z66Ij-rEcTsC16!*-uZK(bacO}9>+FumPb!+XuX$8#jjQvbsOh7vgLcp zTEwUjuqNI`%!^y5NZvFFbTH8{`8$3sL$C8$8UPlmlKURFZ4J8>gbt#}sp5ryX|a2d zBwKqgF0lr~m&$GzuKje+H%4^6zyD#$%@E0R_CBt@541^=9m!uP?SX0s0HZ2dv@cnB z*SP4HDAa58Or${UoJ?k>P0xct-wg{zou16vi_iA;i+|ESA{8Z#|s zw8aYLeU&-PROVZ#I?~gqMMcx&x!g;~K{5QQ#>+YBtf|K50n}{`xWu1(X9>!sp;gC6 zZ*Sd|B1=S_T`H)p9{%@<6fiqOQ(ZqS8W#dp7VF($`HnboN-`C{02FHg01*GzR+ZT4 z0G94Ha*5=jIVZ@6>lmZu2Nh3GUjo-{K7R3MfW~KAKKg4x=_u%njOm*XVAR@b60f%z z@SxN~HaG<3^?ZMyiJo)L(CxK$8G?&7gyxG(X2VW3RbZH(O_nYImebG9zTfMfU5BKV zku}nZ_11}u-SJ-ct9e}7iw73>aCI}6@Mf_>_A-yQCaQp?<}b(N%C{Z?g|zG=oxdK! z(wwJAXzs8IVb3p51R<|((kxae$4w@k45)U_o<%=@l3@T=Js8o_X$uPoYXX47^ek(E z#`9qC`h%r2R?a;iCHRyh^Rs)`>XUaPwW3)#Vdvj~8M&rOTT*-SIK;ZyAYPLV(15XD zbCdF0)%LC~q7ExQ{xSc2vY9@+-*BOeIFSu4u;&JT6)v}xUd;G9=J{G#GI@C({pz0f zpxit(XH@!39Q#1qmc@PG3c7X)b-H{7<;P~QrjW+gJ{F#G-YxbKP-l;DsS@Jx)Zfd?u`?rZhcm4Vz z#}5X7yfE&qhaMsN=&^ZlU~KY7iRl z;kh9PpYG3btS^g4p{R|dhxk*yzVo}`>knU3F+J`1SDPwPKY(5`FCN;Al~Hcll&Q`J zuS}7|ySE?IaZ#DMnmnPkGeIFX8f4$N2hVAt$FlEgX{}`AfaTQ!No&=bM%etPU2#S3 zZb?5;@9RZ;h(`4&`&IAJB+W^v^4Ghhl(!g=5G=>VT#Pd5%Ci-PR8(%HafMTjb<_6q z!cc9*lk<8VQ76lats6ZYm$rVP?d`GupMw8?i>lkI9MawYFa!q{P@tMcnrko4z&ZC> zk+lco)46?d;maG)IicmXY8$zOl>#0ySt9_M6fw|G`Yu+x8f(3;4i3vvOb7NeBDc;C z#^~ac3oEml2VrqBS{!k1kp`LGwF4c_RA*JYtl{owTLFD4zY^mt%^P}q_``bZHfxz* zC(ItR%fb+t7k3PBt|^b{qv#{wPoh+kBs^j8CE3#j9QgxXW~$M^EfMA6z%4jF$7G2i zK5t*@nA~%24A|pI;`d#TkxcSDmbJzmma6v0zrVWFppL%h{1#UoT0gAkcSI09+5HA= zb|*{P(G^BY_T*AvikNXu5X``M$<6GFq2ZBO)|J#OfN> zi`J-lx})c|KI zmj|0`Zc<+V96vhh2{67PEcV~$Pmq9`zJqBcTXIL(pRK`erhzW@YvQ{-_HouSVs%G& z|8b6Z6+K&`)iHv}eBSDE7`PQ&;FKrrSix`m=N^PxBtlo!M;y1uNWUa%N%lmvde!!@ zWc``fsuoL-(x@4==MS6tM?)@*1h@@M<4lxea|Km+krKuo;@G$==hYTw*6Br+Su&QO z2zQd`n7*1lM#m$a7vhA_ObE6p*HG7Wm@Oaj`w&Qi5R7;MRNNX)(Pwvb` zcqRV1twZn9`iX^2_g!opkA?hMOaW2jpzTaStDm{BWA=vN zYsM&F*5bOfRuW>&)ti`?kAqL(arf_H9lcX=K%kxeg5CZpbKPBBX81Fc)VVP{^HDL; z7X(RJGXY^YE26)U*gV{R+gtK+Vv2WRsLPqV_?-Rw*Uta`^Y-TYG4}I^(@T?;#FH#; zYG}EN%gVRU=f(2*lL+6CoDNW0sr>4*PWO|V+H2;3Ju}%BMdKMg=0fbMEL;(JR(iN+ zTW7l~7czS8jxoyAU%$x-5-dPpI!v&z=0}@v06LsBAiw_)PXR?l-nx$~|LE+vMX9d; zxfDoWf9>*n_t*;3)uF+$;F=pN>D)S7Kng&-t5Ml{&jc~3E2Dm~gTu__>bi-z=KFF= zi;-vb^$q)65%^TfKO_l-4tiRfdM%M+W3Sx$t6A$}e;&_!%Z$_`8qv`Ml_ZF<2%l0|2Fju3S`1_Wi^u-cu!d1Ox`vzHKbe0idPqB z7cePNCwgWus7Rv%lh`uXXsTVosEHi~MNa&(+a~0MGK)ckDf{MJ{43|1k;y}sB`*&H z>h@)R>xb{2*NcbmO7qEP(z#yG%7c*m{BJcExi^{vS%cNTqm%!`i8Y&FCR1WTeX zZRIWyN(G{p8H6OS|11aX;D2vzJCzIZ zK~Q>=4gmtvNkZrW(q?nYd~@c0Gk4C+oy+rNXJzfZ_Fn5PzqhT;2Lru(0(__VKp>C+ z^!}YkAke;mz0Uz|pohP+RUG(1@iltle#h3$#?}6nyFJ1g1oBQwjw9$zUpw@!n2_^z zGR9I$>J?5=vghNc*<Zy72sQZyfY{w&sg7@M3mUp9L?@z7#^`)oR2 z&mY42#V2r_O;MPfz|BHe0oChie7 zUn@0tKh2@kX`(R1_qEiTj`j~TK8MTO2bOXJvB%=7I?|364hnN@@BdI0^UGCsP@-<^ zH(cbh2DB{<5q!Mjp|y{5h~Vop>PAZU4_|Igt(AZM`bLWE@mDUdY-D*4=BDqPe-~z! zvBF`|iCNS$FxyoN68Z}7u@p>BKB1QqWd5eVLpinXx_y_RhsF!)+5VtZao9>@{X^gGv(>%rrm>hipH);#6ivzGN3kCq|PyCr|HW$Mk~0#Xn5alqz=L*A`R-4@<& z(;#`(s*f;=?=ai76t9gscs}ll#;f}C{lZc8S~lsvyySSR9>eVGX(?qs5f)|cXGzvq zA^a~m3u7CqTXp{MC@ZLkqC>S7xKK=JFm^H=e9LF5jrx*nxB{=C`Ens~A59lO6x9+u;PXWH-BjwKHqeq*u2HUiAc_4|WAc^-Y zb0j##yYQEZt{KkRX`ecm9E5QDFDt*M6~Fk*3*#a;I#{Ck!*_R@(QG2Y&Z2zPI~O*w_Q$ z`jUcQNlI?}a+1+?4|mq;%DqO5EECqpy+V+uYuWqHPtc=`hTyIfeg^{8_t)1nSYA7s z`SCq7I6(i_o0Su=!0#TUK|4%1g(3;Fau^@&h?ff<(n#{>NaL$tFXvBq=m_XDJJF-`vQ|bsU!G{ONG+QjF6*@qpu>Y(Od=OFt1D zW&5nhetZ{iy~Y{$Q!XIVeLmT1?OlEFzG99h(GZo$Ym8sdj!Oe$@`aMP_<@_OebOkf zn|e0lS-yMdz}wq3AAvhZ9*_$FzW&Wc|EEI#pAq|zPJFN+Gx*Bh0FA@;y{Q~`|0d`E z4JY=r=FAVHTyq*^(Q%0NLHnpKuQo8HKO>r)%W{$BenWcElCWEm8{0ik1Fv|HSiuQ1 z{WGg+jr;EIusc9n&}%1ewDxm`$#;k}qfzjd@0FzVmJ?Wp%sH-_^*k%7fnBPSYr`I#lvf zrMRv~!Ku0JZ)!ssjW%+^U>#%UI^vH+x!fPb@=BD8wqwCy<*VPkc44-H%SY1KXLBR{UR)9;BYPPc}K#|i}9+85tBOqM-{cj{yTAFlkp)ntG{BObRGDW{?FAYdn|o1a=J*^YSJV`x@(V^ z`MT^}7?7ad&ARX~9(eNgldI(-Cqa<|$zBt}_p`B4PJYvAPEh6VO!F*hSY{9bKN~B} zC%>n#U-y?hdFic6;pPT`oYihjsvGvVCmS5O_c!eO@Rqa(V*jah{F|Nss>#=n@^R}v zjG>R9E*+H(IRx5g&Hr3Xc?10JsK(X(K|eIEYQ9kAb_1jscEi3W;4iL8>6y2;16#fw z0ft>W%J;KWs6-Hra)#^y!l667=slpAgl(S#aRAb&arkY0;2Q{NfBkU&Biu5&cc_SY zM3b++!r#>&wtzni=BFf@$p~y7UxewzNklPMeYd{AP)B<#Q<&^WI2y# zs?iloFBCOjh?y4psk2=shxYWkCKm`gtQ!Fbc~M7&%euDM^G6K#2AXYl4J=!#$S+gu z4aps_(k_-IBN)3j__N|k7$kuBQ*$B27<@bJ(2(VRJp*94+3B|1-2OGcq%TkFn@|1Bo0vEvv*tHpduA1z zIFx1m?63DV%$0n~lX9Pa$CVcO6S2QAZks2gaH{r(bix~fO2xCgf ztjaxCqSb@`w%|kGmS)=L)%=Nj$c1L_CP^``^`>T-{yc=(cVKm8Rmc~ zo0HhtU%#sTJxZg^GbL{k!$^$KX-Ig}s8#&_qVHW*>Nn=bhI>{{4k=1sJwgJx)_SqD zogs+k8vJ=4vm|hu)QHi(#=40*f4H!*qU$C!$N5x8%Xxd<-7SiUx5}j>{ImYkLfk=* z46+eli)9ept0#TWIsSQc?Ii!UDPr;onAO2LPurHGdoez$a(cg_<4)c1F?=9Yr}nud zDdN*p-BZk7x$J2$-z@8GxPMXzqkv;m>+1FO#%;s5C%NjIg9Q(MvA7{?Cu)VkYJRHA z&DgY8IazzM|0k9UfM1g{NBPcM41zlUPQQCJ?c@-F8=s;-R%mHRjWyCbf66&VqIT1_%S}3HGV+&rh(xqS znXX8k>1C*LhBhzdKHHSId_@L&>V}>F1J2c7%$(!7%r``?8h5{#DU<6y*IBKLDeASl zm@SVR4hAZl_ON@jjm1vVnO1qkMAEsV>%Lx-WM;;8{~iqCy#68m_o!&Es(OPE=1o1Nn0gOfpem$$2&a-~{9dv$Ti1p>r^ zemNQHpp-h9m+AvswBi1fu03p7AGIuyP}Kcqm=g7KDtuMn>LSMKZuM3sDXmx2V=jfb zIMbJJ@I|7T-+HwOH(smc{AAg*NK}ShfYsOaVwp~k*Af)|RATGiz!v|oDr3We38_)( zQim?y1%)tHFmBSf&crvuUUZ!X)}W^7@-fprci`wIwJ-cN2%7q}x$@Y&Q{8uVe}Lkl z6BP=92A6(H@@d@Oc`;X$;Yo+}&AHYckXVgvC>i3Bzj!ll2(+nn*5&xMfH!WsiS3*? z|Gt~2_ra=P34`xIUy?U(ZTiY&7Tt2VReKAx-=N^HUF*G$y|KZM3=l_8Rqsi9BtM!@ z5O9|Mw;i6DV_z~jeV)b2f!r* zdB&2^-bNuv$IU$t-W|~%Bb9BG`^a}XRPkixNgr}a^S(l}ir%qGH~D8j58OTj0<|6j z;ZKdU79=qO02vC5^WO$ffqndzFNL8T(6s91HK(iG%uPGFEHgFT zlVi-UiYd|Ns0azQP3jP*G$A&VdqD4T!DzSz`nhhEP|BpcYE1>Ka`wdR0N6x+_|oO+ z6gS;0ahj*kd8m9iqo#QZi^kj|OsGE}b1PDs9~t0?rQ9omlE%E-GKAVN?lNq)Msk@o6e03O0>_by^OlIu@&IMM}RIeuDnK zR=Tpb<+U+DJ*6->FBxM$U8B^6C1N3yT~@m@Wjj-|z$LN*Naq3x``+RCWGuLnl_n0m zffb5$zZI2z*8$%m7jW6BsF#+wwKzX6*FQVgc~6bFuC9oGUl^nq=Q(7N4um)nb${Np zAJJRuO&x9ZeL`~gnKi6%ZI@YcGrU_kw)RQ7*gx--k%}qKlSHmz0>lx-*&`%zjKiod z54w+3qN$RUh0suqe0TnYwBt%)rl`4BFf|c{IgIkh3Kc^Tgb2mzF%LS|X6_>Ga+l+) zf`saVA2^8JOgVC<&a{|RZbNc*B9@q(NJb_=rqP*{j3#!=T3iS|N32LRe-60k!@?j3 zSEAb$rC0COcV5={j`!+f{1srI6tnVMk=^#I+3q=niJ7|je&Dmw3ST#No&3B)iRzvU z#<-26GB47k+Kj`~uegFbQj~NAilqxN*pB}1PkF+8QDfgY+a{_mEQt`86LfC)ZN2P_ zyDq*AXOCi?NG}~!t-`7kkMMDs-6QXF9mfG;@{sr!=EcNdkb?o`xfdSTUo* z3npKEHxta%sA?CHPk>_?K*6bRiU`t=mCkp!RSqt=(kWLnlby@~NwU1QQ2R>FVtr7x zbOH;JrtH|7Z?o{W$AiK29|X^tPI^uImSzgE5^$%^k*3U^ch**8Aj_w(q5A75@XVDm zs3MDVm#x4FNkw}dF%=p*=csN!!>kKIzrE<2kS(9@u=q{I!@EU;In~yFW2@rBRD5w( zbbB`;hNv@Rgi0)0@Hpkb$*-#XaNh`+p=pN0pVzqL9>R1eZUWUmztno+ z5MP^x+6ZGXJhkHhU3sI@2?1U+TTW*-Y_%GL&p8%}v5(J)x$#f^G}@9cz112(`Hg9?;5uejya8 z{`s;}a=^+msx}qc*D~+A>th0Us}rL5Im%l9v}v}aXtr5vpbTBK>)42y zVHXWGl%D;j87x@U-fY7O1ZKY_e%e~U;}?$n3>UeZPyBF*Rf9|v3n~i&&Rstk(0cV@ z1Nd*aY2D8+Ec;WUtrct~XV-C{BSp;|Af#!+)v549K)lUy?TTG@N^%cZikhG2^m9J+ z8x0_igEb`Wk9=@gjp5_+47g}D*akFh;KGZZaQa37(k9Qsg@LOABpUevfc@Xfp#Y(U zM2-rzrcYvR*X5=DCVzrr@R;IwHM#RFO&6U9@4=P$xV0ernzuUb5if}ubWSe?o*+Aq zYuk#{(t#h7#F+iU=zV7bGL4)b_B@Bf^9^(K^wbXkQPcC%vNB_*ho29{=`*9wpCR6O z^(44-KxUUZTzAV5yL*>iYd`r-5QT+c5k14^1&)8|BcC!p741h@f(~0Yn}|rN_~lnNOapoKHD; z(|K!0Rg8_n5Ne-x4zVvnRl>*Uv$-j^TybpV2w&lbw2I2;xk}4_$Q<2{X8c^7QjC(?5K>p{|ipbt9blkkorlyXB zaS6{RI~R|S+d&uVwQuy0H<08=@J`^ZS?^Nm%+i0nQK&}kz>p^46xGjcHz`RbA~S2h4YUDYuNwkGl1dwC%=!Cg9B%xpkcU={Aet&r+S5f#lzK zQK4Zwcc)M=7<}udN;MYYG$L%GvX1+eL%I5bW>Wk+t^ReFXp(3U))(PZtL)=jN7|y_ z321opEY|Gt=&WDjfaXrPQ=h@5Ymz5#=xT;QI1Xu)020*W4NuJ;uX=#$(10q*1!9?n z=5BhvD`m_YZ~cJPvcmZkKk0Ah!>mqlAvG{x-Smmayzo3F$~%o%H9)j}UJ00+%`m1BA4gHX+TVs9iDG* z4V~A{i)?n`#_BH$az2b!9fX}v7h4SDj33{sjqHl}V)b5KODDEVG5*V!FDuJAe?h># zmgn_&AzfWvgXU30cP!IVnfUya!pqEKk};%$vMZz7eWdMIs-?TpBH#}hWt{GwH2l%*ODgU;JReEN zF7@tQm@Z|Cs(8-qFv3Jt{OuvVz|;rokmgPVth|Yug|OGHX$vPUSJNPXA{H0@ek#9t zX)ng-tuF|LLRV{rE?>S}XMy@fNP#(Vyvhgs9~)TWSBQmAyt=Tg!6|hM&3kn(xHs@> zXJ$KCvy6=SWRGq0ZYJ*fl~EkmRUu_(uS)p4^&RV;8y~;k>siG@POT2BOrKDeRawXr zf-t^8BiE8_Nx&>^FtLqWI48oXzOD6yr)8804;r(J^S7lJ5!`|>r|{=WdYT|qMZN5T ztP7+Con)%WCb~`GVDNj~F6T}4i|+i^b`-Y-6~_7Nidb2fyUyJ_ZD+iLd~PK3$8R9RUEZy+?#q3R6oBL5d{2fe4F}zJs$p9 za`k?#86Kl-T{gMV0c;ZJF&}o9=i<&fdD5J3u?~ z5=grjK$FTa4#0G2FjSUpK<1A}?`{I;4)?fpgGQ&Bo?@x*fuA2F4)MMH3Z%m{4quLV zpKQf+?P1_KbT;v6x()4JwV`sKqwWqBS#~yq(FOU%b;>m_do!US=*aEeQOC}KgU1)9 zW273}rFSPen;=jIJ;C0try<2R@7MR0Qaq|ZVpad}4^Q@W9ej+|%(`)eul&Bk;rrDc;aJE1|Y65?_~pqL?#SIQtmke!*8HF-SakItbDECy^sAz;Oa z5V3xoB_#Eu<+VGTa%MleSr%zC!c(&2Ydz$FA6awzzCcia6$54Tv>+{`Sr$EdXIoEE@EO8y& z!0X6FOHkx5amHw`9qev^L^UmS1u^2~&fcW@tQ z;hxG{Ud_MLmZ{(M8s;SdJmuRsIz-?nK^l%q4nU=M!PfoDmAOy5h3jhF#P)ICuJo@AWc@ac`LXMk(| z*E`pY&i$n_z8>z>S>9u^bh74V&C4-@+&+G|>wO&^xxEx)ZYq zkFZwjs@SBel~TB$zBME2XE;v!#tFP%Xq^N5q4&s0F?O$WV)m9{^}wS-3_+rXyrFfr ziG6eb?KFclwhO@52Q#HT!DzmjO~kp_dwYsuKB&Vh16$F=%G~N9pimYS2tt?z-f~&s zXA#|?XKQY#`vn(-zOFQ%bi|6qq!It;`V*UvGV|V9?xZ9C=h~=kf69vGv2_^sIu*xc ze0LyXMJrL&VadM&&xQBOl+;S85pYcSRia-FW+%WEp>uUAT3*+WWCGcxJ zS!YSO9*nSj@$w8y+3&+Y)v3Zl5)#^d4Y8hYYcd(BO&E&tiFFu+^CXuJnOSw7kI7@Wm^HzE2u1z$x|14x;CNv1DEfI#codSs8I|`IIF&C{0NgNT z;?mJ45Zs4Vb-k@s;zL&1t25Fc)4`nEBthuM5i&T9It)BqN`=;Zm&uFV;dvHYT3Y%i zo%N=U0o;R!CKmQ-_sH&=&`)U!(-vmYkLig;pONl85u8rmQz?x<)3Vn9$p?Jc|6{%S zcU0(5?CT$?C5re_oy^f|tPsd__qH5s)w1uf{};}?Y+HVyFv1WETIHD*YJyB~0Tl*u zzN4!G^>M_y&s_UBD*ZWEQ1nkU#e_Rcl7AZ-f|d=3$OUMewN#}#mr0XSL#{jYWruE& zN5rABO)qxTLLVge8*UEFHfFH2UOi{#Mfv8{eOy09@nhUBY*+rO)h#^))WS}pn=q?z zhA{i4DEke6fZBevK{s&IpxAM(r*}W^x@o{?)cUCNi_u zkER_7NVHF8+IKh zbMQRCNCoU%WPirJ@cM^HvX}Ft5O#yiiM(IurT#V<{f1Q;K`Q$$Uw~gM7?ZSl}(`oFkk^rA58^4|UphX0TA+PYD;3|Q3^H!wIS8>-9# z;#@I6|1SFLW{81kYN)h9TT!D7c&uYrlF~1S9+?y`oN26wLDR_!`#vqdEpmi}uuVB5 zMJroxDR*~iZR#QVH`o-vl$nxO{HI3imk)#beOfRoIk~VXH`iBOQirOe9hKQ{1jOf^ znVFdjZ%?@i4avbMkQ{vYbej2UjI`iQ-fCeFKFosos z`hj^C5JoP|B_agzY{Yn#@n+FZzEZ`Kk1w6&n4!)B%6Z1qgyxphqbF$c%G0CtV>h!x zVrqxY^B)&JV@&%qKAi^n(UzUeurGyCV}O!ch%f*Je}s2S=CA)(Bxu>PrB2jFX4WC; z%Jjk2|A2uXxIMvvX-P%cRr+zTRJRv4!@&@BhVJtpuenai*@g5WEK5$aMZ!9&hJ_mb zk#>p91eOKu1rkQnFX{LvwPqe|(NPk$;8hDxPi&0yNIK&5AnVgWez+ML=R6*Q6OzUe z!vYoGKS;WH{m@ABg@L?d^wlBpUV8Yb3@8K-o<@(4cb|mvC7E5A|Frr8S&53tqy-a6 zFX<+AzW6J~%7(oPok>cDu@?haci6MBFb4wGiC2YnS1^D^MB`IXyY``{m1L>M1f8$gin>1v z@T81FBlAp(rJ+@fwf08jNR3a~Is$Z_TQNF@X|}RnLpoDT?d>_9y${GG!OofGor{*oHHpbkt!~?~pF!QiiW2l*3edWc>jHT(`sm5TpigYwb-n_sjZ&0BdgGjLBu9S~FTX7z{7_!f?p z#T?9Ipdzyg2-rJ9MVSU5Aqq!iUMYgWsO_}O3^<7BzphK=PyJZ-JL8^+O8a6mvuyL^ z9?!RIlvw9=V)(n=fn?r%0!L~0F|Y9|4>`}lUn=xz69Mg*tGO^VQ=Z8BKBg33}1}1ON&ZOgyGD`2wskSv^CrKJV};Pp)1YR)9!(fqGF^#9{4|1;O9K8q*lmL_{|(3uYn zL{6~(p&?|=wWhNx-lKwVZlATX1Wq{XV${bOvd`YIPV#a6DMTQ6f-b}`eE|q&tA=gG z@5SaWg+PKk5c2MJAa44liDN+{@xvaf2fR6?fA(5LBc=>=@JcB;8$-Q&QyR0pVPyrtGy}!d7smBU2TuxC+_Q3p{m*-P{<7JHwm); z^vpu=n6o`1aTag!Kmme>yo-1EeLIMoe+4eW-o97K7x)mvq57}jdBuu&Gv!|Zco4|9 zOF;Jkx7Ly6pjYUdGEv7K{fY+x_?6d$3y)ALmsxiF3HX8kSR^Wx4c1Jn|3K!J;um3v z@pFf^#hPSX&@K00d?aw{TD_{g``0p0m>)%ceT#r-$BI&%uDXJ1mY3lVCi`WlnyG37 zDki~?0eCyL<@*DAy{MWlEDpsY-Cn_pFy|MUQ#56fkm%xxV(n-kdo?~1Pbe>1?ivqGX&lwW#;szM-0Zx`!t5CaGd5EO&v*oY zpAEx@4QGgkqyL^fJZcMvOP)V}R~)6DS*@KEx&GZ5>9Ob^<>R=PsE5S^oX_sh&Du2F zS(~!01@5r!yVc()Bq&==JKYZ?;EqwYWWb7gM=t6a0ed5jN;YkQbRV8Lp54W^%x5u| z71*Q6SzmaMeC$U>cyVCNHdW(;=o1pxHA?o)dyeb(Bn z>x=7*VtvqJeghGd<%slo=#5@w9yLW!-IU~CRWn1-FR$;h91Ij9ThGTXjC&Dn8OW3D zhK{02W!|5DvhSEajqe0}vG#`1`6C7=QmpidS4~fCI!(~1(vg`0A_@zu%@@TgEXD5$ zK+>E-cVYV$Z^%AJnc?q`5NmS&c-tA}M4XLMa{6Xg{^Bny?5nBU#^jq%4Cy?{FA;z; z{#UFC+VlMX82~iAeIRmxhdh>*cC0P` zz!!l%7~3}q(M$vFRnUO;nLp+|Pj3nxX6)?%I^O(QbDI+g66;lu+9|&J2kIPzS~V*Pp$KSMe$`t8mC_7V`@cRtAA4(V+6`cSIE3sdj7B@gb&AWu?zP zB;g_h*uP*I8F_`Fw$>s(2Vw6B$^A(2m1y*waHr}v`B5#M5z++wQmbT#vA$IVTtrc* zO3BXV)zEhJ1KDz=?UJ)ieh3fh#Q1O`X-k|CMmE3758gyX@jIQ{-Ir$Y^*;M-wV&5| zxNB~nVNTv)p-x}R!$vo*@V^={3ZL+%dBC<_wS zBhd+sObDTlH!>(=o4Z#uckSR#fT35v4rMhSB!evW$;M`1grF~?5AT~p;;dGT&zTZ ziI>&XED=nTQ%35(Q^n)*v0wYiBbn;qfTS247Clk9p0nv|??GAVZgrm5SDKO$c5rz? zJxl2x1J}uzrv14GAzuB+8a)=vVfn92vV_P+@QUY;f zKWu-5%emraoUNDdo#37gnf?Y`u?1f?xodpY2%KR{MP&eMX`n^4uk+dc#sX`Scj~=F ztgHMov}=hI)@Od;w>GhGc?(p7DLNn$5s#0^JSFdNNkzq6-l4xITQ|{F4XF7%X0w=` zEfM0$8&g<RIWR* zJ%7)emAdyW!e@#l} zvdDfQ?DS;!ZZGPZknmxq&Fz0|O-LaO11ZcVjB_!ZIKh*z7} zGGC4J5cI67eJyEE8{Y78_#qGqpvp0(SoGr0olQ;83(LA9~Xb4Nqggp(QMWQ*XmEo^oyd+*8|@E2Jp2E-Yo|GU48TcV7YbA zb+9UziUrV*7*^rk+^jFk%{?^CZ5Lk*_i&K>O+1$_)WT=ZDg z<QB4zZJx_P;(7 zwJ_D)9)3g}1kPk?qR;Na zC*!)8UZ{$1$d$o#M=CvObH2*4SW(_#==Z1Ya6WI&mh4T^28)NPRIGWGfOGQmA=EC9 zl0w1A6|9K?+G1g%w%UHMARb7WHncx7G_3GmeWn|C?Z?h`b15@I{9Zyq!PP<-ULAh5 zs9KMTXR~-K%wOLRyu*h+A+N3jlOcHayY02ur(fl)ioZ!h&Rw4Bu>rHcGe677FN|a) zMr2Bg7;iZFh09-nV|+fUo2TTas8z+gOkY%{b_*rS85jHh0(7k0dWXB>rIF;&^vBt@ zmT*efSgn4BR=A*ddc@4W^KZ~yvO7l!T} z6>zOUv+l+^_U(G;5o&7nAyJX8yAK14wJ6GUT^hcQunf=Sj9s9!${FB=H>Yd4t*!0i zWV#Yw&3R&UXcgi%dL!4Sc`V#L<4615|XEv2D8wB5=;f-D2YpawJLf zd5t6Rl=LDRgyeaAY0)pliPTI9c7Hfsc4Mu6jGWn?>61}Dm5WG7*Z4SFaLX!Ws?i63h7e|KELR99hAuio$1<_A6R{PEz z)}m#$J{6%J!XSDE*D#dJ%0P~ zSTc1VrMEJ_q%4$(RFkP;Fg{6}0Nn$CimeaMK=nqu?WtQCF$fF1?CBPVLFY;LEy|WU zGenUwd*bFgiS(gV&dNCdarEv6uT1fh&%~_r69gUT=v?=Kcxuk?UNys8btcI7#rG+^ zXzj3n#0K`X9M#{`#?M2}O^ldo{&X(2EtUOE4yxyZzJZ@Mi`*f1U}|aVR9TSaMBdxE zPRlsbMEJ_FTo|$Lf~!KmkfVa_60jD4r7^pk6i47{utFhh-rvg+Ra!>N1H^XpJIc05 zSVQCu@LSnY#kJ`-_n)Nk2JpMs%A^lt@$o)J=00ziYj#fw0E`j<`^82_XZ82@ThM0P zs?gxBwzgg%D|Ap|U(@oI~Wglrhu zv^bWFaQXb~hAOp|Ej>yWF7h;4Z`zb>RHV9^z#Hb|33hNzamUF=&&_>0TdIbSjRX23 z4h4YQw^<*(jZN%KK`pjSEVmHAtA5IgQWc^g?8+bp{@SMSHFXO zH?AyCG19{Pz!P6h%SDAI31fZSP8|0}u#-Qj57UA6TmnbAlOH=7ChJA*OVEw4 zT>hkK9#JEQ;2N)175=$w75cJK-4l84{!@oPvR`cB)Xj>C$0Mb-#uX0603_K1E-TlB zNuk+5>w_fA9H({_&KCr1H{G7OyQ!_C)9wK~%IhIoKc#5#^h%Pe>$XccPJMGTpgq?4 z`ws>s+3T6-Naznrkljjknucn4M85iH&vgJ|s!AW;MPgMADqVonVReI60B(ig#EQDLuy756f_ONGyN9j@^}H6@6c<5@ z$+zhxuR2G-$41MZT7rdQhoBdtn)u}=PJLGw>lX8RK?tdt!{i@%O6EPoCCZKkKzC2Z zs|AzQ=A?^1&sI^SldBVI1~Eg@@K^%60Q)jD9Vz<&)=fpnd+1aY>qTWO7yb@I@zlhc zLpPIrk^srS2S(nQ+?DuTBfTyQly1rZLnRL|>wD4NID?CUMprJ|p58sr@b-@-&ime4 zR^9ltjDlm!IEHhQeHY(}gh3RYE5iH$y1q^@kv%6vr|dn!6GAt?lW^A1w6O-XKKDzUC0m+Qy|}+sIEKxNx)=> z>-5l+WU;WKpTKQM17^Glg`}S%*bUv@xIQXp<~z8*w4 z{#m;ETx5$Z4?37&?>?|6jEex?9tf^&@uSyBDp<^V6{-!vLG$v}-+@IA6j{>0%iOV? z5v~UksEH$G@ci3v`9>?!Qsw0*le_+`U z;tjp#YZe4!RF-x)bI2xaoZYsvrs8*Gk9Xq`hL|*4&Qx@+YAYC_nIE9JX{|kh?^dZF z87?ArRmoSg5N3=Cohi^<9+G+$gMp7XnZv^68|P@kxht{l?FDC8qK@yRj>kTQx;K09 zTZf*KZ=eD5F~1qGK_wCwUGB?_zY5w}pBV{621_nr-&8?+_Ze({TOAx`n-0V#0g!VMzK zyM*8R4dmzTp$QrnnfJtM4+fCHgkbiL(V4a92V%)Co(ha#I#P_4J<-Em(EpgfibH-h zR3B`k zfVWGY9R*bbI~0LED|x>@op44>ZG~ z-OQ@DC3cH~C2Z;Qed#(@#aIfW!A0(v?{&Mp7%HmGHO=rWvXyu2-;&yobsU=bB4Z*w zRJu0Xw$ocT?nyvVfgNXWrSZFy%n|P2d)=~vwSH>PKbESFDtpw79JQ@HI9|0SH(u4$ zeIme{Boxqa`C&hMrA0hEZVwWB0BhSOVfxzPmn$se80@+{AvU!L(`-a)MOen_E|o2(tU7?a^Q82$6H?{TlG>tN9RWuDq}P zvYbuw9&H{ZZ}~o;bJjlvJVn9D%4L(j@ff$bMx z^Aw6Ry-L-43I&RXfaNUe{CKI--RW;^oM`fBG@XCkH=n*GazoV|pTHS-T&hb@Mr2!~ zTLYk3BDX;I;AZ#6sV(r*=>!{+>l2$_u}~PkS)V`zJjvvUw52`zFi0h7*;*A#yEAD^k(o+i zI5d&RvOzxfOTNCs0TytwYu{pmvE)GRbmxUvYx>&I%lTxonk@dynpA*p(v2%U0AczT zeyBxeLnE~@rH@ct*G0Znc~Ia>m?4cl84?s5O9w{m4K!)S|0xIKwzfZ&I3@c!$PYk@ z0|yJtF24qU_WoFN@FsHZhJ0sCg1jRTE)LO0O{vQ!A{yjcaP`v@(v0h4tYjzW0fF41 zr7i{BJA#+b)k$D0WbFJ}v?Qv-m?yTGd(?w~eMxvrA$?d|MpsH7?()hDoibdBeP>-Z}heugDef27Y_mKAKYU*PufVCdX(2Y={#Z$ zqSh*+%)v7@zYxk5J@~qRwrls>WczI1N+&`d59pP=-ypn6TLw zM$PZVpqAUWsUu~Ev+dD+03`-8pJrs-9!^nHNv@zcb&I^GI6pNPij|9~_M|?JcSPs= z020;@fS3)O#kb^Ge$`Y~$1q#3b6_H_B%H^Y+~0a1M_*IE54~(YX@dvUVmE>k7Rnji zd&6VYr~&-!lxv-K)EwI6@+(xUd52dpOs8#V+IAiuw?j1MyEB-@$h(^B%n_x0*B&sI zV%PufyT_1gVPtaO&!J$_$NZv>^$9vPy|YVNdRzA5um$@8)q>_(nQz)sV@DvjUW<@_ zrM!OV_v0B}rJYTAvoihI3Pv&j2A}6^X~esU$(H5S35rf5r|W!Ts}tUKIAS|f_>Y)! z<{)nT<#adYa}+?MtUDhJKbDWZ1tgYBeao<*0bW4RT3hSdLPlSxWjSA3#J?E^kp<9i zbK7}g+}WmOc6A6c*%UMDLxmGGi-kXvCc4#+8h!dRnjQNuQ9y+*sS|gB%bBtoYjKu7 zD2Bd{sFQES2?ct`bJUa=UR+<=HVMlM1_KwI*lRyi=KL@ts3Pvi<5s)XR@|n&J6bMy zT%B=D2~-5bTiM&&1H%0bK1?P*LeaK}mDc(j-<*b5;9$DPIqh5WF2Zeg-Mbw_zJ5ON z3BD>XAKCZgwWmhjA<4UUJ~#CLw7o8xhspDbbA4lAEXt8410!GXMNbmrb9h1*t0tXRvQoO@CIwVs& zQ#Rwzg+o8tfnSQCaJ7H|y->V4U(r4?y9LgdGS2`oFw6l=KCjPLHKq;7Upc&6@2*(X z@lN$&1%`9APVDl(UXPpjxa{&{4|np6^Yf^6@x^`GIS%Z=tHuRJ_u_>~4dLDR6VeC|#f?H2bylr2iTTWayQ~sgdNSOUD_5)WT*%C%Q6$6)3d9&!2F8)Y~xy z2D9w)?ySvvo#0ieT;u=S9GpMksFKWmEkD(IdhP1Wf9dSYqt>Z6p~%p_mDk?h!7%6wv>={Mi~2=>}$4R##pk&82gN6%*=D<^Z9;1zwht&dY;$o zd7eMGXU^Pn&pGG5&UIbqocH^ES5Bs$=x`-Z`t>lr^sFF*#TA#&$P}wODKUrW7z3L& zIs8jNJ)r1r#Idu@~y4N|bHqs^|AEkX3a*UAa zDV=uVO(GcY<%)~Cv!dH$>y_5E)bP9Xi0hepm)4cV?MmyPeS^oNLHnH&ZsJR|mM`o( zSGqo7Z<0F5X(e+7Lx`^lMdrB$`Rwb)sD9-yZ{r zWPYlYgClAc`;f$L$Y!G&$9#)n{SWaslKWSZP#NsQ>)S&nkG0fuxCoM|NTE18G5U*M zVG6Q+RZ5cxohc1P@(W*Pi`#^^$ws@)VHtIz%A8D-fmIYu{=JdQW)6p{=5`p*scwKR zdWJ|3|L;jcwSlz&@SuLr=1{*@5O2D;WKdxG^vPo7KkY^7ikD?LUYiHnHnm+gux(x# ziQzwa06AkD;kA-kXsFEYc|Y$1Sol`neB1Wj<@@pAMYa5XxXQYET^%T_+n|hBTHzbJ zIdo_`JIWKXjdLPx{=u_%2Wfr+<(t31y6)JH-RbV@7f0yrekj9E(ZC%+{7g+(gaDmF z`PCjc;UN{x*bV_85`K=qa`wNIZgAfJ7w%m7+2LsreQyAN%5vp!e7|fawKcSDqIC@l z;Wvg{Z@i{yo}(UjX}xqya#u%r;#hQbH~84v$RO<}P9heazO`o_Qz*JcHFzvs!Kr6; zEV~b)(?j=}pB59QS%Mdn>souL@W(-=m&}UB+;z&5tR4H3;K8#j@~yY6#F@b5XvN_B zn^h>^_E|9o8FRZ4EBojg6)j(vkIlJC{&H*o~e^DJZRtD&^sF`bZrb3YZ^+ggiG-9vu!!J|j+#ws zUVzn0FZ2X)=ihN-{TZ5J84LT)xsy_vBI|6%I_6({0LU@SJfB_=$8F`Y6tHcW3UFQY ze>3LC7tlz@XnwGtkMgaJYj*AF(9BHCUMY4=cwF7UpYKf-Tipml*fHF`SgHman=w?s zR&A3e{i^J7{7bdOQ|LHKSp!zzEPngfHeu&}DlRLaHoyz(Rb9!wqnKitP1NLnKGylk z{7x~-CdKNQ{G0rCHT5A;Og8+B&UZxnAC$^Mx?E-$bR|9@*)`UfA+4+c^~;xPlaRRzCgdS>q?zU&;GQbIJ(PjKqBHLuOY;N18@eh%#BgKZhi z#Z9NCva$?XYg@Pn%7{~E1n32Z-+Xo+ zHypv)%~$dWw1$J7fr(i$b$sg12Yyq%ubR6RzFRgKFv?yZrlFw~>pC2i7 zURNWnu>AKd-8KEA&?Wvw>6u@^B<@#)6_IZzvi8C zU=V-wqmLFAaCdkN04B`vN2Zj=V3ZsA8H$qH*M^`(2Z~t513C@BqnHO$4`Fi!31FD| zB<1c65{FLvF9k-AfCCpH-E=bRO)atgL9KSZ47H-RlF)TKeiXvM zl0G^;wZ^KjshgXf&M_`w-9^v8L|SW$i37P!&%xY>RU4aExfa9OjsUavdef- z???E7$w*4FX^Y_!rlCa=%PNckN@t+wd#-BKxqB#u#`#CXpKpf*Nq5g7i*AQ7G}N*7 z0X|C*zqO4`s?4NMi)dd;3Kd4}x8_;kmTk~#;m+GF+KHfPj|jG}b$K#>jv`ua_+^$! zmFIcRe^#u}?h0W3yy`Ep#qFvX>BnrLr+wIs!|#-RMR%Aods)y1C&eU&+H_QazsKnw z$x$wifxX=06of%Zyjjonsj#T+55EbCv3D?MaRBh4dt@+R*fbfmuz2O^!6eZ#<46(T zr=U|KmJpe)-UrxV`uby@_ii-tLfsNxcygN3vFs;aP8pg z7aQfTvXsSF6!s5!>{VE$^5p6jD%a>vqyKyrX|e{*KU9jD39T8vce8>d~MPZL`Ef5gWBL-$htJ}h_s<~9=zRvF)sPQ$l*wD?!EJliX# zPF|krw?5{?#hmKHmJ(_~i}nrfT$D}6#Yu~S;pCTbv(w&jEz(&WeWx$wy@nk7455YF zcPqUYWlsqnU=^jQgBV4-MGw7J3=7sEMiHiP_mO zu$R64rfZJ1mE9ovp|jIp9RiqYKKjJ;l_}k4KWT!9mZvBO%*Jn6f+cPHZW0iU{Qz7t zvBWd89?j1bR4jZn4P#s+S1(_i1!jzcGs53Cn=`FS7pL6%|$lR5Kw^lkDw3IypY9}#$*9(iJni=DlDcH{TV(L%*#5O#c>*P6-!L<_pbolb9C9nDpo8R#E+K@IlCY<;q0r6`wkM*)1&Nob@ zMbo-V;u5?y$AW=vSY0qPHL5KWmT>=+nqZ!IMP0p2vkm}D)w*PLN5T@USc7FM*`$-V zk=vMec6Dzm?Z!$2VjU8AEGvM*#3;vYOV@b4?_GBap3YxtZ*(e)allN1PcA2>&u@qP z$!PcILIz?gD$j|kj@F3>Tz6@1*<9V%3bQ;pn~(S3-T0Sc*wNZcNObY_? zQPCrb)?+j=EVmX`PQn3Dq)DjvjQ-H~q_!xGR<#Lsxo7~f8I%So}o0D z)w+D;Cq&LF+qk&!aBA*)Sgx(&ruv$h4VBYF10Q7?FV znJ-|7Zx)M24a~(ha~P@}R#ONjdujvab|txEjSQKLZw{L*^H)4ns*m)-caG-CP`;V^ zmwIk4=?ita2|fA)=FWaxuLPfk4wKtA>&WxLd zHXimQyY5G>L7r}wJyetG$^(tC@g*}poaFBl^NkvpfPJ7Oo8HK`xr2gZ#!TXYmJH=_ zx;McUe#b!qNN_l;FX|{W)uu7Ph%Q^_KU7@Tm+C6|m1}CSH$gnPClc#UifhN79TPN= zdYe~WF7QnoCUB;i2k5Kax0tQK=9<-)5r9Tj!Ghtu51uO==s#TBh7!}~z8t80Qd|{F zo#_wzbe4zb{@W&9P``!r3)XXdkSD;uMfVAvPOc3w4V%1N2J5{-h}?nrc#uBFZ4cts z!u({7V2{I~kafBFZONW5_3}P!3J+D$M_%y{_aZCnR3>S?@QW1&n%^QQ#~*LEcD%xt z)V6g42KRyq4y-taYreHEvWKZ(<9D@__g^ttvlv_9r(fS*TW?&0JP$ot*o} z?At)tG}f&SgL3gGzcXF$y+hi+zpMFn1A3|_i#zm`)q-mg1kx%7*%x_aOLgLnR6DN` zn$p-YeR1CLl)#+%m*|B~UZ6>8-BPPT2#w9V2=Oq6u$>0d_tz`3K@4^m5 zNvGDbWSKtRZ$IE#;wcM)oLG!}dFt4Kt?ghH@e%~`HtAFXZv&X|LX^uh?lOX~_kX4( z&;r{39VqyJM_~9j;WI-PbS-nsF#sm>xpJy{i{^R4pj+FzvGnI30_<_OCZf)ULQFR9 zfT$*vNCp9kJLmm!#Meh5=zMLGT+KIaSDV8h9tZ(inVM95%d`@up<#sH5u$83wRP8jianel73=Bj8tLCFs4z0cygGzs<`nNJ zGDW8E99E}0$}9ok>@uf6Et}`b@o$Sx|HoK97!@44Xd+|>#Z)(1T+MHrHQx9lmu|GyS*P(TA=Dp>ejyZ4dJc6(J z#n%=OP5JXd>GEVn^i{Z2=DHqC_nS)rocUAnAZZX8;Ge6;%ws(`G<5St)935}u7t^C zxNwMV;X|z6Sui7Uf&i$|H8fJt`0M0uCT%EpelwUkEul`+{1iXmBZcK*e)Ex{Ezw)B z)^k>+Kwo=xC#b_v4(hP#eQev$e(niUX$|*+q@QY{wX69$l?`;naDLh~_5JJHUzdl4 z5DA$wi`(Bc^aY&-RPxHrN0pe!Lh1#&GWzZ4)9*`Y93*Z=y^q`ZlpAXo^}+ELgE(V| zh0vK2nSw_L(SFWq7QZ$}QukNcjVh%z}RJT^Pz5K0kyQPg;eNY7EW3*OJ4&l#V&9RIRJb;aT{9*t# z&GDVGwg2%hCHOAfH?WlG#MH=r6bijm;xZ(flcXqoaDZe_j#-9J1B*y;6cgpzvCK3g zUN6R!3x5;1H+d9%LwKD^Be|= zH#~JUaWm>`43T$wqxR92h*oaA!~L!lj_c-#>eZUsDMo_*&-F((D7L7V*6U8lnj3+F zDHL}{?aS&{p{{@|-5AOi1c}FFx~!yoOc-a#(Ig!tzY>G3pa=a5Wm#d&0oN9IAiB8^ zZhYVWOekCc={$_@nNGYMvQaO-+{fe1ENk%PuvnS}B=Bnm>_p}Dbh>YiD9(){^?LDIpSMNo*gP3NTxv-uv#Ux};qfq1J19 zg(k`JE@sA3vV)ni&tt$G4Zvb|HO!m%aRX8yUv-8tSCos zgCEa*h!^XXq({G(B4EYl+Q+wn93p&QmA2KdzF}SRGLeb@>Z>P}^&MNm+pcG|&C3t| z(0U9Q^ovu#&Hghnfk4h&ydreyRIp+YDzZ}YrYW&ER{D2+EU`yLc(QNc<+uzK{dPx5 zf;Qvgh44lAQp>d!$d6WsOKm&NEH&akFcJJJ1F-1po;)`tRwtj{1LIbFCZE!#&m{^K z)F(JBm>6I8nfg;TPN~Vy(MLXCdNE~Ul836rL!Ekb`X7CmbvY31`N(k|g(!2=KiUSZ zZs&0+VLH#)9QMiQIP3^vXhd%I#=+h%ZPFKZZ63v4Q`tQ)jE?Za2D2M2xC2 zqMWC02B-OXXZW%>+}!r`g;5#Nc9`?%A#%x$I|PR(gH?eUUnlSRJL&Ur8q624zJs~P zLXQRAe@>ix-5gNUK7Ucu=iK^zsHqdFMyqyH0V8d;O^X%!NBv*yS(;+n=ZP3YUW_(7 z=2Ma{Z-1G{tm;mM^SeShaoSyZ5du9DUM2maiFZhx5VSn36^%QsypJ6medz$Rf2d=e zmUGrHrv>IHaRDQ$t~*8MTNS1Lu3@D`HUiA(o1c_$D}fP0^G}r&O5OVPj?~AVSrQa4 z%$21PZG%>Fj#QTEzwV10$N8VgC{Y(UqR}XOHH15YBonv6<1(0H`y@fnh~0ET!2#32 zhYPB3?bp+I{m$?v?!7Ku{$jue^^%0!UT`{IR9`T1R;;-5JvigR$Ek6<(V48MG~B+L zZGm2k|7_qv_sG?J29|>S90y$eywq0-3Q9&!H@@6`J}H!gYKJ3+!`lNR9Jd8j8ilfFOdY};_ zICU*NHWG)^aGv^C%#Y!Q&i< z;Zfrp4SgW`d}Ttk$qp5~p}o2hyTehzMBR0=_}M66-Z z!ikr=KlsB;xCi__PzW!2$K~&dhIaG!M2G)7t+sqhgfmS z`<0J?u-THm+n}rh9oHMwn-woQZ7Afn^NWC&u<+I3)T?KY4hyZpD&=uS;xU(-xuz- zy!ZmAy9IoT4H&X=It!I$wX{s=d4S<-H?mw>c@G`hp#GT&K{$zl^}JP=li8PovzmpA zd7X!rS2BwfF~fDgs*O(0H;#?cUX;J`97J83Ebf*2+}*D}k}8DQ+4OiUwMHt+M$mz! zTF>2sKK)#v8Y*-pr|6-fURSz)Sy6@a#Md&1q>;|V!sX;*d-ThN#`FLI=d=w2-PxYU z=yI~4FGxwALLIZcGTdq&I<9ILCp%AlhEldzoCh0Ya8w=-h5-uKAT3|pZg@$v1X>=l zy?v8~Q(VZV%!Rmixx(RzrnNNUZCYTfQA)4yaDicQ9$8Us*~BN`y8k$JB*t#I4gM8m zd$e@M9`{~oIX8)wIud3V1FKI>)RRHJ92^Y>?&?bZzSz9}JjUSV{^I5Bg%y!~zeizD z;N1hLD2bbnnRckh6=uG9x!`Qnw`LDUxQhcW5gX_@cJK?E|2l*

>YhcrC;?^IGz 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%0Apao5B;Mpj?=f@E`sq>C};cQ_}usqW^CW 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

4z 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ⅆdV?T_k8^}nq6MbL{wZ~FTBqE>9m z{!Q7jzZm()XXN#{z;UBt3oD23zYC}g6SlL$b{T7K75~i3*tjj54TFL+1C-;ivTN0w zj9|Zhd(GoULk6D1*1*F&tOhI7hj1YvfL!$ zf=hVtN?!MoHFR^X%JP?pAzAnFkGtb|x(S;&wB}=&nTh)3+_PEVM3}&F1fa>a@T_%% z4FeaH*EBX{ei(;WQksq#$ro7VnnAA_vMC~+Wc&hPR#2%C9jD~ zl)aBHn2WqEil4D>a$X9-84uLe$vGi5H%_A08G=&;AK|1jpP7X0sbMCVM#fIVcKZ|V zgZITovDM*5pi`6327l z6r3W{MMNgKo-&m0(W7U;d_%1e&SDg5VIGKqOx%)Z-N<3FN1f7u6+OYpzZ_;< z#`{YHx~Sxh_@%1dTz%PpBHk3mYW~UC7*AmFK6**2 z6pMQ?F*aJFHx$PMiaXk&(&|)UV74+v|*q(6wWX+IV!(8gf*^ zr75$0G`WPX^GN|r8FG$LR90?9>Lm(Fx4$VxLBDC#aZn+t>B2Md+X25h*6H=@-mS3|J_-pkn5j%lEUG^2fuDR5&7mO?gH2Ml%%;G=4JUqVa=>oY0A>p%{J z1$poypC!MJ!uI>%Qg4Ned22_3ZgRxa7Y2JXOH zU(8emUPt)%WIvoQO^ty6PJ|xqdo7E(hRAA)KC(Z2ccV>yYDX=c5cd6eYuaNfeLQb1 z+J3Z7Ao`oNRWtSne{Pg7Qyuwa+d~1(@OHI)#+Fuv!C*x_QcCY~az4NH$hWDj0mBNR zx2URHTkvufmaW?+GHMHzItp=)F+cX3RpKmSSq$cC-o0oLJHNl?`G-1XkhSpnw>Ln; z>77Q2yO`@szuyD(dzrKAs)}`pWiOkx>4T;&-BNh7Xw`VK;9?3z!g4PWJ7h^MThz(sj@Z`l^o~6PDc3od zK8`iSK{bcENp>YrBY1QpRQ%v?8T&h9>>t$@HD}2{X39b6-Qu3KrzC;!iC%Sp?|8Y9 zfjOHpebPk7NMEW+)0vhK3W*H?yrpb&F^R}<+ekG%@oY9z3GmAMR@nf$jZV?527SD4 z>G⪻@ri0&2OQ7`crWz`8{Pm$%sf6IU$l{xJtoB3tP$l@qYI{9?C{s8G^ckaC}Xf z!<7vNCAjKi)*Is{LGnQ+-ZKqu#&e56kh1r9lJS#IhPtYjQcY2XjYOxjnqoPJd*5?j z7d}IGCBLDlIJFG)xvTHRJKex}`;yhAePvY_wrM-BxXvE!V^c|YgK1x1ah;=p(WQRj zR9HB>k50X%c2gMb8F8}_a|7P7mjm(jO*m3C{j|QHmaF1)-fMWjGo+|joI7|tNmn(^ zkllET9W330d8bTXLEzI4ZElS z&6A5BUHaSJ#=2FKH3BZDy)w*K65%~qT=6>e-dSsIV8PM?mQ538YvWG4*wH}W)sY2A zMt)-}kzgsXGUvW>lDl2LLrj*!HRV$aUNf z{iV6kqBW^rhpqqJNN;e`?b#!CGRPlXX^Irc$Z7( z@=$9CqU0gJ-Nd=bXqLB2k%IF)$hOh0-yEJV?&~UVymvYn+ovLkVJ7-^gS42WvOmu& z!4e(x#j)9VTB*|*^14oa`16hns^P8#Lc*2`tMFjciE^H#4$p-2H_6jx<%>Iw6ky78G zvA1yLNjJ{HIp2n8Sm@}TlDw|y-VDXvbD0WjtlQ?`N7!zxPaHXL=5)&#^+-$%T%F}x z%h<|dd0@Z3zF|1NlJmLoh)}z~JZF-lj=^8a6SxtEO>tR%?kAL<>ZsP6`>-HK1Lu0! zPQ|=WT%&&4GZrH)AAYzMiIAT1;#6Nx}|C6Sc&_=GPhrHVV^8w$zLC6b&%? zCCN68vrb`=?+(n%+~fr)+Gzw_b)nQoQoSK8#Zl6^Y;I)i0jm<%RlMdAYE5I>H&?Fr zl!)3KR7my5&TNbk7A0pEalhjNVdl4?Z-5jN5oO zR64e)^7o+rw>6m;q<7ihH9kZz=ob3Qz4Zvb^JVUwH!z_~q5`jhEY-j@?4hg{PD?nr2=IOoFfKuP))|AO&{kyJ#s-!% zz?T;xKMqH)Q#M^La!tUD+;{Ql9%jL&Z_uSkF>qJwwUiJyjDn1!3L~|$AOVV^{9@?|1oel~K==ts zP;!8_)uY;<)QVBOIUE4H{t5#c=r2eI=SzTTN_;jceUKU{wf^~8;5cy>fG8Zr8?uNd zvouiaLCMUt#2nL-6KzQCKK}sq!KuzSiqyQyfk>lP-s{ux$C$M4v4}>_T?8Ck<~_zHie%FQwA=wO^~o}w(R%b-Bp@Ijz>;kD z|C(~~%Ck*tz2*t_EMrr zqSpP8EbIP!yzB?4pjGZ3+n1fRrLx3{wANZynqJa@DTmhE=Yv*g*YZSPx$O{7Le_j( zII!%`P7{)##KCB}ww6|)@1#8vl+`Gq=c^M1<)4-cQ$4H}qP~8tssnIvkAxEJp!^kI zP3&-wA6f6=w>5qp>}ULpTypfX6a4VkbmUak&4pAQ*YB#EyIaji9Ocn+6>7HIy+-7w zuWk!AZsZwt&z4RMR7;ROXPbSWUM1vD6Jlx4>EoEUIx(kPXs;%0j!5d;OF(wJRK`KwXIH^$n{|XGJs^P+hU{-tJSwn@_8O4(rW{hcg<-3v9;yCE*X8qnx7b=xYo(8 z@I7@}99DmkM6E!q4}&ZtrS+0NdZ}KY1ho6_`+e5o*^|vz(<$TCXH?fU-PPkIUz)to z;qODq1}I#`eVFLe2E#^NUj@P&+oK+3eZ@3Va4-b0s~OGwuLM#ffN{>~3%aI~zjO?I M$M|;Ltp_jv2NMn=q5uE@ literal 8412 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 Dvj8GP literal 9280 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 diff --git a/icons/mob/inhands/weapons/guns_lefthand.dmi b/icons/mob/inhands/weapons/guns_lefthand.dmi index ef1b09fccc53113e4ee112bf7d0a9c7758b99f27..d356f95fd272d363e07fef45d5114b4709ad2071 100644 GIT binary patch delta 25390 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