From b18d74baa66f32a5f31128aaa150d930373458cf Mon Sep 17 00:00:00 2001 From: Zandario Date: Mon, 21 Mar 2022 23:23:22 -0500 Subject: [PATCH] TGUI Part 1: Wires, Point Defense, and Advanced Shields (#3823) * TGUI Wires, Point Defense, and Advanced Shields Sources: VOREStation/VOREStation/pull/7083 VOREStation/VOREStation/pull/7118 VOREStation/VOREStation/pull/8444 VOREStation/VOREStation/pull/10131 * Maybe this? * YOOOOOO I'M DUMB * Fixes Energy Shields --- code/__DEFINES/color/color.dm | 33 +- code/__DEFINES/misc.dm | 90 +++ code/__DEFINES/shields.dm | 48 ++ code/__DEFINES/wires.dm | 122 +++ code/_globalvars/lists/misc.dm | 4 + code/_onclick/ai.dm | 2 +- code/datums/supplypacks/engineering.dm | 79 +- code/datums/uplink/tools.dm | 7 +- code/datums/wires/airlock.dm | 135 ++-- code/datums/wires/alarm.dm | 104 ++- code/datums/wires/apc.dm | 84 +- code/datums/wires/autolathe.dm | 69 +- code/datums/wires/breaker.dm | 41 +- code/datums/wires/camera.dm | 69 +- code/datums/wires/coinbank.dm | 40 +- code/datums/wires/explosive.dm | 21 +- code/datums/wires/grid_checker.dm | 68 +- code/datums/wires/jukebox.dm | 64 +- code/datums/wires/mines.dm | 55 +- code/datums/wires/particle_accelerator.dm | 48 +- code/datums/wires/radio.dm | 55 +- code/datums/wires/robot.dm | 84 +- code/datums/wires/seedstorage.dm | 68 +- code/datums/wires/shield_generator.dm | 47 ++ code/datums/wires/smartfridge.dm | 61 +- code/datums/wires/smes.dm | 71 +- code/datums/wires/suit_storage_unit.dm | 57 +- code/datums/wires/tesla_coil.dm | 19 +- code/datums/wires/vending.dm | 58 +- code/datums/wires/wires.dm | 719 +++++++++++------- code/game/atoms.dm | 14 + code/game/gamemodes/meteor/meteors.dm | 7 + code/game/machinery/alarm.dm | 4 +- code/game/machinery/camera/camera.dm | 31 +- code/game/machinery/doors/airlock.dm | 30 +- code/game/machinery/pointdefense.dm | 47 +- .../game/objects/items/devices/radio/radio.dm | 18 +- .../circuitboards/machinery/shieldgen.dm | 31 + .../weapons/circuitboards/machinery/ships.dm | 10 +- code/modules/ai/ai_holder_combat.dm | 6 + code/modules/assembly/signaler.dm | 4 +- .../preference_setup/preference_setup.dm | 6 - .../clothing/spacesuits/rig/rig_wiring.dm | 50 +- code/modules/events/camera_damage.dm | 4 +- code/modules/events/electrical_storm.dm | 12 +- code/modules/events/meteors.dm | 10 +- .../gamemaster/actions/camera_damage.dm | 4 +- code/modules/mob/_modifiers/modifiers.dm | 1 + code/modules/mob/_modifiers/traits.dm | 6 + code/modules/mob/inventory.dm | 4 +- code/modules/mob/living/silicon/robot/life.dm | 2 +- .../modules/mob/living/silicon/robot/robot.dm | 6 +- code/modules/nifsoft/nif_softshop.dm | 28 +- code/modules/power/apc.dm | 83 +- .../particle_accelerator/particle_control.dm | 6 +- .../research/designs/circuits/circuits.dm | 45 +- code/modules/shieldgen/energy_field.dm | 5 +- code/modules/shieldgen/energy_shield.dm | 339 +++++++++ code/modules/shieldgen/handheld_defuser.dm | 20 +- code/modules/shieldgen/shield_diffuser.dm | 42 +- code/modules/shieldgen/shield_generator.dm | 562 ++++++++++++++ code/modules/shieldgen/shield_modes.dm | 83 ++ nano/templates/shield_generator.tmpl | 158 ++++ sound/machines/apc_nopower.ogg | Bin 0 -> 90915 bytes sound/machines/buttonbeep.ogg | Bin 0 -> 13054 bytes sound/machines/clawmachine_play.ogg | Bin 0 -> 91474 bytes sound/machines/clawmachine_win.ogg | Bin 0 -> 25139 bytes sound/machines/door/airlock_tear_apart.ogg | Bin 0 -> 272254 bytes sound/machines/door/knock_glass.ogg | Bin 0 -> 7682 bytes sound/machines/door/knock_wood.wav | Bin 0 -> 176780 bytes sound/machines/hatch_close.ogg | Bin 0 -> 9537 bytes sound/machines/honkbot_evil_laugh.ogg | Bin 0 -> 18967 bytes sound/machines/id_swipe.ogg | Bin 0 -> 8549 bytes sound/machines/machine_die_short.ogg | Bin 0 -> 23746 bytes sound/machines/pda_click.ogg | Bin 0 -> 6517 bytes sound/machines/rig/rigdown.ogg | Bin 0 -> 97874 bytes sound/machines/rig/rigerror.ogg | Bin 0 -> 21112 bytes sound/machines/rig/rigonline.ogg | Bin 0 -> 35812 bytes sound/machines/rig/rigservo.ogg | Bin 0 -> 8542 bytes sound/machines/rig/rigstarted.ogg | Bin 0 -> 12599 bytes sound/machines/rig/rigstep.ogg | Bin 0 -> 18506 bytes sound/machines/roulette.ogg | Bin 0 -> 143391 bytes sound/machines/shutdown.ogg | Bin 0 -> 41080 bytes sound/machines/slotmachine.ogg | Bin 0 -> 36503 bytes sound/machines/slotmachine_pull.ogg | Bin 0 -> 78420 bytes sound/machines/synth_alert.ogg | Bin 0 -> 14494 bytes sound/machines/turrets/turret_deploy.ogg | Bin 0 -> 120800 bytes sound/machines/turrets/turret_retract.ogg | Bin 0 -> 124627 bytes sound/machines/turrets/turret_rotate.ogg | Bin 0 -> 72543 bytes sound/machines/vending/vending_cans.ogg | Bin 0 -> 42210 bytes sound/machines/vending/vending_coffee.ogg | Bin 0 -> 165781 bytes sound/machines/vending/vending_drop.ogg | Bin 0 -> 37531 bytes vorestation.dme | 6 + 93 files changed, 2800 insertions(+), 1306 deletions(-) create mode 100644 code/__DEFINES/shields.dm create mode 100644 code/__DEFINES/wires.dm create mode 100644 code/datums/wires/shield_generator.dm create mode 100644 code/modules/shieldgen/energy_shield.dm create mode 100644 code/modules/shieldgen/shield_generator.dm create mode 100644 code/modules/shieldgen/shield_modes.dm create mode 100644 nano/templates/shield_generator.tmpl create mode 100644 sound/machines/apc_nopower.ogg create mode 100644 sound/machines/buttonbeep.ogg create mode 100644 sound/machines/clawmachine_play.ogg create mode 100644 sound/machines/clawmachine_win.ogg create mode 100644 sound/machines/door/airlock_tear_apart.ogg create mode 100644 sound/machines/door/knock_glass.ogg create mode 100644 sound/machines/door/knock_wood.wav create mode 100644 sound/machines/hatch_close.ogg create mode 100644 sound/machines/honkbot_evil_laugh.ogg create mode 100644 sound/machines/id_swipe.ogg create mode 100644 sound/machines/machine_die_short.ogg create mode 100644 sound/machines/pda_click.ogg create mode 100644 sound/machines/rig/rigdown.ogg create mode 100644 sound/machines/rig/rigerror.ogg create mode 100644 sound/machines/rig/rigonline.ogg create mode 100644 sound/machines/rig/rigservo.ogg create mode 100644 sound/machines/rig/rigstarted.ogg create mode 100644 sound/machines/rig/rigstep.ogg create mode 100644 sound/machines/roulette.ogg create mode 100644 sound/machines/shutdown.ogg create mode 100644 sound/machines/slotmachine.ogg create mode 100644 sound/machines/slotmachine_pull.ogg create mode 100644 sound/machines/synth_alert.ogg create mode 100644 sound/machines/turrets/turret_deploy.ogg create mode 100644 sound/machines/turrets/turret_retract.ogg create mode 100644 sound/machines/turrets/turret_rotate.ogg create mode 100644 sound/machines/vending/vending_cans.ogg create mode 100644 sound/machines/vending/vending_coffee.ogg create mode 100644 sound/machines/vending/vending_drop.ogg diff --git a/code/__DEFINES/color/color.dm b/code/__DEFINES/color/color.dm index 4c201a7401f..f3e1761dd08 100644 --- a/code/__DEFINES/color/color.dm +++ b/code/__DEFINES/color/color.dm @@ -11,6 +11,7 @@ #define COLOR_DARK_ORANGE "#B95A00" #define COLOR_ORANGE "#FF9900" #define COLOR_YELLOW "#FFFF00" +#define COLOR_GOLD "#FFCC33" #define COLOR_OLIVE "#808000" #define COLOR_LIME "#00FF00" #define COLOR_GREEN "#008000" @@ -35,22 +36,22 @@ #define COLOR_DEEP_SKY_BLUE "#00e1ff" // Color defines used by the assembly detailer. -#define COLOR_ASSEMBLY_BLACK "#545454" -#define COLOR_ASSEMBLY_BGRAY "#9497AB" -#define COLOR_ASSEMBLY_WHITE "#E2E2E2" -#define COLOR_ASSEMBLY_RED "#CC4242" -#define COLOR_ASSEMBLY_ORANGE "#E39751" -#define COLOR_ASSEMBLY_BEIGE "#AF9366" -#define COLOR_ASSEMBLY_BROWN "#97670E" -#define COLOR_ASSEMBLY_GOLD "#AA9100" -#define COLOR_ASSEMBLY_YELLOW "#CECA2B" -#define COLOR_ASSEMBLY_GURKHA "#999875" -#define COLOR_ASSEMBLY_LGREEN "#789876" -#define COLOR_ASSEMBLY_GREEN "#44843C" -#define COLOR_ASSEMBLY_LBLUE "#5D99BE" -#define COLOR_ASSEMBLY_BLUE "#38559E" -#define COLOR_ASSEMBLY_PURPLE "#6F6192" -#define COLOR_ASSEMBLY_HOT_PINK "#FF69B4" +#define COLOR_ASSEMBLY_BLACK "#545454" +#define COLOR_ASSEMBLY_BGRAY "#9497AB" +#define COLOR_ASSEMBLY_WHITE "#E2E2E2" +#define COLOR_ASSEMBLY_RED "#CC4242" +#define COLOR_ASSEMBLY_ORANGE "#E39751" +#define COLOR_ASSEMBLY_BEIGE "#AF9366" +#define COLOR_ASSEMBLY_BROWN "#97670E" +#define COLOR_ASSEMBLY_GOLD "#AA9100" +#define COLOR_ASSEMBLY_YELLOW "#CECA2B" +#define COLOR_ASSEMBLY_GURKHA "#999875" +#define COLOR_ASSEMBLY_LGREEN "#789876" +#define COLOR_ASSEMBLY_GREEN "#44843C" +#define COLOR_ASSEMBLY_LBLUE "#5D99BE" +#define COLOR_ASSEMBLY_BLUE "#38559E" +#define COLOR_ASSEMBLY_PURPLE "#6F6192" +#define COLOR_ASSEMBLY_HOT_PINK "#FF69B4" ///MISC #define COLOR_ASTEROID_ROCK "#735555" diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 4d8a9fb7e80..4bbbda21728 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -136,6 +136,13 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s // Area flags, possibly more to come #define RAD_SHIELDED 1 // Shielded from radiation, clearly +// OnTopic return values +#define TOPIC_NOACTION 0 +#define TOPIC_HANDLED 1 +#define TOPIC_REFRESH 2 +#define TOPIC_UPDATE_PREVIEW 4 +#define TOPIC_REFRESH_UPDATE_PREVIEW (TOPIC_REFRESH|TOPIC_UPDATE_PREVIEW) + // Convoluted setup so defines can be supplied by Bay12 main server compile script. // Should still work fine for people jamming the icons into their repo. #ifndef CUSTOM_ITEM_OBJ @@ -452,6 +459,89 @@ GLOBAL_LIST_EMPTY(##LIST_NAME);\ #define JOB_SILICON_AI 0x4 #define JOB_SILICON 0x6 // 2|4, probably don't set jobs to this, but good for checking +/* + Used for wire name appearances. Replaces the color name on the left with the one on the right. + The color on the left is the one used as the actual color of the wire, but it doesn't look good when written. + So, we need to replace the name to something that looks better. +*/ +#define LIST_COLOR_RENAME \ + list( \ + "rebeccapurple" = "dark purple",\ + "darkslategrey" = "dark grey", \ + "darkolivegreen"= "dark green", \ + "darkslateblue" = "dark blue", \ + "darkkhaki" = "khaki", \ + "darkseagreen" = "light green",\ + "midnightblue" = "blue", \ + "lightgrey" = "light grey", \ + "darkgrey" = "dark grey", \ + "darkmagenta" = "dark magenta",\ + "steelblue" = "blue", \ + "goldenrod" = "gold" \ + ) + +/// Pure Black and white colorblindness. Every species except Vulpkanins and Tajarans will have this. +#define GREYSCALE_COLOR_REPLACE \ + list( \ + "red" = "grey", \ + "blue" = "grey", \ + "green" = "grey", \ + "orange" = "light grey", \ + "brown" = "grey", \ + "gold" = "light grey", \ + "cyan" = "silver", \ + "magenta" = "grey", \ + "purple" = "grey", \ + "pink" = "light grey" \ + ) + +/// Red colorblindness. Vulpkanins/Wolpins have this. +#define PROTANOPIA_COLOR_REPLACE \ + list( \ + "red" = "darkolivegreen", \ + "darkred" = "darkolivegreen", \ + "green" = "yellow", \ + "orange" = "goldenrod", \ + "gold" = "goldenrod", \ + "brown" = "darkolivegreen", \ + "cyan" = "steelblue", \ + "magenta" = "blue", \ + "purple" = "darkslategrey", \ + "pink" = "beige" \ + ) + +/// Green colorblindness. +#define DEUTERANOPIA_COLOR_REPLACE \ + list( \ + "red" = "goldenrod", \ + "green" = "tan", \ + "yellow" = "tan", \ + "orange" = "goldenrod", \ + "gold" = "burlywood", \ + "brown" = "saddlebrown",\ + "cyan" = "lavender", \ + "magenta" = "blue", \ + "darkmagenta" = "darkslateblue", \ + "purple" = "slateblue", \ + "pink" = "thistle" \ + ) + +/// Yellow-Blue colorblindness. Tajarans/Farwas have this. +#define TRITANOPIA_COLOR_REPLACE \ + list( \ + "red" = "rebeccapurple", \ + "blue" = "darkslateblue", \ + "green" = "darkolivegreen", \ + "orange" = "darkkhaki", \ + "gold" = "darkkhaki", \ + "brown" = "rebeccapurple", \ + "cyan" = "darkseagreen", \ + "magenta" = "darkslateblue", \ + "navy" = "darkslateblue", \ + "purple" = "darkslateblue", \ + "pink" = "lightgrey" \ + ) + #define SPAN_NOTICE(X) "[X]" #define SPAN_WARNING(X) "[X]" #define SPAN_DANGER(X) "[X]" diff --git a/code/__DEFINES/shields.dm b/code/__DEFINES/shields.dm new file mode 100644 index 00000000000..daf6d00a65b --- /dev/null +++ b/code/__DEFINES/shields.dm @@ -0,0 +1,48 @@ +#define SHIELD_DAMTYPE_PHYSICAL 1 // Physical damage - bullets, meteors, various hand objects - aka. "brute" damtype. +#define SHIELD_DAMTYPE_EM 2 // Electromagnetic damage - Ion weaponry, stun beams, ... +#define SHIELD_DAMTYPE_HEAT 3 // Heat damage - Lasers, fire + +// TODO - Thats power not energy you silly goose! I think we mean 45 kilojoules +#define ENERGY_PER_HP (45 KILOWATTS)// Base amount energy that will be deducted from the generator's internal reserve per 1 HP of damage taken +#define ENERGY_UPKEEP_PER_TILE (4 KILOWATTS) // Base upkeep per tile protected. Multiplied by various enabled shield modes. Without them the field does literally nothing. +#define ENERGY_UPKEEP_IDLE 45 // Base upkeep when idle; modified by other factors. + +// This shield model is slightly inspired by Sins of a Solar Empire series. In short, shields are designed to analyze what hits them, and adapt themselves against that type of damage. +// This means shields will become increasingly effective against things like emitters - as they will adapt to heat damage, however they will be vulnerable to brute and EM damage. +// In a theoretical assault scenario, it is best to combine all damage types, so mitigation can't build up. The value is capped to prevent full scale invulnerability. + +#define MAX_MITIGATION_BASE 40 // % Base maximal reachable mitigation. +#define MAX_MITIGATION_RESEARCH 10 // % Added to MAX_MITIGATION_BASE when generator is built using more advanced components. This value is added for each "tier" of used component, ie. basic one has 1, the best one has 5. Actual maximum should be 90% in this case (with best components). Make sure you won't get above 100%! +#define MITIGATION_HIT_GAIN 5 // Mitigation gain per hit of respective damage type. +#define MITIGATION_HIT_LOSS 4 // Mitigation loss per hit. If we get hit once by EM damage type, EM mitigation will grow, while Physical and Heat mitigation values drop. +#define MITIGATION_LOSS_PASSIVE 0.5 // Mitigation of all damage types will drop by this every tick, up to 0. + +// Shield modes allow you to calibrate the field to fit specific needs. It is, for example, possible to create a field that will block airflow, but let people pass. +// Relevant mode bitflags (maximal of 16 flags due to current BYOND limitations) +#define MODEFLAG_HYPERKINETIC 1 +#define MODEFLAG_PHOTONIC 2 +#define MODEFLAG_NONHUMANS 4 +#define MODEFLAG_HUMANOIDS 8 +#define MODEFLAG_ANORGANIC 16 +#define MODEFLAG_ATMOSPHERIC 32 +#define MODEFLAG_HULL 64 +#define MODEFLAG_BYPASS 128 +#define MODEFLAG_OVERCHARGE 256 +#define MODEFLAG_MODULATE 512 +#define MODEFLAG_MULTIZ 1024 +#define MODEFLAG_EM 2048 + +// Return codes for shield hits. +#define SHIELD_ABSORBED 1 // The shield has completely absorbed the hit +#define SHIELD_BREACHED_MINOR 2 // The hit was absorbed, but a small gap will be created in the field (1-3 tiles) +#define SHIELD_BREACHED_MAJOR 3 // Same as above, with 2-5 tile gap +#define SHIELD_BREACHED_CRITICAL 4 // Same as above, with 4-8 tile gap +#define SHIELD_BREACHED_FAILURE 5 // Same as above, with 8-16 tile gap. Occurs when the hit exhausts all remaining shield energy. + +#define SHIELD_OFF 0 // The shield is offline +#define SHIELD_DISCHARGING 1 // The shield is shutting down and discharging. +#define SHIELD_RUNNING 2 // The shield is running +#define SHIELD_IDLE 3 // The shield is being kept at an idle state +#define SHIELD_SPINNING_UP 4 // Going from idle to running + +#define SHIELD_SHUTDOWN_DISPERSION_RATE (10000 KILOWATTS) // The rate at which shield energy disperses when shutdown is initiated. diff --git a/code/__DEFINES/wires.dm b/code/__DEFINES/wires.dm new file mode 100644 index 00000000000..9fce2e8b870 --- /dev/null +++ b/code/__DEFINES/wires.dm @@ -0,0 +1,122 @@ +// Wire defines for all machines/items. + +// Miscellaneous +#define WIRE_DUD_PREFIX "__dud" + +// General +#define WIRE_IDSCAN "ID Scan" +#define WIRE_MAIN_POWER1 "Primary Power" +#define WIRE_MAIN_POWER2 "Secondary Power" +#define WIRE_AI_CONTROL "AI Control" +#define WIRE_ELECTRIFY "Electrification" +#define WIRE_SAFETY "Safety" + +// Vendors and smartfridges +#define WIRE_THROW_ITEM "Item Throw" +#define WIRE_CONTRABAND "Contraband" + +// Airlock +#define WIRE_DOOR_BOLTS "Door Bolts" +#define WIRE_BACKUP_POWER1 "Primary Backup Power" +#define WIRE_BACKUP_POWER2 "Secondary Backup Power" +#define WIRE_OPEN_DOOR "Door State" +#define WIRE_SPEED "Door Timing" +#define WIRE_BOLT_LIGHT "Bolt Lights" + +// Air alarm +#define WIRE_SYPHON "Siphon" +#define WIRE_AALARM "Atmospherics Alarm" + +// Camera +#define WIRE_FOCUS "Focus" +#define WIRE_CAM_LIGHT "Camera Light" +#define WIRE_CAM_ALARM "Camera Alarm" + +// Grid Check +#define WIRE_REBOOT "Reboot" +#define WIRE_LOCKOUT "Lockout" +#define WIRE_ALLOW_MANUAL1 "Manual Override 1" +#define WIRE_ALLOW_MANUAL2 "Manual Override 2" +#define WIRE_ALLOW_MANUAL3 "Manual Override 3" + +// Jukebox +#define WIRE_POWER "Power" +#define WIRE_JUKEBOX_HACK "Hack" +#define WIRE_SPEEDUP "Speedup" +#define WIRE_SPEEDDOWN "Speeddown" +#define WIRE_REVERSE "Reverse" +#define WIRE_START "Start" +#define WIRE_STOP "Stop" +#define WIRE_PREV "Prev" +#define WIRE_NEXT "Next" + +// Mulebot +#define WIRE_MOB_AVOIDANCE "Mob Avoidance" +#define WIRE_LOADCHECK "Load Checking" +#define WIRE_MOTOR1 "Primary Motor" +#define WIRE_MOTOR2 "Secondary Motor" +#define WIRE_REMOTE_RX "Signal Receiver" +#define WIRE_REMOTE_TX "Signal Sender" +#define WIRE_BEACON_RX "Beacon Receiver" + +// Explosives, bombs +#define WIRE_EXPLODE "Explode" // Explodes if pulsed or cut while active, defuses a bomb that isn't active on cut. +#define WIRE_EXPLODE_DELAY "Explode Delay" // Explodes immediately if cut, explodes 3 seconds later if pulsed. +#define WIRE_DISARM "Disarm" // Explicit "disarming" wire. +#define WIRE_BADDISARM "Bad Disarm" // Disarming wire, except it blows up anyways. +#define WIRE_BOMB_UNBOLT "Unbolt" // Unbolts the bomb if cut, hint on pulsed. +#define WIRE_BOMB_DELAY "Delay" // Raises the timer on pulse, does nothing on cut. +#define WIRE_BOMB_PROCEED "Proceed" // Lowers the timer, explodes if cut while the bomb is active. +#define WIRE_BOMB_ACTIVATE "Activate" // Will start a bombs timer if pulsed, will hint if pulsed while already active, will stop a timer a bomb on cut. + +// Nuclear bomb +#define WIRE_BOMB_LIGHT "Bomb Light" +#define WIRE_BOMB_TIMING "Bomb Timing" +#define WIRE_BOMB_SAFETY "Bomb Safety" + +// Particle accelerator +#define WIRE_PARTICLE_POWER "Power Toggle" // Toggles whether the PA is on or not. +#define WIRE_PARTICLE_STRENGTH "Strength" // Determines the strength of the PA. +#define WIRE_PARTICLE_INTERFACE "Interface" // Determines the interface showing up. +#define WIRE_PARTICLE_POWER_LIMIT "Maximum Power" // Determines how strong the PA can be. + +// Autolathe +#define WIRE_AUTOLATHE_HACK "Hack" +#define WIRE_AUTOLATHE_DISABLE "Disable" + +// Radio +#define WIRE_RADIO_SIGNAL "Signal" +#define WIRE_RADIO_RECEIVER "Receiver" +#define WIRE_RADIO_TRANSMIT "Transmitter" + +// Cyborg +#define WIRE_BORG_LOCKED "Lockdown" +#define WIRE_BORG_CAMERA "Camera" +#define WIRE_BORG_LAWCHECK "Law Check" + +// Seed Storage +#define WIRE_SEED_SMART "Smart" +#define WIRE_SEED_LOCKDOWN "Lockdown" + +// Shield Generator +#define WIRE_SHIELD_CONTROL "Shield Controls" // Cut to lock most shield controls. Mend to unlock them. Pulse does nothing. + +// SMES +#define WIRE_SMES_RCON "RCon" // Remote control (AI and consoles), cut to disable +#define WIRE_SMES_INPUT "Input" // Input wire, cut to disable input, pulse to disable for 60s +#define WIRE_SMES_OUTPUT "Output" // Output wire, cut to disable output, pulse to disable for 60s +#define WIRE_SMES_GROUNDING "Grounding" // Cut to quickly discharge causing sparks, pulse to only create few sparks +#define WIRE_SMES_FAILSAFES "Failsafes" // Cut to disable failsafes, mend to reenable + +// Suit storage unit +#define WIRE_SSU_UV "UV wire" + +// Tesla coil +#define WIRE_TESLACOIL_ZAP "Zap" + +// RIGsuits +#define WIRE_RIG_SECURITY "Security" +#define WIRE_RIG_AI_OVERRIDE "AI Override" +#define WIRE_RIG_SYSTEM_CONTROL "System Control" +#define WIRE_RIG_INTERFACE_LOCK "Interface Lock" +#define WIRE_RIG_INTERFACE_SHOCK "Interface Shock" diff --git a/code/_globalvars/lists/misc.dm b/code/_globalvars/lists/misc.dm index 53fc0f01e42..b35405d3e06 100644 --- a/code/_globalvars/lists/misc.dm +++ b/code/_globalvars/lists/misc.dm @@ -1,2 +1,6 @@ GLOBAL_LIST_INIT(char_directory_tags, list("Pred", "Prey", "Switch", "Non-Vore", "Unset")) GLOBAL_LIST_INIT(char_directory_erptags, list("Top", "Bottom", "Switch", "No ERP", "Unset")) +GLOBAL_LIST_EMPTY(meteor_list) + +/// List of wire colors for each object type of that round. One for airlocks, one for vendors, etc. +GLOBAL_LIST_EMPTY(wire_color_directory) // This is an associative list with the `holder_type` as the key, and a list of colors as the value. diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index fffd092696f..b41e005a3e0 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -164,7 +164,7 @@ if(..()) return add_hiddenprint(user) - if(wires.IsIndexCut(AIRLOCK_WIRE_LIGHT)) + if(wires.is_cut(WIRE_BOLT_LIGHT)) to_chat(user, "The lights are not responsive to your command.") return lights = !lights diff --git a/code/datums/supplypacks/engineering.dm b/code/datums/supplypacks/engineering.dm index 69ea2a97cc9..1baf2df021b 100644 --- a/code/datums/supplypacks/engineering.dm +++ b/code/datums/supplypacks/engineering.dm @@ -35,48 +35,6 @@ containertype = /obj/structure/closet/crate/engineering containername = "Superconducting Transmission Coil crate" -/datum/supply_pack/eng/shield_capacitor - name = "Shield Capacitor" - contains = list(/obj/machinery/shield_capacitor) - cost = 20 - containertype = /obj/structure/closet/crate/engineering - containername = "shield capacitor crate" - -/datum/supply_pack/eng/shield_capacitor/advanced - name = "Advanced Shield Capacitor" - contains = list(/obj/machinery/shield_capacitor/advanced) - cost = 30 - containertype = /obj/structure/closet/crate/engineering - containername = "advanced shield capacitor crate" - -/datum/supply_pack/eng/bubble_shield - name = "Bubble Shield Generator" - contains = list(/obj/machinery/shield_gen) - cost = 40 - containertype = /obj/structure/closet/crate/engineering - containername = "shield bubble generator crate" - -/datum/supply_pack/eng/bubble_shield/advanced - name = "Advanced Bubble Shield Generator" - contains = list(/obj/machinery/shield_gen/advanced) - cost = 60 - containertype = /obj/structure/closet/crate/engineering - containername = "advanced bubble shield generator crate" - -/datum/supply_pack/eng/hull_shield - name = "Hull Shield Generator" - contains = list(/obj/machinery/shield_gen/external) - cost = 80 - containertype = /obj/structure/closet/crate/engineering - containername = "shield hull generator crate" - -/datum/supply_pack/eng/hull_shield/advanced - name = "Advanced Hull Shield Generator" - contains = list(/obj/machinery/shield_gen/external/advanced) - cost = 120 - containertype = /obj/structure/closet/crate/engineering - containername = "advanced hull shield generator crate" - /datum/supply_pack/eng/electrical name = "Electrical maintenance crate" contains = list( @@ -175,30 +133,19 @@ containername = "Particle Accelerator crate" access = access_ce -/datum/supply_pack/eng/shield_gen - contains = list(/obj/item/circuitboard/shield_gen) - name = "Bubble shield generator circuitry" - cost = 30 - containertype = /obj/structure/closet/crate/secure/engineering - containername = "bubble shield generator circuitry crate" - access = access_ce - -/datum/supply_pack/eng/shield_gen_ex - contains = list(/obj/item/circuitboard/shield_gen_ex) - name = "Hull shield generator circuitry" - cost = 30 - containertype = /obj/structure/closet/crate/secure/engineering - containername = "hull shield generator circuitry crate" - access = access_ce - -/datum/supply_pack/eng/shield_cap - contains = list(/obj/item/circuitboard/shield_cap) - name = "Bubble shield capacitor circuitry" - cost = 30 - containertype = /obj/structure/closet/crate/secure/engineering - containername = "shield capacitor circuitry crate" - access = access_ce - +/datum/supply_pack/eng/shield_generator + name = "Shield Generator Construction Kit" + contains = list( + /obj/item/circuitboard/shield_generator, + /obj/item/stock_parts/capacitor, + /obj/item/stock_parts/micro_laser, + /obj/item/smes_coil, + /obj/item/stock_parts/console_screen, + /obj/item/stock_parts/subspace/amplifier + ) + cost = 80 + containertype = /obj/structure/closet/crate/engineering + containername = "shield generator construction kit crate" /datum/supply_pack/eng/smbig name = "Supermatter Core" contains = list(/obj/machinery/power/supermatter) diff --git a/code/datums/uplink/tools.dm b/code/datums/uplink/tools.dm index 4e932014785..854122e1893 100644 --- a/code/datums/uplink/tools.dm +++ b/code/datums/uplink/tools.dm @@ -53,6 +53,12 @@ name = "Black Ammunition Duffle Bag" path = /obj/item/storage/backpack/dufflebag/syndie/ammo +/datum/uplink_item/item/tools/shield_diffuser + name = "Handheld Shield Diffuser" + desc = "A small device used to disrupt energy barriers, and allow passage through them." + item_cost = 16 + path = /obj/item/shield_diffuser + /datum/uplink_item/item/tools/space_suit name = "Space Suit" item_cost = 15 @@ -188,4 +194,3 @@ name = "Survival Capsule (Bar)" item_cost = 80 path = /obj/item/survivalcapsule/luxurybar - diff --git a/code/datums/wires/airlock.dm b/code/datums/wires/airlock.dm index 85546a79d75..60103b244a3 100644 --- a/code/datums/wires/airlock.dm +++ b/code/datums/wires/airlock.dm @@ -1,61 +1,53 @@ // Wires for airlocks /datum/wires/airlock/secure - random = 1 + randomize = TRUE wire_count = 14 /datum/wires/airlock holder_type = /obj/machinery/door/airlock wire_count = 12 - window_y = 570 + proper_name = "Airlock" -var/const/AIRLOCK_WIRE_IDSCAN = 1 -var/const/AIRLOCK_WIRE_MAIN_POWER1 = 2 -var/const/AIRLOCK_WIRE_MAIN_POWER2 = 4 -var/const/AIRLOCK_WIRE_DOOR_BOLTS = 8 -var/const/AIRLOCK_WIRE_BACKUP_POWER1 = 16 -var/const/AIRLOCK_WIRE_BACKUP_POWER2 = 32 -var/const/AIRLOCK_WIRE_OPEN_DOOR = 64 -var/const/AIRLOCK_WIRE_AI_CONTROL = 128 -var/const/AIRLOCK_WIRE_ELECTRIFY = 256 -var/const/AIRLOCK_WIRE_SAFETY = 512 -var/const/AIRLOCK_WIRE_SPEED = 1024 -var/const/AIRLOCK_WIRE_LIGHT = 2048 - -/datum/wires/airlock/CanUse(var/mob/living/L) +/datum/wires/airlock/interactable(mob/user) var/obj/machinery/door/airlock/A = holder - if(!istype(L, /mob/living/silicon)) + if(!issilicon(user)) if(A.isElectrified()) - if(A.shock(L, 100)) - return 0 + if(A.shock(user, 100)) + return FALSE if(A.p_open) - return 1 - return 0 + return TRUE + return FALSE -/datum/wires/airlock/GetInteractWindow() +/datum/wires/airlock/New(atom/_holder) + wires = list( + WIRE_IDSCAN, WIRE_MAIN_POWER1, WIRE_MAIN_POWER2, WIRE_DOOR_BOLTS, + WIRE_BACKUP_POWER1, WIRE_BACKUP_POWER2, WIRE_OPEN_DOOR, WIRE_AI_CONTROL, + WIRE_ELECTRIFY, WIRE_SAFETY, WIRE_SPEED, WIRE_BOLT_LIGHT + ) + return ..() + +/datum/wires/airlock/get_status() + . = ..() var/obj/machinery/door/airlock/A = holder var/haspower = A.arePowerSystemsOn() //If there's no power, then no lights will be on. - . += ..() - . += text("
\n[]
\n[]
\n[]
\n[]
\n[]
\n[]
\n[]
\n[]", - (A.locked ? "The door bolts have fallen!" : "The door bolts look up."), - ((A.lights && haspower) ? "The door bolt lights are on." : "The door bolt lights are off!"), - ((haspower) ? "The test light is on." : "The test light is off!"), - ((A.backup_power_lost_until) ? "The backup power light is off!" : "The backup power light is on."), - ((A.aiControlDisabled==0 && !A.emagged && haspower)? "The 'AI control allowed' light is on." : "The 'AI control allowed' light is off."), - ((A.safe==0 && haspower)? "The 'Check Wiring' light is on." : "The 'Check Wiring' light is off."), - ((A.normalspeed==0 && haspower)? "The 'Check Timing Mechanism' light is on." : "The 'Check Timing Mechanism' light is off."), - ((A.aiDisabledIdScanner==0 && haspower)? "The IDScan light is on." : "The IDScan light is off.")) - -/datum/wires/airlock/UpdateCut(var/index, var/mended) + . += "The door bolts [A.locked ? "have fallen!" : "look up."]" + . += "The door bolt lights are [(A.lights && haspower) ? "on." : "off!"]" + . += "The test light is [haspower ? "on." : "off!"]" + . += "The backup power light is [A.backup_power_lost_until ? "off!" : "on."]" + . += "The 'AI control allowed' light is [(A.aiControlDisabled == 0 && !A.emagged && haspower) ? "on" : "off"]." + . += "The 'Check Wiring' light is [(A.safe == 0 && haspower) ? "on" : "off"]." + . += "The 'Check Timing Mechanism' light is [(A.normalspeed == 0 && haspower) ? "on" : "off"]." + . += "The IDScan light is [(A.aiDisabledIdScanner == 0 && haspower) ? "on" : "off."]" +/datum/wires/airlock/on_cut(wire, mend) var/obj/machinery/door/airlock/A = holder - switch(index) - if(AIRLOCK_WIRE_IDSCAN) - A.aiDisabledIdScanner = !mended - if(AIRLOCK_WIRE_MAIN_POWER1, AIRLOCK_WIRE_MAIN_POWER2) - - if(!mended) + switch(wire) + if(WIRE_IDSCAN) + A.aiDisabledIdScanner = !mend + if(WIRE_MAIN_POWER1, WIRE_MAIN_POWER2) + if(!mend) //Cutting either one disables the main door power, but unless backup power is also cut, the backup power re-powers the door in 10 seconds. While unpowered, the door may be crowbarred open, but bolts-raising will not work. Cutting these wires may electocute the user. A.loseMainPower() A.shock(usr, 50) @@ -63,9 +55,8 @@ var/const/AIRLOCK_WIRE_LIGHT = 2048 A.regainMainPower() A.shock(usr, 50) - if(AIRLOCK_WIRE_BACKUP_POWER1, AIRLOCK_WIRE_BACKUP_POWER2) - - if(!mended) + if(WIRE_BACKUP_POWER1, WIRE_BACKUP_POWER2) + if(!mend) //Cutting either one disables the backup door power (allowing it to be crowbarred open, but disabling bolts-raising), but may electocute the user. A.loseBackupPower() A.shock(usr, 50) @@ -73,16 +64,14 @@ var/const/AIRLOCK_WIRE_LIGHT = 2048 A.regainBackupPower() A.shock(usr, 50) - if(AIRLOCK_WIRE_DOOR_BOLTS) - - if(!mended) + if(WIRE_DOOR_BOLTS) + if(!mend) //Cutting this wire also drops the door bolts, and mending it does not raise them. (This is what happens now, except there are a lot more wires going to door bolts at present) A.lock(1) A.update_icon() - if(AIRLOCK_WIRE_AI_CONTROL) - - if(!mended) + if(WIRE_AI_CONTROL) + if(!mend) //one wire for AI control. Cutting this prevents the AI from controlling the door unless it has hacked the door through the power connection (which takes about a minute). If both main and backup power are cut, as well as this wire, then the AI cannot operate or hack the door at all. //aiControlDisabled: If 1, AI control is disabled until the AI hacks back in and disables the lock. If 2, the AI has bypassed the lock. If -1, the control is enabled but the AI had bypassed it earlier, so if it is disabled again the AI would have no trouble getting back in. if(A.aiControlDisabled == 0) @@ -95,40 +84,41 @@ var/const/AIRLOCK_WIRE_LIGHT = 2048 else if(A.aiControlDisabled == 2) A.aiControlDisabled = -1 - if(AIRLOCK_WIRE_ELECTRIFY) - if(!mended) + if(WIRE_ELECTRIFY) + if(!mend) //Cutting this wire electrifies the door, so that the next person to touch the door without insulated gloves gets electrocuted. A.electrify(-1) else A.electrify(0) return // Don't update the dialog. - if (AIRLOCK_WIRE_SAFETY) - A.safe = mended + if (WIRE_SAFETY) + A.safe = mend - if(AIRLOCK_WIRE_SPEED) - A.autoclose = mended - if(mended) + if(WIRE_SPEED) + A.autoclose = mend + if(mend) if(!A.density) A.close() - if(AIRLOCK_WIRE_LIGHT) - A.lights = mended + if(WIRE_BOLT_LIGHT) + A.lights = mend A.update_icon() -/datum/wires/airlock/UpdatePulsed(var/index) - +/datum/wires/airlock/on_pulse(wire) var/obj/machinery/door/airlock/A = holder - switch(index) - if(AIRLOCK_WIRE_IDSCAN) + switch(wire) + if(WIRE_IDSCAN) //Sending a pulse through flashes the red light on the door (if the door has power). if(A.arePowerSystemsOn() && A.density) A.do_animate("deny") - if(AIRLOCK_WIRE_MAIN_POWER1, AIRLOCK_WIRE_MAIN_POWER2) + + if(WIRE_MAIN_POWER1, WIRE_MAIN_POWER2) //Sending a pulse through either one causes a breaker to trip, disabling the door for 10 seconds if backup power is connected, or 1 minute if not (or until backup power comes back on, whichever is shorter). A.loseMainPower() - if(AIRLOCK_WIRE_DOOR_BOLTS) + + if(WIRE_DOOR_BOLTS) //one wire for door bolts. Sending a pulse through this drops door bolts if they're not down (whether power's on or not), //raises them if they are down (only if power's on) if(!A.locked) @@ -136,10 +126,11 @@ var/const/AIRLOCK_WIRE_LIGHT = 2048 else A.unlock() - if(AIRLOCK_WIRE_BACKUP_POWER1, AIRLOCK_WIRE_BACKUP_POWER2) + if(WIRE_BACKUP_POWER1, WIRE_BACKUP_POWER2) //two wires for backup power. Sending a pulse through either one causes a breaker to trip, but this does not disable it unless main power is down too (in which case it is disabled for 1 minute or however long it takes main power to come back, whichever is shorter). A.loseBackupPower() - if(AIRLOCK_WIRE_AI_CONTROL) + + if(WIRE_AI_CONTROL) if(A.aiControlDisabled == 0) A.aiControlDisabled = 1 else if(A.aiControlDisabled == -1) @@ -152,24 +143,26 @@ var/const/AIRLOCK_WIRE_LIGHT = 2048 else if(A.aiControlDisabled == 2) A.aiControlDisabled = -1 - if(AIRLOCK_WIRE_ELECTRIFY) + if(WIRE_ELECTRIFY) //one wire for electrifying the door. Sending a pulse through this electrifies the door for 30 seconds. A.electrify(30) - if(AIRLOCK_WIRE_OPEN_DOOR) + + if(WIRE_OPEN_DOOR) //tries to open the door without ID //will succeed only if the ID wire is cut or the door requires no access and it's not emagged if(A.emagged) return if(!A.requiresID() || A.check_access(null)) if(A.density) A.open() else A.close() - if(AIRLOCK_WIRE_SAFETY) + + if(WIRE_SAFETY) A.safe = !A.safe if(!A.density) A.close() - if(AIRLOCK_WIRE_SPEED) + if(WIRE_SPEED) A.normalspeed = !A.normalspeed - if(AIRLOCK_WIRE_LIGHT) + if(WIRE_BOLT_LIGHT) A.lights = !A.lights A.update_icon() diff --git a/code/datums/wires/alarm.dm b/code/datums/wires/alarm.dm index 7c2d4d65d09..383eb360c05 100644 --- a/code/datums/wires/alarm.dm +++ b/code/datums/wires/alarm.dm @@ -1,93 +1,87 @@ /datum/wires/alarm holder_type = /obj/machinery/alarm wire_count = 5 + proper_name = "Air alarm" -var/const/AALARM_WIRE_IDSCAN = 1 -var/const/AALARM_WIRE_POWER = 2 -var/const/AALARM_WIRE_SYPHON = 4 -var/const/AALARM_WIRE_AI_CONTROL = 8 -var/const/AALARM_WIRE_AALARM = 16 +/datum/wires/alarm/New(atom/_holder) + wires = list( + WIRE_IDSCAN, WIRE_MAIN_POWER1, WIRE_SYPHON, + WIRE_AI_CONTROL, WIRE_AALARM + ) + return ..() -/datum/wires/alarm/CanUse(var/mob/living/L) +/datum/wires/alarm/interactable(mob/user) var/obj/machinery/alarm/A = holder if(A.panel_open) - return 1 - return 0 + return TRUE + return FALSE -/datum/wires/alarm/GetInteractWindow() +/datum/wires/alarm/get_status() var/obj/machinery/alarm/A = holder - . += ..() - . += text("
\n[(A.locked ? "The Air Alarm is locked." : "The Air Alarm is unlocked.")]
\n[((A.shorted || (A.stat & (NOPOWER|BROKEN))) ? "The Air Alarm is offline." : "The Air Alarm is working properly!")]
\n[(A.aidisabled ? "The 'AI control allowed' light is off." : "The 'AI control allowed' light is on.")]") + . = ..() + . += "The Air Alarm is [A.locked ? "locked." : "unlocked."]" + . += "The Air Alarm is [(A.shorted || (A.stat & (NOPOWER|BROKEN))) ? "offline." : "working properly!"]" + . += "The 'AI control allowed' light is [A.aidisabled ? "off" : "on"]." -/datum/wires/alarm/UpdateCut(var/index, var/mended) +/datum/wires/alarm/on_cut(wire, mend) var/obj/machinery/alarm/A = holder - switch(index) - if(AALARM_WIRE_IDSCAN) - if(!mended) - A.locked = 1 - //to_chat(world, "Idscan wire cut") + switch(wire) + if(WIRE_IDSCAN) + if(!mend) + A.locked = TRUE - if(AALARM_WIRE_POWER) + if(WIRE_MAIN_POWER1) A.shock(usr, 50) - A.shorted = !mended + A.shorted = !mend A.update_icon() - //to_chat(world, "Power wire cut") - if (AALARM_WIRE_AI_CONTROL) - if (A.aidisabled == !mended) - A.aidisabled = mended - //to_chat(world, "AI Control Wire Cut") + if(WIRE_AI_CONTROL) + A.aidisabled = !mend - if(AALARM_WIRE_SYPHON) - if(!mended) - A.mode = 3 // AALARM_MODE_PANIC + if(WIRE_SYPHON) + if(!mend) + A.mode = 3 // MODE_PANIC A.apply_mode() - //to_chat(world, "Syphon Wire Cut") - if(AALARM_WIRE_AALARM) - if (A.alarm_area.atmosalert(2, A)) + if(WIRE_AALARM) + if(A.alarm_area.atmosalert(2, A)) A.post_alert(2) A.update_icon() + ..() -/datum/wires/alarm/UpdatePulsed(var/index) +/datum/wires/alarm/on_pulse(wire) var/obj/machinery/alarm/A = holder - switch(index) - if(AALARM_WIRE_IDSCAN) + switch(wire) + if(WIRE_IDSCAN) A.locked = !A.locked - // to_chat(world, "Idscan wire pulsed") - if (AALARM_WIRE_POWER) - // to_chat(world, "Power wire pulsed") - if(A.shorted == 0) - A.shorted = 1 + if(WIRE_MAIN_POWER1) + if(!A.shorted) + A.shorted = TRUE A.update_icon() spawn(12000) - if(A.shorted == 1) - A.shorted = 0 + if(A.shorted) + A.shorted = FALSE A.update_icon() - - if (AALARM_WIRE_AI_CONTROL) - // to_chat(world, "AI Control wire pulsed") - if (A.aidisabled == 0) - A.aidisabled = 1 + if(WIRE_AI_CONTROL) + if(!A.aidisabled) + A.aidisabled = TRUE A.updateDialog() spawn(100) - if (A.aidisabled == 1) - A.aidisabled = 0 + if(A.aidisabled) + A.aidisabled = FALSE - if(AALARM_WIRE_SYPHON) - // to_chat(world, "Syphon wire pulsed") - if(A.mode == 1) // AALARM_MODE_SCRUB - A.mode = 3 // AALARM_MODE_PANIC + if(WIRE_SYPHON) + if(A.mode == 1) // MODE_SCRUB + A.mode = 3 // MODE_PANIC else - A.mode = 1 // AALARM_MODE_SCRUB + A.mode = 1 // MODE_SCRUB A.apply_mode() - if(AALARM_WIRE_AALARM) - // to_chat(world, "Aalarm wire pulsed") - if (A.alarm_area.atmosalert(0, A)) + if(WIRE_AALARM) + if(A.alarm_area.atmosalert(0, A)) A.post_alert(0) A.update_icon() diff --git a/code/datums/wires/apc.dm b/code/datums/wires/apc.dm index 5bb5831d3ed..f4c71b87e84 100644 --- a/code/datums/wires/apc.dm +++ b/code/datums/wires/apc.dm @@ -1,74 +1,66 @@ /datum/wires/apc holder_type = /obj/machinery/power/apc wire_count = 4 + proper_name = "APC" -#define APC_WIRE_IDSCAN 1 -#define APC_WIRE_MAIN_POWER1 2 -#define APC_WIRE_MAIN_POWER2 4 -#define APC_WIRE_AI_CONTROL 8 +/datum/wires/apc/New(atom/_holder) + wires = list(WIRE_IDSCAN, WIRE_MAIN_POWER1, WIRE_MAIN_POWER2, WIRE_AI_CONTROL) + return ..() -/datum/wires/apc/GetInteractWindow() +/datum/wires/apc/get_status() + . = ..() var/obj/machinery/power/apc/A = holder - . += ..() - . += text("
\n[(A.locked ? "The APC is locked." : "The APC is unlocked.")]
\n[(A.shorted ? "The APCs power has been shorted." : "The APC is working properly!")]
\n[(A.aidisabled ? "The 'AI control allowed' light is off." : "The 'AI control allowed' light is on.")]") + . += "The APC is [A.locked ? "" : "un"]locked." + . += A.shorted ? "The APCs power has been shorted." : "The APC is working properly!" + . += "The 'AI control allowed' light is [A.aidisabled ? "off" : "on"]." - -/datum/wires/apc/CanUse(var/mob/living/L) +/datum/wires/apc/interactable(mob/user) var/obj/machinery/power/apc/A = holder if(A.wiresexposed) - return 1 - return 0 - -/datum/wires/apc/UpdatePulsed(var/index) + return TRUE + return FALSE +/datum/wires/apc/on_pulse(wire) var/obj/machinery/power/apc/A = holder - switch(index) - - if(APC_WIRE_IDSCAN) - A.locked = 0 + switch(wire) + if(WIRE_IDSCAN) + A.locked = FALSE spawn(300) if(A) - A.locked = 1 + A.locked = TRUE - if (APC_WIRE_MAIN_POWER1, APC_WIRE_MAIN_POWER2) - if(A.shorted == 0) - A.shorted = 1 + if(WIRE_MAIN_POWER1, WIRE_MAIN_POWER2) + if(!A.shorted) + A.shorted = TRUE spawn(1200) - if(A && !IsIndexCut(APC_WIRE_MAIN_POWER1) && !IsIndexCut(APC_WIRE_MAIN_POWER2)) - A.shorted = 0 + if(A && !is_cut(WIRE_MAIN_POWER1) && !is_cut(WIRE_MAIN_POWER2)) + A.shorted = FALSE - if (APC_WIRE_AI_CONTROL) - if (A.aidisabled == 0) - A.aidisabled = 1 + if(WIRE_AI_CONTROL) + if(!A.aidisabled) + A.aidisabled = TRUE spawn(10) - if(A && !IsIndexCut(APC_WIRE_AI_CONTROL)) - A.aidisabled = 0 + if(A && !is_cut(WIRE_AI_CONTROL)) + A.aidisabled = FALSE -/datum/wires/apc/UpdateCut(var/index, var/mended) +/datum/wires/apc/on_cut(wire, mend) var/obj/machinery/power/apc/A = holder - switch(index) - if(APC_WIRE_MAIN_POWER1, APC_WIRE_MAIN_POWER2) - - if(!mended) - if(istype(usr, /mob/living)) + switch(wire) + if(WIRE_MAIN_POWER1, WIRE_MAIN_POWER2) + if(!mend) + if(isliving(usr)) A.shock(usr, 50) - A.shorted = 1 + A.shorted = TRUE - else if(!IsIndexCut(APC_WIRE_MAIN_POWER1) && !IsIndexCut(APC_WIRE_MAIN_POWER2)) - A.shorted = 0 - if(istype(usr, /mob/living)) + else if(!is_cut(WIRE_MAIN_POWER1) && !is_cut(WIRE_MAIN_POWER2)) + A.shorted = FALSE + if(isliving(usr)) A.shock(usr, 50) - if(APC_WIRE_AI_CONTROL) - - if(!mended) - if (A.aidisabled == 0) - A.aidisabled = 1 - else - if (A.aidisabled == 1) - A.aidisabled = 0 + if(WIRE_AI_CONTROL) + A.aidisabled = !mend diff --git a/code/datums/wires/autolathe.dm b/code/datums/wires/autolathe.dm index a703bfc0785..0de661bbf82 100644 --- a/code/datums/wires/autolathe.dm +++ b/code/datums/wires/autolathe.dm @@ -1,61 +1,54 @@ /datum/wires/autolathe - holder_type = /obj/machinery/autolathe wire_count = 6 + proper_name = "Autolathe" -var/const/AUTOLATHE_HACK_WIRE = 1 -var/const/AUTOLATHE_SHOCK_WIRE = 2 -var/const/AUTOLATHE_DISABLE_WIRE = 4 +/datum/wires/autolathe/New(atom/_holder) + wires = list(WIRE_AUTOLATHE_HACK, WIRE_ELECTRIFY, WIRE_AUTOLATHE_DISABLE) + return ..() -/datum/wires/autolathe/GetInteractWindow() +/datum/wires/autolathe/get_status() + . = ..() var/obj/machinery/autolathe/A = holder - . += ..() - . += "
The red light is [A.disabled ? "off" : "on"]." - . += "
The green light is [A.shocked ? "off" : "on"]." - . += "
The blue light is [A.hacked ? "off" : "on"].
" + . += "The red light is [A.disabled ? "off" : "on"]." + . += "The green light is [A.shocked ? "off" : "on"]." + . += "The blue light is [A.hacked ? "off" : "on"]." -/datum/wires/autolathe/CanUse() +/datum/wires/autolathe/interactable(mob/user) var/obj/machinery/autolathe/A = holder if(A.panel_open) - return 1 - return 0 + return TRUE + return FALSE -/* -/datum/wires/autolathe/Interact(var/mob/living/user) - if(CanUse(user)) - var/obj/machinery/autolathe/V = holder - V.attack_hand(user) -*/ -/datum/wires/autolathe/UpdateCut(index, mended) +/datum/wires/autolathe/on_cut(wire, mend) var/obj/machinery/autolathe/A = holder - switch(index) - if(AUTOLATHE_HACK_WIRE) - A.hacked = !mended - if(AUTOLATHE_SHOCK_WIRE) - A.shocked = !mended - if(AUTOLATHE_DISABLE_WIRE) - A.disabled = !mended + switch(wire) + if(WIRE_AUTOLATHE_HACK) + A.hacked = !mend + if(WIRE_ELECTRIFY) + A.shocked = !mend + if(WIRE_AUTOLATHE_DISABLE) + A.disabled = !mend + ..() -/datum/wires/autolathe/UpdatePulsed(index) - if(IsIndexCut(index)) +/datum/wires/autolathe/on_pulse(wire) + if(is_cut(wire)) return var/obj/machinery/autolathe/A = holder - switch(index) - if(AUTOLATHE_HACK_WIRE) + switch(wire) + if(WIRE_AUTOLATHE_HACK) A.hacked = !A.hacked spawn(50) - if(A && !IsIndexCut(index)) + if(A && !is_cut(wire)) A.hacked = 0 - Interact(usr) - if(AUTOLATHE_SHOCK_WIRE) + if(WIRE_ELECTRIFY) A.shocked = !A.shocked spawn(50) - if(A && !IsIndexCut(index)) + if(A && !is_cut(wire)) A.shocked = 0 - Interact(usr) - if(AUTOLATHE_DISABLE_WIRE) + if(WIRE_AUTOLATHE_DISABLE) A.disabled = !A.disabled spawn(50) - if(A && !IsIndexCut(index)) + if(A && !is_cut(wire)) A.disabled = 0 - Interact(usr) + ..() diff --git a/code/datums/wires/breaker.dm b/code/datums/wires/breaker.dm index 90d059466ce..dfb79a7d124 100644 --- a/code/datums/wires/breaker.dm +++ b/code/datums/wires/breaker.dm @@ -1,27 +1,30 @@ /datum/wires/breakerbox - wire_count = 2 holder_type = /obj/machinery/power/breakerbox + wire_count = 2 + proper_name = "Breaker box" -var/const/WIRE_TOGGLE = 1 -var/const/WIRE_LOCK = 2 +/datum/wires/breakerbox/New(atom/_holder) + wires = list(WIRE_POWER, WIRE_IDSCAN) + return ..() -/datum/wires/breakerbox/UpdatePulsed(var/index) - switch(index) - if(WIRE_TOGGLE) - var/obj/machinery/power/breakerbox/B= holder - var/on = B.on - B.set_state(!on) - -/datum/wires/breakerbox/UpdateCut(var/index, var/mended) - var/obj/machinery/power/breakerbox/B = holder - switch(index) - if(WIRE_LOCK) - if(!mended) - B.update_locked = TRUE - else - B.update_locked = FALSE -/datum/wires/breakerbox/CanUse(var/mob/living/L) +/datum/wires/breakerbox/interactable(mob/user) var/obj/machinery/power/breakerbox/B = holder if(B.panel_open) return TRUE return FALSE + +/datum/wires/breakerbox/on_pulse(wire) + switch(wire) + if(WIRE_POWER) + var/obj/machinery/power/breakerbox/B= holder + var/on = B.on + B.set_state(!on) + +/datum/wires/breakerbox/on_cut(wire, mend) + var/obj/machinery/power/breakerbox/B = holder + switch(wire) + if(WIRE_IDSCAN) + if(!mend) + B.update_locked = TRUE + else + B.update_locked = FALSE diff --git a/code/datums/wires/camera.dm b/code/datums/wires/camera.dm index 4beeb384033..5ce48320b28 100644 --- a/code/datums/wires/camera.dm +++ b/code/datums/wires/camera.dm @@ -1,71 +1,62 @@ -// Wires for cameras. - /datum/wires/camera - random = 1 + randomize = TRUE holder_type = /obj/machinery/camera wire_count = 6 + proper_name = "Camera" -/datum/wires/camera/GetInteractWindow() +/datum/wires/camera/New(atom/_holder) + wires = list(WIRE_FOCUS, WIRE_MAIN_POWER1, WIRE_CAM_LIGHT, WIRE_CAM_ALARM) + return ..() +/datum/wires/camera/get_status() . = ..() var/obj/machinery/camera/C = holder - . += "
\n[(C.view_range == initial(C.view_range) ? "The focus light is on." : "The focus light is off.")]" - . += "
\n[(C.can_use() ? "The power link light is on." : "The power link light is off.")]" - . += "
\n[(C.light_disabled ? "The camera light is off." : "The camera light is on.")]" - . += "
\n[(C.alarm_on ? "The alarm light is on." : "The alarm light is off.")]" - return . + . += "The focus light is [(C.view_range == initial(C.view_range)) ? "on" : "off"]." + . += "The power link light is [C.can_use() ? "on" : "off"]." + . += "The camera light is [C.light_disabled ? "off" : "on"]." + . += "The alarm light is [C.alarm_on ? "on" : "off"]." -/datum/wires/camera/CanUse(var/mob/living/L) +/datum/wires/camera/interactable(mob/user) var/obj/machinery/camera/C = holder return C.panel_open -var/const/CAMERA_WIRE_FOCUS = 1 -var/const/CAMERA_WIRE_POWER = 2 -var/const/CAMERA_WIRE_LIGHT = 4 -var/const/CAMERA_WIRE_ALARM = 8 -var/const/CAMERA_WIRE_NOTHING1 = 16 -var/const/CAMERA_WIRE_NOTHING2 = 32 - -/datum/wires/camera/UpdateCut(var/index, var/mended) +/datum/wires/camera/on_cut(wire, mend) var/obj/machinery/camera/C = holder - switch(index) - if(CAMERA_WIRE_FOCUS) - var/range = (mended ? initial(C.view_range) : C.short_range) + switch(wire) + if(WIRE_FOCUS) + var/range = (mend ? initial(C.view_range) : C.short_range) C.setViewRange(range) - if(CAMERA_WIRE_POWER) - if(C.status && !mended || !C.status && mended) + if(WIRE_MAIN_POWER1) + if(C.status && !mend || !C.status && mend) C.deactivate(usr, 1) - if(CAMERA_WIRE_LIGHT) - C.light_disabled = !mended + if(WIRE_CAM_LIGHT) + C.light_disabled = !mend - if(CAMERA_WIRE_ALARM) - if(!mended) + if(WIRE_CAM_ALARM) + if(!mend) C.triggerCameraAlarm() else C.cancelCameraAlarm() - return + ..() -/datum/wires/camera/UpdatePulsed(var/index) +/datum/wires/camera/on_pulse(wire) var/obj/machinery/camera/C = holder - if(IsIndexCut(index)) + if(is_cut(wire)) return - switch(index) - if(CAMERA_WIRE_FOCUS) + switch(wire) + if(WIRE_FOCUS) var/new_range = (C.view_range == initial(C.view_range) ? C.short_range : initial(C.view_range)) C.setViewRange(new_range) - if(CAMERA_WIRE_LIGHT) + if(WIRE_CAM_LIGHT) C.light_disabled = !C.light_disabled - if(CAMERA_WIRE_ALARM) + if(WIRE_CAM_ALARM) C.visible_message("[icon2html(thing = C, target = world)] *beep*", "[icon2html(thing = C, target = world)] *beep*") - return + ..() /datum/wires/camera/proc/CanDeconstruct() - if(IsIndexCut(CAMERA_WIRE_POWER) && IsIndexCut(CAMERA_WIRE_FOCUS) && IsIndexCut(CAMERA_WIRE_LIGHT) && IsIndexCut(CAMERA_WIRE_NOTHING1) && IsIndexCut(CAMERA_WIRE_NOTHING2)) - return 1 - else - return 0 + return is_all_cut() diff --git a/code/datums/wires/coinbank.dm b/code/datums/wires/coinbank.dm index 503638b2dd0..4e24b1b5328 100644 --- a/code/datums/wires/coinbank.dm +++ b/code/datums/wires/coinbank.dm @@ -1,37 +1,39 @@ /datum/wires/coinbank holder_type = /obj/machinery/coinbank wire_count = 3 + proper_name = "Coin Bank" -var/const/COINBANK_WIRE_ELECTRIFY = 1 -var/const/COINBANK_WIRE_THROW = 2 +/datum/wires/coinbank/New(atom/_holder) + wires = list(WIRE_ELECTRIFY, WIRE_THROW_ITEM) + return ..() -/datum/wires/coinbank/CanUse(var/mob/living/L) +/datum/wires/coinbank/interactable(mob/user) var/obj/machinery/coinbank/C = holder if(C.panel_open) - return 1 - return 0 + return TRUE + return FALSE -/datum/wires/coinbank/GetInteractWindow() +/datum/wires/coinbank/get_status() var/obj/machinery/coinbank/C = holder - . += ..() - . += "
The orange light is [C.seconds_electrified ? "off" : "on"].
" - . += "The red light is [C.shoot_inventory ? "off" : "blinking"].
" + . = ..() + . += "The orange light is [C.seconds_electrified ? "off" : "on"]." + . += "The red light is [C.shoot_inventory ? "off" : "blinking"]." -/datum/wires/coinbank/UpdatePulsed(var/index) +/datum/wires/coinbank/on_pulse(wire) var/obj/machinery/coinbank/C = holder - switch(index) - if(SMARTFRIDGE_WIRE_THROW) + switch(wire) + if(WIRE_THROW_ITEM) C.shoot_inventory = !C.shoot_inventory - if(SMARTFRIDGE_WIRE_ELECTRIFY) + if(WIRE_ELECTRIFY) C.seconds_electrified = 30 -/datum/wires/coinbank/UpdateCut(var/index, var/mended) +/datum/wires/coinbank/on_cut(wire, mend) var/obj/machinery/coinbank/C = holder - switch(index) - if(COINBANK_WIRE_THROW) - C.shoot_inventory = !mended - if(COINBANK_WIRE_ELECTRIFY) - if(mended) + switch(wire) + if(WIRE_THROW_ITEM) + C.shoot_inventory = !mend + if(WIRE_ELECTRIFY) + if(mend) C.seconds_electrified = 0 else C.seconds_electrified = -1 diff --git a/code/datums/wires/explosive.dm b/code/datums/wires/explosive.dm index 97e2c8dd6f4..8267f05fcf6 100644 --- a/code/datums/wires/explosive.dm +++ b/code/datums/wires/explosive.dm @@ -1,30 +1,33 @@ /datum/wires/explosive wire_count = 1 + proper_name = "Explosive wires" -var/const/WIRE_EXPLODE = 1 +/datum/wires/explosive/New(atom/_holder) + wires = list(WIRE_EXPLODE) + return ..() /datum/wires/explosive/proc/explode() return -/datum/wires/explosive/UpdatePulsed(var/index) - switch(index) +/datum/wires/explosive/on_pulse(wire) + switch(wire) if(WIRE_EXPLODE) explode() -/datum/wires/explosive/UpdateCut(var/index, var/mended) - switch(index) +/datum/wires/explosive/on_cut(wire, mend) + switch(wire) if(WIRE_EXPLODE) - if(!mended) + if(!mend) explode() /datum/wires/explosive/c4 holder_type = /obj/item/plastique -/datum/wires/explosive/c4/CanUse(var/mob/living/L) +/datum/wires/explosive/c4/interactable(mob/user) var/obj/item/plastique/P = holder if(P.open_panel) - return 1 - return 0 + return TRUE + return FALSE /datum/wires/explosive/c4/explode() var/obj/item/plastique/P = holder diff --git a/code/datums/wires/grid_checker.dm b/code/datums/wires/grid_checker.dm index 4143476e699..af31fec8ac2 100644 --- a/code/datums/wires/grid_checker.dm +++ b/code/datums/wires/grid_checker.dm @@ -1,66 +1,64 @@ /datum/wires/grid_checker holder_type = /obj/machinery/power/grid_checker wire_count = 8 + proper_name = "Grid Checker" -var/const/GRID_CHECKER_WIRE_REBOOT = 1 // This wire causes the grid-check to end, if pulsed. -var/const/GRID_CHECKER_WIRE_LOCKOUT = 2 // If cut or pulsed, locks the user out for half a minute. -var/const/GRID_CHECKER_WIRE_ALLOW_MANUAL_1 = 4 // Needs to be cut for REBOOT to be possible. -var/const/GRID_CHECKER_WIRE_ALLOW_MANUAL_2 = 8 // Needs to be cut for REBOOT to be possible. -var/const/GRID_CHECKER_WIRE_ALLOW_MANUAL_3 = 16 // Needs to be cut for REBOOT to be possible. -var/const/GRID_CHECKER_WIRE_SHOCK = 32 // Shocks the user if not wearing gloves. -var/const/GRID_CHECKER_WIRE_NOTHING_1 = 64 // Does nothing, but makes it a bit harder. -var/const/GRID_CHECKER_WIRE_NOTHING_2 = 128 // Does nothing, but makes it a bit harder. +/datum/wires/grid_checker/New(atom/_holder) + wires = list( + WIRE_REBOOT, WIRE_LOCKOUT, WIRE_ALLOW_MANUAL1, + WIRE_ALLOW_MANUAL2, WIRE_ALLOW_MANUAL3, WIRE_ELECTRIFY + ) + return ..() - -/datum/wires/grid_checker/CanUse(var/mob/living/L) +/datum/wires/grid_checker/interactable(mob/user) var/obj/machinery/power/grid_checker/G = holder if(G.opened) return TRUE return FALSE - -/datum/wires/grid_checker/GetInteractWindow() +/datum/wires/grid_checker/get_status() var/obj/machinery/power/grid_checker/G = holder - . += ..() - . += "The green light is [G.power_failing ? "off" : "on"].
" - . += "The red light is [G.wire_locked_out ? "on" : "off"].
" - . += "The blue light is [G.wire_allow_manual_1 && G.wire_allow_manual_2 && G.wire_allow_manual_3 ? "on" : "off"]." + . = ..() + . += "The green light is [G.power_failing ? "off." : "on."]" + . += "The red light is [G.wire_locked_out ? "on." : "off."]" + . += "The blue light is [(G.wire_allow_manual_1 && G.wire_allow_manual_2 && G.wire_allow_manual_3) ? "on." : "off."]" - -/datum/wires/grid_checker/UpdateCut(var/index, var/mended) +/datum/wires/grid_checker/on_cut(wire, mend) var/obj/machinery/power/grid_checker/G = holder - switch(index) - if(GRID_CHECKER_WIRE_LOCKOUT) - G.wire_locked_out = !mended - if(GRID_CHECKER_WIRE_ALLOW_MANUAL_1) - G.wire_allow_manual_1 = !mended - if(GRID_CHECKER_WIRE_ALLOW_MANUAL_2) - G.wire_allow_manual_2 = !mended - if(GRID_CHECKER_WIRE_ALLOW_MANUAL_3) - G.wire_allow_manual_3 = !mended - if(GRID_CHECKER_WIRE_SHOCK) + switch(wire) + if(WIRE_LOCKOUT) + G.wire_locked_out = !mend + if(WIRE_ALLOW_MANUAL1) + G.wire_allow_manual_1 = !mend + if(WIRE_ALLOW_MANUAL2) + G.wire_allow_manual_2 = !mend + if(WIRE_ALLOW_MANUAL3) + G.wire_allow_manual_3 = !mend + if(WIRE_ELECTRIFY) if(G.wire_locked_out) return G.shock(usr, 70) + ..() - -/datum/wires/grid_checker/UpdatePulsed(var/index) +/datum/wires/grid_checker/on_pulse(wire) var/obj/machinery/power/grid_checker/G = holder - switch(index) - if(GRID_CHECKER_WIRE_REBOOT) + switch(wire) + if(WIRE_REBOOT) if(G.wire_locked_out) return - if(G.power_failing && G.wire_allow_manual_1 && G.wire_allow_manual_2 && G.wire_allow_manual_3) G.end_power_failure(TRUE) - if(GRID_CHECKER_WIRE_LOCKOUT) + + if(WIRE_LOCKOUT) if(G.wire_locked_out) return G.wire_locked_out = TRUE spawn(30 SECONDS) G.wire_locked_out = FALSE - if(GRID_CHECKER_WIRE_SHOCK) + + if(WIRE_ELECTRIFY) if(G.wire_locked_out) return G.shock(usr, 70) + ..() diff --git a/code/datums/wires/jukebox.dm b/code/datums/wires/jukebox.dm index e8541abebdb..bbc176bb7ea 100644 --- a/code/datums/wires/jukebox.dm +++ b/code/datums/wires/jukebox.dm @@ -1,42 +1,39 @@ /datum/wires/jukebox - random = 1 + randomize = TRUE holder_type = /obj/machinery/media/jukebox wire_count = 11 + proper_name = "Jukebox" -var/const/WIRE_POWER = 1 -var/const/WIRE_HACK = 2 -var/const/WIRE_SPEEDUP = 4 -var/const/WIRE_SPEEDDOWN = 8 -var/const/WIRE_REVERSE = 16 -var/const/WIRE_NOTHING1 = 32 -var/const/WIRE_NOTHING2 = 64 -var/const/WIRE_START = 128 -var/const/WIRE_STOP = 256 -var/const/WIRE_PREV = 512 -var/const/WIRE_NEXT = 1024 +/datum/wires/jukebox/New(atom/_holder) + wires = list( + WIRE_MAIN_POWER1, WIRE_JUKEBOX_HACK, + WIRE_SPEEDUP, WIRE_SPEEDDOWN, WIRE_REVERSE, + WIRE_START, WIRE_STOP, WIRE_PREV, WIRE_NEXT + ) + return ..() -/datum/wires/jukebox/CanUse(var/mob/living/L) +/datum/wires/jukebox/interactable(mob/user) var/obj/machinery/media/jukebox/A = holder if(A.panel_open) - return 1 - return 0 + return TRUE + return FALSE // Show the status of lights as a hint to the current state -/datum/wires/jukebox/GetInteractWindow() +/datum/wires/jukebox/get_status() var/obj/machinery/media/jukebox/A = holder - . += ..() - . += "
The power light is [(A.stat & (BROKEN|NOPOWER)) ? "off" : "on"].
" - . += "The parental guidance light is [A.hacked ? "off" : "on"].
" - . += "The data light is [IsIndexCut(WIRE_REVERSE) ? "hauntingly dark" : "glowing sloftly"].
" + . = ..() + . += "The power light is [A.stat & (BROKEN|NOPOWER) ? "off." : "on."]" + . += "The parental guidance light is [A.hacked ? "off." : "on."]" + . += "The data light is [is_cut(WIRE_REVERSE) ? "hauntingly dark." : "glowing softly."]" // Give a hint as to what each wire does -/datum/wires/jukebox/UpdatePulsed(var/index) +/datum/wires/jukebox/on_pulse(wire) var/obj/machinery/media/jukebox/A = holder - switch(index) - if(WIRE_POWER) + switch(wire) + if(WIRE_MAIN_POWER1) holder.visible_message("[icon2html(thing = holder, target = world)] The power light flickers.") A.shock(usr, 90) - if(WIRE_HACK) + if(WIRE_JUKEBOX_HACK) holder.visible_message("[icon2html(thing = holder, target = world)] The parental guidance light flickers.") if(WIRE_REVERSE) holder.visible_message("[icon2html(thing = holder, target = world)] The data light blinks ominously.") @@ -55,24 +52,21 @@ var/const/WIRE_NEXT = 1024 else A.shock(usr, 10) // The nothing wires give a chance to shock just for fun -/datum/wires/jukebox/UpdateCut(var/index, var/mended) +/datum/wires/jukebox/on_cut(wire, mend) var/obj/machinery/media/jukebox/A = holder - switch(index) - if(WIRE_POWER) + switch(wire) + if(WIRE_MAIN_POWER1) // TODO - Actually make machine electrified or something. A.shock(usr, 90) - if(WIRE_HACK) - if(mended) - A.set_hacked(0) - else - A.set_hacked(1) + if(WIRE_JUKEBOX_HACK) + A.set_hacked(!mend) if(WIRE_SPEEDUP, WIRE_SPEEDDOWN, WIRE_REVERSE) - var/newfreq = IsIndexCut(WIRE_REVERSE) ? -1 : 1; - if (IsIndexCut(WIRE_SPEEDUP)) + var/newfreq = is_cut(WIRE_REVERSE) ? -1 : 1; + if(is_cut(WIRE_SPEEDUP)) newfreq *= 2 - if (IsIndexCut(WIRE_SPEEDDOWN)) + if(is_cut(WIRE_SPEEDDOWN)) newfreq *= 0.5 A.freq = newfreq diff --git a/code/datums/wires/mines.dm b/code/datums/wires/mines.dm index efc67292752..0bc1fbbb1cf 100644 --- a/code/datums/wires/mines.dm +++ b/code/datums/wires/mines.dm @@ -1,32 +1,29 @@ /datum/wires/mines + randomize = TRUE wire_count = 6 - random = 1 holder_type = /obj/effect/mine + proper_name = "Explosive Wires" -#define WIRE_DETONATE 1 -#define WIRE_TIMED_DET 2 -#define WIRE_DISARM 4 -#define WIRE_DUMMY_1 8 -#define WIRE_DUMMY_2 16 -#define WIRE_BADDISARM 32 +/datum/wires/mines/New(atom/_holder) + wires = list(WIRE_EXPLODE, WIRE_EXPLODE_DELAY, WIRE_DISARM, WIRE_BADDISARM) + return ..() -/datum/wires/mines/GetInteractWindow() +/datum/wires/mines/get_status() . = ..() - . += "
\n["Warning: detonation may occur even with proper equipment."]" - return . + . += "\[Warning: detonation may occur even with proper equipment.]" /datum/wires/mines/proc/explode() return -/datum/wires/mines/UpdateCut(var/index, var/mended) +/datum/wires/mines/on_cut(wire, mend) var/obj/effect/mine/C = holder - switch(index) - if(WIRE_DETONATE) + switch(wire) + if(WIRE_EXPLODE) C.visible_message("[icon2html(thing = C, target = world)] *BEEE-*", "[icon2html(thing = C, target = world)] *BEEE-*") C.explode() - if(WIRE_TIMED_DET) + if(WIRE_EXPLODE_DELAY) C.visible_message("[icon2html(thing = C, target = world)] *BEEE-*", "[icon2html(thing = C, target = world)] *BEEE-*") C.explode() @@ -35,30 +32,22 @@ new C.mineitemtype(get_turf(C)) spawn(0) qdel(C) - return - - if(WIRE_DUMMY_1) - return - - - if(WIRE_DUMMY_2) - return if(WIRE_BADDISARM) C.visible_message("[icon2html(thing = C, target = world)] *BEEPBEEPBEEP*", "[icon2html(thing = C, target = world)] *BEEPBEEPBEEP*") spawn(20) C.explode() - return + ..() -/datum/wires/mines/UpdatePulsed(var/index) +/datum/wires/mines/on_pulse(wire) var/obj/effect/mine/C = holder - if(IsIndexCut(index)) + if(is_cut(wire)) return - switch(index) - if(WIRE_DETONATE) + switch(wire) + if(WIRE_EXPLODE) C.visible_message("[icon2html(thing = C, target = world)] *beep*", "[icon2html(thing = C, target = world)] *beep*") - if(WIRE_TIMED_DET) + if(WIRE_EXPLODE_DELAY) C.visible_message("[icon2html(thing = C, target = world)] *BEEPBEEPBEEP*", "[icon2html(thing = C, target = world)] *BEEPBEEPBEEP*") spawn(20) C.explode() @@ -66,16 +55,10 @@ if(WIRE_DISARM) C.visible_message("[icon2html(thing = C, target = world)] *ping*", "[icon2html(thing = C, target = world)] *ping*") - if(WIRE_DUMMY_1) - C.visible_message("[icon2html(thing = C, target = world)] *ping*", "[icon2html(thing = C, target = world)] *ping*") - - if(WIRE_DUMMY_2) - C.visible_message("[icon2html(thing = C, target = world)] *beep*", "[icon2html(thing = C, target = world)] *beep*") - if(WIRE_BADDISARM) C.visible_message("[icon2html(thing = C, target = world)] *ping*", "[icon2html(thing = C, target = world)] *ping*") - return + ..() -/datum/wires/mines/CanUse(var/mob/living/L) +/datum/wires/mines/interactable(mob/user) var/obj/effect/mine/M = holder return M.panel_open diff --git a/code/datums/wires/particle_accelerator.dm b/code/datums/wires/particle_accelerator.dm index 15ff67b7a49..e71da1a79ca 100644 --- a/code/datums/wires/particle_accelerator.dm +++ b/code/datums/wires/particle_accelerator.dm @@ -1,52 +1,48 @@ /datum/wires/particle_acc/control_box wire_count = 5 holder_type = /obj/machinery/particle_accelerator/control_box + proper_name = "Particle accelerator control" -var/const/PARTICLE_TOGGLE_WIRE = 1 // Toggles whether the PA is on or not. -var/const/PARTICLE_STRENGTH_WIRE = 2 // Determines the strength of the PA. -var/const/PARTICLE_INTERFACE_WIRE = 4 // Determines the interface showing up. -var/const/PARTICLE_LIMIT_POWER_WIRE = 8 // Determines how strong the PA can be. -//var/const/PARTICLE_NOTHING_WIRE = 16 // Blank wire +/datum/wires/particle_acc/control_box/New(atom/_holder) + wires = list(WIRE_PARTICLE_POWER, WIRE_PARTICLE_STRENGTH, WIRE_PARTICLE_INTERFACE, WIRE_PARTICLE_POWER_LIMIT) + return ..() -/datum/wires/particle_acc/control_box/CanUse(var/mob/living/L) +/datum/wires/particle_acc/control_box/interactable(mob/user) var/obj/machinery/particle_accelerator/control_box/C = holder if(C.construction_state == 2) - return 1 - return 0 + return TRUE + return FALSE -/datum/wires/particle_acc/control_box/UpdatePulsed(var/index) +/datum/wires/particle_acc/control_box/on_pulse(wire) var/obj/machinery/particle_accelerator/control_box/C = holder - switch(index) - - if(PARTICLE_TOGGLE_WIRE) + switch(wire) + if(WIRE_PARTICLE_POWER) C.toggle_power() - if(PARTICLE_STRENGTH_WIRE) + if(WIRE_PARTICLE_STRENGTH) C.add_strength() - if(PARTICLE_INTERFACE_WIRE) + if(WIRE_PARTICLE_INTERFACE) C.interface_control = !C.interface_control - if(PARTICLE_LIMIT_POWER_WIRE) + if(WIRE_PARTICLE_POWER_LIMIT) C.visible_message("[icon2html(thing = C, target = world)][C] makes a large whirring noise.") -/datum/wires/particle_acc/control_box/UpdateCut(var/index, var/mended) +/datum/wires/particle_acc/control_box/on_cut(wire, mend) var/obj/machinery/particle_accelerator/control_box/C = holder - switch(index) - - if(PARTICLE_TOGGLE_WIRE) - if(C.active == !mended) + switch(wire) + if(WIRE_PARTICLE_POWER) + if(C.active == !mend) C.toggle_power() - if(PARTICLE_STRENGTH_WIRE) - + if(WIRE_PARTICLE_STRENGTH) for(var/i = 1; i < 3; i++) C.remove_strength() - if(PARTICLE_INTERFACE_WIRE) - C.interface_control = mended + if(WIRE_PARTICLE_INTERFACE) + C.interface_control = mend - if(PARTICLE_LIMIT_POWER_WIRE) - C.strength_upper_limit = (mended ? 2 : 3) + if(WIRE_PARTICLE_POWER_LIMIT) + C.strength_upper_limit = (mend ? 2 : 3) if(C.strength_upper_limit < C.strength) C.remove_strength() diff --git a/code/datums/wires/radio.dm b/code/datums/wires/radio.dm index b86897a93ee..892058c612d 100644 --- a/code/datums/wires/radio.dm +++ b/code/datums/wires/radio.dm @@ -1,41 +1,42 @@ /datum/wires/radio - holder_type = /obj/item/radio wire_count = 3 + holder_type = /obj/item/radio + proper_name = "Radio" -var/const/WIRE_SIGNAL = 1 -var/const/WIRE_RECEIVE = 2 -var/const/WIRE_TRANSMIT = 4 +/datum/wires/radio/New(atom/_holder) + wires = list(WIRE_RADIO_SIGNAL, WIRE_RADIO_RECEIVER, WIRE_RADIO_TRANSMIT) + return ..() -/datum/wires/radio/CanUse(var/mob/living/L) +/datum/wires/radio/interactable(mob/user) var/obj/item/radio/R = holder if(R.b_stat) - return 1 - return 0 + return TRUE + return FALSE -/datum/wires/radio/UpdatePulsed(var/index) +/datum/wires/radio/on_pulse(wire) var/obj/item/radio/R = holder - switch(index) - if(WIRE_SIGNAL) - R.listening = !R.listening && !IsIndexCut(WIRE_RECEIVE) - R.broadcasting = R.listening && !IsIndexCut(WIRE_TRANSMIT) + switch(wire) + if(WIRE_RADIO_SIGNAL) + R.listening = !R.listening && !is_cut(WIRE_RADIO_RECEIVER) + R.broadcasting = R.listening && !is_cut(WIRE_RADIO_TRANSMIT) - if(WIRE_RECEIVE) - R.listening = !R.listening && !IsIndexCut(WIRE_SIGNAL) + if(WIRE_RADIO_RECEIVER) + R.listening = !R.listening && !is_cut(WIRE_RADIO_SIGNAL) - if(WIRE_TRANSMIT) - R.broadcasting = !R.broadcasting && !IsIndexCut(WIRE_SIGNAL) - SSnanoui.update_uis(holder) + if(WIRE_RADIO_TRANSMIT) + R.broadcasting = !R.broadcasting && !is_cut(WIRE_RADIO_SIGNAL) + ..() -/datum/wires/radio/UpdateCut(var/index, var/mended) +/datum/wires/radio/on_cut(wire, mend) var/obj/item/radio/R = holder - switch(index) - if(WIRE_SIGNAL) - R.listening = mended && !IsIndexCut(WIRE_RECEIVE) - R.broadcasting = mended && !IsIndexCut(WIRE_TRANSMIT) + switch(wire) + if(WIRE_RADIO_SIGNAL) + R.listening = mend && !is_cut(WIRE_RADIO_RECEIVER) + R.broadcasting = mend && !is_cut(WIRE_RADIO_TRANSMIT) - if(WIRE_RECEIVE) - R.listening = mended && !IsIndexCut(WIRE_SIGNAL) + if(WIRE_RADIO_RECEIVER) + R.listening = mend && !is_cut(WIRE_RADIO_SIGNAL) - if(WIRE_TRANSMIT) - R.broadcasting = mended && !IsIndexCut(WIRE_SIGNAL) - SSnanoui.update_uis(holder) + if(WIRE_RADIO_TRANSMIT) + R.broadcasting = mend && !is_cut(WIRE_RADIO_SIGNAL) + ..() diff --git a/code/datums/wires/robot.dm b/code/datums/wires/robot.dm index 9d2fce9ac38..85ac73a4afe 100644 --- a/code/datums/wires/robot.dm +++ b/code/datums/wires/robot.dm @@ -1,77 +1,63 @@ /datum/wires/robot - random = 1 - holder_type = /mob/living/silicon/robot + randomize = TRUE wire_count = 5 + holder_type = /mob/living/silicon/robot + proper_name = "Cyborg" -var/const/BORG_WIRE_LAWCHECK = 1 -var/const/BORG_WIRE_MAIN_POWER = 2 // The power wires do nothing whyyyyyyyyyyyyy -var/const/BORG_WIRE_LOCKED_DOWN = 4 -var/const/BORG_WIRE_AI_CONTROL = 8 -var/const/BORG_WIRE_CAMERA = 16 - -/datum/wires/robot/GetInteractWindow() +/datum/wires/robot/New(atom/_holder) + wires = list(WIRE_AI_CONTROL, WIRE_BORG_CAMERA, WIRE_BORG_LAWCHECK, WIRE_BORG_LOCKED) + return ..() +/datum/wires/robot/get_status() . = ..() var/mob/living/silicon/robot/R = holder - . += text("
\n[(R.lawupdate ? "The LawSync light is on." : "The LawSync light is off.")]") - . += text("
\n[(R.connected_ai ? "The AI link light is on." : "The AI link light is off.")]") - . += text("
\n[((!isnull(R.camera) && R.camera.status == 1) ? "The Camera light is on." : "The Camera light is off.")]") - . += text("
\n[(R.lockdown ? "The lockdown light is on." : "The lockdown light is off.")]") - return . - -/datum/wires/robot/UpdateCut(var/index, var/mended) + . += "The LawSync light is [R.lawupdate ? "on" : "off"]." + . += "The AI link light is [R.connected_ai ? "on" : "off"]." + . += "The Camera light is [(R.camera && R.camera.status == 1) ? "on" : "off"]." + . += "The lockdown light is [R.lockcharge ? "on" : "off"]." +/datum/wires/robot/on_cut(wire, mend) var/mob/living/silicon/robot/R = holder - switch(index) - if(BORG_WIRE_LAWCHECK) //Cut the law wire, and the borg will no longer receive law updates from its AI - if(!mended) - if (R.lawupdate == 1) + switch(wire) + if(WIRE_BORG_LAWCHECK) //Cut the law wire, and the borg will no longer receive law updates from its AI + if(!mend) + if(R.lawupdate) to_chat(R, "LawSync protocol engaged.") + R.lawsync() R.show_laws() else - if (R.lawupdate == 0 && !R.emagged) - R.lawupdate = 1 + if(!R.lawupdate && !R.emagged) + R.lawupdate = TRUE - if (BORG_WIRE_AI_CONTROL) //Cut the AI wire to reset AI control - if(!mended) + if(WIRE_AI_CONTROL) //Cut the AI wire to reset AI control + if(!mend) R.disconnect_from_ai() - if (BORG_WIRE_CAMERA) + if(WIRE_BORG_CAMERA) if(!isnull(R.camera) && !R.scrambledcodes) - R.camera.status = mended + R.camera.status = mend - if(BORG_WIRE_LAWCHECK) //Forces a law update if the borg is set to receive them. Since an update would happen when the borg checks its laws anyway, not much use, but eh - if (R.lawupdate) - R.lawsync() + if(WIRE_BORG_LOCKED) + R.SetLockdown(!mend) + ..() - if(BORG_WIRE_LOCKED_DOWN) - R.SetLockdown(!mended) - - -/datum/wires/robot/UpdatePulsed(var/index) +/datum/wires/robot/on_pulse(wire) var/mob/living/silicon/robot/R = holder - switch(index) - if (BORG_WIRE_AI_CONTROL) //pulse the AI wire to make the borg reselect an AI + switch(wire) + if(WIRE_AI_CONTROL) //pulse the AI wire to make the borg reselect an AI if(!R.emagged) - var/mob/living/silicon/ai/new_ai = select_active_ai(R) - R.connect_to_ai(new_ai) + R.connect_to_ai(select_active_ai(R)) - if (BORG_WIRE_CAMERA) + if(WIRE_BORG_CAMERA) if(!isnull(R.camera) && R.camera.can_use() && !R.scrambledcodes) R.visible_message("[R]'s camera lense focuses loudly.") to_chat(R, "Your camera lense focuses loudly.") - if(BORG_WIRE_LOCKED_DOWN) + if(WIRE_BORG_LOCKED) R.SetLockdown(!R.lockdown) // Toggle -/datum/wires/robot/CanUse(var/mob/living/L) +/datum/wires/robot/interactable(mob/user) var/mob/living/silicon/robot/R = holder if(R.wiresexposed) - return 1 - return 0 - -/datum/wires/robot/proc/IsCameraCut() - return wires_status & BORG_WIRE_CAMERA - -/datum/wires/robot/proc/LockedCut() - return wires_status & BORG_WIRE_LOCKED_DOWN + return TRUE + return FALSE diff --git a/code/datums/wires/seedstorage.dm b/code/datums/wires/seedstorage.dm index 8268d936b04..890cccfc2fa 100644 --- a/code/datums/wires/seedstorage.dm +++ b/code/datums/wires/seedstorage.dm @@ -1,56 +1,58 @@ -#define SEED_WIRE_SMART 1 -#define SEED_WIRE_CONTRABAND 2 -#define SEED_WIRE_ELECTRIFY 4 -#define SEED_WIRE_LOCKDOWN 8 - /datum/wires/seedstorage - holder_type = /obj/machinery/seed_storage + randomize = TRUE wire_count = 4 - random = 1 + holder_type = /obj/machinery/seed_storage + proper_name = "Seed Storage" -/datum/wires/seedstorage/CanUse(var/mob/living/L) +/datum/wires/seedstorage/New(atom/_holder) + wires = list(WIRE_SEED_SMART, WIRE_CONTRABAND, WIRE_ELECTRIFY, WIRE_SEED_LOCKDOWN) + return ..() + +/datum/wires/seedstorage/interactable(mob/user) var/obj/machinery/seed_storage/V = holder if(V.panel_open) - return 1 - return 0 + return TRUE + return FALSE -/datum/wires/seedstorage/GetInteractWindow() +/datum/wires/seedstorage/get_status() var/obj/machinery/seed_storage/V = holder - . += ..() - . += "
The orange light is [V.seconds_electrified ? "off" : "on"].
" - . += "The red light is [V.smart ? "off" : "blinking"].
" - . += "The green light is [(V.hacked || V.emagged) ? "on" : "off"].
" - . += "The keypad lock is [V.lockdown ? "deployed" : "retracted"].
" + . = ..() + . += "The orange light is [V.seconds_electrified ? "off." : "on."]" + . += "The red light is [V.smart ? "off." : "blinking."]" + . += "The green light is [(V.hacked || V.emagged) ? "on." : "off."]" + . += "The keypad lock light is [V.lockdown ? "deployed." : "retracted."]" -/datum/wires/seedstorage/UpdatePulsed(var/index) +/datum/wires/seedstorage/on_pulse(wire) var/obj/machinery/seed_storage/V = holder - switch(index) - if(SEED_WIRE_SMART) + switch(wire) + if(WIRE_SEED_SMART) V.smart = !V.smart - if(SEED_WIRE_CONTRABAND) + if(WIRE_CONTRABAND) V.hacked = !V.hacked - if(SEED_WIRE_ELECTRIFY) + if(WIRE_ELECTRIFY) V.seconds_electrified = 30 - if(SEED_WIRE_LOCKDOWN) + if(WIRE_SEED_LOCKDOWN) V.lockdown = !V.lockdown + ..() -/datum/wires/seedstorage/UpdateCut(var/index, var/mended) +/datum/wires/seedstorage/on_cut(wire, mend) var/obj/machinery/seed_storage/V = holder - switch(index) - if(SEED_WIRE_SMART) - V.smart = 0 - if(SEED_WIRE_CONTRABAND) - V.hacked = !mended - if(SEED_WIRE_ELECTRIFY) - if(mended) + switch(wire) + if(WIRE_SEED_SMART) + V.smart = FALSE + if(WIRE_CONTRABAND) + V.hacked = !mend + if(WIRE_ELECTRIFY) + if(mend) V.seconds_electrified = 0 else V.seconds_electrified = -1 - if(SEED_WIRE_LOCKDOWN) - if(mended) - V.lockdown = 1 + if(WIRE_SEED_LOCKDOWN) + if(mend) + V.lockdown = TRUE V.req_access = list() V.req_one_access = list() else V.req_access = initial(V.req_access) V.req_one_access = initial(V.req_one_access) + ..() diff --git a/code/datums/wires/shield_generator.dm b/code/datums/wires/shield_generator.dm new file mode 100644 index 00000000000..82f083ecfe1 --- /dev/null +++ b/code/datums/wires/shield_generator.dm @@ -0,0 +1,47 @@ +/datum/wires/shield_generator + wire_count = 5 + holder_type = /obj/machinery/power/shield_generator + proper_name = "Shield Generator" + +/datum/wires/shield_generator/New(atom/_holder) + wires = list(WIRE_MAIN_POWER1, WIRE_CONTRABAND, WIRE_AI_CONTROL, WIRE_SHIELD_CONTROL) + return ..() + +/datum/wires/shield_generator/interactable(mob/user) + var/obj/machinery/power/shield_generator/S = holder + if(S.panel_open) + return TRUE + return FALSE + +/datum/wires/shield_generator/get_status() + var/obj/machinery/power/shield_generator/S = holder + . = ..() + . += "The orange light is [S.mode_changes_locked ? "on." : "off."]" + . += "The blue light is [S.ai_control_disabled ? "off." : "blinking."]" + . += "The violet light is [S.hacked ? "pulsing." : "steady."]" + . += "The red light is [S.input_cut ? "off." : "on."]" + +/datum/wires/shield_generator/on_cut(wire, mend) + var/obj/machinery/power/shield_generator/S = holder + switch(wire) + if(WIRE_MAIN_POWER1) + S.input_cut = !mend + if(WIRE_CONTRABAND) + if(!mend) + S.hacked = FALSE + if(S.check_flag(MODEFLAG_BYPASS)) + S.toggle_flag(MODEFLAG_BYPASS) + if(S.check_flag(MODEFLAG_OVERCHARGE)) + S.toggle_flag(MODEFLAG_OVERCHARGE) + if(WIRE_SHIELD_CONTROL) + S.mode_changes_locked = !mend + if(WIRE_AI_CONTROL) + S.ai_control_disabled = !mend + ..() + +/datum/wires/shield_generator/on_pulse(wire) + var/obj/machinery/power/shield_generator/S = holder + switch(wire) + if(WIRE_CONTRABAND) + S.hacked = TRUE + ..() diff --git a/code/datums/wires/smartfridge.dm b/code/datums/wires/smartfridge.dm index 15f10cd8005..1b5ce38777a 100644 --- a/code/datums/wires/smartfridge.dm +++ b/code/datums/wires/smartfridge.dm @@ -1,47 +1,52 @@ /datum/wires/smartfridge - holder_type = /obj/machinery/smartfridge wire_count = 3 + holder_type = /obj/machinery/smartfridge + proper_name = "Smartfridge" + +/datum/wires/smartfridge/New(atom/_holder) + wires = list(WIRE_ELECTRIFY, WIRE_IDSCAN, WIRE_THROW_ITEM) + return ..() /datum/wires/smartfridge/secure - random = 1 - wire_count = 4 + randomize = TRUE + wire_count = 4 // 3 actual, 1 dud. -var/const/SMARTFRIDGE_WIRE_ELECTRIFY = 1 -var/const/SMARTFRIDGE_WIRE_THROW = 2 -var/const/SMARTFRIDGE_WIRE_IDSCAN = 4 - -/datum/wires/smartfridge/CanUse(var/mob/living/L) +/datum/wires/smartfridge/interactable(mob/user) var/obj/machinery/smartfridge/S = holder + if(iscarbon(user) && S.Adjacent(user) && S.seconds_electrified && S.shock(user, 100)) + return FALSE if(S.panel_open) - return 1 - return 0 + return TRUE + return FALSE -/datum/wires/smartfridge/GetInteractWindow() +/datum/wires/smartfridge/get_status() + . = ..() var/obj/machinery/smartfridge/S = holder - . += ..() - . += "
The orange light is [S.seconds_electrified ? "off" : "on"].
" - . += "The red light is [S.shoot_inventory ? "off" : "blinking"].
" - . += "A [S.scan_id ? "purple" : "yellow"] light is on.
" + . += "The orange light is [S.seconds_electrified ? "off" : "on"]." + . += "The red light is [S.shoot_inventory ? "off" : "blinking"]." + . += "A [S.scan_id ? "purple" : "yellow"] light is on." -/datum/wires/smartfridge/UpdatePulsed(var/index) +/datum/wires/smartfridge/on_pulse(wire) var/obj/machinery/smartfridge/S = holder - switch(index) - if(SMARTFRIDGE_WIRE_THROW) + switch(wire) + if(WIRE_THROW_ITEM) S.shoot_inventory = !S.shoot_inventory - if(SMARTFRIDGE_WIRE_ELECTRIFY) + if(WIRE_ELECTRIFY) S.seconds_electrified = 30 - if(SMARTFRIDGE_WIRE_IDSCAN) + if(WIRE_IDSCAN) S.scan_id = !S.scan_id + ..() -/datum/wires/smartfridge/UpdateCut(var/index, var/mended) +/datum/wires/smartfridge/on_cut(wire, mend) var/obj/machinery/smartfridge/S = holder - switch(index) - if(SMARTFRIDGE_WIRE_THROW) - S.shoot_inventory = !mended - if(SMARTFRIDGE_WIRE_ELECTRIFY) - if(mended) + switch(wire) + if(WIRE_THROW_ITEM) + S.shoot_inventory = !mend + if(WIRE_ELECTRIFY) + if(mend) S.seconds_electrified = 0 else S.seconds_electrified = -1 - if(SMARTFRIDGE_WIRE_IDSCAN) - S.scan_id = 1 + if(WIRE_IDSCAN) + S.scan_id = TRUE + ..() diff --git a/code/datums/wires/smes.dm b/code/datums/wires/smes.dm index 4ac0fd51ece..ab7677dcc29 100644 --- a/code/datums/wires/smes.dm +++ b/code/datums/wires/smes.dm @@ -1,60 +1,57 @@ /datum/wires/smes - holder_type = /obj/machinery/power/smes/buildable wire_count = 5 + holder_type = /obj/machinery/power/smes/buildable + proper_name = "SMES" -var/const/SMES_WIRE_RCON = 1 // Remote control (AI and consoles), cut to disable -var/const/SMES_WIRE_INPUT = 2 // Input wire, cut to disable input, pulse to disable for 60s -var/const/SMES_WIRE_OUTPUT = 4 // Output wire, cut to disable output, pulse to disable for 60s -var/const/SMES_WIRE_GROUNDING = 8 // Cut to quickly discharge causing sparks, pulse to only create few sparks -var/const/SMES_WIRE_FAILSAFES = 16 // Cut to disable failsafes, mend to reenable +/datum/wires/smes/New(atom/_holder) + wires = list(WIRE_SMES_RCON, WIRE_SMES_INPUT, WIRE_SMES_OUTPUT, WIRE_SMES_GROUNDING, WIRE_SMES_FAILSAFES) + return ..() - -/datum/wires/smes/CanUse(var/mob/living/L) +/datum/wires/smes/interactable(mob/user) var/obj/machinery/power/smes/buildable/S = holder if(S.open_hatch) - return 1 - return 0 + return TRUE + return FALSE - -/datum/wires/smes/GetInteractWindow() +/datum/wires/smes/get_status() var/obj/machinery/power/smes/buildable/S = holder - . += ..() - . += "The green light is [(S.input_cut || S.input_pulsed || S.output_cut || S.output_pulsed) ? "off" : "on"]
" - . += "The red light is [(S.safeties_enabled || S.grounding) ? "off" : "blinking"]
" - . += "The blue light is [S.RCon ? "on" : "off"]" + . = ..() + . += "The green light is [(S.input_cut || S.input_pulsed || S.output_cut || S.output_pulsed) ? "off" : "on"]." + . += "The red light is [(S.safeties_enabled || S.grounding) ? "off" : "blinking"]." + . += "The blue light is [S.RCon ? "on" : "off"]." - -/datum/wires/smes/UpdateCut(var/index, var/mended) +/datum/wires/smes/on_cut(wire, mend) var/obj/machinery/power/smes/buildable/S = holder - switch(index) - if(SMES_WIRE_RCON) - S.RCon = mended - if(SMES_WIRE_INPUT) - S.input_cut = !mended - if(SMES_WIRE_OUTPUT) - S.output_cut = !mended - if(SMES_WIRE_GROUNDING) - S.grounding = mended - if(SMES_WIRE_FAILSAFES) - S.safeties_enabled = mended + switch(wire) + if(WIRE_SMES_RCON) + S.RCon = mend + if(WIRE_SMES_INPUT) + S.input_cut = !mend + if(WIRE_SMES_OUTPUT) + S.output_cut = !mend + if(WIRE_SMES_GROUNDING) + S.grounding = mend + if(WIRE_SMES_FAILSAFES) + S.safeties_enabled = mend + ..() - -/datum/wires/smes/UpdatePulsed(var/index) +/datum/wires/smes/on_pulse(wire) var/obj/machinery/power/smes/buildable/S = holder - switch(index) - if(SMES_WIRE_RCON) + switch(wire) + if(WIRE_SMES_RCON) if(S.RCon) S.RCon = 0 spawn(10) S.RCon = 1 - if(SMES_WIRE_INPUT) + if(WIRE_SMES_INPUT) S.toggle_input() - if(SMES_WIRE_OUTPUT) + if(WIRE_SMES_OUTPUT) S.toggle_output() - if(SMES_WIRE_GROUNDING) + if(WIRE_SMES_GROUNDING) S.grounding = 0 - if(SMES_WIRE_FAILSAFES) + if(WIRE_SMES_FAILSAFES) if(S.safeties_enabled) S.safeties_enabled = 0 spawn(10) S.safeties_enabled = 1 + ..() diff --git a/code/datums/wires/suit_storage_unit.dm b/code/datums/wires/suit_storage_unit.dm index c2d1a130d79..97d3f98c841 100644 --- a/code/datums/wires/suit_storage_unit.dm +++ b/code/datums/wires/suit_storage_unit.dm @@ -1,47 +1,46 @@ /datum/wires/suit_storage_unit holder_type = /obj/machinery/suit_cycler wire_count = 3 + proper_name = "Suit storage unit" -var/const/SUIT_STORAGE_WIRE_ELECTRIFY = 1 -var/const/SUIT_STORAGE_WIRE_SAFETY = 2 -var/const/SUIT_STORAGE_WIRE_LOCKED = 4 +/datum/wires/suit_storage_unit/New(atom/_holder) + wires = list(WIRE_IDSCAN, WIRE_ELECTRIFY, WIRE_SAFETY) + return ..() -/datum/wires/suit_storage_unit/CanUse(var/mob/living/L) +/datum/wires/suit_storage_unit/interactable(mob/user) var/obj/machinery/suit_cycler/S = holder - if(!istype(L, /mob/living/silicon)) - if(S.electrified) - if(S.shock(L, 100)) - return 0 + if(iscarbon(user) && S.Adjacent(user) && S.electrified) + return !S.shock(user, 100) if(S.panel_open) - return 1 - return 0 + return TRUE + return FALSE -/datum/wires/suit_storage_unit/GetInteractWindow() - var/obj/machinery/suit_cycler/S = holder - . += ..() - . += "
The orange light is [S.electrified ? "off" : "on"].
" - . += "The red light is [S.safeties ? "off" : "blinking"].
" - . += "The yellow light is [S.locked ? "on" : "off"].
" +/datum/wires/suit_storage_unit/get_status() + . = ..() + var/obj/machinery/suit_cycler/A = holder + . += "The orange light is [A.electrified ? "off" : "on"]." + . += "The red light is [A.safeties ? "off" : "blinking"]." + . += "The yellow light is [A.locked ? "on" : "off"]." -/datum/wires/suit_storage_unit/UpdatePulsed(var/index) +/datum/wires/suit_storage_unit/on_pulse(wire) var/obj/machinery/suit_cycler/S = holder - switch(index) - if(SUIT_STORAGE_WIRE_SAFETY) + switch(wire) + if(WIRE_SAFETY) S.safeties = !S.safeties - if(SUIT_STORAGE_WIRE_ELECTRIFY) + if(WIRE_ELECTRIFY) S.electrified = 30 - if(SUIT_STORAGE_WIRE_LOCKED) + if(WIRE_IDSCAN) S.locked = !S.locked -/datum/wires/suit_storage_unit/UpdateCut(var/index, var/mended) +/datum/wires/suit_storage_unit/on_cut(wire, mend) var/obj/machinery/suit_cycler/S = holder - switch(index) - if(SUIT_STORAGE_WIRE_SAFETY) - S.safeties = mended - if(SUIT_STORAGE_WIRE_LOCKED) - S.locked = mended - if(SUIT_STORAGE_WIRE_ELECTRIFY) - if(mended) + switch(wire) + if(WIRE_SAFETY) + S.safeties = mend + if(WIRE_IDSCAN) + S.locked = mend + if(WIRE_ELECTRIFY) + if(mend) S.electrified = 0 else S.electrified = -1 diff --git a/code/datums/wires/tesla_coil.dm b/code/datums/wires/tesla_coil.dm index f176b8f1397..f2292f8ce88 100644 --- a/code/datums/wires/tesla_coil.dm +++ b/code/datums/wires/tesla_coil.dm @@ -1,18 +1,21 @@ /datum/wires/tesla_coil - wire_count = 1 holder_type = /obj/machinery/power/tesla_coil + wire_count = 1 + proper_name = "Tesla coil" -var/const/WIRE_ZAP = 1 +/datum/wires/tesla_coil/New(atom/_holder) + wires = list(WIRE_TESLACOIL_ZAP) + return ..() -/datum/wires/tesla_coil/CanUse(mob/living/L) +/datum/wires/tesla_coil/interactable(mob/user) var/obj/machinery/power/tesla_coil/T = holder if(T && T.panel_open) - return 1 - return 0 + return TRUE + return FALSE -/datum/wires/tesla_coil/UpdatePulsed(index) +/datum/wires/tesla_coil/on_pulse(wire) var/obj/machinery/power/tesla_coil/T = holder - switch(index) - if(WIRE_ZAP) + switch(wire) + if(WIRE_TESLACOIL_ZAP) T.zap() ..() diff --git a/code/datums/wires/vending.dm b/code/datums/wires/vending.dm index bad3a0078b4..4667080bf1c 100644 --- a/code/datums/wires/vending.dm +++ b/code/datums/wires/vending.dm @@ -1,49 +1,53 @@ /datum/wires/vending holder_type = /obj/machinery/vending wire_count = 4 + proper_name = "Vending machine" -var/const/VENDING_WIRE_THROW = 1 -var/const/VENDING_WIRE_CONTRABAND = 2 -var/const/VENDING_WIRE_ELECTRIFY = 4 -var/const/VENDING_WIRE_IDSCAN = 8 +/datum/wires/vending/New(atom/_holder) + wires = list(WIRE_THROW_ITEM, WIRE_IDSCAN, WIRE_ELECTRIFY, WIRE_CONTRABAND) + return ..() -/datum/wires/vending/CanUse(var/mob/living/L) +/datum/wires/vending/interactable(mob/user) var/obj/machinery/vending/V = holder + if(iscarbon(user) && V.seconds_electrified && V.shock(user, 100)) + return FALSE if(V.panel_open) - return 1 - return 0 + return TRUE + return FALSE -/datum/wires/vending/GetInteractWindow() +/datum/wires/vending/get_status() var/obj/machinery/vending/V = holder - . += ..() - . += "
The orange light is [V.seconds_electrified ? "off" : "on"].
" - . += "The red light is [V.shoot_inventory ? "off" : "blinking"].
" - . += "The green light is [(V.categories & CAT_HIDDEN) ? "on" : "off"].
" - . += "The [V.scan_id ? "purple" : "yellow"] light is on.
" + . = ..() + . += "The orange light is [V.seconds_electrified ? "on" : "off"]." + . += "The red light is [V.shoot_inventory ? "off" : "blinking"]." + . += "The green light is [(V.categories & CAT_HIDDEN) ? "on" : "off"]." + . += "A [V.scan_id ? "purple" : "yellow"] light is on." -/datum/wires/vending/UpdatePulsed(var/index) +/datum/wires/vending/on_pulse(wire) var/obj/machinery/vending/V = holder - switch(index) - if(VENDING_WIRE_THROW) + switch(wire) + if(WIRE_THROW_ITEM) V.shoot_inventory = !V.shoot_inventory - if(VENDING_WIRE_CONTRABAND) + if(WIRE_CONTRABAND) V.categories ^= CAT_HIDDEN - if(VENDING_WIRE_ELECTRIFY) + if(WIRE_ELECTRIFY) V.seconds_electrified = 30 - if(VENDING_WIRE_IDSCAN) + if(WIRE_IDSCAN) V.scan_id = !V.scan_id + ..() -/datum/wires/vending/UpdateCut(var/index, var/mended) +/datum/wires/vending/on_cut(wire, mend) var/obj/machinery/vending/V = holder - switch(index) - if(VENDING_WIRE_THROW) - V.shoot_inventory = !mended - if(VENDING_WIRE_CONTRABAND) + switch(wire) + if(WIRE_THROW_ITEM) + V.shoot_inventory = !mend + if(WIRE_CONTRABAND) V.categories &= ~CAT_HIDDEN - if(VENDING_WIRE_ELECTRIFY) - if(mended) + if(WIRE_ELECTRIFY) + if(mend) V.seconds_electrified = 0 else V.seconds_electrified = -1 - if(VENDING_WIRE_IDSCAN) + if(WIRE_IDSCAN) V.scan_id = 1 + ..() diff --git a/code/datums/wires/wires.dm b/code/datums/wires/wires.dm index 964ec98448a..12cef9d2a70 100644 --- a/code/datums/wires/wires.dm +++ b/code/datums/wires/wires.dm @@ -1,220 +1,461 @@ -// Wire datums. Created by Giacomand. -// Was created to replace a horrible case of copy and pasted code with no care for maintability. -// Goodbye Door wires, Cyborg wires, Vending Machine wires, Autolathe wires -// Protolathe wires, APC wires and Camera wires! - -#define MAX_FLAG 65535 - -var/list/same_wires = list() -// 14 colours, if you're adding more than 14 wires then add more colours here -var/list/wireColours = list("red", "blue", "green", "darkred", "orange", "brown", "gold", "gray", "cyan", "navy", "purple", "pink", "black", "yellow") - /datum/wires + /// TRUE if the wires will be different every time a new wire datum is created. + var/randomize = FALSE + /// The atom the wires belong too. For example: an airlock. + var/atom/holder + /// The holder type; used to make sure that the holder is the correct type. + var/holder_type + /// The display name for the TGUI window. For example, given the var is "APC"... + /// When the TGUI window is opened, "wires" will be appended to it's title, and it would become "APC wires". + var/proper_name = "Unknown" + /// The total number of wires that our holder atom has. + var/wire_count = NONE + /// A list of all wires. For a list of valid wires defines that can go here, see `code/__DEFINES/wires.dm` + var/list/wires + /// A list of all cut wires. The same values that can go into `wires` will get added and removed from this list. + var/list/cut_wires + /// An associative list with the wire color as the key, and the wire define as the value. + var/list/colors + /// An associative list of signalers attached to the wires. The wire color is the key, and the signaler object reference is the value. + var/list/assemblies - var/random = 0 // Will the wires be different for every single instance. - var/atom/holder = null // The holder - var/holder_type = null // The holder type; used to make sure that the holder is the correct type. - var/wire_count = 0 // Max is 16 - var/wires_status = 0 // BITFLAG OF WIRES - - var/list/wires = list() - var/list/signallers = list() - - var/table_options = " align='center'" - var/row_options1 = " width='80px'" - var/row_options2 = " width='260px'" - var/window_x = 370 - var/window_y = 470 - -/datum/wires/New(var/atom/holder) +/datum/wires/New(atom/_holder) ..() - src.holder = holder - if(!istype(holder, holder_type)) + if(!istype(_holder, holder_type)) CRASH("Our holder is null/the wrong type!") - // Generate new wires - if(random) - GenerateWires() - // Get the same wires + holder = _holder + cut_wires = list() + colors = list() + assemblies = list() + + // Add in the appropriate amount of dud wires. + var/wire_len = length(wires) + if(wire_len < wire_count) // If the amount of "real" wires is less than the total we're suppose to have... + add_duds(wire_count - wire_len) // Add in the appropriate amount of duds to reach `wire_count`. + + // If the randomize is true, we need to generate a new set of wires and ignore any wire color directories. + if(randomize) + randomize() + + if(!GLOB.wire_color_directory[holder_type]) + randomize() + GLOB.wire_color_directory[holder_type] = colors else - // We don't have any wires to copy yet, generate some and then copy it. - if(!same_wires[holder_type]) - GenerateWires() - same_wires[holder_type] = src.wires.Copy() - else - var/list/wires = same_wires[holder_type] - src.wires = wires // Reference the wires list. + colors = GLOB.wire_color_directory[holder_type] /datum/wires/Destroy() holder = null - signallers.Cut() + for(var/color in colors) + detach_assembly(color) return ..() -/datum/wires/proc/GenerateWires() - var/list/colours_to_pick = wireColours.Copy() // Get a copy, not a reference. - var/list/indexes_to_pick = list() - //Generate our indexes - for(var/i = 1; i < MAX_FLAG && i < (1 << wire_count); i += i) - indexes_to_pick += i - colours_to_pick.len = wire_count // Downsize it to our specifications. +/** + * Randomly generates a new set of wires. and corresponding colors from the given pool. Assigns the information as an associative list, to `colors`. + * + * In the `colors` list, the name of the color is the key, and the wire is the value. + * For example: `colors["red"] = WIRE_ELECTRIFY`. This will look like `list("red" = WIRE_ELECTRIFY)` internally. + */ +/datum/wires/proc/randomize() + var/static/list/possible_colors = list("red", "blue", "green", "darkmagenta", "orange", "brown", "gold", "grey", "cyan", "white", "purple", "pink", "darkslategrey", "yellow") + var/list/my_possible_colors = possible_colors.Copy() - while(colours_to_pick.len && indexes_to_pick.len) - // Pick and remove a colour - var/colour = pick_n_take(colours_to_pick) + for(var/wire in shuffle(wires)) + colors[pick_n_take(my_possible_colors)] = wire - // Pick and remove an index - var/index = pick_n_take(indexes_to_pick) +/** + * Proc called when the user attempts to interact with wires UI. + * + * Checks if the user exists, is a mob, the wires are attached to something (`holder`) and makes sure `interactable(user)` returns TRUE. + * If all the checks succeed, open the TGUI interface for the user. + * + * Arugments: + * * user - the mob trying to interact with the wires. + */ +/datum/wires/proc/Interact(mob/user) + if(user && istype(user) && holder && interactable(user)) + ui_interact(user) - src.wires[colour] = index - //wires = shuffle(wires) +/** + * Base proc, intended to be overriden. Wire datum specific checks you want to run before the TGUI is shown to the user should go here. + */ +/datum/wires/proc/interactable(mob/user) + return TRUE +/// Users will be interacting with our holder object and not the wire datum directly, therefore we need to return the holder. +/datum/wires/ui_host() + return holder -/datum/wires/proc/Interact(var/mob/living/user) +/datum/wires/ui_interact(mob/user, datum/tgui/ui = null) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "Wires", "[proper_name] wires") + ui.open() - var/html = null - if(holder && CanUse(user)) - html = GetInteractWindow() - if(html) - user.set_machine(holder) +/datum/wires/ui_state(mob/user) + return GLOB.physical_state + +/datum/wires/ui_data(mob/user) + var/list/data = list() + var/list/replace_colors + + if(isliving(user)) + var/mob/living/L = user + for(var/datum/modifier/M in L.modifiers) + if(!isnull(M.wire_colors_replace)) + replace_colors = M.wire_colors_replace + break + + var/list/wires_list = list() + + for(var/color in colors) + var/replaced_color = color + var/color_name = color + + if(color in replace_colors) // If this color is one that needs to be replaced using the colorblindness list. + replaced_color = replace_colors[color] + if(replaced_color in LIST_COLOR_RENAME) // If its an ugly written color name like "darkolivegreen", rename it to something like "dark green". + color_name = LIST_COLOR_RENAME[replaced_color] + else + color_name = replaced_color // Else just keep the normal color name + + if(color in LIST_COLOR_RENAME) + color_name = LIST_COLOR_RENAME[color] + + wires_list += list(list( + "seen_color" = replaced_color, // The color of the wire that the mob will see. This will be the same as `color` if the user is NOT colorblind. + "color_name" = color_name, // The wire's name. This will be the same as `color` if the user is NOT colorblind. + "color" = color, // The "real" color of the wire. No replacements. + "wire" = can_see_wire_info(user) && !is_dud_color(color) ? get_wire(color) : null, // Wire define information like "Contraband" or "Door Bolts". + "cut" = is_color_cut(color), // Whether the wire is cut or not. Used to display "cut" or "mend". + "attached" = is_attached(color) // Whether or not a signaler is attached to this wire. + )) + data["wires"] = wires_list + + // Get the information shown at the bottom of wire TGUI window, such as "The red light is blinking", etc. + // If the user is colorblind, we need to replace these colors as well. + var/list/status = get_status() + + if(replace_colors) + var/i + for(i in 1 to length(status)) + for(var/color in replace_colors) + var/new_color = replace_colors[color] + if(new_color in LIST_COLOR_RENAME) + new_color = LIST_COLOR_RENAME[new_color] + if(findtext(status[i], color)) + status[i] = replacetext(status[i], color, new_color) + break + + data["status"] = status + return data + +/datum/wires/ui_act(action, list/params) + if(..()) + return + + var/mob/user = usr + if(!interactable(user)) + return + + var/obj/item/I = user.get_active_hand() + var/color = lowertext(params["wire"]) + holder.add_hiddenprint(user) + + switch(action) + // Toggles the cut/mend status. + if("cut") + // if(!I.is_wirecutter() && !user.can_admin_interact()) + if(!istype(I) || !I.is_wirecutter()) + to_chat(user, "You need wirecutters!") + return + + playsound(holder, I.usesound, 20, 1) + cut_color(color) + return TRUE + + // Pulse a wire. + if("pulse") + // if(!I.is_multitool() && !user.can_admin_interact()) + if(!istype(I) || !I.is_multitool()) + to_chat(user, "You need a multitool!") + return + + playsound(holder, 'sound/weapons/empty.ogg', 20, 1) + pulse_color(color) + + // If they pulse the electrify wire, call interactable() and try to shock them. + if(get_wire(color) == WIRE_ELECTRIFY) + interactable(user) + + return TRUE + + // Attach a signaler to a wire. + if("attach") + if(is_attached(color)) + var/obj/item/O = detach_assembly(color) + if(O) + user.put_in_hands(O) + return TRUE + + if(!istype(I, /obj/item/assembly/signaler)) + to_chat(user, "You need a remote signaller!") + return + + if(user.unEquip(I)) + attach_assembly(color, I) + return TRUE + else + to_chat(user, "[I] is stuck to your hand!") + +/** + * Proc called to determine if the user can see wire define information, such as "Contraband", "Door Bolts", etc. + * + * If the user is an admin, or has a multitool which reveals wire information in their active hand, the proc returns TRUE. + * + * Arguments: + * * user - the mob who is interacting with the wires. + */ +/datum/wires/proc/can_see_wire_info(mob/user) + // TODO: Reimplement this if we ever get Advanced Admin Interaction. + // if(user.can_admin_interact()) + // return TRUE + var/obj/item/I = user.get_active_hand() + if(istype(I, /obj/item/multitool/alien)) + return TRUE + return FALSE + +/** + * Base proc, intended to be overwritten. Put wire information you'll see at the botton of the TGUI window here, such as "The red light is blinking". + */ +/datum/wires/proc/get_status() + return list() + +/** + * Clears the `colors` list, and randomizes it to a new set of color-to-wire relations. + */ +/datum/wires/proc/shuffle_wires() + colors.Cut() + randomize() + +/** + * Repairs all cut wires. + */ +/datum/wires/proc/repair() + cut_wires.Cut() + +/** + * Adds in dud wires, which do nothing when cut/pulsed. + * + * Arguments: + * * duds - the amount of dud wires to generate. + */ +/datum/wires/proc/add_duds(duds) + while(duds) + var/dud = WIRE_DUD_PREFIX + "[--duds]" + if(dud in wires) + continue + wires += dud + +/** + * Determines if the passed in wire is a dud or not. Returns TRUE if the wire is a dud, FALSE otherwise. + * + * Arugments: + * * wire - a wire define, NOT a color. For example `WIRE_ELECTRIFY`. + */ +/datum/wires/proc/is_dud(wire) + return findtext(wire, WIRE_DUD_PREFIX, 1, length(WIRE_DUD_PREFIX) + 1) + +/** + * Returns TRUE if the wire that corresponds to the passed in color is a dud. FALSE otherwise. + * + * Arugments: + * * color - a wire color. + */ +/datum/wires/proc/is_dud_color(color) + return is_dud(get_wire(color)) + +/** + * Gets the wire associated with the color passed in. + * + * Arugments: + * * color - a wire color. + */ +/datum/wires/proc/get_wire(color) + return colors[color] + +/** + * Determines if the passed in wire is cut or not. Returns TRUE if it's cut, FALSE otherwise. + * + * Arugments: + * * wire - a wire define, NOT a color. For example `WIRE_ELECTRIFY`. + */ +/datum/wires/proc/is_cut(wire) + return (wire in cut_wires) + +/** + * Determines if the wire associated with the passed in color, is cut or not. Returns TRUE if it's cut, FALSE otherwise. + * + * Arugments: + * * wire - a wire color. + */ +/datum/wires/proc/is_color_cut(color) + return is_cut(get_wire(color)) + +/** + * Determines if all of the wires are cut. Returns TRUE they're all cut, FALSE otherwise. + */ +/datum/wires/proc/is_all_cut() + return (length(cut_wires) == length(wires)) + +/** + * Cut or mend a wire. Calls `on_cut()`. + * + * Arugments: + * * wire - a wire define, NOT a color. For example `WIRE_ELECTRIFY`. + */ +/datum/wires/proc/cut(wire) + if(is_cut(wire)) + cut_wires -= wire + on_cut(wire, mend = TRUE) else - user.unset_machine() - // No content means no window. - user << browse(null, "window=wires") - return + cut_wires += wire + on_cut(wire, mend = FALSE) - var/datum/browser/popup = new(user, "wires", holder.name, window_x, window_y) - popup.set_content(html) - popup.open() +/** + * Cut the wire which corresponds with the passed in color. + * + * Arugments: + * * color - a wire color. + */ +/datum/wires/proc/cut_color(color) + cut(get_wire(color)) -/datum/wires/proc/GetInteractWindow() - var/html = "Rename" //kicking off the html with this set of buttons that will affect any object with the wires interface - html += "Describe" - html += "
" - html += "

Exposed Wires

" - html += "" - for(var/colour in wires) - html += "" - html += "[capitalize(colour)]" - html += "" - html += "[IsColourCut(colour) ? "Mend" : "Cut"]" - html += " Pulse" - html += " [IsAttached(colour) ? "Detach" : "Attach"] Signaller" - html += "" - html += "
" +/** + * Cuts a random wire. + */ +/datum/wires/proc/cut_random() + cut(wires[rand(1, length(wires))]) - if (random) - html += "\The [holder] appears to have tamper-resistant electronics installed.

" //maybe this could be more generic? +/** + * Cuts all wires. + */ +/datum/wires/proc/cut_all() + for(var/wire in wires) + cut(wire) - return html - -/datum/wires/Topic(href, href_list) - ..() - if(in_range(holder, usr) && isliving(usr)) - - var/mob/living/L = usr - if(CanUse(L) && href_list["action"]) - var/obj/item/I = L.get_active_hand() - holder.add_hiddenprint(L) - if(href_list["cut"]) // Toggles the cut/mend status - if(I.is_wirecutter()) - var/colour = href_list["cut"] - CutWireColour(colour) - playsound(holder, I.usesound, 20, 1) - else - to_chat(L, "You need wirecutters!") - - else if(href_list["pulse"]) - if(I.is_multitool()) - var/colour = href_list["pulse"] - PulseColour(colour) - playsound(holder, 'sound/weapons/empty.ogg', 20, 1) - else - to_chat(L, "You need a multitool!") - - else if(href_list["attach"]) - var/colour = href_list["attach"] - // Detach - if(IsAttached(colour)) - var/obj/item/O = Detach(colour) - if(O) - L.put_in_hands(O) - - // Attach - else - if(istype(I, /obj/item/assembly/signaler)) - L.drop_item() - Attach(colour, I) - else - to_chat(L, "You need a remote signaller!") - - else if(href_list["rename"]) //add the ability to rename doors via multitool - if(I.is_multitool()) - RenameDoor(src) - else - to_chat(L, "You need a multitool!") - - else if(href_list["description"]) // and describe them! - if(I.is_multitool()) - DescribeDoor(src) - else - to_chat(L, "You need a multitool!") - - - // Update Window - Interact(usr) - - if(href_list["close"]) - usr << browse(null, "window=wires") - usr.unset_machine(holder) - -// -// Overridable Procs -// - -// Called when wires cut/mended. -/datum/wires/proc/UpdateCut(var/index, var/mended) +/** + * Proc called when any wire is cut. + * + * Base proc, intended to be overriden. + * Place an behavior you want to happen when certain wires are cut, into this proc. + * + * Arugments: + * * wire - a wire define, NOT color. For example 'WIRE_ELECTRIFY'. + * * mend - TRUE if we're mending the wire. FALSE if we're cutting. + */ +/datum/wires/proc/on_cut(wire, mend = FALSE) return -// Called when wire pulsed. Add code here. -/datum/wires/proc/UpdatePulsed(var/index) +/** + * Pulses the given wire. Calls `on_pulse()`. + * + * Arugments: + * * wire - a wire define, NOT a color. For example `WIRE_ELECTRIFY`. + */ +/datum/wires/proc/pulse(wire) + if(is_cut(wire)) + return + on_pulse(wire) + +/** + * Pulses the wire associated with the given color. + * + * Arugments: + * * wire - a wire color. + */ +/datum/wires/proc/pulse_color(color) + pulse(get_wire(color)) + +/** + * Proc called when any wire is pulsed. + * + * Base proc, intended to be overriden. + * Place behavior you want to happen when certain wires are pulsed, into this proc. + * + * Arugments: + * * wire - a wire define, NOT color. For example 'WIRE_ELECTRIFY'. + */ +/datum/wires/proc/on_pulse(wire) return -/datum/wires/proc/CanUse(var/mob/living/L) - return 1 +/** + * Proc called when an attached signaler receives a signal. + * + * Searches through the `assemblies` list for the wire that the signaler is attached to. Pulses the wire when it's found. + * + * Arugments: + * * S - the attached signaler receiving the signal. + */ +/datum/wires/proc/pulse_assembly(obj/item/assembly/signaler/S) + for(var/color in assemblies) + if(S == assemblies[color]) + pulse_color(color) + return TRUE -// Example of use: -/* +/** + * Proc called when a mob tries to attach a signaler to a wire. + * + * Makes sure that `S` is actually a signaler and that something is not already attached to the wire. + * Adds the signaler to the `assemblies` list as a value, with the `color` as a the key. + * + * Arguments: + * * color - the wire color. + * * S - the signaler that a mob is trying to attach. + */ +/datum/wires/proc/attach_assembly(color, obj/item/assembly/signaler/S) + if(S && istype(S) && !is_attached(color)) + assemblies[color] = S + S.forceMove(holder) + S.connected = src + return S -var/const/BOLTED= 1 -var/const/SHOCKED = 2 -var/const/SAFETY = 4 -var/const/POWER = 8 +/** + * Proc called when a mob tries to detach a signaler from a wire. + * + * First checks if there is a signaler on the wire. If so, removes the signaler, and clears it from `assemblies` list. + * + * Arguments: + * * color - the wire color. + */ +/datum/wires/proc/detach_assembly(color) + var/obj/item/assembly/signaler/S = get_attached(color) + if(S && istype(S)) + assemblies -= color + S.connected = null + S.forceMove(holder.drop_location()) + return S -/datum/wires/door/UpdateCut(var/index, var/mended) - var/obj/machinery/door/airlock/A = holder - switch(index) - if(BOLTED) - if(!mended) - A.bolt() - if(SHOCKED) - A.shock() - if(SAFETY ) - A.safety() +/** + * Gets the signaler attached to the given wire color, if there is one. + * + * Arguments: + * * color - the wire color. + */ +/datum/wires/proc/get_attached(color) + if(assemblies[color]) + return assemblies[color] + return null -*/ - - -// -// Helper Procs -// - -/datum/wires/proc/PulseColour(var/colour) - PulseIndex(GetIndex(colour)) - -/datum/wires/proc/PulseIndex(var/index) - if(IsIndexCut(index)) - return - UpdatePulsed(index) +/** + * Checks if the given wire has a signaler on it. + * + * Arguments: + * * color - the wire color. + */ +/datum/wires/proc/is_attached(color) + if(assemblies[color]) + return TRUE /datum/wires/proc/RenameDoor(var/obj/machinery/door/airlock/A = holder) var/t = sanitizeSafe(input(usr, "Enter a new name.", holder.name), MAX_NAME_LEN) @@ -229,107 +470,3 @@ var/const/POWER = 8 holder.update_icon() message_admins("[usr]([usr.key]) described a door as ''[t]'' at [holder.x],[holder.y],[holder.z].") log_admin("([usr]([usr.ckey]) described a door as ''[t]'' at [holder.x],[holder.y],[holder.z].") - -/datum/wires/proc/GetIndex(var/colour) - if(wires[colour]) - var/index = wires[colour] - return index - else - CRASH("[colour] is not a key in wires.") - -// -// Is Index/Colour Cut procs -// - -/datum/wires/proc/IsColourCut(var/colour) - var/index = GetIndex(colour) - return IsIndexCut(index) - -/datum/wires/proc/IsIndexCut(var/index) - return (index & wires_status) - -// -// Signaller Procs -// - -/datum/wires/proc/IsAttached(var/colour) - if(signallers[colour]) - return 1 - return 0 - -/datum/wires/proc/GetAttached(var/colour) - if(signallers[colour]) - return signallers[colour] - return null - -/datum/wires/proc/Attach(var/colour, var/obj/item/assembly/signaler/S) - if(colour && S) - if(!IsAttached(colour)) - signallers[colour] = S - S.loc = holder - S.connected = src - return S - -/datum/wires/proc/Detach(var/colour) - if(colour) - var/obj/item/assembly/signaler/S = GetAttached(colour) - if(S) - signallers -= colour - S.connected = null - S.loc = holder.loc - return S - -/datum/wires/proc/Pulse(var/obj/item/assembly/signaler/S) - - for(var/colour in signallers) - if(S == signallers[colour]) - PulseColour(colour) - break - - -// -// Cut Wire Colour/Index procs -// - -/datum/wires/proc/CutWireColour(var/colour) - var/index = GetIndex(colour) - CutWireIndex(index) - -/datum/wires/proc/CutWireIndex(var/index) - if(IsIndexCut(index)) - wires_status &= ~index - UpdateCut(index, 1) - else - wires_status |= index - UpdateCut(index, 0) - -/datum/wires/proc/RandomCut() - var/r = rand(1, wires.len) - CutWireIndex(r) - -/datum/wires/proc/RandomCutAll(var/probability = 10) - for(var/i = 1; i < MAX_FLAG && i < (1 << wire_count); i += i) - if(prob(probability)) - CutWireIndex(i) - -/datum/wires/proc/CutAll() - for(var/i = 1; i < MAX_FLAG && i < (1 << wire_count); i += i) - CutWireIndex(i) - -/datum/wires/proc/IsAllCut() - if(wires_status == (1 << wire_count) - 1) - return 1 - return 0 - -/datum/wires/proc/MendAll() - for(var/i = 1; i < MAX_FLAG && i < (1 << wire_count); i += i) - if(IsIndexCut(i)) - CutWireIndex(i) - -// -//Shuffle and Mend -// - -/datum/wires/proc/Shuffle() - wires_status = 0 - GenerateWires() diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 90c8c264f49..a3091dddad5 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -402,6 +402,20 @@ /atom/proc/relaymove() return +// Called to set the atom's density and used to add behavior to density changes. +/atom/proc/set_density(var/new_density) + if(density == new_density) + return FALSE + density = !!new_density // Sanitize to be strictly 0 or 1 + return TRUE + +// Called to set the atom's invisibility and usd to add behavior to invisibility changes. +/atom/proc/set_invisibility(var/new_invisibility) + if(invisibility == new_invisibility) + return FALSE + invisibility = new_invisibility + return TRUE + /atom/proc/ex_act() return diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index 565679e25ac..397e5393d1a 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -110,6 +110,7 @@ /obj/effect/meteor/Initialize(mapload) . = ..() z_original = z + GLOB.meteor_list += src /obj/effect/meteor/Move() if(z != z_original || loc == dest) @@ -129,6 +130,7 @@ /obj/effect/meteor/Destroy() walk(src,0) //this cancels the walk_towards() proc + GLOB.meteor_list -= src return ..() /obj/effect/meteor/Initialize(mapload) @@ -162,6 +164,8 @@ var/turf/simulated/wall/W = T W.take_damage(wall_power) // Stronger walls can halt asteroids. +/obj/effect/meteor/proc/get_shield_damage() + return max(((max(hits, 2)) * (heavy + 1) * rand(6, 12)) / hitpwr , 0) //process getting 'hit' by colliding with a dense object //or randomly when ramming turfs @@ -285,6 +289,9 @@ // Worst case scenario: Comparable to a standard yield EMP grenade. empulse(src, rand(1, 3), rand(2, 4), rand(3, 7), rand(5, 10)) +/obj/effect/meteor/emp/get_shield_damage() + return ..() * rand(2,4) + //Station buster Tunguska /obj/effect/meteor/tunguska name = "tunguska meteor" diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index f284b87da8c..0a32496f624 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -771,7 +771,7 @@ to_chat(user, "It does nothing") return else - if(allowed(usr) && !wires.IsIndexCut(AALARM_WIRE_IDSCAN)) + if(allowed(usr) && !wires.is_cut(WIRE_IDSCAN)) locked = !locked to_chat(user, "You [ locked ? "lock" : "unlock"] the Air Alarm interface.") else @@ -782,7 +782,7 @@ //Altclick airalarms to toggle the controlls /obj/machinery/alarm/AltClick(mob/user) if(user.Adjacent(src)) - if(allowed(usr) && !wires.IsIndexCut(AALARM_WIRE_IDSCAN)) + if(allowed(usr) && !wires.is_cut(WIRE_IDSCAN)) locked = !locked to_chat(user, "You [ locked ? "lock" : "unlock"] the Air Alarm interface.") else diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 85d482f0627..207b62e0ad0 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -40,24 +40,6 @@ var/list/camera_computers_using_this = list() -/obj/machinery/camera/apply_visual(mob/living/carbon/human/M) - if(!M.client) - return - M.overlay_fullscreen("fishbed",/atom/movable/screen/fullscreen/fishbed) - M.overlay_fullscreen("scanlines",/atom/movable/screen/fullscreen/scanline) - M.overlay_fullscreen("whitenoise",/atom/movable/screen/fullscreen/noise) - M.machine_visual = src - return 1 - -/obj/machinery/camera/remove_visual(mob/living/carbon/human/M) - if(!M.client) - return - M.clear_fullscreen("fishbed",0) - M.clear_fullscreen("scanlines") - M.clear_fullscreen("whitenoise") - M.machine_visual = null - return 1 - /obj/machinery/camera/Initialize(mapload) if (dir == NORTH) layer = ABOVE_MOB_LAYER @@ -288,7 +270,7 @@ //Used when someone breaks a camera /obj/machinery/camera/proc/destroy() stat |= BROKEN - wires.RandomCutAll() + wires.cut_all() triggerCameraAlarm() update_icon() @@ -323,7 +305,7 @@ SSalarms.camera_alarm.triggerAlarm(loc, src, duration) /obj/machinery/camera/proc/cancelCameraAlarm() - if(wires.IsIndexCut(CAMERA_WIRE_ALARM)) + if(wires.is_cut(WIRE_CAM_ALARM)) return alarm_on = 0 @@ -332,10 +314,10 @@ //if false, then the camera is listed as DEACTIVATED and cannot be used /obj/machinery/camera/proc/can_use() if(!status) - return 0 + return FALSE if(stat & (EMPED|BROKEN)) - return 0 - return 1 + return FALSE + return TRUE /obj/machinery/camera/proc/can_see() var/list/see = null @@ -485,7 +467,6 @@ return if (stat & BROKEN) // Fix the camera stat &= ~BROKEN - wires.CutAll() - wires.MendAll() + wires.repair() update_icon() update_coverage() diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 37f6f2a983b..85b73fbce65 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -641,10 +641,6 @@ About the new airlock wires panel: return 1 return 0 -/obj/machinery/door/airlock/proc/isWireCut(var/wireIndex) - // You can find the wires in the datum folder. - return wires.IsIndexCut(wireIndex) - /obj/machinery/door/airlock/proc/canAIControl() return ((src.aiControlDisabled!=1) && (!src.isAllPowerLoss())); @@ -657,7 +653,7 @@ About the new airlock wires panel: return (src.main_power_lost_until==0 || src.backup_power_lost_until==0) /obj/machinery/door/airlock/requiresID() - return !(src.isWireCut(AIRLOCK_WIRE_IDSCAN) || aiDisabledIdScanner) + return !(wires.is_cut(WIRE_IDSCAN) || aiDisabledIdScanner) /obj/machinery/door/airlock/proc/isAllPowerLoss() if(stat & (NOPOWER|BROKEN)) @@ -667,10 +663,10 @@ About the new airlock wires panel: return 0 /obj/machinery/door/airlock/proc/mainPowerCablesCut() - return src.isWireCut(AIRLOCK_WIRE_MAIN_POWER1) || src.isWireCut(AIRLOCK_WIRE_MAIN_POWER2) + return wires.is_cut(WIRE_MAIN_POWER1) || wires.is_cut(WIRE_MAIN_POWER2) /obj/machinery/door/airlock/proc/backupPowerCablesCut() - return src.isWireCut(AIRLOCK_WIRE_BACKUP_POWER1) || src.isWireCut(AIRLOCK_WIRE_BACKUP_POWER2) + return wires.is_cut(WIRE_BACKUP_POWER1) || wires.is_cut(WIRE_BACKUP_POWER2) /obj/machinery/door/airlock/proc/loseMainPower() main_power_lost_until = mainPowerCablesCut() ? -1 : world.time + SecondsToTicks(60) @@ -718,7 +714,7 @@ About the new airlock wires panel: /obj/machinery/door/airlock/proc/electrify(var/duration, var/feedback = 0) var/message = "" - if(src.isWireCut(AIRLOCK_WIRE_ELECTRIFY) && arePowerSystemsOn()) + if(wires.is_cut(WIRE_ELECTRIFY) && arePowerSystemsOn()) message = text("The electrification wire is cut - Door permanently electrified.") src.electrified_until = -1 else if(duration && !arePowerSystemsOn()) @@ -744,7 +740,7 @@ About the new airlock wires panel: /obj/machinery/door/airlock/proc/set_idscan(var/activate, var/feedback = 0) var/message = "" - if(src.isWireCut(AIRLOCK_WIRE_IDSCAN)) + if(wires.is_cut(WIRE_IDSCAN)) message = "The IdScan wire is cut - IdScan feature permanently disabled." else if(activate && src.aiDisabledIdScanner) src.aiDisabledIdScanner = 0 @@ -759,7 +755,7 @@ About the new airlock wires panel: /obj/machinery/door/airlock/proc/set_safeties(var/activate, var/feedback = 0) var/message = "" // Safeties! We don't need no stinking safeties! - if (src.isWireCut(AIRLOCK_WIRE_SAFETY)) + if (wires.is_cut(WIRE_SAFETY)) message = text("The safety wire is cut - Cannot enable safeties.") else if (!activate && src.safe) safe = 0 @@ -979,7 +975,7 @@ About the new airlock wires panel: if(!backup_power_lost_until) src.loseBackupPower() if("bolts") - if(src.isWireCut(AIRLOCK_WIRE_DOOR_BOLTS)) + if(wires.is_cut(WIRE_DOOR_BOLTS)) to_chat(usr, "The door bolt control wire is cut - Door bolts permanently dropped.") else if(activate && src.lock()) to_chat(usr, "The door bolts have been dropped.") @@ -1002,7 +998,7 @@ About the new airlock wires panel: set_safeties(!activate, 1) if("timing") // Door speed control - if(src.isWireCut(AIRLOCK_WIRE_SPEED)) + if(wires.is_cut(WIRE_SPEED)) to_chat(usr, "The timing wire is cut - Cannot alter timing.") else if (activate && src.normalspeed) normalspeed = 0 @@ -1010,7 +1006,7 @@ About the new airlock wires panel: normalspeed = 1 if("lights") // Bolt lights - if(src.isWireCut(AIRLOCK_WIRE_LIGHT)) + if(wires.is_cut(WIRE_BOLT_LIGHT)) to_chat(usr, "The bolt lights wire is cut - The door bolt lights are permanently disabled.") else if (!activate && src.lights) lights = 0 @@ -1176,7 +1172,7 @@ About the new airlock wires panel: /obj/machinery/door/airlock/close(var/forced=0) if(!can_close(forced)) - return 0 + return FALSE if(safe) for(var/turf/turf in locs) @@ -1207,7 +1203,7 @@ About the new airlock wires panel: /obj/machinery/door/airlock/can_open(var/forced=0) if(!forced) - if(!arePowerSystemsOn() || isWireCut(AIRLOCK_WIRE_OPEN_DOOR)) + if(!arePowerSystemsOn() || wires.is_cut(WIRE_OPEN_DOOR)) return 0 if(locked || welded) @@ -1220,7 +1216,7 @@ About the new airlock wires panel: if(!forced) //despite the name, this wire is for general door control. - if(!arePowerSystemsOn() || isWireCut(AIRLOCK_WIRE_OPEN_DOOR)) + if(!arePowerSystemsOn() || wires.is_cut(WIRE_OPEN_DOOR)) return 0 return ..() @@ -1294,7 +1290,7 @@ About the new airlock wires panel: return if (!forced) - if(operating || !src.arePowerSystemsOn() || isWireCut(AIRLOCK_WIRE_DOOR_BOLTS)) return + if(operating || !src.arePowerSystemsOn() || wires.is_cut(WIRE_DOOR_BOLTS)) return src.locked = 0 playsound(src, bolt_up_sound, 30, 0, 3) diff --git a/code/game/machinery/pointdefense.dm b/code/game/machinery/pointdefense.dm index 45b9c833093..13d1f63da50 100644 --- a/code/game/machinery/pointdefense.dm +++ b/code/game/machinery/pointdefense.dm @@ -17,12 +17,12 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/power/pointdefense) circuit = /obj/item/circuitboard/pointdefense_control var/list/targets = list() // Targets being engaged by associated batteries var/id_tag = null -/* + /obj/machinery/pointdefense_control/Initialize(mapload) . = ..() if(id_tag) //No more than 1 controller please. - for(var/thing in pointdefense_controllers) + for(var/thing in GLOB.pointdefense_controllers) var/obj/machinery/pointdefense_control/PC = thing if(PC != src && PC.id_tag == id_tag) warning("Two [src] with the same id_tag of [id_tag]") @@ -37,7 +37,7 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/power/pointdefense) if(!id_tag) . += "[desc_panel_image("multitool")]to set ident tag" -/obj/machinery/pointdefense_control/tgui_interact(mob/user, datum/tgui/ui) +/obj/machinery/pointdefense_control/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) ui = new(user, src, "PointDefenseControl") // 400, 600 @@ -46,10 +46,10 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/power/pointdefense) /obj/machinery/pointdefense_control/attack_hand(mob/user) if(..()) return TRUE - tgui_interact(user) + ui_interact(user) return TRUE -/obj/machinery/pointdefense_control/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state) +/obj/machinery/pointdefense_control/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) if(..()) return TRUE @@ -70,14 +70,14 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/power/pointdefense) PD.Deactivate() return TRUE -/obj/machinery/pointdefense_control/tgui_data(mob/user) +/obj/machinery/pointdefense_control/ui_data(mob/user) var/list/data = list() data["id"] = id_tag var/list/turrets = list() if(id_tag) var/list/connected_z_levels = GetConnectedZlevels(get_z(src)) - for(var/i = 1 to LAZYLEN(pointdefense_turrets)) - var/obj/machinery/power/pointdefense/PD = pointdefense_turrets[i] + for(var/i = 1 to LAZYLEN(GLOB.pointdefense_turrets)) + var/obj/machinery/power/pointdefense/PD = GLOB.pointdefense_turrets[i] if(!(PD.id_tag == id_tag && (get_z(PD) in connected_z_levels))) continue var/list/turret = list() @@ -96,9 +96,9 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/power/pointdefense) /obj/machinery/pointdefense_control/attackby(var/obj/item/W, var/mob/user) if(W?.is_multitool()) var/new_ident = input(user, "Enter a new ident tag.", "[src]", id_tag) as null|text - if(new_ident && new_ident != id_tag && user.Adjacent(src) && CanInteract(user, GLOB.tgui_physical_state)) + if(new_ident && new_ident != id_tag && user.Adjacent(src) && CanInteract(user, GLOB.physical_state)) // Check for duplicate controllers with this ID - for(var/thing in pointdefense_controllers) + for(var/thing in GLOB.pointdefense_controllers) var/obj/machinery/pointdefense_control/PC = thing if(PC != src && PC.id_tag == id_tag) to_chat(user, "The [new_ident] network already has a controller.") @@ -113,7 +113,7 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/power/pointdefense) if(default_part_replacement(user, W)) return return ..() -*/ + // // The acutal point defense battery // @@ -137,7 +137,7 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/power/pointdefense) var/rotation_speed = 0.25 SECONDS //How quickly we turn to face threats var/engaging = null // The meteor we're shooting at var/id_tag = null -/* + /obj/machinery/power/pointdefense/Initialize() . = ..() // TODO - Remove this bit once machines are converted to Initialize @@ -167,7 +167,7 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/power/pointdefense) else icon_state = initial(icon_state) -/obj/machinery/power/pointdefense/default_unfasten_wrench(var/mob/user, var/obj/item/weapon/W, var/time) +/obj/machinery/power/pointdefense/default_unfasten_wrench(var/mob/user, var/obj/item/W, var/time) if((. = ..())) src.transform = null // Reset rotation if we're anchored/unanchored @@ -207,7 +207,7 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/power/pointdefense) if(!id_tag) return null var/list/connected_z_levels = GetConnectedZlevels(get_z(src)) - for(var/thing in pointdefense_controllers) + for(var/thing in GLOB.pointdefense_controllers) var/obj/machinery/pointdefense_control/PDC = thing if(PDC.id_tag == id_tag && (get_z(PDC) in connected_z_levels)) return PDC @@ -215,7 +215,7 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/power/pointdefense) /obj/machinery/power/pointdefense/attackby(var/obj/item/W, var/mob/user) if(W?.is_multitool()) var/new_ident = input(user, "Enter a new ident tag.", "[src]", id_tag) as null|text - if(new_ident && new_ident != id_tag && user.Adjacent(src) && CanInteract(user, GLOB.tgui_physical_state)) + if(new_ident && new_ident != id_tag && user.Adjacent(src) && CanInteract(user, GLOB.physical_state)) to_chat(user, "You register [src] with the [new_ident] network.") id_tag = new_ident return @@ -236,7 +236,7 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/power/pointdefense) return FALSE return TRUE -/obj/machinery/power/pointdefense/proc/Shoot(var/target) +/obj/machinery/power/pointdefense/proc/Shoot(var/datum/weakref/target) var/obj/effect/meteor/M = target.resolve() if(!istype(M)) engaging = null @@ -248,9 +248,9 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/power/pointdefense) addtimer(CALLBACK(src, .proc/finish_shot, target), rotation_speed) animate(src, transform = rot_matrix, rotation_speed, easing = SINE_EASING) - set_dir(ATAN2(transform.b, transform.a) > 0 ? NORTH : SOUTH) + setDir(arctan(transform.b, transform.a) > 0 ? NORTH : SOUTH) -/obj/machinery/power/pointdefense/proc/finish_shot(var/target) +/obj/machinery/power/pointdefense/proc/finish_shot(var/datum/weakref/target) var/obj/machinery/pointdefense_control/PC = get_controller() engaging = null @@ -261,7 +261,7 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/power/pointdefense) if(!istype(M)) return if(use_power_oneoff(active_power_usage) < active_power_usage) - var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread s.set_up(5, 1, src) s.start() visible_message("[src] sputters as browns out while attempting to fire.") @@ -279,9 +279,9 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/power/pointdefense) if(!active) return /* - var/desiredir = ATAN2(transform.b, transform.a) > 0 ? NORTH : SOUTH + var/desiredir = arctan(transform.b, transform.a) > 0 ? NORTH : SOUTH if(dir != desiredir) - set_dir(desiredir) + setDir(desiredir) */ if(LAZYLEN(GLOB.meteor_list) > 0) @@ -301,12 +301,12 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/power/pointdefense) // Compile list of known targets var/list/existing_targets = list() - for(var/WR in PC.targets) + for(var/datum/weakref/WR in PC.targets) var/obj/effect/meteor/M = WR.resolve() existing_targets += M // First, try and acquire new targets - var/list/potential_targets = meteor_list.Copy() - existing_targets + var/list/potential_targets = GLOB.meteor_list.Copy() - existing_targets for(var/obj/effect/meteor/M in potential_targets) if(targeting_check(M)) var/target = M @@ -370,4 +370,3 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/power/pointdefense) active = FALSE update_icon() return TRUE -*/ diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 31c785fba1f..0d1baf643ee 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -148,8 +148,8 @@ GLOBAL_LIST_INIT(default_medbay_channels, list( data["freq"] = format_frequency(frequency) data["rawfreq"] = num2text(frequency) - data["mic_cut"] = (wires.IsIndexCut(WIRE_TRANSMIT) || wires.IsIndexCut(WIRE_SIGNAL)) - data["spk_cut"] = (wires.IsIndexCut(WIRE_RECEIVE) || wires.IsIndexCut(WIRE_SIGNAL)) + data["mic_cut"] = (wires.is_cut(WIRE_RADIO_TRANSMIT) || wires.is_cut(WIRE_RADIO_SIGNAL)) + data["spk_cut"] = (wires.is_cut(WIRE_RADIO_RECEIVER) || wires.is_cut(WIRE_RADIO_SIGNAL)) var/list/chanlist = list_channels(user) if(islist(chanlist) && chanlist.len) @@ -203,12 +203,6 @@ GLOBAL_LIST_INIT(default_medbay_channels, list( /mob/observer/dead/has_internal_radio_channel_access(var/list/req_one_accesses) return can_admin_interact() -/obj/item/radio/proc/text_wires() - if (b_stat) - return wires.GetInteractWindow() - return - - /obj/item/radio/proc/text_sec_channel(var/chan_name, var/chan_stat) var/list = !!(chan_stat&FREQ_LISTENING)!=0 return {" @@ -217,10 +211,10 @@ GLOBAL_LIST_INIT(default_medbay_channels, list( "} /obj/item/radio/proc/ToggleBroadcast() - broadcasting = !broadcasting && !(wires.IsIndexCut(WIRE_TRANSMIT) || wires.IsIndexCut(WIRE_SIGNAL)) + broadcasting = !broadcasting && !(wires.is_cut(WIRE_RADIO_TRANSMIT) || wires.is_cut(WIRE_RADIO_SIGNAL)) /obj/item/radio/proc/ToggleReception() - listening = !listening && !(wires.IsIndexCut(WIRE_RECEIVE) || wires.IsIndexCut(WIRE_SIGNAL)) + listening = !listening && !(wires.is_cut(WIRE_RADIO_RECEIVER) || wires.is_cut(WIRE_RADIO_SIGNAL)) /obj/item/radio/CanUseTopic() if(!on) @@ -321,7 +315,7 @@ GLOBAL_LIST_INIT(default_medbay_channels, list( // Uncommenting this. To the above comment: // The permacell radios aren't suppose to be able to transmit, this isn't a bug and this "fix" is just making radio wires useless. -Giacom - if(wires.IsIndexCut(WIRE_TRANSMIT)) // The device has to have all its wires and shit intact + if(wires.is_cut(WIRE_RADIO_TRANSMIT)) // The device has to have all its wires and shit intact return FALSE if(!radio_connection) @@ -540,7 +534,7 @@ GLOBAL_LIST_INIT(default_medbay_channels, list( // what the range is in which mobs will hear the radio // returns: -1 if can't receive, range otherwise - if (wires.IsIndexCut(WIRE_RECEIVE)) + if(wires.is_cut(WIRE_RADIO_RECEIVER)) return -1 if(!listening) return -1 diff --git a/code/game/objects/items/weapons/circuitboards/machinery/shieldgen.dm b/code/game/objects/items/weapons/circuitboards/machinery/shieldgen.dm index f876ad96f58..cc33f90553f 100644 --- a/code/game/objects/items/weapons/circuitboards/machinery/shieldgen.dm +++ b/code/game/objects/items/weapons/circuitboards/machinery/shieldgen.dm @@ -2,6 +2,37 @@ #error T_BOARD macro is not defined but we need it! #endif +// +// New shield generator +// + +/obj/item/circuitboard/shield_generator + name = T_BOARD("advanced shield generator") + board_type = new /datum/frame/frame_types/machine + build_path = /obj/machinery/power/shield_generator + origin_tech = list(TECH_MAGNET = 3, TECH_POWER = 4, TECH_BLUESPACE = 2, TECH_ENGINEERING = 3) + req_components = list( + /obj/item/stock_parts/capacitor = 1, + /obj/item/stock_parts/micro_laser = 1, + /obj/item/smes_coil = 1, + /obj/item/stock_parts/console_screen = 1, + /obj/item/stock_parts/subspace/amplifier = 1, + /obj/item/stack/cable_coil = 5) + +/obj/item/circuitboard/shield_diffuser + name = T_BOARD("shield diffuser") + board_type = new /datum/frame/frame_types/machine + build_path = /obj/machinery/shield_diffuser + origin_tech = list(TECH_MAGNET = 4, TECH_POWER = 2, TECH_ILLEGAL = 1) + req_components = list( + /obj/item/stock_parts/capacitor = 1, + /obj/item/stock_parts/micro_laser = 1, + /obj/item/stock_parts/console_screen = 1) + +// +// Legacy shield generators +// + /obj/item/circuitboard/shield_gen_ex name = T_BOARD("hull shield generator") board_type = new /datum/frame/frame_types/machine diff --git a/code/game/objects/items/weapons/circuitboards/machinery/ships.dm b/code/game/objects/items/weapons/circuitboards/machinery/ships.dm index 5019a8fa11c..a46ad717f6f 100644 --- a/code/game/objects/items/weapons/circuitboards/machinery/ships.dm +++ b/code/game/objects/items/weapons/circuitboards/machinery/ships.dm @@ -4,16 +4,20 @@ /obj/item/circuitboard/pointdefense name = T_BOARD("point defense battery") + board_type = new /datum/frame/frame_types/machine desc = "Control systems for a Kuiper pattern point defense battery. Aim away from vessel." build_path = /obj/machinery/power/pointdefense origin_tech = list(TECH_ENGINEERING = 3, TECH_COMBAT = 2) req_components = list( - /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser = 1, - /obj/item/stock_parts/manipulator = 2, - /obj/item/stock_parts/capacitor = 2) + /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser = 1, + /obj/item/stock_parts/manipulator = 2, + /obj/item/stock_parts/capacitor = 2, + ) /obj/item/circuitboard/pointdefense_control name = T_BOARD("fire assist mainframe") + board_type = new /datum/frame/frame_types/machine desc = "A control computer to synchronize point defense batteries." build_path = /obj/machinery/pointdefense_control origin_tech = list(TECH_ENGINEERING = 3, TECH_COMBAT = 2) + req_components = list() diff --git a/code/modules/ai/ai_holder_combat.dm b/code/modules/ai/ai_holder_combat.dm index 2d7f1c59eb2..0b6d1882f3a 100644 --- a/code/modules/ai/ai_holder_combat.dm +++ b/code/modules/ai/ai_holder_combat.dm @@ -315,6 +315,12 @@ ai_log("destroy_surroundings() : Attacking hull shield.", AI_LOG_INFO) return holder.IAttack(shield) + // Kill energy shields in the way. + for(var/obj/effect/shield/S in problem_turf) + if(S.density) // Don't attack shields that are already down. + ai_log("destroy_surroundings() : Attacking energy shield.", AI_LOG_INFO) + return melee_attack(S) + // Kill common obstacle in the way like tables. var/obj/structure/obstacle = locate(/obj/structure, problem_turf) if(istype(obstacle, /obj/structure/window) || istype(obstacle, /obj/structure/closet) || istype(obstacle, /obj/structure/table) || istype(obstacle, /obj/structure/grille)) diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 749aa1c968a..f51fe59a78c 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -127,8 +127,8 @@ Code: /obj/item/assembly/signaler/pulse(var/radio = 0) if(is_jammed(src)) return FALSE - if(src.connected && src.wires) - connected.Pulse(src) + if(connected && wires) + connected.pulse_assembly(src) else if(holder) holder.process_activation(src, 1, 0) else diff --git a/code/modules/client/preference_setup/preference_setup.dm b/code/modules/client/preference_setup/preference_setup.dm index 4f7c4ed817a..1fd18f8d95f 100644 --- a/code/modules/client/preference_setup/preference_setup.dm +++ b/code/modules/client/preference_setup/preference_setup.dm @@ -1,9 +1,3 @@ -#define TOPIC_NOACTION 0 -#define TOPIC_HANDLED 1 -#define TOPIC_REFRESH 2 -#define TOPIC_UPDATE_PREVIEW 4 -#define TOPIC_REFRESH_UPDATE_PREVIEW (TOPIC_REFRESH|TOPIC_UPDATE_PREVIEW) - #define PREF_FBP_CYBORG "cyborg" #define PREF_FBP_POSI "posi" #define PREF_FBP_SOFTWARE "software" diff --git a/code/modules/clothing/spacesuits/rig/rig_wiring.dm b/code/modules/clothing/spacesuits/rig/rig_wiring.dm index f435b434451..211e85d1e19 100644 --- a/code/modules/clothing/spacesuits/rig/rig_wiring.dm +++ b/code/modules/clothing/spacesuits/rig/rig_wiring.dm @@ -1,13 +1,11 @@ /datum/wires/rig - random = 1 + randomize = TRUE holder_type = /obj/item/rig wire_count = 5 -#define RIG_SECURITY 1 -#define RIG_AI_OVERRIDE 2 -#define RIG_SYSTEM_CONTROL 4 -#define RIG_INTERFACE_LOCK 8 -#define RIG_INTERFACE_SHOCK 16 +/datum/wires/rig/New(atom/_holder) + wires = list(WIRE_RIG_SECURITY, WIRE_RIG_AI_OVERRIDE, WIRE_RIG_SYSTEM_CONTROL, WIRE_RIG_INTERFACE_LOCK, WIRE_RIG_INTERFACE_SHOCK) + return ..() /* * Rig security can be snipped to disable ID access checks on rig. * Rig AI override can be pulsed to toggle whether or not the AI can take control of the suit. @@ -15,50 +13,48 @@ * Interface lock can be pulsed to toggle whether or not the interface can be accessed. */ -/datum/wires/rig/UpdateCut(var/index, var/mended) - +/datum/wires/rig/on_cut(wire, mend) var/obj/item/rig/rig = holder - switch(index) - if(RIG_SECURITY) - if(mended) + switch(wire) + if(WIRE_RIG_SECURITY) + if(mend) rig.req_access = initial(rig.req_access) rig.req_one_access = initial(rig.req_one_access) - if(RIG_SYSTEM_CONTROL) - if(!mended) + if(WIRE_RIG_SYSTEM_CONTROL) + if(!mend) rig.shock(usr,100) // Intended to keep players from trying to mend in the middle of combat. Second way of getting shocked as pulsing this wire ALSO shocks you. - else if(mended) + else if(mend) rig.malfunctioning = 0 rig.malfunction_delay = 0 - if(RIG_INTERFACE_SHOCK) - rig.electrified = mended ? 0 : -1 + if(WIRE_RIG_INTERFACE_SHOCK) + rig.electrified = mend ? 0 : -1 rig.shock(usr,100) -/datum/wires/rig/UpdatePulsed(var/index) - +/datum/wires/rig/on_pulse(wire) var/obj/item/rig/rig = holder - switch(index) - if(RIG_SECURITY) + switch(wire) + if(WIRE_RIG_SECURITY) rig.security_check_enabled = !rig.security_check_enabled rig.visible_message("\The [rig] twitches as several suit locks [rig.security_check_enabled?"close":"open"].") - if(RIG_AI_OVERRIDE) + if(WIRE_RIG_AI_OVERRIDE) rig.ai_override_enabled = !rig.ai_override_enabled rig.visible_message("A small red light on [rig] [rig.ai_override_enabled?"goes dead":"flickers on"].") - if(RIG_SYSTEM_CONTROL) + if(WIRE_RIG_SYSTEM_CONTROL) rig.malfunctioning += 10 if(rig.malfunction_delay <= 0) rig.malfunction_delay = 20 rig.shock(usr,100) rig.visible_message("\The [rig] beeps stridently as a surge of power runs through it.") // Hints to the fact that if you pulse this while wearing it you get zappoed. - if(RIG_INTERFACE_LOCK) + if(WIRE_RIG_INTERFACE_LOCK) rig.interface_locked = !rig.interface_locked rig.visible_message("\The [rig] clicks audibly as the software interface [rig.interface_locked?"darkens":"brightens"].") - if(RIG_INTERFACE_SHOCK) + if(WIRE_RIG_INTERFACE_SHOCK) if(rig.electrified != -1) rig.electrified = 30 rig.shock(usr,100) -/datum/wires/rig/CanUse(var/mob/living/L) +/datum/wires/rig/interactable(mob/user) var/obj/item/rig/rig = holder if(rig.open) - return 1 - return 0 + return TRUE + return FALSE diff --git a/code/modules/events/camera_damage.dm b/code/modules/events/camera_damage.dm index 01a940375e0..c92cd965ed3 100644 --- a/code/modules/events/camera_damage.dm +++ b/code/modules/events/camera_damage.dm @@ -17,9 +17,9 @@ if(prob(2*severity)) cam.destroy() else - cam.wires.UpdateCut(CAMERA_WIRE_POWER, 0) + cam.wires.cut(WIRE_MAIN_POWER1) if(prob(5*severity)) - cam.wires.UpdateCut(CAMERA_WIRE_ALARM, 0) + cam.wires.cut(WIRE_CAM_ALARM) /datum/event/camera_damage/proc/acquire_random_camera(var/remaining_attempts = 5) if(!cameranet.cameras.len) diff --git a/code/modules/events/electrical_storm.dm b/code/modules/events/electrical_storm.dm index 49334e7ae82..870705079ac 100644 --- a/code/modules/events/electrical_storm.dm +++ b/code/modules/events/electrical_storm.dm @@ -35,8 +35,16 @@ /datum/event/electrical_storm/tick() ..() - // See if shields can stop it first (It would be nice to port baystation's cooler shield gens perhaps) - // TODO - We need a better shield generator system to handle this properly. + // See if shields can stop it first + var/list/shields = list() + for(var/obj/machinery/power/shield_generator/G in global.machines) + if((G.z in affecting_z) && G.running && G.check_flag(MODEFLAG_EM)) + shields += G + if(shields.len) + var/obj/machinery/power/shield_generator/shield_gen = pick(shields) + //Minor breaches aren't enough to let through frying amounts of power + if(shield_gen.deal_shield_damage(30 * severity, SHIELD_DAMTYPE_EM) <= SHIELD_BREACHED_MINOR) + return if(!valid_apcs.len) log_debug("No valid APCs found for electrical storm event ship=[victim]!") return diff --git a/code/modules/events/meteors.dm b/code/modules/events/meteors.dm index 0a58ba7563c..d87fa15b502 100644 --- a/code/modules/events/meteors.dm +++ b/code/modules/events/meteors.dm @@ -2,7 +2,8 @@ startWhen = 30 // About one minute early warning endWhen = 60 // Adjusted automatically in tick() has_skybox_image = TRUE - var/next_meteor = 6 + var/alarmWhen = 30 + var/next_meteor = 40 var/waves = 1 var/start_side var/next_meteor_lower = 10 @@ -31,6 +32,12 @@ command_announcement.Announce("\The [location_name()] is now in a meteor shower.", "Meteor Alert") /datum/event/meteor_wave/tick() + // Begin sending the alarm signals to shield diffusers so the field is already regenerated (if it exists) by the time actual meteors start flying around. + if(activeFor >= alarmWhen) + for(var/obj/machinery/shield_diffuser/SD in global.machines) + if(SD.z in affecting_z) + SD.meteor_alarm(10) + if(waves && activeFor >= next_meteor) send_wave() @@ -69,6 +76,7 @@ next_meteor_lower = 5 next_meteor_upper = 10 next_meteor = 0 + alarmWhen = 0 /datum/event/meteor_wave/overmap/announce() command_announcement.Announce("Meteors have been detected on collision course with \the [location_name()].", "Meteor Alert", new_sound = 'sound/AI/meteors.ogg') diff --git a/code/modules/gamemaster/actions/camera_damage.dm b/code/modules/gamemaster/actions/camera_damage.dm index 293c20e7eaf..c13b81702d9 100644 --- a/code/modules/gamemaster/actions/camera_damage.dm +++ b/code/modules/gamemaster/actions/camera_damage.dm @@ -28,9 +28,9 @@ if(prob(2*severity)) cam.destroy() else - cam.wires.UpdateCut(CAMERA_WIRE_POWER, 0) + cam.wires.cut(WIRE_MAIN_POWER1) if(prob(5*severity)) - cam.wires.UpdateCut(CAMERA_WIRE_ALARM, 0) + cam.wires.cut(WIRE_CAM_ALARM) /datum/gm_action/camera_damage/proc/acquire_random_camera(var/remaining_attempts = 5) if(!cameranet.cameras.len) diff --git a/code/modules/mob/_modifiers/modifiers.dm b/code/modules/mob/_modifiers/modifiers.dm index 2bcb0ce0ac8..7d1de3088e9 100644 --- a/code/modules/mob/_modifiers/modifiers.dm +++ b/code/modules/mob/_modifiers/modifiers.dm @@ -20,6 +20,7 @@ var/light_intensity = null // Ditto. Not implemented yet. var/mob_overlay_state = null // Icon_state for an overlay to apply to a (human) mob while this exists. This is actually implemented. var/client_color = null // If set, the client will have the world be shown in this color, from their perspective. + var/wire_colors_replace = null // If set, the client will have wires replaced by the given replacement list. For colorblindness. // Now for all the different effects. // Percentage modifiers are expressed as a multipler. (e.g. +25% damage should be written as 1.25) diff --git a/code/modules/mob/_modifiers/traits.dm b/code/modules/mob/_modifiers/traits.dm index b15ece941e3..aebfaa893a3 100644 --- a/code/modules/mob/_modifiers/traits.dm +++ b/code/modules/mob/_modifiers/traits.dm @@ -127,33 +127,39 @@ desc = "You have a form of red-green colorblindness. You cannot see reds, and have trouble distinguishing them from yellows and greens." client_color = MATRIX_Protanopia + wire_colors_replace = PROTANOPIA_COLOR_REPLACE /datum/modifier/trait/colorblind_deuteranopia name = "Deuteranopia" desc = "You have a form of red-green colorblindness. You cannot see greens, and have trouble distinguishing them from yellows and reds." client_color = MATRIX_Deuteranopia + wire_colors_replace = DEUTERANOPIA_COLOR_REPLACE /datum/modifier/trait/colorblind_tritanopia name = "Tritanopia" desc = "You have a form of blue-yellow colorblindness. You have trouble distinguishing between blues, greens, and yellows, and see blues and violets as dim." client_color = MATRIX_Tritanopia + wire_colors_replace = TRITANOPIA_COLOR_REPLACE /datum/modifier/trait/colorblind_taj name = "Colorblind - Blue-red" desc = "You are colorblind. You have a minor issue with blue colors and have difficulty recognizing them from red colors." client_color = MATRIX_Taj_Colorblind + wire_colors_replace = TRITANOPIA_COLOR_REPLACE /datum/modifier/trait/colorblind_vulp name = "Colorblind - Red-green" desc = "You are colorblind. You have a severe issue with green colors and have difficulty recognizing them from red colors." client_color = MATRIX_Vulp_Colorblind + wire_colors_replace = PROTANOPIA_COLOR_REPLACE /datum/modifier/trait/colorblind_monochrome name = "Monochromacy" desc = "You are fully colorblind. Your condition is rare, but you can see no colors at all." client_color = MATRIX_Monochromia + wire_colors_replace = GREYSCALE_COLOR_REPLACE diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 86064ce2340..a6de7c63427 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -270,9 +270,9 @@ var/list/slot_equipment_priority = list( \ //This differs from remove_from_mob() in that it checks if the item can be unequipped first. /mob/proc/unEquip(obj/item/I, force = 0, target) //Force overrides NODROP for things like wizarditis and admin undress. if(!(force || canUnEquip(I))) - return + return FALSE drop_from_inventory(I, target) - return 1 + return TRUE //Attemps to remove an object on a mob. diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index d7b48f37fdb..03187e45df6 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -69,7 +69,7 @@ /mob/living/silicon/robot/handle_regular_UI_updates() if(src.camera && !scrambledcodes) - if(src.stat == 2 || wires.IsIndexCut(BORG_WIRE_CAMERA)) + if(src.stat == 2 || wires.is_cut(WIRE_BORG_CAMERA)) src.camera.set_status(0) else src.camera.set_status(1) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 2be258fad0b..e0577db8a3a 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -161,7 +161,7 @@ camera = new /obj/machinery/camera(src) camera.c_tag = real_name camera.replace_networks(list(NETWORK_DEFAULT,NETWORK_ROBOTS)) - if(wires.IsIndexCut(BORG_WIRE_CAMERA)) + if(wires.is_cut(WIRE_BORG_CAMERA)) camera.status = 0 init() @@ -569,7 +569,7 @@ to_chat(user, "You close the cover.") opened = 0 updateicon() - else if(wiresexposed && wires.IsAllCut()) + else if(wiresexposed && wires.is_all_cut()) //Cell is out, wires are exposed, remove MMI, produce damaged chassis, baleet original mob. if(!mmi) to_chat(user, "\The [src] has no brain to remove.") @@ -1014,7 +1014,7 @@ /mob/living/silicon/robot/proc/SetLockdown(var/state = 1) // They stay locked down if their wire is cut. - if(wires.LockedCut()) + if(wires.is_cut(WIRE_BORG_LOCKED)) state = 1 lockdown = state lockcharge = state diff --git a/code/modules/nifsoft/nif_softshop.dm b/code/modules/nifsoft/nif_softshop.dm index bdbe5c2ded6..0d0c0b6d5c5 100644 --- a/code/modules/nifsoft/nif_softshop.dm +++ b/code/modules/nifsoft/nif_softshop.dm @@ -21,6 +21,10 @@ /obj/machinery/vending/nifsoft_shop/Initialize(mapload) . = ..() + + if(wires) + qdel(wires) + wires = new /datum/wires/vending/no_contraband(src) //These wires can't be hacked for contraband. entopic = new(aholder = src, aicon = icon, aicon_state = "beacon") /obj/machinery/vending/nifsoft_shop/Destroy() @@ -72,9 +76,9 @@ list(premium, CAT_COIN)) for(var/current_list in all_products) - var/category = current_list[2] + var/category = current_list[CAT_HIDDEN] - for(var/entry in current_list[1]) + for(var/entry in current_list[CAT_NORMAL]) var/datum/nifsoft/NS = entry var/applies_to = initial(NS.applies_to) var/context = "" @@ -141,7 +145,7 @@ if(initial(path.access)) var/list/soft_access = list(initial(path.access)) var/list/usr_access = usr.GetAccess() - if(!has_access(soft_access, list(), usr_access) && !emagged) + if(scan_id && !has_access(soft_access, list(), usr_access) && !emagged) to_chat(usr, "You aren't authorized to buy [initial(path.name)].") flick(icon_deny,entopic.my_image) return @@ -217,3 +221,21 @@ currently_vending = null SSnanoui.update_uis(src) return 1 + +//Can't throw intangible software at people. +/obj/machinery/vending/nifsoft_shop/throw_item() + //TODO: Make it throw disks at people with random software? That might be fun. EVEN THE ILLEGAL ONES? ;o + return 0 + +/datum/wires/vending/no_contraband + +/datum/wires/vending/no_contraband/on_pulse(index) //Can't hack for contraband, need emag. + if(index != WIRE_CONTRABAND) + ..(index) + +/obj/machinery/vending/nifsoft_shop/emag_act(remaining_charges, mob/user) //Yeees, YEEES! Give me that black market tech. + if(!emagged || !(categories & CAT_HIDDEN)) + emagged = 1 + categories |= CAT_HIDDEN + to_chat(user, "You short out [src]'s access lock & stock restrictions.") + return 1 diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 91744fa1f49..6f497b752ae 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -547,7 +547,7 @@ else if(hacker) to_chat(user,"Access denied.") else - if(src.allowed(usr) && !isWireCut(APC_WIRE_IDSCAN)) + if(src.allowed(usr) && !wires.is_cut(WIRE_IDSCAN)) locked = !locked to_chat(user,"You [ locked ? "lock" : "unlock"] the APC interface.") update_icon() @@ -691,15 +691,13 @@ //Altclick APCs to toggle the controlls /obj/machinery/power/apc/AltClick(mob/user) if(user.Adjacent(src)) - if(src.allowed(usr) && !isWireCut(APC_WIRE_IDSCAN)) + if(src.allowed(usr) && !wires.is_cut(WIRE_IDSCAN)) locked = !locked to_chat(user,"You [ locked ? "lock" : "unlock"] the APC interface.") update_icon() else to_chat(user,"Access denied.") - - /obj/machinery/power/apc/emag_act(var/remaining_charges, var/mob/user) if (!(emagged || hacker)) // trying to unlock with an emag card if(opened) @@ -718,9 +716,9 @@ return 1 /obj/machinery/power/apc/blob_act() - if(!wires.IsAllCut()) + if(!wires.is_all_cut()) wiresexposed = TRUE - wires.CutAll() + wires.cut_all() update_icon() /obj/machinery/power/apc/attack_hand(mob/user) @@ -739,7 +737,7 @@ user.visible_message("[user.name] slashes at the [src.name]!", "You slash at the [src.name]!") playsound(src.loc, 'sound/weapons/slash.ogg', 100, 1) - var/allcut = wires.IsAllCut() + var/allcut = wires.is_all_cut() if(beenhit >= pick(3, 4) && wiresexposed != 1) wiresexposed = 1 @@ -747,7 +745,7 @@ src.visible_message("The [src.name]'s cover flies open, exposing the wires!") else if(wiresexposed == 1 && allcut == 0) - wires.CutAll() + wires.cut_all() src.update_icon() src.visible_message("The [src.name]'s wires are shredded!") else @@ -900,73 +898,7 @@ if("overload") if(locked_exception) // Reusing for simplicity! overload_lighting() -/* -/obj/machinery/power/apc/nano_ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) - if(!user) - return - var/list/data = list( - "locked" = locked, - "emagged" = emagged, - "isOperating" = operating, - "externalPower" = main_status, - "powerCellStatus" = cell ? cell.percent() : null, - "chargeMode" = chargemode, - "chargingStatus" = charging, - "totalLoad" = round(lastused_total), - "totalCharging" = round(lastused_charging), - "failTime" = failure_timer * 2, - "gridCheck" = grid_check, - "coverLocked" = coverlocked, - "siliconUser" = issilicon(user) || isobserver(user), //I add observer here so admins can have more control, even if it makes 'siliconUser' seem inaccurate. - - "powerChannels" = list( - list( - "title" = "Equipment", - "powerLoad" = lastused_equip, - "status" = equipment, - "topicParams" = list( - "auto" = list("eqp" = 3), - "on" = list("eqp" = 2), - "off" = list("eqp" = 1) - ) - ), - list( - "title" = "Lighting", - "powerLoad" = round(lastused_light), - "status" = lighting, - "topicParams" = list( - "auto" = list("lgt" = 3), - "on" = list("lgt" = 2), - "off" = list("lgt" = 1) - ) - ), - list( - "title" = "Environment", - "powerLoad" = round(lastused_environ), - "status" = environ, - "topicParams" = list( - "auto" = list("env" = 3), - "on" = list("env" = 2), - "off" = list("env" = 1) - ) - ) - ) - ) - - // update the ui if it exists, returns null if no ui is passed/found - ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) - if (!ui) - // the ui does not exist, so we'll create a new() one - // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm - ui = new(user, src, ui_key, "apc.tmpl", "[area.name] - APC", 520, data["siliconUser"] ? 465 : 440) - // when the ui is first opened this is the data it will use - ui.set_initial_data(data) - // open the new ui window - ui.open() - // auto update every Master Controller tick - ui.set_auto_update(1) -*/ /obj/machinery/power/apc/proc/report() return "[area.name] : [equipment]/[lighting]/[environ] ([lastused_equip+lastused_light+lastused_environ]) : [cell? cell.percent() : "N/C"] ([charging])" @@ -986,9 +918,6 @@ // to_chat(world, "[area.power_equip]") area.power_change() -/obj/machinery/power/apc/proc/isWireCut(var/wireIndex) - return wires.IsIndexCut(wireIndex) - /obj/machinery/power/apc/proc/can_use(mob/user as mob, var/loud = 0) //used by attack_hand() and Topic() if(!user.client) return 0 diff --git a/code/modules/power/singularity/particle_accelerator/particle_control.dm b/code/modules/power/singularity/particle_accelerator/particle_control.dm index 6faf7c5216b..f07e0641b65 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_control.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_control.dm @@ -91,17 +91,17 @@ return if(href_list["togglep"]) - if(!wires.IsIndexCut(PARTICLE_TOGGLE_WIRE)) + if(!wires.is_cut(WIRE_PARTICLE_POWER)) toggle_power() else if(href_list["scan"]) part_scan() else if(href_list["strengthup"]) - if(!wires.IsIndexCut(PARTICLE_STRENGTH_WIRE)) + if(!wires.is_cut(WIRE_PARTICLE_STRENGTH)) add_strength() else if(href_list["strengthdown"]) - if(!wires.IsIndexCut(PARTICLE_STRENGTH_WIRE)) + if(!wires.is_cut(WIRE_PARTICLE_STRENGTH)) remove_strength() updateDialog() diff --git a/code/modules/research/designs/circuits/circuits.dm b/code/modules/research/designs/circuits/circuits.dm index 9a3f9c635cf..d78b4ca324e 100644 --- a/code/modules/research/designs/circuits/circuits.dm +++ b/code/modules/research/designs/circuits/circuits.dm @@ -614,36 +614,6 @@ CIRCUITS BELOW build_path = /obj/item/circuitboard/telecomms/exonet_node sort_string = "PAAAH" -/datum/design/circuit/shield - req_tech = list(TECH_BLUESPACE = 4, TECH_PHORON = 3) - materials = list("glass" = 2000, "gold" = 1000) - -/datum/design/circuit/shield/AssembleDesignName() - name = "Shield generator circuit design ([name])" -/datum/design/circuit/shield/AssembleDesignDesc() - if(!desc) - desc = "Allows for the construction of \a [name] shield generator." - -/datum/design/circuit/shield/bubble - name = "bubble" - id = "shield_gen" - build_path = /obj/item/circuitboard/shield_gen - sort_string = "VAAAZ" // Duplicate string, really need to redo this whole thing - -/datum/design/circuit/shield/hull - name = "hull" - id = "shield_gen_ex" - build_path = /obj/item/circuitboard/shield_gen_ex - sort_string = "VAAAB" - -/datum/design/circuit/shield/capacitor - name = "capacitor" - desc = "Allows for the construction of a shield capacitor circuit board." - id = "shield_cap" - req_tech = list(TECH_MAGNET = 3, TECH_POWER = 4) - build_path = /obj/item/circuitboard/shield_cap - sort_string = "VAAAC" - /datum/design/circuit/ntnet_relay name = "NTNet Quantum Relay" id = "ntnet_relay" @@ -664,6 +634,21 @@ CIRCUITS BELOW req_tech = list(TECH_DATA = 4, TECH_BIO = 3) build_path = /obj/item/circuitboard/dnarevive sort_string = "ZAAAA" + +/datum/design/circuit/shield_generator + name = "shield generator" + id = "shield_generator" + req_tech = list(TECH_MAGNET = 3, TECH_POWER = 4, TECH_BLUESPACE = 2, TECH_ENGINEERING = 3) + build_path = /obj/item/circuitboard/shield_generator + sort_string = "OAAAA" + +/datum/design/circuit/shield_diffuser + name = "shield diffuser" + id = "shield_diffuser" + req_tech = list(TECH_MAGNET = 4, TECH_POWER = 2, TECH_ENGINEERING = 5) + build_path = /obj/item/circuitboard/shield_diffuser + sort_string = "OAAAB" + /datum/design/circuit/pointdefense name = "point defense battery" id = "pointdefense" diff --git a/code/modules/shieldgen/energy_field.dm b/code/modules/shieldgen/energy_field.dm index 549162333a0..323bcc44733 100644 --- a/code/modules/shieldgen/energy_field.dm +++ b/code/modules/shieldgen/energy_field.dm @@ -14,10 +14,10 @@ icon = 'icons/obj/machines/shielding.dmi' icon_state = "shield" alpha = 100 - anchored = 1 + anchored = TRUE plane = MOB_PLANE layer = ABOVE_MOB_LAYER - density = 0 + density = FALSE can_atmos_pass = ATMOS_PASS_YES var/obj/machinery/shield_gen/my_gen = null var/strength = 0 // in Renwicks @@ -146,4 +146,3 @@ for(var/obj/effect/energy_field/F in T) if(!(F in affected_shields)) F.impact_effect(i, affected_shields) // Spread the effect to them. - diff --git a/code/modules/shieldgen/energy_shield.dm b/code/modules/shieldgen/energy_shield.dm new file mode 100644 index 00000000000..2fb3048f600 --- /dev/null +++ b/code/modules/shieldgen/energy_shield.dm @@ -0,0 +1,339 @@ +// +// This is the shield effect object for the supercool shield gens. +// +/obj/effect/shield + name = "energy shield" + desc = "An impenetrable field of energy, capable of blocking anything as long as it's active." + icon = 'icons/obj/machines/shielding_vr.dmi' + icon_state = "shield_normal" + anchored = TRUE + plane = MOB_PLANE + layer = ABOVE_MOB_LAYER + density = FALSE + invisibility = 0 + var/obj/machinery/power/shield_generator/gen = null // Owning generator + var/disabled_for = 0 + var/diffused_for = 0 + can_atmos_pass = ATMOS_PASS_YES + +/obj/effect/shield/update_icon() + if(gen && gen.check_flag(MODEFLAG_PHOTONIC) && !disabled_for && !diffused_for) + set_opacity(1) + else + set_opacity(0) + + if(gen && gen.check_flag(MODEFLAG_OVERCHARGE)) + icon_state = "shield_overcharged" + else + icon_state = "shield_normal" + + if(density) + set_light(3, 3, "#66FFFF") + else + set_light(0) + + +// Prevents singularities and pretty much everything else from moving the field segments away. +// The only thing that is allowed to move us is the Destroy() proc. +/obj/effect/shield/forceMove() + if(QDELING(src)) + return ..() + return 0 + +/obj/effect/shield/Destroy() + if(can_atmos_pass != ATMOS_PASS_YES) + update_nearby_tiles() + . = ..() + if(gen) + if(src in gen.field_segments) + gen.field_segments -= src + if(src in gen.damaged_segments) + gen.damaged_segments -= src + gen = null + +// Temporarily collapses this shield segment. +/obj/effect/shield/proc/fail(var/duration) + if(duration <= 0) + return + + if(gen) + gen.damaged_segments |= src + disabled_for += duration + set_density(0) + set_invisibility(INVISIBILITY_MAXIMUM) + update_nearby_tiles() + update_icon() + update_explosion_resistance() + + +// Regenerates this shield segment. +/obj/effect/shield/proc/regenerate() + if(!gen) + return + + disabled_for = max(0, disabled_for - 1) + diffused_for = max(0, diffused_for - 1) + + if(!disabled_for && !diffused_for) + set_density(1) + set_invisibility(0) + update_nearby_tiles() + update_icon() + update_explosion_resistance() + gen.damaged_segments -= src + + +/obj/effect/shield/proc/diffuse(var/duration) + // The shield is trying to counter diffusers. Cause lasting stress on the shield. + if(gen.check_flag(MODEFLAG_BYPASS) && !disabled_for) + take_damage(duration * rand(8, 12), SHIELD_DAMTYPE_EM) + return + + diffused_for = max(duration, 0) + gen.damaged_segments |= src + set_density(0) + set_invisibility(INVISIBILITY_MAXIMUM) + update_nearby_tiles() + update_icon() + update_explosion_resistance() + +/obj/effect/shield/attack_generic(var/source, var/damage, var/emote) + take_damage(damage, SHIELD_DAMTYPE_PHYSICAL) + if(gen.check_flag(MODEFLAG_OVERCHARGE) && istype(source, /mob/living/)) + overcharge_shock(source) + ..(source, damage, emote) + + +// Fails shield segments in specific range. Range of 1 affects the shielded turf only. +/obj/effect/shield/proc/fail_adjacent_segments(var/range, var/hitby = null) + if(hitby) + visible_message("\The [src] flashes a bit as \the [hitby] collides with it, eventually fading out in a rain of sparks!") + else + visible_message("\The [src] flashes a bit as it eventually fades out in a rain of sparks!") + fail(range * 2) + + for(var/obj/effect/shield/S in range(range, src)) + // Don't affect shields owned by other shield generators + if(S.gen != src.gen) + continue + // The closer we are to impact site, the longer it takes for shield to come back up. + S.fail(-(-range + get_dist(src, S)) * 2) + +// Small visual effect, makes the shield tiles brighten up by becoming more opaque for a moment, and spreads to nearby shields. +/obj/effect/shield/proc/flash_adjacent_segments(var/range) + range = between(1, range, 10) // Sanity check + for(var/obj/effect/shield/S in range(range, src)) + // Don't affect shields owned by other shield generators + if(S.gen != src.gen || S == src) + continue + // Note: Range is a non-exact aproximation of the spread effect. If it doesn't look good + // we'll need to switch to actually walking along the shields to get exact number of steps away. + addtimer(CALLBACK(S, .proc/impact_flash), get_dist(src, S) * 2) + impact_flash() + +// Small visual effect, makes the shield tiles brighten up by becoming more opaque for a moment +/obj/effect/shield/proc/impact_flash() + alpha = 100 + animate(src, alpha = initial(alpha), time = 1 SECOND) + +// Just for fun +/obj/effect/shield/attack_hand(var/user) + flash_adjacent_segments(3) + +/obj/effect/shield/take_damage(var/damage, var/damtype, var/hitby) + if(!gen) + qdel(src) + return + + if(!damtype) + crash_with("CANARY: shield.take_damage() callled without damtype.") + + if(!damage) + return + + damage = round(damage) + + new /obj/effect/temp_visual/shield_impact_effect(get_turf(src)) + + switch(gen.deal_shield_damage(damage, damtype)) + if(SHIELD_ABSORBED) + flash_adjacent_segments(round(damage/10)) // Nice visual effect only. + return + if(SHIELD_BREACHED_MINOR) + fail_adjacent_segments(rand(1, 3), hitby) + return + if(SHIELD_BREACHED_MAJOR) + fail_adjacent_segments(rand(2, 5), hitby) + return + if(SHIELD_BREACHED_CRITICAL) + fail_adjacent_segments(rand(4, 8), hitby) + return + if(SHIELD_BREACHED_FAILURE) + fail_adjacent_segments(rand(8, 16), hitby) + return + + +// As we have various shield modes, this handles whether specific things can pass or not. +/obj/effect/shield/CanAllowThrough(var/atom/movable/mover, var/turf/target) + . = ..() + // Somehow we don't have a generator. This shouldn't happen. Delete the shield. + if(!gen) + qdel(src) + return 1 + + if(disabled_for || diffused_for) + return 1 + + if(mover) + return mover.can_pass_shield(gen) + return 1 + +/obj/effect/shield/proc/set_can_atmos_pass(var/new_value) + if(new_value == can_atmos_pass) + return + can_atmos_pass = new_value + update_nearby_tiles() + + +// EMP. It may seem weak but keep in mind that multiple shield segments are likely to be affected. +/obj/effect/shield/emp_act(var/severity) + if(!disabled_for) + take_damage(rand(30,60) / severity, SHIELD_DAMTYPE_EM) + + +// Explosions +/obj/effect/shield/ex_act(var/severity) + if(!disabled_for) + take_damage(rand(10,15) / severity, SHIELD_DAMTYPE_PHYSICAL) + + +// Fire +/obj/effect/shield/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(!disabled_for) + take_damage(rand(5,10), SHIELD_DAMTYPE_HEAT) + + +// Projectiles +/obj/effect/shield/bullet_act(var/obj/item/projectile/proj) + if(proj.damage_type == BURN) + take_damage(proj.get_structure_damage(), SHIELD_DAMTYPE_HEAT) + else if (proj.damage_type == BRUTE) + take_damage(proj.get_structure_damage(), SHIELD_DAMTYPE_PHYSICAL) + else + take_damage(proj.get_structure_damage(), SHIELD_DAMTYPE_EM) + + +// Attacks with hand tools. Blocked by Hyperkinetic flag. +/obj/effect/shield/attackby(var/obj/item/I as obj, var/mob/user as mob) + user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN) + user.do_attack_animation(src) + + if(gen.check_flag(MODEFLAG_HYPERKINETIC)) + user.visible_message("\The [user] hits \the [src] with \the [I]!") + if(I.damtype == BURN) + take_damage(I.force, SHIELD_DAMTYPE_HEAT) + else if (I.damtype == BRUTE) + take_damage(I.force, SHIELD_DAMTYPE_PHYSICAL) + else + take_damage(I.force, SHIELD_DAMTYPE_EM) + else + user.visible_message("\The [user] tries to attack \the [src] with \the [I], but it passes through!") + + +// Special treatment for meteors because they would otherwise penetrate right through the shield. +/obj/effect/shield/Bumped(var/atom/movable/mover) + if(!gen) + qdel(src) + return 0 + mover.shield_impact(src) + return ..() + +// Meteors call this instad of Bumped for some reason +/obj/effect/shield/handle_meteor_impact(var/obj/effect/meteor/meteor) + meteor.shield_impact(src) + return !QDELETED(meteor) // If it was stopped it will have been deleted + +/obj/effect/shield/proc/overcharge_shock(var/mob/living/M) + M.adjustFireLoss(rand(20, 40)) + M.Weaken(5) + to_chat(M, "As you come into contact with \the [src] a surge of energy paralyses you!") + take_damage(10, SHIELD_DAMTYPE_EM) + +// Called when a flag is toggled. Can be used to add on-toggle behavior, such as visual changes. +/obj/effect/shield/proc/flags_updated() + if(!gen) + qdel(src) + return + + // Update airflow - If atmospheric we block air as long as we're enabled (density works for this) + set_can_atmos_pass(gen.check_flag(MODEFLAG_ATMOSPHERIC) ? ATMOS_PASS_DENSITY : ATMOS_PASS_YES) + update_icon() + update_explosion_resistance() + +/obj/effect/shield/proc/update_explosion_resistance() + if(gen && gen.check_flag(MODEFLAG_HYPERKINETIC)) + explosion_resistance = INFINITY + else + explosion_resistance = 0 + +// +// Visual effect of shield taking impact +// +/obj/effect/temp_visual/shield_impact_effect + name = "shield impact" + icon = 'icons/obj/machines/shielding_vr.dmi' + icon_state = "shield_impact" + plane = MOB_PLANE + layer = ABOVE_MOB_LAYER + duration = 2 SECONDS + randomdir = FALSE + +// +// Shield collision checks below +// + +// Called only if shield is active/not destroyed etc. +/atom/movable/proc/can_pass_shield(var/obj/machinery/power/shield_generator/gen) + return 1 + + +// Other mobs +/mob/living/can_pass_shield(var/obj/machinery/power/shield_generator/gen) + return !gen.check_flag(MODEFLAG_NONHUMANS) + +// Human mobs +/mob/living/carbon/human/can_pass_shield(var/obj/machinery/power/shield_generator/gen) + if(isSynthetic()) + return !gen.check_flag(MODEFLAG_ANORGANIC) + return !gen.check_flag(MODEFLAG_HUMANOIDS) + +// Silicon mobs +/mob/living/silicon/can_pass_shield(var/obj/machinery/power/shield_generator/gen) + return !gen.check_flag(MODEFLAG_ANORGANIC) + + +// Generic objects. Also applies to bullets and meteors. +/obj/can_pass_shield(var/obj/machinery/power/shield_generator/gen) + return !gen.check_flag(MODEFLAG_HYPERKINETIC) + +// Beams +/obj/item/projectile/beam/can_pass_shield(var/obj/machinery/power/shield_generator/gen) + return !gen.check_flag(MODEFLAG_PHOTONIC) + + +// Shield on-impact logic here. This is called only if the object is actually blocked by the field (can_pass_shield applies first) +/atom/movable/proc/shield_impact(var/obj/effect/shield/S) + return + +/mob/living/shield_impact(var/obj/effect/shield/S) + if(!S.gen.check_flag(MODEFLAG_OVERCHARGE)) + return + S.overcharge_shock(src) + +/obj/effect/meteor/shield_impact(var/obj/effect/shield/S) + if(!S.gen.check_flag(MODEFLAG_HYPERKINETIC)) + return + S.take_damage(get_shield_damage(), SHIELD_DAMTYPE_PHYSICAL, src) + visible_message("\The [src] breaks into dust!") + make_debris() + qdel(src) diff --git a/code/modules/shieldgen/handheld_defuser.dm b/code/modules/shieldgen/handheld_defuser.dm index de395d769ac..4fadd6a77c9 100644 --- a/code/modules/shieldgen/handheld_defuser.dm +++ b/code/modules/shieldgen/handheld_defuser.dm @@ -1,9 +1,10 @@ /obj/item/shield_diffuser name = "portable shield diffuser" - desc = "A small handheld device designed to disrupt energy barriers" + desc = "A small handheld device designed to disrupt energy barriers." description_info = "This device disrupts shields on directly adjacent tiles (in a + shaped pattern), in a similar way the floor mounted variant does. It is, however, portable and run by an internal battery. Can be recharged with a regular recharger." icon = 'icons/obj/machines/shielding.dmi' icon_state = "hdiffuser_off" + origin_tech = list(TECH_MAGNET = 5, TECH_POWER = 5, TECH_ILLEGAL = 2) w_class = ITEMSIZE_SMALL var/obj/item/cell/device/cell = /obj/item/cell/device var/enabled = 0 @@ -25,10 +26,15 @@ /obj/item/shield_diffuser/process(delta_time) if(!enabled) - return + return PROCESS_KILL for(var/direction in GLOB.cardinal) var/turf/simulated/shielded_tile = get_step(get_turf(src), direction) + for(var/obj/effect/shield/S in shielded_tile) + // 10kJ per pulse, but gap in the shield lasts for longer than regular diffusers. + if(istype(S) && !S.diffused_for && !S.disabled_for && cell.checked_use(10 KILOWATTS * CELLRATE)) + S.diffuse(20) + // Legacy shield support for(var/obj/effect/energy_field/S in shielded_tile) if(istype(S) && cell.checked_use(10 KILOWATTS * CELLRATE)) qdel(S) @@ -39,19 +45,19 @@ else icon_state = "hdiffuser_off" -/obj/item/shield_diffuser/attack_self() +/obj/item/shield_diffuser/attack_self(mob/user) enabled = !enabled update_icon() if(enabled) START_PROCESSING(SSobj, src) else STOP_PROCESSING(SSobj, src) - to_chat(usr, "You turn \the [src] [enabled ? "on" : "off"].") + to_chat(user, "You turn \the [src] [enabled ? "on" : "off"].") -/obj/item/shield_diffuser/examine() +/obj/item/shield_diffuser/examine(mob/user) . = ..() - to_chat(usr, "The charge meter reads [cell ? cell.percent() : 0]%") - to_chat(usr, "It is [enabled ? "enabled" : "disabled"].") + to_chat(user, "The charge meter reads [cell ? cell.percent() : 0]%") + to_chat(user, "It is [enabled ? "enabled" : "disabled"].") /obj/item/shield_diffuser/attack_hand(mob/user as mob) if(user.get_inactive_hand() == src) diff --git a/code/modules/shieldgen/shield_diffuser.dm b/code/modules/shieldgen/shield_diffuser.dm index 44e96e1a5f7..94344b4f401 100644 --- a/code/modules/shieldgen/shield_diffuser.dm +++ b/code/modules/shieldgen/shield_diffuser.dm @@ -4,28 +4,34 @@ description_info = "This device disrupts shields on directly adjacent tiles (in a + shaped pattern). They are commonly installed around exterior airlocks to prevent shields from blocking EVA access." icon = 'icons/obj/machines/shielding.dmi' icon_state = "fdiffuser_on" + circuit = /obj/item/circuitboard/shield_diffuser use_power = USE_POWER_ACTIVE idle_power_usage = 25 // Previously 100. active_power_usage = 500 // Previously 2000 - anchored = 1 - density = 0 + anchored = TRUE + density = FALSE level = 1 - var/alarm = 0 - var/enabled = 1 + var/alarm = FALSE + var/enabled = TRUE /obj/machinery/shield_diffuser/Initialize(mapload) . = ..() + // TODO - Remove this bit once machines are converted to Initialize + if(ispath(circuit)) + circuit = new circuit(src) + default_apply_parts() + var/turf/T = get_turf(src) hide(!T.is_plating()) -//If underfloor, hide the cable +//If underfloor, hide the cable^H^H diffuser /obj/machinery/shield_diffuser/hide(var/i) if(istype(loc, /turf)) invisibility = i ? 101 : 0 update_icon() /obj/machinery/shield_diffuser/hides_under_flooring() - return 1 + return TRUE /obj/machinery/shield_diffuser/process(delta_time) if(alarm) @@ -38,6 +44,9 @@ return for(var/direction in GLOB.cardinal) var/turf/simulated/shielded_tile = get_step(get_turf(src), direction) + for(var/obj/effect/shield/S in shielded_tile) + S.diffuse(5) + // Legacy shield support for(var/obj/effect/energy_field/S in shielded_tile) qdel(S) @@ -50,16 +59,27 @@ else icon_state = "fdiffuser_on" -/obj/machinery/shield_diffuser/attack_hand() +/obj/machinery/shield_diffuser/attack_hand(mob/user as mob) + if((. = ..())) + return if(alarm) - to_chat(usr, "You press an override button on \the [src], re-enabling it.") + to_chat(user, "You press an override button on \the [src], re-enabling it.") alarm = 0 update_icon() return enabled = !enabled update_use_power(enabled ? USE_POWER_ACTIVE : USE_POWER_IDLE) update_icon() - to_chat(usr, "You turn \the [src] [enabled ? "on" : "off"].") + to_chat(user, "You turn \the [src] [enabled ? "on" : "off"].") + +/obj/machinery/shield_diffuser/attackby(var/obj/item/W, var/mob/user) + if(default_deconstruction_screwdriver(user, W)) + return + if(default_deconstruction_crowbar(user, W)) + return + if(default_part_replacement(user, W)) + return + return ..() /obj/machinery/shield_diffuser/proc/meteor_alarm(var/duration) if(!duration) @@ -69,6 +89,6 @@ /obj/machinery/shield_diffuser/examine(var/mob/user) . = ..() - . += "It is [enabled ? "enabled" : "disabled"]." + to_chat(user, "It is [enabled ? "enabled" : "disabled"].") if(alarm) - . += "A red LED labeled \"Proximity Alarm\" is blinking on the control panel." + to_chat(user, "A red LED labeled \"Proximity Alarm\" is blinking on the control panel.") diff --git a/code/modules/shieldgen/shield_generator.dm b/code/modules/shieldgen/shield_generator.dm new file mode 100644 index 00000000000..cced3108303 --- /dev/null +++ b/code/modules/shieldgen/shield_generator.dm @@ -0,0 +1,562 @@ +// +// This generator is for the supercool big shields intended for ships that do nice stuff with overmaps. +// +/obj/machinery/power/shield_generator + name = "advanced shield generator" + desc = "A heavy-duty shield generator and capacitor, capable of generating energy shields at large distances." + icon = 'icons/obj/machines/shielding_vr.dmi' + icon_state = "generator0" + circuit = /obj/item/circuitboard/shield_generator + density = TRUE + var/datum/wires/shield_generator/wires = null + var/list/field_segments = list() // List of all shield segments owned by this generator. + var/list/damaged_segments = list() // List of shield segments that have failed and are currently regenerating. + var/shield_modes = 0 // Enabled shield mode flags + var/mitigation_em = 0 // Current EM mitigation + var/mitigation_physical = 0 // Current Physical mitigation + var/mitigation_heat = 0 // Current Burn mitigation + var/mitigation_max = 0 // Maximal mitigation reachable with this generator. Set by RefreshParts() + var/max_energy = 0 // Maximal stored energy. In joules. Depends on the type of used SMES coil when constructing this generator. + var/current_energy = 0 // Current stored energy. + var/field_radius = 1 // Current field radius. + var/target_radius = 1 // Desired field radius. + var/running = SHIELD_OFF // Whether the generator is enabled or not. + var/input_cap = 1 MEGAWATTS // Currently set input limit. Set to 0 to disable limits altogether. The shield will try to input this value per tick at most + var/upkeep_power_usage = 0 // Upkeep power usage last tick. + var/upkeep_multiplier = 1 // Multiplier of upkeep values. + var/power_coefficient = 1 // Multiplier of overall power usage (for mappers, subtypes, etc) + var/power_usage = 0 // Total power usage last tick. + var/overloaded = 0 // Whether the field has overloaded and shut down to regenerate. + var/hacked = 0 // Whether the generator has been hacked by cutting the safety wire. + var/offline_for = 0 // The generator will be inoperable for this duration in ticks. + var/input_cut = 0 // Whether the input wire is cut. + var/mode_changes_locked = 0 // Whether the control wire is cut, locking out changes. + var/ai_control_disabled = 0 // Whether the AI control is disabled. + var/list/mode_list = null // A list of shield_mode datums. + var/full_shield_strength = 0 // The amount of power shields need to be at full operating strength. + var/initial_shield_modes = MODEFLAG_HYPERKINETIC|MODEFLAG_EM|MODEFLAG_ATMOSPHERIC|MODEFLAG_HUMANOIDS + + var/idle_multiplier = 1 // Trades off cost vs. spin-up time from idle to running + var/idle_valid_values = list(1, 2, 5, 10) + var/spinup_delay = 20 + var/spinup_counter = 0 + +/obj/machinery/power/shield_generator/update_icon() + if(running) + icon_state = "generator1" + set_light(1, 2, "#66FFFF") + else + icon_state = "generator0" + set_light(0) + + +/obj/machinery/power/shield_generator/Initialize() + . = ..() + if(!wires) + wires = new(src) + // TODO - Remove this bit once machines are converted to Initialize + if(ispath(circuit)) + circuit = new circuit(src) + default_apply_parts() + connect_to_network() + + mode_list = list() + for(var/st in subtypesof(/datum/shield_mode)) + var/datum/shield_mode/SM = new st() + mode_list.Add(SM) + toggle_flag(initial_shield_modes) + +/obj/machinery/power/shield_generator/Destroy() + shutdown_field() + field_segments = null + damaged_segments = null + mode_list = null + . = ..() + + +/obj/machinery/power/shield_generator/RefreshParts() + max_energy = 0 + full_shield_strength = 0 + for(var/obj/item/smes_coil/S in component_parts) + full_shield_strength += (S.ChargeCapacity * 5) + max_energy = full_shield_strength * 20 + current_energy = between(0, current_energy, max_energy) + + mitigation_max = MAX_MITIGATION_BASE + MAX_MITIGATION_RESEARCH * total_component_rating_of_type(/obj/item/stock_parts/capacitor) + mitigation_em = between(0, mitigation_em, mitigation_max) + mitigation_physical = between(0, mitigation_physical, mitigation_max) + mitigation_heat = between(0, mitigation_heat, mitigation_max) + ..() + + +// Shuts down the shield, removing all shield segments and unlocking generator settings. +/obj/machinery/power/shield_generator/proc/shutdown_field() + for(var/obj/effect/shield/S in field_segments) + qdel(S) + + running = SHIELD_OFF + current_energy = 0 + mitigation_em = 0 + mitigation_physical = 0 + mitigation_heat = 0 + update_icon() + + +// Generates the field objects. Deletes existing field, if applicable. +/obj/machinery/power/shield_generator/proc/regenerate_field() + if(field_segments.len) + for(var/obj/effect/shield/S in field_segments) + qdel(S) + + // The generator is not turned on, so don't generate any new tiles. + if(!running) + return + + var/list/shielded_turfs + + if(check_flag(MODEFLAG_HULL)) + shielded_turfs = fieldtype_hull() + else + shielded_turfs = fieldtype_square() + + for(var/turf/T in shielded_turfs) + var/obj/effect/shield/S = new(T) + S.gen = src + S.flags_updated() + field_segments |= S + update_icon() + + +// Recalculates and updates the upkeep multiplier +/obj/machinery/power/shield_generator/proc/update_upkeep_multiplier() + var/new_upkeep = 1.0 + for(var/datum/shield_mode/SM in mode_list) + if(check_flag(SM.mode_flag)) + new_upkeep *= SM.multiplier + + upkeep_multiplier = new_upkeep * power_coefficient + + +/obj/machinery/power/shield_generator/process() + upkeep_power_usage = 0 + power_usage = 0 + + if(offline_for) + offline_for = max(0, offline_for - 1) + // We're turned off. + if(running == SHIELD_OFF) + return + + if(target_radius != field_radius && running != SHIELD_RUNNING) // Do not recalculate the field while it's running; that's extremely laggy. + field_radius += (target_radius > field_radius) ? 1 : -1 + + // We are shutting down, therefore our stored energy disperses faster than usual. + else if(running == SHIELD_DISCHARGING) + current_energy -= SHIELD_SHUTDOWN_DISPERSION_RATE + else if(running == SHIELD_SPINNING_UP) + spinup_counter-- + if(spinup_counter <= 0) + running = SHIELD_RUNNING + regenerate_field() + + mitigation_em = between(0, mitigation_em - MITIGATION_LOSS_PASSIVE, mitigation_max) + mitigation_heat = between(0, mitigation_heat - MITIGATION_LOSS_PASSIVE, mitigation_max) + mitigation_physical = between(0, mitigation_physical - MITIGATION_LOSS_PASSIVE, mitigation_max) + + if(running == SHIELD_RUNNING) + upkeep_power_usage = round((field_segments.len - damaged_segments.len) * ENERGY_UPKEEP_PER_TILE * upkeep_multiplier) + else if(running > SHIELD_RUNNING) + upkeep_power_usage = round(ENERGY_UPKEEP_IDLE * idle_multiplier * (field_radius * 8) * upkeep_multiplier) // Approximates number of turfs. + + if(powernet && (running >= SHIELD_RUNNING) && !input_cut) + var/energy_buffer = 0 + energy_buffer = draw_power(min(upkeep_power_usage, input_cap)) + power_usage += round(energy_buffer) + + if(energy_buffer < upkeep_power_usage) + current_energy -= round(upkeep_power_usage - energy_buffer) // If we don't have enough energy from the grid, take it from the internal battery instead. + + // Now try to recharge our internal energy. + var/energy_to_demand + if(input_cap) + energy_to_demand = between(0, max_energy - current_energy, input_cap - energy_buffer) + else + energy_to_demand = max(0, max_energy - current_energy) + energy_buffer = draw_power(energy_to_demand) + power_usage += energy_buffer + current_energy += round(energy_buffer) + else + current_energy -= round(upkeep_power_usage) // We are shutting down, or we lack external power connection. Use energy from internal source instead. + + if(current_energy <= 0) + energy_failure() + + if(!overloaded) + for(var/obj/effect/shield/S in damaged_segments) + S.regenerate() + else if (field_integrity() > 25) + overloaded = 0 + +/obj/machinery/power/shield_generator/attackby(obj/item/O as obj, mob/user as mob) + if(panel_open && (O?.is_multitool() || O?.is_wirecutter())) + wires.Interact(user) + return TRUE + if(default_deconstruction_screwdriver(user, O)) + return + if(O?.is_crowbar() || O?.is_wrench() || istype(O, /obj/item/storage/part_replacer)) + if(offline_for) + to_chat(user, "Wait until \the [src] cools down from emergency shutdown first!") + return + if(running) + to_chat(user, "Turn off \the [src] first!") + return + if(default_deconstruction_crowbar(user, O)) + return + if(default_part_replacement(user, O)) + return + if(default_unfasten_wrench(user, O, 40)) + return + return ..() + +/obj/machinery/power/shield_generator/proc/energy_failure() + if(running == SHIELD_DISCHARGING) + shutdown_field() + else + current_energy = 0 + overloaded = 1 + for(var/obj/effect/shield/S in field_segments) + S.fail(1) + +/obj/machinery/power/shield_generator/proc/set_idle(var/new_state) + if(new_state) + if(running == SHIELD_IDLE) + return + running = SHIELD_IDLE + for(var/obj/effect/shield/S in field_segments) + qdel(S) + else + if(running != SHIELD_IDLE) + return + running = SHIELD_SPINNING_UP + spinup_counter = round(spinup_delay / idle_multiplier) + update_icon() + +/obj/machinery/power/shield_generator/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + var/data[0] + + data["running"] = running + data["modes"] = get_flag_descriptions() + data["overloaded"] = overloaded + data["mitigation_max"] = mitigation_max + data["mitigation_physical"] = round(mitigation_physical, 0.1) + data["mitigation_em"] = round(mitigation_em, 0.1) + data["mitigation_heat"] = round(mitigation_heat, 0.1) + data["field_integrity"] = field_integrity() + data["max_energy"] = round(max_energy / 1000000, 0.1) + data["current_energy"] = round(current_energy / 1000000, 0.1) + data["percentage_energy"] = round(data["current_energy"] / data["max_energy"] * 100) + data["total_segments"] = field_segments ? field_segments.len : 0 + data["functional_segments"] = damaged_segments ? data["total_segments"] - damaged_segments.len : data["total_segments"] + data["field_radius"] = field_radius + data["target_radius"] = target_radius + data["input_cap_kw"] = round(input_cap / 1000) + data["upkeep_power_usage"] = round(upkeep_power_usage / 1000, 0.1) + data["power_usage"] = round(power_usage / 1000) + data["hacked"] = hacked + data["offline_for"] = offline_for * 2 + data["idle_multiplier"] = idle_multiplier + data["idle_valid_values"] = idle_valid_values + data["spinup_counter"] = spinup_counter + + ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) + if (!ui) + ui = new(user, src, ui_key, "shield_generator.tmpl", src.name, 500, 800) + ui.set_initial_data(data) + ui.open() + ui.set_auto_update(1) + +/obj/machinery/power/shield_generator/attack_hand(mob/user) + if((. = ..())) + return + if(panel_open && Adjacent(user)) + wires.Interact(user) + return + if(CanUseTopic(user, global.default_state) > UI_CLOSE) + ui_interact(user) + return TRUE + +/obj/machinery/power/shield_generator/CanUseTopic(var/mob/user) + if(issilicon(user) && !Adjacent(user) && ai_control_disabled) + return UI_UPDATE + if(panel_open) + return min(..(), UI_DISABLED) + return ..() + +/obj/machinery/power/shield_generator/Topic(href, href_list, datum/topic_state/state = default_state) + if((. = ..())) + return + + if(href_list["begin_shutdown"]) + if(running < SHIELD_RUNNING) // Discharging or off + return + var/alert = alert(usr, "Are you sure you wish to do this? It will drain the power inside the internal storage rapidly.", "Are you sure?", "Yes", "No") + if(!CanInteract(usr, state)) + return + if(running < SHIELD_RUNNING) + return + if(alert == "Yes") + set_idle(TRUE) // do this first to clear the field + running = SHIELD_DISCHARGING + return TOPIC_REFRESH + + if(href_list["start_generator"]) + if(offline_for) + return + set_idle(TRUE) + return TOPIC_REFRESH + + if(href_list["toggle_idle"]) + if(running < SHIELD_RUNNING) + return TOPIC_HANDLED + set_idle(text2num(href_list["toggle_idle"])) + return TOPIC_REFRESH + + // Instantly drops the shield, but causes a cooldown before it may be started again. Also carries a risk of EMP at high charge. + if(href_list["emergency_shutdown"]) + if(!running) + return TOPIC_HANDLED + + var/choice = input(usr, "Are you sure that you want to initiate an emergency shield shutdown? This will instantly drop the shield, and may result in unstable release of stored electromagnetic energy. Proceed at your own risk.") in list("Yes", "No") + if((choice != "Yes") || !running) + return TOPIC_HANDLED + + // If the shield would take 5 minutes to disperse and shut down using regular methods, it will take x1.5 (7 minutes and 30 seconds) of this time to cool down after emergency shutdown + offline_for = round(current_energy / (SHIELD_SHUTDOWN_DISPERSION_RATE / 1.5)) + var/old_energy = current_energy + shutdown_field() + log_and_message_admins("has triggered \the [src]'s emergency shutdown!", usr) + spawn() + empulse(src, old_energy / 60000000, old_energy / 32000000, 1) // If shields are charged at 450 MJ, the EMP will be 7.5, 14.0625. 90 MJ, 1.5, 2.8125 + old_energy = 0 + + return TOPIC_REFRESH + + if(mode_changes_locked) + return TOPIC_REFRESH + + if(href_list["set_range"]) + var/new_range = input(usr, "Enter new field range (1-[world.maxx]). Leave blank to cancel.", "Field Radius Control", field_radius) as num + if(!new_range) + return TOPIC_HANDLED + target_radius = between(1, new_range, world.maxx) + return TOPIC_REFRESH + + if(href_list["set_input_cap"]) + var/new_cap = round(input(usr, "Enter new input cap (in kW). Enter 0 or nothing to disable input cap.", "Generator Power Control", round(input_cap / 1000)) as num) + if(!new_cap) + input_cap = 0 + return + input_cap = max(0, new_cap) * 1000 + return TOPIC_REFRESH + + if(href_list["toggle_mode"]) + // Toggling hacked-only modes requires the hacked var to be set to 1 + if((text2num(href_list["toggle_mode"]) & (MODEFLAG_BYPASS | MODEFLAG_OVERCHARGE)) && !hacked) + return TOPIC_HANDLED + + toggle_flag(text2num(href_list["toggle_mode"])) + return TOPIC_REFRESH + + if(href_list["switch_idle"]) + if(running == SHIELD_SPINNING_UP) + return TOPIC_REFRESH + var/new_idle = text2num(href_list["switch_idle"]) + if(new_idle in idle_valid_values) + idle_multiplier = new_idle + return TOPIC_REFRESH + +/obj/machinery/power/shield_generator/proc/field_integrity() + if(full_shield_strength) + return round(CLAMP01(current_energy / full_shield_strength) * 100) + return 0 + + +// Takes specific amount of damage +/obj/machinery/power/shield_generator/proc/deal_shield_damage(var/damage, var/shield_damtype) + var/energy_to_use = damage * ENERGY_PER_HP + if(check_flag(MODEFLAG_MODULATE)) + mitigation_em -= MITIGATION_HIT_LOSS + mitigation_heat -= MITIGATION_HIT_LOSS + mitigation_physical -= MITIGATION_HIT_LOSS + + switch(shield_damtype) + if(SHIELD_DAMTYPE_PHYSICAL) + mitigation_physical += MITIGATION_HIT_LOSS + MITIGATION_HIT_GAIN + energy_to_use *= 1 - (mitigation_physical / 100) + if(SHIELD_DAMTYPE_EM) + mitigation_em += MITIGATION_HIT_LOSS + MITIGATION_HIT_GAIN + energy_to_use *= 1 - (mitigation_em / 100) + if(SHIELD_DAMTYPE_HEAT) + mitigation_heat += MITIGATION_HIT_LOSS + MITIGATION_HIT_GAIN + energy_to_use *= 1 - (mitigation_heat / 100) + + mitigation_em = between(0, mitigation_em, mitigation_max) + mitigation_heat = between(0, mitigation_heat, mitigation_max) + mitigation_physical = between(0, mitigation_physical, mitigation_max) + + current_energy -= energy_to_use + + // Overload the shield, which will shut it down until we recharge above 25% again + if(current_energy < 0) + energy_failure() + return SHIELD_BREACHED_FAILURE + + if(prob(10 - field_integrity())) + return SHIELD_BREACHED_CRITICAL + if(prob(20 - field_integrity())) + return SHIELD_BREACHED_MAJOR + if(prob(35 - field_integrity())) + return SHIELD_BREACHED_MINOR + return SHIELD_ABSORBED + + +// Checks whether specific flags are enabled +/obj/machinery/power/shield_generator/proc/check_flag(var/flag) + return (shield_modes & flag) + + +/obj/machinery/power/shield_generator/proc/toggle_flag(var/flag) + shield_modes ^= flag + update_upkeep_multiplier() + for(var/obj/effect/shield/S in field_segments) + S.flags_updated() + + if((flag & (MODEFLAG_HULL|MODEFLAG_MULTIZ)) && (running == SHIELD_RUNNING)) + regenerate_field() + + if(flag & MODEFLAG_MODULATE) + mitigation_em = 0 + mitigation_physical = 0 + mitigation_heat = 0 + + +/obj/machinery/power/shield_generator/proc/get_flag_descriptions() + var/list/all_flags = list() + for(var/datum/shield_mode/SM in mode_list) + if(SM.hacked_only && !hacked) + continue + all_flags.Add(list(list( + "name" = SM.mode_name, + "desc" = SM.mode_desc, + "flag" = SM.mode_flag, + "status" = check_flag(SM.mode_flag), + "hacked" = SM.hacked_only, + "multiplier" = SM.multiplier + ))) + return all_flags + + +// These two procs determine tiles that should be shielded given the field range. They are quite CPU intensive and may trigger BYOND infinite loop checks, therefore they are set +// as background procs to prevent locking up the server. They are only called when the field is generated, or when hull mode is toggled on/off. +/obj/machinery/power/shield_generator/proc/fieldtype_square() + set background = 1 + var/list/out = list() + var/list/base_turfs = get_base_turfs() + + for(var/turf/gen_turf in base_turfs) + var/turf/T + for (var/x_offset = -field_radius; x_offset <= field_radius; x_offset++) + T = locate(gen_turf.x + x_offset, gen_turf.y - field_radius, gen_turf.z) + if(T) + out += T + T = locate(gen_turf.x + x_offset, gen_turf.y + field_radius, gen_turf.z) + if(T) + out += T + + for (var/y_offset = -field_radius+1; y_offset < field_radius; y_offset++) + T = locate(gen_turf.x - field_radius, gen_turf.y + y_offset, gen_turf.z) + if(T) + out += T + T = locate(gen_turf.x + field_radius, gen_turf.y + y_offset, gen_turf.z) + if(T) + out += T + return out + + +/obj/machinery/power/shield_generator/proc/fieldtype_hull() + set background = 1 + . = list() + var/list/base_turfs = get_base_turfs() + + // Old code found all space turfs and added them if it had a non-space neighbor. + // This one finds all non-space turfs and adds all its non-space neighbors. + for(var/turf/gen_turf in base_turfs) + var/area/TA = null // Variable for area checking. Defining it here so memory does not have to be allocated repeatedly. + for(var/turf/T in trange(field_radius, gen_turf)) + // Don't expand to space or on shuttle areas. + if(istype(T, /turf/space) || istype(T, /turf/simulated/open)) + continue + + // Find adjacent space/shuttle tiles and cover them. Shuttles won't be blocked if shield diffuser is mapped in and turned on. + for(var/turf/TN in orange(1, T)) + TA = get_area(TN) + //if ((istype(TN, /turf/space) || (istype(TN, /turf/simulated/open) && (istype(TA, /area/space) || TA.area_flags & AREA_FLAG_EXTERNAL)))) + if((istype(TN, /turf/space) || (istype(TN, /turf/simulated/open) && (istype(TA, /area/space))))) + . |= TN + continue + +// Returns a list of turfs from which a field will propagate. If multi-Z mode is enabled, this will return a "column" of turfs above and below the generator. +/obj/machinery/power/shield_generator/proc/get_base_turfs() + var/list/turfs = list() + var/turf/T = get_turf(src) + + if(!istype(T)) + return + + turfs.Add(T) + + // Multi-Z mode is disabled + if(!check_flag(MODEFLAG_MULTIZ)) + return turfs + + while(HasAbove(T.z)) + T = GetAbove(T) + if(istype(T)) + turfs.Add(T) + + T = get_turf(src) + + while(HasBelow(T.z)) + T = GetBelow(T) + if(istype(T)) + turfs.Add(T) + + return turfs + + +// Starts fully charged +/obj/machinery/power/shield_generator/charged/Initialize() + . = ..() + current_energy = max_energy + +// Starts with the best SMES coil and capacitor (and fully charged) +/obj/machinery/power/shield_generator/upgraded/Initialize() + . = ..() + for(var/obj/item/smes_coil/sc in component_parts) + component_parts -= sc + qdel(sc) + + for(var/obj/item/stock_parts/capacitor/cap in component_parts) + component_parts -= cap + qdel(cap) + + component_parts += new /obj/item/stock_parts/capacitor/omni(src) + component_parts += new /obj/item/smes_coil/super_capacity(src) + RefreshParts() + current_energy = max_energy + +// Only uses 20% as much power (and starts upgraded and charged and hacked) +/obj/machinery/power/shield_generator/upgraded/admin + name = "experimental shield generator" + power_coefficient = 0.2 + hacked = TRUE diff --git a/code/modules/shieldgen/shield_modes.dm b/code/modules/shieldgen/shield_modes.dm new file mode 100644 index 00000000000..5a889b4c080 --- /dev/null +++ b/code/modules/shieldgen/shield_modes.dm @@ -0,0 +1,83 @@ +// Definitions for shield modes. Names, descriptions and power usage multipliers can be changed here. +// Do not change the mode_flag variables without a good reason! + +/datum/shield_mode + var/mode_name // User-friendly name of this mode. + var/mode_desc // A short description of what the mode does. + var/mode_flag // Mode bitflag. See defines file. + var/multiplier // Energy usage multiplier. Each enabled mode multiplies upkeep power usage by this number. Values between 1-2 are good balance-wise. Hacked modes can go up to 3-4 + var/hacked_only = 0 // Set to 1 to allow usage of this shield mode only on hacked generators. + +/datum/shield_mode/hyperkinetic + mode_name = "Hyperkinetic Projectiles" + mode_desc = "This mode blocks various fast moving physical objects, such as bullets, blunt weapons, meteors and other." + mode_flag = MODEFLAG_HYPERKINETIC + multiplier = 1.2 + +/datum/shield_mode/photonic + mode_name = "Photonic Dispersion" + mode_desc = "This mode blocks majority of light. This includes beam weaponry and most of the visible light spectrum." + mode_flag = MODEFLAG_PHOTONIC + multiplier = 1.3 + +/datum/shield_mode/em + mode_name = "Electro-Magnetic Shielding" + mode_desc = "This mode blocks various high-power emissions like electrical storms." + mode_flag = MODEFLAG_EM + multiplier = 1.3 + +/datum/shield_mode/humanoids + mode_name = "Humanoid Lifeforms" + mode_desc = "This mode blocks various humanoid lifeforms. Does not affect fully synthetic humanoids." + mode_flag = MODEFLAG_HUMANOIDS + multiplier = 1.5 + +/datum/shield_mode/silicon + mode_name = "Silicon Lifeforms" + mode_desc = "This mode blocks various silicon based lifeforms." + mode_flag = MODEFLAG_ANORGANIC + multiplier = 1.5 + +/datum/shield_mode/mobs + mode_name = "Unknown Lifeforms" + mode_desc = "This mode blocks various other non-humanoid and non-silicon lifeforms. Typical uses include blocking carps." + mode_flag = MODEFLAG_NONHUMANS + multiplier = 1.5 + +/datum/shield_mode/atmosphere + mode_name = "Atmospheric Containment" + mode_desc = "This mode blocks air flow and acts as atmosphere containment." + mode_flag = MODEFLAG_ATMOSPHERIC + multiplier = 1.3 + +/datum/shield_mode/hull + mode_name = "Hull Shielding" + mode_desc = "This mode recalibrates the field to cover surface of the installation instead of projecting a bubble shaped field." + mode_flag = MODEFLAG_HULL + multiplier = 1 + +/datum/shield_mode/adaptive + mode_name = "Adaptive Field Harmonics" + mode_desc = "This mode modulates the shield harmonic frequencies, allowing the field to adapt to various damage types." + mode_flag = MODEFLAG_MODULATE + multiplier = 2 + +/datum/shield_mode/bypass + mode_name = "Diffuser Bypass" + mode_desc = "This mode disables the built-in safeties which allows the generator to counter effect of various shield diffusers. This tends to create a very large strain on the generator. Does not work with enabled safety protocols." + mode_flag = MODEFLAG_BYPASS + multiplier = 3 + hacked_only = 1 + +/datum/shield_mode/overcharge + mode_name = "Field Overcharge" + mode_desc = "This mode polarises the field, causing damage on contact. Does not work with enabled safety protocols." + mode_flag = MODEFLAG_OVERCHARGE + multiplier = 3 + hacked_only = 1 + +/datum/shield_mode/multiz + mode_name = "Multi-Dimensional Field Warp" + mode_desc = "Recalibrates the field projection array to increase the vertical height of the field, allowing it's usage on multi-deck stations or ships." + mode_flag = MODEFLAG_MULTIZ + multiplier = 1 diff --git a/nano/templates/shield_generator.tmpl b/nano/templates/shield_generator.tmpl new file mode 100644 index 00000000000..d5714a29ab0 --- /dev/null +++ b/nano/templates/shield_generator.tmpl @@ -0,0 +1,158 @@ +{{if data.offline_for}} +

EMERGENCY SHUTDOWN

+ An emergency shutdown has been initiated - generator cooling down
+ Please wait until the generator cools down before resuming operation. Estimated time left: {{:data.offline_for}} seconds. +{{else}} +

SYSTEM STATUS

+
+
+ Generator is: +
+
+ {{if data.running == 2}} + {{if data.overloaded}} + Recovering + {{else}} + Active + {{/if}} + {{else data.running == 1}} + Shutting Down + {{else data.running == 3}} + Inactive + {{else data.running == 4}} + Spinning Up  + {{if data.target_radius != data.field_radius}} + (Adjusting Radius) + {{else}} + ({{:data.spinup_counter * 2}}s) + {{/if}} + {{else}} + Offline + {{/if}} +
+
+
+
+ Energy Storage: +
+
+ {{:data.current_energy}}/{{:data.max_energy}} MJ ({{:data.percentage_energy}}%) +
+
+
+
+ Shield Integrity: +
+
+ {{:data.field_integrity}}% +
+
+
+
+ Mitigation: +
+
+ {{:data.mitigation_em}}% EM / {{:data.mitigation_physical}}% PH / {{:data.mitigation_heat}}% HE / {{:data.mitigation_max}}% MAX +
+
+
+
+ Upkeep Energy Use: +
+
+ {{:data.upkeep_power_usage}} kW +
+
+
+
+ Total Energy Use: +
+
+ {{if data.input_cap_kw}} + {{:data.power_usage}} / {{:data.input_cap_kw}} kW + {{else}} + {{:data.power_usage}} kW (No Limit) + {{/if}} +
+
+
+
+ Field Size: +
+
+ {{:data.functional_segments}} / {{:data.total_segments}} m2 (radius {{:data.field_radius}}, target {{:data.target_radius}}) +
+
+

CONTROLS

+ + + {{if (data.running >= 2)}} + + {{else}} + + {{/if}} + {{else}} + + + + +
{{:helper.link('Turn off', null, {'begin_shutdown' : '1'})}} + {{if (data.running == 3)}} + {{:helper.link('Activate', null, {'toggle_idle' : '0'})}} {{:helper.link('Deactivate', null, {'toggle_idle' : '1'})}} {{:helper.link('Turn on', null, {'start_generator' : '1'})}} + {{/if}} + {{if data.running}} + {{if data.hacked}} + {{:helper.link('EMERGENCY SHUTDOWN', null, {'emergency_shutdown' : '1'}, null, 'redButton')}} + {{/if}} + {{/if}} + +
{{:helper.link('Set Field Range', null, {'set_range' : '1'})}} + {{:helper.link('Set Input Cap', null, {'set_input_cap' : '1'})}} +
Set inactive power use intensity: + {{for data.idle_valid_values}} + {{:helper.link(value, null, {'switch_idle' : value}, (value == data.idle_multiplier) ? 'selected' : (data.running == 4 ? 'disabled' : null))}} + {{/for}} +
+

FIELD CALIBRATION

+
+ {{for data.modes}} +
+
+ Mode: +
+
+ {{:value.name}} +
+
+
+
+ Description: +
+
+ {{:value.desc}} +
+
+
+
+ Status: +
+
+ {{if value.status}} + Enabled + {{else}} + Disabled + {{/if}} + {{:helper.link('Toggle', null, {'toggle_mode' : value.flag})}} +
+
+
+
+ Multiplier: +
+
+ {{:value.multiplier}} +
+
+
+ {{/for}} +{{/if}} diff --git a/sound/machines/apc_nopower.ogg b/sound/machines/apc_nopower.ogg new file mode 100644 index 0000000000000000000000000000000000000000..b73c50d9b077fe2e3642992266669dc4f72b9d80 GIT binary patch literal 90915 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 T8~^~%2QbCvodbaPA)8$QdWF+h literal 0 HcmV?d00001 diff --git a/sound/machines/buttonbeep.ogg b/sound/machines/buttonbeep.ogg new file mode 100644 index 0000000000000000000000000000000000000000..347ea135440adad83ef6b6d581e24812dd8a19f4 GIT binary patch literal 13054 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

I>(KkAVCE_ZW#mOwVa8A8^3qw;fEu!s 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 literal 0 HcmV?d00001 diff --git a/sound/machines/clawmachine_win.ogg b/sound/machines/clawmachine_win.ogg new file mode 100644 index 0000000000000000000000000000000000000000..3a2269e03cf2fd7494825b66be36229903838e8f GIT binary patch literal 25139 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

i=)N5{? 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