From f9157dea1068fc53ed3c0ec061ec6d8352cf01dd Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 26 Apr 2019 22:12:56 -0400 Subject: [PATCH 001/276] Update comp_board_designs.dm --- .../research/designs/comp_board_designs.dm | 294 ++++++++++-------- 1 file changed, 161 insertions(+), 133 deletions(-) diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm index 68aee66d62..800349ebb6 100644 --- a/code/modules/research/designs/comp_board_designs.dm +++ b/code/modules/research/designs/comp_board_designs.dm @@ -2,7 +2,7 @@ /datum/design/board name = "Computer Design ( NULL ENTRY )" - desc = "I promise this doesn't give you syndicate goodies!" + desc = "A blank compurter board!" build_type = IMPRINTER materials = list(MAT_GLASS = 1000) @@ -22,6 +22,26 @@ category = list("Computer Boards") departmental_flags = DEPARTMENTAL_FLAG_ALL +/datum/design/board/slot_machine + name = "Computer Design (Slot Machine)" + desc = "Allows for the construction of circuit boards used to build a new slot machine." + id = "slotmachine" + build_path = /obj/item/circuitboard/computer/slot_machine + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/libraryconsole + name = "Computer Design (Library Console)" + desc = "Allows for the construction of circuit boards used to build a new library console." + id = "libraryconsole" + build_path = /obj/item/circuitboard/computer/libraryconsole + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/////////////////// +///SECURITY Boards/ +/////////////////// + /datum/design/board/seccamera name = "Computer Design (Security Camera)" desc = "Allows for the construction of circuit boards used to build security camera computers." @@ -30,6 +50,42 @@ category = list("Computer Boards") departmental_flags = DEPARTMENTAL_FLAG_SECURITY +/datum/design/board/comconsole + name = "Computer Design (Communications)" + desc = "Allows for the construction of circuit boards used to build a communications console." + id = "comconsole" + build_path = /obj/item/circuitboard/computer/communications + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY //Honestly should have a bridge techfab for this sometime. + +/datum/design/board/idcardconsole + name = "Computer Design (ID Console)" + desc = "Allows for the construction of circuit boards used to build an ID computer." + id = "idcardconsole" + build_path = /obj/item/circuitboard/computer/card + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY //Honestly should have a bridge techfab for this sometime. + +/datum/design/board/secdata + name = "Computer Design (Security Records Console)" + desc = "Allows for the construction of circuit boards used to build a security records console." + id = "secdata" + build_path = /obj/item/circuitboard/computer/secure_data + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/board/prisonmanage + name = "Computer Design (Prisoner Management Console)" + desc = "Allows for the construction of circuit boards used to build a prisoner management console." + id = "prisonmanage" + build_path = /obj/item/circuitboard/computer/prisoner + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/////////////////// +///SCI Boards////// +/////////////////// + /datum/design/board/rdcamera name = "Computer Design (Research Monitor)" desc = "Allows for the construction of circuit boards used to build research camera computers." @@ -64,6 +120,66 @@ category = list("Computer Boards") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE +/datum/design/board/robocontrol + name = "Computer Design (Robotics Control Console)" + desc = "Allows for the construction of circuit boards used to build a Robotics Control console." + id = "robocontrol" + build_path = /obj/item/circuitboard/computer/robotics + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/mechacontrol + name = "Computer Design (Exosuit Control Console)" + desc = "Allows for the construction of circuit boards used to build an exosuit control console." + id = "mechacontrol" + build_path = /obj/item/circuitboard/computer/mecha_control + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/mechapower + name = "Computer Design (Mech Bay Power Control Console)" + desc = "Allows for the construction of circuit boards used to build a mech bay power control console." + id = "mechapower" + build_path = /obj/item/circuitboard/computer/mech_bay_power_console + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/rdconsole + name = "Computer Design (R&D Console)" + desc = "Allows for the construction of circuit boards used to build a new R&D console." + id = "rdconsole" + build_path = /obj/item/circuitboard/computer/rdconsole + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/nanite_chamber_control + name = "Computer Design (Nanite Chamber Control)" + desc = "Allows for the construction of circuit boards used to build a new nanite chamber control console." + id = "nanite_chamber_control" + build_path = /obj/item/circuitboard/computer/nanite_chamber_control + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/nanite_cloud_control + name = "Computer Design (Nanite Cloud Control)" + desc = "Allows for the construction of circuit boards used to build a new nanite cloud control console." + id = "nanite_cloud_control" + build_path = /obj/item/circuitboard/computer/nanite_cloud_controller + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/aifixer + name = "Computer Design (AI Integrity Restorer)" + desc = "Allows for the construction of circuit boards used to build an AI Integrity Restorer." + id = "aifixer" + build_path = /obj/item/circuitboard/computer/aifixer + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/////////////////// +///MEDICAL Boards// +/////////////////// + /datum/design/board/med_data name = "Computer Design (Medical Records)" desc = "Allows for the construction of circuit boards used to build a medical records console." @@ -96,117 +212,17 @@ category = list("Computer Boards") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE -/datum/design/board/comconsole - name = "Computer Design (Communications)" - desc = "Allows for the construction of circuit boards used to build a communications console." - id = "comconsole" - build_path = /obj/item/circuitboard/computer/communications - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SECURITY //Honestly should have a bridge techfab for this sometime. - -/datum/design/board/idcardconsole - name = "Computer Design (ID Console)" - desc = "Allows for the construction of circuit boards used to build an ID computer." - id = "idcardconsole" - build_path = /obj/item/circuitboard/computer/card - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SECURITY //Honestly should have a bridge techfab for this sometime. - /datum/design/board/crewconsole name = "Computer Design (Crew monitoring computer)" desc = "Allows for the construction of circuit boards used to build a Crew monitoring computer." id = "crewconsole" build_path = /obj/item/circuitboard/computer/crew category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SECURITY -/datum/design/board/secdata - name = "Computer Design (Security Records Console)" - desc = "Allows for the construction of circuit boards used to build a security records console." - id = "secdata" - build_path = /obj/item/circuitboard/computer/secure_data - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - -/datum/design/board/atmosalerts - name = "Computer Design (Atmosphere Alert)" - desc = "Allows for the construction of circuit boards used to build an atmosphere alert console." - id = "atmosalerts" - build_path = /obj/item/circuitboard/computer/atmos_alert - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/atmos_control - name = "Computer Design (Atmospheric Monitor)" - desc = "Allows for the construction of circuit boards used to build an Atmospheric Monitor." - id = "atmos_control" - build_path = /obj/item/circuitboard/computer/atmos_control - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/robocontrol - name = "Computer Design (Robotics Control Console)" - desc = "Allows for the construction of circuit boards used to build a Robotics Control console." - id = "robocontrol" - build_path = /obj/item/circuitboard/computer/robotics - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/slot_machine - name = "Computer Design (Slot Machine)" - desc = "Allows for the construction of circuit boards used to build a new slot machine." - id = "slotmachine" - build_path = /obj/item/circuitboard/computer/slot_machine - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/powermonitor - name = "Computer Design (Power Monitor)" - desc = "Allows for the construction of circuit boards used to build a new power monitor." - id = "powermonitor" - build_path = /obj/item/circuitboard/computer/powermonitor - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/solarcontrol - name = "Computer Design (Solar Control)" - desc = "Allows for the construction of circuit boards used to build a solar control console." - id = "solarcontrol" - build_path = /obj/item/circuitboard/computer/solar_control - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/prisonmanage - name = "Computer Design (Prisoner Management Console)" - desc = "Allows for the construction of circuit boards used to build a prisoner management console." - id = "prisonmanage" - build_path = /obj/item/circuitboard/computer/prisoner - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - -/datum/design/board/mechacontrol - name = "Computer Design (Exosuit Control Console)" - desc = "Allows for the construction of circuit boards used to build an exosuit control console." - id = "mechacontrol" - build_path = /obj/item/circuitboard/computer/mecha_control - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/mechapower - name = "Computer Design (Mech Bay Power Control Console)" - desc = "Allows for the construction of circuit boards used to build a mech bay power control console." - id = "mechapower" - build_path = /obj/item/circuitboard/computer/mech_bay_power_console - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/rdconsole - name = "Computer Design (R&D Console)" - desc = "Allows for the construction of circuit boards used to build a new R&D console." - id = "rdconsole" - build_path = /obj/item/circuitboard/computer/rdconsole - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE +/////////////////// +///CARGO Boards//// +/////////////////// /datum/design/board/cargo name = "Computer Design (Supply Console)" @@ -240,6 +256,10 @@ category = list("Computer Boards") departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SECURITY +/////////////////// +///ENGINE Boards/// +/////////////////// + /datum/design/board/comm_monitor name = "Computer Design (Telecommunications Monitoring Console)" desc = "Allows for the construction of circuit boards used to build a telecommunications monitor." @@ -264,22 +284,6 @@ category = list("Computer Boards") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING -/datum/design/board/aifixer - name = "Computer Design (AI Integrity Restorer)" - desc = "Allows for the construction of circuit boards used to build an AI Integrity Restorer." - id = "aifixer" - build_path = /obj/item/circuitboard/computer/aifixer - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/libraryconsole - name = "Computer Design (Library Console)" - desc = "Allows for the construction of circuit boards used to build a new library console." - id = "libraryconsole" - build_path = /obj/item/circuitboard/computer/libraryconsole - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ALL - /datum/design/board/apc_control name = "Computer Design (APC Control)" desc = "Allows for the construction of circuit boards used to build a new APC control console." @@ -288,18 +292,42 @@ category = list("Computer Boards") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING -/datum/design/board/nanite_chamber_control - name = "Computer Design (Nanite Chamber Control)" - desc = "Allows for the construction of circuit boards used to build a new nanite chamber control console." - id = "nanite_chamber_control" - build_path = /obj/item/circuitboard/computer/nanite_chamber_control +/datum/design/board/meteor_console + name = "Computer Design (Meteor Satellite Console)" + desc = "Allows for the construction of circuit boards used to build a new Meteor Satellite monitor console." + id = "meteor_console" + build_path = /obj/item/circuitboard/computer/sat_control category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING -/datum/design/board/nanite_cloud_control - name = "Computer Design (Nanite Cloud Control)" - desc = "Allows for the construction of circuit boards used to build a new nanite cloud control console." - id = "nanite_cloud_control" - build_path = /obj/item/circuitboard/computer/nanite_cloud_controller +/datum/design/board/atmosalerts + name = "Computer Design (Atmosphere Alert)" + desc = "Allows for the construction of circuit boards used to build an atmosphere alert console." + id = "atmosalerts" + build_path = /obj/item/circuitboard/computer/atmos_alert category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/atmos_control + name = "Computer Design (Atmospheric Monitor)" + desc = "Allows for the construction of circuit boards used to build an Atmospheric Monitor." + id = "atmos_control" + build_path = /obj/item/circuitboard/computer/atmos_control + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/powermonitor + name = "Computer Design (Power Monitor)" + desc = "Allows for the construction of circuit boards used to build a new power monitor." + id = "powermonitor" + build_path = /obj/item/circuitboard/computer/powermonitor + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/solarcontrol + name = "Computer Design (Solar Control)" + desc = "Allows for the construction of circuit boards used to build a solar control console." + id = "solarcontrol" + build_path = /obj/item/circuitboard/computer/solar_control + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING From 2facc849750493645d7a9455fd3ea5d66b19a0ec Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 26 Apr 2019 22:14:32 -0400 Subject: [PATCH 002/276] Update machine_designs.dm --- .../research/designs/machine_designs.dm | 724 +++++++++--------- 1 file changed, 372 insertions(+), 352 deletions(-) diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index 93dfd3d2bb..c58bb89dbe 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -2,6 +2,335 @@ //////////////MISC Boards/////////////// //////////////////////////////////////// +/datum/design/board/recycler + name = "Machine Design (Recycler Board)" + desc = "The circuit board for a recycler." + id = "recycler" + build_path = /obj/item/circuitboard/machine/recycler + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/holopad + name = "Machine Design (AI Holopad Board)" + desc = "The circuit board for a holopad." + id = "holopad" + build_path = /obj/item/circuitboard/machine/holopad + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/autolathe + name = "Machine Design (Autolathe Board)" + desc = "The circuit board for an autolathe." + id = "autolathe" + build_path = /obj/item/circuitboard/machine/autolathe + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/recharger + name = "Machine Design (Weapon Recharger Board)" + desc = "The circuit board for a Weapon Recharger." + id = "recharger" + materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) + build_path = /obj/item/circuitboard/machine/recharger + category = list("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/vendor + name = "Machine Design (Vendor Board)" + desc = "The circuit board for a Vendor." + id = "vendor" + build_path = /obj/item/circuitboard/machine/vendor + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/donksofttoyvendor + name = "Machine Design (Donksoft Toy Vendor Board)" + desc = "The circuit board for a Donksoft Toy Vendor." + id = "donksofttoyvendor" + build_path = /obj/item/circuitboard/machine/vending/donksofttoyvendor + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/space_heater + name = "Machine Design (Space Heater Board)" + desc = "The circuit board for a space heater." + id = "space_heater" + build_path = /obj/item/circuitboard/machine/space_heater + category = list ("Engineering Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/reagentgrinder + name = "Machine Design (All-In-One Grinder)" + desc = "The circuit board for an All-In-One Grinder." + id = "reagentgrinder" + build_path = /obj/item/circuitboard/machine/reagentgrinder + category = list ("Medical Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/microwave + name = "Machine Design (Microwave Board)" + desc = "The circuit board for a microwave." + id = "microwave" + build_path = /obj/item/circuitboard/machine/microwave + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/smartfridge + name = "Machine Design (Smartfridge Board)" + desc = "The circuit board for a smartfridge." + id = "smartfridge" + build_path = /obj/item/circuitboard/machine/smartfridge + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/cell_charger + name = "Machine Design (Cell Charger Board)" + desc = "The circuit board for a cell charger." + id = "cell_charger" + build_path = /obj/item/circuitboard/machine/cell_charger + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/vr_sleeper + name = "Machine Design (VR Sleeper Board)" + desc = "The circuit board for a VR sleeper." + id = "vr_sleeper" + build_path = /obj/item/circuitboard/machine/vr_sleeper + departmental_flags = DEPARTMENTAL_FLAG_ALL + category = list ("Medical Machinery") + +/////////////////// +///MEDICAL Boards// +/////////////////// + +/datum/design/board/sleeper + name = "Machine Design (Sleeper Board)" + desc = "The circuit board for a sleeper." + id = "sleeper" + build_path = /obj/item/circuitboard/machine/sleeper + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + category = list ("Medical Machinery") + +/datum/design/board/cryotube + name = "Machine Design (Cryotube Board)" + desc = "The circuit board for a cryotube." + id = "cryotube" + build_path = /obj/item/circuitboard/machine/cryo_tube + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + category = list ("Medical Machinery") + +/datum/design/board/chem_dispenser + name = "Machine Design (Portable Chem Dispenser Board)" + desc = "The circuit board for a portable chem dispenser." + id = "chem_dispenser" + build_path = /obj/item/circuitboard/machine/chem_dispenser + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + category = list ("Medical Machinery") + +/datum/design/board/chem_master + name = "Machine Design (Chem Master Board)" + desc = "The circuit board for a Chem Master 3000." + id = "chem_master" + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + build_path = /obj/item/circuitboard/machine/chem_master + category = list ("Medical Machinery") + +/datum/design/board/chem_heater + name = "Machine Design (Chemical Heater Board)" + desc = "The circuit board for a chemical heater." + id = "chem_heater" + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + build_path = /obj/item/circuitboard/machine/chem_heater + category = list ("Medical Machinery") + +/datum/design/board/smoke_machine + name = "Machine Design (Smoke Machine)" + desc = "The circuit board for a smoke machine." + id = "smoke_machine" + build_path = /obj/item/circuitboard/machine/smoke_machine + category = list ("Medical Machinery") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + +/datum/design/board/clonecontrol + name = "Computer Design (Cloning Machine Console)" + desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console." + id = "clonecontrol" + build_path = /obj/item/circuitboard/computer/cloning + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + category = list("Medical Machinery") + +/datum/design/board/clonepod + name = "Machine Design (Clone Pod)" + desc = "Allows for the construction of circuit boards used to build a Cloning Pod." + id = "clonepod" + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + build_path = /obj/item/circuitboard/machine/clonepod + category = list("Medical Machinery") + +/datum/design/board/clonescanner + name = "Machine Design (Cloning Scanner)" + desc = "Allows for the construction of circuit boards used to build a Cloning Scanner." + id = "clonescanner" + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + build_path = /obj/item/circuitboard/machine/clonescanner + category = list("Medical Machinery") + +/datum/design/board/limbgrower + name = "Machine Design (Limb Grower Board)" + desc = "The circuit board for a limb grower." + id = "limbgrower" + build_path = /obj/item/circuitboard/machine/limbgrower + category = list("Medical Machinery") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + +/datum/design/board/harvester + name = "Machine Design (Organ Harvester Board)" + desc = "The circuit board for an organ harvester." + id = "harvester" + build_path = /obj/item/circuitboard/machine/harvester + category = list("Medical Machinery") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + +/////////////////// +///CARGO Boards//// +/////////////////// + +/datum/design/board/ore_silo + name = "Machine Design (Ore Silo)" + desc = "The circuit board for an ore silo." + id = "ore_silo" + build_path = /obj/item/circuitboard/machine/ore_silo + category = list ("Research Machinery") + departmental_flags = DEPARTMENTAL_FLAG_CARGO + +/datum/design/board/mining_equipment_vendor + name = "Machine Design (Mining Rewards Vender Board)" + desc = "The circuit board for a Mining Rewards Vender." + id = "mining_equipment_vendor" + build_path = /obj/item/circuitboard/machine/mining_equipment_vendor + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/stacking_unit_console + name = "Machine Design (Stacking Machine Console)" + desc = "The circuit board for a Stacking Machine Console." + id = "stack_console" + build_path = /obj/item/circuitboard/machine/stacking_unit_console + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/stacking_machine + name = "Machine Design (Stacking Machine)" + desc = "The circuit board for a Stacking Machine." + id = "stack_machine" + build_path = /obj/item/circuitboard/machine/stacking_machine + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/ore_redemption + name = "Machine Design (Ore Redemption Board)" + desc = "The circuit board for an Ore Redemption machine." + id = "ore_redemption" + build_path = /obj/item/circuitboard/machine/ore_redemption + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + +/////////////////// +///CIV Boards////// +/////////////////// + +/datum/design/board/gibber + name = "Machine Design (Gibber Board)" + desc = "The circuit board for a gibber." + id = "gibber" + build_path = /obj/item/circuitboard/machine/gibber + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/board/seed_extractor + name = "Machine Design (Seed Extractor Board)" + desc = "The circuit board for a seed extractor." + id = "seed_extractor" + build_path = /obj/item/circuitboard/machine/seed_extractor + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/board/soda_dispenser + name = "Machine Design (Portable Soda Dispenser Board)" + desc = "The circuit board for a portable soda dispenser." + id = "soda_dispenser" + build_path = /obj/item/circuitboard/machine/chem_dispenser/drinks + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + category = list ("Misc. Machinery") + +/datum/design/board/beer_dispenser + name = "Machine Design (Portable Booze Dispenser Board)" + desc = "The circuit board for a portable booze dispenser." + id = "beer_dispenser" + build_path = /obj/item/circuitboard/machine/chem_dispenser/drinks/beer + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + category = list ("Misc. Machinery") + +/datum/design/board/plantgenes + name = "Machine Design (Plant DNA Manipulator Board)" + desc = "The circuit board for a plant DNA manipulator." + id = "plantgenes" + build_path = /obj/item/circuitboard/machine/plantgenes + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/board/deepfryer + name = "Machine Design (Deep Fryer)" + desc = "The circuit board for a Deep Fryer." + id = "deepfryer" + build_path = /obj/item/circuitboard/machine/deep_fryer + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/board/dish_drive + name = "Machine Design (Dish Drive)" + desc = "The circuit board for a dish drive." + id = "dish_drive" + build_path = /obj/item/circuitboard/machine/dish_drive + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/board/biogenerator + name = "Machine Design (Biogenerator Board)" + desc = "The circuit board for a biogenerator." + id = "biogenerator" + build_path = /obj/item/circuitboard/machine/biogenerator + category = list ("Hydroponics Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/board/hydroponics + name = "Machine Design (Hydroponics Tray Board)" + desc = "The circuit board for a hydroponics tray." + id = "hydro_tray" + build_path = /obj/item/circuitboard/machine/hydroponics + category = list ("Hydroponics Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/board/monkey_recycler + name = "Machine Design (Monkey Recycler Board)" + desc = "The circuit board for a monkey recycler." + id = "monkey_recycler" + build_path = /obj/item/circuitboard/machine/monkey_recycler + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/processor + name = "Machine Design (Food/Slime Processor Board)" + desc = "The circuit board for a processing unit. Screwdriver the circuit to switch between food (default) or slime processing." + id = "processor" + build_path = /obj/item/circuitboard/machine/processor + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_SCIENCE + +/////////////////// +///ENGINE Boards/// +/////////////////// + /datum/design/board/smes name = "Machine Design (SMES Board)" desc = "The circuit board for a SMES." @@ -40,7 +369,7 @@ id = "power_turbine_console" build_path = /obj/item/circuitboard/computer/turbine_computer category = list ("Engineering Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/board/emitter name = "Machine Design (Emitter Board)" @@ -56,7 +385,7 @@ id = "power_compressor" build_path = /obj/item/circuitboard/machine/power_compressor category = list ("Engineering Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING /datum/design/board/power_turbine name = "Machine Design (Power Turbine Board)" @@ -64,6 +393,38 @@ id = "power_turbine" build_path = /obj/item/circuitboard/machine/power_turbine category = list ("Engineering Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/tesla_coil + name = "Machine Design (Tesla Coil Board)" + desc = "The circuit board for a tesla coil." + id = "tesla_coil" + build_path = /obj/item/circuitboard/machine/tesla_coil + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/rad_collector + name = "Machine Design (Radiation Collector Board)" + desc = "The circuit board for a radiation collector array." + id = "rad_collector" + build_path = /obj/item/circuitboard/machine/rad_collector + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/grounding_rod + name = "Machine Design (Grounding Rod Board)" + desc = "The circuit board for a grounding rod." + id = "grounding_rod" + build_path = /obj/item/circuitboard/machine/grounding_rod + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/ntnet_relay + name = "Machine Design (NTNet Relay Board)" + desc = "The circuit board for a wireless network relay." + id = "ntnet_relay" + build_path = /obj/item/circuitboard/machine/ntnet_relay + category = list("Subspace Telecomms") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/thermomachine @@ -74,13 +435,9 @@ category = list ("Engineering Machinery") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE -/datum/design/board/space_heater - name = "Machine Design (Space Heater Board)" - desc = "The circuit board for a space heater." - id = "space_heater" - build_path = /obj/item/circuitboard/machine/space_heater - category = list ("Engineering Machinery") - departmental_flags = ALL +/////////////////// +///SCI Boards////// +/////////////////// /datum/design/board/teleport_station name = "Machine Design (Teleportation Station Board)" @@ -88,7 +445,7 @@ id = "tele_station" build_path = /obj/item/circuitboard/machine/teleporter_station category = list ("Teleportation Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/teleport_hub name = "Machine Design (Teleportation Hub Board)" @@ -96,7 +453,7 @@ id = "tele_hub" build_path = /obj/item/circuitboard/machine/teleporter_hub category = list ("Teleportation Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/quantumpad name = "Machine Design (Quantum Pad Board)" @@ -104,7 +461,7 @@ id = "quantumpad" build_path = /obj/item/circuitboard/machine/quantumpad category = list ("Teleportation Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/launchpad name = "Machine Design (Bluespace Launchpad Board)" @@ -112,7 +469,7 @@ id = "launchpad" build_path = /obj/item/circuitboard/machine/launchpad category = list ("Teleportation Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/launchpad_console name = "Machine Design (Bluespace Launchpad Console Board)" @@ -120,7 +477,7 @@ id = "launchpad_console" build_path = /obj/item/circuitboard/computer/launchpad_console category = list ("Teleportation Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/teleconsole name = "Computer Design (Teleporter Console)" @@ -128,111 +485,7 @@ id = "teleconsole" build_path = /obj/item/circuitboard/computer/teleporter category = list("Teleportation Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/sleeper - name = "Machine Design (Sleeper Board)" - desc = "The circuit board for a sleeper." - id = "sleeper" - build_path = /obj/item/circuitboard/machine/sleeper - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_MEDICAL - category = list ("Medical Machinery") - -/datum/design/board/vr_sleeper - name = "Machine Design (VR Sleeper Board)" - desc = "The circuit board for a VR sleeper." - id = "vr_sleeper" - build_path = /obj/item/circuitboard/machine/vr_sleeper - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE - category = list ("Medical Machinery") - -/datum/design/board/cryotube - name = "Machine Design (Cryotube Board)" - desc = "The circuit board for a cryotube." - id = "cryotube" - build_path = /obj/item/circuitboard/machine/cryo_tube - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_MEDICAL - category = list ("Medical Machinery") - -/datum/design/board/chem_dispenser - name = "Machine Design (Portable Chem Dispenser Board)" - desc = "The circuit board for a portable chem dispenser." - id = "chem_dispenser" - build_path = /obj/item/circuitboard/machine/chem_dispenser - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_MEDICAL - category = list ("Medical Machinery") - -/datum/design/board/chem_master - name = "Machine Design (Chem Master Board)" - desc = "The circuit board for a Chem Master 3000." - id = "chem_master" - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_MEDICAL - build_path = /obj/item/circuitboard/machine/chem_master - category = list ("Medical Machinery") - -/datum/design/board/chem_heater - name = "Machine Design (Chemical Heater Board)" - desc = "The circuit board for a chemical heater." - id = "chem_heater" - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_MEDICAL - build_path = /obj/item/circuitboard/machine/chem_heater - category = list ("Medical Machinery") - -/datum/design/board/smoke_machine - name = "Machine Design (Smoke Machine)" - desc = "The circuit board for a smoke machine." - id = "smoke_machine" - build_path = /obj/item/circuitboard/machine/smoke_machine - category = list ("Medical Machinery") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - -/datum/design/board/reagentgrinder - name = "Machine Design (All-In-One Grinder)" - desc = "The circuit board for an All-In-One Grinder." - id = "reagentgrinder" - build_path = /obj/item/circuitboard/machine/reagentgrinder - category = list ("Medical Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/clonecontrol - name = "Computer Design (Cloning Machine Console)" - desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console." - id = "clonecontrol" - build_path = /obj/item/circuitboard/computer/cloning - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - category = list("Medical Machinery") - -/datum/design/board/clonepod - name = "Machine Design (Clone Pod)" - desc = "Allows for the construction of circuit boards used to build a Cloning Pod." - id = "clonepod" - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - build_path = /obj/item/circuitboard/machine/clonepod - category = list("Medical Machinery") - -/datum/design/board/clonescanner - name = "Machine Design (Cloning Scanner)" - desc = "Allows for the construction of circuit boards used to build a Cloning Scanner." - id = "clonescanner" - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - build_path = /obj/item/circuitboard/machine/clonescanner - category = list("Medical Machinery") - -/datum/design/board/biogenerator - name = "Machine Design (Biogenerator Board)" - desc = "The circuit board for a biogenerator." - id = "biogenerator" - build_path = /obj/item/circuitboard/machine/biogenerator - category = list ("Hydroponics Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE - -/datum/design/board/hydroponics - name = "Machine Design (Hydroponics Tray Board)" - desc = "The circuit board for a hydroponics tray." - id = "hydro_tray" - build_path = /obj/item/circuitboard/machine/hydroponics - category = list ("Hydroponics Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE /datum/design/board/destructive_analyzer name = "Machine Design (Destructive Analyzer Board)" @@ -337,236 +590,3 @@ build_path = /obj/item/circuitboard/machine/nanite_program_hub category = list("Research Machinery") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/microwave - name = "Machine Design (Microwave Board)" - desc = "The circuit board for a microwave." - id = "microwave" - build_path = /obj/item/circuitboard/machine/microwave - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/gibber - name = "Machine Design (Gibber Board)" - desc = "The circuit board for a gibber." - id = "gibber" - build_path = /obj/item/circuitboard/machine/gibber - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE - -/datum/design/board/smartfridge - name = "Machine Design (Smartfridge Board)" - desc = "The circuit board for a smartfridge." - id = "smartfridge" - build_path = /obj/item/circuitboard/machine/smartfridge - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/monkey_recycler - name = "Machine Design (Monkey Recycler Board)" - desc = "The circuit board for a monkey recycler." - id = "monkey_recycler" - build_path = /obj/item/circuitboard/machine/monkey_recycler - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SERVICE - -/datum/design/board/seed_extractor - name = "Machine Design (Seed Extractor Board)" - desc = "The circuit board for a seed extractor." - id = "seed_extractor" - build_path = /obj/item/circuitboard/machine/seed_extractor - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE - -/datum/design/board/processor - name = "Machine Design (Food/Slime Processor Board)" - desc = "The circuit board for a processing unit. Screwdriver the circuit to switch between food (default) or slime processing." - id = "processor" - build_path = /obj/item/circuitboard/machine/processor - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SERVICE - -/datum/design/board/soda_dispenser - name = "Machine Design (Portable Soda Dispenser Board)" - desc = "The circuit board for a portable soda dispenser." - id = "soda_dispenser" - build_path = /obj/item/circuitboard/machine/chem_dispenser/drinks - departmental_flags = DEPARTMENTAL_FLAG_SERVICE - category = list ("Misc. Machinery") - -/datum/design/board/beer_dispenser - name = "Machine Design (Portable Booze Dispenser Board)" - desc = "The circuit board for a portable booze dispenser." - id = "beer_dispenser" - build_path = /obj/item/circuitboard/machine/chem_dispenser/drinks/beer - departmental_flags = DEPARTMENTAL_FLAG_SERVICE - category = list ("Misc. Machinery") - -/datum/design/board/recycler - name = "Machine Design (Recycler Board)" - desc = "The circuit board for a recycler." - id = "recycler" - build_path = /obj/item/circuitboard/machine/recycler - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/holopad - name = "Machine Design (AI Holopad Board)" - desc = "The circuit board for a holopad." - id = "holopad" - build_path = /obj/item/circuitboard/machine/holopad - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/autolathe - name = "Machine Design (Autolathe Board)" - desc = "The circuit board for an autolathe." - id = "autolathe" - build_path = /obj/item/circuitboard/machine/autolathe - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL //Lets be honest here half the maps have public ones. - -/datum/design/board/recharger - name = "Machine Design (Weapon Recharger Board)" - desc = "The circuit board for a Weapon Recharger." - id = "recharger" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) - build_path = /obj/item/circuitboard/machine/recharger - category = list("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/vendor - name = "Machine Design (Vendor Board)" - desc = "The circuit board for a Vendor." - id = "vendor" - build_path = /obj/item/circuitboard/machine/vendor - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/ore_redemption - name = "Machine Design (Ore Redemption Board)" - desc = "The circuit board for an Ore Redemption machine." - id = "ore_redemption" - build_path = /obj/item/circuitboard/machine/ore_redemption - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/mining_equipment_vendor - name = "Machine Design (Mining Rewards Vender Board)" - desc = "The circuit board for a Mining Rewards Vender." - id = "mining_equipment_vendor" - build_path = /obj/item/circuitboard/machine/mining_equipment_vendor - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_CARGO - -/datum/design/board/tesla_coil - name = "Machine Design (Tesla Coil Board)" - desc = "The circuit board for a tesla coil." - id = "tesla_coil" - build_path = /obj/item/circuitboard/machine/tesla_coil - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/rad_collector - name = "Machine Design (Radiation Collector Board)" - desc = "The circuit board for a radiation collector array." - id = "rad_collector" - build_path = /obj/item/circuitboard/machine/rad_collector - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/grounding_rod - name = "Machine Design (Grounding Rod Board)" - desc = "The circuit board for a grounding rod." - id = "grounding_rod" - build_path = /obj/item/circuitboard/machine/grounding_rod - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/plantgenes - name = "Machine Design (Plant DNA Manipulator Board)" - desc = "The circuit board for a plant DNA manipulator." - id = "plantgenes" - build_path = /obj/item/circuitboard/machine/plantgenes - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE - -/datum/design/board/ntnet_relay - name = "Machine Design (NTNet Relay Board)" - desc = "The circuit board for a wireless network relay." - id = "ntnet_relay" - build_path = /obj/item/circuitboard/machine/ntnet_relay - category = list("Subspace Telecomms") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/limbgrower - name = "Machine Design (Limb Grower Board)" - desc = "The circuit board for a limb grower." - id = "limbgrower" - build_path = /obj/item/circuitboard/machine/limbgrower - category = list("Medical Machinery") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - -/datum/design/board/harvester - name = "Machine Design (Organ Harvester Board)" - desc = "The circuit board for an organ harvester." - id = "harvester" - build_path = /obj/item/circuitboard/machine/harvester - category = list("Medical Machinery") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - -/datum/design/board/deepfryer - name = "Machine Design (Deep Fryer)" - desc = "The circuit board for a Deep Fryer." - id = "deepfryer" - build_path = /obj/item/circuitboard/machine/deep_fryer - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE - -/datum/design/board/donksofttoyvendor - name = "Machine Design (Donksoft Toy Vendor Board)" - desc = "The circuit board for a Donksoft Toy Vendor." - id = "donksofttoyvendor" - build_path = /obj/item/circuitboard/machine/vending/donksofttoyvendor - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL //Toys!! - -/datum/design/board/cell_charger - name = "Machine Design (Cell Charger Board)" - desc = "The circuit board for a cell charger." - id = "cell_charger" - build_path = /obj/item/circuitboard/machine/cell_charger - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/dish_drive - name = "Machine Design (Dish Drive)" - desc = "The circuit board for a dish drive." - id = "dish_drive" - build_path = /obj/item/circuitboard/machine/dish_drive - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE - -/datum/design/board/stacking_unit_console - name = "Machine Design (Stacking Machine Console)" - desc = "The circuit board for a Stacking Machine Console." - id = "stack_console" - build_path = /obj/item/circuitboard/machine/stacking_unit_console - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/stacking_machine - name = "Machine Design (Stacking Machine)" - desc = "The circuit board for a Stacking Machine." - id = "stack_machine" - build_path = /obj/item/circuitboard/machine/stacking_machine - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/ore_silo - name = "Machine Design (Ore Silo)" - desc = "The circuit board for an ore silo." - id = "ore_silo" - build_path = /obj/item/circuitboard/machine/ore_silo - category = list ("Research Machinery") - departmental_flags = DEPARTMENTAL_FLAG_CARGO From d2b45df30f8682830cd047ebc4c6dbcd58a00f54 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 26 Apr 2019 22:16:35 -0400 Subject: [PATCH 003/276] Update medical_designs.dm --- .../research/designs/medical_designs.dm | 178 +++++++++--------- 1 file changed, 85 insertions(+), 93 deletions(-) diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index aea3a3755f..e0f0a7be5b 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -44,16 +44,6 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL -/datum/design/medicalkit - name = "Empty Medkit" - desc = "A plastic medical kit for storging medical items." - id = "medicalkit" - build_type = PROTOLATHE - materials = list(MAT_PLASTIC = 5000) - build_path = /obj/item/storage/firstaid //So we dont spawn medical items in it - category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE - /datum/design/xlarge_beaker name = "X-large Beaker" id = "xlarge_beaker" @@ -82,16 +72,6 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE -/datum/design/cloning_disk - name = "Cloning Data Disk" - desc = "Produce additional disks for storing genetic data." - id = "cloning_disk" - build_type = PROTOLATHE - materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER=50) - build_path = /obj/item/disk/data - category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE - /datum/design/noreactsyringe name = "Cryo Syringe" desc = "An advanced syringe that stops reagents inside from reacting. It can hold up to 20 units." @@ -162,6 +142,16 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL +/datum/design/medicalkit + name = "Empty Medkit" + desc = "A plastic medical kit for storging medical items." + id = "medicalkit" + build_type = PROTOLATHE + materials = list(MAT_PLASTIC = 5000) + build_path = /obj/item/storage/firstaid //So we dont spawn medical items in it + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + /datum/design/blood_bag name = "Empty Blood Bag" desc = "A small sterilized plastic bag for blood." @@ -172,6 +162,16 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL +/datum/design/cloning_disk + name = "Cloning Data Disk" + desc = "Produce additional disks for storing genetic data." + id = "cloning_disk" + build_type = PROTOLATHE + materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER=50) + build_path = /obj/item/disk/data + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + //////////////////////////////////////// //////////Defibrillator Tech//////////// //////////////////////////////////////// @@ -239,72 +239,6 @@ category = list("Misc") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - -///////////////////////////////////////// -//////////Alien Surgery Tools//////////// -///////////////////////////////////////// - -/datum/design/alienscalpel - name = "Alien Scalpel" - desc = "An advanced scalpel obtained through Abductor technology." - id = "alien_scalpel" - build_path = /obj/item/scalpel/alien - build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) - category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - -/datum/design/alienhemostat - name = "Alien Hemostat" - desc = "An advanced hemostat obtained through Abductor technology." - id = "alien_hemostat" - build_path = /obj/item/hemostat/alien - build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) - category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - -/datum/design/alienretractor - name = "Alien Retractor" - desc = "An advanced retractor obtained through Abductor technology." - id = "alien_retractor" - build_path = /obj/item/retractor/alien - build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) - category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - -/datum/design/aliensaw - name = "Alien Circular Saw" - desc = "An advanced surgical saw obtained through Abductor technology." - id = "alien_saw" - build_path = /obj/item/circular_saw/alien - build_type = PROTOLATHE - materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500) - category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - -/datum/design/aliendrill - name = "Alien Drill" - desc = "An advanced drill obtained through Abductor technology." - id = "alien_drill" - build_path = /obj/item/surgicaldrill/alien - build_type = PROTOLATHE - materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500) - category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - -/datum/design/aliencautery - name = "Alien Cautery" - desc = "An advanced cautery obtained through Abductor technology." - id = "alien_cautery" - build_path = /obj/item/cautery/alien - build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) - category = list("Medical Designs") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - - ///////////////////////////////////////// //////////Cybernetic Implants//////////// ///////////////////////////////////////// @@ -654,9 +588,74 @@ category = list("Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE +///////////////////////////////////////// +//////////Alien Surgery Tools//////////// +///////////////////////////////////////// + +/datum/design/alienscalpel + name = "Alien Scalpel" + desc = "An advanced scalpel obtained through Abductor technology." + id = "alien_scalpel" + build_path = /obj/item/scalpel/alien + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + +/datum/design/alienhemostat + name = "Alien Hemostat" + desc = "An advanced hemostat obtained through Abductor technology." + id = "alien_hemostat" + build_path = /obj/item/hemostat/alien + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + +/datum/design/alienretractor + name = "Alien Retractor" + desc = "An advanced retractor obtained through Abductor technology." + id = "alien_retractor" + build_path = /obj/item/retractor/alien + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + +/datum/design/aliensaw + name = "Alien Circular Saw" + desc = "An advanced surgical saw obtained through Abductor technology." + id = "alien_saw" + build_path = /obj/item/circular_saw/alien + build_type = PROTOLATHE + materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500) + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + +/datum/design/aliendrill + name = "Alien Drill" + desc = "An advanced drill obtained through Abductor technology." + id = "alien_drill" + build_path = /obj/item/surgicaldrill/alien + build_type = PROTOLATHE + materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500) + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + +/datum/design/aliencautery + name = "Alien Cautery" + desc = "An advanced cautery obtained through Abductor technology." + id = "alien_cautery" + build_path = /obj/item/cautery/alien + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500) + category = list("Medical Designs") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + ///////////////////// ///Surgery Designs/// ///////////////////// + /datum/design/surgery name = "Surgery Design" desc = "what" @@ -714,13 +713,6 @@ surgery = /datum/surgery/advanced/bioware/nerve_splicing research_icon_state = "surgery_chest" -/datum/design/surgery/nerve_grounding - name = "Nerve Grounding" - desc = "A surgical procedure which makes the patient's nerves act as grounding rods, protecting them from electrical shocks." - id = "surgery_nerve_ground" - surgery = /datum/surgery/advanced/bioware/nerve_grounding - research_icon_state = "surgery_chest" - /datum/design/surgery/vein_threading name = "Vein Threading" desc = "A surgical procedure which severely reduces the amount of blood lost in case of injury." From 28403a55f4b87f7422da1266da4a642509fd23a8 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 26 Apr 2019 22:18:29 -0400 Subject: [PATCH 004/276] Update misc_designs.dm --- code/modules/research/designs/misc_designs.dm | 109 +++++++++--------- 1 file changed, 57 insertions(+), 52 deletions(-) diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index d567334998..6ecc10704a 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -94,39 +94,15 @@ category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE -///////////////////////////////////////// -//////////////////Misc/////////////////// -///////////////////////////////////////// - -/datum/design/welding_mask - name = "Welding Gas Mask" - desc = "A gas mask with built in welding goggles and face shield. Looks like a skull, clearly designed by a nerd." - id = "weldingmask" +/datum/design/sci_goggles + name = "Science Goggles" + desc = "Goggles fitted with a portable analyzer capable of determining the research worth of an item or components of a machine." + id = "scigoggles" build_type = PROTOLATHE - materials = list(MAT_METAL = 3000, MAT_GLASS = 1000) - build_path = /obj/item/clothing/mask/gas/welding + materials = list(MAT_METAL = 500, MAT_GLASS = 500) + build_path = /obj/item/clothing/glasses/science category = list("Equipment") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/portaseeder - name = "Portable Seed Extractor" - desc = "For the enterprising botanist on the go. Less efficient than the stationary model, it creates one seed per plant." - id = "portaseeder" - build_type = PROTOLATHE - materials = list(MAT_METAL = 1000, MAT_GLASS = 400) - build_path = /obj/item/storage/bag/plants/portaseeder - category = list("Equipment") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE - -/datum/design/air_horn - name = "Air Horn" - desc = "Damn son, where'd you find this?" - id = "air_horn" - build_type = PROTOLATHE - materials = list(MAT_METAL = 4000, MAT_BANANIUM = 1000) - build_path = /obj/item/bikehorn/airhorn - category = list("Equipment") - departmental_flags = DEPARTMENTAL_FLAG_ALL //HONK! + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE /datum/design/mesons name = "Optical Meson Scanners" @@ -218,6 +194,40 @@ category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_ENGINEERING +///////////////////////////////////////// +//////////////////Misc/////////////////// +///////////////////////////////////////// + +/datum/design/welding_mask + name = "Welding Gas Mask" + desc = "A gas mask with built in welding goggles and face shield. Looks like a skull, clearly designed by a nerd." + id = "weldingmask" + build_type = PROTOLATHE + materials = list(MAT_METAL = 3000, MAT_GLASS = 1000) + build_path = /obj/item/clothing/mask/gas/welding + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/portaseeder + name = "Portable Seed Extractor" + desc = "For the enterprising botanist on the go. Less efficient than the stationary model, it creates one seed per plant." + id = "portaseeder" + build_type = PROTOLATHE + materials = list(MAT_METAL = 1000, MAT_GLASS = 400) + build_path = /obj/item/storage/bag/plants/portaseeder + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/air_horn + name = "Air Horn" + desc = "Damn son, where'd you find this?" + id = "air_horn" + build_type = PROTOLATHE + materials = list(MAT_METAL = 4000, MAT_BANANIUM = 1000) + build_path = /obj/item/bikehorn/airhorn + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_ALL //HONK! + /datum/design/magboots name = "Magnetic Boots" desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle." @@ -228,26 +238,6 @@ category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING -/datum/design/forcefield_projector - name = "Forcefield Projector" - desc = "A device which can project temporary forcefields to seal off an area." - id = "forcefield_projector" - build_type = PROTOLATHE - materials = list(MAT_METAL = 2500, MAT_GLASS = 1000) - build_path = /obj/item/forcefield_projector - category = list("Equipment") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/sci_goggles - name = "Science Goggles" - desc = "Goggles fitted with a portable analyzer capable of determining the research worth of an item or components of a machine." - id = "scigoggles" - build_type = PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) - build_path = /obj/item/clothing/glasses/science - category = list("Equipment") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - /datum/design/diskplantgene name = "Plant Data Disk" desc = "A disk for storing plant genetic data." @@ -312,6 +302,11 @@ category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_SERVICE +///////////////////////////////////////// +////////////Holosign Designs////////////// +///////////////////////////////////////// + + /datum/design/holosign name = "Holographic Sign Projector" desc = "A holograpic projector used to project various warning signs." @@ -352,6 +347,16 @@ category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING +/datum/design/forcefield_projector + name = "Forcefield Projector" + desc = "A device which can project temporary forcefields to seal off an area." + id = "forcefield_projector" + build_type = PROTOLATHE + materials = list(MAT_METAL = 2500, MAT_GLASS = 1000) + build_path = /obj/item/forcefield_projector + category = list("Equipment") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + ///////////////////////////////////////// ////////////Tools////////////// ///////////////////////////////////////// @@ -457,7 +462,7 @@ departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING ///////////////////////////////////////// -////////////Armour////////////// +////////////Armour/////////////////////// ///////////////////////////////////////// /datum/design/reactive_armour From 6b0e533b694677932c10d1c6ab9b1d6e1413167c Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 26 Apr 2019 22:20:42 -0400 Subject: [PATCH 005/276] Update smelting_designs.dm --- code/modules/research/designs/smelting_designs.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/research/designs/smelting_designs.dm b/code/modules/research/designs/smelting_designs.dm index f2f21396d2..8ddf975c54 100644 --- a/code/modules/research/designs/smelting_designs.dm +++ b/code/modules/research/designs/smelting_designs.dm @@ -10,7 +10,6 @@ departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING maxstack = 50 - /datum/design/plastitanium_alloy name = "Plasma + Titanium alloy" id = "plastitanium" From 192b3ebc6c4ab7e00c2a9aa0bc2f960b7ef31fde Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 26 Apr 2019 22:25:48 -0400 Subject: [PATCH 006/276] >_< WOOPS --- code/modules/research/designs/medical_designs.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index e0f0a7be5b..565c585bf2 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -713,6 +713,13 @@ surgery = /datum/surgery/advanced/bioware/nerve_splicing research_icon_state = "surgery_chest" +/datum/design/surgery/nerve_grounding + name = "Nerve Grounding" + desc = "A surgical procedure which makes the patient's nerves act as grounding rods, protecting them from electrical shocks." + id = "surgery_nerve_ground" + surgery = /datum/surgery/advanced/bioware/nerve_grounding + research_icon_state = "surgery_chest" + /datum/design/surgery/vein_threading name = "Vein Threading" desc = "A surgical procedure which severely reduces the amount of blood lost in case of injury." From 080488ed616b45a31fd222a9e908c050c07a3866 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 26 Apr 2019 22:32:06 -0400 Subject: [PATCH 007/276] Update misc_designs.dm --- code/modules/research/designs/misc_designs.dm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index 6ecc10704a..0d699a1d67 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -303,10 +303,9 @@ departmental_flags = DEPARTMENTAL_FLAG_SERVICE ///////////////////////////////////////// -////////////Holosign Designs////////////// +////////////Holosign Designs///////////// ///////////////////////////////////////// - /datum/design/holosign name = "Holographic Sign Projector" desc = "A holograpic projector used to project various warning signs." @@ -357,9 +356,9 @@ category = list("Equipment") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING -///////////////////////////////////////// +/////////////////////////////// ////////////Tools////////////// -///////////////////////////////////////// +/////////////////////////////// /datum/design/exwelder name = "Experimental Welding Tool" From bd5e8241d6b3cd7b652dcc649e48e47fe077dbe0 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 26 Apr 2019 22:50:23 -0400 Subject: [PATCH 008/276] Update syndicate.dm --- code/modules/mob/living/simple_animal/hostile/syndicate.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index 2c45743c55..dd08a009d4 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -130,7 +130,7 @@ /mob/living/simple_animal/hostile/syndicate/melee/bullet_act(obj/item/projectile/Proj) if(!Proj) return - if(prob(50)) + if(prob(25)) return ..() else visible_message("[src] blocks [Proj] with its shield!") From 32b2342e4a79a5605128ef0c9c2f13010360d654 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 27 Apr 2019 18:48:47 -0400 Subject: [PATCH 009/276] ouch! --- code/modules/research/designs/comp_board_designs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm index 800349ebb6..620adf20c0 100644 --- a/code/modules/research/designs/comp_board_designs.dm +++ b/code/modules/research/designs/comp_board_designs.dm @@ -2,7 +2,7 @@ /datum/design/board name = "Computer Design ( NULL ENTRY )" - desc = "A blank compurter board!" + desc = "A blank computer board!" build_type = IMPRINTER materials = list(MAT_GLASS = 1000) From 9adeccc5e122a5993c65ec2db7154c5991eeb189 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 6 May 2019 23:47:39 -0400 Subject: [PATCH 010/276] Update autolathe_designs.dm --- .../research/designs/autolathe_designs.dm | 560 +++++++++++------- 1 file changed, 338 insertions(+), 222 deletions(-) diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index 7ceeda2c64..2834bbccef 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -2,6 +2,9 @@ //////////Autolathe Designs /////// /////////////////////////////////// +/////////// +///Tools // +/////////// /datum/design/bucket name = "Bucket" id = "bucket" @@ -131,6 +134,26 @@ build_path = /obj/item/storage/toolbox category = list("initial","Tools") +/datum/design/spraycan + name = "Spraycan" + id = "spraycan" + build_type = AUTOLATHE + materials = list(MAT_METAL = 100, MAT_GLASS = 100) + build_path = /obj/item/toy/crayon/spraycan + category = list("initial", "Tools") + +/datum/design/geiger + name = "Geiger Counter" + id = "geigercounter" + build_type = AUTOLATHE + materials = list(MAT_METAL = 150, MAT_GLASS = 150) + build_path = /obj/item/geiger_counter + category = list("initial", "Tools") + +//////////////// +///Electronics// +//////////////// + /datum/design/apc_board name = "APC Module" id = "power control" @@ -176,45 +199,42 @@ category = list("initial", "Electronics") departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING -/datum/design/camera - name = "Camera" - id = "camera" +/datum/design/desttagger + name = "Destination Tagger" + id = "desttagger" build_type = AUTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 100) - build_path = /obj/item/camera - category = list("initial", "Misc") + materials = list(MAT_METAL = 250, MAT_GLASS = 125) + build_path = /obj/item/destTagger + category = list("initial", "Electronics") -/datum/design/camera_film - name = "Camera Film Cartridge" - id = "camera_film" +/datum/design/handlabeler + name = "Hand Labeler" + id = "handlabel" build_type = AUTOLATHE - materials = list(MAT_METAL = 10, MAT_GLASS = 10) - build_path = /obj/item/camera_film - category = list("initial", "Misc") + materials = list(MAT_METAL = 150, MAT_GLASS = 125) + build_path = /obj/item/hand_labeler + category = list("initial", "Electronics") -/datum/design/earmuffs - name = "Earmuffs" - id = "earmuffs" +/datum/design/miniature_power_cell + name = "Light Fixture Battery" + id = "miniature_power_cell" build_type = AUTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) - build_path = /obj/item/clothing/ears/earmuffs - category = list("initial", "Misc") + materials = list(MAT_GLASS = 20) + build_path = /obj/item/stock_parts/cell/emergency_light + category = list("initial", "Electronics") -/datum/design/pipe_painter - name = "Pipe Painter" - id = "pipe_painter" - build_type = AUTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 2000) - build_path = /obj/item/pipe_painter - category = list("initial", "Misc") +//////////////// +///Electronics// +//////////////// -/datum/design/airlock_painter - name = "Airlock Painter" - id = "airlock_painter" +/datum/design/rods + name = "Metal Rod" + id = "rods" build_type = AUTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) - build_path = /obj/item/airlock_painter - category = list("initial", "Misc") + materials = list(MAT_METAL = 1000) + build_path = /obj/item/stack/rods + category = list("initial","Construction") + maxstack = 50 /datum/design/metal name = "Metal" @@ -243,14 +263,61 @@ category = list("initial","Construction","Stock Parts") maxstack = 50 -/datum/design/rods - name = "Metal Rod" - id = "rods" +/datum/design/light_tube + name = "Light Tube" + id = "light_tube" build_type = AUTOLATHE - materials = list(MAT_METAL = 1000) - build_path = /obj/item/stack/rods - category = list("initial","Construction") - maxstack = 50 + materials = list(MAT_GLASS = 100) + build_path = /obj/item/light/tube + category = list("initial", "Construction") + +/datum/design/light_bulb + name = "Light Bulb" + id = "light_bulb" + build_type = AUTOLATHE + materials = list(MAT_GLASS = 100) + build_path = /obj/item/light/bulb + category = list("initial", "Construction") + +/datum/design/camera_assembly + name = "Camera Assembly" + id = "camera_assembly" + build_type = AUTOLATHE + materials = list(MAT_METAL = 400, MAT_GLASS = 250) + build_path = /obj/item/wallframe/camera + category = list("initial", "Construction") + +/datum/design/newscaster_frame + name = "Newscaster Frame" + id = "newscaster_frame" + build_type = AUTOLATHE + materials = list(MAT_METAL = 14000, MAT_GLASS = 8000) + build_path = /obj/item/wallframe/newscaster + category = list("initial", "Construction") + +/datum/design/turret_control_frame + name = "Turret Control Frame" + id = "turret_control" + build_type = AUTOLATHE + materials = list(MAT_METAL = 12000) + build_path = /obj/item/wallframe/turret_control + category = list("initial", "Construction") + +/datum/design/conveyor_belt + name = "Conveyor Belt" + id = "conveyor_belt" + build_type = AUTOLATHE + materials = list(MAT_METAL = 5000) + build_path = /obj/item/conveyor_construct + category = list("initial", "Construction") + +/datum/design/conveyor_switch + name = "Conveyor Belt Switch" + id = "conveyor_switch" + build_type = AUTOLATHE + materials = list(MAT_METAL = 450, MAT_GLASS = 190) + build_path = /obj/item/conveyor_switch_construct + category = list("initial", "Construction") /datum/design/rcd_ammo name = "Compressed Matter Cartridge" @@ -260,6 +327,46 @@ build_path = /obj/item/rcd_ammo category = list("initial","Construction") +///////////// +////T-Comms// +///////////// + +/datum/design/signaler + name = "Remote Signaling Device" + id = "signaler" + build_type = AUTOLATHE + materials = list(MAT_METAL = 400, MAT_GLASS = 120) + build_path = /obj/item/assembly/signaler + category = list("initial", "T-Comm") + +/datum/design/radio_headset + name = "Radio Headset" + id = "radio_headset" + build_type = AUTOLATHE + materials = list(MAT_METAL = 75) + build_path = /obj/item/radio/headset + category = list("initial", "T-Comm") + +/datum/design/bounced_radio + name = "Station Bounced Radio" + id = "bounced_radio" + build_type = AUTOLATHE + materials = list(MAT_METAL = 75, MAT_GLASS = 25) + build_path = /obj/item/radio/off + category = list("initial", "T-Comm") + +/datum/design/intercom_frame + name = "Intercom Frame" + id = "intercom_frame" + build_type = AUTOLATHE + materials = list(MAT_METAL = 75, MAT_GLASS = 25) + build_path = /obj/item/wallframe/intercom + category = list("initial", "T-Comm") + +//////////////// +////Dinnerware// +//////////////// + /datum/design/kitchen_knife name = "Kitchen Knife" id = "kitchen_knife" @@ -316,53 +423,37 @@ build_path = /obj/item/reagent_containers/food/drinks/shaker category = list("initial","Dinnerware") -/datum/design/cultivator - name = "Cultivator" - id = "cultivator" - build_type = AUTOLATHE - materials = list(MAT_METAL=50) - build_path = /obj/item/cultivator - category = list("initial","Misc") +///////////// +////Secgear// +///////////// -/datum/design/plant_analyzer - name = "Plant Analyzer" - id = "plant_analyzer" +/datum/design/beanbag_slug + name = "Beanbag Slug" + id = "beanbag_slug" build_type = AUTOLATHE - materials = list(MAT_METAL = 30, MAT_GLASS = 20) - build_path = /obj/item/plant_analyzer - category = list("initial","Misc") + materials = list(MAT_METAL = 250) + build_path = /obj/item/ammo_casing/shotgun/beanbag + category = list("initial", "Security") -/datum/design/shovel - name = "Shovel" - id = "shovel" +/datum/design/rubbershot + name = "Rubber Shot" + id = "rubber_shot" build_type = AUTOLATHE - materials = list(MAT_METAL = 50) - build_path = /obj/item/shovel - category = list("initial","Misc") + materials = list(MAT_METAL = 4000) + build_path = /obj/item/ammo_casing/shotgun/rubbershot + category = list("initial", "Security") -/datum/design/spade - name = "Spade" - id = "spade" +/datum/design/c38 + name = "Speed Loader (.38 rubber)" + id = "c38" build_type = AUTOLATHE - materials = list(MAT_METAL = 50) - build_path = /obj/item/shovel/spade - category = list("initial","Misc") + materials = list(MAT_METAL = 20000) + build_path = /obj/item/ammo_box/c38 + category = list("initial", "Security") -/datum/design/hatchet - name = "Hatchet" - id = "hatchet" - build_type = AUTOLATHE - materials = list(MAT_METAL = 15000) - build_path = /obj/item/hatchet - category = list("initial","Misc") - -/datum/design/foilhat - name = "Tinfoil Hat" - id = "tinfoil_hat" - build_type = AUTOLATHE - materials = list(MAT_METAL = 5500) - build_path = /obj/item/clothing/head/foilhat - category = list("hacked", "Misc") +//////////// +///Medical// +//////////// /datum/design/scalpel name = "Scalpel" @@ -445,29 +536,105 @@ build_path = /obj/item/storage/pill_bottle category = list("initial", "Medical") -/datum/design/beanbag_slug - name = "Beanbag Slug" - id = "beanbag_slug" +/datum/design/syringe + name = "Syringe" + id = "syringe" build_type = AUTOLATHE - materials = list(MAT_METAL = 250) - build_path = /obj/item/ammo_casing/shotgun/beanbag - category = list("initial", "Security") + materials = list(MAT_METAL = 10, MAT_GLASS = 20) + build_path = /obj/item/reagent_containers/syringe + category = list("initial", "Medical") -/datum/design/rubbershot - name = "Rubber Shot" - id = "rubber_shot" +/datum/design/health_sensor + name = "Health Sensor" + id = "health_sensor" build_type = AUTOLATHE - materials = list(MAT_METAL = 4000) - build_path = /obj/item/ammo_casing/shotgun/rubbershot - category = list("initial", "Security") + materials = list(MAT_METAL = 800, MAT_GLASS = 200) + build_path = /obj/item/assembly/health + category = list("initial", "Medical") -/datum/design/c38 - name = "Speed Loader (.38 rubber)" - id = "c38" +///////////// +////MISC///// +///////////// + +/datum/design/camera + name = "Camera" + id = "camera" build_type = AUTOLATHE - materials = list(MAT_METAL = 20000) - build_path = /obj/item/ammo_box/c38 - category = list("initial", "Security") + materials = list(MAT_METAL = 50, MAT_GLASS = 100) + build_path = /obj/item/camera + category = list("initial", "Misc") + +/datum/design/camera_film + name = "Camera Film Cartridge" + id = "camera_film" + build_type = AUTOLATHE + materials = list(MAT_METAL = 10, MAT_GLASS = 10) + build_path = /obj/item/camera_film + category = list("initial", "Misc") + +/datum/design/earmuffs + name = "Earmuffs" + id = "earmuffs" + build_type = AUTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 500) + build_path = /obj/item/clothing/ears/earmuffs + category = list("initial", "Misc") + +/datum/design/pipe_painter + name = "Pipe Painter" + id = "pipe_painter" + build_type = AUTOLATHE + materials = list(MAT_METAL = 5000, MAT_GLASS = 2000) + build_path = /obj/item/pipe_painter + category = list("initial", "Misc") + +/datum/design/airlock_painter + name = "Airlock Painter" + id = "airlock_painter" + build_type = AUTOLATHE + materials = list(MAT_METAL = 50, MAT_GLASS = 50) + build_path = /obj/item/airlock_painter + category = list("initial", "Misc") + +/datum/design/cultivator + name = "Cultivator" + id = "cultivator" + build_type = AUTOLATHE + materials = list(MAT_METAL=50) + build_path = /obj/item/cultivator + category = list("initial","Misc") + +/datum/design/plant_analyzer + name = "Plant Analyzer" + id = "plant_analyzer" + build_type = AUTOLATHE + materials = list(MAT_METAL = 30, MAT_GLASS = 20) + build_path = /obj/item/plant_analyzer + category = list("initial","Misc") + +/datum/design/shovel + name = "Shovel" + id = "shovel" + build_type = AUTOLATHE + materials = list(MAT_METAL = 50) + build_path = /obj/item/shovel + category = list("initial","Misc") + +/datum/design/spade + name = "Spade" + id = "spade" + build_type = AUTOLATHE + materials = list(MAT_METAL = 50) + build_path = /obj/item/shovel/spade + category = list("initial","Misc") + +/datum/design/hatchet + name = "Hatchet" + id = "hatchet" + build_type = AUTOLATHE + materials = list(MAT_METAL = 15000) + build_path = /obj/item/hatchet + category = list("initial","Misc") /datum/design/recorder name = "Universal Recorder" @@ -493,38 +660,6 @@ build_path = /obj/item/assembly/igniter category = list("initial", "Misc") -/datum/design/signaler - name = "Remote Signaling Device" - id = "signaler" - build_type = AUTOLATHE - materials = list(MAT_METAL = 400, MAT_GLASS = 120) - build_path = /obj/item/assembly/signaler - category = list("initial", "T-Comm") - -/datum/design/radio_headset - name = "Radio Headset" - id = "radio_headset" - build_type = AUTOLATHE - materials = list(MAT_METAL = 75) - build_path = /obj/item/radio/headset - category = list("initial", "T-Comm") - -/datum/design/bounced_radio - name = "Station Bounced Radio" - id = "bounced_radio" - build_type = AUTOLATHE - materials = list(MAT_METAL = 75, MAT_GLASS = 25) - build_path = /obj/item/radio/off - category = list("initial", "T-Comm") - -/datum/design/intercom_frame - name = "Intercom Frame" - id = "intercom_frame" - build_type = AUTOLATHE - materials = list(MAT_METAL = 75, MAT_GLASS = 25) - build_path = /obj/item/wallframe/intercom - category = list("initial", "T-Comm") - /datum/design/infrared_emitter name = "Infrared Emitter" id = "infrared_emitter" @@ -533,14 +668,6 @@ build_path = /obj/item/assembly/infra category = list("initial", "Misc") -/datum/design/health_sensor - name = "Health Sensor" - id = "health_sensor" - build_type = AUTOLATHE - materials = list(MAT_METAL = 800, MAT_GLASS = 200) - build_path = /obj/item/assembly/health - category = list("initial", "Medical") - /datum/design/timer name = "Timer" id = "timer" @@ -557,46 +684,6 @@ build_path = /obj/item/assembly/voice category = list("initial", "Misc") -/datum/design/light_tube - name = "Light Tube" - id = "light_tube" - build_type = AUTOLATHE - materials = list(MAT_GLASS = 100) - build_path = /obj/item/light/tube - category = list("initial", "Construction") - -/datum/design/light_bulb - name = "Light Bulb" - id = "light_bulb" - build_type = AUTOLATHE - materials = list(MAT_GLASS = 100) - build_path = /obj/item/light/bulb - category = list("initial", "Construction") - -/datum/design/camera_assembly - name = "Camera Assembly" - id = "camera_assembly" - build_type = AUTOLATHE - materials = list(MAT_METAL = 400, MAT_GLASS = 250) - build_path = /obj/item/wallframe/camera - category = list("initial", "Construction") - -/datum/design/newscaster_frame - name = "Newscaster Frame" - id = "newscaster_frame" - build_type = AUTOLATHE - materials = list(MAT_METAL = 14000, MAT_GLASS = 8000) - build_path = /obj/item/wallframe/newscaster - category = list("initial", "Construction") - -/datum/design/syringe - name = "Syringe" - id = "syringe" - build_type = AUTOLATHE - materials = list(MAT_METAL = 10, MAT_GLASS = 20) - build_path = /obj/item/reagent_containers/syringe - category = list("initial", "Medical") - /datum/design/prox_sensor name = "Proximity Sensor" id = "prox_sensor" @@ -613,7 +700,67 @@ build_path = /obj/item/ammo_box/foambox category = list("initial", "Misc") -//hacked autolathe recipes +/datum/design/laptop + name = "Laptop Frame" + id = "laptop" + build_type = AUTOLATHE + materials = list(MAT_METAL = 10000, MAT_GLASS = 1000) + build_path = /obj/item/modular_computer/laptop/buildable + category = list("initial","Misc") + +/datum/design/tablet + name = "Tablet Frame" + id = "tablet" + build_type = AUTOLATHE + materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) + build_path = /obj/item/modular_computer/tablet + category = list("initial","Misc") + +/datum/design/slime_scanner + name = "Slime Scanner" + id = "slime_scanner" + build_type = AUTOLATHE + materials = list(MAT_METAL = 300, MAT_GLASS = 200) + build_path = /obj/item/slime_scanner + category = list("initial", "Misc") + +/datum/design/pet_carrier + name = "Pet Carrier" + id = "pet_carrier" + build_type = AUTOLATHE + materials = list(MAT_METAL = 7500, MAT_GLASS = 100) + build_path = /obj/item/pet_carrier + category = list("initial", "Misc") + +/datum/design/packageWrap + name = "Package Wrapping" + id = "packagewrap" + build_type = AUTOLATHE + materials = list(MAT_METAL = 200, MAT_GLASS = 200) + build_path = /obj/item/stack/packageWrap + category = list("initial", "Misc") + maxstack = 30 + +/datum/design/holodisk + name = "Holodisk" + id = "holodisk" + build_type = AUTOLATHE + materials = list(MAT_METAL = 100, MAT_GLASS = 100) + build_path = /obj/item/disk/holodisk + category = list("initial", "Misc") + +///////////////// +///Hacked Gear // +///////////////// + +/datum/design/large_welding_tool + name = "Industrial Welding Tool" + id = "large_welding_tool" + build_type = AUTOLATHE + materials = list(MAT_METAL = 70, MAT_GLASS = 60) + build_path = /obj/item/weldingtool/largetank + category = list("hacked", "Tools") + /datum/design/flamethrower name = "Flamethrower" id = "flamethrower" @@ -638,22 +785,6 @@ build_path = /obj/item/pipe_dispenser category = list("hacked", "Construction") -/datum/design/electropack - name = "Electropack" - id = "electropack" - build_type = AUTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 2500) - build_path = /obj/item/electropack - category = list("hacked", "Tools") - -/datum/design/large_welding_tool - name = "Industrial Welding Tool" - id = "large_welding_tool" - build_type = AUTOLATHE - materials = list(MAT_METAL = 70, MAT_GLASS = 60) - build_path = /obj/item/weldingtool/largetank - category = list("hacked", "Tools") - /datum/design/handcuffs name = "Handcuffs" id = "handcuffs" @@ -750,6 +881,14 @@ build_path = /obj/item/ammo_box/c9mm category = list("hacked", "Security") +/datum/design/electropack + name = "Electropack" + id = "electropack" + build_type = AUTOLATHE + materials = list(MAT_METAL = 10000, MAT_GLASS = 2500) + build_path = /obj/item/electropack + category = list("hacked", "Security") + /datum/design/cleaver name = "Butcher's Cleaver" id = "cleaver" @@ -758,36 +897,13 @@ build_path = /obj/item/kitchen/knife/butcher category = list("hacked", "Dinnerware") -/datum/design/spraycan - name = "Spraycan" - id = "spraycan" +/datum/design/foilhat + name = "Tinfoil Hat" + id = "tinfoil_hat" build_type = AUTOLATHE - materials = list(MAT_METAL = 100, MAT_GLASS = 100) - build_path = /obj/item/toy/crayon/spraycan - category = list("initial", "Tools") - -/datum/design/desttagger - name = "Destination Tagger" - id = "desttagger" - build_type = AUTOLATHE - materials = list(MAT_METAL = 250, MAT_GLASS = 125) - build_path = /obj/item/destTagger - category = list("initial", "Electronics") - -/datum/design/handlabeler - name = "Hand Labeler" - id = "handlabel" - build_type = AUTOLATHE - materials = list(MAT_METAL = 150, MAT_GLASS = 125) - build_path = /obj/item/hand_labeler - category = list("initial", "Electronics") - -/datum/design/geiger - name = "Geiger Counter" - id = "geigercounter" - build_type = AUTOLATHE - materials = list(MAT_METAL = 150, MAT_GLASS = 150) - build_path = /obj/item/geiger_counter + materials = list(MAT_METAL = 5500) + build_path = /obj/item/clothing/head/foilhat + category = list("hacked", "Misc") category = list("initial", "Tools") /datum/design/turret_control_frame From a703b8b85f9e8f42eca3dba65c826e7430329c0c Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 10 May 2019 16:30:01 -0400 Subject: [PATCH 011/276] Yep this works 100% no errors at all! --- .../autolathe_designs_construction.dm | 108 ++++++++ .../autolathe_designs_electronics.dm | 76 ++++++ ...utolathe_designs_medical_and_dinnerware.dm | 163 ++++++++++++ .../autolathe_designs_sec_and_hacked.dm | 186 +++++++++++++ .../autolathe_designs_tcomms_and_misc.dm | 251 ++++++++++++++++++ .../autolathe_designs_tools.dm | 150 +++++++++++ 6 files changed, 934 insertions(+) create mode 100644 code/modules/research/designs/autolathe_desings/autolathe_designs_construction.dm create mode 100644 code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm create mode 100644 code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm create mode 100644 code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm create mode 100644 code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm create mode 100644 code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_construction.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_construction.dm new file mode 100644 index 0000000000..1ae1d3813b --- /dev/null +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_construction.dm @@ -0,0 +1,108 @@ +/////////////////////////////////// +//////////Autolathe Designs /////// +/////////////////////////////////// + + +//////////////// +///Construction// +//////////////// + +/datum/design/rods + name = "Metal Rod" + id = "rods" + build_type = AUTOLATHE + materials = list(MAT_METAL = 1000) + build_path = /obj/item/stack/rods + category = list("initial","Construction") + maxstack = 50 + +/datum/design/metal + name = "Metal" + id = "metal" + build_type = AUTOLATHE + materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT) + build_path = /obj/item/stack/sheet/metal + category = list("initial","Construction") + maxstack = 50 + +/datum/design/glass + name = "Glass" + id = "glass" + build_type = AUTOLATHE + materials = list(MAT_GLASS = MINERAL_MATERIAL_AMOUNT) + build_path = /obj/item/stack/sheet/glass + category = list("initial","Construction") + maxstack = 50 + +/datum/design/rglass + name = "Reinforced Glass" + id = "rglass" + build_type = AUTOLATHE | SMELTER | PROTOLATHE + materials = list(MAT_METAL = 1000, MAT_GLASS = MINERAL_MATERIAL_AMOUNT) + build_path = /obj/item/stack/sheet/rglass + category = list("initial","Construction","Stock Parts") + maxstack = 50 + +/datum/design/light_tube + name = "Light Tube" + id = "light_tube" + build_type = AUTOLATHE + materials = list(MAT_GLASS = 100) + build_path = /obj/item/light/tube + category = list("initial", "Construction") + +/datum/design/light_bulb + name = "Light Bulb" + id = "light_bulb" + build_type = AUTOLATHE + materials = list(MAT_GLASS = 100) + build_path = /obj/item/light/bulb + category = list("initial", "Construction") + +/datum/design/camera_assembly + name = "Camera Assembly" + id = "camera_assembly" + build_type = AUTOLATHE + materials = list(MAT_METAL = 400, MAT_GLASS = 250) + build_path = /obj/item/wallframe/camera + category = list("initial", "Construction") + +/datum/design/newscaster_frame + name = "Newscaster Frame" + id = "newscaster_frame" + build_type = AUTOLATHE + materials = list(MAT_METAL = 14000, MAT_GLASS = 8000) + build_path = /obj/item/wallframe/newscaster + category = list("initial", "Construction") + +/datum/design/turret_control_frame + name = "Turret Control Frame" + id = "turret_control" + build_type = AUTOLATHE + materials = list(MAT_METAL = 12000) + build_path = /obj/item/wallframe/turret_control + category = list("initial", "Construction") + +/datum/design/conveyor_belt + name = "Conveyor Belt" + id = "conveyor_belt" + build_type = AUTOLATHE + materials = list(MAT_METAL = 5000) + build_path = /obj/item/conveyor_construct + category = list("initial", "Construction") + +/datum/design/conveyor_switch + name = "Conveyor Belt Switch" + id = "conveyor_switch" + build_type = AUTOLATHE + materials = list(MAT_METAL = 450, MAT_GLASS = 190) + build_path = /obj/item/conveyor_switch_construct + category = list("initial", "Construction") + +/datum/design/rcd_ammo + name = "Compressed Matter Cartridge" + id = "rcd_ammo" + build_type = AUTOLATHE + materials = list(MAT_METAL = 12000, MAT_GLASS=8000) + build_path = /obj/item/rcd_ammo + category = list("initial","Construction") diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm new file mode 100644 index 0000000000..5b247efe74 --- /dev/null +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_electronics.dm @@ -0,0 +1,76 @@ +/////////////////////////////////// +//////////Autolathe Designs /////// +/////////////////////////////////// + +//////////////// +///Electronics// +//////////////// + +/datum/design/apc_board + name = "APC Module" + id = "power control" + build_type = AUTOLATHE | PROTOLATHE + materials = list(MAT_METAL = 100, MAT_GLASS = 100) + build_path = /obj/item/electronics/apc + category = list("initial", "Electronics") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/airlock_board + name = "Airlock Electronics" + id = "airlock_board" + build_type = AUTOLATHE | PROTOLATHE + materials = list(MAT_METAL = 50, MAT_GLASS = 50) + build_path = /obj/item/electronics/airlock + category = list("initial", "Electronics") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/firelock_board + name = "Firelock Circuitry" + id = "firelock_board" + build_type = AUTOLATHE | PROTOLATHE + materials = list(MAT_METAL = 50, MAT_GLASS = 50) + build_path = /obj/item/electronics/firelock + category = list("initial", "Electronics") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/airalarm_electronics + name = "Air Alarm Electronics" + id = "airalarm_electronics" + build_type = AUTOLATHE | PROTOLATHE + materials = list(MAT_METAL = 50, MAT_GLASS = 50) + build_path = /obj/item/electronics/airalarm + category = list("initial", "Electronics") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/firealarm_electronics + name = "Fire Alarm Electronics" + id = "firealarm_electronics" + build_type = AUTOLATHE | PROTOLATHE + materials = list(MAT_METAL = 50, MAT_GLASS = 50) + build_path = /obj/item/electronics/firealarm + category = list("initial", "Electronics") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/desttagger + name = "Destination Tagger" + id = "desttagger" + build_type = AUTOLATHE + materials = list(MAT_METAL = 250, MAT_GLASS = 125) + build_path = /obj/item/destTagger + category = list("initial", "Electronics") + +/datum/design/handlabeler + name = "Hand Labeler" + id = "handlabel" + build_type = AUTOLATHE + materials = list(MAT_METAL = 150, MAT_GLASS = 125) + build_path = /obj/item/hand_labeler + category = list("initial", "Electronics") + +/datum/design/miniature_power_cell + name = "Light Fixture Battery" + id = "miniature_power_cell" + build_type = AUTOLATHE + materials = list(MAT_GLASS = 20) + build_path = /obj/item/stock_parts/cell/emergency_light + category = list("initial", "Electronics") \ No newline at end of file diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm new file mode 100644 index 0000000000..f88cde5919 --- /dev/null +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm @@ -0,0 +1,163 @@ +/////////////////////////////////// +//////////Autolathe Designs /////// +/////////////////////////////////// +//////////////// +////Dinnerware// +//////////////// + +/datum/design/kitchen_knife + name = "Kitchen Knife" + id = "kitchen_knife" + build_type = AUTOLATHE + materials = list(MAT_METAL = 12000) + build_path = /obj/item/kitchen/knife + category = list("initial","Dinnerware") + +/datum/design/fork + name = "Fork" + id = "fork" + build_type = AUTOLATHE + materials = list(MAT_METAL = 80) + build_path = /obj/item/kitchen/fork + category = list("initial","Dinnerware") + +/datum/design/tray + name = "Tray" + id = "tray" + build_type = AUTOLATHE + materials = list(MAT_METAL = 3000) + build_path = /obj/item/storage/bag/tray + category = list("initial","Dinnerware") + +/datum/design/bowl + name = "Bowl" + id = "bowl" + build_type = AUTOLATHE + materials = list(MAT_GLASS = 500) + build_path = /obj/item/reagent_containers/glass/bowl + category = list("initial","Dinnerware") + +/datum/design/drinking_glass + name = "Drinking Glass" + id = "drinking_glass" + build_type = AUTOLATHE + materials = list(MAT_GLASS = 500) + build_path = /obj/item/reagent_containers/food/drinks/drinkingglass + category = list("initial","Dinnerware") + +/datum/design/shot_glass + name = "Shot Glass" + id = "shot_glass" + build_type = AUTOLATHE + materials = list(MAT_GLASS = 100) + build_path = /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass + category = list("initial","Dinnerware") + +/datum/design/shaker + name = "Shaker" + id = "shaker" + build_type = AUTOLATHE + materials = list(MAT_METAL = 1500) + build_path = /obj/item/reagent_containers/food/drinks/shaker + category = list("initial","Dinnerware") + +//////////// +///Medical// +//////////// + +/datum/design/scalpel + name = "Scalpel" + id = "scalpel" + build_type = AUTOLATHE + materials = list(MAT_METAL = 4000, MAT_GLASS = 1000) + build_path = /obj/item/scalpel + category = list("initial", "Medical") + +/datum/design/circular_saw + name = "Circular Saw" + id = "circular_saw" + build_type = AUTOLATHE + materials = list(MAT_METAL = 10000, MAT_GLASS = 6000) + build_path = /obj/item/circular_saw + category = list("initial", "Medical") + +/datum/design/surgicaldrill + name = "Surgical Drill" + id = "surgicaldrill" + build_type = AUTOLATHE + materials = list(MAT_METAL = 10000, MAT_GLASS = 6000) + build_path = /obj/item/surgicaldrill + category = list("initial", "Medical") + +/datum/design/retractor + name = "Retractor" + id = "retractor" + build_type = AUTOLATHE + materials = list(MAT_METAL = 6000, MAT_GLASS = 3000) + build_path = /obj/item/retractor + category = list("initial", "Medical") + +/datum/design/cautery + name = "Cautery" + id = "cautery" + build_type = AUTOLATHE + materials = list(MAT_METAL = 2500, MAT_GLASS = 750) + build_path = /obj/item/cautery + category = list("initial", "Medical") + +/datum/design/hemostat + name = "Hemostat" + id = "hemostat" + build_type = AUTOLATHE + materials = list(MAT_METAL = 5000, MAT_GLASS = 2500) + build_path = /obj/item/hemostat + category = list("initial", "Medical") + +/datum/design/beaker + name = "Beaker" + id = "beaker" + build_type = AUTOLATHE + materials = list(MAT_GLASS = 500) + build_path = /obj/item/reagent_containers/glass/beaker + category = list("initial", "Medical") + +/datum/design/large_beaker + name = "Large Beaker" + id = "large_beaker" + build_type = AUTOLATHE + materials = list(MAT_GLASS = 2500) + build_path = /obj/item/reagent_containers/glass/beaker/large + category = list("initial", "Medical") + +/datum/design/healthanalyzer + name = "Health Analyzer" + id = "healthanalyzer" + build_type = AUTOLATHE | PROTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 50) + build_path = /obj/item/healthanalyzer + category = list("initial", "Medical") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + +/datum/design/pillbottle + name = "Pill Bottle" + id = "pillbottle" + build_type = AUTOLATHE + materials = list(MAT_METAL = 20, MAT_GLASS = 100) + build_path = /obj/item/storage/pill_bottle + category = list("initial", "Medical") + +/datum/design/syringe + name = "Syringe" + id = "syringe" + build_type = AUTOLATHE + materials = list(MAT_METAL = 10, MAT_GLASS = 20) + build_path = /obj/item/reagent_containers/syringe + category = list("initial", "Medical") + +/datum/design/health_sensor + name = "Health Sensor" + id = "health_sensor" + build_type = AUTOLATHE + materials = list(MAT_METAL = 800, MAT_GLASS = 200) + build_path = /obj/item/assembly/health + category = list("initial", "Medical") \ No newline at end of file diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm new file mode 100644 index 0000000000..e5e3a6bb4f --- /dev/null +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_sec_and_hacked.dm @@ -0,0 +1,186 @@ +/////////////////////////////////// +//////////Autolathe Designs /////// +/////////////////////////////////// +///////////// +////Secgear// +///////////// + +/datum/design/beanbag_slug + name = "Beanbag Slug" + id = "beanbag_slug" + build_type = AUTOLATHE + materials = list(MAT_METAL = 250) + build_path = /obj/item/ammo_casing/shotgun/beanbag + category = list("initial", "Security") + +/datum/design/rubbershot + name = "Rubber Shot" + id = "rubber_shot" + build_type = AUTOLATHE + materials = list(MAT_METAL = 4000) + build_path = /obj/item/ammo_casing/shotgun/rubbershot + category = list("initial", "Security") + +/datum/design/c38 + name = "Speed Loader (.38 rubber)" + id = "c38" + build_type = AUTOLATHE + materials = list(MAT_METAL = 20000) + build_path = /obj/item/ammo_box/c38 + category = list("initial", "Security") + +///////////////// +///Hacked Gear // +///////////////// + +/datum/design/large_welding_tool + name = "Industrial Welding Tool" + id = "large_welding_tool" + build_type = AUTOLATHE + materials = list(MAT_METAL = 70, MAT_GLASS = 60) + build_path = /obj/item/weldingtool/largetank + category = list("hacked", "Tools") + +/datum/design/flamethrower + name = "Flamethrower" + id = "flamethrower" + build_type = AUTOLATHE + materials = list(MAT_METAL = 500) + build_path = /obj/item/flamethrower/full + category = list("hacked", "Security") + +/datum/design/rcd + name = "Rapid Construction Device (RCD)" + id = "rcd" + build_type = AUTOLATHE + materials = list(MAT_METAL = 30000) + build_path = /obj/item/construction/rcd + category = list("hacked", "Construction") + +/datum/design/rpd + name = "Rapid Pipe Dispenser (RPD)" + id = "rpd" + build_type = AUTOLATHE + materials = list(MAT_METAL = 75000, MAT_GLASS = 37500) + build_path = /obj/item/pipe_dispenser + category = list("hacked", "Construction") + +/datum/design/handcuffs + name = "Handcuffs" + id = "handcuffs" + build_type = AUTOLATHE + materials = list(MAT_METAL = 500) + build_path = /obj/item/restraints/handcuffs + category = list("hacked", "Security") + +/datum/design/receiver + name = "Modular Receiver" + id = "receiver" + build_type = AUTOLATHE + materials = list(MAT_METAL = 15000) + build_path = /obj/item/weaponcrafting/receiver + category = list("hacked", "Security") + +/datum/design/shotgun_slug + name = "Shotgun Slug" + id = "shotgun_slug" + build_type = AUTOLATHE + materials = list(MAT_METAL = 4000) + build_path = /obj/item/ammo_casing/shotgun + category = list("hacked", "Security") + +/datum/design/buckshot_shell + name = "Buckshot Shell" + id = "buckshot_shell" + build_type = AUTOLATHE + materials = list(MAT_METAL = 4000) + build_path = /obj/item/ammo_casing/shotgun/buckshot + category = list("hacked", "Security") + +/datum/design/shotgun_dart + name = "Shotgun Dart" + id = "shotgun_dart" + build_type = AUTOLATHE + materials = list(MAT_METAL = 4000) + build_path = /obj/item/ammo_casing/shotgun/dart + category = list("hacked", "Security") + +/datum/design/incendiary_slug + name = "Incendiary Slug" + id = "incendiary_slug" + build_type = AUTOLATHE + materials = list(MAT_METAL = 4000) + build_path = /obj/item/ammo_casing/shotgun/incendiary + category = list("hacked", "Security") + +/datum/design/riot_dart + name = "Foam Riot Dart" + id = "riot_dart" + build_type = AUTOLATHE + materials = list(MAT_METAL = 1000) //Discount for making individually - no box = less metal! + build_path = /obj/item/ammo_casing/caseless/foam_dart/riot + category = list("hacked", "Security") + +/datum/design/riot_darts + name = "Foam Riot Dart Box" + id = "riot_darts" + build_type = AUTOLATHE + materials = list(MAT_METAL = 50000) //Comes with 40 darts + build_path = /obj/item/ammo_box/foambox/riot + category = list("hacked", "Security") + +/datum/design/a357 + name = "Speed Loader (.357)" + id = "a357" + build_type = AUTOLATHE + materials = list(MAT_METAL = 30000) + build_path = /obj/item/ammo_box/a357 + category = list("hacked", "Security") + +/datum/design/c10mm + name = "Ammo Box (10mm)" + id = "c10mm" + build_type = AUTOLATHE + materials = list(MAT_METAL = 30000) + build_path = /obj/item/ammo_box/c10mm + category = list("hacked", "Security") + +/datum/design/c45 + name = "Ammo Box (.45)" + id = "c45" + build_type = AUTOLATHE + materials = list(MAT_METAL = 30000) + build_path = /obj/item/ammo_box/c45 + category = list("hacked", "Security") + +/datum/design/c9mm + name = "Ammo Box (9mm)" + id = "c9mm" + build_type = AUTOLATHE + materials = list(MAT_METAL = 30000) + build_path = /obj/item/ammo_box/c9mm + category = list("hacked", "Security") + +/datum/design/electropack + name = "Electropack" + id = "electropack" + build_type = AUTOLATHE + materials = list(MAT_METAL = 10000, MAT_GLASS = 2500) + build_path = /obj/item/electropack + category = list("hacked", "Security") + +/datum/design/cleaver + name = "Butcher's Cleaver" + id = "cleaver" + build_type = AUTOLATHE + materials = list(MAT_METAL = 18000) + build_path = /obj/item/kitchen/knife/butcher + category = list("hacked", "Dinnerware") + +/datum/design/foilhat + name = "Tinfoil Hat" + id = "tinfoil_hat" + build_type = AUTOLATHE + materials = list(MAT_METAL = 5500) + build_path = /obj/item/clothing/head/foilhat + category = list("hacked", "Misc") \ No newline at end of file diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm new file mode 100644 index 0000000000..29d28b7132 --- /dev/null +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_tcomms_and_misc.dm @@ -0,0 +1,251 @@ +/////////////////////////////////// +//////////Autolathe Designs /////// +/////////////////////////////////// +///////////// +////T-Comms// +///////////// + +/datum/design/signaler + name = "Remote Signaling Device" + id = "signaler" + build_type = AUTOLATHE + materials = list(MAT_METAL = 400, MAT_GLASS = 120) + build_path = /obj/item/assembly/signaler + category = list("initial", "T-Comm") + +/datum/design/radio_headset + name = "Radio Headset" + id = "radio_headset" + build_type = AUTOLATHE + materials = list(MAT_METAL = 75) + build_path = /obj/item/radio/headset + category = list("initial", "T-Comm") + +/datum/design/bounced_radio + name = "Station Bounced Radio" + id = "bounced_radio" + build_type = AUTOLATHE + materials = list(MAT_METAL = 75, MAT_GLASS = 25) + build_path = /obj/item/radio/off + category = list("initial", "T-Comm") + +/datum/design/intercom_frame + name = "Intercom Frame" + id = "intercom_frame" + build_type = AUTOLATHE + materials = list(MAT_METAL = 75, MAT_GLASS = 25) + build_path = /obj/item/wallframe/intercom + category = list("initial", "T-Comm") + +///////////// +////MISC///// +///////////// + +/datum/design/camera + name = "Camera" + id = "camera" + build_type = AUTOLATHE + materials = list(MAT_METAL = 50, MAT_GLASS = 100) + build_path = /obj/item/camera + category = list("initial", "Misc") + +/datum/design/camera_film + name = "Camera Film Cartridge" + id = "camera_film" + build_type = AUTOLATHE + materials = list(MAT_METAL = 10, MAT_GLASS = 10) + build_path = /obj/item/camera_film + category = list("initial", "Misc") + +/datum/design/earmuffs + name = "Earmuffs" + id = "earmuffs" + build_type = AUTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 500) + build_path = /obj/item/clothing/ears/earmuffs + category = list("initial", "Misc") + +/datum/design/pipe_painter + name = "Pipe Painter" + id = "pipe_painter" + build_type = AUTOLATHE + materials = list(MAT_METAL = 5000, MAT_GLASS = 2000) + build_path = /obj/item/pipe_painter + category = list("initial", "Misc") + +/datum/design/airlock_painter + name = "Airlock Painter" + id = "airlock_painter" + build_type = AUTOLATHE + materials = list(MAT_METAL = 50, MAT_GLASS = 50) + build_path = /obj/item/airlock_painter + category = list("initial", "Misc") + +/datum/design/cultivator + name = "Cultivator" + id = "cultivator" + build_type = AUTOLATHE + materials = list(MAT_METAL=50) + build_path = /obj/item/cultivator + category = list("initial","Misc") + +/datum/design/plant_analyzer + name = "Plant Analyzer" + id = "plant_analyzer" + build_type = AUTOLATHE + materials = list(MAT_METAL = 30, MAT_GLASS = 20) + build_path = /obj/item/plant_analyzer + category = list("initial","Misc") + +/datum/design/shovel + name = "Shovel" + id = "shovel" + build_type = AUTOLATHE + materials = list(MAT_METAL = 50) + build_path = /obj/item/shovel + category = list("initial","Misc") + +/datum/design/spade + name = "Spade" + id = "spade" + build_type = AUTOLATHE + materials = list(MAT_METAL = 50) + build_path = /obj/item/shovel/spade + category = list("initial","Misc") + +/datum/design/hatchet + name = "Hatchet" + id = "hatchet" + build_type = AUTOLATHE + materials = list(MAT_METAL = 15000) + build_path = /obj/item/hatchet + category = list("initial","Misc") + +/datum/design/recorder + name = "Universal Recorder" + id = "recorder" + build_type = AUTOLATHE + materials = list(MAT_METAL = 60, MAT_GLASS = 30) + build_path = /obj/item/taperecorder/empty + category = list("initial", "Misc") + +/datum/design/tape + name = "Tape" + id = "tape" + build_type = AUTOLATHE + materials = list(MAT_METAL = 20, MAT_GLASS = 5) + build_path = /obj/item/tape/random + category = list("initial", "Misc") + +/datum/design/igniter + name = "Igniter" + id = "igniter" + build_type = AUTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 50) + build_path = /obj/item/assembly/igniter + category = list("initial", "Misc") + +/datum/design/infrared_emitter + name = "Infrared Emitter" + id = "infrared_emitter" + build_type = AUTOLATHE + materials = list(MAT_METAL = 1000, MAT_GLASS = 500) + build_path = /obj/item/assembly/infra + category = list("initial", "Misc") + +/datum/design/timer + name = "Timer" + id = "timer" + build_type = AUTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 50) + build_path = /obj/item/assembly/timer + category = list("initial", "Misc") + +/datum/design/voice_analyser + name = "Voice Analyser" + id = "voice_analyser" + build_type = AUTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 50) + build_path = /obj/item/assembly/voice + category = list("initial", "Misc") + +/datum/design/prox_sensor + name = "Proximity Sensor" + id = "prox_sensor" + build_type = AUTOLATHE + materials = list(MAT_METAL = 800, MAT_GLASS = 200) + build_path = /obj/item/assembly/prox_sensor + category = list("initial", "Misc") + +/datum/design/foam_dart + name = "Box of Foam Darts" + id = "foam_dart" + build_type = AUTOLATHE + materials = list(MAT_METAL = 500) + build_path = /obj/item/ammo_box/foambox + category = list("initial", "Misc") + +/datum/design/laptop + name = "Laptop Frame" + id = "laptop" + build_type = AUTOLATHE + materials = list(MAT_METAL = 10000, MAT_GLASS = 1000) + build_path = /obj/item/modular_computer/laptop/buildable + category = list("initial","Misc") + +/datum/design/tablet + name = "Tablet Frame" + id = "tablet" + build_type = AUTOLATHE + materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) + build_path = /obj/item/modular_computer/tablet + category = list("initial","Misc") + +/datum/design/slime_scanner + name = "Slime Scanner" + id = "slime_scanner" + build_type = AUTOLATHE + materials = list(MAT_METAL = 300, MAT_GLASS = 200) + build_path = /obj/item/slime_scanner + category = list("initial", "Misc") + +/datum/design/pet_carrier + name = "Pet Carrier" + id = "pet_carrier" + build_type = AUTOLATHE + materials = list(MAT_METAL = 7500, MAT_GLASS = 100) + build_path = /obj/item/pet_carrier + category = list("initial", "Misc") + +/datum/design/packageWrap + name = "Package Wrapping" + id = "packagewrap" + build_type = AUTOLATHE + materials = list(MAT_METAL = 200, MAT_GLASS = 200) + build_path = /obj/item/stack/packageWrap + category = list("initial", "Misc") + maxstack = 30 + +/datum/design/holodisk + name = "Holodisk" + id = "holodisk" + build_type = AUTOLATHE + materials = list(MAT_METAL = 100, MAT_GLASS = 100) + build_path = /obj/item/disk/holodisk + category = list("initial", "Misc") + +/datum/design/lock_collar + name = "Lockable Collar" + id = "lock_collar" + build_type = AUTOLATHE + materials = list(MAT_METAL = 1200, MAT_GLASS = 100) + build_path = /obj/item/clothing/neck/petcollar/locked + category = list("initial", "Misc") + +/datum/design/collar_key + name = "Collar Key" + id = "collar_key" + build_type = AUTOLATHE + materials = list(MAT_METAL = 300, MAT_GLASS = 150) + build_path = /obj/item/key/collar + category = list("initial", "Misc") \ No newline at end of file diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm new file mode 100644 index 0000000000..435af80aea --- /dev/null +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_tools.dm @@ -0,0 +1,150 @@ +/////////////////////////////////// +//////////Autolathe Designs /////// +/////////////////////////////////// +/////////// +///Tools // +/////////// +/datum/design/bucket + name = "Bucket" + id = "bucket" + build_type = AUTOLATHE + materials = list(MAT_METAL = 200) + build_path = /obj/item/reagent_containers/glass/bucket + category = list("initial","Tools") + +/datum/design/crowbar + name = "Pocket Crowbar" + id = "crowbar" + build_type = AUTOLATHE + materials = list(MAT_METAL = 50) + build_path = /obj/item/crowbar + category = list("initial","Tools") + +/datum/design/flashlight + name = "Flashlight" + id = "flashlight" + build_type = AUTOLATHE + materials = list(MAT_METAL = 50, MAT_GLASS = 20) + build_path = /obj/item/flashlight + category = list("initial","Tools") + +/datum/design/extinguisher + name = "Fire Extinguisher" + id = "extinguisher" + build_type = AUTOLATHE + materials = list(MAT_METAL = 90) + build_path = /obj/item/extinguisher + category = list("initial","Tools") + +/datum/design/pocketfireextinguisher + name = "Pocket Fire Extinguisher" + id = "pocketfireextinguisher" + build_type = AUTOLATHE + materials = list(MAT_METAL = 50, MAT_GLASS = 40) + build_path = /obj/item/extinguisher/mini + category = list("initial","Tools") + +/datum/design/multitool + name = "Multitool" + id = "multitool" + build_type = AUTOLATHE + materials = list(MAT_METAL = 50, MAT_GLASS = 20) + build_path = /obj/item/multitool + category = list("initial","Tools") + +/datum/design/analyzer + name = "Analyzer" + id = "analyzer" + build_type = AUTOLATHE + materials = list(MAT_METAL = 30, MAT_GLASS = 20) + build_path = /obj/item/analyzer + category = list("initial","Tools") + +/datum/design/tscanner + name = "T-Ray Scanner" + id = "tscanner" + build_type = AUTOLATHE + materials = list(MAT_METAL = 150) + build_path = /obj/item/t_scanner + category = list("initial","Tools") + +/datum/design/weldingtool + name = "Welding Tool" + id = "welding_tool" + build_type = AUTOLATHE + materials = list(MAT_METAL = 70, MAT_GLASS = 20) + build_path = /obj/item/weldingtool + category = list("initial","Tools") + +/datum/design/mini_weldingtool + name = "Emergency Welding Tool" + id = "mini_welding_tool" + build_type = AUTOLATHE + materials = list(MAT_METAL = 30, MAT_GLASS = 10) + build_path = /obj/item/weldingtool/mini + category = list("initial","Tools") + +/datum/design/screwdriver + name = "Screwdriver" + id = "screwdriver" + build_type = AUTOLATHE + materials = list(MAT_METAL = 75) + build_path = /obj/item/screwdriver + category = list("initial","Tools") + +/datum/design/wirecutters + name = "Wirecutters" + id = "wirecutters" + build_type = AUTOLATHE + materials = list(MAT_METAL = 80) + build_path = /obj/item/wirecutters + category = list("initial","Tools") + +/datum/design/wrench + name = "Wrench" + id = "wrench" + build_type = AUTOLATHE + materials = list(MAT_METAL = 150) + build_path = /obj/item/wrench + category = list("initial","Tools") + +/datum/design/welding_helmet + name = "Welding Helmet" + id = "welding_helmet" + build_type = AUTOLATHE + materials = list(MAT_METAL = 1750, MAT_GLASS = 400) + build_path = /obj/item/clothing/head/welding + category = list("initial","Tools") + +/datum/design/cable_coil + name = "Cable Coil" + id = "cable_coil" + build_type = AUTOLATHE + materials = list(MAT_METAL = 10, MAT_GLASS = 5) + build_path = /obj/item/stack/cable_coil/random + category = list("initial","Tools") + maxstack = 30 + +/datum/design/toolbox + name = "Toolbox" + id = "tool_box" + build_type = AUTOLATHE + materials = list(MAT_METAL = 500) + build_path = /obj/item/storage/toolbox + category = list("initial","Tools") + +/datum/design/spraycan + name = "Spraycan" + id = "spraycan" + build_type = AUTOLATHE + materials = list(MAT_METAL = 100, MAT_GLASS = 100) + build_path = /obj/item/toy/crayon/spraycan + category = list("initial", "Tools") + +/datum/design/geiger + name = "Geiger Counter" + id = "geigercounter" + build_type = AUTOLATHE + materials = list(MAT_METAL = 150, MAT_GLASS = 150) + build_path = /obj/item/geiger_counter + category = list("initial", "Tools") \ No newline at end of file From 288533045945b1911267adb4eb02fba5872e6809 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 10 May 2019 16:30:39 -0400 Subject: [PATCH 012/276] commit die --- .../research/designs/autolathe_designs.dm | 988 ------------------ 1 file changed, 988 deletions(-) delete mode 100644 code/modules/research/designs/autolathe_designs.dm diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm deleted file mode 100644 index 2834bbccef..0000000000 --- a/code/modules/research/designs/autolathe_designs.dm +++ /dev/null @@ -1,988 +0,0 @@ -/////////////////////////////////// -//////////Autolathe Designs /////// -/////////////////////////////////// - -/////////// -///Tools // -/////////// -/datum/design/bucket - name = "Bucket" - id = "bucket" - build_type = AUTOLATHE - materials = list(MAT_METAL = 200) - build_path = /obj/item/reagent_containers/glass/bucket - category = list("initial","Tools") - -/datum/design/crowbar - name = "Pocket Crowbar" - id = "crowbar" - build_type = AUTOLATHE - materials = list(MAT_METAL = 50) - build_path = /obj/item/crowbar - category = list("initial","Tools") - -/datum/design/flashlight - name = "Flashlight" - id = "flashlight" - build_type = AUTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 20) - build_path = /obj/item/flashlight - category = list("initial","Tools") - -/datum/design/extinguisher - name = "Fire Extinguisher" - id = "extinguisher" - build_type = AUTOLATHE - materials = list(MAT_METAL = 90) - build_path = /obj/item/extinguisher - category = list("initial","Tools") - -/datum/design/pocketfireextinguisher - name = "Pocket Fire Extinguisher" - id = "pocketfireextinguisher" - build_type = AUTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 40) - build_path = /obj/item/extinguisher/mini - category = list("initial","Tools") - -/datum/design/multitool - name = "Multitool" - id = "multitool" - build_type = AUTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 20) - build_path = /obj/item/multitool - category = list("initial","Tools") - -/datum/design/analyzer - name = "Analyzer" - id = "analyzer" - build_type = AUTOLATHE - materials = list(MAT_METAL = 30, MAT_GLASS = 20) - build_path = /obj/item/analyzer - category = list("initial","Tools") - -/datum/design/tscanner - name = "T-Ray Scanner" - id = "tscanner" - build_type = AUTOLATHE - materials = list(MAT_METAL = 150) - build_path = /obj/item/t_scanner - category = list("initial","Tools") - -/datum/design/weldingtool - name = "Welding Tool" - id = "welding_tool" - build_type = AUTOLATHE - materials = list(MAT_METAL = 70, MAT_GLASS = 20) - build_path = /obj/item/weldingtool - category = list("initial","Tools") - -/datum/design/mini_weldingtool - name = "Emergency Welding Tool" - id = "mini_welding_tool" - build_type = AUTOLATHE - materials = list(MAT_METAL = 30, MAT_GLASS = 10) - build_path = /obj/item/weldingtool/mini - category = list("initial","Tools") - -/datum/design/screwdriver - name = "Screwdriver" - id = "screwdriver" - build_type = AUTOLATHE - materials = list(MAT_METAL = 75) - build_path = /obj/item/screwdriver - category = list("initial","Tools") - -/datum/design/wirecutters - name = "Wirecutters" - id = "wirecutters" - build_type = AUTOLATHE - materials = list(MAT_METAL = 80) - build_path = /obj/item/wirecutters - category = list("initial","Tools") - -/datum/design/wrench - name = "Wrench" - id = "wrench" - build_type = AUTOLATHE - materials = list(MAT_METAL = 150) - build_path = /obj/item/wrench - category = list("initial","Tools") - -/datum/design/welding_helmet - name = "Welding Helmet" - id = "welding_helmet" - build_type = AUTOLATHE - materials = list(MAT_METAL = 1750, MAT_GLASS = 400) - build_path = /obj/item/clothing/head/welding - category = list("initial","Tools") - -/datum/design/cable_coil - name = "Cable Coil" - id = "cable_coil" - build_type = AUTOLATHE - materials = list(MAT_METAL = 10, MAT_GLASS = 5) - build_path = /obj/item/stack/cable_coil/random - category = list("initial","Tools") - maxstack = 30 - -/datum/design/toolbox - name = "Toolbox" - id = "tool_box" - build_type = AUTOLATHE - materials = list(MAT_METAL = 500) - build_path = /obj/item/storage/toolbox - category = list("initial","Tools") - -/datum/design/spraycan - name = "Spraycan" - id = "spraycan" - build_type = AUTOLATHE - materials = list(MAT_METAL = 100, MAT_GLASS = 100) - build_path = /obj/item/toy/crayon/spraycan - category = list("initial", "Tools") - -/datum/design/geiger - name = "Geiger Counter" - id = "geigercounter" - build_type = AUTOLATHE - materials = list(MAT_METAL = 150, MAT_GLASS = 150) - build_path = /obj/item/geiger_counter - category = list("initial", "Tools") - -//////////////// -///Electronics// -//////////////// - -/datum/design/apc_board - name = "APC Module" - id = "power control" - build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 100, MAT_GLASS = 100) - build_path = /obj/item/electronics/apc - category = list("initial", "Electronics") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/airlock_board - name = "Airlock Electronics" - id = "airlock_board" - build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) - build_path = /obj/item/electronics/airlock - category = list("initial", "Electronics") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/firelock_board - name = "Firelock Circuitry" - id = "firelock_board" - build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) - build_path = /obj/item/electronics/firelock - category = list("initial", "Electronics") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/airalarm_electronics - name = "Air Alarm Electronics" - id = "airalarm_electronics" - build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) - build_path = /obj/item/electronics/airalarm - category = list("initial", "Electronics") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/firealarm_electronics - name = "Fire Alarm Electronics" - id = "firealarm_electronics" - build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) - build_path = /obj/item/electronics/firealarm - category = list("initial", "Electronics") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/desttagger - name = "Destination Tagger" - id = "desttagger" - build_type = AUTOLATHE - materials = list(MAT_METAL = 250, MAT_GLASS = 125) - build_path = /obj/item/destTagger - category = list("initial", "Electronics") - -/datum/design/handlabeler - name = "Hand Labeler" - id = "handlabel" - build_type = AUTOLATHE - materials = list(MAT_METAL = 150, MAT_GLASS = 125) - build_path = /obj/item/hand_labeler - category = list("initial", "Electronics") - -/datum/design/miniature_power_cell - name = "Light Fixture Battery" - id = "miniature_power_cell" - build_type = AUTOLATHE - materials = list(MAT_GLASS = 20) - build_path = /obj/item/stock_parts/cell/emergency_light - category = list("initial", "Electronics") - -//////////////// -///Electronics// -//////////////// - -/datum/design/rods - name = "Metal Rod" - id = "rods" - build_type = AUTOLATHE - materials = list(MAT_METAL = 1000) - build_path = /obj/item/stack/rods - category = list("initial","Construction") - maxstack = 50 - -/datum/design/metal - name = "Metal" - id = "metal" - build_type = AUTOLATHE - materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT) - build_path = /obj/item/stack/sheet/metal - category = list("initial","Construction") - maxstack = 50 - -/datum/design/glass - name = "Glass" - id = "glass" - build_type = AUTOLATHE - materials = list(MAT_GLASS = MINERAL_MATERIAL_AMOUNT) - build_path = /obj/item/stack/sheet/glass - category = list("initial","Construction") - maxstack = 50 - -/datum/design/rglass - name = "Reinforced Glass" - id = "rglass" - build_type = AUTOLATHE | SMELTER | PROTOLATHE - materials = list(MAT_METAL = 1000, MAT_GLASS = MINERAL_MATERIAL_AMOUNT) - build_path = /obj/item/stack/sheet/rglass - category = list("initial","Construction","Stock Parts") - maxstack = 50 - -/datum/design/light_tube - name = "Light Tube" - id = "light_tube" - build_type = AUTOLATHE - materials = list(MAT_GLASS = 100) - build_path = /obj/item/light/tube - category = list("initial", "Construction") - -/datum/design/light_bulb - name = "Light Bulb" - id = "light_bulb" - build_type = AUTOLATHE - materials = list(MAT_GLASS = 100) - build_path = /obj/item/light/bulb - category = list("initial", "Construction") - -/datum/design/camera_assembly - name = "Camera Assembly" - id = "camera_assembly" - build_type = AUTOLATHE - materials = list(MAT_METAL = 400, MAT_GLASS = 250) - build_path = /obj/item/wallframe/camera - category = list("initial", "Construction") - -/datum/design/newscaster_frame - name = "Newscaster Frame" - id = "newscaster_frame" - build_type = AUTOLATHE - materials = list(MAT_METAL = 14000, MAT_GLASS = 8000) - build_path = /obj/item/wallframe/newscaster - category = list("initial", "Construction") - -/datum/design/turret_control_frame - name = "Turret Control Frame" - id = "turret_control" - build_type = AUTOLATHE - materials = list(MAT_METAL = 12000) - build_path = /obj/item/wallframe/turret_control - category = list("initial", "Construction") - -/datum/design/conveyor_belt - name = "Conveyor Belt" - id = "conveyor_belt" - build_type = AUTOLATHE - materials = list(MAT_METAL = 5000) - build_path = /obj/item/conveyor_construct - category = list("initial", "Construction") - -/datum/design/conveyor_switch - name = "Conveyor Belt Switch" - id = "conveyor_switch" - build_type = AUTOLATHE - materials = list(MAT_METAL = 450, MAT_GLASS = 190) - build_path = /obj/item/conveyor_switch_construct - category = list("initial", "Construction") - -/datum/design/rcd_ammo - name = "Compressed Matter Cartridge" - id = "rcd_ammo" - build_type = AUTOLATHE - materials = list(MAT_METAL = 12000, MAT_GLASS=8000) - build_path = /obj/item/rcd_ammo - category = list("initial","Construction") - -///////////// -////T-Comms// -///////////// - -/datum/design/signaler - name = "Remote Signaling Device" - id = "signaler" - build_type = AUTOLATHE - materials = list(MAT_METAL = 400, MAT_GLASS = 120) - build_path = /obj/item/assembly/signaler - category = list("initial", "T-Comm") - -/datum/design/radio_headset - name = "Radio Headset" - id = "radio_headset" - build_type = AUTOLATHE - materials = list(MAT_METAL = 75) - build_path = /obj/item/radio/headset - category = list("initial", "T-Comm") - -/datum/design/bounced_radio - name = "Station Bounced Radio" - id = "bounced_radio" - build_type = AUTOLATHE - materials = list(MAT_METAL = 75, MAT_GLASS = 25) - build_path = /obj/item/radio/off - category = list("initial", "T-Comm") - -/datum/design/intercom_frame - name = "Intercom Frame" - id = "intercom_frame" - build_type = AUTOLATHE - materials = list(MAT_METAL = 75, MAT_GLASS = 25) - build_path = /obj/item/wallframe/intercom - category = list("initial", "T-Comm") - -//////////////// -////Dinnerware// -//////////////// - -/datum/design/kitchen_knife - name = "Kitchen Knife" - id = "kitchen_knife" - build_type = AUTOLATHE - materials = list(MAT_METAL = 12000) - build_path = /obj/item/kitchen/knife - category = list("initial","Dinnerware") - -/datum/design/fork - name = "Fork" - id = "fork" - build_type = AUTOLATHE - materials = list(MAT_METAL = 80) - build_path = /obj/item/kitchen/fork - category = list("initial","Dinnerware") - -/datum/design/tray - name = "Tray" - id = "tray" - build_type = AUTOLATHE - materials = list(MAT_METAL = 3000) - build_path = /obj/item/storage/bag/tray - category = list("initial","Dinnerware") - -/datum/design/bowl - name = "Bowl" - id = "bowl" - build_type = AUTOLATHE - materials = list(MAT_GLASS = 500) - build_path = /obj/item/reagent_containers/glass/bowl - category = list("initial","Dinnerware") - -/datum/design/drinking_glass - name = "Drinking Glass" - id = "drinking_glass" - build_type = AUTOLATHE - materials = list(MAT_GLASS = 500) - build_path = /obj/item/reagent_containers/food/drinks/drinkingglass - category = list("initial","Dinnerware") - -/datum/design/shot_glass - name = "Shot Glass" - id = "shot_glass" - build_type = AUTOLATHE - materials = list(MAT_GLASS = 100) - build_path = /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass - category = list("initial","Dinnerware") - -/datum/design/shaker - name = "Shaker" - id = "shaker" - build_type = AUTOLATHE - materials = list(MAT_METAL = 1500) - build_path = /obj/item/reagent_containers/food/drinks/shaker - category = list("initial","Dinnerware") - -///////////// -////Secgear// -///////////// - -/datum/design/beanbag_slug - name = "Beanbag Slug" - id = "beanbag_slug" - build_type = AUTOLATHE - materials = list(MAT_METAL = 250) - build_path = /obj/item/ammo_casing/shotgun/beanbag - category = list("initial", "Security") - -/datum/design/rubbershot - name = "Rubber Shot" - id = "rubber_shot" - build_type = AUTOLATHE - materials = list(MAT_METAL = 4000) - build_path = /obj/item/ammo_casing/shotgun/rubbershot - category = list("initial", "Security") - -/datum/design/c38 - name = "Speed Loader (.38 rubber)" - id = "c38" - build_type = AUTOLATHE - materials = list(MAT_METAL = 20000) - build_path = /obj/item/ammo_box/c38 - category = list("initial", "Security") - -//////////// -///Medical// -//////////// - -/datum/design/scalpel - name = "Scalpel" - id = "scalpel" - build_type = AUTOLATHE - materials = list(MAT_METAL = 4000, MAT_GLASS = 1000) - build_path = /obj/item/scalpel - category = list("initial", "Medical") - -/datum/design/circular_saw - name = "Circular Saw" - id = "circular_saw" - build_type = AUTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 6000) - build_path = /obj/item/circular_saw - category = list("initial", "Medical") - -/datum/design/surgicaldrill - name = "Surgical Drill" - id = "surgicaldrill" - build_type = AUTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 6000) - build_path = /obj/item/surgicaldrill - category = list("initial", "Medical") - -/datum/design/retractor - name = "Retractor" - id = "retractor" - build_type = AUTOLATHE - materials = list(MAT_METAL = 6000, MAT_GLASS = 3000) - build_path = /obj/item/retractor - category = list("initial", "Medical") - -/datum/design/cautery - name = "Cautery" - id = "cautery" - build_type = AUTOLATHE - materials = list(MAT_METAL = 2500, MAT_GLASS = 750) - build_path = /obj/item/cautery - category = list("initial", "Medical") - -/datum/design/hemostat - name = "Hemostat" - id = "hemostat" - build_type = AUTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 2500) - build_path = /obj/item/hemostat - category = list("initial", "Medical") - -/datum/design/beaker - name = "Beaker" - id = "beaker" - build_type = AUTOLATHE - materials = list(MAT_GLASS = 500) - build_path = /obj/item/reagent_containers/glass/beaker - category = list("initial", "Medical") - -/datum/design/large_beaker - name = "Large Beaker" - id = "large_beaker" - build_type = AUTOLATHE - materials = list(MAT_GLASS = 2500) - build_path = /obj/item/reagent_containers/glass/beaker/large - category = list("initial", "Medical") - -/datum/design/healthanalyzer - name = "Health Analyzer" - id = "healthanalyzer" - build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 50) - build_path = /obj/item/healthanalyzer - category = list("initial", "Medical") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - -/datum/design/pillbottle - name = "Pill Bottle" - id = "pillbottle" - build_type = AUTOLATHE - materials = list(MAT_METAL = 20, MAT_GLASS = 100) - build_path = /obj/item/storage/pill_bottle - category = list("initial", "Medical") - -/datum/design/syringe - name = "Syringe" - id = "syringe" - build_type = AUTOLATHE - materials = list(MAT_METAL = 10, MAT_GLASS = 20) - build_path = /obj/item/reagent_containers/syringe - category = list("initial", "Medical") - -/datum/design/health_sensor - name = "Health Sensor" - id = "health_sensor" - build_type = AUTOLATHE - materials = list(MAT_METAL = 800, MAT_GLASS = 200) - build_path = /obj/item/assembly/health - category = list("initial", "Medical") - -///////////// -////MISC///// -///////////// - -/datum/design/camera - name = "Camera" - id = "camera" - build_type = AUTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 100) - build_path = /obj/item/camera - category = list("initial", "Misc") - -/datum/design/camera_film - name = "Camera Film Cartridge" - id = "camera_film" - build_type = AUTOLATHE - materials = list(MAT_METAL = 10, MAT_GLASS = 10) - build_path = /obj/item/camera_film - category = list("initial", "Misc") - -/datum/design/earmuffs - name = "Earmuffs" - id = "earmuffs" - build_type = AUTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) - build_path = /obj/item/clothing/ears/earmuffs - category = list("initial", "Misc") - -/datum/design/pipe_painter - name = "Pipe Painter" - id = "pipe_painter" - build_type = AUTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 2000) - build_path = /obj/item/pipe_painter - category = list("initial", "Misc") - -/datum/design/airlock_painter - name = "Airlock Painter" - id = "airlock_painter" - build_type = AUTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) - build_path = /obj/item/airlock_painter - category = list("initial", "Misc") - -/datum/design/cultivator - name = "Cultivator" - id = "cultivator" - build_type = AUTOLATHE - materials = list(MAT_METAL=50) - build_path = /obj/item/cultivator - category = list("initial","Misc") - -/datum/design/plant_analyzer - name = "Plant Analyzer" - id = "plant_analyzer" - build_type = AUTOLATHE - materials = list(MAT_METAL = 30, MAT_GLASS = 20) - build_path = /obj/item/plant_analyzer - category = list("initial","Misc") - -/datum/design/shovel - name = "Shovel" - id = "shovel" - build_type = AUTOLATHE - materials = list(MAT_METAL = 50) - build_path = /obj/item/shovel - category = list("initial","Misc") - -/datum/design/spade - name = "Spade" - id = "spade" - build_type = AUTOLATHE - materials = list(MAT_METAL = 50) - build_path = /obj/item/shovel/spade - category = list("initial","Misc") - -/datum/design/hatchet - name = "Hatchet" - id = "hatchet" - build_type = AUTOLATHE - materials = list(MAT_METAL = 15000) - build_path = /obj/item/hatchet - category = list("initial","Misc") - -/datum/design/recorder - name = "Universal Recorder" - id = "recorder" - build_type = AUTOLATHE - materials = list(MAT_METAL = 60, MAT_GLASS = 30) - build_path = /obj/item/taperecorder/empty - category = list("initial", "Misc") - -/datum/design/tape - name = "Tape" - id = "tape" - build_type = AUTOLATHE - materials = list(MAT_METAL = 20, MAT_GLASS = 5) - build_path = /obj/item/tape/random - category = list("initial", "Misc") - -/datum/design/igniter - name = "Igniter" - id = "igniter" - build_type = AUTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 50) - build_path = /obj/item/assembly/igniter - category = list("initial", "Misc") - -/datum/design/infrared_emitter - name = "Infrared Emitter" - id = "infrared_emitter" - build_type = AUTOLATHE - materials = list(MAT_METAL = 1000, MAT_GLASS = 500) - build_path = /obj/item/assembly/infra - category = list("initial", "Misc") - -/datum/design/timer - name = "Timer" - id = "timer" - build_type = AUTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 50) - build_path = /obj/item/assembly/timer - category = list("initial", "Misc") - -/datum/design/voice_analyser - name = "Voice Analyser" - id = "voice_analyser" - build_type = AUTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 50) - build_path = /obj/item/assembly/voice - category = list("initial", "Misc") - -/datum/design/prox_sensor - name = "Proximity Sensor" - id = "prox_sensor" - build_type = AUTOLATHE - materials = list(MAT_METAL = 800, MAT_GLASS = 200) - build_path = /obj/item/assembly/prox_sensor - category = list("initial", "Misc") - -/datum/design/foam_dart - name = "Box of Foam Darts" - id = "foam_dart" - build_type = AUTOLATHE - materials = list(MAT_METAL = 500) - build_path = /obj/item/ammo_box/foambox - category = list("initial", "Misc") - -/datum/design/laptop - name = "Laptop Frame" - id = "laptop" - build_type = AUTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 1000) - build_path = /obj/item/modular_computer/laptop/buildable - category = list("initial","Misc") - -/datum/design/tablet - name = "Tablet Frame" - id = "tablet" - build_type = AUTOLATHE - materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) - build_path = /obj/item/modular_computer/tablet - category = list("initial","Misc") - -/datum/design/slime_scanner - name = "Slime Scanner" - id = "slime_scanner" - build_type = AUTOLATHE - materials = list(MAT_METAL = 300, MAT_GLASS = 200) - build_path = /obj/item/slime_scanner - category = list("initial", "Misc") - -/datum/design/pet_carrier - name = "Pet Carrier" - id = "pet_carrier" - build_type = AUTOLATHE - materials = list(MAT_METAL = 7500, MAT_GLASS = 100) - build_path = /obj/item/pet_carrier - category = list("initial", "Misc") - -/datum/design/packageWrap - name = "Package Wrapping" - id = "packagewrap" - build_type = AUTOLATHE - materials = list(MAT_METAL = 200, MAT_GLASS = 200) - build_path = /obj/item/stack/packageWrap - category = list("initial", "Misc") - maxstack = 30 - -/datum/design/holodisk - name = "Holodisk" - id = "holodisk" - build_type = AUTOLATHE - materials = list(MAT_METAL = 100, MAT_GLASS = 100) - build_path = /obj/item/disk/holodisk - category = list("initial", "Misc") - -///////////////// -///Hacked Gear // -///////////////// - -/datum/design/large_welding_tool - name = "Industrial Welding Tool" - id = "large_welding_tool" - build_type = AUTOLATHE - materials = list(MAT_METAL = 70, MAT_GLASS = 60) - build_path = /obj/item/weldingtool/largetank - category = list("hacked", "Tools") - -/datum/design/flamethrower - name = "Flamethrower" - id = "flamethrower" - build_type = AUTOLATHE - materials = list(MAT_METAL = 500) - build_path = /obj/item/flamethrower/full - category = list("hacked", "Security") - -/datum/design/rcd - name = "Rapid Construction Device (RCD)" - id = "rcd" - build_type = AUTOLATHE - materials = list(MAT_METAL = 30000) - build_path = /obj/item/construction/rcd - category = list("hacked", "Construction") - -/datum/design/rpd - name = "Rapid Pipe Dispenser (RPD)" - id = "rpd" - build_type = AUTOLATHE - materials = list(MAT_METAL = 75000, MAT_GLASS = 37500) - build_path = /obj/item/pipe_dispenser - category = list("hacked", "Construction") - -/datum/design/handcuffs - name = "Handcuffs" - id = "handcuffs" - build_type = AUTOLATHE - materials = list(MAT_METAL = 500) - build_path = /obj/item/restraints/handcuffs - category = list("hacked", "Security") - -/datum/design/receiver - name = "Modular Receiver" - id = "receiver" - build_type = AUTOLATHE - materials = list(MAT_METAL = 15000) - build_path = /obj/item/weaponcrafting/receiver - category = list("hacked", "Security") - -/datum/design/shotgun_slug - name = "Shotgun Slug" - id = "shotgun_slug" - build_type = AUTOLATHE - materials = list(MAT_METAL = 4000) - build_path = /obj/item/ammo_casing/shotgun - category = list("hacked", "Security") - -/datum/design/buckshot_shell - name = "Buckshot Shell" - id = "buckshot_shell" - build_type = AUTOLATHE - materials = list(MAT_METAL = 4000) - build_path = /obj/item/ammo_casing/shotgun/buckshot - category = list("hacked", "Security") - -/datum/design/shotgun_dart - name = "Shotgun Dart" - id = "shotgun_dart" - build_type = AUTOLATHE - materials = list(MAT_METAL = 4000) - build_path = /obj/item/ammo_casing/shotgun/dart - category = list("hacked", "Security") - -/datum/design/incendiary_slug - name = "Incendiary Slug" - id = "incendiary_slug" - build_type = AUTOLATHE - materials = list(MAT_METAL = 4000) - build_path = /obj/item/ammo_casing/shotgun/incendiary - category = list("hacked", "Security") - -/datum/design/riot_dart - name = "Foam Riot Dart" - id = "riot_dart" - build_type = AUTOLATHE - materials = list(MAT_METAL = 1000) //Discount for making individually - no box = less metal! - build_path = /obj/item/ammo_casing/caseless/foam_dart/riot - category = list("hacked", "Security") - -/datum/design/riot_darts - name = "Foam Riot Dart Box" - id = "riot_darts" - build_type = AUTOLATHE - materials = list(MAT_METAL = 50000) //Comes with 40 darts - build_path = /obj/item/ammo_box/foambox/riot - category = list("hacked", "Security") - -/datum/design/a357 - name = "Speed Loader (.357)" - id = "a357" - build_type = AUTOLATHE - materials = list(MAT_METAL = 30000) - build_path = /obj/item/ammo_box/a357 - category = list("hacked", "Security") - -/datum/design/c10mm - name = "Ammo Box (10mm)" - id = "c10mm" - build_type = AUTOLATHE - materials = list(MAT_METAL = 30000) - build_path = /obj/item/ammo_box/c10mm - category = list("hacked", "Security") - -/datum/design/c45 - name = "Ammo Box (.45)" - id = "c45" - build_type = AUTOLATHE - materials = list(MAT_METAL = 30000) - build_path = /obj/item/ammo_box/c45 - category = list("hacked", "Security") - -/datum/design/c9mm - name = "Ammo Box (9mm)" - id = "c9mm" - build_type = AUTOLATHE - materials = list(MAT_METAL = 30000) - build_path = /obj/item/ammo_box/c9mm - category = list("hacked", "Security") - -/datum/design/electropack - name = "Electropack" - id = "electropack" - build_type = AUTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 2500) - build_path = /obj/item/electropack - category = list("hacked", "Security") - -/datum/design/cleaver - name = "Butcher's Cleaver" - id = "cleaver" - build_type = AUTOLATHE - materials = list(MAT_METAL = 18000) - build_path = /obj/item/kitchen/knife/butcher - category = list("hacked", "Dinnerware") - -/datum/design/foilhat - name = "Tinfoil Hat" - id = "tinfoil_hat" - build_type = AUTOLATHE - materials = list(MAT_METAL = 5500) - build_path = /obj/item/clothing/head/foilhat - category = list("hacked", "Misc") - category = list("initial", "Tools") - -/datum/design/turret_control_frame - name = "Turret Control Frame" - id = "turret_control" - build_type = AUTOLATHE - materials = list(MAT_METAL = 12000) - build_path = /obj/item/wallframe/turret_control - category = list("initial", "Construction") - -/datum/design/conveyor_belt - name = "Conveyor Belt" - id = "conveyor_belt" - build_type = AUTOLATHE - materials = list(MAT_METAL = 5000) - build_path = /obj/item/conveyor_construct - category = list("initial", "Construction") - -/datum/design/conveyor_switch - name = "Conveyor Belt Switch" - id = "conveyor_switch" - build_type = AUTOLATHE - materials = list(MAT_METAL = 450, MAT_GLASS = 190) - build_path = /obj/item/conveyor_switch_construct - category = list("initial", "Construction") - -/datum/design/laptop - name = "Laptop Frame" - id = "laptop" - build_type = AUTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 1000) - build_path = /obj/item/modular_computer/laptop/buildable - category = list("initial","Misc") - -/datum/design/tablet - name = "Tablet Frame" - id = "tablet" - build_type = AUTOLATHE - materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) - build_path = /obj/item/modular_computer/tablet - category = list("initial","Misc") - -/datum/design/slime_scanner - name = "Slime Scanner" - id = "slime_scanner" - build_type = AUTOLATHE - materials = list(MAT_METAL = 300, MAT_GLASS = 200) - build_path = /obj/item/slime_scanner - category = list("initial", "Misc") - -/datum/design/pet_carrier - name = "Pet Carrier" - id = "pet_carrier" - build_type = AUTOLATHE - materials = list(MAT_METAL = 7500, MAT_GLASS = 100) - build_path = /obj/item/pet_carrier - category = list("initial", "Misc") - -/datum/design/miniature_power_cell - name = "Light Fixture Battery" - id = "miniature_power_cell" - build_type = AUTOLATHE - materials = list(MAT_GLASS = 20) - build_path = /obj/item/stock_parts/cell/emergency_light - category = list("initial", "Electronics") - -/datum/design/packageWrap - name = "Package Wrapping" - id = "packagewrap" - build_type = AUTOLATHE - materials = list(MAT_METAL = 200, MAT_GLASS = 200) - build_path = /obj/item/stack/packageWrap - category = list("initial", "Misc") - maxstack = 30 - -/datum/design/holodisk - name = "Holodisk" - id = "holodisk" - build_type = AUTOLATHE - materials = list(MAT_METAL = 100, MAT_GLASS = 100) - build_path = /obj/item/disk/holodisk - category = list("initial", "Misc") From 50ac2025abb7559dcbe023104c5983c6a97fb307 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 10 May 2019 16:47:11 -0400 Subject: [PATCH 013/276] Update tgstation.dme --- tgstation.dme | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tgstation.dme b/tgstation.dme index 9e9c6fe593..acdfb7ec28 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2497,7 +2497,12 @@ #include "code\modules\research\server.dm" #include "code\modules\research\stock_parts.dm" #include "code\modules\research\designs\AI_module_designs.dm" -#include "code\modules\research\designs\autolathe_designs.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_construction.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_electronics.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_medical_and_dinnerware.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_sec_and_hacked.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tcomms_and_misc.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tools.dm" #include "code\modules\research\designs\biogenerator_designs.dm" #include "code\modules\research\designs\bluespace_designs.dm" #include "code\modules\research\designs\comp_board_designs.dm" From 38696f4997cad912e3d1a73b702b21bf1be2024d Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 10 May 2019 16:47:59 -0400 Subject: [PATCH 014/276] Delete autolathe_designs.dm --- .../modules/research/designs/autolathe_designs.dm | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100755 modular_citadel/code/modules/research/designs/autolathe_designs.dm diff --git a/modular_citadel/code/modules/research/designs/autolathe_designs.dm b/modular_citadel/code/modules/research/designs/autolathe_designs.dm deleted file mode 100755 index 55b83a2262..0000000000 --- a/modular_citadel/code/modules/research/designs/autolathe_designs.dm +++ /dev/null @@ -1,15 +0,0 @@ -/datum/design/hypovialsmall - name = "Hypovial" - id = "hypovial" - build_type = AUTOLATHE - materials = list(MAT_METAL = 500) - build_path = /obj/item/reagent_containers/glass/bottle/vial/small - category = list("initial","Medical") - -/datum/design/hypoviallarge - name = "Large Hypovial" - id = "large_hypovial" - build_type = AUTOLATHE - materials = list(MAT_METAL = 2500) - build_path = /obj/item/reagent_containers/glass/bottle/vial/large - category = list("initial","Medical") From af7b7fc6380f41548605230d5dc1171a31756030 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 10 May 2019 16:48:52 -0400 Subject: [PATCH 015/276] Update autolathe_designs_medical_and_dinnerware.dm --- ...autolathe_designs_medical_and_dinnerware.dm | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm index f88cde5919..27852b2798 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm @@ -160,4 +160,20 @@ build_type = AUTOLATHE materials = list(MAT_METAL = 800, MAT_GLASS = 200) build_path = /obj/item/assembly/health - category = list("initial", "Medical") \ No newline at end of file + category = list("initial", "Medical") + +/datum/design/hypovialsmall + name = "Hypovial" + id = "hypovial" + build_type = AUTOLATHE + materials = list(MAT_METAL = 500) + build_path = /obj/item/reagent_containers/glass/bottle/vial/small + category = list("initial","Medical") + +/datum/design/hypoviallarge + name = "Large Hypovial" + id = "large_hypovial" + build_type = AUTOLATHE + materials = list(MAT_METAL = 2500) + build_path = /obj/item/reagent_containers/glass/bottle/vial/large + category = list("initial","Medical") From 427c981386ede666866c7e688d8969f1d270dc68 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 10 May 2019 16:49:43 -0400 Subject: [PATCH 016/276] Update tgstation.dme --- tgstation.dme | 1 - 1 file changed, 1 deletion(-) diff --git a/tgstation.dme b/tgstation.dme index acdfb7ec28..6965fccb1a 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2991,7 +2991,6 @@ #include "modular_citadel\code\modules\reagents\reagent container\hypovial.dm" #include "modular_citadel\code\modules\reagents\reagents\cit_reagents.dm" #include "modular_citadel\code\modules\recycling\disposal\bin.dm" -#include "modular_citadel\code\modules\research\designs\autolathe_designs.dm" #include "modular_citadel\code\modules\research\designs\autoylathe_designs.dm" #include "modular_citadel\code\modules\research\designs\machine_designs.dm" #include "modular_citadel\code\modules\research\designs\weapon_designs.dm" From a720720743ca5bfb01bf3357498c0ae1131b2374 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 11 May 2019 11:40:30 -0400 Subject: [PATCH 017/276] Update tgstation.dme --- tgstation.dme | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/tgstation.dme b/tgstation.dme index 1cdc8cb21a..a1af025488 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2482,12 +2482,21 @@ #include "code\modules\research\designs\autolathe_designs.dm" #include "code\modules\research\designs\biogenerator_designs.dm" #include "code\modules\research\designs\bluespace_designs.dm" -#include "code\modules\research\designs\comp_board_designs.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_all_misc.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_cargo .dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_engi.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_medical.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sci.dm" +#include "code\modules\research\designs\comp_board_designs\comp_board_designs_sec.dm" #include "code\modules\research\designs\computer_part_designs.dm" #include "code\modules\research\designs\electronics_designs.dm" #include "code\modules\research\designs\equipment_designs.dm" #include "code\modules\research\designs\limbgrower_designs.dm" -#include "code\modules\research\designs\machine_designs.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_cargo.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_engi.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_medical.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_sci.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_service.dm" #include "code\modules\research\designs\mecha_designs.dm" #include "code\modules\research\designs\mechfabricator_designs.dm" #include "code\modules\research\designs\medical_designs.dm" From 034a9a0865785da506649f0763b7bee59c256be9 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 11 May 2019 11:41:10 -0400 Subject: [PATCH 018/276] Delete comp_board_designs.dm --- .../research/designs/comp_board_designs.dm | 333 ------------------ 1 file changed, 333 deletions(-) delete mode 100644 code/modules/research/designs/comp_board_designs.dm diff --git a/code/modules/research/designs/comp_board_designs.dm b/code/modules/research/designs/comp_board_designs.dm deleted file mode 100644 index 620adf20c0..0000000000 --- a/code/modules/research/designs/comp_board_designs.dm +++ /dev/null @@ -1,333 +0,0 @@ -///////////////////Computer Boards/////////////////////////////////// - -/datum/design/board - name = "Computer Design ( NULL ENTRY )" - desc = "A blank computer board!" - build_type = IMPRINTER - materials = list(MAT_GLASS = 1000) - -/datum/design/board/arcade_battle - name = "Computer Design (Battle Arcade Machine)" - desc = "Allows for the construction of circuit boards used to build a new arcade machine." - id = "arcade_battle" - build_path = /obj/item/circuitboard/computer/arcade/battle - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/orion_trail - name = "Computer Design (Orion Trail Arcade Machine)" - desc = "Allows for the construction of circuit boards used to build a new Orion Trail machine." - id = "arcade_orion" - build_path = /obj/item/circuitboard/computer/arcade/orion_trail - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/slot_machine - name = "Computer Design (Slot Machine)" - desc = "Allows for the construction of circuit boards used to build a new slot machine." - id = "slotmachine" - build_path = /obj/item/circuitboard/computer/slot_machine - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/libraryconsole - name = "Computer Design (Library Console)" - desc = "Allows for the construction of circuit boards used to build a new library console." - id = "libraryconsole" - build_path = /obj/item/circuitboard/computer/libraryconsole - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/////////////////// -///SECURITY Boards/ -/////////////////// - -/datum/design/board/seccamera - name = "Computer Design (Security Camera)" - desc = "Allows for the construction of circuit boards used to build security camera computers." - id = "seccamera" - build_path = /obj/item/circuitboard/computer/security - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - -/datum/design/board/comconsole - name = "Computer Design (Communications)" - desc = "Allows for the construction of circuit boards used to build a communications console." - id = "comconsole" - build_path = /obj/item/circuitboard/computer/communications - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY //Honestly should have a bridge techfab for this sometime. - -/datum/design/board/idcardconsole - name = "Computer Design (ID Console)" - desc = "Allows for the construction of circuit boards used to build an ID computer." - id = "idcardconsole" - build_path = /obj/item/circuitboard/computer/card - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY //Honestly should have a bridge techfab for this sometime. - -/datum/design/board/secdata - name = "Computer Design (Security Records Console)" - desc = "Allows for the construction of circuit boards used to build a security records console." - id = "secdata" - build_path = /obj/item/circuitboard/computer/secure_data - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - -/datum/design/board/prisonmanage - name = "Computer Design (Prisoner Management Console)" - desc = "Allows for the construction of circuit boards used to build a prisoner management console." - id = "prisonmanage" - build_path = /obj/item/circuitboard/computer/prisoner - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - -/////////////////// -///SCI Boards////// -/////////////////// - -/datum/design/board/rdcamera - name = "Computer Design (Research Monitor)" - desc = "Allows for the construction of circuit boards used to build research camera computers." - id = "rdcamera" - build_path = /obj/item/circuitboard/computer/research - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/xenobiocamera - name = "Computer Design (Xenobiology Console)" - desc = "Allows for the construction of circuit boards used to build xenobiology camera computers." - id = "xenobioconsole" - build_path = /obj/item/circuitboard/computer/xenobiology - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/aiupload - name = "Computer Design (AI Upload)" - desc = "Allows for the construction of circuit boards used to build an AI Upload Console." - id = "aiupload" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) - build_path = /obj/item/circuitboard/computer/aiupload - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/borgupload - name = "Computer Design (Cyborg Upload)" - desc = "Allows for the construction of circuit boards used to build a Cyborg Upload Console." - id = "borgupload" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) - build_path = /obj/item/circuitboard/computer/borgupload - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/robocontrol - name = "Computer Design (Robotics Control Console)" - desc = "Allows for the construction of circuit boards used to build a Robotics Control console." - id = "robocontrol" - build_path = /obj/item/circuitboard/computer/robotics - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/mechacontrol - name = "Computer Design (Exosuit Control Console)" - desc = "Allows for the construction of circuit boards used to build an exosuit control console." - id = "mechacontrol" - build_path = /obj/item/circuitboard/computer/mecha_control - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/mechapower - name = "Computer Design (Mech Bay Power Control Console)" - desc = "Allows for the construction of circuit boards used to build a mech bay power control console." - id = "mechapower" - build_path = /obj/item/circuitboard/computer/mech_bay_power_console - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/rdconsole - name = "Computer Design (R&D Console)" - desc = "Allows for the construction of circuit boards used to build a new R&D console." - id = "rdconsole" - build_path = /obj/item/circuitboard/computer/rdconsole - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/nanite_chamber_control - name = "Computer Design (Nanite Chamber Control)" - desc = "Allows for the construction of circuit boards used to build a new nanite chamber control console." - id = "nanite_chamber_control" - build_path = /obj/item/circuitboard/computer/nanite_chamber_control - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/nanite_cloud_control - name = "Computer Design (Nanite Cloud Control)" - desc = "Allows for the construction of circuit boards used to build a new nanite cloud control console." - id = "nanite_cloud_control" - build_path = /obj/item/circuitboard/computer/nanite_cloud_controller - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/aifixer - name = "Computer Design (AI Integrity Restorer)" - desc = "Allows for the construction of circuit boards used to build an AI Integrity Restorer." - id = "aifixer" - build_path = /obj/item/circuitboard/computer/aifixer - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/////////////////// -///MEDICAL Boards// -/////////////////// - -/datum/design/board/med_data - name = "Computer Design (Medical Records)" - desc = "Allows for the construction of circuit boards used to build a medical records console." - id = "med_data" - build_path = /obj/item/circuitboard/computer/med_data - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - -/datum/design/board/operating - name = "Computer Design (Operating Computer)" - desc = "Allows for the construction of circuit boards used to build an operating computer console." - id = "operating" - build_path = /obj/item/circuitboard/computer/operating - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/pandemic - name = "Computer Design (PanD.E.M.I.C. 2200)" - desc = "Allows for the construction of circuit boards used to build a PanD.E.M.I.C. 2200 console." - id = "pandemic" - build_path = /obj/item/circuitboard/computer/pandemic - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - -/datum/design/board/scan_console - name = "Computer Design (DNA Machine)" - desc = "Allows for the construction of circuit boards used to build a new DNA scanning console." - id = "scan_console" - build_path = /obj/item/circuitboard/computer/scan_consolenew - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/crewconsole - name = "Computer Design (Crew monitoring computer)" - desc = "Allows for the construction of circuit boards used to build a Crew monitoring computer." - id = "crewconsole" - build_path = /obj/item/circuitboard/computer/crew - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SECURITY - -/////////////////// -///CARGO Boards//// -/////////////////// - -/datum/design/board/cargo - name = "Computer Design (Supply Console)" - desc = "Allows for the construction of circuit boards used to build a Supply Console." - id = "cargo" - build_path = /obj/item/circuitboard/computer/cargo - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_CARGO - -/datum/design/board/cargorequest - name = "Computer Design (Supply Request Console)" - desc = "Allows for the construction of circuit boards used to build a Supply Request Console." - id = "cargorequest" - build_path = /obj/item/circuitboard/computer/cargo/request - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_CARGO - -/datum/design/board/bounty - name = "Computer Design (Bounty Console)" - desc = "Allows for the construction of circuit boards used to build a Bounty Console." - id = "bounty" - build_path = /obj/item/circuitboard/computer/bounty - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_CARGO - -/datum/design/board/mining - name = "Computer Design (Outpost Status Display)" - desc = "Allows for the construction of circuit boards used to build an outpost status display console." - id = "mining" - build_path = /obj/item/circuitboard/computer/mining - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SECURITY - -/////////////////// -///ENGINE Boards/// -/////////////////// - -/datum/design/board/comm_monitor - name = "Computer Design (Telecommunications Monitoring Console)" - desc = "Allows for the construction of circuit boards used to build a telecommunications monitor." - id = "comm_monitor" - build_path = /obj/item/circuitboard/computer/comm_monitor - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/comm_server - name = "Computer Design (Telecommunications Server Monitoring Console)" - desc = "Allows for the construction of circuit boards used to build a telecommunication server browser and monitor." - id = "comm_server" - build_path = /obj/item/circuitboard/computer/comm_server - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/message_monitor - name = "Computer Design (Messaging Monitor Console)" - desc = "Allows for the construction of circuit boards used to build a messaging monitor console." - id = "message_monitor" - build_path = /obj/item/circuitboard/computer/message_monitor - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/apc_control - name = "Computer Design (APC Control)" - desc = "Allows for the construction of circuit boards used to build a new APC control console." - id = "apc_control" - build_path = /obj/item/circuitboard/computer/apc_control - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/meteor_console - name = "Computer Design (Meteor Satellite Console)" - desc = "Allows for the construction of circuit boards used to build a new Meteor Satellite monitor console." - id = "meteor_console" - build_path = /obj/item/circuitboard/computer/sat_control - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/atmosalerts - name = "Computer Design (Atmosphere Alert)" - desc = "Allows for the construction of circuit boards used to build an atmosphere alert console." - id = "atmosalerts" - build_path = /obj/item/circuitboard/computer/atmos_alert - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/atmos_control - name = "Computer Design (Atmospheric Monitor)" - desc = "Allows for the construction of circuit boards used to build an Atmospheric Monitor." - id = "atmos_control" - build_path = /obj/item/circuitboard/computer/atmos_control - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/powermonitor - name = "Computer Design (Power Monitor)" - desc = "Allows for the construction of circuit boards used to build a new power monitor." - id = "powermonitor" - build_path = /obj/item/circuitboard/computer/powermonitor - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/solarcontrol - name = "Computer Design (Solar Control)" - desc = "Allows for the construction of circuit boards used to build a solar control console." - id = "solarcontrol" - build_path = /obj/item/circuitboard/computer/solar_control - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING From 3a12bab370d53a1474d2f3ac4bf40147b923ce63 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 11 May 2019 11:41:20 -0400 Subject: [PATCH 019/276] Delete machine_designs.dm --- .../research/designs/machine_designs.dm | 592 ------------------ 1 file changed, 592 deletions(-) delete mode 100644 code/modules/research/designs/machine_designs.dm diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm deleted file mode 100644 index c58bb89dbe..0000000000 --- a/code/modules/research/designs/machine_designs.dm +++ /dev/null @@ -1,592 +0,0 @@ -//////////////////////////////////////// -//////////////MISC Boards/////////////// -//////////////////////////////////////// - -/datum/design/board/recycler - name = "Machine Design (Recycler Board)" - desc = "The circuit board for a recycler." - id = "recycler" - build_path = /obj/item/circuitboard/machine/recycler - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/holopad - name = "Machine Design (AI Holopad Board)" - desc = "The circuit board for a holopad." - id = "holopad" - build_path = /obj/item/circuitboard/machine/holopad - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/autolathe - name = "Machine Design (Autolathe Board)" - desc = "The circuit board for an autolathe." - id = "autolathe" - build_path = /obj/item/circuitboard/machine/autolathe - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/recharger - name = "Machine Design (Weapon Recharger Board)" - desc = "The circuit board for a Weapon Recharger." - id = "recharger" - materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) - build_path = /obj/item/circuitboard/machine/recharger - category = list("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/vendor - name = "Machine Design (Vendor Board)" - desc = "The circuit board for a Vendor." - id = "vendor" - build_path = /obj/item/circuitboard/machine/vendor - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/donksofttoyvendor - name = "Machine Design (Donksoft Toy Vendor Board)" - desc = "The circuit board for a Donksoft Toy Vendor." - id = "donksofttoyvendor" - build_path = /obj/item/circuitboard/machine/vending/donksofttoyvendor - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/space_heater - name = "Machine Design (Space Heater Board)" - desc = "The circuit board for a space heater." - id = "space_heater" - build_path = /obj/item/circuitboard/machine/space_heater - category = list ("Engineering Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/reagentgrinder - name = "Machine Design (All-In-One Grinder)" - desc = "The circuit board for an All-In-One Grinder." - id = "reagentgrinder" - build_path = /obj/item/circuitboard/machine/reagentgrinder - category = list ("Medical Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/microwave - name = "Machine Design (Microwave Board)" - desc = "The circuit board for a microwave." - id = "microwave" - build_path = /obj/item/circuitboard/machine/microwave - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/smartfridge - name = "Machine Design (Smartfridge Board)" - desc = "The circuit board for a smartfridge." - id = "smartfridge" - build_path = /obj/item/circuitboard/machine/smartfridge - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/cell_charger - name = "Machine Design (Cell Charger Board)" - desc = "The circuit board for a cell charger." - id = "cell_charger" - build_path = /obj/item/circuitboard/machine/cell_charger - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ALL - -/datum/design/board/vr_sleeper - name = "Machine Design (VR Sleeper Board)" - desc = "The circuit board for a VR sleeper." - id = "vr_sleeper" - build_path = /obj/item/circuitboard/machine/vr_sleeper - departmental_flags = DEPARTMENTAL_FLAG_ALL - category = list ("Medical Machinery") - -/////////////////// -///MEDICAL Boards// -/////////////////// - -/datum/design/board/sleeper - name = "Machine Design (Sleeper Board)" - desc = "The circuit board for a sleeper." - id = "sleeper" - build_path = /obj/item/circuitboard/machine/sleeper - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - category = list ("Medical Machinery") - -/datum/design/board/cryotube - name = "Machine Design (Cryotube Board)" - desc = "The circuit board for a cryotube." - id = "cryotube" - build_path = /obj/item/circuitboard/machine/cryo_tube - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - category = list ("Medical Machinery") - -/datum/design/board/chem_dispenser - name = "Machine Design (Portable Chem Dispenser Board)" - desc = "The circuit board for a portable chem dispenser." - id = "chem_dispenser" - build_path = /obj/item/circuitboard/machine/chem_dispenser - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - category = list ("Medical Machinery") - -/datum/design/board/chem_master - name = "Machine Design (Chem Master Board)" - desc = "The circuit board for a Chem Master 3000." - id = "chem_master" - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - build_path = /obj/item/circuitboard/machine/chem_master - category = list ("Medical Machinery") - -/datum/design/board/chem_heater - name = "Machine Design (Chemical Heater Board)" - desc = "The circuit board for a chemical heater." - id = "chem_heater" - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - build_path = /obj/item/circuitboard/machine/chem_heater - category = list ("Medical Machinery") - -/datum/design/board/smoke_machine - name = "Machine Design (Smoke Machine)" - desc = "The circuit board for a smoke machine." - id = "smoke_machine" - build_path = /obj/item/circuitboard/machine/smoke_machine - category = list ("Medical Machinery") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - -/datum/design/board/clonecontrol - name = "Computer Design (Cloning Machine Console)" - desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console." - id = "clonecontrol" - build_path = /obj/item/circuitboard/computer/cloning - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - category = list("Medical Machinery") - -/datum/design/board/clonepod - name = "Machine Design (Clone Pod)" - desc = "Allows for the construction of circuit boards used to build a Cloning Pod." - id = "clonepod" - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - build_path = /obj/item/circuitboard/machine/clonepod - category = list("Medical Machinery") - -/datum/design/board/clonescanner - name = "Machine Design (Cloning Scanner)" - desc = "Allows for the construction of circuit boards used to build a Cloning Scanner." - id = "clonescanner" - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - build_path = /obj/item/circuitboard/machine/clonescanner - category = list("Medical Machinery") - -/datum/design/board/limbgrower - name = "Machine Design (Limb Grower Board)" - desc = "The circuit board for a limb grower." - id = "limbgrower" - build_path = /obj/item/circuitboard/machine/limbgrower - category = list("Medical Machinery") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - -/datum/design/board/harvester - name = "Machine Design (Organ Harvester Board)" - desc = "The circuit board for an organ harvester." - id = "harvester" - build_path = /obj/item/circuitboard/machine/harvester - category = list("Medical Machinery") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - -/////////////////// -///CARGO Boards//// -/////////////////// - -/datum/design/board/ore_silo - name = "Machine Design (Ore Silo)" - desc = "The circuit board for an ore silo." - id = "ore_silo" - build_path = /obj/item/circuitboard/machine/ore_silo - category = list ("Research Machinery") - departmental_flags = DEPARTMENTAL_FLAG_CARGO - -/datum/design/board/mining_equipment_vendor - name = "Machine Design (Mining Rewards Vender Board)" - desc = "The circuit board for a Mining Rewards Vender." - id = "mining_equipment_vendor" - build_path = /obj/item/circuitboard/machine/mining_equipment_vendor - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/stacking_unit_console - name = "Machine Design (Stacking Machine Console)" - desc = "The circuit board for a Stacking Machine Console." - id = "stack_console" - build_path = /obj/item/circuitboard/machine/stacking_unit_console - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/stacking_machine - name = "Machine Design (Stacking Machine)" - desc = "The circuit board for a Stacking Machine." - id = "stack_machine" - build_path = /obj/item/circuitboard/machine/stacking_machine - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/ore_redemption - name = "Machine Design (Ore Redemption Board)" - desc = "The circuit board for an Ore Redemption machine." - id = "ore_redemption" - build_path = /obj/item/circuitboard/machine/ore_redemption - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING - -/////////////////// -///CIV Boards////// -/////////////////// - -/datum/design/board/gibber - name = "Machine Design (Gibber Board)" - desc = "The circuit board for a gibber." - id = "gibber" - build_path = /obj/item/circuitboard/machine/gibber - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE - -/datum/design/board/seed_extractor - name = "Machine Design (Seed Extractor Board)" - desc = "The circuit board for a seed extractor." - id = "seed_extractor" - build_path = /obj/item/circuitboard/machine/seed_extractor - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE - -/datum/design/board/soda_dispenser - name = "Machine Design (Portable Soda Dispenser Board)" - desc = "The circuit board for a portable soda dispenser." - id = "soda_dispenser" - build_path = /obj/item/circuitboard/machine/chem_dispenser/drinks - departmental_flags = DEPARTMENTAL_FLAG_SERVICE - category = list ("Misc. Machinery") - -/datum/design/board/beer_dispenser - name = "Machine Design (Portable Booze Dispenser Board)" - desc = "The circuit board for a portable booze dispenser." - id = "beer_dispenser" - build_path = /obj/item/circuitboard/machine/chem_dispenser/drinks/beer - departmental_flags = DEPARTMENTAL_FLAG_SERVICE - category = list ("Misc. Machinery") - -/datum/design/board/plantgenes - name = "Machine Design (Plant DNA Manipulator Board)" - desc = "The circuit board for a plant DNA manipulator." - id = "plantgenes" - build_path = /obj/item/circuitboard/machine/plantgenes - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE - -/datum/design/board/deepfryer - name = "Machine Design (Deep Fryer)" - desc = "The circuit board for a Deep Fryer." - id = "deepfryer" - build_path = /obj/item/circuitboard/machine/deep_fryer - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE - -/datum/design/board/dish_drive - name = "Machine Design (Dish Drive)" - desc = "The circuit board for a dish drive." - id = "dish_drive" - build_path = /obj/item/circuitboard/machine/dish_drive - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE - -/datum/design/board/biogenerator - name = "Machine Design (Biogenerator Board)" - desc = "The circuit board for a biogenerator." - id = "biogenerator" - build_path = /obj/item/circuitboard/machine/biogenerator - category = list ("Hydroponics Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE - -/datum/design/board/hydroponics - name = "Machine Design (Hydroponics Tray Board)" - desc = "The circuit board for a hydroponics tray." - id = "hydro_tray" - build_path = /obj/item/circuitboard/machine/hydroponics - category = list ("Hydroponics Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE - -/datum/design/board/monkey_recycler - name = "Machine Design (Monkey Recycler Board)" - desc = "The circuit board for a monkey recycler." - id = "monkey_recycler" - build_path = /obj/item/circuitboard/machine/monkey_recycler - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/processor - name = "Machine Design (Food/Slime Processor Board)" - desc = "The circuit board for a processing unit. Screwdriver the circuit to switch between food (default) or slime processing." - id = "processor" - build_path = /obj/item/circuitboard/machine/processor - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_SCIENCE - -/////////////////// -///ENGINE Boards/// -/////////////////// - -/datum/design/board/smes - name = "Machine Design (SMES Board)" - desc = "The circuit board for a SMES." - id = "smes" - build_path = /obj/item/circuitboard/machine/smes - category = list ("Engineering Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/circulator - name = "Machine Design (Circulator Board)" - desc = "The circuit board for a circulator." - id = "circulator" - build_path = /obj/item/circuitboard/machine/circulator - category = list ("Engineering Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/teg - name = "Machine Design (TEG Board)" - desc = "The circuit board for a TEG." - id = "teg" - build_path = /obj/item/circuitboard/machine/generator - category = list ("Engineering Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/announcement_system - name = "Machine Design (Automated Announcement System Board)" - desc = "The circuit board for an automated announcement system." - id = "automated_announcement" - build_path = /obj/item/circuitboard/machine/announcement_system - category = list("Subspace Telecomms") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/turbine_computer - name = "Computer Design (Power Turbine Console Board)" - desc = "The circuit board for a power turbine console." - id = "power_turbine_console" - build_path = /obj/item/circuitboard/computer/turbine_computer - category = list ("Engineering Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/emitter - name = "Machine Design (Emitter Board)" - desc = "The circuit board for an emitter." - id = "emitter" - build_path = /obj/item/circuitboard/machine/emitter - category = list ("Engineering Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/power_compressor - name = "Machine Design (Power Compressor Board)" - desc = "The circuit board for a power compressor." - id = "power_compressor" - build_path = /obj/item/circuitboard/machine/power_compressor - category = list ("Engineering Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/power_turbine - name = "Machine Design (Power Turbine Board)" - desc = "The circuit board for a power turbine." - id = "power_turbine" - build_path = /obj/item/circuitboard/machine/power_turbine - category = list ("Engineering Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/board/tesla_coil - name = "Machine Design (Tesla Coil Board)" - desc = "The circuit board for a tesla coil." - id = "tesla_coil" - build_path = /obj/item/circuitboard/machine/tesla_coil - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/rad_collector - name = "Machine Design (Radiation Collector Board)" - desc = "The circuit board for a radiation collector array." - id = "rad_collector" - build_path = /obj/item/circuitboard/machine/rad_collector - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/grounding_rod - name = "Machine Design (Grounding Rod Board)" - desc = "The circuit board for a grounding rod." - id = "grounding_rod" - build_path = /obj/item/circuitboard/machine/grounding_rod - category = list ("Misc. Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/ntnet_relay - name = "Machine Design (NTNet Relay Board)" - desc = "The circuit board for a wireless network relay." - id = "ntnet_relay" - build_path = /obj/item/circuitboard/machine/ntnet_relay - category = list("Subspace Telecomms") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/thermomachine - name = "Machine Design (Freezer/Heater Board)" - desc = "The circuit board for a freezer/heater." - id = "thermomachine" - build_path = /obj/item/circuitboard/machine/thermomachine - category = list ("Engineering Machinery") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE - -/////////////////// -///SCI Boards////// -/////////////////// - -/datum/design/board/teleport_station - name = "Machine Design (Teleportation Station Board)" - desc = "The circuit board for a teleportation station." - id = "tele_station" - build_path = /obj/item/circuitboard/machine/teleporter_station - category = list ("Teleportation Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/teleport_hub - name = "Machine Design (Teleportation Hub Board)" - desc = "The circuit board for a teleportation hub." - id = "tele_hub" - build_path = /obj/item/circuitboard/machine/teleporter_hub - category = list ("Teleportation Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/quantumpad - name = "Machine Design (Quantum Pad Board)" - desc = "The circuit board for a quantum telepad." - id = "quantumpad" - build_path = /obj/item/circuitboard/machine/quantumpad - category = list ("Teleportation Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/launchpad - name = "Machine Design (Bluespace Launchpad Board)" - desc = "The circuit board for a bluespace Launchpad." - id = "launchpad" - build_path = /obj/item/circuitboard/machine/launchpad - category = list ("Teleportation Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/launchpad_console - name = "Machine Design (Bluespace Launchpad Console Board)" - desc = "The circuit board for a bluespace launchpad Console." - id = "launchpad_console" - build_path = /obj/item/circuitboard/computer/launchpad_console - category = list ("Teleportation Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/teleconsole - name = "Computer Design (Teleporter Console)" - desc = "Allows for the construction of circuit boards used to build a teleporter control console." - id = "teleconsole" - build_path = /obj/item/circuitboard/computer/teleporter - category = list("Teleportation Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/destructive_analyzer - name = "Machine Design (Destructive Analyzer Board)" - desc = "The circuit board for a destructive analyzer." - id = "destructive_analyzer" - build_path = /obj/item/circuitboard/machine/destructive_analyzer - category = list("Research Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/experimentor - name = "Machine Design (E.X.P.E.R.I-MENTOR Board)" - desc = "The circuit board for an E.X.P.E.R.I-MENTOR." - id = "experimentor" - build_path = /obj/item/circuitboard/machine/experimentor - category = list("Research Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/protolathe - name = "Machine Design (Protolathe Board)" - desc = "The circuit board for a protolathe." - id = "protolathe" - build_path = /obj/item/circuitboard/machine/protolathe - category = list("Research Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/circuit_imprinter - name = "Machine Design (Circuit Imprinter Board)" - desc = "The circuit board for a circuit imprinter." - id = "circuit_imprinter" - build_path = /obj/item/circuitboard/machine/circuit_imprinter - category = list("Research Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/rdservercontrol - name = "Computer Design (R&D Server Control Console Board)" - desc = "The circuit board for an R&D Server Control Console." - id = "rdservercontrol" - build_path = /obj/item/circuitboard/computer/rdservercontrol - category = list("Research Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/rdserver - name = "Machine Design (R&D Server Board)" - desc = "The circuit board for an R&D Server." - id = "rdserver" - build_path = /obj/item/circuitboard/machine/rdserver - category = list("Research Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/mechfab - name = "Machine Design (Exosuit Fabricator Board)" - desc = "The circuit board for an Exosuit Fabricator." - id = "mechfab" - build_path = /obj/item/circuitboard/machine/mechfab - category = list("Research Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/cyborgrecharger - name = "Machine Design (Cyborg Recharger Board)" - desc = "The circuit board for a Cyborg Recharger." - id = "cyborgrecharger" - build_path = /obj/item/circuitboard/machine/cyborgrecharger - category = list("Research Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/mech_recharger - name = "Machine Design (Mechbay Recharger Board)" - desc = "The circuit board for a Mechbay Recharger." - id = "mech_recharger" - build_path = /obj/item/circuitboard/machine/mech_recharger - category = list("Research Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/nanite_chamber - name = "Machine Design (Nanite Chamber Board)" - desc = "The circuit board for a Nanite Chamber." - id = "nanite_chamber" - build_path = /obj/item/circuitboard/machine/nanite_chamber - category = list("Research Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/public_nanite_chamber - name = "Machine Design (Public Nanite Chamber Board)" - desc = "The circuit board for a Public Nanite Chamber." - id = "public_nanite_chamber" - build_path = /obj/item/circuitboard/machine/public_nanite_chamber - category = list("Research Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/nanite_programmer - name = "Machine Design (Nanite Programmer Board)" - desc = "The circuit board for a Nanite Programmer." - id = "nanite_programmer" - build_path = /obj/item/circuitboard/machine/nanite_programmer - category = list("Research Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/board/nanite_program_hub - name = "Machine Design (Nanite Program Hub Board)" - desc = "The circuit board for a Nanite Program Hub." - id = "nanite_program_hub" - build_path = /obj/item/circuitboard/machine/nanite_program_hub - category = list("Research Machinery") - departmental_flags = DEPARTMENTAL_FLAG_SCIENCE From 172d56ace5e3f0914754385a22209633898ce683 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 11 May 2019 11:41:56 -0400 Subject: [PATCH 020/276] Add files via upload --- .../machine_desings/machine_designs_cargo.dm | 42 +++++ .../machine_desings/machine_designs_engi.dm | 106 ++++++++++++ .../machine_designs_medical.dm | 90 ++++++++++ .../machine_desings/machine_designs_sci.dm | 155 ++++++++++++++++++ .../machine_designs_service.dm | 90 ++++++++++ 5 files changed, 483 insertions(+) create mode 100644 code/modules/research/designs/machine_desings/machine_designs_cargo.dm create mode 100644 code/modules/research/designs/machine_desings/machine_designs_engi.dm create mode 100644 code/modules/research/designs/machine_desings/machine_designs_medical.dm create mode 100644 code/modules/research/designs/machine_desings/machine_designs_sci.dm create mode 100644 code/modules/research/designs/machine_desings/machine_designs_service.dm diff --git a/code/modules/research/designs/machine_desings/machine_designs_cargo.dm b/code/modules/research/designs/machine_desings/machine_designs_cargo.dm new file mode 100644 index 0000000000..a6cc2271c8 --- /dev/null +++ b/code/modules/research/designs/machine_desings/machine_designs_cargo.dm @@ -0,0 +1,42 @@ +/////////////////// +///CARGO Boards// +/////////////////// +/datum/design/board/ore_silo + name = "Machine Design (Ore Silo)" + desc = "The circuit board for an ore silo." + id = "ore_silo" + build_path = /obj/item/circuitboard/machine/ore_silo + category = list ("Research Machinery") + departmental_flags = DEPARTMENTAL_FLAG_CARGO + +/datum/design/board/mining_equipment_vendor + name = "Machine Design (Mining Rewards Vender Board)" + desc = "The circuit board for a Mining Rewards Vender." + id = "mining_equipment_vendor" + build_path = /obj/item/circuitboard/machine/mining_equipment_vendor + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/stacking_unit_console + name = "Machine Design (Stacking Machine Console)" + desc = "The circuit board for a Stacking Machine Console." + id = "stack_console" + build_path = /obj/item/circuitboard/machine/stacking_unit_console + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/stacking_machine + name = "Machine Design (Stacking Machine)" + desc = "The circuit board for a Stacking Machine." + id = "stack_machine" + build_path = /obj/item/circuitboard/machine/stacking_machine + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/ore_redemption + name = "Machine Design (Ore Redemption Board)" + desc = "The circuit board for an Ore Redemption machine." + id = "ore_redemption" + build_path = /obj/item/circuitboard/machine/ore_redemption + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING \ No newline at end of file diff --git a/code/modules/research/designs/machine_desings/machine_designs_engi.dm b/code/modules/research/designs/machine_desings/machine_designs_engi.dm new file mode 100644 index 0000000000..eb9e00be05 --- /dev/null +++ b/code/modules/research/designs/machine_desings/machine_designs_engi.dm @@ -0,0 +1,106 @@ +/////////////////// +///ENGINE Boards/// +/////////////////// +/datum/design/board/smes + name = "Machine Design (SMES Board)" + desc = "The circuit board for a SMES." + id = "smes" + build_path = /obj/item/circuitboard/machine/smes + category = list ("Engineering Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/circulator + name = "Machine Design (Circulator Board)" + desc = "The circuit board for a circulator." + id = "circulator" + build_path = /obj/item/circuitboard/machine/circulator + category = list ("Engineering Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/teg + name = "Machine Design (TEG Board)" + desc = "The circuit board for a TEG." + id = "teg" + build_path = /obj/item/circuitboard/machine/generator + category = list ("Engineering Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/announcement_system + name = "Machine Design (Automated Announcement System Board)" + desc = "The circuit board for an automated announcement system." + id = "automated_announcement" + build_path = /obj/item/circuitboard/machine/announcement_system + category = list("Subspace Telecomms") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/turbine_computer + name = "Computer Design (Power Turbine Console Board)" + desc = "The circuit board for a power turbine console." + id = "power_turbine_console" + build_path = /obj/item/circuitboard/computer/turbine_computer + category = list ("Engineering Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/emitter + name = "Machine Design (Emitter Board)" + desc = "The circuit board for an emitter." + id = "emitter" + build_path = /obj/item/circuitboard/machine/emitter + category = list ("Engineering Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/power_compressor + name = "Machine Design (Power Compressor Board)" + desc = "The circuit board for a power compressor." + id = "power_compressor" + build_path = /obj/item/circuitboard/machine/power_compressor + category = list ("Engineering Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/power_turbine + name = "Machine Design (Power Turbine Board)" + desc = "The circuit board for a power turbine." + id = "power_turbine" + build_path = /obj/item/circuitboard/machine/power_turbine + category = list ("Engineering Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/tesla_coil + name = "Machine Design (Tesla Coil Board)" + desc = "The circuit board for a tesla coil." + id = "tesla_coil" + build_path = /obj/item/circuitboard/machine/tesla_coil + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/rad_collector + name = "Machine Design (Radiation Collector Board)" + desc = "The circuit board for a radiation collector array." + id = "rad_collector" + build_path = /obj/item/circuitboard/machine/rad_collector + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/grounding_rod + name = "Machine Design (Grounding Rod Board)" + desc = "The circuit board for a grounding rod." + id = "grounding_rod" + build_path = /obj/item/circuitboard/machine/grounding_rod + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/ntnet_relay + name = "Machine Design (NTNet Relay Board)" + desc = "The circuit board for a wireless network relay." + id = "ntnet_relay" + build_path = /obj/item/circuitboard/machine/ntnet_relay + category = list("Subspace Telecomms") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/thermomachine + name = "Machine Design (Freezer/Heater Board)" + desc = "The circuit board for a freezer/heater." + id = "thermomachine" + build_path = /obj/item/circuitboard/machine/thermomachine + category = list ("Engineering Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE \ No newline at end of file diff --git a/code/modules/research/designs/machine_desings/machine_designs_medical.dm b/code/modules/research/designs/machine_desings/machine_designs_medical.dm new file mode 100644 index 0000000000..995b03891c --- /dev/null +++ b/code/modules/research/designs/machine_desings/machine_designs_medical.dm @@ -0,0 +1,90 @@ +/////////////////// +///MEDICAL Boards// +/////////////////// +/datum/design/board/sleeper + name = "Machine Design (Sleeper Board)" + desc = "The circuit board for a sleeper." + id = "sleeper" + build_path = /obj/item/circuitboard/machine/sleeper + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + category = list ("Medical Machinery") + +/datum/design/board/cryotube + name = "Machine Design (Cryotube Board)" + desc = "The circuit board for a cryotube." + id = "cryotube" + build_path = /obj/item/circuitboard/machine/cryo_tube + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + category = list ("Medical Machinery") + +/datum/design/board/chem_dispenser + name = "Machine Design (Portable Chem Dispenser Board)" + desc = "The circuit board for a portable chem dispenser." + id = "chem_dispenser" + build_path = /obj/item/circuitboard/machine/chem_dispenser + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + category = list ("Medical Machinery") + +/datum/design/board/chem_master + name = "Machine Design (Chem Master Board)" + desc = "The circuit board for a Chem Master 3000." + id = "chem_master" + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + build_path = /obj/item/circuitboard/machine/chem_master + category = list ("Medical Machinery") + +/datum/design/board/chem_heater + name = "Machine Design (Chemical Heater Board)" + desc = "The circuit board for a chemical heater." + id = "chem_heater" + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + build_path = /obj/item/circuitboard/machine/chem_heater + category = list ("Medical Machinery") + +/datum/design/board/smoke_machine + name = "Machine Design (Smoke Machine)" + desc = "The circuit board for a smoke machine." + id = "smoke_machine" + build_path = /obj/item/circuitboard/machine/smoke_machine + category = list ("Medical Machinery") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + +/datum/design/board/clonecontrol + name = "Computer Design (Cloning Machine Console)" + desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console." + id = "clonecontrol" + build_path = /obj/item/circuitboard/computer/cloning + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + category = list("Medical Machinery") + +/datum/design/board/clonepod + name = "Machine Design (Clone Pod)" + desc = "Allows for the construction of circuit boards used to build a Cloning Pod." + id = "clonepod" + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + build_path = /obj/item/circuitboard/machine/clonepod + category = list("Medical Machinery") + +/datum/design/board/clonescanner + name = "Machine Design (Cloning Scanner)" + desc = "Allows for the construction of circuit boards used to build a Cloning Scanner." + id = "clonescanner" + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + build_path = /obj/item/circuitboard/machine/clonescanner + category = list("Medical Machinery") + +/datum/design/board/limbgrower + name = "Machine Design (Limb Grower Board)" + desc = "The circuit board for a limb grower." + id = "limbgrower" + build_path = /obj/item/circuitboard/machine/limbgrower + category = list("Medical Machinery") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + +/datum/design/board/harvester + name = "Machine Design (Organ Harvester Board)" + desc = "The circuit board for an organ harvester." + id = "harvester" + build_path = /obj/item/circuitboard/machine/harvester + category = list("Medical Machinery") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL \ No newline at end of file diff --git a/code/modules/research/designs/machine_desings/machine_designs_sci.dm b/code/modules/research/designs/machine_desings/machine_designs_sci.dm new file mode 100644 index 0000000000..6ac14fa7e1 --- /dev/null +++ b/code/modules/research/designs/machine_desings/machine_designs_sci.dm @@ -0,0 +1,155 @@ +/////////////////// +///SCI Boards////// +/////////////////// + +/datum/design/board/teleport_station + name = "Machine Design (Teleportation Station Board)" + desc = "The circuit board for a teleportation station." + id = "tele_station" + build_path = /obj/item/circuitboard/machine/teleporter_station + category = list ("Teleportation Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/teleport_hub + name = "Machine Design (Teleportation Hub Board)" + desc = "The circuit board for a teleportation hub." + id = "tele_hub" + build_path = /obj/item/circuitboard/machine/teleporter_hub + category = list ("Teleportation Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/quantumpad + name = "Machine Design (Quantum Pad Board)" + desc = "The circuit board for a quantum telepad." + id = "quantumpad" + build_path = /obj/item/circuitboard/machine/quantumpad + category = list ("Teleportation Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/launchpad + name = "Machine Design (Bluespace Launchpad Board)" + desc = "The circuit board for a bluespace Launchpad." + id = "launchpad" + build_path = /obj/item/circuitboard/machine/launchpad + category = list ("Teleportation Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/launchpad_console + name = "Machine Design (Bluespace Launchpad Console Board)" + desc = "The circuit board for a bluespace launchpad Console." + id = "launchpad_console" + build_path = /obj/item/circuitboard/computer/launchpad_console + category = list ("Teleportation Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/teleconsole + name = "Computer Design (Teleporter Console)" + desc = "Allows for the construction of circuit boards used to build a teleporter control console." + id = "teleconsole" + build_path = /obj/item/circuitboard/computer/teleporter + category = list("Teleportation Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/destructive_analyzer + name = "Machine Design (Destructive Analyzer Board)" + desc = "The circuit board for a destructive analyzer." + id = "destructive_analyzer" + build_path = /obj/item/circuitboard/machine/destructive_analyzer + category = list("Research Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/experimentor + name = "Machine Design (E.X.P.E.R.I-MENTOR Board)" + desc = "The circuit board for an E.X.P.E.R.I-MENTOR." + id = "experimentor" + build_path = /obj/item/circuitboard/machine/experimentor + category = list("Research Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/protolathe + name = "Machine Design (Protolathe Board)" + desc = "The circuit board for a protolathe." + id = "protolathe" + build_path = /obj/item/circuitboard/machine/protolathe + category = list("Research Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/circuit_imprinter + name = "Machine Design (Circuit Imprinter Board)" + desc = "The circuit board for a circuit imprinter." + id = "circuit_imprinter" + build_path = /obj/item/circuitboard/machine/circuit_imprinter + category = list("Research Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/rdservercontrol + name = "Computer Design (R&D Server Control Console Board)" + desc = "The circuit board for an R&D Server Control Console." + id = "rdservercontrol" + build_path = /obj/item/circuitboard/computer/rdservercontrol + category = list("Research Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/rdserver + name = "Machine Design (R&D Server Board)" + desc = "The circuit board for an R&D Server." + id = "rdserver" + build_path = /obj/item/circuitboard/machine/rdserver + category = list("Research Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/mechfab + name = "Machine Design (Exosuit Fabricator Board)" + desc = "The circuit board for an Exosuit Fabricator." + id = "mechfab" + build_path = /obj/item/circuitboard/machine/mechfab + category = list("Research Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/cyborgrecharger + name = "Machine Design (Cyborg Recharger Board)" + desc = "The circuit board for a Cyborg Recharger." + id = "cyborgrecharger" + build_path = /obj/item/circuitboard/machine/cyborgrecharger + category = list("Research Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/mech_recharger + name = "Machine Design (Mechbay Recharger Board)" + desc = "The circuit board for a Mechbay Recharger." + id = "mech_recharger" + build_path = /obj/item/circuitboard/machine/mech_recharger + category = list("Research Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/nanite_chamber + name = "Machine Design (Nanite Chamber Board)" + desc = "The circuit board for a Nanite Chamber." + id = "nanite_chamber" + build_path = /obj/item/circuitboard/machine/nanite_chamber + category = list("Research Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/public_nanite_chamber + name = "Machine Design (Public Nanite Chamber Board)" + desc = "The circuit board for a Public Nanite Chamber." + id = "public_nanite_chamber" + build_path = /obj/item/circuitboard/machine/public_nanite_chamber + category = list("Research Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/nanite_programmer + name = "Machine Design (Nanite Programmer Board)" + desc = "The circuit board for a Nanite Programmer." + id = "nanite_programmer" + build_path = /obj/item/circuitboard/machine/nanite_programmer + category = list("Research Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/nanite_program_hub + name = "Machine Design (Nanite Program Hub Board)" + desc = "The circuit board for a Nanite Program Hub." + id = "nanite_program_hub" + build_path = /obj/item/circuitboard/machine/nanite_program_hub + category = list("Research Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE \ No newline at end of file diff --git a/code/modules/research/designs/machine_desings/machine_designs_service.dm b/code/modules/research/designs/machine_desings/machine_designs_service.dm new file mode 100644 index 0000000000..895ad032ba --- /dev/null +++ b/code/modules/research/designs/machine_desings/machine_designs_service.dm @@ -0,0 +1,90 @@ +/////////////////// +///CIV Boards/// +/////////////////// +/datum/design/board/gibber + name = "Machine Design (Gibber Board)" + desc = "The circuit board for a gibber." + id = "gibber" + build_path = /obj/item/circuitboard/machine/gibber + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/board/seed_extractor + name = "Machine Design (Seed Extractor Board)" + desc = "The circuit board for a seed extractor." + id = "seed_extractor" + build_path = /obj/item/circuitboard/machine/seed_extractor + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/board/soda_dispenser + name = "Machine Design (Portable Soda Dispenser Board)" + desc = "The circuit board for a portable soda dispenser." + id = "soda_dispenser" + build_path = /obj/item/circuitboard/machine/chem_dispenser/drinks + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + category = list ("Misc. Machinery") + +/datum/design/board/beer_dispenser + name = "Machine Design (Portable Booze Dispenser Board)" + desc = "The circuit board for a portable booze dispenser." + id = "beer_dispenser" + build_path = /obj/item/circuitboard/machine/chem_dispenser/drinks/beer + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + category = list ("Misc. Machinery") + +/datum/design/board/plantgenes + name = "Machine Design (Plant DNA Manipulator Board)" + desc = "The circuit board for a plant DNA manipulator." + id = "plantgenes" + build_path = /obj/item/circuitboard/machine/plantgenes + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/board/deepfryer + name = "Machine Design (Deep Fryer)" + desc = "The circuit board for a Deep Fryer." + id = "deepfryer" + build_path = /obj/item/circuitboard/machine/deep_fryer + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/board/dish_drive + name = "Machine Design (Dish Drive)" + desc = "The circuit board for a dish drive." + id = "dish_drive" + build_path = /obj/item/circuitboard/machine/dish_drive + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/board/biogenerator + name = "Machine Design (Biogenerator Board)" + desc = "The circuit board for a biogenerator." + id = "biogenerator" + build_path = /obj/item/circuitboard/machine/biogenerator + category = list ("Hydroponics Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/board/hydroponics + name = "Machine Design (Hydroponics Tray Board)" + desc = "The circuit board for a hydroponics tray." + id = "hydro_tray" + build_path = /obj/item/circuitboard/machine/hydroponics + category = list ("Hydroponics Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE + +/datum/design/board/monkey_recycler + name = "Machine Design (Monkey Recycler Board)" + desc = "The circuit board for a monkey recycler." + id = "monkey_recycler" + build_path = /obj/item/circuitboard/machine/monkey_recycler + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/processor + name = "Machine Design (Food/Slime Processor Board)" + desc = "The circuit board for a processing unit. Screwdriver the circuit to switch between food (default) or slime processing." + id = "processor" + build_path = /obj/item/circuitboard/machine/processor + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_SCIENCE From f47c0786f3c7bd52c5e5c2dbbf22c7892039d3e4 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 11 May 2019 11:42:31 -0400 Subject: [PATCH 021/276] Add files via upload --- .../comp_board_designs_all_misc.dm | 38 ++++++++ .../comp_board_designs_cargo .dm | 35 +++++++ .../comp_board_designs_engi.dm | 75 +++++++++++++++ .../comp_board_designs_medical.dm | 43 +++++++++ .../comp_board_designs_sci.dm | 93 +++++++++++++++++++ .../comp_board_designs_sec.dm | 43 +++++++++ 6 files changed, 327 insertions(+) create mode 100644 code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm create mode 100644 code/modules/research/designs/comp_board_designs/comp_board_designs_cargo .dm create mode 100644 code/modules/research/designs/comp_board_designs/comp_board_designs_engi.dm create mode 100644 code/modules/research/designs/comp_board_designs/comp_board_designs_medical.dm create mode 100644 code/modules/research/designs/comp_board_designs/comp_board_designs_sci.dm create mode 100644 code/modules/research/designs/comp_board_designs/comp_board_designs_sec.dm diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm b/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm new file mode 100644 index 0000000000..780a1bc97d --- /dev/null +++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm @@ -0,0 +1,38 @@ +///////////////////Computer Boards/////////////////////////////////// +/datum/design/board + name = "Computer Design ( NULL ENTRY )" + desc = "A blank compurter board!" + build_type = IMPRINTER + materials = list(MAT_GLASS = 1000) + +/datum/design/board/arcade_battle + name = "Computer Design (Battle Arcade Machine)" + desc = "Allows for the construction of circuit boards used to build a new arcade machine." + id = "arcade_battle" + build_path = /obj/item/circuitboard/computer/arcade/battle + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/orion_trail + name = "Computer Design (Orion Trail Arcade Machine)" + desc = "Allows for the construction of circuit boards used to build a new Orion Trail machine." + id = "arcade_orion" + build_path = /obj/item/circuitboard/computer/arcade/orion_trail + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/slot_machine + name = "Computer Design (Slot Machine)" + desc = "Allows for the construction of circuit boards used to build a new slot machine." + id = "slotmachine" + build_path = /obj/item/circuitboard/computer/slot_machine + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/libraryconsole + name = "Computer Design (Library Console)" + desc = "Allows for the construction of circuit boards used to build a new library console." + id = "libraryconsole" + build_path = /obj/item/circuitboard/computer/libraryconsole + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ALL \ No newline at end of file diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo .dm b/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo .dm new file mode 100644 index 0000000000..fd548adc76 --- /dev/null +++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo .dm @@ -0,0 +1,35 @@ +/////////////////// +///CARGO Boards//// +/////////////////// + +/datum/design/board/cargo + name = "Computer Design (Supply Console)" + desc = "Allows for the construction of circuit boards used to build a Supply Console." + id = "cargo" + build_path = /obj/item/circuitboard/computer/cargo + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_CARGO + +/datum/design/board/cargorequest + name = "Computer Design (Supply Request Console)" + desc = "Allows for the construction of circuit boards used to build a Supply Request Console." + id = "cargorequest" + build_path = /obj/item/circuitboard/computer/cargo/request + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_CARGO + +/datum/design/board/bounty + name = "Computer Design (Bounty Console)" + desc = "Allows for the construction of circuit boards used to build a Bounty Console." + id = "bounty" + build_path = /obj/item/circuitboard/computer/bounty + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_CARGO + +/datum/design/board/mining + name = "Computer Design (Outpost Status Display)" + desc = "Allows for the construction of circuit boards used to build an outpost status display console." + id = "mining" + build_path = /obj/item/circuitboard/computer/mining + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SECURITY \ No newline at end of file diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_engi.dm b/code/modules/research/designs/comp_board_designs/comp_board_designs_engi.dm new file mode 100644 index 0000000000..5767588178 --- /dev/null +++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_engi.dm @@ -0,0 +1,75 @@ +/////////////////// +///ENGINE Boards/// +/////////////////// + +/datum/design/board/comm_monitor + name = "Computer Design (Telecommunications Monitoring Console)" + desc = "Allows for the construction of circuit boards used to build a telecommunications monitor." + id = "comm_monitor" + build_path = /obj/item/circuitboard/computer/comm_monitor + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/comm_server + name = "Computer Design (Telecommunications Server Monitoring Console)" + desc = "Allows for the construction of circuit boards used to build a telecommunication server browser and monitor." + id = "comm_server" + build_path = /obj/item/circuitboard/computer/comm_server + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/message_monitor + name = "Computer Design (Messaging Monitor Console)" + desc = "Allows for the construction of circuit boards used to build a messaging monitor console." + id = "message_monitor" + build_path = /obj/item/circuitboard/computer/message_monitor + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/apc_control + name = "Computer Design (APC Control)" + desc = "Allows for the construction of circuit boards used to build a new APC control console." + id = "apc_control" + build_path = /obj/item/circuitboard/computer/apc_control + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/meteor_console + name = "Computer Design (Meteor Satellite Console)" + desc = "Allows for the construction of circuit boards used to build a new Meteor Satellite monitor console." + id = "meteor_console" + build_path = /obj/item/circuitboard/computer/sat_control + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/atmosalerts + name = "Computer Design (Atmosphere Alert)" + desc = "Allows for the construction of circuit boards used to build an atmosphere alert console." + id = "atmosalerts" + build_path = /obj/item/circuitboard/computer/atmos_alert + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/atmos_control + name = "Computer Design (Atmospheric Monitor)" + desc = "Allows for the construction of circuit boards used to build an Atmospheric Monitor." + id = "atmos_control" + build_path = /obj/item/circuitboard/computer/atmos_control + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/powermonitor + name = "Computer Design (Power Monitor)" + desc = "Allows for the construction of circuit boards used to build a new power monitor." + id = "powermonitor" + build_path = /obj/item/circuitboard/computer/powermonitor + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING + +/datum/design/board/solarcontrol + name = "Computer Design (Solar Control)" + desc = "Allows for the construction of circuit boards used to build a solar control console." + id = "solarcontrol" + build_path = /obj/item/circuitboard/computer/solar_control + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING \ No newline at end of file diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_medical.dm b/code/modules/research/designs/comp_board_designs/comp_board_designs_medical.dm new file mode 100644 index 0000000000..e4dff1f0fc --- /dev/null +++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_medical.dm @@ -0,0 +1,43 @@ +/////////////////// +///MEDICAL Boards// +/////////////////// + +/datum/design/board/med_data + name = "Computer Design (Medical Records)" + desc = "Allows for the construction of circuit boards used to build a medical records console." + id = "med_data" + build_path = /obj/item/circuitboard/computer/med_data + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + +/datum/design/board/operating + name = "Computer Design (Operating Computer)" + desc = "Allows for the construction of circuit boards used to build an operating computer console." + id = "operating" + build_path = /obj/item/circuitboard/computer/operating + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/pandemic + name = "Computer Design (PanD.E.M.I.C. 2200)" + desc = "Allows for the construction of circuit boards used to build a PanD.E.M.I.C. 2200 console." + id = "pandemic" + build_path = /obj/item/circuitboard/computer/pandemic + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + +/datum/design/board/scan_console + name = "Computer Design (DNA Machine)" + desc = "Allows for the construction of circuit boards used to build a new DNA scanning console." + id = "scan_console" + build_path = /obj/item/circuitboard/computer/scan_consolenew + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/crewconsole + name = "Computer Design (Crew monitoring computer)" + desc = "Allows for the construction of circuit boards used to build a Crew monitoring computer." + id = "crewconsole" + build_path = /obj/item/circuitboard/computer/crew + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SECURITY \ No newline at end of file diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_sci.dm b/code/modules/research/designs/comp_board_designs/comp_board_designs_sci.dm new file mode 100644 index 0000000000..e0b0a22be6 --- /dev/null +++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_sci.dm @@ -0,0 +1,93 @@ +/////////////////// +///SCI Boards////// +/////////////////// + +/datum/design/board/rdcamera + name = "Computer Design (Research Monitor)" + desc = "Allows for the construction of circuit boards used to build research camera computers." + id = "rdcamera" + build_path = /obj/item/circuitboard/computer/research + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/xenobiocamera + name = "Computer Design (Xenobiology Console)" + desc = "Allows for the construction of circuit boards used to build xenobiology camera computers." + id = "xenobioconsole" + build_path = /obj/item/circuitboard/computer/xenobiology + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/aiupload + name = "Computer Design (AI Upload)" + desc = "Allows for the construction of circuit boards used to build an AI Upload Console." + id = "aiupload" + materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) + build_path = /obj/item/circuitboard/computer/aiupload + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/borgupload + name = "Computer Design (Cyborg Upload)" + desc = "Allows for the construction of circuit boards used to build a Cyborg Upload Console." + id = "borgupload" + materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) + build_path = /obj/item/circuitboard/computer/borgupload + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/robocontrol + name = "Computer Design (Robotics Control Console)" + desc = "Allows for the construction of circuit boards used to build a Robotics Control console." + id = "robocontrol" + build_path = /obj/item/circuitboard/computer/robotics + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/mechacontrol + name = "Computer Design (Exosuit Control Console)" + desc = "Allows for the construction of circuit boards used to build an exosuit control console." + id = "mechacontrol" + build_path = /obj/item/circuitboard/computer/mecha_control + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/mechapower + name = "Computer Design (Mech Bay Power Control Console)" + desc = "Allows for the construction of circuit boards used to build a mech bay power control console." + id = "mechapower" + build_path = /obj/item/circuitboard/computer/mech_bay_power_console + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/rdconsole + name = "Computer Design (R&D Console)" + desc = "Allows for the construction of circuit boards used to build a new R&D console." + id = "rdconsole" + build_path = /obj/item/circuitboard/computer/rdconsole + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/nanite_chamber_control + name = "Computer Design (Nanite Chamber Control)" + desc = "Allows for the construction of circuit boards used to build a new nanite chamber control console." + id = "nanite_chamber_control" + build_path = /obj/item/circuitboard/computer/nanite_chamber_control + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/nanite_cloud_control + name = "Computer Design (Nanite Cloud Control)" + desc = "Allows for the construction of circuit boards used to build a new nanite cloud control console." + id = "nanite_cloud_control" + build_path = /obj/item/circuitboard/computer/nanite_cloud_controller + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/board/aifixer + name = "Computer Design (AI Integrity Restorer)" + desc = "Allows for the construction of circuit boards used to build an AI Integrity Restorer." + id = "aifixer" + build_path = /obj/item/circuitboard/computer/aifixer + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE \ No newline at end of file diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_sec.dm b/code/modules/research/designs/comp_board_designs/comp_board_designs_sec.dm new file mode 100644 index 0000000000..2850bcec0a --- /dev/null +++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_sec.dm @@ -0,0 +1,43 @@ +/////////////////// +///SECURITY Boards/ +/////////////////// + +/datum/design/board/seccamera + name = "Computer Design (Security Camera)" + desc = "Allows for the construction of circuit boards used to build security camera computers." + id = "seccamera" + build_path = /obj/item/circuitboard/computer/security + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/board/comconsole + name = "Computer Design (Communications)" + desc = "Allows for the construction of circuit boards used to build a communications console." + id = "comconsole" + build_path = /obj/item/circuitboard/computer/communications + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY //Honestly should have a bridge techfab for this sometime. + +/datum/design/board/idcardconsole + name = "Computer Design (ID Console)" + desc = "Allows for the construction of circuit boards used to build an ID computer." + id = "idcardconsole" + build_path = /obj/item/circuitboard/computer/card + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY //Honestly should have a bridge techfab for this sometime. + +/datum/design/board/secdata + name = "Computer Design (Security Records Console)" + desc = "Allows for the construction of circuit boards used to build a security records console." + id = "secdata" + build_path = /obj/item/circuitboard/computer/secure_data + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/board/prisonmanage + name = "Computer Design (Prisoner Management Console)" + desc = "Allows for the construction of circuit boards used to build a prisoner management console." + id = "prisonmanage" + build_path = /obj/item/circuitboard/computer/prisoner + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY \ No newline at end of file From dc9f8ecf97a554363878e05d6dd72b940eeca7a6 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 11 May 2019 12:24:44 -0400 Subject: [PATCH 022/276] Update tgstation.dme --- tgstation.dme | 1 + 1 file changed, 1 insertion(+) diff --git a/tgstation.dme b/tgstation.dme index a1af025488..4616830692 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2492,6 +2492,7 @@ #include "code\modules\research\designs\electronics_designs.dm" #include "code\modules\research\designs\equipment_designs.dm" #include "code\modules\research\designs\limbgrower_designs.dm" +#include "code\modules\research\designs\machine_desings\machine_designs_all_misc.dm" #include "code\modules\research\designs\machine_desings\machine_designs_cargo.dm" #include "code\modules\research\designs\machine_desings\machine_designs_engi.dm" #include "code\modules\research\designs\machine_desings\machine_designs_medical.dm" From 1f1926a70ef4b0499449066b05f5f22039d54b9d Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 11 May 2019 12:26:56 -0400 Subject: [PATCH 023/276] Create machine_designs_all_misc.dm --- .../machine_designs_all_misc.dm | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 code/modules/research/designs/machine_desings/machine_designs_all_misc.dm diff --git a/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm b/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm new file mode 100644 index 0000000000..31723cde07 --- /dev/null +++ b/code/modules/research/designs/machine_desings/machine_designs_all_misc.dm @@ -0,0 +1,100 @@ +//////////////////////////////////////// +//////////////MISC Boards/////////////// +//////////////////////////////////////// + +/datum/design/board/recycler + name = "Machine Design (Recycler Board)" + desc = "The circuit board for a recycler." + id = "recycler" + build_path = /obj/item/circuitboard/machine/recycler + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/holopad + name = "Machine Design (AI Holopad Board)" + desc = "The circuit board for a holopad." + id = "holopad" + build_path = /obj/item/circuitboard/machine/holopad + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/autolathe + name = "Machine Design (Autolathe Board)" + desc = "The circuit board for an autolathe." + id = "autolathe" + build_path = /obj/item/circuitboard/machine/autolathe + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/recharger + name = "Machine Design (Weapon Recharger Board)" + desc = "The circuit board for a Weapon Recharger." + id = "recharger" + materials = list(MAT_GLASS = 1000, MAT_GOLD = 2000) + build_path = /obj/item/circuitboard/machine/recharger + category = list("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/vendor + name = "Machine Design (Vendor Board)" + desc = "The circuit board for a Vendor." + id = "vendor" + build_path = /obj/item/circuitboard/machine/vendor + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/donksofttoyvendor + name = "Machine Design (Donksoft Toy Vendor Board)" + desc = "The circuit board for a Donksoft Toy Vendor." + id = "donksofttoyvendor" + build_path = /obj/item/circuitboard/machine/vending/donksofttoyvendor + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/space_heater + name = "Machine Design (Space Heater Board)" + desc = "The circuit board for a space heater." + id = "space_heater" + build_path = /obj/item/circuitboard/machine/space_heater + category = list ("Engineering Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/reagentgrinder + name = "Machine Design (All-In-One Grinder)" + desc = "The circuit board for an All-In-One Grinder." + id = "reagentgrinder" + build_path = /obj/item/circuitboard/machine/reagentgrinder + category = list ("Medical Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/microwave + name = "Machine Design (Microwave Board)" + desc = "The circuit board for a microwave." + id = "microwave" + build_path = /obj/item/circuitboard/machine/microwave + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/smartfridge + name = "Machine Design (Smartfridge Board)" + desc = "The circuit board for a smartfridge." + id = "smartfridge" + build_path = /obj/item/circuitboard/machine/smartfridge + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/cell_charger + name = "Machine Design (Cell Charger Board)" + desc = "The circuit board for a cell charger." + id = "cell_charger" + build_path = /obj/item/circuitboard/machine/cell_charger + category = list ("Misc. Machinery") + departmental_flags = DEPARTMENTAL_FLAG_ALL + +/datum/design/board/vr_sleeper + name = "Machine Design (VR Sleeper Board)" + desc = "The circuit board for a VR sleeper." + id = "vr_sleeper" + build_path = /obj/item/circuitboard/machine/vr_sleeper + departmental_flags = DEPARTMENTAL_FLAG_ALL + category = list ("Medical Machinery") From db74544a7ce72046471190e3e8a76dd6d89456f3 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 12 May 2019 02:02:49 -0400 Subject: [PATCH 024/276] Create autolathe_designs.dm --- code/modules/research/designs/autolathe_designs.dm | 1 + 1 file changed, 1 insertion(+) create mode 100644 code/modules/research/designs/autolathe_designs.dm diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/code/modules/research/designs/autolathe_designs.dm @@ -0,0 +1 @@ + From 3e4412e171fba8a8c319ca4665b0ffb79a20f3c3 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 12 May 2019 02:04:07 -0400 Subject: [PATCH 025/276] Delete autolathe_designs.dm --- .../research/designs/autolathe_designs.dm | 868 ------------------ 1 file changed, 868 deletions(-) delete mode 100644 code/modules/research/designs/autolathe_designs.dm diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm deleted file mode 100644 index e3acab9ebc..0000000000 --- a/code/modules/research/designs/autolathe_designs.dm +++ /dev/null @@ -1,868 +0,0 @@ -/datum/design/bucket - name = "Bucket" - id = "bucket" - build_type = AUTOLATHE - materials = list(MAT_METAL = 200) - build_path = /obj/item/reagent_containers/glass/bucket - category = list("initial","Tools") - -/datum/design/crowbar - name = "Pocket Crowbar" - id = "crowbar" - build_type = AUTOLATHE - materials = list(MAT_METAL = 50) - build_path = /obj/item/crowbar - category = list("initial","Tools") - -/datum/design/flashlight - name = "Flashlight" - id = "flashlight" - build_type = AUTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 20) - build_path = /obj/item/flashlight - category = list("initial","Tools") - -/datum/design/extinguisher - name = "Fire Extinguisher" - id = "extinguisher" - build_type = AUTOLATHE - materials = list(MAT_METAL = 90) - build_path = /obj/item/extinguisher - category = list("initial","Tools") - -/datum/design/pocketfireextinguisher - name = "Pocket Fire Extinguisher" - id = "pocketfireextinguisher" - build_type = AUTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 40) - build_path = /obj/item/extinguisher/mini - category = list("initial","Tools") - -/datum/design/multitool - name = "Multitool" - id = "multitool" - build_type = AUTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 20) - build_path = /obj/item/multitool - category = list("initial","Tools") - -/datum/design/analyzer - name = "Analyzer" - id = "analyzer" - build_type = AUTOLATHE - materials = list(MAT_METAL = 30, MAT_GLASS = 20) - build_path = /obj/item/analyzer - category = list("initial","Tools") - -/datum/design/tscanner - name = "T-Ray Scanner" - id = "tscanner" - build_type = AUTOLATHE - materials = list(MAT_METAL = 150) - build_path = /obj/item/t_scanner - category = list("initial","Tools") - -/datum/design/weldingtool - name = "Welding Tool" - id = "welding_tool" - build_type = AUTOLATHE - materials = list(MAT_METAL = 70, MAT_GLASS = 20) - build_path = /obj/item/weldingtool - category = list("initial","Tools") - -/datum/design/mini_weldingtool - name = "Emergency Welding Tool" - id = "mini_welding_tool" - build_type = AUTOLATHE - materials = list(MAT_METAL = 30, MAT_GLASS = 10) - build_path = /obj/item/weldingtool/mini - category = list("initial","Tools") - -/datum/design/screwdriver - name = "Screwdriver" - id = "screwdriver" - build_type = AUTOLATHE - materials = list(MAT_METAL = 75) - build_path = /obj/item/screwdriver - category = list("initial","Tools") - -/datum/design/wirecutters - name = "Wirecutters" - id = "wirecutters" - build_type = AUTOLATHE - materials = list(MAT_METAL = 80) - build_path = /obj/item/wirecutters - category = list("initial","Tools") - -/datum/design/wrench - name = "Wrench" - id = "wrench" - build_type = AUTOLATHE - materials = list(MAT_METAL = 150) - build_path = /obj/item/wrench - category = list("initial","Tools") - -/datum/design/welding_helmet - name = "Welding Helmet" - id = "welding_helmet" - build_type = AUTOLATHE - materials = list(MAT_METAL = 1750, MAT_GLASS = 400) - build_path = /obj/item/clothing/head/welding - category = list("initial","Tools") - -/datum/design/cable_coil - name = "Cable Coil" - id = "cable_coil" - build_type = AUTOLATHE - materials = list(MAT_METAL = 10, MAT_GLASS = 5) - build_path = /obj/item/stack/cable_coil/random - category = list("initial","Tools") - maxstack = 30 - -/datum/design/toolbox - name = "Toolbox" - id = "tool_box" - build_type = AUTOLATHE - materials = list(MAT_METAL = 500) - build_path = /obj/item/storage/toolbox - category = list("initial","Tools") - -/datum/design/apc_board - name = "APC Module" - id = "power control" - build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 100, MAT_GLASS = 100) - build_path = /obj/item/electronics/apc - category = list("initial", "Electronics") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/airlock_board - name = "Airlock Electronics" - id = "airlock_board" - build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) - build_path = /obj/item/electronics/airlock - category = list("initial", "Electronics") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/firelock_board - name = "Firelock Circuitry" - id = "firelock_board" - build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) - build_path = /obj/item/electronics/firelock - category = list("initial", "Electronics") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/airalarm_electronics - name = "Air Alarm Electronics" - id = "airalarm_electronics" - build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) - build_path = /obj/item/electronics/airalarm - category = list("initial", "Electronics") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/firealarm_electronics - name = "Fire Alarm Electronics" - id = "firealarm_electronics" - build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) - build_path = /obj/item/electronics/firealarm - category = list("initial", "Electronics") - departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING - -/datum/design/camera - name = "Camera" - id = "camera" - build_type = AUTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 100) - build_path = /obj/item/camera - category = list("initial", "Misc") - -/datum/design/camera_film - name = "Camera Film Cartridge" - id = "camera_film" - build_type = AUTOLATHE - materials = list(MAT_METAL = 10, MAT_GLASS = 10) - build_path = /obj/item/camera_film - category = list("initial", "Misc") - -/datum/design/earmuffs - name = "Earmuffs" - id = "earmuffs" - build_type = AUTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 500) - build_path = /obj/item/clothing/ears/earmuffs - category = list("initial", "Misc") - -/datum/design/pipe_painter - name = "Pipe Painter" - id = "pipe_painter" - build_type = AUTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 2000) - build_path = /obj/item/pipe_painter - category = list("initial", "Misc") - -/datum/design/airlock_painter - name = "Airlock Painter" - id = "airlock_painter" - build_type = AUTOLATHE - materials = list(MAT_METAL = 50, MAT_GLASS = 50) - build_path = /obj/item/airlock_painter - category = list("initial", "Misc") - -/datum/design/metal - name = "Metal" - id = "metal" - build_type = AUTOLATHE - materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT) - build_path = /obj/item/stack/sheet/metal - category = list("initial","Construction") - maxstack = 50 - -/datum/design/glass - name = "Glass" - id = "glass" - build_type = AUTOLATHE - materials = list(MAT_GLASS = MINERAL_MATERIAL_AMOUNT) - build_path = /obj/item/stack/sheet/glass - category = list("initial","Construction") - maxstack = 50 - -/datum/design/rglass - name = "Reinforced Glass" - id = "rglass" - build_type = AUTOLATHE | SMELTER | PROTOLATHE - materials = list(MAT_METAL = 1000, MAT_GLASS = MINERAL_MATERIAL_AMOUNT) - build_path = /obj/item/stack/sheet/rglass - category = list("initial","Construction","Stock Parts") - maxstack = 50 - -/datum/design/rods - name = "Metal Rod" - id = "rods" - build_type = AUTOLATHE - materials = list(MAT_METAL = 1000) - build_path = /obj/item/stack/rods - category = list("initial","Construction") - maxstack = 50 - -/datum/design/rcd_ammo - name = "Compressed Matter Cartridge" - id = "rcd_ammo" - build_type = AUTOLATHE - materials = list(MAT_METAL = 12000, MAT_GLASS=8000) - build_path = /obj/item/rcd_ammo - category = list("initial","Construction") - -/datum/design/kitchen_knife - name = "Kitchen Knife" - id = "kitchen_knife" - build_type = AUTOLATHE - materials = list(MAT_METAL = 12000) - build_path = /obj/item/kitchen/knife - category = list("initial","Dinnerware") - -/datum/design/fork - name = "Fork" - id = "fork" - build_type = AUTOLATHE - materials = list(MAT_METAL = 80) - build_path = /obj/item/kitchen/fork - category = list("initial","Dinnerware") - -/datum/design/tray - name = "Tray" - id = "tray" - build_type = AUTOLATHE - materials = list(MAT_METAL = 3000) - build_path = /obj/item/storage/bag/tray - category = list("initial","Dinnerware") - -/datum/design/bowl - name = "Bowl" - id = "bowl" - build_type = AUTOLATHE - materials = list(MAT_GLASS = 500) - build_path = /obj/item/reagent_containers/glass/bowl - category = list("initial","Dinnerware") - -/datum/design/drinking_glass - name = "Drinking Glass" - id = "drinking_glass" - build_type = AUTOLATHE - materials = list(MAT_GLASS = 500) - build_path = /obj/item/reagent_containers/food/drinks/drinkingglass - category = list("initial","Dinnerware") - -/datum/design/shot_glass - name = "Shot Glass" - id = "shot_glass" - build_type = AUTOLATHE - materials = list(MAT_GLASS = 100) - build_path = /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass - category = list("initial","Dinnerware") - -/datum/design/shaker - name = "Shaker" - id = "shaker" - build_type = AUTOLATHE - materials = list(MAT_METAL = 1500) - build_path = /obj/item/reagent_containers/food/drinks/shaker - category = list("initial","Dinnerware") - -/datum/design/cultivator - name = "Cultivator" - id = "cultivator" - build_type = AUTOLATHE - materials = list(MAT_METAL=50) - build_path = /obj/item/cultivator - category = list("initial","Misc") - -/datum/design/plant_analyzer - name = "Plant Analyzer" - id = "plant_analyzer" - build_type = AUTOLATHE - materials = list(MAT_METAL = 30, MAT_GLASS = 20) - build_path = /obj/item/plant_analyzer - category = list("initial","Misc") - -/datum/design/shovel - name = "Shovel" - id = "shovel" - build_type = AUTOLATHE - materials = list(MAT_METAL = 50) - build_path = /obj/item/shovel - category = list("initial","Misc") - -/datum/design/spade - name = "Spade" - id = "spade" - build_type = AUTOLATHE - materials = list(MAT_METAL = 50) - build_path = /obj/item/shovel/spade - category = list("initial","Misc") - -/datum/design/hatchet - name = "Hatchet" - id = "hatchet" - build_type = AUTOLATHE - materials = list(MAT_METAL = 15000) - build_path = /obj/item/hatchet - category = list("initial","Misc") - -/datum/design/foilhat - name = "Tinfoil Hat" - id = "tinfoil_hat" - build_type = AUTOLATHE - materials = list(MAT_METAL = 5500) - build_path = /obj/item/clothing/head/foilhat - category = list("hacked", "Misc") - -/datum/design/scalpel - name = "Scalpel" - id = "scalpel" - build_type = AUTOLATHE - materials = list(MAT_METAL = 4000, MAT_GLASS = 1000) - build_path = /obj/item/scalpel - category = list("initial", "Medical") - -/datum/design/circular_saw - name = "Circular Saw" - id = "circular_saw" - build_type = AUTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 6000) - build_path = /obj/item/circular_saw - category = list("initial", "Medical") - -/datum/design/surgicaldrill - name = "Surgical Drill" - id = "surgicaldrill" - build_type = AUTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 6000) - build_path = /obj/item/surgicaldrill - category = list("initial", "Medical") - -/datum/design/retractor - name = "Retractor" - id = "retractor" - build_type = AUTOLATHE - materials = list(MAT_METAL = 6000, MAT_GLASS = 3000) - build_path = /obj/item/retractor - category = list("initial", "Medical") - -/datum/design/cautery - name = "Cautery" - id = "cautery" - build_type = AUTOLATHE - materials = list(MAT_METAL = 2500, MAT_GLASS = 750) - build_path = /obj/item/cautery - category = list("initial", "Medical") - -/datum/design/hemostat - name = "Hemostat" - id = "hemostat" - build_type = AUTOLATHE - materials = list(MAT_METAL = 5000, MAT_GLASS = 2500) - build_path = /obj/item/hemostat - category = list("initial", "Medical") - -/datum/design/beaker - name = "Beaker" - id = "beaker" - build_type = AUTOLATHE - materials = list(MAT_GLASS = 500) - build_path = /obj/item/reagent_containers/glass/beaker - category = list("initial", "Medical") - -/datum/design/large_beaker - name = "Large Beaker" - id = "large_beaker" - build_type = AUTOLATHE - materials = list(MAT_GLASS = 2500) - build_path = /obj/item/reagent_containers/glass/beaker/large - category = list("initial", "Medical") - -/datum/design/healthanalyzer - name = "Health Analyzer" - id = "healthanalyzer" - build_type = AUTOLATHE | PROTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 50) - build_path = /obj/item/healthanalyzer - category = list("initial", "Medical") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL - -/datum/design/pillbottle - name = "Pill Bottle" - id = "pillbottle" - build_type = AUTOLATHE - materials = list(MAT_METAL = 20, MAT_GLASS = 100) - build_path = /obj/item/storage/pill_bottle - category = list("initial", "Medical") - -/datum/design/beanbag_slug - name = "Beanbag Slug" - id = "beanbag_slug" - build_type = AUTOLATHE - materials = list(MAT_METAL = 250) - build_path = /obj/item/ammo_casing/shotgun/beanbag - category = list("initial", "Security") - -/datum/design/rubbershot - name = "Rubber Shot" - id = "rubber_shot" - build_type = AUTOLATHE - materials = list(MAT_METAL = 4000) - build_path = /obj/item/ammo_casing/shotgun/rubbershot - category = list("initial", "Security") - -/datum/design/c38 - name = "Speed Loader (.38 rubber)" - id = "c38" - build_type = AUTOLATHE - materials = list(MAT_METAL = 20000) - build_path = /obj/item/ammo_box/c38 - category = list("initial", "Security") - -/datum/design/recorder - name = "Universal Recorder" - id = "recorder" - build_type = AUTOLATHE - materials = list(MAT_METAL = 60, MAT_GLASS = 30) - build_path = /obj/item/taperecorder/empty - category = list("initial", "Misc") - -/datum/design/tape - name = "Tape" - id = "tape" - build_type = AUTOLATHE - materials = list(MAT_METAL = 20, MAT_GLASS = 5) - build_path = /obj/item/tape/random - category = list("initial", "Misc") - -/datum/design/igniter - name = "Igniter" - id = "igniter" - build_type = AUTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 50) - build_path = /obj/item/assembly/igniter - category = list("initial", "Misc") - -/datum/design/signaler - name = "Remote Signaling Device" - id = "signaler" - build_type = AUTOLATHE - materials = list(MAT_METAL = 400, MAT_GLASS = 120) - build_path = /obj/item/assembly/signaler - category = list("initial", "T-Comm") - -/datum/design/radio_headset - name = "Radio Headset" - id = "radio_headset" - build_type = AUTOLATHE - materials = list(MAT_METAL = 75) - build_path = /obj/item/radio/headset - category = list("initial", "T-Comm") - -/datum/design/bounced_radio - name = "Station Bounced Radio" - id = "bounced_radio" - build_type = AUTOLATHE - materials = list(MAT_METAL = 75, MAT_GLASS = 25) - build_path = /obj/item/radio/off - category = list("initial", "T-Comm") - -/datum/design/intercom_frame - name = "Intercom Frame" - id = "intercom_frame" - build_type = AUTOLATHE - materials = list(MAT_METAL = 75, MAT_GLASS = 25) - build_path = /obj/item/wallframe/intercom - category = list("initial", "T-Comm") - -/datum/design/infrared_emitter - name = "Infrared Emitter" - id = "infrared_emitter" - build_type = AUTOLATHE - materials = list(MAT_METAL = 1000, MAT_GLASS = 500) - build_path = /obj/item/assembly/infra - category = list("initial", "Misc") - -/datum/design/health_sensor - name = "Health Sensor" - id = "health_sensor" - build_type = AUTOLATHE - materials = list(MAT_METAL = 800, MAT_GLASS = 200) - build_path = /obj/item/assembly/health - category = list("initial", "Medical") - -/datum/design/timer - name = "Timer" - id = "timer" - build_type = AUTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 50) - build_path = /obj/item/assembly/timer - category = list("initial", "Misc") - -/datum/design/voice_analyser - name = "Voice Analyser" - id = "voice_analyser" - build_type = AUTOLATHE - materials = list(MAT_METAL = 500, MAT_GLASS = 50) - build_path = /obj/item/assembly/voice - category = list("initial", "Misc") - -/datum/design/light_tube - name = "Light Tube" - id = "light_tube" - build_type = AUTOLATHE - materials = list(MAT_GLASS = 100) - build_path = /obj/item/light/tube - category = list("initial", "Construction") - -/datum/design/light_bulb - name = "Light Bulb" - id = "light_bulb" - build_type = AUTOLATHE - materials = list(MAT_GLASS = 100) - build_path = /obj/item/light/bulb - category = list("initial", "Construction") - -/datum/design/camera_assembly - name = "Camera Assembly" - id = "camera_assembly" - build_type = AUTOLATHE - materials = list(MAT_METAL = 400, MAT_GLASS = 250) - build_path = /obj/item/wallframe/camera - category = list("initial", "Construction") - -/datum/design/newscaster_frame - name = "Newscaster Frame" - id = "newscaster_frame" - build_type = AUTOLATHE - materials = list(MAT_METAL = 14000, MAT_GLASS = 8000) - build_path = /obj/item/wallframe/newscaster - category = list("initial", "Construction") - -/datum/design/syringe - name = "Syringe" - id = "syringe" - build_type = AUTOLATHE - materials = list(MAT_METAL = 10, MAT_GLASS = 20) - build_path = /obj/item/reagent_containers/syringe - category = list("initial", "Medical") - -/datum/design/prox_sensor - name = "Proximity Sensor" - id = "prox_sensor" - build_type = AUTOLATHE - materials = list(MAT_METAL = 800, MAT_GLASS = 200) - build_path = /obj/item/assembly/prox_sensor - category = list("initial", "Misc") - -/datum/design/foam_dart - name = "Box of Foam Darts" - id = "foam_dart" - build_type = AUTOLATHE - materials = list(MAT_METAL = 500) - build_path = /obj/item/ammo_box/foambox - category = list("initial", "Misc") - -//hacked autolathe recipes -/datum/design/flamethrower - name = "Flamethrower" - id = "flamethrower" - build_type = AUTOLATHE - materials = list(MAT_METAL = 500) - build_path = /obj/item/flamethrower/full - category = list("hacked", "Security") - -/datum/design/rcd - name = "Rapid Construction Device (RCD)" - id = "rcd" - build_type = AUTOLATHE - materials = list(MAT_METAL = 30000) - build_path = /obj/item/construction/rcd - category = list("hacked", "Construction") - -/datum/design/rpd - name = "Rapid Pipe Dispenser (RPD)" - id = "rpd" - build_type = AUTOLATHE - materials = list(MAT_METAL = 75000, MAT_GLASS = 37500) - build_path = /obj/item/pipe_dispenser - category = list("hacked", "Construction") - -/datum/design/electropack - name = "Electropack" - id = "electropack" - build_type = AUTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 2500) - build_path = /obj/item/electropack - category = list("hacked", "Tools") - -/datum/design/large_welding_tool - name = "Industrial Welding Tool" - id = "large_welding_tool" - build_type = AUTOLATHE - materials = list(MAT_METAL = 70, MAT_GLASS = 60) - build_path = /obj/item/weldingtool/largetank - category = list("hacked", "Tools") - -/datum/design/handcuffs - name = "Handcuffs" - id = "handcuffs" - build_type = AUTOLATHE - materials = list(MAT_METAL = 500) - build_path = /obj/item/restraints/handcuffs - category = list("hacked", "Security") - -/datum/design/receiver - name = "Modular Receiver" - id = "receiver" - build_type = AUTOLATHE - materials = list(MAT_METAL = 15000) - build_path = /obj/item/weaponcrafting/receiver - category = list("hacked", "Security") - -/datum/design/shotgun_slug - name = "Shotgun Slug" - id = "shotgun_slug" - build_type = AUTOLATHE - materials = list(MAT_METAL = 4000) - build_path = /obj/item/ammo_casing/shotgun - category = list("hacked", "Security") - -/datum/design/buckshot_shell - name = "Buckshot Shell" - id = "buckshot_shell" - build_type = AUTOLATHE - materials = list(MAT_METAL = 4000) - build_path = /obj/item/ammo_casing/shotgun/buckshot - category = list("hacked", "Security") - -/datum/design/shotgun_dart - name = "Shotgun Dart" - id = "shotgun_dart" - build_type = AUTOLATHE - materials = list(MAT_METAL = 4000) - build_path = /obj/item/ammo_casing/shotgun/dart - category = list("hacked", "Security") - -/datum/design/incendiary_slug - name = "Incendiary Slug" - id = "incendiary_slug" - build_type = AUTOLATHE - materials = list(MAT_METAL = 4000) - build_path = /obj/item/ammo_casing/shotgun/incendiary - category = list("hacked", "Security") - -/datum/design/riot_dart - name = "Foam Riot Dart" - id = "riot_dart" - build_type = AUTOLATHE - materials = list(MAT_METAL = 1000) //Discount for making individually - no box = less metal! - build_path = /obj/item/ammo_casing/caseless/foam_dart/riot - category = list("hacked", "Security") - -/datum/design/riot_darts - name = "Foam Riot Dart Box" - id = "riot_darts" - build_type = AUTOLATHE - materials = list(MAT_METAL = 50000) //Comes with 40 darts - build_path = /obj/item/ammo_box/foambox/riot - category = list("hacked", "Security") - -/datum/design/a357 - name = "Speed Loader (.357)" - id = "a357" - build_type = AUTOLATHE - materials = list(MAT_METAL = 30000) - build_path = /obj/item/ammo_box/a357 - category = list("hacked", "Security") - -/datum/design/c10mm - name = "Ammo Box (10mm)" - id = "c10mm" - build_type = AUTOLATHE - materials = list(MAT_METAL = 30000) - build_path = /obj/item/ammo_box/c10mm - category = list("hacked", "Security") - -/datum/design/c45 - name = "Ammo Box (.45)" - id = "c45" - build_type = AUTOLATHE - materials = list(MAT_METAL = 30000) - build_path = /obj/item/ammo_box/c45 - category = list("hacked", "Security") - -/datum/design/c9mm - name = "Ammo Box (9mm)" - id = "c9mm" - build_type = AUTOLATHE - materials = list(MAT_METAL = 30000) - build_path = /obj/item/ammo_box/c9mm - category = list("hacked", "Security") - -/datum/design/cleaver - name = "Butcher's Cleaver" - id = "cleaver" - build_type = AUTOLATHE - materials = list(MAT_METAL = 18000) - build_path = /obj/item/kitchen/knife/butcher - category = list("hacked", "Dinnerware") - -/datum/design/spraycan - name = "Spraycan" - id = "spraycan" - build_type = AUTOLATHE - materials = list(MAT_METAL = 100, MAT_GLASS = 100) - build_path = /obj/item/toy/crayon/spraycan - category = list("initial", "Tools") - -/datum/design/desttagger - name = "Destination Tagger" - id = "desttagger" - build_type = AUTOLATHE - materials = list(MAT_METAL = 250, MAT_GLASS = 125) - build_path = /obj/item/destTagger - category = list("initial", "Electronics") - -/datum/design/handlabeler - name = "Hand Labeler" - id = "handlabel" - build_type = AUTOLATHE - materials = list(MAT_METAL = 150, MAT_GLASS = 125) - build_path = /obj/item/hand_labeler - category = list("initial", "Electronics") - -/datum/design/geiger - name = "Geiger Counter" - id = "geigercounter" - build_type = AUTOLATHE - materials = list(MAT_METAL = 150, MAT_GLASS = 150) - build_path = /obj/item/geiger_counter - category = list("initial", "Tools") - -/datum/design/turret_control_frame - name = "Turret Control Frame" - id = "turret_control" - build_type = AUTOLATHE - materials = list(MAT_METAL = 12000) - build_path = /obj/item/wallframe/turret_control - category = list("initial", "Construction") - -/datum/design/conveyor_belt - name = "Conveyor Belt" - id = "conveyor_belt" - build_type = AUTOLATHE - materials = list(MAT_METAL = 5000) - build_path = /obj/item/conveyor_construct - category = list("initial", "Construction") - -/datum/design/conveyor_switch - name = "Conveyor Belt Switch" - id = "conveyor_switch" - build_type = AUTOLATHE - materials = list(MAT_METAL = 450, MAT_GLASS = 190) - build_path = /obj/item/conveyor_switch_construct - category = list("initial", "Construction") - -/datum/design/laptop - name = "Laptop Frame" - id = "laptop" - build_type = AUTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 1000) - build_path = /obj/item/modular_computer/laptop/buildable - category = list("initial","Misc") - -/datum/design/tablet - name = "Tablet Frame" - id = "tablet" - build_type = AUTOLATHE - materials = list(MAT_METAL = 2000, MAT_GLASS = 1000) - build_path = /obj/item/modular_computer/tablet - category = list("initial","Misc") - -/datum/design/slime_scanner - name = "Slime Scanner" - id = "slime_scanner" - build_type = AUTOLATHE - materials = list(MAT_METAL = 300, MAT_GLASS = 200) - build_path = /obj/item/slime_scanner - category = list("initial", "Misc") - -/datum/design/pet_carrier - name = "Pet Carrier" - id = "pet_carrier" - build_type = AUTOLATHE - materials = list(MAT_METAL = 7500, MAT_GLASS = 100) - build_path = /obj/item/pet_carrier - category = list("initial", "Misc") - -/datum/design/miniature_power_cell - name = "Light Fixture Battery" - id = "miniature_power_cell" - build_type = AUTOLATHE - materials = list(MAT_GLASS = 20) - build_path = /obj/item/stock_parts/cell/emergency_light - category = list("initial", "Electronics") - -/datum/design/packageWrap - name = "Package Wrapping" - id = "packagewrap" - build_type = AUTOLATHE - materials = list(MAT_METAL = 200, MAT_GLASS = 200) - build_path = /obj/item/stack/packageWrap - category = list("initial", "Misc") - maxstack = 30 - -/datum/design/holodisk - name = "Holodisk" - id = "holodisk" - build_type = AUTOLATHE - materials = list(MAT_METAL = 100, MAT_GLASS = 100) - build_path = /obj/item/disk/holodisk - category = list("initial", "Misc") From c18756dec40ebaeb02213a607c883988689a86ff Mon Sep 17 00:00:00 2001 From: Useroth Date: Wed, 15 May 2019 23:24:12 +0200 Subject: [PATCH 026/276] Well, that's it. --- code/modules/integrated_electronics/subtypes/weaponized.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/integrated_electronics/subtypes/weaponized.dm b/code/modules/integrated_electronics/subtypes/weaponized.dm index f9259359a3..54b50d3d87 100644 --- a/code/modules/integrated_electronics/subtypes/weaponized.dm +++ b/code/modules/integrated_electronics/subtypes/weaponized.dm @@ -215,7 +215,7 @@ The 'fire' activator will cause the mechanism to attempt to launch objects at the coordinates, if possible. Note that the \ projectile needs to be inside the machine, or on an adjacent tile, and must be medium sized or smaller. The assembly \ must also be a gun if you wish to launch something while the assembly is in hand." - complexity = 75 + complexity = 40 w_class = WEIGHT_CLASS_SMALL size = 4 cooldown_per_use = 30 @@ -306,7 +306,7 @@ desc = "Used to stun a target holding the device via electricity." icon_state = "power_relay" extended_desc = "Attempts to stun the holder of this device, with the strength input being the strength of the stun, from 1 to 70." - complexity = 60 + complexity = 15 size = 4 inputs = list("strength" = IC_PINTYPE_NUMBER) activators = list("stun" = IC_PINTYPE_PULSE_IN, "on success" = IC_PINTYPE_PULSE_OUT, "on fail" = IC_PINTYPE_PULSE_OUT) From 2a4a656a4de70783124a7fcd79c0a9f1a8a1ee08 Mon Sep 17 00:00:00 2001 From: Nero1024 Date: Fri, 17 May 2019 18:10:03 -0500 Subject: [PATCH 027/276] Port new footsteps from tg --- code/__DEFINES/footsteps.dm | 110 +++++++++++++++++- code/__DEFINES/is_helpers.dm | 52 ++++++++- code/datums/components/footstep.dm | 81 +++++++++++-- code/game/turfs/open.dm | 25 ++++ code/game/turfs/simulated/floor.dm | 3 + .../game/turfs/simulated/floor/fancy_floor.dm | 15 +++ code/game/turfs/simulated/floor/misc_floor.dm | 3 + code/game/turfs/simulated/floor/plating.dm | 3 + .../turfs/simulated/floor/plating/asteroid.dm | 6 + .../turfs/simulated/floor/plating/dirt.dm | 3 + .../simulated/floor/plating/misc_plating.dm | 21 ++++ .../game/turfs/simulated/floor/reinf_floor.dm | 3 + code/game/turfs/simulated/lava.dm | 3 + code/game/turfs/simulated/water.dm | 3 + .../mob/living/simple_animal/slime/slime.dm | 2 + sound/effects/footstep/carpetbarefoot1.ogg | Bin 0 -> 6452 bytes sound/effects/footstep/carpetbarefoot2.ogg | Bin 0 -> 5925 bytes sound/effects/footstep/carpetbarefoot3.ogg | Bin 0 -> 6118 bytes sound/effects/footstep/carpetbarefoot4.ogg | Bin 0 -> 6273 bytes sound/effects/footstep/carpetbarefoot5.ogg | Bin 0 -> 6716 bytes sound/effects/footstep/hardbarefoot1.ogg | Bin 0 -> 6315 bytes sound/effects/footstep/hardbarefoot2.ogg | Bin 0 -> 6330 bytes sound/effects/footstep/hardbarefoot3.ogg | Bin 0 -> 6088 bytes sound/effects/footstep/hardbarefoot4.ogg | Bin 0 -> 6025 bytes sound/effects/footstep/hardbarefoot5.ogg | Bin 0 -> 6072 bytes sound/effects/footstep/hardclaw1.ogg | Bin 0 -> 4694 bytes sound/effects/footstep/hardclaw2.ogg | Bin 0 -> 5174 bytes sound/effects/footstep/hardclaw3.ogg | Bin 0 -> 4509 bytes sound/effects/footstep/hardclaw4.ogg | Bin 0 -> 4676 bytes sound/effects/footstep/slime1.ogg | Bin 0 -> 5471 bytes sound/effects/footstep/woodbarefoot1.ogg | Bin 0 -> 6371 bytes sound/effects/footstep/woodbarefoot2.ogg | Bin 0 -> 6249 bytes sound/effects/footstep/woodbarefoot3.ogg | Bin 0 -> 6554 bytes sound/effects/footstep/woodbarefoot4.ogg | Bin 0 -> 6653 bytes sound/effects/footstep/woodbarefoot5.ogg | Bin 0 -> 6708 bytes sound/effects/footstep/woodclaw1.ogg | Bin 0 -> 5573 bytes sound/effects/footstep/woodclaw2.ogg | Bin 0 -> 5430 bytes sound/effects/footstep/woodclaw3.ogg | Bin 0 -> 5492 bytes 38 files changed, 323 insertions(+), 10 deletions(-) create mode 100644 sound/effects/footstep/carpetbarefoot1.ogg create mode 100644 sound/effects/footstep/carpetbarefoot2.ogg create mode 100644 sound/effects/footstep/carpetbarefoot3.ogg create mode 100644 sound/effects/footstep/carpetbarefoot4.ogg create mode 100644 sound/effects/footstep/carpetbarefoot5.ogg create mode 100644 sound/effects/footstep/hardbarefoot1.ogg create mode 100644 sound/effects/footstep/hardbarefoot2.ogg create mode 100644 sound/effects/footstep/hardbarefoot3.ogg create mode 100644 sound/effects/footstep/hardbarefoot4.ogg create mode 100644 sound/effects/footstep/hardbarefoot5.ogg create mode 100644 sound/effects/footstep/hardclaw1.ogg create mode 100644 sound/effects/footstep/hardclaw2.ogg create mode 100644 sound/effects/footstep/hardclaw3.ogg create mode 100644 sound/effects/footstep/hardclaw4.ogg create mode 100644 sound/effects/footstep/slime1.ogg create mode 100644 sound/effects/footstep/woodbarefoot1.ogg create mode 100644 sound/effects/footstep/woodbarefoot2.ogg create mode 100644 sound/effects/footstep/woodbarefoot3.ogg create mode 100644 sound/effects/footstep/woodbarefoot4.ogg create mode 100644 sound/effects/footstep/woodbarefoot5.ogg create mode 100644 sound/effects/footstep/woodclaw1.ogg create mode 100644 sound/effects/footstep/woodclaw2.ogg create mode 100644 sound/effects/footstep/woodclaw3.ogg diff --git a/code/__DEFINES/footsteps.dm b/code/__DEFINES/footsteps.dm index e66d518644..ef96b83cc8 100644 --- a/code/__DEFINES/footsteps.dm +++ b/code/__DEFINES/footsteps.dm @@ -6,6 +6,14 @@ #define FOOTSTEP_GRASS "grass" #define FOOTSTEP_WATER "water" #define FOOTSTEP_LAVA "lava" +//barefoot sounds +#define FOOTSTEP_WOOD_BAREFOOT "woodbarefoot" +#define FOOTSTEP_WOOD_CLAW "woodclaw" +#define FOOTSTEP_HARD_BAREFOOT "hardbarefoot" +#define FOOTSTEP_HARD_CLAW "hardclaw" +#define FOOTSTEP_CARPET_BAREFOOT "carpetbarefoot" +//misc footstep sounds +#define FOOTSTEP_GENERIC_HEAVY "heavy" /* @@ -63,4 +71,104 @@ GLOBAL_LIST_INIT(footstep, list( 'sound/effects/footstep/lava1.ogg', 'sound/effects/footstep/lava2.ogg', 'sound/effects/footstep/lava3.ogg'), 100, 0), -)) \ No newline at end of file +)) + +//bare footsteps lists +GLOBAL_LIST_INIT(barefootstep, list( + FOOTSTEP_WOOD_BAREFOOT = list(list( + 'sound/effects/footstep/woodbarefoot1.ogg', + 'sound/effects/footstep/woodbarefoot2.ogg', + 'sound/effects/footstep/woodbarefoot3.ogg', + 'sound/effects/footstep/woodbarefoot4.ogg', + 'sound/effects/footstep/woodbarefoot5.ogg'), 80, -1), + FOOTSTEP_HARD_BAREFOOT = list(list( + 'sound/effects/footstep/hardbarefoot1.ogg', + 'sound/effects/footstep/hardbarefoot2.ogg', + 'sound/effects/footstep/hardbarefoot3.ogg', + 'sound/effects/footstep/hardbarefoot4.ogg', + 'sound/effects/footstep/hardbarefoot5.ogg'), 80, -1), + FOOTSTEP_CARPET_BAREFOOT = list(list( + 'sound/effects/footstep/carpetbarefoot1.ogg', + 'sound/effects/footstep/carpetbarefoot2.ogg', + 'sound/effects/footstep/carpetbarefoot3.ogg', + 'sound/effects/footstep/carpetbarefoot4.ogg', + 'sound/effects/footstep/carpetbarefoot5.ogg'), 75, -2), + FOOTSTEP_SAND = list(list( + 'sound/effects/footstep/asteroid1.ogg', + 'sound/effects/footstep/asteroid2.ogg', + 'sound/effects/footstep/asteroid3.ogg', + 'sound/effects/footstep/asteroid4.ogg', + 'sound/effects/footstep/asteroid5.ogg'), 75, 0), + FOOTSTEP_GRASS = list(list( + 'sound/effects/footstep/grass1.ogg', + 'sound/effects/footstep/grass2.ogg', + 'sound/effects/footstep/grass3.ogg', + 'sound/effects/footstep/grass4.ogg'), 75, 0), + FOOTSTEP_WATER = list(list( + 'sound/effects/footstep/water1.ogg', + 'sound/effects/footstep/water2.ogg', + 'sound/effects/footstep/water3.ogg', + 'sound/effects/footstep/water4.ogg'), 100, 1), + FOOTSTEP_LAVA = list(list( + 'sound/effects/footstep/lava1.ogg', + 'sound/effects/footstep/lava2.ogg', + 'sound/effects/footstep/lava3.ogg'), 100, 0), +)) + +//claw footsteps lists +GLOBAL_LIST_INIT(clawfootstep, list( + FOOTSTEP_WOOD_CLAW = list(list( + 'sound/effects/footstep/woodclaw1.ogg', + 'sound/effects/footstep/woodclaw2.ogg', + 'sound/effects/footstep/woodclaw3.ogg', + 'sound/effects/footstep/woodclaw2.ogg', + 'sound/effects/footstep/woodclaw1.ogg'), 90, 1), + FOOTSTEP_HARD_CLAW = list(list( + 'sound/effects/footstep/hardclaw1.ogg', + 'sound/effects/footstep/hardclaw2.ogg', + 'sound/effects/footstep/hardclaw3.ogg', + 'sound/effects/footstep/hardclaw4.ogg', + 'sound/effects/footstep/hardclaw1.ogg'), 90, 1), + FOOTSTEP_CARPET_BAREFOOT = list(list( + 'sound/effects/footstep/carpetbarefoot1.ogg', + 'sound/effects/footstep/carpetbarefoot2.ogg', + 'sound/effects/footstep/carpetbarefoot3.ogg', + 'sound/effects/footstep/carpetbarefoot4.ogg', + 'sound/effects/footstep/carpetbarefoot5.ogg'), 75, -2), + FOOTSTEP_SAND = list(list( + 'sound/effects/footstep/asteroid1.ogg', + 'sound/effects/footstep/asteroid2.ogg', + 'sound/effects/footstep/asteroid3.ogg', + 'sound/effects/footstep/asteroid4.ogg', + 'sound/effects/footstep/asteroid5.ogg'), 75, 0), + FOOTSTEP_GRASS = list(list( + 'sound/effects/footstep/grass1.ogg', + 'sound/effects/footstep/grass2.ogg', + 'sound/effects/footstep/grass3.ogg', + 'sound/effects/footstep/grass4.ogg'), 75, 0), + FOOTSTEP_WATER = list(list( + 'sound/effects/footstep/water1.ogg', + 'sound/effects/footstep/water2.ogg', + 'sound/effects/footstep/water3.ogg', + 'sound/effects/footstep/water4.ogg'), 100, 1), + FOOTSTEP_LAVA = list(list( + 'sound/effects/footstep/lava1.ogg', + 'sound/effects/footstep/lava2.ogg', + 'sound/effects/footstep/lava3.ogg'), 100, 0), +)) + +//heavy footsteps list +GLOBAL_LIST_INIT(heavyfootstep, list( + FOOTSTEP_GENERIC_HEAVY = list(list( + 'sound/effects/footstep/heavy1.ogg', + 'sound/effects/footstep/heavy2.ogg'), 100, 2), + FOOTSTEP_WATER = list(list( + 'sound/effects/footstep/water1.ogg', + 'sound/effects/footstep/water2.ogg', + 'sound/effects/footstep/water3.ogg', + 'sound/effects/footstep/water4.ogg'), 100, 2), + FOOTSTEP_LAVA = list(list( + 'sound/effects/footstep/lava1.ogg', + 'sound/effects/footstep/lava2.ogg', + 'sound/effects/footstep/lava3.ogg'), 100, 0), +)) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 15eaadb2f2..8ff40c3ef9 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -67,7 +67,7 @@ #define islarva(A) (istype(A, /mob/living/carbon/alien/larva)) -#define isalienadult(A) (istype(A, /mob/living/carbon/alien/humanoid)) +#define isalienadult(A) (istype(A, /mob/living/carbon/alien/humanoid) || istype(A, /mob/living/simple_animal/hostile/alien)) #define isalienhunter(A) (istype(A, /mob/living/carbon/alien/humanoid/hunter)) @@ -123,6 +123,47 @@ #define isclown(A) (istype(A, /mob/living/simple_animal/hostile/retaliate/clown)) +GLOBAL_LIST_INIT(shoefootmob, typecacheof(list( + /mob/living/carbon/human/, + /mob/living/simple_animal/cow, + /mob/living/simple_animal/hostile/cat_butcherer, + /mob/living/simple_animal/hostile/faithless, + /mob/living/simple_animal/hostile/nanotrasen, + /mob/living/simple_animal/hostile/pirate, + /mob/living/simple_animal/hostile/russian, + /mob/living/simple_animal/hostile/syndicate, + /mob/living/simple_animal/hostile/wizard, + /mob/living/simple_animal/hostile/zombie, + /mob/living/simple_animal/hostile/retaliate/clown, + /mob/living/simple_animal/hostile/retaliate/spaceman, + /mob/living/simple_animal/hostile/retaliate/nanotrasenpeace, + /mob/living/simple_animal/hostile/retaliate/goat, + /mob/living/carbon/true_devil, + ))) + +GLOBAL_LIST_INIT(clawfootmob, typecacheof(list( + /mob/living/carbon/alien/humanoid, + /mob/living/simple_animal/hostile/alien, + /mob/living/simple_animal/pet/cat, + /mob/living/simple_animal/pet/dog, + /mob/living/simple_animal/pet/fox, + /mob/living/simple_animal/chicken, + /mob/living/simple_animal/hostile/bear, + /mob/living/simple_animal/hostile/jungle/mega_arachnid + ))) + +GLOBAL_LIST_INIT(barefootmob, typecacheof(list( + /mob/living/carbon/monkey, + /mob/living/simple_animal/pet/penguin, + /mob/living/simple_animal/hostile/gorilla, + /mob/living/simple_animal/hostile/jungle/mook + ))) + +GLOBAL_LIST_INIT(heavyfootmob, typecacheof(list( + /mob/living/simple_animal/hostile/megafauna, + /mob/living/simple_animal/hostile/jungle/leaper + ))) + //Misc mobs #define isobserver(A) (istype(A, /mob/dead/observer)) @@ -136,6 +177,15 @@ #define iseminence(A) (istype(A, /mob/camera/eminence)) +//Footstep helpers +#define isshoefoot(A) (is_type_in_typecache(A, GLOB.shoefootmob)) + +#define isclawfoot(A) (is_type_in_typecache(A, GLOB.clawfootmob)) + +#define isbarefoot(A) (is_type_in_typecache(A, GLOB.barefootmob)) + +#define isheavyfoot(A) (is_type_in_typecache(A, GLOB.heavyfootmob)) + //Objects #define isobj(A) istype(A, /obj) //override the byond proc because it returns true on children of /atom/movable that aren't objs diff --git a/code/datums/components/footstep.dm b/code/datums/components/footstep.dm index c93be4dae3..35b7d5ecd5 100644 --- a/code/datums/components/footstep.dm +++ b/code/datums/components/footstep.dm @@ -14,11 +14,15 @@ var/turf/open/T = get_turf(parent) if(!istype(T)) return + var/mob/living/LM = parent var/v = volume var/e = e_range - if(!T.footstep || LM.lying || !LM.canmove || LM.resting || LM.buckled || LM.throwing || LM.movement_type & (VENTCRAWLING | FLYING)) + if(!T.footstep || LM.buckled || LM.lying || !CHECK_MULTIPLE_BITFIELDS(LM.mobility_flags, MOBILITY_STAND | MOBILITY_MOVE) || LM.throwing || LM.movement_type & (VENTCRAWLING | FLYING)) + if (LM.lying && !(!T.footstep || LM.movement_type & (VENTCRAWLING | FLYING))) //play crawling sound if we're lying + playsound(T, 'sound/effects/footstep/crawl1.ogg', 15 * v) return + if(iscarbon(LM)) var/mob/living/carbon/C = LM if(!C.get_bodypart(BODY_ZONE_L_LEG) && !C.get_bodypart(BODY_ZONE_R_LEG)) @@ -27,13 +31,74 @@ v /= 2 e -= 5 steps++ - if(steps >= 3) + + if(steps >= 6) steps = 0 - else + + if(steps % 2) return - if(prob(80) && !LM.has_gravity(T)) // don't need to step as often when you hop around + + if(!LM.has_gravity(T) && steps != 0) // don't need to step as often when you hop around return - playsound(T, pick(GLOB.footstep[T.footstep][1]), - GLOB.footstep[T.footstep][2] * v, - TRUE, - GLOB.footstep[T.footstep][3] + e) + + //begin playsound shenanigans// + + //for barefooted non-clawed mobs like monkeys + if(isbarefoot(LM)) + playsound(T, pick(GLOB.barefootstep[T.barefootstep][1]), + GLOB.barefootstep[T.barefootstep][2] * v, + TRUE, + GLOB.barefootstep[T.barefootstep][3] + e) + return + + //for xenomorphs, dogs, and other clawed mobs + if(isclawfoot(LM)) + if(isalienadult(LM)) //xenos are stealthy and get quieter footsteps + v /= 3 + e -= 5 + + playsound(T, pick(GLOB.clawfootstep[T.clawfootstep][1]), + GLOB.clawfootstep[T.clawfootstep][2] * v, + TRUE, + GLOB.clawfootstep[T.clawfootstep][3] + e) + return + + //for megafauna and other large and imtimidating mobs such as the bloodminer + if(isheavyfoot(LM)) + playsound(T, pick(GLOB.heavyfootstep[T.heavyfootstep][1]), + GLOB.heavyfootstep[T.heavyfootstep][2] * v, + TRUE, + GLOB.heavyfootstep[T.heavyfootstep][3] + e) + return + + //for slimes + if(isslime(LM)) + playsound(T, 'sound/effects/footstep/slime1.ogg', 15 * v) + return + + //for (simple) humanoid mobs (clowns, russians, pirates, etc.) + if(isshoefoot(LM)) + if(!ishuman(LM)) + playsound(T, pick(GLOB.footstep[T.footstep][1]), + GLOB.footstep[T.footstep][2] * v, + TRUE, + GLOB.footstep[T.footstep][3] + e) + return + if(ishuman(LM)) //for proper humans, they're special + var/mob/living/carbon/human/H = LM + var/feetCover = (H.wear_suit && (H.wear_suit.body_parts_covered & FEET)) || (H.w_uniform && (H.w_uniform.body_parts_covered & FEET)) + + if(H.shoes || feetCover) //are we wearing shoes + playsound(T, pick(GLOB.footstep[T.footstep][1]), + GLOB.footstep[T.footstep][2] * v, + TRUE, + GLOB.footstep[T.footstep][3] + e) + + if((!H.shoes && !feetCover)) //are we NOT wearing shoes + if(H.dna.species.special_step_sounds) + playsound(T, pick(H.dna.species.special_step_sounds), 50, TRUE) + else + playsound(T, pick(GLOB.barefootstep[T.barefootstep][1]), + GLOB.barefootstep[T.barefootstep][2] * v, + TRUE, + GLOB.barefootstep[T.barefootstep][3] + e) \ No newline at end of file diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 63b5f4b160..fed922c7b4 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -7,6 +7,9 @@ var/wet var/footstep = null + var/barefootstep = null + var/clawfootstep = null + var/heavyfootstep = null /turf/open/ComponentInitialize() . = ..() @@ -27,6 +30,9 @@ icon = 'icons/turf/floors.dmi' icon_state = "floor" footstep = FOOTSTEP_FLOOR + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY tiled_dirt = TRUE /turf/open/indestructible/Melt() @@ -42,6 +48,9 @@ /turf/open/indestructible/sound name = "squeaky floor" footstep = null + barefootstep = null + clawfootstep = null + heavyfootstep = null var/sound /turf/open/indestructible/sound/Entered(var/mob/AM) @@ -61,6 +70,10 @@ icon = 'icons/turf/floors.dmi' icon_state = "cobble" baseturfs = /turf/open/indestructible/cobble + footstep = FOOTSTEP_FLOOR + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY tiled_dirt = FALSE /turf/open/indestructible/necropolis @@ -71,6 +84,9 @@ baseturfs = /turf/open/indestructible/necropolis initial_gas_mix = LAVALAND_DEFAULT_ATMOS footstep = FOOTSTEP_LAVA + barefootstep = FOOTSTEP_LAVA + clawfootstep = FOOTSTEP_LAVA + heavyfootstep = FOOTSTEP_LAVA tiled_dirt = FALSE /turf/open/indestructible/necropolis/Initialize() @@ -108,6 +124,9 @@ desc = "A floor made of invulnerable notebook paper." icon_state = "paperfloor" footstep = null + barefootstep = null + clawfootstep = null + heavyfootstep = null tiled_dirt = FALSE /turf/open/indestructible/binary @@ -116,6 +135,9 @@ baseturfs = /turf/open/indestructible/binary icon_state = "binary" footstep = null + barefootstep = null + clawfootstep = null + heavyfootstep = null /turf/open/indestructible/airblock icon_state = "bluespace" @@ -128,6 +150,9 @@ icon_state = "reebe" baseturfs = /turf/open/indestructible/clock_spawn_room footstep = FOOTSTEP_PLATING + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/indestructible/clock_spawn_room/Entered() ..() diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 4523cc5b67..b00efc7ed6 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -7,6 +7,9 @@ baseturfs = /turf/open/floor/plating footstep = FOOTSTEP_FLOOR + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY var/icon_regular_floor = "floor" //used to remember what icon the tile should have by default var/icon_plating = "plating" diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm index fc1dec2acb..7b45aa1fbb 100644 --- a/code/game/turfs/simulated/floor/fancy_floor.dm +++ b/code/game/turfs/simulated/floor/fancy_floor.dm @@ -13,6 +13,9 @@ floor_tile = /obj/item/stack/tile/wood broken_states = list("wood-broken", "wood-broken2", "wood-broken3", "wood-broken4", "wood-broken5", "wood-broken6", "wood-broken7") footstep = FOOTSTEP_WOOD + barefootstep = FOOTSTEP_WOOD_BAREFOOT + clawfootstep = FOOTSTEP_WOOD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY tiled_dirt = FALSE /turf/open/floor/wood/examine(mob/user) @@ -73,6 +76,9 @@ flags_1 = NONE bullet_bounce_sound = null footstep = FOOTSTEP_GRASS + barefootstep = FOOTSTEP_GRASS + clawfootstep = FOOTSTEP_GRASS + heavyfootstep = FOOTSTEP_GENERIC_HEAVY var/ore_type = /obj/item/stack/ore/glass var/turfverb = "uproot" tiled_dirt = FALSE @@ -103,6 +109,9 @@ slowdown = 2 bullet_sizzle = TRUE footstep = FOOTSTEP_SAND + barefootstep = FOOTSTEP_SAND + clawfootstep = FOOTSTEP_SAND + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/floor/grass/snow/try_replace_tile(obj/item/stack/tile/T, mob/user, params) return @@ -136,6 +145,9 @@ turfverb = "dig up" slowdown = 0 footstep = FOOTSTEP_SAND + barefootstep = FOOTSTEP_SAND + clawfootstep = FOOTSTEP_SAND + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/floor/grass/fakebasalt/Initialize() . = ..() @@ -156,6 +168,9 @@ flags_1 = NONE bullet_bounce_sound = null footstep = FOOTSTEP_CARPET + barefootstep = FOOTSTEP_CARPET_BAREFOOT + clawfootstep = FOOTSTEP_CARPET_BAREFOOT + heavyfootstep = FOOTSTEP_GENERIC_HEAVY tiled_dirt = FALSE /turf/open/floor/carpet/examine(mob/user) diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index 91744f3fa8..bff955086c 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -141,6 +141,9 @@ icon_state = "plating" baseturfs = /turf/open/floor/clockwork footstep = FOOTSTEP_PLATING + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY var/uses_overlay = TRUE var/obj/effect/clockwork/overlay/floor/realappearence diff --git a/code/game/turfs/simulated/floor/plating.dm b/code/game/turfs/simulated/floor/plating.dm index e783b8a9a0..036f54c710 100644 --- a/code/game/turfs/simulated/floor/plating.dm +++ b/code/game/turfs/simulated/floor/plating.dm @@ -13,6 +13,9 @@ intact = FALSE baseturfs = /turf/open/space footstep = FOOTSTEP_PLATING + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY var/attachment_holes = TRUE diff --git a/code/game/turfs/simulated/floor/plating/asteroid.dm b/code/game/turfs/simulated/floor/plating/asteroid.dm index c33612c9bc..d9966ee55c 100644 --- a/code/game/turfs/simulated/floor/plating/asteroid.dm +++ b/code/game/turfs/simulated/floor/plating/asteroid.dm @@ -10,6 +10,9 @@ icon_plating = "asteroid" postdig_icon_change = TRUE footstep = FOOTSTEP_SAND + barefootstep = FOOTSTEP_SAND + clawfootstep = FOOTSTEP_SAND + heavyfootstep = FOOTSTEP_GENERIC_HEAVY var/environment_type = "asteroid" var/turf_type = /turf/open/floor/plating/asteroid //Because caves do whacky shit to revert to normal var/floor_variance = 20 //probability floor has a different icon state @@ -333,6 +336,9 @@ icon_plating = "snow-ice" environment_type = "snow_cavern" footstep = FOOTSTEP_FLOOR + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/floor/plating/asteroid/snow/ice/burn_tile() return FALSE diff --git a/code/game/turfs/simulated/floor/plating/dirt.dm b/code/game/turfs/simulated/floor/plating/dirt.dm index dc865634f4..b9bcc0937b 100644 --- a/code/game/turfs/simulated/floor/plating/dirt.dm +++ b/code/game/turfs/simulated/floor/plating/dirt.dm @@ -9,6 +9,9 @@ planetary_atmos = TRUE attachment_holes = FALSE footstep = FOOTSTEP_SAND + barefootstep = FOOTSTEP_SAND + clawfootstep = FOOTSTEP_SAND + heavyfootstep = FOOTSTEP_GENERIC_HEAVY tiled_dirt = FALSE /turf/open/floor/plating/dirt/dark diff --git a/code/game/turfs/simulated/floor/plating/misc_plating.dm b/code/game/turfs/simulated/floor/plating/misc_plating.dm index f86ab3c03c..15b039193d 100644 --- a/code/game/turfs/simulated/floor/plating/misc_plating.dm +++ b/code/game/turfs/simulated/floor/plating/misc_plating.dm @@ -47,6 +47,9 @@ planetary_atmos = TRUE attachment_holes = FALSE footstep = FOOTSTEP_SAND + barefootstep = FOOTSTEP_SAND + clawfootstep = FOOTSTEP_SAND + heavyfootstep = FOOTSTEP_GENERIC_HEAVY tiled_dirt = FALSE /turf/open/floor/plating/ashplanet/Initialize() @@ -79,6 +82,9 @@ layer = MID_TURF_LAYER canSmoothWith = list(/turf/open/floor/plating/ashplanet/rocky, /turf/closed) footstep = FOOTSTEP_FLOOR + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/floor/plating/ashplanet/wateryrock gender = PLURAL @@ -87,6 +93,9 @@ icon_state = "wateryrock" slowdown = 2 footstep = FOOTSTEP_FLOOR + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/floor/plating/ashplanet/wateryrock/Initialize() icon_state = "[icon_state][rand(1, 9)]" @@ -100,6 +109,9 @@ attachment_holes = FALSE bullet_bounce_sound = null footstep = FOOTSTEP_SAND + barefootstep = FOOTSTEP_SAND + clawfootstep = FOOTSTEP_SAND + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/floor/plating/beach/try_replace_tile(obj/item/stack/tile/T, mob/user, params) return @@ -141,6 +153,9 @@ name = "iron sand" desc = "Like sand, but more metal." footstep = FOOTSTEP_SAND + barefootstep = FOOTSTEP_SAND + clawfootstep = FOOTSTEP_SAND + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/floor/plating/ironsand/Initialize() . = ..() @@ -165,6 +180,9 @@ attachment_holes = FALSE bullet_sizzle = TRUE footstep = FOOTSTEP_FLOOR + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/floor/plating/ice/Initialize() . = ..() @@ -202,6 +220,9 @@ attachment_holes = FALSE planetary_atmos = TRUE footstep = FOOTSTEP_SAND + barefootstep = FOOTSTEP_SAND + clawfootstep = FOOTSTEP_SAND + heavyfootstep = FOOTSTEP_GENERIC_HEAVY /turf/open/floor/plating/snowed/cavern initial_gas_mix = "o2=0;n2=82;plasma=24;TEMP=120" diff --git a/code/game/turfs/simulated/floor/reinf_floor.dm b/code/game/turfs/simulated/floor/reinf_floor.dm index e677de8c5c..1a477d5d9a 100644 --- a/code/game/turfs/simulated/floor/reinf_floor.dm +++ b/code/game/turfs/simulated/floor/reinf_floor.dm @@ -7,6 +7,9 @@ heat_capacity = INFINITY floor_tile = /obj/item/stack/rods footstep = FOOTSTEP_PLATING + barefootstep = FOOTSTEP_HARD_BAREFOOT + clawfootstep = FOOTSTEP_HARD_CLAW + heavyfootstep = FOOTSTEP_GENERIC_HEAVY tiled_dirt = FALSE /turf/open/floor/engine/examine(mob/user) diff --git a/code/game/turfs/simulated/lava.dm b/code/game/turfs/simulated/lava.dm index b9e355b122..e24736ecf3 100644 --- a/code/game/turfs/simulated/lava.dm +++ b/code/game/turfs/simulated/lava.dm @@ -13,6 +13,9 @@ bullet_bounce_sound = 'sound/items/welder2.ogg' footstep = FOOTSTEP_LAVA + barefootstep = FOOTSTEP_LAVA + clawfootstep = FOOTSTEP_LAVA + heavyfootstep = FOOTSTEP_LAVA /turf/open/lava/ex_act(severity, target) contents_explosion(severity, target) diff --git a/code/game/turfs/simulated/water.dm b/code/game/turfs/simulated/water.dm index b46dd1d06c..708ca230b1 100644 --- a/code/game/turfs/simulated/water.dm +++ b/code/game/turfs/simulated/water.dm @@ -12,3 +12,6 @@ bullet_bounce_sound = null //needs a splashing sound one day. footstep = FOOTSTEP_WATER + barefootstep = FOOTSTEP_WATER + clawfootstep = FOOTSTEP_WATER + heavyfootstep = FOOTSTEP_WATER diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index 034ccc4c39..2001c61e12 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -61,6 +61,8 @@ var/mood = "" // To show its face var/mutator_used = FALSE //So you can't shove a dozen mutators into a single slime var/force_stasis = FALSE + + do_footstep = TRUE var/static/regex/slime_name_regex = new("\\w+ (baby|adult) slime \\(\\d+\\)") ///////////TIME FOR SUBSPECIES diff --git a/sound/effects/footstep/carpetbarefoot1.ogg b/sound/effects/footstep/carpetbarefoot1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..81615d297053411a1540f6ec52cf2006613715a7 GIT binary patch literal 6452 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 literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/carpetbarefoot2.ogg b/sound/effects/footstep/carpetbarefoot2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d1c7e1627ec2bcfe59b99949e88990ef552ac7ec GIT binary patch literal 5925 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 UDS9*^Te=O=7-IG=Ab0iu00&+FNB{r; literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/carpetbarefoot3.ogg b/sound/effects/footstep/carpetbarefoot3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..13ecb3398b1daa6b48d52e1d81dc3c5a5dc45e82 GIT binary patch literal 6118 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 K5>{8~E&UJvqGl%m literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/carpetbarefoot4.ogg b/sound/effects/footstep/carpetbarefoot4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..31850250becbf12d77f1aa42453213afc486e39f GIT binary patch literal 6273 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 Jx?XO<@;|xtx1|68 literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/carpetbarefoot5.ogg b/sound/effects/footstep/carpetbarefoot5.ogg new file mode 100644 index 0000000000000000000000000000000000000000..e9a44765b18ff380666af8579d1df60a5602a4d3 GIT binary patch literal 6716 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 z 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 XKc_+-`vnio@0tJgO(CSxsy5+2=rreL literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/hardbarefoot3.ogg b/sound/effects/footstep/hardbarefoot3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..639751fab0f0a5ff3b6bd196680b043239203ad1 GIT binary patch literal 6088 zcmb_fc|4Te+rKT@vX*KrX_UcWWJH#S%GjC-Y3!p^GnVYk&{K^{Oo*|>5Yi$uBu0@T zLM6tM=#eH;T4bp#DV6r$xko+E^LzhzKkpy!{kdo6I_GzwO*UFSMywg&~dL88#F zM^|Z4AS~>qi)e`KkED`=X>gawTF*tq_4eX#xyW{S5y4T^09rsq3|b7RD}aw%WMIsn zd#M4|u5OXB5&rU^%bjRryUoSJ8D~$l#%@>+_u$=~?5+3hrTUYBYG7n!%m$Gqi_>c1 zY&}JwEf9pjDe5iZQZg(%S7fh{vl>jxI~gv!D%CTw0PMPMgZ(yCx9 zpsBvthcxkD0cAnZ`C{GF7rOF_sx>lDCj=>OiB@(zsl2UP{mx%na#C_WOW@E*0llqB z?5(LB?~K6Uv)YF)=oVhktEdU?t}(b%^QO^IID9Jvx$aPIk5ZNtj`N2gsXe->CFU6~ zy|Xz!XC)a)m7-8Q1c?JZS;uN+=Q*vucUFDx|L40nEfRvD1YLiG*zXWXX{xH&o*^#V zDYFu%u4KC!*K1qONqmMrj-vFtRoX~t#?4xP8llfFhCmU5_9~mF9P7}M(qxd8b?l-` zkw6;L^6ox3sU`I!Q4x2oh<>L5j1W=*e7uQdDB^$)_(HQ;#I5Mkd~zzfL!H)x?La2V z8c&|jak1=TXS-N-Yn5aWL(x2CH>c{cl@u;dP(-_IgQhUCe8fLr>x47_hZQAM{IkFU z8OlPVRA5hi(JcVN`$yfLsO3o2a?IB1$~M5~Slzh_zs>`8&MQ0~c!WRv7{2>s_|pdg zPd^3>KM2^B7x07^zDuxc*TdNVeub{bi$n1lF9GY|-I~GPDkBU|mI$N>#g~|;j&23< z$UymIYX|2A9n32`Sa|V-hEN3r2CxR6_zS|YY5C-p2A?g1gMH~zYH9hUOCg1&!T*3r&a?5PYJREWl2htuSiM3N@yl3 zV)@7z#kG8OhAd7(lch}PLNb=&@FyvWf@G)S3wTMH}qL37> zSCfylW7DFM_A2Z5eS$(7OAHwr{BhrlbA)s zqw2DWOjPb5fq>0pk;5?jN90OVFk%tF)T#P1O&yswz!aFA1J6;;1FHh2EG1F7EV2QL zmk$77N>Y=PO$vKF}czL0C*HXo0x{F+X*Hw6Hvo30O&F0@1%2i69Xh}IgbQ@4pmwuZ+yfC zc)rXR%mGYc_#|6&wQ%xw;pE;lUD(vG$@vJH3-?Dix`UG6A5To+Qx0q2O<~?`VekF0%NP&5fngy0F31$ zLY;q06fP+4>gJ#zBW!e3JXY>4kzS<{FHG4TfGKPWwhckeu<1N+*Nc@dV02nIa&ofq z(#5#~V{~zDHt8kEvmM9?;0|^GesRRSRk1KhcP?9W$0VLxd3@GA2tS;UZfsi*HPTrMv zNRW~9k%rh{r*#?uGk|Lr*i%w~D&2O3kW!kwuu0-0VwS+=B=5lo?UM9?Y^>g+QfHW2RqIns&a&JEjJ-pfVdKg-96&C#k$ z4NUw|P?jXL1=$A9B8y}e8NLYEf~3ob*+wj~4HgG(4U0Df82I~MknwjI{s~AgsONf7 zpb}o$;ZI9Ad0yz_^F<#!0KLSJ`~<)@ihU1Pk`IRpP-#5LX1jyDZ-*Ua6Nx|qH408g zCZJrHqGToyb{^C2P2mc?Ju!2Icw?P&&s|AJIz*wNtFuoJGT<0CiH3ek? zgr+dGx4BF}hE-@Y%@C9$DG6N^R}1pSTk5OJ847t&gW{2Gz(4r(g%5Y(CKXC7B7qII z`fq>%$T$ynr4)z?0j=^2An0-!%PfU}v=HFLfNHR~7lGa@;f-MtVD-bMKx~Cg6gi(Z4 zWhl1bIfSs@J1VP>4?13Q>v&S7IMfd|J_V#Vx|4ks+`r@~ia5zL4CRoEsL~{?lx7T^ zR(0MqiDEXWkQlyq;$3TyYM_z=Ws6m#psI5Q$Q8T^b>@t)WW)J3)4cB<9_)P*ZN^%1 zw-qQ4ApNW**D#GPu=2>2)dKZ6B?rU~!Zr-QkbburL17Tkd=kC4VPYp!X%lB9rK;hR zMx0^m!V7SAe0q_nut{n!GYdODNPFA7io#TA?c7N-Y(MY<|sl)q!x4&vbiM-8JTZESSU_PA*1$*L9%w8PJ3LX z)OHd0FLG-R5jVbQg@HaVS`eTl;BUpy4A0L3#zQ&Iv0t6E=( zuCt{imfRi{)3Wo|5-Mzgo`LJ6rpVe01qBsXuHEdsH~4Jw?E)mNqymc7uSZlAzFaT< zw-gl>{^t}&sx5->e@+ zrn~DY!fb|8^3dV;rE3xTTi3PRao|Uwu88+gERGx=>f8O}ob>yWb4TY#x5s@Oj1A4; z>V3KY%3TyOZ2ooO^P5ZDT|Qoz4+n=b-@pCbcHrxK9j!|D^#0TzcZXz+nmz{lSmmEt zIaFCWw?{qc$kP>Xsq(Q7Jgz_Z1; zlt%XppVSGrf7R6?Cb{83sM%3jkBdc*XMPUvSF1RQ$M-!fB^aNrx}jcuHsiH*)6tr; zsbLqt^z`ES+{l*0Jzt3mEz`G5*2=DTO1RCpU4j(x-gl+iMD0ziHHN{cuYNq;S9|TN zeg#jbW$N>TAC&6k{e-K-L(Xav>vNUzTr3a0sk`6Xvgxl^PGt}DcIHQ0-B)^j{EzOv z->Ry9xbN2<@Go;y+h5vQT1=*z&&MgNL8&-0^NgyIJG8#`Z{;udSDVW@DiV^u>omc>L|i=ryQ= z8}jw&3tlt#BRgZ?Z4;j|lyz`HCw$A4vpSoY7<1#bgKA$bafR8&Q_a5Na#Rcc-Y4c$ z+$wkPD)X|dao=5RM-H#ZPE)&%HMm-kaZh1rBA`0BE@b*ZVPHvIn(z8hPv&&^t2-u) z&z^0z#{+y(UMazwzL*o7)Az8jV&b-rT%BOEEZ0H@!$0LU{2VejPjY8_9kvCe7rTTI zkI!4iG&RY1d^PMIzso1n#x}oi#~z8f_AWQPjJ*Q)VG85m=-2SbbNA-^hhGcA^ecBB zI{J;^^~r2zrm?B}Qc$=%S9V}*a_m}esuB$-se>j1AzOD0Ue8dm|D* z6#H%Q!m zwxGY~W(D*7=VYq@+axPQ-*By`)3{h!TZ}(rzE2>h(&Qc#tWuw$*S;Y^zr4AWlE;53 z)BXM;KY6KNy=t=@q_K8`y_BZm(M;00L)Wfd^L)*iAFF!XvwO2My_5b^;(o|O(<+T3 zKYE+$1@7||OQ}n7^+dHh37`6nX=3gk56tO#^xg`mtEZH-===lcoHsk}B{YQp9N6VO zFqq!&dhS+?&zb1k{`yXJch__yYuD%1lO`Ab=A~+Ievs-^6`+)II+``L&lu zPs!>AEoTqkB%4;-=&U-Ao5C& zRF7#F;d(1tW8>y(CRr{gEZC2AuQ;C6YMWX!H6Bit;8Z{6eXNc+mf?OoZTM9`HGAah z!xJOtzZi0A#QyNP8u(r1w43*Vyi;p7zb)DvVIS?%lQjJNHR3F3cw_jfc_Xt+?`q3( zlA@X>4qJ?in!P*yg>H5FuEm@4X4}ng7~X#ssvX?mv4rY)n*Kv6UcK9BnUvcW&!*NN zv*9&O{vUb@(08pauGL_6$9^ol9pl=S7hMY1aqx7fx*XNGdos2npw8{FIO*C;< zFYLYMv7R%zhr}NnjT0mA1C^^IZkX>58vl5?ol_qfnP;j!Om1)ozOADEHp!&lnKlRwEHXS!9L2XzaQPEDNm|L{3ZPg3>G{M3i`vAOOV zuc4DU=4xLZKM%%sPetr6zmgtU@I61reh)sgi$C{G_OVfSi9c-=kJEN-KeV?zygRv< zTs;|G5F0rl^XHc?PmNVcWvH@8FKP#O&a>7x9zR#R<{^K7_-NYKkpRz^f~TwQtg<#t zYb-W9P7S=!5P17#Slpvc`P&OOsD0vM)Tl@MX&Y|r(_v0W42k>YCDWVNY!9(1%i)Zg7i!uC1Vu^xbd&>e!52lMjZ&EyfF;GbefvQa^pqnL9F9l70G+ zxmI1kWQe}mM{emYLA}CP>LVwg@<*%>1)f$O$VNYWWM=)lYKI#Vp}e^#askH8p(ENN zg~^ST+n^{{2PFq7kv8+0qa`sD*qJ9sv%ft%d*IzoCrtX~Vc+y==C(;9J#3Xu5RqAIrM%$1qB(G#y-XY|b~Q&w!(b9rm|U?zG? zZAOR3CZDoP)XPRmf!EBo9r=*yYYUw{`C^M2lq|DbOm3sWw}7V&R|9 zTbV^Wn*i+QfBeX1dxjt8s6WkBVjW|PF*G0;8W?K)Ihy6jA}pdR3_PqChqOruDMA5> ziw06LECms&(->`LKpMuJqcF;iVHD-3!dMDh5yJMyVasge>h487iL&I24V#xp#|R^< znB}k)&_plxVT`<2LMae*Eng>LKu1MYhSLQ)IR&~mZu>Xi)_Zz;{N85C@ZAvP;D~HIj+B>-^M)YAA)SOm z)1)D{G@g5&JnL+kG!zR#vOrJCrUJS5lXm+b+uJ|?&v$WJ3H>3E}Leue;n)lj#* zLQy-QxQc{cZn>7!W?90Ee~UkZqjx%$Ss<{HQ^eW+h^fU8s6x&l z^!U7)@#*XFIhg75S`c(leDL7&u>XD~uE)wku}MRKb@1*^;_g1ix$ghJ zztZ{G8xW)bL2E@JXqynUC!= zfC~JGnA^eo1W*Bl^zF7?MtlE{FHEd71doeOm$X^zCT#TkMTowWeOYBCX%AK3 z#QQvI17FmMC#4kTkegBn2?2PX69Qkt<8%;&-0NbhF7J*e2;OpN7br^ztWcGHo*;*f zS0xBBp{iO!G)svjhvgv2PcSSsl5Hwoi6jqDibB4(DhZFx03nq|gO45ytVI?Ik%kbY zHmne{i*13xagn6mc$yMvIG596hUam_Bz%b#+oCBqJ(V!YdIpX8=f$o_l)45KqtNaVFF4wn=8Er2O7IS-zrL;zL=Oqt8$GB`9n zoFE$jz?3|emqs~?(gE%6nS$r~k;yD@cOQ-4k_L^1dAdjMc8a18{eP=OPRrm9~A@C7rT z%n1QVZ7F$Bf>t!|%*Sq$iq(Oj1{4n!-+|$B=&Bkl4o!u`L(R z41qhNO18!EKy-0DXHehcWT2g~$~kHmWsn-T)gXidgi)m=5JoVZGzxh+X^)v4mPMfi z=z~xXqgf7QGT&tn0Z70~iGWNH=7REr#|tt+Ifnc2Jh9>MVjr)YDi2B!8B8Rmj>8oR z&*OGe10{VtE{A%Nu-KPI2_$4v;ISM^puUho#>0{wzcCw#U@YiEIROcbt!PBi0R>_( zR)`AR`%|LxL2*Z$f`W{)*r@KZ>TsdLYRyMeu9t!^_13Aa z3f8|VD!VH{T(Hxc41gKHH3#e|1fWW%5hbCNsUm4og{V+9m~|DB4ooC_Elbiw{Q{H$ zbA)g>COk1sPeL<6Oof%jV4DEuK+aMF$t405y-XmMhU!=p)}{FJAhDu(1ZO3md%d`*?||V zqRZ!VI3Qz$DkNRFnYdPxKthxyP+mo63(ms%1j45;K?TE9xTz7?3X+;72eZD$)y5RB zu~g5<8waJxLpw2#!C7Q>jzfbl0+t}@vSGGSi)@3%fm_4k4FLxJx)&t<6^6e9(gy0e z?r~5FZ#jB1e@ne4@$ucFk0L-XB_R7Zz&4KCK`P9KLj|Zb9OZJILEbmQj&dm!Ab}bM zrz0CsE=f@uTL3$+-{?l?OT6U^P=U&D7>*LeIbd&tEM`}TbL_xapi(n@0JvP`7RWaS zWdejIC$O!yNKAuOn3J^-lrAq170a&ibF($ygjU`x;b9FFi+K$EgHK=haF=XSiNv9h zxnQgR1XzHKYhYI*Kvc+h^*;f!4v(c~E&&uI0523&gT=iF^u{DNhDCtW37Z13l{9hi z9Df27^4}u>`cDA=mnnGIKStnra1Hp&fI>dJsy~}*e@UPZ_YZ&qmiv$9&$USU{%L@s z2tnp>JPisuNfSnc&Fhcv!akC9KGH;nFyP?YDQmt+*K!a{iF7_2re=}C|MKkTn*Lth z|FeXI!Y;joP{hN7N}Fu`&J_NB=4_cP)Co2|9i%tDiCYQoU&?eI=f5-lsAr ziSl0CL3se_N0eX3HYng^(#k5t=*Z>PC`YoLzAz`EwH8HZk?}%mL|e_s0rv78yjAq_ znpw@r%?)z{;Ov+kh+nn?ahRP#7=FS0Si73eUe?fbfVsH=HF(jWVGeVYUnB3u2KMNY zQ^s@GA_xtL^=$CKxw6by(a|`K+Ohs z5pD_~8`Spyx_0JDDk%ij%fct!rWYCRRDt8GZd=c3i?=JxX{MPwfQ3~O_ZSz{XB6dkhcn9GO zvQUGfc!{DIP-=EIiBL?~_>Q8$lLMKf3SltXP(5VvyAotzx)WulI*Py?KOzGu?P}U{ z$N{0OVkq@iN{gfm?cU?S*&J$tSkAqOxhTIm_wJ|1${RzE#7nM!u~6(XD3&FC{=Bbm zdBcG8dP{nI;iEwr?Oop55`~@6TX3DkN@*2bx^&~#-TJ1E7jH*D&Or*x)j_fP^O2T@ zFV~B|Ev2O;zd2<)fSd3G|K^0z`A_OQRxnR76YRsIPsE2YqatI%!x=H;S7p+uTJ1gR z56yy0roSj^ZCUFP6jbTI#xFT)`V+mq{L^Dnj<7i=AhpsgD%v#TQ;G-kXwQe#8OPRE zGhtehq3|m4@OI7QU=bGa*$o=_z11Tjml-wl?W4f#dd;xg%^%Z;#Ku+=C$iTit|MwB zi#ipgCrqv4TSm^@$CUi4QB=jW|9)pS{ao{zNApb^quxCDoH=EZDVh=V)H_UW>+Sim zE$2t&(y*Y_H>X%PcYJtn<4*At2SU7Xb913O(0xa%JJhPjxP5%i+@ zUiS3AzEhtYHm9sRP#tIelXH8qX_%wZt1EoUGul{P4TZngNbyQ@4+=oXKLuv~P9ZI(_}osi`YP zc9te27(2OpP>>(f(LQ)LRb;3bg{ANi7f0Rb4vy8J)!1zhJk%Zg|Jm=wFjR zmtOhMHPJsJ%30l(<-bDgXN}yNxO_-z!m#CxkAtk7Zk_AZ@v3L@f7F^ZNp%jpA>mL%s;WWM`YLgFqv(ml0iH<@U=Prxk`_TV*8yj|Cu6Y=C2bOn}!rc zS4Tf2_W2T9t-C6T+Ch5W^t|LPm&V$y_2(l`X%6=}5Lw;}Ez?hey=fC!>SH;xM$e{Q zN%F7sQe<*DJL5L}W?p18<9+x0l1+Z)OZqA;MIxGiA3?5fN7f~0`^~}ao-duw zzwBynYZ<+t>Y@3-tzW;UCmb=iL(m;QR9H7Q_brNP_U57HA9rn}CUlR~I|vOrjTQdw z=IDt}Snz3l6LkZ5Fuc{sGQFbWhQ09c(e~j74&h(s%d<`&VV-lD9jtA=*nln%nkTll zdwqzp>xs9eHw>ruY(7Z5BB+}AHB@ukhG!YxJ?l3G5`BZ(v${eR9}T>ZA1yDq*o#VX zr!0-xAT@tI09;^oEVH#({q8rzOSYyLy%}(iU|9cxy4gSKvZ^cO+K+2?d(Umj>l#lk zew5cLZe~8T54zt=H60@?MAuPgADV|WKOXD178G$~`X&Jx}pSeGarbpjjuk7E_&Po2gPAXbN4P6;KY+wujs{qQAvVT8o z6ex&Fc+=&6FLz|Z{Ij{&zQV%J>PhVKvpHW+ zOhsQ!ToZoylFwx9$ug`?O^p7x{^5D@x0lbU;tQ!p&!>C_hE6R`$=VqjL9kCX@|?y-q#;-ulj;By4k5_o)Bf^~ zvsb?d^LLr-ZW}O*S0aIHS^N;FX7#~ zI#tr@6(q{4>HDMFr={*`Wn<)>ysX!!-#;{Iu<-N{SXwR>eXObMgWfE^{l?MKpJJ$E> zj%9g7=Yje>=+)+Ci&X8$AHC;8#E($W6Y0koIt%O6l?!2&rSNsNO6(+Y%g&A6G z_~e#luF&2WENCoBo_(=hm@$x0`LIK2-TZ0Z_o@IR-(%Zrd?&A$Iy`e_u46u)aCBZW z`*B5?_0p|d<4T9FJQ)9~T2*tR*_U~&-b2MO>ssEDlOxhjNw{j-Ow{B2K(tiexv%jE zND~9!tfw_2m4hSSDNk8??R#9EOP`1dE7%js)XgEfZf6wu`n}B1Pqrl3*}Pd3Y0*rS U?l|1FK2qT$E~POC;i~QaAHZiv4*&oF literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/hardbarefoot5.ogg b/sound/effects/footstep/hardbarefoot5.ogg new file mode 100644 index 0000000000000000000000000000000000000000..72ebeca84d3db3ba607e672e2f960940988e653a GIT binary patch literal 6072 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 XXFg=l@x6|)UTpsnnU!(N#S;1tt>0f$ literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/hardclaw1.ogg b/sound/effects/footstep/hardclaw1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..1d66eb4d499192ba3bf09d786743b5fed54a0f83 GIT binary patch literal 4694 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 CDTa*z literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/hardclaw2.ogg b/sound/effects/footstep/hardclaw2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a6a7951d7782d1a9633ad9453dd7402c2c3ada17 GIT binary patch literal 5174 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 literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/hardclaw3.ogg b/sound/effects/footstep/hardclaw3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a2e5462199d174219d5332c224d8a1e5e5b0a5d5 GIT binary patch literal 4509 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 Yuy^G<-J*xl<>J86F>fBvxDET{KjjHJC;$Ke literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/hardclaw4.ogg b/sound/effects/footstep/hardclaw4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..bd845a8782a113bf47312c651b07f98871e2fb42 GIT binary patch literal 4676 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 literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/woodbarefoot3.ogg b/sound/effects/footstep/woodbarefoot3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..113a89003a65bd45ad88691955ec2812c3693894 GIT binary patch literal 6554 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 kiXR1~_S=l@`FvmtpPU8w562s5dH?_b literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/woodbarefoot5.ogg b/sound/effects/footstep/woodbarefoot5.ogg new file mode 100644 index 0000000000000000000000000000000000000000..6fbce27109eef8e378e64f372eb22ef95a4db6ed GIT binary patch literal 6708 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 Z%Q$@Sa_|VoMe<7JhXQ3_gC2$8zX1@ULNEXT literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/woodclaw2.ogg b/sound/effects/footstep/woodclaw2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..29b04a95541aa956e9e1afa5cd63aeb77e61ff04 GIT binary patch literal 5430 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 literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/woodclaw3.ogg b/sound/effects/footstep/woodclaw3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..9f4ac6d3340c107441a954fa7c522de6bd23631a GIT binary patch literal 5492 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 literal 0 HcmV?d00001 From 752f368ed245f02287b961aaaff169715cb13b61 Mon Sep 17 00:00:00 2001 From: Nero1024 Date: Fri, 17 May 2019 19:12:22 -0500 Subject: [PATCH 028/276] Ports additional footsteps And actually make it all compile. --- code/datums/components/footstep.dm | 13 +++++-------- sound/effects/footstep/crawl1.ogg | Bin 0 -> 7760 bytes sound/effects/footstep/heavy1.ogg | Bin 0 -> 7051 bytes sound/effects/footstep/heavy2.ogg | Bin 0 -> 6381 bytes 4 files changed, 5 insertions(+), 8 deletions(-) create mode 100644 sound/effects/footstep/crawl1.ogg create mode 100644 sound/effects/footstep/heavy1.ogg create mode 100644 sound/effects/footstep/heavy2.ogg diff --git a/code/datums/components/footstep.dm b/code/datums/components/footstep.dm index 35b7d5ecd5..69fc9d10da 100644 --- a/code/datums/components/footstep.dm +++ b/code/datums/components/footstep.dm @@ -18,7 +18,7 @@ var/mob/living/LM = parent var/v = volume var/e = e_range - if(!T.footstep || LM.buckled || LM.lying || !CHECK_MULTIPLE_BITFIELDS(LM.mobility_flags, MOBILITY_STAND | MOBILITY_MOVE) || LM.throwing || LM.movement_type & (VENTCRAWLING | FLYING)) + if(!T.footstep || LM.buckled || LM.lying || !LM.canmove || LM.resting || LM.buckled || LM.throwing || LM.movement_type & (VENTCRAWLING | FLYING)) if (LM.lying && !(!T.footstep || LM.movement_type & (VENTCRAWLING | FLYING))) //play crawling sound if we're lying playsound(T, 'sound/effects/footstep/crawl1.ogg', 15 * v) return @@ -95,10 +95,7 @@ GLOB.footstep[T.footstep][3] + e) if((!H.shoes && !feetCover)) //are we NOT wearing shoes - if(H.dna.species.special_step_sounds) - playsound(T, pick(H.dna.species.special_step_sounds), 50, TRUE) - else - playsound(T, pick(GLOB.barefootstep[T.barefootstep][1]), - GLOB.barefootstep[T.barefootstep][2] * v, - TRUE, - GLOB.barefootstep[T.barefootstep][3] + e) \ No newline at end of file + playsound(T, pick(GLOB.barefootstep[T.barefootstep][1]), + GLOB.barefootstep[T.barefootstep][2] * v, + TRUE, + GLOB.barefootstep[T.barefootstep][3] + e) \ No newline at end of file diff --git a/sound/effects/footstep/crawl1.ogg b/sound/effects/footstep/crawl1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..61a73a58d0cdb78a05046f1b7a65502bf8f3c4f1 GIT binary patch literal 7760 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 literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/heavy1.ogg b/sound/effects/footstep/heavy1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..bfc80a42702842d197dfeb40ecf6046115257743 GIT binary patch literal 7051 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 H8-@M@`NEe3 literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/heavy2.ogg b/sound/effects/footstep/heavy2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..514e3ac3e24612f2aa79082e52c99f369d57a8df GIT binary patch literal 6381 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 Ai2wiq literal 0 HcmV?d00001 From cbdb98988c1b4028e92fe9e9bc2c25abe8120f84 Mon Sep 17 00:00:00 2001 From: Nero1024 Date: Fri, 17 May 2019 20:42:54 -0500 Subject: [PATCH 029/276] fix footsteps for naga/tentacle --- code/datums/components/footstep.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/datums/components/footstep.dm b/code/datums/components/footstep.dm index 69fc9d10da..301c2cfa23 100644 --- a/code/datums/components/footstep.dm +++ b/code/datums/components/footstep.dm @@ -88,6 +88,10 @@ var/mob/living/carbon/human/H = LM var/feetCover = (H.wear_suit && (H.wear_suit.body_parts_covered & FEET)) || (H.w_uniform && (H.w_uniform.body_parts_covered & FEET)) + if (H.dna.features["taur"] == "Naga" || H.dna.features["taur"] == "Tentacle") //are we a naga or tentacle taur creature + playsound(T, 'sound/effects/footstep/crawl1.ogg', 15 * v) + return + if(H.shoes || feetCover) //are we wearing shoes playsound(T, pick(GLOB.footstep[T.footstep][1]), GLOB.footstep[T.footstep][2] * v, From 6c077758c64fa9273591d1de7cc7559c7ff05fc6 Mon Sep 17 00:00:00 2001 From: JTGSZ <46565256+JTGSZ@users.noreply.github.com> Date: Sat, 18 May 2019 05:06:22 -0400 Subject: [PATCH 030/276] ports gang --- code/__DEFINES/antagonists.dm | 5 + code/__DEFINES/role_preferences.dm | 6 +- code/modules/admin/topic.dm | 9 +- icons/effects/crayondecal.dmi | Bin 29115 -> 34780 bytes icons/mob/hud.dmi | Bin 14773 -> 14934 bytes icons/obj/device.dmi | Bin 43527 -> 43562 bytes .../code/game/gamemodes/gangs/dominator.dm | 241 +++++++++ .../gamemodes/gangs/dominator_countdown.dm | 13 + .../code/game/gamemodes/gangs/gang.dm | 475 ++++++++++++++++++ .../code/game/gamemodes/gangs/gang_crayon.dm | 236 +++++++++ .../code/game/gamemodes/gangs/gang_datums.dm | 139 +++++ .../code/game/gamemodes/gangs/gang_decals.dm | 38 ++ .../code/game/gamemodes/gangs/gang_hud.dm | 34 ++ .../code/game/gamemodes/gangs/gang_items.dm | 404 +++++++++++++++ .../code/game/gamemodes/gangs/gang_pen.dm | 58 +++ .../code/game/gamemodes/gangs/gangs.dm | 59 +++ .../code/game/gamemodes/gangs/gangtool.dm | 259 ++++++++++ .../code/game/gamemodes/gangs/implant_gang.dm | 61 +++ tgstation.dme | 12 + 19 files changed, 2046 insertions(+), 3 deletions(-) create mode 100644 modular_citadel/code/game/gamemodes/gangs/dominator.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/dominator_countdown.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/gang.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/gang_crayon.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/gang_datums.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/gang_decals.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/gang_hud.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/gang_items.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/gang_pen.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/gangs.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/gangtool.dm create mode 100644 modular_citadel/code/game/gamemodes/gangs/implant_gang.dm diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 4c454aa61a..e35defd485 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -35,3 +35,8 @@ //Overthrow time to update heads obj #define OBJECTIVE_UPDATING_TIME 300 + +//Gangshit +#define NOT_DOMINATING -1 +#define MAX_LEADERS_GANG 3 +#define INITIAL_DOM_ATTEMPTS 3 diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index 6773d55e53..b316c003a9 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -33,7 +33,8 @@ #define ROLE_DRONE "drone" #define ROLE_DEATHSQUAD "deathsquad" #define ROLE_LAVALAND "lavaland" -#define ROLE_INTERNAL_AFFAIRS "internal affairs agent" +#define ROLE_INTERNAL_AFFAIRS "internal affairs agent" +#define ROLE_GANG "gangster" //Missing assignment means it's not a gamemode specific role, IT'S NOT A BUG OR ERROR. //The gamemode specific ones are just so the gamemodes can query whether a player is old enough @@ -58,7 +59,8 @@ GLOBAL_LIST_INIT(special_roles, list( ROLE_SERVANT_OF_RATVAR = /datum/game_mode/clockwork_cult, ROLE_OVERTHROW = /datum/game_mode/overthrow, ROLE_INTERNAL_AFFAIRS = /datum/game_mode/traitor/internal_affairs, - ROLE_SENTIENCE + ROLE_SENTIENCE, + ROLE_GANG = /datum/game_mode/gang )) //Job defines for what happens when you fail to qualify for any job during job selection diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 226f2a5456..6fa118ab7f 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -903,6 +903,13 @@ else dat += "Alien" + //Gang + if(jobban_isbanned(M, ROLE_GANG) || isbanned_dept) + dat += "Gang" + else + dat += "Gang" + + //Other Roles (black) dat += "" dat += "" @@ -974,7 +981,7 @@ if("ghostroles") joblist += list(ROLE_PAI, ROLE_POSIBRAIN, ROLE_DRONE , ROLE_DEATHSQUAD, ROLE_LAVALAND, ROLE_SENTIENCE) if("teamantags") - joblist += list(ROLE_OPERATIVE, ROLE_REV, ROLE_CULTIST, ROLE_SERVANT_OF_RATVAR, ROLE_ABDUCTOR, ROLE_ALIEN) + joblist += list(ROLE_OPERATIVE, ROLE_REV, ROLE_CULTIST, ROLE_SERVANT_OF_RATVAR, ROLE_ABDUCTOR, ROLE_ALIEN, ROLE_GANG) if("convertantags") joblist += list(ROLE_REV, ROLE_CULTIST, ROLE_SERVANT_OF_RATVAR, ROLE_ALIEN) if("otherroles") diff --git a/icons/effects/crayondecal.dmi b/icons/effects/crayondecal.dmi index bb48832025c0b6e4e7c3850a6d5020b72da517b9..fcd27698e7e1b286291a7eb0cfeb211fd1081683 100644 GIT binary patch delta 10004 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 PfyXoX=TA%I%!2+0Aq1Ru delta 4310 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 diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index 047f08094662b38053bdae13b3d87a530d485cac..10474f94da8c8e6a2667411520ebb65c5f18d096 100644 GIT binary patch literal 14934 zcmd6OcU)6nuxCJ21QkRS5doDhQUn31L8+liM-YM_AiZ};C>ErMgc5pDssf=SHKGDi zgMdV8XrUKLXd!LG@4emqywARUpZCY^+vW4&oO37V-h1wxnYlCHnfvy!fz}14>r4Ou z-~vcn-53C%`+D-vc!oxi5%}T<05E8Tnp*m+JNh~Jx_JA$czFT)_UfeC7-^PGV8(GA>dt&!(6tQ_~ZRiq~T1y)q>wH z8jZ~F;7G#c3383!6}igNwY5LEiM#EHec6@yE9}|Un;iE*B$w7myQKSCWwHYljG+fzEh5VvQT9T7{ zUz6?OrSMN-<2m+Afc;q}^bM}J19A5s59zI2N%Re|jdeGC3+S=E@yZmvP+fS?-@AF{ z$`twXO||eT#%%5&*oB96m*1WFmi6iRf@&yV)+1NdmieE-n6qmUkK__6bep}NbaA%I z#$ArSEye4lK<} zo4XH(f(ktqnaqq|ba0<$8@Naxx|hM0rP!CvekO$-RJe#^l^*_Gky<68Hu>wV)skL_ znGPDxw@^o;==Un;C#1+Z&f#*Sv>aYI3n&=(=-kAll(0&g%S$>Y?89tyC++-2Y``t) zh7W#~O1$s(Dv%=TXhWQl$I zPd~-wvN3uqa?pg>-n^_QSI*?oq0UMOds`t3RA)<^N;W%p)07{y)oN+-l4M1)W|cDq zHw9h}J1F?we^%jL`ZX@5>`Kr%QOnl)XJv-*jRB zL4}4))CY;QUNyN_%6VauW(N;)L;U3(Te*JSg0r~=+L=MT-+z_4-@tc6|5y8N!Kt>9 z7u2xUM?`4xFA7-iBKLfTR?pw3x&il$Rz@-Td@+T>-JBt6zyh$H?}d~@$>wO#oW#dd zA`sj?0fAAJc_b4$2LQMU0I5GT4bIt`2@5yH zMp1Wn&Xr?JHHD*ZYiK0eF)}JRd=9kMurD0v70v$gJ3X{BeXen8$~F73%gn1R|Aq#R z%9nS7Jv`EiH&Bgbbejjae{;s$v30#L@uz!b#XtL52?-Q*_H~j<;quFqULv%C5pBx@ znfw?(LGO-`Jb9r-kmiL8iJBo}XmkjHM>G}BrG*_tmTqH*@t+YHnR3wI0d8t2Oxx!B zHi8Mq_BmzXB|L7qCq;0NRNR*jP5XvQ>RJfFr}V0?60TfH!7n#8G`!A3obJm;V40Mm z%LAX<2ySTEH+ew)QT#HnFmWD8Z9f`zJi9`j*qc9WYHLAF@dQwE2r($6mj;GVOj}J! zRh0p3ua{SuA9UP{%n<{*y1Ubjl}R;DNv2>aNut)W8t_PuAbXEAd@}Z-w$Q@HP6` zvaj;MM)xL2Cf3$NJ(SNMZtsPQy?@)~3ry8}%?tE%N(1q;xq5k_EWx(6Rl!O;p_Kdj za%VTrfkuL;0qy*2qQIP6pir~XN2s0tno_Ka>;bk}i^*^Eh90Hc+II9-3dZC;>7!8E z#Z^2nrHczzK2>d%yidxVeZ;2q$dW`zi6oUDy3#(C!2eT{;}DYuwHF7?y?x6r1jPxFR2BPkIekA{*J>-o96D zaZQcAtKON_q(Cof*{V@sUF5MyRyoSPx}5xaZ*^xJj2J07SjeELAGOVj$5i{Adzng= zV&sCWY7->>lZT@JI@$Z*oEv-0#`qFtA^```0VGX**v^ilhFNjkW zYPg88sM>*c^xyoFK&P4!_W=+koS51AqiuGi;*{uT_O=L*ey8{feXAY2yLa@eT-10L zvi4-_Y5RjQ>PyGbl?*kN;D^r%o#ex&Tc1c}hro4`yDUBi7zCZrq$G3&W%w+1gJ9cF zADF=Idp%ia-}abld}SM*!*HsU+ww`;VGY_kOAW;f84!WBuyk}{<)|dfRodlPco+l} ziM;!GZ~}pX!UR&7`&BY`cZM|~V{vQz*S@yU&f6b>iVaz=@G@K^mOAfGrhDTtB)o&d zT=k-_iYzI^WUTq#G>JCPZy8y=nPPqb1b3t=Jec~Kgj?C!fmR2TJgU=Z18;^GqCnRK zz`v8WF_`ypBP{08Tr11cGP0OwkU)PTc?2zcYG?&Zl>^fW9kk#bw z5qf9rjAo>_)fgWul;Htn-Y~T7jH4UFwHtJ&p`6t+^!R-0CRp7an*`42LqRAWSlvuM zNw6t_g16%XuZsio!O_kUi|>Z(L{uM$9dQL8un%{p484bXGxq;=FzA&h3xM9_+!q>i z7x80w9|5??bHiiFnR>&0#knpm-|ft|K*+%=BJ9k~>2Q#|Rz&Bc^Ov2YzJ;9CSNi@u zpB`f8XtwJ7mC#p$x;Ft=Jr7)FcOw|>012Keew+*dK>Gg^iwN`I+S|!|%3|BRtDBdY z7_0D))GZ^xI2WAQDk%#tjoh5-eoNB8m#hpRmxmI~ad6>7ibQ%YSqL~uT3^q~A$&HU zQCz~eyOn~yRB-caup$=HoE~W8BRJR+wg*JcTnjyCqeu>03&)&=c$e^yzkN5yIp6L0 zp1>t%0P|n@mU*&w$2I>5BRvEnIR$Ra+*#4l@p_X;8bX9<3h9k>!j%L-q5I>PTX@6Q z*M@a}q7J#kdrfAh>~2ASwXH43r1ZQnAgiqf9Lms~q+^GTpECBY_N#NP^5iiybd*(eBr_6G>~yi#Eia4soi1&jc7{WYOz~;&i?r2)U#}G zDC~YIr7(fmc)I^*pl52WZm>QB>Y*tK=i=_3a2FW2`9W9}`eO~R6)9^YTh8ym5I9kk zsj$HnWZ9oj<3iG<3^9o3K}0qY?0&IhNu=G%nF?5iV{(q)?DZHL?hu)o_*=u>uc~^F zVKG7Fkt8yzqd~w@g@P*rrKD=}S9rZanR8zK4U(KNscwAE5y`H9ZqT|>_9LTBz+VBw z^7`p*?ScGgZLV{gGPwBAB`iK3ajmg)neh**ucM*7s!H5OHAPT=WV+d}(o2n9 zN;9%CzK7#($DDszrO0qd|F~;+0_WO7Gj^@r+&3mVv$0?90WR@2^|!U*&)^Hy{-j`+ zwsv}49hoGouDm6p;Wsy!#;ZZQ*_L&}@=z|?3LITMm&}R@sFPpli+xPNQ`a8$T8`MS_X=ebkd) z@O`h)A@Yfy87NU{7JX@8XF51PjdY1mb9n%YO`B1p5F{$As_yLuE46>11qX?Vi8hC> zdVjbsod|9U{|auW{m@oMR@O=BFd!h{Q+Z7jmC`{po_ZEU4PydQjg*}XG6Uo4jbQoD z`SsyE5exS&2cFX;lc@Lvhruz2q|q@4j1Y*kNr;C-&SEBqQRctv*HXmYO}2z%f<(4T z&kgS%=bCv(Z_rMCckSNDi6U24R%R)M_;zpoOy<-7Bakrz%=`wWNSCORp$rq$Yv0T* zEa1tR5f~XGC908U446{YM=BoO#``Szd>rZbTjw32$@s{joHDUC%_G+8F9(?VeHqzf zgFH6eI{poHntsDw+^N{f8;)lD(Wl9vrQAuBb>yfX^!Uj`*0`lO6?jX7azoF;b!kPy zI-R_OO4mnqmOuPZz8VyrHs1CXx@eBAYes zWVIrV{ktsmqCa-38Dw4FUp^nQMt?Uw2AUdu7Q&IAR2C=k0Dn{CFY{ObVkU{OTmcG2 zb9V>DOShcm>yMTBYR{T;oM3-_%q;KuZQzBBaNNg%AhJ{}G|#7^w}WBfM3y$CRU@9B z>2zdm9-j)Pv~OEb=m6elq36#0pYr`^t{c!%_%E()t*{37I*E@(>6`Y*lR9KkfLjOL z7D?RSGRMhDDDtmR3~j#j=uqk%bp4iryVHv1xQ`S95^4Wzh(z_Ub`m%VigQkaV(XuW z2}XK(Fiy8t^u!UTIuS2Kb6!X{gjG>L?C;t5bY1!M=@X1!Mow;{WuwYOYAv%G%GimU zI)-CDwcQp3xq9ikE=6f&RO@=3&5LB6`pr0mI z2`ftP>&3|m5syAa7iahP0};9^=D9ToF~FR{u_*b?m}=+1?deQ>@;!&?pGjTzR&`E^ znn^slw$^55#SLyAONT>I^r>vUMS)L)3pKObVMWpsZI3y$Yxf6;#qjp3_Q9ct1#8Jo z0a^A6K9nQ@P&T{CC?9BT;n1oVTpL(vKx~4J;&znof~@{}Ij<-0gloZh6$f-EmDtbx zpj@P~VEa(p7q!YOS6tng<%nnwQp&8=1EYH&p}fW?u==&+avhz}om#Q1{a;hU* zD!5DB(D?v`(3R^aJ8{H}7*)FtHk8HoLXcekjUiB%5c1PO4+%UHUFAKLK z05fbLF#iz3N`MLR!qt&9pSh&I)n6aYXpc!_zi6_y<={a-3I(nc+~1Kji#C@lJ}boJ zjULLquIQA&vui97k~iL9;LvT^3zR>AY)$_5%dMnWD&O*(H1he#W0QQHZoBM@kx)Z~ z!4|T4Mu)-;2UiVZLM(y#nb+yo6&#SGe|8<4`&<+Ti4P5_%az2O8Psur19fYR%66{p(jDGyhC&z~?k~ zLy(6{ND}1J*iSt6<|d^#oR=!GRdn2iBWJ?gl?K zM%}KiY;Kls-$cEhkPJI;PrM;71&i2@zkK?O_xz(7w}bWixt1(^B^H=R0_WaH(M*Cs zyA|95+Y6FC@>2raZ-O}cW!)!gHCjlgjt8_K((Ie-}@4i(vnD|tKMboMn$asN7 zyDfU#1;#()Kj!aZF)JaKVUH1k;aeDw9(9PXD2? zBr6Nw;65P*Du1*GX0CBu8!5gnEx6C(wK8NwL!{u7%)H9B&`)3PIiyiT3&bSa_l$=e zxgY`EPq${<6>Yu(GiBBIwBDK8|Gpzi*b>{g-+0`-7v+quvYFh?cBp)=TMngiUy#Wf zmZ9H#QTA)R(z=qQ>B&ASvG>mEj*y$D#XL>n#K;+mBE#0u_B%GA6pwWo)x&{2Wku!F zYaxMPNPH+m4vojc#TV(BImGoOrp9K|$G*K1t>2eG4q7_*=il)hbFo1{k9l@=OdBf( zCS}LQ#)|R}v$C$wgyRRtYgrUGs}o2x8&s8|x_Ql-oRh~Xt%+h7=SKRK23FLXL|+!v zdtbE2I2<&pFZU{M%P^|Z)L=XvcBl=r;x}uox5}n(Uvl`}vfNlVVp0$0z1Ecw3mOw!%g_U zs;^FYhY*liG$2Sj|7awFK0y>t$F4;g%2li@0e(cD|L_^`5fU9)c(P}jFq(rmNEKBb zNox8TzG2wROFRaRI19a2)ZGS2)mT>al-JDQzo*^=6#Nw=>6I*AZq}`8>R~EYH*O)( zT}hgiX}xKD;xh(DfSP#~{oilgM2)osrjSvk`KO-?iv2sy^~bd8||`zgUKkvJd5o`b&jp(vn|MAE;Jo7?1#Ed7Nltw{%`YI(n*Q-;5-3h1m4&_Ta)&5>tUEW< zb=#fykh0`X3%O-;c3{(0w3K*s!$^Ha8et_Lh28S|@ePi@CbaCm{lBIz`uOEmO zbEKMi(xA^;N%{e~{k4w(qDa-tm87o=I+np#nw>j<^oh55g`Er|G-l6@_N=~KbJ!cR zcuuDFn1GX;KGL!`h1xjccZp85*$^R8^$qORUbo1Q5|zXAT!NrGxqqcIEw(9vLkMo4 zPW0IB+Xd1y&0FgWZxv{lG~zHEBghBj9{FmIla;@}eibIAXVL7KM3UNm6Ml6y@7ebv z70r%f#5CE1?6Hr=k>)x)iV&}=T>z2QB)gr~ywFzG=?rg)m(<?`Y~og1(iYS=_rbSVCcsnd&sTqa9Q0E7d+`fWg7XqwI;?={ zr7@6X9tY|RO>+A)=?BD>Pl(HUbjPE4gzZy+X=AB{XvA8CAJW4&BH@eOi(I;OI1d)> z@wTnaS!e&ivhZ$}oU)guSJIU}LgGi9(;kf!%&`pQXm9Fyt)s$PJTevlX^!9a`Yh(9 z|ANhS{Urw|t{3k*y1_S9bh}pB@YjsH2o;HtS9GTET5l~u@n{FXJwPG#tjZKcT^LI(=8#lNk91{?Bvt6NiT-6^a9;QIk2T#z@F2@9%K5ktd(j_++Y9Da5nKJn zy+V95H|&0X1l$tA?*pf>TD$uY%vH?-@5IvE;X9gt(sq2`bV-?KNn)@U(bLVpbRZr5 z+}q`06DNZU1BP29LAC%D)+_&@lS3!4QK+}SYBQa979V;!RlQ`OA_`^0@^SP(N^aEQ|ThSL(Ovp)bUnk!mF(O)x`@Di|Le+ zM4V?21cpgn+;H>oXia_GrUjW^n99y9$s^cSwv&Dy0+Su6i(U8wU+JruUk=1^34%Ye z5!DBd<}{NXe|iLUUN4BbIO2wAFUhAM8_adQ$15gEDk}6G9UYZRu2v~xV zKU34v)-s**dI?9nJ-mpap`l?N;dPSbT^IKFeF~`e`3r%J_s++cyb2kVFZb8o>V0lJ z51&(6mcv4LQb12cI$tgbI?u+>u)xo)}}0dQs@3H4(Q)M8Ww=I3EKb6pq5L|O?#4rJ6vu~5v%-L zYnx->pzX1|A%nr=VbEI7w*h#nIP!|9CkV=beuJ%Sn(ebzf$a@QqgH9-+H|CS7gMEW z%{MEEmwEo;TGrcNWK0NT-&{F(@RYgq<=*E*j#Cpc6R*_=_CkUFwoj$rj`;?1PQI_u zPs>Yf(H}pc5MC|+)+y=rT!t(Uy^@ykny{i_7v?mKW#vKI$8)l=5jNRLfpzvF{Sg0#a-D-dr#QlKmAFzi@Z59RP&}ND<_mM^+K< zN`J2eySl-zdel(mUgU$@%}|KhPmPVT5&pmKex9&cdD57cYxDKg#OvUZjs1=*khO__ zK*7d-l-9XrEIc2n*?b_hqrv07F;+-q1V>AR6F?*6sE{8- zVpjGAKE=n87AuzMZ1sWXskXPBmL|j>LK%cLOrjx#D{ALLFD*$R2HV6Qb>7}YJl2ZL z24jk+pc!{^&z0(%{GRW5@y%tFAJjzsd({IHVUe+`{O1PU)%d3x9A*TKE(sufOP8)E zC6Dc13Z+_wey>!SoMgv2$$Gba&i@7bhwJCWU-Y$!-KHU1a*N|ov1;HWZn{vZ*)Q{2 zSr(XJwH+M=|Gt_~i;>S>ZH4eREbzmYT22it0Liw2&zJ3$&nDj!Fq?KRDh9 z-58YHU+40A@h5CH#nwyB*}1f@uP-#!mZouK%_pjlp&ZD8W=s$hQ<5$t{A3(_e%aYD zQ(DV0J*P8r3JroedtBcm{I+f|D`!hBI?EHR%A#|%^kE`gPcwv5 zoen2vi+dkGXhQL;3F%c6Pu_thr`o8H#af?M*qrfMA6u+{hOfhUdE^2v{|<;W`Ujf2 zn|}W@N2%>+7dI4HJ|2?AxGxp^y)h8E4eu|kb9&Ntl~uK-=HT7mkA2-)aK)ftN@dz` z>~EU&@@n5VPpT91uw~?RRN?q`O4wBJ60%a%m;1NZ2;iP z*OOX+7HEi)%>mRUN51Y(E;7)=uLxN$9vcAU=ubJwXU5I+OAIhRF2}_So$VOx$qS6+ zUu)Ky6(1`(|1*DzA`Vh0Sx`=1@|w=+%U6-fBK0)3@qrW^?K>$V=YM)B&ZhB41b?g6 z#_@(J??bm!Pkod>pw@02EG8G}zEyt&V^8Ygn~e6<*DuEuxw)kzFHv{B%Aqm5;h5GX zMHu)!8W4kp$8yfdl6oJ7TLS=(OoqY4vx-a%fUk|w2>@#=D=AMhnw}0IY)(|6uaKEd zt*TQkeG$jss~ehgnh7B6`YMxtCaHgW08dHcUz0FIUfxXy#Ex|58^YOVKo6>unCIyL z1|MkI(*L#L8~JM2;c<8a7>7R#m^ne`of45QC9zyVxDI!Dd#dG0OAX`6`A$cKW;$Q?=cgY6Yg=f;K`00 zIFlaO829M@Jf_Jf=ZQiie_CsyA_mOEM$nh4QD6UlEydP6EutwAS#!1Y%pmGQH^1=5m)K+OzZU4FJ2Mtqt!|A#mhG(BHe>anHWA?8cw zPOtT^+?`5EDf|{WI%g;@Kw@eDZv2KTHz3`A{7Eh3<;2akvF-5O$%Y}PjuxEU^Geb8 z>H}rP#l_Vaf560UQEBjq3C$DWpSlU69jLq8QCl+TyM{ULBIjDf2F({@upCe2Z0A>i znBc&m`EGtgO&!`_$*+_k*P{U1d)M;tvfX&)XwxIZ?FBgaCb+aJrTaB6c^|yFB|dGb zXLTh726CBEh=}-ZYZKr)Un>sri}U276x|UO#R|~Ye3|8Wm)P=gt**o+Y4R+T=3w2J zQ~nk4UUGDkwBfL9b* z*=aROcRR6x)R<$F_mFeP{jw#hept7xc9B1OvSqCdmApJ;5p5&`8O-dLQzMaPGqEV?yMX{iMj_(Sz<-bqK+YxgxHui@Oe zSL2m2-RC5l)guZd(n*i<{ziYBwOIXbaEs0jpj%gs&VzdBe5KSH#U>@)OC^troDou!%69kI9P|1FIvVt&L3zt)}Ty z*qd-l>?J<@G7{J4iQ^l>9MZev^zI4@*lX?Zl zekbGQQrGB4WvXh5a~^3pY|~2l^y?$b z;1^}Dfoq}!!SpPrT^KI9e_kj|@M`>8oM;sdT1ulq4qIE(&HeZPC&VkMTiw#q{bRA5 zDnUzStnHuVI&@_O2iTaF(P(rjTJHXR%U<4l_C=g>o;m#G4V7YxHN97^z%;WYb#G=M zYdsvh9pL6qU1gA!l`@MpadEwYcnha(XjgGLS>h+7R~K#L+}zzwZESMa*VpLX# z0|98;&&hn6mc8JKMq{m~5$ek=pDkR+W1pDgrY5a^kEJ$OH8z^j{Mz~yq;GMR%56U? z!nWC%&uQ?^FuU+0+MB1LzFylnl-)fIRD>5jOu^w3541uRgPdk1YQiu6p>Oqp)w``2 zByvk@CIt&93~uVr1XjXdUGlCbk*tvnZmzD6P%P>B&<(g9jk~J^2tmJtN*UOOYZbeq^l!Yj*aa1_~>sji45 zGX66|oxg_S_Ibi&a6EW-tb<78{e`bakjf3Gq;!Vu2_R!Ftv9Z&LxvpGDjTSo{vcs} zb+x+ToQqLfKEkrk5N3r^mK!0-QI=6LIcY8<<9OB9qcUyAqN^CbzMdu;u%9(R zMurjt6CW3f$1oD@+;>x{Pj3VNoISwMfN5}RW(_rue+$g_75W(M$ojp7(hN_v6a#|U zu^jA4`5(?*7PLeSs?2vmxrfs?FWZvPbRN69l3}@x9(AxCxZQ!m#9PCYPPa8*ymK>P z>c^|UUs-!-&g?P=F~GZO#Uv5{5ZY~0{r5bR|68;>7ZmMl=391v}_Q+&X1LSv_S z2Y-ZXwDb15q&!|w506vP;x=5OT;Bw0rX}iA!@=9r&#)`#)4p4KuOcC`-|O)Df|r$jgCs@_nIG#XkT7__#gx6>*z!&hEMj=a;p8rUeb)@?B>tQ^3ggC~4x*=z9oZ7NObbRnE%h}-Q@j4!H{Cqud&Cs~X zkgQT6ruK)n7@3pM^`u`ReeYe{M;_Z8hH{Ocm476lI%i*uVePR2lhVWEdp6Gq9oFk7t)5q#@}dYUzSjezUz|lN(s3KxsD(3 zDb+!Fz8}gJ&28z|+Xl=gcaY=%jXBc9Y*j<7sJAy+@d`xCdCHr_RE zUs^2{z2pB&gQJ|5e%}kn+y$|Wp`8-|-~BD#>_%gQpvDRoBec~_-X!<%h8lQOK^_^W zm_BKSvdPQ&Zh;JY$`bevt<`VK7;$G0 zkt+e&9j^V3%$J~^jFSn5>Va%}|6&lHwS279|18iB9$Bva3Ra_){e<# zV{8z0-IOr%`&k)8+YoKZOI+i%xU zvu)V{8&)cD@U#>=65D`nlm3+ZkJ1w@zl#Nq4HwjHY)EfU;rc{d+q*T1@Q2ehcKOK_ z>HM9z09(rRb127!1*#pERWF`fbjfnQ4jIFTu}=xGW@6EaxD5@xlaO25v!SanoL$C{ z>F{Mm86w6{8F+{C0)$`k(#p{7sV7w#0f(AWjnni=dXpUuWTc|Ee--AA#3}AM&bARlySQHP-94ht_}Y1 zgJv4HXC*0|<_{85d836@Eo+czd59)l$~E#9OG2B(Q9q4bK?B>*=i)Xr30u6v%1hsQ zzn}5dhGSylKg_b9zl6p1WQ&-TXv$(WA*gW8NL3za^OW|LrlklaqD1G>HO|}CA%xxK zEk(?Dy;~_L%QY|Dx9&G*G7h&m_y$ONwlz^FR7-N6M40OD$6Q)&`dreYz?Vu`a+b8SF29WT7eMn*+6HY8@!&^(EDh~&9q1`gqOUkwLcfb;yO|U z8pr3mAdRi~W)z7ZKb4y^5Vl6rEY@e;5QD-GX*Gwn3B1sy7Uc8{nfhT#&Ef13_todq zc*Bfcqu1MiwID58$G9uhvJC{$Yc1S`WYO)0%2Q@)W$5cqlGEais8_*fqE=_acFgqk z6FoZ!PVKwhT;n)I=uZg8>xS@khjAQqYPPDz!nS;=0evSBn>OjQ z)$mD$>`!~@H+8B}?wyyORx`$&F^`*h^|Sc$_PKWeWOx^FJ#W1zEe0wHove2m@0ZA+ zemoGZgo7oi+Xn|c*d9jKRgI4F;Z5UBFHYb2wpLPdL1i+yibR8EU5E!;$yjO`S;r>g z*drN>nVGGUVCXYkP*Al~rJ>Z&5?v8sDxBBrH4CpNdCm|*31?#cb9Q31xS8oa?o`}m zG#x#0?iEKK@N<*>M^fYht;Y3_7J*`a9($Huj<&mW&-1UT5$L*-=ot(9L1Zi&e^YtmAY$b=qo9`b_{~##}-U`{>3l%-v zSw%MdVQlE5s~dk3#r5JS+3K2*Z*{FyHXt>4L>FU)fkH8@p3Du@-9ODG?P8hu8eE*^ z(Ecm+jw!;aEc*TUA^g(mc=2GMY>A^2?@;M~vb!tV! z{x!;c?#hr_PtA)@prGI)KHtnKVSkDoA;v{vhv$6$YLkYWE1m;&b!ClP54Txcsgb0KqZ<*l0|^vYXTYM zY{WhrBWc-MA9UIEIlKwfP1uHoZ(O=8rRQ5(5$7>lG99W)Xv&o;hXVi z=QfE(?2nT?;tC=^!2G!GZbI`2Sp;Z*SwI_!EzAiBlaP@h28G4yQbbff|B4rcVRc9CVe($(+_yD^(^cZ#i zwB++8#S63DB1cQDxrQfr%>7m7`MS~vBJzN*l;`>4FHsG7w;2GNEN8;G?Fv;`0FlD` z1V|)-Ni3`gjX|9P6kJ;p`#P)XOVII<1fK$^vWK$Isg_8d#UBDi9syME{S;QUMqrGh z0g+|Jm<#rjSU9%qT1qWdn@s&IMvjn+r6_d^ zvjSL)6E4lEGKpK-or-8Jit-W!0A8huf9;49LB|e4F-S_dC#wJ>Al7P#hKKp;TQA?K ze#)m7cMg=dHFDL0?qCI#x4TV4FUcUJR^+J&t)otlivU329-*hY z&L^4~U?+U-uUjNBH1{R|&=r|t2LKrK34aYo@1N$~+2A_Z-%sVIJ@DT^?Gx|w^%q)u z;ppyT0N{1BF(|HQXmBd}?Gia*8UVNz+i0t^SmUQ3W-YZ6gS~REKii>)miH)PhLT~1 z*3@(F4OIwBT4_n1#guQ`8%=IY@T6E@>x%1go==MiNtDgys$#>GlR13!0>(iEnv}MZ zh!iORK+UMUXzwRVqH|B%JJx_^4IXE;e=Bww7S27ydTGP9Ta*?q&;hhA92pkUK5}4B z6@(pz5yWHW*cbs{ADi7V@)x&fx*EChPgVXu;A?r$lY+<#dY$yK*ZKYjc922;DkUTO z^jBK7{teb}jyT~P_jeOMgyEmiu;15TIOBIDXi0AY3AmwgBBejrg#nh`?Cw4V0KQsU u*>0H}9Ux~Jq_Mxv4gff-6IUKmfepV_-VtK|DAB$b1%NaR)T*V5@vXUv!%&eI;_qzGVP+$8ZGcPj$0JsQx z^2itfplSR2FrKGM6h-R20RXxOfzQk#j~u-1y<9vYE*|axfPZ>M%8(bY%H__XHHiYa zRQ-jiWxtdrBWrjxhB6@4TCR8>OirS* zTDf8uGe!9(q$N06J9dr+R$ogk%&dGfmlZXW(H)y1Ybz+I1wLL8N;=bZ)+D?xh!6Ww^p$+;nU_O>5k6@(CuhM`%ti zhH3eja2xeLe(@(baq>ir^YltmizWz(|A$9V)QV{yV7&fZ(EEJH$fY~KcnVaKuXc%ukCf4G~QxYeg(r$KVAxIG*d6Dagg zHlxP4x~smtS4f~oxNA)GBge=0`@BPD zGJFs`%b3RR2fwIU%^q|9M{3EdmHUB0sSjS?Z(Q#7Uu4*L_dq$SOt-x4R*fh^7t0HdEhOO90Z3C2iMftRrWQv`hWJ~fq_MDx|rgJyX-nnFz zdT|T%l|xmQRsNjKfX>F5LLPrc(c{5*vwX-q zm75y68)u{ObGV+n0Vd~V7e)4+FYJ^((%v*@S`8ZIpzV}oD2S@E{q73li;~UX(w)Tq zbHPi82R+cSkf7`kIcJKKwf#7ESytQsVbyyD?}t?qrSZ7OY&A+pEnautCgH+sb(Xy@ zW?ErgB1MsJK3px)QZkWNGPYs($B_0=Pax2B8vdZ-oxF4+&Co2N1z5DP&h=SI;(c9i zK|(=zVMt?2>X$n4&1d=_+Eb!7!+8%aif`UFZ28=8cqFOtaJ;np!ZXCb1>~ea`RA{a z(gr*VaA`oTU#|=X%9zg$g*d(E;VL(0oJkumL_Mye| zav;$$Ml|Z`Du?;o%TGIOelU;7x^Zu^%g{+ZouFlqG@Ua+GprZCV8x;p!Hu+Kw*2+U zWO8%eN%NH@=|pE2PnqjwEIsNTaSzNEbU-Ug8)yO_gKvRxU$I2`nQQyS_CXu7p@Je& z!^3=qfc5j0UEZvg4zXh?UGXL^enP6N#xDmhmDREG2zy?9y2Gd~(`cZ!4nW+Qp=j8A zBcVo}DRQ7o{L9JOUHjI$J|jiAjlChG&~M_MJOO;bY_Ofz#kiAO4WXbVME1D=mN?yH z>$cTvB7Fi4E{MXd9?Z(tN!QB3?AR($x)kT63V-w)0JshSJ<@#UpT0ByF8JB_x7`D$ zhc(uUAH%Y{H6uUUF*2&!M;_OF{`H_dNhrd0fd`T*p#bP@t`?J-1QEn$E?|gtd|!{%LrYs43702v9!~!Pt8$#n7EA3xE z^&5m9%W6N-FHxIYd{LjxE3;+AkIi8!h!^G~M8c+Rv^s1sVJvbDQUAhc8^4t#V0i~N zN}R946tZcK5MRyw%7m4F#(>LDaqR!R8X-bduLeOK&>wQ}<>fL}7}w0tYpy9Thq5$U z8lB0T<4>zF1{3i)_#tN-;t)((12TQ11Es8fI$w_1!PPYlX8CL^V1S-hLwJXyql*O< z75ebQo-~24!lYGiClH*Mm-kqyX>!n&+fh_cqjJe!W~iAxh@37}nD)mY5Z2yBKI}qu zW}=`Q-yDDZddQ+Nft}l(!kPTj7KM-{PT`(bb!}PFJ34;tGVKsVJi6(kuXgY&G*+Fk zU0sDSGu6LE8J)4*ucDY(@C3E4^$4?t3+fd9iKX^_CeK*HZKg)Ti8NJZpP(mdKa^D_ zv36Nq2y`|`v89H+tOX#r?bzxRF34-UI6O959gkxtd2i395q*%Y6%WO(4a?#81i=%9 zL$GZw4;^?+@wN>)Tf@UhFLf7IzVuy&b?(r--N8z~)zgX^4Yv9jQlkoq?{E6B=sp(N zS?p3(7&U_1n)*+FBx0rNWZjXJz;ONML*InY9V2CDzX#*7 z+ud@FZ~CYe55^F4`s#$&d^odqt}Ib!NJPSkPQ0hrHN?2!G;{v&;otXZBu$#$G`e|q z%xoWJtrw&vPv6Vo{LR72+Tgv8dx3^-dvzK#nV&RI-nts-YvQ5@y9w3wOVXUGr+Xj? z<@pe;dp&REe>a=(?;o50&t>ad>1YpFeh-M;2LQGacbU!umPD8@{}%@N-!nB{Oyox- zw~)F7>vwAHJWzGduyPqe`?i=x-;=FX)_vko|F!Rvcw||iYa2#RjnvjMh}u=&yKqW$ z)xNZ_MJz?OAcyc2CFeaHs>*2zL$PhQ#bk+&*+XOLPss=BP@M^Tl>hCfU_CTV3%QZp z9qV}FL>3zqocn{3K0ULtnRuG=N(^OKS5AC6O)w!}#R!;tlIAG>xwD9S4%T}x_p{VR z6JOXGY%^~T^OoGZG8FJTqU(_8JvK>Ppw8{;MN=qMg>rqW4j+dqdCa|^{sBc6buYqV> z(2);-IATv@S);K>78bKw9yGx2!bW>c0U=_6(rw@)FW%Cv$)i}0T?euCAkNh0c}c*pkw>-M6n;25+An>$j!%&?UI;+byMY_T zCj@_BC93J&jzYeb(Cwos2awv8ec6eQUdKxx41d~{c zScJ{uyz$!78=*z?32=_$eDGn`PKugXXB;+db&Ucn*M^mp zcx$PD8^OU|`p}tw8n|NT54gk%tvg0>Xxr7{aD79*&~7y2{w{t@(Qo7RfK8+7y{oU! z3ElS}IARpOMiY}siIYWWPV>@eY2P0KpMMkG_5%Z?a9y#&=VF|&xGb0z-guW$dQ}n_ zEbwMkHv`SZth?Xuy8Br@jXKylsP`BH8h!;bB%C3l{({O{eCQY$4p|3PzZ^*P(gxre zme$)xw4mgZc3-H56+YbY`Wp-;maOUoSQ$uq=J}gT=GWb~oZ`)X`}Jc_$r4M{Der=w zw=N3qm5zfk{h|&@)xYQYURK|A0H87|&JF;u%>mH-7Y34Xd0U0SlN^EjB|c#0H*Y>{ z5nUp8C6iH(J%v5UY?7;HI}z)_BZuW0%rL%1X>6Lb=mF>aAfTT39%lt3@!o5{Ir_m> zD`b)eupZhQy(T1>c@uQjb~5xuSRLQdB@CkM9r#ow4Ii1brVX&ZTOv5E_sD5Diu_&L z{Y6H(!XUq)tcnI*Gbh2>?+&`#BA3^+tA9GA;a^nbZTn7jdr&OxAV2*1y$;TUMqQCv z!}z6-7<;*Iw}6oD4n9?6`vdZi29tgUv8drP`q)>K>V~jH;SE-qS$ny55$68>o3Z7_ zM26*CK$j?EO;Jhfx)ed3)c&d|UugZ%$gFGF^<$!n_iH_c6zNlQ$%M}>RNKwR$7lNJ z;>C-m*uE8FSCEwS!f+foSWobj%yR}4E3dA*I9Bj9E?(ljRn}szqU(ft-?2>%#EZFm z*>{RFF;jTJa{tNTyV)FvSNA6KiEOs$B^6H*>8y_*&pY8|zw71zeqM1BzeY0ynLgE2 z5vuI#G?+}8oO6(Y?T(JyXxY_$XuzMi?ZS#xR#z?tmJgC?Zb_poSOi7{HPrJla_eGv zw0$)oC%0n1)qtL37e+3Z8No6ob;SxIo=G~qyZ4~3w=z#Zv?nXHRs;nQRu;MAx3QUi z^KkqImxtlBd6Q6;C-d=_NaeeHOpUzw27!R^A1hMfZj~yum#VQIZY8CqeVoIm2Y(cU zj^Av}EGLNgBhJ2N-zP8e*Y2I_2w06C-osvrS0ny#W)FdQajIwv?a#fa_kOQGatQnx>vjFk>Dn2?eea2#&tv-0*Q zM+*s`3bg70-}TdJC!uzCeQebzXcNb){T|?xkOboA&)?{AemgS_i$ID4RppXjDWupK znVA(*#~>z1QFJ%@)7s?tI0){CKUsvKs22sVOhRL$>iF-eS&HZ4!<3!MCW=i*7PWbW zLOqSgmSPfm3h;s_1{%2df12oQfE0@BOqJtkRhP?X73Dfe1t}(wbjNHF{#g;WJSVXh z#;(QjPI{LOLLw#^q&Qqs!+!V?>yk(@Qh&E z$|}k-W92Yo{~DvAmsxPWuqvMUXr918u(dgl|Rlfx0JwB(~@SeJj9WXUF!>hl*yb&T}&}U3hA0 zD&*%yW$}zldUJ~(obhhttv|e0DPM%$UO#nR*VIm}*YzZgJ{%C+^S6pNXwHqZ1j>QV z?9s8$f;QhiRDL*DioYhrc}(0p0W4?N=*MV23fCcN|PtQ6=vG^f?^S z)`cs1ER>nq20WHB{Y4=OzSD~P`kEQ&`zS78qiWL}S7?Ax`qLRbHli(9E^psiR9^nn zcunO?Npv*Zh4_hHP~7wJxtpNZ6{*>F?;0Zzn@ET^eoAhAC3c|4g3vCgXR_9I?L_nL zty!dp+-dixE6`OjHl}jRTAiN}tV0#$6%`Yk<4V{jj3$jvF~o9Kw*LOl0Rhk`50`Z| zPGmZ8?dND87+E|%sF{86j~}FjP4!?@P#2#0{6VxqUVh|)lL)M5b6oWZOnKhdN=g=X zSwLle6Kf^8*+94Lr0~dCn;W3lFkbYR&ik)oJElf3?knZ5zg@63Ih8OKpPH+zfVgtrr`H<7S>kr|wvsK#2O*fG7W-|{wZ*tEyUU)wEki$iLL~aLo&(`?)*6;24l8Iu| zEDDfxsIw8u_sqtoyr4idUxfeN;mAZQ!@zU)?_*gbK9-cI1Y#smNgGK~tybIIAL6=p zyjH`pvv@nem{j$cg7pN!A(;)KIx2G8!&|mDeJ6r1)5R2e5WaQ z-&8*}{at@2$NCP+_Nz?Gz7mc%8%9;>l#I{|v`uoT1_2tbmB%zXDPe6yJg&M=>F=IF zCeGI25wV!EYIJM@aI}~o0sENAc)mE;rJ>fXsJOUCV^2|0u@RkURpuZFJzZA8kB^V@ zi@l$c_ZrMPqAtk8!tTaDNRP?7tG+s({mJt1cz&9X?ydN>sp_8+!)ql>Gk4bkAmi%1 zk~L0OlWZ>7n;7bv=-=j8r!I>d1 z77hyueb-f)hmY9lwkdTUi!X#-etlXdTGPOx%|>f!Flpk{qyb#xp6r4J_C6dW%x0q> zy^}6jKt}^0dGrsxn$a+-Uu_I3LtTK!%b=*niMqoiw_t%54WLyrP8DH718Cz?aeA*+ zs44Ln&_hW0ex)v^kuVqE(%1oU9hzYS zC&$|x$KDm(cf>o{h|1nS{8~qLoZdLQeTAysNF;8P(|(ZZn#%Mdqh8Q40tn>~=r8}e zw;vbJg9g1Oc}+%0dTg6_N74RSEJ5Q)uU3u#UyVe zwsUZ$FY%=|XvT9rXb&CyLA*`liG+)>j%wO%-wf9H@9eEY)W+vp3jU~~@(v5;usRB+ zovTntHXukMKM$m<<0swJZSX|rZZCt*G}GeO=}Pw|rLtLBE)mENzgJo@U#Wj_M1jYb zi1@MhRozm^2|2$Q;&+p5POXrpzFsd4EY%>c%&ImHGzvf`%Cv~H2(`U5$-2Q@nFQCN zUuKjpjt@8c+O!rSWXOfTFEP7+m0nDb=No%L)bK|{_t{X_M}+v)gs7WqTpV$MQFnjX zZ!sEJcE3R-;9_O>Z_I9cmK49`*v(*luqti%&vz;JS6y;vvo}5B z6h^u4d8FNRnF!TxEDOpeOG{0|Yy8*hDz;3cYZ4cCtUCR_u-2~(xQ47}e7)q0A+zn0y7 zqWFDhtIN)L^1Lp3z5!|Z8$;q;`CRCn!dL=bjbSEQ*St?*hrgQPw;%{--Npz^fgBL$|OESisL$< zO*fsM8L-br&-nipz-xiwN@dMB^+{W|MaLaEJ?bu8y`Dg3Rj-kp*fFoP`xZdhK^_rt zLzpr_Ahdbmr1hk@mE34f_18dkBo68q{;u6WDQJ>wr06iYk`$x5Pbv8N@ z(;`5ZgPjgN`$=Nwg@@k{GWwz$ApU-rwqOOLU2jO@b^RpKm%44cAYP}CE z+*%4_o!CO4DzeCnEolz+T&CS+mG}=bM)x*OqC@AQSNWESA0~1@@iei((lAN5I zm@1nlUzeSk+SeW)vE_8^|I`@W93hG2k5whu>Ac@~+#Jq!K`*EKW8Roc2RM|Fyl8$J zpjYUSPiLZ&`T+#e{O+9(lHeCEj}LLt;~j8~AFa)hVvipEZYd>_JWbJ(C>pTHO3Yxp zQ=DgHIojN>;pD-dZxlMlIq#qq%_{_JDkD_b1vmDsP2=J+SK|2!0P@e67q*S%}So=?-H`K= zplS4j{Hd%3D8cP%hU)W4Ywzfa`W0q=&o&y>rI2%wj;m(tsjd|xzl%+dj%Pi(8ZUN~ zsofj)`7=k_Zm##L7HHkQQJPW=Xd8~+!#g-XY*aD{G+tA( znI&OPklCgR(Z07ClAACFlXLl{f1$u~i|WomsN{=yJqDeEb2f()zieSPW%Q@733W@| zpPAJOb6E}x@66l`)P!)mO@YS^z%8n{)Z|-|ZD5Lf(~hZ4;D&=KHWNk;xG1P$4Tp?9 zRo?KwxWw9-59+RbfT zn`^K#wWYrMd-*nzcDGMScuW&{QqHJ5+}0?I)KIiyXXR}NuhhLlPp43> z%Tn#@II2sDK?wJW_4tl5-^1gTZc@j)x$_vI`x3XYEI@05S1{<|%nzG$M$6#{~FJ#FoG-IyAV@aihaW!Lw0ca)VebH`|| zU*|l|Jq3pgvkW3+>CvaKzfcfs{eaB(q>bXp+(}VkIm`^&{VJRhFko{$NL#Mh{wt>X zzL+F+a7Hx|FpZa}3oGR)iVXsF@NogUCDU@emc|?0Ml*e+RD(qN@!Eo3!uBK@F^iuK}@>FU6QE60!#f&H3)wy`?cUW_8M6%(`eUxBFo1$BIBOF`CP{;Qg5+*blg|oTFa-N@h z-B&&Sea`LG)x)F-)RtU1%r6n;PFk#WZ)qYHDz%nUpDk(1LEXur|7_48HY@Pwda<(J zP!@L_*f+Qyu9F|HlYh-!v#_)C11}%@AeOSf7%FH1G(V#GpMqy= zf#(MAp1_{K$!EP94eFn1k{MrovTEdt^BT%b6HsMo4dMj$g_DNQyhX{rGAMFZrM>s zU{T~qb$Fgf=Di{qjxVf&VCGu3&4(wXdwdr}CFz}BvGLflKRetIC0<{ILazzt4*BQd z2G!#5>-AXy{SU}$_Wd)1M9=AnzrNMp1$lnKWm3QW0fw(9xi$m8jD>z(6pwr2pb;fM z?Vu=m{4R1Wf~vwQ_EA-tU}l0~%Z?j#&@}|Led;NaphLPrecE3@Zzkx7Tw9Y$&}sM_ zJE7*Ld(cgo? zPj}3nZiD&puDFS#xMx3#8X6j4lo5?rVq@>&8~2|-f39Dr38$utKO9kPru&Jr3wF#L z2a$Kbnae0P+n1DgKjjK|A~#m@3#2>&;-mL|ZOyej&-+g-d95Mr@TfLOSUnYQ z?q6_6torG4&n;3%$GX(-xw&*14YS!R`W=mz^-;%)RPQDK2%ELzNrZ5E=mp(d)^+mq zmg3;Jou}=NNX-lpXVT@X`kEg_xLZY?UohWM2KREj0Ip4@UjOp5`g$%ND#n`O^e9FQ`v(@7c2pHd3ITSJ<#pGv$VEV1p2FM|=^o+V>c0t%Fve zo5Wk6UseLv^=CG*g~vFvvU(V52vNjMWhG5kWUK~dE_%}_ofrMuEnUE-)dO)%8;gEl zWkf3>^7Ll2y|M9^{tBcqZS?zq-G@WPB_)zgk|~$Ub}3&lyWKrzUuuvP(h|}!)_40f z?ISBt8go4N7jsK{oGoA)1Y;I0&!&OaIDugiB+;f9LVJ*K2M- z>{g`P|Lsb{2NYACNEIH=&g8FpVA5-lA;V}TgEiJ9Q1=0*HBwULA z!Ck*L0A6TR!&K=?%2lN<&dk7Z<_>7OCVZdw2@1>BM_7atNQm?=c=Cxm-FidhLaKQF zy}d#JdO-_&$8C3lMq_qn6}^5js$aP9t5o+ z{+O+#!}O<6)8tbu+D)awJujn1h*)##J?J^gNr#i^+r z1a$lXR2xrvc7x`zaL2qzzM|ccJeE4$4$3(n}6x0l^AEkdmGYJ_d?G!qsBc3ptgHxhCI~ z!XI;IF#AZLF1z)~J(|U`jMNby)W}Hx(zt3TxqKRB6z9d3Mm5q!^n5AhKvqqK>b+(1 zy+DEE=XZ}>tn`^IrGcQ=|3(<6R~D=Oc$5^Y7`VB))hXTRdyWs+$tMaIqtm_9*AQpF zBn$E2Gh^MMERI}*GOuQe3>f}9t@^&}(=XJWLjmI>r|YCCn!x?8b#%B%w-HX+4-6|E zJ|VI=U6Se@?EIR^Uk~X4^8SA*4U2+Smisv(gf!}Zql{ zD-SgkMQ?RQ!!_~;2`_kJQm!SlYsBM;rNESimSeG$*^8)1*S^ch|88mjji)IPFJBS@ zI@_?IMZ<3j{dJOqk02dy?1hUk9wx~5k`=hz#j=T8c|RE9TK9zs(Y``?=6b4}=A`V$8&_>w2eGaR@{scViBMp6Ur z@unK~FNCg?u6KKEjqyQNd&D3Xf`#kda;btgtcRxN5WEPN%me#ZXU3sbTz2Nr+fEBv z)zI;h$M9A`zh>Fy{Ri^_n2g5KT5r0ujb0ra|K;%4&d#6Ifp;E`K4jrsjRO3E7^E@f zpik^9RkcUonuwGqkVz*tg-T``Ld8ZUCA{49cLNWNVzu^Ahog~BjWdbH>@ipYcfs;l z^07+>WLWcT+#_q^=T7d?2sY_u7Bk6;&}Vk-@5p>cQ_4wbsbtC{kE>FsqU(mklWY)Q zHa+N#&W(x*)AIPkSh%V09J0K)RpT~o8DjDROF$NHoCJ!&%&~VbQ;A(Id2kNs{(9|z zh)7XaF@c`bG>6Ky`hTzuK46?oGihXVQCHh_0QJs^jzZD)ZCg+A;ml7XeY-4ZDlDJd zEAFubAnTsXnP;DHN_V$%au<4@QCZ=mELI9=F$Z_>6x;$fS2W0$uC9Xfk;>}P3sX|= zYJN`;w}g(W@%#Mli$NAaL`Fvkv@=To-pbQrRVN=)R0g`*CT4HW&LX1UF(1NpC2NE6 z@ED09eJiBwR}PA6NPbRnt8JKw6oO`9%rVqJ;udvYV`fu>uzhcH6@=OtVDWhBB0uNt zR1SI3_1nqY+rBJo_O`QgC5-2nx|`@-C$|DRu(=fIy^7dZ2^80aZw&Knru=(Rh5~Xy1x2ga zhW4u!G(#NaE}Vy443xr{@~QWBh1AOBqSjF(J6j)TPNLi!S}zUxv`Q^IBe30rqbwd) z$Tj`wOLXDAa_MJzfJi=Pu|Xnj%+pjh4TH9na#hTNZ1ns3gTQBBSeH4%V&yLgKL1 ze1bW7y|SrG;y#3sWT#`{hZd7R<712pmHXHiFBn)_7`ec*vDI;4YJ2WO5WxWNlS4dz zUWb)Xf*AWG5*8@!|v$*da``>=MBJ5;hyLuvnq882-48nOli2@k? zAO|A8N_xng`IEt+O!5kkTC411mG|aIF`{6g#i%fD&U>qT@KY3jP&0l%0$4WR^9~_1U~KAZ6|#Mwu!Ijs$}iUB#lGJ6?OVgaFenrRhh9!Ia$fmZX<0OiPNL_ z98_nF`a&@IAaz&?Bo_LN6-cb4q6r@A6oa%1xGCslh*{OBq_H9%^P!pGLbk zpgCLcYiSc$1Qh?LalMr(@Kph1LUJPpXIb-R)MNrHxL5-cLNw}ZY$426N=j>X&bAaW zHDisdCtW_UmMb!v%$G&PR6`>)veW{;A7LZc z7Hc*nx6oVzD8I1+s2r-5JU{dRtV@&g>S`MEfLzBy;tj4rg48vp8D9L=-oJ(F+~+r? zDFsi>Tn=3P?)Fj3iN344j|X+gS$)#CIX-S|TgPyoA#=7Q?q3iO*Qrt-%a0fQJK7g` z6n>qxXAyUCK_+kTxh?NV&HM7qm(N*}Auiu&^N1m%%IY4-*e+)!F_om(=)9NSLxIq%g|tlsxdW0x zLD+Wr5sCGr&@$@T)}VNIOHsyksoQ`WpP38`0f5>|6aq?L5A|u(Gd(S zR9KOE$t7K6WQA&uK7~e90@9gS+P-^c;XKNjPE;s$Sv$>dU8O0qvxYOXOS5FHqYc$I z>OG+7-bb}09-90eRN>3)cFJU!t~MN86#8?a~g?CA8qa36uQ^Aq&

`;q|nNDGrBhFL*F(=S`_j`Rev1{EA`nb7wy5ZP=iadH3FP znl;LrYYW{?6y6jx!3xC_cFF)$2cR`zWX})6`#W{LRaG2C{ECPp#gf^EhX{f)Y3a1z z{Q-lhy_}H7H*sOKUinK(=47(p^m!KiJ6;-99?~NfVmYdzVR~K;z>j~9f9#wRhmG{Q zi;Zk0V;-#@q3RpdE@R$=<8K@ob^dSCMF=5=|ABu~c$%9hv`nRxp(xmk>L;{D$uC>)+yL zBk(*in6GZvXkm{S^}FR8w&(skd#PtO&Tf!|RfOjS$@(?lpn8qD{|6Yiy2DZAs@F~% zViom2c(gB>f16N6`~3gGeNUzhXQzrhqpw^Cm|uR!#mx1WT0KTIre5*y_ZR$|DBWwp zB%rnn@wOYEj<*vixW6n?U`Inm@*(I}<`7jlB_;wj$(;BF`t z>0_}*5!BF=S52}*&QV+0mH!X)Pr|V6AyxFZbD95Q`o3i52=UQt&*At#L4*>9fQ1*# yobWFCdWSyF$u#PiiGT6;y8zgaTZ9Q5QqK8cdoU-y&eH(u2lQC~QN;th(EkRSRY1=G diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index becb58568ff14b0a8d215f10a556f805b1a920ee..55c33e5e832f86f5fcc95aad40486aab775056bd 100644 GIT binary patch delta 23479 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 z world.time) + to_chat(user, "Hostile Takeover in progress. Estimated [gang.domination_time_remaining()] seconds remain.") + else + to_chat(user, "Hostile Takeover of [station_name()] successful. Have a great day.") + else + to_chat(user, "System on standby.") + to_chat(user, "System Integrity: [round((obj_integrity/max_integrity)*100,1)]%") + +/obj/machinery/dominator/process() + ..() + if(gang && gang.domination_time != NOT_DOMINATING) + var/time_remaining = gang.domination_time_remaining() + if(time_remaining > 0) + if(excessive_walls_check()) + gang.domination_time += 20 + playsound(loc, 'sound/machines/buzz-two.ogg', 50, 0) + if(spam_prevention < DOM_BLOCKED_SPAM_CAP) + spam_prevention++ + else + gang.message_gangtools("Warning: There are too many walls around your gang's dominator, its signal is being blocked!") + say("Error: Takeover signal is currently blocked! There are too many walls within 3 standard units of this device.") + spam_prevention = 0 + return + . = TRUE + playsound(loc, 'sound/items/timer.ogg', 10, 0) + if(!warned && (time_remaining < 180)) + warned = TRUE + var/area/domloc = get_area(loc) + gang.message_gangtools("Less than 3 minutes remains in hostile takeover. Defend your dominator at [domloc.map_name]!") + for(var/G in GLOB.gangs) + var/datum/team/gang/tempgang = G + if(tempgang != gang) + tempgang.message_gangtools("WARNING: [gang.name] Gang takeover imminent. Their dominator at [domloc.map_name] must be destroyed!",1,1) + else + Cinematic(CINEMATIC_MALF,world) //Here is the gang victory trigger on the dominator ending. + gang.winner = TRUE + SSticker.force_ending = TRUE + + if(!.) + STOP_PROCESSING(SSmachines, src) + +/obj/machinery/dominator/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(damage_amount) + playsound(src, 'sound/effects/bang.ogg', 50, 1) + else + playsound(loc, 'sound/weapons/tap.ogg', 50, 1) + if(BURN) + playsound(src.loc, 'sound/items/welder.ogg', 100, 1) + +/obj/machinery/dominator/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) + . = ..() + if(.) + if(obj_integrity/max_integrity > 0.66) + if(prob(damage_amount*2)) + spark_system.start() + else if(!(stat & BROKEN)) + spark_system.start() + update_icon() + + +/obj/machinery/dominator/obj_break(damage_flag) + if(!(stat & BROKEN) && !(flags_1 & NODECONSTRUCT_1)) + set_broken() + +/obj/machinery/dominator/deconstruct(disassembled = TRUE) + if(!(flags_1 & NODECONSTRUCT_1)) + if(!(stat & BROKEN)) + set_broken() + new /obj/item/stack/sheet/plasteel(src.loc) + qdel(src) + +/obj/machinery/dominator/attacked_by(obj/item/I, mob/living/user) + add_fingerprint(user) + ..() + +/obj/machinery/dominator/attack_hand(mob/user) + if(operating || (stat & BROKEN)) + examine(user) + return + + var/datum/team/gang/tempgang + + var/datum/antagonist/gang/GA = user.mind.has_antag_datum(/datum/antagonist/gang) + if(GA) + tempgang = GA.gang + if(!tempgang) + examine(user) + return + + if(tempgang.domination_time != NOT_DOMINATING) + to_chat(user, "Error: Hostile Takeover is already in progress.") + return + + if(!tempgang.dom_attempts) + to_chat(user, "Error: Unable to breach station network. Firewall has logged our signature and is blocking all further attempts.") + return + + var/time = round(tempgang.determine_domination_time()/60,0.1) + if(alert(user,"A takeover will require [time] minutes.\nYour gang will be unable to gain influence while it is active.\nThe entire station will likely be alerted to it once it starts.\nYou have [tempgang.dom_attempts] attempt(s) remaining. Are you ready?","Confirm","Ready","Later") == "Ready") + if((tempgang.domination_time != NOT_DOMINATING) || !tempgang.dom_attempts || !in_range(src, user) || !isturf(loc)) + return 0 + + var/area/A = get_area(loc) + var/locname = A.map_name + + gang = tempgang + gang.dom_attempts -- + priority_announce("Network breach detected in [locname]. The [gang.name] Gang is attempting to seize control of the station!","Network Alert") + gang.domination() + SSshuttle.registerHostileEnvironment(src) + name = "[gang.name] Gang [name]" + operating = TRUE + update_icon() + + countdown.start() + countdown.color = gang.color + + set_light(3) + START_PROCESSING(SSmachines, src) + + gang.message_gangtools("Hostile takeover in progress: Estimated [time] minutes until victory.[gang.dom_attempts ? "" : " This is your final attempt."]") + for(var/G in GLOB.gangs) + var/datum/team/gang/vagos = G + if(vagos != gang) + vagos.message_gangtools("Enemy takeover attempt detected in [locname]: Estimated [time] minutes until our defeat.",1,1) + +/obj/machinery/dominator/proc/excessive_walls_check() // why the fuck was this even a global proc... + var/open = FALSE + for(var/turf/T in view(3, src)) + if(!isclosedturf(T)) + open++ + if(open < DOM_REQUIRED_TURFS) + return TRUE + else + return FALSE + +/obj/machinery/dominator/proc/set_broken() + if(gang) + gang.domination_time = NOT_DOMINATING + + var/takeover_in_progress = FALSE + for(var/G in GLOB.gangs) + var/datum/team/gang/ballas = G + if(ballas.domination_time != NOT_DOMINATING) + takeover_in_progress = TRUE + break + if(!takeover_in_progress) + var/was_stranded = SSshuttle.emergency.mode == SHUTTLE_STRANDED + if(!was_stranded) + priority_announce("All hostile activity within station systems has ceased.","Network Alert") + + if(get_security_level() == "delta") + set_security_level("red") + + SSshuttle.clearHostileEnvironment(src) + gang.message_gangtools("Hostile takeover cancelled: Dominator is no longer operational.[gang.dom_attempts ? " You have [gang.dom_attempts] attempt remaining." : " The station network will have likely blocked any more attempts by us."]",1,1) + + set_light(0) + operating = FALSE + stat |= BROKEN + update_icon() + STOP_PROCESSING(SSmachines, src) + +#undef DOM_BLOCKED_SPAM_CAP +#undef DOM_REQUIRED_TURFS +#undef DOM_HULK_HITS_REQUIRED \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/dominator_countdown.dm b/modular_citadel/code/game/gamemodes/gangs/dominator_countdown.dm new file mode 100644 index 0000000000..c6ae610e37 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/dominator_countdown.dm @@ -0,0 +1,13 @@ +/obj/effect/countdown/dominator + name = "dominator countdown" + text_size = 1 + color = "#e5e5e5" // Overwritten when the dominator starts + +/obj/effect/countdown/dominator/get_value() + var/obj/machinery/dominator/D = attached_to + if(!istype(D)) + return + else if(D.gang && D.gang.domination_time != NOT_DOMINATING) + return D.gang.domination_time_remaining() + else + return "OFFLINE" \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gang.dm b/modular_citadel/code/game/gamemodes/gangs/gang.dm new file mode 100644 index 0000000000..5b93cf0cb7 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/gang.dm @@ -0,0 +1,475 @@ +/datum/antagonist/gang + name = "Gangster" + roundend_category = "gangsters" + can_coexist_with_others = FALSE + job_rank = ROLE_GANG + antagpanel_category = "Gang" + var/hud_type = "gangster" + var/message_name = "Gangster" + var/datum/team/gang/gang + +/datum/antagonist/gang/can_be_owned(datum/mind/new_owner) + . = ..() + if(.) + if(new_owner.unconvertable) + return FALSE + +/datum/antagonist/gang/apply_innate_effects(mob/living/mob_override) + var/mob/living/M = mob_override || owner.current + update_gang_icons_added(M) + +/datum/antagonist/gang/remove_innate_effects(mob/living/mob_override) + var/mob/living/M = mob_override || owner.current + update_gang_icons_removed(M) + +/datum/antagonist/gang/get_team() + return gang + +/datum/antagonist/gang/greet() + gang.greet_gangster(owner) + +/datum/antagonist/gang/farewell() + if(ishuman(owner.current)) + owner.current.visible_message("[owner.current] looks like [owner.current.p_theyve()] just remembered [owner.current.p_their()] real allegiance!", null, null, null, owner.current) + to_chat(owner, "You are no longer a gangster!") + +/datum/antagonist/gang/on_gain() + if(!gang) + create_team() + ..() + var/mob/living/carbon/human/H = owner.current + if(istype(H)) + if(owner.assigned_role == "Clown") + to_chat(owner, "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.") + H.dna.remove_mutation(CLOWNMUT) + add_to_gang() + +/datum/antagonist/gang/on_removal() + remove_from_gang() + ..() + +/datum/antagonist/gang/create_team(team) + if(!gang) // add_antag_datum calls create_team, so we need to avoid generating two gangs in that case + if(team) + gang = team + return + var/datum/team/gang/gangteam = pick_n_take(GLOB.possible_gangs) + if(gangteam) + gang = new gangteam + +/datum/antagonist/gang/proc/equip_gang() // Bosses get equipped with their tools + return + +/datum/antagonist/gang/proc/update_gang_icons_added(mob/living/M) + var/datum/atom_hud/antag/gang/ganghud = GLOB.huds[gang.hud_entry_num] + if(!ganghud) + ganghud = new/datum/atom_hud/antag/gang() + gang.hud_entry_num = GLOB.huds.len+1 // this is the index the gang hud will be added at + GLOB.huds += ganghud + ganghud.color = gang.color + ganghud.join_hud(M) + set_antag_hud(M,hud_type) + +/datum/antagonist/gang/proc/update_gang_icons_removed(mob/living/M) + var/datum/atom_hud/antag/gang/ganghud = GLOB.huds[gang.hud_entry_num] + if(ganghud) + ganghud.leave_hud(M) + set_antag_hud(M, null) + +/datum/antagonist/gang/proc/can_be_converted(mob/living/candidate) + if(!candidate.mind) + return FALSE + if(!can_be_owned(candidate.mind)) + return FALSE + var/mob/living/carbon/human/H = candidate + if(!istype(H)) //Can't nonhumans + return FALSE + return TRUE + +/datum/antagonist/gang/proc/promote() // Bump up to boss + var/datum/team/gang/old_gang = gang + var/datum/mind/old_owner = owner + owner.remove_antag_datum(/datum/antagonist/gang) + var/datum/antagonist/gang/boss/lieutenant/new_boss = new + new_boss.silent = TRUE + old_owner.add_antag_datum(new_boss,old_gang) + new_boss.silent = FALSE + log_game("[key_name(old_owner)] has been promoted to Lieutenant in the [old_gang.name] Gang") + to_chat(old_owner, "You have been promoted to Lieutenant!") + + +// Admin commands +/datum/antagonist/gang/get_admin_commands() + . = ..() + .["Promote"] = CALLBACK(src,.proc/admin_promote) + .["Set Influence"] = CALLBACK(src, .proc/admin_adjust_influence) + if(gang.domination_time != NOT_DOMINATING) + .["Set domination time left"] = CALLBACK(src, .proc/set_dom_time_left) + +/datum/antagonist/gang/admin_add(datum/mind/new_owner,mob/admin) + var/new_or_existing = input(admin, "Which gang do you want to be assigned to the user?", "Gangs") as null|anything in list("New","Existing") + if(isnull(new_or_existing)) + return + else if(new_or_existing == "New") + var/newgang = input(admin, "Select a gang, or select random to pick a random one.", "New gang") as null|anything in GLOB.possible_gangs + "Random" + if(isnull(newgang)) + return + else if(newgang == "Random") + var/datum/team/gang/G = pick_n_take(GLOB.possible_gangs) + gang = new G + else + GLOB.possible_gangs -= newgang + gang = new newgang + else + if(!GLOB.gangs.len) // no gangs exist + to_chat(admin, "No gangs exist, please create a new one instead.") + return + var/existinggang = input(admin, "Select a gang, or select random to pick a random one.", "Existing gang") as null|anything in GLOB.gangs + "Random" + if(isnull(existinggang)) + return + else if(existinggang == "Random") + gang = pick(GLOB.gangs) + else + gang = existinggang + ..() + return TRUE + +/datum/antagonist/gang/proc/admin_promote(mob/admin) + message_admins("[key_name_admin(admin)] has promoted [owner] to gang boss.") + log_admin("[key_name(admin)] has promoted [owner] to boss.") + promote() + +/datum/antagonist/gang/proc/admin_adjust_influence() + var/inf = input("Influence for [gang.name]","Gang influence", gang.influence) as null | num + if(!isnull(inf)) + gang.influence = inf + message_admins("[key_name_admin(usr)] changed [gang.name]'s influence to [inf].") + log_admin("[key_name(usr)] changed [gang.name]'s influence to [inf].") + +/datum/antagonist/gang/proc/add_to_gang() + gang.add_member(owner) + owner.current.log_message("Has been converted to the [gang.name] gang!", INDIVIDUAL_ATTACK_LOG) + +/datum/antagonist/gang/proc/remove_from_gang() + gang.remove_member(owner) + owner.current.log_message("Has been deconverted from the [gang.name] gang!", INDIVIDUAL_ATTACK_LOG) + +/datum/antagonist/gang/proc/set_dom_time_left(mob/admin) + if(gang.domination_time == NOT_DOMINATING) + return // an admin shouldn't need this + var/seconds = input(admin, "Set the time left for the gang to win, in seconds", "Domination time left") as null|num + if(seconds && seconds > 0) + gang.domination_time = world.time + seconds*10 + gang.message_gangtools("Takeover shortened to [gang.domination_time_remaining()] seconds by your Syndicate benefactors.") + +// Boss type. Those can use gang tools to buy items for their gang, in particular the Dominator, used to win the gamemode, along with more gang tools to promote fellow gangsters to boss status. +/datum/antagonist/gang/boss + name = "Gang boss" + hud_type = "gang_boss" + message_name = "Leader" + +/datum/antagonist/gang/boss/on_gain() + ..() + if(gang) + gang.leaders += owner + +/datum/antagonist/gang/boss/on_removal() + if(gang) + gang.leaders -= owner + ..() + +/datum/antagonist/gang/boss/antag_listing_name() + return ..() + "(Boss)" + +/datum/antagonist/gang/boss/equip_gang(gangtool = TRUE, pen = TRUE, spraycan = TRUE, hud = TRUE) // usually has to be called separately + var/mob/living/carbon/human/H = owner.current + if(!istype(H)) + return + + var/list/slots = list ( + "backpack" = SLOT_IN_BACKPACK, + "left pocket" = SLOT_L_STORE, + "right pocket" = SLOT_R_STORE, + "hands" = SLOT_HANDS + ) + + if(gangtool) + var/obj/item/device/gangtool/G = new() + var/where = H.equip_in_one_of_slots(G, slots) + if (!where) + to_chat(H, "Your Syndicate benefactors were unfortunately unable to get you a Gangtool.") + else + G.register_device(H) + to_chat(H, "The Gangtool in your [where] will allow you to purchase weapons and equipment, send messages to your gang, and recall the emergency shuttle from anywhere on the station.") + to_chat(H, "As the gang boss, you can also promote your gang members to lieutenant. Unlike regular gangsters, Lieutenants cannot be deconverted and are able to use recruitment pens and gangtools.") + + if(pen) + var/obj/item/pen/gang/T = new() + var/where2 = H.equip_in_one_of_slots(T, slots) + if (!where2) + to_chat(H, "Your Syndicate benefactors were unfortunately unable to get you a recruitment pen to start.") + else + to_chat(H, "The recruitment pen in your [where2] will help you get your gang started. Stab unsuspecting crew members with it to recruit them.") + + if(spraycan) + var/obj/item/toy/crayon/spraycan/gang/SC = new(null,gang) + var/where3 = H.equip_in_one_of_slots(SC, slots) + if (!where3) + to_chat(H, "Your Syndicate benefactors were unfortunately unable to get you a territory spraycan to start.") + else + to_chat(H, "The territory spraycan in your [where3] can be used to claim areas of the station for your gang. The more territory your gang controls, the more influence you get. All gangsters can use these, so distribute them to grow your influence faster.") + + if(hud) + var/obj/item/clothing/glasses/hud/security/chameleon/C = new(null,gang) + var/where4 = H.equip_in_one_of_slots(C, slots) + if (!where4) + to_chat(H, "Your Syndicate benefactors were unfortunately unable to get you a chameleon security HUD.") + else + to_chat(H, "The chameleon security HUD in your [where4] will help you keep track of who is mindshield-implanted, and unable to be recruited.") + +// Admin commands for bosses +/datum/antagonist/gang/boss/admin_add(datum/mind/new_owner,mob/admin) + if(!new_owner.has_antag_datum(parent_type)) + ..() + to_chat(new_owner.current, "You are a member of the [gang.name] Gang leadership now!") + return + promote() + message_admins("[key_name_admin(admin)] has made [new_owner.current] a boss of the [gang.name] gang.") + log_admin("[key_name(admin)] has made [new_owner.current] a boss of the [gang.name] gang.") + to_chat(new_owner.current, "You are a member of the [gang.name] Gang leadership now!") + +/datum/antagonist/gang/boss/get_admin_commands() + . = ..() + . -= "Promote" + .["Take gangtool"] = CALLBACK(src,.proc/admin_take_gangtool) + .["Give gangtool"] = CALLBACK(src,.proc/admin_give_gangtool) + .["Demote"] = CALLBACK(src,.proc/admin_demote) + +/datum/antagonist/gang/boss/proc/demote() + var/old_gang = gang + var/datum/mind/old_owner = owner + silent = TRUE + owner.remove_antag_datum(/datum/antagonist/gang/boss) + var/datum/antagonist/gang/new_gangster = new /datum/antagonist/gang() + new_gangster.silent = TRUE + old_owner.add_antag_datum(new_gangster,old_gang) + new_gangster.silent = FALSE + log_game("[key_name(old_owner)] has been demoted to Gangster in the [gang.name] Gang") + to_chat(old_owner, "The gang has been disappointed of your leader traits! You are a regular gangster now!") + +/datum/antagonist/gang/boss/proc/admin_take_gangtool(mob/admin) + var/list/L = owner.current.get_contents() + var/obj/item/device/gangtool/gangtool = locate() in L + if (!gangtool) + to_chat(admin, "Deleting gangtool failed!") + return + qdel(gangtool) + +/datum/antagonist/gang/boss/proc/admin_give_gangtool(mob/admin) + equip_gang(TRUE, FALSE, FALSE, FALSE) + +/datum/antagonist/gang/boss/proc/admin_demote(datum/mind/target,mob/user) + message_admins("[key_name_admin(user)] has demoted [owner.current] from gang boss.") + log_admin("[key_name(user)] has demoted [owner.current] from gang boss.") + admin_take_gangtool(user) + demote() + +/datum/antagonist/gang/boss/lieutenant + name = "Gang Lieutenant" + message_name = "Lieutenant" + hud_type = "gang_lt" + +#define MAXIMUM_RECALLS 3 +#define INFLUENCE_INTERVAL 1200 //This handles the interval between each count of influence. +// Gang team datum. This handles the gang itself. +/datum/team/gang + name = "Gang" + member_name = "gangster" + var/hud_entry_num // because if you put something other than a number in GLOB.huds, god have mercy on your fucking soul friend + var/list/leaders = list() // bosses + var/max_leaders = MAX_LEADERS_GANG + var/list/territories = list() // territories owned by the gang. + var/list/lost_territories = list() // territories lost by the gang. + var/list/new_territories = list() // territories captured by the gang. + var/list/gangtools = list() + var/domination_time = NOT_DOMINATING + var/dom_attempts = INITIAL_DOM_ATTEMPTS + var/color + var/influence = 0 // influence of the gang, based on how many territories they own. Can be used to buy weapons and tools from a gang uplink. + var/winner // Once the gang wins with a dominator, this becomes true. For roundend credits purposes. + var/list/inner_outfits = list() + var/list/outer_outfits = list() + var/next_point_time + var/recalls = MAXIMUM_RECALLS // Once this reaches 0, this gang cannot force recall the shuttle with their gangtool anymore + +/datum/team/gang/New(starting_members) + . = ..() + GLOB.gangs += src + if(starting_members) + if(islist(starting_members)) + for(var/datum/mind/groveboss in starting_members) + leaders += groveboss + var/datum/antagonist/gang/boss/gb = new + groveboss.add_antag_datum(gb, src) + gb.equip_gang() + + else + var/datum/mind/CJ = starting_members + if(istype(CJ)) + leaders += CJ + var/datum/antagonist/gang/boss/bossdatum = new + CJ.add_antag_datum(bossdatum, src) + bossdatum.equip_gang() + next_point_time = world.time + INFLUENCE_INTERVAL + addtimer(CALLBACK(src, .proc/handle_territories), INFLUENCE_INTERVAL) + +/datum/team/gang/Destroy() + GLOB.gangs -= src + ..() + +/datum/team/gang/roundend_report() + var/list/report = list() + report += "[name]:" + if(winner) + report += "The [name] gang was successful!" + else + report += "The [name] gang has failed!" + + report += "The [name] gang bosses were:" + report += printplayerlist(leaders) + report += "The [name] [member_name]s were:" + report += printplayerlist(members-leaders) + + return "

[report.Join("
")]
" + +/datum/team/gang/proc/greet_gangster(datum/mind/gangster) + to_chat(gangster, "You are now a member of the [name] Gang!") + to_chat(gangster, "Help your bosses take over the station by claiming territory with special spraycans only they can provide. Simply spray on any unclaimed area of the station.") + to_chat(gangster, "Their ultimate objective is to take over the station with a Dominator machine.") + to_chat(gangster, "You can identify your mates by their large, \[G\] icon.") + gangster.store_memory("You are a member of the [name] Gang!") + +/datum/team/gang/proc/handle_territories() + next_point_time = world.time + INFLUENCE_INTERVAL + if(!leaders.len) + return + var/added_names = "" + var/lost_names = "" + + //Re-add territories that were reclaimed, so if they got tagged over, they can still earn income if they tag it back before the next status report + var/list/reclaimed_territories = new_territories & lost_territories + territories |= reclaimed_territories + new_territories -= reclaimed_territories + lost_territories -= reclaimed_territories + + //Process lost territories + for(var/area in lost_territories) + if(lost_names != "") + lost_names += ", " + lost_names += "[lost_territories[area]]" + territories -= area + + //Calculate and report influence growth + + //Process new territories + for(var/area in new_territories) + if(added_names != "") + added_names += ", " + added_names += "[new_territories[area]]" + territories += area + + //Report territory changes + var/message = "[src] Gang Status Report:.
*---------*
" + message += "[new_territories.len] new territories:
[added_names]
" + message += "[lost_territories.len] territories lost:
[lost_names]
" + //Clear the lists + new_territories = list() + lost_territories = list() + var/total_territories = total_claimable_territories() + var/control = round((territories.len/total_territories)*100, 1) + var/uniformed = check_clothing() + message += "Your gang now has [control]% control of the station.
*---------*
" + if(domination_time != NOT_DOMINATING) + var/new_time = max(world.time, domination_time - (uniformed * 4) - (territories.len * 2)) + if(new_time < domination_time) + message += "Takeover shortened by [(domination_time - new_time)*0.1] seconds for defending [territories.len] territories.
" + domination_time = new_time + message += "[domination_time_remaining()] seconds remain in hostile takeover.
" + else + var/new_influence = check_territory_income() + if(new_influence != influence) + message += "Gang influence has increased by [new_influence - influence] for defending [territories.len] territories and [uniformed] uniformed gangsters.
" + influence = new_influence + message += "Your gang now has [influence] influence.
" + message_gangtools(message) + addtimer(CALLBACK(src, .proc/handle_territories), INFLUENCE_INTERVAL) + +/datum/team/gang/proc/total_claimable_territories() + var/list/valid_territories = list() + for(var/z in SSmapping.levels_by_trait(ZTRAIT_STATION)) //First, collect all area types on the station zlevel + for(var/ar in SSmapping.areas_in_z["[z]"]) + var/area/A = ar + if(!(A.type in valid_territories) && A.valid_territory) + valid_territories |= A.type + return valid_territories.len + +/datum/team/gang/proc/check_territory_income() + var/new_influence = min(999,influence + 15 + (check_clothing() * 2) + territories.len) + return new_influence + +/datum/team/gang/proc/check_clothing() + //Count uniformed gangsters + var/uniformed = 0 + for(var/datum/mind/gangmind in members) + if(ishuman(gangmind.current)) + var/mob/living/carbon/human/gangster = gangmind.current + //Gangster must be alive and should return 0 not continue if conditions are met. + if(!istype(gangster) || gangster.stat == DEAD) + return 0 + + var/obj/item/clothing/outfit + var/obj/item/clothing/gang_outfit + if(gangster.w_uniform) + outfit = gangster.w_uniform + if(outfit.type in inner_outfits) + gang_outfit = outfit + if(gangster.wear_suit) + outfit = gangster.wear_suit + if(outfit.type in outer_outfits) + gang_outfit = outfit + + if(gang_outfit) + uniformed++ + return uniformed + +/datum/team/gang/proc/adjust_influence(value) + influence = max(0, influence + value) + +/datum/team/gang/proc/message_gangtools(message) + if(!gangtools.len || !message) + return + for(var/i in gangtools) + var/obj/item/device/gangtool/tool = i + var/mob/living/mob = get(tool.loc, /mob/living) + if(mob && mob.mind && mob.stat == CONSCIOUS) + var/datum/antagonist/gang/gangster = mob.mind.has_antag_datum(/datum/antagonist/gang) + if(gangster.gang == src) + to_chat(mob, "[icon2html(tool, mob)] [message]") + playsound(mob.loc, 'sound/machines/twobeep.ogg', 50, 1) + return + +/datum/team/gang/proc/domination() + domination_time = world.time + determine_domination_time()*10 + set_security_level("delta") + +/datum/team/gang/proc/determine_domination_time() // calculates the value in seconds (this is the initial domination time!) + var/total_territories = total_claimable_territories() + return max(180,480 - (round((territories.len/total_territories)*100, 1) * 9)) + +/datum/team/gang/proc/domination_time_remaining() // retrieves the value from world.time based deciseconds to seconds + var/diff = domination_time - world.time + return round(diff * 0.1) + + +#undef MAXIMUM_RECALLS +#undef INFLUENCE_INTERVAL \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_crayon.dm b/modular_citadel/code/game/gamemodes/gangs/gang_crayon.dm new file mode 100644 index 0000000000..2edc2ba945 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/gang_crayon.dm @@ -0,0 +1,236 @@ +#define RANDOM_GRAFFITI "Random Graffiti" +#define RANDOM_LETTER "Random Letter" +#define RANDOM_NUMBER "Random Number" +#define RANDOM_ORIENTED "Random Oriented" +#define RANDOM_RUNE "Random Rune" +#define RANDOM_ANY "Random Anything" + +/obj/item/toy/crayon + var/datum/team/gang/gang //For marking territory, spraycans are gang-locked to their initial gang due to colors + +/obj/item/toy/crayon/afterattack(atom/target, mob/user, proximity, params) + if(!proximity || !check_allowed_items(target)) + return + + var/cost = 1 + if(paint_mode == PAINT_LARGE_HORIZONTAL) + cost = 5 + if(istype(target, /obj/item/canvas)) + cost = 0 + + if(istype(target, /obj/effect/decal/cleanable)) + target = target.loc + + if(!is_type_in_list(target,validSurfaces)) + return + + var/drawing = drawtype + switch(drawtype) + if(RANDOM_LETTER) + drawing = pick(letters) + if(RANDOM_GRAFFITI) + drawing = pick(graffiti) + if(RANDOM_RUNE) + drawing = pick(runes) + if(RANDOM_ORIENTED) + drawing = pick(oriented) + if(RANDOM_NUMBER) + drawing = pick(numerals) + if(RANDOM_ANY) + drawing = pick(all_drawables) + + var/temp = "rune" + if(drawing in letters) + temp = "letter" + else if(drawing in graffiti) + temp = "graffiti" + else if(drawing in numerals) + temp = "number" + + temp = gang_check(user,target) + if(!temp) return // hippie + var/graf_rot + if(drawing in oriented) + switch(user.dir) + if(EAST) + graf_rot = 90 + if(SOUTH) + graf_rot = 180 + if(WEST) + graf_rot = 270 + else + graf_rot = 0 + + var/list/click_params = params2list(params) + var/clickx + var/clicky + + if(click_params && click_params["icon-x"] && click_params["icon-y"]) + clickx = CLAMP(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2) + clicky = CLAMP(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2) + + if(!instant) + to_chat(user, "You start drawing a [temp] on the [target.name]...") + + if(pre_noise) + audible_message("You hear spraying.") + playsound(user.loc, 'sound/effects/spray.ogg', 5, 1, 5) + + var/takes_time = !instant + + var/wait_time = 50 + if(paint_mode == PAINT_LARGE_HORIZONTAL) + wait_time *= 3 + if(gang) takes_time = TRUE // hippie + if(takes_time) + if(!do_after(user, 50, target = target)) + return + + if(length(text_buffer)) + drawing = copytext(text_buffer,1,2) + + + var/list/turf/affected_turfs = list() + + if(!gang) // hippie - drawing is done in gang_final() if it's a gang type + if(actually_paints) + switch(paint_mode) + if(PAINT_NORMAL) + var/obj/effect/decal/cleanable/crayon/C = new(target, paint_color, drawing, temp, graf_rot) + C.add_hiddenprint(user) + C.pixel_x = clickx + C.pixel_y = clicky + affected_turfs += target + if(PAINT_LARGE_HORIZONTAL) + var/turf/left = locate(target.x-1,target.y,target.z) + var/turf/right = locate(target.x+1,target.y,target.z) + if(is_type_in_list(left, validSurfaces) && is_type_in_list(right, validSurfaces)) + var/obj/effect/decal/cleanable/crayon/C = new(left, paint_color, drawing, temp, graf_rot, PAINT_LARGE_HORIZONTAL_ICON) + C.add_hiddenprint(user) + affected_turfs += left + affected_turfs += right + affected_turfs += target + else + to_chat(user, "There isn't enough space to paint!") + return + else // hippie + if(gang_final(user, target, affected_turfs)) return // hippie + + if(!instant) + to_chat(user, "You finish drawing \the [temp].") + else + to_chat(user, "You spray a [temp] on \the [target.name]") + + var/charges_used = use_charges(user, cost) + if(!charges_used) + return + . = charges_used + + if(length(text_buffer)) + text_buffer = copytext(text_buffer,2) + + if(post_noise) + audible_message("You hear spraying.") + playsound(user.loc, 'sound/effects/spray.ogg', 5, 1, 5) + + var/fraction = min(1, . / reagents.maximum_volume) + if(affected_turfs.len) + fraction /= affected_turfs.len + for(var/t in affected_turfs) + reagents.reaction(t, TOUCH, fraction * volume_multiplier) + reagents.trans_to(t, ., volume_multiplier) + check_empty(user) + +/obj/item/toy/crayon/proc/gang_check(mob/user, atom/target) // hooked into afterattack + var/gang_mode = FALSE + if(gang && user.mind) + var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) + if(G.gang != gang) + to_chat(user, "This spraycan's color isn't your gang's one! You cannot use it.") + return FALSE + gang_mode = TRUE + instant = FALSE + . = "graffiti" + // discontinue if the area isn't valid for tagging because gang "honour" + if(gang_mode && (!can_claim_for_gang(user, target))) + return FALSE + +/obj/item/toy/crayon/proc/gang_final(mob/user, atom/target, list/affected_turfs) // hooked into afterattack + // Double check it wasn't tagged in the meanwhile + if(!can_claim_for_gang(user, target)) + return TRUE + tag_for_gang(user, target) + affected_turfs += target + +/obj/item/toy/crayon/proc/can_claim_for_gang(mob/user, atom/target) + // Check area validity. + // Reject space, player-created areas, and non-station z-levels. + var/area/A = get_area(target) + if(!A || (!is_station_level(A.z)) || !A.valid_territory) + to_chat(user, "[A] is unsuitable for tagging.") + return FALSE + + var/spraying_over = FALSE + for(var/G in target) + var/obj/effect/decal/cleanable/crayon/gang/gangtag = G + if(istype(gangtag)) + var/datum/antagonist/gang/GA = user.mind.has_antag_datum(/datum/antagonist/gang) + if(gangtag.gang != GA.gang) + spraying_over = TRUE + break + + for(var/obj/machinery/power/apc in target) + to_chat(user, "You can't tag an APC.") + return FALSE + + var/occupying_gang = territory_claimed(A, user) + if(occupying_gang && !spraying_over) + to_chat(user, "[A] has already been tagged by the [occupying_gang] gang! You must get rid of or spray over the old tag first!") + return FALSE + + // If you pass the gaunlet of checks, you're good to proceed + return TRUE + +/obj/item/toy/crayon/proc/territory_claimed(area/territory, mob/user) + for(var/datum/team/gang/G in GLOB.gangs) + if(territory.type in (G.territories|G.new_territories)) + . = G.name + break + +/obj/item/toy/crayon/proc/tag_for_gang(mob/user, atom/target) + //Delete any old markings on this tile, including other gang tags + for(var/obj/effect/decal/cleanable/crayon/old_marking in target) + qdel(old_marking) + + var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) + var/area/territory = get_area(target) + + new /obj/effect/decal/cleanable/crayon/gang(target,G.gang,"graffiti",0,user) + to_chat(user, "You tagged [territory] for your gang!") + +/obj/item/toy/crayon/spraycan/gang + //desc = "A modified container containing suspicious paint." + charges = 20 + gang = TRUE + + pre_noise = FALSE + post_noise = TRUE + +/obj/item/toy/crayon/spraycan/gang/Initialize(loc, datum/team/gang/G) + ..() + if(G) + gang = G + paint_color = G.color + update_icon() + +/obj/item/toy/crayon/spraycan/gang/examine(mob/user) + . = ..() + if(user.mind && user.mind.has_antag_datum(/datum/antagonist/gang) || isobserver(user)) + to_chat(user, "This spraycan has been specially modified for tagging territory.") + +#undef RANDOM_GRAFFITI +#undef RANDOM_LETTER +#undef RANDOM_NUMBER +#undef RANDOM_ORIENTED +#undef RANDOM_RUNE +#undef RANDOM_ANY \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm b/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm new file mode 100644 index 0000000000..66dfdd0ca3 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm @@ -0,0 +1,139 @@ +// Gang datums go here. If you want to create a new gang, you must be sure to edit: +// name +// color (must be a hex, "blue" isn't acceptable due to how spraycans are handled) +// inner_outfits (must be a list() with typepaths of the clothes in it. One is fine, but there is support for multiple: one will be picked at random when bought) +// outer_outfits (same as above) +// You also need to make a gang graffiti, that will go in crayondecal.dmi inside our icons(not tg's), with the same name of the gang it's assigned to. Nothing else,just the icon. +// Those are all required. If one is missed, stuff could break. + +/datum/team/gang/clandestine + name = "Clandestine" + color = "#FF0000" + inner_outfits = list(/obj/item/clothing/under/syndicate/combat) + outer_outfits = list(/obj/item/clothing/suit/jacket) + +/datum/team/gang/prima + name = "Prima" + color = "#FFFF00" + inner_outfits = list(/obj/item/clothing/under/color/yellow) + outer_outfits = list(/obj/item/clothing/suit/hastur) + +/datum/team/gang/zerog + name = "Zero-G" + color = "#C0C0C0" + inner_outfits = list(/obj/item/clothing/under/suit_jacket/white) + outer_outfits = list(/obj/item/clothing/suit/hooded/wintercoat) + +/datum/team/gang/max + name = "Max" + color = "#800000" + inner_outfits = list(/obj/item/clothing/under/color/maroon) + outer_outfits = list(/obj/item/clothing/suit/poncho/red) + +/datum/team/gang/blasto + name = "Blasto" + color = "#000080" + inner_outfits = list(/obj/item/clothing/under/suit_jacket/navy) + outer_outfits = list(/obj/item/clothing/suit/jacket/miljacket) + +/datum/team/gang/waffle + name = "Waffle" + color = "#808000" + inner_outfits = list(/obj/item/clothing/under/suit_jacket/green) + outer_outfits = list(/obj/item/clothing/suit/poncho) + +/datum/team/gang/north + name = "North" + color = "#00FF00" + inner_outfits = list(/obj/item/clothing/under/color/green) + outer_outfits = list(/obj/item/clothing/suit/poncho/green) + +/datum/team/gang/omni + name = "Omni" + color = "#008080" + inner_outfits = list(/obj/item/clothing/under/color/teal) + outer_outfits = list(/obj/item/clothing/suit/studentuni) + +/datum/team/gang/newton + name = "Newton" + color = "#A52A2A" + inner_outfits = list(/obj/item/clothing/under/color/brown) + outer_outfits = list(/obj/item/clothing/suit/toggle/owlwings) + +/datum/team/gang/cyber + name = "Cyber" + color = "#808000" + inner_outfits = list(/obj/item/clothing/under/color/lightbrown) + outer_outfits = list(/obj/item/clothing/suit/nemes) + +/datum/team/gang/donk + name = "Donk" + color = "#0000FF" + inner_outfits = list(/obj/item/clothing/under/color/darkblue) + outer_outfits = list(/obj/item/clothing/suit/apron/overalls) + +/datum/team/gang/gene + name = "Gene" + color = "#00FFFF" + inner_outfits = list(/obj/item/clothing/under/color/blue) + outer_outfits = list(/obj/item/clothing/suit/apron) + +/datum/team/gang/gib + name = "Gib" + color = "#636060" //Applying black to grayscale... Zero-G is already grey too. + inner_outfits = list(/obj/item/clothing/under/color/black) + outer_outfits = list(/obj/item/clothing/suit/jacket/leather/overcoat) + +/datum/team/gang/tunnel + name = "Tunnel" + color = "#FF00FF" + inner_outfits = list(/obj/item/clothing/under/villain) + outer_outfits = list(/obj/item/clothing/suit/poncho/ponchoshame) + +/datum/team/gang/diablo + name = "Diablo" + color = "#FF0000" + inner_outfits = list(/obj/item/clothing/under/color/red) + outer_outfits = list(/obj/item/clothing/suit/jacket/leather) + +/datum/team/gang/psyke + name = "Psyke" + color = "#808080" + inner_outfits = list(/obj/item/clothing/under/color/grey) + outer_outfits = list(/obj/item/clothing/suit/toggle/owlwings/griffinwings) + +/datum/team/gang/osiron + name = "Osiron" + color = "#FFFFFF" + inner_outfits = list(/obj/item/clothing/under/color/white) + outer_outfits = list(/obj/item/clothing/suit/toggle/labcoat) + +/datum/team/gang/sirius + name = "Sirius" + color = "#FFC0CB" + inner_outfits = list(/obj/item/clothing/under/color/pink) + outer_outfits = list(/obj/item/clothing/suit/jacket/puffer/vest) + +/datum/team/gang/sleepingcarp + name = "Sleeping Carp" + color = "#800080" + inner_outfits = list(/obj/item/clothing/under/color/lightpurple) + outer_outfits = list(/obj/item/clothing/suit/hooded/carp_costume) + +/datum/team/gang/h + name = "H" + color = "#993333" + inner_outfits = list(/obj/item/clothing/under/jabroni) //Why not? + outer_outfits = list(/obj/item/clothing/suit/toggle/owlwings) + +/datum/team/gang/rigatonifamily + name = "Rigatoni family" + color = "#cc9900" // p a s t a colored + inner_outfits = list(/obj/item/clothing/under/rank/chef) + outer_outfits = list(/obj/item/clothing/suit/apron/chef) + +/datum/team/gang/weed + name = "Weed" + color = "#66ff33" + inner_outfits = list(/obj/item/clothing/under/color/darkgreen) + outer_outfits = list(/obj/item/clothing/suit/vapeshirt) \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_decals.dm b/modular_citadel/code/game/gamemodes/gangs/gang_decals.dm new file mode 100644 index 0000000000..6e5cb58891 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/gang_decals.dm @@ -0,0 +1,38 @@ +/obj/effect/decal/cleanable/crayon/Initialize(mapload, main, type, e_name, graf_rot, alt_icon = null) + . = ..() + if(type == "poseur tag") + var/datum/team/gang/gang = pick(subtypesof(/datum/team/gang)) + var/gangname = initial(gang.name) + icon = 'icons/effects/crayondecal.dmi' + icon_state = "[gangname]" + type = null + +/obj/effect/decal/cleanable/crayon/gang + icon = 'icons/effects/crayondecal.dmi' + layer = ABOVE_NORMAL_TURF_LAYER //Harder to hide + plane = GAME_PLANE + do_icon_rotate = FALSE //These are designed to always face south, so no rotation please. + var/datum/team/gang/gang + +/obj/effect/decal/cleanable/crayon/gang/Initialize(mapload, datum/team/gang/G, e_name = "gang tag", rotation = 0, mob/user) + if(!G) + return INITIALIZE_HINT_QDEL + gang = G + var/newcolor = G.color + var/area/territory = get_area(src) + icon_state = G.name + G.new_territories |= list(territory.type = territory.name) + //If this isn't tagged by a specific gangster there's no bonus income. + .=..(mapload, newcolor, icon_state, e_name, rotation) + +/obj/effect/decal/cleanable/crayon/gang/Destroy() + if(gang) + var/area/territory = get_area(src) + gang.territories -= territory.type + gang.new_territories -= territory.type + gang.lost_territories |= list(territory.type = territory.name) + gang = null + return ..() + +/obj/effect/decal/cleanable/crayon/NeverShouldHaveComeHere(turf/T) + return isspaceturf(T) || islava(T) || istype(T, /turf/open/water) || ischasm(T) \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_hud.dm b/modular_citadel/code/game/gamemodes/gangs/gang_hud.dm new file mode 100644 index 0000000000..3fde6d4123 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/gang_hud.dm @@ -0,0 +1,34 @@ +/datum/atom_hud/antag/gang + var/color = null + +/datum/atom_hud/antag/gang/add_to_hud(atom/A) + if(!A) + return + var/image/holder = A.hud_list[ANTAG_HUD] + if(holder) + holder.color = color + ..() + +/datum/atom_hud/antag/gang/remove_from_hud(atom/A) + if(!A) + return + var/image/holder = A.hud_list[ANTAG_HUD] + if(holder) + holder.color = null + ..() + +/datum/atom_hud/antag/gang/join_hud(mob/M) + if(!istype(M)) + CRASH("join_hud(): [M] ([M.type]) is not a mob!") + var/image/holder = M.hud_list[ANTAG_HUD] + if(holder) + holder.color = color + ..() + +/datum/atom_hud/antag/gang/leave_hud(mob/M) + if(!istype(M)) + CRASH("leave_hud(): [M] ([M.type]) is not a mob!") + var/image/holder = M.hud_list[ANTAG_HUD] + if(holder) + holder.color = null + ..() \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_items.dm b/modular_citadel/code/game/gamemodes/gangs/gang_items.dm new file mode 100644 index 0000000000..ceb08b3da3 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/gang_items.dm @@ -0,0 +1,404 @@ +/datum/gang_item + var/name + var/item_path + var/cost + var/spawn_msg + var/category + var/list/gang_whitelist = list() + var/list/gang_blacklist = list() + var/id + +/datum/gang_item/proc/purchase(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool, check_canbuy = TRUE) + if(check_canbuy && !can_buy(user, gang, gangtool)) + return FALSE + var/real_cost = get_cost(user, gang, gangtool) + if(!spawn_item(user, gang, gangtool)) + gang.adjust_influence(-real_cost) + to_chat(user, "You bought \the [name].") + return TRUE + +/datum/gang_item/proc/spawn_item(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) // If this returns anything other than null, something fucked up and influence won't lower. + if(item_path) + var/obj/item/O = new item_path(user.loc) + user.put_in_hands(O) + else + return TRUE + if(spawn_msg) + to_chat(user, "[spawn_msg]") + +/datum/gang_item/proc/can_buy(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + return gang && (gang.influence >= get_cost(user, gang, gangtool)) && can_see(user, gang, gangtool) + +/datum/gang_item/proc/can_see(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + return TRUE + +/datum/gang_item/proc/get_cost(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + return cost + +/datum/gang_item/proc/get_cost_display(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + return "([get_cost(user, gang, gangtool)] Influence)" + +/datum/gang_item/proc/get_name_display(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + return name + +/datum/gang_item/proc/get_extra_info(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + return + +/////////////////// +//CLOTHING +/////////////////// + +/datum/gang_item/clothing + category = "Purchase Gang Clothes (Only the jumpsuit and suit give you added influence):" + +/datum/gang_item/clothing/under + name = "Gang Uniform" + id = "under" + cost = 1 + +/datum/gang_item/clothing/under/spawn_item(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(gang.inner_outfits.len) + var/outfit = pick(gang.inner_outfits) + if(outfit) + var/obj/item/O = new outfit(user.loc) + user.put_in_hands(O) + to_chat(user, " This is your gang's official uniform, wearing it will increase your influence") + return + return TRUE + +/datum/gang_item/clothing/suit + name = "Gang Armored Outerwear" + id = "suit" + cost = 1 + +/datum/gang_item/clothing/suit/spawn_item(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(gang.outer_outfits.len) + var/outfit = pick(gang.outer_outfits) + if(outfit) + var/obj/item/O = new outfit(user.loc) + O.armor = O.armor.setRating(melee = 20, bullet = 35, laser = 10, energy = 10, bomb = 30, bio = 0, rad = 0, fire = 30, acid = 30) + O.desc += " Tailored for the [gang.name] Gang to offer the wearer moderate protection against ballistics and physical trauma." + user.put_in_hands(O) + to_chat(user, " This is your gang's official outerwear, wearing it will increase your influence") + return + return TRUE + + +/datum/gang_item/clothing/hat + name = "Pimp Hat" + id = "hat" + cost = 16 + item_path = /obj/item/clothing/head/collectable/petehat/gang + + +/obj/item/clothing/head/collectable/petehat/gang + name = "pimpin' hat" + desc = "The undisputed king of style." + +/datum/gang_item/clothing/mask + name = "Golden Death Mask" + id = "mask" + cost = 18 + item_path = /obj/item/clothing/mask/gskull + +/obj/item/clothing/mask/gskull + name = "golden death mask" + icon_state = "gskull" + desc = "Strike terror, and envy, into the hearts of your enemies." + +/datum/gang_item/clothing/shoes + name = "Bling Boots" + id = "boots" + cost = 22 + item_path = /obj/item/clothing/shoes/gang + +/obj/item/clothing/shoes/gang + name = "blinged-out boots" + desc = "Stand aside peasants." + icon_state = "bling" + +/datum/gang_item/clothing/neck + name = "Gold Necklace" + id = "necklace" + cost = 9 + item_path = /obj/item/clothing/neck/necklace/dope + +/datum/gang_item/clothing/hands + name = "Decorative Brass Knuckles" + id = "hand" + cost = 11 + item_path = /obj/item/clothing/gloves/gang + +/obj/item/clothing/gloves/gang + name = "braggadocio's brass knuckles" + desc = "Purely decorative, don't find out the hard way." + icon_state = "knuckles" + w_class = 3 + +/datum/gang_item/clothing/belt + name = "Badass Belt" + id = "belt" + cost = 13 + item_path = /obj/item/storage/belt/military/gang + +/obj/item/storage/belt/military/gang + name = "badass belt" + icon_state = "gangbelt" + item_state = "gang" + desc = "The belt buckle simply reads 'BAMF'." + +/////////////////// +//WEAPONS +/////////////////// + +/datum/gang_item/weapon + category = "Purchase Weapons:" + +/datum/gang_item/weapon/ammo + +/datum/gang_item/weapon/shuriken + name = "Shuriken" + id = "shuriken" + cost = 2 + item_path = /obj/item/throwing_star + +/datum/gang_item/weapon/switchblade + name = "Switchblade" + id = "switchblade" + cost = 5 + item_path = /obj/item/switchblade + +/datum/gang_item/weapon/surplus + name = "Surplus Rifle" + id = "surplus" + cost = 7 + item_path = /obj/item/gun/ballistic/automatic/surplus + +/datum/gang_item/weapon/ammo/surplus_ammo + name = "Surplus Rifle Ammo" + id = "surplus_ammo" + cost = 5 + item_path = /obj/item/ammo_box/magazine/m10mm/rifle + +/datum/gang_item/weapon/improvised + name = "Sawn-Off Improvised Shotgun" + id = "sawn" + cost = 6 + item_path = /obj/item/gun/ballistic/revolver/doublebarrel/improvised/sawn + +/datum/gang_item/weapon/ammo/improvised_ammo + name = "Box of Buckshot" + id = "buckshot" + cost = 5 + item_path = /obj/item/storage/box/lethalshot + +/datum/gang_item/weapon/pistol + name = "10mm Pistol" + id = "pistol" + cost = 25 + item_path = /obj/item/gun/ballistic/automatic/pistol + +/datum/gang_item/weapon/ammo/pistol_ammo + name = "10mm Ammo" + id = "pistol_ammo" + cost = 10 + item_path = /obj/item/ammo_box/magazine/m10mm + +/datum/gang_item/weapon/sniper + name = "Black Market .50cal Sniper Rifle" + id = "sniper" + cost = 40 + item_path = /obj/item/gun/ballistic/automatic/sniper_rifle + +/datum/gang_item/weapon/ammo/sniper_ammo + name = "Smuggled .50cal Sniper Rounds" + id = "sniper_ammo" + cost = 15 + item_path = /obj/item/ammo_box/magazine/sniper_rounds + +/datum/gang_item/weapon/ammo/sleeper_ammo + name = "Illicit Soporific Cartridges" + id = "sniper_ammo" + cost = 15 + item_path = /obj/item/ammo_box/magazine/sniper_rounds/soporific + +/datum/gang_item/weapon/machinegun + name = "Mounted Machine Gun" + id = "MG" + cost = 50 + item_path = /obj/machinery/manned_turret + spawn_msg = "The mounted machine gun features enhanced responsiveness. Hold down on the trigger while firing to control where you're shooting." + +/datum/gang_item/weapon/machinegun/spawn_item(mob/living/carbon/user, obj/item/device/gangtool/gangtool) + new item_path(user.loc) + to_chat(user, spawn_msg) + +/datum/gang_item/weapon/uzi + name = "Uzi SMG" + id = "uzi" + cost = 60 + item_path = /obj/item/gun/ballistic/automatic/mini_uzi + +/datum/gang_item/weapon/ammo/uzi_ammo + name = "Uzi Ammo" + id = "uzi_ammo" + cost = 30 + item_path = /obj/item/ammo_box/magazine/uzim9mm + +/////////////////// +//EQUIPMENT +/////////////////// + +/datum/gang_item/equipment + category = "Purchase Equipment:" + + +/datum/gang_item/equipment/spraycan + name = "Territory Spraycan" + id = "spraycan" + cost = 5 + item_path = /obj/item/toy/crayon/spraycan/gang + +/datum/gang_item/equipment/spraycan/spawn_item(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + var/obj/item/O = new item_path(user.loc, gang) + user.put_in_hands(O) + +/datum/gang_item/equipment/sharpener + name = "Sharpener" + id = "whetstone" + cost = 3 + item_path = /obj/item/sharpener + + +/datum/gang_item/equipment/emp + name = "EMP Grenade" + id = "EMP" + cost = 7 + item_path = /obj/item/grenade/empgrenade + +/datum/gang_item/equipment/c4 + name = "C4 Explosive" + id = "c4" + cost = 7 + item_path = /obj/item/grenade/plastic/c4 + +/datum/gang_item/equipment/frag + name = "Fragmentation Grenade" + id = "frag nade" + cost = 7 + item_path = /obj/item/grenade/syndieminibomb/concussion/frag + +/datum/gang_item/equipment/stimpack + name = "Black Market Stimulants" + id = "stimpack" + cost = 12 + item_path = /obj/item/reagent_containers/syringe/stimulants + +/datum/gang_item/equipment/implant_breaker + name = "Implant Breaker" + id = "implant_breaker" + cost = 10 + item_path = /obj/item/implanter/gang + +/datum/gang_item/equipment/implant_breaker/spawn_item(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + var/obj/item/O = new item_path(user.loc, gang) + user.put_in_hands(O) + to_chat(user, "The implant breaker is a single-use device that destroys all implants within the target before trying to recruit them to your gang. Also works on enemy gangsters.") + +/datum/gang_item/equipment/wetwork_boots + name = "Wetwork boots" + id = "wetwork" + cost = 12 + item_path = /obj/item/clothing/shoes/combat/gang + +/obj/item/clothing/shoes/combat/gang + name = "Wetwork boots" + desc = "A gang's best hitmen are prepared for anything." + permeability_coefficient = 0.01 + clothing_flags = NOSLIP + +/datum/gang_item/equipment/pen + name = "Recruitment Pen" + id = "pen" + cost = 25 + item_path = /obj/item/pen/gang + spawn_msg = "More recruitment pens will allow you to recruit gangsters faster. Only gang leaders can recruit with pens." + +/datum/gang_item/equipment/pen/purchase(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(..()) + gangtool.free_pen = FALSE + return TRUE + return FALSE + +/datum/gang_item/equipment/pen/get_cost(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(gangtool && gangtool.free_pen) + return 0 + return ..() + +/datum/gang_item/equipment/pen/get_cost_display(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(gangtool && gangtool.free_pen) + return "(GET ONE FREE)" + return ..() + + +/datum/gang_item/equipment/gangtool + id = "gangtool" + cost = 10 + +/datum/gang_item/equipment/gangtool/spawn_item(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + var/item_type + if(gang) + item_type = /obj/item/device/gangtool/spare/lt + if(gang.leaders.len < MAX_LEADERS_GANG) + to_chat(user, "Gangtools allow you to promote a gangster to be your Lieutenant, enabling them to recruit and purchase items like you. Simply have them register the gangtool. You may promote up to [MAX_LEADERS_GANG-gang.leaders.len] more Lieutenants") + else + item_type = /obj/item/device/gangtool/spare + var/obj/item/device/gangtool/spare/tool = new item_type(user.loc) + user.put_in_hands(tool) + +/datum/gang_item/equipment/gangtool/get_name_display(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(gang && (gang.leaders.len < gang.max_leaders)) + return "Promote a Gangster" + return "Spare Gangtool" + +/datum/gang_item/equipment/dominator + name = "Station Dominator" + id = "dominator" + cost = 30 + item_path = /obj/machinery/dominator + spawn_msg = "The dominator will secure your gang's dominance over the station. Turn it on when you are ready to defend it." + +/datum/gang_item/equipment/dominator/can_buy(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(!gang || !gang.dom_attempts) + return FALSE + return ..() + +/datum/gang_item/equipment/dominator/get_name_display(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(!gang || !gang.dom_attempts) + return ..() + return "[..()]" + +/datum/gang_item/equipment/dominator/get_cost_display(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(!gang || !gang.dom_attempts) + return "(Out of stock)" + return ..() + +/datum/gang_item/equipment/dominator/get_extra_info(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + if(gang) + return "This device requires a 5x5 area clear of walls to work. (Estimated Takeover Time: [round(gang.determine_domination_time()/60,0.1)] minutes)" + +/datum/gang_item/equipment/dominator/purchase(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + var/area/userarea = get_area(user) + if(!(userarea.type in gang.territories|gang.new_territories)) + to_chat(user,"The dominator can be spawned only on territory controlled by your gang!") + return FALSE + for(var/obj/obj in get_turf(user)) + if(obj.density) + to_chat(user, "There's not enough room here!") + return FALSE + + return ..() + +/datum/gang_item/equipment/dominator/spawn_item(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) + new item_path(user.loc) + to_chat(user, spawn_msg) \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_pen.dm b/modular_citadel/code/game/gamemodes/gangs/gang_pen.dm new file mode 100644 index 0000000000..ceb780a8c5 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/gang_pen.dm @@ -0,0 +1,58 @@ +/* + * Gang Boss Pens + */ +/obj/item/pen/gang + var/cooldown + var/last_used + +/obj/item/pen/gang/Initialize() + . = ..() + last_used = world.time + +/obj/item/pen/gang/attack(mob/living/M, mob/user, stealth = TRUE) + if(!istype(M)) + return + if(!ishuman(M) || !ishuman(user) || M.stat == DEAD) + return ..() + var/datum/antagonist/gang/boss/L = user.mind.has_antag_datum(/datum/antagonist/gang/boss) + if(!L) + return ..() + if(!..()) + return + if(cooldown) + to_chat(user, "[src] needs more time to recharge before it can be used.") + return + if(!M.client || !M.mind) + to_chat(user, "A braindead gangster is an useless gangster!") + return + var/datum/team/gang/gang = L.gang + if(!add_gangster(user, gang, M.mind)) + return + cooldown = TRUE + icon_state = "pen_blink" + var/cooldown_time = 600/gang.leaders.len + addtimer(CALLBACK(src, .proc/cooldown), cooldown_time) + +/obj/item/pen/gang/proc/cooldown() + cooldown = FALSE + icon_state = "pen" + var/mob/M = loc + if(istype(M)) + to_chat(M, "[icon2html(src, M)] [src][(loc == M)?(""):(" in your [loc]")] vibrates softly. It is ready to be used again.") + +/obj/item/pen/gang/proc/add_gangster(mob/user, datum/team/gang/gang, datum/mind/gangster_mind, check = TRUE) // Basically a wrapper to add_antag_datum. + var/datum/antagonist/dudegang = gangster_mind.has_antag_datum(/datum/antagonist/gang) + if(dudegang) + if(dudegang == gang) + to_chat(user, "This mind is already controlled by your gang!") + return + to_chat(user, "This mind is already controlled by someone else!") + return + if(check && gangster_mind.current.has_trait(TRAIT_MINDSHIELD)) //Check to see if the potential gangster is implanted + to_chat(user, "This mind is too strong to control!") + return + var/mob/living/carbon/human/H = gangster_mind.current // we are sure the dude's human cause it's checked in attack() + H.silent = max(H.silent, 5) + H.Knockdown(100) + gangster_mind.add_antag_datum(/datum/antagonist/gang, gang) + return TRUE \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gangs.dm b/modular_citadel/code/game/gamemodes/gangs/gangs.dm new file mode 100644 index 0000000000..639296c628 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/gangs.dm @@ -0,0 +1,59 @@ +//gang.dm +//Gang War Game Mode +GLOBAL_LIST_INIT(possible_gangs, subtypesof(/datum/team/gang)) +GLOBAL_LIST_EMPTY(gangs) +/datum/game_mode/gang + name = "gang war" + config_tag = "gang" + antag_flag = ROLE_GANG + restricted_jobs = list("Security Officer", "Warden", "Detective", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security") + required_players = 1 + required_enemies = 0 + recommended_enemies = 2 + enemy_minimum_age = 14 + + announce_span = "danger" + announce_text = "A violent turf war has erupted on the station!\n\ + Gangsters: Take over the station with a dominator.\n\ + Crew: Prevent the gangs from expanding and initiating takeover." + + var/list/datum/mind/gangboss_candidates = list() + +/datum/game_mode/gang/pre_setup() + if(CONFIG_GET(flag/protect_roles_from_antagonist)) + restricted_jobs += protected_jobs + + if(CONFIG_GET(flag/protect_assistant_from_antagonist)) + restricted_jobs += "Assistant" + + //Spawn more bosses depending on server population + var/gangs_to_create = 2 + if(prob(num_players()) && num_players() > 1.5*required_players) + gangs_to_create++ + if(prob(num_players()) && num_players() > 2*required_players) + gangs_to_create++ + gangs_to_create = min(gangs_to_create, GLOB.possible_gangs.len) + + for(var/i in 1 to gangs_to_create) + if(!antag_candidates.len) + break + + //Now assign a boss for the gang + var/datum/mind/boss = pick_n_take(antag_candidates) + antag_candidates -= boss + gangboss_candidates += boss + boss.restricted_roles = restricted_jobs + + if(gangboss_candidates.len < 1) //Need at least one gangs + return + + return TRUE + +/datum/game_mode/gang/post_setup() + set waitfor = FALSE + ..() + for(var/i in gangboss_candidates) + var/datum/mind/M = i + var/datum/antagonist/gang/boss/B = new() + M.add_antag_datum(B) + B.equip_gang() diff --git a/modular_citadel/code/game/gamemodes/gangs/gangtool.dm b/modular_citadel/code/game/gamemodes/gangs/gangtool.dm new file mode 100644 index 0000000000..9e828a7042 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/gangtool.dm @@ -0,0 +1,259 @@ +//gangtool device +/obj/item/device/gangtool + name = "suspicious device" + desc = "A strange device of sorts. Hard to really make out what it actually does if you don't know how to operate it." + icon = 'icons/obj/device.dmi' + icon_state = "gangtool" + item_state = "radio" + lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' + throwforce = 0 + w_class = WEIGHT_CLASS_TINY + throw_speed = 3 + throw_range = 7 + flags_1 = CONDUCT_1 + var/datum/team/gang/gang //Which gang uses this? + var/recalling = 0 + var/outfits = 2 + var/free_pen = 0 + var/promotable = FALSE + var/static/list/buyable_items = list() + var/list/tags = list() + +/obj/item/device/gangtool/Initialize() + . = ..() + update_icon() + for(var/i in subtypesof(/datum/gang_item)) + var/datum/gang_item/G = i + var/id = initial(G.id) + var/cat = initial(G.category) + if(id) + if(!islist(buyable_items[cat])) + buyable_items[cat] = list() + buyable_items[cat][id] = new G +/obj/item/device/gangtool/Destroy() + if(gang) + gang.gangtools -= src + return ..() + +/obj/item/device/gangtool/attack_self(mob/user) + ..() + if (!can_use(user)) + return + var/datum/antagonist/gang/boss/L = user.mind.has_antag_datum(/datum/antagonist/gang/boss) + var/dat + if(!gang) + dat += "This device is not registered.

" + if(L) + if(promotable && L.gang.leaders.len < L.gang.max_leaders) + dat += "Give this device to another member of your organization to use to promote them to Lieutenant.

" + dat += "If this is meant as a spare device for yourself:
" + dat += "Register Device as Spare
" + else if(promotable) + var/datum/antagonist/gang/sweet = user.mind.has_antag_datum(/datum/antagonist/gang) + if(sweet.gang.leaders.len < sweet.gang.max_leaders) + dat += "You have been selected for a promotion!
" + dat += "Accept Promotion
" + else + dat += "No promotions available: All positions filled.
" + else + dat += "This device is not authorized to promote.
" + else + if(gang.domination_time != NOT_DOMINATING) + dat += "
Takeover In Progress:
[DisplayTimeText(gang.domination_time_remaining() * 10)] remain
" + + dat += "Registration: [gang.name] Gang Boss
" + dat += "Organization Size: [gang.members.len] | Station Control: [gang.territories.len] territories under control. | Influence: [gang.influence]
" + dat += "Time until Influence grows: [time2text(gang.next_point_time - world.time, "mm:ss")]
" + dat += "Send message to Gang
" + dat += "Recall shuttle
" + dat += "
" + for(var/cat in buyable_items) + dat += "[cat]
" + for(var/id in buyable_items[cat]) + var/datum/gang_item/G = buyable_items[cat][id] + if(!G.can_see(user, gang, src)) + continue + + var/cost = G.get_cost_display(user, gang, src) + if(cost) + dat += cost + " " + + var/toAdd = G.get_name_display(user, gang, src) + if(G.can_buy(user, gang, src)) + toAdd = "[toAdd]" + dat += toAdd + var/extra = G.get_extra_info(user, gang, src) + if(extra) + dat += "
[extra]" + dat += "
" + dat += "
" + + dat += "Refresh
" + + var/datum/browser/popup = new(user, "gangtool", "Welcome to GangTool v4.0", 340, 625) + popup.set_content(dat) + popup.open() + +/obj/item/device/gangtool/Topic(href, href_list) + if(!can_use(usr)) + return + + add_fingerprint(usr) + + if(href_list["register"]) + register_device(usr) + + else if(!gang) //Gangtool must be registered before you can use the functions below + return + + if(href_list["purchase"]) + if(islist(buyable_items[href_list["cat"]])) + var/list/L = buyable_items[href_list["cat"]] + var/datum/gang_item/G = L[href_list["id"]] + if(G && G.can_buy(usr, gang, src)) + G.purchase(usr, gang, src, FALSE) + + if(href_list["commute"]) + ping_gang(usr) + if(href_list["recall"]) + recall(usr) + attack_self(usr) + +/obj/item/device/gangtool/update_icon() + overlays.Cut() + var/image/I = new(icon, "[icon_state]-overlay") + if(gang) + I.color = gang.color + overlays.Add(I) + +/obj/item/device/gangtool/proc/ping_gang(mob/user) + if(!can_use(user)) + return + var/message = stripped_input(user,"Discreetly send a gang-wide message.","Send Message") as null|text + if(!message || !can_use(user)) + return + if(!is_station_level(user.z)) + to_chat(user, "[icon2html(src, user)]Error: Station out of range.") + return + if(gang.members.len) + var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) + if(!G) + return + var/ping = "[gang.name] [G.message_name] [user.real_name]: [message]" + for(var/datum/mind/ganger in gang.members) + if(ganger.current && is_station_level(ganger.current.z) && (ganger.current.stat == CONSCIOUS)) + to_chat(ganger.current, ping) + for(var/mob/M in GLOB.dead_mob_list) + var/link = FOLLOW_LINK(M, user) + to_chat(M, "[link] [ping]") + user.log_talk(message,LOG_SAY, tag="[gang.name] gangster") + +/obj/item/device/gangtool/proc/register_device(mob/user) + if(gang) //It's already been registered! + return + var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) + if(G) + gang = G.gang + gang.gangtools += src + update_icon() + if(!(user.mind in gang.leaders) && promotable) + G.promote() + free_pen = TRUE + gang.message_gangtools("[user] has been promoted to Lieutenant.") + to_chat(user, "The Gangtool you registered will allow you to purchase weapons and equipment, and send messages to your gang.") + to_chat(user, "Unlike regular gangsters, you may use recruitment pens to add recruits to your gang. Use them on unsuspecting crew members to recruit them. Don't forget to get your one free pen from the gangtool.") + else + to_chat(user, "ACCESS DENIED: Unauthorized user.") + +/obj/item/device/gangtool/proc/recall(mob/user) + if(!recallchecks(user)) + return + if(recalling) + to_chat(user, "Error: Recall already in progress.") + return + gang.message_gangtools("[user] is attempting to recall the emergency shuttle.") + recalling = TRUE + to_chat(user, "[icon2html(src, loc)]Generating shuttle recall order with codes retrieved from last call signal...") + addtimer(CALLBACK(src, .proc/recall2, user), rand(100,300)) + +/obj/item/device/gangtool/proc/recall2(mob/user) + if(!recallchecks(user)) + return + to_chat(user, "[icon2html(src, loc)]Shuttle recall order generated. Accessing station long-range communication arrays...") + addtimer(CALLBACK(src, .proc/recall3, user), rand(100,300)) + +/obj/item/device/gangtool/proc/recall3(mob/user) + if(!recallchecks(user)) + return + var/list/living_crew = list()//shamelessly copied from mulligan code, there should be a helper for this + for(var/mob/Player in GLOB.mob_list) + if(Player.mind && Player.stat != DEAD && !isnewplayer(Player) && !isbrain(Player) && Player.client) + living_crew += Player + var/malc = CONFIG_GET(number/midround_antag_life_check) + if(living_crew.len / GLOB.joined_player_list.len <= malc) //Shuttle cannot be recalled if too many people died + to_chat(user, "[icon2html(src, user)]Error: Station communication systems compromised. Unable to establish connection.") + recalling = FALSE + return + to_chat(user, "[icon2html(src, loc)]Comm arrays accessed. Broadcasting recall signal...") + addtimer(CALLBACK(src, .proc/recallfinal, user), rand(100,300)) + +/obj/item/device/gangtool/proc/recallfinal(mob/user) + if(!recallchecks(user)) + return + recalling = FALSE + log_game("[key_name(user)] has tried to recall the shuttle with a gangtool.") + message_admins("[key_name_admin(user)] has tried to recall the shuttle with a gangtool.", 1) + if(SSshuttle.cancelEvac(user)) + gang.recalls-- + return TRUE + + to_chat(user, "[icon2html(src, loc)]No response recieved. Emergency shuttle cannot be recalled at this time.") + return + +/obj/item/device/gangtool/proc/recallchecks(mob/user) + if(!can_use(user)) + return + if(SSshuttle.emergencyNoRecall) + return + if(!gang.recalls) + to_chat(user, "Error: Unable to access communication arrays. Firewall has logged our signature and is blocking all further attempts.") + return + if(SSshuttle.emergency.mode != SHUTTLE_CALL) //Shuttle can only be recalled when it's moving to the station + to_chat(user, "[icon2html(src, user)]Emergency shuttle cannot be recalled at this time.") + recalling = FALSE + return + if(!gang.dom_attempts) + to_chat(user, "[icon2html(src, user)]Error: Unable to access communication arrays. Firewall has logged our signature and is blocking all further attempts.") + recalling = FALSE + return + if(!is_station_level(user.z)) //Shuttle can only be recalled while on station + to_chat(user, "[icon2html(src, user)]Error: Device out of range of station communication arrays.") + recalling = FALSE + return + return TRUE + +/obj/item/device/gangtool/proc/can_use(mob/living/carbon/human/user) + if(!istype(user)) + return + if(user.incapacitated()) + return + if(!(src in user.contents)) + return + if(!user.mind) + return + var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) + if(!G) + to_chat(user, "Huh, what's this?") + return + if(!isnull(gang) && G.gang != gang) + to_chat(user, "You cannot use gang tools owned by enemy gangs!") + return + return TRUE + + +/obj/item/device/gangtool/spare + outfits = TRUE + +/obj/item/device/gangtool/spare/lt + promotable = TRUE \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/implant_gang.dm b/modular_citadel/code/game/gamemodes/gangs/implant_gang.dm new file mode 100644 index 0000000000..ee91928845 --- /dev/null +++ b/modular_citadel/code/game/gamemodes/gangs/implant_gang.dm @@ -0,0 +1,61 @@ +/obj/item/implant/gang + name = "gang implant" + desc = "Makes you a gangster or such." + activated = 0 + var/datum/team/gang/gang + +/obj/item/implant/gang/Initialize(loc, setgang) + .=..() + gang = setgang + +/obj/item/implant/gang/Destroy() + gang = null + return ..() + +/obj/item/implant/gang/get_data() + var/dat = {"Implant Specifications:
+ Name: Criminal brainwash implant
+ Life: A few seconds after injection.
+ Important Notes: Illegal
+
+ Implant Details:
+ Function: Contains a small pod of nanobots that change the host's brain to be loyal to a certain organization.
+ Special Features: This device will also emit a small EMP pulse, destroying any other implants within the host's brain.
+ Integrity: Implant's EMP function will destroy itself in the process."} + return dat + +/obj/item/implant/gang/implant(mob/living/target, mob/user, silent = 0) + if(!target || !target.mind || target.stat == DEAD) + return 0 + var/datum/antagonist/gang/G = target.mind.has_antag_datum(/datum/antagonist/gang) + if(G && G.gang == G) + return 0 // it's pointless + if(..()) + for(var/obj/item/implant/I in target.implants) + if(I != src) + qdel(I) + + if(ishuman(target)) + var/success + if(G) + if(!istype(G, /datum/antagonist/gang/boss)) + success = TRUE //Was not a gang boss, convert as usual + target.mind.remove_antag_datum(/datum/antagonist/gang) + else + success = TRUE + if(!success) + target.visible_message("[target] seems to resist the implant!", "You feel the influence of your enemies try to invade your mind!") + return FALSE + target.mind.add_antag_datum(/datum/antagonist/gang, gang) + qdel(src) + return TRUE + +/obj/item/implanter/gang + name = "implanter (gang)" + +/obj/item/implanter/gang/Initialize(loc, gang) + if(!gang) + qdel(src) + return + imp = new /obj/item/implant/gang(src,gang) + .=..() \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index 12a91dfaa9..7c9185699a 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2810,6 +2810,18 @@ #include "modular_citadel\code\datums\wires\airlock.dm" #include "modular_citadel\code\datums\wires\autoylathe.dm" #include "modular_citadel\code\game\area\cit_areas.dm" +#include "modular_citadel\code\game\gamemodes\gangs\dominator.dm" +#include "modular_citadel\code\game\gamemodes\gangs\dominator_countdown.dm" +#include "modular_citadel\code\game\gamemodes\gangs\gang.dm" +#include "modular_citadel\code\game\gamemodes\gangs\gang_crayon.dm" +#include "modular_citadel\code\game\gamemodes\gangs\gang_datums.dm" +#include "modular_citadel\code\game\gamemodes\gangs\gang_decals.dm" +#include "modular_citadel\code\game\gamemodes\gangs\gang_hud.dm" +#include "modular_citadel\code\game\gamemodes\gangs\gang_items.dm" +#include "modular_citadel\code\game\gamemodes\gangs\gang_pen.dm" +#include "modular_citadel\code\game\gamemodes\gangs\gangs.dm" +#include "modular_citadel\code\game\gamemodes\gangs\gangtool.dm" +#include "modular_citadel\code\game\gamemodes\gangs\implant_gang.dm" #include "modular_citadel\code\game\gamemodes\miniantags\bot_swarm\swarmer_event.dm" #include "modular_citadel\code\game\gamemodes\revolution\revolution.dm" #include "modular_citadel\code\game\machinery\cryopod.dm" From 09dfb448ed967bd45ac52b4632734bcfb0a9a94c Mon Sep 17 00:00:00 2001 From: JTGSZ <46565256+JTGSZ@users.noreply.github.com> Date: Sat, 18 May 2019 05:51:53 -0400 Subject: [PATCH 031/276] woops left that at 1 instead of 15 --- modular_citadel/code/game/gamemodes/gangs/gangs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_citadel/code/game/gamemodes/gangs/gangs.dm b/modular_citadel/code/game/gamemodes/gangs/gangs.dm index 639296c628..6e4bf752a6 100644 --- a/modular_citadel/code/game/gamemodes/gangs/gangs.dm +++ b/modular_citadel/code/game/gamemodes/gangs/gangs.dm @@ -7,7 +7,7 @@ GLOBAL_LIST_EMPTY(gangs) config_tag = "gang" antag_flag = ROLE_GANG restricted_jobs = list("Security Officer", "Warden", "Detective", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security") - required_players = 1 + required_players = 15 required_enemies = 0 recommended_enemies = 2 enemy_minimum_age = 14 From 03f129fa6efe70d33a0cbfd738a3d7ea96374a0a Mon Sep 17 00:00:00 2001 From: JTGSZ <46565256+JTGSZ@users.noreply.github.com> Date: Sun, 19 May 2019 07:29:09 -0400 Subject: [PATCH 032/276] More changes --- code/game/objects/items/crayons.dm | 137 ++++++++-- .../code/game/gamemodes/gangs/dominator.dm | 16 +- .../code/game/gamemodes/gangs/gang_crayon.dm | 236 ------------------ .../code/game/gamemodes/gangs/gang_datums.dm | 8 +- .../code/game/gamemodes/gangs/gang_items.dm | 2 +- tgstation.dme | 1 - 6 files changed, 131 insertions(+), 269 deletions(-) delete mode 100644 modular_citadel/code/game/gamemodes/gangs/gang_crayon.dm diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 26f8a73cb3..b76a9b9c98 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -68,6 +68,8 @@ var/pre_noise = FALSE var/post_noise = FALSE + var/datum/team/gang/gang //For marking territory, spraycans are gang-locked to their initial gang due to colors + /obj/item/toy/crayon/suicide_act(mob/user) user.visible_message("[user] is jamming [src] up [user.p_their()] nose and into [user.p_their()] brain. It looks like [user.p_theyre()] trying to commit suicide!") @@ -288,7 +290,8 @@ else if(drawing in numerals) temp = "number" - + temp = gang_check(user,target) + if(!temp) return // gang check var/graf_rot if(drawing in oriented) switch(user.dir) @@ -310,7 +313,7 @@ clicky = CLAMP(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2) if(!instant) - to_chat(user, "You start drawing a [temp] on the [target.name]...") + to_chat(user, "You start drawing a [temp] on the [target.name]...") if(pre_noise) audible_message("You hear spraying.") @@ -322,6 +325,7 @@ if(paint_mode == PAINT_LARGE_HORIZONTAL) wait_time *= 3 + if(gang) takes_time = TRUE // gang tagging takes time. if(takes_time) if(!do_after(user, 50, target = target)) return @@ -332,26 +336,29 @@ var/list/turf/affected_turfs = list() - if(actually_paints) - switch(paint_mode) - if(PAINT_NORMAL) - var/obj/effect/decal/cleanable/crayon/C = new(target, paint_color, drawing, temp, graf_rot) - C.add_hiddenprint(user) - C.pixel_x = clickx - C.pixel_y = clicky - affected_turfs += target - if(PAINT_LARGE_HORIZONTAL) - var/turf/left = locate(target.x-1,target.y,target.z) - var/turf/right = locate(target.x+1,target.y,target.z) - if(is_type_in_list(left, validSurfaces) && is_type_in_list(right, validSurfaces)) - var/obj/effect/decal/cleanable/crayon/C = new(left, paint_color, drawing, temp, graf_rot, PAINT_LARGE_HORIZONTAL_ICON) + if(!gang) //drawing is done in gang_final() if it's a gang type + if(actually_paints) + switch(paint_mode) + if(PAINT_NORMAL) + var/obj/effect/decal/cleanable/crayon/C = new(target, paint_color, drawing, temp, graf_rot) C.add_hiddenprint(user) - affected_turfs += left - affected_turfs += right + C.pixel_x = clickx + C.pixel_y = clicky affected_turfs += target - else - to_chat(user, "There isn't enough space to paint!") - return + if(PAINT_LARGE_HORIZONTAL) + var/turf/left = locate(target.x-1,target.y,target.z) + var/turf/right = locate(target.x+1,target.y,target.z) + if(is_type_in_list(left, validSurfaces) && is_type_in_list(right, validSurfaces)) + var/obj/effect/decal/cleanable/crayon/C = new(left, paint_color, drawing, temp, graf_rot, PAINT_LARGE_HORIZONTAL_ICON) + C.add_hiddenprint(user) + affected_turfs += left + affected_turfs += right + affected_turfs += target + else + to_chat(user, "There isn't enough space to paint!") + return + else // gangstuff + if(gang_final(user, target, affected_turfs)) return // gangstuff if(!instant) to_chat(user, "You finish drawing \the [temp].") @@ -373,6 +380,77 @@ reagents.trans_to(t, ., volume_multiplier) check_empty(user) + +//////////////Gang mode stuff///////////////// +/obj/item/toy/crayon/proc/gang_check(mob/user, atom/target) // hooked into afterattack + var/gang_mode = FALSE + if(gang && user.mind) + var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) + if(G.gang != gang) + to_chat(user, "This spraycan's color isn't your gang's one! You cannot use it.") + return FALSE + gang_mode = TRUE + instant = FALSE + . = "graffiti" + // discontinue if the area isn't valid for tagging because gang "honour" + if(gang_mode && (!can_claim_for_gang(user, target))) + return FALSE + +/obj/item/toy/crayon/proc/gang_final(mob/user, atom/target, list/affected_turfs) // hooked into afterattack + // Double check it wasn't tagged in the meanwhile + if(!can_claim_for_gang(user, target)) + return TRUE + tag_for_gang(user, target) + affected_turfs += target + +/obj/item/toy/crayon/proc/can_claim_for_gang(mob/user, atom/target) + // Check area validity. + // Reject space, player-created areas, and non-station z-levels. + var/area/A = get_area(target) + if(!A || (!is_station_level(A.z)) || !A.valid_territory) + to_chat(user, "[A] is unsuitable for tagging.") + return FALSE + + var/spraying_over = FALSE + for(var/G in target) + var/obj/effect/decal/cleanable/crayon/gang/gangtag = G + if(istype(gangtag)) + var/datum/antagonist/gang/GA = user.mind.has_antag_datum(/datum/antagonist/gang) + if(gangtag.gang != GA.gang) + spraying_over = TRUE + break + + for(var/obj/machinery/power/apc in target) + to_chat(user, "You can't tag an APC.") + return FALSE + + var/occupying_gang = territory_claimed(A, user) + if(occupying_gang && !spraying_over) + to_chat(user, "[A] has already been tagged by the [occupying_gang] gang! You must get rid of or spray over the old tag first!") + return FALSE + + // If you pass the gauntlet of checks, you're good to proceed + return TRUE + +/obj/item/toy/crayon/proc/territory_claimed(area/territory, mob/user) + for(var/datum/team/gang/G in GLOB.gangs) + if(territory.type in (G.territories|G.new_territories)) + . = G.name + break + +/obj/item/toy/crayon/proc/tag_for_gang(mob/user, atom/target) + //Delete any old markings on this tile, including other gang tags + for(var/obj/effect/decal/cleanable/crayon/old_marking in target) + qdel(old_marking) + + var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) + var/area/territory = get_area(target) + + new /obj/effect/decal/cleanable/crayon/gang(target,G.gang,"graffiti",0,user) + to_chat(user, "You tagged [territory] for your gang!") +////////////Gang end//////////////////// + + /obj/item/toy/crayon/attack(mob/M, mob/user) if(edible && (M == user)) to_chat(user, "You take a bite of the [src.name]. Delicious!") @@ -703,6 +781,25 @@ post_noise = FALSE reagent_contents = list("nothing" = 1, "mutetoxin" = 1) +/obj/item/toy/crayon/spraycan/gang + charges = 20 + gang = TRUE + + pre_noise = FALSE + post_noise = TRUE + +/obj/item/toy/crayon/spraycan/gang/Initialize(loc, datum/team/gang/G) + ..() + if(G) + gang = G + paint_color = G.color + update_icon() + +/obj/item/toy/crayon/spraycan/gang/examine(mob/user) + . = ..() + if(user.mind && user.mind.has_antag_datum(/datum/antagonist/gang) || isobserver(user)) + to_chat(user, "This spraycan has been specially modified for tagging territory.") + #undef RANDOM_GRAFFITI #undef RANDOM_LETTER #undef RANDOM_NUMBER diff --git a/modular_citadel/code/game/gamemodes/gangs/dominator.dm b/modular_citadel/code/game/gamemodes/gangs/dominator.dm index 418c26ab3c..0d89c78010 100644 --- a/modular_citadel/code/game/gamemodes/gangs/dominator.dm +++ b/modular_citadel/code/game/gamemodes/gangs/dominator.dm @@ -1,5 +1,6 @@ #define DOM_BLOCKED_SPAM_CAP 6 -#define DOM_REQUIRED_TURFS 30 +//32 instead of 40 for safety reasons. How many turfs aren't walls around dominator for it to work +#define DOM_REQUIRED_TURFS 32 #define DOM_HULK_HITS_REQUIRED 10 /obj/machinery/dominator @@ -22,7 +23,7 @@ /obj/machinery/dominator/Initialize() . = ..() - set_light(2) + set_light(l_range = 2, l_power = 0.75) GLOB.poi_list |= src spark_system = new spark_system.set_up(5, TRUE, src) @@ -86,10 +87,10 @@ if(time_remaining > 0) if(excessive_walls_check()) gang.domination_time += 20 - playsound(loc, 'sound/machines/buzz-two.ogg', 50, 0) if(spam_prevention < DOM_BLOCKED_SPAM_CAP) spam_prevention++ else + playsound(loc, 'sound/machines/buzz-two.ogg', 50, 0) // Play sound buzz-two.ogg, not before cause its annoying. gang.message_gangtools("Warning: There are too many walls around your gang's dominator, its signal is being blocked!") say("Error: Takeover signal is currently blocked! There are too many walls within 3 standard units of this device.") spam_prevention = 0 @@ -190,7 +191,8 @@ countdown.start() countdown.color = gang.color - set_light(3) + set_light(l_range = 3, l_power = 0.9) + light_color = gang.color START_PROCESSING(SSmachines, src) gang.message_gangtools("Hostile takeover in progress: Estimated [time] minutes until victory.[gang.dom_attempts ? "" : " This is your final attempt."]") @@ -200,15 +202,15 @@ vagos.message_gangtools("Enemy takeover attempt detected in [locname]: Estimated [time] minutes until our defeat.",1,1) /obj/machinery/dominator/proc/excessive_walls_check() // why the fuck was this even a global proc... - var/open = FALSE + var/open = 0 for(var/turf/T in view(3, src)) - if(!isclosedturf(T)) + if(!iswallturf(T)) //Check for /closed/wall, isclosedturf() moves it back to just checking for /closed/ which makes it very finicky. open++ + //to_chat(world, "THE DOMINATOR SEES [open] OPEN TURFS") uncomment to see what this shitty fucking wallcheck sees if(open < DOM_REQUIRED_TURFS) return TRUE else return FALSE - /obj/machinery/dominator/proc/set_broken() if(gang) gang.domination_time = NOT_DOMINATING diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_crayon.dm b/modular_citadel/code/game/gamemodes/gangs/gang_crayon.dm deleted file mode 100644 index 2edc2ba945..0000000000 --- a/modular_citadel/code/game/gamemodes/gangs/gang_crayon.dm +++ /dev/null @@ -1,236 +0,0 @@ -#define RANDOM_GRAFFITI "Random Graffiti" -#define RANDOM_LETTER "Random Letter" -#define RANDOM_NUMBER "Random Number" -#define RANDOM_ORIENTED "Random Oriented" -#define RANDOM_RUNE "Random Rune" -#define RANDOM_ANY "Random Anything" - -/obj/item/toy/crayon - var/datum/team/gang/gang //For marking territory, spraycans are gang-locked to their initial gang due to colors - -/obj/item/toy/crayon/afterattack(atom/target, mob/user, proximity, params) - if(!proximity || !check_allowed_items(target)) - return - - var/cost = 1 - if(paint_mode == PAINT_LARGE_HORIZONTAL) - cost = 5 - if(istype(target, /obj/item/canvas)) - cost = 0 - - if(istype(target, /obj/effect/decal/cleanable)) - target = target.loc - - if(!is_type_in_list(target,validSurfaces)) - return - - var/drawing = drawtype - switch(drawtype) - if(RANDOM_LETTER) - drawing = pick(letters) - if(RANDOM_GRAFFITI) - drawing = pick(graffiti) - if(RANDOM_RUNE) - drawing = pick(runes) - if(RANDOM_ORIENTED) - drawing = pick(oriented) - if(RANDOM_NUMBER) - drawing = pick(numerals) - if(RANDOM_ANY) - drawing = pick(all_drawables) - - var/temp = "rune" - if(drawing in letters) - temp = "letter" - else if(drawing in graffiti) - temp = "graffiti" - else if(drawing in numerals) - temp = "number" - - temp = gang_check(user,target) - if(!temp) return // hippie - var/graf_rot - if(drawing in oriented) - switch(user.dir) - if(EAST) - graf_rot = 90 - if(SOUTH) - graf_rot = 180 - if(WEST) - graf_rot = 270 - else - graf_rot = 0 - - var/list/click_params = params2list(params) - var/clickx - var/clicky - - if(click_params && click_params["icon-x"] && click_params["icon-y"]) - clickx = CLAMP(text2num(click_params["icon-x"]) - 16, -(world.icon_size/2), world.icon_size/2) - clicky = CLAMP(text2num(click_params["icon-y"]) - 16, -(world.icon_size/2), world.icon_size/2) - - if(!instant) - to_chat(user, "You start drawing a [temp] on the [target.name]...") - - if(pre_noise) - audible_message("You hear spraying.") - playsound(user.loc, 'sound/effects/spray.ogg', 5, 1, 5) - - var/takes_time = !instant - - var/wait_time = 50 - if(paint_mode == PAINT_LARGE_HORIZONTAL) - wait_time *= 3 - if(gang) takes_time = TRUE // hippie - if(takes_time) - if(!do_after(user, 50, target = target)) - return - - if(length(text_buffer)) - drawing = copytext(text_buffer,1,2) - - - var/list/turf/affected_turfs = list() - - if(!gang) // hippie - drawing is done in gang_final() if it's a gang type - if(actually_paints) - switch(paint_mode) - if(PAINT_NORMAL) - var/obj/effect/decal/cleanable/crayon/C = new(target, paint_color, drawing, temp, graf_rot) - C.add_hiddenprint(user) - C.pixel_x = clickx - C.pixel_y = clicky - affected_turfs += target - if(PAINT_LARGE_HORIZONTAL) - var/turf/left = locate(target.x-1,target.y,target.z) - var/turf/right = locate(target.x+1,target.y,target.z) - if(is_type_in_list(left, validSurfaces) && is_type_in_list(right, validSurfaces)) - var/obj/effect/decal/cleanable/crayon/C = new(left, paint_color, drawing, temp, graf_rot, PAINT_LARGE_HORIZONTAL_ICON) - C.add_hiddenprint(user) - affected_turfs += left - affected_turfs += right - affected_turfs += target - else - to_chat(user, "There isn't enough space to paint!") - return - else // hippie - if(gang_final(user, target, affected_turfs)) return // hippie - - if(!instant) - to_chat(user, "You finish drawing \the [temp].") - else - to_chat(user, "You spray a [temp] on \the [target.name]") - - var/charges_used = use_charges(user, cost) - if(!charges_used) - return - . = charges_used - - if(length(text_buffer)) - text_buffer = copytext(text_buffer,2) - - if(post_noise) - audible_message("You hear spraying.") - playsound(user.loc, 'sound/effects/spray.ogg', 5, 1, 5) - - var/fraction = min(1, . / reagents.maximum_volume) - if(affected_turfs.len) - fraction /= affected_turfs.len - for(var/t in affected_turfs) - reagents.reaction(t, TOUCH, fraction * volume_multiplier) - reagents.trans_to(t, ., volume_multiplier) - check_empty(user) - -/obj/item/toy/crayon/proc/gang_check(mob/user, atom/target) // hooked into afterattack - var/gang_mode = FALSE - if(gang && user.mind) - var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) - if(G.gang != gang) - to_chat(user, "This spraycan's color isn't your gang's one! You cannot use it.") - return FALSE - gang_mode = TRUE - instant = FALSE - . = "graffiti" - // discontinue if the area isn't valid for tagging because gang "honour" - if(gang_mode && (!can_claim_for_gang(user, target))) - return FALSE - -/obj/item/toy/crayon/proc/gang_final(mob/user, atom/target, list/affected_turfs) // hooked into afterattack - // Double check it wasn't tagged in the meanwhile - if(!can_claim_for_gang(user, target)) - return TRUE - tag_for_gang(user, target) - affected_turfs += target - -/obj/item/toy/crayon/proc/can_claim_for_gang(mob/user, atom/target) - // Check area validity. - // Reject space, player-created areas, and non-station z-levels. - var/area/A = get_area(target) - if(!A || (!is_station_level(A.z)) || !A.valid_territory) - to_chat(user, "[A] is unsuitable for tagging.") - return FALSE - - var/spraying_over = FALSE - for(var/G in target) - var/obj/effect/decal/cleanable/crayon/gang/gangtag = G - if(istype(gangtag)) - var/datum/antagonist/gang/GA = user.mind.has_antag_datum(/datum/antagonist/gang) - if(gangtag.gang != GA.gang) - spraying_over = TRUE - break - - for(var/obj/machinery/power/apc in target) - to_chat(user, "You can't tag an APC.") - return FALSE - - var/occupying_gang = territory_claimed(A, user) - if(occupying_gang && !spraying_over) - to_chat(user, "[A] has already been tagged by the [occupying_gang] gang! You must get rid of or spray over the old tag first!") - return FALSE - - // If you pass the gaunlet of checks, you're good to proceed - return TRUE - -/obj/item/toy/crayon/proc/territory_claimed(area/territory, mob/user) - for(var/datum/team/gang/G in GLOB.gangs) - if(territory.type in (G.territories|G.new_territories)) - . = G.name - break - -/obj/item/toy/crayon/proc/tag_for_gang(mob/user, atom/target) - //Delete any old markings on this tile, including other gang tags - for(var/obj/effect/decal/cleanable/crayon/old_marking in target) - qdel(old_marking) - - var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang) - var/area/territory = get_area(target) - - new /obj/effect/decal/cleanable/crayon/gang(target,G.gang,"graffiti",0,user) - to_chat(user, "You tagged [territory] for your gang!") - -/obj/item/toy/crayon/spraycan/gang - //desc = "A modified container containing suspicious paint." - charges = 20 - gang = TRUE - - pre_noise = FALSE - post_noise = TRUE - -/obj/item/toy/crayon/spraycan/gang/Initialize(loc, datum/team/gang/G) - ..() - if(G) - gang = G - paint_color = G.color - update_icon() - -/obj/item/toy/crayon/spraycan/gang/examine(mob/user) - . = ..() - if(user.mind && user.mind.has_antag_datum(/datum/antagonist/gang) || isobserver(user)) - to_chat(user, "This spraycan has been specially modified for tagging territory.") - -#undef RANDOM_GRAFFITI -#undef RANDOM_LETTER -#undef RANDOM_NUMBER -#undef RANDOM_ORIENTED -#undef RANDOM_RUNE -#undef RANDOM_ANY \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm b/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm index 66dfdd0ca3..c2a31abe17 100644 --- a/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm +++ b/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm @@ -38,7 +38,7 @@ /datum/team/gang/waffle name = "Waffle" - color = "#808000" + color = "#808000" //shared color with cyber, but they can keep brown cause waffles. inner_outfits = list(/obj/item/clothing/under/suit_jacket/green) outer_outfits = list(/obj/item/clothing/suit/poncho) @@ -62,7 +62,7 @@ /datum/team/gang/cyber name = "Cyber" - color = "#808000" + color = "#00f904" //Cyber and waffle shared colors, I made these guys green and made weed darker green. inner_outfits = list(/obj/item/clothing/under/color/lightbrown) outer_outfits = list(/obj/item/clothing/suit/nemes) @@ -80,7 +80,7 @@ /datum/team/gang/gib name = "Gib" - color = "#636060" //Applying black to grayscale... Zero-G is already grey too. + color = "#636060" //Applying black to grayscale... Zero-G is already grey too. oh well. inner_outfits = list(/obj/item/clothing/under/color/black) outer_outfits = list(/obj/item/clothing/suit/jacket/leather/overcoat) @@ -134,6 +134,6 @@ /datum/team/gang/weed name = "Weed" - color = "#66ff33" + color = "#6cd648" inner_outfits = list(/obj/item/clothing/under/color/darkgreen) outer_outfits = list(/obj/item/clothing/suit/vapeshirt) \ No newline at end of file diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_items.dm b/modular_citadel/code/game/gamemodes/gangs/gang_items.dm index ceb08b3da3..f808229661 100644 --- a/modular_citadel/code/game/gamemodes/gangs/gang_items.dm +++ b/modular_citadel/code/game/gamemodes/gangs/gang_items.dm @@ -385,7 +385,7 @@ /datum/gang_item/equipment/dominator/get_extra_info(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) if(gang) - return "This device requires a 5x5 area clear of walls to work. (Estimated Takeover Time: [round(gang.determine_domination_time()/60,0.1)] minutes)" + return "This device requires a 5x5 area clear of walls to work best. (Estimated Takeover Time: [round(gang.determine_domination_time()/60,0.1)] minutes)" /datum/gang_item/equipment/dominator/purchase(mob/living/carbon/user, datum/team/gang/gang, obj/item/device/gangtool/gangtool) var/area/userarea = get_area(user) diff --git a/tgstation.dme b/tgstation.dme index 7c9185699a..7f6d07438c 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2813,7 +2813,6 @@ #include "modular_citadel\code\game\gamemodes\gangs\dominator.dm" #include "modular_citadel\code\game\gamemodes\gangs\dominator_countdown.dm" #include "modular_citadel\code\game\gamemodes\gangs\gang.dm" -#include "modular_citadel\code\game\gamemodes\gangs\gang_crayon.dm" #include "modular_citadel\code\game\gamemodes\gangs\gang_datums.dm" #include "modular_citadel\code\game\gamemodes\gangs\gang_decals.dm" #include "modular_citadel\code\game\gamemodes\gangs\gang_hud.dm" From 51f2a37e6e0979a1c21619419448c58492c7da48 Mon Sep 17 00:00:00 2001 From: Carlen White Date: Mon, 20 May 2019 17:47:10 -0400 Subject: [PATCH 033/276] Changed arousal message styling. Now with less gaudy green. --- .../browserassets/css/browserOutput.css | 4 +- .../mood_events/generic_positive_events.dm | 2 +- .../code/modules/arousal/arousal.dm | 54 +++++++++---------- 3 files changed, 31 insertions(+), 29 deletions(-) diff --git a/code/modules/goonchat/browserassets/css/browserOutput.css b/code/modules/goonchat/browserassets/css/browserOutput.css index 6466a47e42..33884f8ef0 100644 --- a/code/modules/goonchat/browserassets/css/browserOutput.css +++ b/code/modules/goonchat/browserassets/css/browserOutput.css @@ -316,7 +316,9 @@ h1.alert, h2.alert {color: #000000;} .unconscious {color: #0000ff; font-weight: bold;} .suicide {color: #ff5050; font-style: italic;} .green {color: #03ff39;} -.nicegreen {color: #14a833;} +.nicegreen {color: #14a833;} +.userlove {color: #FF1493; font-style: italic; font-weight: bold; text-shadow: 0 0 6px #ff6dbc;} +.love {color: #ff006a; font-style: italic; text-shadow: 0 0 6px #ff6d6d;} .shadowling {color: #3b2769;} .cult {color: #960000;} diff --git a/modular_citadel/code/datums/mood_events/generic_positive_events.dm b/modular_citadel/code/datums/mood_events/generic_positive_events.dm index 4c581d8184..717fe5a47d 100644 --- a/modular_citadel/code/datums/mood_events/generic_positive_events.dm +++ b/modular_citadel/code/datums/mood_events/generic_positive_events.dm @@ -21,7 +21,7 @@ timeout = 3000 /datum/mood_event/orgasm - description = "I came!" //funny meme haha + description = "I came!\n" //funny meme haha mood_change = 3 timeout = 1000 diff --git a/modular_citadel/code/modules/arousal/arousal.dm b/modular_citadel/code/modules/arousal/arousal.dm index 307cdff29f..ef9201af60 100644 --- a/modular_citadel/code/modules/arousal/arousal.dm +++ b/modular_citadel/code/modules/arousal/arousal.dm @@ -222,17 +222,17 @@ fluid_source = G.linked_organ.reagents total_fluids = fluid_source.total_volume if(mb_time) - src.visible_message("[src] starts to [G.masturbation_verb] [p_their()] [G.name].", \ - "You start to [G.masturbation_verb] your [G.name].", \ - "You start to [G.masturbation_verb] your [G.name].") + src.visible_message("[src] starts to [G.masturbation_verb] [p_their()] [G.name].", \ + "You start to [G.masturbation_verb] your [G.name].", \ + "You start to [G.masturbation_verb] your [G.name].") if(do_after(src, mb_time, target = src)) if(total_fluids > 5) fluid_source.reaction(src.loc, TOUCH, 1, 0) fluid_source.clear_reagents() - src.visible_message("[src] orgasms, cumming[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""]!", \ - "You cum[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""].", \ - "You have relieved yourself.") + src.visible_message("[src] orgasms, cumming[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""]!", \ + "You cum[istype(src.loc, /turf/open/floor) ? " onto [src.loc]" : ""].", \ + "You have relieved yourself.") SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) if(G.can_climax) setArousalLoss(min_arousal) @@ -260,16 +260,16 @@ else total_fluids = fluid_source.total_volume if(mb_time) //as long as it's not instant, give a warning - src.visible_message("[src] looks like they're about to cum.", \ - "You feel yourself about to orgasm.", \ - "You feel yourself about to orgasm.") + src.visible_message("[src] looks like they're about to cum.", \ + "You feel yourself about to orgasm.", \ + "You feel yourself about to orgasm.") if(do_after(src, mb_time, target = src)) if(total_fluids > 5) fluid_source.reaction(src.loc, TOUCH, 1, 0) fluid_source.clear_reagents() - src.visible_message("[src] orgasms[istype(src.loc, /turf/open/floor) ? ", spilling onto [src.loc]" : ""], using [p_their()] [G.name]!", \ - "You climax[istype(src.loc, /turf/open/floor) ? ", spilling onto [src.loc]" : ""] with your [G.name].", \ - "You climax using your [G.name].") + src.visible_message("[src] orgasms[istype(src.loc, /turf/open/floor) ? ", spilling onto [src.loc]" : ""], using [p_their()] [G.name]!", \ + "You climax[istype(src.loc, /turf/open/floor) ? ", spilling onto [src.loc]" : ""] with your [G.name].", \ + "You climax using your [G.name].") SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) if(G.can_climax) setArousalLoss(min_arousal) @@ -288,9 +288,9 @@ fluid_source = G.linked_organ.reagents total_fluids = fluid_source.total_volume if(mb_time) //Skip warning if this is an instant climax. - src.visible_message("[src] is about to climax with [L]!", \ - "You're about to climax with [L]!", \ - "You're preparing to climax with someone!") + src.visible_message("[src] is about to climax with [L]!", \ + "You're about to climax with [L]!", \ + "You're preparing to climax with someone!") if(spillage) if(do_after(src, mb_time, target = src) && in_range(src, L)) fluid_source.trans_to(L, total_fluids*G.fluid_transfer_factor) @@ -298,9 +298,9 @@ if(total_fluids > 5) fluid_source.reaction(L.loc, TOUCH, 1, 0) fluid_source.clear_reagents() - src.visible_message("[src] climaxes with [L][spillage ? ", overflowing and spilling":""], using [p_their()] [G.name]!", \ - "You orgasm with [L][spillage ? ", spilling out of them":""], using your [G.name].", \ - "You have climaxed with someone[spillage ? ", spilling out of them":""], using your [G.name].") + src.visible_message("[src] climaxes with [L][spillage ? ", overflowing and spilling":""], using [p_their()] [G.name]!", \ + "You orgasm with [L][spillage ? ", spilling out of them":""], using your [G.name].", \ + "You have climaxed with someone[spillage ? ", spilling out of them":""], using your [G.name].") SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) if(G.can_climax) @@ -309,9 +309,9 @@ if(do_after(src, mb_time, target = src) && in_range(src, L)) fluid_source.trans_to(L, total_fluids) total_fluids = 0 - src.visible_message("[src] climaxes with [L], [p_their()] [G.name] spilling nothing!", \ - "You ejaculate with [L], your [G.name] spilling nothing.", \ - "You have climaxed inside someone, your [G.name] spilling nothing.") + src.visible_message("[src] climaxes with [L], [p_their()] [G.name] spilling nothing!", \ + "You ejaculate with [L], your [G.name] spilling nothing.", \ + "You have climaxed inside someone, your [G.name] spilling nothing.") SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) if(G.can_climax) @@ -335,14 +335,14 @@ // to_chat(src, "You need a container to do this!") // return - src.visible_message("[src] starts to [G.masturbation_verb] their [G.name] over [container].", \ - "You start to [G.masturbation_verb] your [G.name] over [container].", \ - "You start to [G.masturbation_verb] your [G.name] over something.") + src.visible_message("[src] starts to [G.masturbation_verb] their [G.name] over [container].", \ + "You start to [G.masturbation_verb] your [G.name] over [container].", \ + "You start to [G.masturbation_verb] your [G.name] over something.") if(do_after(src, mb_time, target = src) && in_range(src, container)) fluid_source.trans_to(container, total_fluids) - src.visible_message("[src] uses [p_their()] [G.name] to fill [container]!", \ - "You used your [G.name] to fill [container].", \ - "You have relieved some pressure.") + src.visible_message("[src] uses [p_their()] [G.name] to fill [container]!", \ + "You used your [G.name] to fill [container].", \ + "You have relieved some pressure.") SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) if(G.can_climax) setArousalLoss(min_arousal) From bcf563e132adf6c74469faad52268b8c916e6e91 Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Mon, 20 May 2019 21:53:47 -0700 Subject: [PATCH 034/276] Fixes ass slapping to be less annoying. --- code/__DEFINES/combat.dm | 2 + .../mob/living/carbon/human/species.dm | 54 +++++++++++------- icons/effects/effects.dmi | Bin 887429 -> 881146 bytes tgstation.dme | 2 +- 4 files changed, 36 insertions(+), 22 deletions(-) diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm index 15e8048926..7cab82149d 100644 --- a/code/__DEFINES/combat.dm +++ b/code/__DEFINES/combat.dm @@ -79,6 +79,8 @@ #define ATTACK_EFFECT_SMASH "smash" #define ATTACK_EFFECT_CLAW "claw" #define ATTACK_EFFECT_DISARM "disarm" +#define ATTACK_EFFECT_ASS_SLAP "ass_slap" +#define ATTACK_EFFECT_FACE_SLAP "face_slap" #define ATTACK_EFFECT_BITE "bite" #define ATTACK_EFFECT_MECHFIRE "mech_fire" #define ATTACK_EFFECT_MECHTOXIN "mech_toxin" diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 870dfc2ebc..23371dc3db 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1452,39 +1452,51 @@ GLOBAL_LIST_EMPTY(roundstart_races) /datum/species/proc/disarm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style) // CITADEL EDIT slap mouthy gits and booty - var/aim_for_mouth = user.zone_selected == "mouth" - var/target_on_help_and_unarmed = target.a_intent == INTENT_HELP && !target.get_active_held_item() + var/aim_for_mouth = user.zone_selected == "mouth" + var/target_on_help = target.a_intent == INTENT_HELP var/target_aiming_for_mouth = target.zone_selected == "mouth" var/target_restrained = target.restrained() - if(aim_for_mouth && ( target_on_help_and_unarmed || target_restrained || target_aiming_for_mouth)) - playsound(target.loc, 'sound/weapons/slap.ogg', 50, 1, -1) - user.visible_message("[user] slaps [target] in the face!", - "You slap [target] in the face! ",\ - "You hear a slap.") - if (!target.has_trait(TRAIT_NYMPHO)) - stop_wagging_tail(target) - return FALSE + var/same_dir = (target.dir & user.dir) var/aim_for_groin = user.zone_selected == "groin" var/target_aiming_for_groin = target.zone_selected == "groin" - if(aim_for_groin && (target_on_help_and_unarmed || target_restrained || target_aiming_for_groin)) + + if(target.check_block()) //END EDIT + target.visible_message("[target] blocks [user]'s disarm attempt!") + return 0 + else if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) + to_chat(user, "You're too exhausted!") + return FALSE + + else if(aim_for_mouth && ( target_on_help || target_restrained || target_aiming_for_mouth)) playsound(target.loc, 'sound/weapons/slap.ogg', 50, 1, -1) - user.visible_message("[user] slaps [target]'s ass!", - "You slap [target]'s ass! ",\ - "You hear a slap.") + + user.visible_message( + "[user] slaps [target] in the face!", + "You slap [user == target ? "yourself" : target] in the face! ",\ + "You hear a slap." + ) + if (!target.has_trait(TRAIT_NYMPHO)) + stop_wagging_tail(target) + user.do_attack_animation(target, ATTACK_EFFECT_FACE_SLAP) + user.adjustStaminaLossBuffered(3) + return FALSE + else if(aim_for_groin && (target == user || target.lying || same_dir) && (target_on_help || target_restrained || target_aiming_for_groin)) + playsound(target.loc, 'sound/weapons/slap.ogg', 50, 1, -1) + user.visible_message( + "[user] slaps [target]'s ass!", + "You slap [user == target ? "your" : target + "'s"] ass! ",\ + "You hear a slap." + ) if (target.canbearoused) target.adjustArousalLoss(5) if (target.getArousalLoss() >= 100 && ishuman(target) && target.has_trait(TRAIT_NYMPHO) && target.has_dna()) target.mob_climax(forced_climax=TRUE) if (!target.has_trait(TRAIT_NYMPHO)) stop_wagging_tail(target) + user.do_attack_animation(target, ATTACK_EFFECT_ASS_SLAP) + user.adjustStaminaLossBuffered(3) return FALSE - else if(user.getStaminaLoss() >= STAMINA_SOFTCRIT) - to_chat(user, "You're too exhausted.") - return FALSE - else if(target.check_block()) //END EDIT - target.visible_message("[target] blocks [user]'s disarm attempt!") - return 0 - if(attacker_style && attacker_style.disarm_act(user,target)) + else if(attacker_style && attacker_style.disarm_act(user,target)) return 1 else user.do_attack_animation(target, ATTACK_EFFECT_DISARM) diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 70a5a71652a317e2651e01deaf3ca8667e6c940f..29086033c825fcae979b3be31d0cf923f9f09fc7 100644 GIT binary patch delta 440342 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

|#RkAiwh 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%0D-v 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 VhUXrt+i}%UH*~J&U9))ce*pAxV1NJs From b053fe3c86634d2f2743e36c3ad888f2d6735d63 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Tue, 4 Jun 2019 23:36:58 -0500 Subject: [PATCH 261/276] Probably fixes synth hand issues --- code/modules/surgery/bodyparts/bodyparts.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 71b659b73f..564a0623a0 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -262,6 +262,7 @@ else if(status == BODYPART_ROBOTIC) icon = DEFAULT_BODYPART_ICON_ROBOTIC body_markings = null + auxmarking = null if(owner) owner.updatehealth() @@ -292,6 +293,7 @@ should_draw_greyscale = FALSE no_update = TRUE body_markings = "husk" // reeee + auxmarking = "husk" if(no_update) return @@ -339,13 +341,16 @@ if(H.dna.features.["mam_body_markings"] != "None") body_markings_icon = Smark.icon body_markings = lowertext(H.dna.features.["mam_body_markings"]) + auxmarking = lowertext(H.dna.features.["mam_body_markings"]) if(MATRIXED) markings_color = list(colorlist) else body_markings = "plain" + auxmarking = "plain" markings_color = (H.dna.features.["mcolor"]) else body_markings = null + auxmarking = null markings_color = "" if(!dropping_limb && H.dna.check_mutation(HULK)) @@ -361,6 +366,7 @@ if(status == BODYPART_ROBOTIC) dmg_overlay_type = "robotic" body_markings = null + auxmarking = null if(dropping_limb) no_update = TRUE //when attached, the limb won't be affected by the appearance changes of its mob owner. From a2b4f4261c1444c7eafa52ecf07a51b33efcc344 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Wed, 5 Jun 2019 02:33:25 -0500 Subject: [PATCH 262/276] Fixes missing hands and marking overlap cleans up the code a bit too. Improves female chest sprites. --- .../mob/living/carbon/human/update_icons.dm | 2 ++ code/modules/surgery/bodyparts/bodyparts.dm | 33 +++++++----------- modular_citadel/icons/mob/mam_markings.dmi | Bin 93563 -> 93529 bytes 3 files changed, 15 insertions(+), 20 deletions(-) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 9b5375035e..ef5b9045ca 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -660,6 +660,8 @@ generate/load female uniform sprites matching all previously decided variables . += "-[BP.dmg_overlay_type]" if(BP.body_markings) . += "-[BP.body_markings]" + else + . += "-no_marking" if(has_trait(TRAIT_HUSK)) . += "-husk" diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 564a0623a0..e35b8efbd0 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -48,7 +48,7 @@ var/body_markings = "" //for bodypart markings var/body_markings_icon = 'modular_citadel/icons/mob/mam_markings.dmi' var/list/markings_color = list() - var/auxmarking + var/auxmarking = "" var/list/auxmarking_color = list() var/animal_origin = null //for nonhuman bodypart (e.g. monkey) @@ -261,8 +261,6 @@ icon = DEFAULT_BODYPART_ICON_ORGANIC else if(status == BODYPART_ROBOTIC) icon = DEFAULT_BODYPART_ICON_ROBOTIC - body_markings = null - auxmarking = null if(owner) owner.updatehealth() @@ -338,20 +336,14 @@ if("mam_body_markings" in S.default_features) var/datum/sprite_accessory/Smark Smark = GLOB.mam_body_markings_list[H.dna.features["mam_body_markings"]] + body_markings_icon = Smark.icon if(H.dna.features.["mam_body_markings"] != "None") - body_markings_icon = Smark.icon body_markings = lowertext(H.dna.features.["mam_body_markings"]) auxmarking = lowertext(H.dna.features.["mam_body_markings"]) - if(MATRIXED) - markings_color = list(colorlist) else body_markings = "plain" auxmarking = "plain" - markings_color = (H.dna.features.["mcolor"]) - else - body_markings = null - auxmarking = null - markings_color = "" + markings_color = list(colorlist) if(!dropping_limb && H.dna.check_mutation(HULK)) mutation_color = "00aa00" @@ -400,7 +392,8 @@ . += image('icons/mob/dam_mob.dmi', "[dmg_overlay_type]_[body_zone]_[brutestate]0", -DAMAGE_LAYER, image_dir) if(burnstate) . += image('icons/mob/dam_mob.dmi', "[dmg_overlay_type]_[body_zone]_0[burnstate]", -DAMAGE_LAYER, image_dir) - if(body_markings && status != BODYPART_ROBOTIC) + + if(!isnull(body_markings) && status == BODYPART_ORGANIC) if(!use_digitigrade) if(BODY_ZONE_CHEST) . += image(body_markings_icon, "[body_markings]_[body_zone]_[icon_gender]", -MARKING_LAYER, image_dir) @@ -456,7 +449,7 @@ limb.icon_state = "[species_id]_[body_zone]" // Body markings - if(body_markings) + if(!isnull(body_markings)) if(species_id == "husk") marking = image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[body_zone]", -MARKING_LAYER, image_dir) else if(species_id == "husk" && use_digitigrade) @@ -476,7 +469,7 @@ if(aux_zone) aux = image(limb.icon, "[species_id]_[aux_zone]", -aux_layer, image_dir) . += aux - if(body_markings) + if(!isnull(auxmarking)) if(species_id == "husk") auxmarking = image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[aux_zone]", -aux_layer, image_dir) else @@ -489,17 +482,18 @@ limb.icon_state = "[body_zone]_[icon_gender]" else limb.icon_state = "[body_zone]" + if(aux_zone) - aux = image(limb.icon, "[species_id]_[aux_zone]", -aux_layer, image_dir) + aux = image(limb.icon, "[aux_zone]", -aux_layer, image_dir) . += aux - if(body_markings) + if(!isnull(auxmarking)) if(species_id == "husk") auxmarking = image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[aux_zone]", -aux_layer, image_dir) else auxmarking = image(body_markings_icon, "[body_markings]_[aux_zone]", -aux_layer, image_dir) . += auxmarking - if(body_markings) + if(!isnull(body_markings)) if(species_id == "husk") marking = image('modular_citadel/icons/mob/markings_notmammals.dmi', "husk_[body_zone]", -MARKING_LAYER, image_dir) else if(species_id == "husk" && use_digitigrade) @@ -515,17 +509,16 @@ . += marking return - if(should_draw_greyscale) var/draw_color = mutation_color || species_color || (skin_tone && skintone2hex(skin_tone)) if(draw_color) limb.color = "#[draw_color]" if(aux_zone) aux.color = "#[draw_color]" - if(body_markings) + if(!isnull(auxmarking)) auxmarking.color = list(markings_color) - if(body_markings) + if(!isnull(body_markings)) if(species_id == "husk") marking.color = "#141414" else diff --git a/modular_citadel/icons/mob/mam_markings.dmi b/modular_citadel/icons/mob/mam_markings.dmi index 9931f52fe750ae870e51360db66dfa42426df45a..8327be6eaf0663c9f3c42a9173f4468488b89fb8 100644 GIT binary patch literal 93529 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
jQyJ?b_eIan2Q`ABfBnahq?PAKQ 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 oZ|_V5!!!J4oT0xzxyEV`;2%>uLM*KOV literal 93563 zcmbsQc|4Tg`v;B>kxC+plBGhDwM1DbZ5l*bvKvdtzVBv6ghXWQS<99o`@W4`cG>r_ z?_)QZF*CoLUhl`}`+I!<{LbT1ZsXk7Irn|exvuB+d|oH$jj}x51=b575Qq-)>bWWi zL{)e4@7!778)gNmXb_0H*Hc}~`MIf+iKB(RvxS{42;`oS9$#-e{`ks^;cd-xShz@+ zb9`4y^UYu!%f+#uJfWs;Sm=qG zbk8wBZDwaqez=6w0&dMceoqohT^ar@CKgckTSj@!?;FMlt`{F(<#yXsuPkGUJg6KH zw$?39>2zMds^xX=_18ATm`@S5CHRV-b%l9N>%ok&H)su+qef$kz6(EvWFHIRso%T$nY#%b$ z*)s*VBxu<5P^Y`znM$Hn5HAv+tXJx8H0i&ZNpbwkovk6;mwLOsNMw<8*W?KF!$%M* z`=rH+(o=;PH~R3`!GN`^xwt?^;^?%G!D#E>_0F>ag`zjEwN3{)URAo^9?c!As>)QJ zuKXx0z>>bARa4Z+5Hbg6I7yFb1DpqJUwz;^Pke#Zbnm(GK_04{xNkRzGJw@+xP40r~JYD&dIJr# z$lMtWNJ-R7z6@x|`hI152!5g^AAK ziN%&9-eHTf%a=uqxq6hv)Z%3D9w&qMJstdXRHSo;A9YAFTORa5Y+Co<)n=7YX5qhA zGycr<@!)5{xrXe{4!Y-}m^?<9pB^GD#8YLGKFql_ZwJl!Q6@+tDU+lb=~X!6z*6e( z&wQdhtWBc(wvA$HW8XJ7n~P{;7d!S0(RF`47N!e-A?a5yqwW;IyE~L{R4?r}WA3AA z)D@T1p2}Y}&T1_|D;#`QHv}bAFXZ1Iba-K1^>cRSBbrU`7w>wX7&xfQ)k=7d^EZ@# zy4YQ;b#aK1walen2gD!$CtY1eqxXeSx;3iAj=7eDD$-0Ovn}eGXrFSiSZWGW*9ZLl z=cL2HKE%El|IrPkn4rrPmilU_YX#%GDdJ7NUnhC0C0<*Du1|4IOCS=;~2C z*TgkabkO=N2b0TvUEUB;hJ5PEO=upi3o}wJRoEGR+b7!u)0ciMoo?g(oS?JJwZ<=@ zxT$MjsYSdwPxgC_IdkM#+~Mn@luvID=)7Bw0>HD3v`O~0Kj2X+J+DqK5&KvB(fKi-i15GjoTZlpCRU&U82y_z!c`m2!p0GX% zw$_7;VF(x#rROxFwT6XOv6s?(E^$xq==*%Sf8N4`k?+lI>WDWK`;@Bo?44(;>erhm z&sW#q&Huc+b^Jg`ST!J2pAG;{*I|%zlto zyZH(Z$3>-#_Wh+_ZXZHr@9g29dV2_REapWkWikFpbBow ztC+8yn=fqo@c6Wk%22U7dn1*ur%I(w?=`EXhn9<*^tSVM38hVMHM0n}M#`J?#uwML zx(JIcV7Aj+K2u%Goz_CaP)MU~$D!tMhxqFe_S<&JVi)L7|DMot<&|E$TG19EZ2v10 zT>uBsyWbqIpWr*9cc#+{k4ZbE2P;S-8!V?DjD%7PzRI(W&OUQ`Cq97cno!pzfs4#F zD3-JfWyg%d7L2Ipv%LC&Ya6)%yYyj+jE47jU2fNCZ|fp1p4{V8i$^(A^n(4~4?D&k z>c85%coyAdk$?65#=K^Tk=Oo}KNUvW(oJGRi##&NDfLbW7q4;#M0Y7|H;fUwYiX=}X$SljVgb71%3yBK3`r-)ku=?<8KZw>;<=M%G5`**?6!Js>du z>Z!CCZ7>r&=FW4+W|fZcP+9N8w;E@6-ds36SAh!FoC9npZ{M&1vXH~uoua^Z8TQnzD{_xW$Rv5L8z*~(|d5HsqZ zt2pJyxy>&tmykKRiRraDU7iFl?t0@L#T^TB`IJ%en3y?Z&M4`cSe~VJZ|Q3C{P1Y? z6qy1Pdq-2*ha#3euxs){7GtXVeL; zf1!vUM8#5cq_7-=JYs)^N-A1x_-;NE9YLx^>YY?-UEg2mz`^@%nNcfIU?<==9M9(? zNctjtu~&?D_y!;%5xyjeT~;l!dNbz%e}r!btDgC`&Y6pMKjafkVJl+$v$wf?9D{pG ztkfD7qtNW|bM;e-p7}p!23o=DWf*?)rI4=qcSUs4NGQ`dSyo~@v^mL&}n6xy>%Pe+$Y_6{`J)2v6c4U*apCP_1 zlevvI;?=5j{s z*N%khwKRI0Z`mRG_-Ywi80B)9!6v1)BLy5}8in8DjJMv=^GUy)Eld+=!@pl$HAL!L z|4KUZE!q5O79B?`)k=nN62AAW%|Xne8y>mL_m}tV4JL~6$SIz>Zapf_C+{5IuB(p+ zbGYg69$|<#Pn_Ln65!K&9%aW`NK{{{zEk3~@|8iFUb?jet=uB~22*O!AFI3?YaV$X zl*=`FR7T(5lXh%sAgsj;``{JToEF6D`abo8i`AlOgQ}FpJ7#J* zu8H_9sw2ktG$EMbm>m_LC@s)&AcH`zLwF0^sY++Fp+A0n&=gOX)%tNZA&q?4gRH%{ zNeCkg)HvW7KIGO6dXprGWen@+SpW2w9%r$edsjPq%F>(hm2QMHvFtE!aGU<3>`+i9 z+u9rB2dn4GS!ri1<*|4CV?*wRd*5T{jD2C()liTYh~StySXCK3f5;w4KU=oXD!;9p zS3ZqOm{m-rtx+Ha&$K*9gD~XHx26!u+7}e-tuYPRh`arywf&!a#o#t!5a^qHC0~6b zSaGIxr}f6lcJi=;7E2ge;VY>qS)gebJ+c37P68@HagwzGp;V2L!J3Q$chHps92IM~CoLZ2Rt+&T*VCNZJrnqKT>tvVD-pMO9NEbz%7#G2}~6)5);-?x8Pv6kF*|E@#^wa)yDZldcvv@qd7!>MgI z&T;nogeWHxYUKGdIkh7kd3Hf?)3s6?mqTtM`H2fF(a0 z#kKAkvAjANV(iU{^JaE}%j5Ii2OcWNY8^kmTQbYnCj8O~YqP?pE-+Yk2y`m;xt;VA zrg`@EohP+7rWVAAUvbG;T&uGY9k2|6xf075$?=Y!9TR@r%@poTyt=Y?yEB1m{wj-4 zXsXZ#JbG#X%Q-yzgLog?2fxN*4E4I>-zp31NzxsGKL~k^IS|Xn_7KQ>w@!A3NPYQy z%oGIQ&3k@G`tWO&0sCN#0WC$QZg1W?>N{z7_@29#nTicz0-|6SIOR1N`S|-ENGX zI?qq$wKM&l*8RTB*|BJEwWwRs=5j~O4WVn;i^^~~lstPdi1qlI+ty#|fJH=3utZrR z#yc>$aI8j~a1V|~q)NGl{79CpSWV6}4W7V|IZ+c! zC4sXQe2IFKX~gV^h>27XFwBjwEw~Q|P|?}|0h~-m;>kxnCqBdnBIIcwvvxC|RJA?r z_QSzr!d>su%0qg-QO~Khx<@V}cl`pa`sPE1$L4acfo0JZEj-xd3L-^kZfFhJZD$wp z_Ne)qU=2CqWZTBx6bQRM`e4z=ZhcPY3%XFI8a7ZKnHGih-cC0vT$t~akNSITR%w&D zDi%t@6D7i|?!$|SbF3nlvB`OWO(9uwj|chSnDM<*PIm1-n~xheCOzv17b&!A7!Ecj zk4-u1j!Yhd|)b?)YQTp@yWQ= zplJe*f&Oq7J1Lgz_$syPZPc~Pk;-mcUjQ%U3PtJcJ=(7+COjZhu1oFTZtAiS-mYC# zPM7F124ar>Qccf1oO5;;@eqDvlYF{mB?S_FzbSwGOk3wERYLllx~OwE$-!;-Ascl* zbQ1T=Z}Cc`|GX>97{-Q0B+3eysBHdCaw6gQK#R<;W4%dCJ{jJV)@D1|xm=aqokYr8 zF6P5E&Wf&KOPpmXP!Ca0a(jHgZvPTv@>8&Q zV6z{F`s)Veh~7n+n8lBX
DY4BAOar99)@%3>^Qp`)?ut+jDw@h!CRlR%CVK1<0 zv{w$u-Eb0TyB%GABW{WeISDs<0ZZNTC6Km&!>{=<759f_SmZcaz-32fIcdbXWuJ*q zXZ(BKDS5(~Cmh>E#Fi}L@eHZcG}amM_kjGO^?=+A7(!Rtel%-VD-sd5keRoe&z2OS z-Q*^ID+p2PYH-`%cSF`@3p=$)XJ2%9y!iW4aYu&s<9A7wpL;53d(=>PogA+$J zd(>Jd&3|S>j$da!5Xh3;#t3YA_v{P^uwA*UwlW_x@Ri+1d<_qkB>xz8eY3nTuB>x_ z$+EnWHv;}-XtC4LF@C9*G)G90&*6NUAM1QK{P?r!XFp*DCA7tua}J`XR8}Qs48wI) z!seS!gPw5^!D^Oi%4(u}t|LlFgzXg39GZS3nA8zWx#N}=n}hSCp=M*!(v*N7bM}ZE zm|p(Lf>5L5IoE@tvx!0zS#w>Q3tN^5K@CVAkT3h0vnn z3{2d03RehWbxQKgE=tm8$u~`Y2fQ6*Tw2ASiVoG-rwyYT39oeML-126%72WC4cK~i zj#=KXbI0~gQn3Bc>RcG96S?IgBB-d7YX`;=*R?PGXot5PI*ffZQFsXNVCA-$6t=x5 zFpL$s`&n%wFQQxlX{Ze3W+r2p-3nljd6QIz3FMMt5Wj~=cTn9odHtppm8rJUjK@p( zR|^r)smg&RyFtuZ_bx;-w-BX-Fy`%tt$0^)zS4oOD`7=gD%AzS(sp?@Sj;%53PnwFU7e8c(2NmAY`4D{k+H1<{V zx^ctrx)zlsodJ893_VEJV|=#r&KiJuZFYqc&M9c1|46XjAx$!AU?-_9CVR52lV3#` z>aQ^M=f026G+iG1Ze3(pRB-+2`K}&HVEEJ0!%379R?G|NEmuwV5XaTj&4I+U0Rct% z4<~;HeY51D5Eotv>&7&Ah3$Oat}GpKm7amBMty427IygbI_oWq${IVvoO%x|it{65 zGdw(-G-tf&@PjDC?FnRc#!vSW1F&=Yp^sU4Lf>@$5Ke7Zs1f#DdrIcyU0MUTVr-se zl`cCb0$ruV1L=0Km7Ty4I0=#;d+~Fstz+I9#!PZ^I8^@z^?oiXs9)46;aXaM=WMQ1 z67S6uriLVtrQ4P_!da`9w_e;l-7C&3ktmm>;yLbQEZkN0O+=iw%2rTi9BYh6@e?7TS&`4jv3! z={lByyQ8y{dvk%|fqd4=?J2F58|R1H%^~PK#5Q3S=e-llwiw~qv?kvM`};KGuc*>g8stm85sRu9h2}Rt@QmJuZf3&zmH#Hmi;A7n(9J z_8>--#)>2_ldMSGk54+=8}(;0bOS58VP5f9?X&*}YV<~b!#U*xN^E|Us+^FaH_%c; zB7CJtzFKu2%|5;ug;~qDgyaKF+4R9 zuAHUB;ml|2yf!@b#(f^Yd5L+SCIgXE8Zgl%mXqE=z2+=XDsuiptNuHpo5_wTG)lr%@q!K=t928nWA5F69Z)nG4qsyxL6jm}g zU{_B1X{kCqCjyyK7O5HdGter>xNb@$gfv*@n`kVJI7rSug%Qe6a8lnPm726fPn>tK zafrkDk9uo)Dklj1iLGs*#Y@cT5T6NA&9LQ$ac2eehfJTS~*^FiN6$FWoi zc3_R7dBw)zjcRp|)7zcLvnUC{K2ef`BfE0wyy)Q7@{ku_F9lMc7zoK{5K0mqdqC@# zc(aU05Hc3yIvfy`Lbxt(*+exQ^ip0by`StDdS%q2DY<_uVYl8Kl9!&Jl9f63L@IR7Y3%k)~n6`R$kzx1I)LcdbyYEE%i-7;fllHp~2ef&P2^ynok z;(dWj&xA7$Z#57WfQS4%Ub_c2_nT))1p_99 z=2g#&@JV#*u+~VclDL(=FUP5gt#*oT_v_KfhDyiBpzN|_hLTWoO`lAh@FprlD4Jdx zhs^NWoNUc7=JrZDYo~*&7fbZXur&nF{Kh8mzSIDd`5t17%58EMZ0ynF;mXNgO$6!T zhVNDe(7iY~!;qhagOWGs!&@!-3^$Z`{c_s?D&N4a;hTk|7Ux=%TKv9>ezLF|0!ZLv z#bY=q#J3Cv?NbkaM=d;M=9Y06SMp^aER(4P)o}VYuSDNpDK6A~{cMET@&i;dX@`pC zuNuS_D@hC+o)OV)@XW7G)LIg9`e*l{y&r&-|SzoUPTqLj^dl9*Hf zCeJ=ocKLhE2D}@6bIZ`-ApPEo3z*7lOUch7mLnJqkOmG-qmwO)LTQz zoOXteM&C{#?$~&3f3oZGmDy~m&$oHEFe*x`DFLee0yxC0YsN*LL2=l@0<^m6b}0C6 z>ux33J8SHwc@BHFann+g=#WR{5J?DTSRlK-`R4Xh)Y@z?b)L&@JGipYL3;kG+mxvk z^Vtr12t3#>xgKyjL*%|nC~CX~qD7ZMdW`sr)*H;J~CSLj0}A~$tJSsZ@W6Z*Prl4ad@Qzs&zXIfE6 z;eFG?%B?z@K>Vf-nHEY@B+UGBtfA^+cD;3LLsyvW_DflEX47Ei695kwx;k5oue`?w z=U%bMXcGLJ_>?YxKWnzW4+kDS25ha!+R=!>@Y%$#sQ$iJ(_&BvYF9Z`#1S zWs1r>fGqMP&MPX=y+mA9hWih`9|)I>JlC#A)?Y{XRfeT*E8v1+sdibZhprB<)BhJl z=hzjwg7e+#k=`$-J3GuHM_;gIjr>Ygt6qh!8jz)i4ApfU0$0_2^XX4xtzk}mWFP=r zUVd#poXj+1Q^5V|eYBx(8C)q)u}U7mVB7Cp^dGC^(B2A>xu&s`2<=qN>WFgLQ%o=u z*ThQ42zFDIn$)`re1HzJy312%8i||cl7(>Sd{!lS)R-~Yg44V-CPcY25)?nwgE$TO zkDJ9K1UFcCYWTIkI|)eg)XxUh{Y!#C$jQh>o|Z6^TI|~fs3nXtG2w(ear&s5t1q*EuE5h zdnH05V@Y{;34Dq>Znfs_~dEqu1gpI+dsbAad2X@GQu>^?u*s zG5y-)FLFM|x@0n$xnVsg<{!)HGurqcSNZ>kcTV)eUU?~Ty$^O`hdqI^uVyj#7{D+R z62TrBdWxQwSpX_f$f93BfT!$$=eN`y!%ORXLM#BRWH0K~JL4<|hy3c>20SkS^MEd< z837%!Q4_hCj;-n&y8&rMcKXUQTH7h@@K2%F8NhdvIpD80yaiX1ifx!3d4ITeHjD)t zbuJHLSKYYlPpp9EL?|zo-;~N{C`+Jo^JS0q*S!^6^E*P7R<%4zn4(_^j?EssE*&Lx zUfexbRc!rU7QIydx7{N}jT@hIQ(cm5A?zF9PT5OPLd)&LI#V`H7AdnCoNFQTV1eEJ zDKVi*fnV*_5UwCzFDoNL>3fydus2qIGQUmIAmv&C#7gVaQG@{8?lj|ioiC23D@&nP z;FV-}airUxX0fJ-K!OSFpj$^B2j1!u3> zpPzXrqLxVIqzs3+AhS7Km>a!#&}s8Wim9o28-p=r4_I!tC`1?@1ekWPv7g-5s}=$} zW6uY~QAHG^A!LU?hrpe3cH4x}x}KL5svR3qyd%fe4=%ZhoytXqOR&s@RUtSmovEgg zDDGeLRX3J%R-O`)2Y&S9!cw0AJPTm*F)gs@9=94KdVe08x|nB&`OWx7LVgZ-uMbxo zv@qz{CYiTUw4HHOL6GwCywwyZ$9NL!S0z80EV!(64m@V9!tFOP9Yyb)PHYT=2bHN} zH^tg4s?H0Z^(D{_VxQ4PFi1R%fLbteN82fT z92h@-<$7xpez(RWrT&UxO|JZ+sabq#Ti7FdRAC6eNxX6iLXT#%1VIS1n(M>bffww& zvXlsqB9ir8bG-9Do+)BL0E=Z@$pOFqJk!mpHaGUT#lmi_HWt^_XG#fj<~(^!dA9YP zEp3?m1n5W71(wZZseSNxaPs`bOGb8i$dNRgRjmE>0%v@|Z>y%ykjx3*&zWQ3+-I73 z;H6Pg*R=vcg)%hz;{hT$>$ha>Cl=z6KQER;)!=FKs{u z`K$mUJgB=MDQUg=7K1!1oOq0lZ7sQ*%g=;fQD%a!m~OaynGJfG@TH8vOV@*!miJ+Q zSI{q3;Fv`9JJ7H(CoCWpJ*)mll4)*`)Mr0K*n^LuWgPZ~!_xveyS-AUTLqKVz5-n=W1$;uxco~u+|Z!mTocgid; zz#>|2<(m*PQ*H6Zg*a@;f&tfG``l9e>u%SCmsXr<^l|7jB+WWx+rVOa%X#pDHrhc-qY7-2>Ub*VPC7-<%n%<7iKN>a+Dak^`Pi6_ATq3 zI_4LEWpNnfNt$Ey(f$#=MdDJ7faaiC;z2=A)Q40?*k!ekzz)!Bz%kLO94@VmE6?74 zYjQSYyg*g7H9VK%YVH>LM37>4k!HJCR1JHg)-ljH+?^@Y#f+a zYLq9Jbpjr9v$y2TE zOZ5V2#@0Q)u(*6#g$`V&FZQTOQgL{U{E8d>ZP@YLkP>_)zY_NIn7H}wTQx0mA1guC5Lm&d70=Q{Qzwn z1VC7L0rFa?cK#XKQVkND9!i`&-w&n7H2lG4R8F7Xuk!I$UhtmBrrw+f)Pm&?P2R&w zY7HZLS6VxTD-rke%*>tAXsXf`MfOrS{KffQ!W_>^DNmv{KgTF1+P!b(=V`2EmqL91 zaCiSZ|8{ly{e47h8Cx-ez3dI)49I8HDb2E_^?U#Kyrm<1FK2UmVF$`jX%DPannqbF zr);Nx=TIyjVeMGvyj*-H#%rN3S0shmPeKz&^wVHPS^!+{&-)1|^ z`^qWoRQZl_wQqwbMlb|a#1Q-9Km54jg8iTR?IZO6Ai{uJ4&W(MI7_X|m$AfYG|6n` z&`Z2>d9%>zxmPrkf--jhZehC(Rvu$!&W<$q$f2l^kNe39RUN@zW z0C86rSK8U&n?^Ghwc0`bHS|wAJL0WIA3sSzvIQeb%WJX${hRB`)}C*|{BE^UCGmr! zF(7D%+&45*m-CFYr%v__*tE!-J8VZSHk z5|cIW0Lzc#6pt(IJ-LC5=7E@9P=V(PWn+Yf(LHNh$b+SP!gC#ucV8=!D1amSPQ6mo znPjHepn)LNz+b=onE2~n$3}$STcGktHs^E%qH!{GRrs2B52bA z!2clo3Xse%w%%2GOUTWR;vZ*2FEm+7S{I_)pOVHKsfRu;TsxDC&N zV@Lb*OYaLb9>R^r%<+ z86dFTIh`|*eS5U_=ks9@2W@dFL;kGa+{C!;YZEQ&7=&GRQ zVYL(XlP8J@9Ug`TXQ@ulNY=f6x zHsp@S_&;L1jt}4$*|W!N3y-3_9TDXbOKDpUu)?^cbLqU5gs-h09yk`dB6^NzPmN2h z(4mR3Hx3S?6D-LwNKzgiiQ9ZmDC?Sfr^c!2i9ALIKzeC7xup!h7@z0gSO4JURf7-1 z#yF+2{A0;mJa@M|(RPXxM3sHhjlU|dSMVx|euxA?y2hl3LQdz`>i3jW)i~$W|G4dM zihc<;RIx+=w2Vp#8G*_TBpl7r8y{!>wJm#0n!z@AMUGgH6B*Xq0{hZq^(F9a5%fm} z7rUZ~}4$ls3BlX$C3yrU_VaqUzD znD#c<-H=2*sm+vPemF*wDCJyFasD)#g(G8-q_59zk-na7%X2W@W}~LrV?XsWAakqS zR|!`Bvrg{Tm5-F2CJQEM`dZGQ4{y+?VQDg*!n$hCXG{u|k!>06-gDpfq5bD%r>&h> z6Y-1gI2pc`nYfGBW9+q%nA^)Ml3Lq4THWXKpQ>?6O_Io?KZsdC<%=Wrh#QX*)2iEKDikCgh7&tnW zf8TG#=^#p31r{>u6R~?*0rSLGVEz}(b=`(5>Q7t*!`wkWoA&p&kXubXjZ)M=& z_LR*6VX-&uhjS~*vs`L@c;q60P89iQVUN9RSZZ2-NnkzJzov6Hj6Ua!3C*BNx7N}q zpI-E}N6~Y2MjHn|0s68YS1HyrffMk)Pg_w&X?rj6Smzhwd(bsIgMCao$t}%@DBsoe z{zPkCMY|U_%cbIw2vtv4M*X4kNhVZ z@E^z*I=+stc@Qw3=Sp{eNM6#4+Gs6ywGF+X;8T98$G7jzGgem-X1s zZHdQ7R;-t*uqy1q%)#|uQfh%QL6IBnll{SzY6OQ}{nX1(Q2?tV4V6qAZT-pbXPi@s za46?U{T8M^c=V`hb;^A_0;QL%iE^B>KPQoS%w>B=n{XEf&`ig7EetL|SxD1PzsR}! z=s|`~pg3teU$E2;A8jN-HLh42zGt7dN-R^XnzqK^!X&IV$>x09N6xVg#Ew9CxggTTREXcN{V4sdE+_`+``?cB+9Jh35&pni& z+iY1+{x9<-U(p`_Lrv(@-QyW?&uKvnPmbxeKKL+45irrNC@x#~;&<%pd7bq|VLjLn0?tMs>;M1>A}DS%lWB=Kfh20zsm5ezg$ z|Bm>{0W+2xB-m+Y{22X6y_w}x_NX0AW(m^|-rpo1VWLRG{RC}%BwTu@Lrp46iUra)PA~T=~O|!-5qn zmmboSwEEn3CfyFD6_HbXNOm_8$xTE@?z@sbM~EZc9dDd{tPA z7q^a>CP_C}N}i<@HSvAhCm{aLyzwTnEZ|Ri?R7elrr+?Mb$tDLxic~_13x`n62r@K8w0g&)kQRz762YXOrLm#t4EXlE^{^ZDg0HoviFij+B)C$oiB9$up} z1Rq8AUlLd@2~ZQ>NZem$o^4)1DDJcCOPvp0&{mB~X#e)21e!}G*pu@RixdpE-vp|wN@5{K&6U(*@FfW9XS=tEbVM48Xvt=zgkdqco-#NWR zPU&9jK}h9KPtsSPuEC5TfBPDfQV30^P3~7?gmu%QLEp@Zpoffy^k!}ohuc$3+f0mw0?kqbbeh7+DWKE2Y5rvB$6-{3u3xu)Dr<7a|{vV)k zaTi>1NwoHqF_WAYs2~Kc?!;-k9~JHGWchDBOL`wGQ<9RL&Qr9N7D`wY9wx;93(z1C zqwv%GMZ8*g>mK?V^xh-toydyS*|y~D4!yR#!!m4^|Fvwo|FvZ`_+*It6qm0)~r?uBtL@go|CgUPb4rv0@u(1rIw3eV!j4(X? z9rOfs@GlwzT#~^5`V<+=xI=-PXR%m_=}Z5w-LTfVAI{e$JEq3+9YfRer-+k0*t(aj z4<{_kI!gx+2?xa0rcwd-mZ~q|vRr%<6`meWWu}*=Y}5w>hm#h?U^3>+WlPA7CD*!e#>LLpoIpttdkGY`Hf7>C($Q8BdZL#k2X|!D30* zMwRs!2c=CnOcLEKi{OrB3lCHNneRSfb3lf^DrPf_xmTjA;@_9a&~j>~-M9t4ZqwS( zS~7!;Pv*fA;BqE_YR2_7jHgR+W^D(HEIJX+)`R`E4v=5=KZap0ZdO$!mR&5h_|X9^ z1gfO=L-Jq{KpbvmWnbphtZ`3}aNV0g2}}1s5Rht?Roo!W{Hfq!tLh~YP*Yzv z+|uB^^gt%yL!1Aa_B3>lB)QDS`w13pO{_j(Ka8~ahppE*!^*RO0NyACfA8foX{Y^} z>vB;uYW%Q5d*t3>Li#GGToI`1WUU1Al z34p~LF#)NAGM@$w$L#iA&}{Ewc*mNXdVsyZ(^|>to8GmNc>K!5#k6Ad@F-cTyOCZa zhcUS<0${Kq@R@rj1m+6?l#Wx*v$fE~UlV=q+o1V2VN!ufr!pH=tL#jqkCy7A%4vZT zau*ig{-g5kQ5KWNf~snFr!73vYsYHZeXsCvS@=}tyD{LADyY}N5MjufNa?z@3!U9X zms2K_^`8(@H)~JMXf69ct6-nslM6bN?6B>|87T;)15h>v9U*-Na534sfSvYxzv0-A z&gGQ*TRGGF6GNFntXrA?0M)39QOCy*7xz>| zExhrI@a|bLFuxu-_eypXvb(R6^%shKIh1s-vxFoyLguDpdPCjx*3b_gr?x{%@~R}f zu!-~UOC}dtr*S@plVS`ge<&^om*0DN@+P~o)YNWrG`WD;RGx68aUm3jnt?L#)%fXF z>fl>#na}~7<22h{qIM5~*Z^&CVO1S-zcx_rPARUrNbGeL z7*QsULBBbx+q0Ufojx3GcD-{NN)Q);b1?I2TW(T<+>|A^?v4=c1!T!pKL%LY?u{IX zh@Gs~>t|`iRwy)wnHygZ897LtQ(iM}+caz{UCk0&x%(MO(_jJq)$tc6xAmvqPV?pC zhhykhoYyp?*|ui^$6Umpn(|XCiHDAv(oU-BkB%ZQs}k5+s+-%7&sOyS35{DrcM$Ek z&)?D5JTvv5RJn5meyPfm6m)L9u-BVRzebIrG27ckq;&-LhVKK}dX(WE}4_TmuO@sJtLpm~-H1{(h`FNDuI*2SA85An%>o zOZ2b1`}CiKRuaxQke^zMye=7Ncxx~?cAJ8I;xmVg+wn*l}=|ns}m?7tP zL*i8^l9`)*a9C!xNAgr(1L~u~{TYOgrMz5X<> z+%TbNiy=B)m9E};T|L4@tMhH@*uouSwE)`yd_Wn36KGpxK*O_uLI83az=OHyyI+`h zD#}mUZlfPO5dQF3GSlWjok(+#*jM>|v|E|Z$p^SPUfKq5*cur6xXQmEy(af-QNUV6c^A4%nJUpk1WZbbBLYVgD>udX3m zhU8o=h`g6X1EdE@1-C*Uiefp5UV}jyH|}9bk5Gljgo{SA%Xzh5MI?|tcSSYtM*s9b3{pZ~F9-h9G_X8Y5J9}eRkS(&TH$GpuQ64a_F7Ef@rbB@u1@IYDE zt}qp6gl@!1{qH_dIGwkc=;Gxr@QKra>c%jMoGqj~&ODI!S2^S}AO8>{KD7=%KtAcg zd3b@zkiA#Qd(Q&)bD|bZzNIOyg|M7p5C{~@pZ$!4V1Z(z9>ljj;kJG9L3kQwKEyo~ zqi%Xgzu$%UyCr#I19a`=uxjqT$xr#}l-2~{zOhgG_hmXnf)$F%mgjK7W-}NFKG_6r z7bY;zK`m}e^M{;exi^d+Ftz4?$L8Xc`5U~^eN2(uH3Ew5kmzST+|3q)>HyE<;WdBUVXYV+5nu+4640aF8SyYq8)#&1x1o6%(oJ#fZqs59$( z6THd8+%U>IjV7w+(4oQj;W!8!*bx^$Iyayo-vA<~I8q6P$-cV4+{XlKkg zfA>ftchgN|rLlHit`3(xUwE!MQs6oG&W!7?Jh zoU1%-^`;vHj!{LQtDj|MacFIR22mji99&d#!sb1b;G`nzTFjBd4M-TFzh^7^Na2va zytp%AyH@N{e67%CIT0V+-ZqijEsmfC9Cgg$T*Z42T=q$rJ!_&5&)dFhQrVKOp6Dfe zRCEQtmmMQhB$8)&QHhPFXyT)5n>M+ERO)YE!Q(ge-Jc7hB98id7x$;3C`Kc&e6IK0 zeYg@XjlGYn_Mx7;`n|Hl54--$`+~3)yf8cTI~E6I%|$%=_FxXO+YhCwc-8+OY5y73 zR2OXl!>A|%_J#_GN*C$9#ts1l>7Aem(tDAXAPN?$p?B$>fRxaKNRcizKqyi}3rGni z^*zDo-f_P%zW3LA#?W7!wsZDgbFDS!+#Xv8{cB@Leno1x8P#m!@2q3Mqv_ba{d_<0 z7d*A*G4>{~q^!f>5JeS=r|XN3$mqY@JvgH z1$1wVXDs;1k`>V8lXbaI?uwLF+=x|& z;-?n9X>9_!z@V{X(CXjQDn9s+GE4>8OJblR@dT1xMdOhm0uYeICVfF>Q`W=ediV6I zf{`_cPx;MMPJykuwd^Kb<6{b`)pPJ8mdI}bZm&S$+BJWj_^!DO=6)oz)hC6n!C)&0 z4>%oG>el{2ZE_Q#yKS#XpR7~0G8L5F8^Luq%M_nZnNt4p!0&&!08&Kx|1yif)`sl1 z!Qcl)|I$90908rQzIn4gzmu<2M~3VDuu5H!(z<0kYJHxVj@D4BO5>btNd5PeMSz3V z)I@1`5a5s)T*9^SweaH0=|vf}8S{VI6}qs4EF(j0$>W)7Iw)=B!qHd8+Ir@Qgw0e- zB}wLT#pxn>oNIO=Y#~4Nz(0OC6)OOg)$=q0n(N6vWCNYQ)6yF|>OpOW9fcDwHKtUd zcs!n}*A1gZf#xe?2A)AfZNcbdt0WF$zJe%_akM(LZ>sve9e&D^_Qq~>0(Ao+U?0?Y z`bSdMd$+2mH;Z1w6k>L3-s3k93C=}SqtlJo$B(GBfFOktXkOD+rvD!zHNc3WGaY>R zeWSVL_|8`S71WcX4iQkE00FF*K(#SZW~6jss^JpXIOmMuS4)yfA=E1c`Fa}Y{J=FN z?!SM-4unoor~4h|n$;_`zSN6zp?^*^pTs2ukGSru8GBw2uC%;%jcZC}gP3jSXVHJq zfyXVrg#{$mpAj8r!B`-g!c08;hG~x$2tC5g57a6C@azlgS^>7KgF)MotvBOI-@{k; zg8ZMoEOFG0?}qEIuB9&|zcoJlLumwUAQb|TgrsP1cKss_bN}v@o8_wbyNz8HYuF7> zSG9DOkKqizXxTwXh~MS2y!2O#{jv2Oo@0&av;sjOh1RNKDZ3ez1CGPZoJaVnqe8bp z1vd|`j)zcpQP!m8r+~T@=BIr`B1-rGWaxh`&FQu-FNIt&Kj2PJT8r{20mZdDYqZ5= zpIDp;-)b&A`Bx{+{u}L`mW64EoVz&0LK@D|4>%Pd7VKT(_D#JcB^*HEAgva<~DENEnn&bJ!2B79S* z1z_t@9-VqzO8`R%9CW)UX)~m6@VeO!SnoKG`MFzhYg`JSLGZWN_s7(ERiks8+Ql4E zJ?ZoqQD*zg@E1mxUBmZaTq{rAWZ#aRL81)ixSzM=xK&YaAC7&b|6ue>k{jwk+|STp z8|P$pM4jI&r242$vluZQYqkgBu96odC9Q0O znF#TKw?5Cy^xgQ76mejy@zJdNfHbrRs})s;4p8(G6>=>$#+FZ4R-WOtLy;|8s)QXL z8|$T2tE}A_ReTm4j~k^vRfhK6>j&V@P%w~p(51YbT>j{qg>nlIs#76N&IE2I1RoLz z<=NIg3R0FfX&2hD3c|J;K6$sL(l=`cAeFG%y~xEbQ9`?4*4Lsgqv^`?dpSxC0R7mt zk`u3JRO}A?5;bT3{Tw3~?ne;5aK4-Cgf$3buQZQbSXar)ic*N?7{C!&_Yz!GltDiJ z#HMP|;uH2Ui`MN2wnR+(@)eZ{Sfy$0b2}>L#xq#k_KVq~M%OwKmyE@X_uKO+F)2~!IJB^2`K5V4^BI9MUz8fSZ!t3!*LZ>Zp zv8-tbD7kV4{9*$&oZe#rvkHIYM43COz_jqu@`o`LvMVlKo&xm5B)9MK93L9f*2|3) z{@7VoJ@yRsEVh-4e?`(~6Geil$Jqz0#rvT@DN- zE7lAM<4TWtrkKWWmnx1(2#r1r8238PRb_dN@(o~3R8yJtK9^0}TjU&>Vif<7EFdeQ zr@@w~!&aZsn5Eik_FM+?DZ08N^#{xE9NTNXQwMImca~PWPo$jh60?DNyVdhy&m51gxHw5=uSbxw~W2c&De8gB+oE!zTRnIZ~t zg4)pLTQ}flhD$h^NSj;p02f}~(TDl{nQ^e)QYk>Ue5U}jF4<@Z;No_<+CJePJ9+c!f^m}^Qa|9>cxt} z0BPHoWY&=oj)1anc3ln|{n?i|+1z2ZBOzm&fEhxhaM9kn8dYH68G0p@R^Y1n;DJM2 z%1X~3(h+eF?M%mnKQUAo+c7?Izg@wGv|$M4EVrR%XyZ88?Q7_i*65DesQE`K%I$xh zx)9AR3u2kG7MXTacXh^mEu0UkR{H2I54HZTV5NLDtw>3 zbk1Ko23AC1rzv2*Ka+Lf+!XpS=}EdnV`)ZX;>-;A6tp6?HhnKT7;8Q2 zNZy&euh3;0G6|#BDRk}s(m>afb$fsIvde#0*6XQcGcWHKQzIknahqENhB@gX`9clS zd?ykuQN!vvDI-CNCOtde*4h$OxbP7>i~>7kO&k;P-WJFt*P|&#cMnf~3n)@FeJ}Wb zp%=O!OMtgILiemU27%}Y%eg2VI}3_XnhnUS*?NuPpA1&;RzFS)ke-cOd3K?1BM-E% z+Rtm65A;S`Kk{VlwN#>QJ309_68DWupXTB zp+9>q2ix3tBUcT#d^*G?Cx4}rY^tf@3tpf1G}rEs12ifo0p^i~oWJJ?^(}~A&0uOK zzH(UgtI&q)>CxB$5M3a@LHcV%+I~&g)_bl-KD|J>@zhpfEtcL7p)=CXS-4FK&LNAe z<}a@>1SnMLd^e3l|45&I)bQ+Os@1i;hq2RlGIxI^%Zu;zIcK_6*j>|m*X8vJDQZYR-B$~5ZUSa0K$Huu(Le4`F&&P5F>=#lEf}sP z$|wby*-&+BR{JcdZP_Cf*19s0WLWF@Qf*Rb*k|3(ET0BK=pG>PPAvr9_403j$k=^B>0Pwyly^?Y%VUvcY+;lFEA7MJ0 zlRUm*1vh;>O=qyOiiJ1U8Yj}@_LVEjvR7rjJnKfj7FGd_zF4%tlHXzVzD~sj z%zS`ZNC$gDh|dv-q8@=L%6^Ro6ovjP3-W|cb!xh=l%!nuhEP|HtKlF6ke3q*XVnzSE@W0Qoa+quD>NnUI__4-;kPEgZdV2H$1H zijj;FjdfhM8iVNKcT9BgE&psQ`gTX}`zKFAg=e^iO)6Y?8*yw@g9;Jel_!JFa{=3G zL1epYgEjBJN70`MWVU4DqTS*1tL>Gw1#HAK<=2Z5RLA)yXZHELPDBh=W4YImw-9cD zk{dZjr+(r;CIG^BTvXL%{Ou;G1zSYZIlh>LWf`YQAxTv$%@H|W^Ry!M?;rO#oRcsx zbG_{~gS@wBPZ!GLXaAA$!wy90iA5pyA~_LjL~5b`nlSl#5POl_p>sr_(WuLv-Ake0 zI#%BF`gYFNL@X*Y0Txd{>40;9GBiP9u%1mVd@iMsW@6H`JeSqn)CD;*4SN6yS9>6# zd~)%-M>}~lrAq_|L?msU+pse~ZjFG0W$>arKLGT&v@jHTXDqv_I&J}VA;4~&pAvZ| zfep=SVjx*qc%J!>nx5=TQm{OWzrqpgijFQd-mi=O8TmB;F9tkOx-*pb+rrH=Bx3Jg zKRcBV%i#>hSWW6u&EKencUS!PejXDhdPCo*<=PblF8- z>&=JJMlwZY3|p|b0KLiiAJC!b0my*!BN4N*$$xW$4tuZm0+C&BsBc4J<72v!JykhE z=RBhDyw&=pe;;+Ad#rKjy?b8+6DzORyfIV%ve@`S76+0D#evTLw_vn?k*DOe-?eF*TBLd%Czs%jG9#fgx}Y*QC5H)_O`zmr}!l9D!40&=E#sD+hm#BgLR%%;`Nr zJwb|vLLgamw>kUJ-u-nW{QM0VJcUM%U|E~mE3E$O^xic<#2d7(O^%$`Y62r*{dMCv zbWS10-gKHVq^`o)?O~B<&;{~v&8}PV>H9i<@^}oj`mTJfr91nKhO3UP zi3*&lD)>$Mr*enK6HucXDmO#2nGFmR)e_p^DGYv}!2TAeoZj=upR9IB{4)^}(?n5R zYXLYSh6PG=kz9iLbx_m^L~sf|eGfGmK)wsG4I4rnFQC7!6)vb+XJ z>yN|HC^Qzff~EqE{1b!Y%mIF3f&A<+?HdiR;)NdH-0!$h?1K@9UZ#1bSOs{-Qm>q^ zexpa2R2vPJ)NIW&Rafx$A5Wc4Gqa`Q;^i7au6;F18FIGuFSga-O2xV}yZ5>FuRe#$ zszRvd0ReD;*r(oAf>TB4XMe2kLxf(qpZ3YGiD8StVZPZ#q~2d1Tm!AD68)eQORrd^ zP9b*KX!q~1HM0n#QetWB%bTXQOs~=B>YVcBuJg@W{;1=-A-|}%zx7}zM6-rDv28DX z1Zd&s{#h?lt$bp3Jy^a7K{edR2#nwi1i007wwALh2m}tS<&Uqw-tSXeHjjxP5)f+* z!*BlD0gz%I$X*FcgN$X`3`y86CB8_!OSTw8Gr++Mx;Mo$ySNg3(fuCaQ6<*O|6*GI zaoHstho$G88(e3*wHEM@<<<)3&v7;#g)0`*2x{prknkSUS3ljphFZtM7+0_`a0P`R zj6dYCRGX5yb)4>-rcf%~+8k1Y`y5@}uHf7MTbTK7e89R{k&U35b}qkd!Iw6f*)_)E zFF0uE4O%@Mv{u%j|5utRZP=4q!}F$>sJItSBej;v0>ItEB$=l2Oq>BXZTWUrvHa zJ!uLJ8yJ9`4ZX?p!)?`=_3t5My10pQjP3!|ROXmSU#a>lZH z4oie0sQ3%_QzIrEIHWy$PA;nb-X?&0r3%^k8s~BjNWzE(EJ_#OSXv4EIstAO^kWf5 zpL95`4X2)n;)}EG6}^K8kNg<>nyr_YpzZnlGO{^>mosh6Ijkb<<*VDu5z)v||L^V-Z zhAEYRA|)?plbW`9VjeKi5e@=HBd8aOhp{LiqI)bJoCnIGJ!u{fhJx|Jsxc+6 z1N;lm`>VFz>c|qR8>6)A1CMwBbY#!Pixv>BM#u8oL$AzmJU>*RskoBDrhiyaq%-!i#U}R@;}7He z-PHc+srSFC7RilNa__rx`M)AfMuksA9Q;Ij#gdj}~IPzS)I|&*k9~rwE z^!z9#J)Us+X{+HiYGJ^V3lkCYRY_}PKw|eOiC6>*KQe9hU}tW@SfO9Cf?&BphmA1V zv-KH5{JZhh{#rKuwkxoq-_K~zyL6dRw9%oyR4~KEvl&uU%RhyP490+xl-OAz|e9y_S zVsm$c(Gwd6Fc0H=jT4KG?*+vX!pOf*2O|deenwhP`@X}5;+${-8-k;G}0FY(srq7!3(z6pN(EZunhO_Bb2ZmFNw4MHZjvQh#v zoA{rVR;T4#;?hgb1QRhb5V1JhhqE7_ne{E8mBk~~j<54`HGdI4A622*x=(C5cV!i- z`O`|;4ay@$oYc?@Sy&<+pw^sv=OJCm2{`pjd`Um&Q3W1Eh}7Y88ZjlMTNTg+oZap8 zf3{lJ968X~j%P3vzHevs2T+^VJwuyTYtpLl7OFYZf9E71x=YMkUzWUg z-otTIPl)mHMIZ-ni-m{c18}#xHwK=I2hO7bU%3n)vk+{YasaAXaiiQe1@va~SgH)A zNDhb~F!a>K0f`q_2%2SE&rb>YkH@!62yo-_dtyGg>XfT~BH#8F%k`*N9?!icX__o@ zmA7iF4=zC=^j5`d1k$NHP*OaB6j_e=LR(GV z7#5pRstx&Xd(L+wo`9n2hOY5Xc_D3OC_3SvzHr({tbKd2y(aH%5>*LM-4`!k?1e@Z zQtE3C2=?L-ZJW@O!PWfQQTLqIlM9}`d;W7P-J~EDsjTGA)Wp!^2+AMvDd?w45st(O zfdYmK#5>Ky#=73mn!GM{z>NGd&%QVp;7p*w&OcXN(T!PyCvVJ`L1pJ5kI!>Yb+L&X ze=c`tNV~lks_Ur*n=Wlw0s_q_ovg%83a)>P2F2hd>y zYE1$d`mBksb=pj|>*xhLs0TGUUR(=1s0MgCReRabpoE!*LDgMsmQY1PRE?>_>YBeeksH7;@I`JI_b`SQ4%0B#pwVSfI(Z6^6#um2>Z zQKz(5bR|?H0{@^X;jl)MSGD9RJj*$(Xfrm>(sZ~+Yzn^X86vj00h^zwVeWuRlqzYD zw0Yrwa(brZ##@_fepgs|LCyna7iRzat3iQkt$bZ^jL@sIW`K#XciE~kZ}d5g42 zs_(d407ZIUH6C&PA5;fOr?&s(5kPlE{a-!{q}Yjoa}3ooAmityqYjAf4PdPR4wq`R zl4I3QOWjp#M0lE&I$cTfA+l->^d^EM8lnt;CF>TKK_S3KT?|gcUH+ZIYbJASR9)$5 z?WG5zhx#+{!v}|Om-#vD{l_Z@|NdfV>5+Y4+d}udY*xL@#gKY-730zkXVfR&dFg17 zTH>6hn@)Y*np5{1&~8`U)oM~h!PJ?7f2ZcoyElOy3h1gP`5XihIU=@OxYMhmH4#HeZpfTk=|W zQ3Sq9f=#gjWA_W#hHuZ(Cz*dIoiPJyuY%%`7l!moX)~!=Pycp2Z#%AF4m=RlzH$l(ciU?|?)Be1+T7wU^>wRc8%(pDt(SkVvxJqiL8(X}U z*7iulXX&+MtOM0kJU!%M?vQq$QEcIn5i?ySpp5KWv~+Z(CfCDH$!U;mTs49H;6&p11uYP$-n z9gp)NA3*ezXmk$|0ih~puBD-OcAPM~PGLP{-gNl(13NC1ZmO`_zWM9%vpdraE7qQ? zts5uQer`_^qojsah-f(E5>6PrCo^@f?6M`76E(r#P-f@rRN1$`)w}$&P7T`2q4xWI z{$rE2^_094>SDE5q#3OvB?N%4zC~;thqo33e4`+ZG*+}RuA?3_sguU_$*C#csWfrGT)EvKoOMj$Lm%FI!l@e0#J$k~VIi?|cqLga82CE%lpj{Vm z^zK_stjDR%_7mT)w#$%<>I4@xVqVS%Uk#`FT!rzJa7}%iJ!A-e{a&}tK1|I}*O&Lz zaF?sQV2tRy%Q#5-aie0gLE%nBCG6tL1T{LbBmC4J#&05f?`l_l_MY;)Hb&%-E=O&Z z5p`&cs`|@K#mkz*mTNgPC9tpqacRq}T7 zwRG?Li2?D&jTXnE&Ea~)OAgg75=g)~)gjTRi=X0{kM4gkh!cqMuJA3TeXbarsUFmb z$H+xGk7Jz8F2~+*`w#MPO)nQr7a5qz-;{+R(x#Vf2M-<^7#J7uE@>xj?nz_zN|7)= zfToeh3|p0rJlIeOP3G}mP)f;2Nj6@~C&j5yQL36O)7@nbYX>khh{F{67 zIn0C}^fBSUP)ns@edVX?BOcTRKg2yXb)_8jK93S|GPa=C574^tx;}ny>ti50xSV8D z5TjD|{IRw(Bx3_}&)(E|Yq^-g>xGJk7ErN1+9QCTe4H-#eXY0!9rkkGlS%))frX9- z1eeX#$J71aZI@j8>*akjYHlC;DUN(?iO;UiQy5Ofn{E0IHky?bBEk)%*&BSC0G|HPR267$ZT)c4s7iui%|GRL$rr5&jbBz zZ^cH$TplI!waIMvGsR`%ztIvXc;cqe$FJ=Jb^ zfK{QC5alvoXk4Sd*Spr>Ntg4D{W-sxA^hh3KMaaE z4y)eQMv~^AJic1fDrANKpw@?mIK#khRB0Y^@+;trZ_VcQ3F;8*aivM0WhG^ZcM>>v zKOR;KlXv}Pn0ag4DmdKC0X_q5Xw-LS%~vj^?B1C-e*zjYhjpGkUHAR)VIL)`BDFtD z07upNVd*Bg^$YRUaDR9;LgBwUprt4GinhVsJ1mz)Pk?8xj`@F6n#g4aXQYrbnHk4? ziAb5-E0ay`NTEtJYp zTE3$(LYjA9(vk!0u=EahaH?~hMADh=+46A+OAe$}NAX77V|696seD!APQTICTKO8_ zSwcsr@$)VK)>0nN^mw;VLe+ep1&zQV9fjNm zaF2Wfd|AyNN6-A`Q)j$0_mm4V()w0EEY9Qg68~k9QE6(422Xn78mg?R7P0i4?kpGi zrNOqI^qR>wC~vBujo|3)fA<`4^MoUh@RXlB{e#aNe|Ok*O(~0`3Rrw8vYMnB)4zMV zr{HOus<4Cm1^bVzh0PjSzT-V~E;>#%+*&)I{`khJg5$s|SS$f{JwUoS=_QTtUDWg( zGXF*XoY?4bs8f&*C8Q$i#!C;eX}ft7I8>ZRF*HbG`E&=;pmVF1X*bS@gB(r9@03H~&!x{?trfnMM%$=6{il<9LGww}rJ zHkhd01*GBQ)wOX&0t|!3n{UrbG`=DOO9WjC&5(jlCf@hBI@8c2cb;RG$K7zgHE9CJ zMx}SsM!5u4>NP)l@0!~f%=&hPUs$bo77}P!dI}~otqp=5jz?Vrx}wbv7Bm@+ix6TG zr|j*gpGrzH>APstbn{jF0jSO-VgbD+(G9%Ev>%W=$uqL-tDrQ7jE)~{Bp9l@IJMzN2kea0%jNi@Fm2S zWVk0lBko9kPvX1>eH%5$vo@&@p)6b3EzGnP*~J5f#e zl+GT!(1BU?SN`ewJC0ZJAv0m*7l?njW6Pc#srmES=^Jp1(etc#mO)C2S`klkh{t?0 z$sBq(>Zd(4%)c-NEK(7lRzW6OrxluEs*623;f~_e3{{!Z{qc0YV-(TD*zdGQnDrP3 zK0qn$QwiEI?Rs#TBOH=9ae?*EpY5Z{in>b?;0QUK*`kXannZUls3gB?nU8z)eKx~< z;kmzLz}v!)z8SERmyH}Ldj|sF$XF!#d`u~D;rudDRaMlr)HQfFWhyc!2vDds7 z^I(OjU=5UmfZTvle@gIvU=!OjD3CV*=~rcO+9+Hwh>}{*ZhP?9AM*3$Z@np~uAwI#8;7701K(?LIq{7_Tdr@4z^xibvW8 z#y%p8Zp|+-gJD^Kg`R3JIdNqmRb-P#BY+g%f>-u#Av2D6zhy&HYP|wehAB|a0Mgg% zH!z^ZjWkC$n6>)z`@By<<56%Fl5PjsYzO$|o-U{y3^yPyIk>Xt6MV>&nD&TIhY)V^ z{zAq_ir>|WJ9wMarbK(o=M(vGrE;>gxeBX&r#Dj=r!P+xEaK!hEZ{&+S8+txY3BFs z;4Dt+z9cNY(a*VGCjt`ie`%_n;I^NRM{tp!FKG{xf&CXKu}*qc1Z5^Gb*pI%wYola zlrnzp2gvI?&=)(2Ty;WEIvPKNJw+6{ArDkFt$;Z1P!2hkKv5Uf8Rp-=WtueNy{oh^__j^ggBa5Zg)JoEelY!NOeCmnMt8S=+ zXL#Of9L>MH>!n*&B5v1&7fes6%hi(ofGv*VBuH*#7+0iMwPDDK9L?jYBTbbss4Rw~ z**~#*Kb8|58Pn9meaV5J(({B?7W;E1otI0NXKK0{q>t@=`kN}VR9-*|UG+B_e50tx z_IbYO#BjG+^E@zUv0hR7y*{YLTRrgb7cMar}{%c*&!J04KF?ha*u*4yl;Ic`q62IKk2o8w1S>($n3>G!9{3bIrikw%3(`S(Md5Ts?T=@CgiH8HBDOiY*uOnfdsmf6Gj083a-}HD_ZD2;jF@4Cc$_%B zc)Jx}2I9XG&%R@QcYjxV{bLp_Lq4UqK*IV!#U3DvGJ)uN3(kR)k2oCCF?`JLTQ zR6h)Mdj)ncfZTzN)L|!&FXJb1)U5ge${`>J5s`1ITZippoT?p_zVkh>?w@p=>e&?F zdcD!8#_FtfhjEXblwEIYX{OSL3yjP0-f#K4kL)7;^nN0ExQG;w&!{~(wZuw3mcYEF zyk~QYU{rn3&(n%ZEup_NpdD#&mz4v4Tl0H|V>OB>E-+3JRieeILo-`?Lv@9QgQj)o z=78W2JsXV*S-(fO@9(=niGvf3yDvw3{gJBBShjcKFP7c4-z~&vpTDt6$W+?hZY$ic zIuWZD)ZXA1QKhUAT>)Bfzz(&_30Gly#J!6;`nD)E%8Nyvna@SizIV%R2VjOO!)^_+ zWq8EScmJ@=z^t!vV}y%3+5_A1H*6Zdc6C*5zcR1x-J^6r7%y!7Agf+r?VV$i&*u-O z>a8)VAL2Axo|SVfsM813pi}Y9a~vG1ZEPLx1)h-U>n!(%twzhbsuG?(bwll zbQZuMxYOmCB0EkwIJ)@C;xe9AHiu?T&aqb1>Lu|G+^ke3;!0v9q z5x7x5cp4~S?dkt~(psGupKx;&@r<`^#fQH^YA5Gj`@6b|4NrAdK|Zb}bDmo zqtv`F;^1|NA5(x3_AaR$BD`?g>mgn#-Q8}oA70HAPX9$`(@mYI7&#`a-AEn5R59y- za$f9n=Vdx2`WPH3h#u^l`J63FpszZb@Tzn@NZT8pJ`nV%{=RM=8@TL5 zuq~3o2aud~f-be=?ZkPXY8c z%%G%-=j@t7-Wbx22bCGzeu#^xq@M6D;)O(L__?UfCHcATKL4yGBWeveUavFsQU?v&(r5)n9f95uT zg2p5OdB}TmbY@+fbjgYj*hlE(ksA+inVz2W_67*Bb{~CD%~Y;<`)1^4)Hi=tv4CQn zDg>!|=}gUqqotiLaI2j=J(Gz0=Pj_QkkSnUU5|@dzpVGk)E0x*`no8;&$M z>A28QO9VLOa)ZQ7sWiYsv~8rcQ#Zxs`i|FM66#>NZE zj@tc{=emz9P9rU=5uBN16R5cWcw!m4`p`rV;A7lUA^2;)WO9fN`yRRCeTN+kE%_j( zkiSunnB^uPm2o(lqsVe&P5M^6YQUc% z{63TCrDzLfOR5_2WIh~nQ`hRcPIYyv4fQG*Wbbjdf&YJB)S@+gQ;#JnF)pi}%;;c% zErL@@U1w%&6As4ojhUHzzC8vzZ}4$tsmh+Vk}2-0bQzsT*j&T>^8f}CoF(t6Q-ceD zRM#bb=6S`b5l3%~{`Hj|P43!k%*Y|A#A&AVR{UM)(ASnalMXkY7Q1pM{{H5QuX`Zv zv4CC7DoI5LL;0`j(0rJE%UAbuv?72!Be;Io$T+9zv&4yA{dR3l#*5pNy|^xUPeL7l z#9U+M6YRHhq9)}^$imSiuK(KZ?cE7~?dr@@h3|zO7&%O)Y4^CcJ=ElV_Ri{>GOX>G zk@kdw=}b>mCQz3o=nr+dTt~ia)7f!f8#X*Tr^2cp0jE3Ipv6i!Rg1~ z6WvdQz`ogcJ0@~Srni?AUI!fA_HcJv!pTr(o`nD_IXxhdiKBEH|@&GMolI2WOwpH-O6Q_5bp{yy?Jbn!QUT`AN4wOK zwh706{3G}Rg-dNJq0s|uJmkV!_J-Xi{vQZL`#LsG301;+z@)LSgdbs{Suiog^U7}` z^Zb3j6QxsWzE_6LyfKAM^FY$d0~kDFz9eCm;H@hhKWt@b(Kt#ZAmlRvTzse_S-&_eH7PC<3ZO zLZQsz`ml2UgU<|{CrNU zn@|J*U&b!*j`~yxx_tqcrIcgw0Z_P)A2t28Iq@Ve(q|4iMGC>x>?oXcG4Vvgi~=Z> z?$tUmCYTYInE8heQIf2seldsbx*4($VN2E_ci@uG@`i_C|-@S5c&x3I9J@SL+2J zL2e_|cP*9a`@xsX@Ov=b+t5kU-8aO|BB}i*&Y>3o&M9S#vb-|(%JZHiLG50;OF=04 z&w~}fG1s<+^4NfoE}{M)_5#qFfhHO&Q0m3by45H7ng9>;fdDYb$P-)Xk4dD>mMzHk z4rFz79|V}~(^j^;I-Ha8s>WQ-hRIpwJK3tLfV?*+8iKUXig;D48k1$K_43~9Lf_B* z_1V9t%`U7d@o=fp+|0Wrna(_9k-9CH-B_{qDAhY-^H_5wEn%05f7cQ;V-{^m-;%jq z;^`T8f=1S=%=EY7SDeeS{k9Qf3z<@X0bnQ(Mn;hoHMZ61SdKu?a`oE0_SV_WNM@3x zNV|~a$t?crhlK^Au7xIw`nKGdKjn$oF!soz(y*q_bH5NWO!pVJIPww&^Lwt8;p`YH z6@$^f-`uhyl3t-y^r#qXa}M%IuxGxL!P?*Z{9#O!LY0rrP*QTDddI{1snJrpPWSlI zsf)2r@0$|6bI8XmCKCL%zBVk^fFXAJ@_*+AG@i>1y1ZM6(Q#cBjla?qCTM__g@*0* zlJc*Km%_9Q1>JVT4QB?+Qgx79Mud^`+rC6$K27;nPv=!!`gbLu&Srp~*N8GxY4R^5 zixjG9RXd79v{bwnG#3D^QmJK>ZO;GS_q9*+gl_1p#AQ&!nW`XV*_EV@PKA$QeCPru)i zN81Y(Ojnz|ZQL29C^Lad_lHY_F*7w7cuVBKa8}Tqv6^fG#Z(S*7w+me^hOxGHv=Z#$)t42$G1akBM&EVo8&;hdA3x7=tV+LcHnO{m znk=owy!7;08CIs{1awQ|IV?XwaE~JBOC@ zK9O9dw0@IdB}Upg&0Gda$N9lWKn8%kpu4{ersiHm&W~O08V#|Bo2%9-a%ZJF)nn8| ztx97IsgB{tO-4NMG^r*a{$DN%RglpTozO81QnL#?-c76AY4Z&UR>_}TjTpURzLJ(! zdC*XxIFgj6zv$$5+E6o+3oKkYur1ynQN2o?j@d(9dWG^=MjbU8!d`B$5I#0=(bCR<$hf!F!f*-b96*{5q`3XTxewYUb5?cEM#j%i*cUv(mZLwFyiC+C z@jGdeR+2)F(g50<(8V$su+^_dAyiC|EG$j94V>DysU7-&CtrSv&9$@BTNTr^OkFsVa=pol0Pg2v&SHMTp~(1z1NdcL{m<3C zwR)e+7U_PoZuft_1C%RVM???Pk?KTY6=U4r%}}W1gFA~6vl#1Jyu@{ZGa+MYY&(@= zXReIGD0L@r@b5G?qoxF(|F)kKQN96$5v+YfKHK7&9R)kV4cQOQdob;Zd^lgNxahZ4 z_)3!ZLlg=4p!gkETHPJo715QNiwsTlmgrQk4)pRsxl&&6#)sxRhd_K48uyg@~v-EL4 zdw*Xw{*_IY#k#%wO?h9K@b1SH)oSk{g(_-Oi+XgL`RfS(I^h2qriJ*45n=pYdmwq) zSPq63OwEg_ECTyW?>=Jas$lPKsvDrbN=0MlG?v@|5DFP3JQk{*+3at@QWt^UUI6j5 zh-S4K%ePtbkeKUyeE&}!j#&M$so*Du8&IvnsVpCRAXXDv)NZ`;j2%~lyioUzA&!&x zSJ~q;JhlalwU;@12Sh9G50eX_1!m+%RqNnKH?CbF*mS9w5lO;16bi)d@4yz3dKK6- z7Kns0Pg!y?VMD?f+;wJ|m(#iej!hSJl^NYVxL!+8{=DZ@h=ehE7xBN4#ZXmV(kH}F zKJNLnxh>p$H!QCKZHysC-|Yxkp*J;aq(olo_`-Q%&9(leB$2O}Z}&$$T)(I(QG-lY z#Cr4(0oZq?pQ=4ar0V&PJbMU?sa$3O!>BPX4kp_DP`cRd7E`SG_YkJd5|=h1vBMC5 zpW&!Ypffo@{JLg#AnB%T&!l!iZO}YUY-%Vegy?L3GUM+5Z~<^E1s{cC9(G}PRV(pa z=kY4#8##-Q0=_-Dp?@X%!PLd*3k4mP_w(hWn^hweZM*cS+WQ2E|CHJFugH?$%0qv4 zK>4t}xWf07Pt!Jt|^i3|YLp`O#Wfv7srR2}Icc68=PYSY5AvTD;z|m7vG2#^ zxb=Nh$tSp}ruet?(D3eMIc)z$y@&1^pnfl_tNh(iUDg3h3w_`$O6sPXyxqCf3J zi`W;Zi5n6>DFb_vIRofP$)DA~Mm9qN1T|AXaNvO;U9&eFt~a*&$|p_57!3bVfT+5% zO7gA3}pv zXM{t_v&D4&zUtZFLWOv0Z*mB{AtAcQbQ;6!w+T5y_|O>pq3|YD{mjM_ay_VGfL@od z-!hQEt>pJ{lep1eI(%+P=_)4?_?&@mtBgL*2qN^X4eA_9Ka*#Y7a{ z&tPEt46RZwL-9kM&~)x&68z9ovH!MZX_mNqEX2Kt7uDp26b8D#IlJJpAvj2nw7~dH zIK1GaR-=-32LgRqmUvmy%* zEYB7ab=o5})G8ZQ4MT>~c16W>3@F>E%E2qYMfrC%o+f8L8sv?j6R0{3 z4OkdY%Vzl8U2eN1FtYgW(Q!B+#G?(b4B(ghC+O92p$KT`keK_%aihBw>(~PmEtS2e z_%;5^fufWLgO|bSTmhUbIU(R*!;HUto&jVG0AN`I04v3IsE1>?6jo?P$)(8TfFHFU zr0YKSE}23bs08{)i$Hh3-+YHOZVSiy!P8!=HpTFrz;U$JQG;7d|ISPON_o4M>=VY` z4gXGSh7u*s+bd(-^>hCDGF1ixh76`-(p5SeHKKla5bkN!3?tkhSod^y9j56_*tDDa9Q1@Bt@RnwU z@808FF@3W}Xgb&!(bqARF4r{NxYr*`*EILuJe>=@~tfFxC(K7e7hmew296-_k8k=6ZTjX*3Y8V^2s`Su-N;Mdq8JUZ> zqoRts;EyEnTL4r_1I2Py$ukuc98x}N5$)dGd(B3Uov%sq+64o^1*lU7GT(>~{AINm zgv5%S*SXD6gE0vnxbC_-U$IIs$O=vGo1 zq;sT5H<2UEhc}k*zGFQ36DNBmLrg811D906%c# zCZiJwA$vK+ANYMLAZDx_`enfVF$W}o16X##pOY+M@Wp*e`w07btcP#0;>Z_r@n_Zk zfW2EmyPjJyzJRx%(tX8z&;BzY2G#&nKpd&AgJ6LF=ZPhQQR~iw_YM~dYBG57W(Xp8 zzdKMZSb^%v_QV@%PM4Y*0B?|NwO|`IxfYQ9%WPontfbFc_PwT$z3^0x%&(Wm@~HXG z5rapF$l0isu!d6Nk>2&=tom)uw%|16Mrf5>+YFXDzG8n`e242&mO`en&uZ$*AXu`y zwngR@$hK3CynnrUxHZ!zs`yC{d?h?xF{At3TtS4r-P`>YYBDm{ejQc9N*~L1>`0U` zk{YBM@-BYYBaPOCNL66(QaYJ33#1B}Zejfj2g_9Q>s#@8o zD@RmBQHr87Kt*J0KfF+LdBK>5obiJP<+c{BL_AAd!R~wJoqlD z!8}h00bdcNPl1oFK4lpLM5j`w029!u-JvUeO!*qGC+_WxpGVQ8BPqdB;yVs#y4+PP zf(zcQb8j^Pweh|a$T3+}aL$$REh~5=yPy5>`U8|g&r*@K-!Qr2AUq#3saqIOZ8|u; zP(|jl|608c7HxG7l3gdK>R;o719#;&NJx|Mh|4P0a07HVzpa*3VNyf=)r9f6z37Vi zDtx*Vto^D*&PXyJNfDC_8rPw;3`WNl+Qotdw9a&;3|>3z!OhmZB*AQcCcWa-``|s{ z{m{;QMzZs>tY^$otYz=#X_MdpB%t0Jm6ovAeRWQ%eS!9cv~COoI>j zh!@T?cLk8IrR0`LG?b5fr}DYxAD(b~HFD}|)vB||y}%=k4FKHZufknUU^kltxJKh; z+00e@X-kqb(F|Ga(ccZCEK4l@g41I?L{8{g@!NHkeWt02A5rqZ`@EiIwzTY{+j7%Q z$D;!^taV8AWvr?$-k(uYsjL+!JmIOlsa%lNbz!nU{)12GI@c$U=m76@;T@^22SR$$ ztHuK6NAf)Y#3nxLwNR{6zTg}9v-0(g3KMYL)AFf)l19}$zS@N6=zsj}ZT8=)VTOgt zWxoPXT*tH6pvk{Cpxj9}^zPW|Xkzk(-n&IU4>t7(&!LvxJFR^y- zMtN)$<|xt4i~6idU)46tyLx=um$dBxudAW^0+Aw-hwnO)J~?1%I{pX`8c!bq?JV@`#AVH8X99ip_atlnCx$fm zSCzNttINXKvQ;&-z8JR!P`=IfBtIA^3BgHr16YBF9_0Kc5(=+%$?*$(>2yCn`?dG2h z{t;~^;$n{A9>BW?C4S)h3|wUvL6-|NWD-FX6N_jA5ZdnK(Jl-O5ZZ!r1C|PU_$>Co zYs&R^VbvL*eZ9XayP<46?KZFjKPn!%BP7KRSe^>73u5KG=0?+h=gv4qkbZ5b{dVZcC%jfV>& z=QAI{uz;vyyTM?g!muey5P)tNC9YI`DcaZHOiHgAPJ(cu(64BIskzH#7dXOd07td( z?SfXIlVx5#=5+V`&UIc_a^+HXoszb|}#C^a*tIIPe51vMqC7N@=CTgYX4p3Z3nH} zqkZFghO`^JiFnWE^2g&qMdd6y4;}|A_bEE}H*5cLPC|-#?KKCQV@V(Bn)d<# zEO_fbxEMwy$`G4GL0h;&_Abz&{&=VkjDf``4*n>qJm$Ix$qsT&s}}v%@g&OLXc@_y zY)5SyW(!j!3UH<~d|-FIDWF4an_CoDiKAHu^7K)pi9DgBT#`0tqvkl-Yf6GRtGJqc zTt^iC5jcna+EkR_AQMibW(k1Prn#m2+BsnfD`{bLoRcx>P`c7g4EX6l58JHV@n{9Gk9xs^X6nf##EYbJBu?+6#5p$I4@A)T3x*`zg#Z<_j7;=o#vjhfa!3Dv7{;xl8&Jg8M>nIyXn%xZt*c^GP@LmUl&HL`k4 zC$hwzT!#(~?`zs)1hf)59gc>k2Lfavr2dg)Lj}lKMp_;t36&iNLeFkcMFo z-Va-+w&{jDScNDNB|AqxNF6$iq3O>K2YRG+7;4J`DJN!0a z-K@vgdb~`=e~>Q|cfg`F$+v#=M19$EaQ4o#Jd#9iWH-R`Fdhj{LigxCXO&Z}+u<4D zD|3Z8_xcF+SkLdbxPN8ZAiDJs;}Elt($|PEleC6woa+wWhts8h-AEo6`It3dfd`Zg zVlQB{&qPpNE_5%uR9(^~_sKpnjNrqvSb!gO$$irIx_N+Bo$lIGY4*U(EJvj)FH4@V z3+1&hM{Qhza;#GmLSCcN0MC-9)DG~o>w7B83^QsMI4+4{hSh;cuHwdzHxGTRz5~FJ z+OD=?n_2sNa zSli&V5AP-ON^FU9(UVqY%vsieehW*`WANDSi#U_0Ehb0;bVM?kV!PGUex zv!Z#&4G8%a*1Hvw8PlXMdTR|}Z>(}TYx<`Dxx6LR6{B(N)8X1U{C-9J$<#f9)k61s zDST8pvb?KSU=OMhx~(olK|~h10GJZ@+aoSAeL~r*7&Y>yj`iKxfptg*l=3><>lyjS z`i-FodE%#W9TN}9xP#Di7l(>0jr*TUbXr4Pt#6=FXTOqxK_#+)ZW?M!VY=3|(XSuAP-O0C=Nm`tW3No2mx7i!JD^ltK{G9@0V08W&cn*0^XmjM4cI0=z$Dcz~>Q`Uca5k%fK@} z00BC(6T2}I_4EOZD-1PX%mVZG~+MDDU%z8p9*b)3eMK~WKysVUSH}nt5 zS-Lmus0Yp{P|0kEgTF-9?Kxf1{rmhP1BLd5u5$A)H4_Vr@ZIHnUupebCSTNb29T)K zO#n0Hb@f|$A?c*C6-&ot6TG1Ypr1aKRt=%7#B1*XwiN)cMgCXR zA;c&Yef}dMPDkdvXm1;;9iX}&1!Vp^mD(pAwdR%m=MT5d!0Q9=J)UvHB<}E2eh102 z#jtqbl4|bSS6*B8Jc~Rxl959d3Vk`AcWnX8TiS+r-@#0@0%)fZr_AIj?#8;K{RTKP zRi|z0)Iwv{a}G4X^_WJb!B$-%K{@zxPv*I=PNor6~38J#o0;gHzeajU%>Nhj~yVC|?xIFhY8W zRj4La_O5N9w_Uk1VExkX)-{cTAMQXSzxqOfNUPzcy(P`B2Llgmp@c0pSL0?#z1I(` zxln{xbGaQcZnJtE@PV3pzIoYU^3lxd5}_Q(T}KQIp<;+BL^0ZS2w!Qp#<0GZIPo`d zfvIx_lB+1)>RD=Otk?8ecApYCRW6K1e9A1!aPa_2&3H9|$U2JsgxLx{gG?L~-8$J& z;^qdFv6~&?Swc#1_iWGU+>U`ya|ZQ?o3_-56(=n#s};MXtlSvq5me7C=4n@im29Ls zvU>*yUa1F)rhmn+UQTBm`$7YU1`K@uO@;hFg`)piM|`O{v~6?X$uF;69ujY%Hg=sI zn4U%>t4zNDWqd#gjN>5nDfHU6w?+*t7DtBzS>(m~j>VLkPDYEJ*d6FHc#g$$%C$37 zi$|%3k;sDpdi1p%)-X;?c-F=J{#tf?g=EI-xx$IKeuRSVF&YRYbrexbYHz+RbA3*7;-vs*i#AW=p*0%5$7vYKIg!7@39FIhy8D5Z^g6*QGt4Dn zfpTl8>RPU-c*pyl|5&sdglyHy*nHv#bCQegsyW7Q#E)vbd${2NV?~qmtMoZdG-GH= z_V|BH$2+72`KgY+xc6@j&Y~r!X8k6dmA9*rRR!%CiDWAxkm~5uD%w`1vA0>{aD;C% zu15}OEb{St#e$%E{i|vOYWSwGzTN+BTrAQO?;X4G zO7FjY%&lyZ{1;D>LZ8R9$ra2KY9wp z^%>GSUUr7|-Z}W!TMZaTR@65Y6;7Hm>?ihjA4Q!rsU^MqsRL|CZKou6oWv@y_n5{N z$5x*#yn0SNSnW-kIncC5jg#*cVZUNpknT~7IoO?{T};>ij5j`a1f^fcN+fz3<)8J8 z1B?xJhwTwl2X*O0^pyGbsG8JgZ|J4M%#L#{%tm5#YSM4b20H98RjTBnajmlk{Ce_n zyNdQ1o;tlH zh|@QZ7l{Qb53e1y5-y3(`15dA?vmVB-%Bsh}KP>dQ4F|Q8IutM- zz&#{f|AewVf}(X5I*DO+p0#6^ozZnJ3(9C`9tuNwTL0_zv*={55b1)8!53;igY_yh zNHbpM`|Tuh;lL0TD6oBF1u#HPw_vox_FrmkOeA+~!L?D97x&w1SKCl4_W+rRtO8<5 z$JUoqZHgx(8kw-|}#|_7ObV z)(3VQLSgh5GbCx2jfsoA%^QVHtL2)LQu}FpU2PBiMuR8X3&Zs8EIqKC4CaV}vx~7) zYcQ%{0e1IgjwB%@bt+c~!dt3dKQ6_8Og+TnB0O3)7p7OI<@n&uP?y*Jg$NXmwEbRsQEM4A?Eb0(&0MCsunyN*gPTwtSD1xx8F<0drp0shH#(X zY%zm)Q*#Xl5#sEm-m38<-KYoqC!_5xy z$ojY#8HyV9+{&B1lY6LJ408Q%f9U?aDMjhTP-8;bx{0{y_xqbo_}dmNN6BAHGs3ps z0J<92I{UyTi>Au~8e6gN66(49ye5m~3KQx@U4B7KJaRv&#;;IfvcI4n8{ah&Ou6j1 z|5kTzx;5Mxn0j4;haA2DnVWVm74|0<%D|4-RBK1__1j%C z-<^!vIWh~4Wd~|t0AuJ=6W4ifW1U~xqRxNQ@FQ{YVv+;!#>|`IznIk`=Ns+@VLWdwCy6?yp0Dny$dSP8$2Omz`wP} zc6vwOo-(olDrXoWUy9nmjxltphj?3<4Y2O}{kR#!4~e<^^Tu}AN5dX=cjiJhrz;)k z=er8a;X)Dbv1Xa{a}KCb>Q)B^Ys|Fhx=*niL6p=73}-e4>1_1Mh>AX^giin~(&SDA{4%w|C!e#q|B+8KW@VKa8)j{dKMCaI&ayKKp7YRd{la_`{*+K>n)L z`ZxLQT-x?RAZ%71|E)5h@fs2GmPzy&>O6F# zMvteV6sT1B>wH3vt`ET3(&o>{xVJba_j<3v9^SBm+fx%PV$5^JHP@jVgw2QBiWlaY z$$!ENgp{nKRstqj4kYp-YTE!W9*l0`TW#V4I-*sO_a6cj2*vQP{}ex|W?MKQWPw40 z-4izykMS0O7cfxsIhp{0c}e`gCE)*ud--o!_mBJk0%@*q^>@J&4y?s0!kPzXSN6kf zlSL_NVw(m$L@96fO|=_G;WZHOumIv1`(s_GZ#-}4x}C&OGp+X?t;PBV*{CvY7RPPE z#==W+N&_=nr8w@1dINySMT)Vl*RHAeao_dL*at{_Xw9IVXhAYAR>Ou{OJaR8T#O z_;dIp;RQ9Hu~Fjji#>Tw`C)KOQ*AkFx=W|bVO&2_$cW+UCs)Q9dQKaS%8Wkvm~W5m zHtVBqO04MlBc3KezTiDk4zYidq}Ke;$9s`?&oe}T$C$b0e?;Xwb>bd&y(5|5KG-An zkHB<*ipVK^PB}cTFR<%CX=}gv|M%_IK+ipDVqN)2~a@DfKMgz|j zU!A*7Rk0s~h883sx@S?tld92Kxl51(08F}0K6(iaL)Cz)lat3(E(3k zS@911|3>W#O*#I&bJMuvf(J4YNh!v4^A}M^MrW902IeDh^duDxw z9K{JzVL;D_mo8A2WXep7`mPoAmD`5Bz-2*g;Fd7l>OU;N3jm6WA3%@6N#3R;xn+W) zJoyP%)3xT8KZkIu9yP=w*>w!@#VeihbxdCWV#+gV_lZGA{GXTkHzd`T(vDsjw+Mb` z@$sSUluz29YyPqWX#oRDH$Rm|Ak({Wca|>HfY>)X4D$eJrxv|kGH2@m z6i4C=S!!=5g@u?_HNE7?`YZEbqj@W?)Q9{$rL8T+LuYq1y5>`6F#zp(U=)*llJ7l0 zEfP)hzsF+3`?c?(ihwrZgj@RTZF=czEh$n>c@{*;4EED!E#zA~sNUerXN-0dqF8sw z4m7c(Vinkl4WUd+3ZpzY&K@gn%{!;1P6OSvLAToXq~m2JIH1?_t@yI9+uO@K(K%Nv zZdgNduWgPL-Iva~FM)_#^(z2`a`b4MW1Okx3;SnYuw13j?(FheTLvnB_G^F+3iw2Nsnfz)bp7g< zkNR|180Tb<__07Z{1n@=ses%%s)B%-cH(wp3Plf1v$ zft$|Tu}zo*=#>U?6iDf@t4EZ!+!I*AdrS8lYpn{-Pc78--l=3WK*e(npLuq0MdmaYr z^v&R=GuQ&x`+$^Jr>f*>(a`VXF^plTPX{2Yd zt}J`YX0em^^uHFUan@xBH!V%otaP|ZoXkFT3|i)syjPhgb-4Oqpbl}M4A6WhoRpi( z8ic;H-};+)Wo*--%4EhAn+Bur$h(VsF29n11nq zfD&jOt#6(5)vcyUTUaL))?ig5`(70MV@dAI*Or1$M|gfYe|Sc9 z?ZIY^-C2#bhCqo2JR=~pU9!z>V+o@=a=DnzB_QWBKa=0ON(`7oRhE$?oVt9tSuamn`}e} z=sV=K5hfQkzGHP;stWIHNPh~%u<@*%nw_DFDtM{+l299omz1QV+NihA$NT%~Men^m z<0pjJRx_TN#muowv)&Az-^x|UV_@dQbj+ewpZ%5FEXb(iTlT1$>T`hc9Ax?>xx-se zis#PnskK6-w{7Z$ASm@GnTzmg_}gtUp{^mHLIo27Ma#!+PPcWHZq^sGAS&cwO5))D zsuU88YT0K-kQR+k<#wz~sd@KY(uq=py}nEptO$=>R~p+>a= z|EIS0(E2Zj4FtOOKS2+{(lB=ePy@;9dGmWZOji+mQ|=d1&5aIvI3}|Gl3UC%Vrl2Y z5xghJDM80Xruy!rPnwlh$FpSyVaOUuh=cwrx4(I8Rn%|FkA#^qzvN81{qk4jvlRhh zNqkNK00vm6YJq}^g{}NSDihNb=9$&>`A%4|O$!hM4&GenVOTF%jE}JIi@0AIhlO+^szwZ87~p={oJ9 z-Pw@Qi?HfkQGrgWds#YnT@sE0qy{D+%OiXhUsWPJI_v|dJc?rsmOH(j+Hcm5ZCHuH z<~ENDS+Skzoy5NAu}00L9JK+R1QI}9j-2POnPwS-klJVgKOl4I zw@y2sf?5{o(eGRR)k+>PJos@s^{watF}A0z~nz+ZHfQVDRQ| z*LlL6nZn9AlXx{4o=$figd^@UaZLHnG*9EH*Tl}xM5M4fF|~uCOnXFvtiN};lLks~ zGcpZC@7+3S2zxREk7Yz5#GGcjLpwQrn+QB9R>;#t+fYtB`QpR#uBSmmfj~vvKiha7 z0MfIm9GbVbQ}OeDOt6n5mDH*;!x=qIH!24y1sd`PuKdd|%|q`;&3r{D!K*sqdJ%BA z3!?{aSSqCS{3%=tJ5}K!|7(DNbcZrL_bg&h;wGPA#Un9<-9mD7jLRM8SE7Z+@lF*B zo#!H^nfKKDz<$&&GagXvS>S<#u6wV$tRD-Jjmfc^qm@T0yXQr)_>^OfTWJ|bOoJ?)-0WUDi0-Ki+nb-$GDMlavbzr5|9?3*C#jrLfpvP#f@zrX03MyIdWzPx{DnCft#h3zcuNQzR zFF+}_hgIXB?uuZ}dGik{fm#_g{A4BhZ|^Zy`WLFLWeX$azQJ&XKDbrad9{dHa1F^O z1l19vmt~mtf%%hoLiOS8bvfCw3m{v(>jvOHywLpXYC=oy<^s!!h0bjUvwVJPQ*%At z-3T+7KeTJT_-flSX-7>3innQIN%ao`6ot;O>R|{_BR(pSb|7xUzWtn(l zyhn7UBc{PqN@A_u2{x^^Vf04gOS1GJ-X<=iO-pVMf9LzM2 zm4>cx=LMuhSFlu(n!l4?a6U2g%=xnz5aqemP7kjz+`B~qsxcrtnUaDCMyHO%(ZTJ5 zMF^jii&dN3l|FFc24D?3ECoX1GGrzjUpk6X|Yfcb{kC53k~9vJpLn?L4PFB3g_ z?|4#Gu1p)%Nw}*AVX%?=jaEd3Ru_#;@iD44OnSD<=XWAod=-|T;Zi-Fw9*veT|i;8 z0}K%&;$#`Pjq?yWoEs|>Rx||D36iXp_%aJvY+gC=Od0d|}oN?8{ zL_P6jcBzh-3EDeu{3{;$>xMg4Q56e`7d?%w@KRG0bXy_UzH)gCEK?x=+IX41`JA){ z+o{uT!t;3(?=^Y6M(T4|)-Lj1`q0=?fVIFr;u{Zrx8IaFBL35N&iJfjI{TGzR5}&b z?nz2COrf{&6J@7WUkW%rT71yRluviBrEDlg2%=q{hN0cY2c&%(+jm|Qnjy-lD)7JUnMFPWFH z@vNN%D@DM)<8q!JouwgFbhTQY4TdIp=s2x>>Z%q?3Fs9+={VlCmmDKYFArgNXj+1} zaQ@NeR+`WNc;``~)-jU26|9jpV&ozWWFaD0b|y&2-}*t80G2eEU`qW9mP zDgTRWN5;vq!5HMQ*064t6Xn@GKWBT^yL2n!{#X3mSsDOL{f@2%SnQ8hsN>JIv9>CK zqwl)j(l>7Cq}UqLX29kbzdhR6J^|YKbY#8;m_EwKR%vn_s7c(oniMB1&?zslnI%YZ z+B$4*(~jPBA$q3^0un9MzuY?=!dwjJD5P~SOS_sgGL8rvcs4)T%SnzbB30OK?EFT? zo>L2dw{4?)^+gH~KNwWR{I}iJckPe^K1AbC%`c8d(hf@Bi&WBqX)9$I;i)87xtFul zynyA}7|pH}xlwvgfS7}iZ$X$=EUO-^33UvjXJLEIC5D)-dpeFAYc3BK)r~uOV7W~_ z32HDrT804mDS3|`d6nYH`$I#fTOQ&b9s2p&&|G&n^^IpN~p zv2FfbUIGhunsXhbV6wY%uV^-P4POyNv}AMseifMFm5wh3^!V9AsKjIMY*SLFADa7w z4JKOWmS!+<(}gLp=ohTPS`5qY5|h@04BwT7o-Qe@gjM>9A>gf@bdq;o<=&xzaLL^{ z&wL4Y_8RS9ADhREiIXpTCc3w`VXiQJU!!CQHPbzs|6m@GA{fE`cCIZ8ZOjrHnwy}B z^v$_5iYxb>;DO3Vy~L1enCE>0Y&Uqsc*GEn3u^}MNL_PPPt!<0(~)`LSIoFF$-9)> zGb!AZ;^Z2Q;#rK{-`Dlvy(UrxO%{Fp#+QHj2c&gY{yf85;8z?D$>h|ISv*G+gsDBu zgQ+Hzl5RCLNt}im-&LB=`1OAGQQXV^=UV&S--Q5xJ!F+RZQ?n}r8Jl@ZMPUqHHacs z&4P=Uu4K=GLrD(R#Gne+t*=pSuU^Hu|9x~{W`01@YShOd1D_;Y%kT=#PgT~o)c}fV ziy)kZ8zCR!B^Xe&MsLlYJ6N^9$=D9@P+I*gMd5I3gX*1p={O4fA-6UmXuQCq`cK5p z6|3R`%Nc6X22bz5V?sA+h=jmCQGaI|$((IcwHuGT0QOBPI;mh(PnTs)EmCShS&YuO zV0dAst5z7s)yCG{2ddRLRl$ERugQ-+aqS@DPgw_fWqQ~MS@dHp`@`yk{O7xK(0yaa zXEt#uQTVfiBAY6bbXL)(m99@BnWD)?Mp-2v=c{{@ChcMn8l3An%;d6M1>m_1wo>1w zyL39tfO#mMjvGIE(HiL~E?ClBILS2h{N$lmrM0t}b1g)e(3^$6~5+_+X%pYLTVpd`YGx|Bz6yJ7MPPD351nFnO_wN&F=!`5aej{LYm zAo0QMAkIfpW88Wtg>>)kJl2MHMu86Qxq78YKXd71yVBM=9ok)$;Hs=T>RNniE}eif zpH<0kbZGByEWE8>r)(vQCql0Q6{w?w=}hcOYVhN)5^gO!%@X3pg1$z6iK_C^dpcR?EuuZ&BXg=xIEqGG}Ivs^!I2aGogw{`CH1 z@qB)jdQL;1pD{RvG_hjeBrBnJD2+@4aerUu7L<4WRt9$)xbouPnv8HT!Yc@1^=1P^ z=%pn{irorv8_r`&L-x>GsI2BxfA{nw)qq9)&A}Yj;3_rDTSAV~U=!;e!b~Hy-O;tj zCFi*1d<)WXy92>7g6r$58(AuZd&13TOm>-PPcXAmk99>tr!qjfq4|k+-y|sYP^5*_s#b>>h}|_fs+*V6_n=NY;GVc z5;P0$Tz?x!)J2n10TJEmIivwM$DMsBydJMVu=od~ECgpkZUn48*wfQE_1I%AuFCpT z=;3yISnRYyJOkCWy}%`ko1)n@0sR(-qoO$F7Rcb37a59M%@JWkaAcE=N;5>Esvd;l z)jU`K#P#wI%1PfG%Y;Re=o$tj$wkRV3m0}x(4#48Z>Q{X0mC3!)#;6?;y4q&PJCfi zVL#+eHn}8@ct^{~Ospb@6ex^g-Utk0F4b*Wuub)rd(qR>`&E|j0#h6H)Z*hfDAjMx zAj)>6RWTYzz{fM7(D0AzI*VOMiNy%;MuC`*-b4kQ6Azo9Nb*wu8Bi_eEn`a-vI*Aeviz>+O&{jZvhPgiC8#e;iAhrf#8AecSh)x?ac zOKx$qVXXjtSHkj&ykK?n#r6+5E8l5FvV6>ch_X|M%X>>XJ3eyn_S;1G%&A|^gbI!0 zQfj*0@zMZN0#lF(qE)t-qllt?#C75J*ME1Cy)#H2=ZK~&)w_C+WmQer3?Uuax3Ym9 z6zs{>T3+mesvk)*gF3&T;r;`cV!nZ=W&(Z^Vf8?^L1?z)d{O4(W`_=$Tb;I}Gn>ja z;^Y{LAxA3dXFPVEYzo^{wrOg{V+=0IUI`hdsNYz=w(U3bxYZTMtHb68-}Mt);4R7o zQ?m)Ph3BEj`PefxYst2%wIA4NQjP$tB{?=UhR*8W)N z-FtP{{;q;_$@780-tTPGubC~D>dl;nf}OskMM0N%?jf7eP-^DTqv!f&K*3~Z`1={d z6%T{>+8(vM?DOg=+eJ%$UzXQ5Tk{s+5n_QV&WMve8j~ z>rmpH?_@dRk#Nbk`|G7T*#3KQJveJL*2B^_!BNNM`6fy`eC?YCRn_aHc5NoMI*Y?8 zJI!ZBod2LKuZ_yF==g}u>04Tx%)kd3t;1=~VfkO$|BB#)$;U+67N%wv>e<=BW&X}rxYBvrbTy^Shblg-n=qCJj7slj)OVvy+6~1z31P;iUz4J$5%(djF?;cB*Hx zjAv{(KIn?!*_zfe4D~llaDQ(T#B)05{!|W$X!AeZ)<;NE$yKI7I`VFF#5Rs`epBih zd3!&31IDlP&dh^H#a(Fmfq)uK%-JF0LtT$ozc=;)d%0z&N&w)kW8lzAt8?J2y<} zyS4jsm~l9g!p4!nE$Y5+{x<(c!QjH*2Em#8S1eLwo*8E!z%*eFU_ak8x(mjHB3z@aJ#$Z4bqc zj{mszobY43wxZ~)*+x*;Qc}=ieTdBxPrW>L#Vt&vX1duL9!QItP6EJK|;ho=Je@Laes-(D z{Ypn?d?5m;o$wm%~&&%ITf_M8?iNcnt2EI9sAbHI7dW1$QNObh^Hf zwT;tr=}ufvD5+SOGIoU-Q8-1$G4|x%ikiB+R^j*0SRY!T>!&UFRwQu*&Cz?aD}5lf zVQTy}>W4aL&ykOdKdm1xW=nFpc_g$m;xoMa(mk4wYmfHSltatUb@njR!q57!Vl;ob z-dL5u{Y7|14*@&WsUTGa1`FmgCO2Sj77d`UdmfmXj)9dU~ZJ-qB-Ep%Ep(ws( zAAg8I2ufe=6-li-hi`d|3e#UHq?)=6Spbf{$jv2$I3c(pt*}j zo?=*uGe11gZ+XM=k_3I(v+MBU4l-wsmBVi(F|P2@8$sSS)azcV)*oE&A}V!T%$EYW zb5v!qMMT$}ygHX-5XxqmP)h5RHx$aYx$L=>j6H!YZI@ZuNh$PeUMr&-y zV?RFqygkB!xEO!S0H~N#=c9A!?`4n^w8Ly#abaFZC>j6G4&im1-+6*HC(`Jmqr*@= z;Q@g&P{?XoU|;V#<2LV0@5aUUYH0Mc?(# zdYId-@WBuc*EhW=V$`cFTTFZ>`C!voW|la;cQli9RbZFir8M%@) zEAspzk;OMZiakFPwG|%zZ7~0VIul94ZtAqlKRrBM4lCweWymG7%I4hGxw!V|fc9k$ zuu{<0r#xf!unYj|S}ga&C(=HIgcvu?PRqGvM*JbW<6xYv4+%G^-MlXUL|7HSYr~}H ziP$+NbX_^>u7PX65~rdNQ?QlAyzbLI3@8!9s3A?nL&vt(=*^W}Y0N%8qX-2II#0&} z813)Sb2BM9(;1;qz{Y5qn{WErTJHBeuc@?G87TG3=66R6|vH zsPNseSya$)%jPL-d1^_aV&%Iw>d(^I7C@G0lw19PBH4Ddcx0M@>zq4;#5Xd<^6g?T zs+8&N+t14kUoX{vqF+XL^nabtr^*lrU#&q zb^Vx$27Fi4_kXQozQfdFhlLS9TLSHAIwlQRXCEh7Kn=c?11uJ10-myl{Yzt*Z1j_Q z(sMSIH-D%0FDnB&x9B^=4Fu5atDiiFvoZQ&V|vPAdrAW6k&bGc+~fTc2*k1s7(Nbe zZyU0~3Wxg((yex*oZ2)WjFwA72Xc9dW$d|P-;QYjAkgLNUB;iVL3)FZ)i$>F^_I9G zJ2Q99Am4G7D(Otize}x!ys5+WpL$H^zeW8nHf%3kaVNSNSTh}Oh(P}DU*s!pJrY3I zKNde+$&Qm{-H}Se9N#WK=M!LXVaMxl26|0^5;u!Wa^z2inf37ceXx&{)a*yNN>7Z?H0 z?kpI-nzI_WEP#BN>?vm z4lbl?!3gtFL^>07!-jBSdlMd3JQKB6>{OBDqi15sjRiz*;s|rfY6Ark<@G|&E`DYc zE_###XXLxyK-BMue$=!ckMSt5msoXVvdI@vq1;Em%u;!*SnyEmN7DDM?{usDD?_9F zD?sAG9Y+lirBEM`_P(j8C<-AP_PaAeFh+=#pP0dxzNPsULb6L}4BSe|$d_#OAXHLost>Nn*U0d*zcL{Qd*t(} zeEw%kV}QK!mWW0U-?|;ulJ>oe+#j%+`_1~|;taLo&Orvoehz07iuz7t*F+#bRm!Uz zS^r1T%$h69cc3I~l35dq_Z-$zt|{Yc^u1}#j@{|Ow~m}f9d*jjpoIRPF>5XzXUVgjlYgt&b=8YV*&~iGat!lKb##c3d)O^gi-|8i+0gR*1*UlHI8G$w4^JmE)uFm`; zJwj9a5I&Gh%^>bWl*#!Y55Z*u ziyKO8S9Tht6RuGiWgln+qk_7Hn?$YJpuSVFH9jNuZPKzTTjuX@?9$KfGPOOG;}8v& z5*<6j1Xjv3Sj24o14w>3s3rYjdF&Fv)1i4svw5kr@RSEqwM*d*-z|a0_3)>UI`%L> zB5#b?%uj$v7PI3bM)v%;D7pMXnjDaZiMxo@M4(z0jD}c~45FN$+b3Dof(dx=W2}K6 z#~fWOQdaDc2RNP3Hc-<7h%4P`h!s2h1Yi5lc$F(hd9!6~|9h!JXGogNQkOH*6T*Yc_6gH3dw#5cUz&9(>~3X0y?{88#7Iq$2#t)xYDpqF zf4_}SL6|Ew&g&asMgtk!6nBKRF>CQvda$f{vezr<7W55)?~ey|v?5TqRITIQ=sovd z7WPxql=^AYEWhgcjY6mj3LYV!96*VYQIaNdfGm(AC)d#XO+(5yBD;*|FWZ|Tjk^kD z1{PVSLi1#D8pFzA@uZwcBR1SsAE#8CP-?L1c5Wc9aO4W8AT`4hz-hFY(*4%m85hb< z%t>Y@%o$wLEGq(Bbo@K-obWtd19$lRs&8?g%s8LJ0X=D7L^vq4??|50MVHGAIAl)- z!_8}WmOZp=3m|eWD7zc8^cGcJ<1>fFBd5%gUa-EeCbqLJ&w8!;@Buh3kbweltx6-z z2RrZDIO1yAyQU#{8u3LJW)VA$g)4&RnDH0pPjvK&F>(XZ9PZ)oil(}2EY%Zi?Jf&0+{;d zf{0yxw-i|*eB7-X;)8lyBekT(-C5_oHNTp%wTE3)#VNK|H2Yn;dWR1SKZo@*927pm zP~$rTHyi;fKEUioXC{W-1viCuPpGxZ(XYfyW9Ta3SMPhq4XzZWS}lLgEg*NDD^g>o zImjQXGP^%gmERcZUo5LoT)B5>QJ0mpjr}1vsis|T5b|hcDO%?3-gRwukZeyJ1g~!t z!{}gf<@o+UAi5<@~~raG^vKwWA_s#$wwS*gq7fxnqHaSgX45wC-RV;elVYBdOh0 zIDa6kSY5fyn4o(R@k~?4+*~~vKq|_AHVKmW=J%bf>oq&29Zr%N-UIyB{%$0hbETFw zBjzeY^4%`|(j~Q*YqrcWUz*iyNcen_zr}@W#%6Dj#MvHdL@4hKzlihe!QNI(sHN@b zlsi2P%velJ=fB2WC%azK1`5;*Nh{-PA%AcFabJIWQl&fpy$8lM1bPR=q{OR*vb860 z`@>d+s*yrS$@yq5ifoS&yjdL+|5UxX{9{z)3U{Kd^d~r8CJ*b8{I5)ONPl9#QkokV z#*N#ObRMO{prB2nxZYX*qR?(Iy)O-97-un=Rye%PkoMI!j5+<^yZQz!*@b!`{y(cI z-BR)g9;xCwB_nS{iD+}qWV(eczk@mD&^h=|d?1$p5EdfZRJnkx8?Yl8L?Tsx(~4dH z0rgBEV6mmv(>!Kay;6lPsl4db|e7$dFff=X|v2@~DLS>bw(X@*lQAVQBrvUtNhiI1csrSVBj} z`M}sBI{NR!sh9UZajSQRWZ2`v@(cSF7u@q->+SuNroCDqLYxY9Ux+Z5o}mg=7UcdP z*4{git^a)+N42Vhwy3sNTdVfoBi**NMo}Zm8?}p~W+ddX&%^fr1}%jDhedDv z@;GpxQsulv;#DIa*-R>U<;F##UBe%7tceG3bX0kCA77d(cdUM%ng(sy&DL5Un6I>> zXFa`VI^ySTAbcjhh~!3J@GE$c6Hyq#k?!c430Jl`w)TR2j-S~!?T*D*XrM-Xi>B1M z!gNwR0$l{hZE28Rmj7!1v#|bQE26T=8ADu5Dc6dLdkJ3GrhLpTXn2zPdn@+?$@9p9 zMEj#*F(pNie&W}iE4r%m*aWD68jM)wKRK>=Y<*rkesF%@Z^@locb3}kSI}ytBtip; zz6Ry|yr|VBCS6LMv^K>=&cg3tnP3y9ArJCDz;3#YK{}myLM0By!NT397yULp`IXjF zO2b}#2d%-H;)MwqTf(kpBg1imta$8kls&ZvB=d?N3L0)Z>JjG_D#PgWSMO9L7U_%g z{%!Kn@vqvVL4=m{vcy26!CA_PgF4x27cD$$Ze7=2Bl8=v+Z-&)HV?+su7Z{5z@?4z z`@NRNWKvpT$=1e{0|>qhtLQQ_J?Xsms3-&h7$3?7+V)TpK-;;X1DlY z)>0tZirKRpF%YCE;dhl8bXAk%kZ2xnXIj`UGKXa4i>(FQITJVFi{0G_vs~;b$qA3Zq6VYHdE z*NFe9rM`LJ!e-~WKeXv}V7!(vvU=wd9D)_Yk4x&44xyy;eawKfP(IUOLIqU(oNx}I z1y>KrMcQ`$5&P|M{ALH8*LhA-9*@|riGv8}CV$UzLa?8fw%>(DZi9Ht=scGaaku}( ztm1ah?}j`ghCHz{kfHZC#xyc{CvN(h>@YnU`kE|&4;%GTx8}QqgLEAZ zeY@paJof%9t!Vi1Ep2$>NiNVhUZF9gRi?Z#M^~Mq&W5Mz!+qxS2hbYN!3Y#m5^ji>q}a9!A0<_>;II6=_!94$Bn=W|dOT zWjQckIpLHTiw3Svrd;ImVU9Gn11Ol?VdKWJNlK-)3GQq~fE4Vkm?y*yI(#>YZ?9X?{;F^y+kKr}Mjby;K<3wn6ec*Go-O#t2=- zPm(Wm5Ncp zXYQ>jO(i9^LKv(*$MEztW;tzD)GsO4M`0u|bH_1y^^xY1a-$oB;QTIFFNUsyJ-_r+ z(!ACSV~W(WuoSo7ufS6=D~84nSb9cgR+HeFs2lXGYb zCxgIL+-pAjM7eqQ81qmk*goa2RhS%*3G3z;njZnrs=B%bgDL>f&c67cDb zrS8wo1XbxXlvdK38T5WK&esEFF*U_8hk}pEkHj`tOkC|1xYv?1uasnKFNouxI(7L5jZqM_dw zb!o$__G6he=q_ru9@Y(|(K_mpjtBCo#{t|N3aGnpe3)nT+i%v9y>-1BT!{#nnBkZN z>SZR`o#}1zybfv#w1xVXhZL}m>^UUGr|H8_9PgzyK8Aq-CepuI{)B+}+IbzF3mAoc zT+%zwKgI7KF|_J*{AJc&D^CWOl4iyzQ{WASsB6HJZZQF3wu=dtsuJ~OH5!+Zr|e)` zUT=4sg@1|RbHKmJDA2p0T;Rt>5F*AK-Jf*^3;9=>WpF?INH1}(v4fzJMhK?|aZCTB z9KnEX3~=)jAN*ut6U>#U>lQNiWVE%rGvi0kiN@Zjq3Fn85k^@ZP!{DLgK9M2cMUrK zQ7hXUEOH;S27TA3!y5`rjQqVhr0sPs!UyKj?erf2XCnD#N(H0r=aa?#)YIPx>QS8Z zKt(k?R(Fzk0j}SVhktnr#}O~p!M}3XFPj!DJ2Nt_Ps}>$5fxTHHv3cU#GX)psKmQ5 z?yN3wpNv=g%lV0LzLn%D#e~;Ki(x;>4tGgMbk{f)v|UdSO$ zJ~16ssXn#0I4y;FV#*&00SzYqb9r}WP2+0v>KMk@lnFl+lysgD988jt@K4!wV-uQh ztEh#q{s)2Y&i1X!iHtKQBs8|%yj=6grMPt9CK0RF0rCpN=^w*DiYi0j!yK`ryDH8_ zrI_}w%3uPK0&2|u_>sJ}T$;wl^ZeI7!nAu`ZdIUrx4A40bMXp9m456gR4Jm@)&4bY zYIz7KDyR+F#eE3F;tLB}6A>4wgwOn^|FC0VIg;g%5pSvbhHX=qR%&Q(+`)B|&A@X0 zQdT+r+F*_p(3IAgx)F1znG|%Y;#%sl`Ygy@Xvi3xULKt8+*Sk?hy>%!LAKm-_9XYR z@ZQ&g7~dP(N7D|D6)gVe{esy`q)P5 zEmJqg#cMGXj6T#9Ql$R)mqS4o%~30Vsk$Fh?D2iy%GJB1^9l1ghiX(xvPNp8|A-@8 z`YBeBa8{4*gCPC5LP8FP5&KFyb=jWmQuPwY>}$~5O@mA$c|M7h*688_)=)dNqD z!UEWK4S60|jm?>nkO{l|7t5u(06GmAEj&SqqET=c&HUf0HMAWGzz41&;HVwHz-Re= z-G4G=tVo$pgYotUsv?)RA1RTSL2-uXQ<%sE55i)ClU{E2FON8bF6jZ`lKAeyL2_TX@2NGVji@l8`f+Nthud-xh6ZLYiwo^>W7#Z z-Ri~sR_8*MYp0i(uCTSgu4q~>DqX%u)QdZaldigc@3m>J&5`VzvTQHz7E0yTzGU|- zI{W~pLitan+D{#^G|%H|u4{++mswQu!4bodU#)4FqUbhyHRM_$t0!&pY{2VB-DkdX z_q^lsn>q^ka@i8%z(YU&6k05}9Vg-akRt+a8Y1v<$nQ1w-Zcr2G0t}4)yY^2m zi$3Jk4cQ%?wc>*zdZoYJB#NiTTved9u3OJeq5t&3UHXS6(X|qta}Ia&V!=^Xq5Aid zq`$E$+s8Dz3a@_qocFko^3@Cw@%n;}n~HRmJh6AJly{Mztu0N=t&KHwBM-l0}p9 z#UFC|)uWM!$T%ZG+$Fzr+0vP3{-{wA6*C1W(p@&ONP`*xae%{Fqzin6+ry;=C@Jgk zr$QNTq5idU?&uS>hl)Fj*xk)_Uyy-7#3srG$Nl~nyPc|<_ zZTQ*apTz}jXuVv^vz_t>SJ_YN{*E9G78&QDM=(Lt6`gTU-LE$gxH z7?bam;@XQQrtpuTW1~=%>7a%#Cm??hIW4idK9^^FN_y`wKPBl)U;+p(n$MPeSGAcO z?Q#Lh1ISE?Yeuq;RNS)2BQw~@1Ui0#wOBIsz6M?%Vu@N!sZ8B_sR#765W51 znPLK5FGW=aR$^{_n^pQa9kSa~{v#a`eo_7^;tjrC2L~7Hg>e__@wKo0FzbEjbU?{y zCO!?kk$4p$!bSOzu+Tkg$qDPg{%d?e1J zIu5BEM={oIJfdh&7E|h@QGogK+7W;EIz&~}Dj^D=u#m4dZo?S^Fc;+jjqwr`GQ?X_ z{dw!cY`ss}5MVcGvN{B(YMZwNr@KfQcg*Aii#822=zI-H4BY)N7X9?*xV^YSV1SNE zIA6Jvet__^7Lr7YM@tf16jlz~+(t?}@q{va)25C^FU%e-TfQ(5fGT%9jgXk7J0OWk z&sEEnJkVFAvqtA>FOMV?yoWO$c!Vw_f z=S!0Nyq@ud4vZ|{qL$5lb>NebN0J!>R&B%W;lX?Q79EOi7+exbFq?)ge==Tolmv{2Z2adod!%IBW?D4thjc4)ThxbVgDlR+GO#WgE#E zAP!q3l3sUpL6QsDJq2d;S<(Kyuwhh|K@r*{M**}l+pxf5GD5UVs@x3)*Kc)-EmkX` zj3lC`jif+T(MF2Fy9J~`<;O^4X&VQpXs@{gWJAB1JK81TytjPw6fW9ENlH~v3S!sCnoH&Fb48_ZBR zb{i#x^iq5Zm%l`gQ@Z}rTg}F`>BXy^(UIl}>1#zCA|_UK>x6;n7d{dgJ^}q!8GZ zzP65G*p6fs!ZhZ+y+$qnI?1D4z4pVa=hA_RW?)j8zhtSHeN@-rLyEjg!WW*v6W=4% zTOUn@F*FszuKOqy{&E|v8{^cbFHUfcO*#*_`w#=GzIe9r5l_asY6G4**q3u0xtb-+{adOy+f)jmu_%&$}y1D`eCs5JdWphnG6*vP{p=@VD*H;dv0NFAIlZ_< zEc8mXNcsejo!+<^-{kUQR!Mh^F=LFffRJZswsnCtuqUS^;;CmonZaTWY@kfd@UEBE z$DWL(Adu%b+dnBca4^CWNUyVZdd3Np=FBfv|2#Ys%ecCwvvpc|oZk4L8)9pcQmDl= z&(+M(?0{?WRUDk2{k}#2d0(bf$tP}q74#UVN?+ur^sOeB?>r+a4(YKdhXL9@qkd8X z6++2p2uKvRGER~n3}<-u5?T$DxlGks?v>=SdeKt?#Jekz3z^PIxY9!#1=%s(L(U5D zpR~A3%N9rDTnSnK2D~y_zgObur?ya@6AnJ}POVA0?jo>8nvY^_;Y%b{X&N$y?*QK1BCJU6TYjTF)!fUIV7Hx z^wb_lT$Z=!6|=N>b0r;zST5d<0$i37;u5(x(_hmp9hny>Uu_-8yr416SnS9yGj{+r zEMVu>;a8CL0C|;4*bfhSRflUR%SWL+rCLpsK@T7H580{$=jV=G%J!*M0h|DC0jCOX zHpWgIdyB}RE{o0A&$8SNf&jgmgs;=9FGI~3dJ`_MnA9mc6{^TnN0`K}8sub_H`;IE zVFxMbdeiTX8Yran^YT;_@J#%)nB8o1UR})CXv@2kxIP0Ja}t~n2(tG``$ zF$Z`6nmNlyL0!v$r^Lw;C%Tu$^?lV1{y2{o+JBu{{x*&-Q1dR+1XaTPhlfSFwY@U{ zSc_4WQm7W3mwCvVyzCwFEy-=l`Cli$3ZX9$f!J|?BrTQWq#e*7#{J2C?XH4uFCirz z4Um?tQZH$8Fd>DkwYKt?w}}t~GHFO=-Ee*fXd2Qw?mQYBp6$nWQGpo$xZv}f!mG6V zdb-HXp7K|ML5beyLb=lB#%HdMUpu0GxFOR&|X?_P@)4#e5FADpE3ZN`& z(+(XiLryS^XP)aUg$n#!dWVM}gv7kkei>P}ZWajo#s6HN?V`w)>4Fi`1}x2tpN!}Z>2kc$-C_w5SG=j!;;0A&~x_0!vGGwzv2T_OLUGw=IxYJb9z0O2kFhE zg6=Z@GO;vh&|Z=#{hst2vQYf;vqv387eSuQIX-yqI9f@t3ZwG?}hn4D)-4+*SQ)bJRH@LKFuK_05K-kFl zSOHB@C(@hNi$$I%CIr={F)eVe$<}56!x_^{UM>YQ^i`&1rzZ3c7gNOGhTVO$Z(yo# zZa0S8uUd-rgL#etuZq~UA6WM2@+&F|_bBG=wSjvMJ0138{jf6g?!x~vzf z2bL6F^Y!9ecV+>uI!arh`%4Elz4_yM8F9m4p|7SSAKKr)N?({;#f0)uI(?&~kj-hb zTT4v81r{KTJ>CDywEDye!m<6ISj=9ljrjW5wKPDs@t32u0u9jjGIqT^>A}Lmf)=>; z(iiQ7+mt2R@s;w@Dp5O|0IT&-Ur`Fs_-!XANrVFFKk)WUy9&H|XzSEkVz9-SkfT$d z{|0pzw8%0V3v4$kzIENP%kKUYQq6}=S2h)AK!F;OJc8yn{TrT!QbuYPhcHDk?BgcrC(RAQ`hP#bt-TAwioN#AK z*1SyY2O#yR3sT0u1$+9fVM4@^>yMUiSK>DhT?6=SKCGLHD`%3DHE8VigGHppL$bD` zykIuJ`oxr9KbwwjVJm=4X71V`VZ>(RL23UM%0n^jw}|<^T}KGfx7%Hm61a;-_OSv= z?dxM;2OjgtFY;UaxyYpzS`1od;!efp0qRY_xYRjecJd=XX!88AFqtsJ70Wi>(hC%Q zvx0PAiN3R+es*-JB_O_{L3sc9h?c$l-WHN&A0|X$h>q>uM){OVgAih^N8~nt(q$n^ zB`dldqq}%nLPv#?(NPc2a+ZdY#aIt{L7dEfRT_5^}{dQ2dsjRt-CFP zCR6ZXJr&GYBbi$#oO|)&zj7p-8nH4gxS2%@_HVEWo9hK_(~SpEhuVeAbue3Z^?g); z6ssTe&(<`3n}x7f=l;p!wjp__e8tf-MHu2MoR>>M8hJ5!xfaN~>i9Y{=j{zYU%xC; zOsxn@&X6bC2b9AY_L9hkraH&szZC||x$X+>GyQuVSQh{_xuB%tI;PmSrz#HIfge)EkVLe=uPFWc9_6l^ z&p3crTRGA+0W@vjz*Gh^!zJjfS$B9;>#}T>c))F74vPKo3>#>bFmWoX)IN7T{TUZk z)Mr?uOB0gs4mWxkQ11G)L7C6te`JRHm#m|93Er@{AaQ_Rg@(F+pM`Ik=Pxkc^`9F= z?ue7MBVo&G*D?QaT7fv`kRzaFp6$w=520ze;IZK#^_cWrJdjzlcaMtCnNbzW#heNm zm$~jWtDc4Fmbm0N@BtKh$R(>{CH|lrz9t6u)FKmn z;qerl_XzT7(?P73S3uk+|H4$OYh@}Ehy!HuZuCCk3G%e_aa~?>sGI;FM2PGru=yh8e`?@^j&-H;k9^%NK`{jCv-LF7$$3K=ui}kTc zXx%~Rlhp&@QX<|vkB4$xE%9zk2UlC3ZL~awG4P}Ao=Qo?Ea2XKoBeE}FV(|AN=oi* z*yos1`6tDY)lI@Gl(3?`UBqB5=rEC3HNNhSW=DqH`O8!R> zL3{zH+hX6obGCKYs3hw6#VOA(QCr5f+fw<2hTPOko=l|3;lbQ3zs1bj-r-9MZ!7ha z@o1{Q8~WCw^8R3)f5%s!SfKW5J6>x_&$Jn?kqCzx@-EOpoFZ_Sq9P2hnf(lFaK`FQT_Z*%ZPG#7|P~<*opz(W5$zOk;s;o2_R3JL}1mz#s8b1C6 zg?WJ!K0duAa7|$DkG1FGwC?tvTu$=&&)MpSlAVV+P@(2ad1WWL@Kj46K?eM>c7M}` zdh_#y*9h}8&je8(hdLGYz|y3B{bZyw0VqwfDKGqaamBF1xeaz&=>@URE2LfnyfH7Y z9D7y2@7rQF8olT+Zu`6{XqPG;1LHyKT9hj1C>YJ7TY)zg5Pt8~zlCc(ZS9o|AnuP% za9v3Pc{1Yo6LLo38k>jnUX9O972$$u5Xh2cMAZ3Kxz6)hu2sCDaPPg=Yh(aa^8Hr- zJRI4n>Q6@a;q#j53vT}M9NcK(;`^1Ivi=I1Wnc(SKGk%I9dd()DyRo+^YH#i8Uk~# z3Oi6%b9;rZhpb?6`(K6u4rk_i{OMezKh4@PwW&+zVT+_k;3~F7F8)~vTsdx6*ImhN z)zaMKx!C!A-Mm~(=gKDmCO5G4o%bhHjgK738mUqmNW3~Exu@KFD*+l`<4oB1T*-ZP zu|g8Ri;-IX;<~zkh9pGB!5lOc4JBCJ9=Urj)CIRl7F1VFkAIoYHSI>u^nn#Mz@=9{ z7D=IM_z1Fv{yg?s)`>f-*c8V{PX9B1XSmGd<_7lZ!+8 z1U{e@aJkaO521_r1kpImT~yV{cvH!^wA=D}cSf9=S&Cj0q~WjwKE|-k!ZdFBbZ7~I zzwCYR---G%30kZw(<0ho^*k{q9+Q$nq`fIi@^` z)x(K?P^%`ujx+wPK=(@^RU*r~ythsxju!UtnBztjR0)ouSTG)j?Es!9$s#$)AfugW zuoZ;a=5D;&AA5$}_LeY6;No^{FD?Fg;Z~g_k)@2xcd>x#u&~ini4~qh0(FzG0@;+p zr(5+8qEyo@#mNd!NyXei`XK5%|Cv<-oxm(@BF4th`v`gNap3$n13VA~nkwMp@`2Am zlL}=vhH?eqndDah9Wjr+UBow4J=euq>&Ak?-wz+0(^YJZGTXccq6i=!dskQ|3T_Ip zZi(Shkx2N!4$rfI;w`&}BX2zGfp2@rM1L;rEei7e33Ji11k^LKT+a*iu|HjJ7~Su4 zZ3VGe1`-etOY`RYD7FeTPWsNo%YtHgvsStqiX&x%y;Y#x*E2HY`(SJ6VXjTMXQT|x zZ!;44PdU8UX$!xSlgYgxj&W+Mj2w> z`z%ePFt%`5imKoO5El!;@@BIYSoi#G9Y{b+pa(q4w3Vk3*$ArGuH*Sf)a>WM2M7Lv z6Vr6z@GIrhVQjy5y!v--DJS3%@y0dHyA?_p8?Ns6OyfVnG}|5q7EM}~WpIIbF3FE4 zu-ya6^a*y#sdO7(d2sn|Ah9}sQ>(I@otjSr-0UKJM}W)B!WuyH?n9L{XEpOvxTG{w zu>^}pBw$633jp_mYdF=g{O1NyQ*|}(CmSMd~C&e@TI5X^EKRf z>m|6dHFQHe#NXYzK{T*m;N@J5QT$*j3h^&C!*j-CoxwIxv)fTMY4;$&jhmnwaw zcqGB}QN~dmq*XWLvNyFU;XrF7%3ZEM|2t%Y*?_9A8yZYldcpkbPpr6z!v6Z0qSUcZ zP4(fK&Ktx`oU@JiVL{$plUA`lkR$KE-HGmurMZ!n$%Kf@$lH4b%@- zegz}A5V`+`Fej^kVo~89O19zMH9J4`n{o4;^3@@eIAsr-64Su|_}FiSC6w((9wO_# zCzva6gk4XG-$+4&89C4BfOhX{YBw<26wqyd9!SsFRLuKQ9tI0_-=m(T(?13(^;*C8 zX+DJjs(*->0x;`nOcpwj3Awxldz-P@%HDjezeMQUdkN;~!r_ZC7#iGVt?w;g)!}Semr6#AHspn|DV5fr~TGM2kUMo79*9sI+(@V#&6= zwd_OL=~kFOtC*%6=wEnXf|%&B`_QQl=E5I?K)K z1eGcE{nO9#6$92YYefU|1F+{IV~H#T<-!-X+kMgNIo0Ju`uYG<;H_HFGY=+35UTOK z`)!lect5t_0##y++<}GPS77B?R;kJuz`jd1*m#Jt=vV3WUb`sh2wTBGb^)BH1}gq& zDrMhS#T9@!-WS{d2B?yUa1g3!hc(`h%|*B?KlEIM-ezVz<@^`9k|@7&Rw~vZjqJ$- z5p}1ve1VG?DO0lB60X=a9m*!udJx7)uMe)URZiUQztHCYb)8I?%DVnZ&TdnPm_T}y zHsi5e<+>1eq`;^rxOR3(#h+%b)hoYzCyDD2czOqDl(Lx)g{9*ubU`K(QW?LO8bN}a&9KBV;J10*iSL<<=jzcE%tY)AYBJ(0spsS8iQv@dPsSWBO``d9zK3nr1)mYpU zOt#a`ZyTJ|S>Br2lh974Gq}=yy~r&u5%+%g^vB+Y&^t0i^VieCzCfCr9oSpHV4-vM z`l}A)ZLSVPCi#l(&%|`kt(ry}E92G1;%%uXZ^cFRYT-ZERGeyH4}R=`L!lX#Tit_h z_=Zm2dGXHb+^A%+u(yg*W+- z4L@7mVYJ24Hsb(f|ACYpo@_L@%`1?|hUWF=5GS8)1G@p~W50j&n>$ki@)}#Fl(Tb5 zDpK`hzD|Wc%4)=LTbFwy8XmJV+c1R(;(o58iN*P%=X=p~sT{PHCl}X*ZY~?gH!t+p zk=HA?X~l1mnnrv{k=ySq;~B~KFE#M?%)CzKrmfyzn%1#1J+(?59Yu9~R8a*bJ7Oq= zNFIztfjQhSZ;x!?;-rPEsW>#%(v(@dRvRf}EP zeEJn^FP^N-4_l?qQ=Hx?ld^4deqSdg7&zh$^%2innyvEbP>|n0*jhyu)*cxF%1&jiJ};Ln zWMd0{g@`0pqRohU1I};ON+u(&Me}|<835HqjKuyIZk3NP_bH3FtBNC98jSU${ogU? zj{`CXl$)zh zd}u0)R~dh~6gNuZPK%yt=d}Dgr4J7@a*((g##;u;r&jKgwYK>RIRa}N`Jypwr1gk{ zA1mg&bEW>9%)QBonNSvn0icEOD?aMI&1lXjKREQ^C(qL=GR9!{NqB?=wkZ^D)C z8~UTK&aZm(J2)r$RFyqPn;CS9t~Ecg`DAQuL_+^`u>a4!CT@`)I_MTTQL3VYZ#PFy z>sBYHvLG=~F`CY?zi!tyPiW*Bro` z)$5?vh3X%rWX8<->z0k(Qf+0u=oL>pl8I%CDGd=PmvT6ZA~;F8`mk5qspQSy+| zNbhrt8@bcgmySCSXWh6+pY~2gRpUkB+|3szmb&FiKC-i}QDSE|595c3?$kd!u;;ii zR!iHWUrbRD=pR-}TN^^E2>gI6^mZINWY&lDN#T3kvknqWyOSj$M>FVJfqT+Mh zJYAdXnYRur0D)lKw#`&sdFR$g#hCf~enFE$9?w5cJ523mkM`E3*H$sT%+a8fnb?>v zy}sRebOIbx{od}N=$poGv?N$e$8*Zgp^HZF!JaRdV#YGa%y??T=Y{2LgfP6Xf99Fk zKapZ*D&iZ~euDgh@s+5{p-rVRPZ?#~>8O5RV6%03G%}#=y3M-P+b^Qolu!|)WLrS7 z{F$jwV(}2vb*6LPVE?kWzHsr=3SfR>h zNw(jtLByO(m>`DqS43t6UF({SDY_Hmd%Fzj8*2{;;Kp-TF?U&5gU`- zvAlc=)I9tVXtA)9mCJryjfY&_0jPtC{AodqG_I;Jo7Ek-<%h?1MRMgbS&P+6cn7sYgHAyldg#MV zkFc(94EV|)znaQY`-M0aBUwXy5Fk{D=2w`BxL?8U;17t|aKeD0_#-k>`jBhq-x)W) z<^CBruiD0o`yNT~ZiVx6XwPN*vLMXiZT=tJ?RI?;&zn@I9y8lQ*wuZfGyRh$h7&fp zZo*{vxeLRVEjqb4^KhHS(AS@or7qnEMD6Z4GUs6|R>yClwi@nu+I<`2L2tR%Z6K;p zK$-ua5&PBO)6nkDa&b11y*(JHfqtfSoppSeNyW)F1UmsIiFu)3p4&Qt>u7?NmNI=j z5Z|Pp(5;J5Yrft`F!n(Au{$>#ag|U1rD#uFA zw?sx|G+z&|Ag!(DI5m+U!=o~h&WSC%i;m;OnPLxxYeqTXHr?de;dJ-%o`!|Yuz)yD zJH;(OCNgHN&|?EPKNkg=V|?+l49x>4DeWsC?ZAJc(O6i>Kz7rs)xF0pSbBT*y|=EW z-n>&l&99E3@WW?}k|~sb6|}DV?w!X2BMXADfd4!ixH7*F#P?_0Is;QNfF2(BytcW| zMRk0RUo-jEr?moUnVQ#_QxKMgzY%67E~p7!CSAPp{ozjr4+~-0_R%kzd%<`>*_zVo zu>|#cJF*~Z90wtgrxOjTZ~5K|fs=(ix3SYu9SFP3o*>7=HC)C^!o8v@<-tFs#~|o)>iU@ zo=3cDlSoN<oc)%-3eSw?BRPcdyn>^VsiBeZ9R6Pv%6^zC1Am*$ zpDd@TcM6z3=`*tT{X(%R_NV0GByU8m>z8eJv)w>ux>AfZ3dyMS<<(qI{+fL@C3#G+ zIC)cRd*RddaK~A7F2#sgzzd!-&d`qVg5}vj2UdFWeLYi2dfIRjoQVVID_SN)mO$0* zeYil)qrpo~KaSu;Z0x}7t>dd(HQtcWQb#}Qeaac#TLCS%1H(f+glaUB>Vo`G9Eted zS;KLQ3sd`&?3Vb=VXGwL(MtHhH>NAei+za(lz$NRYqdHMRR(Dyff0$H92%)c4PRgfN%Drd8TW0Swe(H(U>Pg{HICts*i?f+w1{{QyP`n09riRquw z_y8=EINj>RIVP*Ap9=S!N_X%D88K60jEboXC-}g~$5grCqnCpE1>hiKR7;*)SA`KljuyiM6L^ z)!IGntH%il1d1Kc%Tg6=w&l;kC!qt(MCl?D_#%}SSv%v{>otsz?PG|Yjarqr_p{yb z(tmbP01N{NU42t|G-OOF&JTqVW)LDxfB6X)))?eS!R^F*N3R4wROmKx`BvQ5; zvK@wvFI2zKGCD~+arkHO!<*KBmSV;;d~7fy@HKTfa^`$a)2#O(A57oFZ*^cd-k*x# z{WJhHi=8TXu*Ke1ctuJhr5GVLcK!1_AxK~w3*)$d6&70lPpBn&r-GD9iQt!BG+&*gqEU9MbK@Xn!h5A(W52kS=v zXJWIbv;!Zj8BZ;yr*Wdk&s*sYwM|KRXl+YzG<{Avgi`d9U6qzpJxPH|;qh0;Fn%b{ zMAz8cQmnno$**t2Wd^NfoTWZj2(AI1Mx!iuL#b>>{Hj2!9QzaR{5&jRmGHW8q0$xE zEI@Cm^&X?~rSy1`mLDrmRh%Lgb85CwX>Vu5hzSHx@m~BzCyefy{UkIUcHL4zuAR~E zORd}XdCM!H8{kQ_RM`tZpKwK$hn`DM`*5!zU^qClyx!Edj1WM#K*%wmQq@@y^X3X; z^lP{SMo!vZet%9QK-4KTFJOJ++(T!zUpI;$A2oN7zndDDAAvs{^Ke?S=)-q`x@YaCfKsoTEleT!~;0gLs4 z$bS*qCM$>>PjANYm<2-h+sRraSXtTw$VoSW;t{O%i11-;9)TIdn-7Q(t-~W~zaTOy zX18=i^xm|j2Vjb;6k7!Tm}{7MtyN5BI2yKiF;c+dS2S(^gbMlSc5YYSG$YH5<1ANa zA?th!wl8rzC(3xaY(iAk93FtH)F>|M&(@_5lHt6{(~dya5Zl18o5Fk9!dsl;GbjU5 zs`Ecj9mi1G5I;emqr@-v1sG=F?wNrq(Odl>!Zrf9;P``5YB1t}R~#8QH+ZC12X|h; zgDm)Qr+}K9D^XXD+8^(GWCEC&#^+P;k5OZ;CA=RuVycl2$pIu$jX@JIzLe;S8DShC zBOMiw=&+cNZ^jkaYWl^OS*Yof9vy&NzFq}~N1e6q#Pl;Tz``N7r%cMQRN2KTKZjJxzVIDyGrkJ=ICBJ+4Lj%rou;~x++7A5V z|I8e*P0ndzP_lJ-+9EWBezivTSw!_Uf?LD;N=y`o6q?@oM_i)Mg$kN!4ch-qua>I3785gBPPo1u^>@% zl4z`T0jsjV;7^8}4leR(+@CvPZD_Swcg>4Zg<4A zY^7;_Sm#R4ve+f(oWy&st^Vj2Q9u0lmZ|NgF#O}T$mt7xqP#1f1^vH@>#R3C3+nM& zE4&|b(p%oU3kN6miXL6?jPnO(g$zRGM}h}7%Grbk*Sa46{dfX~1auqS;KjC%cv z4U{HCMasK{=v}5beyOX=@2*B~E9=wa)3A5w!hy1zX=oLXJ@hmI6Y)rj5#erqb6LJ* z>tINR;xHA`>(#G~D!o&f@6d0(d*c1n^s8 z<8l;>^hPG)b<2B%G)vo!C#vtyTfZKmHZEO+khaHD$xE2}ka)txQ&u96n0^H3xSmd*fRqy%-h z8PKnT4xr%Pum&a=(h-xu1&?QBuFF{VzX@A9iaxsOoZ47k7qD6TRk1@%U}%f01MjE< zK}%CO47a*B#>ntF!zc*4{iGs{f4x9Z`~s5>X-FEXkTB$ud!5EGa@|84|K* zFUyR|@-1ZFmqFHK--!`L7)$nj5@T#*H_UqOq3`eB*S+`8dq028Yi7>*Ea#lhd7k(C z{XEY)QR7Vo^HORu=W?Z3eW{2E|K#=2HSEA#snW4*)uf$mz9OgGi;V9+0vBwNO!*U6 zte`>3mTD#5;Fg5;_HT))oO+n!0!(zEh8*AZYbthV?E8G!(D{s}F*iZOpF$6>9ryrY zq}~V z?JwHd0B~4&=NY)AL)e?m-Z#4+yX|M|Qn))7vlR^Da!U3p&8eR@1Z>g^blF)fn}afK zU`^win{)MDY&Q7Q-~McfDeq18n0#b+n#Kfg{kg>sW=0Hr2+sG)iP^q#K}9>ip8q$t zU2+3VGFY{o=4^8nM5Bst9fI4C!d1CaSJ(N(so-26*QZ#0oRJtchJ2^YgvSDTXPm%h z1>OO*%v5U5v`g0qe%4(@?)?J;az_@w-+z)@<9JI0L!3w6LeAV{&|&RrDhoMknMGyH z#j-gSk(dw>6$X=E9Xf6n$ z_YQosNFSqoVu1=S*?J)F*NgR5iQAX62%jwypq4=~_LcROFu<{%g-Ny`3%HIX;@UzP z<#`OhJ$O4>4U3wVQZ9(IIhvD~*u&uUy;`fX8J7KJ6>eLn+$ z-*yCWAJFMJdQFDsk#QHDZ5A*0>JvTrLu?g@Po~sEvrEt6bSne&5GO-6F6RHR-pmE_ zs}WdQAeMK%o$ezY)~Et#`j&psq0F~AgG`%5Ez8367KKox4Uf!uJ0#lVVO zIU1lTx9xf%h+R(OrhEbLODgDhtOM|BL8R9^dJYAWB=@`o`Tb!7sCfl-iuHbEU&NVtR16?de2-W5_Z-0Illc2>yH&yU-Eh-(k?&g}vX zIj*UuWTXptH`xE~oC&Oqc_b424zZpYn>{3wE8ho!J*hP$fEzSzTM?T0+5Z>d99uFe zC#k|J@Z$3mOZh#d-i+2n-E&Ilrh@ij88E55QA|~}YU}&f@u%NTGheW2~4ax7m{XqGO8;v_N zPF@Mk>tR+-!|>vDfja>@{EY%*fL0|bV71x9+Ze#=o6%p>P;>trpO%r?MJDOVOH`(} za%)|8EdFk#>fCzs$;fl^W$MSF4&oPXpYXGR3@sWMw++s?sj$Mk<7@SmF8iEhVA9{@ zc2UpQUFgQ@=J=lBlW4Ya^?ok;7+d72v5TrG>5F^!O;hK0 z@@=Qgyu}AbKE0o`pSmFeVGImQN^rEsOY1X?N%c4{0w^7$oPV~5fFwskuEby!jA#?o zf-5HPnTl2&saUD;70~+lU~v=hBGR64+9nN80lBu{7?M;$gy-cMv((21mFFbvOvOzq zs1nL}MfBaiDI)a2gZIBdd|>FG(`pruW7Y%TmeO{R`b0Xj^e#xsTArL1W6<_M9&Kqc zcT2G5@T^__@?m4Hz)K0gPy)O;!t%ZB9}lBkUc@D>W#!l%({{an%A>||0co_p z4AzdF>Ia@AK}@}RkLk%brECU^*gd&&-9xdpFp`)5Ew2gpPTU$$yJZcg zRg=a}eU@!bzI zrR!}0CM&K7jePYJXwyhd+TIeNti1~j9Dmjufyxak>+lksBu3UNy@vZwc>Oe|XEyjR zYK?L<9|s+{3mLABk_IHY)I;V2`voG+tJ?Sz*eSna9?!<7>XjoF9J8k%AEXw;_KYZ# zklX6f0umcF&TEF6WdBB8QipACO@QAe?H`i|9wh`aw4|Q;8_p{0atl}Tb+b@(((8l~ z$ih-}3#?%ZXPMRbKaJn_;}m~)k_Hq$;QvlT7T-Spx8uCF;3H-1-^aY`0}@-mT$z+? zRHU{MEUxYfxUqXWH=f_mIX&5Ht%M-PKe9cRG~Z#t9m>zjoORf1rp5Ug#xF|SpC3TD z))|Z{_&`hcGxcOyABR-ONgEiV-lmJz-aCxBE!GSeKZ?AN(0XXM1(MCKLRi&wJ5^dv z_e{M_=`Z}0t(LZ;MZ8ab)eTMf^Woo6+ma?s>5JcktLWXrE9nK8c*V$`Df}-!%VBd~ z5dQ|-quEx!z~E%4NLM41TQ|m8-l`w=s?2iZOv1a8=`F%mlmBD+P8lb>=f08I;DX3j zpVE#_$sgwqvqj{jE!%-31}^$kux%jh;bOIzy%5$((9hw%SWminXMj0kM88o&*jx&9 z&_N@YZr10HHlSH4Ei@2{eJB3Hl|%T}|Cn8f^eM?Iro&|Wpt_9f{{m4_@g;}dKng~E zJ-=1rk4mcVUAqP#-fY3|;m}6(8;=z{YClofPFNg&nNrUDmu%*~dK&#UjiDb@F$*^! zO4@O>lwUWRs=%BTT3NQ_t zlGst@>B_r+KC|5Hj4HE;KLHyF;` zREk1wL`oGZaEJv5FX}8Gg%dhD4h*-07WggUX)RAxDVQ$#tE4-p!T%f_Er%ZZt!NZ2 zcY&CLX6P=%uEdpTuoca;)G_~tcEHXE_y*yla$9Fla#s(rX{-d^q22Q*Zp_hgHAwvK*= zRzt=M-$_9lXbhs+1gDcS;Rk1ElGCpB&+74OK|Idb#$J=<`cAe^*Ic2-geD$mMm{ zPbKij9*#%1>rKvi>>hNa8P)b)k{qZw@fn!-@Yp zxzFHyxLqa%md(G6($K>TihA^>1BRggC>h+u>qzex(d3;|krV=Eb@A2n#@p51ezNED zfKYukSL1#u(a8f~p}DZ{tuG~dewA@jrZ!-G=LSb%2SS1X)%r+2r9|INozKAAUo=(7 zm&&aJ92XOZ2=Kvu*160CI-7$%KPF>$Vf`Zt?aX)l{aEx4ArDPap514~g{thc4P698 z8XlAIl5dzGo#-XNYQd>3t*Q1}jECR)%DHCuxO(e_*2H2;=_OpdQT3@~dD0W>i>a_+~Rbq#r1gPD9wcP?&N`;Tm^g!buigm~wRP%`< zg)Gjz<&2)B`l&U$y2takn<<}e8`HI)i3HfCcO)pC+z2hbCukBf@hRe5>L>`Q&_$@~ z+5xiz4`ok(vbPd#E8U>94GXs=u>s95_PrO3E;C#v24`qR3I$LiJS#n&1!=+oS@N)M zvN`s-s5?wg>4k=Yh)(i5&ngLfg~@HcMFkiX`s=(wg73aJHW4u?egm8UQWVR59982L z324H?F6zw8A)mk(lM$oV0aSvZ^1_8V#u&B9*7`A}u9a6Y(B! zky67(UO^kzu&3mI>{Kur4gGxs>d_nDMn5Ic6Wyz6ACp%W%{|tg6Xu*AAh-}JnPXi zyRAkuYSI+FV5|e^)VJSuHSTlWs*H5lv?Jl0h3zFkL6r@uH2zs7TY96tKw#_*F_wR@ z+C6!4g(V}al;OSd^>t|eRa^09f&%A}t5^jRsk|;*T9x)#uW+7O@?Bh!{;5iru28l5 zNi=m|47=bJu40)2zB0Mn%t?@cXoxGH-q!~9aDqEODllG^h1KgSiFvky`l>E9>q{L{ z$AxAJj*HaMlGvp%XZNVywk5c~(sP5SwO4-l%)J@o=J6Lo-jf#=iv9Vua4YB9aZ)^8 z*Jx&w4n=)mJE4pxA(Eg9p{1Ux$`->WpbhuA>TS{#@R~~&DTCMl*8_QBvAf%=LiPh= z@XOB%_l3Km_?KtqIdCjfy@q)}F4a0yVX&Zv$I?pqmA&2F;Bi|;+wnA8;t&ac{%ze; zV(W6xLBaqUTH)(VB5smi-0Jp%IFsv3Q_^wue%6reMk{s0+5O&G8P3P}ZGP3k(!CeZ?+D`LW5u~DzyYC(TV|8Cot z+t7Q$)AT0nd1zk@k|}WoDGG2evhh2lF>p<^M!r8M5DvGk;g7F0%j|RQW|l-u4WB{4 z2t1atF2KzC$~ykSzUuLgSyK{i(>*e5CMk|6(yY9f3X|-l+paTW2Ff?k z1n5*>q7ZKI4@rrhK`GXzZSMEZ&Ezlr=-MJ4 zq`}mAT0oqpGM5NH;*_DP=cd0(Yp91}_m?|M4f9f1Fq#T45${TQtmnm$7p$lmb*Kr2 z1djhW`PW_qp~wHdqyK;URMn?#VwvKU1hU>?F$lWaz?&SQrOEZ&D=@I|iK1O$7hJ)^ zp-a)enJcAqdciJ31gs8w&@3-R@CF{(dh>TOKP{B^$isYue4zUK&q^^%5mhxy>!A(e z+GNp(kaMl2LZsg?hqb%Flrut7<9LnBg1Va~Xo$?x4R$<4@03~5)-&*@W}K$Ydg(wf zCYL-ND<`p=W>h$VLL6uW0=sz}S>|ls$EmN+yAEQdgmj ztNb(?$F6$WBd#HSe_C5qhoNE-KrkXVLrcFrqM@T-=;p?JZic4Rd&%ylC;N?4l{6Fw zT?PnH=Q*kTU0ZR)Xm|&|z1YFb?u2s&5)^7T!&7^z7x;DB=%q{v{>iD1G_Ut7NmIzE z9nk$1whNB@e`pLezkS-#5 z<(g7jT7JsWjYMK69j!&ircPEOT+}m^?DR%P%$N5^LGL}5G53_vLNU-Lp3&H~JtRCE z;oB4Az%^!i{fd1OtOk(#h(7yqzC-X})M+?%oy)m11_iF@7__)m@2*H#GsYEtt7%6F zH}D0OCQJL20|Nc%gp^5S%ueLe4NEq#FW}sCn6@9w_qrouG@Fh} z1A|`3V(M;%AXLNJ{^uTtX%t(N`hwDr6TOVAo5F^UnJaV7K;#j+z($IwVUr zfXSQw`$X$g@*^d^mHloBBPEc#FyEb-$g`q$@V}jk_e8dOoi-UirE@<&OV9nOf``@D zFIv8y?}@K%7XIY+RqfhaeZ{)0K{F#jk3mtmmW7^nbCI4;v$PNh?5bb#DCDu7OA5Jl zqyX!(!qvp~+66^2+>UUIHQ^2uKd4XiiCYOWIT{6(bEj7;WPZ`eodz5;Ul2{+oYVy# zWa^UnAT3OJYee^%sj7x5_VZVYl_f3~RfR9Vz%UK>v)-6(Bb`ENkYF(I!{$WG? zy3lQ50N8GbRx6lA8kP=qOT9y0*xr1!P!7T&k*_+(tHhx?=6HLj*fimB)v8_6iz}de zT2fAg_^qX#GJBRFMq{}z^iXA-e*A<|KM+QZzbs2~-0h>1Ll-xP%x?pXNg{*$zA+8G zgJZ&qdKF;ZwgYzB-~?Vp9z8N&FqgTF?vd|Q=^K@_;veALEs3*en~D5u&<PP-U1&T19fxYX)%FFC<)bTH->tZ^|#G%@Epvii~*=nU}OJ|L8p}n;s zdGhB=&i&mNC-cM|;~IvB09*aoQ7etv*ZES8mlPvudd2pJ`c;LlsmM|rl|5O%WxnP2 ze9MzA`$kV+shD*>Fz#(u?E}dd(gW;rR>oDl+iZps>s(*t50QzXi7|9XT2ZzH=!*m{ zgG|gC|F~o76Mbq33o6LfLCYraK4Lwcc7v9rHBGmo z7Te2GzNFR+5U`SPgMnK?{Q{SOUKJ_CD)VMt)WCfvY0y?`55;;Z`Y0s@jD98VB=9Qk z8UAYCaL&#l@JFJ}O1JTaSyKL!QVKZ!2o=8i!&q(UyI2uS>Kt++?Yr%I?0T605yTls z@;zGOrE6}atO1-twp&yKjY59C4I8NFH32_%?^(;FbK;bm+v8XET|?nEK~1j9$I;JH zpBi>Ov8;#V`vx5;(x5WaE2%A)#MNjuU+~vQPO~?p&Fbh?T1oRySeK{>i}b8}R276} zyvUF7QM3hY`)oc^E^w(3cS7HWP1DK-5=}>C%%qUmoyc#pH<frrI2sR?i^Ymd<7#a}yZJ7bl&w0qiDA~djUb3ucLUVclx zyOU4&(zjPh{N2|Y=4cM=Ef5pc6%9IBXKs-nkkp54Wm z+cpJ6m$>93UCjkBUn1XFy!NX01FLgjRxpE$C(=}3722^$W7)Pnsg#;^i7>)C%3pGD z;jqKoIz4Z?FIQfAt9J*k+wgI4BQ1BFm$7N9RX4H0j+*-dMHh-B?Ws93!&Rx*JaD6f zt*c!tiQcb>L#ce{T6Xud>uBr~RF{}r@wp_NT> z#m%>EGmV@$IeZpDx&ev`mDgFT!=a*UVFuj>QV6SK9wiem&m3&qU~sh@NLw9#`hU`t zki5RECq9H7BYZ`vCN``KZIMZ}mi76^-UPvlnQ{g>Z}oB3n38iZ7$MvCV!kwUiH!+E zLz2+)g9b28Kaa-`G-bQ9l1=|zLtS-+RDmRA$6mYw6Kfw>k9T+@X{#FKJHxsOBf+tk zA@8f(&WpN246R9uD}N8?W#A5s{xPeAo$KOg8H;=e>?aEDCGOxlW)p{4TWaF=m|n;a z<<|=_F-A=o%WhXYtG%`WYCsYA!XV7BWWE#{Uqr2qX^yMHD%XhHSH2ea;;q3iRc;n7DC;w=7@OP}Q}o*gwioKZj@YJs_hweExd!X$ zob3)0v64!aIoAVGDs_QKi_Xg1etMnGT3c`7cRzbFc7$e@@DwKjBmV+*{G}=eV=ub) ze_?*S8GV27TyZn&TxJNzAms4Pdw}XAS7J0R%8n(wNk&1M$xo=BLQ1r3rZ=;+2sR~p z%5I*G+p}G>-Cmb~?I9Kc#79+#G^$m+?3J)_9m$tuYCL(g^=g1p+S3J|o(~>> z=9zCl1p{(sO34ZmOR~I+SPNuspS!C%VB8eI=CK~Ysb2PqWueV3CPA<^Wq%jhopw6s ze579_C>{%fgHe7V;KSbDe?D+}eR|gY{@8A7g<9pe*D$6J- zMCQNA8>j-JHGYvYO?21&x!)Qc*gnp{V3iRrp=sYyKk9VxOn6J2*Kr*G;?BwMWlVAG z(!3x5FMa?XrWHvAzUXO*jS~u7>rnTDxeX7s0h7rdsJAS0rWjbh9j?^Wv|$jE zxq~d_dq>7jW2iIRGiGaaRLD!Wr^|{(U`XF*Y&Qr4271(^Z#qhmR=eaV?X(|H;3~vV z9oqJ`P%p;lpov+{`#S);#{iH7f4INt8u0#|pu~O$TM9}it7&~)eZ_mMPtU+_0c%qF z$+bkQCS!IV?%G;v%*!=T5gCqupuY=X<*@q~IadJl;X#0?isk${SK+>cJPyrQ>ndV! zO|CyByH`P~DE1Ffl`t?n<=fw!7<&*h#|=~PKVFGQ!M&_!{P#g*_P36r5ke$S*GZeI z?%p7JB*qG`R^7$T5GrSX2tX6Hl4zCv4X8W*{}9O*?QcW>U5S#RDh>mHkt&s3dTj(~ zTg&$}2JBdGhYks70HGUVn&|u5UF=_K=Fm4NDNe@|WWb6!eP`(|U|AVAq?;}DhU~)= zA?&$(e(rneU?_~DR0}&4KV{S5l?mW$L5h}3{%L=dL!MUB8#(cv6MKnqy%p3ipXyX| zK^@+Xbna6MIzVZih8*EaKF_HhVc*}Z?$+i0*x~il&t-DM`_^Epd`od7OiSVIPDu8P z@f~yyiGai;f{(k}KxOI9c%dx72<*QdNIwS(M|Ex~1$DX!1VU?lcWv!REk=;xub%dh`z*jI}} zcSwXqY@;?mB7GE4lzc1wCHz4?tgm_8B*W6pK>b0AK|}{qLY<=TK4RIm3A(8VyZarg zLBo+d)F(?TH8u;zf=kfq=1mm!d(IZ0h_oY{2P*(AS}^KD9&lz z+U@#m2_#m44srD^dVZyohOgpROFg=!rT|EL z$62kzNy?kN9h!6YvICSU*Rc0?+!QHb`1eF){<$Nejaz<_5@5z2G3>orkYEMHVF^va z!%@s#93ddPX1<$Y_m#=rV)E1#Un5TpLv{h?c`b0mPm)~Mbsh+AFR2CdUnU-bj!q;N@q z`?Tt&{s9jNWK-*Z5*ED6cWFajj~}`c_4m7Yl)v1v%bL2Zx&Mn!V|xk){qXn7X4J0r zSp!n^);xuu; z%1)691Q7{a4yGp*mWTyz)apt92k4wf)~Sc*0tY1dM!8VfQ}iJlzPaR2y$-HT3QmV* zxp#lgI<2Pn-@qo4Jah&B8ci*$f38Ix9{Ya_NBBQEwcEu`Z4G{!^_r3tdUtL&^oEB> zOo@t^Vdw@Gs+zzhXzq4i4D}!H1vyr>w@`IX<>lr2RML^mKRDNsixE9L?K~OpsC(vY_Mk1A6hL03tMJG&$oeq{iL5q{@a@Py!-Foe)ITi z`GQJN_sd{uk)qz`O%KHD&C^e0G#KY(&5jB3R&|ZDy6-Py9a^@vGDF zaO0~!mg(&+{|ky`TurVY;oE7*klwdnaXEs{q0X8V`TG>_?Pm3y;Ndj({3c(=^>iSOR;991z9n#Pzhz-}4%j0~6O)W#Ug1_d6d>1BOP2jc4_&w~=W zzXxHe3Q-KUrVAER+kk2`n~;a#-xQCKq|=6I7W#@`6B7PR_|o4$+YSveTNd?>KU>oN z`$gtcL;k>{BDsg45a`TZ>(K?X1!?~M@uZCG|5z^Re--iCqge-5kk+7=S0^}*%l2vm z*}`!AIwoy?@`_LDScBr;*EQ9o=M??9{qAYatR}V;3dm>uC9JlrkBuES9#Z;NVqReP zQRUZ+?bT0x=gbJ8UihnS1?{|?%7LcbhX36`*MWt1A>JQtV3aM{mw9R*eM4ki?5-B| zopai$5wtf^Wl9ZV&(Z5X=)~&eeLc$IXg^r8%q!NU2q6c{sN!1Y;IO6$L1^TJUIi`R zjfw+b8#5npk%woWJ@nv0l0w-2aUTL%Z9)y7Y20CKsDek>R^_L*lS`?bJ33v&QfDgY z4OaI1^NPCiJIPT#wHwDFR!0Zu@8%1zWphwGU$qr>v5nxV!$JXhpcZT@GEXq^XefjQ$1GwdQHX3BeLoBGCVwTlR@|V!3#ckzHY)P!lvyL zfbTG_TFs3sqdK7LdwAbwic|$Gh7kwq&N^^^+Md6Qvz-YV1ui5&dsF)ta%bL|q|43# zZcjkpF|ZsrLlNLgu-qtgR0M_AY5SlhB1Azaa1dg4uX3se=Ss<^LE;^Nr|s~?cfqpA zYv~5oWeG&7Cy^UuxVpqTuOO;GnqG{08+dx9=yJgSWHXj_YUXTWK$w zoYxXlyv`hnWUu>L`unc*O@jtvsT(r&)fN9jGj7iIXWXfUt#9ma(mjf-%;=9h9b1$m zA}>sQ4Ji*@I!ve#m^IVostSL{LHcb2eC59@L)i*=(59>08QD{dr-PCRa4IiLF65;} zf`nA$d_Ed!lIeUurNWUiByU6+y-8OG5^pllOX|-)DWR8^)0kmT`fPR+(&CaBHb4NV zDD!AFf#HUJ2Xcxi@;B>6d0l}ggL4E(Y_9DA2C{En0aB&&6f~#+ai&Es9T=~6V-7Pf z9Fdi$yfCDWffy=GvqT1rok~bHHLj;=hQPq2ACc%fz~keaG#cE4(g6l#fw?67(D7+j znvGwM4xdN#%xwZKijM1mk-M3=!EOT!sm;Vp|Bn31niHMKR+amx$#$g=!d|0vD>(7})qikUA z)Tkp1+PxZCJg2`EaHbCfCb^(zlP86Z8iyw6ijhE_E@wvcIr1k@C}w*T$ZQ#7omdCt ztC;g56-}lw|7}K=&p-8f9JP={D1q72!=8_U0e`^i4Am^4n*f@z(!|a6T8qk zKE+fgPUghY+{KH`ue(s79eX%}ql~@TK>ntIY!Fpl9VuD0q*>iLR9Dbm8vgGkE?$9qs^@=Sg0bg7uCA7TX&cRN970v2MeM2q|V|Z|OgMdf*#x#qXn7OhBA5 zPUJG~ocvo*Q1CY|!0~UOo~Oh=nOKgNe5(B_du$olU6}RaTm{xOsr4)%C*TocX=*EJ z2l%x0*+)q;5m=$A2TILqCV^K9)OOL$$GW_4540wOE<0eP+khH}_s>51xT8z%!X{&S zM!Kvc*C!;JP~G9sel4hCN*>M(1EZXo0qWf38T7%xt=>RyrKbE%O*Qu`^nSJXns?HVG zkX~iEUgJx^7T-CZ*UMTUnKcc7lA4ASMBwSp`s+2MyjRLgz{d`mdwNV*)GS$GSiGzs zV2P|Q^vQgWIkM7A{{WwRdEwB2;_h6OZTZKFWyE*|;r-B@^IJpDxYTC=S4Y0`pi9*?5k4#1h%Ocm=L zFQg|9>;f@4(@XUYd4BWaODD^~)r8m5M8@wK%F#b`ZjcYs&*(O?9tG2@Kof>iB4k`Y zQe~=E@WA|cbCXIY$+>)bjg`x`xfJyT4KN#6XjC?_Tut5O47GART5?Xoj&^VYNJ~}2 zOURAdR`=LNj=d&XgmSz~GV?FO*I)rhJn&PnUbDA%88A!z-C^TxCn!&Yb|%Y!tL!s8 zUe(hKGjiSgncS$D?i@3iGl6{C0e6}9ZcrSrsfbuuj#_WF} zh{L%pB5yS4d;kK|AyS-2ckSYTtN^JCT0445_-oaz+*irIA8v&f3FLqMvzcsTQZh;B zsC%hVTb%Dq#YvX-g9&~tp9b6@0>8{SCB@q&VyUqG4_k<*=T&XY3~G`OZs|$s{NTlJ zoJ%vBppLzMB*WZKc&U4#x5RhWM@xc83SRG7Jh z`1}dDbDY>ddfiYSf~m7tF1(MB|08<9cQmo#auB0mvLhfl=ZH7HkgA0>d7azL;4}SB zYV#!vj)@?YHo^+)9%wYBm#6Xw!_!1;DEZ`RFpg}6tNH5mzEOi1^5T)CFUVIRxyPCB zG@~j`XJN{K5!csn?x`zw(`9xVDMKP9SK`H%04H0jiYINaau)!j!M1AD9QJlc1>ZVXT0`%< zK}*>9&!(XBx9MAm{ga}t%$b(ge8^PlJE&vy))a#sEfM)F#B?7@27 z!DP6-bQEO{nFYAK7b~4GUinZ;iSc{z4f9o0mEKc-4Q_HUv2*S(7Mc@x-sQX$gPDlc zk;gKUO=D1*XL=v%$JMwT=9A)tg>Ib}oQ$bT$x^9F;rKROuxbr6IkBs8^SX0nB&-Jc z!nJU;k2$8~{3T?EZOJrX(0sjr4T!VOn8Sj3q-tDA64=(wQeEe=^G9zh%oL_DIzKTCLH%)VX#6N1%_`hFB@!`2MVU9kZ`Vf(?vz__RX=|&;87yjoG z9exV$beaw>J&S|Nd)Vqv52~AJZuLzk!n03jnN{ZhARipu;%NoCvD|GsvbAHr;&|aI zsh+7jD$!`Z-Dry!hHNqk>x}s}O(O~?F23c{BHuFP&A4GgkEU{3tu4LJ2>^YnlnAwh zVGMQI4qQ3_;pQI4ICW1o$s>z!RHKbLHyveJ|DtdpEFE~ppOD52n`jnUQh>q9lZ1~bh6G=>FAwO^g7$F4+F*36 zwIcDi`x`%I=u=8>zahFty{Qsg{Nux%3Mx5FeCy4!8B-=Cu^+k>-=J52Gj6( zaFFwR!idopD|XX^9Ey8hHCuB5b!#fIZ0P%Oxx5X|=*#wSUs|21XN}(e!2;?YM25Ef zbm~hZ=8nQ)do!K-&~EM{-gnA0mUbnUW=dlcgnU$-Nmh~7u84SKZ};;3?|xhHKysXb zSuK?<#zi?=pFux|4ZGMGv4iVV0{Ll(B^eAsf=J8wOeZ(4I}Iy(D5TdL*(ut!)NAS` zE2Q3<@=3TtB`=tu7k73|wtyGS7DyaG>M324yt^@k3E0khV()8hO5TW2-_N?(S0&CL zK3~V)X0dHknlgC`SdYWCuf|KsmVj`94ryu$uuwU+i|mqN7X1YjBK8FJbX4q&y5^ui z){h3h)&MV33y=E7=Efb5;m$HFy#ftv+>tsCn+06gU7pP;uPJ>5=*7RTg`1CZacJDj zI_5oa{FH8;!`aDy2Y=p;Z9ntovt-4Rz`rkA6d#KoIk)hwey3l@|FUbbr`DSX8f=|s zwa&$TiE1v>z9{Eyap_&q!}{t}V~L!qO!3JI(b3n*e73fGh z4Zv(GQ?RcW6vge`)Ki{DbIC8oUVa)aoKRg5i=f<{n1p;6#AuL^VyEo0MVA-=4^urr zpxCILv3WKAUZbig$L;A&D5tG|x&u2>C5pIke%k4qS?~Vj+j_P7!Bwl=i=iI2y~aHf z$v~~P!NRe*W#Dm{k;l|bZmp5yo~Ef@DigD`*+C-RviD1Q=w)X&^#)fBUx#ekdUKTj zV^(xx>!VlLB&KNky_lUiVbjjY<@MYFr+85N)-V=@J}GT+I_YWdmml{idfja?UILSW(VT4$6xDj=9<-&Dt2|~A@OHg}9QGl#sj5owncPCtExO{ibE^*WL9*+ z>83wGxc`yx{m@&dtfjqa~73 z*{oHE>-ap~P*Lsxo8|u0qXrP$92%eNO~#m|(O%kTtMDu}mq{3H-8sRJz)U?dG_bB& z$zSP=<&Oa<7py|sR`2>5>*{u4^tH690Tcd0q%(FJn07X(9-yqj%U4>1rshV5;$kgD z#C9*!3$;t*&g6Uq(vlrR-2dpEUUtz#NHqKikrVNttwv67>hrFs$#dGhA(S61T=uad zAU?|aU|iB5tRE=x-F2=5XQy^|#Q{zqS$}eV8t2ms`OscnklfsJYwTxQvQiE))KV04 zjD^2$G!Bu_%Co(4{fEqG8}V^|n6{E3-ZRO{&^%Vef<$^8!gE0S8o+T$HT9MQ%+kt_4~K$rso?7O3~^nu zyGXw?JoHsC;1T_7of}NEqWA1$C#?va_m)+8%WBZ$g$93f_aUoZOu7?U2VQi#v+qc^ z8*_WlACx1*;=}jIORn#1^OC(s`k%eyftfC8Qab1gvVj58`Q!JJ1K0zZ&Y8kpB4!+0BGf> zHRogRUx?+(S64|0cqWMxk}hA3U=&Pp2CE&DHrnIjF6{|H!j)H|x|KIbrz1pSaRHx`=R5 z=abK* za;Xw$vZ>1TzjsJ-ee%ot$p)(W;`#Z$hkq_uirS&7nxhf-26n#WaKbncH~P;INEbVb zG2lOcc>l>NU#*qWUr44I7I&P1#b!}QgkFaYtUj9Hv6P+N>UhQ6zkd@(4OOK>?uDgq z%IY4oBAPtcS@66*9iDY_MHu9h)CT%gt@C@9*qxh_n|3J=J8-!G3G4Tl-1x{ptw;!?W4(Okz>g#ezFRECwG(TywDO?W@QKPJN4ZTdCGyH#lK$m#3!U+=Q`H2(0f9OUVT)Hv&h{cbdE zY<3eXm$o?XH*s%0?Zx>p^lne^TUl30a6>nvCmD6VVlKXceo#Q|NQ=LA0D?fIUmc@M zMk$z`NU*n!NiWgNE`FhsF-|s#c`u959#O+hpt)#LH36ODCc$%u?mzcQKkdNrMRUW@04o7#rUHzG7eX2}->Rqq)=%EQL&3z1U?6LkA z{R6EkXpC99ItHdMnuT^GVB(V^Jnkf0)1>Aqk{dk@8azWC%8w1+lQf+nB85C&|H_3e z;X2O>?UgN1e&oh3O+bCjYFBVD{;;#!yDA4KYx#X0Po(q6Se&SLhx<)V*Smx{FIYsQ zcD&RE<_%*SYtc6F8y-mUC4Ipkny_1-Plavzl2U(X3yH)~ip89#B~$CK!)mn~zP!BC zs_R^SE{3n;MBKEFuCCW!B%%iC1Qs#Ihjra-zwvD0*~x^~JZqkg0CCV5x)rW@(En|f zT_FZx(p}wMuM#%APP}`^P_x8q=x$1YVLscWj>>Z4tuw#OZA-p)h}o{09_^aeU8X<$ zr+Lz-c#<*3MM8Qlmt1uK>OnFy$O+)<{je>+xOpDTMtRtd98}UcXxt78e}mNm$+8p& zN5VNgUvD$rHoZ&gVdwyku_g0>$p=?gk2K$%o-(|y)36=#T$j9sCQxZ8=;bBLSLv11 z(vU4S?FRS&jqDqFkrS)|&;X4itVAmvgGetPRt$iQMd?>5i!bp-=)|l=@4T#G3LiI7 zSKQN@;O8rvG)x5S1W3ER8|#^ZOLda=ig(U}G&t{Q?#AazJ}{;~kZ}31+(>5r&26wU zMQlW<%Xk;H{ziylUb?WDMfK3bZSyVFO^9_GNbLWa6;o zMM#;)!llHBgM}X(OH003`qd(K=T+->{aWHv6SUaUN=%$QY1o2UH)d`0$#j-!Yf&7F zbfHSyY6`W%8l>X%CC_U?j+$S(slx4YU230KlX3Yzs*jzr=)cHV|HrjxVS=$~p(K>-!U5K`0$WR7T29gI z^`eNg5``SnO+ggtuV*djH}6E3hd;Jmv0zUQFi<7!c1|4y2@z~h6jPYZ{0Fr8Ddb@0 zl;f45N~3iNu(Z>`i98!rlr5s^q*s2l@=Cf>PB|02 zyh^lvC6tj8UtMS!17A3Xt^s$jad5At-Hq5$+6r61c8D(#3)S%@w)Zeo+Z+|>IqOet zE-mg3+Tm8lkkgw$NY31BxfvBJ@drMP-Jdk_@V!6ai=B~)^n&#{yK-^=U60%PtQ|fz zO@PIT$UZPr@`S8~#WHOrV3&jBNLX8%`q~Gjir+c))Mj;s-l?+XMS)dROf&YX`b>#5 zsdCo@JfQF5KjxzuKOup#wb4_X(8Sr(QK=okx09^1wOv0iA@_cfr2?f0Uo-xj+eKf! zfyvhGTG2jCV$Gyb(|9#OPpFybtfM%2+10OhycQFnrMhGk0Wb>%XkDBxEJx#X*a~@p zn-^E~U~EECNZC6)fLP4TgQcwhqpItUYbxp5SXoyE7hM!7QGo?SKw;^SsJK#s zmm)=^geWZni--b|8juoQO6WxvA~h&zq-z3%7EnSF0*MJFft34Rb>FZ2dCPC^+%t1# z&U5BD=QM;6da3*#7ox@YDiUI~G0D(KZ@yjhM(5}52qTE=gd_hCOMrnhLiTlapAoMr zOo}R>jQ@n5V`RCs&7d)0rLCsHQ7<;)eeF-t<}#);EXF8=2_KjYG!9|OCXFFdBM_zB zmd0xR|H=xJx1O#(^YSc%Qv)%~eepF#Mt%@w8U~oeqb$NNZOsI3Vm;(bw1mx}8pw~o zQqSiM8}W?Vq?fV>6uqPRD%c3BPuKKvjT?>5Vmw;;S7}Fwe%Yz|FS z!6zKIbS?E!cft#Wp(bYgje71C^6~n;)H7}2UBIuG#vT1!hiHEs|z?n-8%snsbVUe#L~Hj&Y%I$vwO+!a#4ABgn2 zW~8fTnpG!A9xXS7TTn#o!06W9XuMKB$h5!~k68jnNFt;0&`9jn3V&C}@r^p?5F`XB zYsBU1Wlh;}`}m?qUTuCmA{D=rjinPxODmqWU-Wvqn# zf$zQD*TM|(p>$XmA`LpBzL=>flC-*>wsyg7m0<~NoomRNxAL5&!~W`PT0v+Zh3y=) zwV>qK^7Jby4p$G|f%mL$>y{qh`%y!WQy{p&R`MxdL|`AsgV;0Bf}-wFE=l~Dmy>(V zpBP5!StpK)FG-=*0w!>v0CFAV03@&D*RixF0}&~+@y>9a)+TSkCb~Zd-0@YgLWW~{ z^vUpUNvL<9n;d{YdOI!1yKnMYk%7oMC8|sz=&E+eFk7pbChmj*kn(^Wuv(Dz647EIl zyE0&Aw!JI={Rhz*k#!nBR)^neDDNoZp<5h8!V@CU4d5S^A!dBAU6^-0)k|fG9pGrw zk<^RZH*2ux(e!qbcCkPOGJLRBH+k4*2rRZ(q+IsD-5H?FA|3N@<{If3DI)RAq z6c-tY7{4D>@;)_xa$0~<59C<;l8%>m5=4!@nkfLX*z&=!C;G~;sjTWSSYo&M>5(Lz za}FEvOKf5_9Y;q;53_L$9wJ&f6w6`~b2utcpN%qB=vSuzn>%K_F(x61hdx%;^kDDTS# z-q!QPNR1!?3U^mps}l?mHm)z+IT}hq)0Ku*w%Nb2@f^QjhP*wKP_<}>J=mmvz{%DM zpF6jd>gvxOI}hoDpa$mqCPRz0N^C4}zM&~Vb0vvvx>u!`_adbElc)J`5F#P!Zi5h? z+m4$pbp*qw{X11oSSx=?iC4daR1Z{H1hA5wNBOx+Tp zYL}4XwV-@JZ9;Tr!N2n5yd9i`E+0F)oJBIUVNA$Nhvx zJ?2hT87O{rDqL2!U>0h4n@-VT-TOTunTOqbPz43p&^Up-d7lkIGTd^-f zVYoe(SO@HMDAm)6gtqysvX@}C$i92E9aCbWnZ)7M983Y$?KnIT7KC|E?5Q=>(RbV| zsgb}=J2fyLrhE8Cnk+u?oG*y~#arRR>Mmk3#xi?U+AndO*a8fnTbHo0m0sSln!E<- zFpm-pI(fDC{azf@3uBxZc;H(O-3!5Rc$j+jJ0)FNa$aO)FlpANIN&;x5h7Cv6;&9e z0P$Y#&~7&I6*y_T_SN2#cuEJm(s6oh1b&RJfh{ze3^y*XMoSfo+^@Fnu+3n&jN&A* zH<6@5r&GcI{J}NSQl`2;o{=y6doM@G+$*znmdSq4(?bJcV>538e=0h*3Y~qk-HrWRQ6!$2Pfn)`mC-t_; zcCphxHRg*kru3>gC`g)sFx^%%g*VwY<)iT|Z%?h1Cs&GfVMsnM8YhMdRHp&q!)o5! zE2$e!QO~d3M_ROBFl12SF4bWM^6#QrC*1SLiBzb;IXH&aE-{=E zrks$sC-b*||Jc5k+%QhBS1@^%tS`aee?^&V>8*BBueRE{(RYAGBZk#E zry*qPYO*N-pWm|Fo~|hvs%(9au@mzd+uT)Upg&_C=?;RB@Xo zF(}#duq@USKA4dH`4iKQNe=>@BMxCyRX;b&?7Og(4i2lTb`7zm0x z_xy0g>q!bL>z#6y<<^4=;8ZIsyD7*LC9En!Sux?ls(N9*Aw2blAWjg#`8%hjV*bpd z6(U$v3q9e=pV&LU1|dIz$mEHz#uuwZB9Q5(%$-;dRQ&eep5I)sXW<%cu3OHVvNjTr zgTSZ4FN$QYa@pYKN-@TQSf(Ao@ruz#ooobL=lFv+#?gzkx$$s9FsXES8aQ?d{SA1Y zHUS4a_m#A$O=)r94RS0+*Aiy!cCk!P=C6usK1~!i0tAy(&40Wr_iCrqXcr=vn7%*~ z|HP?RMdpjwT?$_E=6@J*Ed=BH#Kio?zfY~_;>LlO12ZT2jNCs7psT5QHl?JZFkheA ztVV%u=1R0>H1^3Z-5toAau~Y{50=ctJc**_-LR!dhfM+f%qb2U?*!dl6@7&NJfjsd zj_Mzd65yGTumSW~DZzrq-=?364_MAKq`8cJy$FV8Ty)@KaBjg~va%@}IY0Buj1Cu{ zN)?nR@r^*z9da2xz5t9FhBR&LV3z8DLO_+$An4{X;0wm65j`MUPzd%~INx%G;B6I+ z9Qxc?h1O3VS zN1U-g|K@S4&rh50H}onY@9nk2#qV&&OE%b^jO52@XWXX|m%AHTj=1j{+vtre%AF(L zH+HI3AUrg`9J~4?AevD^%p5ts3B6apo8i*5qo@6#SG3^oo`LrAqzJG)BG~BgP1x6m zk+@dHHT$9lM06v3RPvB@Yy$L3LJqI6WOzRQU7PVzr7jbFa#{uTy~tzSm#qu+hcdL@mE(vAEyuC>@7++8!0RCAiS;-|ZHEZb*Wq*^O$5Pxrh zR$mj3y!R&h`H;T}YA9#Q$q(^isY0kHMu+9T;m2g<`ep31qQQKB7p>$qkx2kEh$#F2 z7slE>{2Q-UJ>c;4P}LzFJa=A;GLS?0n5TS)@;WrYV_FAq#tEv}b#h@BI^<6!C32_U~vvd?zF- zcbrmXt+}1Hf^49keUFq9lowT`X<9WaPbb#q>)?&eny5-uW&Wpbj`8RC=CO@F`2s8G z0P@wLh5eh2#NQxKj8~OkU#GMGj)X+&I^I__5z#satdj4SX){?)ev{Oj+XVLVKupB@ zYksf;GwC{eM*I+;6qtcTcL7SR6;iv<+5TLDAM=YmK%-9;4CV@$R70_E+N~GDvq#sO zel3M9%BaI%xZ99t3s<(_eNIetHyCb#HU!U7<_>#kHtinGjzk+A7ze%<-tI}PGZmC# zP>UjhZTkw=$2E$6bBhpFcwmtxq{n(4x`y{Z_%;|Ld!RDVorBDeh-_ig#H{NwV4>htcg{{aD{ B@Qwfg From 60ab3b54d51fc34106336640d42b31d388276b6a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 03:40:31 -0500 Subject: [PATCH 263/276] Automatic changelog generation for PR #8524 [ci skip] --- html/changelogs/AutoChangeLog-pr-8524.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8524.yml diff --git a/html/changelogs/AutoChangeLog-pr-8524.yml b/html/changelogs/AutoChangeLog-pr-8524.yml new file mode 100644 index 0000000000..66a7b6d456 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8524.yml @@ -0,0 +1,4 @@ +author: "BurgerBB" +delete-after: True +changes: + - rscadd: "Adds a new trait \"Buns of Steel\" that makes you immune to the effects of ass slapping, and temporarily makes the user's arm useless like a stun baton hit. It costs 0 points." From 73fe37ada015db2cb0d12beb823341bd7dc93bac Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 03:41:25 -0500 Subject: [PATCH 264/276] Automatic changelog generation for PR #8518 [ci skip] --- html/changelogs/AutoChangeLog-pr-8518.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8518.yml diff --git a/html/changelogs/AutoChangeLog-pr-8518.yml b/html/changelogs/AutoChangeLog-pr-8518.yml new file mode 100644 index 0000000000..cbc34893b6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8518.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - tweak: "escape pods emergency suits storage can now be busted open by emags or excessive damage." + - bugfix: "Fixes alt click bypassing the escape pods' suits storage lock." From 1eef9b39e30a808e1a43097f888868ea7fc3ded9 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 03:42:50 -0500 Subject: [PATCH 265/276] Automatic changelog generation for PR #8517 [ci skip] --- html/changelogs/AutoChangeLog-pr-8517.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8517.yml diff --git a/html/changelogs/AutoChangeLog-pr-8517.yml b/html/changelogs/AutoChangeLog-pr-8517.yml new file mode 100644 index 0000000000..5e14c1c696 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8517.yml @@ -0,0 +1,6 @@ +author: "Poojawa" +delete-after: True +changes: + - rscadd: "Added visible and hidden testicles" + - rscadd: "Added multi-boob support. Now you can have two or three pairs of breasts." + - bugfix: "fixed missing vagina and breast sprites" From 8dc5619369f10bc47c3b0c259a05d0f3a4167afc Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 03:44:07 -0500 Subject: [PATCH 266/276] Automatic changelog generation for PR #8506 [ci skip] --- html/changelogs/AutoChangeLog-pr-8506.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8506.yml diff --git a/html/changelogs/AutoChangeLog-pr-8506.yml b/html/changelogs/AutoChangeLog-pr-8506.yml new file mode 100644 index 0000000000..6711217fb5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8506.yml @@ -0,0 +1,5 @@ +author: "CalamaBanana" +delete-after: True +changes: + - rscadd: "Added Deer taur" + - rscadd: "Added Elf ears to mammals" From f18943387fba7bc0c0a2eeb22633b4061785e3cd Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 03:49:13 -0500 Subject: [PATCH 267/276] Automatic changelog generation for PR #8504 [ci skip] --- html/changelogs/AutoChangeLog-pr-8504.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8504.yml diff --git a/html/changelogs/AutoChangeLog-pr-8504.yml b/html/changelogs/AutoChangeLog-pr-8504.yml new file mode 100644 index 0000000000..4e80d02845 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8504.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - bugfix: "resonators being so shitty" From 65e2d1d37c70a89a509ad392a6aadc04b78691e4 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 03:49:59 -0500 Subject: [PATCH 268/276] Automatic changelog generation for PR #8489 [ci skip] --- html/changelogs/AutoChangeLog-pr-8489.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8489.yml diff --git a/html/changelogs/AutoChangeLog-pr-8489.yml b/html/changelogs/AutoChangeLog-pr-8489.yml new file mode 100644 index 0000000000..5e90c56d67 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8489.yml @@ -0,0 +1,5 @@ +author: "Coolgat3" +delete-after: True +changes: + - rscadd: "Added combat gloves sprite" + - imageadd: "Added said sprite" From 055396d110b8eabf524055913d03c0c2c6e75e3e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 03:52:19 -0500 Subject: [PATCH 269/276] Automatic changelog generation for PR #8491 [ci skip] --- html/changelogs/AutoChangeLog-pr-8491.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8491.yml diff --git a/html/changelogs/AutoChangeLog-pr-8491.yml b/html/changelogs/AutoChangeLog-pr-8491.yml new file mode 100644 index 0000000000..0e82e809f7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8491.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Reduces goonchat lag from being blasted by pellets and bullets repeatedly whilst wearing armor by properly removing the armor protection texts this times." + - spellcheck: "also reduced the size of armor protection messages in general. they clog up the chat box." From 962afa97bc798a98ccba4f63309706fb01044e0d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 03:53:37 -0500 Subject: [PATCH 270/276] Automatic changelog generation for PR #8516 [ci skip] --- html/changelogs/AutoChangeLog-pr-8516.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8516.yml diff --git a/html/changelogs/AutoChangeLog-pr-8516.yml b/html/changelogs/AutoChangeLog-pr-8516.yml new file mode 100644 index 0000000000..f7419f1add --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8516.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - balance: "Adds in a 7 seconds delay to the jackhammer dismantling a superheated clockwork wall." From ecef40258b3fe0b9b5b47baaf84fae13203f5d76 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 03:55:21 -0500 Subject: [PATCH 271/276] Automatic changelog generation for PR #8387 [ci skip] --- html/changelogs/AutoChangeLog-pr-8387.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8387.yml diff --git a/html/changelogs/AutoChangeLog-pr-8387.yml b/html/changelogs/AutoChangeLog-pr-8387.yml new file mode 100644 index 0000000000..4770fe08fc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8387.yml @@ -0,0 +1,4 @@ +author: "jtgsz" +delete-after: True +changes: + - rscadd: "ported gang mode" From d44aa44ec6eb21edc2bddf552cd4ee485efc8316 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 04:02:43 -0500 Subject: [PATCH 272/276] Automatic changelog generation for PR #8528 [ci skip] --- html/changelogs/AutoChangeLog-pr-8528.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8528.yml diff --git a/html/changelogs/AutoChangeLog-pr-8528.yml b/html/changelogs/AutoChangeLog-pr-8528.yml new file mode 100644 index 0000000000..0dece1e63d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8528.yml @@ -0,0 +1,7 @@ +author: "Poojawa" +delete-after: True +changes: + - bugfix: "fixed prosthetic hands being invisible" + - bugfix: "male foxes exist again" + - bugfix: "female chest markings improved from being too dark in comparison to their other colors, blending better" + - bugfix: "Markings behave better on non-organic limbs." From 27ef3ce2819952b0ab67942fe5227dc8245f04d0 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Wed, 5 Jun 2019 08:10:20 -0500 Subject: [PATCH 273/276] Without this, everyone is broken --- code/modules/surgery/bodyparts/bodyparts.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index e35b8efbd0..230347fae5 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -345,6 +345,10 @@ auxmarking = "plain" markings_color = list(colorlist) + else + body_markings = null + auxmarking = null + if(!dropping_limb && H.dna.check_mutation(HULK)) mutation_color = "00aa00" else From 057107da3bdeaa0e1d5d095c4c79a02dd357519d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 11:54:39 -0500 Subject: [PATCH 274/276] Automatic changelog generation for PR #8424 [ci skip] --- html/changelogs/AutoChangeLog-pr-8424.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8424.yml diff --git a/html/changelogs/AutoChangeLog-pr-8424.yml b/html/changelogs/AutoChangeLog-pr-8424.yml new file mode 100644 index 0000000000..12295e8a82 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8424.yml @@ -0,0 +1,4 @@ +author: "Arturlang" +delete-after: True +changes: + - rscadd: "You can now use CTRL and ALT click on pumps and filters to toggle them on and off and max their output respectively" From 3eb217b063007020a056796845f337ff30e8e167 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 13:31:14 -0500 Subject: [PATCH 275/276] Automatic changelog generation for PR #8430 [ci skip] --- html/changelogs/AutoChangeLog-pr-8430.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8430.yml diff --git a/html/changelogs/AutoChangeLog-pr-8430.yml b/html/changelogs/AutoChangeLog-pr-8430.yml new file mode 100644 index 0000000000..e59f61821a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8430.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "Bad Idea" From b9aebf69b1caa7e17ed1781cfecc5d391b1d86f7 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Wed, 5 Jun 2019 13:35:25 -0500 Subject: [PATCH 276/276] Automatic changelog generation for PR #8525 [ci skip] --- html/changelogs/AutoChangeLog-pr-8525.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8525.yml diff --git a/html/changelogs/AutoChangeLog-pr-8525.yml b/html/changelogs/AutoChangeLog-pr-8525.yml new file mode 100644 index 0000000000..ef26cf1a4b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8525.yml @@ -0,0 +1,5 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - bugfix: "Game braking bug +critical: bug fix"
Other Roles