From 73b6b33f79f8fa1c7ffe8444e2e5bbbf99e5ae7c Mon Sep 17 00:00:00 2001 From: Poojawa Date: Mon, 6 Feb 2017 00:36:56 -0600 Subject: [PATCH] TG sync Sunday (#201) * stage one * datums and shit * game stuff * modules * tgstation.dme * tools * these things for icons * compiling fixes * merge spree on TG * other updates * updated maps with deepfryers * My helpers were not helping --- SQL/database_changelog.txt | 35 + SQL/tgstation_schema.sql | 87 +- SQL/tgstation_schema_prefixed.sql | 81 +- _maps/RandomZLevels/caves.dmm | 2 +- _maps/map_files/BirdStation/BirdStation.dmm | 474 +++++------ .../map_files/Deltastation/DeltaStation2.dmm | 35 +- _maps/map_files/MetaStation/MetaStation.dmm | 33 +- _maps/map_files/OmegaStation/OmegaStation.dmm | 57 +- _maps/map_files/TgStation/tgstation.2.1.3.dmm | 12 +- code/__DEFINES/misc.dm | 2 + code/__DEFINES/qdel.dm | 3 + code/__HELPERS/_logging.dm | 4 - code/__HELPERS/game.dm | 4 +- code/__HELPERS/global_lists.dm | 13 +- code/__HELPERS/icon_smoothing.dm | 30 +- code/__HELPERS/mobs.dm | 1 - code/__HELPERS/text.dm | 15 +- code/__HELPERS/text_vr.dm | 7 + code/__HELPERS/unsorted.dm | 2 +- code/_compile_options.dm | 4 + code/_globalvars/logging.dm | 2 - code/_onclick/ai.dm | 2 +- code/_onclick/hud/alien.dm | 14 - code/_onclick/hud/alien_larva.dm | 3 - code/_onclick/hud/ghost.dm | 2 + code/_onclick/hud/hud.dm | 5 +- code/_onclick/telekinesis.dm | 2 +- code/controllers/subsystem.dm | 1 + code/controllers/subsystem/acid.dm | 2 +- code/controllers/subsystem/augury.dm | 5 +- code/controllers/subsystem/events.dm | 13 +- code/controllers/subsystem/fire_burning.dm | 2 +- code/controllers/subsystem/garbage.dm | 748 +++++++++++++++++- code/controllers/subsystem/mapping.dm | 2 +- code/controllers/subsystem/minimap.dm | 1 - code/controllers/subsystem/persistence.dm | 2 +- .../subsystem/processing/objects.dm | 6 - .../subsystem/processing/processing.dm | 6 + code/controllers/subsystem/shuttles.dm | 2 +- code/controllers/subsystem/ticker.dm | 45 +- code/controllers/subsystem/timer.dm | 21 +- code/controllers/subsystem/voting.dm | 2 +- code/datums/action.dm | 2 - code/datums/antagonists/datum_clockcult.dm | 6 + code/datums/beam.dm | 2 +- code/datums/forced_movement.dm | 2 +- code/datums/riding.dm | 2 +- code/datums/status_effects/buffs.dm | 32 +- code/datums/status_effects/gas.dm | 2 +- code/datums/status_effects/status_effect.dm | 21 +- code/game/atoms.dm | 2 + code/game/atoms_movable.dm | 28 +- code/game/gamemodes/blob/blobs/core.dm | 2 +- .../gamemodes/changeling/changeling_power.dm | 2 +- .../changeling/powers/augmented_eyesight.dm | 61 +- code/game/gamemodes/clock_cult/clock_cult.dm | 2 +- .../clock_helpers/proselytizer_helpers.dm | 2 +- .../clock_helpers/ratvarian_language.dm | 21 +- .../clock_scriptures/scripture_drivers.dm | 5 +- .../gamemodes/clock_cult/clock_structure.dm | 3 +- .../clock_structures/interdiction_lens.dm | 2 +- .../clock_structures/mania_motor.dm | 182 ++--- code/game/gamemodes/cult/cult_items.dm | 2 +- code/game/gamemodes/cult/cult_structures.dm | 6 +- code/game/gamemodes/cult/ritual.dm | 8 +- code/game/gamemodes/cult/runes.dm | 8 +- code/game/gamemodes/cult/talisman.dm | 2 +- .../gamemodes/devil/true_devil/_true_devil.dm | 1 + .../gamemodes/malfunction/Malf_Modules.dm | 2 +- .../abduction/machinery/experiment.dm | 2 +- code/game/gamemodes/miniantags/borer/borer.dm | 10 +- .../gamemodes/miniantags/borer/borer_event.dm | 6 +- .../gamemodes/miniantags/bot_swarm/swarmer.dm | 6 +- .../gamemodes/miniantags/revenant/revenant.dm | 2 +- code/game/gamemodes/wizard/artefact.dm | 2 +- code/game/gamemodes/wizard/spellbook.dm | 2 +- code/game/machinery/autolathe.dm | 2 +- code/game/machinery/cloning.dm | 2 +- code/game/machinery/computer/aifixer.dm | 21 +- .../game/machinery/computer/buildandrepair.dm | 1 - code/game/machinery/constructable_frame.dm | 1 - code/game/machinery/doors/airlock.dm | 4 +- code/game/machinery/doors/door.dm | 2 +- code/game/machinery/doors/windowdoor.dm | 2 + .../embedded_controller/access_controller.dm | 4 +- code/game/machinery/quantum_pad.dm | 6 +- code/game/mecha/mech_bay.dm | 6 +- code/game/mecha/mech_fabricator.dm | 3 +- code/game/mecha/mecha.dm | 2 +- code/game/mecha/mecha_actions.dm | 4 +- code/game/objects/effects/contraband.dm | 2 +- code/game/objects/effects/countdown.dm | 2 +- code/game/objects/effects/effects.dm | 4 + code/game/objects/effects/overlays.dm | 11 +- code/game/objects/items.dm | 6 +- code/game/objects/items/crayons.dm | 2 +- code/game/objects/items/dehy_carp.dm | 2 +- code/game/objects/items/devices/PDA/PDA.dm | 4 +- .../objects/items/devices/geiger_counter.dm | 2 +- code/game/objects/items/weapons/explosives.dm | 4 +- .../items/weapons/grenades/chem_grenade.dm | 19 + .../items/weapons/grenades/clusterbuster.dm | 2 +- .../objects/items/weapons/grenades/grenade.dm | 2 +- .../objects/items/weapons/grenades/plastic.dm | 4 +- .../items/weapons/implants/implant_chem.dm | 2 +- .../items/weapons/implants/implant_track.dm | 2 +- code/game/objects/items/weapons/melee/misc.dm | 4 +- code/game/objects/items/weapons/scrolls.dm | 2 +- .../objects/items/weapons/storage/backpack.dm | 7 - .../objects/items/weapons/storage/book.dm | 7 +- .../items/weapons/storage/uplink_kits.dm | 5 + .../game/objects/items/weapons/tanks/tanks.dm | 2 +- code/game/objects/items/weapons/twohanded.dm | 8 +- code/game/objects/obj_defense.dm | 2 +- code/game/objects/objs.dm | 6 +- code/game/objects/structures/false_walls.dm | 4 +- code/game/objects/structures/grille.dm | 10 +- code/game/objects/structures/kitchen_spike.dm | 2 + code/game/objects/structures/morgue.dm | 2 +- .../structures/transit_tubes/station.dm | 2 +- .../transit_tube_construction.dm | 2 +- .../transit_tubes/transit_tube_pod.dm | 2 +- code/game/objects/structures/window.dm | 6 +- code/game/turfs/open.dm | 2 +- code/game/turfs/simulated/chasm.dm | 8 +- code/game/turfs/simulated/floor/misc_floor.dm | 2 +- code/game/turfs/turf.dm | 4 +- code/modules/VR/vr_sleeper.dm | 2 +- code/modules/admin/NewBan.dm | 4 +- code/modules/admin/admin.dm | 8 +- code/modules/admin/admin_investigate.dm | 8 +- code/modules/admin/fun_balloon.dm | 2 +- code/modules/admin/holder2.dm | 1 - code/modules/admin/player_panel.dm | 2 +- code/modules/admin/sql_message_system.dm | 371 +++++++++ code/modules/admin/sql_notes.dm | 260 ------ code/modules/admin/topic.dm | 203 +++-- code/modules/admin/watchlist.dm | 119 --- code/modules/assembly/assembly.dm | 2 +- code/modules/assembly/flash.dm | 2 +- .../atmospherics/environmental/LINDA_fire.dm | 8 +- .../atmospherics/machinery/atmosmachinery.dm | 2 +- .../components/unary_devices/cryo.dm | 15 +- .../atmospherics/machinery/pipes/pipes.dm | 2 +- code/modules/awaymissions/capture_the_flag.dm | 4 +- code/modules/awaymissions/gateway.dm | 4 +- code/modules/cargo/exports.dm | 2 + code/modules/client/client_procs.dm | 48 +- code/modules/client/verbs/ooc.dm | 2 +- code/modules/client/verbs/sethotkeys.dm | 5 +- code/modules/client/verbs/suicide.dm | 3 + .../modules/clothing/spacesuits/chronosuit.dm | 2 +- .../modules/clothing/spacesuits/flightsuit.dm | 4 +- code/modules/clothing/spacesuits/plasmamen.dm | 35 +- code/modules/crafting/recipes.dm | 10 + code/modules/events/alien_infestation.dm | 2 +- code/modules/events/brand_intelligence.dm | 4 +- code/modules/events/holiday/vday.dm | 41 +- code/modules/events/immovable_rod.dm | 8 +- code/modules/events/spacevine.dm | 2 +- .../food_and_drinks/food/snacks_bread.dm | 7 + .../kitchen_machinery/deep_fryer.dm | 118 +++ code/modules/holodeck/area_copy.dm | 3 + code/modules/holodeck/computer.dm | 8 +- code/modules/hydroponics/grown/misc.dm | 2 +- code/modules/hydroponics/grown/tomato.dm | 2 +- code/modules/hydroponics/hydroponics.dm | 2 +- code/modules/jobs/job_types/cargo_service.dm | 2 +- code/modules/library/soapstone.dm | 26 +- code/modules/mining/fulton.dm | 2 +- .../mining/lavaland/necropolis_chests.dm | 10 +- code/modules/mining/machine_vending.dm | 2 +- code/modules/mob/living/brain/posibrain.dm | 2 +- code/modules/mob/living/carbon/alien/alien.dm | 37 +- .../carbon/alien/humanoid/alien_powers.dm | 20 - .../modules/mob/living/carbon/alien/organs.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 38 +- .../mob/living/carbon/carbon_defense.dm | 8 +- code/modules/mob/living/carbon/human/human.dm | 13 +- .../mob/living/carbon/human/species.dm | 56 +- .../carbon/human/species_types/abductors.dm | 1 - .../carbon/human/species_types/furrypeople.dm | 3 +- .../carbon/human/species_types/jellypeople.dm | 13 +- .../human/species_types/shadowpeople.dm | 30 +- .../mob/living/carbon/human/update_icons.dm | 4 +- .../mob/living/carbon/monkey/combat.dm | 2 +- .../mob/living/carbon/monkey/monkey.dm | 1 + .../modules/mob/living/carbon/update_icons.dm | 2 +- code/modules/mob/living/living.dm | 2 +- code/modules/mob/living/silicon/ai/ai.dm | 10 +- code/modules/mob/living/silicon/ai/death.dm | 23 +- .../mob/living/silicon/ai/freelook/eye.dm | 2 +- code/modules/mob/living/silicon/ai/life.dm | 2 +- .../modules/mob/living/silicon/robot/death.dm | 2 +- .../mob/living/simple_animal/bot/cleanbot.dm | 2 +- .../friendly/drone/drones_as_items.dm | 2 +- .../simple_animal/guardian/types/lightning.dm | 5 +- .../mob/living/simple_animal/hostile/flan.dm | 2 +- .../simple_animal/hostile/giant_spider.dm | 3 +- .../hostile/megafauna/colossus.dm | 6 +- .../simple_animal/hostile/megafauna/dragon.dm | 4 +- .../hostile/megafauna/hierophant.dm | 4 +- .../living/simple_animal/hostile/statue.dm | 12 +- code/modules/mob/login.dm | 3 +- .../mob/new_player/sprite_accessories.dm | 411 ---------- .../modular_computers/NTNet/NTNet_relay.dm | 4 +- .../computers/machinery/modular_computer.dm | 3 +- .../file_system/programs/file_browser.dm | 23 +- .../modular_computers/hardware/card_slot.dm | 9 +- .../modular_computers/hardware/printer.dm | 1 + code/modules/orbit/orbit.dm | 2 +- code/modules/paperwork/paper.dm | 16 +- code/modules/paperwork/photocopier.dm | 6 +- code/modules/power/cable.dm | 2 +- code/modules/power/cell.dm | 2 +- code/modules/power/lighting.dm | 2 +- code/modules/power/tesla/coil.dm | 2 +- code/modules/power/tesla/energy_ball.dm | 16 +- code/modules/power/tesla/generator.dm | 6 +- .../chemistry/machinery/chem_master.dm | 10 +- .../chemistry/reagents/medicine_reagents.dm | 7 +- .../chemistry/reagents/other_reagents.dm | 21 +- .../chemistry/reagents/toxin_reagents.dm | 4 +- .../reagents/chemistry/recipes/others.dm | 2 +- code/modules/reagents/reagent_containers.dm | 4 +- .../reagents/reagent_containers/borghydro.dm | 2 +- code/modules/reagents/reagent_dispenser.dm | 4 +- code/modules/recycling/conveyor2.dm | 2 +- code/modules/recycling/disposal-structures.dm | 2 +- code/modules/recycling/disposal-unit.dm | 2 +- .../research/designs/machine_designs.dm | 10 +- .../research/designs/medical_designs.dm | 12 +- code/modules/research/message_server.dm | 229 ------ code/modules/shuttle/assault_pod.dm | 2 +- code/modules/shuttle/computer.dm | 2 +- code/modules/spells/spell.dm | 2 +- code/modules/spells/spell_types/conjure.dm | 2 +- .../modules/spells/spell_types/devil_boons.dm | 2 +- .../spells/spell_types/ethereal_jaunt.dm | 2 +- code/modules/spells/spell_types/genetic.dm | 2 +- code/modules/spells/spell_types/lichdom.dm | 2 +- code/modules/spells/spell_types/rod_form.dm | 3 +- code/modules/spells/spell_types/summonitem.dm | 2 +- .../surgery/bodyparts/dismemberment.dm | 4 +- code/modules/surgery/bodyparts/head.dm | 24 +- code/modules/surgery/eye_surgery.dm | 10 +- code/modules/surgery/organs/augments_eyes.dm | 85 +- .../surgery/organs/augments_internal.dm | 6 +- code/modules/surgery/organs/organ_internal.dm | 136 ++++ code/modules/uplink/uplink.dm | 9 + code/modules/uplink/uplink_item.dm | 20 +- code/modules/vehicles/vehicle.dm | 2 +- code/modules/zombie/organs.dm | 11 +- code/orphaned_procs/statistics.dm | 280 +++++-- code/world.dm | 2 +- html/changelog.html | 188 ++++- html/changelogs/.all_changelog.yml | 134 ++++ icons/effects/clockwork_effects.dmi | Bin 103218 -> 103207 bytes icons/mob/belt.dmi | Bin 15761 -> 15736 bytes icons/mob/head.dmi | Bin 157396 -> 158289 bytes icons/mob/human_face.dmi | Bin 50435 -> 50534 bytes icons/mob/uniform.dmi | Bin 247512 -> 247499 bytes icons/obj/clothing/hats.dmi | Bin 76016 -> 76489 bytes icons/obj/food/food.dmi | Bin 50856 -> 51045 bytes icons/obj/kitchen.dmi | Bin 22147 -> 22961 bytes icons/obj/lighting.dmi | Bin 55226 -> 56156 bytes .../smooth_structures/clockwork_window.dmi | Bin 3448 -> 3572 bytes icons/obj/storage.dmi | Bin 58501 -> 58026 bytes icons/obj/surgery.dmi | Bin 26565 -> 28021 bytes sound/misc/disappointed.ogg | Bin 0 -> 80381 bytes tgstation.dme | 4 +- tgui/assets/tgui.css | 2 +- tgui/assets/tgui.js | 22 +- tgui/src/interfaces/file_manager.ract | 66 +- .../DMTreeToGlobalsList.csproj | 59 ++ tools/DMTreeToGlobalsList/Program.cs | 65 ++ tools/mapmerge/map_helpers.py | 22 +- tools/mapmerge/path_update.py | 4 +- tools/travis/build_byond.sh | 6 +- 279 files changed, 3548 insertions(+), 2585 deletions(-) create mode 100644 code/modules/admin/sql_message_system.dm delete mode 100644 code/modules/admin/sql_notes.dm delete mode 100644 code/modules/admin/watchlist.dm create mode 100644 code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm create mode 100644 sound/misc/disappointed.ogg create mode 100644 tools/DMTreeToGlobalsList/DMTreeToGlobalsList.csproj create mode 100644 tools/DMTreeToGlobalsList/Program.cs diff --git a/SQL/database_changelog.txt b/SQL/database_changelog.txt index 9754c511d0..bf765a0806 100644 --- a/SQL/database_changelog.txt +++ b/SQL/database_changelog.txt @@ -1,3 +1,38 @@ +30 January 2017, by Lzimann + +Modified table 'death', adding the columns 'mapname' and 'server'. + +ALTER TABLE `death` ADD COLUMN `mapname` TEXT NOT NULL AFTER `coord`, ADD COLUMN `server` TEXT NOT NULL AFTER `mapname` + +Remember to add a prefix to the table name if you use them + +---------------------------------------------------- + +25 January 2017, by Jordie0608 + +Created table 'messages' to supersede the 'notes', 'memos', and 'watchlist' tables; they must be collated into this new table + +To create this new table run the following command: + +CREATE TABLE `feedback`.`messages` (`id` INT(11) NOT NULL AUTO_INCREMENT , `type` VARCHAR(32) NOT NULL , `targetckey` VARCHAR(32) NOT NULL , `adminckey` VARCHAR(32) NOT NULL , `text` TEXT NOT NULL , `timestamp` DATETIME NOT NULL , `server` VARCHAR(32) NULL , `secret` TINYINT(1) NULL DEFAULT 1 , `lasteditor` VARCHAR(32) NULL , `edits` TEXT NULL , PRIMARY KEY (`id`) ) + +To copy the contents of the 'notes', 'memos', and 'watchlist' tables to this new table run the following commands: + +INSERT INTO `feedback`.`messages` +(`id`,`type`,`targetckey`,`adminckey`,`text`,`timestamp`,`server`,`secret`,`lasteditor`,`edits`) SELECT `id`, "note", `ckey`, `adminckey`, `notetext`, `timestamp`, `server`, `secret`, `last_editor`, `edits` FROM `feedback`.`notes` + +INSERT INTO `feedback`.`messages` +(`type`,`targetckey`,`adminckey`,`text`,`timestamp`,`lasteditor`,`edits`) SELECT "memo", `ckey`, `ckey`, `memotext`, `timestamp`, `last_editor`, `edits` FROM `feedback`.`memo` + +INSERT INTO `feedback`.`messages` +(`type`,`targetckey`,`adminckey`,`text`,`timestamp`,`lasteditor`,`edits`) SELECT "watchlist entry", `ckey`, `adminckey`, `reason`, `timestamp`, `last_editor`, `edits` FROM `feedback`.`watch` + +It's not necessary to delete the 'notes', 'memos', and 'watchlist' tables but they will no longer be used. + +Remember to add a prefix to the table names if you use them + +---------------------------------------------------- + 1 September 2016, by Jordie0608 Modified table 'notes', adding column 'secret'. diff --git a/SQL/tgstation_schema.sql b/SQL/tgstation_schema.sql index b3fb977044..91bc36feb3 100644 --- a/SQL/tgstation_schema.sql +++ b/SQL/tgstation_schema.sql @@ -135,6 +135,8 @@ CREATE TABLE `death` ( `id` int(11) NOT NULL AUTO_INCREMENT, `pod` text NOT NULL COMMENT 'Place of death', `coord` text NOT NULL COMMENT 'X, Y, Z POD', + `mapname` text NOT NULL, + `server` text NOT NULL, `tod` datetime NOT NULL COMMENT 'Time of death', `job` text NOT NULL, `special` text NOT NULL, @@ -147,6 +149,7 @@ CREATE TABLE `death` ( `brainloss` int(11) NOT NULL, `fireloss` int(11) NOT NULL, `oxyloss` int(11) NOT NULL, + PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*!40101 SET character_set_client = @saved_cs_client */; @@ -311,65 +314,13 @@ CREATE TABLE `poll_vote` ( /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `watch` +-- Table structure for table `ipintel` -- -DROP TABLE IF EXISTS `watch`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `watch` ( - `ckey` varchar(32) NOT NULL, - `reason` text NOT NULL, - `timestamp` datetime NOT NULL, - `adminckey` varchar(32) NOT NULL, - `last_editor` varchar(32), - `edits` text, - PRIMARY KEY (`ckey`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `memo` --- - -DROP TABLE IF EXISTS `memo`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `memo` ( - `ckey` varchar(32) NOT NULL, - `memotext` text NOT NULL, - `timestamp` datetime NOT NULL, - `last_editor` varchar(32), - `edits` text, - PRIMARY KEY (`ckey`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `notes` --- - -DROP TABLE IF EXISTS `notes`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `notes` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` varchar(32) NOT NULL, - `notetext` text NOT NULL, - `timestamp` datetime NOT NULL, - `adminckey` varchar(32) NOT NULL, - `last_editor` varchar(32), - `edits` text, - `server` varchar(50) NOT NULL, - `secret` tinyint(1) NOT NULL DEFAULT '1', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - DROP TABLE IF EXISTS `ipintel`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `ipintel` ( +CREATE TABLE `ipintel` ( `ip` INT UNSIGNED NOT NULL , `date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL , `intel` REAL NOT NULL DEFAULT '0', @@ -377,6 +328,32 @@ PRIMARY KEY ( `ip` ) ) ENGINE = INNODB; /*!40101 SET character_set_client = @saved_cs_client */; +-- +-- Table structure for table `messages` +-- + +DROP TABLE IF EXISTS `messages`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `messages` ( + `id` int(11) NOT NULL AUTO_INCREMENT , + `type` varchar(32) NOT NULL , + `targetckey` varchar(32) NOT NULL , + `adminckey` varchar(32) NOT NULL , + `text` text NOT NULL , + `timestamp` datetime NOT NULL , + `server` varchar(32) NULL , + `secret` tinyint(1) NULL DEFAULT 1 , + `lasteditor` varchar(32) NULL , + `edits` text NULL , + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Mentor stufs +-- + DROP TABLE IF EXISTS `mentor`; CREATE TABLE `mentor` ( `ckey` text NOT NULL @@ -390,5 +367,3 @@ CREATE TABLE `mentor_memo` ( `last_editor` varchar(32) DEFAULT NULL, `edits` text, PRIMARY KEY (`ckey`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dump completed on 2013-03-24 18:02:35 diff --git a/SQL/tgstation_schema_prefixed.sql b/SQL/tgstation_schema_prefixed.sql index f605339ee3..63d32eed08 100644 --- a/SQL/tgstation_schema_prefixed.sql +++ b/SQL/tgstation_schema_prefixed.sql @@ -135,6 +135,8 @@ CREATE TABLE `SS13_death` ( `id` int(11) NOT NULL AUTO_INCREMENT, `pod` text NOT NULL COMMENT 'Place of death', `coord` text NOT NULL COMMENT 'X, Y, Z POD', + `mapname` text NOT NULL, + `server` text NOT NULL, `tod` datetime NOT NULL COMMENT 'Time of death', `job` text NOT NULL, `special` text NOT NULL, @@ -306,69 +308,38 @@ CREATE TABLE `SS13_poll_vote` ( /*!40101 SET character_set_client = @saved_cs_client */; -- --- Table structure for table `SS13_watch` +-- Table structure for table `SS13_ipintel` -- -DROP TABLE IF EXISTS `SS13_watch`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_watch` ( - `ckey` varchar(32) NOT NULL, - `reason` text NOT NULL, - `timestamp` datetime NOT NULL, - `adminckey` varchar(32) NOT NULL, - `last_editor` varchar(32), - `edits` text, - PRIMARY KEY (`ckey`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_memo` --- - -DROP TABLE IF EXISTS `SS13_memo`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_memo` ( - `ckey` varchar(32) NOT NULL, - `memotext` text NOT NULL, - `timestamp` datetime NOT NULL, - `last_editor` varchar(32), - `edits` text, - PRIMARY KEY (`ckey`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `SS13_notes` --- - -DROP TABLE IF EXISTS `SS13_notes`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_notes` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ckey` varchar(32) NOT NULL, - `notetext` text NOT NULL, - `timestamp` datetime NOT NULL, - `adminckey` varchar(32) NOT NULL, - `last_editor` varchar(32), - `edits` text, - `server` varchar(50) NOT NULL, - `secret` tinyint(1) NOT NULL DEFAULT '1', - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - DROP TABLE IF EXISTS `SS13_ipintel`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; -CREATE TABLE `SS13_ipintel` ( +CREATE TABLE `SS13_ipintel` ( `ip` INT UNSIGNED NOT NULL , `date` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL , `intel` REAL NOT NULL DEFAULT '0', PRIMARY KEY ( `ip` ) ) ENGINE = INNODB; /*!40101 SET character_set_client = @saved_cs_client */; --- Dump completed on 2013-03-24 18:02:35 + +-- +-- Table structure for table `SS13_messages` +-- + +DROP TABLE IF EXISTS `SS13_messages`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `SS13_messages` ( + `id` int(11) NOT NULL AUTO_INCREMENT , + `type` varchar(32) NOT NULL , + `targetckey` varchar(32) NOT NULL , + `adminckey` varchar(32) NOT NULL , + `text` text NOT NULL , + `timestamp` datetime NOT NULL , + `server` varchar(32) NULL , + `secret` tinyint(1) NULL DEFAULT 1 , + `lasteditor` varchar(32) NULL , + `edits` text NULL , + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; +/*!40101 SET character_set_client = @saved_cs_client */; diff --git a/_maps/RandomZLevels/caves.dmm b/_maps/RandomZLevels/caves.dmm index 07f9df788c..19b2c6579b 100644 --- a/_maps/RandomZLevels/caves.dmm +++ b/_maps/RandomZLevels/caves.dmm @@ -2374,7 +2374,7 @@ info = "
CARAVAN SERVICES

Quality service since 2205


SHIPMENT CONTENTS:


4 scattershot rifles
6 grenades
1 laser rifle
1 blowup doll"; name = "Shipment Receipt" }, -/obj/item/organ/cyberimp/eyes/thermals, +/obj/item/organ/eyes/robotic/thermals, /obj/item/weapon/gun/energy/laser/captain/scattershot, /obj/item/slimepotion/fireproof, /turf/open/floor/plating/asteroid/basalt{ diff --git a/_maps/map_files/BirdStation/BirdStation.dmm b/_maps/map_files/BirdStation/BirdStation.dmm index 5b236a590a..de2adf0977 100644 --- a/_maps/map_files/BirdStation/BirdStation.dmm +++ b/_maps/map_files/BirdStation/BirdStation.dmm @@ -799,10 +799,10 @@ /turf/open/floor/plasteel, /area/engine/engineering) "acc" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel, /area/engine/engineering) "acd" = ( /obj/machinery/power/port_gen/pacman{ @@ -814,8 +814,8 @@ /obj/structure/cable/cyan{ icon_state = "0-2" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/engine/engineering) "ace" = ( /obj/machinery/light{ @@ -869,10 +869,10 @@ icon_state = "intact"; dir = 4 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel, /area/engine/engineering) "acm" = ( /obj/machinery/door/airlock/glass_engineering{ @@ -902,10 +902,10 @@ /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel, /area/engine/engineering) "acq" = ( /obj/structure/reflector/single{ @@ -995,14 +995,14 @@ icon_state = "intact"; dir = 9 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, /area/engine/engineering) "acD" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/turf/open/floor/plasteel, /area/engine/engineering) "acE" = ( /obj/machinery/light{ @@ -1031,18 +1031,18 @@ /obj/structure/cable/cyan{ icon_state = "0-2" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/engine/engineering) "acI" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ icon_state = "manifold"; dir = 1 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/turf/open/floor/plasteel, /area/engine/engineering) "acJ" = ( /obj/structure/cable/cyan{ @@ -1127,10 +1127,10 @@ /turf/open/floor/plasteel, /area/engine/engineering) "acT" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel, /area/engine/engineering) "acU" = ( /turf/closed/wall/r_wall, @@ -1144,10 +1144,10 @@ icon_state = "camera"; dir = 4 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel, /area/engine/engineering) "acW" = ( /obj/structure/cable/cyan{ @@ -1220,10 +1220,10 @@ /area/engine/engineering) "adh" = ( /obj/machinery/atmospherics/components/binary/pump, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel, /area/engine/engineering) "adi" = ( /obj/structure/cable/cyan{ @@ -1315,10 +1315,10 @@ icon_state = "pump_map"; dir = 8 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel, /area/engine/engineering) "adu" = ( /obj/effect/spawner/structure/window/reinforced, @@ -1358,10 +1358,10 @@ "adx" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/manifold/general/visible, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel, /area/engine/engineering) "ady" = ( /obj/structure/cable/cyan{ @@ -1425,10 +1425,10 @@ /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 6 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel, /area/engine/engineering) "adI" = ( /obj/structure/cable/cyan{ @@ -1478,17 +1478,17 @@ icon_state = "connector_map"; dir = 8 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel, /area/engine/engineering) "adQ" = ( /obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel, /area/engine/engineering) "adR" = ( /obj/structure/grille, @@ -1655,10 +1655,10 @@ icon_state = "4-8"; pixel_y = 0 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/turf/open/floor/plasteel, /area/engine/engineering) "aem" = ( /obj/structure/cable{ @@ -1672,10 +1672,10 @@ icon_state = "4-8"; pixel_y = 0 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel, /area/engine/engineering) "aen" = ( /obj/structure/cable{ @@ -1683,17 +1683,17 @@ d2 = 8; icon_state = "1-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel, /area/engine/engineering) "aeo" = ( /obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, +/turf/open/floor/plasteel, /area/engine/engineering) "aep" = ( /obj/machinery/ai_slipper{ @@ -1869,19 +1869,19 @@ /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel, /area/engine/engineering) "aeK" = ( /obj/structure/cable/cyan{ icon_state = "1-4" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel, /area/engine/engineering) "aeL" = ( /obj/machinery/atmospherics/pipe/simple/general/visible, @@ -1964,10 +1964,10 @@ /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, +/turf/open/floor/plasteel, /area/engine/engineering) "aeX" = ( /obj/machinery/camera/autoname{ @@ -2109,10 +2109,10 @@ /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel, /area/engine/engineering) "afr" = ( /obj/machinery/light/small{ @@ -2169,8 +2169,8 @@ icon_state = "pump_map"; dir = 1 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, /area/engine/engineering) "afz" = ( /obj/structure/cable{ @@ -2179,13 +2179,13 @@ icon_state = "1-2"; pixel_y = 0 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, /area/engine/engineering) "afA" = ( /obj/machinery/atmospherics/components/binary/pump, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, /area/engine/engineering) "afB" = ( /obj/structure/lattice, @@ -2245,10 +2245,10 @@ /turf/open/space, /area/space) "afK" = ( -/turf/open/floor/plating, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plating, /area/engine/engineering) "afL" = ( /obj/machinery/light{ @@ -2263,10 +2263,10 @@ network = list("heating"); pixel_y = 28 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel, /area/engine/engineering) "afN" = ( /obj/machinery/atmospherics/pipe/simple/general/visible, @@ -2417,10 +2417,10 @@ icon_state = "pump_map"; dir = 4 }, -/turf/open/floor/plating, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plating, /area/engine/engineering) "age" = ( /obj/machinery/atmospherics/pipe/manifold4w/yellow/visible, @@ -2479,30 +2479,30 @@ charge = 1e+006 }, /obj/structure/cable/cyan, -/turf/open/floor/plasteel/black, /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/turf/open/floor/plasteel/black, /area/engine/engineering) "ago" = ( /obj/machinery/power/smes{ charge = 1e+006 }, /obj/structure/cable/cyan, -/turf/open/floor/plasteel/black, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel/black, /area/engine/engineering) "agp" = ( /obj/machinery/power/smes{ charge = 1e+006 }, /obj/structure/cable/cyan, -/turf/open/floor/plasteel/black, /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/turf/open/floor/plasteel/black, /area/engine/engineering) "agq" = ( /obj/machinery/atmospherics/components/binary/pump, @@ -2685,10 +2685,10 @@ d2 = 8; icon_state = "0-8" }, -/turf/open/floor/plasteel/black, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel/black, /area/engine/engineering) "agM" = ( /obj/machinery/power/terminal{ @@ -2716,10 +2716,10 @@ d2 = 8; icon_state = "0-8" }, -/turf/open/floor/plasteel/black, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel/black, /area/engine/engineering) "agO" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ @@ -2818,10 +2818,10 @@ icon_state = "intact"; dir = 10 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel, /area/engine/engineering) "ahc" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ @@ -2858,27 +2858,27 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/plasteel/black, /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/turf/open/floor/plasteel/black, /area/engine/engineering) "ahi" = ( /obj/machinery/computer/monitor, /obj/structure/cable/cyan{ icon_state = "0-4" }, -/turf/open/floor/plasteel/black, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/black, /area/engine/engineering) "ahj" = ( /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel/black, /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/turf/open/floor/plasteel/black, /area/engine/engineering) "ahk" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ @@ -3015,10 +3015,10 @@ /area/engine/engineering) "ahB" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel, /area/engine/engineering) "ahC" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -3323,36 +3323,36 @@ }, /area/engine/engineering) "aip" = ( -/turf/open/floor/plating, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/turf/open/floor/plating, /area/engine/engineering) "aiq" = ( /obj/machinery/atmospherics/components/binary/pump{ icon_state = "pump_map"; dir = 1 }, -/turf/open/floor/plating, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plating, /area/engine/engineering) "air" = ( -/turf/open/floor/plating, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plating, /area/engine/engineering) "ais" = ( /obj/machinery/camera/autoname{ icon_state = "camera"; dir = 10 }, -/turf/open/floor/plating, /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/turf/open/floor/plating, /area/engine/engineering) "ait" = ( /obj/machinery/atmospherics/pipe/simple/yellow/visible{ @@ -3366,10 +3366,10 @@ icon_state = "manifold"; dir = 4 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/turf/open/floor/plasteel, /area/engine/engineering) "aiv" = ( /obj/structure/grille, @@ -3494,28 +3494,28 @@ /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/turf/open/floor/plasteel, /area/engine/engineering) "aiK" = ( /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel, /area/engine/engineering) "aiL" = ( /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, +/turf/open/floor/plasteel, /area/engine/engineering) "aiM" = ( /obj/effect/spawner/structure/window/reinforced, @@ -3659,10 +3659,10 @@ dir = 4 }, /obj/machinery/meter, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/turf/open/floor/plasteel, /area/engine/engineering) "ajf" = ( /obj/machinery/power/apc{ @@ -3716,10 +3716,10 @@ icon_state = "manifold"; dir = 8 }, -/turf/open/floor/plating, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plating, /area/engine/engineering) "ajl" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ @@ -3728,10 +3728,10 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plating, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plating, /area/engine/engineering) "ajm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ @@ -3739,20 +3739,20 @@ icon_state = "intact"; dir = 9 }, -/turf/open/floor/plating, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plating, /area/engine/engineering) "ajn" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible{ icon_state = "intact"; dir = 5 }, -/turf/open/floor/plating, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plating, /area/engine/engineering) "ajo" = ( /obj/machinery/atmospherics/components/binary/pump/on{ @@ -3996,16 +3996,16 @@ icon_state = "camera"; dir = 4 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/turf/open/floor/plasteel, /area/engine/engineering) "ajS" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/turf/open/floor/plasteel, /area/engine/engineering) "ajT" = ( /obj/structure/table, @@ -4018,10 +4018,10 @@ /obj/item/clothing/glasses/meson/engine, /obj/item/clothing/glasses/meson/engine, /obj/machinery/light/small, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/turf/open/floor/plasteel, /area/engine/engineering) "ajU" = ( /obj/structure/table, @@ -4328,10 +4328,10 @@ icon_state = "plant-02"; layer = 4.1 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel, /area/gateway) "akE" = ( /obj/machinery/gateway{ @@ -4358,10 +4358,10 @@ }, /area/gateway) "akH" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel, /area/gateway) "akI" = ( /obj/item/weapon/twohanded/required/kirbyplants{ @@ -4519,10 +4519,10 @@ icon_state = "tube1"; dir = 8 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel, /area/gateway) "alh" = ( /obj/machinery/gateway{ @@ -4721,10 +4721,10 @@ /turf/open/floor/wood, /area/maintenance/fsmaint) "alE" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel, /area/gateway) "alF" = ( /obj/machinery/gateway{ @@ -4898,31 +4898,31 @@ /turf/open/floor/plating, /area/gateway) "alZ" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/turf/open/floor/plasteel, /area/gateway) "ama" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel, /area/gateway) "amb" = ( /obj/structure/cable/cyan{ icon_state = "1-2" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel, /area/gateway) "amc" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, +/turf/open/floor/plasteel, /area/gateway) "amd" = ( /turf/open/floor/plasteel, @@ -5202,8 +5202,8 @@ /obj/machinery/light{ dir = 1 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/teleporter{ name = "\improper Teleporter Room" }) @@ -5993,8 +5993,8 @@ }) "aoF" = ( /obj/machinery/suit_storage_unit/standard_unit, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/ai_monitored/storage/eva{ name = "E.V.A. Storage" }) @@ -6769,8 +6769,8 @@ dir = 1; network = list("SS13") }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/ai_monitored/storage/eva{ name = "E.V.A. Storage" }) @@ -8382,17 +8382,17 @@ location = "Cargo #1"; name = "navigation beacon" }, +/obj/effect/turf_decal/delivery, /mob/living/simple_animal/bot/mulebot{ beacon_freq = 1400; home_destination = "Cargo #1"; suffix = "#1" }, /turf/open/floor/plasteel, -/obj/effect/turf_decal/delivery, /area/quartermaster/storage) "auv" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/quartermaster/storage) "auw" = ( /obj/machinery/light{ @@ -8629,8 +8629,8 @@ location = "Cargo #2"; name = "navigation beacon" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, /area/quartermaster/storage) "auY" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, @@ -8902,8 +8902,8 @@ /obj/structure/cable/cyan{ icon_state = "1-2" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/hallway/primary/central) "avI" = ( /obj/structure/cable/cyan{ @@ -9390,8 +9390,8 @@ lootcount = 2; name = "2maintenance loot spawner" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/quartermaster/storage) "awZ" = ( /obj/structure/closet/crate, @@ -9399,8 +9399,8 @@ lootcount = 3; name = "3maintenance loot spawner" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/quartermaster/storage) "axa" = ( /obj/structure/closet/crate, @@ -9408,8 +9408,8 @@ lootcount = 4; name = "4maintenance loot spawner" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/quartermaster/storage) "axb" = ( /obj/structure/cable/cyan{ @@ -9641,8 +9641,8 @@ /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/quartermaster/storage) "axN" = ( /obj/structure/closet/crate, @@ -9653,8 +9653,8 @@ /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/quartermaster/storage) "axO" = ( /obj/structure/closet/crate/medical, @@ -9665,8 +9665,8 @@ /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/quartermaster/storage) "axP" = ( /obj/structure/closet/crate, @@ -9677,8 +9677,8 @@ /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/quartermaster/storage) "axQ" = ( /obj/structure/cable/cyan{ @@ -9840,19 +9840,19 @@ name = "cargo bay airlock"; req_access_txt = "31" }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel{ name = "floor" }, -/obj/effect/turf_decal/delivery, /area/quartermaster/miningdock{ name = "\improper Mining Office" }) "ayl" = ( /obj/machinery/camera/autoname, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel{ name = "floor" }, -/obj/effect/turf_decal/delivery, /area/quartermaster/miningdock{ name = "\improper Mining Office" }) @@ -9860,10 +9860,10 @@ /obj/machinery/light/small{ dir = 1 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel, /area/quartermaster/miningdock{ name = "\improper Mining Office" }) @@ -10161,18 +10161,18 @@ /turf/open/floor/plasteel, /area/maintenance/fsmaint) "ayZ" = ( +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel{ name = "floor" }, -/obj/effect/turf_decal/delivery, /area/quartermaster/miningdock{ name = "\improper Mining Office" }) "aza" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel, /area/quartermaster/miningdock{ name = "\improper Mining Office" }) @@ -10323,12 +10323,12 @@ location = "Disposals"; name = "navigation beacon" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, /area/maintenance/disposal) "azv" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/maintenance/disposal) "azw" = ( /obj/vehicle/janicart, @@ -10912,10 +10912,10 @@ /turf/open/floor/plasteel, /area/maintenance/disposal) "aAU" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/turf/open/floor/plasteel, /area/maintenance/disposal) "aAV" = ( /obj/structure/cable/cyan{ @@ -11837,8 +11837,8 @@ icon_state = "intact"; dir = 4 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/crew_quarters/sleep) "aDa" = ( /obj/machinery/navbeacon{ @@ -11855,8 +11855,8 @@ icon_state = "intact"; dir = 4 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, /area/crew_quarters/sleep) "aDb" = ( /obj/machinery/power/apc{ @@ -12230,8 +12230,8 @@ /obj/structure/cable/cyan{ icon_state = "2-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, /area/maintenance/asmaint2) "aDW" = ( /obj/item/weapon/ed209_assembly, @@ -12559,10 +12559,10 @@ /obj/structure/cable/cyan{ icon_state = "2-4" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel, /area/maintenance/asmaint2) "aEL" = ( /obj/machinery/door/airlock/maintenance{ @@ -13162,10 +13162,10 @@ /obj/structure/cable/cyan{ icon_state = "1-2" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/turf/open/floor/plasteel, /area/maintenance/asmaint2) "aGo" = ( /obj/item/weapon/secbot_assembly, @@ -13671,12 +13671,12 @@ /turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aHJ" = ( -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aHK" = ( -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aHL" = ( /obj/machinery/button/door{ @@ -13685,14 +13685,14 @@ pixel_x = 0; pixel_y = 24 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aHM" = ( -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aHN" = ( /turf/open/floor/plasteel/white, @@ -13751,22 +13751,22 @@ /area/shuttle/escape) "aHY" = ( /obj/machinery/door/airlock/external, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel{ name = "floor" }, -/obj/effect/turf_decal/delivery, /area/hallway/secondary/exit) "aHZ" = ( +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel{ name = "floor" }, -/obj/effect/turf_decal/delivery, /area/hallway/secondary/exit) "aIa" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel, /area/hallway/secondary/exit) "aIb" = ( /obj/machinery/door/airlock/external, @@ -14033,10 +14033,10 @@ /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aIE" = ( /obj/machinery/processor{ @@ -14059,10 +14059,10 @@ /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aIH" = ( /obj/structure/reagent_dispensers/watertank, @@ -14466,22 +14466,22 @@ /obj/structure/cable/cyan{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aJB" = ( -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aJC" = ( -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aJD" = ( /obj/structure/bookcase/random/adult, @@ -14958,10 +14958,10 @@ "aKS" = ( /obj/structure/table/glass, /obj/item/weapon/storage/pill_bottle/mannitol, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel/white, /area/medical/genetics_cloning) "aKT" = ( /obj/machinery/camera/autoname, @@ -15312,28 +15312,28 @@ /obj/structure/cable/cyan{ icon_state = "0-4" }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel/white, /area/medical/genetics_cloning) "aLI" = ( /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel/white, /area/medical/genetics_cloning) "aLJ" = ( /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, +/turf/open/floor/plasteel/white, /area/medical/genetics_cloning) "aLK" = ( /obj/structure/cable/cyan{ @@ -15428,8 +15428,8 @@ /turf/open/floor/carpet, /area/crew_quarters/heads) "aLY" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/maintenance/asmaint2) "aLZ" = ( /obj/structure/closet/secure_closet/chemical, @@ -15469,10 +15469,10 @@ /turf/open/floor/engine, /area/toxins/xenobiology) "aMe" = ( -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aMf" = ( /turf/closed/wall/shuttle{ @@ -15547,25 +15547,25 @@ icon_state = "shower"; dir = 4 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, /area/medical/genetics_cloning) "aMp" = ( -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, /area/medical/genetics_cloning) "aMq" = ( /obj/effect/landmark/start{ name = "Medical Doctor" }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, /area/medical/genetics_cloning) "aMr" = ( -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/turf/open/floor/plasteel/white, /area/medical/genetics_cloning) "aMs" = ( /obj/structure/cable/cyan{ @@ -15607,10 +15607,10 @@ /turf/open/floor/plating, /area/toxins/lab) "aMy" = ( -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel/white, /area/toxins/lab) "aMz" = ( /obj/machinery/r_n_d/destructive_analyzer, @@ -15628,10 +15628,10 @@ /turf/open/floor/plasteel, /area/toxins/lab) "aMC" = ( -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel/white, /area/toxins/lab) "aMD" = ( /turf/closed/wall, @@ -15814,10 +15814,10 @@ icon_state = "intact"; dir = 4 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aMU" = ( /obj/structure/cable/cyan{ @@ -15830,10 +15830,10 @@ icon_state = "intact"; dir = 4 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aMV" = ( /obj/machinery/atmospherics/components/binary/volume_pump{ @@ -15847,10 +15847,10 @@ icon_state = "intact"; dir = 4 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aMW" = ( /obj/machinery/disposal/bin, @@ -15864,10 +15864,10 @@ icon_state = "intact"; dir = 4 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aMX" = ( /obj/structure/cable/cyan{ @@ -15877,19 +15877,19 @@ icon_state = "intact"; dir = 10 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aMY" = ( /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aMZ" = ( /obj/machinery/disposal/bin, @@ -15899,10 +15899,10 @@ /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aNa" = ( /obj/machinery/atmospherics/components/binary/volume_pump{ @@ -15912,19 +15912,19 @@ /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aNb" = ( /obj/structure/cable/cyan{ icon_state = "1-8" }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aNc" = ( /obj/structure/extinguisher_cabinet{ @@ -16019,8 +16019,8 @@ pixel_x = 0; pixel_y = 32 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/security/brig) "aNp" = ( /obj/item/weapon/twohanded/required/kirbyplants{ @@ -16037,8 +16037,8 @@ pixel_x = 0; pixel_y = 32 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/security/brig) "aNr" = ( /obj/effect/spawner/structure/window/reinforced, @@ -16061,10 +16061,10 @@ /obj/structure/window/reinforced{ dir = 4 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel/white, /area/medical/genetics_cloning) "aNv" = ( /obj/machinery/button/door{ @@ -16446,10 +16446,10 @@ /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel/white, /area/toxins/lab) "aOv" = ( /obj/structure/table/reinforced, @@ -16475,8 +16475,8 @@ /obj/structure/cable/cyan{ icon_state = "1-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/medical/robotics) "aOy" = ( /obj/machinery/navbeacon{ @@ -16489,10 +16489,10 @@ /obj/structure/cable/cyan{ icon_state = "4-8" }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel{ name = "floor" }, -/obj/effect/turf_decal/delivery, /area/medical/robotics) "aOz" = ( /obj/structure/cable/cyan{ @@ -16540,8 +16540,8 @@ /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, /area/toxins/misc_lab) "aOF" = ( /obj/structure/window/reinforced, @@ -16591,8 +16591,8 @@ /turf/open/floor/plasteel/white, /area/maintenance/asmaint2) "aOP" = ( -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aOQ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -16724,31 +16724,31 @@ name = "R&D shutter button"; pixel_x = -24 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/turf/open/floor/plasteel/white, /area/toxins/lab) "aPi" = ( -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel/white, /area/toxins/lab) "aPj" = ( /obj/structure/cable/cyan{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel/white, /area/toxins/lab) "aPk" = ( -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, +/turf/open/floor/plasteel/white, /area/toxins/lab) "aPl" = ( /obj/machinery/light{ @@ -16807,10 +16807,10 @@ /turf/open/floor/plasteel, /area/toxins/misc_lab) "aPr" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel, /area/toxins/misc_lab) "aPs" = ( /obj/structure/table, @@ -17322,16 +17322,16 @@ /obj/item/clothing/head/cone, /obj/item/clothing/head/cone, /obj/item/clothing/head/cone, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/security/brig) "aQC" = ( /obj/structure/window/reinforced{ dir = 8 }, /obj/machinery/syndicatebomb/training, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/security/brig) "aQD" = ( /obj/machinery/computer/crew, @@ -17404,15 +17404,15 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel/white, /area/medical/medbay) "aQN" = ( /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, /area/medical/medbay) "aQO" = ( /obj/structure/cable/cyan{ @@ -17421,17 +17421,17 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ icon_state = "vent_map" }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, /area/medical/medbay) "aQP" = ( /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/turf/open/floor/plasteel/white, /area/medical/medbay) "aQQ" = ( /obj/structure/cable/cyan{ @@ -17516,10 +17516,10 @@ /obj/structure/cable/cyan{ icon_state = "2-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel, /area/toxins/misc_lab) "aRa" = ( /obj/machinery/computer/rdconsole/experiment, @@ -17552,8 +17552,8 @@ dir = 4 }, /obj/item/key/security, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/security/brig) "aRf" = ( /obj/structure/table, @@ -17578,16 +17578,16 @@ /turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aRi" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, /area/maintenance/fore{ name = "Security Maintenance" }) "aRj" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/turf/open/floor/plasteel, /area/maintenance/fore{ name = "Security Maintenance" }) @@ -17636,19 +17636,19 @@ /obj/structure/cable/cyan{ icon_state = "2-4" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel, /area/security/warden) "aRq" = ( /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel, /area/security/warden) "aRr" = ( /obj/structure/cable/cyan{ @@ -17657,10 +17657,10 @@ /obj/structure/cable/cyan{ icon_state = "2-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel, /area/security/warden) "aRs" = ( /obj/effect/spawner/structure/window/reinforced, @@ -17771,10 +17771,10 @@ icon_state = "manifold"; dir = 8 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel/white, /area/medical/medbay) "aRG" = ( /obj/machinery/portable_atmospherics/canister/oxygen, @@ -17800,10 +17800,10 @@ icon_state = "intact"; dir = 4 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel/white, /area/medical/medbay) "aRJ" = ( /obj/structure/cable/cyan{ @@ -17987,10 +17987,10 @@ /obj/structure/cable/cyan{ icon_state = "4-8" }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel{ name = "floor" }, -/obj/effect/turf_decal/delivery, /area/medical/robotics) "aRU" = ( /obj/machinery/button/door{ @@ -18048,10 +18048,10 @@ /obj/structure/cable/cyan{ icon_state = "1-2" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/turf/open/floor/plasteel, /area/toxins/misc_lab) "aSc" = ( /obj/structure/girder/reinforced, @@ -18257,10 +18257,10 @@ /obj/machinery/atmospherics/pipe/manifold/general/visible{ dir = 8 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel/white, /area/medical/medbay) "aSC" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -18279,10 +18279,10 @@ /turf/open/floor/plasteel/black, /area/medical/medbay) "aSE" = ( -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel/white, /area/medical/medbay) "aSF" = ( /obj/machinery/door/airlock/glass{ @@ -18374,10 +18374,10 @@ icon_state = "intact"; dir = 8 }, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel{ name = "floor" }, -/obj/effect/turf_decal/delivery, /area/medical/robotics) "aSQ" = ( /obj/structure/cable/cyan{ @@ -18435,8 +18435,8 @@ /obj/structure/cable/cyan{ icon_state = "2-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, /area/toxins/misc_lab) "aSY" = ( /obj/structure/table/reinforced, @@ -18449,16 +18449,16 @@ /turf/open/floor/plating, /area/toxins/misc_lab) "aSZ" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/turf/open/floor/plasteel, /area/toxins/misc_lab) "aTa" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/turf/open/floor/plasteel, /area/toxins/misc_lab) "aTb" = ( /obj/machinery/portable_atmospherics/canister/nitrous_oxide, @@ -18481,8 +18481,8 @@ icon_state = "plant-21"; layer = 4.1 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/white, /area/maintenance/fore{ name = "Security Maintenance" }) @@ -18496,10 +18496,10 @@ /obj/structure/window/reinforced{ dir = 8 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel, /area/maintenance/fore{ name = "Security Maintenance" }) @@ -18571,18 +18571,18 @@ /obj/structure/cable/cyan{ icon_state = "1-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, /area/security/warden) "aTo" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, /area/security/warden) "aTp" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/turf/open/floor/plasteel, /area/security/warden) "aTq" = ( /turf/open/floor/plasteel, @@ -18675,33 +18675,33 @@ name = "lightsout" }, /obj/machinery/atmospherics/pipe/simple/general/visible, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/turf/open/floor/plasteel/white, /area/medical/medbay) "aTB" = ( /obj/item/device/radio/beacon, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel/white, /area/medical/medbay) "aTC" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ icon_state = "vent_map"; dir = 1 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel/white, /area/medical/medbay) "aTD" = ( -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/corner{ dir = 4 }, +/turf/open/floor/plasteel/white, /area/medical/medbay) "aTE" = ( /obj/structure/cable/cyan{ @@ -18789,10 +18789,10 @@ icon_state = "intact"; dir = 4 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel, /area/toxins/misc_lab) "aTR" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ @@ -18840,10 +18840,10 @@ /area/maintenance/asmaint2) "aTW" = ( /obj/machinery/light, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel/white, /area/toxins/xenobiology) "aTX" = ( /obj/structure/rack, @@ -18866,8 +18866,8 @@ icon_state = "plant-06"; level = 4.1 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/white, /area/maintenance/fore{ name = "Security Maintenance" }) @@ -18876,16 +18876,16 @@ icon_state = "plant-06"; level = 4.1 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/white, /area/maintenance/fore{ name = "Security Maintenance" }) "aUa" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel, /area/maintenance/fore{ name = "Security Maintenance" }) @@ -18944,10 +18944,10 @@ pixel_y = 5 }, /obj/machinery/light, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel, /area/security/warden) "aUh" = ( /obj/machinery/computer/secure_data, @@ -19084,18 +19084,18 @@ /obj/machinery/shieldwallgen{ req_access = null }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/toxins/misc_lab) "aUw" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/toxins/misc_lab) "aUx" = ( /obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/toxins/misc_lab) "aUy" = ( /obj/machinery/chem_master, @@ -19114,10 +19114,10 @@ /obj/structure/cable/cyan{ icon_state = "1-2" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel, /area/toxins/misc_lab) "aUB" = ( /turf/open/floor/plating, @@ -19128,10 +19128,10 @@ name = "blobstart" }, /obj/structure/target_stake, -/turf/open/floor/plasteel{ +/obj/effect/turf_decal/bot{ dir = 2 }, -/obj/effect/turf_decal/bot{ +/turf/open/floor/plasteel{ dir = 2 }, /area/toxins/misc_lab) @@ -19181,8 +19181,8 @@ /obj/item/weapon/twohanded/required/kirbyplants{ icon_state = "plant-22" }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/white, /area/maintenance/fore{ name = "Security Maintenance" }) @@ -19196,10 +19196,10 @@ /obj/machinery/autolathe{ name = "maint autolathe" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel, /area/maintenance/fore{ name = "Security Maintenance" }) @@ -19215,8 +19215,8 @@ }, /obj/item/device/flashlight, /obj/structure/closet/crate, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/maintenance/fore{ name = "Security Maintenance" }) @@ -19259,13 +19259,13 @@ icon_state = "intact"; dir = 9 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel/white, /area/medical/medbay) "aUS" = ( /obj/structure/window/reinforced, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel/white, /area/medical/medbay) "aUT" = ( /obj/machinery/computer/crew, @@ -19343,8 +19343,8 @@ "aVc" = ( /obj/structure/reagent_dispensers/fueltank, /obj/machinery/light/small, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/toxins/misc_lab) "aVd" = ( /obj/machinery/chem_dispenser/constructable, @@ -19366,10 +19366,10 @@ /obj/structure/cable/cyan{ icon_state = "1-2" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/turf/open/floor/plasteel, /area/toxins/misc_lab) "aVg" = ( /obj/structure/table/reinforced, @@ -19384,16 +19384,16 @@ /turf/open/floor/plating, /area/toxins/misc_lab) "aVh" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/turf/open/floor/plasteel, /area/toxins/misc_lab) "aVi" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 6 }, +/turf/open/floor/plasteel, /area/toxins/misc_lab) "aVj" = ( /obj/structure/grille, @@ -19404,8 +19404,8 @@ icon_state = "plant-05"; layer = 4.1 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/white, /area/maintenance/fore{ name = "Security Maintenance" }) @@ -19537,10 +19537,10 @@ /obj/structure/cable/cyan{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel/white, /area/medical/medbay) "aVy" = ( /obj/machinery/iv_drip{ @@ -19578,8 +19578,8 @@ icon_state = "plant-02"; layer = 4.1 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/white, /area/maintenance/fore{ name = "Security Maintenance" }) @@ -19588,8 +19588,8 @@ icon_state = "plant-02"; layer = 4.1 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/white, /area/maintenance/fore{ name = "Security Maintenance" }) @@ -19616,8 +19616,8 @@ /obj/structure/cable/cyan{ icon_state = "1-4" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, /area/maintenance/fore{ name = "Security Maintenance" }) @@ -19625,8 +19625,8 @@ /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, /area/maintenance/fore{ name = "Security Maintenance" }) @@ -19634,10 +19634,10 @@ /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, +/turf/open/floor/plasteel, /area/maintenance/fore{ name = "Security Maintenance" }) @@ -19784,8 +19784,8 @@ /obj/structure/cable/cyan{ icon_state = "1-2" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, /area/toxins/misc_lab) "aWe" = ( /obj/machinery/camera/autoname, @@ -19829,17 +19829,17 @@ icon_state = "plant-17"; layer = 4.1 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/white, /area/maintenance/fore{ name = "Security Maintenance" }) "aWl" = ( /obj/machinery/vending/assist, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 10 }, +/turf/open/floor/plasteel, /area/maintenance/fore{ name = "Security Maintenance" }) @@ -19848,8 +19848,8 @@ /obj/item/clothing/gloves/color/fyellow, /obj/item/clothing/gloves/color/fyellow, /obj/item/clothing/gloves/color/fyellow, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, /area/maintenance/fore{ name = "Security Maintenance" }) @@ -19882,8 +19882,8 @@ /turf/open/floor/plasteel/white, /area/security/warden) "aWq" = ( -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/white, /area/security/warden) "aWr" = ( /obj/machinery/power/apc{ @@ -19967,10 +19967,10 @@ /obj/structure/extinguisher_cabinet{ pixel_x = -27 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel/white, /area/medical/medbay) "aWB" = ( /obj/structure/closet/crate/freezer, @@ -20102,10 +20102,10 @@ /obj/structure/cable/cyan{ icon_state = "1-4" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel, /area/toxins/misc_lab) "aWQ" = ( /obj/structure/cable/cyan{ @@ -20135,8 +20135,8 @@ /obj/structure/cable/cyan{ icon_state = "1-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plasteel, /area/maintenance/asmaint2) "aWU" = ( /obj/structure/table, @@ -20220,20 +20220,20 @@ /obj/structure/cable/cyan{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/turf/open/floor/plasteel/white, /area/medical/medbay) "aXh" = ( /obj/structure/window/reinforced{ dir = 1; pixel_y = 0 }, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel/white, /area/medical/medbay) "aXi" = ( /turf/closed/wall/shuttle{ @@ -20297,10 +20297,10 @@ /area/toxins/misc_lab) "aXu" = ( /obj/item/device/multitool, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/turf/open/floor/plasteel, /area/toxins/misc_lab) "aXv" = ( /obj/machinery/light{ @@ -20313,10 +20313,10 @@ /obj/structure/cable/cyan{ icon_state = "1-2" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel, /area/maintenance/asmaint2) "aXx" = ( /obj/machinery/door/airlock/maintenance{ @@ -20395,8 +20395,8 @@ /obj/structure/cable/cyan{ icon_state = "1-4" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, /area/maintenance/fore{ name = "Security Maintenance" }) @@ -20551,8 +20551,8 @@ name = "Security Maintenance" }) "aXZ" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/maintenance/fore{ name = "Security Maintenance" }) @@ -20714,10 +20714,10 @@ /obj/machinery/light/small{ dir = 1 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel, /area/maintenance/asmaint2) "aYw" = ( /obj/structure/cable/cyan{ @@ -20741,10 +20741,10 @@ /obj/structure/cable/cyan{ icon_state = "1-2" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, +/turf/open/floor/plasteel, /area/maintenance/asmaint2) "aYz" = ( /obj/item/clothing/shoes/jackboots, @@ -20869,10 +20869,10 @@ /area/shuttle/arrival) "aYP" = ( /obj/item/clothing/head/cone, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel, /area/maintenance/asmaint2) "aYQ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -20886,8 +20886,8 @@ icon_state = "intact"; dir = 4 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/maintenance/asmaint2) "aYS" = ( /obj/machinery/navbeacon{ @@ -20901,8 +20901,8 @@ icon_state = "intact"; dir = 4 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, /area/maintenance/asmaint2) "aYT" = ( /obj/structure/closet/cardboard, @@ -21893,10 +21893,10 @@ /area/crew_quarters/fitness) "bbd" = ( /obj/machinery/computer/camera_advanced/xenobio, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel, /area/toxins/xenobiology) "bbe" = ( /obj/item/stack/sheet/mineral/plasma{ @@ -22300,8 +22300,8 @@ location = "Arrivals Building Area"; name = "navigation beacon" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, /area/maintenance/asmaint2) "bbV" = ( /obj/machinery/light/small{ @@ -22336,8 +22336,8 @@ }, /obj/item/device/flashlight, /obj/structure/closet/crate, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/maintenance/asmaint2) "bca" = ( /obj/machinery/door/airlock/maintenance{ @@ -22510,10 +22510,10 @@ /turf/open/floor/plating, /area/maintenance/asmaint2) "bcB" = ( -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel, /area/maintenance/asmaint2) "bcC" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, @@ -22727,10 +22727,10 @@ name = "Security Maintenance" }) "bdj" = ( +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel{ name = "floor" }, -/obj/effect/turf_decal/delivery, /area/maintenance/fore{ name = "Security Maintenance" }) @@ -22879,10 +22879,10 @@ /area/space) "bdD" = ( /obj/machinery/monkey_recycler, -/turf/open/floor/plasteel/black, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel/black, /area/toxins/xenobiology) "bdE" = ( /obj/effect/landmark/start{ @@ -22891,10 +22891,10 @@ /obj/structure/cable/cyan{ icon_state = "1-2" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/turf/open/floor/plasteel, /area/toxins/xenobiology) "bdF" = ( /obj/machinery/atmospherics/components/binary/valve{ @@ -23036,16 +23036,16 @@ icon_state = "vent_map"; dir = 8 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, /area/maintenance/asmaint2) "bdV" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ icon_state = "manifold"; dir = 8 }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, /area/maintenance/asmaint2) "bdW" = ( /obj/structure/cable/cyan{ @@ -23395,8 +23395,8 @@ "beI" = ( /obj/structure/rack, /obj/item/weapon/gun/energy/e_gun/dragnet, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/security/warden) "beJ" = ( /obj/structure/rack, @@ -23410,8 +23410,8 @@ pixel_y = 5 }, /obj/item/weapon/gun/ballistic/shotgun/riot, -/turf/open/floor/plasteel, /obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, /area/security/warden) "beK" = ( /obj/structure/cable/cyan{ @@ -23491,10 +23491,10 @@ }) "ZyZ" = ( /obj/effect/landmark/xmastree/rdrod, -/turf/open/floor/plasteel/white, /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/turf/open/floor/plasteel/white, /area/toxins/lab) "Zza" = ( /turf/open/space, @@ -23887,19 +23887,19 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel{ - tag = "icon-warningcorner" - }, /obj/effect/turf_decal/stripes/line{ dir = 2 }, +/turf/open/floor/plasteel{ + tag = "icon-warningcorner" + }, /area/maintenance/asmaint2) "ZAb" = ( /obj/structure/cable/cyan{ icon_state = "4-8" }, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line, +/turf/open/floor/plasteel, /area/maintenance/asmaint2) "ZAc" = ( /obj/structure/table/reinforced, @@ -23908,10 +23908,10 @@ /area/medical/medbay) "ZAd" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/turf/open/floor/plasteel, /area/maintenance/asmaint2) "ZAe" = ( /obj/machinery/droneDispenser, @@ -24035,6 +24035,12 @@ /obj/item/clothing/under/burial, /turf/open/floor/plating, /area/maintenance/asmaint2) +"ZAy" = ( +/obj/machinery/deepfryer, +/turf/open/floor/plasteel/white, +/area/crew_quarters/bar{ + name = "\improper Bar and Kitchen" + }) (1,1,1) = {" aaa @@ -59639,7 +59645,7 @@ aCP aDC aGa aFi -aDC +ZAy aGH aHo avJ diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 59ebb7db51..dee755a4a9 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -29436,6 +29436,7 @@ /turf/open/floor/plasteel, /area/crew_quarters/kitchen) "bbq" = ( +/obj/machinery/deepfryer, /mob/living/carbon/monkey/punpun, /turf/open/floor/plasteel/red, /area/crew_quarters/kitchen) @@ -30615,7 +30616,7 @@ "bdC" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/binary/valve/open{ - name = "SM coolant loop"; + name = "SM Coolant loop"; open = 0 }, /turf/open/floor/plasteel/vault{ @@ -118363,6 +118364,10 @@ }, /turf/open/floor/wood, /area/crew_quarters/abandoned_gambling_den) +"edb" = ( +/obj/machinery/deepfryer, +/turf/open/floor/plasteel/red, +/area/crew_quarters/kitchen) (1,1,1) = {" aaa @@ -149615,8 +149620,8 @@ ceO cFo cGG ecI -ecM -ecO +ecI +ecI cHW cOI cQy @@ -149814,7 +149819,7 @@ aMs aOb aPG aRu -ect +ecp aUF boy boy @@ -149871,7 +149876,7 @@ cCL ceO cFm cGG -ecJ +ecI cJI cLo cMY @@ -150385,7 +150390,7 @@ cCL ceO cFn cGG -ecK +ecI cJK cLq cNa @@ -150642,9 +150647,9 @@ cCK bZD cFn cGG -ecL -ecN -ecP +ecI +ecI +ecI cHW cOM cQI @@ -155987,7 +155992,7 @@ aGY aGZ aYv aZV -aZU +edb bcD bdZ bfP @@ -156789,8 +156794,8 @@ bWx bYh bZZ ecz -ecC -ecD +ecz +ecz ecE ecG cjC @@ -157819,8 +157824,8 @@ cad cbN cbN cbN -ecF -ecH +ecE +ecG cjG clg cmt @@ -158330,7 +158335,7 @@ bUO bWC bYl cae -ecB +ecA cdH cfh cgx diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 160d13dce2..e4d3fae392 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -1,5 +1,5 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -//Model dictionary trimmed on: 31-01-2017 23:17 (UTC) +//Model dictionary trimmed on: 02-02-2017 02:51 (UTC) "aaa" = ( /turf/open/space, /area/space) @@ -3906,6 +3906,8 @@ }, /obj/structure/rack, /obj/item/weapon/storage/fancy/donut_box, +/obj/item/weapon/gun/energy/e_gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, /turf/open/floor/plasteel/vault{ dir = 1 }, @@ -40955,8 +40957,6 @@ /obj/item/stack/cable_coil/random, /obj/item/stack/cable_coil/random, /obj/item/stack/cable_coil/random, -/obj/item/weapon/paper_bin/construction, -/obj/item/stack/cable_coil, /turf/open/floor/plasteel, /area/storage/art) "bre" = ( @@ -54885,7 +54885,7 @@ }, /area/crew_quarters/kitchen) "bOV" = ( -/obj/machinery/holopad, +/obj/machinery/deepfryer, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -73083,7 +73083,6 @@ }, /area/crew_quarters/hor) "ctb" = ( -/obj/machinery/computer/aifixer, /obj/structure/window/reinforced{ dir = 4 }, @@ -73095,6 +73094,7 @@ pixel_x = 0; pixel_y = 30 }, +/obj/machinery/modular_computer/console/preset/research, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -94427,6 +94427,23 @@ /obj/structure/disposaloutlet, /turf/open/floor/plating/airless, /area/toxins/xenobiology) +"ddD" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8; + initialize_directions = 11 + }, +/obj/machinery/deepfryer, +/turf/open/floor/plasteel/cafeteria{ + dir = 5 + }, +/area/crew_quarters/kitchen) +"ddE" = ( +/obj/effect/landmark/start{ + name = "Cook" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) (1,1,1) = {" aaa @@ -126198,7 +126215,7 @@ coe cpq cqJ crP -cta +cuN ctR cuN cvR @@ -128230,7 +128247,7 @@ bHb bMP bKg bLL -bNz +ddD bOT bQC bLK @@ -129002,7 +129019,7 @@ bBT bKj bLN bLK -bOR +ddE bQF bNz bSV diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 535f9515e3..032ee25d95 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -8693,6 +8693,8 @@ pixel_x = -32; pixel_y = 0 }, +/obj/item/weapon/gun/energy/e_gun/dragnet, +/obj/item/weapon/gun/energy/e_gun/dragnet, /turf/open/floor/plasteel/red/corner{ dir = 8 }, @@ -19615,6 +19617,7 @@ tag = "icon-4-8"; icon_state = "4-8" }, +/obj/machinery/deepfryer, /turf/open/floor/plasteel/red, /area/crew_quarters/kitchen) "aFe" = ( @@ -21721,12 +21724,6 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aIi" = ( -/obj/machinery/atmospherics/components/trinary/filter{ - dir = 4; - filter_type = "plasma"; - name = "plasma filter"; - on = 1 - }, /obj/structure/cable{ d1 = 4; d2 = 8; @@ -21735,6 +21732,11 @@ tag = "" }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/trinary/filter/flipped{ + tag = "icon-filter_off_f (EAST)"; + icon_state = "filter_off_f"; + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aIj" = ( @@ -21782,7 +21784,7 @@ /area/engine/engineering) "aIl" = ( /obj/machinery/atmospherics/components/binary/pump{ - dir = 4; + dir = 8; name = "Gas to Filter"; on = 1 }, @@ -27106,14 +27108,12 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aQK" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - icon_state = "pump_map"; - name = "Gas to Loop" - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aQL" = ( @@ -27126,13 +27126,12 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aQM" = ( -/obj/machinery/atmospherics/pipe/manifold/general/visible{ - dir = 1 - }, -/obj/machinery/meter, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 4 + }, /turf/open/floor/plasteel, /area/engine/engineering) "aQN" = ( @@ -27178,15 +27177,14 @@ /turf/open/floor/plasteel, /area/engine/engineering) "aQR" = ( -/obj/machinery/atmospherics/components/trinary/filter/flipped{ - tag = "icon-filter_off_f (EAST)"; - icon_state = "filter_off_f"; - dir = 4 - }, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/manifold/general/visible{ + dir = 1 + }, +/obj/machinery/meter, /turf/open/floor/plasteel, /area/engine/engineering) "aQS" = ( @@ -27568,7 +27566,7 @@ /area/engine/engineering) "aRG" = ( /obj/machinery/atmospherics/components/binary/pump{ - dir = 1; + dir = 2; name = "Gas to Cooling Loop"; on = 1 }, @@ -27679,7 +27677,7 @@ /area/engine/engineering) "aRQ" = ( /obj/machinery/atmospherics/components/binary/pump{ - dir = 2; + dir = 1; name = "Gas to Cooling Loop"; on = 1 }, @@ -39231,6 +39229,17 @@ /obj/structure/window/reinforced/fulltile, /turf/open/floor/plating, /area/chapel/main) +"blK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + icon_state = "pump_map"; + name = "Gas to Loop" + }, +/turf/open/floor/plasteel, +/area/engine/engineering) (1,1,1) = {" aaa @@ -71737,7 +71746,7 @@ aMY aOb aOE aLO -aQL +blK aRP aSZ aEt diff --git a/_maps/map_files/TgStation/tgstation.2.1.3.dmm b/_maps/map_files/TgStation/tgstation.2.1.3.dmm index ca42d33a26..9264be651f 100644 --- a/_maps/map_files/TgStation/tgstation.2.1.3.dmm +++ b/_maps/map_files/TgStation/tgstation.2.1.3.dmm @@ -61215,6 +61215,14 @@ /obj/item/weapon/reagent_containers/blood/random, /turf/open/floor/plasteel, /area/medical/sleeper) +"cCq" = ( +/obj/machinery/deepfryer, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) +"cCr" = ( +/obj/machinery/deepfryer, +/turf/open/floor/plasteel/cafeteria, +/area/crew_quarters/kitchen) (1,1,1) = {" aaa @@ -99888,7 +99896,7 @@ aRB aSL aTN aVD -aVz +cCq cAg bak bbz @@ -100145,7 +100153,7 @@ aRG aSO aTO aVG -aVz +cCr aVz bak bbz diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 0bd26ec3e8..4424f05436 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -168,8 +168,10 @@ // Used by Paper and PhotoCopier (and PaperBin once a year). // Used by PDA's Notekeeper. // Used by NewsCaster and NewsPaper. +// Used by Modular Computers #define PEN_FONT "Verdana" #define CRAYON_FONT "Comic Sans MS" +#define PRINTER_FONT "Times New Roman" #define SIGNFONT "Times New Roman" #define RESIZE_DEFAULT_SIZE 1 diff --git a/code/__DEFINES/qdel.dm b/code/__DEFINES/qdel.dm index 4bbe2e486a..fe19d7a559 100644 --- a/code/__DEFINES/qdel.dm +++ b/code/__DEFINES/qdel.dm @@ -13,3 +13,6 @@ #define GC_QUEUED_FOR_QUEUING -1 #define GC_QUEUED_FOR_HARD_DEL -2 #define GC_CURRENTLY_BEING_QDELETED -3 + +#define QDELETED(X) (!X || X.gc_destroyed) +#define QDESTROYING(X) (!X || X.gc_destroyed == GC_CURRENTLY_BEING_QDELETED) diff --git a/code/__HELPERS/_logging.dm b/code/__HELPERS/_logging.dm index 48e085aa51..9b89a666c8 100644 --- a/code/__HELPERS/_logging.dm +++ b/code/__HELPERS/_logging.dm @@ -20,10 +20,6 @@ if (config.log_admin) diary << "\[[time_stamp()]]ADMIN: [text]" -/proc/log_mentor(text) - mentor_log.Add(text) - diary << "\[[time_stamp()]]MENTOR: [text]" - /proc/log_adminsay(text) if (config.log_adminchat) log_admin("ASAY: [text]") diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 6cc76759c3..46d2625967 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -449,7 +449,7 @@ /proc/pollCandidatesForMob(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, mob/M, ignore_category = null) var/list/L = pollCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category) - if(!M || qdeleted(M) || !M.loc) + if(!M || QDELETED(M) || !M.loc) return list() return L @@ -458,7 +458,7 @@ var/i=1 for(var/v in mobs) var/atom/A = v - if(!A || qdeleted(A) || !A.loc) + if(!A || QDELETED(A) || !A.loc) mobs.Cut(i,i+1) else ++i diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index cde26bd199..f0c42311b6 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -13,12 +13,6 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/undershirt, undershirt_list, undershirt_m, undershirt_f) //socks init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, socks_list) - //human mutant bodyparts - init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, tails_list_human) - init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/human, animated_tails_list_human) - init_sprite_accessory_subtypes(/datum/sprite_accessory/ears, ears_list) - init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, wings_list) - init_sprite_accessory_subtypes(/datum/sprite_accessory/wings_open, wings_open_list) //lizard bodyparts (blizzard intensifies) init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, body_markings_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/lizard, tails_list_lizard) @@ -36,6 +30,13 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/legs, legs_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, r_wings_list,roundstart = TRUE) + //human mutant bodyparts + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, tails_list_human) + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/human, animated_tails_list_human) + init_sprite_accessory_subtypes(/datum/sprite_accessory/ears, ears_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, wings_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/wings_open, wings_open_list) + //mammal bodyparts (fucking furries) init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_body_markings, mam_body_markings_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails, mam_tails_list) diff --git a/code/__HELPERS/icon_smoothing.dm b/code/__HELPERS/icon_smoothing.dm index 483f54b860..ee0f069c92 100644 --- a/code/__HELPERS/icon_smoothing.dm +++ b/code/__HELPERS/icon_smoothing.dm @@ -33,11 +33,12 @@ #define N_SOUTHEAST 64 #define N_SOUTHWEST 1024 -#define SMOOTH_FALSE 0 //not smooth -#define SMOOTH_TRUE 1 //smooths with exact specified types or just itself -#define SMOOTH_MORE 2 //smooths with all subtypes of specified types or just itself (this value can replace SMOOTH_TRUE) -#define SMOOTH_DIAGONAL 4 //if atom should smooth diagonally, this should be present in 'smooth' var -#define SMOOTH_BORDER 8 //atom will smooth with the borders of the map +#define SMOOTH_FALSE 0 //not smooth +#define SMOOTH_TRUE 1 //smooths with exact specified types or just itself +#define SMOOTH_MORE 2 //smooths with all subtypes of specified types or just itself (this value can replace SMOOTH_TRUE) +#define SMOOTH_DIAGONAL 4 //if atom should smooth diagonally, this should be present in 'smooth' var +#define SMOOTH_BORDER 8 //atom will smooth with the borders of the map +#define SMOOTH_QUEUED 16 //atom is currently queued to smooth. #define NULLTURF_BORDER 123456789 @@ -110,9 +111,12 @@ //do not use, use queue_smooth(atom) /proc/smooth_icon(atom/A) - if(!A || !A.smooth || !A.z) + if(!A || !A.smooth) return - if(qdeleted(A)) + A.smooth &= ~SMOOTH_QUEUED + if (!A.z) + return + if(QDELETED(A)) return if((A.smooth & SMOOTH_TRUE) || (A.smooth & SMOOTH_MORE)) var/adjacencies = calculate_adjacencies(A) @@ -376,11 +380,13 @@ //SSicon_smooth /proc/queue_smooth(atom/A) - if(SSicon_smooth) - SSicon_smooth.smooth_queue[A] = A - SSicon_smooth.can_fire = 1 - else - smooth_icon(A) + if(!A.smooth || A.smooth & SMOOTH_QUEUED) + return + + SSicon_smooth.smooth_queue += A + SSicon_smooth.can_fire = 1 + A.smooth |= SMOOTH_QUEUED + //Example smooth wall /turf/closed/wall/smooth diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 11afa1a04b..37a6b59522 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -133,7 +133,6 @@ var/list/skin_tones = list( ) var/global/list/species_list[0] -var/global/list/whitelisted_species_list[0] var/global/list/roundstart_species[0] /proc/age2agedescription(age) diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index e24724f9c5..c49f6419d1 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -81,14 +81,21 @@ return text //only accepts the text if it has some non-spaces // Used to get a properly sanitized input, of max_length -/proc/stripped_input(mob/user, message = "", title = "", default = "", max_length=MAX_MESSAGE_LEN) +// no_trim is self explanatory but it prevents the input from being trimed if you intend to parse newlines or whitespace. +/proc/stripped_input(mob/user, message = "", title = "", default = "", max_length=MAX_MESSAGE_LEN, no_trim=FALSE) var/name = input(user, message, title, default) as text|null - return trim(html_encode(name), max_length) //trim is "outside" because html_encode can expand single symbols into multiple symbols (such as turning < into <) + if(no_trim) + return copytext(html_encode(name), 1, max_length) + else + return trim(html_encode(name), max_length) //trim is "outside" because html_encode can expand single symbols into multiple symbols (such as turning < into <) // Used to get a properly sanitized multiline input, of max_length -/proc/stripped_multiline_input(mob/user, message = "", title = "", default = "", max_length=MAX_MESSAGE_LEN) +/proc/stripped_multiline_input(mob/user, message = "", title = "", default = "", max_length=MAX_MESSAGE_LEN, no_trim=FALSE) var/name = input(user, message, title, default) as message|null - return html_encode(trim(name, max_length)) + if(no_trim) + return copytext(html_encode(name), 1, max_length) + else + return trim(html_encode(name), max_length) //Filters out undesirable characters from names /proc/reject_bad_name(t_in, allow_numbers=0, max_length=MAX_NAME_LEN) diff --git a/code/__HELPERS/text_vr.dm b/code/__HELPERS/text_vr.dm index d613f9b770..20fa1eb49d 100644 --- a/code/__HELPERS/text_vr.dm +++ b/code/__HELPERS/text_vr.dm @@ -16,3 +16,10 @@ proc/TextPreview(var/string,var/len=40) return string else return "[copytext(string, 1, 37)]..." + +var/list/mentor_log = list ( ) +var/list/admintickets = list() +var/global/list/whitelisted_species_list[0] +/proc/log_mentor(text) + mentor_log.Add(text) + diary << "\[[time_stamp()]]MENTOR: [text]" \ No newline at end of file diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 5ef41c5fb4..d64e2162c2 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -916,7 +916,7 @@ var/list/WALLITEMS_INVERSE = typecacheof(list( /proc/IsValidSrc(datum/D) if(istype(D)) - return !qdeleted(D) + return !QDELETED(D) return 0 diff --git a/code/_compile_options.dm b/code/_compile_options.dm index c591269eb4..6f2a0aacf6 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -50,6 +50,10 @@ #warn compiling in TESTING mode. testing() debug messages will be visible. #endif +#ifdef TRAVISTESTING +#define TESTING +#endif + //Update this whenever you need to take advantage of more recent byond features #define MIN_COMPILER_VERSION 510 #if DM_VERSION < MIN_COMPILER_VERSION diff --git a/code/_globalvars/logging.dm b/code/_globalvars/logging.dm index 68893b7484..348dc6d551 100644 --- a/code/_globalvars/logging.dm +++ b/code/_globalvars/logging.dm @@ -4,7 +4,6 @@ var/href_logfile = null var/list/bombers = list( ) var/list/admin_log = list ( ) -var/list/mentor_log = list ( ) var/list/lastsignalers = list( ) //keeps last 100 signals here in format: "[src] used \ref[src] @ location [src.loc]: [freq]/[code]" var/list/lawchanges = list( ) //Stores who uploaded laws to which silicon-based lifeform, and what the law was @@ -12,6 +11,5 @@ var/list/combatlog = list() var/list/IClog = list() var/list/OOClog = list() var/list/adminlog = list() -var/list/admintickets = list() var/list/active_turfs_startlist = list() diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index d0a3e8f647..b301fab1c3 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -184,4 +184,4 @@ // /mob/living/silicon/ai/TurfAdjacent(var/turf/T) - return (cameranet && cameranet.checkTurfVis(T)) \ No newline at end of file + return (cameranet && cameranet.checkTurfVis(T)) diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm index 1f8b1c2488..0c5ca7782c 100644 --- a/code/_onclick/hud/alien.dm +++ b/code/_onclick/hud/alien.dm @@ -10,17 +10,6 @@ var/mob/living/carbon/alien/humanoid/hunter/AH = usr AH.toggle_leap() -/obj/screen/alien/nightvision - name = "toggle night-vision" - icon_state = "nightvision1" - screen_loc = ui_alien_nightvision - -/obj/screen/alien/nightvision/Click() - var/mob/living/carbon/alien/A = usr - var/obj/effect/proc_holder/alien/nightvisiontoggle/T = locate() in A.abilities - if(T) - T.fire(A) - /obj/screen/alien/plasma_display icon = 'icons/mob/screen_gen.dmi' icon_state = "power_display2" @@ -105,9 +94,6 @@ healths = new /obj/screen/healths/alien() infodisplay += healths - nightvisionicon = new /obj/screen/alien/nightvision() - infodisplay += nightvisionicon - alien_plasma_display = new /obj/screen/alien/plasma_display() infodisplay += alien_plasma_display diff --git a/code/_onclick/hud/alien_larva.dm b/code/_onclick/hud/alien_larva.dm index 2392e349fe..34d64b1bc7 100644 --- a/code/_onclick/hud/alien_larva.dm +++ b/code/_onclick/hud/alien_larva.dm @@ -10,9 +10,6 @@ healths = new /obj/screen/healths/alien() infodisplay += healths - nightvisionicon = new /obj/screen/alien/nightvision() - nightvisionicon.screen_loc = ui_alien_nightvision - infodisplay += nightvisionicon alien_queen_finder = new /obj/screen/alien/alien_queen_finder() infodisplay += alien_queen_finder pull_icon = new /obj/screen/pull() diff --git a/code/_onclick/hud/ghost.dm b/code/_onclick/hud/ghost.dm index 546f0a6a02..ac983eb314 100644 --- a/code/_onclick/hud/ghost.dm +++ b/code/_onclick/hud/ghost.dm @@ -77,6 +77,8 @@ /datum/hud/ghost/show_hud() var/mob/dead/observer/G = mymob mymob.client.screen = list() + for(var/thing in plane_masters) + mymob.client.screen += plane_masters[thing] create_parallax() if(G.client.prefs.ghost_hud) mymob.client.screen += static_inventory diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 56123031d9..cd1f0799f7 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -200,9 +200,8 @@ if(infodisplay.len) screenmob.client.screen -= infodisplay - if(plane_masters.len) - for(var/thing in plane_masters) - screenmob.client.screen += plane_masters[thing] + for(var/thing in plane_masters) + screenmob.client.screen += plane_masters[thing] hud_version = display_hud_version persistent_inventory_update(screenmob) mymob.update_action_buttons(1) diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index 4a141df0c5..3c70a0544d 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -98,7 +98,7 @@ var/const/tk_maxrange = 15 /obj/item/tk_grab/attack_self(mob/user) if(!focus) return - if(qdeleted(focus)) + if(QDELETED(focus)) qdel(src) return focus.attack_self_tk(user) diff --git a/code/controllers/subsystem.dm b/code/controllers/subsystem.dm index 67a0281d97..f616218bd2 100644 --- a/code/controllers/subsystem.dm +++ b/code/controllers/subsystem.dm @@ -157,6 +157,7 @@ var/time = (world.timeofday - start_timeofday) / 10 var/msg = "Initialized [name] subsystem within [time] seconds!" world << "[msg]" + world.log << msg return time //hook for printing stats to the "MC" statuspanel for admins to see performance and related stats etc. diff --git a/code/controllers/subsystem/acid.dm b/code/controllers/subsystem/acid.dm index 23b671bf71..254ca8003f 100644 --- a/code/controllers/subsystem/acid.dm +++ b/code/controllers/subsystem/acid.dm @@ -26,7 +26,7 @@ var/datum/subsystem/acid/SSacid while (currentrun.len) var/obj/O = currentrun[currentrun.len] currentrun.len-- - if (!O || qdeleted(O)) + if (!O || QDELETED(O)) processing -= O if (MC_TICK_CHECK) return diff --git a/code/controllers/subsystem/augury.dm b/code/controllers/subsystem/augury.dm index b64d59ebf8..f9035c7252 100644 --- a/code/controllers/subsystem/augury.dm +++ b/code/controllers/subsystem/augury.dm @@ -22,8 +22,9 @@ var/datum/subsystem/augury/SSaugury var/biggest_doom = null var/biggest_threat = null - for(var/d in doombringers) - if(!d || qdeleted(d)) + for(var/db in doombringers) + var/datum/d = db + if(!d || QDELETED(d)) doombringers -= d continue var/threat = doombringers[d] diff --git a/code/controllers/subsystem/events.dm b/code/controllers/subsystem/events.dm index 8ec2d00afe..76f68346d7 100644 --- a/code/controllers/subsystem/events.dm +++ b/code/controllers/subsystem/events.dm @@ -59,17 +59,6 @@ var/datum/subsystem/events/SSevent /datum/subsystem/events/proc/reschedule() scheduled = world.time + rand(frequency_lower, max(frequency_lower,frequency_upper)) - if(world.time > 108000) //2:45 - frequency_lower=1000 - frequency_upper=1500 - //if ((!( ticker ) || emergency_shuttle.location)) - //if(SSshuttle.emergency.mode == SHUTTLE_DOCKED || SSshuttle.emergency.mode == SHUTTLE_CALL) - // return - if(SSshuttle.emergency.mode < SHUTTLE_CALL) - SSshuttle.emergency.request(null, 1.5) - log_game("Round time limit reached. Shuttle has been auto-called.") - message_admins("Round time limit reached. Shuttle called.") - //selects a random event based on whether it can occur and it's 'weight'(probability) /datum/subsystem/events/proc/spawnEvent() if(!config.allow_random_events) @@ -108,7 +97,7 @@ var/datum/subsystem/events/SSevent continue if (E.alertadmins) message_admins("Random Event triggering: [E.name] ([E.typepath])") - deadchat_broadcast("[E.name] has just been randomly triggered!") //STOP ASSUMING IT'S BADMINS! + deadchat_broadcast("[E.name] has just been randomly triggered!") //STOP ASSUMING IT'S BADMINS! log_game("Random Event triggering: [E.name] ([E.typepath])") return diff --git a/code/controllers/subsystem/fire_burning.dm b/code/controllers/subsystem/fire_burning.dm index 2ace744430..0b812f7306 100644 --- a/code/controllers/subsystem/fire_burning.dm +++ b/code/controllers/subsystem/fire_burning.dm @@ -26,7 +26,7 @@ var/datum/subsystem/fire_burning/SSfire_burning while(currentrun.len) var/obj/O = currentrun[currentrun.len] currentrun.len-- - if (!O || qdeleted(O)) + if (!O || QDELETED(O)) processing -= O if (MC_TICK_CHECK) return diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index e05882c6ca..d5b17438de 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -203,22 +203,6 @@ var/datum/subsystem/garbage_collector/SSgarbage else if(D.gc_destroyed == GC_CURRENTLY_BEING_QDELETED) CRASH("[D.type] destroy proc was called multiple times, likely due to a qdel loop in the Destroy logic") -// Returns 1 if the object has been queued for deletion. -/proc/qdeleted(datum/D) - if(!istype(D)) - return FALSE - if(D.gc_destroyed) - return TRUE - return FALSE - -// Returns true if the object's destroy has been called (set just before it is called) -/proc/qdestroying(datum/D) - if(!istype(D)) - return FALSE - if(D.gc_destroyed == GC_CURRENTLY_BEING_QDELETED) - return TRUE - return FALSE - // Default implementation of clean-up code. // This should be overridden to remove all references pointing to the object being destroyed. // Return the appropriate QDEL_HINT; in most cases this is QDEL_HINT_QUEUE. @@ -270,6 +254,7 @@ var/datum/subsystem/garbage_collector/SSgarbage usr.client.running_find_references = type testing("Beginning search for references to a [type].") + find_references_in_globals() for(var/datum/thing in world) if(usr && usr.client && !usr.client.running_find_references) return for(var/varname in thing.vars) @@ -326,4 +311,735 @@ var/datum/subsystem/garbage_collector/SSgarbage dat += "[path] - [tmplist[path]] times
" usr << browse(dat, "window=qdeletedlog") + +#define SearchVar(X) DoSearchVar(X, #X) + +/datum/proc/DoSearchVar(X, Xname) + if(islist(X)) + if(src in X) + testing("Found [src.type] \ref[src] in global list [Xname].") + else if(istype(X, /datum)) + var/datum/D = X + for(var/V in D.vars) + for(var/varname in D.vars) + var/variable = D.vars[varname] + if(variable == src) + testing("Found [src.type] \ref[src] in [D.type]'s [varname] var. Global: [Xname]") + else if(islist(variable) && src in variable) + testing("Found [src.type] \ref[src] in [D.type]'s [varname] list var. Global: [Xname]") + CHECK_TICK + +//if find_references isn't working for some datum +//update this list using tools/DMTreeToGlobalsList +/datum/proc/find_references_in_globals() + SearchVar(last_irc_status) + SearchVar(inerror) + SearchVar(failed_db_connections) + SearchVar(nextmap) + SearchVar(mapchanging) + SearchVar(rebootingpendingmapchange) + SearchVar(clockwork_construction_value) + SearchVar(clockwork_caches) + SearchVar(clockwork_daemons) + SearchVar(clockwork_generals_invoked) + SearchVar(all_clockwork_objects) + SearchVar(all_clockwork_mobs) + SearchVar(clockwork_component_cache) + SearchVar(ratvar_awakens) + SearchVar(clockwork_gateway_activated) + SearchVar(all_scripture) + SearchVar(pointed_types) + SearchVar(bloody_footprints_cache) + SearchVar(ghost_accs_options) + SearchVar(ghost_others_options) + SearchVar(special_roles) + SearchVar(string_cache) + SearchVar(string_filename_current_key) + SearchVar(cmp_field) + SearchVar(friendly_animal_types) + SearchVar(humanoid_icon_cache) + SearchVar(freeze_item_icons) + SearchVar(E) + SearchVar(Sqrt2) + SearchVar(sqrtTable) + SearchVar(gaussian_next) + SearchVar(skin_tones) + SearchVar(species_list) + SearchVar(roundstart_species) + SearchVar(church_name) + SearchVar(command_name) + SearchVar(religion_name) + SearchVar(syndicate_name) + SearchVar(syndicate_code_phrase) + SearchVar(syndicate_code_response) + SearchVar(zero_character_only) + SearchVar(hex_characters) + SearchVar(alphabet) + SearchVar(binary) + SearchVar(can_embed_types) + SearchVar(WALLITEMS) + SearchVar(WALLITEMS_EXTERNAL) + SearchVar(WALLITEMS_INVERSE) + SearchVar(sortInstance) + SearchVar(config) + SearchVar(protected_config) + SearchVar(host) + SearchVar(join_motd) + SearchVar(station_name) + SearchVar(game_version) + SearchVar(changelog_hash) + SearchVar(ooc_allowed) + SearchVar(dooc_allowed) + SearchVar(abandon_allowed) + SearchVar(enter_allowed) + SearchVar(guests_allowed) + SearchVar(shuttle_frozen) + SearchVar(shuttle_left) + SearchVar(tinted_weldhelh) + SearchVar(Debug) + SearchVar(Debug2) + SearchVar(comms_key) + SearchVar(comms_allowed) + SearchVar(cross_address) + SearchVar(cross_allowed) + SearchVar(medal_hub) + SearchVar(medal_pass) + SearchVar(medals_enabled) + SearchVar(MAX_EX_DEVESTATION_RANGE) + SearchVar(MAX_EX_HEAVY_RANGE) + SearchVar(MAX_EX_LIGHT_RANGE) + SearchVar(MAX_EX_FLASH_RANGE) + SearchVar(MAX_EX_FLAME_RANGE) + SearchVar(DYN_EX_SCALE) + SearchVar(sqladdress) + SearchVar(sqlport) + SearchVar(sqlfdbkdb) + SearchVar(sqlfdbklogin) + SearchVar(sqlfdbkpass) + SearchVar(sqlfdbktableprefix) + SearchVar(dbcon) + SearchVar(master_mode) + SearchVar(secret_force_mode) + SearchVar(wavesecret) + SearchVar(start_state) + SearchVar(NEARSIGHTBLOCK) + SearchVar(EPILEPSYBLOCK) + SearchVar(COUGHBLOCK) + SearchVar(TOURETTESBLOCK) + SearchVar(NERVOUSBLOCK) + SearchVar(BLINDBLOCK) + SearchVar(DEAFBLOCK) + SearchVar(HULKBLOCK) + SearchVar(TELEBLOCK) + SearchVar(FIREBLOCK) + SearchVar(XRAYBLOCK) + SearchVar(CLUMSYBLOCK) + SearchVar(STRANGEBLOCK) + SearchVar(RACEBLOCK) + SearchVar(bad_se_blocks) + SearchVar(good_se_blocks) + SearchVar(op_se_blocks) + SearchVar(NULLED_SE) + SearchVar(NULLED_UI) + SearchVar(global_mutations) + SearchVar(bad_mutations) + SearchVar(good_mutations) + SearchVar(not_good_mutations) + SearchVar(diary) + SearchVar(diaryofmeanpeople) + SearchVar(href_logfile) + SearchVar(bombers) + SearchVar(admin_log) + SearchVar(lastsignalers) + SearchVar(lawchanges) + SearchVar(combatlog) + SearchVar(IClog) + SearchVar(OOClog) + SearchVar(adminlog) + SearchVar(active_turfs_startlist) + SearchVar(admin_notice) + SearchVar(timezoneOffset) + SearchVar(fileaccess_timer) + SearchVar(TAB) + SearchVar(map_ready) + SearchVar(data_core) + SearchVar(CELLRATE) + SearchVar(CHARGELEVEL) + SearchVar(powernets) + SearchVar(map_name) + SearchVar(hair_styles_list) + SearchVar(hair_styles_male_list) + SearchVar(hair_styles_female_list) + SearchVar(facial_hair_styles_list) + SearchVar(facial_hair_styles_male_list) + SearchVar(facial_hair_styles_female_list) + SearchVar(underwear_list) + SearchVar(underwear_m) + SearchVar(underwear_f) + SearchVar(undershirt_list) + SearchVar(undershirt_m) + SearchVar(undershirt_f) + SearchVar(socks_list) + SearchVar(body_markings_list) + SearchVar(tails_list_lizard) + SearchVar(animated_tails_list_lizard) + SearchVar(snouts_list) + SearchVar(horns_list) + SearchVar(frills_list) + SearchVar(spines_list) + SearchVar(legs_list) + SearchVar(animated_spines_list) + SearchVar(tails_list_human) + SearchVar(animated_tails_list_human) + SearchVar(ears_list) + SearchVar(wings_list) + SearchVar(wings_open_list) + SearchVar(r_wings_list) + SearchVar(ghost_forms_with_directions_list) + SearchVar(ghost_forms_with_accessories_list) + SearchVar(security_depts_prefs) + SearchVar(backbaglist) + SearchVar(uplink_spawn_loc_list) + SearchVar(female_clothing_icons) + SearchVar(hit_appends) + SearchVar(scarySounds) + SearchVar(TAGGERLOCATIONS) + SearchVar(guitar_notes) + SearchVar(station_prefixes) + SearchVar(station_names) + SearchVar(station_suffixes) + SearchVar(greek_letters) + SearchVar(phonetic_alphabet) + SearchVar(numbers_as_words) + SearchVar(station_numerals) + SearchVar(cardinal) + SearchVar(alldirs) + SearchVar(diagonals) + SearchVar(accessable_z_levels) + SearchVar(global_map) + SearchVar(landmarks_list) + SearchVar(start_landmarks_list) + SearchVar(department_security_spawns) + SearchVar(generic_event_spawns) + SearchVar(monkeystart) + SearchVar(wizardstart) + SearchVar(newplayer_start) + SearchVar(latejoin) + SearchVar(prisonwarp) + SearchVar(holdingfacility) + SearchVar(xeno_spawn) + SearchVar(tdome1) + SearchVar(tdome2) + SearchVar(tdomeobserve) + SearchVar(tdomeadmin) + SearchVar(prisonsecuritywarp) + SearchVar(prisonwarped) + SearchVar(blobstart) + SearchVar(secequipment) + SearchVar(deathsquadspawn) + SearchVar(emergencyresponseteamspawn) + SearchVar(ruin_landmarks) + SearchVar(awaydestinations) + SearchVar(sortedAreas) + SearchVar(map_templates) + SearchVar(ruins_templates) + SearchVar(space_ruins_templates) + SearchVar(lava_ruins_templates) + SearchVar(shuttle_templates) + SearchVar(shelter_templates) + SearchVar(transit_markers) + SearchVar(clients) + SearchVar(admins) + SearchVar(deadmins) + SearchVar(directory) + SearchVar(stealthminID) + SearchVar(current_watchlist) + SearchVar(player_list) + SearchVar(mob_list) + SearchVar(living_mob_list) + SearchVar(dead_mob_list) + SearchVar(joined_player_list) + SearchVar(silicon_mobs) + SearchVar(pai_list) + SearchVar(ai_names) + SearchVar(wizard_first) + SearchVar(wizard_second) + SearchVar(ninja_titles) + SearchVar(ninja_names) + SearchVar(commando_names) + SearchVar(first_names_male) + SearchVar(first_names_female) + SearchVar(last_names) + SearchVar(lizard_names_male) + SearchVar(lizard_names_female) + SearchVar(clown_names) + SearchVar(mime_names) + SearchVar(carp_names) + SearchVar(golem_names) + SearchVar(plasmaman_names) + SearchVar(verbs) + SearchVar(adjectives) + SearchVar(cable_list) + SearchVar(portals) + SearchVar(airlocks) + SearchVar(mechas_list) + SearchVar(shuttle_caller_list) + SearchVar(machines) + SearchVar(syndicate_shuttle_boards) + SearchVar(navbeacons) + SearchVar(teleportbeacons) + SearchVar(deliverybeacons) + SearchVar(deliverybeacontags) + SearchVar(nuke_list) + SearchVar(alarmdisplay) + SearchVar(chemical_reactions_list) + SearchVar(chemical_reagents_list) + SearchVar(materials_list) + SearchVar(tech_list) + SearchVar(surgeries_list) + SearchVar(crafting_recipes) + SearchVar(rcd_list) + SearchVar(apcs_list) + SearchVar(tracked_implants) + SearchVar(tracked_chem_implants) + SearchVar(poi_list) + SearchVar(pinpointer_list) + SearchVar(zombie_infection_list) + SearchVar(meteor_list) + SearchVar(poll_ignore) + SearchVar(typecache_mob) + SearchVar(tk_maxrange) + SearchVar(Failsafe) + SearchVar(Master) + SearchVar(MC_restart_clear) + SearchVar(MC_restart_timeout) + SearchVar(MC_restart_count) + SearchVar(CURRENT_TICKLIMIT) + SearchVar(SSacid) + SearchVar(SSair) + SearchVar(SSasset) + SearchVar(SSaugury) + SearchVar(SScommunications) + SearchVar(SSdisease) + SearchVar(SSevent) + SearchVar(SSfire_burning) + SearchVar(SSgarbage) + SearchVar(SSicon_smooth) + SearchVar(SSipintel) + SearchVar(SSjob) + SearchVar(SSlighting) + SearchVar(SSmachine) + SearchVar(SSmapping) + SearchVar(SSminimap) + SearchVar(SSmob) + SearchVar(SSnpc) + SearchVar(SSorbit) + SearchVar(SSpai) + SearchVar(pai_card_list) + SearchVar(SSparallax) + SearchVar(SSpersistence) + SearchVar(SSping) + SearchVar(SSradio) + SearchVar(SSreligion) + SearchVar(SSserver) + SearchVar(SSshuttle) + SearchVar(SSspacedrift) + SearchVar(SSsqueak) + SearchVar(SSstickyban) + SearchVar(SSsun) + SearchVar(SStgui) + SearchVar(SSthrowing) + SearchVar(round_start_time) + SearchVar(ticker) + SearchVar(SStimer) + SearchVar(SSvote) + SearchVar(SSweather) + SearchVar(SSfastprocess) + SearchVar(SSflightpacks) + SearchVar(SSobj) + SearchVar(SSprocessing) + SearchVar(record_id_num) + SearchVar(emote_list) + SearchVar(huds) + SearchVar(diseases) + SearchVar(archive_diseases) + SearchVar(advance_cures) + SearchVar(list_symptoms) + SearchVar(dictionary_symptoms) + SearchVar(SYMPTOM_ACTIVATION_PROB) + SearchVar(revdata) + SearchVar(all_status_effects) + SearchVar(wire_colors) + SearchVar(wire_color_directory) + SearchVar(wire_name_directory) + SearchVar(possiblethemes) + SearchVar(max_secret_rooms) + SearchVar(blood_splatter_icons) + SearchVar(all_radios) + SearchVar(radiochannels) + SearchVar(radiochannelsreverse) + SearchVar(SYND_FREQ) + SearchVar(SUPP_FREQ) + SearchVar(SERV_FREQ) + SearchVar(SCI_FREQ) + SearchVar(COMM_FREQ) + SearchVar(MED_FREQ) + SearchVar(ENG_FREQ) + SearchVar(SEC_FREQ) + SearchVar(CENTCOM_FREQ) + SearchVar(AIPRIV_FREQ) + SearchVar(RADIO_TO_AIRALARM) + SearchVar(RADIO_FROM_AIRALARM) + SearchVar(RADIO_CHAT) + SearchVar(RADIO_ATMOSIA) + SearchVar(RADIO_NAVBEACONS) + SearchVar(RADIO_AIRLOCK) + SearchVar(RADIO_MAGNETS) + SearchVar(pointers) + SearchVar(freqtospan) + SearchVar(teleportlocs) + SearchVar(the_station_areas) + SearchVar(possible_items) + SearchVar(possible_items_special) + SearchVar(blobs) + SearchVar(blob_cores) + SearchVar(overminds) + SearchVar(blob_nodes) + SearchVar(blobs_legit) + SearchVar(possible_changeling_IDs) + SearchVar(slots) + SearchVar(slot2slot) + SearchVar(slot2type) + SearchVar(hivemind_bank) + SearchVar(blacklisted_pylon_turfs) + SearchVar(non_revealed_runes) + SearchVar(teleport_runes) + SearchVar(wall_runes) + SearchVar(whiteness) + SearchVar(allDevils) + SearchVar(lawlorify) + SearchVar(gang_name_pool) + SearchVar(gang_colors_pool) + SearchVar(borers) + SearchVar(total_borer_hosts_needed) + SearchVar(bomb_set) + SearchVar(hsboxspawn) + SearchVar(multiverse) + SearchVar(announcement_systems) + SearchVar(doppler_arrays) + SearchVar(HOLOPAD_MODE) + SearchVar(holopads) + SearchVar(news_network) + SearchVar(allCasters) + SearchVar(SAFETY_COOLDOWN) + SearchVar(req_console_assistance) + SearchVar(req_console_supplies) + SearchVar(req_console_information) + SearchVar(allConsoles) + SearchVar(time_last_changed_position) + SearchVar(CALL_SHUTTLE_REASON_LENGTH) + SearchVar(crewmonitor) + SearchVar(possible_uplinker_IDs) + SearchVar(airlock_overlays) + SearchVar(pipeID2State) + SearchVar(telecomms_list) + SearchVar(recentmessages) + SearchVar(message_delay) + SearchVar(year) + SearchVar(year_integer) + SearchVar(explosionid) + SearchVar(fire_overlay) + SearchVar(acid_overlay) + SearchVar(BUMP_TELEPORTERS) + SearchVar(contrabandposters) + SearchVar(legitposters) + SearchVar(blacklisted_glowshroom_turfs) + SearchVar(PDAs) + SearchVar(rod_recipes) + SearchVar(glass_recipes) + SearchVar(reinforced_glass_recipes) + SearchVar(human_recipes) + SearchVar(corgi_recipes) + SearchVar(monkey_recipes) + SearchVar(xeno_recipes) + SearchVar(sinew_recipes) + SearchVar(sandstone_recipes) + SearchVar(sandbag_recipes) + SearchVar(diamond_recipes) + SearchVar(uranium_recipes) + SearchVar(plasma_recipes) + SearchVar(gold_recipes) + SearchVar(silver_recipes) + SearchVar(clown_recipes) + SearchVar(titanium_recipes) + SearchVar(plastitanium_recipes) + SearchVar(snow_recipes) + SearchVar(abductor_recipes) + SearchVar(metal_recipes) + SearchVar(plasteel_recipes) + SearchVar(wood_recipes) + SearchVar(cloth_recipes) + SearchVar(cardboard_recipes) + SearchVar(runed_metal_recipes) + SearchVar(brass_recipes) + SearchVar(disposalpipeID2State) + SearchVar(RPD_recipes) + SearchVar(highlander_claymores) + SearchVar(biblenames) + SearchVar(biblestates) + SearchVar(bibleitemstates) + SearchVar(globalBlankCanvases) + SearchVar(crematoriums) + SearchVar(icons_to_ignore_at_floor_init) + SearchVar(js_byjax) + SearchVar(js_dropdowns) + SearchVar(BSACooldown) + SearchVar(admin_ranks) + SearchVar(admin_verbs_default) + SearchVar(admin_verbs_admin) + SearchVar(admin_verbs_ban) + SearchVar(admin_verbs_sounds) + SearchVar(admin_verbs_fun) + SearchVar(admin_verbs_spawn) + SearchVar(admin_verbs_server) + SearchVar(admin_verbs_debug) + SearchVar(admin_verbs_possess) + SearchVar(admin_verbs_permissions) + SearchVar(admin_verbs_rejuv) + SearchVar(admin_verbs_hideable) + SearchVar(create_object_html) + SearchVar(create_object_forms) + SearchVar(admin_datums) + SearchVar(CMinutes) + SearchVar(Banlist) + SearchVar(whitelist) + SearchVar(TYPES_SHORTCUTS) + SearchVar(intercom_range_display_status) + SearchVar(admin_verbs_debug_mapping) + SearchVar(say_disabled) + SearchVar(VVlocked) + SearchVar(VVicon_edit_lock) + SearchVar(VVckey_edit) + SearchVar(VVpixelmovement) + SearchVar(highlander) + SearchVar(admin_sound) + SearchVar(custom_outfits) + SearchVar(meta_gas_info) + SearchVar(gaslist_cache) + SearchVar(hardcoded_gases) + SearchVar(pipenetwarnings) + SearchVar(the_gateway) + SearchVar(potentialRandomZlevels) + SearchVar(maploader) + SearchVar(use_preloader) + SearchVar(_preloader) + SearchVar(swapmaps_iconcache) + SearchVar(SWAPMAPS_SAV) + SearchVar(SWAPMAPS_TEXT) + SearchVar(swapmaps_mode) + SearchVar(swapmaps_compiled_maxx) + SearchVar(swapmaps_compiled_maxy) + SearchVar(swapmaps_compiled_maxz) + SearchVar(swapmaps_initialized) + SearchVar(swapmaps_loaded) + SearchVar(swapmaps_byname) + SearchVar(sc_safecode1) + SearchVar(sc_safecode2) + SearchVar(sc_safecode3) + SearchVar(sc_safecode4) + SearchVar(sc_safecode5) + SearchVar(exports_list) + SearchVar(clientmessages) + SearchVar(preferences_datums) + SearchVar(ghost_forms) + SearchVar(ghost_orbits) + SearchVar(normal_ooc_colour) + SearchVar(damaged_clothes_icons) + SearchVar(emojis) + SearchVar(non_fakeattack_weapons) + SearchVar(cards_against_space) + SearchVar(chem_t1_reagents) + SearchVar(chem_t2_reagents) + SearchVar(chem_t3_reagents) + SearchVar(chem_t4_reagents) + SearchVar(ENGSEC) + SearchVar(CAPTAIN) + SearchVar(HOS) + SearchVar(WARDEN) + SearchVar(DETECTIVE) + SearchVar(OFFICER) + SearchVar(CHIEF) + SearchVar(ENGINEER) + SearchVar(ATMOSTECH) + SearchVar(ROBOTICIST) + SearchVar(AI) + SearchVar(CYBORG) + SearchVar(MEDSCI) + SearchVar(RD) + SearchVar(SCIENTIST) + SearchVar(CHEMIST) + SearchVar(CMO) + SearchVar(DOCTOR) + SearchVar(GENETICIST) + SearchVar(VIROLOGIST) + SearchVar(CIVILIAN) + SearchVar(HOP) + SearchVar(BARTENDER) + SearchVar(BOTANIST) + SearchVar(COOK) + SearchVar(JANITOR) + SearchVar(LIBRARIAN) + SearchVar(QUARTERMASTER) + SearchVar(CARGOTECH) + SearchVar(MINER) + SearchVar(LAWYER) + SearchVar(CHAPLAIN) + SearchVar(CLOWN) + SearchVar(MIME) + SearchVar(ASSISTANT) + SearchVar(assistant_occupations) + SearchVar(command_positions) + SearchVar(engineering_positions) + SearchVar(medical_positions) + SearchVar(science_positions) + SearchVar(supply_positions) + SearchVar(civilian_positions) + SearchVar(security_positions) + SearchVar(nonhuman_positions) + SearchVar(cap_expand) + SearchVar(cmo_expand) + SearchVar(hos_expand) + SearchVar(hop_expand) + SearchVar(rd_expand) + SearchVar(ce_expand) + SearchVar(qm_expand) + SearchVar(sec_expand) + SearchVar(engi_expand) + SearchVar(atmos_expand) + SearchVar(doc_expand) + SearchVar(mine_expand) + SearchVar(chef_expand) + SearchVar(borg_expand) + SearchVar(available_depts) + SearchVar(cachedbooks) + SearchVar(total_extraction_beacons) + SearchVar(next_mob_id) + SearchVar(firstname) + SearchVar(ghost_darkness_images) + SearchVar(ghost_images_full) + SearchVar(ghost_images_default) + SearchVar(ghost_images_simple) + SearchVar(department_radio_keys) + SearchVar(crit_allowed_modes) + SearchVar(ventcrawl_machinery) + SearchVar(posibrain_notif_cooldown) + SearchVar(NO_SLIP_WHEN_WALKING) + SearchVar(SLIDE) + SearchVar(GALOSHES_DONT_HELP) + SearchVar(SLIDE_ICE) + SearchVar(limb_icon_cache) + SearchVar(ALIEN_AFK_BRACKET) + SearchVar(MIN_IMPREGNATION_TIME) + SearchVar(MAX_IMPREGNATION_TIME) + SearchVar(MIN_ACTIVE_TIME) + SearchVar(MAX_ACTIVE_TIME) + SearchVar(default_martial_art) + SearchVar(plasmaman_on_fire) + SearchVar(ai_list) + SearchVar(announcing_vox) + SearchVar(VOX_CHANNEL) + SearchVar(VOX_DELAY) + SearchVar(vox_sounds) + SearchVar(CHUNK_SIZE) + SearchVar(cameranet) + SearchVar(mulebot_count) + SearchVar(MAX_CHICKENS) + SearchVar(chicken_count) + SearchVar(parasites) + SearchVar(protected_objects) + SearchVar(AISwarmers) + SearchVar(AISwarmersByType) + SearchVar(AISwarmerCapsByType) + SearchVar(slime_colours) + SearchVar(global_modular_computers) + SearchVar(file_uid) + SearchVar(nttransfer_uid) + SearchVar(ntnet_card_uid) + SearchVar(ntnet_global) + SearchVar(ntnrc_uid) + SearchVar(employmentCabinets) + SearchVar(cable_coil_recipes) + SearchVar(gravity_generators) + SearchVar(POWER_IDLE) + SearchVar(POWER_UP) + SearchVar(POWER_DOWN) + SearchVar(GRAV_NEEDS_SCREWDRIVER) + SearchVar(GRAV_NEEDS_WELDING) + SearchVar(GRAV_NEEDS_PLASTEEL) + SearchVar(GRAV_NEEDS_WRENCH) + SearchVar(rad_collectors) + SearchVar(blacklisted_tesla_types) + SearchVar(TOUCH) + SearchVar(INGEST) + SearchVar(VAPOR) + SearchVar(PATCH) + SearchVar(INJECT) + SearchVar(chemical_mob_spawn_meancritters) + SearchVar(chemical_mob_spawn_nicecritters) + SearchVar(message_servers) + SearchVar(blackbox) + SearchVar(keycard_events) + SearchVar(blacklisted_cargo_types) + SearchVar(z_levels_list) + SearchVar(spells) + SearchVar(non_simple_animals) + SearchVar(FrozenAccounts) + SearchVar(stockExchange) + SearchVar(stun_words) + SearchVar(weaken_words) + SearchVar(sleep_words) + SearchVar(vomit_words) + SearchVar(silence_words) + SearchVar(hallucinate_words) + SearchVar(wakeup_words) + SearchVar(heal_words) + SearchVar(hurt_words) + SearchVar(bleed_words) + SearchVar(burn_words) + SearchVar(hot_words) + SearchVar(cold_words) + SearchVar(repulse_words) + SearchVar(attract_words) + SearchVar(whoareyou_words) + SearchVar(saymyname_words) + SearchVar(knockknock_words) + SearchVar(statelaws_words) + SearchVar(move_words) + SearchVar(left_words) + SearchVar(right_words) + SearchVar(up_words) + SearchVar(down_words) + SearchVar(walk_words) + SearchVar(run_words) + SearchVar(helpintent_words) + SearchVar(disarmintent_words) + SearchVar(grabintent_words) + SearchVar(harmintent_words) + SearchVar(throwmode_words) + SearchVar(flip_words) + SearchVar(speak_words) + SearchVar(rest_words) + SearchVar(getup_words) + SearchVar(sit_words) + SearchVar(stand_words) + SearchVar(dance_words) + SearchVar(jump_words) + SearchVar(salute_words) + SearchVar(deathgasp_words) + SearchVar(clap_words) + SearchVar(honk_words) + SearchVar(multispin_words) + SearchVar(GPS_list) + SearchVar(uplinks) + SearchVar(uplink_items) #endif diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 70dfe4d2eb..371c926c4f 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -57,7 +57,7 @@ var/datum/subsystem/mapping/SSmapping /datum/subsystem/mapping/proc/check_nuke_threats() for(var/datum/d in nuke_threats) - if(!istype(d) || qdeleted(d)) + if(!istype(d) || QDELETED(d)) nuke_threats -= d var/threats = nuke_threats.len diff --git a/code/controllers/subsystem/minimap.dm b/code/controllers/subsystem/minimap.dm index 1687cb1b2b..6170185ced 100644 --- a/code/controllers/subsystem/minimap.dm +++ b/code/controllers/subsystem/minimap.dm @@ -28,7 +28,6 @@ var/datum/subsystem/minimap/SSminimap world << "Minimap generation disabled. Loading from cache..." var/fileloc = 0 if(check_files(0)) //Let's first check if we have maps cached in the data folder. NOTE: This will override the backup files even if this map is older. - world.log << "cache" if(hash != trim(file2text(hash_path()))) world << "Loaded cached minimap is outdated. There may be minor discrepancies in layout." //Disclaimer against players saying map is wrong. fileloc = 0 diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm index 479b29ee32..5181ba6772 100644 --- a/code/controllers/subsystem/persistence.dm +++ b/code/controllers/subsystem/persistence.dm @@ -105,7 +105,7 @@ var/datum/subsystem/persistence/SSpersistence /datum/subsystem/persistence/proc/CollectSecretSatchels() for(var/A in new_secret_satchels) var/obj/item/weapon/storage/backpack/satchel/flat/F = A - if(qdeleted(F) || F.z != ZLEVEL_STATION || F.invisibility != INVISIBILITY_MAXIMUM) + if(QDELETED(F) || F.z != ZLEVEL_STATION || F.invisibility != INVISIBILITY_MAXIMUM) continue var/list/savable_obj = list() for(var/obj/O in F) diff --git a/code/controllers/subsystem/processing/objects.dm b/code/controllers/subsystem/processing/objects.dm index 5dcdd353fc..d29819b294 100644 --- a/code/controllers/subsystem/processing/objects.dm +++ b/code/controllers/subsystem/processing/objects.dm @@ -4,12 +4,6 @@ var/datum/subsystem/objects/SSobj #define INITIALIZATION_INNEW_MAPLOAD 1 //New should call Initialize(TRUE) #define INITIALIZATION_INNEW_REGULAR 2 //New should call Initialize(FALSE) -/datum/var/isprocessing = 0 -/datum/proc/process() - set waitfor = 0 - STOP_PROCESSING(SSobj, src) - return 0 - /datum/subsystem/objects name = "Objects" init_order = 12 diff --git a/code/controllers/subsystem/processing/processing.dm b/code/controllers/subsystem/processing/processing.dm index 92540ba442..1b8e152561 100644 --- a/code/controllers/subsystem/processing/processing.dm +++ b/code/controllers/subsystem/processing/processing.dm @@ -32,3 +32,9 @@ var/datum/subsystem/processing/SSprocessing processing -= thing if (MC_TICK_CHECK) return + +/datum/var/isprocessing = 0 +/datum/proc/process() + set waitfor = 0 + STOP_PROCESSING(SSobj, src) + return 0 \ No newline at end of file diff --git a/code/controllers/subsystem/shuttles.dm b/code/controllers/subsystem/shuttles.dm index bf934dc242..366a180cb1 100644 --- a/code/controllers/subsystem/shuttles.dm +++ b/code/controllers/subsystem/shuttles.dm @@ -284,7 +284,7 @@ var/datum/subsystem/shuttle/SSshuttle /datum/subsystem/shuttle/proc/checkHostileEnvironment() for(var/datum/d in hostileEnvironments) - if(!istype(d) || qdeleted(d)) + if(!istype(d) || QDELETED(d)) hostileEnvironments -= d emergencyNoEscape = hostileEnvironments.len diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index fdfddca23a..c1034285b1 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -51,10 +51,10 @@ var/datum/subsystem/ticker/ticker var/maprotatechecked = 0 - var/modevoted = 0 //Have we sent a vote for the gamemode? - var/news_report + var/modevoted = 0 //Have we sent a vote for the gamemode? + /datum/subsystem/ticker/New() NEW_SS_GLOBAL(ticker) @@ -122,13 +122,6 @@ var/datum/subsystem/ticker/ticker current_state = GAME_STATE_FINISHED toggle_ooc(1) // Turn it on declare_completion(force_ending) - addtimer(CALLBACK(src, .proc/NukeCleanup), 50) - -/datum/subsystem/ticker/proc/NukeCleanup() - if(mode.station_was_nuked) - world.Reboot("Station destroyed by Nuclear Device.", "end_proper", "nuke") - else - world.Reboot("Round ended.", "end_proper", "proper completion") /datum/subsystem/ticker/proc/setup() //Create and announce mode @@ -391,6 +384,7 @@ var/datum/subsystem/ticker/ticker /datum/subsystem/ticker/proc/declare_completion() + set waitfor = FALSE var/station_evacuated = EMERGENCY_ESCAPED_OR_ENDGAMED var/num_survivors = 0 var/num_escapees = 0 @@ -419,6 +413,8 @@ var/datum/subsystem/ticker/ticker else Player << "You did not survive the events on [station_name()]..." + CHECK_TICK + //Round statistics report var/datum/station_state/end_state = new /datum/station_state() end_state.count() @@ -440,6 +436,8 @@ var/datum/subsystem/ticker/ticker world << "
[TAB]Survival Rate: [num_survivors] ([PERCENT(num_survivors/total_players)]%)" world << "
" + CHECK_TICK + //Silicon laws report for (var/mob/living/silicon/ai/aiPlayer in mob_list) if (aiPlayer.stat != 2 && aiPlayer.mind) @@ -457,6 +455,9 @@ var/datum/subsystem/ticker/ticker if(robo.mind) robolist += "[robo.name][robo.stat?" (Deactivated) (Played by: [robo.mind.key]), ":" (Played by: [robo.mind.key]), "]" world << "[robolist]" + + CHECK_TICK + for (var/mob/living/silicon/robot/robo in mob_list) if (!robo.connected_ai && robo.mind) if (robo.stat != 2) @@ -467,16 +468,24 @@ var/datum/subsystem/ticker/ticker if(robo) //How the hell do we lose robo between here and the world messages directly above this? robo.laws.show_laws(world) + CHECK_TICK + mode.declare_completion()//To declare normal completion. + CHECK_TICK + //calls auto_declare_completion_* for all modes for(var/handler in typesof(/datum/game_mode/proc)) if (findtext("[handler]","auto_declare_completion_")) call(mode, handler)(force_ending) + CHECK_TICK + if(cross_allowed) send_news_report() + CHECK_TICK + //Print a list of antagonists to the server log var/list/total_antagonists = list() //Look into all mobs in world, dead or alive @@ -489,11 +498,15 @@ var/datum/subsystem/ticker/ticker total_antagonists.Add(temprole) //If the role doesnt exist in the list, create it and add the mob total_antagonists[temprole] += ": [Mind.name]([Mind.key])" + CHECK_TICK + //Now print them all into the log! log_game("Antagonists at round end were...") for(var/i in total_antagonists) log_game("[i]s[total_antagonists[i]].") + CHECK_TICK + //Borers var/borerwin = FALSE if(borers.len) @@ -529,8 +542,12 @@ var/datum/subsystem/ticker/ticker else world << "The borers have failed!" + CHECK_TICK + mode.declare_station_goal_completion() + CHECK_TICK + //Adds the del() log to world.log in a format condensable by the runtime condenser found in tools if(SSgarbage.didntgc.len) var/dellog = "" @@ -539,9 +556,16 @@ var/datum/subsystem/ticker/ticker dellog += "Failures : [SSgarbage.didntgc[path]] \n" world.log << dellog + CHECK_TICK + //Collects persistence features SSpersistence.CollectData() - return 1 + + sleep(50) + if(mode.station_was_nuked) + world.Reboot("Station destroyed by Nuclear Device.", "end_proper", "nuke") + else + world.Reboot("Round ended.", "end_proper", "proper completion") /datum/subsystem/ticker/proc/send_tip_of_the_round() var/m @@ -639,6 +663,7 @@ var/datum/subsystem/ticker/ticker modevoted = ticker.modevoted + /datum/subsystem/ticker/proc/send_news_report() var/news_message var/news_source = "Nanotrasen News Network" diff --git a/code/controllers/subsystem/timer.dm b/code/controllers/subsystem/timer.dm index 23ce1bf95a..91f7dd5b55 100644 --- a/code/controllers/subsystem/timer.dm +++ b/code/controllers/subsystem/timer.dm @@ -84,7 +84,7 @@ var/datum/subsystem/timer/SStimer if (!callBack) qdel(timer) bucket_resolution = null //force bucket recreation - CRASH("Invalid timer: timer.timeToRun=[timer.timeToRun]||qdeleted(timer)=[qdeleted(timer)]||world.time=[world.time]||head_offset=[head_offset]||practical_offset=[practical_offset]||timer.spent=[timer.spent]") + CRASH("Invalid timer: timer.timeToRun=[timer.timeToRun]||QDELETED(timer)=[QDELETED(timer)]||world.time=[world.time]||head_offset=[head_offset]||practical_offset=[practical_offset]||timer.spent=[timer.spent]") if (!timer.spent) spent += timer @@ -294,9 +294,7 @@ proc/addtimer(datum/callback/callback, wait, flags) if (!callback) return - if (wait <= 0) - callback.InvokeAsync() - return + wait = max(wait, 0) var/hash @@ -307,12 +305,17 @@ proc/addtimer(datum/callback/callback, wait, flags) var/datum/timedevent/hash_timer = SStimer.hashes[hash] if(hash_timer) - if (flags & TIMER_OVERRIDE) - qdel(hash_timer) + if (hash_timer.spent) //it's pending deletion, pretend it doesn't exist. + hash_timer.hash = null + SStimer.hashes -= hash else - if (hash_timer.flags & TIMER_STOPPABLE) - . = hash_timer.id - return + + if (flags & TIMER_OVERRIDE) + qdel(hash_timer) + else + if (hash_timer.flags & TIMER_STOPPABLE) + . = hash_timer.id + return var/timeToRun = world.time + wait diff --git a/code/controllers/subsystem/voting.dm b/code/controllers/subsystem/voting.dm index c19d5e35f1..518fe362b7 100644 --- a/code/controllers/subsystem/voting.dm +++ b/code/controllers/subsystem/voting.dm @@ -301,7 +301,7 @@ var/datum/subsystem/vote/SSvote /datum/subsystem/vote/proc/remove_action_buttons() for(var/v in generated_actions) var/datum/action/vote/V = v - if(!qdeleted(V)) + if(!QDELETED(V)) V.Remove(V.owner) generated_actions = list() diff --git a/code/datums/action.dm b/code/datums/action.dm index 3e6374f1bc..265de32b07 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -49,8 +49,6 @@ Remove(owner) /datum/action/proc/Remove(mob/M) - if(!M) - return if(M) if(M.client) M.client.screen -= button diff --git a/code/datums/antagonists/datum_clockcult.dm b/code/datums/antagonists/datum_clockcult.dm index f45dd509d4..25aa2d3960 100644 --- a/code/datums/antagonists/datum_clockcult.dm +++ b/code/datums/antagonists/datum_clockcult.dm @@ -73,7 +73,10 @@ R.module.rebuild_modules() else if(isAI(S)) var/mob/living/silicon/ai/A = S + A.can_be_carded = FALSE A.requires_power = POWER_REQ_CLOCKCULT + A.languages_spoken &= ~HUMAN + A.add_atom_colour(list("#B18B25", "#92661A", "#6D370F", rgb(0,0,0)), ADMIN_COLOUR_PRIORITY) if(!A.lacks_power()) A.ai_restore_power() if(A.eyeobj) @@ -122,7 +125,10 @@ var/mob/living/silicon/S = owner if(isAI(S)) var/mob/living/silicon/ai/A = S + A.can_be_carded = initial(A.can_be_carded) A.requires_power = initial(A.requires_power) + A.languages_spoken |= HUMAN + A.remove_atom_colour(ADMIN_COLOUR_PRIORITY, list("#B18B25", "#92661A", "#6D370F", rgb(0,0,0))) S.make_laws() S.update_icons() S.show_laws() diff --git a/code/datums/beam.dm b/code/datums/beam.dm index fd4e445ded..828a9dc774 100644 --- a/code/datums/beam.dm +++ b/code/datums/beam.dm @@ -43,7 +43,7 @@ Reset() Draw() sleep(sleep_time) - if(!qdeleted(src)) + if(!QDELETED(src)) qdel(src) diff --git a/code/datums/forced_movement.dm b/code/datums/forced_movement.dm index 6e841a0f9b..1d2795b402 100644 --- a/code/datums/forced_movement.dm +++ b/code/datums/forced_movement.dm @@ -35,7 +35,7 @@ return ..() /datum/forced_movement/process() - if(qdeleted(victim) || !victim.loc || qdeleted(target) || !target.loc) + if(QDELETED(victim) || !victim.loc || QDELETED(target) || !target.loc) qdel(src) return var/steps_to_take = round(steps_per_tick * (world.time - last_processed)) diff --git a/code/datums/riding.dm b/code/datums/riding.dm index ec6db9deb9..9695dbae12 100644 --- a/code/datums/riding.dm +++ b/code/datums/riding.dm @@ -43,7 +43,7 @@ buckled_mob.pixel_x = 0 buckled_mob.pixel_y = 0 if(buckled_mob.client) - buckled_mob.client.view = world.view + buckled_mob.client.change_view(world.view) diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 8f3d22c4be..f41dcfb444 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -2,7 +2,7 @@ /datum/status_effect/shadow_mend id = "shadow_mend" - duration = 3 + duration = 30 alert_type = /obj/screen/alert/status_effect/shadow_mend /obj/screen/alert/status_effect/shadow_mend @@ -26,8 +26,8 @@ /datum/status_effect/void_price id = "void_price" - duration = 30 - tick_interval = 3 + duration = 300 + tick_interval = 30 alert_type = /obj/screen/alert/status_effect/void_price /obj/screen/alert/status_effect/void_price @@ -40,11 +40,12 @@ owner.adjustBruteLoss(3) - /datum/status_effect/vanguard_shield id = "vanguard" - duration = 20 + duration = 200 + tick_interval = 0 //tick as fast as possible alert_type = /obj/screen/alert/status_effect/vanguard + var/datum/progressbar/progbar /obj/screen/alert/status_effect/vanguard name = "Vanguard" @@ -60,10 +61,21 @@ desc += "
[vanguard["stuns_absorbed"] * 2] seconds of stuns held back.
[round(min(vanguard["stuns_absorbed"] * 0.25, 20)) * 2] seconds of stun will affect you." ..() +/datum/status_effect/vanguard_shield/Destroy() + qdel(progbar) + progbar = null + return ..() + /datum/status_effect/vanguard_shield/on_apply() add_logs(owner, null, "gained Vanguard stun immunity") owner.add_stun_absorption("vanguard", 200, 1, "'s yellow aura momentarily intensifies!", "Your ward absorbs the stun!", " radiating with a soft yellow light!") owner.visible_message("[owner] begins to faintly glow!", "You will absorb all stuns for the next twenty seconds.") + progbar = new(owner, duration, owner) + progbar.bar.color = list("#FAE48C", "#FAE48C", "#FAE48C", rgb(0,0,0)) + progbar.update(duration - world.time) + +/datum/status_effect/vanguard_shield/tick() + progbar.update(duration - world.time) /datum/status_effect/vanguard_shield/on_remove() var/vanguard = owner.stun_absorption["vanguard"] @@ -85,14 +97,15 @@ message_to_owner += "\nYou faint from the exertion!" stuns_blocked *= 2 owner.Paralyse(stuns_blocked) + else + stuns_blocked = 0 //so logging is correct in cases where there were stuns blocked but we didn't stun for other reasons owner.visible_message("[owner]'s glowing aura fades!", message_to_owner) - add_logs(owner, null, "lost Vanguard stun immunity[stuns_blocked ? "and been stunned for [stuns_blocked]":""]") - + add_logs(owner, null, "lost Vanguard stun immunity[stuns_blocked ? "and was stunned for [stuns_blocked]":""]") /datum/status_effect/inathneqs_endowment id = "inathneqs_endowment" - duration = 15 + duration = 150 alert_type = /obj/screen/alert/status_effect/inathneqs_endowment /obj/screen/alert/status_effect/inathneqs_endowment @@ -119,9 +132,10 @@ owner.status_flags &= ~GODMODE playsound(owner, 'sound/magic/Ethereal_Exit.ogg', 50, 1) + /datum/status_effect/cyborg_power_regen id = "power_regen" - duration = 10 + duration = 100 alert_type = /obj/screen/alert/status_effect/power_regen var/power_to_give = 0 //how much power is gained each tick diff --git a/code/datums/status_effects/gas.dm b/code/datums/status_effects/gas.dm index 53a8bb485f..c87b24ab35 100644 --- a/code/datums/status_effects/gas.dm +++ b/code/datums/status_effects/gas.dm @@ -1,6 +1,6 @@ /datum/status_effect/freon id = "frozen" - duration = 10 + duration = 100 unique = TRUE alert_type = /obj/screen/alert/status_effect/freon var/icon/cube diff --git a/code/datums/status_effects/status_effect.dm b/code/datums/status_effects/status_effect.dm index 7db345d801..38f3de0b24 100644 --- a/code/datums/status_effects/status_effect.dm +++ b/code/datums/status_effects/status_effect.dm @@ -6,10 +6,9 @@ var/global/list/all_status_effects = list() //a list of all status effects, if f /datum/status_effect var/id = "effect" //Used for screen alerts. - var/duration = -1 //How long the status effect lasts in SECONDS. Enter -1 for an effect that never ends unless removed through some means. - var/tick_interval = 1 //How many seconds between ticks. Leave at 1 for every second. + var/duration = -1 //How long the status effect lasts in DECISECONDS. Enter -1 for an effect that never ends unless removed through some means. + var/tick_interval = 10 //How many deciseconds between ticks, approximately. Leave at 10 for every second. var/mob/living/owner //The mob affected by the status effect. - var/cosmetic = FALSE //If the status effect only exists for flavor. var/unique = TRUE //If there can be multiple status effects of this type on one mob. var/alert_type = /obj/screen/alert/status_effect //the alert thrown by the status effect, contains name and description @@ -22,7 +21,7 @@ var/global/list/all_status_effects = list() //a list of all status effects, if f addtimer(CALLBACK(src, .proc/start_ticking), 1) //Give us time to set any variables /datum/status_effect/Destroy() - STOP_PROCESSING(SSprocessing, src) + STOP_PROCESSING(SSfastprocess, src) if(owner) owner.clear_alert(id) on_remove() @@ -37,22 +36,22 @@ var/global/list/all_status_effects = list() //a list of all status effects, if f qdel(src) return on_apply() + if(duration != -1) + duration = world.time + initial(duration) + tick_interval = world.time + initial(tick_interval) if(alert_type) var/obj/screen/alert/status_effect/A = owner.throw_alert(id, alert_type) A.attached_effect = src //so the alert can reference us, if it needs to - START_PROCESSING(SSprocessing, src) + START_PROCESSING(SSfastprocess, src) /datum/status_effect/process() if(!owner) qdel(src) return - if(duration != -1) - duration-- - tick_interval-- - if(!tick_interval) + if(tick_interval < world.time) tick() - tick_interval = initial(tick_interval) - if(!duration) + tick_interval = world.time + initial(tick_interval) + if(duration != -1 && duration < world.time) qdel(src) /datum/status_effect/proc/on_apply() //Called whenever the buff is applied. diff --git a/code/game/atoms.dm b/code/game/atoms.dm index a07bc9969e..b7289f58b4 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -440,8 +440,10 @@ var/list/blood_splatter_icons = list() //This base must be called or derivatives must set initialized to TRUE to prevent repeat calls //Derivatives must not sleep /atom/proc/Initialize(mapload) +#ifdef TESTING if(initialized) stack_trace("Warning: [src]([type]) initialized multiple times!") +#endif initialized = TRUE //the vision impairment to give to the mob whose perspective is set to that atom (e.g. an unfocused camera giving you an impaired vision when looking through it) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 58a35547bb..9aaf355e74 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -130,7 +130,7 @@ throwing = 0 throw_impact(A) . = 1 - if(!A || qdeleted(A)) + if(!A || QDELETED(A)) return A.Bumped(src) @@ -139,21 +139,29 @@ if(destination) if(pulledby) pulledby.stop_pulling() + var/atom/oldloc = loc - var/same_loc = oldloc == destination.loc - if(oldloc && !same_loc) - oldloc.Exited(src, destination) - loc = destination - if(!same_loc) - destination.Entered(src, oldloc) + var/same_loc = oldloc == destination var/area/old_area = get_area(oldloc) var/area/destarea = get_area(destination) - if(old_area != destarea) - destarea.Entered(src) + + if(oldloc && !same_loc) + oldloc.Exited(src, destination) + if(old_area) + old_area.Exited(src, destination) + + loc = destination + + if(!same_loc) + destination.Entered(src, oldloc) + if(destarea && old_area != destarea) + destarea.Entered(src, oldloc) + for(var/atom/movable/AM in destination) if(AM == src) continue AM.Crossed(src) + Moved(oldloc, 0) return 1 return 0 @@ -408,4 +416,4 @@ if(ex_id in acted_explosions) return FALSE acted_explosions += ex_id - return TRUE \ No newline at end of file + return TRUE diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm index 2bc1f1bb12..8479a75683 100644 --- a/code/game/gamemodes/blob/blobs/core.dm +++ b/code/game/gamemodes/blob/blobs/core.dm @@ -60,7 +60,7 @@ overmind.update_health_hud() /obj/structure/blob/core/Life() - if(qdeleted(src)) + if(QDELETED(src)) return if(!overmind) create_overmind() diff --git a/code/game/gamemodes/changeling/changeling_power.dm b/code/game/gamemodes/changeling/changeling_power.dm index 0d7d90a606..bc8424ceb9 100644 --- a/code/game/gamemodes/changeling/changeling_power.dm +++ b/code/game/gamemodes/changeling/changeling_power.dm @@ -76,7 +76,7 @@ //used in /mob/Stat() /obj/effect/proc_holder/changeling/proc/can_be_used_by(mob/user) - if(!user || qdeleted(user)) + if(!user || QDELETED(user)) return 0 if(!ishuman(user) && !ismonkey(user)) return 0 diff --git a/code/game/gamemodes/changeling/powers/augmented_eyesight.dm b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm index 1644c4325d..eb1f6626c0 100644 --- a/code/game/gamemodes/changeling/powers/augmented_eyesight.dm +++ b/code/game/gamemodes/changeling/powers/augmented_eyesight.dm @@ -12,54 +12,25 @@ /obj/effect/proc_holder/changeling/augmented_eyesight/sting_action(mob/living/carbon/human/user) if(!istype(user)) return - if(user.getorgan(/obj/item/organ/cyberimp/eyes/thermals/ling)) - user << "Our eyes are protected from flashes." - var/obj/item/organ/cyberimp/eyes/O = new /obj/item/organ/cyberimp/eyes/shield/ling() - O.Insert(user) - + var/obj/item/organ/eyes/E = user.getorganslot("eye_sight") + if(E) + if(E.flash_protect) + E.sight_flags |= SEE_MOBS + E.flash_protect = -1 + user << "We adjust our eyes to sense prey through walls." + else + E.sight_flags -= SEE_MOBS + E.flash_protect = 2 + user << "We adjust our eyes to protect them from bright lights." else - var/obj/item/organ/cyberimp/eyes/O = new /obj/item/organ/cyberimp/eyes/thermals/ling() - O.Insert(user) + user << "We can't adjust our eyes if we don't have any!" + + return 1 /obj/effect/proc_holder/changeling/augmented_eyesight/on_refund(mob/user) - var/obj/item/organ/cyberimp/eyes/O = user.getorganslot("eye_ling") - if(O) - O.Remove(user) - qdel(O) - - -/obj/item/organ/cyberimp/eyes/shield/ling - name = "protective membranes" - desc = "These variable transparency organic membranes will protect you from welders and flashes and heal your eye damage." - icon_state = "ling_eyeshield" - eye_color = null - implant_overlay = null - slot = "eye_ling" - status = ORGAN_ORGANIC - -/obj/item/organ/cyberimp/eyes/shield/ling/on_life() - ..() - if(owner.eye_blind>1 || (owner.eye_blind && owner.stat !=UNCONSCIOUS) || owner.eye_damage || owner.eye_blurry || (owner.disabilities & NEARSIGHT)) - owner.reagents.add_reagent("oculine", 1) - -/obj/item/organ/cyberimp/eyes/shield/ling/prepare_eat() - var/obj/S = ..() - S.reagents.add_reagent("oculine", 15) - return S - - -/obj/item/organ/cyberimp/eyes/thermals/ling - name = "heat receptors" - desc = "These heat receptors dramatically increases eyes light sensing ability." - icon_state = "ling_thermal" - eye_color = null - implant_overlay = null - slot = "eye_ling" - status = ORGAN_ORGANIC - aug_message = "You feel a minute twitch in our eyes, and darkness creeps away." - -/obj/item/organ/cyberimp/eyes/thermals/ling/emp_act(severity) - return + var/obj/item/organ/eyes/E = user.getorganslot("eye_sight") + if(E) + E.sight_flags -= SEE_MOBS \ No newline at end of file diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index 0c2816e5a7..693f74d871 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -180,7 +180,7 @@ Credit where due: if(slot == "At your feet") if(!S.forceMove(get_turf(L))) qdel(S) - if(S && !qdeleted(S)) + if(S && !QDELETED(S)) L << "[slot] is a link to the halls of Reebe and your master. You may use it to perform many tasks, but also become oriented with the workings of Ratvar and how to best complete your \ tasks. This clockwork slab will be instrumental in your triumph. Remember: you can speak discreetly with your fellow servants by using the Hierophant Network action button, \ and you can find a concise tutorial by using the slab in-hand and selecting Recollection." diff --git a/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm b/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm index 46940eb421..a77580b2f9 100644 --- a/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm +++ b/code/game/gamemodes/clock_cult/clock_helpers/proselytizer_helpers.dm @@ -47,7 +47,7 @@ return FALSE /turf/open/floor/clockwork/proselytize_vals(mob/living/user, obj/item/clockwork/clockwork_proselytizer/proselytizer) - if(locate(/obj/structure/table) in loc) + if(locate(/obj/structure/table) in src) return FALSE if(is_blocked_turf(src, TRUE)) user << "Something is in the way, preventing you from proselytizing [src] into a clockwork wall." diff --git a/code/game/gamemodes/clock_cult/clock_helpers/ratvarian_language.dm b/code/game/gamemodes/clock_cult/clock_helpers/ratvarian_language.dm index 8bdd607b79..5abcaad734 100644 --- a/code/game/gamemodes/clock_cult/clock_helpers/ratvarian_language.dm +++ b/code/game/gamemodes/clock_cult/clock_helpers/ratvarian_language.dm @@ -66,7 +66,12 @@ List of nuances: #define REVERSE_RATVAR_HYPHEN_OF_REPLACEMENT " $1" -/proc/text2ratvar(text) //Takes english and applies ratvarian styling rules (and rot13) to it +/proc/text2ratvar(text) //Takes english and applies ratvarian styling rules (and rot13) to it. + var/ratvarian = add_ratvarian_regex(text) //run the regexes twice, so that you catch people translating it beforehand + ratvarian = rot13(ratvarian) + return add_ratvarian_regex(ratvarian) + +/proc/add_ratvarian_regex(text) var/ratvarian = replacetext(text, RATVAR_OF_MATCH, RATVAR_OF_REPLACEMENT) ratvarian = replacetext(ratvarian, RATVAR_GUA_MATCH, RATVAR_GUA_REPLACEMENT) ratvarian = replacetext(ratvarian, RATVAR_TH_MATCH, RATVAR_TH_REPLACEMENT) @@ -76,19 +81,21 @@ List of nuances: ratvarian = replacetext(ratvarian, RATVAR_PRE_AND_MATCH, RATVAR_PRE_AND_REPLACEMENT) ratvarian = replacetext(ratvarian, RATVAR_POST_AND_MATCH, RATVAR_POST_AND_REPLACEMENT) ratvarian = replacetext(ratvarian, RATVAR_TO_MATCH, RATVAR_TO_REPLACEMENT) - ratvarian = replacetext(ratvarian, RATVAR_MY_MATCH, RATVAR_MY_REPLACEMENT) - return rot13(ratvarian) + return replacetext(ratvarian, RATVAR_MY_MATCH, RATVAR_MY_REPLACEMENT) /proc/ratvar2text(ratvarian) //Reverts ravarian styling and rot13 in text. - var/text = replacetext(rot13(ratvarian), "`", "") - text = replacetext(text, REVERSE_RATVAR_HYPHEN_GUA_MATCH, REVERSE_RATVAR_HYPHEN_GUA_REPLACEMENT) + var/text = remove_ratvarian_regex(ratvarian) //run the regexes twice, so that you catch people translating it beforehand + text = replacetext(rot13(text), "`", "") + return remove_ratvarian_regex(text) + +/proc/remove_ratvarian_regex(ratvarian) + var/text = replacetext(ratvarian, REVERSE_RATVAR_HYPHEN_GUA_MATCH, REVERSE_RATVAR_HYPHEN_GUA_REPLACEMENT) text = replacetext(text, REVERSE_RATVAR_HYPHEN_PRE_AND_MATCH, REVERSE_RATVAR_HYPHEN_PRE_AND_REPLACEMENT) text = replacetext(text, REVERSE_RATVAR_HYPHEN_POST_AND_MATCH, REVERSE_RATVAR_HYPHEN_POST_AND_REPLACEMENT) text = replacetext(text, REVERSE_RATVAR_HYPHEN_TO_MY_MATCH, REVERSE_RATVAR_HYPHEN_TO_MY_REPLACEMENT) text = replacetext(text, REVERSE_RATVAR_HYPHEN_TE_MATCH, REVERSE_RATVAR_HYPHEN_TE_REPLACEMENT) text = replacetext(text, REVERSE_RATVAR_HYPHEN_ET_MATCH, REVERSE_RATVAR_HYPHEN_ET_REPLACEMENT) - text = replacetext(text, REVERSE_RATVAR_HYPHEN_OF_MATCH, REVERSE_RATVAR_HYPHEN_OF_REPLACEMENT) - return text + return replacetext(text, REVERSE_RATVAR_HYPHEN_OF_MATCH, REVERSE_RATVAR_HYPHEN_OF_REPLACEMENT) //Causes the mob or AM in question to speak a message; it assumes that the message is already translated to ratvar speech using text2ratvar() /proc/clockwork_say(atom/movable/AM, message, whisper=FALSE) diff --git a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm index 7aa219e405..0b2c9f9e97 100644 --- a/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm +++ b/code/game/gamemodes/clock_cult/clock_scriptures/scripture_drivers.dm @@ -148,7 +148,7 @@ var/obj/structure/destructible/clockwork/geis_binding/binding /datum/clockwork_scripture/geis/Destroy() - if(binding && !qdeleted(binding)) + if(binding && !QDELETED(binding)) qdel(binding) return ..() @@ -213,13 +213,12 @@ addtimer(CALLBACK(invoker, /atom/proc/update_atom_colour), flee_time+grace_period) if(chant_number != chant_amount) //if this is the last chant, we don't have a movement period because the chant is over var/endtime = world.time + flee_time - var/starttime = world.time progbar = new(invoker, flee_time, invoker) progbar.bar.color = list("#AF0AAF", "#AF0AAF", "#AF0AAF", rgb(0,0,0)) animate(progbar.bar, color = initial(progbar.bar.color), time = flee_time+grace_period) while(world.time < endtime && can_recite()) sleep(1) - progbar.update(world.time - starttime) + progbar.update(endtime - world.time) qdel(progbar) if(can_recite()) sleep(grace_period) diff --git a/code/game/gamemodes/clock_cult/clock_structure.dm b/code/game/gamemodes/clock_cult/clock_structure.dm index 5b9e68c781..0cd51b624e 100644 --- a/code/game/gamemodes/clock_cult/clock_structure.dm +++ b/code/game/gamemodes/clock_cult/clock_structure.dm @@ -29,7 +29,8 @@ return ..() /obj/structure/destructible/clockwork/ratvar_act() - obj_integrity = max_integrity + if(ratvar_awakens || clockwork_gateway_activated) + obj_integrity = max_integrity /obj/structure/destructible/clockwork/narsie_act() if(take_damage(rand(25, 50), BRUTE) && src) //if we still exist diff --git a/code/game/gamemodes/clock_cult/clock_structures/interdiction_lens.dm b/code/game/gamemodes/clock_cult/clock_structures/interdiction_lens.dm index 8f6290f54e..069f9145ed 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/interdiction_lens.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/interdiction_lens.dm @@ -84,7 +84,7 @@ for(var/M in atoms_to_test) var/atom/movable/A = M - if(!A || qdeleted(A) || A == target_apc) + if(!A || QDELETED(A) || A == target_apc) continue power_drained += Floor(A.power_drain(TRUE) * efficiency, MIN_CLOCKCULT_POWER) diff --git a/code/game/gamemodes/clock_cult/clock_structures/mania_motor.dm b/code/game/gamemodes/clock_cult/clock_structures/mania_motor.dm index d333be3c64..01be8a225e 100644 --- a/code/game/gamemodes/clock_cult/clock_structures/mania_motor.dm +++ b/code/game/gamemodes/clock_cult/clock_structures/mania_motor.dm @@ -14,9 +14,8 @@ debris = list(/obj/item/clockwork/alloy_shards/large = 1, \ /obj/item/clockwork/alloy_shards/small = 3, \ /obj/item/clockwork/component/geis_capacitor/antennae = 1) - var/mania_cost = 200 - var/convert_attempt_cost = 500 - var/convert_cost = 500 + var/mania_cost = 150 + var/convert_cost = 150 var/static/list/mania_messages = list("Go nuts.", "Take a crack at crazy.", "Make a bid for insanity.", "Get kooky.", "Move towards mania.", "Become bewildered.", "Wax wild.", \ "Go round the bend.", "Land in lunacy.", "Try dementia.", "Strive to get a screw loose.") var/static/list/compel_messages = list("Come closer.", "Approach the transmitter.", "Touch the antennae.", "I always have to deal with idiots. Move towards the mania motor.", \ @@ -28,11 +27,10 @@ "Amazing. You somehow managed to wedge yourself somewhere you can't actually reach the motor from.", "Such a show of idiocy is unparalleled. Perhaps I should put you on display?", \ "Did you do this on purpose? I can't imagine you doing so accidentally. Oh, wait, I can.", "How is it that such smart creatures can still do something AS STUPID AS THIS!") - /obj/structure/destructible/clockwork/powered/mania_motor/examine(mob/user) ..() if(is_servant_of_ratvar(user) || isobserver(user)) - user << "It requires [mania_cost]W to run, and [convert_attempt_cost + convert_cost]W to convert humans adjecent to it." + user << "It requires [mania_cost]W to run, and at least [convert_cost]W to attempt to convert humans adjacent to it." /obj/structure/destructible/clockwork/powered/mania_motor/forced_disable(bad_effects) if(active) @@ -58,94 +56,88 @@ SetLuminosity(0) /obj/structure/destructible/clockwork/powered/mania_motor/process() - if(try_use_power(mania_cost)) - var/turf/T = get_turf(src) - var/hum = get_sfx('sound/effects/screech.ogg') //like playsound, same sound for everyone affected - var/efficiency = get_efficiency_mod() - for(var/mob/living/carbon/human/H in view(1, src)) - if(is_servant_of_ratvar(H) || H.null_rod_check()) - continue - if(H.Adjacent(src) && try_use_power(convert_attempt_cost)) - if(is_eligible_servant(H) && try_use_power(convert_cost)) - H << "\"[text2ratvar("You are mine and his, now.")]\"" - H.playsound_local(T, hum, 80, 1) - add_servant_of_ratvar(H) - H.Paralyse(5) - else if(!H.stat) - if(H.getBrainLoss() >= 100) - H.Paralyse(5) - H << "\"[text2ratvar(pick(convert_messages))]\"" - else - H.adjustBrainLoss(100 * efficiency) - H.visible_message("[H] reaches out and touches [src].", "You touch [src] involuntarily.") - else - visible_message("[src]'s antennae fizzle quietly.") - playsound(src, 'sound/effects/light_flicker.ogg', 50, 1) - for(var/mob/living/carbon/human/H in range(10, src)) - if(is_servant_of_ratvar(H)) - if(H.getBrainLoss() || H.hallucination || H.druggy || H.dizziness || H.confused) - H.adjustBrainLoss(-H.getBrainLoss()) //heals servants of braindamage, hallucination, druggy, dizziness, and confusion - H.hallucination = 0 - H.adjust_drugginess(-H.druggy) - H.dizziness = 0 - H.confused = 0 - else if(!H.null_rod_check() && H.stat == CONSCIOUS) - var/distance = get_dist(T, get_turf(H)) - var/falloff_distance = min((110) - distance * 10, 80) - var/sound_distance = falloff_distance * 0.5 - var/targetbrainloss = H.getBrainLoss() - if(distance >= 4 && prob(falloff_distance * 0.5)) - H << "\"[text2ratvar(pick(mania_messages))]\"" - H.playsound_local(T, hum, sound_distance, 1) - switch(distance) - if(2 to 3) - if(prob(falloff_distance * 0.5)) - if(prob(falloff_distance)) - H << "\"[text2ratvar(pick(mania_messages))]\"" - else - H << "\"[text2ratvar(pick(compel_messages))]\"" - if(targetbrainloss <= 50) - H.adjustBrainLoss((50 * efficiency) - targetbrainloss) //got too close had brain eaten - H.adjust_drugginess(Clamp(7 * efficiency, 0, 100 - H.druggy)) - H.hallucination = min(H.hallucination + (7 * efficiency), 100) - H.dizziness = min(H.dizziness + (3 * efficiency), 45) - H.confused = min(H.confused + (3 * efficiency), 45) - if(4 to 5) - if(targetbrainloss <= 50) - H.adjustBrainLoss(1 * efficiency) - H.adjust_drugginess(Clamp(5 * efficiency, 0, 80 - H.druggy)) - H.hallucination = min(H.hallucination + (5 * efficiency), 80) - H.dizziness = min(H.dizziness + (2 * efficiency), 30) - H.confused = min(H.confused + (2 * efficiency), 30) - if(6 to 7) - if(targetbrainloss <= 30) - H.adjustBrainLoss(1 * efficiency) - H.adjust_drugginess(Clamp(2 * efficiency, 0, 60 - H.druggy)) - H.hallucination = min(H.hallucination + (2 * efficiency), 60) - H.dizziness = min(H.dizziness + (2 * efficiency), 15) - H.confused = min(H.confused + (2 * efficiency), 15) - if(8 to 9) - if(targetbrainloss <= 10) - H.adjustBrainLoss(1 * efficiency) - H.adjust_drugginess(Clamp(2 * efficiency, 0, 40 - H.druggy)) - H.hallucination = min(H.hallucination + (2 * efficiency), 40) - if(10 to INFINITY) - H.adjust_drugginess(Clamp(2 * efficiency, 0, 20 - H.druggy)) - H.hallucination = min(H.hallucination + (2 * efficiency), 20) - else //if it's a distance of 1 and they can't see it/aren't adjacent or they're on top of it(how'd they get on top of it and still trigger this???) - if(prob(falloff_distance * 0.5)) - if(prob(falloff_distance)) - H << "\"[text2ratvar(pick(compel_messages))]\"" - else if(prob(falloff_distance * 0.5)) - H << "\"[text2ratvar(pick(close_messages))]\"" - else - H << "\"[text2ratvar(pick(mania_messages))]\"" - if(targetbrainloss <= 99) - H.adjustBrainLoss((99 * efficiency) - targetbrainloss) - H.adjust_drugginess(Clamp(10 * efficiency, 0, 150 - H.druggy)) - H.hallucination = min(H.hallucination + (10 * efficiency), 150) - H.dizziness = min(H.dizziness + (5 * efficiency), 60) - H.confused = min(H.confused + (5 * efficiency), 60) - - else + if(!try_use_power(mania_cost)) forced_disable(FALSE) + return + var/turf/T = get_turf(src) + var/hum = get_sfx('sound/effects/screech.ogg') //like playsound, same sound for everyone affected + var/efficiency = get_efficiency_mod() + for(var/mob/living/carbon/human/H in view(1, src)) + if(is_servant_of_ratvar(H) || H.null_rod_check() || H.stat == DEAD) + continue + if(!H.Adjacent(src)) + H << "\"[text2ratvar(pick(close_messages))]\"" + continue + if(try_use_power(convert_cost)) + H.playsound_local(T, hum, 80, 1) + if(!H.stat) + if(H.getBrainLoss() < 100) + H.adjustBrainLoss(30 * efficiency) + H.visible_message("[H] reaches out and touches [src].", "You touch [src] involuntarily.") + else + H.Paralyse(3) + else if(is_eligible_servant(H)) + H << "\"[text2ratvar("You are mine and his, now.")]\"" + add_servant_of_ratvar(H) + H.Paralyse(5) + else + H << "\"[text2ratvar(pick(convert_messages))]\"" + else + visible_message("[src]'s antennae fizzle quietly.") + playsound(src, 'sound/effects/light_flicker.ogg', 50, 1) + for(var/mob/living/carbon/human/H in range(10, src)) + if(is_servant_of_ratvar(H)) //heals servants of braindamage, hallucination, druggy, dizziness, and confusion + var/brainloss = H.getBrainLoss() + if(brainloss) + H.adjustBrainLoss(-brainloss) + if(H.hallucination) + H.hallucination = 0 + if(H.druggy) + H.adjust_drugginess(-H.druggy) + if(H.dizziness) + H.dizziness = 0 + if(H.confused) + H.confused = 0 + else if(!H.null_rod_check() && H.stat == CONSCIOUS) + var/distance = 0 + get_dist(T, get_turf(H)) + var/falloff_distance = min((110) - distance * 10, 80) + var/sound_distance = falloff_distance * 0.5 + var/targetbrainloss = H.getBrainLoss() + if(distance >= 4 && prob(falloff_distance * 0.5)) + H << "\"[text2ratvar(pick(mania_messages))]\"" + H.playsound_local(T, hum, sound_distance, 1) + switch(distance) + if(0 to 3) + if(prob(falloff_distance * 0.5)) + if(prob(falloff_distance)) + H << "\"[text2ratvar(pick(mania_messages))]\"" + else + H << "\"[text2ratvar(pick(compel_messages))]\"" + if(targetbrainloss <= 50) + H.adjustBrainLoss((50 * efficiency) - targetbrainloss) //got too close had brain eaten + H.adjust_drugginess(Clamp(7 * efficiency, 0, 100 - H.druggy)) + H.hallucination = min(H.hallucination + (7 * efficiency), 100) + H.dizziness = min(H.dizziness + (3 * efficiency), 45) + H.confused = min(H.confused + (3 * efficiency), 45) + if(4 to 5) + if(targetbrainloss <= 50) + H.adjustBrainLoss(1 * efficiency) + H.adjust_drugginess(Clamp(5 * efficiency, 0, 80 - H.druggy)) + H.hallucination = min(H.hallucination + (5 * efficiency), 80) + H.dizziness = min(H.dizziness + (2 * efficiency), 30) + H.confused = min(H.confused + (2 * efficiency), 30) + if(6 to 7) + if(targetbrainloss <= 30) + H.adjustBrainLoss(1 * efficiency) + H.adjust_drugginess(Clamp(2 * efficiency, 0, 60 - H.druggy)) + H.hallucination = min(H.hallucination + (2 * efficiency), 60) + H.dizziness = min(H.dizziness + (2 * efficiency), 15) + H.confused = min(H.confused + (2 * efficiency), 15) + if(8 to 9) + if(targetbrainloss <= 10) + H.adjustBrainLoss(1 * efficiency) + H.adjust_drugginess(Clamp(2 * efficiency, 0, 40 - H.druggy)) + H.hallucination = min(H.hallucination + (2 * efficiency), 40) + if(10 to INFINITY) + H.adjust_drugginess(Clamp(2 * efficiency, 0, 20 - H.druggy)) + H.hallucination = min(H.hallucination + (2 * efficiency), 20) diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index f67b7fbb51..3bb7e24d78 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -379,7 +379,7 @@ if(M.current && M.current.stat != DEAD) cultists |= M.current var/mob/living/cultist_to_receive = input(user, "Who do you wish to call to [src]?", "Followers of the Geometer") as null|anything in (cultists - user) - if(!Adjacent(user) || !src || qdeleted(src) || user.incapacitated()) + if(!Adjacent(user) || !src || QDELETED(src) || user.incapacitated()) return if(!cultist_to_receive) user << "You require a destination!" diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index 32dfdcb077..d8e6a7860c 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -82,7 +82,7 @@ pickedtype = /obj/item/clothing/glasses/night/cultblind if("Flask of Unholy Water") pickedtype = /obj/item/weapon/reagent_containers/food/drinks/bottle/unholywater - if(src && !qdeleted(src) && anchored && pickedtype && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time) + if(src && !QDELETED(src) && anchored && pickedtype && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time) cooldowntime = world.time + 2400 var/obj/item/N = new pickedtype(get_turf(src)) user << "You kneel before the altar and your faith is rewarded with an [N]!" @@ -114,7 +114,7 @@ pickedtype = /obj/item/clothing/suit/hooded/cultrobes/berserker if("Nar-Sien Hardsuit") pickedtype = /obj/item/clothing/suit/space/hardsuit/cult - if(src && !qdeleted(src) && anchored && pickedtype && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time) + if(src && !QDELETED(src) && anchored && pickedtype && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time) cooldowntime = world.time + 2400 var/obj/item/N = new pickedtype(get_turf(src)) user << "You work the forge as dark knowledge guides your hands, creating [N]!" @@ -218,7 +218,7 @@ var/list/blacklisted_pylon_turfs = typecacheof(list( if("Veil Walker Set") pickedtype += /obj/item/device/cult_shift pickedtype += /obj/item/device/flashlight/flare/culttorch - if(src && !qdeleted(src) && anchored && pickedtype.len && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time) + if(src && !QDELETED(src) && anchored && pickedtype.len && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time) cooldowntime = world.time + 2400 for(var/N in pickedtype) var/obj/item/D = new N(get_turf(src)) diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index 719854d947..33cd687496 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -180,7 +180,7 @@ This file contains the arcane tome files. if(!possible_runes.len) return entered_rune_name = input(user, "Choose a rite to scribe.", "Sigils of Power") as null|anything in possible_runes - if(!src || qdeleted(src) || !Adjacent(user) || user.incapacitated() || !check_rune_turf(Turf, user)) + if(!src || QDELETED(src) || !Adjacent(user) || user.incapacitated() || !check_rune_turf(Turf, user)) return for(var/T in typesof(/obj/effect/rune)) var/obj/effect/rune/R = T @@ -196,7 +196,7 @@ This file contains the arcane tome files. return Turf = get_turf(user) //we may have moved. adjust as needed... A = get_area(src) - if(!src || qdeleted(src) || !Adjacent(user) || user.incapacitated() || !check_rune_turf(Turf, user)) + if(!src || QDELETED(src) || !Adjacent(user) || user.incapacitated() || !check_rune_turf(Turf, user)) return if(ispath(rune_to_scribe, /obj/effect/rune/narsie)) if(ticker.mode.name == "cult") @@ -235,7 +235,7 @@ This file contains the arcane tome files. if(!do_after(user, initial(rune_to_scribe.scribe_delay), target = get_turf(user))) for(var/V in shields) var/obj/structure/emergency_shield/sanguine/S = V - if(S && !qdeleted(S)) + if(S && !QDELETED(S)) qdel(S) return if(!check_rune_turf(Turf, user)) @@ -244,7 +244,7 @@ This file contains the arcane tome files. "You finish drawing the arcane markings of the Geometer.") for(var/V in shields) var/obj/structure/emergency_shield/S = V - if(S && !qdeleted(S)) + if(S && !QDELETED(S)) qdel(S) var/obj/effect/rune/R = new rune_to_scribe(Turf, chosen_keyword) user << "The [lowertext(R.cultist_name)] rune [R.cultist_desc]" diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 65cfd923e0..5eb2379d2a 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -220,7 +220,7 @@ structure_check() searches for nearby cultist structures required for the invoca possible_talismans[talisman_cult_name] = J //This is to allow the menu to let cultists select talismans by name entered_talisman_name = input(user, "Choose a talisman to imbue.", "Talisman Choices") as null|anything in possible_talismans talisman_type = possible_talismans[entered_talisman_name] - if(!Adjacent(user) || !src || qdeleted(src) || user.incapacitated() || rune_in_use || !talisman_type) + if(!Adjacent(user) || !src || QDELETED(src) || user.incapacitated() || rune_in_use || !talisman_type) return papers_on_rune = checkpapers() if(!papers_on_rune.len) @@ -290,7 +290,7 @@ var/list/teleport_runes = list() var/input_rune_key = input(user, "Choose a rune to teleport to.", "Rune to Teleport to") as null|anything in potential_runes //we know what key they picked var/obj/effect/rune/teleport/actual_selected_rune = potential_runes[input_rune_key] //what rune does that key correspond to? - if(!Adjacent(user) || !src || qdeleted(src) || user.incapacitated() || !actual_selected_rune) + if(!Adjacent(user) || !src || QDELETED(src) || user.incapacitated() || !actual_selected_rune) fail_invoke() return @@ -557,7 +557,7 @@ var/list/teleport_runes = list() mob_to_revive = input(user, "Choose a cultist to revive.", "Cultist to Revive") as null|anything in potential_revive_mobs else mob_to_revive = potential_revive_mobs[1] - if(!src || qdeleted(src) || rune_in_use || !validness_checks(mob_to_revive, user)) + if(!src || QDELETED(src) || rune_in_use || !validness_checks(mob_to_revive, user)) return rune_in_use = 1 if(user.name == "Herbert West") @@ -809,7 +809,7 @@ var/list/wall_runes = list() if(!(M.current in invokers) && M.current && M.current.stat != DEAD) cultists |= M.current var/mob/living/cultist_to_summon = input(user, "Who do you wish to call to [src]?", "Followers of the Geometer") as null|anything in cultists - if(!Adjacent(user) || !src || qdeleted(src) || user.incapacitated()) + if(!Adjacent(user) || !src || QDELETED(src) || user.incapacitated()) return if(!cultist_to_summon) user << "You require a summoning target!" diff --git a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm index 9879b196d0..9a47e91561 100644 --- a/code/game/gamemodes/cult/talisman.dm +++ b/code/game/gamemodes/cult/talisman.dm @@ -139,7 +139,7 @@ var/input_rune_key = input(user, "Choose a rune to teleport to.", "Rune to Teleport to") as null|anything in potential_runes //we know what key they picked var/obj/effect/rune/teleport/actual_selected_rune = potential_runes[input_rune_key] //what rune does that key correspond to? - if(!src || qdeleted(src) || !user || !user.is_holding(src) || user.incapacitated() || !actual_selected_rune) + if(!src || QDELETED(src) || !user || !user.is_holding(src) || user.incapacitated() || !actual_selected_rune) return ..(user, 0) var/turf/target = get_turf(actual_selected_rune) if(is_blocked_turf(target, TRUE)) diff --git a/code/game/gamemodes/devil/true_devil/_true_devil.dm b/code/game/gamemodes/devil/true_devil/_true_devil.dm index e541d6a066..1de71b46d3 100644 --- a/code/game/gamemodes/devil/true_devil/_true_devil.dm +++ b/code/game/gamemodes/devil/true_devil/_true_devil.dm @@ -36,6 +36,7 @@ /mob/living/carbon/true_devil/create_internal_organs() internal_organs += new /obj/item/organ/brain internal_organs += new /obj/item/organ/tongue + internal_organs += new /obj/item/organ/eyes ..() diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index 220b2be20d..dd505013ec 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -329,7 +329,7 @@ M.audible_message("You hear a loud electrical buzzing sound!") src << "Reprogramming machine behaviour..." spawn(50) - if(M && !qdeleted(M)) + if(M && !QDELETED(M)) new /mob/living/simple_animal/hostile/mimic/copy/machine(get_turf(M), M, src, 1) else src << "Out of uses." else src << "That's not a machine." diff --git a/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm b/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm index adc9627ca8..265838d15a 100644 --- a/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm +++ b/code/game/gamemodes/miniantags/abduction/machinery/experiment.dm @@ -70,7 +70,7 @@ var/icon/eyes if(EYECOLOR in H.dna.species.species_traits) - eyes = icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = "[H.dna.species.eyes]") + eyes = icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = "eyes") eyes.Blend("#[H.eye_color]", ICON_MULTIPLY) var/datum/sprite_accessory/S diff --git a/code/game/gamemodes/miniantags/borer/borer.dm b/code/game/gamemodes/miniantags/borer/borer.dm index 2610d3ade5..94fec48e03 100644 --- a/code/game/gamemodes/miniantags/borer/borer.dm +++ b/code/game/gamemodes/miniantags/borer/borer.dm @@ -147,7 +147,7 @@ var/total_borer_hosts_needed = 10 if(stat != CONSCIOUS) return var/be_borer = alert("Become a cortical borer? (Warning, You can no longer be cloned!)",,"Yes","No") - if(be_borer == "No" || !src || qdeleted(src)) + if(be_borer == "No" || !src || QDELETED(src)) return if(key) return @@ -178,7 +178,7 @@ var/total_borer_hosts_needed = 10 if(!input) return - if(src && !qdeleted(src) && !qdeleted(victim)) + if(src && !QDELETED(src) && !QDELETED(victim)) var/say_string = (docile) ? "slurs" :"states" if(victim) victim << "[truename] [say_string]: [input]" @@ -512,7 +512,7 @@ var/total_borer_hosts_needed = 10 addtimer(CALLBACK(src, .proc/release_host), 100) /mob/living/simple_animal/borer/proc/release_host() - if(!victim || !src || qdeleted(victim) || qdeleted(src)) + if(!victim || !src || QDELETED(victim) || QDELETED(src)) return if(!leaving) return @@ -627,7 +627,7 @@ var/total_borer_hosts_needed = 10 src << "You begin delicately adjusting your connection to the host brain..." - if(qdeleted(src) || qdeleted(victim)) + if(QDELETED(src) || QDELETED(victim)) return bonding = TRUE @@ -798,7 +798,7 @@ var/total_borer_hosts_needed = 10 if(!candidate || !candidate.mob) return - if(!qdeleted(candidate) || !qdeleted(candidate.mob)) + if(!QDELETED(candidate) || !QDELETED(candidate.mob)) var/datum/mind/M = create_borer_mind(candidate.ckey) M.transfer_to(src) diff --git a/code/game/gamemodes/miniantags/borer/borer_event.dm b/code/game/gamemodes/miniantags/borer/borer_event.dm index d3b456b41d..73bea41a52 100644 --- a/code/game/gamemodes/miniantags/borer/borer_event.dm +++ b/code/game/gamemodes/miniantags/borer/borer_event.dm @@ -2,8 +2,8 @@ name = "Borer" typepath = /datum/round_event/borer weight = 15 - max_occurrences = 1 - min_players = 10 + max_occurrences = 0 + min_players = 15 earliest_start = 12000 /datum/round_event/borer @@ -24,7 +24,7 @@ var/list/vents = list() for(var/obj/machinery/atmospherics/components/unary/vent_pump/temp_vent in machines) - if(qdeleted(temp_vent)) + if(QDELETED(temp_vent)) continue if(temp_vent.loc.z == ZLEVEL_STATION && !temp_vent.welded) var/datum/pipeline/temp_vent_parent = temp_vent.PARENT1 diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index 46daea6f01..b5abae7489 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -40,7 +40,7 @@ if(crit_fail) user << "Swarmer has been depowered." return - if(qdeleted(src)) + if(QDELETED(src)) user << "Swarmer has been occupied by someone else." return var/mob/living/simple_animal/hostile/swarmer/S = new /mob/living/simple_animal/hostile/swarmer(get_turf(loc)) @@ -316,10 +316,6 @@ S << "This communications relay should be preserved, it will be a useful resource to our masters in the future. Aborting." return FALSE -/obj/machinery/blackbox_recorder/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S << "This machine has recorded large amounts of data on this structure and its inhabitants, it will be a useful resource to our masters in the future. Aborting. " - return FALSE - /obj/machinery/power/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) S << "Disrupting the power grid would bring no benefit to us. Aborting." return FALSE diff --git a/code/game/gamemodes/miniantags/revenant/revenant.dm b/code/game/gamemodes/miniantags/revenant/revenant.dm index 4fa625bd17..0ccc8e7094 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant.dm @@ -366,7 +366,7 @@ user << "It is shifting and distorted. It would be wise to destroy this." /obj/item/weapon/ectoplasm/revenant/proc/reform() - if(!src || qdeleted(src) || inert) + if(!src || QDELETED(src) || inert) return var/key_of_revenant message_admins("Revenant ectoplasm was left undestroyed for 1 minute and is reforming into a new revenant.") diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index b96268dc9d..4a82f4ed65 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -571,7 +571,7 @@ var/global/list/multiverse = list() var/mob/living/carbon/last_user /obj/item/warpwhistle/proc/interrupted(mob/living/carbon/user) - if(!user || qdeleted(src)) + if(!user || QDELETED(src)) on_cooldown = FALSE return TRUE return FALSE diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index 682da993aa..3a6c8bcbbd 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -29,7 +29,7 @@ return 1 /datum/spellbook_entry/proc/Buy(mob/living/carbon/human/user,obj/item/weapon/spellbook/book) //return 1 on success - if(!S || qdeleted(S)) + if(!S || QDELETED(S)) S = new spell_type() //Check if we got the spell already for(var/obj/effect/proc_holder/spell/aspell in user.mind.spell_list) diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index bc3fc83e44..2bf0291e4d 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -159,7 +159,7 @@ flick("autolathe_r",src)//plays glass insertion animation user << "You insert [inserted] sheet[inserted>1 ? "s" : ""] to the autolathe." use_power(inserted*100) - if(!qdeleted(O)) + if(!QDELETED(O)) user.put_in_active_hand(O) else user << "You insert a material total of [inserted] to the autolathe." diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index abd148dfce..4690cb2568 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -382,7 +382,7 @@ /obj/machinery/clonepod/ex_act(severity, target) ..() - if(!qdeleted(src)) + if(!QDELETED(src)) locked = FALSE go_out() diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index 95161867e1..435e2230b6 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -71,17 +71,16 @@ return /obj/machinery/computer/aifixer/proc/Fix() - . = use_power(1000) - if(.) - occupier.adjustOxyLoss(-1, 0) - occupier.adjustFireLoss(-1, 0) - occupier.adjustToxLoss(-1, 0) - occupier.adjustBruteLoss(-1, 0) - occupier.updatehealth() - occupier.updatehealth() - if(occupier.health >= 0 && occupier.stat == DEAD) - occupier.revive() - . = occupier.health < 100 + use_power(1000) + occupier.adjustOxyLoss(-1, 0) + occupier.adjustFireLoss(-1, 0) + occupier.adjustToxLoss(-1, 0) + occupier.adjustBruteLoss(-1, 0) + occupier.updatehealth() + occupier.updatehealth() + if(occupier.health >= 0 && occupier.stat == DEAD) + occupier.revive() + return occupier.health < 100 /obj/machinery/computer/aifixer/process() if(..()) diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 8a162d9a21..8a8b4bbcc9 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -1,7 +1,6 @@ /obj/structure/frame/computer name = "computer frame" icon_state = "0" - anchored = 0 state = 0 /obj/structure/frame/computer/attackby(obj/item/P, mob/user, params) diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 2fc5b8777b..1d6083d150 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -3,7 +3,6 @@ icon = 'icons/obj/stock_parts.dmi' icon_state = "box_0" density = 1 - anchored = 1 obj_integrity = 250 max_integrity = 250 var/obj/item/weapon/circuitboard/circuit = null diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index d33b8e4262..b2e4558833 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -274,7 +274,7 @@ var/list/airlock_overlays = list() var/cont = 1 while (cont) sleep(10) - if(qdeleted(src)) + if(QDELETED(src)) return cont = 0 if(secondsMainPowerLost>0) @@ -1404,7 +1404,7 @@ var/list/airlock_overlays = list() operating = 1 update_icon(AIRLOCK_EMAG, 1) sleep(6) - if(qdeleted(src)) + if(QDELETED(src)) return operating = 0 if(!open()) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 6afa9bdf3a..b72ce4d0c8 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -305,7 +305,7 @@ M.take_damage(DOOR_CRUSH_DAMAGE) /obj/machinery/door/proc/autoclose() - if(!qdeleted(src) && !density && !operating && !locked && !welded && autoclose) + if(!QDELETED(src) && !density && !operating && !locked && !welded && autoclose) close() /obj/machinery/door/proc/requiresID() diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index a6a22d8839..631819fe35 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -3,6 +3,8 @@ desc = "A strong door." icon = 'icons/obj/doors/windoor.dmi' icon_state = "left" + layer = ABOVE_WINDOW_LAYER + closingLayer = ABOVE_WINDOW_LAYER resistance_flags = ACID_PROOF var/base_state = "left" obj_integrity = 150 //If you change this, consider changing ../door/window/brigdoor/ health at the bottom of this .dm file diff --git a/code/game/machinery/embedded_controller/access_controller.dm b/code/game/machinery/embedded_controller/access_controller.dm index 2962418498..79fafb0a8a 100644 --- a/code/game/machinery/embedded_controller/access_controller.dm +++ b/code/game/machinery/embedded_controller/access_controller.dm @@ -163,7 +163,7 @@ A.unbolt() spawn() if(A && A.close()) - if(stat & NOPOWER || lostPower || !A || qdeleted(A)) + if(stat & NOPOWER || lostPower || !A || QDELETED(A)) goIdle(1) return A.bolt() @@ -209,7 +209,7 @@ A.unbolt() spawn() if(A && A.open()) - if(stat | (NOPOWER) && !lostPower && A && !qdeleted(A)) + if(stat | (NOPOWER) && !lostPower && A && !QDELETED(A)) A.bolt() goIdle(1) diff --git a/code/game/machinery/quantum_pad.dm b/code/game/machinery/quantum_pad.dm index f7f4da03d9..29d69f31c9 100644 --- a/code/game/machinery/quantum_pad.dm +++ b/code/game/machinery/quantum_pad.dm @@ -74,7 +74,7 @@ user << "The panel must be closed before operating this machine!" return - if(!linked_pad || qdeleted(linked_pad)) + if(!linked_pad || QDELETED(linked_pad)) user << "There is no linked pad!" return @@ -112,14 +112,14 @@ teleporting = 1 spawn(teleport_speed) - if(!src || qdeleted(src)) + if(!src || QDELETED(src)) teleporting = 0 return if(stat & NOPOWER) user << "[src] is unpowered!" teleporting = 0 return - if(!linked_pad || qdeleted(linked_pad) || linked_pad.stat & NOPOWER) + if(!linked_pad || QDELETED(linked_pad) || linked_pad.stat & NOPOWER) user << "Linked pad is not responding to ping. Teleport aborted." teleporting = 0 return diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm index e25b032358..3ec3a0cb50 100644 --- a/code/game/mecha/mech_bay.dm +++ b/code/game/mecha/mech_bay.dm @@ -111,11 +111,11 @@ /obj/machinery/computer/mech_bay_power_console/ui_data(mob/user) var/list/data = list() - if(recharge_port && !qdeleted(recharge_port)) + if(recharge_port && !QDELETED(recharge_port)) data["recharge_port"] = list("mech" = null) - if(recharge_port.recharging_mech && !qdeleted(recharge_port.recharging_mech)) + if(recharge_port.recharging_mech && !QDELETED(recharge_port.recharging_mech)) data["recharge_port"]["mech"] = list("health" = recharge_port.recharging_mech.obj_integrity, "max_integrity" = recharge_port.recharging_mech.max_integrity, "cell" = null) - if(recharge_port.recharging_mech.cell && !qdeleted(recharge_port.recharging_mech.cell)) + if(recharge_port.recharging_mech.cell && !QDELETED(recharge_port.recharging_mech.cell)) data["recharge_port"]["mech"]["cell"] = list( "critfail" = recharge_port.recharging_mech.cell.crit_fail, "charge" = recharge_port.recharging_mech.cell.charge, diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index f9d2efb3fe..0ec759e20b 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -452,7 +452,8 @@ if(inserted) user << "You insert [inserted] sheet\s into [src]." if(W && W.materials.len) - user.put_in_active_hand(W) + if(!QDELETED(W)) + user.put_in_active_hand(W) var/mat_overlay = "fab-load-[material2name(W.materials[1])]" add_overlay(mat_overlay) sleep(10) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 4825a4ca1f..3dd395d01f 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -971,7 +971,7 @@ setDir(dir_in) if(L && L.client) - L.client.view = world.view + L.client.change_view(world.view) zoom_mode = 0 ///////////////////////// diff --git a/code/game/mecha/mecha_actions.dm b/code/game/mecha/mecha_actions.dm index 9d9505a01e..b243981717 100644 --- a/code/game/mecha/mecha_actions.dm +++ b/code/game/mecha/mecha_actions.dm @@ -239,10 +239,10 @@ chassis.log_message("Toggled zoom mode.") chassis.occupant_message("Zoom mode [chassis.zoom_mode?"en":"dis"]abled.") if(chassis.zoom_mode) - owner.client.view = 12 + owner.client.change_view(12) owner << sound('sound/mecha/imag_enh.ogg',volume=50) else - owner.client.view = world.view//world.view - default mob view size + owner.client.change_view(world.view) //world.view - default mob view size UpdateButtonIcon() /datum/action/innate/mecha/mech_switch_damtype diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 1e9fb0766a..bf1ea9346e 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -264,7 +264,7 @@ list(name = "- Carbon Dioxide", desc = " This informational poster teaches the v playsound(D.loc, 'sound/items/poster_being_created.ogg', 100, 1) if(do_after(user,D.placespeed,target=src)) - if(!D || qdeleted(D)) + if(!D || QDELETED(D)) return if(iswallturf(src) && user && user.loc == temp_loc) //Let's check if everything is still there diff --git a/code/game/objects/effects/countdown.dm b/code/game/objects/effects/countdown.dm index 5fbba9999a..73a69eb7f0 100644 --- a/code/game/objects/effects/countdown.dm +++ b/code/game/objects/effects/countdown.dm @@ -42,7 +42,7 @@ return /obj/effect/countdown/process() - if(!attached_to || qdeleted(attached_to)) + if(!attached_to || QDELETED(attached_to)) qdel(src) forceMove(get_turf(attached_to)) var/new_val = get_value() diff --git a/code/game/objects/effects/effects.dm b/code/game/objects/effects/effects.dm index 1998a11024..6646735613 100644 --- a/code/game/objects/effects/effects.dm +++ b/code/game/objects/effects/effects.dm @@ -42,3 +42,7 @@ /obj/effect/experience_pressure_difference() return + +/obj/effect/singularity_act() + qdel(src) + return 0 \ No newline at end of file diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm index bca24aa886..51fb47d0c3 100644 --- a/code/game/objects/effects/overlays.dm +++ b/code/game/objects/effects/overlays.dm @@ -258,10 +258,11 @@ /obj/effect/overlay/temp/ratvar/door icon_state = "ratvardoorglow" - layer = CLOSED_FIREDOOR_LAYER //above closed doors + layer = CLOSED_DOOR_LAYER //above closed doors /obj/effect/overlay/temp/ratvar/door/window icon_state = "ratvarwindoorglow" + layer = ABOVE_WINDOW_LAYER /obj/effect/overlay/temp/ratvar/beam icon_state = "ratvarbeamglow" @@ -295,7 +296,10 @@ /obj/effect/overlay/temp/ratvar/window icon_state = "ratvarwindowglow" - layer = ABOVE_WINDOW_LAYER + layer = ABOVE_OBJ_LAYER + +/obj/effect/overlay/temp/ratvar/window/single + icon_state = "ratvarwindowglow_s" /obj/effect/overlay/temp/ratvar/gear icon_state = "ratvargearglow" @@ -308,9 +312,6 @@ /obj/effect/overlay/temp/ratvar/grille/broken icon_state = "ratvarbrokengrilleglow" -/obj/effect/overlay/temp/ratvar/window/single - icon_state = "ratvarwindowglow_s" - /obj/effect/overlay/temp/ratvar/volt_hit name = "volt blast" layer = ABOVE_MOB_LAYER diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index d69f1b1b2b..8a26b20444 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -503,7 +503,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_s else ..() /obj/item/throw_impact(atom/A) - if(A && !qdeleted(A)) + if(A && !QDELETED(A)) var/itempush = 1 if(w_class < 4) itempush = 0 //too light to push anything @@ -582,7 +582,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_s return 0 /obj/item/burn() - if(!qdeleted(src)) + if(!QDELETED(src)) var/turf/T = get_turf(src) var/ash_type = /obj/effect/decal/cleanable/ash if(w_class == WEIGHT_CLASS_HUGE || w_class == WEIGHT_CLASS_GIGANTIC) @@ -592,7 +592,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/effects/fire.dmi', "icon_s ..() /obj/item/acid_melt() - if(!qdeleted(src)) + if(!QDELETED(src)) var/turf/T = get_turf(src) var/obj/effect/decal/cleanable/molten_object/MO = new(T) MO.pixel_x = rand(-16,16) diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 9c360fd615..ab24a5bf8a 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -124,7 +124,7 @@ /obj/item/toy/crayon/proc/check_empty(mob/user) // When eating a crayon, check_empty() can be called twice producing // two messages unless we check for being deleted first - if(qdeleted(src)) + if(QDELETED(src)) return TRUE . = FALSE diff --git a/code/game/objects/items/dehy_carp.dm b/code/game/objects/items/dehy_carp.dm index 70856bc37d..0aa6077ad9 100644 --- a/code/game/objects/items/dehy_carp.dm +++ b/code/game/objects/items/dehy_carp.dm @@ -36,7 +36,7 @@ flick("carp_swell", src) //Wait for animation to end sleep(6) - if(!src || qdeleted(src))//we got toasted while animating + if(!src || QDELETED(src))//we got toasted while animating return //Make space carp var/mob/living/M = new mobtype(get_turf(src)) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 7309edfcab..30c72d6ccc 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -663,7 +663,7 @@ var/global/list/obj/item/device/pda/PDAs = list() M << "[link] [msg.sender] PDA Message --> [multiple ? "Everyone" : msg.recipient]: [msg.message][msg.get_photo_ref()]" /obj/item/device/pda/proc/can_send(obj/item/device/pda/P) - if(!P || qdeleted(P) || P.toff) + if(!P || QDELETED(P) || P.toff) return null var/obj/machinery/message_server/useMS = null @@ -676,7 +676,7 @@ var/global/list/obj/item/device/pda/PDAs = list() var/datum/signal/signal = src.telecomms_process() - if(!P || qdeleted(P) || P.toff) //in case the PDA or mob gets destroyed during telecomms_process() + if(!P || QDELETED(P) || P.toff) //in case the PDA or mob gets destroyed during telecomms_process() return null var/useTC = 0 diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm index f00adf5d05..02afa9434d 100644 --- a/code/game/objects/items/devices/geiger_counter.dm +++ b/code/game/objects/items/devices/geiger_counter.dm @@ -22,7 +22,7 @@ /obj/item/device/geiger_counter/Destroy() STOP_PROCESSING(SSobj, src) - ..() + return ..() /obj/item/device/geiger_counter/process() if(emagged) diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm index a25146cc56..2bf34009d6 100644 --- a/code/game/objects/items/weapons/explosives.dm +++ b/code/game/objects/items/weapons/explosives.dm @@ -97,11 +97,11 @@ addtimer(CALLBACK(src, .proc/explode), timer * 10) /obj/item/weapon/c4/proc/explode() - if(qdeleted(src)) + if(QDELETED(src)) return var/turf/location if(target) - if(!qdeleted(target)) + if(!QDELETED(target)) location = get_turf(target) target.overlays -= image_overlay target.priority_overlays -= image_overlay diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index 8b668c2071..9ee7967408 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -381,6 +381,25 @@ beakers += B2 +/obj/item/weapon/grenade/chem_grenade/ez_clean + name = "cleaner grenade" + desc = "Waffle Co.-brand foaming space cleaner. In a special applicator for rapid cleaning of wide areas." + stage = READY + +/obj/item/weapon/grenade/chem_grenade/ez_clean/New() + ..() + var/obj/item/weapon/reagent_containers/glass/beaker/large/B1 = new(src) + var/obj/item/weapon/reagent_containers/glass/beaker/large/B2 = new(src) + + B1.reagents.add_reagent("fluorosurfactant", 40) + B2.reagents.add_reagent("water", 40) + B2.reagents.add_reagent("ez_clean", 60) //ensures a t h i c c distribution + + beakers += B1 + beakers += B2 + + + /obj/item/weapon/grenade/chem_grenade/teargas name = "teargas grenade" desc = "Used for nonlethal riot control. Contents under pressure. Do not directly inhale contents." diff --git a/code/game/objects/items/weapons/grenades/clusterbuster.dm b/code/game/objects/items/weapons/grenades/clusterbuster.dm index cb8f0a73a5..45f35215fa 100644 --- a/code/game/objects/items/weapons/grenades/clusterbuster.dm +++ b/code/game/objects/items/weapons/grenades/clusterbuster.dm @@ -64,7 +64,7 @@ walk_away(P,loc,rand(1,4)) spawn(rand(15,60)) - if(P && !qdeleted(P)) + if(P && !QDELETED(P)) P.prime() qdel(src) diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm index 99a2a7e4b7..37ee38d5d7 100644 --- a/code/game/objects/items/weapons/grenades/grenade.dm +++ b/code/game/objects/items/weapons/grenades/grenade.dm @@ -19,7 +19,7 @@ /obj/item/weapon/grenade/deconstruct(disassembled = TRUE) if(!disassembled) prime() - if(!qdeleted(src)) + if(!QDELETED(src)) qdel(src) /obj/item/weapon/grenade/proc/clown_check(mob/living/carbon/human/user) diff --git a/code/game/objects/items/weapons/grenades/plastic.dm b/code/game/objects/items/weapons/grenades/plastic.dm index 6f6cb13361..eecbaa88d2 100644 --- a/code/game/objects/items/weapons/grenades/plastic.dm +++ b/code/game/objects/items/weapons/grenades/plastic.dm @@ -128,7 +128,7 @@ /obj/item/weapon/grenade/plastic/c4/prime() var/turf/location if(target) - if(!qdeleted(target)) + if(!QDELETED(target)) location = get_turf(target) target.overlays -= image_overlay target.priority_overlays -= image_overlay @@ -156,7 +156,7 @@ /obj/item/weapon/grenade/plastic/x4/prime() var/turf/location if(target) - if(!qdeleted(target)) + if(!QDELETED(target)) location = get_turf(target) target.overlays -= image_overlay target.priority_overlays -= image_overlay diff --git a/code/game/objects/items/weapons/implants/implant_chem.dm b/code/game/objects/items/weapons/implants/implant_chem.dm index 7d76005b31..ce3ebc978f 100644 --- a/code/game/objects/items/weapons/implants/implant_chem.dm +++ b/code/game/objects/items/weapons/implants/implant_chem.dm @@ -27,7 +27,7 @@ tracked_chem_implants += src /obj/item/weapon/implant/chem/Destroy() - ..() + . = ..() tracked_chem_implants -= src diff --git a/code/game/objects/items/weapons/implants/implant_track.dm b/code/game/objects/items/weapons/implants/implant_track.dm index a0d5836961..6bcef31720 100644 --- a/code/game/objects/items/weapons/implants/implant_track.dm +++ b/code/game/objects/items/weapons/implants/implant_track.dm @@ -10,7 +10,7 @@ tracked_implants += src /obj/item/weapon/implant/tracking/Destroy() - ..() + . = ..() tracked_implants -= src /obj/item/weapon/implanter/tracking/New() diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index 40a6a2b8a7..d53dd4a6a5 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -144,8 +144,8 @@ playsound(loc, 'sound/weapons/batonextend.ogg', 50, 1) add_fingerprint(user) sleep(3) - if (H && !qdeleted(H)) - if (B && !qdeleted(B)) + if (H && !QDELETED(H)) + if (B && !QDELETED(B)) H.internal_organs -= B qdel(B) new /obj/effect/gibspawner/generic(H.loc, H.viruses, H.dna) diff --git a/code/game/objects/items/weapons/scrolls.dm b/code/game/objects/items/weapons/scrolls.dm index 7d0e56001d..c237e9878e 100644 --- a/code/game/objects/items/weapons/scrolls.dm +++ b/code/game/objects/items/weapons/scrolls.dm @@ -51,7 +51,7 @@ var/A A = input(user, "Area to jump to", "BOOYEA", A) as null|anything in teleportlocs - if(!src || qdeleted(src) || !user || !user.is_holding(src) || user.incapacitated() || !A || !uses) + if(!src || QDELETED(src) || !user || !user.is_holding(src) || user.incapacitated() || !A || !uses) return var/area/thearea = teleportlocs[A] diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index 886c55fe09..3a9a8cf776 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -273,13 +273,6 @@ level = 1 cant_hold = list(/obj/item/weapon/storage/backpack/satchel/flat) //muh recursive backpacks -/obj/item/weapon/storage/backpack/satchel/duty - name = "duty satchel" - desc = "An extra trendy looking satchel." - icon_state = "satchel-duty" - - - /obj/item/weapon/storage/backpack/satchel/flat/hide(var/intact) if(intact) invisibility = INVISIBILITY_MAXIMUM diff --git a/code/game/objects/items/weapons/storage/book.dm b/code/game/objects/items/weapons/storage/book.dm index 33f4487f52..e1e3ebacd1 100644 --- a/code/game/objects/items/weapons/storage/book.dm +++ b/code/game/objects/items/weapons/storage/book.dm @@ -56,7 +56,6 @@ var/global/list/bibleitemstates = list("bible", "koran", "scrapbook", "bible", if(B.icon_state == "honk1" || B.icon_state == "honk2") var/mob/living/carbon/human/H = usr - new /obj/item/weapon/bikehorn(B) H.dna.add_mutation(CLOWNMUT) H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(H), slot_wear_mask) @@ -157,8 +156,4 @@ var/global/list/bibleitemstates = list("bible", "koran", "scrapbook", "bible", /obj/item/weapon/storage/book/bible/booze/New() ..() - new /obj/item/weapon/reagent_containers/food/drinks/beer(src) - new /obj/item/weapon/reagent_containers/food/drinks/beer(src) - new /obj/item/stack/spacecash(src) - new /obj/item/stack/spacecash(src) - new /obj/item/stack/spacecash(src) + new /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey(src) diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 911c47caff..1371818487 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -301,3 +301,8 @@ new /obj/item/weapon/reagent_containers/glass/bottle/romerol(src) new /obj/item/weapon/reagent_containers/syringe(src) new /obj/item/weapon/reagent_containers/dropper(src) + +/obj/item/weapon/storage/box/syndie_kit/ez_clean/New() + ..() + for(var/i in 1 to 3) + new/obj/item/weapon/grenade/chem_grenade/ez_clean(src) diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm index d1025186ed..2d0e0d9717 100644 --- a/code/game/objects/items/weapons/tanks/tanks.dm +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -116,7 +116,7 @@ var/mob/living/carbon/human/H = user user.visible_message("[user] is putting [src]'s valve to [user.p_their()] lips! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/effects/spray.ogg', 10, 1, -3) - if (H && !qdeleted(H)) + if (H && !QDELETED(H)) for(var/obj/item/W in H) H.dropItemToGround(W) if(prob(50)) diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index 45e969fe5a..0b0869222f 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -136,7 +136,7 @@ var/obj/item/weapon/twohanded/O = user.get_inactive_held_item() if (istype(O) && !istype(O, /obj/item/weapon/twohanded/offhand/)) //If you have a proper item in your other hand that the offhand is for, do nothing. This should never happen. return - if (qdeleted(src)) + if (QDELETED(src)) return qdel(src) //If it's another offhand, or literally anything else, qdel. If I knew how to add logging messages I'd put one here. @@ -169,8 +169,8 @@ ..() var/slotbit = slotdefine2slotbit(slot) if(slot_flags & slotbit) - var/O = user.is_holding_item_of_type(/obj/item/weapon/twohanded/offhand) - if(!O || qdeleted(O)) + var/datum/O = user.is_holding_item_of_type(/obj/item/weapon/twohanded/offhand) + if(!O || QDELETED(O)) return qdel(O) return @@ -700,7 +700,7 @@ if(source.z == ZLEVEL_STATION && get_dist(turfhit, source) < maxdist || source.z != ZLEVEL_STATION) ..() if(do_after_mob(user, src, 5, uninterruptible = 1, progress = 0)) - if(qdeleted(src)) + if(QDELETED(src)) return var/turf/landing = get_turf(src) if (loc != landing) diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index ffed55916c..c407ce6acd 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -141,7 +141,7 @@ /obj/singularity_act() ex_act(1) - if(src && !qdeleted(src)) + if(src && !QDELETED(src)) qdel(src) return 2 diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 74e12249c2..6b4d541797 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -71,7 +71,7 @@ /obj/proc/rewrite(mob/user) var/penchoice = alert("What would you like to edit?", "Rename or change description?", "Rename", "Change description", "Cancel") - if(!qdeleted(src) && user.canUseTopic(src, BE_CLOSE)) + if(!QDELETED(src) && user.canUseTopic(src, BE_CLOSE)) if(penchoice == "Rename") rename_obj(user) if(penchoice == "Change description") @@ -206,7 +206,7 @@ var/input = stripped_input(M,"What do you want to name \the [name]?", ,"", MAX_NAME_LEN) var/oldname = name - if(!qdeleted(src) && M.canUseTopic(src, BE_CLOSE) && input != "") + if(!QDELETED(src) && M.canUseTopic(src, BE_CLOSE) && input != "") if(oldname == input) M << "You changed \the [name] to... well... \the [name]." return @@ -220,7 +220,7 @@ /obj/proc/redesc_obj(mob/M) var/input = stripped_input(M,"Describe \the [name] here", ,"", 100) - if(!qdeleted(src) && M.canUseTopic(src, BE_CLOSE) && input != "") + if(!QDELETED(src) && M.canUseTopic(src, BE_CLOSE) && input != "") desc = input M << "You have successfully changed \the [name]'s description." return diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index 0fc923a281..3bb0826128 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -51,7 +51,7 @@ if(density) do_the_flick() sleep(5) - if(!qdeleted(src)) + if(!QDELETED(src)) density = 0 SetOpacity(0) update_icon() @@ -63,7 +63,7 @@ do_the_flick() density = 1 sleep(5) - if(!qdeleted(src)) + if(!QDELETED(src)) SetOpacity(1) update_icon() air_update_turf(1) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index a0f8dd9e88..528c924e3f 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -27,7 +27,15 @@ /obj/structure/grille/Bumped(atom/user) if(ismob(user)) - shock(user, 70) + var/tile_density = FALSE + for(var/atom/movable/AM in get_turf(src)) + if(AM == src) + continue + if(AM.density && AM.layer >= layer) + tile_density = TRUE + break + if(!tile_density) + shock(user, 70) /obj/structure/grille/attack_paw(mob/user) diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm index eb010bbba2..10c362a233 100644 --- a/code/game/objects/structures/kitchen_spike.dm +++ b/code/game/objects/structures/kitchen_spike.dm @@ -79,6 +79,8 @@ return if(L.buckled) return + if(user.pulling != L) + return playsound(src.loc, "sound/effects/splat.ogg", 25, 1) L.visible_message("[user] slams [L] onto the meat spike!", "[user] slams you onto the meat spike!", "You hear a squishy wet noise.") L.loc = src.loc diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index a2802d7a64..34094ad2ef 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -218,7 +218,7 @@ var/global/list/crematoriums = new/list() new /obj/effect/decal/cleanable/ash(src) sleep(30) - if(!qdeleted(src)) + if(!QDELETED(src)) locked = 0 update_icon() playsound(src.loc, 'sound/machines/ding.ogg', 50, 1) //you horrible people diff --git a/code/game/objects/structures/transit_tubes/station.dm b/code/game/objects/structures/transit_tubes/station.dm index fe86ac68a8..9550ef0e30 100644 --- a/code/game/objects/structures/transit_tubes/station.dm +++ b/code/game/objects/structures/transit_tubes/station.dm @@ -146,7 +146,7 @@ open_animation() sleep(OPEN_DURATION + 2) pod_moving = 0 - if(!qdeleted(pod)) + if(!QDELETED(pod)) pod.air_contents.share(loc.return_air()) //mix the pod's gas mixture with the tile it's on /obj/structure/transit_tube/station/init_tube_dirs() diff --git a/code/game/objects/structures/transit_tubes/transit_tube_construction.dm b/code/game/objects/structures/transit_tubes/transit_tube_construction.dm index 3a026e887d..2f46c0b44f 100644 --- a/code/game/objects/structures/transit_tubes/transit_tube_construction.dm +++ b/code/game/objects/structures/transit_tubes/transit_tube_construction.dm @@ -68,7 +68,7 @@ add_fingerprint(user) playsound(src.loc, I.usesound, 50, 1) if(do_after(user, 40*I.toolspeed, target = src)) - if(qdeleted(src)) + if(QDELETED(src)) return user << "You attach the [name]." var/obj/structure/transit_tube/R = new build_type(loc, dir) diff --git a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm index d82a8af254..82bdade48f 100644 --- a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm +++ b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm @@ -54,7 +54,7 @@ /obj/structure/transit_tube_pod/ex_act(severity, target) ..() - if(!qdeleted(src)) + if(!QDELETED(src)) empty_pod() /obj/structure/transit_tube_pod/contents_explosion(severity, target) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 6c7fd2bcf3..7ea8a5ceaf 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -190,7 +190,7 @@ playsound(loc, I.usesound, 75, 1) user << " You begin to disassemble [src]..." if(do_after(user, 40*I.toolspeed, target = src)) - if(qdeleted(src)) + if(QDELETED(src)) return var/obj/item/stack/sheet/G = new glass_type(user.loc, glass_amount) @@ -233,7 +233,7 @@ /obj/structure/window/deconstruct(disassembled = TRUE) - if(qdeleted(src)) + if(QDELETED(src)) return if(!disassembled) playsound(src, "shatter", 70, 1) @@ -335,7 +335,7 @@ //merges adjacent full-tile windows into one /obj/structure/window/update_icon() - if(!qdeleted(src)) + if(!QDELETED(src)) if(!fulltile) return diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index 6818642905..df3b680b91 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -258,4 +258,4 @@ if(!wet && wet_time) wet_time = 0 if(wet) - addtimer(CALLBACK(src, .proc/HandleWet), 15) + addtimer(CALLBACK(src, .proc/HandleWet), 15, TIMER_UNIQUE) diff --git a/code/game/turfs/simulated/chasm.dm b/code/game/turfs/simulated/chasm.dm index 55910cd00e..f1e71ff25d 100644 --- a/code/game/turfs/simulated/chasm.dm +++ b/code/game/turfs/simulated/chasm.dm @@ -55,7 +55,7 @@ /turf/open/chasm/proc/drop(atom/movable/AM) //Make sure the item is still there after our sleep - if(!AM || qdeleted(AM)) + if(!AM || QDELETED(AM)) return var/turf/T = locate(drop_x, drop_y, drop_z) @@ -84,7 +84,7 @@ /turf/open/chasm/straight_down/lava_land_surface/drop(atom/movable/AM) //Make sure the item is still there after our sleep - if(!AM || qdeleted(AM)) + if(!AM || QDELETED(AM)) return AM.visible_message("[AM] falls into [src]!", "You stumble and stare into an abyss before you. It stares back, and you fall \ into the enveloping dark.") @@ -96,13 +96,13 @@ animate(AM, transform = matrix() - matrix(), alpha = 0, color = rgb(0, 0, 0), time = 10) for(var/i in 1 to 5) //Make sure the item is still there after our sleep - if(!AM || qdeleted(AM)) + if(!AM || QDELETED(AM)) return AM.pixel_y-- sleep(2) //Make sure the item is still there after our sleep - if(!AM || qdeleted(AM)) + if(!AM || QDELETED(AM)) return if(iscyborg(AM)) diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index f20b98bae3..2d9cd76f4a 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -199,6 +199,6 @@ . = ..() //Do this *after* the turf has changed as qdel in spacevines will call changeturf again if it hasn't for(var/obj/structure/spacevine/SV in src) - if(!qdestroying(SV))//Helps avoid recursive loops + if(!QDESTROYING(SV))//Helps avoid recursive loops qdel(SV) UpdateAffectingLights() diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 06dc33a174..2368b5bcac 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -21,7 +21,7 @@ var/explosion_level = 0 //for preventing explosion dodging var/explosion_id = 0 - + var/list/decals /turf/New() @@ -426,8 +426,6 @@ return T /turf/handle_fall(mob/faller, forced) - if(!faller) - return faller.lying = pick(90, 270) if(!forced) return diff --git a/code/modules/VR/vr_sleeper.dm b/code/modules/VR/vr_sleeper.dm index 475bb64ec5..7a21dc9ad2 100644 --- a/code/modules/VR/vr_sleeper.dm +++ b/code/modules/VR/vr_sleeper.dm @@ -129,7 +129,7 @@ /obj/machinery/vr_sleeper/ui_data(mob/user) var/list/data = list() - if(vr_human && !qdeleted(vr_human)) + if(vr_human && !QDELETED(vr_human)) data["can_delete_avatar"] = TRUE var/status switch(user.stat) diff --git a/code/modules/admin/NewBan.dm b/code/modules/admin/NewBan.dm index 5c542802f1..dba8b98624 100644 --- a/code/modules/admin/NewBan.dm +++ b/code/modules/admin/NewBan.dm @@ -117,9 +117,9 @@ var/savefile/Banlist if (temp) Banlist["minutes"] << bantimestamp if(!temp) - add_note(ckey, "Permanently banned - [reason]", null, bannedby, 0, null, 0) + create_message("note", ckey, bannedby, "Permanently banned - [reason]", null, null, 0, 0) else - add_note(ckey, "Banned for [minutes] minutes - [reason]", null, bannedby, 0, null, 0) + create_message("note", ckey, bannedby, "Banned for [minutes] minutes - [reason]", null, null, 0, 0) return 1 /proc/RemoveBan(foldername) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index aacf67bbca..bc3def4bc5 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -61,14 +61,8 @@ var/global/BSACooldown = 0 else body+= "Emoteban | " - body += "Notes | " + body += "Notes | Messages | Watchlist | " if(M.client) - if(M.client.check_watchlist(M.client.ckey)) - body += "Remove from Watchlist | " - body += "Edit Watchlist reason " - else - body += "Add to Watchlist " - body += "| Prison | " body += "\ Send back to Lobby | " var/muted = M.client.prefs.muted diff --git a/code/modules/admin/admin_investigate.dm b/code/modules/admin/admin_investigate.dm index 5ae260a20b..8a35d35c93 100644 --- a/code/modules/admin/admin_investigate.dm +++ b/code/modules/admin/admin_investigate.dm @@ -25,7 +25,7 @@ F << "[time_stamp()] \ref[src] ([x],[y],[z]) || [src] [message]
" //ADMINVERBS -/client/proc/investigate_show( subject in list("hrefs","notes","watchlist","singulo","wires","telesci", "gravity", "records", "cargo", "supermatter", "atmos", "experimentor", "kudzu") ) +/client/proc/investigate_show( subject in list("hrefs","notes, memos, watchlist","singulo","wires","telesci", "gravity", "records", "cargo", "supermatter", "atmos", "experimentor", "kudzu") ) set name = "Investigate" set category = "Admin" if(!holder) @@ -46,7 +46,5 @@ else src << "No href logfile was found." return - if("notes") - show_note() - if("watchlist") - watchlist_show() + if("notes, memos, watchlist") + browse_messages() diff --git a/code/modules/admin/fun_balloon.dm b/code/modules/admin/fun_balloon.dm index 9493b756be..ee9b3f26c5 100644 --- a/code/modules/admin/fun_balloon.dm +++ b/code/modules/admin/fun_balloon.dm @@ -15,7 +15,7 @@ . = ..() /obj/effect/fun_balloon/process() - if(!popped && check() && !qdeleted(src)) + if(!popped && check() && !QDELETED(src)) popped = TRUE effect() pop() diff --git a/code/modules/admin/holder2.dm b/code/modules/admin/holder2.dm index 4a63068a4b..b35c037656 100644 --- a/code/modules/admin/holder2.dm +++ b/code/modules/admin/holder2.dm @@ -5,7 +5,6 @@ var/list/admin_datums = list() var/client/owner = null var/fakekey = null - var/following = null var/datum/marked_datum diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index dbce9bc17b..4320efd9b9 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -76,7 +76,7 @@ body += ""; body += "PP - " - body += "N - " + body += "N - " body += "VV - " body += "TP - " body += "PM - " diff --git a/code/modules/admin/sql_message_system.dm b/code/modules/admin/sql_message_system.dm new file mode 100644 index 0000000000..0a11abba05 --- /dev/null +++ b/code/modules/admin/sql_message_system.dm @@ -0,0 +1,371 @@ +/proc/create_message(type, target_ckey, admin_ckey, text, timestamp, server, secret, logged = 1, browse) + if(!dbcon.IsConnected()) + usr << "Failed to establish database connection." + return + if(!type) + return + if(!target_ckey && (type == "note" || type == "message" || type == "watchlist entry")) + var/new_ckey = ckey(input(usr,"Who would you like to create a [type] for?","Enter a ckey",null) as null|text) + if(!new_ckey) + return + new_ckey = sanitizeSQL(new_ckey) + var/DBQuery/query_find_ckey = dbcon.NewQuery("SELECT ckey FROM [format_table_name("player")] WHERE ckey = '[new_ckey]'") + if(!query_find_ckey.Execute()) + var/err = query_find_ckey.ErrorMsg() + log_game("SQL ERROR obtaining ckey from player table. Error : \[[err]\]\n") + return + if(!query_find_ckey.NextRow()) + if(alert(usr, "[new_ckey] has not been seen before, are you sure you want to create a [type] for them?", "Unknown ckey", "Yes", "No", "Cancel") != "Yes") + return + target_ckey = new_ckey + if(target_ckey) + target_ckey = sanitizeSQL(target_ckey) + if(!admin_ckey) + admin_ckey = usr.ckey + if(!admin_ckey) + return + admin_ckey = sanitizeSQL(admin_ckey) + if(!target_ckey) + target_ckey = admin_ckey + if(!text) + text = input(usr,"Write your [type]","Create [type]") as null|message + if(!text) + return + text = sanitizeSQL(text) + if(!timestamp) + timestamp = SQLtime() + if(!server) + if (config && config.server_name) + server = config.server_name + server = sanitizeSQL(server) + if(isnull(secret)) + switch(alert("Hide note from being viewed by players?", "Secret note?","Yes","No","Cancel")) + if("Yes") + secret = 1 + if("No") + secret = 0 + else + return + var/DBQuery/query_create_message = dbcon.NewQuery("INSERT INTO [format_table_name("messages")] (type, targetckey, adminckey, text, timestamp, server, secret) VALUES ('[type]', '[target_ckey]', '[admin_ckey]', '[text]', '[timestamp]', '[server]', '[secret]')") + if(!query_create_message.Execute()) + var/err = query_create_message.ErrorMsg() + log_game("SQL ERROR creating new [type] in messages table. Error : \[[err]\]\n") + return + if(logged) + log_admin("[key_name(usr)] has created a [type][(type == "note" || type == "message" || type == "watchlist entry") ? " for [target_ckey]" : ""]: [text]") + message_admins("[key_name_admin(usr)] has created a [type][(type == "note" || type == "message" || type == "watchlist entry") ? " for [target_ckey]" : ""]:
[text]") + if(browse) + browse_messages("[type]") + else + browse_messages(target_ckey = target_ckey) + +/proc/delete_message(message_id, logged = 1, browse) + if(!dbcon.IsConnected()) + usr << "Failed to establish database connection." + return + message_id = text2num(message_id) + if(!message_id) + return + var/type + var/target_ckey + var/text + var/DBQuery/query_find_del_message = dbcon.NewQuery("SELECT type, targetckey, adminckey, text FROM [format_table_name("messages")] WHERE id = [message_id]") + if(!query_find_del_message.Execute()) + var/err = query_find_del_message.ErrorMsg() + log_game("SQL ERROR obtaining type, targetckey, adminckey text from messages table. Error : \[[err]\]\n") + return + if(query_find_del_message.NextRow()) + type = query_find_del_message.item[1] + target_ckey = query_find_del_message.item[2] + text = query_find_del_message.item[4] + var/DBQuery/query_del_message = dbcon.NewQuery("DELETE FROM [format_table_name("messages")] WHERE id = [message_id]") + if(!query_del_message.Execute()) + var/err = query_del_message.ErrorMsg() + log_game("SQL ERROR deleting [type] from messages table. Error : \[[err]\]\n") + return + if(logged) + log_admin("[key_name(usr)] has deleted a [type][(type == "note" || type == "message" || type == "watchlist entry") ? " for" : " made by"] [target_ckey]: [text]") + message_admins("[key_name_admin(usr)] has deleted a [type][(type == "note" || type == "message" || type == "watchlist entry") ? " for" : " made by"] [target_ckey]:
[text]") + if(browse) + browse_messages("[type]") + else + browse_messages(target_ckey = target_ckey) + +/proc/edit_message(message_id, browse) + if(!dbcon.IsConnected()) + usr << "Failed to establish database connection." + return + message_id = text2num(message_id) + if(!message_id) + return + var/DBQuery/query_find_edit_message = dbcon.NewQuery("SELECT type, targetckey, adminckey, text FROM [format_table_name("messages")] WHERE id = [message_id]") + if(!query_find_edit_message.Execute()) + var/err = query_find_edit_message.ErrorMsg() + log_game("SQL ERROR obtaining type, targetckey, adminckey, text from messages table. Error : \[[err]\]\n") + return + if(query_find_edit_message.NextRow()) + var/type = query_find_edit_message.item[1] + var/target_ckey = query_find_edit_message.item[2] + var/admin_ckey = query_find_edit_message.item[3] + var/old_text = query_find_edit_message.item[4] + var/editor_ckey = sanitizeSQL(usr.ckey) + var/new_text = input("Input new [type]", "New [type]", "[old_text]") as null|message + if(!new_text) + return + new_text = sanitizeSQL(new_text) + var/edit_text = sanitizeSQL("Edited by [editor_ckey] on [SQLtime()] from
[old_text]
to
[new_text]
") + var/DBQuery/query_edit_message = dbcon.NewQuery("UPDATE [format_table_name("messages")] SET text = '[new_text]', lasteditor = '[editor_ckey]', edits = CONCAT(IFNULL(edits,''),'[edit_text]') WHERE id = [message_id]") + if(!query_edit_message.Execute()) + var/err = query_edit_message.ErrorMsg() + log_game("SQL ERROR editing messages table. Error : \[[err]\]\n") + return + log_admin("[key_name(usr)] has edited a [type] [(type == "note" || type == "message" || type == "watchlist entry") ? " for [target_ckey]" : ""] made by [admin_ckey] from [old_text] to [new_text]") + message_admins("[key_name_admin(usr)] has edited a [type] [(type == "note" || type == "message" || type == "watchlist entry") ? " for [target_ckey]" : ""] made by [admin_ckey] from
[old_text]
to
[new_text]") + if(browse) + browse_messages("[type]") + else + browse_messages(target_ckey = target_ckey) + +/proc/toggle_message_secrecy(message_id) + if(!dbcon.IsConnected()) + usr << "Failed to establish database connection." + return + message_id = text2num(message_id) + if(!message_id) + return + var/DBQuery/query_find_message_secret = dbcon.NewQuery("SELECT type, targetckey, adminckey, secret FROM [format_table_name("messages")] WHERE id = [message_id]") + if(!query_find_message_secret.Execute()) + var/err = query_find_message_secret.ErrorMsg() + log_game("SQL ERROR obtaining type, targetckey, adminckey, secret from messages table. Error : \[[err]\]\n") + return + if(query_find_message_secret.NextRow()) + var/type = query_find_message_secret.item[1] + var/target_ckey = query_find_message_secret.item[2] + var/admin_ckey = query_find_message_secret.item[3] + var/secret = text2num(query_find_message_secret.item[4]) + var/editor_ckey = sanitizeSQL(usr.ckey) + var/edit_text = "Made [secret ? "not secret" : "secret"] by [editor_ckey] on [SQLtime()]
" + var/DBQuery/query_message_secret = dbcon.NewQuery("UPDATE [format_table_name("messages")] SET secret = NOT secret, lasteditor = '[editor_ckey]', edits = CONCAT(IFNULL(edits,''),'[edit_text]') WHERE id = [message_id]") + if(!query_message_secret.Execute()) + var/err = query_message_secret.ErrorMsg() + log_game("SQL ERROR toggling message secrecy. Error : \[[err]\]\n") + return + log_admin("[key_name(usr)] has toggled [target_ckey]'s [type] made by [admin_ckey] to [secret ? "not secret" : "secret"]") + message_admins("[key_name_admin(usr)] has toggled [target_ckey]'s [type] made by [admin_ckey] to [secret ? "not secret" : "secret"]") + browse_messages(target_ckey = target_ckey) + +/proc/browse_messages(type, target_ckey, index, linkless = 0) + if(!dbcon.IsConnected()) + usr << "Failed to establish database connection." + return + var/output + var/ruler = "
" + var/navbar = "\[All\]|\[#\]" + for(var/letter in alphabet) + navbar += "|\[[letter]\]" + navbar += "|\[Memos\]|\[Watchlist\]" + navbar += "
\ + \ + \ +
" + if(!linkless) + output = navbar + if(type == "memo" || type == "watchlist entry") + if(type == "memo") + output += "

Admin memos

" + output += "\[Add memo\]" + else if(type == "watchlist entry") + output += "

Watchlist entries

" + output += "\[Add watchlist entry\]" + output += ruler + var/DBQuery/query_get_type_messages = dbcon.NewQuery("SELECT id, targetckey, adminckey, text, timestamp, server, lasteditor FROM [format_table_name("messages")] WHERE type = '[type]'") + if(!query_get_type_messages.Execute()) + var/err = query_get_type_messages.ErrorMsg() + log_game("SQL ERROR obtaining id, targetckey, adminckey, text, timestamp, server, lasteditor from messages table. Error : \[[err]\]\n") + return + while(query_get_type_messages.NextRow()) + var/id = query_get_type_messages.item[1] + var/t_ckey = query_get_type_messages.item[2] + var/admin_ckey = query_get_type_messages.item[3] + var/text = query_get_type_messages.item[4] + var/timestamp = query_get_type_messages.item[5] + var/server = query_get_type_messages.item[6] + var/editor_ckey = query_get_type_messages.item[7] + output += "" + if(type == "watchlist entry") + output += "[t_ckey] | " + output += "[timestamp] | [server] | [admin_ckey]" + output += " \[Delete\]" + output += " \[Edit\]" + if(editor_ckey) + output += " Last edit by [editor_ckey] (Click here to see edit log)" + output += "
[text]
" + if(target_ckey) + target_ckey = sanitizeSQL(target_ckey) + var/DBQuery/query_get_messages = dbcon.NewQuery("SELECT type, secret, id, adminckey, text, timestamp, server, lasteditor FROM [format_table_name("messages")] WHERE type <> 'memo' AND targetckey = '[target_ckey]' ORDER BY timestamp") + if(!query_get_messages.Execute()) + var/err = query_get_messages.ErrorMsg() + log_game("SQL ERROR obtaining type, secret, id, adminckey, text, timestamp, server, lasteditor from messages table. Error : \[[err]\]\n") + return + var/messagedata + var/watchdata + var/notedata + while(query_get_messages.NextRow()) + type = query_get_messages.item[1] + if(type == "memo") + continue + var/secret = text2num(query_get_messages.item[2]) + if(linkless && secret) + continue + var/id = query_get_messages.item[3] + var/admin_ckey = query_get_messages.item[4] + var/text = query_get_messages.item[5] + var/timestamp = query_get_messages.item[6] + var/server = query_get_messages.item[7] + var/editor_ckey = query_get_messages.item[8] + var/data + data += "[timestamp] | [server] | [admin_ckey]" + if(!linkless) + data += " \[Delete\]" + if(type == "note") + data += " [secret ? "\[Secret\]" : "\[Not secret\]"]" + data += " \[Edit\]" + if(editor_ckey) + data += " Last edit by [editor_ckey] (Click here to see edit log)" + data += "
[text]
" + switch(type) + if("message") + messagedata += data + if("watchlist entry") + watchdata += data + if("note") + notedata += data + output += "

[target_ckey]

" + if(!linkless) + output += "\[Add message\]" + output += " \[Add to watchlist\]" + output += " \[Add note\]" + output += " \[Refresh page\]
" + else + output += " \[Refresh page\]" + output += ruler + if(messagedata) + output += "

Messages

" + output += messagedata + if(watchdata) + output += "

Watchlist

" + output += watchdata + if(notedata) + output += "

Notes

" + output += notedata + if(index) + var/index_ckey + var/search + output += "
\[Add message\]\[Add watchlist entry\]\[Add note\]
" + output += ruler + if(!isnum(index)) + index = sanitizeSQL(index) + switch(index) + if(1) + search = "^." + if(2) + search = "^\[^\[:alpha:\]\]" + else + search = "^[index]" + var/DBQuery/query_list_messages = dbcon.NewQuery("SELECT DISTINCT targetckey FROM [format_table_name("messages")] WHERE type <> 'memo' AND targetckey REGEXP '[search]' ORDER BY targetckey") + if(!query_list_messages.Execute()) + var/err = query_list_messages.ErrorMsg() + log_game("SQL ERROR obtaining distinct targetckey from messages table. Error : \[[err]\]\n") + return + while(query_list_messages.NextRow()) + index_ckey = query_list_messages.item[1] + output += "[index_ckey]
" + else if(!type && !target_ckey && !index) + output += "
\[Add message\]\[Add watchlist entry\]\[Add note\]
" + output += ruler + usr << browse(output, "window=browse_messages;size=900x500") + +proc/get_message_output(type, target_ckey) + if(!dbcon.IsConnected()) + usr << "Failed to establish database connection." + return + if(!type) + return + var/output + if(target_ckey) + target_ckey = sanitizeSQL(target_ckey) + var/query = "SELECT id, adminckey, text, timestamp, lasteditor FROM [format_table_name("messages")] WHERE type = '[type]'" + if(type == "message" || type == "watchlist entry") + query += " AND targetckey = '[target_ckey]'" + var/DBQuery/query_get_message_output = dbcon.NewQuery(query) + if(!query_get_message_output.Execute()) + var/err = query_get_message_output.ErrorMsg() + log_game("SQL ERROR obtaining id, adminckey, text, timestamp, lasteditor from messages table. Error : \[[err]\]\n") + return + while(query_get_message_output.NextRow()) + var/id = query_get_message_output.item[1] + var/admin_ckey = query_get_message_output.item[2] + var/text = query_get_message_output.item[3] + var/timestamp = query_get_message_output.item[4] + var/editor_ckey = query_get_message_output.item[5] + switch(type) + if("message") + output += "Admin message left by [admin_ckey] on [timestamp]" + output += "
[text]" + delete_message(id, 0) + if("watchlist entry") + message_admins("Notice: [key_name_admin(target_ckey)] is on the watchlist and has just connected - Reason: [text]") + send2admindiscord("Watchlist", "[key_name(target_ckey)] is on the watchlist and has just connected - Reason: [text]") + if("memo") + output += "Memo by [admin_ckey] on [timestamp]" + if(editor_ckey) + output += "
Last edit by [editor_ckey] (Click here to see edit log)" + output += "
[text]

" + return output + +#define NOTESFILE "data/player_notes.sav" +//if the AUTOCONVERT_NOTES is turned on, anytime a player connects this will be run to try and add all their notes to the databas +/proc/convert_notes_sql(ckey) + var/savefile/notesfile = new(NOTESFILE) + if(!notesfile) + log_game("Error: Cannot access [NOTESFILE]") + return + notesfile.cd = "/[ckey]" + while(!notesfile.eof) + var/notetext + notesfile >> notetext + var/server + if(config && config.server_name) + server = config.server_name + var/regex/note = new("^(\\d{2}-\\w{3}-\\d{4}) \\| (.+) ~(\\w+)$", "i") + note.Find(notetext) + var/timestamp = note.group[1] + notetext = note.group[2] + var/admin_ckey = note.group[3] + var/DBQuery/query_convert_time = dbcon.NewQuery("SELECT ADDTIME(STR_TO_DATE('[timestamp]','%d-%b-%Y'), '0')") + if(!query_convert_time.Execute()) + var/err = query_convert_time.ErrorMsg() + log_game("SQL ERROR converting timestamp. Error : \[[err]\]\n") + return + if(query_convert_time.NextRow()) + timestamp = query_convert_time.item[1] + if(ckey && notetext && timestamp && admin_ckey && server) + create_message("note", ckey, admin_ckey, notetext, timestamp, server, 1, 0) + notesfile.cd = "/" + notesfile.dir.Remove(ckey) + +/*alternatively this proc can be run once to pass through every note and attempt to convert it before deleting the file, if done then AUTOCONVERT_NOTES should be turned off +this proc can take several minutes to execute fully if converting and cause DD to hang if converting a lot of notes; it's not advised to do so while a server is live +/proc/mass_convert_notes() + world << "Beginning mass note conversion" + var/savefile/notesfile = new(NOTESFILE) + if(!notesfile) + log_game("Error: Cannot access [NOTESFILE]") + return + notesfile.cd = "/" + for(var/ckey in notesfile.dir) + convert_notes_sql(ckey) + world << "Deleting NOTESFILE" + fdel(NOTESFILE) + world << "Finished mass note conversion, remember to turn off AUTOCONVERT_NOTES"*/ +#undef NOTESFILE \ No newline at end of file diff --git a/code/modules/admin/sql_notes.dm b/code/modules/admin/sql_notes.dm deleted file mode 100644 index 44244d36f3..0000000000 --- a/code/modules/admin/sql_notes.dm +++ /dev/null @@ -1,260 +0,0 @@ -/proc/add_note(target_ckey, notetext, timestamp, adminckey, logged = 1, server, secret) - if(!dbcon.IsConnected()) - usr << "Failed to establish database connection." - return - if(!target_ckey) - var/new_ckey = ckey(input(usr,"Who would you like to add a note for?","Enter a ckey",null) as text) - if(!new_ckey) - return - new_ckey = sanitizeSQL(new_ckey) - var/DBQuery/query_find_ckey = dbcon.NewQuery("SELECT ckey FROM [format_table_name("player")] WHERE ckey = '[new_ckey]'") - if(!query_find_ckey.Execute()) - var/err = query_find_ckey.ErrorMsg() - log_game("SQL ERROR obtaining ckey from player table. Error : \[[err]\]\n") - return - if(!query_find_ckey.NextRow()) - if(alert(usr, "[new_ckey] has not been seen before, are you sure you want to add a note for them?", "Unknown ckey", "Yes", "No", "Cancel") != "Yes") - return - target_ckey = new_ckey - var/target_sql_ckey = sanitizeSQL(target_ckey) - if(!notetext) - notetext = input(usr,"Write your Note","Add Note") as null|message - if(!notetext) - return - notetext = sanitizeSQL(notetext) - if(!timestamp) - timestamp = SQLtime() - if(!adminckey) - adminckey = usr.ckey - if(!adminckey) - return - var/admin_sql_ckey = sanitizeSQL(adminckey) - if(!server) - if (config && config.server_name) - server = config.server_name - server = sanitizeSQL(server) - if(isnull(secret)) - switch(alert("Hide note from being viewed by players?", "Secret Note?","Yes","No","Cancel")) - if("Yes") - secret = 1 - if("No") - secret = 0 - else - return - var/DBQuery/query_noteadd = dbcon.NewQuery("INSERT INTO [format_table_name("notes")] (ckey, timestamp, notetext, adminckey, server, secret) VALUES ('[target_sql_ckey]', '[timestamp]', '[notetext]', '[admin_sql_ckey]', '[server]', '[secret]')") - if(!query_noteadd.Execute()) - var/err = query_noteadd.ErrorMsg() - log_game("SQL ERROR adding new note to table. Error : \[[err]\]\n") - return - if(logged) - log_admin("[key_name(usr)] has added a note to [target_ckey]: [notetext]") - message_admins("[key_name_admin(usr)] has added a note to [target_ckey]:
[notetext]") - show_note(target_ckey) - -/proc/remove_note(note_id) - var/ckey - var/notetext - var/adminckey - if(!dbcon.IsConnected()) - usr << "Failed to establish database connection." - return - if(!note_id) - return - note_id = text2num(note_id) - var/DBQuery/query_find_note_del = dbcon.NewQuery("SELECT ckey, notetext, adminckey FROM [format_table_name("notes")] WHERE id = [note_id]") - if(!query_find_note_del.Execute()) - var/err = query_find_note_del.ErrorMsg() - log_game("SQL ERROR obtaining ckey, notetext, adminckey from notes table. Error : \[[err]\]\n") - return - if(query_find_note_del.NextRow()) - ckey = query_find_note_del.item[1] - notetext = query_find_note_del.item[2] - adminckey = query_find_note_del.item[3] - var/DBQuery/query_del_note = dbcon.NewQuery("DELETE FROM [format_table_name("notes")] WHERE id = [note_id]") - if(!query_del_note.Execute()) - var/err = query_del_note.ErrorMsg() - log_game("SQL ERROR removing note from table. Error : \[[err]\]\n") - return - log_admin("[key_name(usr)] has removed a note made by [adminckey] from [ckey]: [notetext]") - message_admins("[key_name_admin(usr)] has removed a note made by [adminckey] from [ckey]:
[notetext]") - show_note(ckey) - -/proc/edit_note(note_id) - if(!dbcon.IsConnected()) - usr << "Failed to establish database connection." - return - if(!note_id) - return - note_id = text2num(note_id) - var/target_ckey - var/sql_ckey = sanitizeSQL(usr.ckey) - var/DBQuery/query_find_note_edit = dbcon.NewQuery("SELECT ckey, notetext, adminckey FROM [format_table_name("notes")] WHERE id = [note_id]") - if(!query_find_note_edit.Execute()) - var/err = query_find_note_edit.ErrorMsg() - log_game("SQL ERROR obtaining notetext from notes table. Error : \[[err]\]\n") - return - if(query_find_note_edit.NextRow()) - target_ckey = query_find_note_edit.item[1] - var/old_note = query_find_note_edit.item[2] - var/adminckey = query_find_note_edit.item[3] - var/new_note = input("Input new note", "New Note", "[old_note]") as null|message - if(!new_note) - return - new_note = sanitizeSQL(new_note) - var/edit_text = "Edited by [sql_ckey] on [SQLtime()] from
[old_note]
to
[new_note]
" - edit_text = sanitizeSQL(edit_text) - var/DBQuery/query_update_note = dbcon.NewQuery("UPDATE [format_table_name("notes")] SET notetext = '[new_note]', last_editor = '[sql_ckey]', edits = CONCAT(IFNULL(edits,''),'[edit_text]') WHERE id = [note_id]") - if(!query_update_note.Execute()) - var/err = query_update_note.ErrorMsg() - log_game("SQL ERROR editing note. Error : \[[err]\]\n") - return - log_admin("[key_name(usr)] has edited [target_ckey]'s note made by [adminckey] from [old_note] to [new_note]") - message_admins("[key_name_admin(usr)] has edited [target_ckey]'s note made by [adminckey] from
[old_note]
to
[new_note]") - show_note(target_ckey) - -/proc/toggle_note_secrecy(note_id) - if(!dbcon.IsConnected()) - usr << "Failed to establish database connection." - return - if(!note_id) - return - note_id = text2num(note_id) - var/DBQuery/query_find_note_secret = dbcon.NewQuery("SELECT ckey, adminckey, secret FROM [format_table_name("notes")] WHERE id = [note_id]") - if(!query_find_note_secret.Execute()) - var/err = query_find_note_secret.ErrorMsg() - log_game("SQL ERROR obtaining ckey, adminckey, secret from notes table. Error : \[[err]\]\n") - return - if(query_find_note_secret.NextRow()) - var/target_ckey = query_find_note_secret.item[1] - var/adminckey = query_find_note_secret.item[2] - var/secret = text2num(query_find_note_secret.item[3]) - var/sql_ckey = sanitizeSQL(usr.ckey) - var/edit_text = "Made [secret ? "not secret" : "secret"] by [sql_ckey] on [SQLtime()]
" - var/DBQuery/query_update_note = dbcon.NewQuery("UPDATE [format_table_name("notes")] SET secret = NOT secret, last_editor = '[sql_ckey]', edits = CONCAT(IFNULL(edits,''),'[edit_text]') WHERE id = [note_id]") - if(!query_update_note.Execute()) - var/err = query_update_note.ErrorMsg() - log_game("SQL ERROR toggling note secrecy. Error : \[[err]\]\n") - return - log_admin("[key_name(usr)] has toggled [target_ckey]'s note made by [adminckey] to [secret ? "not secret" : "secret"]") - message_admins("[key_name_admin(usr)] has toggled [target_ckey]'s note made by [adminckey] to [secret ? "not secret" : "secret"]") - show_note(target_ckey) - -/proc/show_note(target_ckey, index, linkless = 0) - if(!dbcon.IsConnected()) - usr << "Failed to establish database connection." - return - var/output - var/ruler = "
" - var/navbar = "\[All\]|\[#\]" - for(var/letter in alphabet) - navbar += "|\[[letter]\]" - navbar += "
\ - \ - \ -
" - if(!linkless) - output = navbar - if(target_ckey) - var/target_sql_ckey = sanitizeSQL(target_ckey) - var/DBQuery/query_get_notes = dbcon.NewQuery("SELECT secret, timestamp, notetext, adminckey, last_editor, server, id FROM [format_table_name("notes")] WHERE ckey = '[target_sql_ckey]' ORDER BY timestamp") - if(!query_get_notes.Execute()) - var/err = query_get_notes.ErrorMsg() - usr << "SQL ERROR: Failed to obtain DB records. Error : \[[err]\]\" - log_game("SQL ERROR obtaining secret, timestamp, notetext, adminckey, last_editor, server, id from notes table. Error : \[[err]\]\n") - return - output += "

Notes of [target_ckey]

" - if(!linkless) - output += "
\[Add Note\]" - output += " \[Refresh Page\]
" - else - output += " \[Refresh Page\]" - output += ruler - while(query_get_notes.NextRow()) - var/secret = text2num(query_get_notes.item[1]) - if(linkless && secret) - continue - var/timestamp = query_get_notes.item[2] - var/notetext = query_get_notes.item[3] - var/adminckey = query_get_notes.item[4] - var/last_editor = query_get_notes.item[5] - var/server = query_get_notes.item[6] - var/id = query_get_notes.item[7] - output += "[timestamp] | [server] | [adminckey]" - if(!linkless) - output += " \[Remove Note\] [secret ? "\[Secret\]" : "\[Not Secret\]"] \[Edit Note\]" - if(last_editor) - output += " Last edit by [last_editor] (Click here to see edit log)" - output += "
[notetext]
" - else if(index) - var/index_ckey - var/search - output += "
\[Add Note\]
" - output += ruler - if(!isnum(index)) - index = sanitizeSQL(index) - switch(index) - if(1) - search = "^." - if(2) - search = "^\[^\[:alpha:\]\]" - else - search = "^[index]" - var/DBQuery/query_list_notes = dbcon.NewQuery("SELECT DISTINCT ckey FROM [format_table_name("notes")] WHERE ckey REGEXP '[search]' ORDER BY ckey") - if(!query_list_notes.Execute()) - var/err = query_list_notes.ErrorMsg() - log_game("SQL ERROR obtaining ckey from notes table. Error : \[[err]\]\n") - return - while(query_list_notes.NextRow()) - index_ckey = query_list_notes.item[1] - output += "[index_ckey]
" - else - output += "
\[Add Note\]
" - output += ruler - usr << browse(output, "window=show_notes;size=900x500") - -#define NOTESFILE "data/player_notes.sav" -//if the AUTOCONVERT_NOTES is turned on, anytime a player connects this will be run to try and add all their notes to the databas -/proc/convert_notes_sql(ckey) - var/savefile/notesfile = new(NOTESFILE) - if(!notesfile) - log_game("Error: Cannot access [NOTESFILE]") - return - notesfile.cd = "/[ckey]" - while(!notesfile.eof) - var/notetext - notesfile >> notetext - var/server - if(config && config.server_name) - server = config.server_name - var/regex/note = new("^(\\d{2}-\\w{3}-\\d{4}) \\| (.+) ~(\\w+)$", "i") - note.Find(notetext) - var/timestamp = note.group[1] - notetext = note.group[2] - var/adminckey = note.group[3] - var/DBQuery/query_convert_time = dbcon.NewQuery("SELECT ADDTIME(STR_TO_DATE('[timestamp]','%d-%b-%Y'), '0')") - if(!query_convert_time.Execute()) - var/err = query_convert_time.ErrorMsg() - log_game("SQL ERROR converting timestamp. Error : \[[err]\]\n") - return - if(query_convert_time.NextRow()) - timestamp = query_convert_time.item[1] - if(ckey && notetext && timestamp && adminckey && server) - add_note(ckey, notetext, timestamp, adminckey, 0, server, 1) - notesfile.cd = "/" - notesfile.dir.Remove(ckey) - -/*alternatively this proc can be run once to pass through every note and attempt to convert it before deleting the file, if done then AUTOCONVERT_NOTES should be turned off -this proc can take several minutes to execute fully if converting and cause DD to hang if converting a lot of notes; it's not advised to do so while a server is live -/proc/mass_convert_notes() - world << "Beginning mass note conversion" - var/savefile/notesfile = new(NOTESFILE) - if(!notesfile) - log_game("Error: Cannot access [NOTESFILE]") - return - notesfile.cd = "/" - for(var/ckey in notesfile.dir) - convert_notes_sql(ckey) - world << "Deleting NOTESFILE" - fdel(NOTESFILE) - world << "Finished mass note conversion, remember to turn off AUTOCONVERT_NOTES"*/ -#undef NOTESFILE diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 68976c6c5e..00f7dd2e7e 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -8,7 +8,7 @@ if(href_list["rejectadminhelp"]) if(!check_rights(R_ADMIN)) return - var/client/C = locate(href_list["rejectadminhelp"]) + var/client/C = locate(href_list["rejectadminhelp"]) in clients if(!C) return if (deltimer(C.adminhelptimerid)) @@ -23,6 +23,20 @@ message_admins("[key_name_admin(usr)] Rejected [C.key]'s admin help. [C.key]'s Adminhelp verb has been returned to them.") log_admin("[key_name(usr)] Rejected [C.key]'s admin help.") + else if(href_list["icissue"]) + var/client/C = locate(href_list["icissue"]) in clients + if(!C) + return + + var/msg = "- AdminHelp marked as IC issue! -
" + msg += "Losing is part of the game!
" + msg += "Your character will frequently die, sometimes without even a possibility of avoiding it. Events will often be out of your control. No matter how good or prepared you are, sometimes you just lose." + + C << msg + + message_admins("[key_name_admin(usr)] marked [C.key]'s admin help as an IC issue.") + log_admin("[key_name(usr)] marked [C.key]'s admin help as an IC issue.") + else if(href_list["stickyban"]) stickyban(href_list["stickyban"],href_list) @@ -238,10 +252,7 @@ if(!DB_ban_record(bantype, playermob, banduration, banreason, banjob, null, banckey, banip, bancid )) usr << "Failed to apply ban." return - add_note(banckey, banreason, null, usr.ckey, 0, null, 0) - - else if(href_list["editrights"]) - edit_rights_topic(href_list) + create_message("note", banckey, null, banreason, null, null, 0, 0) else if(href_list["mentor"]) if(!check_rights(R_ADMIN)) return @@ -287,6 +298,9 @@ M.verbs -= /client/proc/cmd_mentor_say M.verbs -= /client/proc/show_mentor_memo + else if(href_list["editrights"]) + edit_rights_topic(href_list) + else if(href_list["call_shuttle"]) if(!check_rights(R_ADMIN)) return @@ -587,7 +601,7 @@ ban_unban_log_save("[key_name(usr)] appearance banned [key_name(M)]. reason: [reason]") log_admin("[key_name(usr)] appearance banned [key_name(M)]. \nReason: [reason]") feedback_inc("ban_appearance",1) - add_note(M.ckey, "Appearance banned - [reason]", null, usr.ckey, 0, null, 0) + create_message("note", M.ckey, null, "Appearance banned - [reason]", null, null, 0, 0) message_admins("[key_name_admin(usr)] appearance banned [key_name_admin(M)].") M << "You have been appearance banned by [usr.client.ckey]." M << "The reason is: [reason]" @@ -977,7 +991,7 @@ msg = job else msg += ", [job]" - add_note(M.ckey, "Banned from [msg] - [reason]", null, usr.ckey, 0, null, 0) + create_message("note", M.ckey, null, "Banned from [msg] - [reason]", null, null, 0, 0) message_admins("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg] for [mins] minutes.") M << "You have been [(msg == ("ooc" || "appearance")) ? "banned" : "jobbanned"] by [usr.client.ckey] from: [msg]." M << "The reason is: [reason]" @@ -1002,7 +1016,7 @@ msg = job else msg += ", [job]" - add_note(M.ckey, "Banned from [msg] - [reason]", null, usr.ckey, 0, null, 0) + create_message("note", M.ckey, null, "Banned from [msg] - [reason]", null, null, 0, 0) message_admins("[key_name_admin(usr)] banned [key_name_admin(M)] from [msg].") M << "You have been [(msg == ("ooc" || "appearance")) ? "banned" : "jobbanned"] by [usr.client.ckey] from: [msg]." M << "The reason is: [reason]" @@ -1054,58 +1068,88 @@ //M.client = null qdel(M.client) - //Player Notes + else if(href_list["addmessage"]) + var/target_ckey = href_list["addmessage"] + create_message("message", target_ckey, secret = 0) + else if(href_list["addnote"]) var/target_ckey = href_list["addnote"] - add_note(target_ckey) + create_message("note", target_ckey) + + else if(href_list["addwatch"]) + var/target_ckey = href_list["addwatch"] + create_message("watchlist entry", target_ckey, secret = 1) + + else if(href_list["addmemo"]) + create_message("memo", secret = 0, browse = 1) + + else if(href_list["addmessageempty"]) + create_message("message", secret = 0) else if(href_list["addnoteempty"]) - add_note() + create_message("note") - else if(href_list["removenote"]) - var/note_id = href_list["removenote"] - remove_note(note_id) + else if(href_list["addwatchempty"]) + create_message("watchlist entry", secret = 1) - else if(href_list["editnote"]) - var/note_id = href_list["editnote"] - edit_note(note_id) + else if(href_list["deletemessage"]) + var/message_id = href_list["deletemessage"] + delete_message(message_id) - else if(href_list["shownote"]) - var/target = href_list["shownote"] - show_note(index = target) + else if(href_list["deletemessageempty"]) + var/message_id = href_list["deletemessageempty"] + delete_message(message_id, browse = 1) + + else if(href_list["editmessage"]) + var/message_id = href_list["editmessage"] + edit_message(message_id) + + else if(href_list["editmessageempty"]) + var/message_id = href_list["editmessageempty"] + edit_message(message_id, browse = 1) + + else if(href_list["secretmessage"]) + var/message_id = href_list["secretmessage"] + toggle_message_secrecy(message_id) + + else if(href_list["searchmessages"]) + var/target = href_list["searchmessages"] + browse_messages(index = target) else if(href_list["nonalpha"]) var/target = href_list["nonalpha"] target = text2num(target) - show_note(index = target) + browse_messages(index = target) - else if(href_list["shownoteckey"]) - var/target_ckey = href_list["shownoteckey"] - show_note(target_ckey) + else if(href_list["showmessages"]) + var/target = href_list["showmessages"] + browse_messages(index = target) - else if(href_list["shownoteckeylinkless"]) - var/target_ckey = href_list["shownoteckeylinkless"] - show_note(target_ckey, null, 1) + else if(href_list["showmemo"]) + browse_messages("memo") - else if(href_list["notessearch"]) - var/target = href_list["notessearch"] - show_note(index = target) + else if(href_list["showwatch"]) + browse_messages("watchlist entry") - else if(href_list["noteedits"]) - var/note_id = sanitizeSQL("[href_list["noteedits"]]") - var/DBQuery/query_noteedits = dbcon.NewQuery("SELECT edits FROM [format_table_name("notes")] WHERE id = '[note_id]'") - if(!query_noteedits.Execute()) - var/err = query_noteedits.ErrorMsg() - log_game("SQL ERROR obtaining edits from notes table. Error : \[[err]\]\n") + else if(href_list["showmessageckey"]) + var/target = href_list["showmessageckey"] + browse_messages(target_ckey = target) + + else if(href_list["showmessageckeylinkless"]) + var/target = href_list["showmessageckeylinkless"] + browse_messages(target_ckey = target, linkless = 1) + + else if(href_list["messageedits"]) + var/message_id = sanitizeSQL("[href_list["messageedits"]]") + var/DBQuery/query_get_message_edits = dbcon.NewQuery("SELECT edits FROM [format_table_name("messages")] WHERE id = '[message_id]'") + if(!query_get_message_edits.Execute()) + var/err = query_get_message_edits.ErrorMsg() + log_game("SQL ERROR obtaining edits from messages table. Error : \[[err]\]\n") return - if(query_noteedits.NextRow()) - var/edit_log = query_noteedits.item[1] + if(query_get_message_edits.NextRow()) + var/edit_log = query_get_message_edits.item[1] usr << browse(edit_log,"window=noteedits") - else if(href_list["secretnote"]) - var/note_id = href_list["secretnote"] - toggle_note_secrecy(note_id) - else if(href_list["newban"]) if(!check_rights(R_BAN)) return @@ -1170,48 +1214,6 @@ if("Cancel") return - //Watchlist - else if(href_list["watchadd"]) - var/target_ckey = locate(href_list["watchadd"]) - usr.client.watchlist_add(target_ckey) - - else if(href_list["watchremove"]) - var/target_ckey = href_list["watchremove"] - usr.client.watchlist_remove(target_ckey) - - else if(href_list["watchedit"]) - var/target_ckey = href_list["watchedit"] - usr.client.watchlist_edit(target_ckey) - - else if(href_list["watchaddbrowse"]) - usr.client.watchlist_add(null, 1) - - else if(href_list["watchremovebrowse"]) - var/target_ckey = href_list["watchremovebrowse"] - usr.client.watchlist_remove(target_ckey, 1) - - else if(href_list["watcheditbrowse"]) - var/target_ckey = href_list["watcheditbrowse"] - usr.client.watchlist_edit(target_ckey, 1) - - else if(href_list["watchsearch"]) - var/target_ckey = href_list["watchsearch"] - usr.client.watchlist_show(target_ckey) - - else if(href_list["watchshow"]) - usr.client.watchlist_show() - - else if(href_list["watcheditlog"]) - var/target_ckey = sanitizeSQL("[href_list["watcheditlog"]]") - var/DBQuery/query_watchedits = dbcon.NewQuery("SELECT edits FROM [format_table_name("watch")] WHERE ckey = '[target_ckey]'") - if(!query_watchedits.Execute()) - var/err = query_watchedits.ErrorMsg() - log_game("SQL ERROR obtaining edits from watch table. Error : \[[err]\]\n") - return - if(query_watchedits.NextRow()) - var/edit_log = query_watchedits.item[1] - usr << browse(edit_log,"window=watchedits") - else if(href_list["mute"]) if(!check_rights(R_ADMIN)) return @@ -2176,33 +2178,11 @@ FM.locked ^= 1 src.access_news_network() - else if(href_list["memoeditlist"]) - var/sql_key = sanitizeSQL("[href_list["memoeditlist"]]") - var/DBQuery/query_memoedits = dbcon.NewQuery("SELECT edits FROM [format_table_name("memo")] WHERE (ckey = '[sql_key]')") - if(!query_memoedits.Execute()) - var/err = query_memoedits.ErrorMsg() - log_game("SQL ERROR obtaining edits from memo table. Error : \[[err]\]\n") - return - if(query_memoedits.NextRow()) - var/edit_log = query_memoedits.item[1] - usr << browse(edit_log,"window=memoeditlist") - else if(href_list["check_antagonist"]) if(!check_rights(R_ADMIN)) return usr.client.check_antagonists() - else if(href_list["mentormemoeditlist"]) - var/sql_key = sanitizeSQL("[href_list["memoeditlist"]]") - var/DBQuery/query_memoedits = dbcon.NewQuery("SELECT edits FROM [format_table_name("mentor_memo")] WHERE (ckey = '[sql_key]')") - if(!query_memoedits.Execute()) - var/err = query_memoedits.ErrorMsg() - log_game("SQL ERROR obtaining edits from memo table. Error : \[[err]\]\n") - return - if(query_memoedits.NextRow()) - var/edit_log = query_memoedits.item[1] - usr << browse(edit_log,"window=mentormemoeditlist") - else if(href_list["kick_all_from_lobby"]) if(!check_rights(R_ADMIN)) return @@ -2277,3 +2257,14 @@ message_admins("[key_name(usr)] created \"[G.name]\" station goal.") ticker.mode.station_goals += G modify_goals() + + else if(href_list["mentormemoeditlist"]) + var/sql_key = sanitizeSQL("[href_list["memoeditlist"]]") + var/DBQuery/query_memoedits = dbcon.NewQuery("SELECT edits FROM [format_table_name("mentor_memo")] WHERE (ckey = '[sql_key]')") + if(!query_memoedits.Execute()) + var/err = query_memoedits.ErrorMsg() + log_game("SQL ERROR obtaining edits from memo table. Error : \[[err]\]\n") + return + if(query_memoedits.NextRow()) + var/edit_log = query_memoedits.item[1] + usr << browse(edit_log,"window=mentormemoeditlist") \ No newline at end of file diff --git a/code/modules/admin/watchlist.dm b/code/modules/admin/watchlist.dm deleted file mode 100644 index d5ac928272..0000000000 --- a/code/modules/admin/watchlist.dm +++ /dev/null @@ -1,119 +0,0 @@ -/client/proc/watchlist_add(target_ckey, browse = 0) - if(!target_ckey) - var/new_ckey = ckey(input(usr,"Who would you like to add to the watchlist?","Enter a ckey",null) as text) - if(!new_ckey) - return - new_ckey = sanitizeSQL(new_ckey) - var/DBQuery/query_watchfind = dbcon.NewQuery("SELECT ckey FROM [format_table_name("player")] WHERE ckey = '[new_ckey]'") - if(!query_watchfind.Execute()) - var/err = query_watchfind.ErrorMsg() - log_game("SQL ERROR obtaining ckey from player table. Error : \[[err]\]\n") - return - if(!query_watchfind.NextRow()) - if(alert(usr, "[new_ckey] has not been seen before, are you sure you want to add them to the watchlist?", "Unknown ckey", "Yes", "No", "Cancel") != "Yes") - return - target_ckey = new_ckey - var/target_sql_ckey = sanitizeSQL(target_ckey) - if(check_watchlist(target_sql_ckey)) - usr << "[target_sql_ckey] is already on the watchlist." - return - var/reason = input(usr,"Please State Reason","Reason") as message - if(!reason) - return - reason = sanitizeSQL(reason) - var/timestamp = SQLtime() - var/adminckey = usr.ckey - if(!adminckey) - return - var/admin_sql_ckey = sanitizeSQL(adminckey) - var/DBQuery/query_watchadd = dbcon.NewQuery("INSERT INTO [format_table_name("watch")] (ckey, reason, adminckey, timestamp) VALUES ('[target_sql_ckey]', '[reason]', '[admin_sql_ckey]', '[timestamp]')") - if(!query_watchadd.Execute()) - var/err = query_watchadd.ErrorMsg() - log_game("SQL ERROR during adding new watch entry. Error : \[[err]\]\n") - return - log_admin("[key_name(usr)] has added [target_ckey] to the watchlist - Reason: [reason]") - message_admins("[key_name_admin(usr)] has added [target_ckey] to the watchlist - Reason: [reason]", 1) - if(browse) - watchlist_show(target_sql_ckey) - - add_note(target_ckey, "Added to Watchlist - [reason]", null, usr.ckey, 0, null, 1) - -/client/proc/watchlist_remove(target_ckey, browse = 0) - var/target_sql_ckey = sanitizeSQL(target_ckey) - var/DBQuery/query_watchdel = dbcon.NewQuery("DELETE FROM [format_table_name("watch")] WHERE ckey = '[target_sql_ckey]'") - if(!query_watchdel.Execute()) - var/err = query_watchdel.ErrorMsg() - log_game("SQL ERROR during removing watch entry. Error : \[[err]\]\n") - return - log_admin("[key_name(usr)] has removed [target_ckey] from the watchlist") - message_admins("[key_name_admin(usr)] has removed [target_ckey] from the watchlist", 1) - if(browse) - watchlist_show() - -/client/proc/watchlist_edit(target_ckey, browse = 0) - var/target_sql_ckey = sanitizeSQL(target_ckey) - var/DBQuery/query_watchreason = dbcon.NewQuery("SELECT reason FROM [format_table_name("watch")] WHERE ckey = '[target_sql_ckey]'") - if(!query_watchreason.Execute()) - var/err = query_watchreason.ErrorMsg() - log_game("SQL ERROR obtaining reason from watch table. Error : \[[err]\]\n") - return - if(query_watchreason.NextRow()) - var/watch_reason = query_watchreason.item[1] - var/new_reason = input("Input new reason", "New Reason", "[watch_reason]") as message - new_reason = sanitizeSQL(new_reason) - if(!new_reason) - return - var/sql_ckey = sanitizeSQL(usr.ckey) - var/edit_text = "Edited by [sql_ckey] on [SQLtime()] from
[watch_reason]
to
[new_reason]
" - edit_text = sanitizeSQL(edit_text) - var/DBQuery/query_watchupdate = dbcon.NewQuery("UPDATE [format_table_name("watch")] SET reason = '[new_reason]', last_editor = '[sql_ckey]', edits = CONCAT(IFNULL(edits,''),'[edit_text]') WHERE ckey = '[target_sql_ckey]'") - if(!query_watchupdate.Execute()) - var/err = query_watchupdate.ErrorMsg() - log_game("SQL ERROR editing watchlist reason. Error : \[[err]\]\n") - return - log_admin("[key_name(usr)] has edited [target_ckey]'s watchlist reason from [watch_reason] to [new_reason]") - message_admins("[key_name_admin(usr)] has edited [target_ckey]'s watchlist reason from
[watch_reason]
to
[new_reason]") - if(browse) - watchlist_show(target_sql_ckey) - -/client/proc/watchlist_show(search) - var/output - output += "
\ - \ - \ -
" - output += "\[Clear Search\] \[Add Ckey\]" - output += "
" - if(search) - search = "^[search]" - else - search = "^." - search = sanitizeSQL(search) - var/DBQuery/query_watchlist = dbcon.NewQuery("SELECT ckey, reason, adminckey, timestamp, last_editor FROM [format_table_name("watch")] WHERE ckey REGEXP '[search]' ORDER BY ckey") - if(!query_watchlist.Execute()) - var/err = query_watchlist.ErrorMsg() - log_game("SQL ERROR obtaining ckey, reason, adminckey, timestamp, last_editor from watch table. Error : \[[err]\]\n") - return - while(query_watchlist.NextRow()) - var/ckey = query_watchlist.item[1] - var/reason = query_watchlist.item[2] - var/adminckey = query_watchlist.item[3] - var/timestamp = query_watchlist.item[4] - var/last_editor = query_watchlist.item[5] - output += "[ckey] | Added by [adminckey] on [timestamp] \[Remove\] \[Edit Reason\]" - if(last_editor) - output += " Last edit by [last_editor] (Click here to see edit log)" - output += "
[reason]
" - usr << browse(output, "window=watchwin;size=900x500") - -/client/proc/check_watchlist(target_ckey) - var/target_sql_ckey = sanitizeSQL(target_ckey) - var/DBQuery/query_watch = dbcon.NewQuery("SELECT reason FROM [format_table_name("watch")] WHERE ckey = '[target_sql_ckey]'") - if(!query_watch.Execute()) - var/err = query_watch.ErrorMsg() - log_game("SQL ERROR obtaining reason from watch table. Error : \[[err]\]\n") - return - if(query_watch.NextRow()) - return query_watch.item[1] - else - return 0 diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index 50272fde49..797215184a 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -69,7 +69,7 @@ // What the device does when turned on /obj/item/device/assembly/proc/activate() - if(qdeleted(src) || !secured || (next_activate > world.time)) + if(QDELETED(src) || !secured || (next_activate > world.time)) return FALSE next_activate = world.time + 30 return TRUE diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm index bd49648711..3d3db696fb 100644 --- a/code/modules/assembly/flash.dm +++ b/code/modules/assembly/flash.dm @@ -252,7 +252,7 @@ else user << "You begin to replace the bulb." if(do_after(user, 20, target = src)) - if(flash.crit_fail || !flash || qdeleted(flash)) + if(flash.crit_fail || !flash || QDELETED(flash)) return crit_fail = FALSE times_used = 0 diff --git a/code/modules/atmospherics/environmental/LINDA_fire.dm b/code/modules/atmospherics/environmental/LINDA_fire.dm index e796d3cf64..4c52f127f5 100644 --- a/code/modules/atmospherics/environmental/LINDA_fire.dm +++ b/code/modules/atmospherics/environmental/LINDA_fire.dm @@ -149,15 +149,13 @@ /obj/effect/hotspot/Destroy() SetLuminosity(0) SSair.hotspots -= src - if(isturf(loc)) - var/turf/open/T = loc - if(T.active_hotspot == src) - T.active_hotspot = null + var/turf/open/T = loc + if(istype(T) && T.active_hotspot == src) + T.active_hotspot = null DestroyTurf() loc = null . = ..() - /obj/effect/hotspot/proc/DestroyTurf() if(isturf(loc)) var/turf/T = loc diff --git a/code/modules/atmospherics/machinery/atmosmachinery.dm b/code/modules/atmospherics/machinery/atmosmachinery.dm index 88a2c65e7b..5a793d0bd9 100644 --- a/code/modules/atmospherics/machinery/atmosmachinery.dm +++ b/code/modules/atmospherics/machinery/atmosmachinery.dm @@ -142,7 +142,7 @@ Pipelines + Other Objects -> Pipe network user << "As you begin unwrenching \the [src] a gush of air blows in your face... maybe you should reconsider?" unsafe_wrenching = TRUE //Oh dear oh dear - if (do_after(user, 20*W.toolspeed, target = src) && !qdeleted(src)) + if (do_after(user, 20*W.toolspeed, target = src) && !QDELETED(src)) user.visible_message( \ "[user] unfastens \the [src].", \ "You unfasten \the [src].", \ diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index 7ae2313959..60942b7137 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -13,6 +13,7 @@ var/autoeject = FALSE var/volume = 100 var/running_bob_animation = 0 + var/efficiency = 1 var/sleep_factor = 750 var/paralyze_factor = 1000 @@ -26,7 +27,6 @@ var/radio_key = /obj/item/device/encryptionkey/headset_med var/radio_channel = "Medical" - /obj/machinery/atmospherics/components/unary/cryo_cell/New() ..() initialize_directions = dir @@ -144,6 +144,7 @@ /obj/machinery/atmospherics/components/unary/cryo_cell/process() ..() + if(!on) return if(!is_operational()) @@ -214,12 +215,16 @@ /obj/machinery/atmospherics/components/unary/cryo_cell/relaymove(mob/user) container_resist(user) -/obj/machinery/atmospherics/components/unary/cryo_cell/open_machine() +/obj/machinery/atmospherics/components/unary/cryo_cell/open_machine(drop = 0) if(!state_open && !panel_open) on = FALSE ..() - if(beaker) - beaker.forceMove(src) + for(var/mob/M in contents) //only drop mobs + M.forceMove(get_turf(src)) + if(isliving(M)) + var/mob/living/L = M + L.update_canmove() + occupant = null /obj/machinery/atmospherics/components/unary/cryo_cell/close_machine(mob/living/carbon/user) if((isnull(user) || istype(user)) && state_open && !panel_open) @@ -350,4 +355,4 @@ return //can't ventcrawl in or out of cryo. /obj/machinery/atmospherics/components/unary/cryo_cell/can_see_pipes() - return 0 //you can't see the pipe network when inside a cryo cell. \ No newline at end of file + return 0 //you can't see the pipe network when inside a cryo cell. diff --git a/code/modules/atmospherics/machinery/pipes/pipes.dm b/code/modules/atmospherics/machinery/pipes/pipes.dm index a0f93f31f4..d0941a516e 100644 --- a/code/modules/atmospherics/machinery/pipes/pipes.dm +++ b/code/modules/atmospherics/machinery/pipes/pipes.dm @@ -86,7 +86,7 @@ qdel(meter) . = ..() - if(parent && !qdeleted(parent)) + if(parent && !QDELETED(parent)) qdel(parent) parent = null diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index c9bdd58a30..86d08ebf1f 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -193,7 +193,7 @@ /obj/machinery/capture_the_flag/attack_ghost(mob/user) if(ctf_enabled == FALSE) return - if(ticker.current_state != GAME_STATE_PLAYING) + if(ticker.current_state < GAME_STATE_PLAYING) return if(user.ckey in team_members) if(user.ckey in recently_dead_ckeys) @@ -580,7 +580,7 @@ CTF.dead_barricades += src /obj/effect/ctf/dead_barricade/proc/respawn() - if(!qdeleted(src)) + if(!QDELETED(src)) new /obj/structure/barricade/security/ctf(get_turf(src)) qdel(src) diff --git a/code/modules/awaymissions/gateway.dm b/code/modules/awaymissions/gateway.dm index 0801b1c3d5..d3aeec4b8f 100644 --- a/code/modules/awaymissions/gateway.dm +++ b/code/modules/awaymissions/gateway.dm @@ -144,7 +144,7 @@ var/obj/machinery/gateway/centerstation/the_gateway = null return if(!detect()) return - if(!awaygate || qdeleted(awaygate)) + if(!awaygate || QDELETED(awaygate)) return if(awaygate.calibrated) @@ -214,7 +214,7 @@ var/obj/machinery/gateway/centerstation/the_gateway = null return if(!active) return - if(!stationgate || qdeleted(stationgate)) + if(!stationgate || QDELETED(stationgate)) return if(istype(AM, /mob/living/carbon)) var/mob/living/carbon/C = AM diff --git a/code/modules/cargo/exports.dm b/code/modules/cargo/exports.dm index b920c6dd4c..d12141e230 100644 --- a/code/modules/cargo/exports.dm +++ b/code/modules/cargo/exports.dm @@ -91,6 +91,8 @@ Credit dupes that require a lot of manual work shouldn't be removed, unless they return FALSE if(!get_cost(O, contr, emag)) return FALSE + if(O.flags & HOLOGRAM) + return FALSE return TRUE // Called only once, when the object is actually sold by the datum. diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 7b6b468c38..cf6a29d701 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -69,18 +69,6 @@ src << "Your previous action was ignored because you've done too many in a second" return - //Logs all hrefs - if(config && config.log_hrefs && href_logfile) - href_logfile << "[time2text(world.timeofday,"hh:mm")] [src] (usr:[usr]) || [hsrc ? "[hsrc] " : ""][href]
" - - // Admin PM - if(href_list["priv_msg"]) - if (href_list["ahelp_reply"]) - cmd_ahelp_reply(href_list["priv_msg"]) - return - cmd_admin_pm(href_list["priv_msg"],null) - return - if(href_list["mentor_msg"]) if(config.mentors_mobname_only) var/mob/M = locate(href_list["mentor_msg"]) @@ -93,6 +81,14 @@ if(config && config.log_hrefs && href_logfile) href_logfile << "[time2text(world.timeofday,"hh:mm")] [src] (usr:[usr]) || [hsrc ? "[hsrc] " : ""][href]
" + // Admin PM + if(href_list["priv_msg"]) + if (href_list["ahelp_reply"]) + cmd_ahelp_reply(href_list["priv_msg"]) + return + cmd_admin_pm(href_list["priv_msg"],null) + return + switch(href_list["_src_"]) if("holder") hsrc = holder @@ -257,7 +253,7 @@ var/next_external_rsc = 0 if(holder) add_admin_verbs() - admin_memo_output("Show") + src << get_message_output("memo") adminGreet() if((global.comms_key == "default_pwd" || length(global.comms_key) <= 6) && global.comms_allowed) //It's the default value or less than 6 characters long, but it somehow didn't disable comms. src << "The server's API key is either too short or is the default value! Consider changing it immediately!" @@ -294,7 +290,7 @@ var/next_external_rsc = 0 findJoinDate() sync_client_with_db(tdata) - + get_message_output("watchlist entry", ckey) check_ip_intel() send_resources() @@ -318,7 +314,7 @@ var/next_external_rsc = 0 if(config && config.autoconvert_notes) convert_notes_sql(ckey) - + src << get_message_output("message", ckey) if(!winexists(src, "asset_cache_browser")) // The client is using a custom skin, tell them. src << "Unable to access asset cache browser, if you are using a custom skin file, please allow DS to download the updated version, if you are not, then make a bug report. This is not a critical issue but can cause issues with resource downloading, as it is impossible to know when extra resources arrived to you." @@ -399,12 +395,6 @@ var/next_external_rsc = 0 if (check_randomizer(connectiontopic)) return - var/watchreason = check_watchlist(sql_ckey) - if(watchreason) - current_watchlist[sql_ckey] = watchreason - message_admins("Notice: [key_name_admin(src)] is on the watchlist and has just connected - Reason: [watchreason]") -// send2irc_adminless_only("Watchlist", "[key_name(src)] is on the watchlist and has just connected - Reason: [watchreason]") - var/sql_ip = sanitizeSQL(src.address) var/sql_computerid = sanitizeSQL(src.computer_id) var/sql_admin_rank = sanitizeSQL(admin_rank) @@ -499,24 +489,24 @@ var/next_external_rsc = 0 var/const/adminckey = "CID-Error" var/sql_ckey = sanitizeSQL(ckey) //check to see if we noted them in the last day. - var/DBQuery/query_get_notes = dbcon.NewQuery("SELECT id FROM [format_table_name("notes")] WHERE ckey = '[sql_ckey]' AND adminckey = '[adminckey]' AND timestamp + INTERVAL 1 DAY < NOW()") + var/DBQuery/query_get_notes = dbcon.NewQuery("SELECT id FROM [format_table_name("messages")] WHERE type = 'note' AND targetckey = '[sql_ckey]' AND adminckey = '[adminckey]' AND timestamp + INTERVAL 1 DAY < NOW()") if(!query_get_notes.Execute()) var/err = query_get_notes.ErrorMsg() - log_game("SQL ERROR obtaining id from notes table. Error : \[[err]\]\n") + log_game("SQL ERROR obtaining id from messages table. Error : \[[err]\]\n") return if (query_get_notes.NextRow()) return //regardless of above, make sure their last note is not from us, as no point in repeating the same note over and over. - query_get_notes = dbcon.NewQuery("SELECT adminckey FROM [format_table_name("notes")] WHERE ckey = '[sql_ckey]' ORDER BY timestamp DESC LIMIT 1") + query_get_notes = dbcon.NewQuery("SELECT adminckey FROM [format_table_name("messages")] WHERE targetckey = '[sql_ckey]' ORDER BY timestamp DESC LIMIT 1") if(!query_get_notes.Execute()) var/err = query_get_notes.ErrorMsg() - log_game("SQL ERROR obtaining id from notes table. Error : \[[err]\]\n") + log_game("SQL ERROR obtaining adminckey from notes table. Error : \[[err]\]\n") return if (query_get_notes.NextRow()) if (query_get_notes.item[1] == adminckey) return - add_note(ckey, "Detected as using a cid randomizer.", null, adminckey, 0, null, 0) + create_message("note", sql_ckey, adminckey, "Detected as using a cid randomizer.", null, null, 0, 0) /client/proc/check_ip_intel() @@ -584,3 +574,9 @@ var/next_external_rsc = 0 return FALSE if ("key") return FALSE + +/client/proc/change_view(new_size) + if (isnull(new_size)) + CRASH("change_view called without argument.") + + view = new_size diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm index 173cbda3f7..3036ee0326 100644 --- a/code/modules/client/verbs/ooc.dm +++ b/code/modules/client/verbs/ooc.dm @@ -156,7 +156,7 @@ var/global/normal_ooc_colour = OOC_COLOR usr << "Sorry, that function is not enabled on this server." return - show_note(usr.ckey, null, 1) + browse_messages(null, usr.ckey, null, 1) /client/proc/ignore_key(client) var/client/C = client diff --git a/code/modules/client/verbs/sethotkeys.dm b/code/modules/client/verbs/sethotkeys.dm index f7bf137c31..ee14787011 100644 --- a/code/modules/client/verbs/sethotkeys.dm +++ b/code/modules/client/verbs/sethotkeys.dm @@ -1,6 +1,7 @@ /client/verb/sethotkeys(from_pref = 0 as num) set name = "Set Hotkeys" - set hidden = 1 + set hidden = TRUE + set waitfor = FALSE set desc = "Used to set mob-specific hotkeys or load hoykey mode from preferences" var/hotkey_default = "default" @@ -21,4 +22,4 @@ if(current_setting in default_macros) winset(src, null, "mainwindow.macro=[hotkey_default] input.focus=true input.background-color=#d3b5b5") else - winset(src, null, "mainwindow.macro=[hotkey_macro] mapwindow.map.focus=true input.background-color=#e0e0e0") \ No newline at end of file + winset(src, null, "mainwindow.macro=[hotkey_macro] mapwindow.map.focus=true input.background-color=#e0e0e0") diff --git a/code/modules/client/verbs/suicide.dm b/code/modules/client/verbs/suicide.dm index 9802a2421e..781f06b4ac 100644 --- a/code/modules/client/verbs/suicide.dm +++ b/code/modules/client/verbs/suicide.dm @@ -4,7 +4,10 @@ set hidden = 1 if(!canSuicide()) return + var/oldkey = ckey var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") + if(ckey != oldkey) + return if(!canSuicide()) return if(confirm == "Yes") diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm index 46ac98b224..ff281a7cb3 100644 --- a/code/modules/clothing/spacesuits/chronosuit.dm +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -97,7 +97,7 @@ for(var/obj/item/I in user.held_items) if(I in hands_nodrop) I.flags &= ~NODROP - if(phase_underlay && !qdeleted(phase_underlay)) + if(phase_underlay && !QDELETED(phase_underlay)) user.underlays -= phase_underlay qdel(phase_underlay) phase_underlay = null diff --git a/code/modules/clothing/spacesuits/flightsuit.dm b/code/modules/clothing/spacesuits/flightsuit.dm index fe099ed9a9..05b2091a59 100644 --- a/code/modules/clothing/spacesuits/flightsuit.dm +++ b/code/modules/clothing/spacesuits/flightsuit.dm @@ -1272,12 +1272,12 @@ /obj/item/clothing/head/helmet/space/hardsuit/flightsuit/proc/toggle_zoom(mob/living/user, force_off = FALSE) if(zoom || force_off) - user.client.view = world.view + user.client.change_view(world.view) user << "Disabling smart zooming image enhancement..." zoom = FALSE return FALSE else - user.client.view = zoom_range + user.client.change_view(zoom_range) user << "Enabling smart zooming image enhancement!" zoom = TRUE return TRUE diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index 7066250cd5..359afc302f 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -39,10 +39,43 @@ name = "plasma envirosuit helmet" desc = "A special containment helmet that allows plasma-based lifeforms to exist safely in an oxygenated environment. It is space-worthy, and may be worn in tandem with other EVA gear." icon_state = "plasmaman-helm" - item_color = "plasma" //needed for the helmet lighting item_state = "plasmaman-helm" strip_delay = 80 armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0, fire = 100, acid = 75) resistance_flags = FIRE_PROOF + var/brightness_on = 4 //luminosity when the light is on + var/on = 0 + actions_types = list(/datum/action/item_action/toggle_helmet_light) +/obj/item/clothing/head/helmet/space/plasmaman/attack_self(mob/user) + on = !on + icon_state = "[initial(icon_state)][on ? "-light":""]" + item_state = icon_state + user.update_inv_head() //So the mob overlay updates + + if(on) + turn_on(user) + else + turn_off(user) + for(var/X in actions) + var/datum/action/A=X + A.UpdateButtonIcon() + +/obj/item/clothing/head/helmet/space/plasmaman/pickup(mob/user) + ..() + if(on) + user.AddLuminosity(brightness_on) + SetLuminosity(0) + +/obj/item/clothing/head/helmet/space/plasmaman/dropped(mob/user) + ..() + if(on) + user.AddLuminosity(-brightness_on) + SetLuminosity(brightness_on) + +/obj/item/clothing/head/helmet/space/plasmaman/proc/turn_on/(mob/user) + user.AddLuminosity(brightness_on) + +/obj/item/clothing/head/helmet/space/plasmaman/proc/turn_off/(mob/user) + user.AddLuminosity(-brightness_on) diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 94569f769e..671105f5c5 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -327,6 +327,16 @@ category = CAT_MISC +/datum/crafting_recipe/flashlight_eyes + name = "Flashlight Eyes" + result = /obj/item/organ/eyes/robotic/flashlight + time = 10 + reqs = list( + /obj/item/device/flashlight = 2, + /obj/item/weapon/restraints/handcuffs/cable = 1 + ) + category = CAT_MISC + /datum/crafting_recipe/chemical_payload name = "Chemical Payload (C4)" result = /obj/item/weapon/bombcore/chemical diff --git a/code/modules/events/alien_infestation.dm b/code/modules/events/alien_infestation.dm index fc2795110c..67651c6bee 100644 --- a/code/modules/events/alien_infestation.dm +++ b/code/modules/events/alien_infestation.dm @@ -37,7 +37,7 @@ /datum/round_event/ghost_role/alien_infestation/spawn_role() var/list/vents = list() for(var/obj/machinery/atmospherics/components/unary/vent_pump/temp_vent in machines) - if(qdeleted(temp_vent)) + if(QDELETED(temp_vent)) continue if(temp_vent.loc.z == ZLEVEL_STATION && !temp_vent.welded) var/datum/pipeline/temp_vent_parent = temp_vent.PARENT1 diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index f7f03366c8..d70c38722a 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -40,7 +40,7 @@ /datum/round_event/brand_intelligence/tick() - if(!originMachine || qdeleted(originMachine) || originMachine.shut_up || originMachine.wires.is_all_cut()) //if the original vending machine is missing or has it's voice switch flipped + if(!originMachine || QDELETED(originMachine) || originMachine.shut_up || originMachine.wires.is_all_cut()) //if the original vending machine is missing or has it's voice switch flipped for(var/obj/machinery/vending/saved in infectedMachines) saved.shoot_inventory = 0 if(originMachine) @@ -51,7 +51,7 @@ vendingMachines = removeNullsFromList(vendingMachines) if(!vendingMachines.len) //if every machine is infected for(var/obj/machinery/vending/upriser in infectedMachines) - if(prob(70) && !qdeleted(upriser)) + if(prob(70) && !QDELETED(upriser)) var/mob/living/simple_animal/hostile/mimic/copy/M = new(upriser.loc, upriser, null, 1) // it will delete upriser on creation and override any machine checks M.faction = list("profit") M.speak = rampant_speeches.Copy() diff --git a/code/modules/events/holiday/vday.dm b/code/modules/events/holiday/vday.dm index ec15894f57..bcb215ff93 100644 --- a/code/modules/events/holiday/vday.dm +++ b/code/modules/events/holiday/vday.dm @@ -19,6 +19,45 @@ var/obj/item/weapon/storage/backpack/b = locate() in H.contents new /obj/item/weapon/reagent_containers/food/snacks/candyheart(b) + + var/list/valentines = list() + for(var/mob/living/M in player_list) + if(!M.stat && M.client && M.mind) + valentines |= M + + + while(valentines.len) + var/mob/living/L = pick_n_take(valentines) + if(valentines.len) + var/mob/living/date = pick_n_take(valentines) + + + forge_valentines_objective(L, date) + + forge_valentines_objective(date, L) + + + + else + L << "You didn't get a date! They're all having fun without you! you'll show them though..." + var/datum/objective/martyr/normiesgetout = new + normiesgetout.owner = L.mind + ticker.mode.traitors |= L.mind + L.mind.objectives += normiesgetout + +/proc/forge_valentines_objective(mob/living/lover,mob/living/date) + + ticker.mode.traitors |= lover.mind + lover.mind.special_role = "valentine" + + var/datum/objective/protect/protect_objective = new /datum/objective/protect + protect_objective.owner = lover.mind + protect_objective.target = date.mind + protect_objective.explanation_text = "Protect [date.real_name], your date." + lover.mind.objectives += protect_objective + lover << "You're on a date with [date]! Protect them at all costs. This takes priority over all other loyalties." + + /datum/round_event/valentines/announce() priority_announce("It's Valentine's Day! Give a valentine to that special someone!") @@ -126,4 +165,4 @@ "A heart-shaped candy that reads: FACEHUGGER", "A heart-shaped candy that reads: DOMINATOR", "A heart-shaped candy that reads: GET TESLA'D") - icon_state = pick("candyheart", "candyheart2", "candyheart3", "candyheart4") \ No newline at end of file + icon_state = pick("candyheart", "candyheart2", "candyheart3", "candyheart4") diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm index 443135cfcb..2ef42bb25f 100644 --- a/code/modules/events/immovable_rod.dm +++ b/code/modules/events/immovable_rod.dm @@ -35,6 +35,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 anchored = 1 var/z_original = 0 var/destination + var/notify = TRUE /obj/effect/immovablerod/New(atom/start, atom/end) ..() @@ -42,9 +43,10 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 SSaugury.register_doom(src, 2000) z_original = z destination = end - notify_ghosts("\A [src] is inbound!", - enter_link="(Click to orbit)", - source=src, action=NOTIFY_ORBIT) + if(notify) + notify_ghosts("\A [src] is inbound!", + enter_link="(Click to orbit)", + source=src, action=NOTIFY_ORBIT) poi_list += src if(end && end.z==z_original) walk_towards(src, destination, 1) diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 5b94c6a566..4e68fc6fed 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -497,7 +497,7 @@ var/list/obj/structure/spacevine/queue_end = list() for(var/obj/structure/spacevine/SV in growth_queue) - if(qdeleted(SV)) + if(QDELETED(SV)) continue i++ queue_end += SV diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm index cc2c98e998..ef7a59c666 100644 --- a/code/modules/food_and_drinks/food/snacks_bread.dm +++ b/code/modules/food_and_drinks/food/snacks_bread.dm @@ -147,3 +147,10 @@ list_reagents = list("nutriment" = 6, "vitamin" = 1) bitesize = 3 w_class = WEIGHT_CLASS_NORMAL + +/obj/item/weapon/reagent_containers/food/snacks/deepfryholder + name = "Deep Fried Foods Holder Obj" + desc = "If you can see this description the code for the deep fryer fucked up." + icon = 'icons/obj/food/food.dmi' + icon_state = "" + bitesize = 2 diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm new file mode 100644 index 0000000000..56b1c12fee --- /dev/null +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -0,0 +1,118 @@ +/* +April 3rd, 2014 marks the day this machine changed the face of the kitchen on NTStation13 +God bless America. +insert ascii eagle on american flag background here +*/ + +// April 3rd, 2014 marks the day this machine changed the face of the kitchen on NTStation13 +// God bless America. +/obj/machinery/deepfryer + name = "deep fryer" + desc = "Deep fried everything." + icon = 'icons/obj/kitchen.dmi' + icon_state = "fryer_off" + density = 1 + anchored = 1 + use_power = 1 + idle_power_usage = 5 + container_type = OPENCONTAINER + var/obj/item/frying = null //What's being fried RIGHT NOW? + var/cook_time = 0 + +/obj/item/weapon/circuitboard/machine/deep_fryer + name = "circuit board (Deep Fryer)" + build_path = /obj/machinery/deepfryer + origin_tech = "programming=1" + req_components = list(/obj/item/weapon/stock_parts/micro_laser = 1) + +/obj/machinery/deepfryer/New() + ..() + create_reagents(50) + reagents.add_reagent("nutriment", 25) + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/machine/deep_fryer(null) + component_parts += new /obj/item/weapon/stock_parts/micro_laser(null) + RefreshParts() + +/obj/machinery/deepfryer/examine() + ..() + if(frying) + usr << "You can make out [frying] in the oil." + +/obj/machinery/deepfryer/attackby(obj/item/I, mob/user) + if(!reagents.total_volume) + user << "There's nothing to fry with in [src]!" + return + if(istype(I, /obj/item/weapon/reagent_containers/food/snacks/deepfryholder)) + user << "Your cooking skills are not up to the legendary Doublefry technique." + return + else + if(user.drop_item() && !frying) + user << "You put [I] into [src]." + frying = I + frying.forceMove(src) + icon_state = "fryer_on" + +/obj/machinery/deepfryer/process() + ..() + if(!reagents.total_volume) + return + if(frying) + cook_time++ + if(cook_time == 30) + playsound(src.loc, "sound/machines/ding.ogg", 50, 1) + visible_message("[src] dings!") + else if (cook_time == 60) + visible_message("[src] emits an acrid smell!") + + +/obj/machinery/deepfryer/attack_hand(mob/user) + if(frying) + if(frying.loc == src) + user << "You eject [frying] from [src]." + var/obj/item/weapon/reagent_containers/food/snacks/deepfryholder/S = new(get_turf(src)) + if(istype(frying, /obj/item/weapon/reagent_containers/)) + var/obj/item/weapon/reagent_containers/food = frying + food.reagents.trans_to(S, food.reagents.total_volume) + S.icon = frying.icon + S.overlays = frying.overlays + S.icon_state = frying.icon_state + S.desc = frying.desc + reagents.trans_to(S, 2*(cook_time/15)) + switch(cook_time) + if(0 to 15) + S.color = rgb(166,103,54) + S.name = "lightly-fried [frying.name]" + if(16 to 49) + S.color = rgb(103,63,24) + S.name = "fried [frying.name]" + if(50 to 59) + S.color = rgb(63, 23, 4) + S.name = "deep-fried [frying.name]" + if(60 to INFINITY) + S.color = rgb(33,19,9) + S.name = "the physical manifestation of the very concept of fried foods" + S.desc = "A heavily fried...something. Who can tell anymore?" + S.filling_color = S.color + if(istype(frying, /obj/item/weapon/reagent_containers/food/snacks/)) + qdel(frying) + else + frying.forceMove(S) + + icon_state = "fryer_off" + user.put_in_hands(S) + frying = null + cook_time = 0 + return + else if(user.pulling && user.a_intent == "grab" && iscarbon(user.pulling) && reagents.total_volume) + if(user.grab_state < GRAB_AGGRESSIVE) + user << "You need a better grip to do that!" + return + var/mob/living/carbon/C = user.pulling + user.visible_message("[user] dunks [C]'s face in [src]!") + reagents.reaction(C, TOUCH) + C.adjustFireLoss(reagents.total_volume) + reagents.remove_any((reagents.total_volume/2)) + C.Weaken(3) + user.changeNext_move(CLICK_CD_MELEE) + ..() \ No newline at end of file diff --git a/code/modules/holodeck/area_copy.dm b/code/modules/holodeck/area_copy.dm index da214333a2..a3c3e6c2b3 100644 --- a/code/modules/holodeck/area_copy.dm +++ b/code/modules/holodeck/area_copy.dm @@ -33,6 +33,9 @@ if(istype(O,/obj/machinery)) var/obj/machinery/M = O M.power_change() + + if(holoitem) + O.flags |= HOLOGRAM return O diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm index 3f513f0a7d..de43b317af 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -194,16 +194,16 @@ /obj/machinery/computer/holodeck/Destroy() emergency_shutdown() - ..() + return ..() /obj/machinery/computer/holodeck/emp_act(severity) emergency_shutdown() - ..() + return ..() /obj/machinery/computer/holodeck/ex_act(severity, target) emergency_shutdown() - ..() + return ..() /obj/machinery/computer/holodeck/blob_act(obj/structure/blob/B) emergency_shutdown() - ..() \ No newline at end of file + return ..() \ No newline at end of file diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm index 36406bcc6a..71e6debf25 100644 --- a/code/modules/hydroponics/grown/misc.dm +++ b/code/modules/hydroponics/grown/misc.dm @@ -130,7 +130,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/cherry_bomb/deconstruct(disassembled = TRUE) if(!disassembled) prime() - if(!qdeleted(src)) + if(!QDELETED(src)) qdel(src) /obj/item/weapon/reagent_containers/food/snacks/grown/cherry_bomb/ex_act(severity) diff --git a/code/modules/hydroponics/grown/tomato.dm b/code/modules/hydroponics/grown/tomato.dm index cdab5f9e15..e94c0d9a41 100644 --- a/code/modules/hydroponics/grown/tomato.dm +++ b/code/modules/hydroponics/grown/tomato.dm @@ -130,7 +130,7 @@ awakening = 1 spawn(30) - if(!qdeleted(src)) + if(!QDELETED(src)) var/mob/living/simple_animal/hostile/killertomato/K = new /mob/living/simple_animal/hostile/killertomato(get_turf(src.loc)) K.maxHealth += round(seed.endurance / 3) K.melee_damage_lower += round(seed.potency / 10) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 6d305bce7a..1c18e485ad 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -685,7 +685,7 @@ return if(alert(user, "This will make [src] self-sustaining but consume [O] forever. Are you sure?", "[name]", "I'm Sure", "Abort") == "Abort" || !user) return - if(!O || qdeleted(O)) + if(!O || QDELETED(O)) return if(!Adjacent(user)) return diff --git a/code/modules/jobs/job_types/cargo_service.dm b/code/modules/jobs/job_types/cargo_service.dm index 7129e39b12..9fe97f8253 100644 --- a/code/modules/jobs/job_types/cargo_service.dm +++ b/code/modules/jobs/job_types/cargo_service.dm @@ -277,4 +277,4 @@ Janitor belt = /obj/item/device/pda/janitor ears = /obj/item/device/radio/headset/headset_srv uniform = /obj/item/clothing/under/rank/janitor - backpack_contents = list(/obj/item/device/modular_computer/tablet/preset/advanced=1) + backpack_contents = list(/obj/item/device/modular_computer/tablet/preset/advanced=1, /obj/item/soapstone/empty=1) diff --git a/code/modules/library/soapstone.dm b/code/modules/library/soapstone.dm index 031fa08fa0..a512f12125 100644 --- a/code/modules/library/soapstone.dm +++ b/code/modules/library/soapstone.dm @@ -1,6 +1,6 @@ /obj/item/soapstone name = "chisel" - desc = "Leave informative messages for the crew, including the crew of future shifts!\n(Not suitable for engraving on shuttles, off station or on cats. Side effects may include beatings, bannings and orbital bombardment.)" + desc = "Leave informative messages for the crew, including the crew of future shifts!\nEven if out of uses, it can still be used to remove messages.\n(Not suitable for engraving on shuttles, off station or on cats. Side effects may include beatings, bannings and orbital bombardment.)" icon = 'icons/obj/items.dmi' icon_state = "soapstone" throw_speed = 3 @@ -18,6 +18,7 @@ /obj/item/soapstone/New() . = ..() random_name() + check_name() // could start empty /obj/item/soapstone/proc/random_name() name = pick("soapstone", "chisel", "chalk", "magic marker") @@ -58,7 +59,7 @@ if(already_message) our_message = already_message.creator_key == user.ckey - if(!remaining_uses && !our_message) + if(!remaining_uses && !already_message) // The dull chisel is dull. user << "[src] is [w_dull]." return @@ -73,15 +74,13 @@ // Removing our own messages refunds a charge - if((our_message || can_use()) && do_after(user, tool_speed, target=target) && (our_message || can_use())) + if(do_after(user, tool_speed, target=target)) user.visible_message("[user] has erased [already_message].", "You erased [already_message].") already_message.persists = FALSE qdel(already_message) playsound(loc, 'sound/items/gavel.ogg', 50, 1, -1) if(our_message) refund_use() - else - remove_use() return var/message = stripped_input(user, "What would you like to [w_engrave]?", "[name] Message") @@ -115,18 +114,19 @@ return remaining_uses-- - if(!remaining_uses) - non_dull_name = name - name = "[w_dull] [name]" + check_name() /obj/item/soapstone/proc/refund_use() if(remaining_uses == -1) return - var/was_dull = !remaining_uses remaining_uses++ + check_name() - if(was_dull) +/obj/item/soapstone/proc/check_name() + if(remaining_uses) name = non_dull_name + else + name = "[w_dull] [name]" /* Persistent engraved messages, etched onto the station turfs to serve as instructions and/or memes for the next generation of spessmen. @@ -138,6 +138,9 @@ /obj/item/soapstone/infinite remaining_uses = -1 +/obj/item/soapstone/empty + remaining_uses = 0 + /proc/good_chisel_message_location(turf/T) if(!T) . = FALSE @@ -176,6 +179,9 @@ persists = FALSE qdel(src) +/obj/structure/chisel_message/singularity_pull() + return + /obj/structure/chisel_message/proc/register(mob/user, newmessage) hidden_message = newmessage creator_name = user.real_name diff --git a/code/modules/mining/fulton.dm b/code/modules/mining/fulton.dm index 3446a42c99..3073c3bd08 100644 --- a/code/modules/mining/fulton.dm +++ b/code/modules/mining/fulton.dm @@ -144,7 +144,7 @@ var/list/total_extraction_beacons = list() icon_state = "subspace_amplifier" /obj/item/fulton_core/attack_self(mob/user) - if(do_after(user,15,target = user) && !qdeleted(src)) + if(do_after(user,15,target = user) && !QDELETED(src)) new /obj/structure/extraction_point(get_turf(user)) qdel(src) diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index dfed01db9e..fece3a809b 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -355,7 +355,7 @@ icon = 'icons/obj/lavaland/dragonboat.dmi' resistance_flags = LAVA_PROOF | FIRE_PROOF -/obj/vehicle/lavaboat/buckle_mob() +/obj/vehicle/lavaboat/buckle_mob(mob/living/M, force = 0, check_loc = 1) . = ..() riding_datum = new/datum/riding/boat @@ -403,7 +403,7 @@ desc = "This boat moves where you will it, without the need for an oar." icon_state = "dragon_boat" -/obj/vehicle/lavaboat/dragon/buckle_mob() +/obj/vehicle/lavaboat/dragon/buckle_mob(mob/living/M, force = 0, check_loc = 1) ..() riding_datum = new/datum/riding/boat/dragon @@ -831,7 +831,7 @@ blast_range -= round(health_percent * 10) //one additional range for each missing 10% of health /obj/item/weapon/hierophant_club/update_icon() - icon_state = "hierophant_club[timer <= world.time ? "_ready":""][(beacon && !qdeleted(beacon)) ? "":"_beacon"]" + icon_state = "hierophant_club[timer <= world.time ? "_ready":""][(beacon && !QDELETED(beacon)) ? "":"_beacon"]" item_state = icon_state if(ismob(loc)) var/mob/M = loc @@ -853,7 +853,7 @@ if(!user.is_holding(src)) //you need to hold the staff to teleport user << "You need to hold the club in your hands to [beacon ? "teleport with it":"detach the beacon"]!" return - if(!beacon || qdeleted(beacon)) + if(!beacon || QDELETED(beacon)) if(isturf(user.loc)) user.visible_message("[user] starts fiddling with [src]'s pommel...", \ "You start detaching the hierophant beacon...") @@ -906,7 +906,7 @@ new /obj/effect/overlay/temp/hierophant/telegraph(source, user) playsound(T,'sound/magic/Wand_Teleport.ogg', 200, 1) playsound(source,'sound/machines/AirlockOpen.ogg', 200, 1) - if(!do_after(user, 3, target = user) || !user || !beacon || qdeleted(beacon)) //no walking away shitlord + if(!do_after(user, 3, target = user) || !user || !beacon || QDELETED(beacon)) //no walking away shitlord teleporting = FALSE if(user) user.update_action_buttons_icon() diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index ae34f20087..df703a94dc 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -167,7 +167,7 @@ var/items = list("Survival Capsule and Explorer's Webbing", "Resonator and Advanced Scanner", "Mining Drone", "Extraction and Rescue Kit", "Crusher Kit", "Mining Conscription Kit") var/selection = input(redeemer, "Pick your equipment", "Mining Voucher Redemption") as null|anything in items - if(!selection || !Adjacent(redeemer) || qdeleted(voucher) || voucher.loc != redeemer) + if(!selection || !Adjacent(redeemer) || QDELETED(voucher) || voucher.loc != redeemer) return switch(selection) if("Survival Capsule and Explorer's Webbing") diff --git a/code/modules/mob/living/brain/posibrain.dm b/code/modules/mob/living/brain/posibrain.dm index 0615e7effb..a812617eb7 100644 --- a/code/modules/mob/living/brain/posibrain.dm +++ b/code/modules/mob/living/brain/posibrain.dm @@ -73,7 +73,7 @@ var/global/posibrain_notif_cooldown = 0 return var/posi_ask = alert("Become a [name]? (Warning, You can no longer be cloned, and all past lives will be forgotten!)","Are you positive?","Yes","No") - if(posi_ask == "No" || qdeleted(src)) + if(posi_ask == "No" || QDELETED(src)) return transfer_personality(user) diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 5c26e69662..516e00effb 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -42,13 +42,13 @@ create_internal_organs() - AddAbility(new/obj/effect/proc_holder/alien/nightvisiontoggle(null)) ..() /mob/living/carbon/alien/create_internal_organs() internal_organs += new /obj/item/organ/brain/alien internal_organs += new /obj/item/organ/alien/hivenode internal_organs += new /obj/item/organ/tongue/alien + internal_organs += new /obj/item/organ/eyes/night_vision/alien ..() /mob/living/carbon/alien/assess_threat() // beepsky won't hunt aliums @@ -152,40 +152,5 @@ Des: Removes all infected images from the alien. #undef HEAT_DAMAGE_LEVEL_2 #undef HEAT_DAMAGE_LEVEL_3 - -/mob/living/carbon/alien/update_sight() - if(!client) - return - if(stat == DEAD) - sight |= SEE_TURFS - sight |= SEE_MOBS - sight |= SEE_OBJS - see_in_dark = 8 - see_invisible = SEE_INVISIBLE_OBSERVER - return - - sight = SEE_MOBS - if(nightvision) - see_in_dark = 8 - see_invisible = SEE_INVISIBLE_MINIMUM - else - see_in_dark = 4 - see_invisible = SEE_INVISIBLE_LIVING - - if(client.eye != src) - var/atom/A = client.eye - if(A.update_remote_sight(src)) //returns 1 if we override all other sight updates. - return - - for(var/obj/item/organ/cyberimp/eyes/E in internal_organs) - sight |= E.sight_flags - if(E.dark_view) - see_in_dark = max(see_in_dark, E.dark_view) - if(E.see_invisible) - see_invisible = min(see_invisible, E.see_invisible) - - if(see_override) - see_invisible = see_override - /mob/living/carbon/alien/can_hold_items() return has_fine_manipulation diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index 103ace63e7..cb4020c98d 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -286,26 +286,6 @@ Doesn't work on other aliens/AI.*/ user.visible_message("[user] hurls out the contents of their stomach!") return -/obj/effect/proc_holder/alien/nightvisiontoggle - name = "Toggle Night Vision" - desc = "Toggles Night Vision" - plasma_cost = 0 - has_action = 0 // Has dedicated GUI button already - -/obj/effect/proc_holder/alien/nightvisiontoggle/fire(mob/living/carbon/alien/user) - if(!user.nightvision) - user.see_in_dark = 8 - user.see_invisible = SEE_INVISIBLE_MINIMUM - user.nightvision = 1 - user.hud_used.nightvisionicon.icon_state = "nightvision1" - else if(user.nightvision == 1) - user.see_in_dark = 4 - user.see_invisible = 45 - user.nightvision = 0 - user.hud_used.nightvisionicon.icon_state = "nightvision0" - - return 1 - /obj/effect/proc_holder/alien/sneak name = "Sneak" desc = "Blend into the shadows to stalk your prey." diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm index a148473f03..984e4111c0 100644 --- a/code/modules/mob/living/carbon/alien/organs.dm +++ b/code/modules/mob/living/carbon/alien/organs.dm @@ -141,7 +141,7 @@ recent_queen_death = 1 owner.throw_alert("alien_noqueen", /obj/screen/alert/alien_vulnerable) spawn(2400) //four minutes - if(qdeleted(src)) //In case the node is deleted + if(QDELETED(src)) //In case the node is deleted return recent_queen_death = 0 if(!owner) //In case the xeno is butchered or subjected to surgery after death. diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 82d1c20baf..fba1682828 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -529,21 +529,34 @@ see_invisible = SEE_INVISIBLE_OBSERVER return - see_invisible = initial(see_invisible) - see_in_dark = initial(see_in_dark) sight = initial(sight) + var/obj/item/organ/eyes/E = getorganslot("eye_sight") + if(!E) + update_tint() + else + see_invisible = E.see_invisible + see_in_dark = E.see_in_dark + sight |= E.sight_flags if(client.eye != src) var/atom/A = client.eye if(A.update_remote_sight(src)) //returns 1 if we override all other sight updates. return - for(var/obj/item/organ/cyberimp/eyes/E in internal_organs) - sight |= E.sight_flags - if(E.dark_view) - see_in_dark = max(see_in_dark,E.dark_view) - if(E.see_invisible) - see_invisible = min(see_invisible, E.see_invisible) + if(glasses) + var/obj/item/clothing/glasses/G = glasses + sight |= G.vision_flags + see_in_dark = max(G.darkness_view, see_in_dark) + if(G.invis_override) + see_invisible = G.invis_override + else + see_invisible = min(G.invis_view, see_invisible) + if(dna) + for(var/X in dna.mutations) + var/datum/mutation/M = X + if(M.name == XRAY) + sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS) + see_in_dark = max(see_in_dark, 8) if(see_override) see_invisible = see_override @@ -569,6 +582,13 @@ if(wear_mask) . += wear_mask.tint + var/obj/item/organ/eyes/E = getorganslot("eye_sight") + if(E) + . += E.tint + + else + . += INFINITY + //this handles hud updates /mob/living/carbon/update_damage_hud() @@ -709,7 +729,7 @@ return 0 /mob/living/carbon/harvest(mob/living/user) - if(qdeleted(src)) + if(QDELETED(src)) return var/organs_amt = 0 for(var/X in internal_organs) diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index a53930c3f7..313aef8fd3 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -1,8 +1,12 @@ /mob/living/carbon/get_eye_protection() var/number = ..() - for(var/obj/item/organ/cyberimp/eyes/EFP in internal_organs) - number += EFP.flash_protect + + var/obj/item/organ/eyes/E = getorganslot("eye_sight") + if(!E) + number = INFINITY //Can't get flashed without eyes + else + number += E.flash_protect return number /mob/living/carbon/get_ear_protection() diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 3d620a37dc..b455fd754f 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -47,6 +47,8 @@ internal_organs += new /obj/item/organ/lungs() if(!(NOBLOOD in dna.species.species_traits)) internal_organs += new /obj/item/organ/heart + + internal_organs += new dna.species.mutanteyes() internal_organs += new /obj/item/organ/brain ..() @@ -764,17 +766,6 @@ if(R) R.fields["name"] = newname -/mob/living/carbon/human/update_sight() - if(!client) - return - if(stat == DEAD) - sight = (SEE_TURFS|SEE_MOBS|SEE_OBJS) - see_in_dark = 8 - see_invisible = SEE_INVISIBLE_OBSERVER - return - - dna.species.update_sight(src) - /mob/living/carbon/human/get_total_tint() . = ..() if(glasses) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 6e18691730..73cdf949f0 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -15,8 +15,6 @@ var/name = null // this is the fluff name. these will be left generic (such as 'Lizardperson' for the lizard race) so servers can change them to whatever var/roundstart = 0 // can this mob be chosen at roundstart? (assuming the config option is checked?) var/default_color = "#FFF" // if alien colors are disabled, this is the color that will be used by that race - - var/eyes = "eyes" // which eyes the race uses. at the moment, the only types of eyes are "eyes" (regular eyes) and "jelleyes" (three eyes) var/sexes = 1 // whether or not the race has sexual characteristics. at the moment this is only 0 for skeletons and shadows var/hair_color = null // this allows races to have specific hair colors... if null, it uses the H's hair/facial hair colors. if "mutcolor", it uses the H's mutant_color var/hair_alpha = 255 // the alpha used by the hair. 255 is completely solid, 0 is transparent. @@ -47,9 +45,6 @@ var/damage_overlay_type = "human" //what kind of damage overlays (if any) appear on our species when wounded? var/fixed_mut_color = "" //to use MUTCOLOR with a fixed color that's independent of dna.feature["mcolor"] - var/invis_sight = SEE_INVISIBLE_LIVING - var/darksight = 2 - // species flags. these can be found in flags.dm var/list/species_traits = list() @@ -65,6 +60,9 @@ //Flight and floating var/override_float = 0 + //Eyes + var/obj/item/organ/eyes/mutanteyes = /obj/item/organ/eyes + //Citadel snowflake var/fixed_mut_color2 = "" var/fixed_mut_color3 = "" @@ -250,6 +248,13 @@ var/obj/item/bodypart/head/HD = H.get_bodypart("head") + // eyes + var/has_eyes = TRUE + + if(!H.getorgan(/obj/item/organ/eyes) && HD) + standing += image("icon"='icons/mob/human_face.dmi', "icon_state" = "eyes_missing", "layer" = -BODY_LAYER) + has_eyes = FALSE + if(!(H.disabilities & HUSK)) // lipstick if(H.lip_style && (LIPS in species_traits) && HD) @@ -258,8 +263,8 @@ standing += lips // eyes - if((EYECOLOR in species_traits) && HD) - var/image/img_eyes = image("icon" = 'icons/mob/human_face.dmi', "icon_state" = "[eyes]", "layer" = -BODY_LAYER) + if((EYECOLOR in species_traits) && HD && has_eyes) + var/image/img_eyes = image("icon" = 'icons/mob/human_face.dmi', "icon_state" = "eyes", "layer" = -BODY_LAYER) img_eyes.color = "#" + H.eye_color standing += img_eyes @@ -867,7 +872,6 @@ hunger_rate = 3 * HUNGER_FACTOR H.nutrition = max(0, H.nutrition - hunger_rate) - if (H.nutrition > NUTRITION_LEVEL_FULL) if(H.overeatduration < 600) //capped so people don't take forever to unfat H.overeatduration++ @@ -901,42 +905,6 @@ else H.throw_alert("nutrition", /obj/screen/alert/starving) - -/datum/species/proc/update_sight(mob/living/carbon/human/H) - H.sight = initial(H.sight) - H.see_in_dark = darksight - H.see_invisible = invis_sight - - if(H.client.eye != H) - var/atom/A = H.client.eye - if(A.update_remote_sight(H)) //returns 1 if we override all other sight updates. - return - - for(var/obj/item/organ/cyberimp/eyes/E in H.internal_organs) - H.sight |= E.sight_flags - if(E.dark_view) - H.see_in_dark = E.dark_view - if(E.see_invisible) - H.see_invisible = min(H.see_invisible, E.see_invisible) - - if(H.glasses) - var/obj/item/clothing/glasses/G = H.glasses - H.sight |= G.vision_flags - H.see_in_dark = max(G.darkness_view, H.see_in_dark) - if(G.invis_override) - H.see_invisible = G.invis_override - else - H.see_invisible = min(G.invis_view, H.see_invisible) - - for(var/X in H.dna.mutations) - var/datum/mutation/M = X - if(M.name == XRAY) - H.sight |= (SEE_TURFS|SEE_MOBS|SEE_OBJS) - H.see_in_dark = max(H.see_in_dark, 8) - - if(H.see_override) //Override all - H.see_invisible = H.see_override - /datum/species/proc/update_health_hud(mob/living/carbon/human/H) return 0 diff --git a/code/modules/mob/living/carbon/human/species_types/abductors.dm b/code/modules/mob/living/carbon/human/species_types/abductors.dm index 33d0c61f82..109a14c7f7 100644 --- a/code/modules/mob/living/carbon/human/species_types/abductors.dm +++ b/code/modules/mob/living/carbon/human/species_types/abductors.dm @@ -1,7 +1,6 @@ /datum/species/abductor name = "Abductor" id = "abductor" - darksight = 3 say_mod = "gibbers" sexes = 0 species_traits = list(NOBLOOD,NOBREATH,VIRUSIMMUNE,NOGUNS) diff --git a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index bd41175673..1682953960 100644 --- a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -116,6 +116,7 @@ datum/species/canid //EXOTIC// //These races will likely include lots of downsides and upsides. Keep them relatively balanced.// +/* /datum/species/xeno name = "Xenomorph" id = "xeno" @@ -170,7 +171,7 @@ datum/species/canid toxpwr = 0 acidpwr = 12 -/* + /datum/species/yautja name = "Yautja" id = "pred" diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index 3dc76e0459..6154cd9e0f 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -4,7 +4,6 @@ id = "jelly" default_color = "00FF90" say_mod = "chirps" - eyes = "jelleyes" species_traits = list(MUTCOLORS,EYECOLOR,NOBLOOD,VIRUSIMMUNE,TOXINLOVER) meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime exotic_blood = "slimejelly" @@ -99,10 +98,8 @@ name = "Slimeperson" id = "slime" default_color = "00FFFF" - darksight = 3 species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD,VIRUSIMMUNE, TOXINLOVER) say_mod = "says" - eyes = "eyes" hair_color = "mutcolor" hair_alpha = 150 ignored_by = list(/mob/living/simple_animal/slime) @@ -131,8 +128,8 @@ /* slime_split = new slime_split.Grant(C) swap_body = new - swap_body.Grant(C) */ - + swap_body.Grant(C) +*/ if(!bodies || !bodies.len) bodies = list(C) else @@ -248,10 +245,10 @@ var/list/data = list() data["bodies"] = list() for(var/b in SS.bodies) - if(!b || qdeleted(b) || !isslimeperson(b)) + var/mob/living/carbon/human/body = b + if(!body || QDELETED(body) || !isslimeperson(body)) SS.bodies -= b continue - var/mob/living/carbon/human/body = b var/list/L = list() // HTML colors need a # prefix @@ -311,7 +308,7 @@ var/mob/living/carbon/human/selected = locate(params["ref"]) if(!(selected in SS.bodies)) return - if(!selected || qdeleted(selected) || !isslimeperson(selected)) + if(!selected || QDELETED(selected) || !isslimeperson(selected)) SS.bodies -= selected return if(M.current == selected) diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm index ee8396205b..400e0f4509 100644 --- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm @@ -2,42 +2,14 @@ // Humans cursed to stay in the darkness, lest their life forces drain. They regain health in shadow and die in light. name = "???" id = "shadow" - darksight = 8 - invis_sight = SEE_INVISIBLE_MINIMUM sexes = 0 blacklisted = 1 ignored_by = list(/mob/living/simple_animal/hostile/faithless) meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/shadow species_traits = list(NOBREATH,NOBLOOD,RADIMMUNE,VIRUSIMMUNE) dangerous_existence = 1 - var/datum/action/innate/shadow/darkvision/vision_toggle + mutanteyes = /obj/item/organ/eyes/night_vision -/datum/action/innate/shadow/darkvision //Darkvision toggle so shadowpeople can actually see where darkness is - name = "Toggle Darkvision" - check_flags = AB_CHECK_CONSCIOUS - background_icon_state = "bg_default" - button_icon_state = "blind" - -/datum/action/innate/shadow/darkvision/Activate() - var/mob/living/carbon/human/H = owner - if(H.see_in_dark < 8) - H.see_in_dark = 8 - H.see_invisible = SEE_INVISIBLE_MINIMUM - H << "You adjust your vision to pierce the darkness." - else - H.see_in_dark = 2 - H.see_invisible = SEE_INVISIBLE_LIVING - H << "You adjust your vision to recognize the shadows." - -/datum/species/shadow/on_species_gain(mob/living/carbon/C, datum/species/old_species) - . = ..() - vision_toggle = new - vision_toggle.Grant(C) - -/datum/species/shadow/on_species_loss(mob/living/carbon/C) - . = ..() - if(vision_toggle) - vision_toggle.Remove(C) /datum/species/shadow/spec_life(mob/living/carbon/human/H) var/light_amount = 0 diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 16786e413c..a666573d16 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -137,7 +137,7 @@ There are several things that need to be remembered: else if(!(dna && dna.species.nojumpsuit)) // Automatically drop anything in store / id / belt if you're not wearing a uniform. //CHECK IF NECESARRY - for(var/obj/item/thing in list(r_store, l_store, wear_id, belt)) + for(var/obj/item/thing in list(r_store, l_store, wear_id, belt)) // dropItemToGround(thing) apply_overlay(UNIFORM_LAYER) @@ -576,4 +576,4 @@ generate/load female uniform sprites matching all previously decided variables observers -= observe if(!observers.len) observers = null - break \ No newline at end of file + break diff --git a/code/modules/mob/living/carbon/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm index efb9754f9d..a58eabd44d 100644 --- a/code/modules/mob/living/carbon/monkey/combat.dm +++ b/code/modules/mob/living/carbon/monkey/combat.dm @@ -345,7 +345,7 @@ for(var/obj/item/I in M.held_items) if(I == pickupTarget) M.visible_message("[src] snatches [pickupTarget] from [M].", "[src] snatched [pickupTarget]!") - if(M.temporarilyRemoveItemFromInventory(pickupTarget) && !qdeleted(pickupTarget)) + if(M.temporarilyRemoveItemFromInventory(pickupTarget) && !QDELETED(pickupTarget)) equip_item(pickupTarget) else M.visible_message("[src] tried to snatch [pickupTarget] from [M], but failed!", "[src] tried to grab [pickupTarget]!") diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index bac852e0c8..a4628812ea 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -45,6 +45,7 @@ internal_organs += new /obj/item/organ/heart internal_organs += new /obj/item/organ/brain internal_organs += new /obj/item/organ/tongue + internal_organs += new /obj/item/organ/eyes ..() /mob/living/carbon/monkey/movement_delay() diff --git a/code/modules/mob/living/carbon/update_icons.dm b/code/modules/mob/living/carbon/update_icons.dm index 7ac329a212..964af69a7d 100644 --- a/code/modules/mob/living/carbon/update_icons.dm +++ b/code/modules/mob/living/carbon/update_icons.dm @@ -301,4 +301,4 @@ var/global/list/limb_icon_cache = list() remove_overlay(BODYPARTS_LAYER) overlays_standing[BODYPARTS_LAYER] = limb_icon_cache[icon_render_key] apply_overlay(BODYPARTS_LAYER) - update_damage_overlays() \ No newline at end of file + update_damage_overlays() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index cb05fbbf4a..e3901cf1c6 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -766,7 +766,7 @@ return 0 /mob/living/proc/harvest(mob/living/user) - if(qdeleted(src)) + if(QDELETED(src)) return if(butcher_results) for(var/path in butcher_results) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index b378eba0b0..6127b30469 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -33,6 +33,7 @@ var/list/ai_list = list() var/list/connected_robots = list() var/aiRestorePowerRoutine = 0 var/requires_power = POWER_REQ_ALL + var/can_be_carded = TRUE //var/list/laws = list() var/alarms = list("Motion"=list(), "Fire"=list(), "Atmosphere"=list(), "Power"=list(), "Camera"=list(), "Burglar"=list()) var/viewalerts = 0 @@ -790,6 +791,10 @@ var/list/ai_list = list() if(!mind) user << "No intelligence patterns detected." //No more magical carding of empty cores, AI RETURN TO BODY!!!11 return + if(!can_be_carded) + user << "Transfer failed." + return + ShutOffDoomsdayDevice() new /obj/structure/AIcore/deactivated(loc)//Spawns a deactivated terminal at AI location. ai_restore_power()//So the AI initially has power. control_disabled = 1//Can't control things remotely if you're stuck in a card! @@ -881,7 +886,7 @@ var/list/ai_list = list() malfhacking = 0 clear_alert("hackingapc") - if(!istype(apc) || qdeleted(apc) || apc.stat & BROKEN) + if(!istype(apc) || QDELETED(apc) || apc.stat & BROKEN) src << "Hack aborted. The designated APC no \ longer exists on the power network." playsound(get_turf(src), 'sound/machines/buzz-two.ogg', 50, 1) @@ -902,6 +907,9 @@ var/list/ai_list = list() exclusive control." apc.update_icon() +/mob/living/silicon/ai/resist() + return + /mob/living/silicon/ai/spawned/New(loc, datum/ai_laws/L, mob/target_ai) if(!target_ai) target_ai = src //cheat! just give... ourselves as the spawned AI, because that's technically correct diff --git a/code/modules/mob/living/silicon/ai/death.dm b/code/modules/mob/living/silicon/ai/death.dm index 4130c5f138..f769bf5cc2 100644 --- a/code/modules/mob/living/silicon/ai/death.dm +++ b/code/modules/mob/living/silicon/ai/death.dm @@ -19,17 +19,8 @@ shuttle_caller_list -= src SSshuttle.autoEvac() - if(nuking) - set_security_level("red") - nuking = FALSE - for(var/obj/item/weapon/pinpointer/P in pinpointer_list) - P.switch_mode_to(TRACK_NUKE_DISK) //Party's over, back to work, everyone - P.nuke_warning = FALSE + ShutOffDoomsdayDevice() - if(doomsday_device) - doomsday_device.timing = FALSE - SSshuttle.clearHostileEnvironment(doomsday_device) - qdel(doomsday_device) if(explosive) spawn(10) explosion(src.loc, 3, 6, 12, 15) @@ -40,3 +31,15 @@ if(istype(loc, /obj/item/device/aicard)) loc.icon_state = "aicard-404" +/mob/living/silicon/ai/proc/ShutOffDoomsdayDevice() + if(nuking) + set_security_level("red") + nuking = FALSE + for(var/obj/item/weapon/pinpointer/P in pinpointer_list) + P.switch_mode_to(TRACK_NUKE_DISK) //Party's over, back to work, everyone + P.nuke_warning = FALSE + + if(doomsday_device) + doomsday_device.timing = FALSE + SSshuttle.clearHostileEnvironment(doomsday_device) + qdel(doomsday_device) \ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/freelook/eye.dm b/code/modules/mob/living/silicon/ai/freelook/eye.dm index ae7234e944..7271732d33 100644 --- a/code/modules/mob/living/silicon/ai/freelook/eye.dm +++ b/code/modules/mob/living/silicon/ai/freelook/eye.dm @@ -87,7 +87,7 @@ cameraFollow = null unset_machine() - if(!eyeobj || !eyeobj.loc || qdeleted(eyeobj)) + if(!eyeobj || !eyeobj.loc || QDELETED(eyeobj)) src << "ERROR: Eyeobj not found. Creating new eye..." eyeobj = new(loc) eyeobj.ai = src diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index 20abad8bf4..e3631a56d8 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -19,7 +19,7 @@ // messenging the client malfhacked(malfhack) - if(!eyeobj || qdeleted(eyeobj) || !eyeobj.loc) + if(!eyeobj || QDELETED(eyeobj) || !eyeobj.loc) view_core() if(machine) diff --git a/code/modules/mob/living/silicon/robot/death.dm b/code/modules/mob/living/silicon/robot/death.dm index 075dbb58a5..d03aeada87 100644 --- a/code/modules/mob/living/silicon/robot/death.dm +++ b/code/modules/mob/living/silicon/robot/death.dm @@ -30,4 +30,4 @@ update_icons() - sql_report_cyborg_death(src) \ No newline at end of file + sql_report_death(src) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm index da33418b6f..697e504f9b 100644 --- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm +++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm @@ -136,7 +136,7 @@ bot_patrol() if(target) - if(qdeleted(target) || !isturf(target.loc)) + if(QDELETED(target) || !isturf(target.loc)) target = null mode = BOT_IDLE return diff --git a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm index d75b7230c9..5e5a15d095 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm @@ -35,7 +35,7 @@ user << "Can't become a drone before the game has started." return var/be_drone = alert("Become a drone? (Warning, You can no longer be cloned!)",,"Yes","No") - if(be_drone == "No" || qdeleted(src) || !isobserver(user)) + if(be_drone == "No" || QDELETED(src) || !isobserver(user)) return var/mob/living/simple_animal/drone/D = new drone_type(get_turf(loc)) D.admin_spawned = admin_spawned diff --git a/code/modules/mob/living/simple_animal/guardian/types/lightning.dm b/code/modules/mob/living/simple_animal/guardian/types/lightning.dm index 441f27fc9e..db245fea50 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/lightning.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/lightning.dm @@ -55,11 +55,12 @@ removechains() /mob/living/simple_animal/hostile/guardian/beam/proc/cleardeletedchains() - if(summonerchain && qdeleted(summonerchain)) + if(summonerchain && QDELETED(summonerchain)) summonerchain = null if(enemychains.len) for(var/chain in enemychains) - if(!chain || qdeleted(chain)) + var/datum/cd = chain + if(!chain || QDELETED(cd)) enemychains -= chain /mob/living/simple_animal/hostile/guardian/beam/proc/shockallchains() diff --git a/code/modules/mob/living/simple_animal/hostile/flan.dm b/code/modules/mob/living/simple_animal/hostile/flan.dm index f793e2a8dc..1d0bfd9aac 100644 --- a/code/modules/mob/living/simple_animal/hostile/flan.dm +++ b/code/modules/mob/living/simple_animal/hostile/flan.dm @@ -48,7 +48,7 @@ casting = 1 icon_state = "[initial(icon_state)][casting]" if(do_after_mob(src, A, spellcasttime, uninterruptible = 1, progress = 0)) //Break LOS to dodge. - if(qdeleted(src)) + if(QDELETED(src)) return if((A in view(src))) A.do_attack_animation(A, spellanimation) diff --git a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm index 04a92f23b8..4b9b18a122 100644 --- a/code/modules/mob/living/simple_animal/hostile/giant_spider.dm +++ b/code/modules/mob/living/simple_animal/hostile/giant_spider.dm @@ -50,7 +50,6 @@ see_invisible = SEE_INVISIBLE_MINIMUM see_in_dark = 4 var/playable_spider = FALSE - devourable = 1 /mob/living/simple_animal/hostile/poison/giant_spider/Topic(href, href_list) if(href_list["activate"]) @@ -66,7 +65,7 @@ if(key || !playable_spider)//Someone is in it or the fun police are shutting it down return 0 var/spider_ask = alert("Become a spider?", "Are you australian?", "Yes", "No") - if(spider_ask == "No" || !src || qdeleted(src)) + if(spider_ask == "No" || !src || QDELETED(src)) return 1 if(key) user << "Someone else already took this spider." diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index df86bd8e93..e2beff5d83 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -579,7 +579,7 @@ Difficulty: Very Hard ..() if(ready_to_deploy) var/be_helper = alert("Become a Lightgeist? (Warning, You can no longer be cloned!)",,"Yes","No") - if(be_helper == "Yes" && !qdeleted(src) && isobserver(user)) + if(be_helper == "Yes" && !QDELETED(src) && isobserver(user)) var/mob/living/simple_animal/hostile/lightgeist/W = new /mob/living/simple_animal/hostile/lightgeist(get_turf(loc)) W.key = user.key @@ -706,7 +706,7 @@ Difficulty: Very Hard /obj/structure/closet/stasis/process() if(holder_animal) - if(holder_animal.stat == DEAD && !qdeleted(holder_animal)) + if(holder_animal.stat == DEAD && !QDELETED(holder_animal)) dump_contents() holder_animal.gib() return @@ -734,7 +734,7 @@ Difficulty: Very Hard L.disabilities &= ~MUTE L.status_flags &= ~GODMODE L.notransform = 0 - if(holder_animal && !qdeleted(holder_animal)) + if(holder_animal && !QDELETED(holder_animal)) holder_animal.mind.transfer_to(L) L.mind.RemoveSpell(/obj/effect/proc_holder/spell/targeted/exit_possession) if(kill || !isanimal(loc)) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm index 78c3bf3e2d..e6de280cd0 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm @@ -213,7 +213,7 @@ Difficulty: Medium fire_rain() icon_state = "dragon" - if(swoop_target && !qdeleted(swoop_target) && swoop_target.z == src.z) + if(swoop_target && !QDELETED(swoop_target) && swoop_target.z == src.z) tturf = get_turf(swoop_target) else tturf = get_turf(src) @@ -228,7 +228,7 @@ Difficulty: Medium L.gib() else L.adjustBruteLoss(75) - if(L && !qdeleted(L)) // Some mobs are deleted on death + if(L && !QDELETED(L)) // Some mobs are deleted on death var/throw_dir = get_dir(src, L) if(L.loc == loc) throw_dir = pick(alldirs) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index ad104e5677..8c070a29a8 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -80,7 +80,7 @@ Difficulty: Hard /mob/living/simple_animal/hostile/megafauna/hierophant/Life() . = ..() - if(. && spawned_beacon && !qdeleted(spawned_beacon) && !client) + if(. && spawned_beacon && !QDELETED(spawned_beacon) && !client) if(target || loc == spawned_beacon.loc) timeout_time = initial(timeout_time) else @@ -500,7 +500,7 @@ Difficulty: Hard if(!currently_seeking) currently_seeking = TRUE targetturf = get_turf(target) - while(target && src && !qdeleted(src) && currently_seeking && x && y && targetturf) //can this target actually be sook out + while(target && src && !QDELETED(src) && currently_seeking && x && y && targetturf) //can this target actually be sook out if(!moving) //we're out of tiles to move, find more and where the target is! more_previouser_moving_dir = previous_moving_dir previous_moving_dir = moving_dir diff --git a/code/modules/mob/living/simple_animal/hostile/statue.dm b/code/modules/mob/living/simple_animal/hostile/statue.dm index 3e8d9d633e..f38ee85705 100644 --- a/code/modules/mob/living/simple_animal/hostile/statue.dm +++ b/code/modules/mob/living/simple_animal/hostile/statue.dm @@ -207,16 +207,7 @@ /obj/effect/proc_holder/spell/targeted/night_vision/cast(list/targets,mob/user = usr) for(var/mob/living/target in targets) - if(ishuman(target)) - var/mob/living/carbon/human/H = target - if(H.dna.species.invis_sight == SEE_INVISIBLE_LIVING) - H.dna.species.invis_sight = SEE_INVISIBLE_NOLIGHTING - name = "Toggle Nightvision \[ON]" - else - H.dna.species.invis_sight = SEE_INVISIBLE_LIVING - name = "Toggle Nightvision \[OFF]" - - else + if(!iscarbon(target)) //Carbons should be toggling their vision via organ, this spell is used as a power for simple mobs if(target.see_invisible == SEE_INVISIBLE_LIVING) target.see_invisible = SEE_INVISIBLE_NOLIGHTING name = "Toggle Nightvision \[ON]" @@ -224,7 +215,6 @@ target.see_invisible = SEE_INVISIBLE_LIVING name = "Toggle Nightvision \[OFF]" - /mob/living/simple_animal/hostile/statue/sentience_act() faction -= "neutral" diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 040b73ce53..dd4f89b1c1 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -71,4 +71,5 @@ update_client_colour() if(client) client.click_intercept = null - client.view = world.view // Resets the client.view in case it was changed. \ No newline at end of file + + client.view = world.view // Resets the client.view in case it was changed. \ No newline at end of file diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index 8b73f2be27..45dbdc9f69 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -1381,414 +1381,3 @@ /datum/sprite_accessory/legs/digitigrade_lizard name = "Digitigrade Legs" - -/* tbi eventually idk -/datum/sprite_accessory/legs/digitigrade_mam - name = "Anthro Digitigrade Legs" - icon = 'icons/mob/mam_bodyparts.dmi' -*/ -//Human Ears/Tails - -/datum/sprite_accessory/ears/fox - name = "Fox" - icon_state = "fox" - hasinner = 0 - icon = 'icons/mob/mam_bodyparts.dmi' - -/datum/sprite_accessory/ears/wolf - name = "Wolf" - icon_state = "wolf" - hasinner = 1 - icon = 'icons/mob/mam_bodyparts.dmi' - -/datum/sprite_accessory/tails/human/fox - name = "Fox" - icon_state = "fox" - icon = 'icons/mob/mam_bodyparts.dmi' - extra = 1 - -/datum/sprite_accessory/tails_animated/human/fox - name = "Fox" - icon_state = "fox" - icon = 'icons/mob/mam_bodyparts.dmi' - extra = 1 - -/datum/sprite_accessory/tails/human/wolf - name = "Wolf" - icon_state = "wolf" - icon = 'icons/mob/mam_bodyparts.dmi' - -/datum/sprite_accessory/tails_animated/human/wolf - name = "Wolf" - icon_state = "wolf" - icon = 'icons/mob/mam_bodyparts.dmi' - -/datum/sprite_accessory/tails/human/catbig - name = "Cat, Big" - icon_state = "catbig" - icon = 'icons/mob/mam_bodyparts.dmi' - -/datum/sprite_accessory/tails_animated/human/catbig - name = "Cat, Big" - icon_state = "catbig" - icon = 'icons/mob/mam_bodyparts.dmi' - -/datum/sprite_accessory/ears/fennec - name = "Fennec" - icon_state = "fennec" - icon = 'icons/mob/mam_bodyparts.dmi' - -/datum/sprite_accessory/tails/human/fennec - name = "Fennec" - icon_state = "fennec" - icon = 'icons/mob/mam_bodyparts.dmi' - -/datum/sprite_accessory/tails_animated/human/fennec - name = "Fennec" - icon_state = "fennec" - icon = 'icons/mob/mam_bodyparts.dmi' - -/datum/sprite_accessory/ears/lab - name = "Dog, Floppy" - icon_state = "lab" - hasinner = 0 - icon = 'icons/mob/mam_bodyparts.dmi' - -/datum/sprite_accessory/tails/human/husky - name = "Husky" - icon_state = "husky" - icon = 'icons/mob/mam_bodyparts.dmi' - extra = 1 - -/datum/sprite_accessory/tails_animated/human/husky - name = "Husky" - icon_state = "husky" - icon = 'icons/mob/mam_bodyparts.dmi' - extra = 1 - -/datum/sprite_accessory/ears/murid - name = "Murid" - icon_state = "murid" - icon = 'icons/mob/mam_bodyparts.dmi' - -/datum/sprite_accessory/tails/human/murid - name = "Murid" - icon_state = "murid" - color_src = 0 - icon = 'icons/mob/mam_bodyparts.dmi' - - -/datum/sprite_accessory/tails_animated/human/murid - name = "Murid" - icon_state = "murid" - color_src = 0 - icon = 'icons/mob/mam_bodyparts.dmi' - -/datum/sprite_accessory/tails/human/shark - name = "Shark" - icon_state = "shark" - color_src = 0 - icon = 'icons/mob/mam_bodyparts.dmi' - -/datum/sprite_accessory/tails/human/shark/datashark - name = "datashark" - icon_state = "datashark" - color_src = 0 - icon = 'icons/mob/mam_bodyparts.dmi' - -/datum/sprite_accessory/tails/human/ailurus - name = "ailurus" - icon_state = "ailurus" - color_src = 0 - icon = 'icons/mob/mam_bodyparts.dmi' - -/datum/sprite_accessory/ears/squirrel - name = "Squirrel" - icon_state = "squirrel" - hasinner= 1 - icon = 'icons/mob/mam_bodyparts.dmi' - -/datum/sprite_accessory/tails/human/squirrel - name = "Squirrel" - icon_state = "squirrel" - icon = 'icons/mob/mam_bodyparts.dmi' - -/datum/sprite_accessory/tails_animated/human/squirrel - name = "Squirrel" - icon_state = "squirrel" - icon = 'icons/mob/mam_bodyparts.dmi' - -//Mammal Bodyparts -/datum/sprite_accessory/mam_ears - icon = 'icons/mob/mam_bodyparts.dmi' -/datum/sprite_accessory/mam_ears/none - name = "None" - -/datum/sprite_accessory/mam_tails - icon = 'icons/mob/mam_bodyparts.dmi' -/datum/sprite_accessory/mam_tails/none - name = "None" - -/datum/sprite_accessory/mam_tails_animated - icon = 'icons/mob/mam_bodyparts.dmi' -/datum/sprite_accessory/mam_tails_animated/none - name = "None" - -//Snouts -/datum/sprite_accessory/snouts/lcanid - name = "Fox, Long" - icon_state = "lcanid" - icon = 'icons/mob/mam_bodyparts.dmi' - extra = 1 - -/datum/sprite_accessory/snouts/scanid - name = "Fox, Short" - icon_state = "scanid" - icon = 'icons/mob/mam_bodyparts.dmi' - extra = 1 - -/datum/sprite_accessory/snouts/wolf - name = "Wolf" - icon_state = "wolf" - icon = 'icons/mob/mam_bodyparts.dmi' - extra = 1 - -/datum/sprite_accessory/snouts/husky - name = "Husky" - icon_state = "husky" - icon = 'icons/mob/mam_bodyparts.dmi' - extra = 1 - -//Cat, Big -/datum/sprite_accessory/mam_ears/catbig - name = "Cat, Big" - icon_state = "cat" - hasinner = 1 - icon = 'icons/mob/mutant_bodyparts.dmi' - -/datum/sprite_accessory/mam_tails/catbig - name = "Cat, Big" - icon_state = "catbig" - -/datum/sprite_accessory/mam_tails_animated/catbig - name = "Cat, Big" - icon_state = "catbig" - -//Wolf -/datum/sprite_accessory/mam_ears/wolf - name = "Wolf" - icon_state = "wolf" - hasinner = 1 - -/datum/sprite_accessory/mam_tails/wolf - name = "Wolf" - icon_state = "wolf" - -/datum/sprite_accessory/mam_tails_animated/wolf - name = "Wolf" - icon_state = "wolf" - -//Fox -/datum/sprite_accessory/mam_ears/fox - name = "Fox" - icon_state = "fox" - hasinner = 0 - -/datum/sprite_accessory/mam_tails/fox - name = "Fox" - icon_state = "fox" - extra = 1 - extra_color_src = MUTCOLORS2 - -/datum/sprite_accessory/mam_tails_animated/fox - name = "Fox" - icon_state = "fox" - extra = 1 - extra_color_src = MUTCOLORS2 - -//Fennec -/datum/sprite_accessory/mam_ears/fennec - name = "Fennec" - icon_state = "fennec" - hasinner = 1 - -/datum/sprite_accessory/mam_tails/fennec - name = "Fennec" - icon_state = "fennec" - -/datum/sprite_accessory/mam_tails_animated/fennec - name = "Fennec" - icon_state = "fennec" - -//Lab -/datum/sprite_accessory/mam_ears/lab - name = "Dog, Long" - icon_state = "lab" - -/datum/sprite_accessory/mam_tails/lab - name = "Lab" - icon_state = "lab" - -/datum/sprite_accessory/mam_tails_animated/lab - name = "Lab" - icon_state = "lab" - -//Husky -/datum/sprite_accessory/mam_ears/husky - name = "Husky" - icon_state = "wolf" - hasinner = 1 - icon = 'icons/mob/mam_bodyparts.dmi' - extra = 1 - -/datum/sprite_accessory/mam_tails/husky - name = "Husky" - icon_state = "husky" - extra = 1 - -/datum/sprite_accessory/mam_tails_animated/husky - name = "Husky" - icon_state = "husky" - extra = 1 - -//Murid -/datum/sprite_accessory/mam_ears/murid - name = "Murid" - icon_state = "murid" - -/datum/sprite_accessory/mam_tails/murid - name = "Murid" - icon_state = "murid" - color_src = 0 - -/datum/sprite_accessory/mam_tails_animated/murid - name = "Murid" - icon_state = "murid" - color_src = 0 - -//Shark -/datum/sprite_accessory/mam_tails/shark - name = "Shark" - icon_state = "shark" - color_src = 0 - icon = 'icons/mob/mam_bodyparts.dmi' - - -/datum/sprite_accessory/mam_tails/shark/datashark - name = "DataShark" - icon_state = "datashark" - color_src = 0 - icon = 'icons/mob/mam_bodyparts.dmi' - - -//Squirrel -/datum/sprite_accessory/mam_ears/squirrel - name = "Squirrel" - icon_state = "squirrel" - hasinner= 1 - -/datum/sprite_accessory/mam_tails/squirrel - name = "Squirrel" - icon_state = "squirrel" - -/datum/sprite_accessory/mam_tails_animated/squirrel - name = "Squirrel" - icon_state = "squirrel" - -/datum/sprite_accessory/mam_tails/ailurus - name = "Ailurus" - icon_state = "ailurus" - -//Capra -/datum/sprite_accessory/mam_tails/capra - name = "Capra" - icon_state = "capra" - -//Hawk -/datum/sprite_accessory/mam_tails/hawk - name = "Hawk" - icon_state = "hawk" - - -//Mammal Specific Body Markings -/datum/sprite_accessory/mam_body_markings - color_src = MUTCOLORS2 - icon = 'icons/mob/mam_bodyparts.dmi' - -/datum/sprite_accessory/mam_body_markings/none - name = "None" - icon_state = "none" - -/datum/sprite_accessory/mam_body_markings/belly - name = "Belly" - icon_state = "belly" - gender_specific = 1 -/* -/datum/sprite_accessory/mam_body_markings/bellyhandsfeet - name = "Belly, Hands, & Feet" - icon_state = "bellyhandsfeet" - gender_specific = 1 - extra = 1 - extra_color_src = MUTCOLORS3 -*/ - -//Xeno Dorsal Tubes -/datum/sprite_accessory/xeno_dorsal - icon = 'icons/mob/exotic_bodyparts.dmi' - color_src = 0 - -/datum/sprite_accessory/xeno_dorsal/none - name = "None" - -/datum/sprite_accessory/xeno_dorsal/normal - name = "Dorsal Tubes" - icon_state = "dortubes" - -//Xeno Tail -/datum/sprite_accessory/xeno_tail - icon = 'icons/mob/exotic_bodyparts.dmi' - color_src = 0 - -/datum/sprite_accessory/xeno_tail/none - name = "None" - -/datum/sprite_accessory/xeno_tail/normal - name = "Xenomorph Tail" - icon_state = "xeno" - -//Xeno Caste Heads -//unused as of October 3, 2016 -/datum/sprite_accessory/xeno_head - icon = 'icons/mob/exotic_bodyparts.dmi' - color_src = 0 - -/datum/sprite_accessory/xeno_head/none - name = "None" - - -/datum/sprite_accessory/xeno_head/hunter - name = "Hunter" - icon_state = "hunter" - -/datum/sprite_accessory/xeno_head/drone - name = "Drone" - icon_state = "drone" - -/datum/sprite_accessory/xeno_head/sentinel - name = "Sentinel" - icon_state = "sentinel" -/* -//Slimecoon Parts -/datum/sprite_accessory/slimecoon_ears - icon = 'icons/mob/exotic_bodyparts.dmi' - name = "Slimecoon Ears" - icon_state = "slimecoon" -/datum/sprite_accessory/slimecoon_tail - icon = 'icons/mob/exotic_bodyparts.dmi' - name = "Slimecoon Tail" - icon_state = "slimecoon" -/datum/sprite_accessory/slimecoon_snout - icon = 'icons/mob/exotic_bodyparts.dmi' - name = "Hunter" - icon_state = "slimecoon" */ - diff --git a/code/modules/modular_computers/NTNet/NTNet_relay.dm b/code/modules/modular_computers/NTNet/NTNet_relay.dm index 71a24826ec..9269459308 100644 --- a/code/modules/modular_computers/NTNet/NTNet_relay.dm +++ b/code/modules/modular_computers/NTNet/NTNet_relay.dm @@ -118,7 +118,7 @@ D.target = null D.error = "Connection to quantum relay severed" - ..() + return ..() /obj/item/weapon/circuitboard/machine/ntnet_relay name = "NTNet Relay (Machine Board)" @@ -126,4 +126,4 @@ origin_tech = "programming=3;bluespace=3;magnets=2" req_components = list( /obj/item/stack/cable_coil = 2, - /obj/item/weapon/stock_parts/subspace/filter = 1) \ No newline at end of file + /obj/item/weapon/stock_parts/subspace/filter = 1) diff --git a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm index 898ef176d4..5f469d0f02 100644 --- a/code/modules/modular_computers/computers/machinery/modular_computer.dm +++ b/code/modules/modular_computers/computers/machinery/modular_computer.dm @@ -141,6 +141,7 @@ var/list/global_modular_computers = list() /obj/machinery/modular_computer/ex_act(severity) if(cpu) cpu.ex_act(severity) + ..() // EMPs are similar to explosions, but don't cause physical damage to the casing. Instead they screw up the components /obj/machinery/modular_computer/emp_act(severity) @@ -152,4 +153,4 @@ var/list/global_modular_computers = list() // "Brute" damage mostly damages the casing. /obj/machinery/modular_computer/bullet_act(obj/item/projectile/Proj) if(cpu) - cpu.bullet_act(Proj) \ No newline at end of file + cpu.bullet_act(Proj) diff --git a/code/modules/modular_computers/file_system/programs/file_browser.dm b/code/modules/modular_computers/file_system/programs/file_browser.dm index 50a07014e5..c2cbd4cf5e 100644 --- a/code/modules/modular_computers/file_system/programs/file_browser.dm +++ b/code/modules/modular_computers/file_system/programs/file_browser.dm @@ -15,7 +15,7 @@ return 1 var/obj/item/weapon/computer_hardware/hard_drive/HDD = computer.all_components[MC_HDD] - var/obj/item/weapon/computer_hardware/hard_drive/RHDD = computer.all_components[MC_HDD] + var/obj/item/weapon/computer_hardware/hard_drive/RHDD = computer.all_components[MC_SDD] var/obj/item/weapon/computer_hardware/printer/printer = computer.all_components[MC_PRINT] switch(action) @@ -24,7 +24,7 @@ open_file = params["name"] if("PRG_newtextfile") . = 1 - var/newname = sanitize(input(usr, "Enter file name or leave blank to cancel:", "File rename")) + var/newname = stripped_input(usr, "Enter file name or leave blank to cancel:", "File rename", max_length=50) if(!newname) return 1 if(!HDD) @@ -69,7 +69,7 @@ var/datum/computer_file/file = HDD.find_file_by_name(params["name"]) if(!file || !istype(file)) return 1 - var/newname = sanitize(input(usr, "Enter new file name:", "File rename", file.filename)) + var/newname = stripped_input(usr, "Enter new file name:", "File rename", file.filename, max_length=50) if(file && newname) file.filename = newname if("PRG_edit") @@ -84,7 +84,7 @@ if(F.do_not_edit && (alert("WARNING: This file is not compatible with editor. Editing it may result in permanently corrupted formatting or damaged data consistency. Edit anyway?", "Incompatible File", "No", "Yes") == "No")) return 1 // 16384 is the limit for file length in characters. Currently, papers have value of 2048 so this is 8 times as long, since we can't edit parts of the file independently. - var/newtext = sanitize(html_decode(input(usr, "Editing file [open_file]. You may use most tags used in paper formatting:", "Text Editor", F.stored_data) as message|null), 16384) + var/newtext = stripped_multiline_input(usr, "Editing file [open_file]. You may use most tags used in paper formatting:", "Text Editor", html_decode(F.stored_data), 16384, TRUE) if(!newtext) return if(F) @@ -110,7 +110,7 @@ if(!printer) error = "Missing Hardware: Your computer does not have required hardware to complete this operation." return 1 - if(!printer.print_text(parse_tags(F.stored_data))) + if(!printer.print_text("" + prepare_printjob(F.stored_data) + "", open_file)) error = "Hardware error: Printer was unable to print the file. It may be out of paper." return 1 if("PRG_copytousb") @@ -132,11 +132,11 @@ var/datum/computer_file/C = F.clone(0) HDD.store_file(C) - /datum/computer_file/program/filemanager/proc/parse_tags(t) t = replacetext(t, "\[center\]", "
") t = replacetext(t, "\[/center\]", "
") t = replacetext(t, "\[br\]", "
") + t = replacetext(t, "\n", "
") t = replacetext(t, "\[b\]", "") t = replacetext(t, "\[/b\]", "") t = replacetext(t, "\[i\]", "") @@ -167,9 +167,14 @@ t = replacetext(t, "\[tr\]", "") t = replacetext(t, "\[td\]", "") t = replacetext(t, "\[cell\]", "") - t = replacetext(t, "\[logo\]", "") + t = replacetext(t, "\[tab\]", "    ") return t +/datum/computer_file/program/filemanager/proc/prepare_printjob(t) // Additional stuff to parse if we want to print it and make a happy Head of Personnel. Forms FTW. + t = replacetext(t, "\[field\]", "") + t = replacetext(t, "\[sign\]", "") + t = parse_tags(t) + return t /datum/computer_file/program/filemanager/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state) @@ -179,7 +184,7 @@ var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers) assets.send(user) - ui = new(user, src, ui_key, "file_manager", "NTOS File Manage", 575, 700, state = state) + ui = new(user, src, ui_key, "file_manager", "NTOS File Manager", 575, 700, state = state) ui.open() ui.set_autoupdate(state = 1) @@ -227,4 +232,4 @@ ))) data["usbfiles"] = usbfiles - return data \ No newline at end of file + return data diff --git a/code/modules/modular_computers/hardware/card_slot.dm b/code/modules/modular_computers/hardware/card_slot.dm index c038fd09b3..417690a7e0 100644 --- a/code/modules/modular_computers/hardware/card_slot.dm +++ b/code/modules/modular_computers/hardware/card_slot.dm @@ -46,8 +46,11 @@ if(stored_card && stored_card2) user << "You try to insert \the [I] into \the [src], but its slots are occupied." return FALSE - if(user && !user.transferItemToLoc(I, src)) - return FALSE + if(user) + if(!user.transferItemToLoc(I, src)) + return FALSE + else + I.forceMove(src) if(!stored_card) stored_card = I @@ -100,4 +103,4 @@ /obj/item/weapon/computer_hardware/card_slot/examine(mob/user) ..() if(stored_card || stored_card2) - user << "There appears to be something loaded in the card slots." \ No newline at end of file + user << "There appears to be something loaded in the card slots." diff --git a/code/modules/modular_computers/hardware/printer.dm b/code/modules/modular_computers/hardware/printer.dm index 294ed329b0..f0351776de 100644 --- a/code/modules/modular_computers/hardware/printer.dm +++ b/code/modules/modular_computers/hardware/printer.dm @@ -34,6 +34,7 @@ if(paper_title) P.name = paper_title P.update_icon() + P.reload_fields() stored_paper-- P = null return TRUE diff --git a/code/modules/orbit/orbit.dm b/code/modules/orbit/orbit.dm index 9bfc2d7746..27fc2d86df 100644 --- a/code/modules/orbit/orbit.dm +++ b/code/modules/orbit/orbit.dm @@ -33,7 +33,7 @@ if (!orbiting.orbiters.len)//we are the last orbit, delete the list orbiting.orbiters = null orbiting = null - ..() + return ..() /datum/orbit/proc/Check(turf/targetloc) if (!orbiter) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 26d66e01e6..7f83bba8ab 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -181,6 +181,7 @@ t = replacetext(t, "\[center\]", "
") t = replacetext(t, "\[/center\]", "
") t = replacetext(t, "\[br\]", "
") + t = replacetext(t, "\n", "
") t = replacetext(t, "\[b\]", "") t = replacetext(t, "\[/b\]", "") t = replacetext(t, "\[i\]", "") @@ -191,7 +192,7 @@ t = replacetext(t, "\[/large\]", "") t = replacetext(t, "\[sign\]", "[user.real_name]") t = replacetext(t, "\[field\]", "") - t = replacetext(t, "\[tab\]", " ") + t = replacetext(t, "\[tab\]", "    ") if(!iscrayon) t = replacetext(t, "\[*\]", "
  • ") @@ -226,6 +227,17 @@ return t +/obj/item/weapon/paper/proc/reload_fields() // Useful if you made the paper programicly and want to include fields. Also runs updateinfolinks() for you. + fields = 0 + var/laststart = 1 + while(1) + var/i = findtext(info, "", laststart) + if(i == 0) + break + laststart = i+1 + fields++ + updateinfolinks() + /obj/item/weapon/paper/proc/openhelp(mob/user) user << browse({"Pen Help @@ -256,7 +268,7 @@ if(href_list["write"]) var/id = href_list["write"] - var/t = stripped_multiline_input("Enter what you want to write:", "Write") + var/t = stripped_multiline_input("Enter what you want to write:", "Write", no_trim=TRUE) if(!t) return var/obj/item/i = usr.get_active_held_item() //Check to see if he still got that darn pen, also check if he's using a crayon or pen. diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 002fd92554..a21ec06b83 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -301,7 +301,7 @@ playsound(loc, O.usesound, 50, 1) user << "You start [anchored ? "unwrenching" : "wrenching"] [src]..." if(do_after(user, 20*O.toolspeed, target = src)) - if(qdeleted(src)) + if(QDELETED(src)) return user << "You [anchored ? "unwrench" : "wrench"] [src]." anchored = !anchored @@ -325,7 +325,7 @@ user.visible_message("[user] starts putting [target] onto the photocopier!", "You start putting [target] onto the photocopier...") if(do_after(user, 20, target = src)) - if(!target || qdeleted(target) || qdeleted(src) || !Adjacent(target)) //check if the photocopier/target still exists. + if(!target || QDELETED(target) || QDELETED(src) || !Adjacent(target)) //check if the photocopier/target still exists. return if(target == user) @@ -363,7 +363,7 @@ return 1 /obj/machinery/photocopier/proc/copier_blocked() - if(qdeleted(src)) + if(QDELETED(src)) return if(loc.density) return 1 diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index e63214fe07..df4421f971 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -419,7 +419,7 @@ By design, d1 is the smallest direction and d2 is the highest powernet.remove_cable(src) //remove the cut cable from its powernet spawn(0) //so we don't rebuild the network X times when singulo/explosion destroys a line of X cables - if(O && !qdeleted(O)) + if(O && !QDELETED(O)) var/datum/powernet/newPN = new()// creates a new powernet... propagate_network(O, newPN)//... and propagates it to the other side of the cable diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index d62b543afa..ee06fa04ba 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -140,7 +140,7 @@ /obj/item/weapon/stock_parts/cell/ex_act(severity, target) ..() - if(!qdeleted(src)) + if(!QDELETED(src)) switch(severity) if(2) if(prob(50)) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index 3c46a653a3..bd7b268fb6 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -384,7 +384,7 @@ /obj/machinery/light/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1) . = ..() - if(. && !qdeleted(src)) + if(. && !QDELETED(src)) if(prob(damage_amount * 5)) break_light_tube() diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm index f4d303c019..e9409e42e9 100644 --- a/code/modules/power/tesla/coil.dm +++ b/code/modules/power/tesla/coil.dm @@ -100,7 +100,7 @@ tesla_zap(src, 10, power/shock_coeff) /obj/machinery/power/grounding_rod - name = "Grounding Rod" + name = "grounding rod" desc = "Keep an area from being fried from Edison's Bane." icon = 'icons/obj/tesla_engine/tesla_coil.dmi' icon_state = "grounding_rod0" diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index 80224c622a..fba93b7d5b 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -17,8 +17,8 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, /obj/structure/sign, /obj/machinery/gateway, /obj/structure/lattice, - /obj/structure/grille)) - + /obj/structure/grille, + /obj/machinery/the_singularitygen/tesla)) /obj/singularity/energy_ball name = "energy ball" desc = "An energy ball." @@ -147,14 +147,18 @@ var/list/blacklisted_tesla_types = typecacheof(list(/obj/machinery/atmospherics, orbitingball.orbiting_balls -= src orbitingball.dissipate_strength = orbitingball.orbiting_balls.len ..() - if (!loc && !qdeleted(src)) + if (!loc && !QDELETED(src)) qdel(src) /obj/singularity/energy_ball/proc/dust_mobs(atom/A) - if(istype(A, /mob/living/carbon)) - var/mob/living/carbon/C = A - C.dust() + if(!iscarbon(A)) + return + for(var/obj/machinery/power/grounding_rod/GR in orange(src, 2)) + if(GR.anchored) + return + var/mob/living/carbon/C = A + C.dust() /proc/tesla_zap(atom/source, zap_range = 3, power, explosive = FALSE) . = source.dir diff --git a/code/modules/power/tesla/generator.dm b/code/modules/power/tesla/generator.dm index f511c650c8..63bce099fa 100644 --- a/code/modules/power/tesla/generator.dm +++ b/code/modules/power/tesla/generator.dm @@ -3,4 +3,8 @@ desc = "Makes the wardenclyffe look like a child's plaything when shot with a particle accelerator." icon = 'icons/obj/tesla_engine/tesla_generator.dmi' icon_state = "TheSingGen" - creation_type = /obj/singularity/energy_ball \ No newline at end of file + creation_type = /obj/singularity/energy_ball + +/obj/machinery/the_singularitygen/tesla/tesla_act(power, explosive = FALSE) + if(explosive) + energy += power diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index a7f8bfb203..9a3085b7e5 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -233,7 +233,7 @@ return vol_each = min(reagents.total_volume / amount, 50) var/name = stripped_input(usr,"Name:","Name your pill!", "[reagents.get_master_reagent_name()] ([vol_each]u)", MAX_NAME_LEN) - if(!name || !reagents.total_volume || !src || qdeleted(src) || !usr.canUseTopic(src, be_close=TRUE)) + if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, be_close=TRUE)) return var/obj/item/weapon/reagent_containers/pill/P @@ -248,7 +248,7 @@ reagents.trans_to(P,vol_each) else var/name = stripped_input(usr, "Name:", "Name your pack!", reagents.get_master_reagent_name(), MAX_NAME_LEN) - if(!name || !reagents.total_volume || !src || qdeleted(src) || !usr.canUseTopic(src, be_close=TRUE)) + if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, be_close=TRUE)) return var/obj/item/weapon/reagent_containers/food/condiment/pack/P = new/obj/item/weapon/reagent_containers/food/condiment/pack(src.loc) @@ -270,7 +270,7 @@ return vol_each = min(reagents.total_volume / amount, 40) var/name = stripped_input(usr,"Name:","Name your patch!", "[reagents.get_master_reagent_name()] ([vol_each]u)", MAX_NAME_LEN) - if(!name || !reagents.total_volume || !src || qdeleted(src) || !usr.canUseTopic(src, be_close=TRUE)) + if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, be_close=TRUE)) return var/obj/item/weapon/reagent_containers/pill/P @@ -289,7 +289,7 @@ if(condi) var/name = stripped_input(usr, "Name:","Name your bottle!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN) - if(!name || !reagents.total_volume || !src || qdeleted(src) || !usr.canUseTopic(src, be_close=TRUE)) + if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, be_close=TRUE)) return var/obj/item/weapon/reagent_containers/food/condiment/P = new(src.loc) P.originalname = name @@ -302,7 +302,7 @@ amount_full = round(reagents.total_volume / 30) vol_part = reagents.total_volume % 30 var/name = stripped_input(usr, "Name:","Name your bottle!", (reagents.total_volume ? reagents.get_master_reagent_name() : " "), MAX_NAME_LEN) - if(!name || !reagents.total_volume || !src || qdeleted(src) || !usr.canUseTopic(src, be_close=TRUE)) + if(!name || !reagents.total_volume || !src || QDELETED(src) || !usr.canUseTopic(src, be_close=TRUE)) return var/obj/item/weapon/reagent_containers/glass/bottle/P diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 8944381db3..0c6a3e4302 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -260,7 +260,7 @@ /datum/reagent/medicine/salglu_solution name = "Saline-Glucose Solution" id = "salglu_solution" - description = "Has a 33% chance per metabolism cycle to heal brute and burn damage. Can be used as a blood substitute on an IV drip." + description = "Has a 33% chance per metabolism cycle to heal brute and burn damage. Can be used as a blood substitute on an IV drip." reagent_state = LIQUID color = "#DCDCDC" metabolization_rate = 0.5 * REAGENTS_METABOLISM @@ -269,6 +269,9 @@ if(prob(33)) M.adjustBruteLoss(-0.5*REM, 0) M.adjustFireLoss(-0.5*REM, 0) + if(iscarbon(M)) + var/mob/living/carbon/C = M + C.blood_volume += 0.2 . = 1 ..() @@ -277,7 +280,7 @@ var/mob/living/carbon/human/H = M if(H.dna && !(NOBLOOD in H.dna.species.species_traits)) var/efficiency = (BLOOD_VOLUME_NORMAL-H.blood_volume)/700 + 0.2//The lower the blood of the patient, the better it is as a blood substitute. - efficiency = min(0.75,efficiency) + efficiency = Clamp(efficiency, 0.1, 0.75) //As it's designed for an IV drip, make large injections not as effective as repeated small injections. H.blood_volume += round(efficiency * min(5,reac_volume), 0.1) ..() diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index f27d8ec507..568426dba9 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -214,7 +214,7 @@ name = "Unholy Water" id = "unholywater" description = "Something that shouldn't exist on this plane of existence." - + /datum/reagent/fuel/unholywater/reaction_mob(mob/living/M, method=TOUCH, reac_volume) if(method == TOUCH || method == VAPOR) M.reagents.add_reagent("unholywater", (reac_volume/4)) @@ -379,7 +379,7 @@ H.visible_message("[H] falls to the ground and screams as [H.p_their()] skin bubbles and froths!") //'froths' sounds painful when used with SKIN. H.Weaken(3, 0) spawn(30) - if(!H || qdeleted(H)) + if(!H || QDELETED(H)) return var/current_species = H.dna.species.type @@ -896,6 +896,23 @@ H.wash_cream() M.clean_blood() +/datum/reagent/space_cleaner/ez_clean + name = "EZ Clean" + id = "ez_clean" + description = "A powerful, acidic cleaner sold by Waffle Co. Affects organic matter while leaving other objects unaffected." + metabolization_rate = 1.5 * REAGENTS_METABOLISM + +/datum/reagent/space_cleaner/ez_clean/on_mob_life(mob/living/M) + M.adjustBruteLoss(3.33) + M.adjustFireLoss(3.33) + M.adjustToxLoss(3.33) + ..() + +/datum/reagent/space_cleaner/ez_clean/reaction_mob(mob/living/M, method=TOUCH, reac_volume) + ..() + if((method == TOUCH || method == VAPOR) && !issilicon(M)) + M.adjustBruteLoss(1) + M.adjustFireLoss(1) /datum/reagent/cryptobiolin name = "Cryptobiolin" diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 014bef467d..48d07e6417 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -692,7 +692,7 @@ color = "#3C5133" metabolization_rate = 0.08 * REAGENTS_METABOLISM toxpwr = 0.15 - + /datum/reagent/toxin/anacea/on_mob_life(mob/living/M) var/remove_amt = 5 if(holder.has_reagent("calomel") || holder.has_reagent("pen_acid")) @@ -700,7 +700,7 @@ for(var/datum/reagent/medicine/R in M.reagents.reagent_list) M.reagents.remove_reagent(R.id,remove_amt) return ..() - + //ACID diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index c15d3f14fc..1a47ea728f 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -214,7 +214,7 @@ name = "Mulligan" id = "mulligan" results = list("mulligan" = 1) - required_reagents = list("humanmutationtoxin" = 1, "mutagen" = 1) + required_reagents = list("stablemutationtoxin" = 1, "mutagen" = 1) ////////////////////////////////// VIROLOGY ////////////////////////////////////////// diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index 56cb258e2a..481f21897c 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -71,7 +71,7 @@ if(reagents) for(var/datum/reagent/R in reagents.reagent_list) R.on_ex_act() - if(!qdeleted(src)) + if(!QDELETED(src)) ..() /obj/item/weapon/reagent_containers/fire_act(exposed_temperature, exposed_volume) @@ -109,7 +109,7 @@ else visible_message("[src] spills its contents all over [target].") reagents.reaction(target, TOUCH) - if(qdeleted(src)) + if(QDELETED(src)) return reagents.clear_reagents() diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index e372bb8fe1..e6d2e20213 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -24,7 +24,7 @@ Borg Hypospray var/bypass_protection = 0 //If the hypospray can go through armor or thick material var/list/datum/reagents/reagent_list = list() - var/list/reagent_ids = list("dexalin", "kelotane", "bicaridine", "antitoxin", "epinephrine", "spaceacillin") + var/list/reagent_ids = list("dexalin", "kelotane", "bicaridine", "antitoxin", "epinephrine", "spaceacillin", "salglu_solution") var/accepts_reagent_upgrades = TRUE //If upgrades can increase number of reagents dispensed. var/list/modes = list() //Basically the inverse of reagent_ids. Instead of having numbers as "keys" and strings as values it has strings as keys and numbers as values. //Used as list for input() in shakers. diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 4f6e1d3d90..a8e4da9160 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -84,7 +84,7 @@ /obj/structure/reagent_dispensers/fueltank/bullet_act(obj/item/projectile/P) ..() - if(!qdeleted(src)) //wasn't deleted by the projectile's effects. + if(!QDELETED(src)) //wasn't deleted by the projectile's effects. if(!P.nodamage && ((P.damage_type == BURN) || (P.damage_type == BRUTE))) var/boom_message = "[key_name_admin(P.firer)] triggered a fueltank explosion via projectile." bombers += boom_message @@ -162,7 +162,7 @@ /obj/structure/reagent_dispensers/beerkeg/blob_act(obj/structure/blob/B) explosion(src.loc,0,3,5,7,10) - if(!qdeleted(src)) + if(!QDELETED(src)) qdel(src) diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 09337e8e2f..e66587ffd3 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -119,7 +119,7 @@ user.visible_message("[user] struggles to pry up \the [src] with \the [I].", \ "You struggle to pry up \the [src] with \the [I].") if(do_after(user, 40*I.toolspeed, target = src)) - if(qdeleted(src)) + if(QDELETED(src)) return //prevent multiple decontructs if(!(stat & BROKEN)) var/obj/item/conveyor_construct/C = new/obj/item/conveyor_construct(src.loc) diff --git a/code/modules/recycling/disposal-structures.dm b/code/modules/recycling/disposal-structures.dm index f244a4d748..856fbc90ef 100644 --- a/code/modules/recycling/disposal-structures.dm +++ b/code/modules/recycling/disposal-structures.dm @@ -150,7 +150,7 @@ /obj/structure/disposalpipe/New(loc,var/obj/structure/disposalconstruct/make_from) ..() - if(make_from && !qdeleted(make_from)) + if(make_from && !QDELETED(make_from)) base_icon_state = make_from.base_state setDir(make_from.dir) dpdir = make_from.dpdir diff --git a/code/modules/recycling/disposal-unit.dm b/code/modules/recycling/disposal-unit.dm index 11bba1f0d2..3423673612 100644 --- a/code/modules/recycling/disposal-unit.dm +++ b/code/modules/recycling/disposal-unit.dm @@ -196,7 +196,7 @@ playsound(src, 'sound/machines/disposalflush.ogg', 50, 0, 0) last_sound = world.time sleep(5) - if(qdeleted(src)) + if(QDELETED(src)) return var/obj/structure/disposalholder/H = new() newHolderDestination(H) diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index 671f1a4404..bc3f2001e1 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -409,4 +409,12 @@ id = "limbgrower" req_tech = list("programming" = 3, "biotech" = 2) build_path = /obj/item/weapon/circuitboard/machine/limbgrower - category = list("Medical Machinery") \ No newline at end of file + category = list("Medical Machinery") + +/datum/design/board/deepfryer + name = "Machine Design (Deep Fryer)" + desc = "The circuit board for a Deep Fryer." + id = "deepfryer" + req_tech = list("programming" = 1) + build_path = /obj/item/weapon/circuitboard/machine/deep_fryer + category = list ("Misc. Machinery") diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 818d616bb3..752bc73919 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -180,14 +180,14 @@ ///////////////////////////////////////// /datum/design/cyberimp_welding - name = "Welding Shield implant" + name = "Welding Shield Eyes" desc = "These reactive micro-shields will protect you from welders and flashes without obscuring your vision." id = "ci-welding" req_tech = list("materials" = 4, "biotech" = 4, "engineering" = 5, "plasmatech" = 4) build_type = PROTOLATHE | MECHFAB construction_time = 40 materials = list(MAT_METAL = 600, MAT_GLASS = 400) - build_path = /obj/item/organ/cyberimp/eyes/shield + build_path = /obj/item/organ/eyes/robotic/shield category = list("Misc", "Medical Designs") /datum/design/cyberimp_breather @@ -235,25 +235,25 @@ category = list("Misc", "Medical Designs") /datum/design/cyberimp_xray - name = "X-Ray implant" + name = "X-Ray eyes" desc = "These cybernetic eyes will give you X-ray vision. Blinking is futile." id = "ci-xray" req_tech = list("materials" = 7, "programming" = 5, "biotech" = 7, "magnets" = 5,"plasmatech" = 6) build_type = PROTOLATHE | MECHFAB construction_time = 60 materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 600, MAT_GOLD = 600, MAT_PLASMA = 1000, MAT_URANIUM = 1000, MAT_DIAMOND = 2000) - build_path = /obj/item/organ/cyberimp/eyes/xray + build_path = /obj/item/organ/eyes/robotic/xray category = list("Misc", "Medical Designs") /datum/design/cyberimp_thermals - name = "Thermals implant" + name = "Thermal eyes" desc = "These cybernetic eyes will give you Thermal vision. Vertical slit pupil included." id = "ci-thermals" req_tech = list("materials" = 6, "programming" = 4, "biotech" = 7, "magnets" = 5,"plasmatech" = 4) build_type = PROTOLATHE | MECHFAB construction_time = 60 materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 600, MAT_GOLD = 600, MAT_PLASMA = 1000, MAT_DIAMOND = 2000) - build_path = /obj/item/organ/cyberimp/eyes/thermals + build_path = /obj/item/organ/eyes/robotic/thermals category = list("Misc", "Medical Designs") /datum/design/cyberimp_antidrop diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm index d33a57bbd9..72999fe375 100644 --- a/code/modules/research/message_server.dm +++ b/code/modules/research/message_server.dm @@ -130,68 +130,6 @@ var/global/list/obj/machinery/message_server/message_servers = list() return - -/datum/feedback_variable - var/variable - var/value - var/details - -/datum/feedback_variable/New(var/param_variable,var/param_value = 0) - variable = param_variable - value = param_value - -/datum/feedback_variable/proc/inc(num = 1) - if (isnum(value)) - value += num - else - value = text2num(value) - if (isnum(value)) - value += num - else - value = num - -/datum/feedback_variable/proc/dec(num = 1) - if (isnum(value)) - value -= num - else - value = text2num(value) - if (isnum(value)) - value -= num - else - value = -num - -/datum/feedback_variable/proc/set_value(num) - if (isnum(num)) - value = num - -/datum/feedback_variable/proc/get_value() - if (!isnum(value)) - return 0 - return value - -/datum/feedback_variable/proc/get_variable() - return variable - -/datum/feedback_variable/proc/set_details(text) - if (istext(text)) - details = text - -/datum/feedback_variable/proc/add_details(text) - if (istext(text)) - text = replacetext(text, " ", "_") - if (!details) - details = text - else - details += " [text]" - -/datum/feedback_variable/proc/get_details() - return details - -/datum/feedback_variable/proc/get_parsed() - return list(variable,value,details) - -var/obj/machinery/blackbox_recorder/blackbox - /obj/machinery/blackbox_recorder icon = 'icons/obj/stationobjs.dmi' icon_state = "blackbox" @@ -202,170 +140,3 @@ var/obj/machinery/blackbox_recorder/blackbox idle_power_usage = 10 active_power_usage = 100 armor = list(melee = 25, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70) - var/list/messages = list() //Stores messages of non-standard frequencies - var/list/messages_admin = list() - - var/list/msg_common = list() - var/list/msg_science = list() - var/list/msg_command = list() - var/list/msg_medical = list() - var/list/msg_engineering = list() - var/list/msg_security = list() - var/list/msg_deathsquad = list() - var/list/msg_syndicate = list() - var/list/msg_service = list() - var/list/msg_cargo = list() - - var/list/datum/feedback_variable/feedback = new() - - //Only one can exsist in the world! -/obj/machinery/blackbox_recorder/New() - if (blackbox) - if (istype(blackbox,/obj/machinery/blackbox_recorder)) - qdel(src) - return - blackbox = src - - -/obj/machinery/blackbox_recorder/Destroy() - var/turf/T = locate(1,1,2) - if (T) - blackbox = null - var/obj/machinery/blackbox_recorder/BR = new/obj/machinery/blackbox_recorder(T) - BR.msg_common = msg_common - BR.msg_science = msg_science - BR.msg_command = msg_command - BR.msg_medical = msg_medical - BR.msg_engineering = msg_engineering - BR.msg_security = msg_security - BR.msg_deathsquad = msg_deathsquad - BR.msg_syndicate = msg_syndicate - BR.msg_service = msg_service - BR.msg_cargo = msg_cargo - BR.feedback = feedback - BR.messages = messages - BR.messages_admin = messages_admin - if(blackbox != BR) - blackbox = BR - return ..() - -/obj/machinery/blackbox_recorder/proc/find_feedback_datum(variable) - for (var/datum/feedback_variable/FV in feedback) - if (FV.get_variable() == variable) - return FV - var/datum/feedback_variable/FV = new(variable) - feedback += FV - return FV - -/obj/machinery/blackbox_recorder/proc/get_round_feedback() - return feedback - -/obj/machinery/blackbox_recorder/proc/round_end_data_gathering() - - var/pda_msg_amt = 0 - var/rc_msg_amt = 0 - - for (var/obj/machinery/message_server/MS in message_servers) - if (MS.pda_msgs.len > pda_msg_amt) - pda_msg_amt = MS.pda_msgs.len - if (MS.rc_msgs.len > rc_msg_amt) - rc_msg_amt = MS.rc_msgs.len - - feedback_set_details("radio_usage","") - - feedback_add_details("radio_usage","COM-[msg_common.len]") - feedback_add_details("radio_usage","SCI-[msg_science.len]") - feedback_add_details("radio_usage","HEA-[msg_command.len]") - feedback_add_details("radio_usage","MED-[msg_medical.len]") - feedback_add_details("radio_usage","ENG-[msg_engineering.len]") - feedback_add_details("radio_usage","SEC-[msg_security.len]") - feedback_add_details("radio_usage","DTH-[msg_deathsquad.len]") - feedback_add_details("radio_usage","SYN-[msg_syndicate.len]") - feedback_add_details("radio_usage","SRV-[msg_service.len]") - feedback_add_details("radio_usage","CAR-[msg_cargo.len]") - feedback_add_details("radio_usage","OTH-[messages.len]") - feedback_add_details("radio_usage","PDA-[pda_msg_amt]") - feedback_add_details("radio_usage","RC-[rc_msg_amt]") - - - feedback_set_details("round_end","[time2text(world.realtime)]") //This one MUST be the last one that gets set. - - -//This proc is only to be called at round end. -/obj/machinery/blackbox_recorder/proc/save_all_data_to_sql() - if (!feedback) return - - round_end_data_gathering() //round_end time logging and some other data processing - establish_db_connection() - if (!dbcon.IsConnected()) return - var/round_id - - var/DBQuery/query = dbcon.NewQuery("SELECT MAX(round_id) AS round_id FROM [format_table_name("feedback")]") - query.Execute() - while (query.NextRow()) - round_id = query.item[1] - - if (!isnum(round_id)) - round_id = text2num(round_id) - round_id++ - - var/sqlrowlist = "" - - - for (var/datum/feedback_variable/FV in feedback) - if (sqlrowlist != "") - sqlrowlist += ", " //a comma (,) at the start of the first row to insert will trigger a SQL error - - sqlrowlist += "(null, Now(), [round_id], \"[sanitizeSQL(FV.get_variable())]\", [FV.get_value()], \"[sanitizeSQL(FV.get_details())]\")" - - if (sqlrowlist == "") - return - - var/DBQuery/query_insert = dbcon.NewQuery("INSERT DELAYED IGNORE INTO [format_table_name("feedback")] VALUES " + sqlrowlist) - query_insert.Execute() - - -/proc/feedback_set(variable,value) - if (!blackbox) return - - var/datum/feedback_variable/FV = blackbox.find_feedback_datum(variable) - - if (!FV) return - - FV.set_value(value) - -/proc/feedback_inc(variable,value) - if (!blackbox) return - - var/datum/feedback_variable/FV = blackbox.find_feedback_datum(variable) - - if (!FV) return - - FV.inc(value) - -/proc/feedback_dec(variable,value) - if (!blackbox) return - - var/datum/feedback_variable/FV = blackbox.find_feedback_datum(variable) - - if (!FV) return - - FV.dec(value) - -/proc/feedback_set_details(variable,details) - if (!blackbox) return - - var/datum/feedback_variable/FV = blackbox.find_feedback_datum(variable) - - if(!FV) return - - FV.set_details(details) - -/proc/feedback_add_details(variable,details) - if (!blackbox) return - - var/datum/feedback_variable/FV = blackbox.find_feedback_datum(variable) - - if (!FV) return - - FV.add_details(details) diff --git a/code/modules/shuttle/assault_pod.dm b/code/modules/shuttle/assault_pod.dm index d01f1a1253..d66bd8e3b5 100644 --- a/code/modules/shuttle/assault_pod.dm +++ b/code/modules/shuttle/assault_pod.dm @@ -34,7 +34,7 @@ var/target_area target_area = input("Area to land", "Select a Landing Zone", target_area) in teleportlocs var/area/picked_area = teleportlocs[target_area] - if(!src || qdeleted(src)) + if(!src || QDELETED(src)) return var/turf/T = safepick(get_area_turfs(picked_area)) diff --git a/code/modules/shuttle/computer.dm b/code/modules/shuttle/computer.dm index b179fec67e..9ac700ae78 100644 --- a/code/modules/shuttle/computer.dm +++ b/code/modules/shuttle/computer.dm @@ -64,7 +64,7 @@ return switch(SSshuttle.moveShuttle(shuttleId, href_list["move"], 1)) if(0) - usr << "Shuttle received message and will be sent shortly." + say("Shuttle departing. Please stand away from the doors.") if(1) usr << "Invalid shuttle requested." else diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index a650851256..8211d35095 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -241,7 +241,7 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin /obj/effect/proc_holder/spell/proc/start_recharge() if(action) action.UpdateButtonIcon() - while(charge_counter < charge_max && !qdeleted(src)) + while(charge_counter < charge_max && !QDELETED(src)) sleep(1) charge_counter++ if(action) diff --git a/code/modules/spells/spell_types/conjure.dm b/code/modules/spells/spell_types/conjure.dm index f14414684c..4785ebdc6f 100644 --- a/code/modules/spells/spell_types/conjure.dm +++ b/code/modules/spells/spell_types/conjure.dm @@ -65,7 +65,7 @@ cooldown_min = 10 /obj/effect/proc_holder/spell/targeted/conjure_item/cast(list/targets, mob/user = usr) - if (item && !qdeleted(item)) + if (item && !QDELETED(item)) qdel(item) item = null else diff --git a/code/modules/spells/spell_types/devil_boons.dm b/code/modules/spells/spell_types/devil_boons.dm index 85ca441ade..b7ef4b03c4 100644 --- a/code/modules/spells/spell_types/devil_boons.dm +++ b/code/modules/spells/spell_types/devil_boons.dm @@ -41,4 +41,4 @@ for(var/mob/C in targets) if(!C.client) continue - C.client.view = input("Select view range:", "Range", 4) in ranges \ No newline at end of file + C.client.change_view(input("Select view range:", "Range", 4) in ranges) \ No newline at end of file diff --git a/code/modules/spells/spell_types/ethereal_jaunt.dm b/code/modules/spells/spell_types/ethereal_jaunt.dm index a2a8d7d04c..5b9561b585 100644 --- a/code/modules/spells/spell_types/ethereal_jaunt.dm +++ b/code/modules/spells/spell_types/ethereal_jaunt.dm @@ -54,7 +54,7 @@ new jaunt_in_type(mobloc, holder.dir) sleep(jaunt_in_time) qdel(holder) - if(!qdeleted(target)) + if(!QDELETED(target)) if(mobloc.density) for(var/direction in alldirs) var/turf/T = get_step(mobloc, direction) diff --git a/code/modules/spells/spell_types/genetic.dm b/code/modules/spells/spell_types/genetic.dm index 6ed96c53cc..84ec6a777b 100644 --- a/code/modules/spells/spell_types/genetic.dm +++ b/code/modules/spells/spell_types/genetic.dm @@ -24,7 +24,7 @@ target.dna.add_mutation(A) target.disabilities |= disabilities spawn(duration) - if(target && !qdeleted(target)) + if(target && !QDELETED(target)) for(var/A in mutations) target.dna.remove_mutation(A) target.disabilities &= ~disabilities diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index aad30a2b46..5844698c97 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -55,7 +55,7 @@ charge_counter = charge_max return - if(!marked_item || qdeleted(marked_item)) //Wait nevermind + if(!marked_item || QDELETED(marked_item)) //Wait nevermind M << "Your phylactery is gone!" return diff --git a/code/modules/spells/spell_types/rod_form.dm b/code/modules/spells/spell_types/rod_form.dm index 1e8545f76f..5046da7c34 100644 --- a/code/modules/spells/spell_types/rod_form.dm +++ b/code/modules/spells/spell_types/rod_form.dm @@ -28,6 +28,7 @@ var/max_distance = 13 var/mob/living/wizard var/turf/start_turf + notify = FALSE /obj/effect/immovablerod/wizard/Move() if(get_dist(start_turf, get_turf(src)) >= max_distance) @@ -39,4 +40,4 @@ wizard.status_flags &= ~GODMODE wizard.notransform = 0 wizard.forceMove(get_turf(src)) - return ..() \ No newline at end of file + return ..() diff --git a/code/modules/spells/spell_types/summonitem.dm b/code/modules/spells/spell_types/summonitem.dm index dd55a88bdb..407c36448e 100644 --- a/code/modules/spells/spell_types/summonitem.dm +++ b/code/modules/spells/spell_types/summonitem.dm @@ -43,7 +43,7 @@ name = "Instant Summons" marked_item = null - else if(marked_item && qdeleted(marked_item)) //the item was destroyed at some point + else if(marked_item && QDELETED(marked_item)) //the item was destroyed at some point message = "You sense your marked item has been destroyed!" name = "Instant Summons" marked_item = null diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index 877f8b490c..bd01b14c21 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -145,6 +145,9 @@ LB.brainmob.container = LB LB.brainmob.stat = DEAD +/obj/item/organ/eyes/transfer_to_limb(obj/item/bodypart/head/LB, mob/living/carbon/human/C) + LB.eyes = src + ..() /obj/item/bodypart/chest/drop_limb(special) return @@ -289,7 +292,6 @@ H.hair_style = hair_style H.facial_hair_color = facial_hair_color H.facial_hair_style = facial_hair_style - H.eye_color = eye_color H.lip_style = lip_style H.lip_color = lip_color if(real_name) diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index 110314cb8b..1932793654 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -25,8 +25,9 @@ var/facial_hair_color = "000" var/facial_hair_style = "Shaved" //Eye Colouring - var/eyes = "eyes" - var/eye_color = "" + + var/obj/item/organ/eyes/eyes = null + var/lip_style = null var/lip_color = "white" @@ -61,8 +62,6 @@ real_name = "Unknown" hair_style = "Bald" facial_hair_style = "Shaved" - eyes = "eyes" - eye_color = "" lip_style = null else if(!animal_origin) @@ -106,14 +105,6 @@ else lip_style = null lip_color = "white" - // eyes - if(EYECOLOR in S.species_traits) - eyes = S.eyes - eye_color = H.eye_color - else - eyes = "eyes" - eye_color = "" - ..() /obj/item/bodypart/head/update_icon_dropped() @@ -167,9 +158,12 @@ standing += lips // eyes - if(eye_color) - var/image/img_eyes = image("icon" = 'icons/mob/human_face.dmi', "icon_state" = "[eyes]", "layer" = -BODY_LAYER, "dir"=SOUTH) - img_eyes.color = "#" + eye_color + if(!eyes) + standing += image("icon"='icons/mob/human_face.dmi', "icon_state" = "eyes_missing", "layer" = -BODY_LAYER, "dir"=SOUTH) + + else if(eyes.eye_color) + var/image/img_eyes = image("icon" = 'icons/mob/human_face.dmi', "icon_state" = "eyes", "layer" = -BODY_LAYER, "dir"=SOUTH) + img_eyes.color = "#" + eyes.eye_color standing += img_eyes return standing diff --git a/code/modules/surgery/eye_surgery.dm b/code/modules/surgery/eye_surgery.dm index 152c50306d..95dd3cf56c 100644 --- a/code/modules/surgery/eye_surgery.dm +++ b/code/modules/surgery/eye_surgery.dm @@ -11,6 +11,12 @@ implements = list(/obj/item/weapon/hemostat = 100, /obj/item/weapon/screwdriver = 45, /obj/item/weapon/pen = 25) time = 64 +/datum/surgery/eye_surgery/can_start(mob/user, mob/living/carbon/target) + var/obj/item/organ/eyes/E = target.getorganslot("eye_sight") + if(!E) + user << "It's hard to do surgery on someones eyes when they don't have any." + return FALSE + /datum/surgery_step/fix_eyes/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) user.visible_message("[user] begins to fix [target]'s eyes.", "You begin to fix [target]'s eyes...") @@ -21,7 +27,7 @@ target.cure_nearsighted() target.blur_eyes(35) //this will fix itself slowly. target.set_eye_damage(0) - return 1 + return TRUE /datum/surgery_step/fix_eyes/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) if(target.getorgan(/obj/item/organ/brain)) @@ -29,4 +35,4 @@ target.adjustBrainLoss(100) else user.visible_message("[user] accidentally stabs [target] right in the brain! Or would have, if [target] had a brain.", "You accidentally stab [target] right in the brain! Or would have, if [target] had a brain.") - return 0 \ No newline at end of file + return FALSE \ No newline at end of file diff --git a/code/modules/surgery/organs/augments_eyes.dm b/code/modules/surgery/organs/augments_eyes.dm index f5bf53e30c..7ca10c5c5e 100644 --- a/code/modules/surgery/organs/augments_eyes.dm +++ b/code/modules/surgery/organs/augments_eyes.dm @@ -1,5 +1,5 @@ -/obj/item/organ/cyberimp/eyes - name = "cybernetic eyes" +/obj/item/organ/cyberimp/eyes/hud + name = "cybernetic hud" desc = "artificial photoreceptors with specialized functionality" icon_state = "eye_implant" implant_overlay = "eye_implant_overlay" @@ -7,66 +7,6 @@ zone = "eyes" w_class = WEIGHT_CLASS_TINY - var/sight_flags = 0 - var/dark_view = 0 - var/eye_color = "fff" - var/old_eye_color = "fff" - var/flash_protect = 0 - var/see_invisible = 0 - var/aug_message = "Your vision is augmented!" - - -/obj/item/organ/cyberimp/eyes/Insert(var/mob/living/carbon/M, var/special = 0) - ..() - if(ishuman(owner) && eye_color) - var/mob/living/carbon/human/HMN = owner - old_eye_color = HMN.eye_color - HMN.eye_color = eye_color - HMN.regenerate_icons() - if(aug_message && !special) - owner << "[aug_message]" - - owner.update_sight() - -/obj/item/organ/cyberimp/eyes/Remove(var/mob/living/carbon/M, var/special = 0) - M.sight ^= sight_flags - if(ishuman(M) && eye_color) - var/mob/living/carbon/human/HMN = owner - HMN.eye_color = old_eye_color - HMN.regenerate_icons() - ..() - -/obj/item/organ/cyberimp/eyes/emp_act(severity) - if(!owner) - return - if(severity > 1) - if(prob(10 * severity)) - return - owner << "Static obfuscates your vision!" - owner.flash_act(visual = 1) - -/obj/item/organ/cyberimp/eyes/xray - name = "X-ray implant" - desc = "These cybernetic eye implants will give you X-ray vision. Blinking is futile." - eye_color = "000" - implant_color = "#000000" - origin_tech = "materials=4;programming=4;biotech=6;magnets=4" - dark_view = 8 - sight_flags = SEE_MOBS | SEE_OBJS | SEE_TURFS - -/obj/item/organ/cyberimp/eyes/thermals - name = "Thermals implant" - desc = "These cybernetic eye implants will give you Thermal vision. Vertical slit pupil included." - eye_color = "FC0" - implant_color = "#FFCC00" - origin_tech = "materials=5;programming=4;biotech=4;magnets=4;syndicate=1" - sight_flags = SEE_MOBS - see_invisible = SEE_INVISIBLE_MINIMUM - flash_protect = -1 - dark_view = 8 - aug_message = "You see prey everywhere you look..." - - // HUD implants /obj/item/organ/cyberimp/eyes/hud name = "HUD implant" @@ -91,32 +31,11 @@ /obj/item/organ/cyberimp/eyes/hud/medical name = "Medical HUD implant" desc = "These cybernetic eye implants will display a medical HUD over everything you see." - eye_color = "0ff" - implant_color = "#00FFFF" origin_tech = "materials=4;programming=4;biotech=4" - aug_message = "You suddenly see health bars floating above people's heads..." HUD_type = DATA_HUD_MEDICAL_ADVANCED /obj/item/organ/cyberimp/eyes/hud/security name = "Security HUD implant" desc = "These cybernetic eye implants will display a security HUD over everything you see." - eye_color = "d00" - implant_color = "#CC0000" origin_tech = "materials=4;programming=4;biotech=3;combat=3" - aug_message = "Job indicator icons pop up in your vision. That is not a certified surgeon..." HUD_type = DATA_HUD_SECURITY_ADVANCED - - -// Welding shield implant -/obj/item/organ/cyberimp/eyes/shield - name = "welding shield implant" - desc = "These reactive micro-shields will protect you from welders and flashes without obscuring your vision." - slot = "eye_shield" - origin_tech = "materials=4;biotech=3;engineering=4;plasmatech=3" - implant_color = "#101010" - flash_protect = 2 - aug_message = null - eye_color = null - -/obj/item/organ/cyberimp/eyes/shield/emp_act(severity) - return diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index 2c8f377fee..51fc8f1ab2 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -63,7 +63,7 @@ for(var/obj/item/I in stored_items) owner << "Your [owner.get_held_index_name(owner.get_held_index_of_item(I))]'s grip tightens." I.flags |= NODROP - + else release_items() owner << "Your hands relax..." @@ -157,8 +157,8 @@ /obj/item/weapon/storage/box/cyber_implants/bundle name = "boxed cybernetic implants" var/list/boxed = list( - /obj/item/organ/cyberimp/eyes/xray, - /obj/item/organ/cyberimp/eyes/thermals, + /obj/item/organ/eyes/robotic/xray, + /obj/item/organ/eyes/robotic/thermals, /obj/item/organ/cyberimp/brain/anti_stun, /obj/item/organ/cyberimp/chest/reviver) var/amount = 5 diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 5a509604f6..7316a188ce 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -728,3 +728,139 @@ if(!T) T = new() T.Insert(src) + + if(!getorganslot("eye_sight")) + var/obj/item/organ/eyes/E + + if(dna && dna.species && dna.species.mutanteyes) + E = new dna.species.mutanteyes() + + else + E = new() + E.Insert(src) + +//Eyes + +/obj/item/organ/eyes + name = "eyes" + icon_state = "eyeballs" + desc = "I see you!" + zone = "eyes" + slot = "eye_sight" + + var/sight_flags = 0 + var/see_in_dark = 2 + var/tint = 0 + var/eye_color = "fff" + var/old_eye_color = "fff" + var/flash_protect = 0 + var/see_invisible = SEE_INVISIBLE_LIVING + +/obj/item/organ/eyes/Insert(mob/living/carbon/M, special = 0) + ..() + if(ishuman(owner) && eye_color) + var/mob/living/carbon/human/HMN = owner + old_eye_color = HMN.eye_color + HMN.eye_color = eye_color + HMN.regenerate_icons() + M.update_tint() + owner.update_sight() + +/obj/item/organ/eyes/Remove(mob/living/carbon/M, special = 0) + ..() + if(ishuman(M) && eye_color) + var/mob/living/carbon/human/HMN = M + HMN.eye_color = old_eye_color + HMN.regenerate_icons() + M.update_tint() + M.update_sight() + +/obj/item/organ/eyes/night_vision + name = "shadow eyes" + desc = "A spooky set of eyes that can see in the dark." + see_in_dark = 8 + see_invisible = SEE_INVISIBLE_MINIMUM + actions_types = list(/datum/action/item_action/organ_action/use) + var/night_vision = TRUE + +/obj/item/organ/eyes/night_vision/ui_action_click() + if(night_vision) + see_in_dark = 4 + see_invisible = SEE_INVISIBLE_LIVING + night_vision = FALSE + else + see_in_dark = 8 + see_invisible = SEE_INVISIBLE_MINIMUM + night_vision = TRUE + +/obj/item/organ/eyes/night_vision/alien + name = "alien eyes" + desc = "It turned out they had them after all!" + see_in_dark = 8 + see_invisible = SEE_INVISIBLE_MINIMUM + sight_flags = SEE_MOBS + + +///Robotic + +/obj/item/organ/eyes/robotic + name = "robotic eyes" + icon_state = "cybernetic_eyeballs" + desc = "Your vision is augmented." + +/obj/item/organ/eyes/robotic/emp_act(severity) + if(!owner) + return + if(severity > 1) + if(prob(10 * severity)) + return + owner << "Static obfuscates your vision!" + owner.flash_act(visual = 1) + +/obj/item/organ/eyes/robotic/xray + name = "X-ray eyes" + desc = "These cybernetic eyes will give you X-ray vision. Blinking is futile." + eye_color = "000" + see_in_dark = 8 + sight_flags = SEE_MOBS | SEE_OBJS | SEE_TURFS + +/obj/item/organ/eyes/robotic/thermals + name = "Thermals eyes" + desc = "These cybernetic eye implants will give you Thermal vision. Vertical slit pupil included." + eye_color = "FC0" + origin_tech = "materials=5;programming=4;biotech=4;magnets=4;syndicate=1" + sight_flags = SEE_MOBS + see_invisible = SEE_INVISIBLE_MINIMUM + flash_protect = -1 + see_in_dark = 8 + +/obj/item/organ/eyes/robotic/flashlight + name = "flashlight eyes" + desc = "It's two flashlights rigged together with some wire. Why would you put these in someones head?" + eye_color ="fee5a3" + icon = 'icons/obj/lighting.dmi' + icon_state = "flashlight_eyes" + flash_protect = 2 + tint = INFINITY + +/obj/item/organ/eyes/robotic/flashlight/emp_act(severity) + return + +/obj/item/organ/eyes/robotic/flashlight/Insert(var/mob/living/carbon/M, var/special = 0) + ..() + M.AddLuminosity(15) + + +/obj/item/organ/eyes/robotic/flashlight/Remove(var/mob/living/carbon/M, var/special = 0) + M.AddLuminosity(-15) + ..() + +// Welding shield implant +/obj/item/organ/eyes/robotic/shield + name = "shielded robotic eyes" + desc = "These reactive micro-shields will protect you from welders and flashes without obscuring your vision." + origin_tech = "materials=4;biotech=3;engineering=4;plasmatech=3" + flash_protect = 2 + +/obj/item/organ/eyes/robotic/shield/emp_act(severity) + return \ No newline at end of file diff --git a/code/modules/uplink/uplink.dm b/code/modules/uplink/uplink.dm index 091fea9b7e..1fcd8aa230 100644 --- a/code/modules/uplink/uplink.dm +++ b/code/modules/uplink/uplink.dm @@ -69,6 +69,8 @@ var/global/list/uplinks = list() ui.open() /obj/item/device/uplink/ui_data(mob/user) + if(!user.mind) + return var/list/data = list() data["telecrystals"] = telecrystals data["lockable"] = lockable @@ -83,6 +85,13 @@ var/global/list/uplinks = list() var/datum/uplink_item/I = uplink_items[category][item] if(I.limited_stock == 0) continue + if(I.restricted_roles.len) + var/is_inaccessible = 1 + for(var/R in I.restricted_roles) + if(R == user.mind.assigned_role) + is_inaccessible = 0 + if(is_inaccessible) + continue cat["items"] += list(list( "name" = I.name, "cost" = I.cost, diff --git a/code/modules/uplink/uplink_item.dm b/code/modules/uplink/uplink_item.dm index 2ecd1e9211..65507a3091 100644 --- a/code/modules/uplink/uplink_item.dm +++ b/code/modules/uplink/uplink_item.dm @@ -76,6 +76,7 @@ var/list/uplink_items = list() // Global list so we only initialize this once. var/limited_stock = -1 //Setting this above zero limits how many times this item can be bought by the same traitor in a round, -1 is unlimited var/list/include_modes = list() // Game modes to allow this item in. var/list/exclude_modes = list() // Game modes to disallow this item from. + var/list/restricted_roles = list() //If this uplink item is only available to certain roles. Roles are dependent on the frequency chip or stored ID. var/player_minimum //The minimum crew size needed for this item to be added to uplinks. var/purchase_log_vis = TRUE // Visible in the purchase log? @@ -1130,15 +1131,15 @@ var/list/uplink_items = list() // Global list so we only initialize this once. /datum/uplink_item/cyber_implants/thermals - name = "Thermal Vision Implant" + name = "Thermal eyes" desc = "These cybernetic eyes will give you thermal vision. Comes with a free autoimplanter." - item = /obj/item/organ/cyberimp/eyes/thermals + item = /obj/item/organ/eyes/robotic/thermals cost = 8 /datum/uplink_item/cyber_implants/xray name = "X-Ray Vision Implant" desc = "These cybernetic eyes will give you X-ray vision. Comes with an autoimplanter." - item = /obj/item/organ/cyberimp/eyes/xray + item = /obj/item/organ/eyes/robotic/xray cost = 10 /datum/uplink_item/cyber_implants/antistun @@ -1160,6 +1161,19 @@ var/list/uplink_items = list() // Global list so we only initialize this once. cost = 40 cant_discount = TRUE +// Role-specific items +/datum/uplink_item/role_restricted + category = "Role-Restricted" + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/role_restricted/ez_clean_bundle + name = "EZ Clean Grenade Bundle" + desc = "A box with three cleaner grenades using the trademark Waffle Co. formula. Serves as a cleaner and causes acid damage to anyone standing nearby. The acid only affects carbon-based creatures." + item = /obj/item/weapon/storage/box/syndie_kit/ez_clean + cost = 6 + surplus = 20 + restricted_roles = list("Janitor") + // Pointless /datum/uplink_item/badass category = "(Pointless) Badassery" diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm index 3664ad5d70..9c28b5e624 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -42,7 +42,7 @@ M.loc = get_turf(src) ..() if(user.client) - user.client.view = view_range + user.client.change_view(view_range) if(riding_datum) riding_datum.ridden = src riding_datum.handle_vehicle_offsets() diff --git a/code/modules/zombie/organs.dm b/code/modules/zombie/organs.dm index 0e2bd497ba..8d56850393 100644 --- a/code/modules/zombie/organs.dm +++ b/code/modules/zombie/organs.dm @@ -5,11 +5,11 @@ slot = "zombie_infection" origin_tech = "biotech=5" var/datum/species/old_species - var/living_transformation_time = 5 + var/living_transformation_time = 3 var/converts_living = FALSE - var/revive_time_min = 600 - var/revive_time_max = 1200 + var/revive_time_min = 450 + var/revive_time_max = 700 var/timer_id /obj/item/organ/zombie_infection/New(loc) @@ -49,7 +49,10 @@ return if(owner.stat != DEAD && !converts_living) return - + if(!iszombie(owner)) + owner << "You can feel your heart stopping, but something isn't right... \ + life has not abandoned your broken form. You can only feel a deep and immutable hunger that \ + not even death can stop, you will rise again!" var/revive_time = rand(revive_time_min, revive_time_max) var/flags = TIMER_STOPPABLE timer_id = addtimer(CALLBACK(src, .proc/zombify), revive_time, flags) diff --git a/code/orphaned_procs/statistics.dm b/code/orphaned_procs/statistics.dm index 55acae6608..bc6b6b2988 100644 --- a/code/orphaned_procs/statistics.dm +++ b/code/orphaned_procs/statistics.dm @@ -1,3 +1,211 @@ +var/datum/feedback/blackbox = new() + +//the feedback datum; stores all feedback +/datum/feedback + var/list/messages = list() + var/list/messages_admin = list() + + var/list/msg_common = list() + var/list/msg_science = list() + var/list/msg_command = list() + var/list/msg_medical = list() + var/list/msg_engineering = list() + var/list/msg_security = list() + var/list/msg_deathsquad = list() + var/list/msg_syndicate = list() + var/list/msg_service = list() + var/list/msg_cargo = list() + + var/list/datum/feedback_variable/feedback = new() + +/datum/feedback/proc/find_feedback_datum(variable) + for (var/datum/feedback_variable/FV in feedback) + if (FV.get_variable() == variable) + return FV + var/datum/feedback_variable/FV = new(variable) + feedback += FV + return FV + +/datum/feedback/proc/get_round_feedback() + return feedback + +/datum/feedback/proc/round_end_data_gathering() + var/pda_msg_amt = 0 + var/rc_msg_amt = 0 + + for (var/obj/machinery/message_server/MS in message_servers) + if (MS.pda_msgs.len > pda_msg_amt) + pda_msg_amt = MS.pda_msgs.len + if (MS.rc_msgs.len > rc_msg_amt) + rc_msg_amt = MS.rc_msgs.len + + feedback_set_details("radio_usage","") + + feedback_add_details("radio_usage","COM-[msg_common.len]") + feedback_add_details("radio_usage","SCI-[msg_science.len]") + feedback_add_details("radio_usage","HEA-[msg_command.len]") + feedback_add_details("radio_usage","MED-[msg_medical.len]") + feedback_add_details("radio_usage","ENG-[msg_engineering.len]") + feedback_add_details("radio_usage","SEC-[msg_security.len]") + feedback_add_details("radio_usage","DTH-[msg_deathsquad.len]") + feedback_add_details("radio_usage","SYN-[msg_syndicate.len]") + feedback_add_details("radio_usage","SRV-[msg_service.len]") + feedback_add_details("radio_usage","CAR-[msg_cargo.len]") + feedback_add_details("radio_usage","OTH-[messages.len]") + feedback_add_details("radio_usage","PDA-[pda_msg_amt]") + feedback_add_details("radio_usage","RC-[rc_msg_amt]") + + feedback_set_details("round_end","[time2text(world.realtime)]") //This one MUST be the last one that gets set. + +//This proc is only to be called at round end. +/datum/feedback/proc/save_all_data_to_sql() + if (!feedback) return + + round_end_data_gathering() //round_end time logging and some other data processing + establish_db_connection() + if (!dbcon.IsConnected()) return + var/round_id + + var/DBQuery/query = dbcon.NewQuery("SELECT MAX(round_id) AS round_id FROM [format_table_name("feedback")]") + query.Execute() + while (query.NextRow()) + round_id = query.item[1] + + if (!isnum(round_id)) + round_id = text2num(round_id) + round_id++ + + var/sqlrowlist = "" + + for (var/datum/feedback_variable/FV in feedback) + if (sqlrowlist != "") + sqlrowlist += ", " //a comma (,) at the start of the first row to insert will trigger a SQL error + + sqlrowlist += "(null, Now(), [round_id], \"[sanitizeSQL(FV.get_variable())]\", [FV.get_value()], \"[sanitizeSQL(FV.get_details())]\")" + + if (sqlrowlist == "") + return + + var/DBQuery/query_insert = dbcon.NewQuery("INSERT DELAYED IGNORE INTO [format_table_name("feedback")] VALUES " + sqlrowlist) + query_insert.Execute() + + +/proc/feedback_set(variable,value) + if(!blackbox) + return + + var/datum/feedback_variable/FV = blackbox.find_feedback_datum(variable) + + if(!FV) + return + + FV.set_value(value) + +/proc/feedback_inc(variable,value) + if(!blackbox) + return + + var/datum/feedback_variable/FV = blackbox.find_feedback_datum(variable) + + if(!FV) + return + + FV.inc(value) + +/proc/feedback_dec(variable,value) + if(!blackbox) + return + + var/datum/feedback_variable/FV = blackbox.find_feedback_datum(variable) + + if(!FV) + return + + FV.dec(value) + +/proc/feedback_set_details(variable,details) + if(!blackbox) + return + + var/datum/feedback_variable/FV = blackbox.find_feedback_datum(variable) + + if(!FV) + return + + FV.set_details(details) + +/proc/feedback_add_details(variable,details) + if(!blackbox) + return + + var/datum/feedback_variable/FV = blackbox.find_feedback_datum(variable) + + if(!FV) + return + + FV.add_details(details) + +//feedback variable datum, for storing all kinds of data +/datum/feedback_variable + var/variable + var/value + var/details + +/datum/feedback_variable/New(var/param_variable,var/param_value = 0) + variable = param_variable + value = param_value + +/datum/feedback_variable/proc/inc(num = 1) + if (isnum(value)) + value += num + else + value = text2num(value) + if (isnum(value)) + value += num + else + value = num + +/datum/feedback_variable/proc/dec(num = 1) + if (isnum(value)) + value -= num + else + value = text2num(value) + if (isnum(value)) + value -= num + else + value = -num + +/datum/feedback_variable/proc/set_value(num) + if (isnum(num)) + value = num + +/datum/feedback_variable/proc/get_value() + if (!isnum(value)) + return 0 + return value + +/datum/feedback_variable/proc/get_variable() + return variable + +/datum/feedback_variable/proc/set_details(text) + if (istext(text)) + details = text + +/datum/feedback_variable/proc/add_details(text) + if (istext(text)) + text = replacetext(text, " ", "_") + if (!details) + details = text + else + details += " [text]" + +/datum/feedback_variable/proc/get_details() + return details + +/datum/feedback_variable/proc/get_parsed() + return list(variable,value,details) + +//sql reporting procs /proc/sql_poll_players() if(!config.sql_enabled) return @@ -15,7 +223,6 @@ var/err = query.ErrorMsg() log_game("SQL ERROR during player polling. Error : \[[err]\]\n") - /proc/sql_poll_admins() if(!config.sql_enabled) return @@ -40,82 +247,45 @@ if(!config.sql_enabled) return -/proc/sql_report_death(mob/living/carbon/human/H) +/proc/sql_report_death(mob/living/L) if(!config.sql_enabled) return - if(!H) + if(!L) return - if(!H.key || !H.mind) + if(!L.key || !L.mind) return - var/turf/T = H.loc + var/turf/T = get_turf(L) var/area/placeofdeath = get_area(T.loc) var/podname = placeofdeath.name - var/sqlname = sanitizeSQL(H.real_name) - var/sqlkey = sanitizeSQL(H.key) + var/sqlname = sanitizeSQL(L.real_name) + var/sqlkey = sanitizeSQL(L.key) var/sqlpod = sanitizeSQL(podname) - var/sqlspecial = sanitizeSQL(H.mind.special_role) - var/sqljob = sanitizeSQL(H.mind.assigned_role) + var/sqlspecial = sanitizeSQL(L.mind.special_role) + var/sqljob = sanitizeSQL(L.mind.assigned_role) var/laname var/lakey - if(H.lastattacker) - laname = sanitizeSQL(H.lastattacker:real_name) - lakey = sanitizeSQL(H.lastattacker:key) + if(L.lastattacker) + laname = sanitizeSQL(L.lastattacker:real_name) + lakey = sanitizeSQL(L.lastattacker:key) var/sqltime = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss") - var/coord = "[H.x], [H.y], [H.z]" - //world << "INSERT INTO death (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss) VALUES ('[sqlname]', '[sqlkey]', '[sqljob]', '[sqlspecial]', '[sqlpod]', '[sqltime]', '[laname]', '[lakey]', '[H.gender]', [H.bruteloss], [H.getFireLoss()], [H.brainloss], [H.getOxyLoss()])" + var/coord = "[L.x], [L.y], [L.z]" + var/map = MAP_NAME + var/server = "[world.internet_address]:[world.port]" establish_db_connection() if(!dbcon.IsConnected()) log_game("SQL ERROR during death reporting. Failed to connect.") else - var/DBQuery/query = dbcon.NewQuery("INSERT INTO [format_table_name("death")] (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss, coord) VALUES ('[sqlname]', '[sqlkey]', '[sqljob]', '[sqlspecial]', '[sqlpod]', '[sqltime]', '[laname]', '[lakey]', '[H.gender]', [H.getBruteLoss()], [H.getFireLoss()], [H.brainloss], [H.getOxyLoss()], '[coord]')") + var/DBQuery/query = dbcon.NewQuery("INSERT INTO [format_table_name("death")] (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss, coord, mapname, server) VALUES ('[sqlname]', '[sqlkey]', '[sqljob]', '[sqlspecial]', '[sqlpod]', '[sqltime]', '[laname]', '[lakey]', '[L.gender]', [L.getBruteLoss()], [L.getFireLoss()], [L.brainloss], [L.getOxyLoss()], '[coord]', '[map]', '[server]')") if(!query.Execute()) var/err = query.ErrorMsg() log_game("SQL ERROR during death reporting. Error : \[[err]\]\n") - -/proc/sql_report_cyborg_death(mob/living/silicon/robot/H) - if(!config.sql_enabled) - return - if(!H) - return - if(!H.key || !H.mind) - return - - var/turf/T = H.loc - var/area/placeofdeath = get_area(T.loc) - var/podname = placeofdeath.name - - var/sqlname = sanitizeSQL(H.real_name) - var/sqlkey = sanitizeSQL(H.key) - var/sqlpod = sanitizeSQL(podname) - var/sqlspecial = sanitizeSQL(H.mind.special_role) - var/sqljob = sanitizeSQL(H.mind.assigned_role) - var/laname - var/lakey - if(H.lastattacker) - laname = sanitizeSQL(H.lastattacker:real_name) - lakey = sanitizeSQL(H.lastattacker:key) - var/sqltime = time2text(world.realtime, "YYYY-MM-DD hh:mm:ss") - var/coord = "[H.x], [H.y], [H.z]" - //world << "INSERT INTO death (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss) VALUES ('[sqlname]', '[sqlkey]', '[sqljob]', '[sqlspecial]', '[sqlpod]', '[sqltime]', '[laname]', '[lakey]', '[H.gender]', [H.bruteloss], [H.getFireLoss()], [H.brainloss], [H.getOxyLoss()])" - establish_db_connection() - if(!dbcon.IsConnected()) - log_game("SQL ERROR during death reporting. Failed to connect.") - else - var/DBQuery/query = dbcon.NewQuery("INSERT INTO [format_table_name("death")] (name, byondkey, job, special, pod, tod, laname, lakey, gender, bruteloss, fireloss, brainloss, oxyloss, coord) VALUES ('[sqlname]', '[sqlkey]', '[sqljob]', '[sqlspecial]', '[sqlpod]', '[sqltime]', '[laname]', '[lakey]', '[H.gender]', [H.getBruteLoss()], [H.getFireLoss()], [H.brainloss], [H.getOxyLoss()], '[coord]')") - if(!query.Execute()) - var/err = query.ErrorMsg() - log_game("SQL ERROR during death reporting. Error : \[[err]\]\n") - - - - //This proc is used for feedback. It is executed at round end. /proc/sql_commit_feedback() if(!blackbox) - log_game("Round ended without a blackbox recorder. No feedback was sent to the database.") + log_game("Round ended without a blackbox recorder. No feedback was sent to the database: This should not happen without admin intervention.") return //content is a list of lists. Each item in the list is a list with two fields, a variable name and a value. Items MUST only have these two values. @@ -153,4 +323,4 @@ var/DBQuery/query = dbcon.NewQuery("INSERT INTO [format_table_name("feedback")] (id, roundid, time, variable, value) VALUES (null, [newroundid], Now(), '[variable]', '[value]')") if(!query.Execute()) var/err = query.ErrorMsg() - log_game("SQL ERROR during feedback reporting. Error : \[[err]\]\n") \ No newline at end of file + log_game("SQL ERROR during feedback reporting. Error : \[[err]\]\n") diff --git a/code/world.dm b/code/world.dm index 0f95ad4012..d69ab5427c 100644 --- a/code/world.dm +++ b/code/world.dm @@ -259,7 +259,7 @@ var/last_irc_status = 0 if(ticker && ticker.round_end_sound) world << sound(ticker.round_end_sound) else - world << sound(pick('sound/AI/newroundsexy.ogg','sound/misc/apcdestroyed.ogg','sound/misc/bangindonk.ogg','sound/misc/leavingtg.ogg', 'sound/misc/its_only_game.ogg', 'sound/misc/yeehaw.ogg')) // random end sounds!! - LastyBatsy + world << sound(pick('sound/AI/newroundsexy.ogg','sound/misc/apcdestroyed.ogg','sound/misc/bangindonk.ogg','sound/misc/leavingtg.ogg', 'sound/misc/its_only_game.ogg', 'sound/misc/yeehaw.ogg', 'sound/misc/disappointed.ogg')) // random end sounds!! - LastyBatsy if(blackbox) blackbox.save_all_data_to_sql() sleep(soundwait) diff --git a/html/changelog.html b/html/changelog.html index 0626c09906..270dd0e880 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,158 @@ -->
    +

    06 February 2017

    +

    Xhuis updated:

    +
      +
    • Traitor janitors can now order EZ-clean grenades for 6 telecrystals per bundle. They function like normal cleaning grenades with an added "oh god my face is melting" effect, and can also be found in surplus crates.
    • +
    + +

    05 February 2017

    +

    Cyberboss updated:

    +
      +
    • Shuttle docking/round end shouldn't lag as much
    • +
    • There's a new round end sound!
    • +
    +

    Hyena updated:

    +
      +
    • The bible now contains 1 whiskey
    • +
    +

    Joan updated:

    +
      +
    • Ratvar-converted AIs become brass-colored, speak in Ratvarian, and cannot be carded.
    • +
    +

    Kor updated:

    +
      +
    • Eyes are now organs. You can remove or implant them into peoples heads with organ manipulation surgery. A mob without eyes will obviously have trouble seeing.
    • +
    • All special eye powers are now tied to their respective organs. For example, this means you can harvest an alien or shadow persons eyes, have them implanted, and gain toggle-able night vision.
    • +
    • All cybernetic eye implants are now cybernetic eyes, meaning you must replace the patients organic eyes. HUD implants are still just regular implants.
    • +
    +

    Lzimann updated:

    +
      +
    • Tesla zaps can now generate an energy ball if they zap a tesla generator!
    • +
    +

    Sweaterkittens updated:

    +
      +
    • The station's Plasmamen have been issued a new production of envirosuits. The most notable change aside from small aesthetic differences is the addition of an integrated helmet light.
    • +
    • Tweaked a few of the Plasma Envirosuit sprites to be more fitting thematically.
    • +
    +

    Swindly updated:

    +
      +
    • Saline-glucose solution can no longer decrease blood volume
    • +
    • Cyborg hyposprays can now dispense saline-glucose solution
    • +
    • Saline-glucose solution now increases blood volume when it heals
    • +
    +

    coiax updated:

    +
      +
    • The mulligan reagent can now be created with 1u stable mutation toxin + 1u unstable mutagen.
    • +
    • Tesla balls cannot dust people near grounding rods.
    • +
    • Soapstones/chisel/magic markers/chalk can remove messages for free. Removing one of your own messages still grants a use.
    • +
    • The Janitor starts with a dull soapstone for removing unwanted messages.
    • +
    +

    xmikey555 updated:

    +
      +
    • The tesla engine no longer destroys energy ball generators.
    • +
    + +

    04 February 2017

    +

    Cyberboss updated:

    +
      +
    • Modular computers now explode properly
    • +
    • Emagged holograms can no longer be exported for credits
    • +
    • Abstract entities no longer feed the singularity
    • +
    • Machine frames will no longer be anchored when created
    • +
    +

    Joan updated:

    +
      +
    • Vanguard now shows you how long you have until it deactivates.
    • +
    +

    Kor updated:

    +
      +
    • By combing two flashlights and cable coil, you can create a new eye implant: flashlight eyes. People with flashlights for eyes can not see, but they will provide an enormous amount of light to their friends.
    • +
    • Valentines day will now randomly pair up crew members on dates. The paired crewmembers will get an objective to protect each other at all costs.
    • +
    +

    Steelpoint updated:

    +
      +
    • Addition of two security DragNETs to Deltastations, Omegastations and Metastations armouries.
    • +
    +

    Tofa01 updated:

    +
      +
    • [Delta] Removes space money from gold crate replaces with 3 Gold Bars Gold Wrestling belt is still there.
    • +
    • [Delta] Removes space money from silver crate replaces with 5 Silver Coins.
    • +
    • Fixes incorrect placement of RD modular computer on Metastation.
    • +
    +

    WhiteHusky updated:

    +
      +
    • Fields are supported when printing with a modular computer
    • +
    • PRINTER_FONT is now a variable
    • +
    • Removed the [logo] tag on Modular computers as the logo no longer exists
    • +
    • New lines on paper are parsed properly
    • +
    • [tab] is now four non-breaking spaces on papers
    • +
    • Papers have an additional proc, reload_fields, to allow fields made programmatically to be used
    • +
    • stripped_input stripped_multiline_input has a new argument: no_trim
    • +
    • Modular computers no longer spew HTML when looking at a file, rather it is unescaped like it should
    • +
    • Modular computers no longer show escaped HTML entities when editing
    • +
    • Modular computers can now propperly read and write from external media
    • +
    • Modular computers' file browser lists files correctly
    • +
    • NTOS File Manager had a spelling mistake; Manage instead of Manager
    • +
    +

    coiax updated:

    +
      +
    • Engraved messages can no longer be moved by a gravitational singularity.
    • +
    • The deadchat notification of randomly triggered events now uses the deadsay span.
    • +
    • The wizard spell "Rod Form" does not produce a message in deadchat everytime it is used.
    • +
    + +

    03 February 2017

    +

    Cobby updated:

    +
      +
    • Ghosts will now be informed when an event has been triggered by our lovely RNG system.
    • +
    +

    Cyberboss updated:

    +
      +
    • Firedoors will eventually reseal themselves if left open during a fire alarm
    • +
    +

    Joan updated:

    +
      +
    • Clockwork Marauders have 25% less health, 300 health from 400.
    • +
    • The Vitality Matrix scripture is now a Script, from an Application. Its cost has been accordingly adjusted.
    • +
    • Vitality Matrices will be consumed upon successfully reviving a Servant. They also drain and heal conscious targets slightly slower.
    • +
    • The Fellowship Armory scripture is now an Application, from a Script. Its cost has been accordingly adjusted.
    • +
    • Fellowship Armory now affects all Servants in view of the invoker, and will replace weaker gear and armor with its Ratvarian armor. Also, clockwork treads now allow you to move in no gravity like magboots.
    • +
    • Mania Motors no longer instantly convert people next to them.
    • +
    • Instead, you have to remain next to them for several seconds, after which you will be knocked out, then converted if possible.
    • +
    • Mania Motors now cost slightly less power to run.
    • +
    +

    Jordie0608 updated:

    +
      +
    • Admin notes, memos and watchlist entries now use a generalized system, they can all be accessed from the former notes browser.
    • +
    • Added to this are messages, which allow admins to leave a message for players that is delivered to them when they next connect.
    • +
    +

    Lexorion updated:

    +
      +
    • Laser projectiles have a new sprite! They also have a new effect when they hit a wall.
    • +
    +

    Sweaterkittens and Joan updated:

    +
      +
    • Ocular Wardens will now provide auditory feedback when they acquire targets and deal damage.
    • +
    • adds ocularwarden-target.ogg, ocularwarden-dot1.ogg and ocularwarden-dot2.ogg to the game sound files.
    • +
    +

    Tofa01 updated:

    +
      +
    • [Delta] Allows Station Engineers to access Delta Atmospherics Solar Panel Array Room.
    • +
    • [Omega] Adds a Massdriver room to chapel on Omegastation.
    • +
    +

    bgobandit updated:

    +
      +
    • All art storage facilities offer construction paper now!
    • +
    +

    coiax updated:

    +
      +
    • A victim of a transformation disease will retain their name.
    • +
    • The slime transformation disease can turn you into any colour or age of slime.
    • +
    • The Abductor event can now happen at any time, rather than thirty (30) minute plus rounds.
    • +
    +

    01 February 2017

    Cyberboss updated:

      @@ -1214,42 +1366,6 @@
    • Captain's hardsuit/SWAT suit got a few buffs. It's now much more robust.
    • Captain's space suit is now heat proof as well as fireproof. Long overlooked no longer.
    - -

    04 December 2016

    -

    Durkel updated:

    -
      -
    • Recent enemy reports indicate that changelings have grown bored with attacking near desolate stations and have shifted focus to more fertile hunting grounds.
    • -
    - -

    03 December 2016

    -

    Joan updated:

    -
      -
    • Trying to move while bound by Geis will cause you to start resisting, but the time required to resist is up by half a second.
    • -
    • Resisting out of Geis now does damage to the binding, and as such being stunned while bound will no longer totally reset your resist progress.
    • -
    • Using Geis on someone already bound by Geis will interrupt them resisting out of it and will fully repair the binding.
    • -
    • Geis's pre-binding channel now takes longer for each servant above 5. Geis's conversion channel also takes slightly longer for each servant above 5.
    • -
    • Converted engineering and miner cyborgs can now create Sigils of Transgression.
    • -
    -

    RandomMarine updated:

    -
      -
    • Airlocks will keep their original name when their electronics are removed and replaced. You may still use a pen to rename the assembly if desired.
    • -
    - -

    02 December 2016

    -

    Cobby updated:

    -
      -
    • Removes the exploit that allowed you to bypass grabcooldowns with Ctrl+Click
    • -
    -

    PeopleAreStrange updated:

    -
      -
    • Changed F7 to buildmode, F8 to Invismin (again). Removed stealthmin toggle
    • -
    -

    RemieRichards updated:

    -
      -
    • Added a new lavaland "boss"
    • -
    • Hostile mobs will now find a new target if they failed to attack their current one for 30 seconds, this reduces cheese by simply making the mob find something else to do/someone to kill
    • -
    • Hostile mobs with search_objects will now regain that value after a certain amount of time (per-mob, base 3 seconds), this is because being attacked causes mobs with this var to turn it off, so they can run away, however it was literally never turned on which caused swarmers to get depression and never do anything.
    • -
    GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 8531efdc07..b527155eb0 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -9193,3 +9193,137 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - rscadd: You can now fold up bluespace body bags with creatures or objects inside. You can't fold them up if too many things are inside, but anything you fold up in can be carried around in the object and redeployed at any time. +2017-02-03: + Cobby: + - rscadd: Ghosts will now be informed when an event has been triggered by our lovely + RNG system. + Cyberboss: + - tweak: Firedoors will eventually reseal themselves if left open during a fire + alarm + Joan: + - tweak: Clockwork Marauders have 25% less health, 300 health from 400. + - wip: The Vitality Matrix scripture is now a Script, from an Application. Its cost + has been accordingly adjusted. + - tweak: Vitality Matrices will be consumed upon successfully reviving a Servant. + They also drain and heal conscious targets slightly slower. + - wip: The Fellowship Armory scripture is now an Application, from a Script. Its + cost has been accordingly adjusted. + - tweak: Fellowship Armory now affects all Servants in view of the invoker, and + will replace weaker gear and armor with its Ratvarian armor. Also, clockwork + treads now allow you to move in no gravity like magboots. + - rscdel: Mania Motors no longer instantly convert people next to them. + - rscadd: Instead, you have to remain next to them for several seconds, after which + you will be knocked out, then converted if possible. + - tweak: Mania Motors now cost slightly less power to run. + Jordie0608: + - tweak: Admin notes, memos and watchlist entries now use a generalized system, + they can all be accessed from the former notes browser. + - rscadd: Added to this are messages, which allow admins to leave a message for + players that is delivered to them when they next connect. + Lexorion: + - tweak: Laser projectiles have a new sprite! They also have a new effect when they + hit a wall. + Sweaterkittens and Joan: + - rscadd: Ocular Wardens will now provide auditory feedback when they acquire targets + and deal damage. + - soundadd: adds ocularwarden-target.ogg, ocularwarden-dot1.ogg and ocularwarden-dot2.ogg + to the game sound files. + Tofa01: + - bugfix: '[Delta] Allows Station Engineers to access Delta Atmospherics Solar Panel + Array Room.' + - rscadd: '[Omega] Adds a Massdriver room to chapel on Omegastation.' + bgobandit: + - rscadd: All art storage facilities offer construction paper now! + coiax: + - rscadd: A victim of a transformation disease will retain their name. + - tweak: The slime transformation disease can turn you into any colour or age of + slime. + - rscadd: The Abductor event can now happen at any time, rather than thirty (30) + minute plus rounds. +2017-02-04: + Cyberboss: + - bugfix: Modular computers now explode properly + - bugfix: Emagged holograms can no longer be exported for credits + - bugfix: Abstract entities no longer feed the singularity + - tweak: Machine frames will no longer be anchored when created + Joan: + - rscadd: Vanguard now shows you how long you have until it deactivates. + Kor: + - rscadd: 'By combing two flashlights and cable coil, you can create a new eye implant: + flashlight eyes. People with flashlights for eyes can not see, but they will + provide an enormous amount of light to their friends.' + - rscadd: Valentines day will now randomly pair up crew members on dates. The paired + crewmembers will get an objective to protect each other at all costs. + Steelpoint: + - rscadd: Addition of two security DragNETs to Deltastations, Omegastations and + Metastations armouries. + Tofa01: + - rscadd: '[Delta] Removes space money from gold crate replaces with 3 Gold Bars + Gold Wrestling belt is still there.' + - rscadd: '[Delta] Removes space money from silver crate replaces with 5 Silver + Coins.' + - bugfix: Fixes incorrect placement of RD modular computer on Metastation. + WhiteHusky: + - rscadd: Fields are supported when printing with a modular computer + - rscadd: PRINTER_FONT is now a variable + - rscdel: Removed the [logo] tag on Modular computers as the logo no longer exists + - tweak: New lines on paper are parsed properly + - tweak: '[tab] is now four non-breaking spaces on papers' + - tweak: Papers have an additional proc, reload_fields, to allow fields made programmatically + to be used + - tweak: 'stripped_input stripped_multiline_input has a new argument: no_trim' + - bugfix: Modular computers no longer spew HTML when looking at a file, rather it + is unescaped like it should + - bugfix: Modular computers no longer show escaped HTML entities when editing + - bugfix: Modular computers can now propperly read and write from external media + - bugfix: Modular computers' file browser lists files correctly + - spellcheck: NTOS File Manager had a spelling mistake; Manage instead of Manager + coiax: + - bugfix: Engraved messages can no longer be moved by a gravitational singularity. + - tweak: The deadchat notification of randomly triggered events now uses the deadsay + span. + - rscdel: The wizard spell "Rod Form" does not produce a message in deadchat everytime + it is used. +2017-02-05: + Cyberboss: + - bugfix: Shuttle docking/round end shouldn't lag as much + - rscadd: There's a new round end sound! + Hyena: + - bugfix: The bible now contains 1 whiskey + Joan: + - rscadd: Ratvar-converted AIs become brass-colored, speak in Ratvarian, and cannot + be carded. + Kor: + - rscadd: Eyes are now organs. You can remove or implant them into peoples heads + with organ manipulation surgery. A mob without eyes will obviously have trouble + seeing. + - rscadd: All special eye powers are now tied to their respective organs. For example, + this means you can harvest an alien or shadow persons eyes, have them implanted, + and gain toggle-able night vision. + - rscadd: All cybernetic eye implants are now cybernetic eyes, meaning you must + replace the patients organic eyes. HUD implants are still just regular implants. + Lzimann: + - rscadd: Tesla zaps can now generate an energy ball if they zap a tesla generator! + Sweaterkittens: + - rscadd: The station's Plasmamen have been issued a new production of envirosuits. + The most notable change aside from small aesthetic differences is the addition + of an integrated helmet light. + - tweak: Tweaked a few of the Plasma Envirosuit sprites to be more fitting thematically. + Swindly: + - bugfix: Saline-glucose solution can no longer decrease blood volume + - rscadd: Cyborg hyposprays can now dispense saline-glucose solution + - rscadd: Saline-glucose solution now increases blood volume when it heals + coiax: + - bugfix: The mulligan reagent can now be created with 1u stable mutation toxin + + 1u unstable mutagen. + - rscdel: Tesla balls cannot dust people near grounding rods. + - rscadd: Soapstones/chisel/magic markers/chalk can remove messages for free. Removing + one of your own messages still grants a use. + - rscadd: The Janitor starts with a dull soapstone for removing unwanted messages. + xmikey555: + - tweak: The tesla engine no longer destroys energy ball generators. +2017-02-06: + Xhuis: + - rscadd: Traitor janitors can now order EZ-clean grenades for 6 telecrystals per + bundle. They function like normal cleaning grenades with an added "oh god my + face is melting" effect, and can also be found in surplus crates. diff --git a/icons/effects/clockwork_effects.dmi b/icons/effects/clockwork_effects.dmi index f315ad1fffedbfa287c0f1493bab705976133800..8bbf24a7ef1dfaaabbe672650d934d6c3fe2aae7 100644 GIT binary patch delta 28463 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 N3aIM5H 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 z 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 QFrX3YDpxM$C>i_yFCOU6%>V!Z diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi index 732f2d2d9061b752adf6a71053516e95bf40c114..31a6983b86f87a8422776a357912045b79a95ba3 100644 GIT binary patch delta 13733 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

    tltP0s|@VvJd06;;lL{eaAXb1p4 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 delta 41254 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 L8sEa`*uDBMb;_}K diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index 2b4f28029a9a799a1464b87387fc9cdb541122b3..e1dbb99158ff0a9d3e6ca9ffca1cc395d68f4626 100644 GIT binary patch delta 6693 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 F^*_l-SDOF; diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index a49080bcd1ebaafa228cd44143ce838ba633e717..8a48c84c2f64288b398c5d5782691f0205367d11 100644 GIT binary patch delta 47691 zcmce;bzD?I^apyE1r{V05Tsc^LPaD5lw2ASkrI%SQo2K$ONR&;C?X)z9nv9Yw*M?>#>IVRvTE%$=Qc=FFV$IcG;A(H)U!zaT^qPASp@dChCXr)z0+ zO_;tbHV}#A2BDpmYY@^&ir-iJ-8m1_F7^b&41I*ozCoCEZB$^RUu0zFyZHEsVI}m< z2M?&}=~WtycxM`YO)|k6T@0|9$K&5<)Q}OSP7^8r3tzlc7=4(l(KT%$V4|ULn;0Jn z6Rhl*SJ{z!ko0&pDD5*HV+<}sRe3(2k|K?ikHC4z9sbzwD#;*W1Y8>JBUM73@${#u z{DEC?`mo*yTEkO8ln>YITNOR>Y!=xr@H^*`x#WauuEA3^RGF#~!0r4@9F&!HYjG3G zkxGpr4zkw40GG3Z`ac@;y8L>i;`gS~S^k{FcbYApL$iWE+mc*05n+d~FNVIcCxG*h zF_n+U>*fkyQ280~^{_IqK-YuTxO$XZ%lAbRRAEo%%ehu++4!vjN)3;MKD zUt!O+RT_KZ4-a1p2nnV9_@P#Hwv`u27FvDk;5JsM>Dhm>YDsirnDGEiEc{lUR$eAL zaR5I9nQiN{WzVzari}|$W=u`X?ABB5))Sv3ovU09Q){0jRhC!I5fjw022Q!n(9_d1 zj=_IDLqi<;XXn90q=K9YWh+uLfv%f1Tvo=Fe;^cHJVOrSnhvUA@YK&cb2^UEGgZRA zHf6hD6VzTq`V2$h&yiQ!wyXygqP<`j9v0}&v5wKy)^|kR_4Z3RXo@KO038IMPkY2a z^4YD|{CG8weyF7^w53`igqa}Vzg}}W-_L3PyA;42B!l>$#{VoQ4n)J{-H3vq^kAa7ogt)U7X^U%hlI^EGT6yx6k3sEf)y zn;ty%VbngV&pkL3(fjx@E~ep&ONXA&#ofu>8y_iX#=j=qErrtcrcCk3_-!zEx7s(Go%7xcrB7ooTpw+_zc2 z=0ChM1*uC5#Q*$NRaf%*{p;oQLB{=Jb89F5W;I^61}!cGv4W%AWo-3X6#LH3T_K?x z&P$U)-PrNy)3RujbAZr;n)c^VZJ?fAVss$tGP1N(VEvKedrzxJZU@3jvG?TE99dYK zZvOBA&t9h+#MF(EUh1YjRq1Kw@Pf9uqnp0WzIdpk9&L!b^Z_y;faR~-aBUIddGM`i zo5fUB-HigPC-~-kOS&Ce055f8l;O3|dG?Gl!#4g}OdZMLsOcYxm7xm%qPFe9;==c^ z`dUPbr&W=_WTP?|L)-uk#D%#CQ_nX9_>4hjw+SJ=FWiNHy1qC4=xS9T83^j<-q(}0 zl$Vn;UM>Cf2>NWE(HRsKwdO=S8ZJDE%@ga~u2R z*54ayU)9vqMuzO!KYRenf31R+zh1Jj0Uh_k4O4EKMiL-r>Ug)_A4n-<>dy9>i+tPF0J$=vDN;B;{ zXlMeLO?P&7-tx6xi|{SAbK5KN%IUV9@mw8F*&lrEz|W5^IX-rOeY$U1ZrRUqX!#|c zOxZkIrFmi`LpgqAr9V^0+ZzwShDIFmauCc@g+ptgv_FJPVFRP!9-WQa6-^sbwhu=nn4mc*rkbZLq`q`F1@`hruI zYbn=vyRPTpbgPAwE$j#@daad$8ERGpOcfk|U2Y9Y(Z+>-0ykGdm!yy?z60#5%bP4W z_lhzS8xBrDXLGFNKpWu&Yu5hU{QM^jYvHLw{ctO~2`?i^v z!>gh1bn7`UsSjilpb_VP&`CGpgMQ}EQ1lc$^tW2V7CD8m2 zM@)wcK1qPv&WqUA{{DX23gv~F>1@UvUzI0MUaqXH{6T~4%&a5O6G0kSC+dmxme>!E zLFf93Cx$R#9OJ5Q#SylDB&zGY8};+B5j8su1~`kKz3waoJE}zX>f0OZ?~8&17j|3! z>o||en(iI<^j~gik%ZCSH&f&hs~^g+ZHr=TuW2tbZ6l38r2b|Y0k>Fw#cw)L`A4mP zSo!e;PkNv69a}o~_4Bvh6bePu3vLxaWkVIi?SKFH-G`!SH`$-W-Z!g^)qu>+Ub&27wI7=ggXWi8 zxx@8b7h7-E>eDva44^v@8pALD<(~QRJHFa~r(1s^pMz7kbV$ws3TJm5f%nPb)^zlT z4;1OO`zQR&>wG7p(u#_NSCzKok)W}pT;AB3lILIidekL%eeFl{j;gOjO||-*m&s{sV#GwYNW3>}TG| zbx%Q{-bc*PGi$?l&JY%}O-MnpU>-FFoduMxfCcu>7xkqLvyHQt!;cL+V@$g)>MK`B z(s+itp_Pc~hB=O<%Os~KdQc(BV;A2GR16N`XLBN}tK$05($Q8ppQWWGuy7I!*x*l$ zSJ-PGMzC^olbE(f;RCWk3U@Z-eg)qGd3dM`3e6NAzbO?L`izG{naaNvW|MSl?tG)a~}2j2k=(et#4mTvQ1)FR6>`?rr`h~Xbh<& zDGsv*MH59-vVbBJ;0;|IJ@h)fOQAH^P;Px4ckcAzmpAX;k;!$?o*ius>l^-F;sb4PXPIa|Tv>qxva z{TkSlYBaYGhsz2?Ep=Gt5oq#`h5BhrB{)I!*u8XS!Z`E zN=C)(^_ZD8nE?$OfR(x-9`l*skpe|ZT$Tv2VwhPk;Pg){8Qhn7`I3!8yp)zhso@pH z_mwJ)!TX!aQ#h~Nbo8Lm+ESpmSMqrmPK<>88ssB&=HL=6B;?@35OdL8me6=nm@W~@ zzWC^4>VuNbq~DhcWZPD0gV0ZGT95@t4ryQvS!YVBzp!YM>M099KSjK#kmAN>uB3;&9sxEs#j zM1z%7_uY<(jU^hy@k{UctOyiQI{n}(gH%2bq_%@`kl^{Oec?1WWG%MsVAih=jGLOq zjX|cnPQj}wK;GvKU_YFGVx3Q#%28we2!*Spn=*ZNEfBI{vNeAxdoMxdO@sG<3jlAhxq@{}%<$^9K~}Z3tgV3M^ey7cn|HTTMrHza z1Fcsh$DplyXpjSHUXA$3ema5Bwq7MUnSNil3Js&rKcAy>c^OQZS~{~m+nlnH z&~$b()Ti>!)I+OcEq!|O_4}*~tk4C?g5<;<$|CRAV3Zt@Lq4RG1mOw`t8TU&xk8yd zzDQwVI&;iO;|Hg-1cqDv;`%F4@sg51!>v)Y_825iD!E;Q0c`%^<&Mkoo2^^KW0?HT zWr8xz-n958?p*PhbB{^wU^e^Y%( zewx;EdA!iMux^~1mNr~-n3}M{c*3gVmY@}+BF-@!&kS{3V$1GmRgz?C z{W_$BFkV6MRZ>A--sF>Zo&&v>2YA2)VZa3%zuY}A+DXA1I~h*>Y}_q#qv->C`I+3@ z*~-%n;=8vj!+>{jpZq(w?8pnY-om%pwDk1GqyEI6T;ktJpa{;Ay&kdTQ{|xu?;{T( ztcZ_!VJpQTHS@F&6X2NLaI(1<^GwhDk~)8jcoTw2+J_YPw0Sa2ZN@U1B~z=x>GKLeQGM{L+8+XhJGKO#5hd{x*|L*q#~K#Y$cd)AR7~P~N!F)X_o2 z&dy#;a65Z{7ENFq&7A6NLg9V+4;WJJ(5QHtXdP(>Rj~mC2yy`{{G-K(VL>8 z^p1{>?kWl!NB2miex^?!EbM=qPVQ?{*nu91f`PCNo(owYuBM<}=D^0&u9-`0;;!hV zfXdbhV@6vW%;9&?FXt3Ks`M2t2(xzzs7>7gp$9|D|CE%F!|n; z*A~mITLcIMf|o8bEHY9~SC{Uu+5IOR*YDi9Q*=%@Wcc3u@9dtT`z#)PyzKnqVsNaX zua5Av$7GQjm;NMFFtp`vQ6i&fzgK^szO3m#EUD1q2S=xC({YiyEMN-cMd{}boA!tF z0YyJ{C|`66&K>kMyHhl@wrV^Vw4mI~qoxm^JG~N#-1j9fFN$=Ir<q@l8mm!xOJ>Hk* zM8hg7Ds3_8;H%MbjOsbY{D<*E3YKV4>pncx`}i70N71^5$lQ4QF00}clv(*A;Y8O_e%3k!>tA%(jL;8 z+zOUWu(0sSoOYe$h;9RQ!#kHpQ&oR*==;{qfz$gSi$m&9%8DY(DE3W_I#c1N>*U#q!gYAPy>hpT_o2D~A4#$WlwSe^LG8JI z{#6&2!pFTh)61--sRZGQWZ*^YmW*_O_X$Y72=uw@dC6LtzwO3N(ImlZh|IZcquQ?@ zxE|s2voW|u9&6-6y90KKnCA3dhf2>bD1SwTTBfZ;|; zs_lWZ6LTpUdqrbh#ux_+D8%NMTtjW7e)M?;*YkPMZlkX&FAed?i2Jpwsw(%|eO~x` z{ebrcF@E6oT>u7c8WIoKuP6r8uBG;7jeK{*$HjuFy2P(^eM$Lyr}tst?;kAL z=kxY5*Wdy8px@C(yfh0n4Z}qez;U-8=h4B|(I2b?Hz>56-1&aXuVcwxfX;Dg>!`_y zx1AOUaQzLz=+JfiUsq_OS@S$Ba=$t^y4$-$+Km5uprA745Ey(6Fz#-$5V&(S(yUv9 zy&Z@TGlwWdoG7r7*&HAkVuy|lpj2_>EuZmI;t{(F^RU5+;hcy6COFg{#RkzJIl*!{ zbLJ82#fB>76t(E8{h`e#{k{yh0umTJ{JN76;~NZ(hJY9MWl@Eqz$)N3HI`^OhB66a zo)y8He%obETV6(N1809UE#NnC!=vX!3Jt~4PT)@LTTQ) zhCBV&BeTPz-?ULz6*kxi%@egR8Ls+1%i2ud6{q-vm@!sT5*d2_?N!Sq`gNJFvTc6Q zn7D&opzrfDsp&n=D>y5Ed51qicKQ{ppHee2@B_`o0%5>Zz@UQi_U+p=V)L{E0|U!W zsEJQ7CWuNHS5*Vml1IKDF*^8OQc+R;Ifl+z{{F)U zoce0VtnBRGMbb*H1H=jG!;0jT6zLyQTcR`P=UjL0#OzV~q7s(JpD`cW!7C5#inTVwrY%+9(UXYO5j~AX$vK3 z)TpV`sIxAdd=RzxY3O!aUDAu3lOxsqX)4xz(Gs~*E&Cs@`iE?_plHSj;rr&dbXREO z?($#_gJzNK^DPC6|Ojhp-WUQMZ7+WZ&{=G^hZGx_kzH2>3; zy_;NlAe3oO+jd#>j{#ubJohjbN;^H}2i)y^j56D@HYo76P~xT4VDoe+=__EnV|Dd~ zG1}3#nAGSx;vCJ;Mhl^e=7AxR(af^T+UV|PzhLK2hY=V|3(B6!&%(z`G~pnSt0#2} zAxW3W3`KK4a_Xs?kjOvSa22uM8Zv)yIyL>={bzySeiFU3k}@)Zdp~9v`O={iQPcw4(qAXnDHR97rF%;&f48VMU>_mSaoq zI2B)RXFA^&72G?G`S<7XqDR+XT6Ir(4tSJ~?qL_+2{6vryjyo|e4O8{i$QM7$g{fB zS3D2{7}-bMx=_$Ac==$$0SU~E+t-)TdSk1d*yF{$g#L7Nu-qYF!P_+9{rjx^KGDsX z;rpx+c_<-s0wU>c=C)!zbc1sP005X{2xb$92+%OAD@KL`a8vV`jGONPVT4UEo1#vh z(164M4UG`6n5238EGo}lQqzGKm^seYkPaZruB)?|%Tfb?`dz2d48cHh@7(jF!t8xk z;QK$>z@CPNg$J#?^_Ej_KGW6WP>7K=&t80Zy~~EjLcp>ubwmuby4fSW7Btp??aA>k zC+}6>6A}>NWF07M=mZbRw0-hnD&d?P08=8R4-!Xr+Ee64L@ROgx6GBk<^C)F9EozR zI;{NMcA+uCLl-hXDee`NR3jkbZ`|YX{Rb{!ly@mRYR*&*&zdY&M)dOlbVn?bi*4z3d-r68KMvVgvI3d3b>ux9vcotukbsYq(^ZB8ly(I58+vY^RN7q{6Jtu`krToaw?pXSH?(Mz1WWHT^ z{gbvWY8d5b+1qQd3V!;C1i-H=xwHOcUIwnf%fDIgr7ytU0m}^1@`r0)`GI7G_7m+| zwY3Cs!Q^4a#LyOWfn^YJA=t7RW80Z&o^+dzysOysww=|++a|jIZaCL3iDN*Y13(ZE zN@oS4^(t&N#xOqnY6gL1hmE0bQyvPV72c!#EK&rn+y2dgWUDahsj$WzBy#-y-yv$% z$ex<{9zimxL>4U#2P*XsHkX1a=+VK!E62b^=khH#zW}nJ!$(S-e9eg!cg78aA#ycZ zCo*ZzBcactdm2x;E^CYHPcTXTw!@olJ>T1w_=N05-fSJ;Y&z0$o#@t1=^Qp3{dbm* zROmVWhv+OsM4x5yg1@_oHtXLYfxjR(>Wnp~F=y44=xXvGlBhRt(Y?7)`R%qae)&0P zBqcqA!rLM@mR>iP5lO}*vq<8`(-}x6)QE}_A(&08tvNLq@_QcprTt%b5*l#Yo=xYC z!HW?QbKgb)a8fP^@dYNn;Fx*Gb(M^HZ$+gF^c>RLcG-yCvll#EreqoC=yh$Ty8_)Y2h9h8@>>c<}l zkCT%>pwXFAH~b;%_sI7uU*%SO?@u55vl-!<<2#%R!djI23KtV2BLu*ol1Br&T{gX6 zuT(P;^*vcLV_Y-Y8!Sp69F8X4Ob^#bzew1AmDy$~;l)vrIAMD+U8(l5UPJp-Sa&5? zr(|E0{kX___}(Mz?bbQv_?g*Re^|RbD+bAB)ipE%uQUx46VvmbmeAFIsQ>7A^zCF`iwYOB`dM@Y8<;_7{9(ON= z{U_$$S3R`@O>V&2a5-FLKIllKig;m2UpelK)?)0TL25#}4fJK+IxrKNuq zsJeu?ru@VgmK=O>36=JP?m#qSTa@Y63`He$hZJ+6A|$q%)THVn6_my; zM?K>RQ6Ba}FPks49k0{}OgcW2!7kJoI%Ji85pQ4T|NCXY@3d>UrCJ?rBy@K7x#w~Y z5Z3SfQB3%_&oPG^l3>L_O&;Qh&@J+{a)k3zmmCZU0?hmDZNvmmjg47InZ&}%q{1hA zx5)LP*#l8BR~0a@2{a^UxES&AdMz<@3MM*QIEwV(%HsSdK>fpJl>cuM7Nd8>X)4@; zk`AlG!yKRDdEP>9?9ikTdzxk*-wre(M*!xhR-o)!uIqph-m&{N`eQfzVWRDwpzMra zjU41x8pCh87H46}^nBz8X`r11)$B(sHgM!O&N*0mZT`vHEM~@EED!(KXna>67N<`c zTHe~aoU#}Pv5L}E%`Y@7Br`g%?gUx5_beKDio7|jdpjRoMkg{+ zpkmYH+bb*o!IXQd@-~b0ygV)y6=BhLxA(EJp?{lx?Rs#^f8UAVaabSWo2@2q4mIsd zQ>1a(>wKKF)#)Xl^$+I#y{`*xegK-7SH$dlqA2)c1o#3T!jeJ0ycQv8IQ`UiAR?s6 zj5tc**0?7=%Yampq@iI#UY^SsCvI#E8cLrQAm687i9VdYDI%T` z+rox?fp-ymPxmO6lO4$qc9uys__sd;BwxNvW1tKVN$_FLp-D?0`L~|v9AgvR-u~$B zmOH`mU2>pk!X%f>Cq<=kjd5Gb_Jt**2{NA+|1i);g7@FX5pvxs1NpEY6U`#jk3Oa( z_=cC9UU$DT<8-1;`ch&42)U^HSa`V5`WMfV4(JyZ9BUGB;qo>&c7z>CgTTb@up^xi zwXrWbkYXg+&+(r9mv7r7HlG8@2co+^gOG(VUg}OKvX439GQIzk!x0U^11z?5-%UGe z$HrbpL6d4sr2|CCDK`RsAuHA~-3Oi*QmsIx4nCw(@5NI`!ICq#a0Sq-!6I*STlgLzZZi6dbF&s2Q5eW9(|tGM_9s$EN(k3Y1hn#_4VuQoq^~( zqBcyx*!XzxBUhB%c({S|a*mPlgKKn`+G}pXOs67AH!%ad{y#n6<&sM1Z$9Kc;9Ap5 zU}_sL8*flH;5YCLVSUHlWJ9nGG$i%AWo%dV-u8MIE+<_Y|%!FnH7qop!k# zn`?j7wRPD~2rw>$sWwXO3qsz$B?cODDyR`az%`;zD>M-gY}N6bq&`FS=MOLIa@qMg zt{)y?s#|z9e3Rt2PtkzG#TUMjGHdG9)di#BXi>L27mjDA2VX(U*R30C!(2X>^IeI6 zUv;&}`dAs!a5U}wz(20wLL0~40V|F1nUpF`+MscBiIzkx&(20izE&^e@mY5w)?PzH zIzPJ{?;VlU?h^vLdM&ZNlz9WefNElY4qpOT@i^tJIAs4i)JX@=FXWE5ThSRC9-!n*f({OV;p%`=% z?)lR8usv%3VS%u)v}}a2>)_wQJ(?GY-UCAY{OPu=9Ba8TH_fb^lFLdbA)o?tF5;D> zb;>$D%vi^jtu1l3h5GXz96NP0pK##mJXlw=UPvlvn?}cQEu9&JmxD+y?j*hJRRsxP zNs!hZ+?EnQc0H8H-P*W_0`Czb$C&`S((v^PM&$ zTG~I~Md5Sn?oFBBAC}jBv~#xp9E}?h2G~s2F~-Hk{aK2C!qLK;u^(#Tp47&R|M7QP zf~lDqN4ed!ooVh3v5LQ*3TtTVuG<=X$IOP}k~CT))p68_CHH)U;eKudg2hUgbOn<$4 z!~L2FK13$6 zkMGGOCdI?f=X+;g>Y2HBdcqn{Qq~PE@BYC@y+(I4_u{?OO9hV|tL6zdj{5^KGoQgz zo*D^N)2|&-rWP%1K!e{UMNUM^@D$?v01V63C2^A&@Wvu`1>RyK4G4c?xCTP7;>QR( zdZW(G62qOQsn*=tO|Q+BeUZ~nd*At=__%)IA2|#T4u)3-6knVrCuO=`!?(Bp7=aTS z6!Mq_uv-r4q6)Uz$TW_L2@8Mi777*@^Bbt!Z&=#c$m;0CZC3kyg+hpl5^bIp1|&cD zbimz?HL%~yqmCtdvn*$>n}WmBrJ8xUrmX2hwA(!}F1Ge-F@V*xH|}#*gOd5W{%w&7 z6P>5Uqx^}f!ZIESKul5qirsWT;NWq#YVxql*V0&4?*MakKQlr z?%CcGjrzxb5`_ix9}LR1#e{NM@(487N;4g=enKFCO{y{r9s#0ZXV`QKt>A8qViawl z`H11H7#Z*-BTahU7>JH7I7b}C-o1wuMtH}X-9su+Fk~LgBqi3Ue86%0@z?oCc(O3I z{vMJOaS^+85BVO^9_zt_+(Hz_TJj>*z;5$ka%tc5YV{jS*EJTYzraJsSYbXS z2GJF(!-ot4>m_~bw&W@yEAj0Q`fg2oe|d+BcfPmSexw^~2}jdKdHFh`;V7IC!s{H& zSD^+DhwD0&R8+=8_WdoE&UaxT@AIrpP4TqBWVg;^KqkOIkJJW9;m3eWrbf_LjGLkC zA~^OGi!vcnbD~eM%&}b!CxJ-%uMs%z8)=f%-32+?>TbyBzNRXDaoG0)+t8*#yPbQm zr!w69te^E6rigLjjATbu3+Ff1AR45Ce> zF%D7+liVaSKvkMD+g+CB9&Fgo;ISO^y)Gl^uXt;E$fcA;q;hH8DXiaF9B=S`b**Fl zVBMBn6Y`(WL+|(f8#zKMyoB}u*%UP@?-7)dI3TfSLFZT4GGO#PmZ01sPi&bdlA!~`Mu{58KzW6>+C%#10wzbBQWE;%Qn_MM4;#UalXoe)iiLisq!LI z;f|6+`2{zX7#TBNx2AL4S>YVeE){lo(@7C0JDG&rD~hN@iY~E1eja=4)-6@BvA6O! zrKP2>*!m^(o`ZhAv<%K$c{8T!@BJ68t13qP@m^`uC9E-uMWjW8jlh|0Z&um5Z6DJ7 ztLL{0DgmSc0z6@?79#&Z*-7(R07<{j&wQzlUVmp8K@6}x1#aLyrr{stBVgstoa zctO#<%EL@$|6AC9UVo;+D?6xpY~Q=ZEkuTkkR$~b7|xzntRuag zqI^P^73aUJ>?S`k)%Ym3+|{i;b}U)R1A})vvzwCy1TG2D`6$fhRHWBtwbGF@CxNv5 z)(Uk(<=#^IfJSDFB~6O47qcQ)O+h283z=A_T8G(5H^H(OvP<1989cT{hNx_zUl6Oa zSzl+#fAu2orIl#YgUVY3vcNke@XK(iv9mU5bIfi-a%b3sAW4LYCavaN5UJeA90sw9 z=y_@svI`sJ7q)tBOX}1-1#Js{+x8HB^Z(vTMN3xD=VlhVl5kwLb?Bh%{E8i)WME5F z_1Uw5)I)3KY1;h!QxJ~N>0u)P8lc}QkBep@mmwa%V%$unFQzrLb;&xhGl2omc&hFk ze;)vs&Cbd)3R|1ac>zBI%F10?P6uT>q~ojoJOXwpvU{mHPw%}R)*LU(DU=_Iah0P6 zUGRBAJhoMZ03R#KFI|bvQz}?ji+*ch)5=HCN_0s4$ZPTftlzAfRkAzeJs0` z@uE_?pSJ5%hB91!rZF3z7_tRp7%Wjjf~gN*)SVeRr7>=4Mle$5mU)MI0$x_V+Y0sx zg?69DGs}^nR}1cW&1t)->S|7nQIcn`mWr~n7Y97!SWmoh# z#tDgAVAaELC~-o3EqoyQN$9d-UHG2I1U8uJxi6&X>-n$og{TWi`&62^l-PVa1J&U` z@m~P_`2!gZ-v5pnCI}!S#bYJ_|0nX9j1=bS|Fla#{QtwP0K&8TKRHHVUkC6X^Qvw$ zG-+5L_l?I>wD%Dg9!b^G8Mo*x`ywm9z0++XqC-*Uxkgu5l zUGgtsB~o)~m&Xl3UY|Dk6OScVb1roIx7Nf&+OzieL?g|zb72vzFJvtt-<33{VnB(+ zj>Aa(B3btIunrmG@H)@Q!5U}Y#a~oI?20Io4Gi4QnMLzT>ev&1wG&fHRz+ujguoIxpTJFEYw>j*`p9%T)J@N)C&v@?z zNd(W$nVheb4X0%$dA@U>@zO!+o!6B z;l(UQO|^d+=#T<2NZ_sDuRowfiAv?Ui39K3S31%GK*5kU?0?Z5PuAXUrV@e|wf%-? z`Mkcyb%42Kn(Wo|TP0V(ufZR=&XFnK_}yOyF1Zi|1bLy1M%pk& zn-f)6(R$L-GOjz&Xfgi{3W@+Y@N%xH$xBV&TKzCw-4MgDxm}G<{?M5ndS42uhO44=Q@{_EO`cb_wqh z$;0P}b2IBZmE6%_WW{0d3x5J8_nEQtpVPWbp;c0nmhp#DVcGriCBOM@A^?Swr{lzR z)Lrpit+McCPhDk!koJp8qR`i0%J1qeIElJb@{-5QK=X1-610TFxj6oOzl?C73=!D+ z0eh)V4LRqJn<*Ukbm#%abWC_QP*-Y0NSW>4KmIu~vat9iS+pt1<8#9GxAE2v^A@u4G zB_%cWO)f5?2qK~%_xaU5qQb+a+}$4*mz3-bA59NW;FtM6e@=51n(gDQmnKnx0OscA zie7bqH-LsWR9si-JmeT}KPvO?!{-$W8oX(}gv3lT`6Q{=nW@(Z6L5>0pI>N$u=oq)x`(2cXTw9l+5u? zfE(l~u+7oBlIA7X0UFPhaa(q;xCN)BQ~WHOGYq7q_3g zV^lT#VE|Q_m-!(9Yog3+{f#SR5UA@`TsVYIZA$G zKLvuWWy&#)*EyAsYXl2`$uikY7Z*LBCwd0oH$RN=a~svi=y#4%g#a&=cz%HJ#Q{v)S z$shoB%AlCsjTblCZ{KVA!k7F6cExyZ(~>iV=jGkCiI@y|^*qFOse*-@izHfXm*8Jl z2?Ls!8zpV!1B4MomyUMBKAIi6wcL%7AEqdP`92p?2{>#b;+g5-sc-p{RDc^_paQ6i z;FPb#D}%?Q-M%4L5#nfUG0uGxvp+)D9=h$;4@T83L*_`Nj*E+ch=>T;jT`vD2;m4W zrm3l^r?=OCdD%kj>=*U=qVtkKNn@M@_%Ccgd){>h^W`BYhL7(7jvqx>`mTXj5*Pbd)VnlWksC*i0ApD_O8r7tq3Hk*A!z4d>~Kc7BT zTO%QTU8;aycf}k1&UEgKgCcDSE8heB$ZeNC%^=N_&1*UhJo67cijqrgx#5e%P`u5u zL(eeM%Ro(NyAg7zxO`NY-5|%|wkEH5DSGxRh!F6Lc*|0ofzv#BY8s`YT9Ki&FFOtD zImrYq;5)am4-}IU`=yD&lKWU>jNF*;-NX#z_qe*RIZ;Xg^El3fzl=BDu-MtTTZdr* zKNP-fli(EHTr`VaF$sAQZpbqst6%V$`Wa&|+f#S?XlYBw*Cn`LghV^n(4=-WqPJOo zTrBs+~W`upe! ztmGoAC2-@+>2{LNtth>_XEryJ*ZZZD%wJU2cr{E;BB9@f^8e!G*^hbKXTtZGl;0Qt zWP*1XD!SwHs-VLA_^cvg6dN0{Jz9MMfoIWyEHt0;NoekK#4w&p7+Nc$NI{>ZXg*VE zombXKngB-!$g%WO>G#?Tij?M?j){D#8ntks@%pTSmeJso2+s$(+bc zGQ3KZw`VO%=q2pPHHHUYB%vDyk@oLTyVienH#y)ni;4t&+oMU6Bz9Yi{t$IofW}wt z>m`L1r>Qqsdd9NOU6uUVb*AI1lYmq}=42$k$|H+_ARg;KY8@gmjg>>N8l2&-GQNd8 zd=_h*wP>hs?L&1Xdmlc0=m7ojV`5@v@>wn|@(XbQdcB|Q58_v7bXCX7=`b-HxXi;k zGlAX`R5Cw0)I$+~#I5o0zVgAZtM!TI7w27B7T|{xoYH|MO8r|6kLm}Hr%iJmE9Ez% zyH2Iil^hkb4xLZWw|)%LtW?n9QC|}n7X9i<7q>EGiFPe3zQ0>%+Zgjj>IM@Q-@1Uca8ZV>Af0>E--A&##UT2TZ6MB`QJ#R5&sa!Ugz?T$AIf1!2JCa%5 z;dck!LvR3j15ChgzSQsEzOuZ5Z*jcBW|Z;m|eLYURzeLi#YUsH)^*L zIvm#;#ULC2E8g{~TKd`9*~$$}2^kYp)MSm@)p@TF#o#|`BQL-3d*Z*GJv$K`vf?wh zWs`<|XZ#5+^QNv6FbGkk-{Il@9nrt}&QmA(>J>X+bhJ4+0@ivxusdtZV*<^(!R&G^ zJ=FOf+>`0sPs`|(UXBX{WuEOJ3aW?v?jQR~JggtPi>tjR`ip9mbW+ZA+`Sr$naQyx zc^J606u6h$DGkRT+}D4<(PL0rZhNyqj8=wwt)b#6ez}K-6RErYrd;~QxbAgWyYZ>7 zx((_O&?AJ}K+bmgq+xI-j^;eB0@SmX=3eU&Ad-n}Oj(*;3}tO^j9N}^ghi_fij3Zz zo7C=x-{oQXO9{nqhE*rI$jt1bxoNzXn4pJX%|J0?I)=M7u2poq0+WbB49GESD7($X z7yqh+n^crv_-NvbUlGFRa@}pcx6k?+!Nr;C+WGb>jlnqEmo)!M zG&-W|?u4AIKRea$m}wrcOdSm?l1%&du5d5pRJXLO%p~kcl6dDcvU_ur39t#o&8)+6 zsq|O=xl8cP*m3o&1X!49U0z$9mSB&~QFF@H{gIxZPepQ21}unB-fY4V>}XO2HMGZr z4iA+oC1fR_+kAn%Endvm>ddopZDFr^xbIE)GtHbhnTE-NU)uo-vUkc?ajyXlw6wO~ zajWa^>$CYco{Q3lQ+Z;y-pJHlFZfninC=T}Kjmt1fRc(j<>ycRu>VNE>Fayd!6rc_ z5ohQJhv37>7`LZghb0cd`F7!3w~yewAJzXz!s*=d%Uvme~gEzm((kJ zUN3HcUfo1+tWTo>8a@+T6O)Cv`zl*v#K4tu3nRY?w6_gT-mF&%k^tC=kbW}a1o;Pp zxICMo+tfH@m(oBA({{`L%C3Rml@jFR<9iJ52QlF>OMp*)61HJ=!;6tT%%*1-PObj0 z#$;fWdxGQ3+l`~tyu2q<4o5g+tBd7Go|$6>t{vk!WoegB)i@-HX;M04a)XjrK`&1W zWxw10EbtQ{k|MFE)w^1n8jv{@BZby;`AoQ<-ye41k~6_Kon;aHZ(NK=GLZ17_w2f`>e?=g~wS~zMv zpM97XIXf;w);SfsEt5{DhW*qXJN_8?6r6X59f*meEgQ4_IA$$>2R29_CT(?>od`$7 zY=r->3krw7r9L<|6gc{+em9>#F2BcM<|(*p70-L>NoZ@E|HW~VnO$}E zuO0UZ>(aw0vqT(#p;H7;Ybpx7l6l)8>hp_V=4~fuZboASJWs-DakZxGOgpHB+k)5H zT3cCJ#VE*U-``3&PTkd&ZIv=VWpL$_uH8>eo_IgJLRuM_(e(~uT;aMrIywsNwQ#BK zwh(BVo;Iw!99*aV{RyAdQ^3PhQyuZV@ebk91X8kV>l4R04-#noau3|&HT#=zo3HhY zfEiwo7W(y^CShML;8(*^7_gHjudDr4`Mc(g02r>GReF(wHQXgMf6RRijw|!dk&~&4 zF{R7bff)_%D509!M6=v0QVTpo9UMRPh4-I)uiai3D(X`K z->+WJ!etmxa;>yynIU6$>qR@wS4Dl2ZhX;O=+-Xe|MAd_a_!+R(z6L`QnLMr~GLp=!yS=@hn@S3cli;oPE7O)@x9oX;%p znDQLH9tv?0-!&+IGFE3Bzx&IasHHHV;f5rf3G#Araq&-SM8{~BApElk8(`BP!)ega zbIjtU_D8&AodY4o4=u5vq^4z+%Ryv_Q|Mf@Pw>+~de1|DA4rcEhL%2OYXIM(*`paOeiP*8IOBGN;CJ5gQpg5 zs{Fn56~8E9)yducWVRwz%T%-LzI3T@ZmMCU;Zs}H0J2=*cBE@jbrfkRyKtFN!LLa2 zK>sZcHfHlC+?l}X8G9^FeX%TCai`ySt^I7xbxvMt#Xmc%K-1tdwIF~U>NrJz`4D5& z9I~?e43`OvIkuL>QGFkj196XG~{ z>!DKe^XZs2V?9#k;q$MlVz3(b*dv;Q@+BW!TurgBZ&}RV>JDI`;iit?@ku}Imsmf! zw7LHC=Y(S^&ErmzGF#Tw7Y^!XnLu}LIYt@r864T1e$V=NG6gC)|C*VM++9V-PfxPy zPt(Ggs*jYEWd5vEPWnO$musA1SV}bTJm(|F|H9f^hgB7HeZ!kZ8Ug9F2nm&vZWL4m z6p#)9X{37}X+=sDloXIqTDs05l$7r7?uG;B>~G_Jzt{78@1NiGU6;Z+v-fOf&ssCH zX06})jU3if#bjSLr>cqpHi)==)_E)qGzLXDPAl?emG3q;H7#PjHcQy*O-g~_n|KO& z(HmOoOxLY`eC?!O)&vIIz5>U1juuZ!>P#s8!D%6Jy%I%Ae`{?P*dK3RR4TgrUlJdkXQFjHZjnsY25nV zTYj`46vsyr?C^H3W`;7k&QNeDgsT|=k}G&uZE`t_>pDHMrdY{fJC^6hnQi$M;ex4i zuQsmJRIN_t^|e6i4xNkVd~sfhaD7ic1L7h9kLTk-gg)zdz%h#QnBSr?`rPM{$KrDw zI8Y_!Ibw64B>&f(tN)`RjdsD9>h9X_}rnnulHKvG&7 zrMhxRevgn^T9;4y;%e-5ilaV#eg8^ms)*qAJTukq(o1nTJIOf1SU)yzbY4H~(c+qL_XMAO=h2fBdKjt0WJJ zYk5d+I+W+!&rn#SkG8+OAADEaZDtjDhBPyu`+nE7$Yg$8jN^&A!!z5TTYUqe1c-(} z%CGW$T!56wtjxE3ra&${T+1P?YIDgYURdK>EKMRUr)-$b^rk3R6A(R%>755Pv_wM5`{mS>vFv0Fe zoqs8$k3JVW()EyijHiht73JQTYgYn&mz%5A+C{SpdfzDegYB@VtDe?KS<&U*h zJoMZeCz$g;Kk}FyEip$^{1EW6WLM4 zICZq+h>0I{=067?aQvDLQV;aoYiSq!=GmOKR$6kijIjQB;X-;*S!V5%jk+!hp3`1( z^X-#RLn!3Sgz_TxJ*<+^xn*H1)es-!JUh)+>C@s8`dcSJ%^40PLm*W>!{9IX>+O?H zn_!vJx8z=oYYTdmb>%~%#WmIz3gB)9r+|P8i>!?h&|tU}V#3@R6U%Gv^-GXqyC@V9 zG1+1Qe7AX^tkmve|IFP73ef=7NKx9Cm>A%a zEdu9UrtE0a;4==V6<8-2{Mq5twe?OaoeJvv*4@8hSyHpJ&**Q7(!gn6eVM8j%YVNT z^G$FQu{U*yx?GVF`uQ`l`@r52<79-&T-Zi?RtBhMkImxE##~9S#l|GOQU8lq^#^1~ zeP2Db<{kkFOCPDzqw;5 z4LU2DYIk35=j`vxD?8=%xXAv23#!)n%px6igUt4C^^0~cF0!={vICDI2-rVW>}G4| z;lr|OK^j?}+V;HszR44ql|gpy@#us-E6b0_%(OMZs*ziPs_lPD6fyj-S@XX6HCoy{v4X8o%ti&WMxi9n9&;(ks(jjf%36(Kt!Z{?hZ7Enrub3zI@cl-{jfhD}o6p=uldc_Xk!)UehfHq?rpL4~43CIH{0_6c zp&<**$`$kRV;~%4J99NOOy)$dF)}LH+Wr)11c|9Tu$|0zBV`d7i#{3CJ8%;q#@kM%U`1|(?=H^^iX;M~L@9^?A#a>s9NlYZUbE>dF z3~mjktwrSKA|F1!kiNLM`1YB=Wqpw6;&dUpL33(p%j3?@yWn8S*_|Ch%X*yAT2H}% zvn6^{99g4s@(~jd6%=4;nN_fTw&qdu>x!z2*qqm%b{ltBL*6jNNHFyFxp`~+{m@m?6e%I`c1p${TNY1**2G=#V(c(4$a`V{-M^`3{*S5BhA+tAN*BSH5$@yAdwl>EX+Mx1jfDDOaQS<-8^0q48*E8;f@ar58Aio!T> zy5n^L0g77Bo%o~H4~%%0R_|kzrF|=m&MPGVPTQ<1CI-J42cc&Ny>rb9uu9BlscS*z z!^B!J+F+p=Q~tfELOzeW?a(`WwziYda|Bg;G$iUK4B<5d_Ant5X~A#5-kD`%&T(a8 zd+nG^i7?Tmz061A2HX0mN^i36j873r`_@4FZzhD#3K*RG#Rzvd{=67z423J7=;90& zJs6LfYaa^bOWAJf{jw(h(T-Bot%mDK*aP8Z?N^rhc;bY>tzf4nb{eq<_{@6G%-3SX zc6YP^GKSFWnZkIOKrl_gVv1S(BPm(r8LbKtXJA*_{KLZUYjZb;h@A97z9W?oKqK;ogm#VHtBH5?lycASzG~OQ2FK3#AFA1UqrJ~+j(h(ana2KqM z61!E(aM%zDkbRmNfRY6!8Vr&&OY(8^=nFl>ot7l!sV+>7gvOcu0Jmg<1%1`ATuo8J zG07d|&i1gbZI${=ifC0WJUtf;u7+djDWN|FuIdpv@ghZO=hC3$t`pA1gwKjXATV zU37bGuV58>)MB@=6w&;{?Z*#xckPSBoQp}xe)!5IdXy4s&Cp*1h=~sy(=mQI859(b za$3Ix@6ZLZ0A|O+&M!QI3Cw>-Bv3CeQAU8)^7nmLqZ6!eHq~))7}wcXzH{AG_Sx4r z1N(oT1#GQPq#>A#3cio|a1hUn;Sg|)BQzuV`%w}O&L?M{ZkW73gc%m|-9UpN6Nc=- zZu0)M->AZwU?*2m&ektiz9m-`b~1kf>)))TzIYC}Dg(1u7Ihvi$Smr7=Da3T{G0)_ zz#q_DKlefdbRYdyVlHpm0r2sCI5&d#8i}%4r$SX4^fjaNpP!7$Qz^AJ40%ziMB-^0 z7f$_Yd+|U}O-&7Wt$-TEERFk7 z!0tZ&$yc$mhZ;R}@C^Q&9ogm5$v}%Q?yy0v9aQCV~z^F%IcHS>3fNvQg&d6Cfis(yScG=e1@Rt9_F|`cq>4 z#al6r{UHpDGh5+hy)WmoiX(pcjEn4Vz(0&m701P}?6&~~4uh1J5R7pRH3oiaq~cG5 z>~obM7N?$&3;?|Ss~l2N(K!xjL}U!JTF_#9T>mlNw>)IL^kbTs?(@U-A+0eQ4d(#@ zgfZwvI&@pZd^P{2xX0#~=Y+og|B`jz94Q+8ZyeC<)7zfR|0{9%cR3{t4Ei5j(Cq(( z6Z-f4|GNDD^=p&>PIwNz04;msebvDQJ^mp(+pl64D$&=51g{@m77C-2lLBGtM({So zO!SXT(zE_A^FHeOC9_Q|_O^tmMO@tP?D)vuouT@)i+ft2y~{^&(Fc!`MUOn*j1Nvs zVUsL8glhF`QN5}6P3ap^Jyqe_sy!TU9-84iSv1{!7(_!lxpSX9ucjR@I@sj$fAvClmVL(JEcFQCaDf>r4ix@6fpnm>ZmZ7(3u zXZXPx6l5=WY5BSBxN;4w%Gk5C?D#Mt&M_#9%^Az2?m|B{OA`>OhFt;R4w%uzP(CCV z1Q=xes^TC@HYsA@^wpA@qkH2a?9oWR=!y4Uzu)qKjlVlZlK%G7WEhkRQL>0r@#*9@ zY)kuAjmu*bR&%jwvQDX!hTi8}m0L>(E1hXG0V}MIqE!ZIC0>18C9ofcsvuqnoR)%3 zV2gIUqBmf<_4aqlKV|PvsF-I+-E6l^2(3JC2G2nomOg*uM;y{iuw%E8Rr>a+m9u8Z?pZ>ZA>rE4!6> z9ls@7B&7uY!tI8)=y(k)To=8`54g@3#!#RvXk}%+Fpw&}bh5bks#uoG7)^8QvE0j- zjKFMD2jI7_OvthLh0iptubYK7d#Kfj`=mP3FsMWykRKdLkI;B=Q&nW;6 z(X!a^h1TfK4MK9JU<0RmIvB@2c29uZ)pO(iH9`Fw*RIhvbWSh>rb^8y9s@Yj83%AL zFDH%;pS9||e072|<*K|D-O*1NNh$Fa&AQroqZ{OFVSme9UA&cEF?b389zu6;1XH8Q z;w`DD8AHD%{$TLwu>|v9o^iSe>da4`ktrgH>T6DDEHW|eY8>(Eo1p45Ff4t)y(;tuDm)HPJGw4kIVZE?l}rj0cKs? zPXho$zb%nE<7eM4CAi#ckhTYRzWL&CftT|mv3xa!}}a+ZXKSVTkir2*&uM!mx#@OCty({`Qblqrgo_2P5CJ*YxfWZ9T(lj$9b4` z7q4Mx0jlbeZPnB(T!Wx^1?prz~9S`4T>XNFx0trZ=jo#>mC`bVX;Zt+$j1* zdQMR!z0c8FkVRP38WX;AmJ?5r3Sumw7C9cJp0NMsHS}nVg0M5R*Fe`HNWYW=Mf|88 zkBW(DY~6KdQXkJ;!n38!W&i|6A!47C?MS+`9E)xBH(nOHcG084Jt|7!T0!Ty@87?N zp(nSXvEPPO9MG9zm8prW?;|m(T80cZ5ckO%-&|JFa^uY@dvc5yY!(jB^@v%WxzsNu zJBLBCe)jxq$l~fhSm?B*yutTmV;RhnLEOSn%IW%xu*+2FAp1~Y;svxie7-klVfRM$ zxV2_I7Gk}mh>=W$&ONq29Fp=wQ1r$mBix|XWl$Hb=Czi`7zq4G*M08x;%tV5G?W97 zfG{wT5^PkWs{N|P-PfNl!aOg4&*3U((Z*QmZ5RW#WLeQQ_(OZ|7RNd@{%bW8a!UW3 zFg8Iw{tiqwmH)Do@cekIIaf0?=JV%}vxDV#D(>xH;E9A`dF`EMrivNNfXEa-yRZ^(mp;DPuM^ds^@4Wh&&=Ki=@6M7W0DK+ue#q2M2~Q-3HJ_pz9|hed zhi%5dco|X&?jVkQ$YI&jDhpIyo$rgFEF=By19{~v11WCvR5oREv1>ppX7ie)* zre6J`l{zjoEXqM9rv0>T61EWNPL+;;{~{2BdDA+QS^b)~Zyy>fwKhw znSNC5eQ|Q0wn!c9Oi4KfLLWeKW>HhvVYL5?){j_TLs_(Cy56_MteH^puzdDM(K4(x z#Kgo6L6kD#DC|*@7re0a<#;-62VFg0n=Y@Y^hv6?JJJ12O##@X#g)_R|_*=DWV>Snu*f9N(Y(zyox5ul5Yx zriL@P*cJ;QYzDG9A3S(jNSXTj%)};cnil1ix!c>!7i-UKqOb;r_CxIx6?5rfy6d7; z$@=WC$045$K5zF$MX%Ml&;R~A9cDhoijkBBJ6*zcCy?~_slg-#y{q>WhmfGsz3}PzI?V+flGuP zo{eV{!A6%-yd~^b&QG5aJoeG+$b(ZB$clUJ@TJ$6YQJ79B?E5aSjj#(m(##3KN|_s zWTbi=J=V*nKSiL}?ml7^mXX0Vkx#UO14Ku|rb@BDqaa>|y?k^UsItqJ>)_va-$6p%voJPH)yE~dzN$C-AeSeG0ZHY}QEIa=$G+8HQwjCkn zGUU_&NgXo2BapSIG!H%tTmDO3L{59Z>&)C+VM z2KzO@U-BqrGkr!DgIzmuTHP^GM`gk5+`8o0fIJB0--X_eP3A-NwAa?BcXc%;_Jc?mluP7eYJnl8K#l;Y1COw)XiH{Ze3DXgF| zSS;t|dgfA6Z68vx?zz@akf{>sG9E?1emJZfM@1hdVmI7iUeXo`Uh@+oxfa~k(SZx- z-MMx-XJ2{q1}5hldJ!Rljb@b=I9#9BAY+)%`HDkrdK{Ehc5S8GnmEXvtSR@%B22k+ zijn~ygi1=GoF}_4r(mZ%fai-!ya#d&R+N7dCE)l_v#Kn;8M*D>Z1zB#_~Oa?ijWW+ zT^BvQFNZ;Y+vFPZyD84g>5krf>XYIBf*g0O4^LcsyX~KaBX`G|B(|u{>+XK^!vYa_ zOcK=|N?G6JKav&HUk5#BpF#)oLwBK|?sqiKXM>`DG5bT;&LP2e%Fc8CViEAeVZRee zJ>1ufXH*im)k--GWy;Ato4s#%Tz_U)FNW6i%Pm&#an(^kfg^?yC`dh!L;3~XcTrt+ zOxnO`_|MLSCCuUAe;!fo$GApL4j_IC=!Cg%AEFNN4Qp10&yzp*?#zgc%_ zJYR7vQN*sdbR~%R3V5Y4T~SW!>N72^K)A2lG-k_>2h`J60{G{ep^H}el`gRvB^{mk zbop=@|BhIAeH5GV)0XM+KR-5`LHY|N9hGv*?A|@xLlVf(K?J+pxPkRcWW-COMD{F! z2vet7DQEvvn$-n=(qFh)a6<*#1b;=IafmdH`N{{xZlgilJLTlzMPJ{~Nju5wtbu## z#|Dn9c(^h5I0`92T>rqEN%!n#Y=`#7KjXZaYa%GrrYQOQUMc9fcKmRtu5?9W6PrYf zqk%7k$G7LE_hlkuHVQi;ix>JjQA4MY7Pi|qqW9Z>QlA?+plt^=8gLAyQ6Pmz!@KP2 zVGwe7VgZia$4saEyH>Jqi-uMX@ROap%CYC3BDv-s9-=VDk0t&kp@R1LT2_x8YIzs- zib}{tJF*qX+jL&)vsETr{^)+LqO`u6o#yP8)G>}Pi4#x3(4>Y2X4I^2f0N$D+q*m& zCp{-X-5%|_ESOPykK@kL3vrLbs&8b!Kr*&_xi4l~b)s=%Es{ueAFNmQ!8^6-#%mS! zv>h^_ey57o^XE4Z(n8G*WY z`TPsZ9)u8sXCw}6U*>l1>8Ie_?JgrZ(Dlh2wjJ7BXj55Uk`D-wsc;;_b#ij@N_y<& z`?Mg4e@H}Rvg|7|D??$}njx#`MWt#q%bQ%vX~QSj=no&1;2LKpn(PPF`Tz{zn@I0A zFwZoO`NsgLddXCO$peVGe##D%wU{!9IVLL-2KS)>vc96CB2V7V&MpF=nmLr%nG`o1 z(VL@D-PRIdI^H#wOCR5_&%!Gm0c+UhP9w}cjN)KzKV!J^+qJVZL^U+;UO0^^IakJqj{o}%q= zfb6GVxfE99AAV9&QR%o2;Wl&#oBk#~N5d8qLVJcUo1LD1#l_#pM?%+M?x%&Ne>CwG z7=_pZ8%FRm|BQCMz^w1f&W^H|WS+|k7WrTAuL!QIlXBY{|9nw|^KZ9*8#)MvxBoj} zF19E?UkN7a2YyV12y@0LDIh%5QSb zRo=rnw*a92h!t0%Zt(;`CAgS6mq!i+sjALt znUx0xyhZ#-H*y{ zI3K69RZH{j5_C!=#tctE)J%m8zKz%LO)cX;O6;-(2yl!tCy?Z^9)7`QHQ9PosTn6r zrg0uB$bzwvrBraB8159c6-SQ!2Vq|A3o^woAL_d%i;^o;`}VMzk#WEfR4pX&7OcR# zvT3kK-V_dDa^JZlys5!0An+7h$|E2UFWdU(&m(H*?qb>WyA~~N?r9%CnzyA<2EkIk zr1JeQ=jFeXWFq%KuU9vQ^Irz#gZXy`M@E_l259`zhmGW7lMM#wpS{*_`VHzlCEw=x z?%Q+eOreuXD=~uMW4N|Z(*D%Ic8pRXzc?I#b zI5Kn)C}%ql`}|5kihqlw+ER16YmFk^P*tW2OF6MQ*!#!AaT}JW9_c8VEC;# zq^~QAJI^B0Yv8>ROlu3jn~IN0=rcpZ4=^9DQBIl-`S#(Z`tAs{L02ywRkfGr;!F{o znPg<1p;V*UT$+(1aaRnv+*bGx^6Tu1S`82rn;MnovF(*!=;*Ni)$e>Ki%WFF;iN5LXw-X=nQ#;*)D|YM*C$#Q zdVfX__h!p;e=d%A2J<{k_~u?qA6kk2%xKoUJ=INP^y^;cI^ev+9(_6c!)nBw)x!Zv zCd5LKVX%r_E(L4%B{HCmjSbjw%`R-Lfo%J#^1 zjND0%rCf{b=dBJ&V-(jGFZ8C^dtyk-!OJFg`-0NJN#qSq6s(I2AL zL9;a#O}!e;|5qXO8w(>iLH3)sj&}qrz9;7((U!rmzh7n5h`-_nT=tYe7*hnh-%T+0 z6ihlP{yqEZ`3XoLavLgK0}EVI|2<#dgCX6seDt2*s?y$|E&JZ^UMXvtBde@|RQb3n zi;NqWF7p@cZaPhhvC1mnmT98Osz}H$8816>b_q>G(${E^zxNiiM5S9Zkrn^d^J8X0 z;GuLi<;b7k;YKxX@`{RhD!8T_Y+uSBUf3VmDcF&NHtzz8WP$*IjVRDbb`G)cFwXokl-#SP(Pr(Gu7ZyI8|r9jc}v%Sg8ZiRyXI=Z3X+y8&OS{xKi9cM9N()U&;#1L@{V@cVP~Af6?6ZcWmhpU_|D;woOF=iuVP?J+jFH9_@e+BlUs zJm+cJ@DyP=c6Zxmzb0s9p?ahCm*PvxB4{Op6AK=nXoe0;o67DyeyFdlkybGQe&b%* z0<&p~{cG#GT@Jb?kBr9B^TWtlAkR;aUre4eX`Uc3btV2c;e>vUNh#Hex#a$3vdu{GTb?J&MKh>V&eSObp2bVw3j3N&&fk_a@x}`9=Di%2RDtv?uvCSXXGuu zeHrn4O17Y>jX7I#P!bp%F?e%pf%uR@p?EgPn*Q93RBdyHWtf2ofhMHRDJ_!g3EjO^ zKIF(F972`Pbh%DdxIF?X$sIk0uLob4*r>jGcv~r$n7gPBw-hD)cGc~e4rusfU0{fT zjy7)btPTzocG>fQ+|;oq8BSAp$Fo5>8Fw`H9_a5?vo&x6KBB=1xaM5n0la41Zxo0G zl{21{qt700VQ$DQAdqe&YJ56v(T@f#IMKC2rOa4*ld{2k72I~&O^=voex_v#+1q`< z1DMv|mfrqmt*8gj7fL7M4U5)-WjZ)V<%pb0*RwM>qa%=Y)3lLDormh%DPgiC0YC)_ zzsrL{K>JvMy85eIA%EjP;(im?J#lsF91xLq3Z5#MVUqL`4Vbk25745ZB3d4E)(_yZXm4zcC#TT9l5j6_k~BWsMoy(BV1 zYW%uXEVGjl;kr}`j0kRS>bWf*2?EX!#BwkbW%*H{ecbeAwMKJ3(%#Xh)lYjkf^~M^ zYLb1+BQ@~C=lp~dE(P2YC;D#%oscI!L>w%ElocC%Wrd9$?h=HYpl}f7hxh7ornwdT zEHHHdPWVUMA5Wjl6D#7vG@Ocx^;5S}@TfZMjMa-EALFo9^iH^BA+(t|(!YU99pS9O zN}8V@K?VF=O%5Yc@$So+Z}@cz`FH>lS5BEetX=x<@HJ}b`7#kcwYLqXEBlGO9Jh_= z{cjsI(T#u_P7O1l{miT(?{A2)^8^hw3Q*Ty-6Z(Dq{Wds_FcRF{%D+&$&6feeoYN- zdiq`QICs4ObfK{cJg}uxTk?(yhI#RcRL5l|@Tjt~&V$Y{gDM09#gXWMTWeJv`K0_LYDz3!_Q7da82l4j*yAWF+*qj)E!?0R z>o<4xS1fS-&a}^>YcF;_wAXUYUNL1yr~%VV6XCF_*H96_{@wJ?q7gNdLB$i<29L=) ztBS5t2YSGCxsTiEaHxW8obK(jiCRf&&+SjLe4s;r-ZbNn_UK3CTZfAMkw(@UISw9) zJ!&|CiM%$o0;&B0K5I!A-xqjG1g|)z(V`72>>39D|#1Dp17fYnoVMQ(iT6qPSq%bqD zfIv&x;%^GxFJoEoO~(i~U7vtYZgzCO2Oc)QXOpJso0jKfhi!uo@3;BI^2hdYcvc&X z$tsYr9%%N}PZZ3s{1veDXLzd>t=jvx1h$$=_UZ^CHT&rWQHvyM{M{1-kWbRZApyXY zdC})J9e7MZQhjM#EtqEoA@h=+l?S-1D8m3Cm^g*y&u#wQD!q3gjqF5_;SsrcsaUIz z)-x`y(~$|5&3*XFeB3pn+VM^;xjOL*AiY9m%ln~5%AoKE=G(IVIEY>&>MFQ=iF~g;5JJBU37fAx2q)5ew!y$m%{vM`xBw{V&O&oE-4ccIdZ@ z{K=@T5o0~mAl3v+4sJ~u3`qjisiR6Wt7eT{RERUs=B|T|hL5$} z<7v9L+y)CKUx$Cx;rt9+c)|lt2&jeS?8P}~91o$%3dF@G1U@PLr+U&A&EgSXKK(NBjd)%vBG8#v(> zB&GNwu#CC_X8NLV1ElV81mevOrW96hKx>hah8NA>^|z);i>jS$U)@?wMl; zJ0*$Hm)HLHB{exA=jC7veNcM@x_#@4xT^wcBRyV5@%n(gCuTXfOnUcC>k;ZBe0*r; zk3s_dAbB>aUoS2v?8-aDCNm8>?hdACl~?kwDMM}U)H%#z|e|q&+@gr z_F88`V0LXSa=wXll_?-4y^-jqh{$Jdfx21KgjDXd>{h;xAu)qS9OtSl?&WF5=ocax zin6bkJ}~&K+l|pMnn#Z&9_G2_LP*__T1-#@AdG`Jent<# z687L91}X`-^h^~r;ByQwWk`83Gx`mrL5PQJz>;Nml}VcK;ip_DM@dDJPzD>CJn-nxIiuWZ zZ@A90M{h0Ac9CxuW~!7m-fBAsby1jqf0B=VAyz+s|Ae@ywzlfrgw;zZDa+A>fZ*a> z{yu-p;Rxr1c`!0>mM|}l$2s6$(QWwPsNKE2H$RE2m`TC#T_sj8=N#xIM-w+x%QI-0 z`G3F!B#y-r-dfl1D{3U}L-!G;N^*w(>(0xob5FFf^l4viwBb-kjaq-tb<-0i$tzb& z-3#Pr4$)Z{Up?^5^4@LJF`Fbm!De5~`~-e)r|C3K_|e;Tie3IZeal*^LKd zW@nF5Qe~>m3)FUCa@ABgpX$v)w37&mT6MA@t!|xh;zzLni zGw35ioHmj!5^K*FE1R31+BcUm=Ck28TVH?kMS4NrhMAItgrv8?K+Ma_3kGLr8dN&M z=iuz_?#fjh`ox9s_)&F6_{S z!>D?9KqkfC8)O6TA|e#w7{o33s(p07DBC}8JruP8{>yd;T9alG2pAU2aGzK~P7X$O z#)x!T-T!M0;dgVKXCd4CaO6UxYUnTf~c6+ zCE@Vw@CQD#twDzfK20{as7Q7B>-|X#xPEBES>a@|2Qz<#N5xwiqE0+fG=j!;#GP;P z#IsguI`IDEll63i5)vke(ENgeVi!LQjZ^(cr8Ak>;V!v6W^N`H(@2DPM8Vc?>#Xw3R zCN-5p4vl9jX!*eD0)x?f`SKkcj)G~nI0ZpLN;uZEdotp*`#D?O9bINxqPHkp4_|J^ z`Z0X9?j}AuI&zsJ!pDch@C^Gam*>pmEkaS-P+%bLS=JpflB1Iz?#oCX{EDbdbeg7? zk7fYl73OpKf+7~0z}xGD$k;}rmLFyHxTJo)Fxa+!6I+&f^l{G@EGM?dysf2-7EuBNJ?ekslX!9TZogP{q|>U`ht(^Ki{hUdMF^&bz7<)9 z#o|%%h+H}wBV|1QB~O%ZUOtVSj_7R02(9mNIZi|02f+~;e||}ckC!t~O2-G5@ct?I zBJB0g(sDiReV5Ut9w)%V+-_T+%g6vbOPYzU|THXQuV(sV-N;Tej~VC zd6d&DGT^1lyO%v-HeLe?VfP$`z1UG{{8-QBxQFNy^FmP}%y&@GL%+2n@(@aw6?l7k zexnj?a@xZgJ496Esxd*wiQ6#c>ZI)EhMTWLs&$OKWfxgz7W?`h0f(R<-Aw)|H9#d> zAtz?=3EeS^r^pyQn_hH7G@ycks`rKQ@ks(G1C?zFh6YeNChm$+1H60@OZOtOzW4(3 zHD4I^6dVhwW??UWvN$z7{yy4{hs*KC3y`1T4wz2SMC4<)}lgRM4d2E-FXpPBV#M^qeZ31E;v2> zXJVCT&~lGm`4ItyMA3LhI`0aBq=_YK6;0-5wKuwRe)VblmsB+S4Hn37SdCR!(J*1x zceDBz`@~3nLsw{04(bjPUI__-r!eYU$zh2?R#jfDbcIEiwfo^8{?|Jr<6 z7VCLkyp1KQx0eAftG>%b!x~W}R&Uux@6utU5e~a1fbSd+XJne4*R%viTy=***bC{% z>IClV!)`0Ua0B%KVxP}1s<;k2GQxn$b9MwL7UjEL0D6fz(6P1JE2-W#<>yerYlBmS zD0i|8nxJLQ4;BUv?r5Y>5WJRl>JW|1tsuI@R|pvrQ@82!CK!4v2M)^ViR1czFg z5vQNz8{5PHYJ}lRYRrZ6G~f`|jt>++*C9E<$$%yIEdC&vfZh?7-Q%ee#miL1wm?c1 z5TA{q_GFX#>imMTJ4eGq{{}WMxkv9f8^dP2pU7)IdF#Nqe*`|ZxCe0jy^VW<%N5N5 z49r+d-w`ZzkJYWg0aU(*z8TORPao{sIn1l;&YcaDv_G93(8focyjTKronmCq6{%)U zHUk-tjwaXT0VUZ9%L)>%3)%$3>$n^pAn-v<>RE(};?b04Gpq=I_7++#;G@O?M6O8e z)3>?sSM`ZE#JEEKEz7J?H53!oJjCYDcP(0vw=(*0zUb2T(8FX%R{;3@#m2mdm53gG zZv)dvlZx%3KN)SAoEPi!vhUkPBfov)s3QrlnBbW7n79ESg!*Qva^kKDOzQ-yn3{47 z`<;gBX==XpCN-v>eu=FUcWUGdJx#NzFTL=-D~*P8oIua&DXSq#_&WfX*76P&&cnAvp&&uSKMz0b1m{77{6wEB zj`QwPDAeJE@8qrfy&UJoZ)OXgeY34*ett}MzbBd6ke?ZcRDyxk?^$yVIO%#aHQ(Zd zy!)FX+w%Dc&G4x;?GWwk^MulU7js3Y;4`JRPLm=30y{;$f}TJswg00mWFCGmPRdy> z00emP6y-vx!0lj~*wH{n$t-hnNE;_DmE1w32P0ApusNiT=n6L3C&#~w__EyL^IG(F zGevfZ1N~Olcy3L|ocnm08dzNa_?h`H0UGs3@DvxwN!z6@X+qYqH{erJJ{N%(|~U%y=N z2?)kIlnu^qUcl!{7~X@M%L#|d_V)Hp*K*RFS5iFZYj=>%bp%DkQh0zGb1G=CU$NW0 zzoMM&Kk!716FyvMO^+()wGC-t3MY>e){c}GcI2vdz@e}6n2K*x?QP^9AgRZ}ypa{w?jM5kwLoO?bn zyQFwKP#ROA&xd1|l|NDm_6Q}nyCCoOCr#EpK6@u-F=eFD@M^y`OTC(#Pw+Pe4xMF- zU9M5^`gC(dcGe5|H{KU%yjE;nl(T2+pI1&o9OX9dIB)GFd77pwD%X#qmpq-Z<@2nB zcFugVf}o>d0(L2!i|Y<_*zd1TNBj<{cUzuTb6!wR44mGW2mpPAgUbUc5wvdHguO3b zumK#Js{Xp)o2zAPO}q)bu-?WWJtBL$#Rt!LfXu3&5+A*nKTu6n7KxiS0LfC`S5@FZ z91nBT6nuWu!zb!-xHyCaaHJ=tkw~t??O{I7Q}+iOw0-~rp3M6AY2?+xPc~l^;i!sV zuYn0^7Tb9~NJl$&WdQSYTi5$*7srvu8PMbVck^44j;tF2FpjVhulE z^eeLSoI2;!Q2?Q2jDaiHq_~hZ7nvR-5PV4SLpW#pUX91rdl;bZw#7s!_bG_ls5Z2T z&5v6JMo?T*4%9s}5k%H)`U{|-@853#axjA-@_bto(9*$GQ}=Fruy?6&!0C4F&NEP7 zpTxw(x1iSqOt5|1?i6D=42KU@v z?!I41zFlVf$TZWLzDZNNQ-D<3t@CU;ud?hTyv+E<*o~Pi$rIY-ID;imSEcR^hGu)e zf8PO?<_2r%y8dE%^hn{rmFbNVHWo3+QB>DAHh?cL3p9}DlLcz|3FYv{@bG1@1USe# zq;u-)Rouj%oV>;#LHl6bwMrpR$FHA`C%!7yWnp5%5MFR6b!^;b!-hhcMf7*a>RT%g z7@iA*EycQ}n`MLj+~RC))u~k(k45`5>+D)6)S-;}=U8@IPiVgwR-CaVwMo#+6m#1G zI7$*njz#yEG>k&gvDphllcn;a2f^CKqDGJ{Fd-40GS}XP=DH3Nycxw}ha!ig8OAOW zm7Q-;E~ozMB!1Pa$|#BBNC~Jc{hk5w{saTglfw2>6C9>wOUAvBWRhQ|eQRgEGl&p< z00G$A1ri1NOF$*hFs5Xox{HRlpj*SwAIpVp*EvQRCGBlh?98@X!KB$C2qP)vn#d6`zxpmd#yDx7{@Nw5-G(U1 zOObKhldklD%#c0+N}PPX{nN_Gq%dK4q|NaP^xxN*(+r4NBg9n@ZuD8nkJ!5VV*ZY2 zpa7NO; ze>JM2ckep=FBUmddBtarmt{lh7XquE5`#xE@o|yAwYxCspPP;5gmCJ6LG|94&=P7iRF-n*9R09Brc8l)XGK zYesrP*u4Ig&+Rjhy<^dK;KSKjhY@qOzn`{fd0Csw;ubu;m(eR@v+dH5 z(D6%wSYd%Y45t1LIS@MC{GLAxT(udanGc%RJcrUG2bmze)+2QD?-7}huW3|5PKzbQ zcY0Cng|}qy!=e#>B(~J2z(tE~vb`H$v?c-*4OjIExAk+rcy?3<$XJ zSLk!RaHv*3galGN&ueU?p-^MR!~1&O4#Ixs<>m&bADnx@am%f*R{zz-HHU9LwuQ%1}Lev&g^SjJ1M9w;KUaNNBoAEB)h75xbe? zv)f{(R__ixp_JWpe!nd1)d>yJiNBZgSY2|%={tU~=?um?I)7yw-Go@=07gPve3i$` za3i43;4c|xiV0|DZ^emU;Ns$*FK=Nlz`zM?M(H$X)T)*dN!10!3&?!-51F`BKB}(V z*uaK-C}5sA$@ov?dG-5Eg1=MZ3pFvJrTW)zz)Gv{A$c3>SgkG|qk~5b$M4ZRmqq6HCF+OYS~8vYxsiF{Dwdt=%3ClDp)L8YV(l@+&s4ufK(DLLEdknmtYbFi%TE$P;OVatyGg7yPy8%NpoztycQUsSYXJ0)Y81-$z)mz%|u*J7i- zy>*{R!T`WQL2wnU=TADw8!`lk&OYO5`)6=Os+2fM4F>khWO^)~J6p+O-$M+JS4pvH>F}z>7O)_UF^Ku4TJx(%5k3!BUp-UXUa|M;V zwa6QZEo&~yF435=r+JApDn7){l+)MeM2%aAy}*V`|a=34B|5?EaT5(oku>V zU^!^?!1v-}Fd}2EV$@CTj=LFe>)_M!vUze!is(>92Q(DB9T3ElEqz_7ucf86Y(7{V zgJwUbieRoalU7#-L6IiU)2OK%U$tois8oL5B5&e=wAT#S7gwW{=4w-GBHo7uppGYm zC5Qjd{vY_y{y!P%j!v=p>jS~#XN1jtZ;V_x)Bt35Py^*$c^YVWGtYFFDsA9vF zWtj+IY}CL$SQh38(l%4q!#cfoIEWt-rwgI2ls#TtR+K>B2H40~sOpPn1nl z(`r?xTN;`QQ}4rw9=eL?P4-|yvI4H&LE5KZ=mswdTH%k^> zc4%6Whf1ksBt&&^fEc^IuMZ|DD9Fyq`Da=W{Z8aZ{2(8*_RBxs{h}`n4L4nX z{Y0eP7->NjX622lD3U93WQ|VbYED5_Nb-D9_@3nXEI%*g3BP6g{Z!<%>Gek0x2sY@ zndD^C(1hNk3mU8}8M}AMDVuIn4sih6p${mvhEBfpWZ41Zi-ik*Hqr0weBCvAsQ2II zSvkdbyV$ydG7Wd5Ti;@()Wsi8*~YqqMHo4c+DAt>#MH=_WWG+0r*i#S1%rxoOXs5vX_TY&N5wiAJ6TpuET;>sA_YRsUuCtaQT3 z1H$}BL^a^5)bD{~)m7fttTc6O=SxQ_ggXwqI~L$gxa0h)_bk_ zJ%2k5d0{PG!#Xtsjk9J@;p0JMgz&P>dzs!by1Zz=Y^B}6A~}h~BT^_w%A|68Y|Xxe z^%+0U_{j+!$)*GZ11>a%O)Si%nS54M)3%PR``p(U{3=s1+V`HYTD2?7uPVH#~E>Wkq`z`_`uw-%(SoV(}f~f6NrZN1D zGy}8h)|LpQ-5b5JF*sSE|MKMtyf28NgksE4`{07MCw~pTe?-}MKtWCpIvEOodRCHC z3Y)+h!T&S+2SS{J|M}PZ2qugSt%KgZKuZSD8Uuq7(zSp7VW%j4SFQbWCNDvv6N6Dq zj3%%JK!WwCLcyGT9!|kmRY@LlysMr}rzuoalzkY!D;N-o30pt(?Zrpq^UBrR3j>|Q zMdQ3Nkv05FDgx-3>tC`=tR>!Iv>8~GvQMVnfcTQ7$BX7=aEE_;+ZMio&t{lY>v*B#ig~1 zc(kAPec9HP@+-aviBKjc;Yhf!b2335v$!k=~>OH{2HrpdEI`3N`3dr zosvI8#$ZzPyld^5CpN{@6Tu=Fe`Ja3QW!sx$p;h0tkEY z2riYZrz4Wm`O#FyoRLeH6Z4VSLGb*a0)w@DJqyB{xtD~3Z7xy3pc8n(1kJz|BlT%P zo&tN4i~+BT)8_-Uixd*zTQ#QfPQ7#1=2Ri|Zqm&g z?46O@-2Xk0{w|p*3~y-e*!LXMO*NaBw!pSK;3F=A-j!9-AecOkzSJ8pEn7da5u~p- z){0(hIG57vbAtn`uChhI#3OwSoTbMD-SlIBv$4L2s;E2F@VD2-oW%x1s73RgFaMyPOQn3^0Sp$jV}nxr&0mX&U>-2f{p0 zAQHP&H>?DGa)%ullYJ`sm_CpT9r&civsfcM) zhqfNY182I$)woB)-sBn*g~3xWSHzn3`mawF0!3t^xL@hq>-tc2{IAyEf+-{eK!8A9-r`-W6?LkSm@P(lPDvK%?(DkCVTq9sofdfMB zjhGT!h&*&w^#@3=1Yh(9Ejo#Hb>v0MJq{1*W#BV790&k%6DJJ)Qn5uM2!W*zg7dqWJ z6w#vl&XsZ9lcKPCwAN-2GjJIk;2IhtYmKjO42=VAny)&X94KSPj~o>SjAwlSbe+dd zZL}B5{u4^MeujkIoXHMTR)&A_3(kc=OWsY21nqfZ8tT***ugp&WDI0yOiCdZE165g@*73G^_!&dC z|FFNo4e?pPkL&4EM?OwjE^rYA9B9x=?`y(py${#V*(S`>SL;UUx^0e8M&Kpw7t{&L zzOiGgyt21B6#XzadUhqLG6BnNuDVQen3{W6x$7?(Nd#QTpJTr`R2s{pL_rT2Y}@^@=C7H^u=VZ)^BVyiIe` z<$JK=aI|=jNx^m%eykRt=BCc@%^rIO>>4ve(ZX)5*Y!c$&HCnB29EQJ>WsQWlAO^< zfb+2IcLU;1*Hj2{O$k7>$;+)66Y{I(qU5j!T>Ew?>uB2cDYe-`iRBzW?(%&S>WjA5 zE(>M?kx%$~my2|b)mk6Gn84OMRIUBuP+sm%#06-2`^4kI+_ZSUq~^yVLoA2;mjIVZ z!JXSQJn8@Me*IQ>kCh3Wk`GMyW&e^ebAu20|IvmLkG;T1{aTD=2#`5sLf$p(tL2}F z>Eh5&I3*Ij}RSJd9NlX)3fT0GQu)jmJA8e;XY zF*Nyna+KW}9`*HAUBp`*@04U$2SycmC`kGc#(!jNwfeG@J?Hhr<^8>r2%t zMC_3V&{+jPaYpAjn?FQO9bFuEN>xtRuRGLj@OrGgltAfFEY4g>HUU~98X4k*5OV_a z*bb;@_vKlC+OdYkLhBjp=L@ek_C=6Vi zhnD2Z4ON^SftWc21VKf;*!&_^eAFDi*fO5mA0Hio{PBvR1fAi#?XG`fAZF&o)zg}` zN&&%Ukun@E@I`ga8HL0zfBN8@{V3!B%qVU?$EmP?Qon2NHS_!1O)ekKCeeD5n+Mg+d^2D|tuKa4l$f_uojx#9=_(C-2Lw`E~cN_|1wX>*-pk`Z;B}wc@q- zx<{y&g{giEpDf1m35{UcwZ{nultYo6tgQXlR;5O32>&VyJylg63Fc7i%u<;Iq;ue$ zGE*$?>A~1TQA9BhYpXE4yrlcG#=|iVUN6k|DSMYPWVTU^D?{KjmW-?mZx!5@#MeQZ zty?KF;O23+5^~z^I??|{OfU$()86?k@4bV`!;!O?j+Vp@$KjQ`Ft`AK@_){x{82sR zAs^OnB8G0yG>o+dig~NnmEC#r?DXdSu_I4vmE zwK=^;I`L2;=aVg2HzdAA`|~_u)&%3O#D|Zo zcc`-Wj~+j^49NAD{`&Q6B+X%+E6J*~FwUoJ8yQfXNnigTOK>zT{;Xv?5a573(K7HW z{@6erXDKiuOV9_`tHe(|CZQpZ$_{v%NPRr@NQgCArHnh>H*kSdDcWkyuMXmFeDkv0l;L z;A|W^DfPFRZ9vS0s9y`ElgvILdySt(=8vSTU4918gS%j+_S+;dvgPmaQP48~%c+AF-9`cXO}4J~uEm+!%GHr|%%t|Arve<;Hadv&N8HhpEMxokhNe zSw`i;W^cyv&@HjBcm*pruVKbU!2o!VbLxYo3y)qcig8oqmMbwO>j7@h^{CX@sN$3e zBI7r|yqXXRX!srQq<7j^#1-Des=K%RLPCO_K#=oKV!bVQoo#c@uQ`Tlj9wI;R`G?4I<4S!# z0z^<;4%Y2ps1^Rxt;ZI9%<2;%W9=O3=8cF zg5@Vq&bQIf5Da;i{e*&of+j&Az|ipX2_F_DavuY7A2w%z*sTjo`!i3|Ryj?7?*B0( zgCOpM(sR7uzq{i&iO)qLRLn_SnZz^kDvRGw-QG zE6WIdS{5&78741b7=mjwfo) zn+`@I-b)|e^mFLFqP|fW!5H$D9Cg6@MU!_gyVdV;!k*h>PYu(NRT$CckWFa06AT-M zgY_X7x94yCD;YpR-f3Ui{-+B|JYln9&1_`NTJufrX5dfm7rB-ZM_H1VS}#5B|M#Y+ zUD?b+X~%t9z}9)Ba<|yY873S=1R1A+Ppb}m(9h|6ob3R!JdaXbV774f9>WQ^K&6Zl zh&BrbdtEbA{72qX$i<0)wil=O5x^0G!+ClclLm8YX3T*~{dUoaIJa0%q1Cm7R`)&D z9HUVxg>-d^$Gc6s02E5loXrm@A889kqbaicyT~0HP!*oPYe(HOA26UhhXY(@(^8nD2IEsTM8o zglz7=SZ{qTbM6d|; z?I^x5EV(b<)m}jJK7_Cuy>CaI$c8X z_hi(&1m*;0N92Xp^RRbxcTqm>i^fRE#HGy<*n!ly<($7HjA&sR&{O?Iic~ zFGbSNb_M-8^SfXiuAz+Z%c%QsUx4^&1h|Mf`yPF9xdAcLp{X*s!mo`$2k$0azx^w_ z6vU~DWKkO@@CvRGr_Ke!r#MR2|ZTka7JIqJQl3*<%E!>VTpN>eHQnp-NDHT?rGXS57&+8yZT zhq2_UXZHH>D_pDHcKlVGc`TYzI?F97FQE3}W_`rno-MIl*m;HZRCr;Sx~5C_W&6h- zioisubm-4-%XOZ70kqiLMU|hU7f}hN52E4`16F*v;>O-m?TG@X%FBOJ`ZQ>+SZd$S zFCZ^m(j^HY#WNOY`~LOi4EZlwGDX^A*`poHBgG_p_yGfB77lL$u-+ z|FX~KlIXQ;P2pK6M%^w!*ANl+QFZ{|bidAjXz;CT?oFv3Qaa zKhrQM}&;(HqF%Gcyby6}FL3~}Gd{r81dG&*{_y#7bBP)N$o$*0tL z5^)XZ8{pk1_(w#kmG=d2>&mt2je{zLO{(D|M!P&(tn<8?vU8)v<37p8^QiCNIV4WY zSqT0$8!XcGEj=p_jO9hdBZO!-S-nEP%?6O1p7y|IrUq{tR5us%?Opqpr}PUVlr|GW zB8aL{9U+$sD{bZn#mX~LHEl6>21rok9|t}XO-CbOC)vQ*^72ZT{Vme_>5$lmrrlWS zq`Z10v&4icGFy~dq~@WhWC)1UDbFjMtMj%itS`Gy_>enDV>>E(M2yVv2LysnOLB2o zV1u-a?}{(47)7E-t_Xi!&cV^ny$J-06~<9^^O46g@bS;XTDIftKd4_U=LJeV0;Z{# zs%{yh@!`R|mre?eqK^~&yDSdqex?Ez<=m)|%+TQON3{WeG_vyF@O0r#g!+C!qm0K! zS`lsMP}-9_yw=`7c&t2J4<5J)czB)TUGaZmR;&>JAC*~>Gq9V zv75KmGYYIK8vFFCQ=zx-9mrtg#J19|VKhWi3l&oeoz2{i(i#-$_g#T}IrRFsk~T}D z-myFa<^2mw?K_q$Yxzjti-|n@GRwJBJ$|YWL6$MO^*x(e)k|Nh(FCC=3|CQ4wm3_O z^Jx(}N^7 znMek)#$GcdUOOaxA{tnJ_KY3nO51K#@mc)?Cz)1}1WospVd*c5WQ;W5g(}VF&c;<$ zcM+engwF8pM^K27e6!2;jPPb(tm)E9P~wSeV(%qcm^%IcD~MsvDT{(Wq_EdlA&Hrk0#>#9H- z+IC|u&~~_}Uowy41d9-1K!iqK=oR!4y}Uljh9@)LqFxR{gn|vOx~VNt2r(oCD>K zlrQ}PjfOnDvDOH-aH8NCh~70jWT&a;Zyo5uY7Gdgh>Z>Fe2Jy`gL0gP`#Z;A&KRoQ zqR6RzW)>B9zfnB#T2g=l_E^If>C2f?f+Mm_LK6#A{XU$ht}=M@4F`$eLaB5RxsQBv zYz2i_3OTKYlu;Zr5FWZ;Te}R?!o?1yub!XGA)3UuJXV_)y;wbOdfNc>D(-crBH~ec zP@=~ot0T+shRQ!?G@C#%tT#F+753^xH3O>|oX{iJmm80dv}f7JU^(z_aTaAQY{qVY zzF>JM;!U>gxyON4$zJpyO1ou~_fUVo=wFpji8K@Lcgke*`87+@GLfh@OVt&yTQ8et z&m~1Dupb?r+Y_8V>H1?C@|P6s@wa0Ed@@IW=2h%34Wfiea~msb#5Jw7Czo`(Ui8;i z+pU9oS~n#ElH0wt3=;YJgZL&Oaa=F1`u#U5Y0nb=&0qZ^H!EWYEqe+)He32-C-~Sf zSe?O_$!U09g`+ffzLpH{Yby7LA;i9V!Ti}waH*y5x4fr4fQT7`uO8-<2SKn!Cl5~; z=Hz|^1Y#RUG5;0^7BK=R4hfGZ-=ONZI`2)b3{esV(1k7ut`MY;HyvPg`3;=&yxuAw zZL)(p$vA~a~<4_2jhjrz4 zqLB5iesUQMu{}N0s4l@z_CgA$N92N15O5Rr^KBQ<%TU&#ZybBiC4h>4DwQY(Z;jlQ zflgG1UE2!EBU4`PdND6j=DP|te-8+?HPbeN4;Tvo($0G4uh~6ZP)CFyLJlyDMrMffaKwJk)>%Z^B$8wtD z;vM%)7u52!$i}qA?H){aj4t(hAbdh7EVE}jgMHTj926{$ZT9W;NtGgGX`kc z2(w%9K?p#OMFpJKDLP8tnX$%Met(?bnc+p>;TVg@l9dY zr|9x|zkAWkM?cTs!j`hwT^5b&Vz^)1I9DHqfsUGJ;xeFB@&)sDJ6a(Chjg(nFq-J! zyV6EfH;yHze^(_*!e1a-Tw5JfS!rB=AJ{g@P=+<7i!cXsTUCiHzjvfqff!yk6~f9WcOhaxcz zZD*@S$OWUA88f28HK7>tro)HB^wKp6z8vfNVkjx0i>3wRd~J*OH_qp%#mxE6plr>z zT`Up=zWH|zuliP+3bJ132?Y$;os8rm0`Ihdq3qZN7SfsKSf~17tKR6>c{9OzOUGg{ z4Rjh&2AUCbqwfCqUm&vUe-87pO*+tR_m?CE$L*5yI23_iOS{6TVJ=h z%X9JjZlo_3UtNEve0Rv%WERA|3Jzj!a?}RMA7p?cFiI%xiZZEf0pu`{d+X{mDOGrf6k{C?t5O9I&Q;inDf7+ax+uU|~ z-`!E(pQEjRQp>AyS;CYmgb+{Hu`n3Z%O~QbPKD}F>?ndnZ+U6%gT1_Ail74 zGdfYY6h=u53w)Z*2dtrGdHk7_~Cupaxq) zG@}n%@)V^vwF!_;|B*FhwrEY{?gKTbe^Vv2Mkxl~QU9=|^2$i)F^2bh4e4o-2-Tuc z)o*eh9)jRaxVK`AAO_5{89P?843Ko^X*XpsRRk^Mhhf~#4q#iT!%>*5IxW&S=yvs5 zBUsX`4%_L`Q?_s;2O)Mkez@wu_soPeZr$XR|Ds50gML@>ed0cAc^XPbrpj6(M7wHX zF{|$MK<;j9whAe$NcorDd{|=OkeUA)k%i8BCy2+D^$;UzhM?g&G)yjN<{pg%GBs`l zqwT*r^XgCSD?nEG2RhwpE;jv!;fDR7HhZgTQUNV?vJZn+JZZ!F65^PKahODs=oW8v z5eFf6D(_{Kf5YHSVNyRREU?$*pUoXt zX^L86wI}G^DkjWWj&ts(fjr!sT!JBR*Ol5UV2eShDmSw z@n;E|YDjXTwf)3QyiQLqH7BG_*fvh7#L!!q$`Y6MsH*Vgua`>hfxnCKS99G(JT@uk z508QAFU>TylU*-QXJGX7St7}Lf0q5ThBIFjg z)Tw(MgQx%by>y2e%Io0&fvpq6%uF_cJ+$FDna43OtP0pw?H`jCkpu(z`Rx0%p{&?BQ;Wpr$ u_Wg5%DS+!eNa<>ni;4Z$MHX3e#}HxXO8|@?mO#MIGer%BGAuds;Qs^hgD98) delta 47688 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 OzTU_x$&^VM2K^62Z*8Oi diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 881652a8389c782f232ca7ff7784d2c43da6c3fd..72adf533b68aea1e38435b27b794a66e87f3fd17 100644 GIT binary patch delta 19285 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 YjphpPUmLnZA|c@AiaK_r+VMi{-~V7NH~;_u diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi index 4c32093c75ee011fa627d01458f13b6a11bca3b9..554144e76e1bfa54bbd6bd464c0b67450cd3aa38 100644 GIT binary patch delta 13279 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 delta 13326 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 diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi index 480a515702a2cf87df89c1f5ff06b1e1f81f0d3f..811c95536af8e76cc84e84f46fbe4e19e9242d03 100644 GIT binary patch delta 2442 zcmV;533c{^tpTyK0gxnr?Rr#LbVOxyV{&P5bZKvH004NLotDjR+b|5r&+$_T?KKf|q!?WU*K9+bkSm|wg-PSG zPzCu-k)NBL!2maZbySD_;r>zv0)wXLq7N7iawjLtXZt~p*;UYkn6y<9$nB2VRoEW7 z1m))WjJb*)v#Yc}X7?XHY{wNnGE~uZwzrHWiZOeQTpnf{S00ajPFm0-Iq9JfMCAaz zM$HIww?dM`nj&^ruvReR?nQbaO#xDcZiVPW0J&gE4A&linaeZ(Q`3iBlZrTt`TC>0 z9xaj4z~usbc|`RHlHKQ{LGDDWh)9^)`9W473?!QgF(#T=xA~RKgf*E7usGsp{6pfOv1B3R$DGa?&4gtOVI-(y zTNIW^aEr!uOmwt}Rw4t+_s4)z0V(wC2i|gfxwpNy<+g>MCuvUax#xYKf7|3e&wcxz z+a9g#<<#2RTEx~`dr~H5iJEJZIWTbB+d-v-6Ht9|JViFY- z=QviX{&P4lm$-V#^;ceAj>^hPl$Vz~`gZT$E!YC{skdA^%1`-O1ax6kE|LRAiuTpi)QH~M#B8r#YY`m3fB$}@q@+l`R-@5~>gsBb?I?d>@GlDi zN=i&7on4QZjPz}!f2pw%`A3h#Z0_)B_H(2#>BuJ+iD z@&^Y0lCJ?JB_l$FKSV$*oT9yNN=@D|0&@G~P!@=nD8teAuOS7D|c_AYFhw5g#CMmw{g&8p6)h zRNOQef6x&dE7`XcJIWsz{GQi<2HJtqenhAU%oBjkPVn5WocI7h2or_o=4Pa4yoIjL zuAmSfsqj>MSX}=03zz4amtsNeLr%wBaL>8(BlLSDA^y(~IRD;ADnHkb@0aoi7QaUV zM5>AiTJ-?20|17nW?}3e#z)s$6q|hPb3W0Lf6-{TcMDmW+x;d!Q8967ZEHogwuI?3 zl@cYzCp#;Xq@`+5S@EOj7;nV~0L-29+qh0XPeNE|r{nz`h58z*8(9EuAxg6uE_;4W>pa4L|hcJnSLB>Dk2co;+Uu=FpD1YGc%Mu`R+N=ce@$rg^f6wYQ z31su;WB?EpA76l5aQ2t@_zGlvzKG~9Wf%I&#kS0HzE4*>uwOAj`^vlD=G@VKiV0B~94H2rxKGm#0DpYl7wr2v_&vsi^`bPSAGkn_{y zpqh}u29>1;Gm#0HiA-<=Bij!^Ga4t@#>Xti2$ z{`~m`e^~A-|CB#C`Ir13l2I%kYHDiy>YwrlH$Mdh1%*%XKeSv)-^3WT_W%F@07*qo IM6N<$f^5{niU0rr delta 1616 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 z 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 diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 9d2e8af0273f89de41498dd34ef6c1d9d2ec3ad0..d4f27ed2b83d6eeec784603589e73c5d6af7d88f 100644 GIT binary patch literal 58026 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 literal 58501 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 delta 7343 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 diff --git a/sound/misc/disappointed.ogg b/sound/misc/disappointed.ogg new file mode 100644 index 0000000000000000000000000000000000000000..65b7a302a9e627738a456ca7fda654afc2ae411a GIT binary patch literal 80381 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

  • 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 NxbSC>pN*S9{|Dx=zeE54 literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index 48f56ea906..fccf050e3d 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -954,10 +954,9 @@ #include "code\modules\admin\NewBan.dm" #include "code\modules\admin\player_panel.dm" #include "code\modules\admin\secrets.dm" -#include "code\modules\admin\sql_notes.dm" +#include "code\modules\admin\sql_message_system.dm" #include "code\modules\admin\stickyban.dm" #include "code\modules\admin\topic.dm" -#include "code\modules\admin\watchlist.dm" #include "code\modules\admin\whitelist.dm" #include "code\modules\admin\DB_ban\functions.dm" #include "code\modules\admin\permissionverbs\permissionedit.dm" @@ -1257,6 +1256,7 @@ #include "code\modules\food_and_drinks\food\snacks_vend.dm" #include "code\modules\food_and_drinks\food\snacks\dough.dm" #include "code\modules\food_and_drinks\food\snacks\meat.dm" +#include "code\modules\food_and_drinks\kitchen_machinery\deep_fryer.dm" #include "code\modules\food_and_drinks\kitchen_machinery\food_cart.dm" #include "code\modules\food_and_drinks\kitchen_machinery\gibber.dm" #include "code\modules\food_and_drinks\kitchen_machinery\icecream_vat.dm" diff --git a/tgui/assets/tgui.css b/tgui/assets/tgui.css index 03651d3a6b..061a7de6a6 100644 --- a/tgui/assets/tgui.css +++ b/tgui/assets/tgui.css @@ -1 +1 @@ -@charset "utf-8";body,html{box-sizing:border-box;height:100%;margin:0}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif;font-size:12px;color:#fff;background-color:#2a2a2a;background-image:linear-gradient(180deg,#2a2a2a 0,#202020);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2a2a2a',endColorstr='#ff202020',GradientType=0)}*,:after,:before{box-sizing:inherit}h1,h2,h3,h4{display:inline-block;margin:0;padding:6px 0}h1{font-size:18px}h2{font-size:16px}h3{font-size:14px}h4{font-size:12px}body.clockwork{background:linear-gradient(180deg,#b18b25 0,#5f380e);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffb18b25',endColorstr='#ff5f380e',GradientType=0)}body.clockwork .normal{color:#b18b25}body.clockwork .good{color:#cfba47}body.clockwork .average{color:#896b19}body.clockwork .bad{color:#5f380e}body.clockwork .highlight{color:#b18b25}body.clockwork main{display:block;margin-top:32px;padding:2px 6px 0}body.clockwork hr{height:2px;background-color:#b18b25;border:none}body.clockwork .hidden{display:none}body.clockwork .bar .barText,body.clockwork span.button{color:#b18b25;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.clockwork .bold{font-weight:700}body.clockwork .italic{font-style:italic}body.clockwork [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.clockwork div[data-tooltip],body.clockwork span[data-tooltip]{position:relative}body.clockwork div[data-tooltip]:after,body.clockwork span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #170800;background-color:#2d1400}body.clockwork div[data-tooltip]:hover:after,body.clockwork span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.clockwork div[data-tooltip].tooltip-top:after,body.clockwork span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.clockwork div[data-tooltip].tooltip-top:hover:after,body.clockwork span[data-tooltip].tooltip-top:hover:after{-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.clockwork div[data-tooltip].tooltip-bottom:after,body.clockwork span[data-tooltip].tooltip-bottom:after{top:100%;left:50%;-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.clockwork div[data-tooltip].tooltip-bottom:hover:after,body.clockwork span[data-tooltip].tooltip-bottom:hover:after{-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.clockwork div[data-tooltip].tooltip-left:after,body.clockwork span[data-tooltip].tooltip-left:after{top:50%;right:100%;-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.clockwork div[data-tooltip].tooltip-left:hover:after,body.clockwork span[data-tooltip].tooltip-left:hover:after{-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.clockwork div[data-tooltip].tooltip-right:after,body.clockwork span[data-tooltip].tooltip-right:after{top:50%;left:100%;-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.clockwork div[data-tooltip].tooltip-right:hover:after,body.clockwork span[data-tooltip].tooltip-right:hover:after{-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.clockwork .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #170800;background:#2d1400}body.clockwork .bar .barText{position:absolute;top:0;right:3px}body.clockwork .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#b18b25}body.clockwork .bar .barFill.good{background-color:#cfba47}body.clockwork .bar .barFill.average{background-color:#896b19}body.clockwork .bar .barFill.bad{background-color:#5f380e}body.clockwork span.button{display:inline-block;vertical-align:middle;min-height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #170800}body.clockwork span.button .fa{padding-right:2px}body.clockwork span.button.normal{transition:background-color .5s;background-color:#5f380e}body.clockwork span.button.normal.active:focus,body.clockwork span.button.normal.active:hover{transition:background-color .25s;background-color:#704211;outline:0}body.clockwork span.button.disabled{transition:background-color .5s;background-color:#2d1400}body.clockwork span.button.disabled.active:focus,body.clockwork span.button.disabled.active:hover{transition:background-color .25s;background-color:#441e00;outline:0}body.clockwork span.button.selected{transition:background-color .5s;background-color:#cfba47}body.clockwork span.button.selected.active:focus,body.clockwork span.button.selected.active:hover{transition:background-color .25s;background-color:#d1bd50;outline:0}body.clockwork span.button.toggle{transition:background-color .5s;background-color:#cfba47}body.clockwork span.button.toggle.active:focus,body.clockwork span.button.toggle.active:hover{transition:background-color .25s;background-color:#d1bd50;outline:0}body.clockwork span.button.caution{transition:background-color .5s;background-color:#be6209}body.clockwork span.button.caution.active:focus,body.clockwork span.button.caution.active:hover{transition:background-color .25s;background-color:#cd6a0a;outline:0}body.clockwork span.button.danger{transition:background-color .5s;background-color:#9a9d00}body.clockwork span.button.danger.active:focus,body.clockwork span.button.danger.active:hover{transition:background-color .25s;background-color:#abaf00;outline:0}body.clockwork span.button.gridable{width:125px;margin:2px 0}body.clockwork span.button+span:not(.button),body.clockwork span:not(.button)+span.button{margin-left:5px}body.clockwork div.display{width:100%;padding:4px;margin:6px 0;background-color:#2d1400;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#e62d1400,endColorStr=#e62d1400)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#e62d1400,endColorStr=#e62d1400);background-color:rgba(45,20,0,.9);box-shadow:inset 0 0 5px rgba(0,0,0,.3)}body.clockwork div.display header,body.clockwork div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#cfba47;border-bottom:2px solid #b18b25}body.clockwork div.display header .buttonRight,body.clockwork div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.clockwork div.display article,body.clockwork div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.clockwork input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#b18b25;background-color:#cfba47;border:1px solid #272727}body.clockwork input::-webkit-input-placeholder{color:#999}body.clockwork input::-moz-placeholder{color:#999}body.clockwork input:-ms-input-placeholder{color:#999}body.clockwork input::placeholder{color:#999}body.clockwork input::-ms-clear{display:none}body.clockwork svg.linegraph{overflow:hidden}body.clockwork div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#2d1400;font-weight:700;font-style:italic;background-color:#000;background-image:repeating-linear-gradient(-45deg,#000,#000 10px,#170800 0,#170800 20px)}body.clockwork div.notice .label{color:#2d1400}body.clockwork div.notice .content:only-of-type{padding:0}body.clockwork div.notice hr{background-color:#896b19}body.clockwork div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #5f380e;-ms-transform:rotate(1turn);transform:rotate(1turn)}body.clockwork section .content,body.clockwork section .label,body.clockwork section .line,body.nanotrasen section .content,body.nanotrasen section .label,body.nanotrasen section .line,body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.clockwork section{display:table-row;width:100%}body.clockwork section:not(:first-child){padding-top:4px}body.clockwork section.candystripe:nth-child(even){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.clockwork section .label{width:1%;padding-right:32px;white-space:nowrap;color:#b18b25}body.clockwork section .content:not(:last-child){padding-right:16px}body.clockwork section .line{width:100%}body.clockwork div.subdisplay{width:100%;margin:0}body.clockwork header.titlebar .close,body.clockwork header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#cfba47}body.clockwork header.titlebar .close:hover,body.clockwork header.titlebar .minimize:hover{color:#d1bd50}body.clockwork header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#5f380e;border-bottom:1px solid #170800;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.clockwork header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.clockwork header.titlebar .title{position:absolute;top:6px;left:46px;color:#cfba47;font-size:16px;white-space:nowrap}body.clockwork header.titlebar .minimize{position:absolute;top:6px;right:46px}body.clockwork header.titlebar .close{position:absolute;top:4px;right:12px}body.nanotrasen{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4wIiB2aWV3Qm94PSIwIDAgNDI1IDIwMCIgb3BhY2l0eT0iLjMzIj4NCiAgPHBhdGggZD0ibSAxNzguMDAzOTksMC4wMzg2OSAtNzEuMjAzOTMsMCBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgLTYuNzYxMzQsNi4wMjU1NSBsIDAsMTg3Ljg3MTQ3IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM0LDYuMDI1NTQgbCA1My4xMDcyLDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDYuNzYxMzUsLTYuMDI1NTQgbCAwLC0xMDEuNTQ0MDE4IDcyLjIxNjI4LDEwNC42OTkzOTggYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDUuNzYwMTUsMi44NzAxNiBsIDczLjU1NDg3LDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDYuNzYxMzUsLTYuMDI1NTQgbCAwLC0xODcuODcxNDcgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTM1LC02LjAyNTU1IGwgLTU0LjcxNjQ0LDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTMzLDYuMDI1NTUgbCAwLDEwMi42MTkzNSBMIDE4My43NjQxMywyLjkwODg2IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNS43NjAxNCwtMi44NzAxNyB6IiAvPg0KICA8cGF0aCBkPSJNIDQuODQ0NjMzMywyMi4xMDg3NSBBIDEzLjQxMjAzOSwxMi41MDE4NDIgMCAwIDEgMTMuNDc3NTg4LDAuMDM5MjQgbCA2Ni4xMTgzMTUsMCBhIDUuMzY0ODE1OCw1LjAwMDczNyAwIDAgMSA1LjM2NDgyMyw1LjAwMDczIGwgMCw3OS44NzkzMSB6IiAvPg0KICA8cGF0aCBkPSJtIDQyMC4xNTUzNSwxNzcuODkxMTkgYSAxMy40MTIwMzgsMTIuNTAxODQyIDAgMCAxIC04LjYzMjk1LDIyLjA2OTUxIGwgLTY2LjExODMyLDAgYSA1LjM2NDgxNTIsNS4wMDA3MzcgMCAwIDEgLTUuMzY0ODIsLTUuMDAwNzQgbCAwLC03OS44NzkzMSB6IiAvPg0KPC9zdmc+DQo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4NCjwhLS0gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLyAtLT4NCg==") no-repeat fixed 50%/70% 70%,linear-gradient(180deg,#2a2a2a 0,#202020);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2a2a2a',endColorstr='#ff202020',GradientType=0)}body.nanotrasen .normal{color:#40628a}body.nanotrasen .good{color:#537d29}body.nanotrasen .average{color:#be6209}body.nanotrasen .bad{color:#b00e0e}body.nanotrasen .highlight{color:#8ba5c4}body.nanotrasen main{display:block;margin-top:32px;padding:2px 6px 0}body.nanotrasen hr{height:2px;background-color:#40628a;border:none}body.nanotrasen .hidden{display:none}body.nanotrasen .bar .barText,body.nanotrasen span.button{color:#fff;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.nanotrasen .bold{font-weight:700}body.nanotrasen .italic{font-style:italic}body.nanotrasen [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.nanotrasen div[data-tooltip],body.nanotrasen span[data-tooltip]{position:relative}body.nanotrasen div[data-tooltip]:after,body.nanotrasen span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #272727;background-color:#363636}body.nanotrasen div[data-tooltip]:hover:after,body.nanotrasen span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.nanotrasen div[data-tooltip].tooltip-top:after,body.nanotrasen span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.nanotrasen div[data-tooltip].tooltip-top:hover:after,body.nanotrasen span[data-tooltip].tooltip-top:hover:after{-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.nanotrasen div[data-tooltip].tooltip-bottom:after,body.nanotrasen span[data-tooltip].tooltip-bottom:after{top:100%;left:50%;-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.nanotrasen div[data-tooltip].tooltip-bottom:hover:after,body.nanotrasen span[data-tooltip].tooltip-bottom:hover:after{-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.nanotrasen div[data-tooltip].tooltip-left:after,body.nanotrasen span[data-tooltip].tooltip-left:after{top:50%;right:100%;-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-left:hover:after,body.nanotrasen span[data-tooltip].tooltip-left:hover:after{-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-right:after,body.nanotrasen span[data-tooltip].tooltip-right:after{top:50%;left:100%;-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-right:hover:after,body.nanotrasen span[data-tooltip].tooltip-right:hover:after{-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.nanotrasen .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #40628a;background:#272727}body.nanotrasen .bar .barText{position:absolute;top:0;right:3px}body.nanotrasen .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#40628a}body.nanotrasen .bar .barFill.good{background-color:#537d29}body.nanotrasen .bar .barFill.average{background-color:#be6209}body.nanotrasen .bar .barFill.bad{background-color:#b00e0e}body.nanotrasen span.button{display:inline-block;vertical-align:middle;min-height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #272727}body.nanotrasen span.button .fa{padding-right:2px}body.nanotrasen span.button.normal{transition:background-color .5s;background-color:#40628a}body.nanotrasen span.button.normal.active:focus,body.nanotrasen span.button.normal.active:hover{transition:background-color .25s;background-color:#4f78aa;outline:0}body.nanotrasen span.button.disabled{transition:background-color .5s;background-color:#999}body.nanotrasen span.button.disabled.active:focus,body.nanotrasen span.button.disabled.active:hover{transition:background-color .25s;background-color:#a8a8a8;outline:0}body.nanotrasen span.button.selected{transition:background-color .5s;background-color:#2f943c}body.nanotrasen span.button.selected.active:focus,body.nanotrasen span.button.selected.active:hover{transition:background-color .25s;background-color:#3ab84b;outline:0}body.nanotrasen span.button.toggle{transition:background-color .5s;background-color:#2f943c}body.nanotrasen span.button.toggle.active:focus,body.nanotrasen span.button.toggle.active:hover{transition:background-color .25s;background-color:#3ab84b;outline:0}body.nanotrasen span.button.caution{transition:background-color .5s;background-color:#9a9d00}body.nanotrasen span.button.caution.active:focus,body.nanotrasen span.button.caution.active:hover{transition:background-color .25s;background-color:#ced200;outline:0}body.nanotrasen span.button.danger{transition:background-color .5s;background-color:#9d0808}body.nanotrasen span.button.danger.active:focus,body.nanotrasen span.button.danger.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.nanotrasen span.button.gridable{width:125px;margin:2px 0}body.nanotrasen span.button+span:not(.button),body.nanotrasen span:not(.button)+span.button{margin-left:5px}body.nanotrasen div.display{width:100%;padding:4px;margin:6px 0;background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000);background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5)}body.nanotrasen div.display header,body.nanotrasen div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#fff;border-bottom:2px solid #40628a}body.nanotrasen div.display header .buttonRight,body.nanotrasen div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.nanotrasen div.display article,body.nanotrasen div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.nanotrasen input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#000;background-color:#fff;border:1px solid #272727}body.nanotrasen input::-webkit-input-placeholder{color:#999}body.nanotrasen input::-moz-placeholder{color:#999}body.nanotrasen input:-ms-input-placeholder{color:#999}body.nanotrasen input::placeholder{color:#999}body.nanotrasen input::-ms-clear{display:none}body.nanotrasen svg.linegraph{overflow:hidden}body.nanotrasen div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#000;font-weight:700;font-style:italic;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,#bb9b68,#bb9b68 10px,#b1905d 0,#b1905d 20px)}body.nanotrasen div.notice .label{color:#000}body.nanotrasen div.notice .content:only-of-type{padding:0}body.nanotrasen div.notice hr{background-color:#272727}body.nanotrasen div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #363636;-ms-transform:rotate(1turn);transform:rotate(1turn)}body.nanotrasen section .content,body.nanotrasen section .label,body.nanotrasen section .line,body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.nanotrasen section{display:table-row;width:100%}body.nanotrasen section:not(:first-child){padding-top:4px}body.nanotrasen section.candystripe:nth-child(even){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.nanotrasen section .label{width:1%;padding-right:32px;white-space:nowrap;color:#8ba5c4}body.nanotrasen section .content:not(:last-child){padding-right:16px}body.nanotrasen section .line{width:100%}body.nanotrasen div.subdisplay{width:100%;margin:0}body.nanotrasen header.titlebar .close,body.nanotrasen header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#8ba5c4}body.nanotrasen header.titlebar .close:hover,body.nanotrasen header.titlebar .minimize:hover{color:#9cb2cd}body.nanotrasen header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.nanotrasen header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.nanotrasen header.titlebar .title{position:absolute;top:6px;left:46px;color:#8ba5c4;font-size:16px;white-space:nowrap}body.nanotrasen header.titlebar .minimize{position:absolute;top:6px;right:46px}body.nanotrasen header.titlebar .close{position:absolute;top:4px;right:12px}body.syndicate{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4wIiB2aWV3Qm94PSIwIDAgMjAwIDI4OS43NDIiIG9wYWNpdHk9Ii4zMyI+DQogIDxwYXRoIGQ9Im0gOTMuNTM3Njc3LDAgYyAtMTguMTEzMTI1LDAgLTM0LjIyMDEzMywzLjExMTY0IC00OC4zMjM0ODQsOS4zMzQzNyAtMTMuOTY1MDkyLDYuMjIxNjcgLTI0LjYxMjQ0MiwxNS4wNzExNCAtMzEuOTQwNjUxLDI2LjU0NzEgLTcuMTg5OTM5OCwxMS4zMzc4OSAtMTAuMzAxMjI2NiwyNC43NDkxMSAtMTAuMzAxMjI2Niw0MC4yMzQ3OCAwLDEwLjY0NjYyIDIuNzI1MDAyNiwyMC40NjQ2NSA4LjE3NTExMTYsMjkuNDUyNTggNS42MTUyNzcsOC45ODY4NiAxNC4wMzgyNzcsMTcuMzUyMDQgMjUuMjY4ODIxLDI1LjA5NDM2IDExLjIzMDU0NCw3LjYwNTMxIDI2LjUwNzQyMSwxNS40MTgzNSA0NS44MzA1MTQsMjMuNDM3ODIgMTkuOTgzNzQ4LDguMjk1NTcgMzQuODQ4ODQ4LDE1LjU1NDcxIDQ0LjU5Mjk5OCwyMS43NzYzOCA5Ljc0NDE0LDYuMjIyNzMgMTYuNzYxNywxMi44NTg1IDIxLjA1NTcyLDE5LjkwOTUxIDQuMjk0MDQsNy4wNTIwOCA2LjQ0MTkzLDE1Ljc2NDA4IDYuNDQxOTMsMjYuMTM0NTkgMCwxNi4xNzcwMiAtNS4yMDE5NiwyOC40ODIyMiAtMTUuNjA2NzMsMzYuOTE2ODIgLTEwLjIzOTYsOC40MzQ3IC0yNS4wMjIwMywxMi42NTIzIC00NC4zNDUxNjksMTIuNjUyMyAtMTQuMDM4MTcxLDAgLTI1LjUxNTI0NywtMS42NTk0IC0zNC40MzM2MTgsLTQuOTc3NyAtOC45MTgzNywtMy40NTY2IC0xNi4xODU1NzIsLTguNzExMyAtMjEuODAwODM5LC0xNS43NjMzIC01LjYxNTI3NywtNy4wNTIxIC0xMC4wNzQ3OTUsLTE2LjY2MDg4IC0xMy4zNzc4OTksLTI4LjgyODEyIGwgLTI0Ljc3MzE2MjYyOTM5NDUsMCAwLDU2LjgyNjMyIEMgMzMuODU2NzY5LDI4Ni4wNzYwMSA2My43NDkwNCwyODkuNzQyMDEgODkuNjc4MzgzLDI4OS43NDIwMSBjIDE2LjAyMDAyNywwIDMwLjcxOTc4NywtMS4zODI3IDQ0LjA5NzMzNywtNC4xNDc5IDEzLjU0MjcyLC0yLjkwNDMgMjUuMTA0MSwtNy40Njc2IDM0LjY4MzA5LC0xMy42ODkzIDkuNzQ0MTMsLTYuMzU5NyAxNy4zNDA0MiwtMTQuNTE5NSAyMi43OTA1MiwtMjQuNDc0OCA1LjQ1MDEsLTEwLjA5MzMyIDguMTc1MTEsLTIyLjM5OTU5IDguMTc1MTEsLTM2LjkxNjgyIDAsLTEyLjk5NzY0IC0zLjMwMjEsLTI0LjMzNTM5IC05LjkwODI5LC0zNC4wMTQ2IC02LjQ0MTA1LC05LjgxNzI1IC0xNS41MjU0NSwtMTguNTI3MDcgLTI3LjI1MTQ2LC0yNi4xMzEzMyAtMTEuNTYwODUsLTcuNjA0MjcgLTI3LjkxMDgzLC0xNS44MzE0MiAtNDkuMDUwNjYsLTI0LjY4MDIyIC0xNy41MDY0NCwtNy4xOTAxMiAtMzAuNzE5NjY4LC0xMy42ODk0OCAtMzkuNjM4MDM4LC0xOS40OTcwMSAtOC45MTgzNzEsLTUuODA3NTIgLTE4LjYwNzQ3NCwtMTIuNDM0MDkgLTI0LjA5NjUyNCwtMTguODc0MTcgLTUuNDI2MDQzLC02LjM2NjE2IC05LjY1ODgyNiwtMTUuMDcwMDMgLTkuNjU4ODI2LC0yNC44ODcyOSAwLC05LjI2NDAxIDIuMDc1NDE0LC0xNy4yMTM0NSA2LjIyMzQ1NCwtMjMuODUwMzMgMTEuMDk4Mjk4LC0xNC4zOTc0OCA0MS4yODY2MzgsLTEuNzk1MDcgNDUuMDc1NjA5LDI0LjM0NzYyIDQuODM5MzkyLDYuNzc0OTEgOC44NDkzNSwxNi4yNDcyOSAxMi4wMjk1MTUsMjguNDE1NiBsIDIwLjUzMjM0LDAgMCwtNTUuOTk5NjcgYyAtNC40NzgyNSwtNS45MjQ0OCAtOS45NTQ4OCwtMTAuNjMyMjIgLTE1LjkwODM3LC0xNC4zNzQxMSAxLjY0MDU1LDAuNDc5MDUgMy4xOTAzOSwxLjAyMzc2IDQuNjM4NjUsMS42NDAyNCA2LjQ5ODYxLDIuNjI2MDcgMTIuMTY3OTMsNy4zMjc0NyAxNy4wMDczLDE0LjEwMzQ1IDQuODM5MzksNi43NzQ5MSA4Ljg0OTM1LDE2LjI0NTY3IDEyLjAyOTUyLDI4LjQxMzk3IDAsMCA4LjQ4MTI4LC0wLjEyODk0IDguNDg5NzgsLTAuMDAyIDAuNDE3NzYsNi40MTQ5NCAtMS43NTMzOSw5LjQ1Mjg2IC00LjEyMzQyLDEyLjU2MTA0IC0yLjQxNzQsMy4xNjk3OCAtNS4xNDQ4Niw2Ljc4OTczIC00LjAwMjc4LDEzLjAwMjkgMS41MDc4Niw4LjIwMzE4IDEwLjE4MzU0LDEwLjU5NjQyIDE0LjYyMTk0LDkuMzExNTQgLTMuMzE4NDIsLTAuNDk5MTEgLTUuMzE4NTUsLTEuNzQ5NDggLTUuMzE4NTUsLTEuNzQ5NDggMCwwIDEuODc2NDYsMC45OTg2OCA1LjY1MTE3LC0xLjM1OTgxIC0zLjI3Njk1LDAuOTU1NzEgLTEwLjcwNTI5LC0wLjc5NzM4IC0xMS44MDEyNSwtNi43NjMxMyAtMC45NTc1MiwtNS4yMDg2MSAwLjk0NjU0LC03LjI5NTE0IDMuNDAxMTMsLTEwLjUxNDgyIDIuNDU0NjIsLTMuMjE5NjggNS4yODQyNiwtNi45NTgzMSA0LjY4NDMsLTE0LjQ4ODI0IGwgMC4wMDMsMC4wMDIgOC45MjY3NiwwIDAsLTU1Ljk5OTY3IGMgLTE1LjA3MTI1LC0zLjg3MTY4IC0yNy42NTMxNCwtNi4zNjA0MiAtMzcuNzQ2NzEsLTcuNDY1ODYgLTkuOTU1MzEsLTEuMTA3NTUgLTIwLjE4ODIzLC0xLjY1OTgxIC0zMC42OTY2MTMsLTEuNjU5ODEgeiBtIDcwLjMyMTYwMywxNy4zMDg5MyAwLjIzODA1LDQwLjMwNDkgYyAxLjMxODA4LDEuMjI2NjYgMi40Mzk2NSwyLjI3ODE1IDMuMzQwODEsMy4xMDYwMiA0LjgzOTM5LDYuNzc0OTEgOC44NDkzNCwxNi4yNDU2NiAxMi4wMjk1MSwyOC40MTM5NyBsIDIwLjUzMjM0LDAgMCwtNTUuOTk5NjcgYyAtNi42NzczMSwtNC41OTM4MSAtMTkuODM2NDMsLTEwLjQ3MzA5IC0zNi4xNDA3MSwtMTUuODI1MjIgeiBtIC0yOC4xMjA0OSw1LjYwNTUxIDguNTY0NzksMTcuNzE2NTUgYyAtMTEuOTcwMzcsLTYuNDY2OTcgLTEzLjg0Njc4LC05LjcxNzI2IC04LjU2NDc5LC0xNy43MTY1NSB6IG0gMjIuNzk3MDUsMCBjIDIuNzcxNSw3Ljk5OTI5IDEuNzg3NDEsMTEuMjQ5NTggLTQuNDkzNTQsMTcuNzE2NTUgbCA0LjQ5MzU0LC0xNy43MTY1NSB6IG0gMTUuMjIxOTUsMjQuMDA4NDggOC41NjQ3OSwxNy43MTY1NSBjIC0xMS45NzAzOCwtNi40NjY5NyAtMTMuODQ2NzksLTkuNzE3MjYgLTguNTY0NzksLTE3LjcxNjU1IHogbSAyMi43OTcwNCwwIGMgMi43NzE1LDcuOTk5MjkgMS43ODc0MSwxMS4yNDk1OCAtNC40OTM1NCwxNy43MTY1NSBsIDQuNDkzNTQsLTE3LjcxNjU1IHogbSAtOTkuMTEzODQsMi4yMDc2NCA4LjU2NDc5LDE3LjcxNjU1IGMgLTExLjk3MDM4MiwtNi40NjY5NyAtMTMuODQ2NzgyLC05LjcxNzI2IC04LjU2NDc5LC0xNy43MTY1NSB6IG0gMjIuNzk1NDIsMCBjIDIuNzcxNSw3Ljk5OTI5IDEuNzg3NDEsMTEuMjQ5NTggLTQuNDkzNTQsMTcuNzE2NTUgbCA0LjQ5MzU0LC0xNy43MTY1NSB6IiAvPg0KPC9zdmc+DQo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4NCjwhLS0gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLyAtLT4NCg==") no-repeat fixed 50%/70% 70%,linear-gradient(180deg,#750000 0,#340404);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff750000',endColorstr='#ff340404',GradientType=0)}body.syndicate .normal{color:#40628a}body.syndicate .good{color:#73e573}body.syndicate .average{color:#be6209}body.syndicate .bad{color:#b00e0e}body.syndicate .highlight{color:#000}body.syndicate main{display:block;margin-top:32px;padding:2px 6px 0}body.syndicate hr{height:2px;background-color:#272727;border:none}body.syndicate .hidden{display:none}body.syndicate .bar .barText,body.syndicate span.button{color:#fff;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.syndicate .bold{font-weight:700}body.syndicate .italic{font-style:italic}body.syndicate [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.syndicate div[data-tooltip],body.syndicate span[data-tooltip]{position:relative}body.syndicate div[data-tooltip]:after,body.syndicate span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #272727;background-color:#363636}body.syndicate div[data-tooltip]:hover:after,body.syndicate span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.syndicate div[data-tooltip].tooltip-top:after,body.syndicate span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.syndicate div[data-tooltip].tooltip-top:hover:after,body.syndicate span[data-tooltip].tooltip-top:hover:after{-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.syndicate div[data-tooltip].tooltip-bottom:after,body.syndicate span[data-tooltip].tooltip-bottom:after{top:100%;left:50%;-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.syndicate div[data-tooltip].tooltip-bottom:hover:after,body.syndicate span[data-tooltip].tooltip-bottom:hover:after{-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.syndicate div[data-tooltip].tooltip-left:after,body.syndicate span[data-tooltip].tooltip-left:after{top:50%;right:100%;-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-left:hover:after,body.syndicate span[data-tooltip].tooltip-left:hover:after{-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-right:after,body.syndicate span[data-tooltip].tooltip-right:after{top:50%;left:100%;-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-right:hover:after,body.syndicate span[data-tooltip].tooltip-right:hover:after{-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.syndicate .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #000;background:#272727}body.syndicate .bar .barText{position:absolute;top:0;right:3px}body.syndicate .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#000}body.syndicate .bar .barFill.good{background-color:#73e573}body.syndicate .bar .barFill.average{background-color:#be6209}body.syndicate .bar .barFill.bad{background-color:#b00e0e}body.syndicate span.button{display:inline-block;vertical-align:middle;min-height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #272727}body.syndicate span.button .fa{padding-right:2px}body.syndicate span.button.normal{transition:background-color .5s;background-color:#397439}body.syndicate span.button.normal.active:focus,body.syndicate span.button.normal.active:hover{transition:background-color .25s;background-color:#4a964a;outline:0}body.syndicate span.button.disabled{transition:background-color .5s;background-color:#363636}body.syndicate span.button.disabled.active:focus,body.syndicate span.button.disabled.active:hover{transition:background-color .25s;background-color:#545454;outline:0}body.syndicate span.button.selected{transition:background-color .5s;background-color:#9d0808}body.syndicate span.button.selected.active:focus,body.syndicate span.button.selected.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.syndicate span.button.toggle{transition:background-color .5s;background-color:#9d0808}body.syndicate span.button.toggle.active:focus,body.syndicate span.button.toggle.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.syndicate span.button.caution{transition:background-color .5s;background-color:#be6209}body.syndicate span.button.caution.active:focus,body.syndicate span.button.caution.active:hover{transition:background-color .25s;background-color:#eb790b;outline:0}body.syndicate span.button.danger{transition:background-color .5s;background-color:#9a9d00}body.syndicate span.button.danger.active:focus,body.syndicate span.button.danger.active:hover{transition:background-color .25s;background-color:#ced200;outline:0}body.syndicate span.button.gridable{width:125px;margin:2px 0}body.syndicate span.button+span:not(.button),body.syndicate span:not(.button)+span.button{margin-left:5px}body.syndicate div.display{width:100%;padding:4px;margin:6px 0;background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#80000000,endColorStr=#80000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#80000000,endColorStr=#80000000);background-color:rgba(0,0,0,.5);box-shadow:inset 0 0 5px rgba(0,0,0,.75)}body.syndicate div.display header,body.syndicate div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#fff;border-bottom:2px solid #272727}body.syndicate div.display header .buttonRight,body.syndicate div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.syndicate div.display article,body.syndicate div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.syndicate input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#fff;background-color:#9d0808;border:1px solid #272727}body.syndicate input::-webkit-input-placeholder{color:#999}body.syndicate input::-moz-placeholder{color:#999}body.syndicate input:-ms-input-placeholder{color:#999}body.syndicate input::placeholder{color:#999}body.syndicate input::-ms-clear{display:none}body.syndicate svg.linegraph{overflow:hidden}body.syndicate div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#000;font-weight:700;font-style:italic;background-color:#750000;background-image:repeating-linear-gradient(-45deg,#750000,#750000 10px,#910101 0,#910101 20px)}body.syndicate div.notice .label{color:#000}body.syndicate div.notice .content:only-of-type{padding:0}body.syndicate div.notice hr{background-color:#272727}body.syndicate div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #363636;-ms-transform:rotate(1turn);transform:rotate(1turn)}body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.syndicate section{display:table-row;width:100%}body.syndicate section:not(:first-child){padding-top:4px}body.syndicate section.candystripe:nth-child(even){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.syndicate section .label{width:1%;padding-right:32px;white-space:nowrap;color:#fff}body.syndicate section .content:not(:last-child){padding-right:16px}body.syndicate section .line{width:100%}body.syndicate div.subdisplay{width:100%;margin:0}body.syndicate header.titlebar .close,body.syndicate header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#e74242}body.syndicate header.titlebar .close:hover,body.syndicate header.titlebar .minimize:hover{color:#eb5e5e}body.syndicate header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.syndicate header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.syndicate header.titlebar .title{position:absolute;top:6px;left:46px;color:#e74242;font-size:16px;white-space:nowrap}body.syndicate header.titlebar .minimize{position:absolute;top:6px;right:46px}body.syndicate header.titlebar .close{position:absolute;top:4px;right:12px}.no-icons header.titlebar .statusicon{font-size:20px}.no-icons header.titlebar .statusicon:after{content:"O"}.no-icons header.titlebar .minimize{top:-2px;font-size:20px}.no-icons header.titlebar .minimize:after{content:"—"}.no-icons header.titlebar .close{font-size:20px}.no-icons header.titlebar .close:after{content:"X"} \ No newline at end of file +@charset "utf-8";body,html{box-sizing:border-box;height:100%;margin:0}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif;font-size:12px;color:#fff;background-color:#2a2a2a;background-image:linear-gradient(180deg,#2a2a2a 0,#202020);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ff2a2a2a",endColorstr="#ff202020",GradientType=0)}*,:after,:before{box-sizing:inherit}h1,h2,h3,h4{display:inline-block;margin:0;padding:6px 0}h1{font-size:18px}h2{font-size:16px}h3{font-size:14px}h4{font-size:12px}body.clockwork{background:linear-gradient(180deg,#b18b25 0,#5f380e);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffb18b25",endColorstr="#ff5f380e",GradientType=0)}body.clockwork .normal{color:#b18b25}body.clockwork .good{color:#cfba47}body.clockwork .average{color:#896b19}body.clockwork .bad{color:#5f380e}body.clockwork .highlight{color:#b18b25}body.clockwork main{display:block;margin-top:32px;padding:2px 6px 0}body.clockwork hr{height:2px;background-color:#b18b25;border:none}body.clockwork .hidden{display:none}body.clockwork .bar .barText,body.clockwork span.button{color:#b18b25;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.clockwork .bold{font-weight:700}body.clockwork .italic{font-style:italic}body.clockwork [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.clockwork div[data-tooltip],body.clockwork span[data-tooltip]{position:relative}body.clockwork div[data-tooltip]:after,body.clockwork span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #170800;background-color:#2d1400}body.clockwork div[data-tooltip]:hover:after,body.clockwork span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.clockwork div[data-tooltip].tooltip-top:after,body.clockwork span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.clockwork div[data-tooltip].tooltip-top:hover:after,body.clockwork span[data-tooltip].tooltip-top:hover:after{-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.clockwork div[data-tooltip].tooltip-bottom:after,body.clockwork span[data-tooltip].tooltip-bottom:after{top:100%;left:50%;-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.clockwork div[data-tooltip].tooltip-bottom:hover:after,body.clockwork span[data-tooltip].tooltip-bottom:hover:after{-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.clockwork div[data-tooltip].tooltip-left:after,body.clockwork span[data-tooltip].tooltip-left:after{top:50%;right:100%;-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.clockwork div[data-tooltip].tooltip-left:hover:after,body.clockwork span[data-tooltip].tooltip-left:hover:after{-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.clockwork div[data-tooltip].tooltip-right:after,body.clockwork span[data-tooltip].tooltip-right:after{top:50%;left:100%;-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.clockwork div[data-tooltip].tooltip-right:hover:after,body.clockwork span[data-tooltip].tooltip-right:hover:after{-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.clockwork .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #170800;background:#2d1400}body.clockwork .bar .barText{position:absolute;top:0;right:3px}body.clockwork .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#b18b25}body.clockwork .bar .barFill.good{background-color:#cfba47}body.clockwork .bar .barFill.average{background-color:#896b19}body.clockwork .bar .barFill.bad{background-color:#5f380e}body.clockwork span.button{display:inline-block;vertical-align:middle;min-height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #170800}body.clockwork span.button .fa{padding-right:2px}body.clockwork span.button.normal{transition:background-color .5s;background-color:#5f380e}body.clockwork span.button.normal.active:focus,body.clockwork span.button.normal.active:hover{transition:background-color .25s;background-color:#704211;outline:0}body.clockwork span.button.disabled{transition:background-color .5s;background-color:#2d1400}body.clockwork span.button.disabled.active:focus,body.clockwork span.button.disabled.active:hover{transition:background-color .25s;background-color:#441e00;outline:0}body.clockwork span.button.selected{transition:background-color .5s;background-color:#cfba47}body.clockwork span.button.selected.active:focus,body.clockwork span.button.selected.active:hover{transition:background-color .25s;background-color:#d1bd50;outline:0}body.clockwork span.button.toggle{transition:background-color .5s;background-color:#cfba47}body.clockwork span.button.toggle.active:focus,body.clockwork span.button.toggle.active:hover{transition:background-color .25s;background-color:#d1bd50;outline:0}body.clockwork span.button.caution{transition:background-color .5s;background-color:#be6209}body.clockwork span.button.caution.active:focus,body.clockwork span.button.caution.active:hover{transition:background-color .25s;background-color:#cd6a0a;outline:0}body.clockwork span.button.danger{transition:background-color .5s;background-color:#9a9d00}body.clockwork span.button.danger.active:focus,body.clockwork span.button.danger.active:hover{transition:background-color .25s;background-color:#abaf00;outline:0}body.clockwork span.button.gridable{width:125px;margin:2px 0}body.clockwork span.button+span:not(.button),body.clockwork span:not(.button)+span.button{margin-left:5px}body.clockwork div.display{width:100%;padding:4px;margin:6px 0;background-color:#2d1400;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#e62d1400,endColorStr=#e62d1400)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#e62d1400,endColorStr=#e62d1400);background-color:rgba(45,20,0,.9);box-shadow:inset 0 0 5px rgba(0,0,0,.3)}body.clockwork div.display header,body.clockwork div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#cfba47;border-bottom:2px solid #b18b25}body.clockwork div.display header .buttonRight,body.clockwork div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.clockwork div.display article,body.clockwork div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.clockwork input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#b18b25;background-color:#cfba47;border:1px solid #272727}body.clockwork input::-webkit-input-placeholder{color:#999}body.clockwork input::-moz-placeholder{color:#999}body.clockwork input:-ms-input-placeholder{color:#999}body.clockwork input::placeholder{color:#999}body.clockwork input::-ms-clear{display:none}body.clockwork svg.linegraph{overflow:hidden}body.clockwork div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#2d1400;font-weight:700;font-style:italic;background-color:#000;background-image:repeating-linear-gradient(-45deg,#000,#000 10px,#170800 0,#170800 20px)}body.clockwork div.notice .label{color:#2d1400}body.clockwork div.notice .content:only-of-type{padding:0}body.clockwork div.notice hr{background-color:#896b19}body.clockwork div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #5f380e;-ms-transform:rotate(1turn);transform:rotate(1turn)}body.clockwork section .content,body.clockwork section .label,body.clockwork section .line,body.nanotrasen section .content,body.nanotrasen section .label,body.nanotrasen section .line,body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.clockwork section{display:table-row;width:100%}body.clockwork section:not(:first-child){padding-top:4px}body.clockwork section.candystripe:nth-child(2n){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.clockwork section .label{width:1%;padding-right:32px;white-space:nowrap;color:#b18b25}body.clockwork section .content:not(:last-child){padding-right:16px}body.clockwork section .line{width:100%}body.clockwork div.subdisplay{width:100%;margin:0}body.clockwork header.titlebar .close,body.clockwork header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#cfba47}body.clockwork header.titlebar .close:hover,body.clockwork header.titlebar .minimize:hover{color:#d1bd50}body.clockwork header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#5f380e;border-bottom:1px solid #170800;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.clockwork header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.clockwork header.titlebar .title{position:absolute;top:6px;left:46px;color:#cfba47;font-size:16px;white-space:nowrap}body.clockwork header.titlebar .minimize{position:absolute;top:6px;right:46px}body.clockwork header.titlebar .close{position:absolute;top:4px;right:12px}body.nanotrasen{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4wIiB2aWV3Qm94PSIwIDAgNDI1IDIwMCIgb3BhY2l0eT0iLjMzIj4NCiAgPHBhdGggZD0ibSAxNzguMDAzOTksMC4wMzg2OSAtNzEuMjAzOTMsMCBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgLTYuNzYxMzQsNi4wMjU1NSBsIDAsMTg3Ljg3MTQ3IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM0LDYuMDI1NTQgbCA1My4xMDcyLDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDYuNzYxMzUsLTYuMDI1NTQgbCAwLC0xMDEuNTQ0MDE4IDcyLjIxNjI4LDEwNC42OTkzOTggYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDUuNzYwMTUsMi44NzAxNiBsIDczLjU1NDg3LDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDYuNzYxMzUsLTYuMDI1NTQgbCAwLC0xODcuODcxNDcgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTM1LC02LjAyNTU1IGwgLTU0LjcxNjQ0LDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTMzLDYuMDI1NTUgbCAwLDEwMi42MTkzNSBMIDE4My43NjQxMywyLjkwODg2IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNS43NjAxNCwtMi44NzAxNyB6IiAvPg0KICA8cGF0aCBkPSJNIDQuODQ0NjMzMywyMi4xMDg3NSBBIDEzLjQxMjAzOSwxMi41MDE4NDIgMCAwIDEgMTMuNDc3NTg4LDAuMDM5MjQgbCA2Ni4xMTgzMTUsMCBhIDUuMzY0ODE1OCw1LjAwMDczNyAwIDAgMSA1LjM2NDgyMyw1LjAwMDczIGwgMCw3OS44NzkzMSB6IiAvPg0KICA8cGF0aCBkPSJtIDQyMC4xNTUzNSwxNzcuODkxMTkgYSAxMy40MTIwMzgsMTIuNTAxODQyIDAgMCAxIC04LjYzMjk1LDIyLjA2OTUxIGwgLTY2LjExODMyLDAgYSA1LjM2NDgxNTIsNS4wMDA3MzcgMCAwIDEgLTUuMzY0ODIsLTUuMDAwNzQgbCAwLC03OS44NzkzMSB6IiAvPg0KPC9zdmc+DQo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4NCjwhLS0gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLyAtLT4NCg==") no-repeat fixed 50%/70% 70%,linear-gradient(180deg,#2a2a2a 0,#202020);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ff2a2a2a",endColorstr="#ff202020",GradientType=0)}body.nanotrasen .normal{color:#40628a}body.nanotrasen .good{color:#537d29}body.nanotrasen .average{color:#be6209}body.nanotrasen .bad{color:#b00e0e}body.nanotrasen .highlight{color:#8ba5c4}body.nanotrasen main{display:block;margin-top:32px;padding:2px 6px 0}body.nanotrasen hr{height:2px;background-color:#40628a;border:none}body.nanotrasen .hidden{display:none}body.nanotrasen .bar .barText,body.nanotrasen span.button{color:#fff;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.nanotrasen .bold{font-weight:700}body.nanotrasen .italic{font-style:italic}body.nanotrasen [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.nanotrasen div[data-tooltip],body.nanotrasen span[data-tooltip]{position:relative}body.nanotrasen div[data-tooltip]:after,body.nanotrasen span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #272727;background-color:#363636}body.nanotrasen div[data-tooltip]:hover:after,body.nanotrasen span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.nanotrasen div[data-tooltip].tooltip-top:after,body.nanotrasen span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.nanotrasen div[data-tooltip].tooltip-top:hover:after,body.nanotrasen span[data-tooltip].tooltip-top:hover:after{-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.nanotrasen div[data-tooltip].tooltip-bottom:after,body.nanotrasen span[data-tooltip].tooltip-bottom:after{top:100%;left:50%;-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.nanotrasen div[data-tooltip].tooltip-bottom:hover:after,body.nanotrasen span[data-tooltip].tooltip-bottom:hover:after{-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.nanotrasen div[data-tooltip].tooltip-left:after,body.nanotrasen span[data-tooltip].tooltip-left:after{top:50%;right:100%;-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-left:hover:after,body.nanotrasen span[data-tooltip].tooltip-left:hover:after{-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-right:after,body.nanotrasen span[data-tooltip].tooltip-right:after{top:50%;left:100%;-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.nanotrasen div[data-tooltip].tooltip-right:hover:after,body.nanotrasen span[data-tooltip].tooltip-right:hover:after{-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.nanotrasen .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #40628a;background:#272727}body.nanotrasen .bar .barText{position:absolute;top:0;right:3px}body.nanotrasen .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#40628a}body.nanotrasen .bar .barFill.good{background-color:#537d29}body.nanotrasen .bar .barFill.average{background-color:#be6209}body.nanotrasen .bar .barFill.bad{background-color:#b00e0e}body.nanotrasen span.button{display:inline-block;vertical-align:middle;min-height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #272727}body.nanotrasen span.button .fa{padding-right:2px}body.nanotrasen span.button.normal{transition:background-color .5s;background-color:#40628a}body.nanotrasen span.button.normal.active:focus,body.nanotrasen span.button.normal.active:hover{transition:background-color .25s;background-color:#4f78aa;outline:0}body.nanotrasen span.button.disabled{transition:background-color .5s;background-color:#999}body.nanotrasen span.button.disabled.active:focus,body.nanotrasen span.button.disabled.active:hover{transition:background-color .25s;background-color:#a8a8a8;outline:0}body.nanotrasen span.button.selected{transition:background-color .5s;background-color:#2f943c}body.nanotrasen span.button.selected.active:focus,body.nanotrasen span.button.selected.active:hover{transition:background-color .25s;background-color:#3ab84b;outline:0}body.nanotrasen span.button.toggle{transition:background-color .5s;background-color:#2f943c}body.nanotrasen span.button.toggle.active:focus,body.nanotrasen span.button.toggle.active:hover{transition:background-color .25s;background-color:#3ab84b;outline:0}body.nanotrasen span.button.caution{transition:background-color .5s;background-color:#9a9d00}body.nanotrasen span.button.caution.active:focus,body.nanotrasen span.button.caution.active:hover{transition:background-color .25s;background-color:#ced200;outline:0}body.nanotrasen span.button.danger{transition:background-color .5s;background-color:#9d0808}body.nanotrasen span.button.danger.active:focus,body.nanotrasen span.button.danger.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.nanotrasen span.button.gridable{width:125px;margin:2px 0}body.nanotrasen span.button+span:not(.button),body.nanotrasen span:not(.button)+span.button{margin-left:5px}body.nanotrasen div.display{width:100%;padding:4px;margin:6px 0;background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000);background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5)}body.nanotrasen div.display header,body.nanotrasen div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#fff;border-bottom:2px solid #40628a}body.nanotrasen div.display header .buttonRight,body.nanotrasen div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.nanotrasen div.display article,body.nanotrasen div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.nanotrasen input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#000;background-color:#fff;border:1px solid #272727}body.nanotrasen input::-webkit-input-placeholder{color:#999}body.nanotrasen input::-moz-placeholder{color:#999}body.nanotrasen input:-ms-input-placeholder{color:#999}body.nanotrasen input::placeholder{color:#999}body.nanotrasen input::-ms-clear{display:none}body.nanotrasen svg.linegraph{overflow:hidden}body.nanotrasen div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#000;font-weight:700;font-style:italic;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,#bb9b68,#bb9b68 10px,#b1905d 0,#b1905d 20px)}body.nanotrasen div.notice .label{color:#000}body.nanotrasen div.notice .content:only-of-type{padding:0}body.nanotrasen div.notice hr{background-color:#272727}body.nanotrasen div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #363636;-ms-transform:rotate(1turn);transform:rotate(1turn)}body.nanotrasen section .content,body.nanotrasen section .label,body.nanotrasen section .line,body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.nanotrasen section{display:table-row;width:100%}body.nanotrasen section:not(:first-child){padding-top:4px}body.nanotrasen section.candystripe:nth-child(2n){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.nanotrasen section .label{width:1%;padding-right:32px;white-space:nowrap;color:#8ba5c4}body.nanotrasen section .content:not(:last-child){padding-right:16px}body.nanotrasen section .line{width:100%}body.nanotrasen div.subdisplay{width:100%;margin:0}body.nanotrasen header.titlebar .close,body.nanotrasen header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#8ba5c4}body.nanotrasen header.titlebar .close:hover,body.nanotrasen header.titlebar .minimize:hover{color:#9cb2cd}body.nanotrasen header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.nanotrasen header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.nanotrasen header.titlebar .title{position:absolute;top:6px;left:46px;color:#8ba5c4;font-size:16px;white-space:nowrap}body.nanotrasen header.titlebar .minimize{position:absolute;top:6px;right:46px}body.nanotrasen header.titlebar .close{position:absolute;top:4px;right:12px}body.syndicate{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4wIiB2aWV3Qm94PSIwIDAgMjAwIDI4OS43NDIiIG9wYWNpdHk9Ii4zMyI+DQogIDxwYXRoIGQ9Im0gOTMuNTM3Njc3LDAgYyAtMTguMTEzMTI1LDAgLTM0LjIyMDEzMywzLjExMTY0IC00OC4zMjM0ODQsOS4zMzQzNyAtMTMuOTY1MDkyLDYuMjIxNjcgLTI0LjYxMjQ0MiwxNS4wNzExNCAtMzEuOTQwNjUxLDI2LjU0NzEgLTcuMTg5OTM5OCwxMS4zMzc4OSAtMTAuMzAxMjI2NiwyNC43NDkxMSAtMTAuMzAxMjI2Niw0MC4yMzQ3OCAwLDEwLjY0NjYyIDIuNzI1MDAyNiwyMC40NjQ2NSA4LjE3NTExMTYsMjkuNDUyNTggNS42MTUyNzcsOC45ODY4NiAxNC4wMzgyNzcsMTcuMzUyMDQgMjUuMjY4ODIxLDI1LjA5NDM2IDExLjIzMDU0NCw3LjYwNTMxIDI2LjUwNzQyMSwxNS40MTgzNSA0NS44MzA1MTQsMjMuNDM3ODIgMTkuOTgzNzQ4LDguMjk1NTcgMzQuODQ4ODQ4LDE1LjU1NDcxIDQ0LjU5Mjk5OCwyMS43NzYzOCA5Ljc0NDE0LDYuMjIyNzMgMTYuNzYxNywxMi44NTg1IDIxLjA1NTcyLDE5LjkwOTUxIDQuMjk0MDQsNy4wNTIwOCA2LjQ0MTkzLDE1Ljc2NDA4IDYuNDQxOTMsMjYuMTM0NTkgMCwxNi4xNzcwMiAtNS4yMDE5NiwyOC40ODIyMiAtMTUuNjA2NzMsMzYuOTE2ODIgLTEwLjIzOTYsOC40MzQ3IC0yNS4wMjIwMywxMi42NTIzIC00NC4zNDUxNjksMTIuNjUyMyAtMTQuMDM4MTcxLDAgLTI1LjUxNTI0NywtMS42NTk0IC0zNC40MzM2MTgsLTQuOTc3NyAtOC45MTgzNywtMy40NTY2IC0xNi4xODU1NzIsLTguNzExMyAtMjEuODAwODM5LC0xNS43NjMzIC01LjYxNTI3NywtNy4wNTIxIC0xMC4wNzQ3OTUsLTE2LjY2MDg4IC0xMy4zNzc4OTksLTI4LjgyODEyIGwgLTI0Ljc3MzE2MjYyOTM5NDUsMCAwLDU2LjgyNjMyIEMgMzMuODU2NzY5LDI4Ni4wNzYwMSA2My43NDkwNCwyODkuNzQyMDEgODkuNjc4MzgzLDI4OS43NDIwMSBjIDE2LjAyMDAyNywwIDMwLjcxOTc4NywtMS4zODI3IDQ0LjA5NzMzNywtNC4xNDc5IDEzLjU0MjcyLC0yLjkwNDMgMjUuMTA0MSwtNy40Njc2IDM0LjY4MzA5LC0xMy42ODkzIDkuNzQ0MTMsLTYuMzU5NyAxNy4zNDA0MiwtMTQuNTE5NSAyMi43OTA1MiwtMjQuNDc0OCA1LjQ1MDEsLTEwLjA5MzMyIDguMTc1MTEsLTIyLjM5OTU5IDguMTc1MTEsLTM2LjkxNjgyIDAsLTEyLjk5NzY0IC0zLjMwMjEsLTI0LjMzNTM5IC05LjkwODI5LC0zNC4wMTQ2IC02LjQ0MTA1LC05LjgxNzI1IC0xNS41MjU0NSwtMTguNTI3MDcgLTI3LjI1MTQ2LC0yNi4xMzEzMyAtMTEuNTYwODUsLTcuNjA0MjcgLTI3LjkxMDgzLC0xNS44MzE0MiAtNDkuMDUwNjYsLTI0LjY4MDIyIC0xNy41MDY0NCwtNy4xOTAxMiAtMzAuNzE5NjY4LC0xMy42ODk0OCAtMzkuNjM4MDM4LC0xOS40OTcwMSAtOC45MTgzNzEsLTUuODA3NTIgLTE4LjYwNzQ3NCwtMTIuNDM0MDkgLTI0LjA5NjUyNCwtMTguODc0MTcgLTUuNDI2MDQzLC02LjM2NjE2IC05LjY1ODgyNiwtMTUuMDcwMDMgLTkuNjU4ODI2LC0yNC44ODcyOSAwLC05LjI2NDAxIDIuMDc1NDE0LC0xNy4yMTM0NSA2LjIyMzQ1NCwtMjMuODUwMzMgMTEuMDk4Mjk4LC0xNC4zOTc0OCA0MS4yODY2MzgsLTEuNzk1MDcgNDUuMDc1NjA5LDI0LjM0NzYyIDQuODM5MzkyLDYuNzc0OTEgOC44NDkzNSwxNi4yNDcyOSAxMi4wMjk1MTUsMjguNDE1NiBsIDIwLjUzMjM0LDAgMCwtNTUuOTk5NjcgYyAtNC40NzgyNSwtNS45MjQ0OCAtOS45NTQ4OCwtMTAuNjMyMjIgLTE1LjkwODM3LC0xNC4zNzQxMSAxLjY0MDU1LDAuNDc5MDUgMy4xOTAzOSwxLjAyMzc2IDQuNjM4NjUsMS42NDAyNCA2LjQ5ODYxLDIuNjI2MDcgMTIuMTY3OTMsNy4zMjc0NyAxNy4wMDczLDE0LjEwMzQ1IDQuODM5MzksNi43NzQ5MSA4Ljg0OTM1LDE2LjI0NTY3IDEyLjAyOTUyLDI4LjQxMzk3IDAsMCA4LjQ4MTI4LC0wLjEyODk0IDguNDg5NzgsLTAuMDAyIDAuNDE3NzYsNi40MTQ5NCAtMS43NTMzOSw5LjQ1Mjg2IC00LjEyMzQyLDEyLjU2MTA0IC0yLjQxNzQsMy4xNjk3OCAtNS4xNDQ4Niw2Ljc4OTczIC00LjAwMjc4LDEzLjAwMjkgMS41MDc4Niw4LjIwMzE4IDEwLjE4MzU0LDEwLjU5NjQyIDE0LjYyMTk0LDkuMzExNTQgLTMuMzE4NDIsLTAuNDk5MTEgLTUuMzE4NTUsLTEuNzQ5NDggLTUuMzE4NTUsLTEuNzQ5NDggMCwwIDEuODc2NDYsMC45OTg2OCA1LjY1MTE3LC0xLjM1OTgxIC0zLjI3Njk1LDAuOTU1NzEgLTEwLjcwNTI5LC0wLjc5NzM4IC0xMS44MDEyNSwtNi43NjMxMyAtMC45NTc1MiwtNS4yMDg2MSAwLjk0NjU0LC03LjI5NTE0IDMuNDAxMTMsLTEwLjUxNDgyIDIuNDU0NjIsLTMuMjE5NjggNS4yODQyNiwtNi45NTgzMSA0LjY4NDMsLTE0LjQ4ODI0IGwgMC4wMDMsMC4wMDIgOC45MjY3NiwwIDAsLTU1Ljk5OTY3IGMgLTE1LjA3MTI1LC0zLjg3MTY4IC0yNy42NTMxNCwtNi4zNjA0MiAtMzcuNzQ2NzEsLTcuNDY1ODYgLTkuOTU1MzEsLTEuMTA3NTUgLTIwLjE4ODIzLC0xLjY1OTgxIC0zMC42OTY2MTMsLTEuNjU5ODEgeiBtIDcwLjMyMTYwMywxNy4zMDg5MyAwLjIzODA1LDQwLjMwNDkgYyAxLjMxODA4LDEuMjI2NjYgMi40Mzk2NSwyLjI3ODE1IDMuMzQwODEsMy4xMDYwMiA0LjgzOTM5LDYuNzc0OTEgOC44NDkzNCwxNi4yNDU2NiAxMi4wMjk1MSwyOC40MTM5NyBsIDIwLjUzMjM0LDAgMCwtNTUuOTk5NjcgYyAtNi42NzczMSwtNC41OTM4MSAtMTkuODM2NDMsLTEwLjQ3MzA5IC0zNi4xNDA3MSwtMTUuODI1MjIgeiBtIC0yOC4xMjA0OSw1LjYwNTUxIDguNTY0NzksMTcuNzE2NTUgYyAtMTEuOTcwMzcsLTYuNDY2OTcgLTEzLjg0Njc4LC05LjcxNzI2IC04LjU2NDc5LC0xNy43MTY1NSB6IG0gMjIuNzk3MDUsMCBjIDIuNzcxNSw3Ljk5OTI5IDEuNzg3NDEsMTEuMjQ5NTggLTQuNDkzNTQsMTcuNzE2NTUgbCA0LjQ5MzU0LC0xNy43MTY1NSB6IG0gMTUuMjIxOTUsMjQuMDA4NDggOC41NjQ3OSwxNy43MTY1NSBjIC0xMS45NzAzOCwtNi40NjY5NyAtMTMuODQ2NzksLTkuNzE3MjYgLTguNTY0NzksLTE3LjcxNjU1IHogbSAyMi43OTcwNCwwIGMgMi43NzE1LDcuOTk5MjkgMS43ODc0MSwxMS4yNDk1OCAtNC40OTM1NCwxNy43MTY1NSBsIDQuNDkzNTQsLTE3LjcxNjU1IHogbSAtOTkuMTEzODQsMi4yMDc2NCA4LjU2NDc5LDE3LjcxNjU1IGMgLTExLjk3MDM4MiwtNi40NjY5NyAtMTMuODQ2NzgyLC05LjcxNzI2IC04LjU2NDc5LC0xNy43MTY1NSB6IG0gMjIuNzk1NDIsMCBjIDIuNzcxNSw3Ljk5OTI5IDEuNzg3NDEsMTEuMjQ5NTggLTQuNDkzNTQsMTcuNzE2NTUgbCA0LjQ5MzU0LC0xNy43MTY1NSB6IiAvPg0KPC9zdmc+DQo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4NCjwhLS0gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLyAtLT4NCg==") no-repeat fixed 50%/70% 70%,linear-gradient(180deg,#750000 0,#340404);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#ff750000",endColorstr="#ff340404",GradientType=0)}body.syndicate .normal{color:#40628a}body.syndicate .good{color:#73e573}body.syndicate .average{color:#be6209}body.syndicate .bad{color:#b00e0e}body.syndicate .highlight{color:#000}body.syndicate main{display:block;margin-top:32px;padding:2px 6px 0}body.syndicate hr{height:2px;background-color:#272727;border:none}body.syndicate .hidden{display:none}body.syndicate .bar .barText,body.syndicate span.button{color:#fff;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}body.syndicate .bold{font-weight:700}body.syndicate .italic{font-style:italic}body.syndicate [unselectable=on]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body.syndicate div[data-tooltip],body.syndicate span[data-tooltip]{position:relative}body.syndicate div[data-tooltip]:after,body.syndicate span[data-tooltip]:after{position:absolute;display:block;z-index:2;width:250px;padding:10px;-ms-transform:translateX(-50%);transform:translateX(-50%);visibility:hidden;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";white-space:normal;text-align:left;content:attr(data-tooltip);transition:all .5s;border:1px solid #272727;background-color:#363636}body.syndicate div[data-tooltip]:hover:after,body.syndicate span[data-tooltip]:hover:after{visibility:visible;opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}body.syndicate div[data-tooltip].tooltip-top:after,body.syndicate span[data-tooltip].tooltip-top:after{bottom:100%;left:50%;-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.syndicate div[data-tooltip].tooltip-top:hover:after,body.syndicate span[data-tooltip].tooltip-top:hover:after{-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.syndicate div[data-tooltip].tooltip-bottom:after,body.syndicate span[data-tooltip].tooltip-bottom:after{top:100%;left:50%;-ms-transform:translateX(-50%) translateY(-8px);transform:translateX(-50%) translateY(-8px)}body.syndicate div[data-tooltip].tooltip-bottom:hover:after,body.syndicate span[data-tooltip].tooltip-bottom:hover:after{-ms-transform:translateX(-50%) translateY(8px);transform:translateX(-50%) translateY(8px)}body.syndicate div[data-tooltip].tooltip-left:after,body.syndicate span[data-tooltip].tooltip-left:after{top:50%;right:100%;-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-left:hover:after,body.syndicate span[data-tooltip].tooltip-left:hover:after{-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-right:after,body.syndicate span[data-tooltip].tooltip-right:after{top:50%;left:100%;-ms-transform:translateX(-8px) translateY(-50%);transform:translateX(-8px) translateY(-50%)}body.syndicate div[data-tooltip].tooltip-right:hover:after,body.syndicate span[data-tooltip].tooltip-right:hover:after{-ms-transform:translateX(8px) translateY(-50%);transform:translateX(8px) translateY(-50%)}body.syndicate .bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #000;background:#272727}body.syndicate .bar .barText{position:absolute;top:0;right:3px}body.syndicate .bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#000}body.syndicate .bar .barFill.good{background-color:#73e573}body.syndicate .bar .barFill.average{background-color:#be6209}body.syndicate .bar .barFill.bad{background-color:#b00e0e}body.syndicate span.button{display:inline-block;vertical-align:middle;min-height:20px;line-height:17px;padding:0 5px;white-space:nowrap;border:1px solid #272727}body.syndicate span.button .fa{padding-right:2px}body.syndicate span.button.normal{transition:background-color .5s;background-color:#397439}body.syndicate span.button.normal.active:focus,body.syndicate span.button.normal.active:hover{transition:background-color .25s;background-color:#4a964a;outline:0}body.syndicate span.button.disabled{transition:background-color .5s;background-color:#363636}body.syndicate span.button.disabled.active:focus,body.syndicate span.button.disabled.active:hover{transition:background-color .25s;background-color:#545454;outline:0}body.syndicate span.button.selected{transition:background-color .5s;background-color:#9d0808}body.syndicate span.button.selected.active:focus,body.syndicate span.button.selected.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.syndicate span.button.toggle{transition:background-color .5s;background-color:#9d0808}body.syndicate span.button.toggle.active:focus,body.syndicate span.button.toggle.active:hover{transition:background-color .25s;background-color:#ce0b0b;outline:0}body.syndicate span.button.caution{transition:background-color .5s;background-color:#be6209}body.syndicate span.button.caution.active:focus,body.syndicate span.button.caution.active:hover{transition:background-color .25s;background-color:#eb790b;outline:0}body.syndicate span.button.danger{transition:background-color .5s;background-color:#9a9d00}body.syndicate span.button.danger.active:focus,body.syndicate span.button.danger.active:hover{transition:background-color .25s;background-color:#ced200;outline:0}body.syndicate span.button.gridable{width:125px;margin:2px 0}body.syndicate span.button+span:not(.button),body.syndicate span:not(.button)+span.button{margin-left:5px}body.syndicate div.display{width:100%;padding:4px;margin:6px 0;background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#80000000,endColorStr=#80000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#80000000,endColorStr=#80000000);background-color:rgba(0,0,0,.5);box-shadow:inset 0 0 5px rgba(0,0,0,.75)}body.syndicate div.display header,body.syndicate div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;color:#fff;border-bottom:2px solid #272727}body.syndicate div.display header .buttonRight,body.syndicate div.subdisplay header .buttonRight{position:absolute;bottom:6px;right:4px}body.syndicate div.display article,body.syndicate div.subdisplay article{display:table;width:100%;border-collapse:collapse}body.syndicate input{display:inline-block;vertical-align:middle;height:20px;line-height:17px;padding:0 5px;white-space:nowrap;color:#fff;background-color:#9d0808;border:1px solid #272727}body.syndicate input::-webkit-input-placeholder{color:#999}body.syndicate input::-moz-placeholder{color:#999}body.syndicate input:-ms-input-placeholder{color:#999}body.syndicate input::placeholder{color:#999}body.syndicate input::-ms-clear{display:none}body.syndicate svg.linegraph{overflow:hidden}body.syndicate div.notice{margin:8px 0;padding:4px;box-shadow:none;color:#000;font-weight:700;font-style:italic;background-color:#750000;background-image:repeating-linear-gradient(-45deg,#750000,#750000 10px,#910101 0,#910101 20px)}body.syndicate div.notice .label{color:#000}body.syndicate div.notice .content:only-of-type{padding:0}body.syndicate div.notice hr{background-color:#272727}body.syndicate div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #363636;-ms-transform:rotate(1turn);transform:rotate(1turn)}body.syndicate section .content,body.syndicate section .label,body.syndicate section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle;padding:3px 2px}body.syndicate section{display:table-row;width:100%}body.syndicate section:not(:first-child){padding-top:4px}body.syndicate section.candystripe:nth-child(2n){background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#33000000,endColorStr=#33000000);background-color:rgba(0,0,0,.2)}body.syndicate section .label{width:1%;padding-right:32px;white-space:nowrap;color:#fff}body.syndicate section .content:not(:last-child){padding-right:16px}body.syndicate section .line{width:100%}body.syndicate div.subdisplay{width:100%;margin:0}body.syndicate header.titlebar .close,body.syndicate header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#e74242}body.syndicate header.titlebar .close:hover,body.syndicate header.titlebar .minimize:hover{color:#eb5e5e}body.syndicate header.titlebar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 3px 3px rgba(0,0,0,.1)}body.syndicate header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}body.syndicate header.titlebar .title{position:absolute;top:6px;left:46px;color:#e74242;font-size:16px;white-space:nowrap}body.syndicate header.titlebar .minimize{position:absolute;top:6px;right:46px}body.syndicate header.titlebar .close{position:absolute;top:4px;right:12px}.no-icons header.titlebar .statusicon{font-size:20px}.no-icons header.titlebar .statusicon:after{content:"O"}.no-icons header.titlebar .minimize{top:-2px;font-size:20px}.no-icons header.titlebar .minimize:after{content:"—"}.no-icons header.titlebar .close{font-size:20px}.no-icons header.titlebar .close:after{content:"X"} \ No newline at end of file diff --git a/tgui/assets/tgui.js b/tgui/assets/tgui.js index cddb68b52c..49c0f5f50e 100644 --- a/tgui/assets/tgui.js +++ b/tgui/assets/tgui.js @@ -1,16 +1,16 @@ -require=function t(e,n,a){function r(o,s){if(!n[o]){if(!e[o]){var u="function"==typeof require&&require;if(!s&&u)return u(o,!0);if(i)return i(o,!0);var p=Error("Cannot find module '"+o+"'");throw p.code="MODULE_NOT_FOUND",p}var c=n[o]={exports:{}};e[o][0].call(c.exports,function(t){var n=e[o][1][t];return r(n?n:t)},c,c.exports,t,e,n,a)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o2?p[2]:void 0,l=Math.min((void 0===c?o:r(c,o))-u,o-s),f=1;for(s>u&&u+l>s&&(f=-1,u+=l-1,s+=l-1);l-- >0;)u in n?n[s]=n[u]:delete n[s],s+=f,u+=f;return n}},{76:76,79:79,80:80}],6:[function(t,e,n){"use strict";var a=t(80),r=t(76),i=t(79);e.exports=[].fill||function(t){for(var e=a(this),n=i(e.length),o=arguments,s=o.length,u=r(s>1?o[1]:void 0,n),p=s>2?o[2]:void 0,c=void 0===p?n:r(p,n);c>u;)e[u++]=t;return e}},{76:76,79:79,80:80}],7:[function(t,e,n){var a=t(78),r=t(79),i=t(76);e.exports=function(t){return function(e,n,o){var s,u=a(e),p=r(u.length),c=i(o,p);if(t&&n!=n){for(;p>c;)if(s=u[c++],s!=s)return!0}else for(;p>c;c++)if((t||c in u)&&u[c]===n)return t||c;return!t&&-1}}},{76:76,78:78,79:79}],8:[function(t,e,n){var a=t(17),r=t(34),i=t(80),o=t(79),s=t(9);e.exports=function(t){var e=1==t,n=2==t,u=3==t,p=4==t,c=6==t,l=5==t||c;return function(f,d,h){for(var m,v,g=i(f),b=r(g),y=a(d,h,3),_=o(b.length),x=0,w=e?s(f,_):n?s(f,0):void 0;_>x;x++)if((l||x in b)&&(m=b[x],v=y(m,x,g),t))if(e)w[x]=v;else if(v)switch(t){case 3:return!0;case 5:return m;case 6:return x;case 2:w.push(m)}else if(p)return!1;return c?-1:u||p?p:w}}},{17:17,34:34,79:79,80:80,9:9}],9:[function(t,e,n){var a=t(38),r=t(36),i=t(83)("species");e.exports=function(t,e){var n;return r(t)&&(n=t.constructor,"function"!=typeof n||n!==Array&&!r(n.prototype)||(n=void 0),a(n)&&(n=n[i],null===n&&(n=void 0))),new(void 0===n?Array:n)(e)}},{36:36,38:38,83:83}],10:[function(t,e,n){var a=t(11),r=t(83)("toStringTag"),i="Arguments"==a(function(){return arguments}());e.exports=function(t){var e,n,o;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=(e=Object(t))[r])?n:i?a(e):"Object"==(o=a(e))&&"function"==typeof e.callee?"Arguments":o}},{11:11,83:83}],11:[function(t,e,n){var a={}.toString;e.exports=function(t){return a.call(t).slice(8,-1)}},{}],12:[function(t,e,n){"use strict";var a=t(46),r=t(31),i=t(60),o=t(17),s=t(69),u=t(18),p=t(27),c=t(42),l=t(44),f=t(82)("id"),d=t(30),h=t(38),m=t(65),v=t(19),g=Object.isExtensible||h,b=v?"_s":"size",y=0,_=function(t,e){if(!h(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!d(t,f)){if(!g(t))return"F";if(!e)return"E";r(t,f,++y)}return"O"+t[f]},x=function(t,e){var n,a=_(e);if("F"!==a)return t._i[a];for(n=t._f;n;n=n.n)if(n.k==e)return n};e.exports={getConstructor:function(t,e,n,r){var c=t(function(t,i){s(t,c,e),t._i=a.create(null),t._f=void 0,t._l=void 0,t[b]=0,void 0!=i&&p(i,n,t[r],t)});return i(c.prototype,{clear:function(){for(var t=this,e=t._i,n=t._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete e[n.i];t._f=t._l=void 0,t[b]=0},"delete":function(t){var e=this,n=x(e,t);if(n){var a=n.n,r=n.p;delete e._i[n.i],n.r=!0,r&&(r.n=a),a&&(a.p=r),e._f==n&&(e._f=a),e._l==n&&(e._l=r),e[b]--}return!!n},forEach:function(t){for(var e,n=o(t,arguments.length>1?arguments[1]:void 0,3);e=e?e.n:this._f;)for(n(e.v,e.k,this);e&&e.r;)e=e.p},has:function(t){return!!x(this,t)}}),v&&a.setDesc(c.prototype,"size",{get:function(){return u(this[b])}}),c},def:function(t,e,n){var a,r,i=x(t,e);return i?i.v=n:(t._l=i={i:r=_(e,!0),k:e,v:n,p:a=t._l,n:void 0,r:!1},t._f||(t._f=i),a&&(a.n=i),t[b]++,"F"!==r&&(t._i[r]=i)),t},getEntry:x,setStrong:function(t,e,n){c(t,e,function(t,e){this._t=t,this._k=e,this._l=void 0},function(){for(var t=this,e=t._k,n=t._l;n&&n.r;)n=n.p;return t._t&&(t._l=n=n?n.n:t._t._f)?"keys"==e?l(0,n.k):"values"==e?l(0,n.v):l(0,[n.k,n.v]):(t._t=void 0,l(1))},n?"entries":"values",!n,!0),m(e)}}},{17:17,18:18,19:19,27:27,30:30,31:31,38:38,42:42,44:44,46:46,60:60,65:65,69:69,82:82}],13:[function(t,e,n){var a=t(27),r=t(10);e.exports=function(t){return function(){if(r(this)!=t)throw TypeError(t+"#toJSON isn't generic");var e=[];return a(this,!1,e.push,e),e}}},{10:10,27:27}],14:[function(t,e,n){"use strict";var a=t(31),r=t(60),i=t(4),o=t(38),s=t(69),u=t(27),p=t(8),c=t(30),l=t(82)("weak"),f=Object.isExtensible||o,d=p(5),h=p(6),m=0,v=function(t){return t._l||(t._l=new g)},g=function(){this.a=[]},b=function(t,e){return d(t.a,function(t){return t[0]===e})};g.prototype={get:function(t){var e=b(this,t);return e?e[1]:void 0},has:function(t){return!!b(this,t)},set:function(t,e){var n=b(this,t);n?n[1]=e:this.a.push([t,e])},"delete":function(t){var e=h(this.a,function(e){return e[0]===t});return~e&&this.a.splice(e,1),!!~e}},e.exports={getConstructor:function(t,e,n,a){var i=t(function(t,r){s(t,i,e),t._i=m++,t._l=void 0,void 0!=r&&u(r,n,t[a],t)});return r(i.prototype,{"delete":function(t){return o(t)?f(t)?c(t,l)&&c(t[l],this._i)&&delete t[l][this._i]:v(this)["delete"](t):!1},has:function(t){return o(t)?f(t)?c(t,l)&&c(t[l],this._i):v(this).has(t):!1}}),i},def:function(t,e,n){return f(i(e))?(c(e,l)||a(e,l,{}),e[l][t._i]=n):v(t).set(e,n),t},frozenStore:v,WEAK:l}},{27:27,30:30,31:31,38:38,4:4,60:60,69:69,8:8,82:82}],15:[function(t,e,n){"use strict";var a=t(29),r=t(22),i=t(61),o=t(60),s=t(27),u=t(69),p=t(38),c=t(24),l=t(43),f=t(66);e.exports=function(t,e,n,d,h,m){var v=a[t],g=v,b=h?"set":"add",y=g&&g.prototype,_={},x=function(t){var e=y[t];i(y,t,"delete"==t?function(t){return m&&!p(t)?!1:e.call(this,0===t?0:t)}:"has"==t?function(t){return m&&!p(t)?!1:e.call(this,0===t?0:t)}:"get"==t?function(t){return m&&!p(t)?void 0:e.call(this,0===t?0:t)}:"add"==t?function(t){return e.call(this,0===t?0:t),this}:function(t,n){return e.call(this,0===t?0:t,n),this})};if("function"==typeof g&&(m||y.forEach&&!c(function(){(new g).entries().next()}))){var w,k=new g,P=k[b](m?{}:-0,1)!=k,C=c(function(){k.has(1)}),E=l(function(t){new g(t)});E||(g=e(function(e,n){u(e,g,t);var a=new v;return void 0!=n&&s(n,h,a[b],a),a}),g.prototype=y,y.constructor=g),m||k.forEach(function(t,e){w=1/e===-(1/0)}),(C||w)&&(x("delete"),x("has"),h&&x("get")),(w||P)&&x(b),m&&y.clear&&delete y.clear}else g=d.getConstructor(e,t,h,b),o(g.prototype,n);return f(g,t),_[t]=g,r(r.G+r.W+r.F*(g!=v),_),m||d.setStrong(g,t,h),g}},{22:22,24:24,27:27,29:29,38:38,43:43,60:60,61:61,66:66,69:69}],16:[function(t,e,n){var a=e.exports={version:"1.2.6"};"number"==typeof __e&&(__e=a)},{}],17:[function(t,e,n){var a=t(2);e.exports=function(t,e,n){if(a(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,a){return t.call(e,n,a)};case 3:return function(n,a,r){return t.call(e,n,a,r)}}return function(){return t.apply(e,arguments)}}},{2:2}],18:[function(t,e,n){e.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},{}],19:[function(t,e,n){e.exports=!t(24)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{24:24}],20:[function(t,e,n){var a=t(38),r=t(29).document,i=a(r)&&a(r.createElement);e.exports=function(t){return i?r.createElement(t):{}}},{29:29,38:38}],21:[function(t,e,n){var a=t(46);e.exports=function(t){var e=a.getKeys(t),n=a.getSymbols;if(n)for(var r,i=n(t),o=a.isEnum,s=0;i.length>s;)o.call(t,r=i[s++])&&e.push(r);return e}},{46:46}],22:[function(t,e,n){var a=t(29),r=t(16),i=t(31),o=t(61),s=t(17),u="prototype",p=function(t,e,n){var c,l,f,d,h=t&p.F,m=t&p.G,v=t&p.S,g=t&p.P,b=t&p.B,y=m?a:v?a[e]||(a[e]={}):(a[e]||{})[u],_=m?r:r[e]||(r[e]={}),x=_[u]||(_[u]={});m&&(n=e);for(c in n)l=!h&&y&&c in y,f=(l?y:n)[c],d=b&&l?s(f,a):g&&"function"==typeof f?s(Function.call,f):f,y&&!l&&o(y,c,f),_[c]!=f&&i(_,c,d),g&&x[c]!=f&&(x[c]=f)};a.core=r,p.F=1,p.G=2,p.S=4,p.P=8,p.B=16,p.W=32,e.exports=p},{16:16,17:17,29:29,31:31,61:61}],23:[function(t,e,n){var a=t(83)("match");e.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[a]=!1,!"/./"[t](e)}catch(r){}}return!0}},{83:83}],24:[function(t,e,n){e.exports=function(t){try{return!!t()}catch(e){return!0}}},{}],25:[function(t,e,n){"use strict";var a=t(31),r=t(61),i=t(24),o=t(18),s=t(83);e.exports=function(t,e,n){var u=s(t),p=""[t];i(function(){var e={};return e[u]=function(){return 7},7!=""[t](e)})&&(r(String.prototype,t,n(o,u,p)),a(RegExp.prototype,u,2==e?function(t,e){return p.call(t,this,e)}:function(t){return p.call(t,this)}))}},{18:18,24:24,31:31,61:61,83:83}],26:[function(t,e,n){"use strict";var a=t(4);e.exports=function(){var t=a(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},{4:4}],27:[function(t,e,n){var a=t(17),r=t(40),i=t(35),o=t(4),s=t(79),u=t(84);e.exports=function(t,e,n,p){var c,l,f,d=u(t),h=a(n,p,e?2:1),m=0;if("function"!=typeof d)throw TypeError(t+" is not iterable!");if(i(d))for(c=s(t.length);c>m;m++)e?h(o(l=t[m])[0],l[1]):h(t[m]);else for(f=d.call(t);!(l=f.next()).done;)r(f,h,l.value,e)}},{17:17,35:35,4:4,40:40,79:79,84:84}],28:[function(t,e,n){var a=t(78),r=t(46).getNames,i={}.toString,o="object"==typeof window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return r(t)}catch(e){return o.slice()}};e.exports.get=function(t){return o&&"[object Window]"==i.call(t)?s(t):r(a(t))}},{46:46,78:78}],29:[function(t,e,n){var a=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=a)},{}],30:[function(t,e,n){var a={}.hasOwnProperty;e.exports=function(t,e){return a.call(t,e)}},{}],31:[function(t,e,n){var a=t(46),r=t(59);e.exports=t(19)?function(t,e,n){return a.setDesc(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},{19:19,46:46,59:59}],32:[function(t,e,n){e.exports=t(29).document&&document.documentElement},{29:29}],33:[function(t,e,n){e.exports=function(t,e,n){var a=void 0===n;switch(e.length){case 0:return a?t():t.call(n);case 1:return a?t(e[0]):t.call(n,e[0]);case 2:return a?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return a?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return a?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},{}],34:[function(t,e,n){var a=t(11);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==a(t)?t.split(""):Object(t)}},{11:11}],35:[function(t,e,n){var a=t(45),r=t(83)("iterator"),i=Array.prototype;e.exports=function(t){return void 0!==t&&(a.Array===t||i[r]===t)}},{45:45,83:83}],36:[function(t,e,n){var a=t(11);e.exports=Array.isArray||function(t){return"Array"==a(t)}},{11:11}],37:[function(t,e,n){var a=t(38),r=Math.floor;e.exports=function(t){return!a(t)&&isFinite(t)&&r(t)===t}},{38:38}],38:[function(t,e,n){e.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},{}],39:[function(t,e,n){var a=t(38),r=t(11),i=t(83)("match");e.exports=function(t){var e;return a(t)&&(void 0!==(e=t[i])?!!e:"RegExp"==r(t))}},{11:11,38:38,83:83}],40:[function(t,e,n){var a=t(4);e.exports=function(t,e,n,r){try{return r?e(a(n)[0],n[1]):e(n)}catch(i){var o=t["return"];throw void 0!==o&&a(o.call(t)),i}}},{4:4}],41:[function(t,e,n){"use strict";var a=t(46),r=t(59),i=t(66),o={};t(31)(o,t(83)("iterator"),function(){return this}),e.exports=function(t,e,n){t.prototype=a.create(o,{next:r(1,n)}),i(t,e+" Iterator")}},{31:31,46:46,59:59,66:66,83:83}],42:[function(t,e,n){"use strict";var a=t(48),r=t(22),i=t(61),o=t(31),s=t(30),u=t(45),p=t(41),c=t(66),l=t(46).getProto,f=t(83)("iterator"),d=!([].keys&&"next"in[].keys()),h="@@iterator",m="keys",v="values",g=function(){return this};e.exports=function(t,e,n,b,y,_,x){p(n,e,b);var w,k,P=function(t){if(!d&&t in A)return A[t];switch(t){case m:return function(){return new n(this,t)};case v:return function(){return new n(this,t)}}return function(){return new n(this,t)}},C=e+" Iterator",E=y==v,S=!1,A=t.prototype,O=A[f]||A[h]||y&&A[y],T=O||P(y);if(O){var M=l(T.call(new t));c(M,C,!0),!a&&s(A,h)&&o(M,f,g),E&&O.name!==v&&(S=!0,T=function(){return O.call(this)})}if(a&&!x||!d&&!S&&A[f]||o(A,f,T),u[e]=T,u[C]=g,y)if(w={values:E?T:P(v),keys:_?T:P(m),entries:E?P("entries"):T},x)for(k in w)k in A||i(A,k,w[k]);else r(r.P+r.F*(d||S),e,w);return w}},{22:22,30:30,31:31,41:41,45:45,46:46,48:48,61:61,66:66,83:83}],43:[function(t,e,n){var a=t(83)("iterator"),r=!1;try{var i=[7][a]();i["return"]=function(){r=!0},Array.from(i,function(){throw 2})}catch(o){}e.exports=function(t,e){if(!e&&!r)return!1;var n=!1;try{var i=[7],o=i[a]();o.next=function(){return{done:n=!0}},i[a]=function(){return o},t(i)}catch(s){}return n}},{83:83}],44:[function(t,e,n){e.exports=function(t,e){return{value:e,done:!!t}}},{}],45:[function(t,e,n){e.exports={}},{}],46:[function(t,e,n){var a=Object;e.exports={create:a.create,getProto:a.getPrototypeOf,isEnum:{}.propertyIsEnumerable,getDesc:a.getOwnPropertyDescriptor,setDesc:a.defineProperty,setDescs:a.defineProperties,getKeys:a.keys,getNames:a.getOwnPropertyNames,getSymbols:a.getOwnPropertySymbols,each:[].forEach}},{}],47:[function(t,e,n){var a=t(46),r=t(78);e.exports=function(t,e){for(var n,i=r(t),o=a.getKeys(i),s=o.length,u=0;s>u;)if(i[n=o[u++]]===e)return n}},{46:46,78:78}],48:[function(t,e,n){e.exports=!1},{}],49:[function(t,e,n){e.exports=Math.expm1||function(t){return 0==(t=+t)?t:t>-1e-6&&1e-6>t?t+t*t/2:Math.exp(t)-1}},{}],50:[function(t,e,n){e.exports=Math.log1p||function(t){return(t=+t)>-1e-8&&1e-8>t?t-t*t/2:Math.log(1+t)}},{}],51:[function(t,e,n){e.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:0>t?-1:1}},{}],52:[function(t,e,n){var a,r,i,o=t(29),s=t(75).set,u=o.MutationObserver||o.WebKitMutationObserver,p=o.process,c=o.Promise,l="process"==t(11)(p),f=function(){var t,e,n;for(l&&(t=p.domain)&&(p.domain=null,t.exit());a;)e=a.domain,n=a.fn,e&&e.enter(),n(),e&&e.exit(),a=a.next;r=void 0,t&&t.enter()};if(l)i=function(){p.nextTick(f)};else if(u){var d=1,h=document.createTextNode("");new u(f).observe(h,{characterData:!0}),i=function(){h.data=d=-d}}else i=c&&c.resolve?function(){c.resolve().then(f)}:function(){s.call(o,f)};e.exports=function(t){var e={fn:t,next:void 0,domain:l&&p.domain};r&&(r.next=e),a||(a=e,i()),r=e}},{11:11,29:29,75:75}],53:[function(t,e,n){var a=t(46),r=t(80),i=t(34);e.exports=t(24)(function(){var t=Object.assign,e={},n={},a=Symbol(),r="abcdefghijklmnopqrst";return e[a]=7,r.split("").forEach(function(t){n[t]=t}),7!=t({},e)[a]||Object.keys(t({},n)).join("")!=r})?function(t,e){for(var n=r(t),o=arguments,s=o.length,u=1,p=a.getKeys,c=a.getSymbols,l=a.isEnum;s>u;)for(var f,d=i(o[u++]),h=c?p(d).concat(c(d)):p(d),m=h.length,v=0;m>v;)l.call(d,f=h[v++])&&(n[f]=d[f]);return n}:Object.assign},{24:24,34:34,46:46,80:80}],54:[function(t,e,n){var a=t(22),r=t(16),i=t(24);e.exports=function(t,e){var n=(r.Object||{})[t]||Object[t],o={};o[t]=e(n),a(a.S+a.F*i(function(){n(1)}),"Object",o)}},{16:16,22:22,24:24}],55:[function(t,e,n){var a=t(46),r=t(78),i=a.isEnum;e.exports=function(t){return function(e){for(var n,o=r(e),s=a.getKeys(o),u=s.length,p=0,c=[];u>p;)i.call(o,n=s[p++])&&c.push(t?[n,o[n]]:o[n]);return c}}},{46:46,78:78}],56:[function(t,e,n){var a=t(46),r=t(4),i=t(29).Reflect;e.exports=i&&i.ownKeys||function(t){var e=a.getNames(r(t)),n=a.getSymbols;return n?e.concat(n(t)):e}},{29:29,4:4,46:46}],57:[function(t,e,n){"use strict";var a=t(58),r=t(33),i=t(2);e.exports=function(){for(var t=i(this),e=arguments.length,n=Array(e),o=0,s=a._,u=!1;e>o;)(n[o]=arguments[o++])===s&&(u=!0);return function(){var a,i=this,o=arguments,p=o.length,c=0,l=0;if(!u&&!p)return r(t,n,i);if(a=n.slice(),u)for(;e>c;c++)a[c]===s&&(a[c]=o[l++]);for(;p>l;)a.push(o[l++]);return r(t,a,i)}}},{2:2,33:33,58:58}],58:[function(t,e,n){e.exports=t(29)},{29:29}],59:[function(t,e,n){e.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},{}],60:[function(t,e,n){var a=t(61);e.exports=function(t,e){for(var n in e)a(t,n,e[n]);return t}},{61:61}],61:[function(t,e,n){var a=t(29),r=t(31),i=t(82)("src"),o="toString",s=Function[o],u=(""+s).split(o);t(16).inspectSource=function(t){return s.call(t)},(e.exports=function(t,e,n,o){"function"==typeof n&&(n.hasOwnProperty(i)||r(n,i,t[e]?""+t[e]:u.join(e+"")),n.hasOwnProperty("name")||r(n,"name",e)),t===a?t[e]=n:(o||delete t[e],r(t,e,n))})(Function.prototype,o,function(){return"function"==typeof this&&this[i]||s.call(this)})},{16:16,29:29,31:31,82:82}],62:[function(t,e,n){e.exports=function(t,e){var n=e===Object(e)?function(t){return e[t]}:e;return function(e){return(e+"").replace(t,n)}}},{}],63:[function(t,e,n){e.exports=Object.is||function(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}},{}],64:[function(t,e,n){var a=t(46).getDesc,r=t(38),i=t(4),o=function(t,e){if(i(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,n,r){try{r=t(17)(Function.call,a(Object.prototype,"__proto__").set,2),r(e,[]),n=!(e instanceof Array)}catch(i){n=!0}return function(t,e){return o(t,e),n?t.__proto__=e:r(t,e),t}}({},!1):void 0),check:o}},{17:17,38:38,4:4,46:46}],65:[function(t,e,n){"use strict";var a=t(29),r=t(46),i=t(19),o=t(83)("species");e.exports=function(t){var e=a[t];i&&e&&!e[o]&&r.setDesc(e,o,{configurable:!0,get:function(){return this}})}},{19:19,29:29,46:46,83:83}],66:[function(t,e,n){var a=t(46).setDesc,r=t(30),i=t(83)("toStringTag");e.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,i)&&a(t,i,{configurable:!0,value:e})}},{30:30,46:46,83:83}],67:[function(t,e,n){var a=t(29),r="__core-js_shared__",i=a[r]||(a[r]={});e.exports=function(t){return i[t]||(i[t]={})}},{29:29}],68:[function(t,e,n){var a=t(4),r=t(2),i=t(83)("species");e.exports=function(t,e){var n,o=a(t).constructor;return void 0===o||void 0==(n=a(o)[i])?e:r(n)}},{2:2,4:4,83:83}],69:[function(t,e,n){e.exports=function(t,e,n){if(!(t instanceof e))throw TypeError(n+": use the 'new' operator!");return t}},{}],70:[function(t,e,n){var a=t(77),r=t(18);e.exports=function(t){return function(e,n){var i,o,s=r(e)+"",u=a(n),p=s.length;return 0>u||u>=p?t?"":void 0:(i=s.charCodeAt(u),55296>i||i>56319||u+1===p||(o=s.charCodeAt(u+1))<56320||o>57343?t?s.charAt(u):i:t?s.slice(u,u+2):(i-55296<<10)+(o-56320)+65536)}}},{18:18,77:77}],71:[function(t,e,n){var a=t(39),r=t(18);e.exports=function(t,e,n){if(a(e))throw TypeError("String#"+n+" doesn't accept regex!");return r(t)+""}},{18:18,39:39}],72:[function(t,e,n){var a=t(79),r=t(73),i=t(18);e.exports=function(t,e,n,o){var s=i(t)+"",u=s.length,p=void 0===n?" ":n+"",c=a(e);if(u>=c)return s;""==p&&(p=" ");var l=c-u,f=r.call(p,Math.ceil(l/p.length));return f.length>l&&(f=f.slice(0,l)),o?f+s:s+f}},{18:18,73:73,79:79}],73:[function(t,e,n){"use strict";var a=t(77),r=t(18);e.exports=function(t){var e=r(this)+"",n="",i=a(t);if(0>i||i==1/0)throw RangeError("Count can't be negative");for(;i>0;(i>>>=1)&&(e+=e))1&i&&(n+=e);return n}},{18:18,77:77}],74:[function(t,e,n){var a=t(22),r=t(18),i=t(24),o=" \n\x0B\f\r   ᠎              \u2028\u2029\ufeff",s="["+o+"]",u="​…",p=RegExp("^"+s+s+"*"),c=RegExp(s+s+"*$"),l=function(t,e){var n={};n[t]=e(f),a(a.P+a.F*i(function(){return!!o[t]()||u[t]()!=u}),"String",n)},f=l.trim=function(t,e){return t=r(t)+"",1&e&&(t=t.replace(p,"")),2&e&&(t=t.replace(c,"")),t};e.exports=l},{18:18,22:22,24:24}],75:[function(t,e,n){var a,r,i,o=t(17),s=t(33),u=t(32),p=t(20),c=t(29),l=c.process,f=c.setImmediate,d=c.clearImmediate,h=c.MessageChannel,m=0,v={},g="onreadystatechange",b=function(){var t=+this;if(v.hasOwnProperty(t)){var e=v[t];delete v[t],e()}},y=function(t){b.call(t.data)};f&&d||(f=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return v[++m]=function(){s("function"==typeof t?t:Function(t),e)},a(m),m},d=function(t){delete v[t]},"process"==t(11)(l)?a=function(t){l.nextTick(o(b,t,1))}:h?(r=new h,i=r.port2,r.port1.onmessage=y,a=o(i.postMessage,i,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts?(a=function(t){c.postMessage(t+"","*")},c.addEventListener("message",y,!1)):a=g in p("script")?function(t){u.appendChild(p("script"))[g]=function(){u.removeChild(this),b.call(t)}}:function(t){setTimeout(o(b,t,1),0)}),e.exports={set:f,clear:d}},{11:11,17:17,20:20,29:29,32:32,33:33}],76:[function(t,e,n){var a=t(77),r=Math.max,i=Math.min;e.exports=function(t,e){return t=a(t),0>t?r(t+e,0):i(t,e)}},{77:77}],77:[function(t,e,n){var a=Math.ceil,r=Math.floor;e.exports=function(t){return isNaN(t=+t)?0:(t>0?r:a)(t)}},{}],78:[function(t,e,n){var a=t(34),r=t(18);e.exports=function(t){return a(r(t))}},{18:18,34:34}],79:[function(t,e,n){var a=t(77),r=Math.min;e.exports=function(t){return t>0?r(a(t),9007199254740991):0}},{77:77}],80:[function(t,e,n){var a=t(18);e.exports=function(t){return Object(a(t))}},{18:18}],81:[function(t,e,n){var a=t(38);e.exports=function(t,e){if(!a(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!a(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!a(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},{38:38}],82:[function(t,e,n){var a=0,r=Math.random();e.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++a+r).toString(36))}},{}],83:[function(t,e,n){var a=t(67)("wks"),r=t(82),i=t(29).Symbol;e.exports=function(t){return a[t]||(a[t]=i&&i[t]||(i||r)("Symbol."+t))}},{29:29,67:67,82:82}],84:[function(t,e,n){var a=t(10),r=t(83)("iterator"),i=t(45);e.exports=t(16).getIteratorMethod=function(t){return void 0!=t?t[r]||t["@@iterator"]||i[a(t)]:void 0}},{10:10,16:16,45:45,83:83}],85:[function(t,e,n){"use strict";var a,r=t(46),i=t(22),o=t(19),s=t(59),u=t(32),p=t(20),c=t(30),l=t(11),f=t(33),d=t(24),h=t(4),m=t(2),v=t(38),g=t(80),b=t(78),y=t(77),_=t(76),x=t(79),w=t(34),k=t(82)("__proto__"),P=t(8),C=t(7)(!1),E=Object.prototype,S=Array.prototype,A=S.slice,O=S.join,T=r.setDesc,M=r.getDesc,R=r.setDescs,j={};o||(a=!d(function(){return 7!=T(p("div"),"a",{get:function(){return 7}}).a}),r.setDesc=function(t,e,n){if(a)try{return T(t,e,n)}catch(r){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(h(t)[e]=n.value),t},r.getDesc=function(t,e){if(a)try{return M(t,e)}catch(n){}return c(t,e)?s(!E.propertyIsEnumerable.call(t,e),t[e]):void 0},r.setDescs=R=function(t,e){h(t);for(var n,a=r.getKeys(e),i=a.length,o=0;i>o;)r.setDesc(t,n=a[o++],e[n]);return t}),i(i.S+i.F*!o,"Object",{getOwnPropertyDescriptor:r.getDesc,defineProperty:r.setDesc,defineProperties:R});var L="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),N=L.concat("length","prototype"),D=L.length,F=function(){var t,e=p("iframe"),n=D,a=">";for(e.style.display="none",u.appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write("