mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-20 20:45:28 +01:00
[MIRROR] Refactors armor into dedicated subtypes [MDB IGNORE] (#18291)
* Refactors armor into dedicated subtypes * start * most tg things * pain (#18584) * shit * non-mod changes * compile Co-authored-by: John Doe <gamingskeleton3@gmail.com> * #18291 * compile fix * ??? Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> Co-authored-by: John Doe <gamingskeleton3@gmail.com> Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
icon_state = "standard-helmet"
|
||||
base_icon_state = "helmet"
|
||||
worn_icon = 'icons/mob/clothing/modsuit/mod_clothing.dmi'
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, WOUND = 0)
|
||||
armor_type = /datum/armor/none
|
||||
body_parts_covered = HEAD
|
||||
heat_protection = HEAD
|
||||
cold_protection = HEAD
|
||||
@@ -24,7 +24,7 @@
|
||||
/obj/item/flashlight,
|
||||
/obj/item/tank/jetpack/oxygen/captain,
|
||||
)
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, WOUND = 0)
|
||||
armor_type = /datum/armor/none
|
||||
body_parts_covered = CHEST|GROIN
|
||||
heat_protection = CHEST|GROIN
|
||||
cold_protection = CHEST|GROIN
|
||||
@@ -37,7 +37,7 @@
|
||||
icon_state = "standard-gauntlets"
|
||||
base_icon_state = "gauntlets"
|
||||
worn_icon = 'icons/mob/clothing/modsuit/mod_clothing.dmi'
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, WOUND = 0)
|
||||
armor_type = /datum/armor/none
|
||||
body_parts_covered = HANDS|ARMS
|
||||
heat_protection = HANDS|ARMS
|
||||
cold_protection = HANDS|ARMS
|
||||
@@ -50,7 +50,7 @@
|
||||
icon_state = "standard-boots"
|
||||
base_icon_state = "boots"
|
||||
worn_icon = 'icons/mob/clothing/modsuit/mod_clothing.dmi'
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, WOUND = 0)
|
||||
armor_type = /datum/armor/none
|
||||
body_parts_covered = FEET|LEGS
|
||||
heat_protection = FEET|LEGS
|
||||
cold_protection = FEET|LEGS
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
slot_flags = ITEM_SLOT_BACK
|
||||
strip_delay = 10 SECONDS
|
||||
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, WOUND = 0)
|
||||
armor_type = /datum/armor/none
|
||||
actions_types = list(
|
||||
/datum/action/item_action/mod/deploy,
|
||||
/datum/action/item_action/mod/activate,
|
||||
@@ -125,7 +125,7 @@
|
||||
for(var/obj/item/part as anything in all_parts)
|
||||
part.name = "[theme.name] [part.name]"
|
||||
part.desc = "[part.desc] [theme.desc]"
|
||||
part.armor = getArmor(arglist(theme.armor))
|
||||
part.set_armor(theme.armor_type)
|
||||
part.resistance_flags = theme.resistance_flags
|
||||
part.flags_1 |= theme.atom_flags //flags like initialization or admin spawning are here, so we cant set, have to add
|
||||
part.heat_protection = NONE
|
||||
|
||||
+308
-26
@@ -22,7 +22,7 @@
|
||||
/// The slot this mod theme fits on
|
||||
var/slot_flags = ITEM_SLOT_BACK
|
||||
/// Armor shared across the MOD parts.
|
||||
var/armor = list(MELEE = 10, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 0, BIO = 100, FIRE = 25, ACID = 25, WOUND = 5)
|
||||
var/datum/armor/armor_type = /datum/armor/mod_theme
|
||||
/// Resistance flags shared across the MOD parts.
|
||||
var/resistance_flags = NONE
|
||||
/// Atom flags shared across the MOD parts.
|
||||
@@ -99,6 +99,16 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme
|
||||
melee = 10
|
||||
bullet = 5
|
||||
laser = 5
|
||||
energy = 5
|
||||
bio = 100
|
||||
fire = 25
|
||||
acid =25
|
||||
wound = 5
|
||||
|
||||
/datum/mod_theme/engineering
|
||||
name = "engineering"
|
||||
desc = "An engineer-fit suit with heat and shock resistance. Nakamura Engineering's classic."
|
||||
@@ -108,7 +118,7 @@
|
||||
a shock-resistant outer layer, making the suit nigh-invulnerable against even the extremes of high-voltage electricity. \
|
||||
However, the capacity for modification remains the same as civilian-grade suits."
|
||||
default_skin = "engineering"
|
||||
armor = list(MELEE = 10, BULLET = 5, LASER = 20, ENERGY = 10, BOMB = 10, BIO = 100, FIRE = 100, ACID = 25, WOUND = 10)
|
||||
armor_type = /datum/armor/mod_theme_engineering
|
||||
resistance_flags = FIRE_PROOF
|
||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
||||
siemens_coefficient = 0
|
||||
@@ -147,6 +157,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_engineering
|
||||
melee = 10
|
||||
bullet = 5
|
||||
laser = 20
|
||||
energy = 10
|
||||
bomb = 10
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 25
|
||||
wound = 10
|
||||
|
||||
/datum/mod_theme/atmospheric
|
||||
name = "atmospheric"
|
||||
desc = "An atmospheric-resistant suit by Nakamura Engineering, offering extreme heat resistance compared to the engineer suit."
|
||||
@@ -156,7 +177,7 @@
|
||||
corrosive gasses and liquids, useful in the world of pipes. \
|
||||
However, the capacity for modification remains the same as civilian-grade suits."
|
||||
default_skin = "atmospheric"
|
||||
armor = list(MELEE = 10, BULLET = 5, LASER = 10, ENERGY = 15, BOMB = 10, BIO = 100, FIRE = 100, ACID = 75, WOUND = 10)
|
||||
armor_type = /datum/armor/mod_theme_atmospheric
|
||||
resistance_flags = FIRE_PROOF
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|
||||
slowdown_inactive = 1.5
|
||||
@@ -196,6 +217,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_atmospheric
|
||||
melee = 10
|
||||
bullet = 5
|
||||
laser = 10
|
||||
energy = 15
|
||||
bomb = 10
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 75
|
||||
wound = 10
|
||||
|
||||
/datum/mod_theme/advanced
|
||||
name = "advanced"
|
||||
desc = "An advanced version of Nakamura Engineering's classic suit, shining with a white, acid and fire resistant polish."
|
||||
@@ -205,7 +237,7 @@
|
||||
The paint used is almost entirely immune to corrosives, and certainly looks damn fine. \
|
||||
These come pre-installed with magnetic boots, using an advanced system to toggle them on or off as the user walks."
|
||||
default_skin = "advanced"
|
||||
armor = list(MELEE = 15, BULLET = 5, LASER = 20, ENERGY = 15, BOMB = 50, BIO = 100, FIRE = 100, ACID = 90, WOUND = 10)
|
||||
armor_type = /datum/armor/mod_theme_advanced
|
||||
resistance_flags = FIRE_PROOF
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|
||||
siemens_coefficient = 0
|
||||
@@ -249,6 +281,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_advanced
|
||||
melee = 15
|
||||
bullet = 5
|
||||
laser = 20
|
||||
energy = 15
|
||||
bomb = 50
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 90
|
||||
wound = 10
|
||||
|
||||
/datum/mod_theme/mining
|
||||
name = "mining"
|
||||
desc = "A Nanotrasen mining suit for on-site operations, fit with accreting ash armor and a sphere form."
|
||||
@@ -270,7 +313,7 @@
|
||||
so much so that it comes default fueled by equally-enigmatic plasma fuel rather than a simple recharge. \
|
||||
Additionally, the systems have been put to near their maximum load, allowing for far less customization than others."
|
||||
default_skin = "mining"
|
||||
armor = list(MELEE = 15, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 30, BIO = 100, FIRE = 100, ACID = 75, WOUND = 15)
|
||||
armor_type = /datum/armor/mod_theme_mining
|
||||
resistance_flags = FIRE_PROOF|LAVA_PROOF
|
||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
||||
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
|
||||
@@ -339,6 +382,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_mining
|
||||
melee = 15
|
||||
bullet = 5
|
||||
laser = 5
|
||||
energy = 5
|
||||
bomb = 30
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 75
|
||||
wound = 15
|
||||
|
||||
/datum/mod_theme/loader
|
||||
name = "loader"
|
||||
desc = "An unsealed experimental motorized harness manufactured by Scarborough Arms for quick and efficient munition supplies."
|
||||
@@ -352,7 +406,7 @@
|
||||
the user being able to run at greater speeds for much longer distances and times than an unsuited equivalent. \
|
||||
A lot of people would say loading cargo is a dull job. You could not disagree more."
|
||||
default_skin = "loader"
|
||||
armor = list(MELEE = 15, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 10, BIO = 10, FIRE = 25, ACID = 25, WOUND = 10)
|
||||
armor_type = /datum/armor/mod_theme_loader
|
||||
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
|
||||
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
|
||||
siemens_coefficient = 0.25
|
||||
@@ -389,6 +443,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_loader
|
||||
melee = 15
|
||||
bullet = 5
|
||||
laser = 5
|
||||
energy = 5
|
||||
bomb = 10
|
||||
bio = 10
|
||||
fire = 25
|
||||
acid = 25
|
||||
wound = 10
|
||||
|
||||
/datum/mod_theme/medical
|
||||
name = "medical"
|
||||
desc = "A lightweight suit by DeForest Medical Corporation, allows for easier movement."
|
||||
@@ -399,7 +464,7 @@
|
||||
it is incredibly acid-resistant. It is slightly more demanding of power than civilian-grade models, \
|
||||
and weak against fingers tapping the glass."
|
||||
default_skin = "medical"
|
||||
armor = list(MELEE = 5, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 10, BIO = 100, FIRE = 60, ACID = 75, WOUND = 5)
|
||||
armor_type = /datum/armor/mod_theme_medical
|
||||
charge_drain = DEFAULT_CHARGE_DRAIN * 1.5
|
||||
slowdown_inactive = 1
|
||||
slowdown_active = 0.5
|
||||
@@ -470,6 +535,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_medical
|
||||
melee = 5
|
||||
bullet = 5
|
||||
laser = 5
|
||||
energy = 5
|
||||
bomb = 10
|
||||
bio = 100
|
||||
fire = 60
|
||||
acid = 75
|
||||
wound = 5
|
||||
|
||||
/datum/mod_theme/rescue
|
||||
name = "rescue"
|
||||
desc = "An advanced version of DeForest Medical Corporation's medical suit, designed for quick rescue of bodies from the most dangerous environments."
|
||||
@@ -480,7 +556,7 @@
|
||||
all while being entirely immune against chemical and thermal threats. \
|
||||
It is slightly more demanding of power than civilian-grade models, and weak against fingers tapping the glass."
|
||||
default_skin = "rescue"
|
||||
armor = list(MELEE = 10, BULLET = 10, LASER = 5, ENERGY = 5, BOMB = 10, BIO = 100, FIRE = 100, ACID = 100, WOUND = 5)
|
||||
armor_type = /datum/armor/mod_theme_rescue
|
||||
resistance_flags = FIRE_PROOF|ACID_PROOF
|
||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
||||
charge_drain = DEFAULT_CHARGE_DRAIN * 1.5
|
||||
@@ -530,6 +606,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_rescue
|
||||
melee = 10
|
||||
bullet = 10
|
||||
laser = 5
|
||||
energy = 5
|
||||
bomb = 10
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 100
|
||||
wound = 5
|
||||
|
||||
/datum/mod_theme/research
|
||||
name = "research"
|
||||
desc = "A private military EOD suit by Aussec Armory, intended for explosive research. Bulky, but expansive."
|
||||
@@ -541,7 +628,7 @@
|
||||
missiles and artillery, all the explosive resistance is mostly working to keep the user intact, \
|
||||
not alive. The user will also find narrow doorframes nigh-impossible to surmount."
|
||||
default_skin = "research"
|
||||
armor = list(MELEE = 20, BULLET = 15, LASER = 5, ENERGY = 5, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, WOUND = 15)
|
||||
armor_type = /datum/armor/mod_theme_research
|
||||
resistance_flags = FIRE_PROOF|ACID_PROOF
|
||||
atom_flags = PREVENT_CONTENTS_EXPLOSION_1
|
||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
||||
@@ -584,6 +671,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_research
|
||||
melee = 20
|
||||
bullet = 15
|
||||
laser = 5
|
||||
energy = 5
|
||||
bomb = 100
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 100
|
||||
wound = 15
|
||||
|
||||
/datum/mod_theme/security
|
||||
name = "security"
|
||||
desc = "An Apadyne Technologies security suit, offering quicker speed at the cost of carrying capacity."
|
||||
@@ -594,7 +692,7 @@
|
||||
allowing the suit to do more work in carrying the weight. However, the systems used in these suits are more than \
|
||||
a few years out of date, leading to an overall lower capacity for modules."
|
||||
default_skin = "security"
|
||||
armor = list(MELEE = 15, BULLET = 15, LASER = 15, ENERGY = 15, BOMB = 25, BIO = 100, FIRE = 75, ACID = 75, WOUND = 15)
|
||||
armor_type = /datum/armor/mod_theme_security
|
||||
complexity_max = DEFAULT_MAX_COMPLEXITY - 3
|
||||
slowdown_inactive = 1
|
||||
slowdown_active = 0.5
|
||||
@@ -635,6 +733,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_security
|
||||
melee = 15
|
||||
bullet = 15
|
||||
laser = 15
|
||||
energy = 15
|
||||
bomb = 25
|
||||
bio = 100
|
||||
fire = 75
|
||||
acid = 75
|
||||
wound = 15
|
||||
|
||||
/datum/mod_theme/safeguard
|
||||
name = "safeguard"
|
||||
desc = "An Apadyne Technologies advanced security suit, offering greater speed and fire protection than the standard security model."
|
||||
@@ -645,7 +754,7 @@
|
||||
Heatsinks line the sides of the suit, and greater technology has been used in insulating it against \
|
||||
both corrosive environments and sudden impacts to the user's joints."
|
||||
default_skin = "safeguard"
|
||||
armor = list(MELEE = 15, BULLET = 15, LASER = 15, ENERGY = 15, BOMB = 40, BIO = 100, FIRE = 100, ACID = 95, WOUND = 15)
|
||||
armor_type = /datum/armor/mod_theme_safeguard
|
||||
resistance_flags = FIRE_PROOF
|
||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
||||
slowdown_inactive = 0.75
|
||||
@@ -685,6 +794,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_safeguard
|
||||
melee = 15
|
||||
bullet = 15
|
||||
laser = 15
|
||||
energy = 15
|
||||
bomb = 40
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 95
|
||||
wound = 15
|
||||
|
||||
/datum/mod_theme/magnate
|
||||
name = "magnate"
|
||||
desc = "A fancy, very protective suit for Nanotrasen's captains. Shock, fire and acid-proof while also having a large capacity and high speed."
|
||||
@@ -698,7 +818,7 @@
|
||||
and bluespace processing to allow for a wide array of onboard modules to be supported, and only the best actuators \
|
||||
have been employed for speed. The resemblance to a Gorlex Marauder helmet is purely coincidental."
|
||||
default_skin = "magnate"
|
||||
armor = list(MELEE = 20, BULLET = 15, LASER = 15, ENERGY = 15, BOMB = 50, BIO = 100, FIRE = 100, ACID = 100, WOUND = 15)
|
||||
armor_type = /datum/armor/mod_theme_magnate
|
||||
resistance_flags = FIRE_PROOF|ACID_PROOF
|
||||
atom_flags = PREVENT_CONTENTS_EXPLOSION_1
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|
||||
@@ -741,6 +861,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_magnate
|
||||
melee = 20
|
||||
bullet = 15
|
||||
laser = 15
|
||||
energy = 15
|
||||
bomb = 50
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 100
|
||||
wound = 15
|
||||
|
||||
/datum/mod_theme/cosmohonk
|
||||
name = "cosmohonk"
|
||||
desc = "A suit by Honk Ltd. Protects against low humor environments. Most of the tech went to lower the power cost."
|
||||
@@ -750,7 +881,7 @@
|
||||
this particular model does not employ manganese bipolar capacitor cleaners, thank the Honkmother. \
|
||||
All you know is that this suit is mysteriously power-efficient, and far too colorful for the Mime to steal."
|
||||
default_skin = "cosmohonk"
|
||||
armor = list(MELEE = 5, BULLET = 5, LASER = 20, ENERGY = 20, BOMB = 10, BIO = 100, FIRE = 60, ACID = 30, WOUND = 5)
|
||||
armor_type = /datum/armor/mod_theme_cosmohonk
|
||||
charge_drain = DEFAULT_CHARGE_DRAIN * 0.25
|
||||
slowdown_inactive = 1.75
|
||||
slowdown_active = 1.25
|
||||
@@ -789,6 +920,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_cosmohonk
|
||||
melee = 5
|
||||
bullet = 5
|
||||
laser = 20
|
||||
energy = 20
|
||||
bomb = 10
|
||||
bio = 100
|
||||
fire = 60
|
||||
acid = 30
|
||||
wound = 5
|
||||
|
||||
/datum/mod_theme/syndicate
|
||||
name = "syndicate"
|
||||
desc = "A suit designed by Gorlex Marauders, offering armor ruled illegal in most of Spinward Stellar."
|
||||
@@ -800,7 +942,7 @@
|
||||
A small tag hangs off of it reading; 'Property of the Gorlex Marauders, with assistance from Cybersun Industries. \
|
||||
All rights reserved, tampering with suit will void warranty."
|
||||
default_skin = "syndicate"
|
||||
armor = list(MELEE = 15, BULLET = 20, LASER = 15, ENERGY = 15, BOMB = 35, BIO = 100, FIRE = 50, ACID = 90, WOUND = 25)
|
||||
armor_type = /datum/armor/mod_theme_syndicate
|
||||
atom_flags = PREVENT_CONTENTS_EXPLOSION_1
|
||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
||||
siemens_coefficient = 0
|
||||
@@ -870,6 +1012,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_syndicate
|
||||
melee = 15
|
||||
bullet = 20
|
||||
laser = 15
|
||||
energy = 15
|
||||
bomb = 35
|
||||
bio = 100
|
||||
fire = 50
|
||||
acid = 90
|
||||
wound = 25
|
||||
|
||||
/datum/mod_theme/elite
|
||||
name = "elite"
|
||||
desc = "An elite suit upgraded by Cybersun Industries, offering upgraded armor values."
|
||||
@@ -880,7 +1033,7 @@
|
||||
'Property of the Gorlex Marauders, with assistance from Cybersun Industries. \
|
||||
All rights reserved, tampering with suit will void life expectancy.'"
|
||||
default_skin = "elite"
|
||||
armor = list(MELEE = 35, BULLET = 30, LASER = 35, ENERGY = 35, BOMB = 55, BIO = 100, FIRE = 100, ACID = 100, WOUND = 25)
|
||||
armor_type = /datum/armor/mod_theme_elite
|
||||
resistance_flags = FIRE_PROOF|ACID_PROOF
|
||||
atom_flags = PREVENT_CONTENTS_EXPLOSION_1
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|
||||
@@ -926,6 +1079,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_elite
|
||||
melee = 35
|
||||
bullet = 30
|
||||
laser = 35
|
||||
energy = 35
|
||||
bomb = 55
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 100
|
||||
wound = 25
|
||||
|
||||
/datum/mod_theme/infiltrator
|
||||
name = "infiltrator"
|
||||
desc = "A specialized infiltration suit, developed by the Roseus Galactic Actors Guild to strike fear and awe into the hearts of the public."
|
||||
@@ -938,7 +1102,7 @@
|
||||
backed by inbuilt psi-emitters, heightening stressors common amongst Nanotrasen staff, and clouding identifiable information. \
|
||||
Scrubbed statistical data presented a single correlation within documented psychological profiles. The fear of the Unknown."
|
||||
default_skin = "infiltrator"
|
||||
armor = list(MELEE = 50, BULLET = 50, LASER = 40, ENERGY = 50, BOMB = 40, BIO = 0, FIRE = 100, ACID = 100, WOUND = 25)
|
||||
armor_type = /datum/armor/mod_theme_infiltrator
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
atom_flags = PREVENT_CONTENTS_EXPLOSION_1
|
||||
siemens_coefficient = 0
|
||||
@@ -982,6 +1146,16 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_infiltrator
|
||||
melee = 50
|
||||
bullet = 50
|
||||
laser = 40
|
||||
energy = 50
|
||||
bomb = 40
|
||||
fire = 100
|
||||
acid = 100
|
||||
wound = 25
|
||||
|
||||
/datum/mod_theme/enchanted
|
||||
name = "enchanted"
|
||||
desc = "The Wizard Federation's relatively low-tech MODsuit. Is very protective, though."
|
||||
@@ -993,7 +1167,7 @@
|
||||
default means of power. The hood and platform boots are of unknown usage, but it's speculated that \
|
||||
wizards trend towards the dramatic."
|
||||
default_skin = "enchanted"
|
||||
armor = list(MELEE = 40, BULLET = 40, LASER = 50, ENERGY = 50, BOMB = 35, BIO = 100, FIRE = 100, ACID = 100, WOUND = 30)
|
||||
armor_type = /datum/armor/mod_theme_enchanted
|
||||
resistance_flags = FIRE_PROOF|ACID_PROOF
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|
||||
siemens_coefficient = 0
|
||||
@@ -1034,6 +1208,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_enchanted
|
||||
melee = 40
|
||||
bullet = 40
|
||||
laser = 50
|
||||
energy = 50
|
||||
bomb = 35
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 100
|
||||
wound = 30
|
||||
|
||||
/datum/mod_theme/ninja
|
||||
name = "ninja"
|
||||
desc = "A unique, vacuum-proof suit of nano-enhanced armor designed specifically for Spider Clan assassins."
|
||||
@@ -1044,7 +1229,7 @@
|
||||
nigh-immune to even volcanic heat. It's entirely sealed against even the strongest acids, \
|
||||
and the myoelectric artifical muscles of the suit leave it light as a feather during movement."
|
||||
default_skin = "ninja"
|
||||
armor = list(MELEE = 40, BULLET = 30, LASER = 20, ENERGY = 30, BOMB = 30, BIO = 100, FIRE = 100, ACID = 100, WOUND = 10)
|
||||
armor_type = /datum/armor/mod_theme_ninja
|
||||
resistance_flags = LAVA_PROOF|FIRE_PROOF|ACID_PROOF
|
||||
charge_drain = DEFAULT_CHARGE_DRAIN * 0.5
|
||||
siemens_coefficient = 0
|
||||
@@ -1087,6 +1272,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_ninja
|
||||
melee = 40
|
||||
bullet = 30
|
||||
laser = 20
|
||||
energy = 30
|
||||
bomb = 30
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 100
|
||||
wound = 10
|
||||
|
||||
/datum/mod_theme/prototype
|
||||
name = "prototype"
|
||||
desc = "A prototype modular suit powered by locomotives. While it is comfortable and has a big capacity, it remains very bulky and power-inefficient."
|
||||
@@ -1098,7 +1294,7 @@
|
||||
The internal heads-up display is rendered in nearly unreadable cyan, as the visor suggests, \
|
||||
leaving the user unable to see long distances. However, the way the helmet retracts is pretty cool."
|
||||
default_skin = "prototype"
|
||||
armor = list(MELEE = 20, BULLET = 5, LASER = 10, ENERGY = 10, BOMB = 50, BIO = 100, FIRE = 100, ACID = 75, WOUND = 5)
|
||||
armor_type = /datum/armor/mod_theme_prototype
|
||||
resistance_flags = FIRE_PROOF
|
||||
siemens_coefficient = 0
|
||||
complexity_max = DEFAULT_MAX_COMPLEXITY + 5
|
||||
@@ -1140,6 +1336,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_prototype
|
||||
melee = 20
|
||||
bullet = 5
|
||||
laser = 10
|
||||
energy = 10
|
||||
bomb = 50
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 75
|
||||
wound = 5
|
||||
|
||||
/datum/mod_theme/responsory
|
||||
name = "responsory"
|
||||
desc = "A high-speed rescue suit by Nanotrasen, intended for its' emergency response teams."
|
||||
@@ -1149,7 +1356,7 @@
|
||||
it keeps the wearer safe from the harsh void of space while sacrificing no speed whatsoever. \
|
||||
While wearing it you feel an extreme deference to darkness. "
|
||||
default_skin = "responsory"
|
||||
armor = list(MELEE = 50, BULLET = 40, LASER = 50, ENERGY = 50, BOMB = 50, BIO = 100, FIRE = 100, ACID = 90, WOUND = 10)
|
||||
armor_type = /datum/armor/mod_theme_responsory
|
||||
atom_flags = PREVENT_CONTENTS_EXPLOSION_1
|
||||
resistance_flags = FIRE_PROOF
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|
||||
@@ -1215,6 +1422,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_responsory
|
||||
melee = 50
|
||||
bullet = 40
|
||||
laser = 50
|
||||
energy = 50
|
||||
bomb = 50
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 90
|
||||
wound = 10
|
||||
|
||||
/datum/mod_theme/apocryphal
|
||||
name = "apocryphal"
|
||||
desc = "A high-tech, only technically legal, armored suit created by a collaboration effort between Nanotrasen and Apadyne Technologies."
|
||||
@@ -1225,7 +1443,7 @@
|
||||
Whether the wearer uses it or not is up to them. \
|
||||
There seems to be a little inscription on the wrist that reads; \'squiddie', d'aww."
|
||||
default_skin = "apocryphal"
|
||||
armor = list(MELEE = 80, BULLET = 80, LASER = 50, ENERGY = 60, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, WOUND = 25)
|
||||
armor_type = /datum/armor/mod_theme_apocryphal
|
||||
resistance_flags = FIRE_PROOF|ACID_PROOF
|
||||
atom_flags = PREVENT_CONTENTS_EXPLOSION_1
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|
||||
@@ -1268,6 +1486,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_apocryphal
|
||||
melee = 80
|
||||
bullet = 80
|
||||
laser = 50
|
||||
energy = 60
|
||||
bomb = 100
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 100
|
||||
wound = 25
|
||||
|
||||
/datum/mod_theme/corporate
|
||||
name = "corporate"
|
||||
desc = "A fancy, high-tech suit for Nanotrasen's high ranking officers."
|
||||
@@ -1277,7 +1506,7 @@
|
||||
counted as a war-crime and reason for immediate execution in over fifty Nanotrasen space stations. \
|
||||
The resemblance to a Gorlex Marauder helmet is purely coincidental."
|
||||
default_skin = "corporate"
|
||||
armor = list(MELEE = 50, BULLET = 40, LASER = 50, ENERGY = 50, BOMB = 50, BIO = 100, FIRE = 100, ACID = 100, WOUND = 15)
|
||||
armor_type = /datum/armor/mod_theme_corporate
|
||||
resistance_flags = FIRE_PROOF|ACID_PROOF
|
||||
atom_flags = PREVENT_CONTENTS_EXPLOSION_1
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|
||||
@@ -1319,6 +1548,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_corporate
|
||||
melee = 50
|
||||
bullet = 40
|
||||
laser = 50
|
||||
energy = 50
|
||||
bomb = 50
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 100
|
||||
wound = 15
|
||||
|
||||
/datum/mod_theme/chrono
|
||||
name = "chrono"
|
||||
desc = "A suit beyond our time, beyond time itself. Used to traverse timelines and \"correct their course\"."
|
||||
@@ -1327,7 +1567,7 @@
|
||||
and sometimes hilariously painful side effects of jumping timelines, while providing inbuilt equipment for \
|
||||
making timeline adjustments to correct a bad course."
|
||||
default_skin = "chrono"
|
||||
armor = list(MELEE = 60, BULLET = 60, LASER = 60, ENERGY = 60, BOMB = 30, BIO = 100, FIRE = 100, ACID = 100, WOUND = 15)
|
||||
armor_type = /datum/armor/mod_theme_chrono
|
||||
resistance_flags = FIRE_PROOF|ACID_PROOF
|
||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
||||
complexity_max = DEFAULT_MAX_COMPLEXITY - 10
|
||||
@@ -1364,6 +1604,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_chrono
|
||||
melee = 60
|
||||
bullet = 60
|
||||
laser = 60
|
||||
energy = 60
|
||||
bomb = 30
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 100
|
||||
wound = 15
|
||||
|
||||
/datum/mod_theme/debug
|
||||
name = "debug"
|
||||
desc = "Strangely nostalgic."
|
||||
@@ -1371,7 +1622,7 @@
|
||||
Contains an internal self-recharging high-current capacitor for short, powerful bo- \
|
||||
Oh wait, this is not actually a flight suit. Fuck."
|
||||
default_skin = "debug"
|
||||
armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, WOUND = 0)
|
||||
armor_type = /datum/armor/mod_theme_debug
|
||||
resistance_flags = FIRE_PROOF|ACID_PROOF
|
||||
atom_flags = PREVENT_CONTENTS_EXPLOSION_1
|
||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
||||
@@ -1411,6 +1662,16 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_debug
|
||||
melee = 50
|
||||
bullet = 50
|
||||
laser = 50
|
||||
energy = 50
|
||||
bomb = 100
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
/datum/mod_theme/administrative
|
||||
name = "administrative"
|
||||
desc = "A suit made of adminium. Who comes up with these stupid mineral names?"
|
||||
@@ -1419,7 +1680,7 @@
|
||||
have all the fun. If this continues to be a pattern for your \"events\" (Admin Abuse) \
|
||||
there will be an admin complaint. You have been warned."
|
||||
default_skin = "debug"
|
||||
armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 100, BIO = 100, FIRE = 100, ACID = 100, WOUND = 100)
|
||||
armor_type = /datum/armor/mod_theme_administrative
|
||||
resistance_flags = INDESTRUCTIBLE|LAVA_PROOF|FIRE_PROOF|UNACIDABLE|ACID_PROOF
|
||||
atom_flags = PREVENT_CONTENTS_EXPLOSION_1
|
||||
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
|
||||
@@ -1455,6 +1716,17 @@
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_administrative
|
||||
melee = 100
|
||||
bullet = 100
|
||||
laser = 100
|
||||
energy = 100
|
||||
bomb = 100
|
||||
bio = 100
|
||||
fire = 100
|
||||
acid = 100
|
||||
wound = 100
|
||||
|
||||
/datum/mod_theme/timeline
|
||||
name = "chrono"
|
||||
desc = "A suit beyond our time, beyond time itself. Used to traverse timelines and \"correct their course\"."
|
||||
@@ -1463,7 +1735,7 @@
|
||||
and sometimes hilariously painful side effects of jumping timelines, while providing inbuilt equipment for \
|
||||
making timeline adjustments to correct a bad course."
|
||||
default_skin = "timeline"
|
||||
armor = list(MELEE = 60, BULLET = 60, LASER = 60, ENERGY = 60, BOMB = 30, BIO = 90, FIRE = 100, ACID = 100)
|
||||
armor_type = /datum/armor/mod_theme_timeline
|
||||
resistance_flags = FIRE_PROOF|ACID_PROOF
|
||||
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
||||
complexity_max = 15
|
||||
@@ -1495,3 +1767,13 @@
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
/datum/armor/mod_theme_timeline
|
||||
melee = 60
|
||||
bullet = 60
|
||||
laser = 60
|
||||
energy = 60
|
||||
bomb = 30
|
||||
bio = 90
|
||||
fire = 100
|
||||
acid = 100
|
||||
|
||||
@@ -23,10 +23,16 @@
|
||||
/// Speed that we actually added.
|
||||
var/actual_speed_added = 0
|
||||
/// Armor values added to the suit parts.
|
||||
var/list/armor_values = list(MELEE = 25, BULLET = 30, LASER = 15, ENERGY = 15)
|
||||
var/list/armor_mod = /datum/armor/mod_module_armor_boost
|
||||
/// List of parts of the suit that are spaceproofed, for giving them back the pressure protection.
|
||||
var/list/spaceproofed = list()
|
||||
|
||||
/datum/armor/mod_module_armor_boost
|
||||
melee = 25
|
||||
bullet = 30
|
||||
laser = 15
|
||||
energy = 15
|
||||
|
||||
/obj/item/mod/module/armor_booster/on_suit_activation()
|
||||
mod.helmet.flash_protect = FLASH_PROTECTION_WELDER
|
||||
|
||||
@@ -45,7 +51,7 @@
|
||||
mod.wearer.update_equipment_speed_mods()
|
||||
var/list/parts = mod.mod_parts + mod
|
||||
for(var/obj/item/part as anything in parts)
|
||||
part.armor = part.armor.modifyRating(arglist(armor_values))
|
||||
part.set_armor(part.get_armor().add_other_armor(armor_mod))
|
||||
if(!remove_pressure_protection || !isclothing(part))
|
||||
continue
|
||||
var/obj/item/clothing/clothing_part = part
|
||||
@@ -62,11 +68,8 @@
|
||||
mod.slowdown += actual_speed_added
|
||||
mod.wearer.update_equipment_speed_mods()
|
||||
var/list/parts = mod.mod_parts + mod
|
||||
var/list/removed_armor = armor_values.Copy()
|
||||
for(var/armor_type in removed_armor)
|
||||
removed_armor[armor_type] = -removed_armor[armor_type]
|
||||
for(var/obj/item/part as anything in parts)
|
||||
part.armor = part.armor.modifyRating(arglist(removed_armor))
|
||||
part.set_armor(part.get_armor().subtract_other_armor(armor_mod))
|
||||
if(!remove_pressure_protection || !isclothing(part))
|
||||
continue
|
||||
var/obj/item/clothing/clothing_part = part
|
||||
|
||||
@@ -375,7 +375,7 @@
|
||||
/// How many tiles we traveled through.
|
||||
var/traveled_tiles = 0
|
||||
/// Armor values per tile.
|
||||
var/list/armor_values = list(MELEE = 4, BULLET = 1, LASER = 2, ENERGY = 2, BOMB = 4)
|
||||
var/datum/armor/armor_mod = /datum/armor/mod_ash_accretion
|
||||
/// Speed added when you're fully covered in ash.
|
||||
var/speed_added = 0.5
|
||||
/// Speed that we actually added.
|
||||
@@ -385,6 +385,13 @@
|
||||
/// Turfs that let us keep ash.
|
||||
var/static/list/keep_turfs
|
||||
|
||||
/datum/armor/mod_ash_accretion
|
||||
melee = 4
|
||||
bullet = 1
|
||||
laser = 2
|
||||
energy = 2
|
||||
bomb = 4
|
||||
|
||||
/obj/item/mod/module/ash_accretion/Initialize(mapload)
|
||||
. = ..()
|
||||
if(!accretion_turfs)
|
||||
@@ -419,11 +426,9 @@
|
||||
if(!traveled_tiles)
|
||||
return
|
||||
var/list/parts = mod.mod_parts + mod
|
||||
var/list/removed_armor = armor_values.Copy()
|
||||
for(var/armor_type in removed_armor)
|
||||
removed_armor[armor_type] = -removed_armor[armor_type] * traveled_tiles
|
||||
var/datum/armor/to_remove = get_armor_by_type(armor_mod)
|
||||
for(var/obj/item/part as anything in parts)
|
||||
part.armor = part.armor.modifyRating(arglist(removed_armor))
|
||||
part.set_armor(part.get_armor().subtract_other_armor(to_remove.generate_new_with_multipliers(list(ARMOR_ALL = traveled_tiles))))
|
||||
if(traveled_tiles == max_traveled_tiles)
|
||||
mod.slowdown += speed_added
|
||||
mod.wearer.update_equipment_speed_mods()
|
||||
@@ -444,7 +449,7 @@
|
||||
traveled_tiles++
|
||||
var/list/parts = mod.mod_parts + mod
|
||||
for(var/obj/item/part as anything in parts)
|
||||
part.armor = part.armor.modifyRating(arglist(armor_values))
|
||||
part.set_armor(part.get_armor().add_other_armor(armor_mod))
|
||||
if(traveled_tiles >= max_traveled_tiles)
|
||||
balloon_alert(mod.wearer, "fully ash covered")
|
||||
mod.wearer.color = list(1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,3) //make them super light
|
||||
@@ -463,11 +468,8 @@
|
||||
mod.wearer.update_equipment_speed_mods()
|
||||
traveled_tiles--
|
||||
var/list/parts = mod.mod_parts + mod
|
||||
var/list/removed_armor = armor_values.Copy()
|
||||
for(var/armor_type in removed_armor)
|
||||
removed_armor[armor_type] = -removed_armor[armor_type]
|
||||
for(var/obj/item/part as anything in parts)
|
||||
part.armor = part.armor.modifyRating(arglist(removed_armor))
|
||||
part.set_armor(part.get_armor().subtract_other_armor(armor_mod))
|
||||
if(traveled_tiles <= 0)
|
||||
balloon_alert(mod.wearer, "ran out of ash!")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user