mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-19 11:05:03 +01:00
Modsuits. Ready for review, sorry for the ammount of files changed 👉 👈 (#21147)
* biting off more than I can chew, but I feel like hurting myself * more shit * progress continues, moral stays sameish * bite of 2587 * mod_theme down, but probably broken * 385 errors, 16 warnings, zero tgui interactions * 292 19 * final strech to buggy mess, break time * it compiles. It almost fucking certainly doesnt work, but it compiles * fudhsciffubgsbgpgb actions not working as should for modules * fuck it we'll just open the pr as we work on it * icons work now * tgui stuff * more progress * JUDGEMENT * IT LIVES. TGUI LIVES. Special thanks to Sirryan and my brother. * jetpacks, gps, and go do what exo-suits yourself * almost ready * sorry to whoever has to review this * should work™️ * should be good now * pushing changes so I can do reviews next * Apply suggestions from code review Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * lore™️ Adds illegals level to modsuit parts from syndicate. * early returns * and these illegals * no uplink reference idiot * mod inhands are a good idea * this is needed for inhands nerd * Bomb detector working, modsutis cover ears. skin things * overslotting removal, cyborg charging, ert loadout for gamma * duplicated signal * modsuit themes, removes broken mister / bad base type module, 2 cores in robotics. * tether module, orb module, holster stuff * built in no slip, cheaper 87 * removes modules already installed, engineer ert get jetpack, equip into modsuit storage * comments spaces and duplicate flags * Some adjustments and thoughts on armor, heads get guns because they are cool like that / looting command members armor * Apply suggestions from code review Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> * Compile TGUI, slowdown adjustment, Modsuit to MODsuit * sonar, do after, more equipment, acid handling * overlay bugs / ERT / DS suits autodeploy * middle click action buttons * traders, sec modsuit energy nerf * surplus weighting * Kinesis module. * Pathfinder module, kinesis balance, blueprint for pathfinder and kinesis * more power / unused module removed * name, ds fix, pre equipped to cc suit * depot / grammer * ok should be good™️ * overslot, dupe gun, missing suit storage * stealth nerf, new kit * gun stuff / ds theme * bio armor is gone * let me push changes please thank you * makes shocks work right * copies over some changes TG made to module prices after porting * Merge remote-tracking branch 'upstream/master' into Because-I-hate-myself-and-someone-has-to-try-it- * sirryans changes Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> * Update code/modules/telesci/gps.dm Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> * Update code/modules/telesci/gps.dm Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> * Control define, ERT / DS have gloves / boots again. * Apply suggestions from code review Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> * More changes * god I hate tgui. Why do all the bundles live underground, instead of in my basement? * she updates my master till I testmerge * modsuits can recharge again * fixes a lot of shit * Ready for TM probably * sure fuck it whatever that makes sense I guess * the pinpointer works better™️ * Another storage module bug fix * hair and medical stuff * fuck fuck fuck * fixes sonar * Bag exploit fixes / plasma runtimes / ear nerf * dna lock improvement / cryostorage * whoops * Ball form second cooldown wasn't helping, no more infinite cores * she springs my lock till I ***SNAP*** * plasmaman no longer die * fixes modsuit emp issues * atmos no longer fucking dies * Fixes, module printing, and a restriction on newly constructed modsuits * Inventory code my hated * WOOO PREFERENCE CODE WOOOOO * icons my hated * fix for mods / spaceproof shit * holy shit whhhyyyyy * backpack first * Update mod_theme.dm * prevent infinite gun arms / infinite modsuit cores / syndicate modules * fixes tm error * scream loudly if species sprites break. They shouldn't, but, you know. * deconflicted with luck * converts to refit for species * fix pathfinder * fixes modsuits being funky power wise * lockboxes :gatto: , as well as DN-MP shield lock, and slight nerf to atmos modsuit * nerfs the atmos modsuit * magboots for ds / CC modsuit * downside of autosave: typing in wrong window saves bad stuff * Gamma ERT have internal cameras again. * spellcheck when * ah fuck * yes delete the null that works * whoops * fixes error / description * un vulps your cannon * fixes tails disapeering on base modsuits * space to underscore * tgui fix / tajaran * springlock buff, cryopod fix * u helps * WHO PUTS A GUN IN ITEMS * tgui moment * mining modsuit nerf / hidden holster module * PAIN * UNATHI TIDE STATION WIDE * I love special code * slightly dense * shark jumpscare * fixes ghost item, fixes springlock being bad * YIPPEEEE IT WORKED * she decons my flict * pain * ebbas days are numbered :^) * hidden * r-r-r-ebuild * fixes more bugs * qwerty, you are dense * fixes gps * fix mulebot crate * level fix * adds back icon * moving storage, fix bug, modules activate / deactivate message * yeah * yeah * yeah™️ * steels requests * windoors no longer make pathfinder module explode * chat spam * oil slicks + modsuits * whoops * bag check * ofc * Update code/modules/mod/mod_control.dm Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * Update code/datums/uplink_items/uplink_nuclear.dm Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * Update code/modules/mod/mod_control.dm Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> * Update code/modules/mod/modules/module_pathfinder.dm Co-authored-by: S34N <12197162+S34NW@users.noreply.github.com> --------- Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com> Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com> Co-authored-by: S34N <12197162+S34NW@users.noreply.github.com>
This commit is contained in:
+16
-14
@@ -60,7 +60,7 @@
|
||||
M.actions -= src
|
||||
M.update_action_buttons()
|
||||
|
||||
/datum/action/proc/Trigger()
|
||||
/datum/action/proc/Trigger(left_click = TRUE)
|
||||
if(!IsAvailable())
|
||||
return FALSE
|
||||
return TRUE
|
||||
@@ -154,12 +154,12 @@
|
||||
I.actions -= src
|
||||
return ..()
|
||||
|
||||
/datum/action/item_action/Trigger(attack_self = TRUE) //Maybe we don't want to click the thing itself
|
||||
/datum/action/item_action/Trigger(left_click = TRUE, attack_self = TRUE) //Maybe we don't want to click the thing itself
|
||||
if(!..())
|
||||
return FALSE
|
||||
if(target && attack_self)
|
||||
var/obj/item/I = target
|
||||
I.ui_action_click(owner, type)
|
||||
I.ui_action_click(owner, type, left_click)
|
||||
return TRUE
|
||||
|
||||
/datum/action/item_action/ApplyIcon(obj/screen/movable/action_button/current_button)
|
||||
@@ -179,6 +179,8 @@
|
||||
I.appearance_flags = old_appearance_flags
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
/datum/action/item_action/toggle_light
|
||||
name = "Toggle Light"
|
||||
|
||||
@@ -240,7 +242,7 @@
|
||||
/datum/action/item_action/toggle_welding_screen/plasmaman
|
||||
name = "Toggle Welding Screen"
|
||||
|
||||
/datum/action/item_action/toggle_welding_screen/plasmaman/Trigger()
|
||||
/datum/action/item_action/toggle_welding_screen/plasmaman/Trigger(left_click)
|
||||
var/obj/item/clothing/head/helmet/space/plasmaman/H = target
|
||||
if(istype(H))
|
||||
H.toggle_welding_screen(owner)
|
||||
@@ -256,7 +258,7 @@
|
||||
desc = "Toggles if the club's blasts cause friendly fire."
|
||||
button_icon_state = "vortex_ff_on"
|
||||
|
||||
/datum/action/item_action/toggle_unfriendly_fire/Trigger()
|
||||
/datum/action/item_action/toggle_unfriendly_fire/Trigger(left_click)
|
||||
if(..())
|
||||
UpdateButtonIcon()
|
||||
|
||||
@@ -375,7 +377,7 @@
|
||||
/datum/action/item_action/remove_tape
|
||||
name = "Remove Duct Tape"
|
||||
|
||||
/datum/action/item_action/remove_tape/Trigger(attack_self = FALSE)
|
||||
/datum/action/item_action/remove_tape/Trigger(left_click, attack_self = FALSE)
|
||||
if(..())
|
||||
var/datum/component/ducttape/DT = target.GetComponent(/datum/component/ducttape)
|
||||
DT.remove_tape(target, usr)
|
||||
@@ -395,7 +397,7 @@
|
||||
/datum/action/item_action/toggle_geiger_counter
|
||||
name = "Toggle Geiger Counter"
|
||||
|
||||
/datum/action/item_action/toggle_geiger_counter/Trigger()
|
||||
/datum/action/item_action/toggle_geiger_counter/Trigger(left_click)
|
||||
var/obj/item/clothing/head/helmet/space/hardsuit/H = target
|
||||
if(istype(H))
|
||||
H.toggle_geiger_counter()
|
||||
@@ -417,7 +419,7 @@
|
||||
name = "Toggle Research Scanner"
|
||||
button_icon_state = "scan_mode"
|
||||
|
||||
/datum/action/item_action/toggle_research_scanner/Trigger()
|
||||
/datum/action/item_action/toggle_research_scanner/Trigger(left_click)
|
||||
if(IsAvailable())
|
||||
owner.research_scanner = !owner.research_scanner
|
||||
to_chat(owner, "<span class='notice'>Research analyzer is now [owner.research_scanner ? "active" : "deactivated"].</span>")
|
||||
@@ -439,7 +441,7 @@
|
||||
name = "Use Instrument"
|
||||
desc = "Use the instrument specified"
|
||||
|
||||
/datum/action/item_action/instrument/Trigger()
|
||||
/datum/action/item_action/instrument/Trigger(left_click)
|
||||
if(istype(target, /obj/item/instrument))
|
||||
var/obj/item/instrument/I = target
|
||||
I.interact(usr)
|
||||
@@ -472,7 +474,7 @@
|
||||
name = "Gravity jump"
|
||||
desc = "Directs a pulse of gravity in front of the user, pulling them forward rapidly."
|
||||
|
||||
/datum/action/item_action/gravity_jump/Trigger()
|
||||
/datum/action/item_action/gravity_jump/Trigger(left_click)
|
||||
if(!IsAvailable())
|
||||
return FALSE
|
||||
|
||||
@@ -513,7 +515,7 @@
|
||||
/datum/action/item_action/voice_changer/voice
|
||||
name = "Set Voice"
|
||||
|
||||
/datum/action/item_action/voice_changer/voice/Trigger()
|
||||
/datum/action/item_action/voice_changer/voice/Trigger(left_click)
|
||||
if(!IsAvailable())
|
||||
return FALSE
|
||||
|
||||
@@ -567,7 +569,7 @@
|
||||
S.action = null
|
||||
return ..()
|
||||
|
||||
/datum/action/spell_action/Trigger()
|
||||
/datum/action/spell_action/Trigger(left_click)
|
||||
if(!..())
|
||||
return FALSE
|
||||
if(target)
|
||||
@@ -622,7 +624,7 @@
|
||||
check_flags = 0
|
||||
var/active = FALSE
|
||||
|
||||
/datum/action/innate/Trigger()
|
||||
/datum/action/innate/Trigger(left_click)
|
||||
if(!..())
|
||||
return FALSE
|
||||
if(!active)
|
||||
@@ -642,7 +644,7 @@
|
||||
check_flags = 0
|
||||
var/procname
|
||||
|
||||
/datum/action/generic/Trigger()
|
||||
/datum/action/generic/Trigger(left_click)
|
||||
if(!..())
|
||||
return FALSE
|
||||
if(target && procname)
|
||||
|
||||
@@ -247,6 +247,11 @@
|
||||
if(!signal_procs[target].len)
|
||||
signal_procs -= target
|
||||
|
||||
/// Registers multiple signals to the same proc.
|
||||
/datum/proc/RegisterSignals(datum/target, list/signal_types, proctype, override = FALSE)
|
||||
for(var/signal_type in signal_types)
|
||||
RegisterSignal(target, signal_type, proctype, override)
|
||||
|
||||
/**
|
||||
* Called on a component when a component of the same type was added to the same parent
|
||||
*
|
||||
|
||||
@@ -66,3 +66,11 @@ GLOBAL_DATUM_INIT(firealarm_soundloop, /datum/looping_sound/firealarm, new(list(
|
||||
mid_length = 20
|
||||
end_sound = 'sound/machines/kitchen/grill_end.ogg'
|
||||
volume = 50
|
||||
|
||||
/datum/looping_sound/kinesis
|
||||
mid_sounds = list('sound/machines/gravgen/gravgen_mid1.ogg' = 1, 'sound/machines/gravgen/gravgen_mid2.ogg' = 1, 'sound/machines/gravgen/gravgen_mid3.ogg' = 1, 'sound/machines/gravgen/gravgen_mid4.ogg' = 1)
|
||||
mid_length = 1.8 SECONDS
|
||||
extra_range = 10
|
||||
volume = 20
|
||||
falloff_distance = 2
|
||||
falloff_exponent = 5
|
||||
|
||||
@@ -266,16 +266,13 @@
|
||||
|
||||
pda = /obj/item/pinpointer
|
||||
box = /obj/item/storage/box/deathsquad
|
||||
back = /obj/item/storage/backpack/ert/deathsquad
|
||||
back = /obj/item/mod/control/pre_equipped/apocryphal
|
||||
belt = /obj/item/gun/projectile/revolver/mateba
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
uniform = /obj/item/clothing/under/rank/centcom/deathsquad
|
||||
shoes = /obj/item/clothing/shoes/magboots/advance
|
||||
suit = /obj/item/clothing/suit/space/deathsquad
|
||||
suit_store = /obj/item/gun/energy/pulse
|
||||
glasses = /obj/item/clothing/glasses/thermal
|
||||
mask = /obj/item/clothing/mask/gas/sechailer/swat
|
||||
head = /obj/item/clothing/head/helmet/space/deathsquad
|
||||
l_pocket = /obj/item/tank/internals/emergency_oxygen/double
|
||||
r_pocket = /obj/item/reagent_containers/hypospray/combat/nanites
|
||||
l_ear = /obj/item/radio/headset/alt/deathsquad
|
||||
@@ -287,7 +284,8 @@
|
||||
/obj/item/flashlight/seclite,
|
||||
/obj/item/grenade/plastic/c4/x4,
|
||||
/obj/item/melee/energy/sword/saber,
|
||||
/obj/item/shield/energy
|
||||
/obj/item/shield/energy,
|
||||
/obj/item/gun/energy/pulse
|
||||
)
|
||||
|
||||
implants = list(
|
||||
@@ -297,12 +295,15 @@
|
||||
|
||||
/datum/outfit/admin/deathsquad_commando/leader
|
||||
name = "NT Deathsquad Leader"
|
||||
back = /obj/item/mod/control/pre_equipped/apocryphal/officer
|
||||
|
||||
backpack_contents = list(
|
||||
/obj/item/storage/box/flashbangs,
|
||||
/obj/item/ammo_box/a357,
|
||||
/obj/item/flashlight/seclite,
|
||||
/obj/item/melee/energy/sword/saber,
|
||||
/obj/item/shield/energy,
|
||||
/obj/item/gun/energy/pulse,
|
||||
/obj/item/disk/nuclear/unrestricted
|
||||
)
|
||||
|
||||
@@ -315,6 +316,9 @@
|
||||
if(istype(I))
|
||||
apply_to_card(I, H, get_centcom_access("Deathsquad Commando"), "Deathsquad")
|
||||
H.sec_hud_set_ID()
|
||||
if(ismodcontrol(H.back))
|
||||
var/obj/item/mod/control/C = H.back
|
||||
C.quick_activation()
|
||||
|
||||
/datum/outfit/admin/pirate
|
||||
name = "Space Pirate"
|
||||
|
||||
@@ -87,6 +87,10 @@
|
||||
if(is_type_in_typecache(item_to_retrieve.loc, blacklisted_summons))
|
||||
break
|
||||
item_to_retrieve = item_to_retrieve.loc
|
||||
if(istype(item_to_retrieve, /obj/item/storage/backpack/modstorage))
|
||||
var/obj/item/storage/backpack/modstorage/bag = item_to_retrieve
|
||||
if(bag.source && bag.source.mod)
|
||||
item_to_retrieve = bag.source.mod //Grab the modsuit.
|
||||
|
||||
infinite_recursion += 1
|
||||
|
||||
|
||||
@@ -147,6 +147,10 @@
|
||||
id = "charging"
|
||||
alert_type = null
|
||||
|
||||
/datum/status_effect/impact_immune
|
||||
id = "impact_immune"
|
||||
alert_type = null
|
||||
|
||||
#define LWAP_LOCK_CAP 10
|
||||
|
||||
/datum/status_effect/lwap_scope
|
||||
|
||||
@@ -581,8 +581,8 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
|
||||
//Space Suits and Hardsuits
|
||||
/datum/uplink_item/suits
|
||||
category = "Space Suits and Hardsuits"
|
||||
surplus = 40
|
||||
category = "Space Suits and MODsuits"
|
||||
surplus = 10 //I am setting this to 10 as there are a bunch of modsuit parts in here that should be weighted to 10. Suits and modsuits adjusted below.
|
||||
|
||||
/datum/uplink_item/suits/space_suit
|
||||
name = "Syndicate Space Suit"
|
||||
@@ -593,7 +593,59 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
|
||||
item = /obj/item/storage/box/syndie_kit/space
|
||||
cost = 4
|
||||
|
||||
/datum/uplink_item/suits/thermal
|
||||
name = "MODsuit Thermal Visor Module"
|
||||
desc = "A visor for a MODsuit. Lets you see living beings through walls. Also provides night vision."
|
||||
reference = "MSTV"
|
||||
item = /obj/item/mod/module/visor/thermal
|
||||
cost = 3 // Don't forget, you need to get a modsuit to go with this
|
||||
surplus = 10 //You don't need more than
|
||||
|
||||
/datum/uplink_item/suits/night
|
||||
name = "MODsuit Night Visor Module"
|
||||
desc = "A visor for a MODsuit. Lets you see clearer in the dark."
|
||||
reference = "MSNV"
|
||||
item = /obj/item/mod/module/visor/night
|
||||
cost = 1 // It's night vision, rnd pumps out those goggles for anyone man.
|
||||
surplus = 10 //You don't need more than one
|
||||
|
||||
/datum/uplink_item/suits/plate_compression
|
||||
name = "MODsuit Plate Compression Module"
|
||||
desc = "A MODsuit module that lets the suit compress into a smaller size. Not compatible with storage modules, \
|
||||
you will have to take that module out first."
|
||||
reference = "MSPC"
|
||||
item = /obj/item/mod/module/plate_compression
|
||||
cost = 2
|
||||
|
||||
/datum/uplink_item/suits/noslip
|
||||
name = "MODsuit Anti-Slip Module"
|
||||
desc = "A MODsuit module preventing the user from slipping on water. Already installed in the uplink modsuits."
|
||||
reference = "MSNS"
|
||||
item = /obj/item/mod/module/noslip
|
||||
cost = 1
|
||||
|
||||
/datum/uplink_item/suits/springlock_module
|
||||
name = "Heavily Modified Springlock MODsuit Module"
|
||||
desc = "A module that spans the entire size of the MOD unit, sitting under the outer shell. \
|
||||
This mechanical exoskeleton pushes out of the way when the user enters and it helps in booting \
|
||||
up, but was taken out of modern suits because of the springlock's tendency to \"snap\" back \
|
||||
into place when exposed to humidity. You know what it's like to have an entire exoskeleton enter you? \
|
||||
This version of the module has been modified to allow for near instant activation of the MODsuit. \
|
||||
Useful for quickly getting your MODsuit on/off, or for taking care of a target via a tragic accident. \
|
||||
It is hidden as a DNA lock module. It will block retraction for 10 seconds by default to allow you to follow \
|
||||
up with smoke, but you can multitool the module to disable that."
|
||||
reference = "FNAF"
|
||||
item = /obj/item/mod/module/springlock/bite_of_87
|
||||
cost = 1
|
||||
surplus = 10
|
||||
|
||||
/datum/uplink_item/suits/hidden_holster
|
||||
name = "Hidden Holster Module"
|
||||
desc = "A holster module disguised to look like a tether module. Requires a modsuit to put it in of course. Gun not included."
|
||||
reference = "HHM"
|
||||
item = /obj/item/mod/module/holster/hidden
|
||||
cost = 1
|
||||
surplus = 10
|
||||
|
||||
/datum/uplink_item/device_tools/binary
|
||||
name = "Binary Translator Key"
|
||||
|
||||
@@ -64,10 +64,10 @@
|
||||
surplus = 40
|
||||
|
||||
/datum/uplink_item/dangerous/combat_defib
|
||||
name = "Combat defibrillator"
|
||||
desc = "A lifesaving device turned dangerous weapon. Click on someone with the paddles on harm intent to instantly stop their heart. Can be used as a regular defib as well."
|
||||
name = "Combat Defibrillator Module"
|
||||
desc = "A lifesaving device turned dangerous weapon. Click on someone with the paddles on harm intent to instantly stop their heart. Can be used as a regular defib as well. Installs in a modsuit."
|
||||
reference = "CD"
|
||||
item = /obj/item/defibrillator/compact/combat/loaded
|
||||
item = /obj/item/mod/module/defibrillator/combat
|
||||
cost = 12
|
||||
uplinktypes = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
|
||||
|
||||
@@ -498,9 +498,9 @@
|
||||
// SPACE SUITS
|
||||
|
||||
/datum/uplink_item/suits/hardsuit/elite
|
||||
name = "Elite Syndicate Hardsuit"
|
||||
desc = "An advanced hardsuit with superior armor and mobility to the standard Syndicate Hardsuit."
|
||||
item = /obj/item/clothing/suit/space/hardsuit/syndi/elite
|
||||
name = "Elite Syndicate MODsuit"
|
||||
desc = "An advanced MODsuit with superior armor and mobility to the standard Syndicate MODsuit."
|
||||
item = /obj/item/mod/control/pre_equipped/elite
|
||||
cost = 8
|
||||
reference = "ESHS"
|
||||
excludefrom = list()
|
||||
|
||||
@@ -439,16 +439,27 @@
|
||||
cost = 1
|
||||
excludefrom = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
|
||||
|
||||
/datum/uplink_item/suits/hardsuit // Nukies get elite/shielded hardsuit instead
|
||||
name = "Syndicate Hardsuit"
|
||||
desc = "The feared suit of a syndicate nuclear agent. Features armor and a combat mode \
|
||||
/datum/uplink_item/suits/modsuit
|
||||
name = "Syndicate MODsuit"
|
||||
desc = "The feared MODsuit of a syndicate nuclear agent. Features armor and a eva mode \
|
||||
for faster movement on station. Toggling the suit in and out of \
|
||||
combat mode will allow you all the mobility of a loose fitting uniform without sacrificing armoring. \
|
||||
Additionally the suit is collapsible, making it small enough to fit within a backpack. Comes packaged with internals. \
|
||||
Comes packaged with internals. \
|
||||
Nanotrasen crew who spot these suits are known to panic."
|
||||
reference = "BRHS"
|
||||
item = /obj/item/storage/box/syndie_kit/hardsuit
|
||||
item = /obj/item/storage/box/syndie_kit/modsuit
|
||||
cost = 6
|
||||
surplus = 60 //I have upped the chance of modsuits from 40, as I do feel they are much more worthwhile with the base modsuit no longer being 8 tc, and the high armor values of the elite.
|
||||
excludefrom = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
|
||||
|
||||
/datum/uplink_item/suits/modsuit_elite
|
||||
name = "Syndicate Elite MODsuit"
|
||||
desc = "An advanced MODsuit with superior armor to the standard Syndicate MODsuit. \
|
||||
Nanotrasen crew who spot these suits are known to *really* panic."
|
||||
reference = "MSE"
|
||||
item = /obj/item/storage/box/syndie_kit/modsuit/elite
|
||||
cost = 9 //9 to start, no holopara / ebow.
|
||||
surplus = 60
|
||||
excludefrom = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
|
||||
|
||||
/datum/uplink_item/implants/uplink // Nukies get Nuclear Uplink Bio-chip instead
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
/datum/wires/mod
|
||||
holder_type = /obj/item/mod/control
|
||||
randomize = TRUE //Every modsuit is personalised
|
||||
wire_count = 6 // 4 actual, 2 duds
|
||||
proper_name = "MOD control unit"
|
||||
window_x = 345
|
||||
window_y = 90
|
||||
|
||||
/datum/wires/mod/New(atom/holder)
|
||||
wires = list(WIRE_HACK, WIRE_DISABLE, WIRE_ELECTRIFY, WIRE_INTERFACE)
|
||||
..()
|
||||
|
||||
/datum/wires/mod/interactable(mob/user)
|
||||
if(!..())
|
||||
return FALSE
|
||||
var/obj/item/mod/control/mod = holder
|
||||
if(mod.seconds_electrified && mod.shock(user))
|
||||
return FALSE
|
||||
return mod.open
|
||||
|
||||
/datum/wires/mod/get_status()
|
||||
var/obj/item/mod/control/mod = holder
|
||||
var/list/status = list()
|
||||
status += "The orange light is [mod.seconds_electrified ? "on" : "off"]."
|
||||
status += "The red light is [mod.malfunctioning ? "off" : "blinking"]."
|
||||
status += "The green light is [mod.locked ? "on" : "off"]."
|
||||
status += "The yellow light is [mod.interface_break ? "off" : "on"]."
|
||||
return status
|
||||
|
||||
/datum/wires/mod/on_pulse(wire)
|
||||
var/obj/item/mod/control/mod = holder
|
||||
switch(wire)
|
||||
if(WIRE_HACK)
|
||||
mod.locked = !mod.locked
|
||||
if(WIRE_DISABLE)
|
||||
mod.malfunctioning = TRUE
|
||||
if(WIRE_ELECTRIFY)
|
||||
mod.seconds_electrified = 30
|
||||
if(WIRE_INTERFACE)
|
||||
mod.interface_break = !mod.interface_break
|
||||
|
||||
/datum/wires/mod/on_cut(wire, mend)
|
||||
var/obj/item/mod/control/mod = holder
|
||||
switch(wire)
|
||||
if(WIRE_HACK)
|
||||
if(!mend)
|
||||
mod.req_access = list()
|
||||
if(WIRE_DISABLE)
|
||||
mod.malfunctioning = !mend
|
||||
if(WIRE_ELECTRIFY)
|
||||
if(mend)
|
||||
mod.seconds_electrified = 0
|
||||
else
|
||||
mod.seconds_electrified = -1
|
||||
if(WIRE_INTERFACE)
|
||||
mod.interface_break = !mend
|
||||
|
||||
/datum/wires/mod/ui_act(action, params)
|
||||
var/obj/item/mod/control/mod = holder
|
||||
if(!issilicon(usr) && mod.seconds_electrified && mod.shock(usr))
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
@@ -480,3 +480,15 @@
|
||||
/datum/wires/proc/is_attached(color)
|
||||
if(assemblies[color])
|
||||
return TRUE
|
||||
|
||||
/// Use this proc if you want wires to be pulsed on EMP
|
||||
/datum/wires/proc/emp_pulse()
|
||||
var/list/possible_wires = shuffle(wires)
|
||||
var/remaining_pulses = 3
|
||||
|
||||
for(var/wire in possible_wires)
|
||||
if(prob(33))
|
||||
pulse(wire)
|
||||
remaining_pulses--
|
||||
if(!remaining_pulses)
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user