[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
+96 -9
View File
@@ -12,7 +12,7 @@
heat_protection = CHEST|GROIN|LEGS|ARMS
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
hoodtype = /obj/item/clothing/head/hooded/explorer
armor = list(MELEE = 30, BULLET = 10, LASER = 10, ENERGY = 20, BOMB = 50, BIO = 0, FIRE = 50, ACID = 50)
armor_type = /datum/armor/hooded_explorer
allowed = list(
/obj/item/flashlight,
/obj/item/gun/energy/recharge/kinetic_accelerator,
@@ -25,6 +25,15 @@
)
resistance_flags = FIRE_PROOF
/datum/armor/hooded_explorer
melee = 30
bullet = 10
laser = 10
energy = 20
bomb = 50
fire = 50
acid = 50
/obj/item/clothing/head/hooded/explorer
name = "explorer hood"
desc = "An armoured hood for exploring harsh environments."
@@ -37,9 +46,19 @@
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
heat_protection = HEAD
max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT
armor = list(MELEE = 30, BULLET = 10, LASER = 10, ENERGY = 20, BOMB = 50, BIO = 0, FIRE = 50, ACID = 50, WOUND = 10)
armor_type = /datum/armor/hooded_explorer
resistance_flags = FIRE_PROOF
/datum/armor/hooded_explorer
melee = 30
bullet = 10
laser = 10
energy = 20
bomb = 50
fire = 50
acid = 50
wound = 10
/obj/item/clothing/suit/hooded/explorer/Initialize(mapload)
. = ..()
AddComponent(/datum/component/armor_plate)
@@ -58,10 +77,20 @@
visor_flags_inv = HIDEFACIALHAIR
visor_flags_cover = MASKCOVERSMOUTH
actions_types = list(/datum/action/item_action/adjust)
armor = list(MELEE = 10, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 0, BIO = 50, FIRE = 20, ACID = 40, WOUND = 5)
armor_type = /datum/armor/gas_explorer
resistance_flags = FIRE_PROOF
has_fov = FALSE
/datum/armor/gas_explorer
melee = 10
bullet = 5
laser = 5
energy = 5
bio = 50
fire = 20
acid = 40
wound = 5
/obj/item/clothing/mask/gas/explorer/attack_self(mob/user)
adjustmask(user)
@@ -104,20 +133,29 @@
/obj/item/spear,
/obj/item/tank/internals,
)
armor = list(MELEE = 35, BULLET = 10, LASER = 25, ENERGY = 35, BOMB = 25, BIO = 0, FIRE = 60, ACID = 60) //a fair alternative to bone armor, requiring alternative materials and gaining a suit slot
armor_type = /datum/armor/cloak_goliath
hoodtype = /obj/item/clothing/head/hooded/cloakhood/goliath
body_parts_covered = CHEST|GROIN|ARMS
//SKYRAT ADDITION START -GOLIATH CLOAK EDIT
cold_protection = CHEST|GROIN|ARMS
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
/datum/armor/cloak_goliath
melee = 35
bullet = 10
laser = 25
energy = 35
bomb = 25
fire = 60
acid = 60
/obj/item/clothing/head/hooded/cloakhood/goliath
name = "goliath cloak hood"
icon = 'icons/obj/clothing/head/helmet.dmi'
worn_icon = 'icons/mob/clothing/head/helmet.dmi'
icon_state = "golhood"
desc = "A protective & concealing hood."
armor = list(MELEE = 35, BULLET = 10, LASER = 25, ENERGY = 35, BOMB = 25, BIO = 0, FIRE = 60, ACID = 60)
armor_type = /datum/armor/cloakhood_goliath
clothing_flags = SNUG_FIT
flags_inv = HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR
transparent_protection = HIDEMASK
@@ -125,6 +163,15 @@
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
//SKYRAT ADDITION END
/datum/armor/cloakhood_goliath
melee = 35
bullet = 10
laser = 25
energy = 35
bomb = 25
fire = 60
acid = 60
/obj/item/clothing/suit/hooded/cloak/drake
name = "drake armour"
icon_state = "dragon"
@@ -139,7 +186,7 @@
/obj/item/t_scanner/adv_mining_scanner,
/obj/item/tank/internals,
)
armor = list(MELEE = 65, BULLET = 15, LASER = 40, ENERGY = 40, BOMB = 70, BIO = 60, FIRE = 100, ACID = 100)
armor_type = /datum/armor/cloak_drake
hoodtype = /obj/item/clothing/head/hooded/cloakhood/drake
body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
@@ -149,13 +196,23 @@
resistance_flags = FIRE_PROOF | ACID_PROOF
transparent_protection = HIDEGLOVES|HIDESUITSTORAGE|HIDEJUMPSUIT|HIDESHOES
/datum/armor/cloak_drake
melee = 65
bullet = 15
laser = 40
energy = 40
bomb = 70
bio = 60
fire = 100
acid = 100
/obj/item/clothing/head/hooded/cloakhood/drake
name = "drake helm"
icon = 'icons/obj/clothing/head/helmet.dmi'
worn_icon = 'icons/mob/clothing/head/helmet.dmi'
icon_state = "dragon"
desc = "The skull of a dragon."
armor = list(MELEE = 65, BULLET = 15, LASER = 40, ENERGY = 40, BOMB = 70, BIO = 60, FIRE = 100, ACID = 100)
armor_type = /datum/armor/cloakhood_drake
clothing_flags = SNUG_FIT
cold_protection = HEAD
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
@@ -163,6 +220,16 @@
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
/datum/armor/cloakhood_drake
melee = 65
bullet = 15
laser = 40
energy = 40
bomb = 70
bio = 60
fire = 100
acid = 100
/obj/item/clothing/suit/hooded/cloak/godslayer
name = "godslayer armour"
icon_state = "godslayer"
@@ -177,7 +244,7 @@
/obj/item/t_scanner/adv_mining_scanner,
/obj/item/tank/internals,
)
armor = list(MELEE = 50, BULLET = 25, LASER = 25, ENERGY = 25, BOMB = 50, BIO = 50, FIRE = 100, ACID = 100)
armor_type = /datum/armor/cloak_godslayer
clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL
hoodtype = /obj/item/clothing/head/hooded/cloakhood/godslayer
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
@@ -195,13 +262,23 @@
COOLDOWN_DECLARE(effect_cooldown)
var/static/list/damage_heal_order = list(BRUTE, BURN, OXY)
/datum/armor/cloak_godslayer
melee = 50
bullet = 25
laser = 25
energy = 25
bomb = 50
bio = 50
fire = 100
acid = 100
/obj/item/clothing/head/hooded/cloakhood/godslayer
name = "godslayer helm"
icon = 'icons/obj/clothing/head/helmet.dmi'
worn_icon = 'icons/mob/clothing/head/helmet.dmi'
icon_state = "godslayer"
desc = "The horns and skull of a wendigo, held together by the remaining icey energy of a demonic miner."
armor = list(MELEE = 50, BULLET = 25, LASER = 25, ENERGY = 25, BOMB = 50, BIO = 50, FIRE = 100, ACID = 100)
armor_type = /datum/armor/cloakhood_godslayer
clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SNUG_FIT
cold_protection = HEAD
min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT
@@ -211,6 +288,16 @@
flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
resistance_flags = FIRE_PROOF | ACID_PROOF | FREEZE_PROOF
/datum/armor/cloakhood_godslayer
melee = 50
bullet = 25
laser = 25
energy = 25
bomb = 50
bio = 50
fire = 100
acid = 100
/obj/item/clothing/suit/hooded/cloak/godslayer/examine(mob/user)
. = ..()
if(loc == user && !COOLDOWN_FINISHED(src, effect_cooldown))
@@ -76,7 +76,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, sort_list(list(
icon = 'icons/obj/marker.dmi'
icon_state = "marker"
layer = BELOW_OPEN_DOOR_LAYER
armor = list(MELEE = 50, BULLET = 75, LASER = 75, ENERGY = 75, BOMB = 25, BIO = 0, FIRE = 25, ACID = 0)
armor_type = /datum/armor/structure_marker_beacon
max_integrity = 50
anchored = TRUE
light_range = 2
@@ -85,6 +85,14 @@ GLOBAL_LIST_INIT(marker_beacon_colors, sort_list(list(
var/remove_speed = 15
var/picked_color
/datum/armor/structure_marker_beacon
melee = 50
bullet = 75
laser = 75
energy = 75
bomb = 25
fire = 25
/obj/structure/marker_beacon/Initialize(mapload, set_color)
. = ..()
if(set_color)
+92 -2
View File
@@ -254,7 +254,7 @@
desc = "Hostile Environment Cross-Kinetic Suit: A suit designed to withstand the wide variety of hazards from Lavaland. It wasn't enough for its last owner."
icon_state = "hostile_env"
hoodtype = /obj/item/clothing/head/hooded/hostile_environment
armor = list(MELEE = 70, BULLET = 40, LASER = 10, ENERGY = 20, BOMB = 50, BIO = 0, FIRE = 100, ACID = 100)
armor_type = /datum/armor/hooded_hostile_environment
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
@@ -270,6 +270,15 @@
greyscale_config_worn_digi = /datum/greyscale_config/heck_suit/worn/digi //SKYRAT EDIT ADDITION - DigiGreyscale
flags_1 = IS_PLAYER_COLORABLE_1
/datum/armor/hooded_hostile_environment
melee = 70
bullet = 40
laser = 10
energy = 20
bomb = 50
fire = 100
acid = 100
/obj/item/clothing/suit/hooded/hostile_environment/Initialize(mapload)
. = ..()
AddElement(/datum/element/radiation_protected_clothing)
@@ -291,7 +300,7 @@
desc = "Hostile Environiment Cross-Kinetic Helmet: A helmet designed to withstand the wide variety of hazards from Lavaland. It wasn't enough for its last owner."
icon_state = "hostile_env"
w_class = WEIGHT_CLASS_NORMAL
armor = list(MELEE = 70, BULLET = 40, LASER = 10, ENERGY = 20, BOMB = 50, BIO = 0, FIRE = 100, ACID = 100)
armor_type = /datum/armor/hooded_hostile_environment
cold_protection = HEAD
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
heat_protection = HEAD
@@ -306,6 +315,15 @@
greyscale_config_worn = /datum/greyscale_config/heck_helmet/worn
flags_1 = IS_PLAYER_COLORABLE_1
/datum/armor/hooded_hostile_environment
melee = 70
bullet = 40
laser = 10
energy = 20
bomb = 50
fire = 100
acid = 100
/obj/item/clothing/head/hooded/hostile_environment/Initialize(mapload)
. = ..()
update_appearance()
@@ -371,6 +389,15 @@
/// Cooldown between attacks
COOLDOWN_DECLARE(attack_cooldown)
/datum/armor/hooded_hostile_environment
melee = 70
bullet = 40
laser = 10
energy = 20
bomb = 50
fire = 100
acid = 100
/obj/item/soulscythe/Initialize(mapload)
. = ..()
soul = new(src)
@@ -579,6 +606,15 @@
/// Blood level, used for movement and abilities in a soulscythe
var/blood_level = MAX_BLOOD_LEVEL
/datum/armor/hooded_hostile_environment
melee = 70
bullet = 40
laser = 10
energy = 20
bomb = 50
fire = 100
acid = 100
/mob/living/simple_animal/soulscythe/get_status_tab_items()
. = ..()
. += "Blood: [blood_level]/[MAX_BLOOD_LEVEL]"
@@ -597,6 +633,15 @@
light_power = 1
light_color = LIGHT_COLOR_BLOOD_MAGIC
/datum/armor/hooded_hostile_environment
melee = 70
bullet = 40
laser = 10
energy = 20
bomb = 50
fire = 100
acid = 100
/obj/projectile/soulscythe/on_hit(atom/target, blocked = FALSE)
if(ishostile(target))
damage *= 2
@@ -625,6 +670,15 @@
var/summon_cooldown = 0
var/list/mob/dead/observer/spirits
/datum/armor/hooded_hostile_environment
melee = 70
bullet = 40
laser = 10
energy = 20
bomb = 50
fire = 100
acid = 100
/obj/item/melee/ghost_sword/Initialize(mapload)
. = ..()
spirits = list()
@@ -702,6 +756,15 @@
icon = 'icons/obj/wizard.dmi'
icon_state = "vial"
/datum/armor/hooded_hostile_environment
melee = 70
bullet = 40
laser = 10
energy = 20
bomb = 50
fire = 100
acid = 100
/obj/item/dragons_blood/attack_self(mob/living/carbon/human/user)
if(!istype(user))
return
@@ -768,6 +831,15 @@
var/timer = 0
var/static/list/banned_turfs = typecacheof(list(/turf/open/space/transit, /turf/closed))
/datum/armor/hooded_hostile_environment
melee = 70
bullet = 40
laser = 10
energy = 20
bomb = 50
fire = 100
acid = 100
/obj/item/lava_staff/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
if(timer > world.time)
@@ -849,6 +921,15 @@
/// Throwforce when the saw is opened.
var/open_throwforce = 20
/datum/armor/hooded_hostile_environment
melee = 70
bullet = 40
laser = 10
energy = 20
bomb = 50
fire = 100
acid = 100
/obj/item/melee/cleaving_saw/Initialize(mapload)
. = ..()
AddComponent(/datum/component/transforming, \
@@ -960,6 +1041,15 @@
var/static/list/excluded_areas = list(/area/space)
var/list/targeted_turfs = list()
/datum/armor/hooded_hostile_environment
melee = 70
bullet = 40
laser = 10
energy = 20
bomb = 50
fire = 100
acid = 100
/obj/item/storm_staff/examine(mob/user)
. = ..()
. += span_notice("It has [thunder_charges] charges remaining.")
+77 -5
View File
@@ -615,7 +615,16 @@
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = LAVA_PROOF | FIRE_PROOF //they are from lavaland after all
armor = list(MELEE = 15, BULLET = 25, LASER = 15, ENERGY = 15, BOMB = 100, BIO = 0, FIRE = 100, ACID = 30) //mostly bone bracer armor
armor_type = /datum/armor/gloves_gauntlets
/datum/armor/gloves_gauntlets
melee = 15
bullet = 25
laser = 15
energy = 15
bomb = 100
fire = 100
acid = 30
/obj/item/clothing/gloves/gauntlets/equipped(mob/user, slot)
. = ..()
@@ -650,7 +659,7 @@
worn_icon = 'icons/mob/clothing/suits/armor.dmi'
worn_icon_digi = 'modular_skyrat/master_files/icons/mob/clothing/suit_digi.dmi'
hoodtype = /obj/item/clothing/head/hooded/berserker
armor = list(MELEE = 30, BULLET = 30, LASER = 10, ENERGY = 20, BOMB = 50, BIO = 0, FIRE = 100, ACID = 100)
armor_type = /datum/armor/hooded_berserker
cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
@@ -670,6 +679,15 @@
/obj/item/melee/cleaving_saw,
)
/datum/armor/hooded_berserker
melee = 30
bullet = 30
laser = 10
energy = 20
bomb = 50
fire = 100
acid = 100
/obj/item/clothing/suit/hooded/berserker/Initialize(mapload)
. = ..()
AddComponent(/datum/component/anti_magic, ALL, inventory_flags = ITEM_SLOT_OCLOTHING)
@@ -687,7 +705,7 @@
icon_state = "berserker"
icon = 'icons/obj/clothing/head/helmet.dmi'
worn_icon = 'icons/mob/clothing/head/helmet.dmi'
armor = list(MELEE = 30, BULLET = 30, LASER = 10, ENERGY = 20, BOMB = 50, BIO = 0, FIRE = 100, ACID = 100)
armor_type = /datum/armor/hooded_berserker
actions_types = list(/datum/action/item_action/berserk_mode)
cold_protection = HEAD
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
@@ -700,6 +718,15 @@
/// Status of berserk
var/berserk_active = FALSE
/datum/armor/hooded_berserker
melee = 30
bullet = 30
laser = 10
energy = 20
bomb = 50
fire = 100
acid = 100
/obj/item/clothing/head/hooded/berserker/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NODROP, LOCKED_HELMET_TRAIT)
@@ -739,7 +766,7 @@
to_chat(user, span_warning("You enter berserk mode."))
playsound(user, 'sound/magic/staff_healing.ogg', 50)
user.add_movespeed_modifier(/datum/movespeed_modifier/berserk)
user.physiology.armor.melee += BERSERK_MELEE_ARMOR_ADDED
user.physiology.armor = user.physiology.armor.generate_new_with_modifiers(list(MELEE = BERSERK_MELEE_ARMOR_ADDED))
user.next_move_modifier *= BERSERK_ATTACK_SPEED_MODIFIER
user.add_atom_colour(COLOR_BUBBLEGUM_RED, TEMPORARY_COLOUR_PRIORITY)
ADD_TRAIT(user, TRAIT_NOGUNS, BERSERK_TRAIT)
@@ -757,7 +784,7 @@
to_chat(user, span_warning("You exit berserk mode."))
playsound(user, 'sound/magic/summonitems_generic.ogg', 50)
user.remove_movespeed_modifier(/datum/movespeed_modifier/berserk)
user.physiology.armor.melee -= BERSERK_MELEE_ARMOR_ADDED
user.physiology.armor = user.physiology.armor.generate_new_with_modifiers(list(MELEE = -BERSERK_MELEE_ARMOR_ADDED))
user.next_move_modifier /= BERSERK_ATTACK_SPEED_MODIFIER
user.remove_atom_colour(TEMPORARY_COLOUR_PRIORITY, COLOR_BUBBLEGUM_RED)
REMOVE_TRAIT(user, TRAIT_NOGUNS, BERSERK_TRAIT)
@@ -783,6 +810,15 @@
custom_materials = null
var/datum/action/cooldown/scan/scan_ability
/datum/armor/hooded_berserker
melee = 30
bullet = 30
laser = 10
energy = 20
bomb = 50
fire = 100
acid = 100
/obj/item/clothing/glasses/godeye/Initialize(mapload)
. = ..()
scan_ability = new(src)
@@ -824,6 +860,15 @@
cooldown_time = 45 SECONDS
ranged_mousepointer = 'icons/effects/mouse_pointers/scan_target.dmi'
/datum/armor/hooded_berserker
melee = 30
bullet = 30
laser = 10
energy = 20
bomb = 50
fire = 100
acid = 100
/datum/action/cooldown/scan/IsAvailable(feedback = FALSE)
return ..() && isliving(owner)
@@ -866,6 +911,15 @@
range_mid = 5
range_far = 15
/datum/armor/hooded_berserker
melee = 30
bullet = 30
laser = 10
energy = 20
bomb = 50
fire = 100
acid = 100
/datum/status_effect/agent_pinpointer/scan/scan_for_target()
return
@@ -884,6 +938,15 @@
extend_sound = 'sound/items/unsheath.ogg'
retract_sound = 'sound/items/sheath.ogg'
/datum/armor/hooded_berserker
melee = 30
bullet = 30
laser = 10
energy = 20
bomb = 50
fire = 100
acid = 100
/obj/item/organ/internal/cyberimp/arm/katana/attack_self(mob/user, modifiers)
. = ..()
to_chat(user, span_userdanger("The mass goes up your arm and goes inside it!"))
@@ -953,6 +1016,15 @@
ATTACK_SHATTER = list(COMBO_STEPS = list(RIGHT_SLASH, LEFT_SLASH, RIGHT_SLASH, LEFT_SLASH), COMBO_PROC = PROC_REF(shatter)),
)
/datum/armor/hooded_berserker
melee = 30
bullet = 30
laser = 10
energy = 20
bomb = 50
fire = 100
acid = 100
/obj/item/cursed_katana/Initialize(mapload)
. = ..()
for(var/combo in combo_list)