[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:
SkyratBot
2023-01-08 05:06:16 +01:00
committed by GitHub
parent 9aac55ef4d
commit 011fefdd81
322 changed files with 8499 additions and 993 deletions
+4 -4
View File
@@ -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
+2 -2
View File
@@ -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
View File
@@ -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
+9 -6
View File
@@ -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
+12 -10
View File
@@ -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!")