Reworks armor damage reduction + armor components + more goodies. (#11106)

Ports Baystation12/Baystation12#27254 and Baystation12/Baystation12#24787 and everything inbetween I guess.

Note that this PR makes guns and armor overall stronger. Lasers also once again do organ damage.
This commit is contained in:
Matt Atlas
2021-02-14 16:54:45 +01:00
committed by GitHub
parent 3ab59b8ff7
commit c30cd94024
138 changed files with 2187 additions and 848 deletions

View File

@@ -21,6 +21,7 @@
#include "code\__defines\_macros.dm" #include "code\__defines\_macros.dm"
#include "code\__defines\admin.dm" #include "code\__defines\admin.dm"
#include "code\__defines\antagonist.dm" #include "code\__defines\antagonist.dm"
#include "code\__defines\armor.dm"
#include "code\__defines\atmos.dm" #include "code\__defines\atmos.dm"
#include "code\__defines\battle_monsters.dm" #include "code\__defines\battle_monsters.dm"
#include "code\__defines\callback.dm" #include "code\__defines\callback.dm"
@@ -288,6 +289,7 @@
#include "code\datums\brain_damage\severe.dm" #include "code\datums\brain_damage\severe.dm"
#include "code\datums\brain_damage\special_ed.dm" #include "code\datums\brain_damage\special_ed.dm"
#include "code\datums\components\_component.dm" #include "code\datums\components\_component.dm"
#include "code\datums\components\armor\armor.dm"
#include "code\datums\components\multitool\_multitool.dm" #include "code\datums\components\multitool\_multitool.dm"
#include "code\datums\components\multitool\multitool.dm" #include "code\datums\components\multitool\multitool.dm"
#include "code\datums\components\multitool\circuitboards\circuitboards.dm" #include "code\datums\components\multitool\circuitboards\circuitboards.dm"

View File

@@ -2,8 +2,8 @@
Contains helper procs for airflow, handled in /connection_group. Contains helper procs for airflow, handled in /connection_group.
*/ */
mob/var/tmp/last_airflow_stun = 0 /mob/var/tmp/last_airflow_stun = 0
mob/proc/airflow_stun() /mob/proc/airflow_stun()
if(stat == 2) if(stat == 2)
return 0 return 0
if(last_airflow_stun > world.time - vsc.airflow_stun_cooldown) return 0 if(last_airflow_stun > world.time - vsc.airflow_stun_cooldown) return 0
@@ -19,18 +19,18 @@ mob/proc/airflow_stun()
Weaken(5) Weaken(5)
last_airflow_stun = world.time last_airflow_stun = world.time
mob/living/silicon/airflow_stun() /mob/living/silicon/airflow_stun()
return return
mob/living/carbon/slime/airflow_stun() /mob/living/carbon/slime/airflow_stun()
return return
mob/living/carbon/human/airflow_stun() /mob/living/carbon/human/airflow_stun()
if(shoes) if(shoes)
if(shoes.item_flags & NOSLIP) return 0 if(shoes.item_flags & NOSLIP) return 0
..() ..()
atom/movable/proc/check_airflow_movable(n) /atom/movable/proc/check_airflow_movable(n)
if(anchored && !ismob(src)) return 0 if(anchored && !ismob(src)) return 0
@@ -38,19 +38,19 @@ atom/movable/proc/check_airflow_movable(n)
return 1 return 1
mob/check_airflow_movable(n) /mob/check_airflow_movable(n)
if(n < vsc.airflow_heavy_pressure) if(n < vsc.airflow_heavy_pressure)
return 0 return 0
return 1 return 1
mob/abstract/observer/check_airflow_movable() /mob/abstract/observer/check_airflow_movable()
return 0 return 0
mob/living/silicon/check_airflow_movable() /mob/living/silicon/check_airflow_movable()
return 0 return 0
obj/item/check_airflow_movable(n) /obj/item/check_airflow_movable(n)
. = ..() . = ..()
switch(w_class) switch(w_class)
if(2) if(2)
@@ -117,14 +117,9 @@ obj/item/check_airflow_movable(n)
bloody_body(src) bloody_body(src)
var/b_loss = airflow_speed * vsc.airflow_damage var/b_loss = airflow_speed * vsc.airflow_damage
var/blocked = run_armor_check(BP_HEAD,"melee") apply_damage(b_loss/3, BRUTE, BP_HEAD, used_weapon = "Airflow")
apply_damage(b_loss/3, BRUTE, BP_HEAD, blocked, "Airflow") apply_damage(b_loss/3, BRUTE, BP_CHEST, used_weapon = "Airflow")
apply_damage(b_loss/3, BRUTE, BP_GROIN, used_weapon = "Airflow")
blocked = run_armor_check(BP_CHEST,"melee")
apply_damage(b_loss/3, BRUTE, BP_CHEST, blocked, "Airflow")
blocked = run_armor_check(BP_GROIN,"melee")
apply_damage(b_loss/3, BRUTE, BP_GROIN, blocked, "Airflow")
if(airflow_speed > 10) if(airflow_speed > 10)
Paralyse(round(airflow_speed * vsc.airflow_stun)) Paralyse(round(airflow_speed * vsc.airflow_stun))

View File

@@ -452,13 +452,13 @@ datum/gas_mixture/proc/check_recombustability(list/fuel_objs)
//Always check these damage procs first if fire damage isn't working. They're probably what's wrong. //Always check these damage procs first if fire damage isn't working. They're probably what's wrong.
apply_damage(2.5*mx*head_exposure, BURN, BP_HEAD, 0, "Fire") apply_damage(2.5*mx*head_exposure, BURN, BP_HEAD, used_weapon = "Fire")
apply_damage(2.5*mx*chest_exposure, BURN, BP_CHEST, 0, "Fire") apply_damage(2.5*mx*chest_exposure, BURN, BP_CHEST, used_weapon = "Fire")
apply_damage(2.0*mx*groin_exposure, BURN, BP_GROIN, 0, "Fire") apply_damage(2.0*mx*groin_exposure, BURN, BP_GROIN, used_weapon = "Fire")
apply_damage(0.6*mx*legs_exposure, BURN, BP_L_LEG, 0, "Fire") apply_damage(0.6*mx*legs_exposure, BURN, BP_L_LEG, used_weapon = "Fire")
apply_damage(0.6*mx*legs_exposure, BURN, BP_R_LEG, 0, "Fire") apply_damage(0.6*mx*legs_exposure, BURN, BP_R_LEG, used_weapon = "Fire")
apply_damage(0.4*mx*arms_exposure, BURN, BP_L_ARM, 0, "Fire") apply_damage(0.4*mx*arms_exposure, BURN, BP_L_ARM, used_weapon = "Fire")
apply_damage(0.4*mx*arms_exposure, BURN, BP_R_ARM, 0, "Fire") apply_damage(0.4*mx*arms_exposure, BURN, BP_R_ARM, used_weapon = "Fire")
#undef FIRE_LIGHT_1 #undef FIRE_LIGHT_1

49
code/__defines/armor.dm Normal file
View File

@@ -0,0 +1,49 @@
// Armor will turn attacks into less dangerous (e.g. turning cut into bruise), so keep that in mind when decided what armor value to use.
// Some levels are marked with what they intend to block in such way.
#define ARMOR_TYPE_STANDARD 1
#define ARMOR_TYPE_EXOSUIT 2
#define ARMOR_BALLISTIC_MINOR 10
#define ARMOR_BALLISTIC_SMALL 25
#define ARMOR_BALLISTIC_PISTOL 50 //Blocks holdout and normal pistol ammo
#define ARMOR_BALLISTIC_RESISTANT 65
#define ARMOR_BALLISTIC_RIFLE 80 //Blocks rifle rounds
#define ARMOR_BALLISTIC_AP 95
#define ARMOR_BALLISTIC_HEAVY 110
#define ARMOR_LASER_MINOR 10
#define ARMOR_LASER_SMALL 25 //Blocks small e-guns
#define ARMOR_LASER_HANDGUNS 40 //Blocks normal e-guns
#define ARMOR_LASER_MAJOR 50
#define ARMOR_LASER_RIFLES 70 //Blocks laser rifles
#define ARMOR_LASER_HEAVY 100
#define ARMOR_MELEE_MINOR 5
#define ARMOR_MELEE_SMALL 10
#define ARMOR_MELEE_KNIVES 15 //Blocks most knives
#define ARMOR_MELEE_RESISTANT 30 //Blocks large weapons like swords and toolboxes
#define ARMOR_MELEE_MAJOR 50
#define ARMOR_MELEE_VERY_HIGH 70
#define ARMOR_MELEE_SHIELDED 100
#define ARMOR_BIO_MINOR 10
#define ARMOR_BIO_SMALL 25
#define ARMOR_BIO_RESISTANT 50
#define ARMOR_BIO_STRONG 75
#define ARMOR_BIO_SHIELDED 100
#define ARMOR_RAD_MINOR 10
#define ARMOR_RAD_SMALL 25
#define ARMOR_RAD_RESISTANT 40
#define ARMOR_RAD_SHIELDED 100
#define ARMOR_BOMB_MINOR 10
#define ARMOR_BOMB_PADDED 30
#define ARMOR_BOMB_RESISTANT 60
#define ARMOR_BOMB_SHIELDED 100
#define ARMOR_ENERGY_MINOR 10
#define ARMOR_ENERGY_SMALL 25
#define ARMOR_ENERGY_RESISTANT 40
#define ARMOR_ENERGY_STRONG 75
#define ARMOR_ENERGY_SHIELDED 100

View File

@@ -16,6 +16,9 @@
#define DAM_SHARP 2 #define DAM_SHARP 2
#define DAM_LASER 4 #define DAM_LASER 4
#define DAM_BULLET 8 #define DAM_BULLET 8
#define DAM_EXPLODE 16
#define DAM_DISPERSED 32 // Makes apply_damage calls without specified zone distribute damage rather than randomly choose organ (for humans)
#define DAM_BIO 64
#define STUN "stun" #define STUN "stun"
#define WEAKEN "weaken" #define WEAKEN "weaken"

View File

@@ -122,7 +122,7 @@ avoid code duplication. This includes items that may sometimes act as a standard
return 1 return 1
//Called when a weapon is used to make a successful melee attack on a mob. Returns the blocked result //Called when a weapon is used to make a successful melee attack on a mob. Returns whether damage was dealt.
/obj/item/proc/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone) /obj/item/proc/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone)
var/power = force var/power = force
if(HULK in user.mutations) if(HULK in user.mutations)

View File

@@ -0,0 +1,111 @@
/datum/component/armor
var/list/armor_values
var/full_block_message = "Your armor absorbs the blow!"
var/partial_block_message = "Your armor softens the blow!"
// This controls how some armor types such as mech armor work.
var/armor_flags = ARMOR_TYPE_STANDARD
// Armor 'works' for damages in range from 0 to [armor_range_mult * armor].
// The lower the damage, the harder it gets blocked, tapering to 0 mitigation at [armor_range_mult * armor]
var/armor_range_mult = 2
// [under_armor_mult] multiplies how strongly damage that is <= armor value is blocked.
// E.g. setting it to 0 will flat out block all damage below armor
var/under_armor_mult = 0.7
// [over_armor_mult] multiplies how strongly damage that is > armor value is blocked.
// E.g. setting it to more than 1 will make mitigation drop off faster, effectively reducing the range of damage mitigation
var/over_armor_mult = 1
/datum/component/armor/Initialize(list/armor)
..()
if(armor)
armor_values = armor.Copy()
// Takes in incoming damage value
// Applies state changes to self, holder, and whatever else caused by damage mitigation
// Returns modified damage, a list to allow for flag modification or damage conversion, in the same format as the arguments.
/datum/component/armor/proc/apply_damage_modifications(damage, damage_type, damage_flags, mob/living/victim, armor_pen, silent = FALSE)
if(armor_flags & ARMOR_TYPE_EXOSUIT)
if(prob(get_blocked(damage_type, damage_flags, armor_pen) * 100)) //extra removal of sharp and edge on account of us being big robots
damage_flags &= ~(DAM_SHARP | DAM_EDGE)
if(damage <= 0)
return args.Copy()
var/blocked = get_blocked(damage_type, damage_flags, armor_pen, damage)
on_blocking(damage, damage_type, damage_flags, armor_pen, blocked)
// Blocking values that mean the damage was under armor, so all dangerous flags are removed (edge/sharp)
var/armor_border_blocking = 1 - (under_armor_mult * 1/armor_range_mult)
if(blocked >= armor_border_blocking)
if(damage_flags & DAM_LASER)
damage *= FLUIDLOSS_CONC_BURN/FLUIDLOSS_WIDE_BURN
damage_flags &= ~(DAM_SHARP | DAM_EDGE | DAM_LASER)
if(damage_type == IRRADIATE)
damage = max(0, damage - 100 * blocked)
silent = TRUE
damage *= 1 - blocked
if(!silent)
if(blocked > 0.7)
to_chat(victim, SPAN_NOTICE(full_block_message))
else if(blocked > 0.2)
to_chat(victim, SPAN_NOTICE(partial_block_message))
return args.Copy()
/datum/component/armor/proc/on_blocking(damage, damage_type, damage_flags, armor_pen, blocked)
// A simpler proc used as a helper for above but can also be used externally. Does not modify state.
/datum/component/armor/proc/get_blocked(damage_type, damage_flags, armor_pen = 0, damage = 5)
var/key = get_armor_key(damage_type, damage_flags)
if(!key)
return 0
var/armor = max(0, get_value(key) - armor_pen)
if(!armor)
return 0
var/efficiency = min(damage / (armor_range_mult * armor), 1)
var/coef = damage <= armor ? under_armor_mult : over_armor_mult
return max(1 - coef * efficiency, 0)
/datum/component/armor/proc/get_value(key)
if(isnull(armor_values[key]))
return 0
return min(armor_values[key], 100)
/datum/component/armor/proc/set_value(key, newval)
armor_values[key] = Clamp(newval, 0, 100)
// There is a disconnect between legacy damage and armor code. This here helps bridge the gap.
/proc/get_armor_key(damage_type, damage_flags)
var/key
switch(damage_type)
if(BRUTE)
if(damage_flags & DAM_BULLET)
key = "bullet"
else if(damage_flags & DAM_EXPLODE)
key = "bomb"
else
key = "melee"
if(BURN)
if(damage_flags & DAM_LASER)
key = "laser"
else if(damage_flags & DAM_EXPLODE)
key = "bomb"
else
key = "energy"
if(TOX)
if(damage_flags & DAM_BIO)
key = "bio" // Otherwise just not blocked by default.
if(IRRADIATE)
key = "rad"
return key
/datum/component/armor/toggle
var/active = TRUE
/datum/component/armor/toggle/proc/toggle(new_state)
active = new_state
/datum/component/armor/toggle/get_value(key)
return active ? ..() : 0

View File

@@ -40,7 +40,7 @@
item_cost = 5 item_cost = 5
path = /obj/item/clothing/ring/reagent/sleepy path = /obj/item/clothing/ring/reagent/sleepy
/datum/uplink_item/item/stealthy_weapons/sharpened_trap /datum/uplink_item/item/stealthy_weapons/bear_trap
name = "Sharpened Bear Trap" name = "Sharpened Bear Trap"
item_cost = 4 item_cost = 5
path = /obj/item/trap/sharpened path = /obj/item/trap/sharpened

View File

@@ -84,7 +84,7 @@
if (targetIsHuman) if (targetIsHuman)
var/mob/living/carbon/human/targethuman = target var/mob/living/carbon/human/targethuman = target
armorpercent = targethuman.run_armor_check(target_zone,"melee") armorpercent = targethuman.get_blocked_ratio(target_zone, BRUTE, damage = force)*100
wasblocked = targethuman.check_shields(force, src, user, target_zone, null) //returns 1 if it's a block wasblocked = targethuman.check_shields(force, src, user, target_zone, null) //returns 1 if it's a block
var/damageamount = force var/damageamount = force

View File

@@ -454,7 +454,7 @@
else else
randmuti(src.connected.occupant) randmuti(src.connected.occupant)
src.connected.occupant.apply_effect(((src.radiation_intensity*3)+src.radiation_duration*3), IRRADIATE, blocked = 0) src.connected.occupant.apply_damage(((src.radiation_intensity*3)+src.radiation_duration*3), IRRADIATE, damage_flags = DAM_DISPERSED)
src.connected.locked = lock_state src.connected.locked = lock_state
return 1 // return 1 forces an update to all Nano uis attached to src return 1 // return 1 forces an update to all Nano uis attached to src
@@ -548,7 +548,7 @@
block = miniscrambletarget(num2text(selected_ui_target), src.radiation_intensity, src.radiation_duration) block = miniscrambletarget(num2text(selected_ui_target), src.radiation_intensity, src.radiation_duration)
src.connected.occupant.dna.SetUISubBlock(src.selected_ui_block,src.selected_ui_subblock,block) src.connected.occupant.dna.SetUISubBlock(src.selected_ui_block,src.selected_ui_subblock,block)
src.connected.occupant.UpdateAppearance() src.connected.occupant.UpdateAppearance()
src.connected.occupant.apply_effect((src.radiation_intensity+src.radiation_duration), IRRADIATE, blocked = 0) src.connected.occupant.apply_damage((src.radiation_intensity+src.radiation_duration), IRRADIATE, damage_flags = DAM_DISPERSED)
else else
if (prob(20+src.radiation_intensity)) if (prob(20+src.radiation_intensity))
randmutb(src.connected.occupant) randmutb(src.connected.occupant)
@@ -556,7 +556,7 @@
else else
randmuti(src.connected.occupant) randmuti(src.connected.occupant)
src.connected.occupant.UpdateAppearance() src.connected.occupant.UpdateAppearance()
src.connected.occupant.apply_effect(((src.radiation_intensity*2)+src.radiation_duration), IRRADIATE, blocked = 0) src.connected.occupant.apply_damage(((src.radiation_intensity*2)+src.radiation_duration), IRRADIATE, damage_flags = DAM_DISPERSED)
src.connected.locked = lock_state src.connected.locked = lock_state
return 1 // return 1 forces an update to all Nano uis attached to src return 1 // return 1 forces an update to all Nano uis attached to src
@@ -613,10 +613,10 @@
//testing("Irradiated SE block [real_SE_block]:[src.selected_se_subblock] ([original_block] now [block]) [(real_SE_block!=selected_se_block) ? "(SHIFTED)":""]!") //testing("Irradiated SE block [real_SE_block]:[src.selected_se_subblock] ([original_block] now [block]) [(real_SE_block!=selected_se_block) ? "(SHIFTED)":""]!")
connected.occupant.dna.SetSESubBlock(real_SE_block,selected_se_subblock,block) connected.occupant.dna.SetSESubBlock(real_SE_block,selected_se_subblock,block)
src.connected.occupant.apply_effect((src.radiation_intensity+src.radiation_duration), IRRADIATE, blocked = 0) src.connected.occupant.apply_damage((src.radiation_intensity+src.radiation_duration), IRRADIATE, damage_flags = DAM_DISPERSED)
domutcheck(src.connected.occupant,src.connected) domutcheck(src.connected.occupant,src.connected)
else else
src.connected.occupant.apply_effect(((src.radiation_intensity*2)+src.radiation_duration), IRRADIATE, blocked = 0) src.connected.occupant.apply_damage(((src.radiation_intensity*2)+src.radiation_duration), IRRADIATE, damage_flags = DAM_DISPERSED)
if (prob(80-src.radiation_duration)) if (prob(80-src.radiation_duration))
//testing("Random bad mut!") //testing("Random bad mut!")
randmutb(src.connected.occupant) randmutb(src.connected.occupant)
@@ -738,7 +738,7 @@
src.connected.occupant.dna.SE = buf.dna.SE src.connected.occupant.dna.SE = buf.dna.SE
src.connected.occupant.dna.UpdateSE() src.connected.occupant.dna.UpdateSE()
domutcheck(src.connected.occupant,src.connected) domutcheck(src.connected.occupant,src.connected)
src.connected.occupant.apply_effect(rand(20,50), IRRADIATE, blocked = 0) src.connected.occupant.apply_damage(rand(20,50), damage_flags = DAM_DISPERSED)
return 1 return 1
if (bufferOption == "createInjector") if (bufferOption == "createInjector")

View File

@@ -17,7 +17,14 @@
name = "eldritch voidsuit helmet" name = "eldritch voidsuit helmet"
desc = "A bulky armored voidsuit helmet, bristling with menacing spikes. It looks space proof." desc = "A bulky armored voidsuit helmet, bristling with menacing spikes. It looks space proof."
icon_state = "cult_helmet" icon_state = "cult_helmet"
armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 30, bio = 30, rad = 30) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_MAJOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
siemens_coefficient = 0 siemens_coefficient = 0
light_overlay = "helmet_light_dual_red" light_overlay = "helmet_light_dual_red"
light_color = COLOR_RED_LIGHT light_color = COLOR_RED_LIGHT
@@ -33,7 +40,14 @@
w_class = ITEMSIZE_NORMAL w_class = ITEMSIZE_NORMAL
allowed = list(/obj/item/book/tome, /obj/item/melee/cultblade, /obj/item/gun/energy/rifle/cult, /obj/item/tank, /obj/item/device/suit_cooling_unit) allowed = list(/obj/item/book/tome, /obj/item/melee/cultblade, /obj/item/gun/energy/rifle/cult, /obj/item/tank, /obj/item/device/suit_cooling_unit)
slowdown = 1 slowdown = 1
armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 30, bio = 30, rad = 30) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_MAJOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
siemens_coefficient = 0 siemens_coefficient = 0
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS
flags_inv = HIDEWRISTS|HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|HIDESHOES flags_inv = HIDEWRISTS|HIDEGLOVES|HIDEJUMPSUIT|HIDETAIL|HIDESHOES

View File

@@ -5,7 +5,13 @@
description_cult = "This can be reforged to become an eldritch voidsuit helmet." description_cult = "This can be reforged to become an eldritch voidsuit helmet."
flags_inv = HIDEFACE|HIDEEARS|HIDEEYES flags_inv = HIDEFACE|HIDEEARS|HIDEEYES
body_parts_covered = HEAD|EYES body_parts_covered = HEAD|EYES
armor = list(melee = 50, bullet = 30, laser = 50, energy = 20, bomb = 25, bio = 10, rad = 0) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_MAJOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SMALL
)
cold_protection = HEAD cold_protection = HEAD
min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE
siemens_coefficient = 0 siemens_coefficient = 0
@@ -26,7 +32,13 @@
item_state = "cultrobes" item_state = "cultrobes"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
allowed = list(/obj/item/book/tome, /obj/item/melee/cultblade) allowed = list(/obj/item/book/tome, /obj/item/melee/cultblade)
armor = list(melee = 50, bullet = 30, laser = 50, energy = 20, bomb = 25, bio = 10, rad = 0) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_MAJOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SMALL
)
flags_inv = HIDEJUMPSUIT flags_inv = HIDEJUMPSUIT
siemens_coefficient = 0 siemens_coefficient = 0
@@ -47,8 +59,13 @@
force = 5 force = 5
silent = 1 silent = 1
siemens_coefficient = 0.35 //antags don't get exceptions, it's just heavy armor by magical standards siemens_coefficient = 0.35 //antags don't get exceptions, it's just heavy armor by magical standards
armor = list(melee = 50, bullet = 30, laser = 50, energy = 20, bomb = 25, bio = 10, rad = 0) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_MAJOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SMALL
)
cold_protection = FEET cold_protection = FEET
min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE
heat_protection = FEET heat_protection = FEET

View File

@@ -10,9 +10,9 @@ var/hadevent = 0
if(isNotStationLevel(T.z)) if(isNotStationLevel(T.z))
continue continue
H.apply_effect((rand(15,75)),IRRADIATE, blocked = H.getarmor(null, "rad")) H.apply_damage((rand(15,75)), IRRADIATE, damage_flags = DAM_DISPERSED)
if (prob(5)) if (prob(5))
H.apply_effect((rand(90,150)),IRRADIATE, blocked = H.getarmor(null, "rad")) H.apply_damage((rand(90,150)), IRRADIATE, damage_flags = DAM_DISPERSED)
if (prob(25)) if (prob(25))
if (prob(75)) if (prob(75))
randmutb(H) randmutb(H)

View File

@@ -262,7 +262,7 @@
/obj/effect/meteor/irradiated/meteor_effect() /obj/effect/meteor/irradiated/meteor_effect()
new /obj/effect/decal/cleanable/greenglow(get_turf(src)) new /obj/effect/decal/cleanable/greenglow(get_turf(src))
for(var/mob/living/L in view(5, src)) for(var/mob/living/L in view(5, src))
L.apply_effect(40, IRRADIATE, blocked = L.getarmor(null, "rad")) L.apply_damage(40, IRRADIATE, damage_flags = DAM_DISPERSED)
/obj/effect/meteor/golden /obj/effect/meteor/golden
name = "golden meteor" name = "golden meteor"

View File

@@ -544,7 +544,7 @@ obj/machinery/door/airlock/glass_centcom/attackby(obj/item/I, mob/user)
/obj/machinery/door/airlock/uranium/proc/radiate() /obj/machinery/door/airlock/uranium/proc/radiate()
for(var/mob/living/L in range (3,src)) for(var/mob/living/L in range (3,src))
L.apply_effect(15,IRRADIATE, blocked = L.getarmor(null, "rad")) L.apply_damage(15, IRRADIATE, damage_flags = DAM_DISPERSED)
return return
//---Phoron door //---Phoron door
@@ -1485,7 +1485,8 @@ About the new airlock wires panel:
/mob/living/airlock_crush(var/crush_damage) /mob/living/airlock_crush(var/crush_damage)
. = ..() . = ..()
for(var/i = 1, i <= AIRLOCK_CRUSH_DIVISOR, i++) for(var/i = 1, i <= AIRLOCK_CRUSH_DIVISOR, i++)
adjustBruteLoss(round(crush_damage / AIRLOCK_CRUSH_DIVISOR)) apply_damage((crush_damage / AIRLOCK_CRUSH_DIVISOR), BRUTE)
SetStunned(5) SetStunned(5)
SetWeakened(5) SetWeakened(5)
visible_message(SPAN_DANGER("[src] is crushed in the airlock!"), SPAN_DANGER("You are crushed in the airlock!"), SPAN_NOTICE("You hear airlock actuators momentarily struggle.")) visible_message(SPAN_DANGER("[src] is crushed in the airlock!"), SPAN_DANGER("You are crushed in the airlock!"), SPAN_NOTICE("You hear airlock actuators momentarily struggle."))

View File

@@ -399,11 +399,11 @@
if(src.health <= 0 && initialhealth > 0) if(src.health <= 0 && initialhealth > 0)
src.set_broken() src.set_broken()
else if(src.health < src.maxhealth / 4 && initialhealth >= src.maxhealth / 4) else if(src.health < src.maxhealth / 4 && initialhealth >= src.maxhealth / 4)
visible_message("\The [src] looks like it's about to break!" ) visible_message(SPAN_WARNING("\The [src] looks like it's about to break!"))
else if(src.health < src.maxhealth / 2 && initialhealth >= src.maxhealth / 2) else if(src.health < src.maxhealth / 2 && initialhealth >= src.maxhealth / 2)
visible_message("\The [src] looks seriously damaged!" ) visible_message(SPAN_WARNING("\The [src] looks seriously damaged!"))
else if(src.health < src.maxhealth * 3/4 && initialhealth >= src.maxhealth * 3/4) else if(src.health < src.maxhealth * 3/4 && initialhealth >= src.maxhealth * 3/4)
visible_message("\The [src] shows signs of damage!" ) visible_message(SPAN_WARNING("\The [src] shows signs of damage!"))
update_icon() update_icon()
return return
@@ -411,11 +411,11 @@
/obj/machinery/door/examine(mob/user) /obj/machinery/door/examine(mob/user)
. = ..() . = ..()
if(src.health < src.maxhealth / 4) if(src.health < src.maxhealth / 4)
to_chat(user, "\The [src] looks like it's about to break!") to_chat(user, SPAN_WARNING("\The [src] looks like it's about to break!"))
else if(src.health < src.maxhealth / 2) else if(src.health < src.maxhealth / 2)
to_chat(user, "\The [src] looks seriously damaged!") to_chat(user, SPAN_WARNING("\The [src] looks seriously damaged!"))
else if(src.health < src.maxhealth * 3/4) else if(src.health < src.maxhealth * 3/4)
to_chat(user, "\The [src] shows signs of damage!") to_chat(user, SPAN_WARNING("\The [src] shows signs of damage!"))
/obj/machinery/door/proc/set_broken() /obj/machinery/door/proc/set_broken()

View File

@@ -509,7 +509,7 @@
occupant.take_organ_damage(0, radiation_level * 2 + rand(1, 3)) occupant.take_organ_damage(0, radiation_level * 2 + rand(1, 3))
if(radiation_level > 1) if(radiation_level > 1)
occupant.take_organ_damage(0, radiation_level + rand(1, 3)) occupant.take_organ_damage(0, radiation_level + rand(1, 3))
occupant.apply_effect(radiation_level * 10, IRRADIATE) occupant.apply_damage(radiation_level * 10, IRRADIATE, damage_flags = DAM_DISPERSED)
/obj/machinery/suit_cycler/proc/finished_job() /obj/machinery/suit_cycler/proc/finished_job()
visible_message("[icon2html(src, viewers(get_turf(src)))] <span class='notice'>\The [src] pings loudly.</span>") visible_message("[icon2html(src, viewers(get_turf(src)))] <span class='notice'>\The [src] pings loudly.</span>")

View File

@@ -41,7 +41,6 @@
var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up var/slowdown = 0 // How much clothing is slowing you down. Negative values speeds you up
var/canremove = 1 //Mostly for Ninja code at this point but basically will not allow the item to be removed if set to 0. /N var/canremove = 1 //Mostly for Ninja code at this point but basically will not allow the item to be removed if set to 0. /N
var/can_embed = 1//If zero, this item/weapon cannot become embedded in people when you hit them with it var/can_embed = 1//If zero, this item/weapon cannot become embedded in people when you hit them with it
var/list/armor //= list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) If null, object has 0 armor.
var/list/allowed = null //suit storage stuff. var/list/allowed = null //suit storage stuff.
var/obj/item/device/uplink/hidden/hidden_uplink // All items can have an uplink hidden inside, just remember to add the triggers. var/obj/item/device/uplink/hidden/hidden_uplink // All items can have an uplink hidden inside, just remember to add the triggers.
var/zoomdevicename //name used for message when binoculars/scope is used var/zoomdevicename //name used for message when binoculars/scope is used
@@ -57,6 +56,9 @@
///Sound uses when dropping the item, or when its thrown. ///Sound uses when dropping the item, or when its thrown.
var/drop_sound = /decl/sound_category/generic_drop_sound // drop sound - this is the default var/drop_sound = /decl/sound_category/generic_drop_sound // drop sound - this is the default
var/list/armor
var/armor_degradation_speed //How fast armor will degrade, multiplier to blocked damage to get armor damage value.
//Item_state definition moved to /obj //Item_state definition moved to /obj
//var/item_state = null // Used to specify the item state for the on-mob overlays. //var/item_state = null // Used to specify the item state for the on-mob overlays.
var/item_state_slots //overrides the default item_state for particular slots. var/item_state_slots //overrides the default item_state for particular slots.
@@ -95,6 +97,14 @@
var/lock_picking_level = 0 //used to determine whether something can pick a lock, and how well. var/lock_picking_level = 0 //used to determine whether something can pick a lock, and how well.
// Its vital that if you make new power tools or new recipies that you include this // Its vital that if you make new power tools or new recipies that you include this
/obj/item/Initialize()
. = ..()
if(islist(armor))
for(var/type in armor)
if(armor[type])
AddComponent(/datum/component/armor, armor, armor_degradation_speed)
break
/obj/item/Destroy() /obj/item/Destroy()
if(ismob(loc)) if(ismob(loc))
var/mob/m = loc var/mob/m = loc

View File

@@ -43,7 +43,7 @@
to_chat(user, SPAN_WARNING("You break \the [src] apart, spilling its contents everywhere!")) to_chat(user, SPAN_WARNING("You break \the [src] apart, spilling its contents everywhere!"))
fuel = 0 fuel = 0
new /obj/effect/decal/cleanable/greenglow(get_turf(user)) new /obj/effect/decal/cleanable/greenglow(get_turf(user))
user.apply_effect((rand(15,30)),IRRADIATE,blocked = user.getarmor(null, "rad")) user.apply_damage(rand(15,30), IRRADIATE, damage_flags = DAM_DISPERSED)
qdel(src) qdel(src)
return return

View File

@@ -49,9 +49,7 @@
damage_coef -= 0.2 damage_coef -= 0.2
return return
var/armor_block = H.run_armor_check(affecting, "melee") if(H.apply_damage(25 * damage_coef, BRUTE, affecting))
if(H.apply_damage(25 * damage_coef, BRUTE, affecting, armor_block))
H.updatehealth() H.updatehealth()
if(H.can_feel_pain()) if(H.can_feel_pain())

View File

@@ -32,7 +32,9 @@ Protectiveness | Armor %
icon_state = "material_armor" icon_state = "material_armor"
item_state = "material_armor" item_state = "material_armor"
contained_sprite = 1 contained_sprite = 1
armor = list(melee = 5, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MINOR
)
pocket_slots = 1 pocket_slots = 1
/obj/item/clothing/suit/armor/material/makeshift/plasteel /obj/item/clothing/suit/armor/material/makeshift/plasteel
@@ -96,7 +98,9 @@ Protectiveness | Armor %
) )
icon_state = "bucket" icon_state = "bucket"
item_state = "bucket" item_state = "bucket"
armor = list(melee = 5, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MINOR
)
contained_sprite = 1 contained_sprite = 1
/obj/item/clothing/head/helmet/bucket/wood /obj/item/clothing/head/helmet/bucket/wood

View File

@@ -36,7 +36,7 @@
return 0 return 0
/obj/item/material/sword/perform_technique(var/mob/living/carbon/human/target, var/mob/living/carbon/human/user, var/target_zone) /obj/item/material/sword/perform_technique(var/mob/living/carbon/human/target, var/mob/living/carbon/human/user, var/target_zone)
var/armor_reduction = target.run_armor_check(target_zone,"melee") var/armor_reduction = target.get_blocked_ratio(target_zone, BRUTE, DAM_EDGE|DAM_SHARP, damage = force)*100
var/obj/item/organ/external/affecting = target.get_organ(target_zone) var/obj/item/organ/external/affecting = target.get_organ(target_zone)
if(!affecting) if(!affecting)
return return

View File

@@ -195,10 +195,6 @@
if(status) if(status)
deductcharge(hitcost) deductcharge(hitcost)
if(ishuman(L))
var/mob/living/carbon/human/H = L
H.forcesay(hit_appends)
return 1 return 1
/obj/item/melee/baton/emp_act(severity) /obj/item/melee/baton/emp_act(severity)

View File

@@ -102,9 +102,7 @@
if(user.a_intent == I_DISARM) if(user.a_intent == I_DISARM)
if(ishuman(target)) if(ishuman(target))
var/mob/living/carbon/human/T = target var/mob/living/carbon/human/T = target
var/armor = T.run_armor_check(target_zone,"melee") T.apply_damage(40, PAIN, target_zone)
T.apply_damage(40, PAIN, target_zone, armor)
return return
else else
return ..() return ..()

View File

@@ -15,7 +15,7 @@
matter = list(DEFAULT_WALL_MATERIAL = 18750) matter = list(DEFAULT_WALL_MATERIAL = 18750)
var/deployed = FALSE var/deployed = FALSE
var/time_to_escape = 60 var/time_to_escape = 60
var/ignore_armor = FALSE var/activated_armor_penetration = 0
/obj/item/trap/proc/can_use(mob/user) /obj/item/trap/proc/can_use(mob/user)
return (user.IsAdvancedToolUser() && !issilicon(user) && !user.stat && !user.restrained()) return (user.IsAdvancedToolUser() && !issilicon(user) && !user.stat && !user.restrained())
@@ -98,16 +98,7 @@
else else
target_zone = pick(BP_L_FOOT, BP_R_FOOT, BP_L_LEG, BP_R_LEG) target_zone = pick(BP_L_FOOT, BP_R_FOOT, BP_L_LEG, BP_R_LEG)
if(!ignore_armor) var/success = L.apply_damage(30, BRUTE, target_zone, used_weapon = src, armor_pen = activated_armor_penetration)
//armor
var/blocked = L.run_armor_check(target_zone, "melee")
if(blocked >= 100)
return
var/success = L.apply_damage(30, BRUTE, target_zone, blocked, src)
if(!success)
return FALSE
else
var/success = L.apply_damage(30, BRUTE, target_zone, 0, src)
if(!success) if(!success)
return FALSE return FALSE
@@ -156,7 +147,7 @@
/obj/item/trap/sharpened /obj/item/trap/sharpened
name = "sharpened mechanical trap" name = "sharpened mechanical trap"
desc_antag = "This device has an even higher chance of penetrating armor and locking foes in place." desc_antag = "This device has an even higher chance of penetrating armor and locking foes in place."
ignore_armor = TRUE activated_armor_penetration = 100
/obj/item/trap/animal /obj/item/trap/animal
name = "small trap" name = "small trap"

View File

@@ -257,8 +257,13 @@
slowdown = -1 slowdown = -1
species_restricted = list(BODYTYPE_VAURCA) species_restricted = list(BODYTYPE_VAURCA)
armor = list(melee = 50, bullet = 20, laser = 50, energy = 30, bomb = 45, bio = 100, rad = 10) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED
)
/obj/item/clothing/head/helmet/space/void/scout /obj/item/clothing/head/helmet/space/void/scout
name = "scout helmet" name = "scout helmet"
desc = "A helmet designed for K'laxan scouts, made of lightweight sturdy material that does not restrict movement." desc = "A helmet designed for K'laxan scouts, made of lightweight sturdy material that does not restrict movement."
@@ -268,8 +273,13 @@
item_state = "helm_scout" item_state = "helm_scout"
species_restricted = list(BODYTYPE_VAURCA) species_restricted = list(BODYTYPE_VAURCA)
armor = list(melee = 40, bullet = 20, laser = 40, energy = 30, bomb = 45, bio = 100, rad = 10) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED
)
light_overlay = "helmet_light_dual_green" light_overlay = "helmet_light_dual_green"
light_color = "#3e7c3e" light_color = "#3e7c3e"
@@ -282,8 +292,14 @@
desc = "A design perfected by the Zo'ra, this helmet is commonly used by frontline warriors of a hive. Ablative design deflects lasers away from the body while providing moderate physical protection." desc = "A design perfected by the Zo'ra, this helmet is commonly used by frontline warriors of a hive. Ablative design deflects lasers away from the body while providing moderate physical protection."
species_restricted = list(BODYTYPE_VAURCA) species_restricted = list(BODYTYPE_VAURCA)
armor = list(melee = 40, bullet = 40, laser = 60, energy = 50, bomb = 45, bio = 100, rad = 10) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_MAJOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_MINOR
)
/obj/item/clothing/head/helmet/space/void/commando /obj/item/clothing/head/helmet/space/void/commando
name = "commando helmet" name = "commando helmet"
desc = "A design perfected by the Zo'ra, this helmet is commonly used by frontline warriors of a hive. Ablative design deflects lasers away from the body while providing moderate physical protection." desc = "A design perfected by the Zo'ra, this helmet is commonly used by frontline warriors of a hive. Ablative design deflects lasers away from the body while providing moderate physical protection."
@@ -293,7 +309,14 @@
item_state = "helm_commando" item_state = "helm_commando"
species_restricted = list(BODYTYPE_VAURCA) species_restricted = list(BODYTYPE_VAURCA)
armor = list(melee = 30, bullet = 30, laser = 60, energy = 50, bomb = 45, bio = 100, rad = 10) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_MAJOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_MINOR
)
light_overlay = "helmet_light_dual_green" light_overlay = "helmet_light_dual_green"
light_color = "#3e7c3e" light_color = "#3e7c3e"
@@ -307,7 +330,13 @@
gas_filter_strength = 3 gas_filter_strength = 3
w_class = ITEMSIZE_SMALL w_class = ITEMSIZE_SMALL
filtered_gases = list(GAS_NITROGEN, GAS_N2O) filtered_gases = list(GAS_NITROGEN, GAS_N2O)
armor = list(melee = 25, bullet = 10, laser = 25, energy = 25, bomb = 0, bio = 50, rad = 15) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_SMALL,
bio = ARMOR_BIO_STRONG,
rad = ARMOR_RAD_MINOR
)
icon = 'icons/obj/vaurca_items.dmi' icon = 'icons/obj/vaurca_items.dmi'
icon_state = "m_metalg" icon_state = "m_metalg"
item_state = "m_metalg" item_state = "m_metalg"

View File

@@ -211,7 +211,7 @@
if(!material.radioactivity) if(!material.radioactivity)
return return
for(var/mob/living/L in range(1,src)) for(var/mob/living/L in range(1,src))
L.apply_effect(round(material.radioactivity/3),IRRADIATE,0) L.apply_damage(round(material.radioactivity/3),IRRADIATE, damage_flags = DAM_DISPERSED)
/obj/structure/simple_door/iron/New(var/newloc,var/material_name, var/complexity) /obj/structure/simple_door/iron/New(var/newloc,var/material_name, var/complexity)
..(newloc, MATERIAL_IRON, complexity) ..(newloc, MATERIAL_IRON, complexity)

View File

@@ -157,21 +157,19 @@
var/mob/living/occupant = unbuckle_mob() var/mob/living/occupant = unbuckle_mob()
var/def_zone = ran_zone() var/def_zone = ran_zone()
var/blocked = occupant.run_armor_check(def_zone, "melee")
occupant.throw_at(A, 3, propelled) occupant.throw_at(A, 3, propelled)
occupant.apply_effect(6, STUN, blocked) occupant.apply_effect(6, STUN)
occupant.apply_effect(6, WEAKEN, blocked) occupant.apply_effect(6, WEAKEN)
occupant.apply_effect(6, STUTTER, blocked) occupant.apply_effect(6, STUTTER)
occupant.apply_damage(10, BRUTE, def_zone, blocked) occupant.apply_damage(10, BRUTE, def_zone)
playsound(src.loc, "punch", 50, 1, -1) playsound(src.loc, "punch", 50, 1, -1)
if(istype(A, /mob/living)) if(isliving(A))
var/mob/living/victim = A var/mob/living/victim = A
def_zone = ran_zone() def_zone = ran_zone()
blocked = victim.run_armor_check(def_zone, "melee") victim.apply_effect(6, STUN)
victim.apply_effect(6, STUN, blocked) victim.apply_effect(6, WEAKEN)
victim.apply_effect(6, WEAKEN, blocked) victim.apply_effect(6, STUTTER)
victim.apply_effect(6, STUTTER, blocked) victim.apply_damage(10, BRUTE, def_zone)
victim.apply_damage(10, BRUTE, def_zone, blocked)
occupant.visible_message("<span class='danger'>[occupant] crashed into \the [A]!</span>") occupant.visible_message("<span class='danger'>[occupant] crashed into \the [A]!</span>")
/obj/structure/bed/chair/office/light /obj/structure/bed/chair/office/light

View File

@@ -115,8 +115,8 @@
dismantle() dismantle()
qdel(src) qdel(src)
var/blocked = target.run_armor_check(hit_zone, "melee") var/blocked = target.get_blocked_ratio(hit_zone, BRUTE)
target.Weaken(10 * BLOCKED_MULT(blocked)) target.Weaken(10 * (1 - blocked))
target.apply_damage(20, BRUTE, hit_zone, blocked, src) target.apply_damage(20, BRUTE, hit_zone, blocked, src)
return return

View File

@@ -150,21 +150,19 @@
occupant.throw_at(A, 3, propelled) occupant.throw_at(A, 3, propelled)
var/def_zone = ran_zone() var/def_zone = ran_zone()
var/blocked = occupant.run_armor_check(def_zone, "melee")
occupant.throw_at(A, 3, propelled) occupant.throw_at(A, 3, propelled)
occupant.apply_effect(6, STUN, blocked) occupant.apply_effect(6, STUN)
occupant.apply_effect(6, WEAKEN, blocked) occupant.apply_effect(6, WEAKEN)
occupant.apply_effect(6, STUTTER, blocked) occupant.apply_effect(6, STUTTER)
occupant.apply_damage(10, BRUTE, def_zone, blocked) occupant.apply_damage(10, BRUTE, def_zone)
playsound(src.loc, "punch", 50, 1, -1) playsound(src.loc, "punch", 50, 1, -1)
if(istype(A, /mob/living)) if(isliving(A))
var/mob/living/victim = A var/mob/living/victim = A
def_zone = ran_zone() def_zone = ran_zone()
blocked = victim.run_armor_check(def_zone, "melee") victim.apply_effect(6, STUN)
victim.apply_effect(6, STUN, blocked) victim.apply_effect(6, WEAKEN)
victim.apply_effect(6, WEAKEN, blocked) victim.apply_effect(6, STUTTER)
victim.apply_effect(6, STUTTER, blocked) victim.apply_damage(10, BRUTE, def_zone)
victim.apply_damage(10, BRUTE, def_zone, blocked)
if(pulling) if(pulling)
occupant.visible_message("<span class='danger'>[pulling] has thrusted \the [name] into \the [A], throwing \the [occupant] out of it!</span>") occupant.visible_message("<span class='danger'>[pulling] has thrusted \the [name] into \the [A], throwing \the [occupant] out of it!</span>")

View File

@@ -119,8 +119,7 @@
to_chat(user, SPAN_NOTICE("[GM.name] needs to be on the urinal.")) to_chat(user, SPAN_NOTICE("[GM.name] needs to be on the urinal."))
return return
user.visible_message(SPAN_DANGER("[user] slams [GM.name] into the [src]!"), SPAN_NOTICE("You slam [GM.name] into the [src]!")) user.visible_message(SPAN_DANGER("[user] slams [GM.name] into the [src]!"), SPAN_NOTICE("You slam [GM.name] into the [src]!"))
var/blocked = GM.run_armor_check("melee") GM.apply_damage(8, def_zone = BP_HEAD, used_weapon = "blunt force")
GM.apply_damage(8, def_zone = BP_HEAD, blocked = blocked, used_weapon = "blunt force")
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN * 1.5) user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN * 1.5)
else else
to_chat(user, SPAN_NOTICE("You need a tighter grip.")) to_chat(user, SPAN_NOTICE("You need a tighter grip."))

View File

@@ -278,22 +278,21 @@
qdel(G) //gotta delete it here because if window breaks, it won't get deleted qdel(G) //gotta delete it here because if window breaks, it won't get deleted
var/def_zone = ran_zone(BP_HEAD, 20) var/def_zone = ran_zone(BP_HEAD, 20)
var/blocked = M.run_armor_check(def_zone, "melee")
switch (state) switch (state)
if(1) if(1)
M.visible_message(SPAN_WARNING("[user] slams [M] against \the [src]!")) M.visible_message(SPAN_WARNING("[user] slams [M] against \the [src]!"))
M.apply_damage(7, damtype, def_zone, blocked, src) M.apply_damage(7, damtype, def_zone, used_weapon = src)
hit(10) hit(10)
if(2) if(2)
M.visible_message(SPAN_DANGER("[user] bashes [M] against \the [src]!")) M.visible_message(SPAN_DANGER("[user] bashes [M] against \the [src]!"))
if (prob(50)) if (prob(50))
M.Weaken(1) M.Weaken(1)
M.apply_damage(10, damtype, def_zone, blocked, src) M.apply_damage(10, damtype, def_zone, used_weapon = src)
hit(25) hit(25)
if(3) if(3)
M.visible_message(SPAN_DANGER("<big>[user] crushes [M] against \the [src]!</big>")) M.visible_message(SPAN_DANGER("<big>[user] crushes [M] against \the [src]!</big>"))
M.Weaken(5) M.Weaken(5)
M.apply_damage(20, damtype, def_zone, blocked, src) M.apply_damage(20, damtype, def_zone, used_weapon = src)
hit(50) hit(50)
/obj/structure/window/proc/hit(var/damage, var/sound_effect = 1) /obj/structure/window/proc/hit(var/damage, var/sound_effect = 1)

View File

@@ -241,7 +241,7 @@
return return
for(var/mob/living/L in range(3,src)) for(var/mob/living/L in range(3,src))
L.apply_effect(total_radiation, IRRADIATE, blocked = L.getarmor(null, "rad")) L.apply_damage(total_radiation, IRRADIATE, damage_flags = DAM_DISPERSED)
return total_radiation return total_radiation
/turf/simulated/wall/proc/burn(temperature) /turf/simulated/wall/proc/burn(temperature)

View File

@@ -20,9 +20,6 @@ var/global/datum/universal_state/universe = new
var/global/list/global_map = null var/global/list/global_map = null
// Noises made when hit while typing.
var/list/hit_appends = list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF")
var/diary = null var/diary = null
var/diary_runtime = null var/diary_runtime = null
var/diary_date_string = null var/diary_date_string = null

View File

@@ -3,7 +3,13 @@
desc = "These arm guards will protect your hands and arms." desc = "These arm guards will protect your hands and arms."
icon_state = "arm_guards_riot" icon_state = "arm_guards_riot"
body_parts_covered = HANDS|ARMS body_parts_covered = HANDS|ARMS
armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_MAJOR,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_MINOR
)
punch_force = 3 punch_force = 3
w_class = ITEMSIZE_NORMAL w_class = ITEMSIZE_NORMAL
siemens_coefficient = 0.35 siemens_coefficient = 0.35
@@ -23,18 +29,33 @@
desc = "These arm guards will protect your hands and arms from energy weapons." desc = "These arm guards will protect your hands and arms from energy weapons."
icon_state = "arm_guards_laser" icon_state = "arm_guards_laser"
siemens_coefficient = 0 siemens_coefficient = 0
armor = list(melee = 25, bullet = 25, laser = 80, energy = 40, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_KNIVES,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_RIFLES,
energy = ARMOR_ENERGY_RESISTANT
)
/obj/item/clothing/gloves/arm_guard/bulletproof /obj/item/clothing/gloves/arm_guard/bulletproof
name = "ballistic arm guards" name = "ballistic arm guards"
desc = "These arm guards will protect your hands and arms from ballistic weapons." desc = "These arm guards will protect your hands and arms from ballistic weapons."
icon_state = "arm_guards_bullet" icon_state = "arm_guards_bullet"
armor = list(melee = 25, bullet = 80, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_KNIVES,
bullet = ARMOR_BALLISTIC_RIFLE,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR
)
/obj/item/clothing/gloves/arm_guard/riot /obj/item/clothing/gloves/arm_guard/riot
name = "riot arm guards" name = "riot arm guards"
desc = "These arm guards will protect your hands and arms from close combat weapons." desc = "These arm guards will protect your hands and arms from close combat weapons."
armor = list(melee = 80, bullet = 20, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR
)
/obj/item/clothing/gloves/arm_guard/mercs /obj/item/clothing/gloves/arm_guard/mercs
name = "heavy arm guards" name = "heavy arm guards"
@@ -43,5 +64,11 @@
item_state = "armguards" item_state = "armguards"
icon_state = "armguards" icon_state = "armguards"
contained_sprite = TRUE contained_sprite = TRUE
armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 40, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_PADDED
)
species_restricted = null species_restricted = null

View File

@@ -219,7 +219,13 @@
icon_state = "warping_claws" icon_state = "warping_claws"
item_state = "warping_claws" item_state = "warping_claws"
attack_verb = list("ripped", "torn", "cut") attack_verb = list("ripped", "torn", "cut")
armor = list(melee = 50, bullet = 15, laser = 15, energy = 10, bomb = 10, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_MINOR,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_MINOR
)
siemens_coefficient = 1 siemens_coefficient = 1
force = 5 force = 5
punch_force = 10 punch_force = 10

View File

@@ -5,7 +5,15 @@
action_button_name = "Toggle Headlamp" action_button_name = "Toggle Headlamp"
brightness_on = 4 //luminosity when on brightness_on = 4 //luminosity when on
light_overlay = "hardhat_light" light_overlay = "hardhat_light"
armor = list(melee = 30, bullet = 5, laser = 20,energy = 10, bomb = 20, bio = 10, rad = 20) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_MINOR,
rad = ARMOR_RAD_MINOR
)
flags_inv = 0 flags_inv = 0
w_class = ITEMSIZE_NORMAL w_class = ITEMSIZE_NORMAL
siemens_coefficient = 0.9 siemens_coefficient = 0.9
@@ -45,4 +53,3 @@
icon_state = "helmet_paramed" icon_state = "helmet_paramed"
item_state = "helmet_paramed" item_state = "helmet_paramed"
light_overlay = "EMS_light" light_overlay = "EMS_light"
armor = list(melee = 30, bullet = 15, laser = 20,energy = 10, bomb = 20, bio = 10, rad = 20)

View File

@@ -7,7 +7,13 @@
slot_r_hand_str = "helmet" slot_r_hand_str = "helmet"
) )
item_flags = THICKMATERIAL item_flags = THICKMATERIAL
armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED
)
flags_inv = HIDEEARS|BLOCKHEADHAIR flags_inv = HIDEEARS|BLOCKHEADHAIR
cold_protection = HEAD cold_protection = HEAD
min_cold_protection_temperature = HELMET_MIN_COLD_PROTECTION_TEMPERATURE min_cold_protection_temperature = HELMET_MIN_COLD_PROTECTION_TEMPERATURE
@@ -61,7 +67,6 @@
desc_fluff = "What the heck did you just hecking say about me, you little honker? I'll have you know I graduated top of my class in the Sol Army, and I've been involved in numerous secret raids on the Jargon Federation, and I have over 300 confirmed kills. I am trained in gorilla warfare and I'm the top sniper in the entire Sol armed forces. You are nothing to me but just another target. I will wipe you the heck out with precision the likes of which has never been seen before on Biesel, mark my hecking words." desc_fluff = "What the heck did you just hecking say about me, you little honker? I'll have you know I graduated top of my class in the Sol Army, and I've been involved in numerous secret raids on the Jargon Federation, and I have over 300 confirmed kills. I am trained in gorilla warfare and I'm the top sniper in the entire Sol armed forces. You are nothing to me but just another target. I will wipe you the heck out with precision the likes of which has never been seen before on Biesel, mark my hecking words."
icon_state = "hoshelmet" icon_state = "hoshelmet"
item_state = "hoshelmet" item_state = "hoshelmet"
armor = list(melee = 62, bullet = 50, laser = 50, energy = 35, bomb = 10, bio = 2, rad = 0)
/obj/item/clothing/head/helmet/hos/dermal /obj/item/clothing/head/helmet/hos/dermal
name = "dermal armor patch" name = "dermal armor patch"
@@ -86,7 +91,10 @@
desc = "It's a helmet specifically designed to protect against close range attacks." desc = "It's a helmet specifically designed to protect against close range attacks."
icon_state = "riot" icon_state = "riot"
body_parts_covered = HEAD|FACE|EYES //face shield body_parts_covered = HEAD|FACE|EYES //face shield
armor = list(melee = 80, bullet = 20, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_MINOR
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
flags_inv = HIDEEARS flags_inv = HIDEEARS
action_button_name = "Toggle Visor" action_button_name = "Toggle Visor"
@@ -109,14 +117,24 @@
name = "ablative helmet" name = "ablative helmet"
desc = "A helmet made from advanced materials which protects against concentrated energy weapons." desc = "A helmet made from advanced materials which protects against concentrated energy weapons."
icon_state = "helmet_reflect" icon_state = "helmet_reflect"
armor = list(melee = 25, bullet = 25, laser = 80, energy = 40, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_SMALL,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_RIFLES,
energy = ARMOR_ENERGY_RESISTANT
)
siemens_coefficient = 0 siemens_coefficient = 0
/obj/item/clothing/head/helmet/ballistic /obj/item/clothing/head/helmet/ballistic
name = "ballistic helmet" name = "ballistic helmet"
desc = "A helmet with reinforced plating to protect against ballistic projectiles." desc = "A helmet with reinforced plating to protect against ballistic projectiles."
icon_state = "helmet_bulletproof" icon_state = "helmet_bulletproof"
armor = list(melee = 25, bullet = 80, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MINOR,
bullet = ARMOR_BALLISTIC_AP,
laser = ARMOR_LASER_SMALL,
bomb = ARMOR_BOMB_PADDED
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
/obj/item/clothing/head/helmet/merc /obj/item/clothing/head/helmet/merc
@@ -126,7 +144,13 @@
item_state = "helmet" item_state = "helmet"
icon_state = "helmet" icon_state = "helmet"
contained_sprite = TRUE contained_sprite = TRUE
armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 40, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_RIFLE,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_PADDED
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
/obj/item/clothing/head/helmet/swat /obj/item/clothing/head/helmet/swat
@@ -134,7 +158,13 @@
desc = "They're often used by highly trained Swat Members." desc = "They're often used by highly trained Swat Members."
icon_state = "swat" icon_state = "swat"
item_state = "swat" item_state = "swat"
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_PADDED
)
flags_inv = HIDEEARS|HIDEEYES|HIDEFACE flags_inv = HIDEEARS|HIDEEYES|HIDEFACE
cold_protection = HEAD cold_protection = HEAD
min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE
@@ -167,7 +197,13 @@
name = "\improper Thunderdome helmet" name = "\improper Thunderdome helmet"
desc = "<i>'Let the battle commence!'</i>" desc = "<i>'Let the battle commence!'</i>"
icon_state = "thunderdome" icon_state = "thunderdome"
armor = list(melee = 80, bullet = 60, laser = 50,energy = 10, bomb = 25, bio = 10, rad = 0) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_PADDED
)
cold_protection = HEAD cold_protection = HEAD
min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE
siemens_coefficient = 1 siemens_coefficient = 1
@@ -189,7 +225,13 @@
BODYTYPE_TAJARA = 'icons/mob/species/tajaran/helmet.dmi', BODYTYPE_TAJARA = 'icons/mob/species/tajaran/helmet.dmi',
BODYTYPE_UNATHI = 'icons/mob/species/unathi/helmet.dmi' BODYTYPE_UNATHI = 'icons/mob/species/unathi/helmet.dmi'
) )
armor = list(melee = 62, bullet = 50, laser = 50,energy = 35, bomb = 10, bio = 2, rad = 0) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_RIFLE,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_PADDED
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
@@ -197,7 +239,13 @@
name = "augment array" name = "augment array"
desc = "A helmet with optical and cranial augments coupled to it." desc = "A helmet with optical and cranial augments coupled to it."
icon_state = "v62" icon_state = "v62"
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_PADDED
)
flags_inv = HIDEEARS|HIDEEYES flags_inv = HIDEEARS|HIDEEYES
body_parts_covered = HEAD|EYES body_parts_covered = HEAD|EYES
cold_protection = HEAD cold_protection = HEAD
@@ -208,7 +256,12 @@
name = "IAC helmet" name = "IAC helmet"
desc = "This helmet is meant to protect the wearer from light debris, scrapes and bumps in a disaster situation, this lightweight helmet doesn't offer any significant protection from attacks or severe accidents. It's not recommended for use as armor and it's definitely not spaceworthy." desc = "This helmet is meant to protect the wearer from light debris, scrapes and bumps in a disaster situation, this lightweight helmet doesn't offer any significant protection from attacks or severe accidents. It's not recommended for use as armor and it's definitely not spaceworthy."
icon_state = "iac_helmet" icon_state = "iac_helmet"
armor = list(melee = 6, bullet = 10, laser = 10, energy = 3, bomb = 5, bio = 15, rad = 0) armor = list(
melee = ARMOR_MELEE_MINOR,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_MINOR,
bio = ARMOR_BIO_MINOR
)
flags_inv = HIDEEARS flags_inv = HIDEEARS
/obj/item/clothing/head/helmet/unathi /obj/item/clothing/head/helmet/unathi
@@ -219,7 +272,13 @@
item_state = "unathi_helmet" item_state = "unathi_helmet"
contained_sprite = TRUE contained_sprite = TRUE
species_restricted = list(BODYTYPE_UNATHI) species_restricted = list(BODYTYPE_UNATHI)
armor = list(melee = 65, bullet = 30, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
/obj/item/clothing/head/helmet/unathi/hegemony /obj/item/clothing/head/helmet/unathi/hegemony
@@ -227,7 +286,14 @@
desc = "A highly armored helmet designated to be worn by an Unathi, a newer variant commonly worn by the Hegemony Levies." desc = "A highly armored helmet designated to be worn by an Unathi, a newer variant commonly worn by the Hegemony Levies."
icon_state = "hegemony_helmet" icon_state = "hegemony_helmet"
item_state = "hegemony_helmet" item_state = "hegemony_helmet"
armor = list(melee = 70, bullet = 40, laser = 55, energy = 15, bomb = 25, bio = 0, rad = 40) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
rad = ARMOR_RAD_MINOR
)
/obj/item/clothing/head/helmet/unathi/klax /obj/item/clothing/head/helmet/unathi/klax
name = "klaxan hopeful helmet" name = "klaxan hopeful helmet"
@@ -236,7 +302,14 @@
icon_state = "klax_hopeful_helmet" icon_state = "klax_hopeful_helmet"
item_state = "klax_hopeful_helmet" item_state = "klax_hopeful_helmet"
species_restricted = list(BODYTYPE_VAURCA) species_restricted = list(BODYTYPE_VAURCA)
armor = list(melee = 70, bullet = 40, laser = 55, energy = 15, bomb = 25, bio = 0, rad = 40) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_PADDED,
rad = ARMOR_RAD_RESISTANT
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
/obj/item/clothing/head/helmet/tank /obj/item/clothing/head/helmet/tank
@@ -245,7 +318,9 @@
icon_state = "tank" icon_state = "tank"
flags_inv = BLOCKHEADHAIR flags_inv = BLOCKHEADHAIR
color = "#5f5f5f" color = "#5f5f5f"
armor = list(melee = 25, bullet = 5, laser = 5, energy = 10, bomb = 5, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_KNIVES
)
siemens_coefficient = 0.75 siemens_coefficient = 0.75
/obj/item/clothing/head/helmet/tank/olive /obj/item/clothing/head/helmet/tank/olive
@@ -266,7 +341,13 @@
slot_l_hand_str = "syndicate-helm-green", slot_l_hand_str = "syndicate-helm-green",
slot_r_hand_str = "syndicate-helm-green" slot_r_hand_str = "syndicate-helm-green"
) )
armor = list(melee = 62, bullet = 50, laser = 50,energy = 35, bomb = 10, bio = 2, rad = 0) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_RIFLE,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BIO_MINOR
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
//Commander //Commander
@@ -298,7 +379,13 @@
icon_state = "legion_helmet" icon_state = "legion_helmet"
body_parts_covered = HEAD|FACE|EYES body_parts_covered = HEAD|FACE|EYES
flags_inv = HIDEEARS|HIDEEYES|BLOCKHEADHAIR flags_inv = HIDEEARS|HIDEEYES|BLOCKHEADHAIR
armor = list(melee = 50, bullet = 30, laser = 30, energy = 15, bomb = 40, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
sprite_sheets = list( sprite_sheets = list(
"Tajara" = 'icons/mob/species/tajaran/helmet.dmi', "Tajara" = 'icons/mob/species/tajaran/helmet.dmi',
@@ -319,7 +406,13 @@
icon_state = "legion_pilot_up" icon_state = "legion_pilot_up"
body_parts_covered = null body_parts_covered = null
flags_inv = BLOCKHEADHAIR flags_inv = BLOCKHEADHAIR
armor = list(melee = 40, bullet = 20, laser = 20, energy = 10, bomb = 40, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_KNIVES,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED
)
camera = /obj/machinery/camera/network/tcfl camera = /obj/machinery/camera/network/tcfl
siemens_coefficient = 0.35 siemens_coefficient = 0.35
action_button_name = "Flip Pilot Visor" action_button_name = "Flip Pilot Visor"

View File

@@ -59,7 +59,11 @@
slot_r_hand_str = "det_hat" slot_r_hand_str = "det_hat"
) )
allowed = list(/obj/item/reagent_containers/food/snacks/candy_corn, /obj/item/pen) allowed = list(/obj/item/reagent_containers/food/snacks/candy_corn, /obj/item/pen)
armor = list(melee = 50, bullet = 5, laser = 25,energy = 10, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_RESISTANT,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR
)
siemens_coefficient = 0.75 siemens_coefficient = 0.75
/obj/item/clothing/head/det/grey /obj/item/clothing/head/det/grey

View File

@@ -535,8 +535,9 @@
icon_state = "greyutility" icon_state = "greyutility"
item_state = "greyutility" item_state = "greyutility"
contained_sprite = 1 contained_sprite = 1
armor = list(melee = 10, bullet = 10, laser = 10,energy = 0, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MINOR
)
/obj/item/clothing/head/navy/marine /obj/item/clothing/head/navy/marine
name = "sol marine utility cover" name = "sol marine utility cover"
desc = "An eight pointed cover issued to Sol Alliance marines as part of their field uniform." desc = "An eight pointed cover issued to Sol Alliance marines as part of their field uniform."
@@ -591,7 +592,13 @@
icon = 'icons/obj/sol_uniform.dmi' icon = 'icons/obj/sol_uniform.dmi'
icon_state = "helmet_tac_sol" icon_state = "helmet_tac_sol"
item_state = "helmet_tac_sol" item_state = "helmet_tac_sol"
armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 40, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_MAJOR,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED
)
contained_sprite = 1 contained_sprite = 1
/obj/item/clothing/head/nonla /obj/item/clothing/head/nonla

View File

@@ -22,7 +22,9 @@
) )
matter = list(DEFAULT_WALL_MATERIAL = 3000, MATERIAL_GLASS = 1000) matter = list(DEFAULT_WALL_MATERIAL = 3000, MATERIAL_GLASS = 1000)
var/up = 0 var/up = 0
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_SMALL
)
flags_inv = (HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE) flags_inv = (HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE)
body_parts_covered = HEAD|FACE|EYES body_parts_covered = HEAD|FACE|EYES
action_button_name = "Flip Welding Mask" action_button_name = "Flip Welding Mask"

View File

@@ -93,7 +93,12 @@
body_parts_covered = HEAD|FACE|EYES body_parts_covered = HEAD|FACE|EYES
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR
species_restricted = list(BODYTYPE_TAJARA) species_restricted = list(BODYTYPE_TAJARA)
armor = list(melee = 60, bullet = 50, laser = 20, energy = 10, bomb = 5, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR
)
allow_hair_covering = FALSE allow_hair_covering = FALSE
desc_fluff = "The Feudal Era of Amohda is famous for the steel swords which became common. Many renowned swordsmen and famous warriors would travel the land fighting duels of \ desc_fluff = "The Feudal Era of Amohda is famous for the steel swords which became common. Many renowned swordsmen and famous warriors would travel the land fighting duels of \
single combat in their quests to become the greatest swordsman. Modern Amohda is a mix between loyalists to the NKA and to the DPRA, with almost universal praise for a return to \ single combat in their quests to become the greatest swordsman. Modern Amohda is a mix between loyalists to the NKA and to the DPRA, with almost universal praise for a return to \
@@ -108,4 +113,9 @@
icon_state = "kettle" icon_state = "kettle"
item_state = "kettle" item_state = "kettle"
contained_sprite = TRUE contained_sprite = TRUE
armor = list(melee = 50, bullet = 50, laser = 20, energy = 10, bomb = 5, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR
)

View File

@@ -55,7 +55,9 @@
icon_state = "balaclava_blue" icon_state = "balaclava_blue"
item_state = "balaclava_blue" item_state = "balaclava_blue"
germ_level = 0 germ_level = 0
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0) armor = list(
bio = ARMOR_BIO_STRONG
)
/obj/item/clothing/mask/luchador /obj/item/clothing/mask/luchador
name = "luchador mask" name = "luchador mask"

View File

@@ -12,7 +12,9 @@
siemens_coefficient = 0.9 siemens_coefficient = 0.9
var/gas_filter_strength = 1 //For gas mask filters var/gas_filter_strength = 1 //For gas mask filters
var/list/filtered_gases = list(GAS_PHORON, GAS_N2O) var/list/filtered_gases = list(GAS_PHORON, GAS_N2O)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 75, rad = 0) armor = list(
bio = ARMOR_BIO_STRONG
)
/obj/item/clothing/mask/gas/filter_air(datum/gas_mixture/air) /obj/item/clothing/mask/gas/filter_air(datum/gas_mixture/air)
var/datum/gas_mixture/filtered = new var/datum/gas_mixture/filtered = new
@@ -45,7 +47,9 @@
desc = "A modernised version of the classic design, this mask will not only filter out phoron but it can also be connected to an air supply." desc = "A modernised version of the classic design, this mask will not only filter out phoron but it can also be connected to an air supply."
icon_state = "plaguedoctor" icon_state = "plaguedoctor"
item_state = "plaguedoctor" item_state = "plaguedoctor"
armor = list(melee = 0, bullet = 0, laser = 2,energy = 2, bomb = 0, bio = 90, rad = 0) armor = list(
bio = ARMOR_BIO_SHIELDED
)
body_parts_covered = HEAD|FACE|EYES body_parts_covered = HEAD|FACE|EYES
/obj/item/clothing/mask/gas/swat /obj/item/clothing/mask/gas/swat
@@ -112,4 +116,9 @@
icon_state = "fullgas" icon_state = "fullgas"
item_state = "fullgas" item_state = "fullgas"
w_class = ITEMSIZE_SMALL w_class = ITEMSIZE_SMALL
armor = list(melee = 25, bullet = 10, laser = 25, energy = 25, bomb = 0, bio = 50, rad = 15) armor = list(
melee = ARMOR_MELEE_SMALL,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_MINOR,
bio = ARMOR_BIO_STRONG
)

View File

@@ -37,7 +37,9 @@
item_flags = FLEXIBLEMATERIAL item_flags = FLEXIBLEMATERIAL
gas_transfer_coefficient = 0.90 gas_transfer_coefficient = 0.90
permeability_coefficient = 0.01 permeability_coefficient = 0.01
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0) armor = list(
bio = ARMOR_BIO_RESISTANT
)
down_gas_transfer_coefficient = 1 down_gas_transfer_coefficient = 1
down_body_parts_covered = null down_body_parts_covered = null
adjustable = TRUE adjustable = TRUE
@@ -57,7 +59,9 @@
item_flags = FLEXIBLEMATERIAL item_flags = FLEXIBLEMATERIAL
gas_transfer_coefficient = 0.90 gas_transfer_coefficient = 0.90
permeability_coefficient = 0.01 permeability_coefficient = 0.01
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 15, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)
down_gas_transfer_coefficient = 1 down_gas_transfer_coefficient = 1
down_body_parts_covered = null down_body_parts_covered = null
adjustable = TRUE adjustable = TRUE
@@ -72,7 +76,9 @@
item_flags = FLEXIBLEMATERIAL item_flags = FLEXIBLEMATERIAL
gas_transfer_coefficient = 0.90 gas_transfer_coefficient = 0.90
permeability_coefficient = 0.01 permeability_coefficient = 0.01
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 15, rad = 10) armor = list(
bio = ARMOR_BIO_MINOR
)
down_gas_transfer_coefficient = 1 down_gas_transfer_coefficient = 1
down_body_parts_covered = null down_body_parts_covered = null
adjustable = TRUE adjustable = TRUE

View File

@@ -99,7 +99,9 @@
desc = "A pair of green and white shoes intended for safety around patients." desc = "A pair of green and white shoes intended for safety around patients."
icon_state = "doctor" icon_state = "doctor"
item_state = "green" item_state = "green"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 80, rad = 0) armor = list(
bio = ARMOR_BIO_RESISTANT
)
/obj/item/clothing/shoes/science /obj/item/clothing/shoes/science
name = "scientist shoes" name = "scientist shoes"
@@ -115,7 +117,9 @@
icon_state = "chemist" icon_state = "chemist"
item_state = "orange" item_state = "orange"
permeability_coefficient = 0.01 permeability_coefficient = 0.01
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 90, rad = 0) armor = list(
bio = ARMOR_BIO_RESISTANT
)
/obj/item/clothing/shoes/biochem /obj/item/clothing/shoes/biochem
name = "protective shoes" name = "protective shoes"
@@ -123,7 +127,9 @@
icon_state = "biochem" icon_state = "biochem"
item_state = "red" item_state = "red"
permeability_coefficient = 0.01 permeability_coefficient = 0.01
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 90, rad = 0) armor = list(
bio = ARMOR_BIO_RESISTANT
)
/obj/item/clothing/shoes/psych /obj/item/clothing/shoes/psych
name = "psychologist shoes" name = "psychologist shoes"
@@ -131,7 +137,9 @@
icon_state = "psych" icon_state = "psych"
item_state = "blue" item_state = "blue"
permeability_coefficient = 0.01 permeability_coefficient = 0.01
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 90, rad = 0) armor = list(
bio = ARMOR_BIO_RESISTANT
)
/obj/item/clothing/shoes/surgeon /obj/item/clothing/shoes/surgeon
name = "surgeon shoes" name = "surgeon shoes"
@@ -139,7 +147,9 @@
icon_state = "surgeon" icon_state = "surgeon"
item_state = "blue" item_state = "blue"
permeability_coefficient = 0.01 permeability_coefficient = 0.01
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 90, rad = 0) armor = list(
bio = ARMOR_BIO_RESISTANT
)
/obj/item/clothing/shoes/trauma /obj/item/clothing/shoes/trauma
name = "trauma physician shoes" name = "trauma physician shoes"
@@ -147,7 +157,9 @@
icon_state = "trauma" icon_state = "trauma"
item_state = "black" item_state = "black"
permeability_coefficient = 0.01 permeability_coefficient = 0.01
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 90, rad = 0) armor = list(
bio = ARMOR_BIO_RESISTANT
)
/obj/item/clothing/shoes/flats /obj/item/clothing/shoes/flats
desc = "A pair of black, low-heeled women's flats." desc = "A pair of black, low-heeled women's flats."

View File

@@ -16,7 +16,9 @@
icon_state = "jackboots" icon_state = "jackboots"
item_state = "jackboots" item_state = "jackboots"
force = 3 force = 3
armor = list(melee = 20, bullet = 5, laser = 5, energy = 0, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_KNIVES
)
siemens_coefficient = 0.75 siemens_coefficient = 0.75
can_hold_knife = TRUE can_hold_knife = TRUE
build_from_parts = TRUE build_from_parts = TRUE
@@ -59,7 +61,12 @@
icon_state = "workboots" icon_state = "workboots"
item_state = "workboots" item_state = "workboots"
force = 3 force = 3
armor = list(melee = 40, bullet = 0, laser = 0, energy = 15, bomb = 20, bio = 0, rad = 20) armor = list(
melee = ARMOR_MELEE_KNIVES,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_MINOR,
rad = ARMOR_RAD_MINOR
)
siemens_coefficient = 0.75 siemens_coefficient = 0.75
can_hold_knife = TRUE can_hold_knife = TRUE
build_from_parts = TRUE build_from_parts = TRUE

View File

@@ -5,7 +5,13 @@
item_state = "jackboots" item_state = "jackboots"
body_parts_covered = LEGS|FEET body_parts_covered = LEGS|FEET
w_class = ITEMSIZE_NORMAL w_class = ITEMSIZE_NORMAL
armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_KNIVES,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
force = 3 force = 3
drop_sound = 'sound/items/drop/boots.ogg' drop_sound = 'sound/items/drop/boots.ogg'
@@ -24,18 +30,36 @@
desc = "These will protect your legs and feet from energy weapons." desc = "These will protect your legs and feet from energy weapons."
icon_state = "leg_guards_laser" icon_state = "leg_guards_laser"
siemens_coefficient = 0 siemens_coefficient = 0
armor = list(melee = 25, bullet = 25, laser = 80, energy = 40, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_KNIVES,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_RIFLES,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_PADDED
)
/obj/item/clothing/shoes/leg_guard/bulletproof /obj/item/clothing/shoes/leg_guard/bulletproof
name = "ballistic leg guards" name = "ballistic leg guards"
desc = "These will protect your legs and feet from ballistic weapons." desc = "These will protect your legs and feet from ballistic weapons."
icon_state = "leg_guards_bullet" icon_state = "leg_guards_bullet"
armor = list(melee = 25, bullet = 80, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_KNIVES,
bullet = ARMOR_BALLISTIC_RIFLE,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED
)
/obj/item/clothing/shoes/leg_guard/riot /obj/item/clothing/shoes/leg_guard/riot
name = "riot leg guards" name = "riot leg guards"
desc = "These will protect your legs and feet from close combat weapons." desc = "These will protect your legs and feet from close combat weapons."
armor = list(melee = 80, bullet = 20, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED
)
/obj/item/clothing/shoes/leg_guard/merc /obj/item/clothing/shoes/leg_guard/merc
name = "heavy leg guards" name = "heavy leg guards"
@@ -44,5 +68,11 @@
item_state = "legguards" item_state = "legguards"
icon_state = "legguards" icon_state = "legguards"
contained_sprite = TRUE contained_sprite = TRUE
armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 40, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_PADDED
)
species_restricted = null species_restricted = null

View File

@@ -23,7 +23,14 @@
icon_state = "swat" icon_state = "swat"
item_state = "swat" item_state = "swat"
force = 5 force = 5
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_RIFLE,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_MINOR
)
item_flags = NOSLIP item_flags = NOSLIP
siemens_coefficient = 0.5 siemens_coefficient = 0.5
can_hold_knife = TRUE can_hold_knife = TRUE
@@ -38,7 +45,14 @@
icon_state = "jungle" icon_state = "jungle"
item_state = "jungle" item_state = "jungle"
force = 5 force = 5
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_RIFLE,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_MINOR
)
item_flags = NOSLIP item_flags = NOSLIP
siemens_coefficient = 0.35 siemens_coefficient = 0.35
can_hold_knife = TRUE can_hold_knife = TRUE
@@ -208,7 +222,10 @@ obj/item/clothing/shoes/sandal/clogs
min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE
heat_protection = FEET|LEGS heat_protection = FEET|LEGS
max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECTION_TEMPERATURE max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECTION_TEMPERATURE
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 10, rad = 0) armor = list(
melee = ARMOR_MELEE_MINOR,
bio = ARMOR_BIO_MINOR
)
siemens_coefficient = 0.75 siemens_coefficient = 0.75
can_hold_knife = TRUE can_hold_knife = TRUE
build_from_parts = TRUE build_from_parts = TRUE
@@ -227,7 +244,9 @@ obj/item/clothing/shoes/sandal/clogs
icon_state = "caligae" icon_state = "caligae"
item_state = "caligae" item_state = "caligae"
force = 5 force = 5
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MINOR
)
body_parts_covered = FEET|LEGS body_parts_covered = FEET|LEGS
species_restricted = null species_restricted = null
sprite_sheets = list( sprite_sheets = list(
@@ -254,7 +273,9 @@ obj/item/clothing/shoes/sandal/clogs
desc = "The standard Unathi marching footwear. These are made for heavier conditions, featuring tough and waterproof eel-leather covering, offering far greater protection." desc = "The standard Unathi marching footwear. These are made for heavier conditions, featuring tough and waterproof eel-leather covering, offering far greater protection."
desc_fluff = "These traditional Unathi footwear have remained relatively unchanged in principle, with improved materials and construction being the only notable change. This pair is reinforced with leather of the Zazehal, a Moghesian species of eel that can grow up to twenty five feet long. Typically, Zazehal Festivals are thrown every month of the warm season in which Unathi strew freshly killed birds across the shoreline and collect these creatures with baskets. The fungi that grow on their skin is harvested and used as an exotic seasoning, and their skin is used for its' incredibly durable, shark-like leather." desc_fluff = "These traditional Unathi footwear have remained relatively unchanged in principle, with improved materials and construction being the only notable change. This pair is reinforced with leather of the Zazehal, a Moghesian species of eel that can grow up to twenty five feet long. Typically, Zazehal Festivals are thrown every month of the warm season in which Unathi strew freshly killed birds across the shoreline and collect these creatures with baskets. The fungi that grow on their skin is harvested and used as an exotic seasoning, and their skin is used for its' incredibly durable, shark-like leather."
icon_state = "eelcaligae" icon_state = "eelcaligae"
armor = list(melee = 40, bullet = 0, laser = 0, energy = 15, bomb = 20, bio = 0, rad = 20) armor = list(
melee = ARMOR_MELEE_KNIVES
)
siemens_coefficient = 0.75 siemens_coefficient = 0.75
/obj/item/clothing/shoes/carp /obj/item/clothing/shoes/carp
@@ -274,4 +295,6 @@ obj/item/clothing/shoes/sandal/clogs
icon_state = "surgeon" icon_state = "surgeon"
item_state = "blue" item_state = "blue"
permeability_coefficient = 0.01 permeability_coefficient = 0.01
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 90, rad = 0) armor = list(
bio = ARMOR_BIO_RESISTANT
)

View File

@@ -4,7 +4,9 @@
icon = 'icons/obj/vaurca_items.dmi' icon = 'icons/obj/vaurca_items.dmi'
icon_state = "vaurca_shoes" icon_state = "vaurca_shoes"
item_state = "vaurca_shoes" item_state = "vaurca_shoes"
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MINOR
)
body_parts_covered = FEET body_parts_covered = FEET
species_restricted = list(BODYTYPE_VAURCA) species_restricted = list(BODYTYPE_VAURCA)
contained_sprite = TRUE contained_sprite = TRUE

View File

@@ -8,7 +8,15 @@
slot_l_hand_str = "syndicate-helm-black-red", slot_l_hand_str = "syndicate-helm-black-red",
slot_r_hand_str = "syndicate-helm-black-red" slot_r_hand_str = "syndicate-helm-black-red"
) )
armor = list(melee = 65, bullet = 55, laser = 35,energy = 20, bomb = 30, bio = 100, rad = 60) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
item_flags = STOPPRESSUREDAMAGE | THICKMATERIAL item_flags = STOPPRESSUREDAMAGE | THICKMATERIAL
flags_inv = BLOCKHAIR flags_inv = BLOCKHAIR
siemens_coefficient = 0.6 siemens_coefficient = 0.6
@@ -21,7 +29,11 @@
icon_state = "beret_sec" icon_state = "beret_sec"
item_state = "beret_sec" item_state = "beret_sec"
contained_sprite = TRUE contained_sprite = TRUE
armor = list(melee = 65, bullet = 55, laser = 35,energy = 20, bomb = 30, bio = 30, rad = 30) armor = list(
melee = ARMOR_MELEE_KNIVES,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_MINOR
)
item_flags = STOPPRESSUREDAMAGE item_flags = STOPPRESSUREDAMAGE
flags_inv = BLOCKHAIR flags_inv = BLOCKHAIR
siemens_coefficient = 0.9 siemens_coefficient = 0.9
@@ -51,7 +63,15 @@
desc = "Yarr." desc = "Yarr."
icon_state = "pirate" icon_state = "pirate"
item_state = "pirate" item_state = "pirate"
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SMALL,
rad = ARMOR_RAD_MINOR
)
item_flags = STOPPRESSUREDAMAGE item_flags = STOPPRESSUREDAMAGE
flags_inv = BLOCKHAIR flags_inv = BLOCKHAIR
body_parts_covered = 0 body_parts_covered = 0
@@ -65,7 +85,15 @@
w_class = ITEMSIZE_NORMAL w_class = ITEMSIZE_NORMAL
allowed = list(/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/tank/emergency_oxygen) allowed = list(/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/tank/emergency_oxygen)
slowdown = 0 slowdown = 0
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SMALL,
rad = ARMOR_RAD_MINOR
)
siemens_coefficient = 0.4 siemens_coefficient = 0.4
body_parts_covered = UPPER_TORSO|ARMS body_parts_covered = UPPER_TORSO|ARMS

View File

@@ -7,7 +7,6 @@
*/ */
/obj/item/rig /obj/item/rig
name = "hardsuit control module" name = "hardsuit control module"
icon = 'icons/obj/rig_modules.dmi' icon = 'icons/obj/rig_modules.dmi'
desc = "A back-mounted hardsuit deployment and control mechanism." desc = "A back-mounted hardsuit deployment and control mechanism."
@@ -17,7 +16,15 @@
w_class = ITEMSIZE_LARGE w_class = ITEMSIZE_LARGE
// These values are passed on to all component pieces. // These values are passed on to all component pieces.
armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 20) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_MINOR
)
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE
siemens_coefficient = 0.35 siemens_coefficient = 0.35

View File

@@ -3,7 +3,15 @@
desc = "A cheap NT knock-off of an Unathi battle-hardsuit. Looks like a fish, moves like a fish, steers like a cow." desc = "A cheap NT knock-off of an Unathi battle-hardsuit. Looks like a fish, moves like a fish, steers like a cow."
suit_type = "NT breacher" suit_type = "NT breacher"
icon_state = "breacher_rig_cheap" icon_state = "breacher_rig_cheap"
armor = list(melee = 60, bullet = 60, laser = 60, energy = 60, bomb = 70, bio = 100, rad = 50) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_RIFLE,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_MINOR
)
siemens_coefficient = 0.1 siemens_coefficient = 0.1
emp_protection = -20 emp_protection = -20
slowdown = 6 slowdown = 6
@@ -22,7 +30,15 @@
desc = "An authentic Unathi breacher chassis. Huge, bulky and absurdly heavy. It must be like wearing a tank." desc = "An authentic Unathi breacher chassis. Huge, bulky and absurdly heavy. It must be like wearing a tank."
suit_type = "breacher chassis" suit_type = "breacher chassis"
icon_state = "breacher_rig" icon_state = "breacher_rig"
armor = list(melee = 90, bullet = 90, laser = 90, energy = 90, bomb = 90, bio = 100, rad = 80) //Takes TEN TIMES as much damage to stop someone in a breacher. In exchange, it's slow. armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_AP,
laser = ARMOR_LASER_MAJOR,
energy = ARMOR_ENERGY_STRONG,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SMALL
)
siemens_coefficient = 0.1 siemens_coefficient = 0.1
vision_restriction = 0 vision_restriction = 0
slowdown = 4 slowdown = 4
@@ -46,7 +62,15 @@
desc = "An ancient piece of equipment from a bygone age, This highly advanced Vaurcan technology rarely sees use outside of a battlefield." desc = "An ancient piece of equipment from a bygone age, This highly advanced Vaurcan technology rarely sees use outside of a battlefield."
suit_type = "combat exoskeleton" suit_type = "combat exoskeleton"
icon_state = "vaurca_rig" icon_state = "vaurca_rig"
armor = list(melee = 65, bullet = 65, laser = 100, energy = 100, bomb = 90, bio = 100, rad = 80) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_HEAVY,
energy = ARMOR_ENERGY_SHIELDED,
bomb = ARMOR_BOMB_SHIELDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
siemens_coefficient = 0.1 siemens_coefficient = 0.1
vision_restriction = 0 vision_restriction = 0
slowdown = 2 slowdown = 2
@@ -88,7 +112,15 @@
special unit designated to withstand the numerical disadvantages and prolonged engagements special forces of the Republic often faces." special unit designated to withstand the numerical disadvantages and prolonged engagements special forces of the Republic often faces."
suit_type = "tesla suit" suit_type = "tesla suit"
icon_state = "tesla_rig" icon_state = "tesla_rig"
armor = list(melee = 70, bullet = 50, laser = 35, energy = 15, bomb = 55, bio = 100, rad = 60) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
siemens_coefficient = 0.1 siemens_coefficient = 0.1
vision_restriction = 0 vision_restriction = 0
slowdown = 2 slowdown = 2

View File

@@ -3,7 +3,15 @@
desc = "A sleek and dangerous hardsuit for active combat." desc = "A sleek and dangerous hardsuit for active combat."
icon_state = "combat_rig" icon_state = "combat_rig"
suit_type = "combat hardsuit" suit_type = "combat hardsuit"
armor = list(melee = 70, bullet = 55, laser = 45, energy = 15, bomb = 75, bio = 100, rad = 60) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
siemens_coefficient = 0.1 siemens_coefficient = 0.1
offline_slowdown = 3 offline_slowdown = 3
offline_vision_restriction = TINT_HEAVY offline_vision_restriction = TINT_HEAVY
@@ -35,7 +43,15 @@
desc = "A powerful hardsuit designed for military operations." desc = "A powerful hardsuit designed for military operations."
icon_state = "military_rig" icon_state = "military_rig"
suit_type = "military hardsuit" suit_type = "military hardsuit"
armor = list(melee = 80, bullet = 75, laser = 60, energy = 15, bomb = 80, bio = 100, rad = 30) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_MAJOR,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_SHIELDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
siemens_coefficient = 0.1 siemens_coefficient = 0.1
offline_slowdown = 3 offline_slowdown = 3
offline_vision_restriction = TINT_HEAVY offline_vision_restriction = TINT_HEAVY
@@ -87,7 +103,15 @@
desc = "An old repurposed construction exoskeleton redesigned for combat. Its colors and insignias match those of the Tau Ceti Foreign Legion." desc = "An old repurposed construction exoskeleton redesigned for combat. Its colors and insignias match those of the Tau Ceti Foreign Legion."
icon_state = "legion_rig" icon_state = "legion_rig"
suit_type = "retrofitted military hardsuit" suit_type = "retrofitted military hardsuit"
armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 40, bio = 100, rad = 30) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
slowdown = 2 slowdown = 2
offline_slowdown = 4 offline_slowdown = 4
@@ -131,7 +155,15 @@
desc = "A favorite of Coalition rangers, the Gunslinger suit is a sturdy hardsuit meant to provide the user absolute situational awareness." desc = "A favorite of Coalition rangers, the Gunslinger suit is a sturdy hardsuit meant to provide the user absolute situational awareness."
icon_state = "gunslinger" icon_state = "gunslinger"
suit_type = "gunslinger hardsuit" suit_type = "gunslinger hardsuit"
armor = list(melee = 50, bullet = 60, laser = 40, energy = 30, bomb = 30, bio = 100, rad = 60) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
siemens_coefficient = 0.1 siemens_coefficient = 0.1
offline_slowdown = 2 offline_slowdown = 2
offline_vision_restriction = TINT_HEAVY offline_vision_restriction = TINT_HEAVY
@@ -171,7 +203,15 @@
desc = "An expensive hardsuit utilized by Eridani security contractors to field heavy weapons and coordinate non-lethal takedowns directly. Usually seen spearheading police raids." desc = "An expensive hardsuit utilized by Eridani security contractors to field heavy weapons and coordinate non-lethal takedowns directly. Usually seen spearheading police raids."
icon_state = "strikesuit" icon_state = "strikesuit"
suit_type = "strike hardsuit" suit_type = "strike hardsuit"
armor = list(melee = 80, bullet = 45, laser = 45, energy = 25, bomb = 25, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
siemens_coefficient = 0.1 siemens_coefficient = 0.1
offline_slowdown = 2 offline_slowdown = 2
offline_vision_restriction = TINT_HEAVY offline_vision_restriction = TINT_HEAVY
@@ -213,7 +253,15 @@
desc = "An advanced Elyran hardsuit specialized in scorched earth tactics." desc = "An advanced Elyran hardsuit specialized in scorched earth tactics."
icon_state = "elyran_rig" icon_state = "elyran_rig"
suit_type = "elyran battlesuit" suit_type = "elyran battlesuit"
armor = list(melee = 60, bullet = 40, laser = 60, energy = 60, bomb = 25, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_MAJOR,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
siemens_coefficient = 0.1 siemens_coefficient = 0.1
offline_slowdown = 2 offline_slowdown = 2
offline_vision_restriction = TINT_HEAVY offline_vision_restriction = TINT_HEAVY
@@ -255,7 +303,15 @@
desc = "A powerful niche-function hardsuit utilized by Ceres' Lance to apprehend synthetics. Unstoppable in the right circumstances, and nothing more than a burden anywhere else." desc = "A powerful niche-function hardsuit utilized by Ceres' Lance to apprehend synthetics. Unstoppable in the right circumstances, and nothing more than a burden anywhere else."
icon_state = "bunker" icon_state = "bunker"
suit_type = "bunker suit" suit_type = "bunker suit"
armor = list(melee = 80, bullet = 80, laser = 80, energy = 80, bomb = 25, bio = 25, rad = 25) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_RIFLE,
laser = ARMOR_LASER_RIFLES,
energy = ARMOR_ENERGY_SHIELDED,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SMALL
)
offline_vision_restriction = TINT_HEAVY offline_vision_restriction = TINT_HEAVY
emp_protection = -30 emp_protection = -30
slowdown = 8 slowdown = 8
@@ -284,7 +340,15 @@
desc = "An off-shoot of the core Bunker Suit design, utilized by the Imperial Dominian military and painted accordingly. This is a powerful suit specializing in melee confrontations." desc = "An off-shoot of the core Bunker Suit design, utilized by the Imperial Dominian military and painted accordingly. This is a powerful suit specializing in melee confrontations."
icon_state = "jinxiang" icon_state = "jinxiang"
suit_type = "jinxiang combat suit" suit_type = "jinxiang combat suit"
armor = list(melee = 80, bullet = 40, laser = 30, energy = 20, bomb = 15, bio = 100, rad = 25) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_MINOR,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SMALL
)
offline_vision_restriction = TINT_HEAVY offline_vision_restriction = TINT_HEAVY
offline_slowdown = 10 offline_slowdown = 10

View File

@@ -10,7 +10,15 @@
emp_protection = 35 emp_protection = 35
helm_type = /obj/item/clothing/head/helmet/space/rig/ert helm_type = /obj/item/clothing/head/helmet/space/rig/ert
req_access = list(access_cent_specops) req_access = list(access_cent_specops)
armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 30, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
siemens_coefficient = 0.1 siemens_coefficient = 0.1
allowed = list( allowed = list(
/obj/item/device/flashlight, /obj/item/tank, /obj/item/device/t_scanner, /obj/item/rfd/construction, /obj/item/crowbar, \ /obj/item/device/flashlight, /obj/item/tank, /obj/item/device/t_scanner, /obj/item/rfd/construction, /obj/item/crowbar, \
@@ -33,7 +41,15 @@
suit_type = "ERT engineer" suit_type = "ERT engineer"
icon_state = "ert_engineer_rig" icon_state = "ert_engineer_rig"
emp_protection = 30 emp_protection = 30
armor = list(melee = 55, bullet = 45, laser = 30, energy = 15, bomb = 30, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
glove_type = /obj/item/clothing/gloves/rig/eva glove_type = /obj/item/clothing/gloves/rig/eva
initial_modules = list( initial_modules = list(
/obj/item/rig_module/ai_container, /obj/item/rig_module/ai_container,
@@ -51,7 +67,15 @@
suit_type = "ERT medic" suit_type = "ERT medic"
icon_state = "ert_medical_rig" icon_state = "ert_medical_rig"
emp_protection = 30 emp_protection = 30
armor = list(melee = 55, bullet = 45, laser = 30, energy = 15, bomb = 30, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
initial_modules = list( initial_modules = list(
/obj/item/rig_module/ai_container, /obj/item/rig_module/ai_container,
/obj/item/rig_module/vision/medhud, /obj/item/rig_module/vision/medhud,
@@ -69,7 +93,15 @@
suit_type = "ERT security" suit_type = "ERT security"
icon_state = "ert_security_rig" icon_state = "ert_security_rig"
emp_protection = 30 emp_protection = 30
armor = list(melee = 65, bullet = 55, laser = 40, energy = 15, bomb = 30, bio = 100, rad = 80) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
initial_modules = list( initial_modules = list(
/obj/item/rig_module/ai_container, /obj/item/rig_module/ai_container,
/obj/item/rig_module/vision/sechud, /obj/item/rig_module/vision/sechud,
@@ -93,7 +125,15 @@
/obj/item/rig_module/device/decompiler, /obj/item/rig_module/device/decompiler,
/obj/item/rig_module/actuators /obj/item/rig_module/actuators
) )
armor = list(melee = 55, bullet = 45, laser = 30, energy = 15, bomb = 30, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
allowed_module_types = MODULE_GENERAL | MODULE_LIGHT_COMBAT | MODULE_HEAVY_COMBAT | MODULE_SPECIAL allowed_module_types = MODULE_GENERAL | MODULE_LIGHT_COMBAT | MODULE_HEAVY_COMBAT | MODULE_SPECIAL
/obj/item/rig/ert/assetprotection /obj/item/rig/ert/assetprotection
@@ -101,7 +141,15 @@
desc = "A heavy suit worn by the highest level of Asset Protection, don't mess with the person wearing this. Armored and space ready." desc = "A heavy suit worn by the highest level of Asset Protection, don't mess with the person wearing this. Armored and space ready."
suit_type = "heavy asset protection" suit_type = "heavy asset protection"
icon_state = "asset_protection_rig" icon_state = "asset_protection_rig"
armor = list(melee = 80, bullet = 75, laser = 60, energy = 40, bomb = 80, bio = 100, rad =100) armor = list(
melee = ARMOR_MELEE_SHIELDED,
bullet = ARMOR_BALLISTIC_RIFLE,
laser = ARMOR_LASER_RIFLES,
energy = ARMOR_ENERGY_STRONG,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
slowdown = 0 slowdown = 0
emp_protection = 50 emp_protection = 50

View File

@@ -5,7 +5,13 @@
icon_state = "ninja_rig" icon_state = "ninja_rig"
suit_type = "light suit" suit_type = "light suit"
allowed = list(/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/cell,/obj/item/material/twohanded/fireaxe) allowed = list(/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/cell,/obj/item/material/twohanded/fireaxe)
armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_MAJOR,
energy = ARMOR_MELEE_MINOR,
bomb = ARMOR_BOMB_PADDED
)
emp_protection = 10 emp_protection = 10
slowdown = 0 slowdown = 0
item_flags = STOPPRESSUREDAMAGE | THICKMATERIAL item_flags = STOPPRESSUREDAMAGE | THICKMATERIAL
@@ -92,7 +98,15 @@
suit_type = "stealth suit" suit_type = "stealth suit"
desc = "A unique, vacuum-proof suit of nano-enhanced armor designed specifically for stealth operations." desc = "A unique, vacuum-proof suit of nano-enhanced armor designed specifically for stealth operations."
icon_state = "ninja_rig" icon_state = "ninja_rig"
armor = list(melee = 50, bullet = 45, laser = 45, energy = 30, bomb = 35, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
emp_protection = 40 emp_protection = 40
slowdown = 0 slowdown = 0
@@ -158,7 +172,15 @@
suit_type = "stealth" suit_type = "stealth"
desc = "A highly advanced and expensive suit designed for covert operations." desc = "A highly advanced and expensive suit designed for covert operations."
icon_state = "stealth_rig" icon_state = "stealth_rig"
armor = list(melee = 45, bullet = 20, laser = 50, energy = 10, bomb = 25, bio = 30, rad = 20) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_MAJOR,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SMALL,
rad = ARMOR_RAD_SMALL
)
req_access = list(access_syndicate) req_access = list(access_syndicate)
@@ -175,7 +197,10 @@
desc = "A compact exoskeleton that hugs the body tightly and has various inbuilt utilities for life support." desc = "A compact exoskeleton that hugs the body tightly and has various inbuilt utilities for life support."
icon_state = "offworlder_rig" icon_state = "offworlder_rig"
allowed = list(/obj/item/tank, /obj/item/device/flashlight) allowed = list(/obj/item/tank, /obj/item/device/flashlight)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 5, rad = 5) armor = list(
bio = ARMOR_BIO_MINOR,
rad = ARMOR_RAD_MINOR
)
airtight = 0 airtight = 0
seal_delay = 5 seal_delay = 5
helm_type = /obj/item/clothing/head/lightrig/offworlder helm_type = /obj/item/clothing/head/lightrig/offworlder
@@ -207,7 +232,15 @@
desc = "A sleek hardsuit used by the Coalition forces of the Techno-Conglomerate." desc = "A sleek hardsuit used by the Coalition forces of the Techno-Conglomerate."
icon_state = "techno_rig" icon_state = "techno_rig"
suit_type = "techno-conglomerate mobility hardsuit" suit_type = "techno-conglomerate mobility hardsuit"
armor = list(melee = 40, bullet = 20, laser = 30, energy = 15, bomb = 40, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
item_flags = STOPPRESSUREDAMAGE | THICKMATERIAL item_flags = STOPPRESSUREDAMAGE | THICKMATERIAL
slowdown = -1 slowdown = -1
offline_slowdown = 0 offline_slowdown = 0

View File

@@ -8,7 +8,15 @@
desc = "A blood-red hardsuit featuring some fairly illegal technology." desc = "A blood-red hardsuit featuring some fairly illegal technology."
icon_state = "merc_rig" icon_state = "merc_rig"
suit_type = "crimson hardsuit" suit_type = "crimson hardsuit"
armor = list(melee = 80, bullet = 65, laser = 50, energy = 15, bomb = 80, bio = 100, rad = 60) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_RIFLE,
laser = ARMOR_LASER_MAJOR,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SMALL
)
siemens_coefficient = 0.1 siemens_coefficient = 0.1
offline_slowdown = 3 offline_slowdown = 3
offline_vision_restriction = TINT_HEAVY offline_vision_restriction = TINT_HEAVY
@@ -64,7 +72,15 @@
desc = "A combat hardsuit utilized by many private military companies, packing some seriously heavy plating." desc = "A combat hardsuit utilized by many private military companies, packing some seriously heavy plating."
icon_state = "rhino" icon_state = "rhino"
suit_type = "rhino hardsuit" suit_type = "rhino hardsuit"
armor = list(melee = 80, bullet = 75, laser = 30, energy = 15, bomb = 80, bio = 100, rad = 60) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_RIFLE,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SMALL
)
siemens_coefficient = 0.1 siemens_coefficient = 0.1
offline_slowdown = 3 offline_slowdown = 3
offline_vision_restriction = TINT_HEAVY offline_vision_restriction = TINT_HEAVY

View File

@@ -65,7 +65,15 @@
suit_type = "industrial hardsuit" suit_type = "industrial hardsuit"
desc = "A heavy, powerful hardsuit used by construction crews and mining corporations." desc = "A heavy, powerful hardsuit used by construction crews and mining corporations."
icon_state = "industrial_rig" icon_state = "industrial_rig"
armor = list(melee = 60, bullet = 40, laser = 30, energy = 15, bomb = 30, bio = 100, rad = 50) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_MINOR,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
slowdown = 2 slowdown = 2
offline_slowdown = 7 offline_slowdown = 7
@@ -104,7 +112,15 @@
suit_type = "EVA hardsuit" suit_type = "EVA hardsuit"
desc = "A light hardsuit for repairs and maintenance to the outside of habitats and vessels." desc = "A light hardsuit for repairs and maintenance to the outside of habitats and vessels."
icon_state = "eva_rig" icon_state = "eva_rig"
armor = list(melee = 30, bullet = 10, laser = 20, energy = 25, bomb = 20, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_MINOR,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
slowdown = 0 slowdown = 0
offline_slowdown = 3 offline_slowdown = 3
offline_vision_restriction = TINT_HEAVY offline_vision_restriction = TINT_HEAVY
@@ -140,12 +156,19 @@
camera = /obj/machinery/camera/network/mercenary camera = /obj/machinery/camera/network/mercenary
/obj/item/rig/ce /obj/item/rig/ce
name = "advanced voidsuit control module" name = "advanced voidsuit control module"
suit_type = "advanced voidsuit" suit_type = "advanced voidsuit"
desc = "An advanced voidsuit that protects against hazardous, low pressure environments. Shines with a high polish." desc = "An advanced voidsuit that protects against hazardous, low pressure environments. Shines with a high polish."
icon_state = "ce_rig" icon_state = "ce_rig"
armor = list(melee = 40, bullet = 10, laser = 30,energy = 25, bomb = 40, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
slowdown = 0 slowdown = 0
offline_slowdown = 3 offline_slowdown = 3
offline_vision_restriction = 0 offline_vision_restriction = 0
@@ -177,12 +200,19 @@
siemens_coefficient = 0 siemens_coefficient = 0
/obj/item/rig/hazmat /obj/item/rig/hazmat
name = "AMI control module" name = "AMI control module"
suit_type = "hazmat hardsuit" suit_type = "hazmat hardsuit"
desc = "An Anomalous Material Interaction hardsuit that protects against the strangest energies the universe can throw at it." desc = "An Anomalous Material Interaction hardsuit that protects against the strangest energies the universe can throw at it."
icon_state = "hazmat_rig" icon_state = "hazmat_rig"
armor = list(melee = 45, bullet = 5, laser = 40, energy = 65, bomb = 60, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_STRONG,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
siemens_coefficient = 0.50 siemens_coefficient = 0.50
offline_vision_restriction = TINT_HEAVY offline_vision_restriction = TINT_HEAVY
emp_protection = 40 emp_protection = 40
@@ -211,7 +241,15 @@
suit_type = "rescue hardsuit" suit_type = "rescue hardsuit"
desc = "A durable suit designed for medical rescue in high risk areas." desc = "A durable suit designed for medical rescue in high risk areas."
icon_state = "medical_rig" icon_state = "medical_rig"
armor = list(melee = 30, bullet = 15, laser = 20, energy = 60, bomb = 30, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
siemens_coefficient = 0.50 siemens_coefficient = 0.50
slowdown = 0 slowdown = 0
offline_slowdown = 2 offline_slowdown = 2
@@ -243,7 +281,15 @@
suit_type = "hazard hardsuit" suit_type = "hazard hardsuit"
desc = "A security hardsuit designed for prolonged EVA in dangerous environments." desc = "A security hardsuit designed for prolonged EVA in dangerous environments."
icon_state = "hazard_rig" icon_state = "hazard_rig"
armor = list(melee = 60, bullet = 45, laser = 30, energy = 15, bomb = 60, bio = 100, rad = 45) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
offline_slowdown = 3 offline_slowdown = 3
offline_vision_restriction = TINT_HEAVY offline_vision_restriction = TINT_HEAVY
@@ -279,7 +325,15 @@
suit_type = "diving suit" suit_type = "diving suit"
desc = "A heavy hardsuit designated for operations under the water, you are not sure what it is doing here however." desc = "A heavy hardsuit designated for operations under the water, you are not sure what it is doing here however."
icon_state = "diving_rig" icon_state = "diving_rig"
armor = list(melee = 30, bullet = 10, laser = 20, energy = 25, bomb = 20, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
slowdown = 3 slowdown = 3
offline_slowdown = 4 offline_slowdown = 4
offline_vision_restriction = TINT_HEAVY offline_vision_restriction = TINT_HEAVY

View File

@@ -3,8 +3,16 @@
desc = "A robust synth exoskeleton outfitted with state of the art infiltration tools. Creepy." desc = "A robust synth exoskeleton outfitted with state of the art infiltration tools. Creepy."
icon_state = "terminator_rig" icon_state = "terminator_rig"
suit_type = "synthetic exoskeleton" suit_type = "synthetic exoskeleton"
armor = list(melee = 80, bullet = 75, laser = 60, energy = 15, bomb = 80, bio = 100, rad = 30) armor = list(
siemens_coefficient = 0.0 // Ok this is the only exception. Got it? Good. melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_RIFLE,
laser = ARMOR_LASER_RIFLES,
energy = ARMOR_MELEE_MINOR,
bomb = ARMOR_BOMB_SHIELDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
siemens_coefficient = 0 // Ok this is the only exception. Got it? Good.
offline_slowdown = 3 offline_slowdown = 3
offline_vision_restriction = TINT_HEAVY offline_vision_restriction = TINT_HEAVY
has_sealed_state = TRUE has_sealed_state = TRUE

View File

@@ -12,7 +12,10 @@
slot_r_hand_str = "s_helmet" slot_r_hand_str = "s_helmet"
) )
permeability_coefficient = 0.01 permeability_coefficient = 0.01
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50) armor = list(
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SMALL
)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR
body_parts_covered = HEAD|FACE|EYES body_parts_covered = HEAD|FACE|EYES
cold_protection = HEAD cold_protection = HEAD
@@ -41,8 +44,11 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
allowed = list(/obj/item/device/flashlight,/obj/item/tank/emergency_oxygen,/obj/item/device/suit_cooling_unit) allowed = list(/obj/item/device/flashlight,/obj/item/tank/emergency_oxygen,/obj/item/device/suit_cooling_unit)
slowdown = 3 slowdown = 3
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 50) armor = list(
flags_inv = HIDEWRISTS|HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SMALL
)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
siemens_coefficient = 0.5 siemens_coefficient = 0.5

View File

@@ -4,7 +4,15 @@
icon_state = "syndicate" icon_state = "syndicate"
item_state = "syndicate" item_state = "syndicate"
desc = "A crimson helmet sporting clean lines and durable plating. Engineered to look menacing." desc = "A crimson helmet sporting clean lines and durable plating. Engineered to look menacing."
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SMALL,
rad = ARMOR_RAD_MINOR
)
siemens_coefficient = 0.5 siemens_coefficient = 0.5
brightness_on = 6 brightness_on = 6
@@ -16,7 +24,15 @@
w_class = ITEMSIZE_NORMAL w_class = ITEMSIZE_NORMAL
allowed = list(/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs,/obj/item/tank/emergency_oxygen) allowed = list(/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs,/obj/item/tank/emergency_oxygen)
slowdown = 1 slowdown = 1
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SMALL,
rad = ARMOR_RAD_MINOR
)
siemens_coefficient = 0.5 siemens_coefficient = 0.5

View File

@@ -1,7 +1,15 @@
/obj/item/clothing/head/helmet/space/void/skrell /obj/item/clothing/head/helmet/space/void/skrell
name = "skrellian helmet" name = "skrellian helmet"
desc = "Smoothly contoured and polished to a shine. Still looks like a fishbowl." desc = "Smoothly contoured and polished to a shine. Still looks like a fishbowl."
armor = list(melee = 20, bullet = 10, laser = 20,energy = 50, bomb = 50, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_KNIVES,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_MINOR,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE
species_restricted = list(BODYTYPE_SKRELL,BODYTYPE_HUMAN) species_restricted = list(BODYTYPE_SKRELL,BODYTYPE_HUMAN)
siemens_coefficient = 0.5 siemens_coefficient = 0.5
@@ -16,7 +24,15 @@
/obj/item/clothing/suit/space/void/skrell /obj/item/clothing/suit/space/void/skrell
name = "skrellian voidsuit" name = "skrellian voidsuit"
desc = "Seems like a wetsuit with reinforced plating seamlessly attached to it. Very chic." desc = "Seems like a wetsuit with reinforced plating seamlessly attached to it. Very chic."
armor = list(melee = 20, bullet = 10, laser = 20,energy = 50, bomb = 50, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_KNIVES,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_MINOR,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/pickaxe, /obj/item/rfd/construction) allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/pickaxe, /obj/item/rfd/construction)
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE
@@ -38,7 +54,15 @@
desc = "A tajaran helmet used by the crew of the Republican Orbital Fleet." desc = "A tajaran helmet used by the crew of the Republican Orbital Fleet."
icon_state = "cosmo_suit" icon_state = "cosmo_suit"
item_state = "cosmo_suit" item_state = "cosmo_suit"
armor = list(melee = 50, bullet = 50, laser = 30, energy = 15, bomb = 40, bio = 100, rad = 60) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
species_restricted = list(BODYTYPE_TAJARA) species_restricted = list(BODYTYPE_TAJARA)
refittable = FALSE refittable = FALSE
desc_fluff = "The People's Republic of Adhomai enjoys having the only militarized spaceships of all the factions on Adhomai. Initially they relied on contracting outside \ desc_fluff = "The People's Republic of Adhomai enjoys having the only militarized spaceships of all the factions on Adhomai. Initially they relied on contracting outside \
@@ -51,7 +75,15 @@
desc = "A tajaran voidsuit used by the crew of the Republican Orbital Fleet." desc = "A tajaran voidsuit used by the crew of the Republican Orbital Fleet."
icon_state = "cosmo_suit" icon_state = "cosmo_suit"
item_state = "cosmo_suit" item_state = "cosmo_suit"
armor = list(melee = 50, bullet = 50, laser = 30, energy = 15, bomb = 40, bio = 100, rad = 60) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
allowed = list(/obj/item/tank,/obj/item/device/flashlight,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs) allowed = list(/obj/item/tank,/obj/item/device/flashlight,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs)
species_restricted = list(BODYTYPE_TAJARA) species_restricted = list(BODYTYPE_TAJARA)
refittable = FALSE refittable = FALSE

View File

@@ -4,7 +4,15 @@
icon_state = "capspace" icon_state = "capspace"
item_state = "capspace" item_state = "capspace"
desc = "A special helmet designed for work in a hazardous, low-pressure environment. Only for the most fashionable of military figureheads." desc = "A special helmet designed for work in a hazardous, low-pressure environment. Only for the most fashionable of military figureheads."
armor = list(melee = 65, bullet = 50, laser = 50,energy = 25, bomb = 50, bio = 100, rad = 50) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
/obj/item/clothing/suit/space/void/captain /obj/item/clothing/suit/space/void/captain
@@ -19,5 +27,13 @@
w_class = ITEMSIZE_LARGE w_class = ITEMSIZE_LARGE
allowed = list(/obj/item/tank, /obj/item/device/flashlight,/obj/item/gun/energy, /obj/item/gun/projectile, /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/melee/baton,/obj/item/handcuffs) allowed = list(/obj/item/tank, /obj/item/device/flashlight,/obj/item/gun/energy, /obj/item/gun/projectile, /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/melee/baton,/obj/item/handcuffs)
slowdown = 1.5 slowdown = 1.5
armor = list(melee = 65, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35

View File

@@ -8,7 +8,15 @@
slot_l_hand_str = "syndie_helm", slot_l_hand_str = "syndie_helm",
slot_r_hand_str = "syndie_helm" slot_r_hand_str = "syndie_helm"
) )
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 60) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_MAJOR,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SMALL
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP) species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP)
light_overlay = "merc_voidsuit_lights" light_overlay = "merc_voidsuit_lights"
@@ -27,7 +35,15 @@
) )
slowdown = 1 slowdown = 1
w_class = ITEMSIZE_NORMAL w_class = ITEMSIZE_NORMAL
armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 60) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_MAJOR,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SMALL
)
allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs) allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_SKRELL, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP) species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_SKRELL, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP)

View File

@@ -3,7 +3,15 @@
desc = "A sleek black space helmet designed for combat. Looks to be uniform with Sol Alliance colors." desc = "A sleek black space helmet designed for combat. Looks to be uniform with Sol Alliance colors."
icon_state = "sol_helmet" icon_state = "sol_helmet"
item_state = "sol_helmet" item_state = "sol_helmet"
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 60) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN) species_restricted = list(BODYTYPE_HUMAN)
@@ -16,7 +24,15 @@
icon_state = "sol_suit" icon_state = "sol_suit"
item_state = "sol_suit" item_state = "sol_suit"
slowdown = 1 slowdown = 1
armor = list(melee = 70, bullet = 55, laser = 45, energy = 15, bomb = 40, bio = 100, rad = 60) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs) allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN) species_restricted = list(BODYTYPE_HUMAN)
@@ -27,7 +43,15 @@
desc = "A helmet resembling an avian, built for the Human head. Heavy and plated with plasteel across its faces." desc = "A helmet resembling an avian, built for the Human head. Heavy and plated with plasteel across its faces."
icon_state = "vulture" icon_state = "vulture"
item_state = "vulture" item_state = "vulture"
armor = list(melee = 80, bullet = 70, laser = 20, energy = 5, bomb = 5, bio = 100, rad = 30) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN) species_restricted = list(BODYTYPE_HUMAN)
@@ -40,7 +64,15 @@
icon_state = "vulture" icon_state = "vulture"
item_state = "vulture" item_state = "vulture"
slowdown = 3 slowdown = 3
armor = list(melee = 80, bullet = 70, laser = 20, energy = 5, bomb = 5, bio = 100, rad = 30) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs) allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN) species_restricted = list(BODYTYPE_HUMAN)
@@ -52,7 +84,15 @@
desc = "A silvery chrome, single visor space helmet with built-in peripherals and very bright fore lighting. A favorite of bounty hunters." desc = "A silvery chrome, single visor space helmet with built-in peripherals and very bright fore lighting. A favorite of bounty hunters."
icon_state = "eridani_suit" icon_state = "eridani_suit"
item_state = "eridani_suit" item_state = "eridani_suit"
armor = list(melee = 50, bullet = 50, laser = 40, energy = 50, bomb = 50, bio = 100, rad = 30) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN) species_restricted = list(BODYTYPE_HUMAN)
w_class = ITEMSIZE_NORMAL w_class = ITEMSIZE_NORMAL
@@ -64,7 +104,15 @@
desc = "A silvery chrome voidsuit with neon highlights. Utilized by Eridani private military and police." desc = "A silvery chrome voidsuit with neon highlights. Utilized by Eridani private military and police."
icon_state = "eridani_suit" icon_state = "eridani_suit"
item_state = "eridani_suit" item_state = "eridani_suit"
armor = list(melee = 50, bullet = 50, laser = 40, energy = 40, bomb = 50, bio = 100, rad = 30) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BOMB_RESISTANT,
rad = ARMOR_RAD_RESISTANT
)
allowed = list(/obj/item/tank,/obj/item/device/flashlight,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs) allowed = list(/obj/item/tank,/obj/item/device/flashlight,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN) species_restricted = list(BODYTYPE_HUMAN)
@@ -75,7 +123,15 @@
desc = "A slot-eyed space helmet, sleek and designed for military purposes. Colored in Elyran military camouflage." desc = "A slot-eyed space helmet, sleek and designed for military purposes. Colored in Elyran military camouflage."
icon_state = "valkyrie" icon_state = "valkyrie"
item_state = "valkyrie" item_state = "valkyrie"
armor = list(melee = 60, bullet = 30, laser = 50, energy = 40, bomb = 60, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_SHIELDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN) species_restricted = list(BODYTYPE_HUMAN)
max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE + 10000 max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE + 10000
@@ -87,7 +143,15 @@
desc = "A pricey specialist voidsuit designed for atmospheric long jumping and combat. Colored in Elyran military camouflage." desc = "A pricey specialist voidsuit designed for atmospheric long jumping and combat. Colored in Elyran military camouflage."
icon_state = "valkyrie" icon_state = "valkyrie"
item_state = "valkyrie" item_state = "valkyrie"
armor = list(melee = 60, bullet = 30, laser = 50, energy = 40, bomb = 60, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_SHIELDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
allowed = list(/obj/item/tank,/obj/item/device/flashlight,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs) allowed = list(/obj/item/tank,/obj/item/device/flashlight,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN) species_restricted = list(BODYTYPE_HUMAN)
@@ -99,7 +163,15 @@
desc = "A sleek helmet with a bright yellow visor, expertly made in and colored in the iconic branding of Ceres' Lance." desc = "A sleek helmet with a bright yellow visor, expertly made in and colored in the iconic branding of Ceres' Lance."
icon_state = "lancer_suit" icon_state = "lancer_suit"
item_state = "lancer_suit" item_state = "lancer_suit"
armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 60) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN) species_restricted = list(BODYTYPE_HUMAN)
refittable = FALSE refittable = FALSE
@@ -111,7 +183,15 @@
item_state = "lancer_suit" item_state = "lancer_suit"
slowdown = 1 slowdown = 1
w_class = ITEMSIZE_NORMAL w_class = ITEMSIZE_NORMAL
armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 60) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs) allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN) species_restricted = list(BODYTYPE_HUMAN)
@@ -126,7 +206,15 @@
item_state = "bansheehelm" item_state = "bansheehelm"
contained_sprite = 1 contained_sprite = 1
armor = list(melee = 35, bullet = 35, laser = 75,energy = 55, bomb = 25, bio = 100, rad = 10) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_RIFLES,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_MINOR
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP) species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP)
light_overlay = "helmet_light_banshee" light_overlay = "helmet_light_banshee"
@@ -144,7 +232,15 @@
contained_sprite = 1 contained_sprite = 1
slowdown = 1 slowdown = 1
armor = list(melee = 35, bullet = 35, laser = 75,energy = 55, bomb = 25, bio = 100, rad = 10) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_RIFLES,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_MINOR
)
allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs) allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP) species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP)
@@ -160,7 +256,15 @@
item_state = "dragonhelm" item_state = "dragonhelm"
contained_sprite = 1 contained_sprite = 1
armor = list(melee = 45, bullet = 15, laser = 35,energy = 25, bomb = 55, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP) species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP)
light_overlay = "helmet_light_dragon" light_overlay = "helmet_light_dragon"
@@ -178,7 +282,15 @@
contained_sprite = 1 contained_sprite = 1
slowdown = 1 slowdown = 1
armor = list(melee = 60, bullet = 15, laser = 35,energy = 25, bomb = 55, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs) allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP) species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP)
@@ -194,7 +306,15 @@
item_state = "caimanhelm" item_state = "caimanhelm"
contained_sprite = 1 contained_sprite = 1
armor = list(melee = 75, bullet = 45, laser = 15,energy = 25, bomb = 75, bio = 100, rad = 15) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_MINOR
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN) species_restricted = list(BODYTYPE_HUMAN)
light_overlay = "helmet_light_caiman" light_overlay = "helmet_light_caiman"
@@ -212,7 +332,15 @@
contained_sprite = 1 contained_sprite = 1
slowdown = 2 slowdown = 2
armor = list(melee = 75, bullet = 45, laser = 15,energy = 25, bomb = 75, bio = 100, rad = 15) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_MINOR
)
allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs) allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN) species_restricted = list(BODYTYPE_HUMAN)
@@ -228,7 +356,15 @@
item_state = "revenanthelm" item_state = "revenanthelm"
contained_sprite = 1 contained_sprite = 1
armor = list(melee = 25, bullet = 65, laser = 35,energy = 25, bomb = 15, bio = 100, rad = 15) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_MINOR
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN) species_restricted = list(BODYTYPE_HUMAN)
light_overlay = "helmet_light_revenant" light_overlay = "helmet_light_revenant"
@@ -245,7 +381,15 @@
contained_sprite = 1 contained_sprite = 1
w_class = ITEMSIZE_NORMAL w_class = ITEMSIZE_NORMAL
armor = list(melee = 25, bullet = 65, laser = 35,energy = 25, bomb = 15, bio = 100, rad = 15) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_MINOR
)
allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs) allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN) species_restricted = list(BODYTYPE_HUMAN)
@@ -257,7 +401,15 @@
desc = "An older design of special operations voidsuit helmet utilized by private military corporations." desc = "An older design of special operations voidsuit helmet utilized by private military corporations."
icon_state = "rig0-freelancer" icon_state = "rig0-freelancer"
armor = list(melee = 65, bullet = 55, laser = 20,energy = 15, bomb = 35, bio = 100, rad = 60) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP) species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP)
light_overlay = "freelancer_light" light_overlay = "freelancer_light"
@@ -272,7 +424,15 @@
slowdown = 1 slowdown = 1
w_class = ITEMSIZE_NORMAL w_class = ITEMSIZE_NORMAL
armor = list(melee = 65, bullet = 55, laser = 20, energy = 15, bomb = 35, bio = 100, rad = 60) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs) allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_SKRELL, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP) species_restricted = list(BODYTYPE_HUMAN, BODYTYPE_SKRELL, BODYTYPE_IPC_INDUSTRIAL, BODYTYPE_IPC_ZENGHU, BODYTYPE_IPC_BISHOP)
@@ -284,7 +444,15 @@
icon_override = 'icons/mob/species/unathi/helmet.dmi' icon_override = 'icons/mob/species/unathi/helmet.dmi'
icon_state = "rig0-kataphract" icon_state = "rig0-kataphract"
item_state = "rig0-kataphract" item_state = "rig0-kataphract"
armor = list(melee = 75, bullet = 45, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 80) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_UNATHI) species_restricted = list(BODYTYPE_UNATHI)
refittable = FALSE refittable = FALSE
@@ -298,7 +466,15 @@
item_state = "rig-kataphract" item_state = "rig-kataphract"
slowdown = 1 slowdown = 1
w_class = ITEMSIZE_NORMAL w_class = ITEMSIZE_NORMAL
armor = list(melee = 75, bullet = 45, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 80) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs) allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_UNATHI) species_restricted = list(BODYTYPE_UNATHI)
@@ -336,7 +512,15 @@
item_state = "prejoroubhelm" item_state = "prejoroubhelm"
contained_sprite = 1 contained_sprite = 1
armor = list(melee = 65, bullet = 55, laser = 25,energy = 25, bomb = 15, bio = 100, rad = 15) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_MINOR,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_MINOR
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN) species_restricted = list(BODYTYPE_HUMAN)
brightness_on = 6 brightness_on = 6
@@ -350,7 +534,15 @@
contained_sprite = 1 contained_sprite = 1
w_class = ITEMSIZE_NORMAL w_class = ITEMSIZE_NORMAL
armor = list(melee = 65, bullet = 55, laser = 25,energy = 25, bomb = 15, bio = 100, rad = 15) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_MINOR,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_MINOR
)
allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs) allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword,/obj/item/handcuffs)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
species_restricted = list(BODYTYPE_HUMAN) species_restricted = list(BODYTYPE_HUMAN)

View File

@@ -8,7 +8,14 @@
slot_l_hand_str = "eng_helm", slot_l_hand_str = "eng_helm",
slot_r_hand_str = "eng_helm" slot_r_hand_str = "eng_helm"
) )
armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 80) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
light_overlay = "helmet_light_dual_low" light_overlay = "helmet_light_dual_low"
brightness_on = 6 brightness_on = 6
@@ -22,7 +29,14 @@
slot_l_hand_str = "eng_hardsuit", slot_l_hand_str = "eng_hardsuit",
slot_r_hand_str = "eng_hardsuit" slot_r_hand_str = "eng_hardsuit"
) )
armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 80) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/pickaxe,/obj/item/material/twohanded/fireaxe,/obj/item/rfd/construction) allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/pickaxe,/obj/item/material/twohanded/fireaxe,/obj/item/rfd/construction)
//Mining rig //Mining rig
@@ -34,7 +48,14 @@
slot_l_hand_str = "mining_helm", slot_l_hand_str = "mining_helm",
slot_r_hand_str = "mining_helm" slot_r_hand_str = "mining_helm"
) )
armor = list(melee = 50, bullet = 5, laser = 20,energy = 5, bomb = 55, bio = 100, rad = 20) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_MINOR,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_MINOR
)
light_overlay = "merc_voidsuit_lights" light_overlay = "merc_voidsuit_lights"
brightness_on = 6 brightness_on = 6
@@ -47,7 +68,14 @@
desc = "A special suit that protects against hazardous, low pressure environments. Has reinforced plating." desc = "A special suit that protects against hazardous, low pressure environments. Has reinforced plating."
item_state = "rig-mining" item_state = "rig-mining"
icon_state = "rig-mining" icon_state = "rig-mining"
armor = list(melee = 50, bullet = 5, laser = 20,energy = 5, bomb = 55, bio = 100, rad = 20) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_MINOR,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_MINOR
)
allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/storage/bag/ore,/obj/item/pickaxe, /obj/item/gun/custom_ka, /obj/item/gun/energy/vaurca/thermaldrill,/obj/item/rfd/mining) allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/storage/bag/ore,/obj/item/pickaxe, /obj/item/gun/custom_ka, /obj/item/gun/energy/vaurca/thermaldrill,/obj/item/rfd/mining)
//Medical Rig //Medical Rig
@@ -59,7 +87,13 @@
slot_l_hand_str = "medical_helm", slot_l_hand_str = "medical_helm",
slot_r_hand_str = "medical_helm" slot_r_hand_str = "medical_helm"
) )
armor = list(melee = 30, bullet = 5, laser = 20,energy = 5, bomb = 25, bio = 100, rad = 50) armor = list(
melee = ARMOR_MELEE_KNIVES,
laser = ARMOR_LASER_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SMALL
)
light_overlay = "helmet_light_dual_low" light_overlay = "helmet_light_dual_low"
brightness_on = 6 brightness_on = 6
@@ -72,8 +106,14 @@
slot_l_hand_str = "medical_hardsuit", slot_l_hand_str = "medical_hardsuit",
slot_r_hand_str = "medical_hardsuit" slot_r_hand_str = "medical_hardsuit"
) )
armor = list(
melee = ARMOR_MELEE_KNIVES,
laser = ARMOR_LASER_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SMALL
)
allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical,/obj/item/device/breath_analyzer,/obj/item/material/twohanded/fireaxe) allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical,/obj/item/device/breath_analyzer,/obj/item/material/twohanded/fireaxe)
armor = list(melee = 30, bullet = 5, laser = 20,energy = 5, bomb = 25, bio = 100, rad = 50)
//Security //Security
/obj/item/clothing/head/helmet/space/void/security /obj/item/clothing/head/helmet/space/void/security
@@ -84,7 +124,14 @@
slot_l_hand_str = "sec_helm", slot_l_hand_str = "sec_helm",
slot_r_hand_str = "sec_helm" slot_r_hand_str = "sec_helm"
) )
armor = list(melee = 50, bullet = 15, laser = 30, energy = 5, bomb = 45, bio = 100, rad = 10) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_MINOR
)
light_overlay = "helmet_light_dual_low" light_overlay = "helmet_light_dual_low"
brightness_on = 6 brightness_on = 6
@@ -97,10 +144,17 @@
slot_l_hand_str = "sec_hardsuit", slot_l_hand_str = "sec_hardsuit",
slot_r_hand_str = "sec_hardsuit" slot_r_hand_str = "sec_hardsuit"
) )
armor = list(melee = 50, bullet = 15, laser = 30, energy = 5, bomb = 45, bio = 100, rad = 10) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_MINOR
)
allowed = list(/obj/item/gun,/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/melee/baton) allowed = list(/obj/item/gun,/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/melee/baton)
//Atmospherics Rig (BS12) //Atmospherics Rig
/obj/item/clothing/head/helmet/space/void/atmos /obj/item/clothing/head/helmet/space/void/atmos
desc = "A special helmet designed for work in a hazardous, low pressure environments. Has improved thermal protection and minor radiation shielding." desc = "A special helmet designed for work in a hazardous, low pressure environments. Has improved thermal protection and minor radiation shielding."
name = "atmospherics voidsuit helmet" name = "atmospherics voidsuit helmet"
@@ -109,7 +163,14 @@
slot_l_hand_str = "atmos_helm", slot_l_hand_str = "atmos_helm",
slot_r_hand_str = "atmos_helm" slot_r_hand_str = "atmos_helm"
) )
armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 50) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SMALL
)
max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE + 10000 // It is a suit designed for fire, enclosed max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE + 10000 // It is a suit designed for fire, enclosed
light_overlay = "helmet_light_dual_low" light_overlay = "helmet_light_dual_low"
brightness_on = 6 brightness_on = 6
@@ -123,7 +184,14 @@
slot_l_hand_str = "atmos_hardsuit", slot_l_hand_str = "atmos_hardsuit",
slot_r_hand_str = "atmos_hardsuit" slot_r_hand_str = "atmos_hardsuit"
) )
armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 50) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SMALL
)
allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/pickaxe,/obj/item/material/twohanded/fireaxe,/obj/item/rfd/construction) allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/pickaxe,/obj/item/material/twohanded/fireaxe,/obj/item/rfd/construction)
max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE + 10000 // It is a suit designed for fire, enclosed max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE + 10000 // It is a suit designed for fire, enclosed
@@ -136,7 +204,14 @@
slot_l_hand_str = "sec_helm", slot_l_hand_str = "sec_helm",
slot_r_hand_str = "sec_helm" slot_r_hand_str = "sec_helm"
) )
armor = list(melee = 50, bullet = 15, laser = 30, energy = 5, bomb = 45, bio = 100, rad = 10) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_SMALL,
bomb = ARMOR_BOMB_SHIELDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
light_overlay = "helmet_light_dual" light_overlay = "helmet_light_dual"
/obj/item/clothing/suit/space/void/hos /obj/item/clothing/suit/space/void/hos
@@ -148,7 +223,14 @@
slot_l_hand_str = "sec_hardsuit", slot_l_hand_str = "sec_hardsuit",
slot_r_hand_str = "sec_hardsuit" slot_r_hand_str = "sec_hardsuit"
) )
armor = list(melee = 50, bullet = 15, laser = 30, energy = 5, bomb = 45, bio = 100, rad = 10) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_SMALL,
bomb = ARMOR_BOMB_SHIELDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
allowed = list(/obj/item/gun,/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/melee/baton) allowed = list(/obj/item/gun,/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit,/obj/item/melee/baton)
//Science //Science
@@ -157,7 +239,13 @@
desc = "A special helmet designed for usage by NanoTrasen research personnel in hazardous, low pressure environments." desc = "A special helmet designed for usage by NanoTrasen research personnel in hazardous, low pressure environments."
icon_state = "rig0-sci" icon_state = "rig0-sci"
item_state = "research_voidsuit_helmet" item_state = "research_voidsuit_helmet"
armor = list(melee = 20, bullet = 5, laser = 30, energy = 45, bomb = 25, bio = 100, rad = 75) armor = list(
melee = ARMOR_MELEE_KNIVES,
laser = ARMOR_LASER_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)
/obj/item/clothing/suit/space/void/sci /obj/item/clothing/suit/space/void/sci
name = "research voidsuit" name = "research voidsuit"
@@ -165,4 +253,10 @@
item_state = "rig-sci" item_state = "rig-sci"
icon_state = "rig-sci" icon_state = "rig-sci"
allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit) allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit)
armor = list(melee = 20, bullet = 5, laser = 30, energy = 45, bomb = 25, bio = 100, rad = 75) armor = list(
melee = ARMOR_MELEE_KNIVES,
laser = ARMOR_LASER_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_RESISTANT
)

View File

@@ -5,7 +5,15 @@
icon_state = "void" icon_state = "void"
heat_protection = HEAD heat_protection = HEAD
armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 20) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_MINOR
)
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE
siemens_coefficient = 0.5 siemens_coefficient = 0.5
@@ -34,7 +42,15 @@
item_state = "void" item_state = "void"
desc = "A high-tech dark red space suit. Used for AI satellite maintenance." desc = "A high-tech dark red space suit. Used for AI satellite maintenance."
slowdown = 1 slowdown = 1
armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 20) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_MINOR
)
allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit) allowed = list(/obj/item/device/flashlight,/obj/item/tank,/obj/item/device/suit_cooling_unit)
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE

View File

@@ -63,7 +63,13 @@
icon_state = "armor" icon_state = "armor"
item_state = "armor" item_state = "armor"
blood_overlay_type = "armor" blood_overlay_type = "armor"
armor = list(melee = 50, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_KNIVES,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED
)
/obj/item/clothing/suit/armor/vest/fib /obj/item/clothing/suit/armor/vest/fib
name = "\improper FIB armored vest" name = "\improper FIB armored vest"
@@ -77,7 +83,13 @@
icon_state = "jensencoat" icon_state = "jensencoat"
item_state = "jensencoat" item_state = "jensencoat"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS
armor = list(melee = 65, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_KNIVES,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED
)
allowed = list(/obj/item/gun/energy, /obj/item/reagent_containers/spray/pepper, /obj/item/gun/projectile, /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/handcuffs, /obj/item/device/flashlight) allowed = list(/obj/item/gun/energy, /obj/item/reagent_containers/spray/pepper, /obj/item/gun/projectile, /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/handcuffs, /obj/item/device/flashlight)
/obj/item/clothing/suit/storage/toggle/armor/hos/Initialize() /obj/item/clothing/suit/storage/toggle/armor/hos/Initialize()
@@ -93,7 +105,13 @@
icon_state = "riot_vest" icon_state = "riot_vest"
item_state = "riot_vest" item_state = "riot_vest"
slowdown = 1 slowdown = 1
armor = list(melee = 80, bullet = 20, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
pocket_slots = 4 pocket_slots = 4
@@ -103,7 +121,13 @@
icon_state = "bulletproof_armor" icon_state = "bulletproof_armor"
item_state = "bulletproof_armor" item_state = "bulletproof_armor"
blood_overlay_type = "armor" blood_overlay_type = "armor"
armor = list(melee = 25, bullet = 80, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_AP,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
pocket_slots = 4 pocket_slots = 4
@@ -113,7 +137,12 @@
icon_state = "armor_reflec" icon_state = "armor_reflec"
item_state = "armor_reflec" item_state = "armor_reflec"
blood_overlay_type = "armor" blood_overlay_type = "armor"
armor = list(melee = 25, bullet = 25, laser = 80, energy = 40, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_KNIVES,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_RIFLES,
energy = ARMOR_ENERGY_RESISTANT
)
siemens_coefficient = 0 siemens_coefficient = 0
pocket_slots = 4 pocket_slots = 4
@@ -148,8 +177,16 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS
allowed = list(/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/tank/emergency_oxygen) allowed = list(/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/tank/emergency_oxygen)
slowdown = 1 slowdown = 1
armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 100, rad = 100) armor = list(
flags_inv = HIDEWRISTS|HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_MAJOR,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SMALL
)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
siemens_coefficient = 0.35 siemens_coefficient = 0.35
@@ -175,7 +212,7 @@
item_state = "reactiveoff" item_state = "reactiveoff"
blood_overlay_type = "armor" blood_overlay_type = "armor"
slowdown = 1 slowdown = 1
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) armor = null
/obj/item/clothing/suit/armor/reactive/handle_shield(mob/user, var/on_back, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack") /obj/item/clothing/suit/armor/reactive/handle_shield(mob/user, var/on_back, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(prob(50)) if(prob(50))
@@ -225,7 +262,13 @@
var/obj/item/gun/holstered = null var/obj/item/gun/holstered = null
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
slowdown = 1 slowdown = 1
armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 20, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_KNIVES,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_MAJOR,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
var/obj/item/clothing/accessory/holster/holster var/obj/item/clothing/accessory/holster/holster
@@ -278,7 +321,13 @@
icon_state = "ertarmor_cmd" icon_state = "ertarmor_cmd"
item_state = "armor" item_state = "armor"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 20, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_KNIVES,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_MAJOR,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
//Commander //Commander
@@ -310,9 +359,15 @@
desc = "A simple kevlar plate carrier." desc = "A simple kevlar plate carrier."
icon_state = "kvest" icon_state = "kvest"
item_state = "kvest" item_state = "kvest"
armor = list(melee = 50, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
allowed = list(/obj/item/gun,/obj/item/reagent_containers/spray/pepper,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/device/flashlight) allowed = list(/obj/item/gun,/obj/item/reagent_containers/spray/pepper,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/device/flashlight)
siemens_coefficient = 0.5 siemens_coefficient = 0.5
armor = list(
melee = ARMOR_MELEE_KNIVES,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED
)
/obj/item/clothing/suit/storage/vest/Initialize() /obj/item/clothing/suit/storage/vest/Initialize()
. = ..() . = ..()
@@ -341,8 +396,6 @@
item_state = "hosvest_nobadge" item_state = "hosvest_nobadge"
icon_badge = "hosvest_badge" icon_badge = "hosvest_badge"
icon_nobadge = "hosvest_nobadge" icon_nobadge = "hosvest_nobadge"
armor = list(melee = 65, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
/obj/item/clothing/suit/storage/vest/pcrc /obj/item/clothing/suit/storage/vest/pcrc
name = "PCRC armor vest" name = "PCRC armor vest"
desc = "A simple kevlar plate carrier belonging to Proxima Centauri Risk Control. This one has a PCRC crest clipped to the chest." desc = "A simple kevlar plate carrier belonging to Proxima Centauri Risk Control. This one has a PCRC crest clipped to the chest."
@@ -373,15 +426,25 @@
icon_state = "hazard_cadet" icon_state = "hazard_cadet"
item_state = "hazard_cadet" item_state = "hazard_cadet"
allowed = list(/obj/item/gun,/obj/item/reagent_containers/spray/pepper,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/device/flashlight) allowed = list(/obj/item/gun,/obj/item/reagent_containers/spray/pepper,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/device/flashlight)
armor = list(melee = 10, bullet = 0, laser = 10, energy = 10, bomb = 10, bio = 0, rad = 0)
siemens_coefficient = 0.5 siemens_coefficient = 0.5
armor = list(
melee = ARMOR_MELEE_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_MINOR
)
/obj/item/clothing/suit/storage/vest/heavy /obj/item/clothing/suit/storage/vest/heavy
name = "heavy armor vest" name = "heavy armor vest"
desc = "A heavy kevlar plate carrier with webbing attached." desc = "A heavy kevlar plate carrier with webbing attached."
icon_state = "webvest" icon_state = "webvest"
item_state = "webvest" item_state = "webvest"
armor = list(melee = 50, bullet = 40, laser = 50, energy = 25, bomb = 30, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_MAJOR,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
)
slowdown = 1 slowdown = 1
siemens_coefficient = 0.35 siemens_coefficient = 0.35
@@ -408,7 +471,13 @@
item_state = "hoswebvest_nobadge" item_state = "hoswebvest_nobadge"
icon_badge = "hoswebvest_badge" icon_badge = "hoswebvest_badge"
icon_nobadge = "hoswebvest_nobadge" icon_nobadge = "hoswebvest_nobadge"
armor = list(melee = 65, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_BALLISTIC_PISTOL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED
)
/obj/item/clothing/suit/storage/vest/heavy/pcrc /obj/item/clothing/suit/storage/vest/heavy/pcrc
name = "PCRC heavy armor vest" name = "PCRC heavy armor vest"
@@ -426,7 +495,13 @@
item_state = "vest" item_state = "vest"
icon_state = "vest" icon_state = "vest"
contained_sprite = TRUE contained_sprite = TRUE
armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 40, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_RIFLE,
laser = ARMOR_LASER_MAJOR,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_PADDED
)
body_parts_covered = UPPER_TORSO|LOWER_TORSO body_parts_covered = UPPER_TORSO|LOWER_TORSO
//ert related armor //ert related armor
@@ -437,7 +512,13 @@
icon_state = "ert_soldier" icon_state = "ert_soldier"
item_state = "ert_soldier" item_state = "ert_soldier"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 20, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_RIFLE,
laser = ARMOR_LASER_MAJOR,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_PADDED
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
slowdown = 0 slowdown = 0
@@ -483,7 +564,13 @@
item_state = "unathi_armor" item_state = "unathi_armor"
contained_sprite = TRUE contained_sprite = TRUE
species_restricted = list(BODYTYPE_UNATHI) species_restricted = list(BODYTYPE_UNATHI)
armor = list(melee = 65, bullet = 30, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
/obj/item/clothing/suit/armor/unathi/hegemony /obj/item/clothing/suit/armor/unathi/hegemony
@@ -491,7 +578,13 @@
desc = "A highly armored chestplate designated to be worn by an Unathi, a newer variant commonly worn by the Hegemony Levies." desc = "A highly armored chestplate designated to be worn by an Unathi, a newer variant commonly worn by the Hegemony Levies."
icon_state = "hegemony_armor" icon_state = "hegemony_armor"
item_state = "hegemony_armor" item_state = "hegemony_armor"
armor = list(melee = 70, bullet = 40, laser = 55, energy = 15, bomb = 25, bio = 0, rad = 40) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_MAJOR,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED
)
// Vaurca version of Unathi armor // Vaurca version of Unathi armor
/obj/item/clothing/suit/armor/unathi/klax /obj/item/clothing/suit/armor/unathi/klax
@@ -503,8 +596,15 @@
contained_sprite = TRUE contained_sprite = TRUE
species_restricted = list(BODYTYPE_VAURCA) species_restricted = list(BODYTYPE_VAURCA)
allowed = list(/obj/item/gun/projectile, /obj/item/gun/energy, /obj/item/gun/launcher, /obj/item/melee, /obj/item/reagent_containers/spray/pepper, /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/handcuffs, /obj/item/device/flashlight) allowed = list(/obj/item/gun/projectile, /obj/item/gun/energy, /obj/item/gun/launcher, /obj/item/melee, /obj/item/reagent_containers/spray/pepper, /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/handcuffs, /obj/item/device/flashlight)
armor = list(melee = 70, bullet = 40, laser = 55, energy = 15, bomb = 25, bio = 0, rad = 40)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_MAJOR,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
rad = ARMOR_RAD_RESISTANT
)
/obj/item/clothing/suit/storage/vest/legion /obj/item/clothing/suit/storage/vest/legion
name = "foreign legion armored suit" name = "foreign legion armored suit"
@@ -512,7 +612,6 @@
icon_state = "legion_armor" icon_state = "legion_armor"
item_state = "legion_armor" item_state = "legion_armor"
body_parts_covered = UPPER_TORSO | LOWER_TORSO | LEGS | ARMS body_parts_covered = UPPER_TORSO | LOWER_TORSO | LEGS | ARMS
armor = list(melee = 50, bullet = 30, laser = 30, energy = 15, bomb = 40, bio = 0, rad = 0)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
allowed = list( allowed = list(
/obj/item/gun, /obj/item/gun,
@@ -524,6 +623,13 @@
/obj/item/device/flashlight, /obj/item/device/flashlight,
/obj/item/material/twohanded/pike/flag /obj/item/material/twohanded/pike/flag
) )
armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_RESISTANT
)
/obj/item/clothing/suit/storage/vest/legion/legate /obj/item/clothing/suit/storage/vest/legion/legate
name = "foreign legion legate coat" name = "foreign legion legate coat"
@@ -544,7 +650,13 @@
icon = 'icons/obj/sol_uniform.dmi' icon = 'icons/obj/sol_uniform.dmi'
icon_state = "solwebvest" icon_state = "solwebvest"
item_state = "solwebvest" item_state = "solwebvest"
armor = list(melee = 60, bullet = 60, laser = 60, energy = 40, bomb = 40, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_MAJOR,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_PADDED
)
contained_sprite = 1 contained_sprite = 1
//All of the armor below is mostly unused //All of the armor below is mostly unused

View File

@@ -8,7 +8,10 @@
) )
desc = "A hood that protects the head and face from biological comtaminants." desc = "A hood that protects the head and face from biological comtaminants."
permeability_coefficient = 0.01 permeability_coefficient = 0.01
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20) armor = list(
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SMALL
)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|BLOCKHAIR flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|BLOCKHAIR
body_parts_covered = HEAD|FACE|EYES body_parts_covered = HEAD|FACE|EYES
siemens_coefficient = 0.75 siemens_coefficient = 0.75
@@ -26,7 +29,10 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
slowdown = 1.0 slowdown = 1.0
allowed = list(/obj/item/tank/emergency_oxygen,/obj/item/pen,/obj/item/device/flashlight/pen) allowed = list(/obj/item/tank/emergency_oxygen,/obj/item/pen,/obj/item/device/flashlight/pen)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20) armor = list(
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SMALL
)
flags_inv = HIDEWRISTS|HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL flags_inv = HIDEWRISTS|HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL
siemens_coefficient = 0.75 siemens_coefficient = 0.75

View File

@@ -90,7 +90,9 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)
siemens_coefficient = 0.75 siemens_coefficient = 0.75
hoodtype = /obj/item/clothing/head/winterhood hoodtype = /obj/item/clothing/head/winterhood

View File

@@ -6,7 +6,9 @@
blood_overlay_type = "coat" blood_overlay_type = "coat"
body_parts_covered = UPPER_TORSO|ARMS body_parts_covered = UPPER_TORSO|ARMS
allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/dnainjector,/obj/item/reagent_containers/dropper,/obj/item/reagent_containers/syringe,/obj/item/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/glass/beaker,/obj/item/reagent_containers/pill,/obj/item/storage/pill_bottle,/obj/item/paper, /obj/item/device/breath_analyzer) allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/dnainjector,/obj/item/reagent_containers/dropper,/obj/item/reagent_containers/syringe,/obj/item/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/glass/beaker,/obj/item/reagent_containers/pill,/obj/item/storage/pill_bottle,/obj/item/paper, /obj/item/device/breath_analyzer)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0) armor = list(
bio = ARMOR_BIO_RESISTANT
)
opened = TRUE // spawns opened opened = TRUE // spawns opened
/obj/item/clothing/suit/storage/toggle/labcoat/cmo /obj/item/clothing/suit/storage/toggle/labcoat/cmo
@@ -14,19 +16,25 @@
desc = "Bluer than the standard model." desc = "Bluer than the standard model."
icon_state = "labcoat_cmo" icon_state = "labcoat_cmo"
item_state = "labcoat_cmo" item_state = "labcoat_cmo"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0) armor = list(
bio = ARMOR_BIO_RESISTANT
)
/obj/item/clothing/suit/storage/toggle/labcoat/cmoalt /obj/item/clothing/suit/storage/toggle/labcoat/cmoalt
name = "chief medical officer labcoat" name = "chief medical officer labcoat"
desc = "A labcoat with command blue highlights." desc = "A labcoat with command blue highlights."
icon_state = "labcoat_cmoalt" icon_state = "labcoat_cmoalt"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0) armor = list(
bio = ARMOR_BIO_RESISTANT
)
/obj/item/clothing/suit/storage/toggle/labcoat/cmoalt2 /obj/item/clothing/suit/storage/toggle/labcoat/cmoalt2
name = "chief medical officer labcoat" name = "chief medical officer labcoat"
desc = "A labcoat with command gold highlights." desc = "A labcoat with command gold highlights."
icon_state = "labcoat_cmoalt2" icon_state = "labcoat_cmoalt2"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0) armor = list(
bio = ARMOR_BIO_RESISTANT
)
/obj/item/clothing/suit/storage/toggle/labcoat/genetics /obj/item/clothing/suit/storage/toggle/labcoat/genetics
name = "geneticist labcoat" name = "geneticist labcoat"
@@ -37,37 +45,31 @@
name = "medical labcoat" name = "medical labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a green stripe on the shoulder." desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a green stripe on the shoulder."
icon_state = "labcoat_med" icon_state = "labcoat_med"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/labcoat/pharmacist /obj/item/clothing/suit/storage/toggle/labcoat/pharmacist
name = "pharmacist labcoat" name = "pharmacist labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has an orange stripe on the shoulder." desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has an orange stripe on the shoulder."
icon_state = "labcoat_chem" icon_state = "labcoat_chem"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/labcoat/biochemist /obj/item/clothing/suit/storage/toggle/labcoat/biochemist
name = "protective labcoat" name = "protective labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a red stripe on the shoulder." desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a red stripe on the shoulder."
icon_state = "labcoat_vir" icon_state = "labcoat_vir"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/labcoat/psych /obj/item/clothing/suit/storage/toggle/labcoat/psych
name = "psychiatrist labcoat" name = "psychiatrist labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a teal stripe on the shoulder." desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a teal stripe on the shoulder."
icon_state = "labcoat_psych" icon_state = "labcoat_psych"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/labcoat/surgeon /obj/item/clothing/suit/storage/toggle/labcoat/surgeon
name = "surgeon labcoat" name = "surgeon labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a light blue stripe on the shoulder." desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a light blue stripe on the shoulder."
icon_state = "labcoat_surgeon" icon_state = "labcoat_surgeon"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/labcoat/trauma /obj/item/clothing/suit/storage/toggle/labcoat/trauma
name = "trauma physician labcoat" name = "trauma physician labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a black stripe on the shoulder." desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Has a black stripe on the shoulder."
icon_state = "labcoat_trauma" icon_state = "labcoat_trauma"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/labcoat/science /obj/item/clothing/suit/storage/toggle/labcoat/science
name = "scientist labcoat" name = "scientist labcoat"
@@ -80,22 +82,21 @@
icon_state = "iac_vest" icon_state = "iac_vest"
item_state = "iac_vest" item_state = "iac_vest"
permeability_coefficient = 0.50 permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 5, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)
/obj/item/clothing/suit/storage/toggle/labcoat/zeng /obj/item/clothing/suit/storage/toggle/labcoat/zeng
name = "zeng-hu labcoat" name = "zeng-hu labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Comes in Zeng-Hu colours." desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Comes in Zeng-Hu colours."
icon_state = "labcoat_zeng" icon_state = "labcoat_zeng"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/labcoat/zavodskoi /obj/item/clothing/suit/storage/toggle/labcoat/zavodskoi
name = "Zavodskoi Interstellar labcoat" name = "Zavodskoi Interstellar labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Comes in Zavodskoi Interstellar colours." desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Comes in Zavodskoi Interstellar colours."
icon_state = "labcoat_necro" icon_state = "labcoat_necro"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)
/obj/item/clothing/suit/storage/toggle/labcoat/heph /obj/item/clothing/suit/storage/toggle/labcoat/heph
name = "hephaestus labcoat" name = "hephaestus labcoat"
desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Comes in Hephaestus colours." desc = "A suit that protects against minor chemical spills. Offers slightly more protection against biohazards than the standard model. Comes in Hephaestus colours."
icon_state = "labcoat_heph" icon_state = "labcoat_heph"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 0)

View File

@@ -259,12 +259,20 @@
desc = "A Tau Ceti Foreign Legion pilot's jacket. This is the more common, less durable variety, which typically finds itself percolating amongst all ranks of the TCFL." desc = "A Tau Ceti Foreign Legion pilot's jacket. This is the more common, less durable variety, which typically finds itself percolating amongst all ranks of the TCFL."
icon_state = "lflight" icon_state = "lflight"
item_state = "lflight" item_state = "lflight"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)
siemens_coefficient = 0.75 siemens_coefficient = 0.75
/obj/item/clothing/suit/storage/toggle/leather_jacket/flight/legion/alt /obj/item/clothing/suit/storage/toggle/leather_jacket/flight/legion/alt
desc = "A Tau Ceti Foreign Legion pilot's jacket made from a silky, shiny nanonylon material and lined with tough, protective synthfabrics." desc = "A Tau Ceti Foreign Legion pilot's jacket made from a silky, shiny nanonylon material and lined with tough, protective synthfabrics."
armor = list(melee = 40, bullet = 10, laser = 20, energy = 10, bomb = 30, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
/obj/item/clothing/suit/storage/toggle/leather_jacket/military /obj/item/clothing/suit/storage/toggle/leather_jacket/military

View File

@@ -59,7 +59,13 @@
icon_state = "bombsuit" icon_state = "bombsuit"
w_class = ITEMSIZE_HUGE//Too large to fit in a backpack w_class = ITEMSIZE_HUGE//Too large to fit in a backpack
item_flags = STOPPRESSUREDAMAGE|THICKMATERIAL|BLOCK_GAS_SMOKE_EFFECT item_flags = STOPPRESSUREDAMAGE|THICKMATERIAL|BLOCK_GAS_SMOKE_EFFECT
armor = list(melee = 30, bullet = 20, laser = 25,energy = 30, bomb = 100, bio = 60, rad = 60) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_SHIELDED
)
siemens_coefficient = 0.1 siemens_coefficient = 0.1
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES flags_inv = HIDEMASK|HIDEEARS|HIDEEYES
body_parts_covered = HEAD|FACE|EYES body_parts_covered = HEAD|FACE|EYES
@@ -81,7 +87,13 @@
gas_transfer_coefficient = 0.01 gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01 permeability_coefficient = 0.01
slowdown = 8 slowdown = 8
armor = list(melee = 55, bullet = 55, laser = 55,energy = 60, bomb = 100, bio = 60, rad = 60) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_RESISTANT,
bomb = ARMOR_BOMB_SHIELDED
)
siemens_coefficient = 0.1 siemens_coefficient = 0.1
item_flags = STOPPRESSUREDAMAGE|THICKMATERIAL item_flags = STOPPRESSUREDAMAGE|THICKMATERIAL
flags_inv = HIDEJUMPSUIT|HIDETAIL flags_inv = HIDEJUMPSUIT|HIDETAIL
@@ -177,7 +189,10 @@
desc = "A hood with radiation protective properties. Label: Made with lead, do not eat insulation" desc = "A hood with radiation protective properties. Label: Made with lead, do not eat insulation"
flags_inv = BLOCKHAIR flags_inv = BLOCKHAIR
body_parts_covered = HEAD|FACE|EYES body_parts_covered = HEAD|FACE|EYES
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100) armor = list(
bio = ARMOR_BIO_RESISTANT,
rad = ARMOR_RAD_SHIELDED
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
@@ -192,7 +207,10 @@
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS|FEET body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS|FEET
allowed = list(/obj/item/device/flashlight,/obj/item/tank/emergency_oxygen,/obj/item/clothing/head/radiation,/obj/item/clothing/mask/gas) allowed = list(/obj/item/device/flashlight,/obj/item/tank/emergency_oxygen,/obj/item/clothing/head/radiation,/obj/item/clothing/mask/gas)
slowdown = 1.5 slowdown = 1.5
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 60, rad = 100) armor = list(
bio = ARMOR_BIO_RESISTANT,
rad = ARMOR_RAD_SHIELDED
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
flags_inv = HIDEJUMPSUIT|HIDETAIL flags_inv = HIDEJUMPSUIT|HIDETAIL

View File

@@ -64,7 +64,15 @@
item_state = "wizrobe" item_state = "wizrobe"
gas_transfer_coefficient = 0.01 // IT'S MAGICAL OKAY JEEZ +1 TO NOT DIE gas_transfer_coefficient = 0.01 // IT'S MAGICAL OKAY JEEZ +1 TO NOT DIE
permeability_coefficient = 0.01 permeability_coefficient = 0.01
armor = list(melee = 30, bullet = 20, laser = 20,energy = 20, bomb = 20, bio = 20, rad = 20) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SMALL,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_MINOR,
rad = ARMOR_RAD_MINOR
)
allowed = list(/obj/item/tank/emergency_oxygen,/obj/item/teleportation_scroll,/obj/item/scrying,/obj/item/spellbook,/obj/item/device/soulstone,/obj/item/material/knife/ritual) allowed = list(/obj/item/tank/emergency_oxygen,/obj/item/teleportation_scroll,/obj/item/scrying,/obj/item/spellbook,/obj/item/device/soulstone,/obj/item/material/knife/ritual)
flags_inv = HIDEJUMPSUIT flags_inv = HIDEJUMPSUIT
siemens_coefficient = 0.75 siemens_coefficient = 0.75
@@ -109,7 +117,6 @@
item_state = "gentlecoat" item_state = "gentlecoat"
gas_transfer_coefficient = 0.01 // IT'S MAGICAL OKAY JEEZ +1 TO NOT DIE gas_transfer_coefficient = 0.01 // IT'S MAGICAL OKAY JEEZ +1 TO NOT DIE
permeability_coefficient = 0.01 permeability_coefficient = 0.01
armor = list(melee = 30, bullet = 20, laser = 20,energy = 20, bomb = 20, bio = 20, rad = 20)
allowed = list(/obj/item/tank/emergency_oxygen,/obj/item/teleportation_scroll,/obj/item/scrying,/obj/item/spellbook,/obj/item/device/soulstone,/obj/item/material/knife/ritual) allowed = list(/obj/item/tank/emergency_oxygen,/obj/item/teleportation_scroll,/obj/item/scrying,/obj/item/spellbook,/obj/item/device/soulstone,/obj/item/material/knife/ritual)
flags_inv = HIDEJUMPSUIT flags_inv = HIDEJUMPSUIT
siemens_coefficient = 0.75 siemens_coefficient = 0.75

View File

@@ -148,7 +148,12 @@
allowed = list(/obj/item/gun,/obj/item/material/sword) allowed = list(/obj/item/gun,/obj/item/material/sword)
flags_inv = HIDEJUMPSUIT|HIDETAIL flags_inv = HIDEJUMPSUIT|HIDETAIL
species_restricted = list(BODYTYPE_TAJARA) species_restricted = list(BODYTYPE_TAJARA)
armor = list(melee = 60, bullet = 50, laser = 20, energy = 10, bomb = 5, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR
)
siemens_coefficient = 0.35 siemens_coefficient = 0.35
desc_fluff = "The Feudal Era of Amohda is famous for the steel swords which became common. Many renowned swordsmen and famous warriors would travel the land fighting duels of \ desc_fluff = "The Feudal Era of Amohda is famous for the steel swords which became common. Many renowned swordsmen and famous warriors would travel the land fighting duels of \
single combat in their quests to become the greatest swordsman. Modern Amohda is a mix between loyalists to the NKA and to the DPRA, with almost universal praise for a return to \ single combat in their quests to become the greatest swordsman. Modern Amohda is a mix between loyalists to the NKA and to the DPRA, with almost universal praise for a return to \
@@ -162,7 +167,12 @@
icon_state = "cuirass" icon_state = "cuirass"
item_state = "cuirass" item_state = "cuirass"
contained_sprite = TRUE contained_sprite = TRUE
armor = list(melee = 50, bullet = 50, laser = 20, energy = 10, bomb = 5, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_MINOR
)
/obj/item/clothing/suit/storage/tajaran/pra_jacket /obj/item/clothing/suit/storage/tajaran/pra_jacket
name = "republican service jacket" name = "republican service jacket"
@@ -170,5 +180,10 @@
icon_state = "greenservice" icon_state = "greenservice"
item_state = "greenservice" item_state = "greenservice"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
armor = list(melee = 30, bullet = 20, laser = 20, energy = 10, bomb = 5, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_KNIVES,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_MINOR,
energy = ARMOR_ENERGY_MINOR
)
siemens_coefficient = 0.50 siemens_coefficient = 0.50

View File

@@ -83,7 +83,9 @@
icon_state = "janitor" icon_state = "janitor"
worn_state = "janitor" worn_state = "janitor"
item_state = "janitor" item_state = "janitor"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)
/obj/item/clothing/under/lawyer /obj/item/clothing/under/lawyer
desc = "Slick threads." desc = "Slick threads."
@@ -139,7 +141,9 @@
desc = "A uniform worn by Hephaestus Industries engineers." desc = "A uniform worn by Hephaestus Industries engineers."
icon_state = "heph_engineer" icon_state = "heph_engineer"
worn_state = "heph_engineer" worn_state = "heph_engineer"
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 10) armor = list(
rad = ARMOR_RAD_MINOR
)
siemens_coefficient = 0.75 siemens_coefficient = 0.75
/obj/item/clothing/under/rank/hephaestus/tech /obj/item/clothing/under/rank/hephaestus/tech
@@ -154,8 +158,9 @@
icon_state = "heph_research" icon_state = "heph_research"
worn_state = "heph_research" worn_state = "heph_research"
permeability_coefficient = 0.50 permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 0, rad = 10) armor = list(
rad = ARMOR_RAD_MINOR
)
/obj/item/clothing/under/rank/zavodskoi /obj/item/clothing/under/rank/zavodskoi
name = "Zavodskoi Interstellar uniform" name = "Zavodskoi Interstellar uniform"
desc = "A uniform worn by Zavodskoi Interstellar employees and contractors." desc = "A uniform worn by Zavodskoi Interstellar employees and contractors."
@@ -168,8 +173,9 @@
icon_state = "necro_research" icon_state = "necro_research"
worn_state = "necro_research" worn_state = "necro_research"
permeability_coefficient = 0.50 permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 0, rad = 0) armor = list(
bomb = ARMOR_BOMB_MINOR
)
/obj/item/clothing/under/rank/zavodskoi/research/alt /obj/item/clothing/under/rank/zavodskoi/research/alt
icon_state = "necro_research_alt" icon_state = "necro_research_alt"
worn_state = "necro_research_alt" worn_state = "necro_research_alt"
@@ -193,7 +199,9 @@
desc = "A uniform worn by Einstein Engines Incorporated employees and contractors." desc = "A uniform worn by Einstein Engines Incorporated employees and contractors."
icon_state = "einstein" icon_state = "einstein"
worn_state = "einstein" worn_state = "einstein"
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 10) armor = list(
rad = ARMOR_RAD_MINOR
)
siemens_coefficient = 0.75 siemens_coefficient = 0.75
/obj/item/clothing/under/rank/zeng /obj/item/clothing/under/rank/zeng
@@ -202,7 +210,9 @@
icon_state = "zeng_research" icon_state = "zeng_research"
worn_state = "zeng_research" worn_state = "zeng_research"
permeability_coefficient = 0.50 permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 10, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)
/obj/item/clothing/under/rank/zeng/alt /obj/item/clothing/under/rank/zeng/alt
icon_state = "zeng_research_alt" icon_state = "zeng_research_alt"
@@ -220,4 +230,6 @@
icon_state = "eridani_medic" icon_state = "eridani_medic"
worn_state = "eridani_medic" worn_state = "eridani_medic"
permeability_coefficient = 0.50 permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 10, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)

View File

@@ -5,7 +5,9 @@
icon_state = "chiefengineer" icon_state = "chiefengineer"
item_state = "g_suit" item_state = "g_suit"
worn_state = "chief" worn_state = "chief"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10) armor = list(
rad = ARMOR_RAD_MINOR
)
siemens_coefficient = 0.75 siemens_coefficient = 0.75
/obj/item/clothing/under/rank/atmospheric_technician /obj/item/clothing/under/rank/atmospheric_technician
@@ -22,7 +24,9 @@
icon_state = "engine" icon_state = "engine"
item_state = "engi_suit" item_state = "engi_suit"
worn_state = "engine" worn_state = "engine"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10) armor = list(
rad = ARMOR_RAD_MINOR
)
siemens_coefficient = 0.75 siemens_coefficient = 0.75
/obj/item/clothing/under/rank/engineer/apprentice /obj/item/clothing/under/rank/engineer/apprentice

View File

@@ -7,7 +7,9 @@
icon_state = "rd" icon_state = "rd"
item_state = "lb_suit" item_state = "lb_suit"
worn_state = "rd" worn_state = "rd"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)
/obj/item/clothing/under/rank/research_director/rdalt /obj/item/clothing/under/rank/research_director/rdalt
desc = "A dress suit and slacks stained with hard work and dedication to science. Perhaps other things as well, but mostly hard work and dedication." desc = "A dress suit and slacks stained with hard work and dedication to science. Perhaps other things as well, but mostly hard work and dedication."
@@ -15,7 +17,9 @@
icon_state = "rdalt" icon_state = "rdalt"
item_state = "lb_suit" item_state = "lb_suit"
worn_state = "rdalt" worn_state = "rdalt"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)
/obj/item/clothing/under/rank/research_director/dress_rd /obj/item/clothing/under/rank/research_director/dress_rd
name = "research director dress uniform" name = "research director dress uniform"
@@ -23,7 +27,9 @@
icon_state = "dress_rd" icon_state = "dress_rd"
item_state = "lb_suit" item_state = "lb_suit"
worn_state = "dress_rd" worn_state = "dress_rd"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS
/obj/item/clothing/under/rank/scientist /obj/item/clothing/under/rank/scientist
@@ -33,8 +39,9 @@
item_state = "w_suit" item_state = "w_suit"
worn_state = "science" worn_state = "science"
permeability_coefficient = 0.50 permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)
/obj/item/clothing/under/rank/scientist/xenoarcheologist /obj/item/clothing/under/rank/scientist/xenoarcheologist
desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer as a scientist." desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer as a scientist."
name = "xenoarcheologist's jumpsuit" name = "xenoarcheologist's jumpsuit"
@@ -42,7 +49,9 @@
item_state = "w_suit" item_state = "w_suit"
worn_state = "xenoarcheology" worn_state = "xenoarcheology"
permeability_coefficient = 0.50 permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)
/obj/item/clothing/under/rank/scientist/science_alt /obj/item/clothing/under/rank/scientist/science_alt
desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer as a scientist." desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer as a scientist."
@@ -51,13 +60,17 @@
item_state = "w_suit" item_state = "w_suit"
worn_state = "science_alt" worn_state = "science_alt"
permeability_coefficient = 0.50 permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)
/obj/item/clothing/under/rank/scientist/botany /obj/item/clothing/under/rank/scientist/botany
desc = "It's made of a special fiber that provides minor protection against biohazards. Its colour denotes the wearer as a xenobotanist." desc = "It's made of a special fiber that provides minor protection against biohazards. Its colour denotes the wearer as a xenobotanist."
icon_state = "botany" icon_state = "botany"
worn_state = "botany" worn_state = "botany"
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 5, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)
/obj/item/clothing/under/rank/scientist/intern /obj/item/clothing/under/rank/scientist/intern
desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer as a laboratory assistant." desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer as a laboratory assistant."
@@ -72,7 +85,9 @@
item_state = "w_suit" item_state = "w_suit"
worn_state = "chemistry" worn_state = "chemistry"
permeability_coefficient = 0.50 permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)
/obj/item/clothing/under/rank/xenoarcheologist /obj/item/clothing/under/rank/xenoarcheologist
desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer as a xenoarcheologist." desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer as a xenoarcheologist."
@@ -81,7 +96,9 @@
item_state = "w_suit" item_state = "w_suit"
worn_state = "xenoarcheology" worn_state = "xenoarcheology"
permeability_coefficient = 0.50 permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0) armor = list(
bomb = ARMOR_BOMB_MINOR
)
/* /*
* Medical * Medical
@@ -93,7 +110,9 @@
item_state = "w_suit" item_state = "w_suit"
worn_state = "cmo" worn_state = "cmo"
permeability_coefficient = 0.50 permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)
/obj/item/clothing/under/rank/geneticist /obj/item/clothing/under/rank/geneticist
desc = "It's made of a special fiber that gives special protection against biohazards. It has a genetics rank stripe on it." desc = "It's made of a special fiber that gives special protection against biohazards. It has a genetics rank stripe on it."
@@ -102,7 +121,9 @@
item_state = "w_suit" item_state = "w_suit"
worn_state = "geneticswhite" worn_state = "geneticswhite"
permeability_coefficient = 0.50 permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)
/obj/item/clothing/under/rank/virologist /obj/item/clothing/under/rank/virologist
desc = "It's made of a special fiber that gives special protection against biohazards. It has a virologist rank stripe on it." desc = "It's made of a special fiber that gives special protection against biohazards. It has a virologist rank stripe on it."
@@ -111,7 +132,9 @@
item_state = "w_suit" item_state = "w_suit"
worn_state = "virology" worn_state = "virology"
permeability_coefficient = 0.50 permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)
/obj/item/clothing/under/rank/iacjumpsuit /obj/item/clothing/under/rank/iacjumpsuit
desc = "It's a blue and white jumpsuit, the IAC logo plastered across the back." desc = "It's a blue and white jumpsuit, the IAC logo plastered across the back."
@@ -119,7 +142,9 @@
icon_state = "iacuniform" icon_state = "iacuniform"
item_state = "iacuniform" item_state = "iacuniform"
permeability_coefficient = 0.50 permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 15, rad = 5) armor = list(
bio = ARMOR_BIO_MINOR
)
/obj/item/clothing/under/rank/medical /obj/item/clothing/under/rank/medical
desc = "It's made of a special fiber that provides minor protection against biohazards. It denotes that the wearer is trained medical personnel." desc = "It's made of a special fiber that provides minor protection against biohazards. It denotes that the wearer is trained medical personnel."
@@ -128,7 +153,9 @@
item_state = "w_suit" item_state = "w_suit"
worn_state = "medical" worn_state = "medical"
permeability_coefficient = 0.50 permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)
/obj/item/clothing/under/rank/medical/intern /obj/item/clothing/under/rank/medical/intern
desc = "It's made of a special fiber that provides minor protection against biohazards. It denotes that the wearer is still a medical intern." desc = "It's made of a special fiber that provides minor protection against biohazards. It denotes that the wearer is still a medical intern."
@@ -186,4 +213,6 @@
item_state = "w_suit" item_state = "w_suit"
worn_state = "virology" worn_state = "virology"
permeability_coefficient = 0.50 permeability_coefficient = 0.50
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) armor = list(
bio = ARMOR_BIO_MINOR
)

View File

@@ -14,7 +14,9 @@
desc = "It's made of a slightly sturdier material than standard jumpsuits, to allow for robust protection." desc = "It's made of a slightly sturdier material than standard jumpsuits, to allow for robust protection."
icon_state = "officer_standard" icon_state = "officer_standard"
worn_state = "officer_standard" worn_state = "officer_standard"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_SMALL
)
siemens_coefficient = 0.75 siemens_coefficient = 0.75
/obj/item/clothing/under/rank/security/corp /obj/item/clothing/under/rank/security/corp
@@ -30,7 +32,9 @@
desc = "It's made of a slightly sturdier material, to allow for robust protection." desc = "It's made of a slightly sturdier material, to allow for robust protection."
icon_state = "cadet_standard" icon_state = "cadet_standard"
worn_state = "cadet_standard" worn_state = "cadet_standard"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_SMALL
)
siemens_coefficient = 0.75 siemens_coefficient = 0.75
/obj/item/clothing/under/rank/warden /obj/item/clothing/under/rank/warden
@@ -38,7 +42,9 @@
desc = "It's made of a slightly sturdier material than standard jumpsuits, to allow for more robust protection. It has the word \"Warden\" written on the shoulders." desc = "It's made of a slightly sturdier material than standard jumpsuits, to allow for more robust protection. It has the word \"Warden\" written on the shoulders."
icon_state = "warden_standard" icon_state = "warden_standard"
worn_state = "warden_standard" worn_state = "warden_standard"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_SMALL
)
siemens_coefficient = 0.75 siemens_coefficient = 0.75
/obj/item/clothing/under/rank/warden/corp /obj/item/clothing/under/rank/warden/corp
@@ -67,7 +73,9 @@
desc = "Someone who wears this means business." desc = "Someone who wears this means business."
icon_state = "detective_standard" icon_state = "detective_standard"
worn_state = "detective_standard" worn_state = "detective_standard"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_SMALL
)
siemens_coefficient = 0.75 siemens_coefficient = 0.75
/obj/item/clothing/under/det/black /obj/item/clothing/under/det/black
@@ -93,7 +101,9 @@
name = "head of security's uniform" name = "head of security's uniform"
icon_state = "hos_standard" icon_state = "hos_standard"
worn_state = "hos_standard" worn_state = "hos_standard"
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_SMALL
)
siemens_coefficient = 0.75 siemens_coefficient = 0.75
/obj/item/clothing/under/rank/head_of_security/corp /obj/item/clothing/under/rank/head_of_security/corp

View File

@@ -6,7 +6,11 @@
icon_state = "sol_uniform" icon_state = "sol_uniform"
item_state = "sol_uniform" item_state = "sol_uniform"
contained_sprite = 1 contained_sprite = 1
armor = list(melee = 10, bullet = 10, laser = 10,energy = 0, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_SMALL,
bullet = ARMOR_BALLISTIC_MINOR,
laser = ARMOR_LASER_MINOR
)
/obj/item/clothing/under/rank/fatigues/marine //regular sol navy marine fatigues /obj/item/clothing/under/rank/fatigues/marine //regular sol navy marine fatigues
name = "sol marine fatigues" name = "sol marine fatigues"

View File

@@ -127,7 +127,15 @@
gas_transfer_coefficient = 0.01 gas_transfer_coefficient = 0.01
permeability_coefficient = 0.01 permeability_coefficient = 0.01
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
armor = list(melee = 100, bullet = 100, laser = 100,energy = 100, bomb = 100, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_VERY_HIGH,
bullet = ARMOR_BALLISTIC_AP,
laser = ARMOR_LASER_HEAVY,
energy = ARMOR_ENERGY_SHIELDED,
bomb = ARMOR_BOMB_SHIELDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
siemens_coefficient = 0 siemens_coefficient = 0
@@ -514,7 +522,9 @@
icon_state = "swatunder" icon_state = "swatunder"
//item_state = "swatunder" //item_state = "swatunder"
worn_state = "swatunder" worn_state = "swatunder"
armor = list(melee = 10, bullet = 5, laser = 5,energy = 0, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MINOR
)
siemens_coefficient = 0.7 siemens_coefficient = 0.7
/obj/item/clothing/under/lance /obj/item/clothing/under/lance
@@ -524,7 +534,9 @@
item_state = "lance_fatigues" item_state = "lance_fatigues"
worn_state = "lance_fatigues" worn_state = "lance_fatigues"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MINOR
)
siemens_coefficient = 0.7 siemens_coefficient = 0.7
/obj/item/clothing/under/dress/lance_dress /obj/item/clothing/under/dress/lance_dress

View File

@@ -5,7 +5,9 @@
item_state = "bl_suit" item_state = "bl_suit"
worn_state = "syndicate" worn_state = "syndicate"
has_sensor = 0 has_sensor = 0
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) armor = list(
melee = ARMOR_MELEE_MINOR
)
siemens_coefficient = 0.75 siemens_coefficient = 0.75
/obj/item/clothing/under/syndicate/combat /obj/item/clothing/under/syndicate/combat

View File

@@ -1,27 +1,57 @@
/*/datum/extension/armor/exosuit/apply_damage_modifications(damage, damage_type, damage_flags, mob/living/victim, armor_pen, silent = TRUE)
if(prob(get_blocked(damage_type, damage_flags, armor_pen) * 100)) //extra removal of sharp and edge on account of us being big robots
damage_flags &= ~(DAM_SHARP | DAM_EDGE)
. = ..()*/
/obj/item/robot_parts/robot_component/armor/mech /obj/item/robot_parts/robot_component/armor/mech
name = "exosuit armor plating" name = "exosuit armor plating"
armor = list(melee = 75, bullet = 33, laser = 50, energy = 10, bomb = 25, bio = 100, rad = 0) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_MINOR
)
origin_tech = list(TECH_MATERIAL = 1) origin_tech = list(TECH_MATERIAL = 1)
/obj/item/robot_parts/robot_component/armor/mech/Initialize()
. = ..()
AddComponent(/datum/component/armor, armor, ARMOR_TYPE_EXOSUIT)
/obj/item/robot_parts/robot_component/armor/mech/radproof /obj/item/robot_parts/robot_component/armor/mech/radproof
name = "radiation-proof armor plating" name = "radiation-proof armor plating"
desc = "A fully enclosed radiation hardened shell designed to protect the pilot from radiation." desc = "A fully enclosed radiation hardened shell designed to protect the pilot from radiation."
armor = list(melee = 75, bullet = 33, laser = 50, energy = 25, bomb = 25, bio = 100, rad = 100) armor = list(
melee = ARMOR_MELEE_RESISTANT,
bullet = ARMOR_BALLISTIC_PISTOL,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SHIELDED
)
origin_tech = list(TECH_MATERIAL = 3) origin_tech = list(TECH_MATERIAL = 3)
/obj/item/robot_parts/robot_component/armor/mech/em /obj/item/robot_parts/robot_component/armor/mech/em
name = "EM-shielded armor plating" name = "EM-shielded armor plating"
desc = "A shielded plating that sorrounds the eletronics and protects them from electromagnetic radiation." desc = "A shielded plating that sorrounds the eletronics and protects them from electromagnetic radiation."
armor = list(melee = 65, bullet = 20, laser = 25, energy = 100, bomb = 10, bio = 100, rad = 60) armor = list(
melee = ARMOR_MELEE_RESISTANT ,
bullet = ARMOR_BALLISTIC_SMALL,
laser = ARMOR_LASER_SMALL,
energy = ARMOR_ENERGY_SHIELDED,
bomb = ARMOR_BOMB_MINOR,
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SMALL
)
origin_tech = list(TECH_MATERIAL = 3) origin_tech = list(TECH_MATERIAL = 3)
/obj/item/robot_parts/robot_component/armor/mech/combat /obj/item/robot_parts/robot_component/armor/mech/combat
name = "heavy combat plating" name = "heavy combat plating"
desc = "Plating designed to deflect incoming attacks and explosions." desc = "Plating designed to deflect incoming attacks and explosions."
armor = list(melee = 85, bullet = 70, laser = 60, energy = 10, bomb = 70, bio = 100, rad = 0) armor = list(
melee = ARMOR_MELEE_MAJOR,
bullet = ARMOR_BALLISTIC_RESISTANT,
laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_MINOR,
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED
)
origin_tech = list(TECH_MATERIAL = 5) origin_tech = list(TECH_MATERIAL = 5)

View File

@@ -28,10 +28,12 @@
return pilot.hitby(AM, speed) return pilot.hitby(AM, speed)
. = ..() . = ..()
/mob/living/heavy_vehicle/getarmor(var/def_zone, var/type) /mob/living/heavy_vehicle/get_armors_by_zone(def_zone, damage_type, damage_flags)
. = ..()
if(body && body.mech_armor) if(body && body.mech_armor)
return isnull(body.mech_armor.armor[type]) ? 0 : body.mech_armor.armor[type] var/body_armor = body.mech_armor.GetComponent(/datum/component/armor)
return 0 if(body_armor)
. += body_armor
/mob/living/heavy_vehicle/updatehealth() /mob/living/heavy_vehicle/updatehealth()
maxHealth = body.mech_health maxHealth = body.mech_health
@@ -72,10 +74,14 @@
else else
return body return body
/mob/living/heavy_vehicle/apply_damage(var/damage = 0,var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/used_weapon = null, var/damage_flags) /mob/living/heavy_vehicle/apply_damage(var/damage = 0,var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/used_weapon = null, var/damage_flags, var/armor_pen, var/silent = FALSE)
if(!damage) if(!damage)
return 0 return 0
var/list/after_armor = modify_damage_by_armor(def_zone, damage, damagetype, damage_flags, src, armor_pen, TRUE)
damage = after_armor[1]
damagetype = after_armor[2]
var/target = zoneToComponent(def_zone) var/target = zoneToComponent(def_zone)
//Only 2 types of damage concern mechs and vehicles //Only 2 types of damage concern mechs and vehicles
switch(damagetype) switch(damagetype)
@@ -129,3 +135,6 @@
playsound(loc, "sound/effects/bang.ogg", 100, 1) playsound(loc, "sound/effects/bang.ogg", 100, 1)
playsound(loc, "sound/effects/bamf.ogg", 100, 1) playsound(loc, "sound/effects/bamf.ogg", 100, 1)
return TRUE return TRUE
/mob/living/heavy_vehicle/get_bullet_impact_effect_type(var/def_zone)
return BULLET_IMPACT_METAL

View File

@@ -127,11 +127,9 @@
var/obj/item/clothing/gloves/force/X = A.gloves var/obj/item/clothing/gloves/force/X = A.gloves
real_damage *= X.amplification real_damage *= X.amplification
var/armor = D.run_armor_check(hit_zone, "melee") attack.apply_effects(A, D, rand_damage, hit_zone)
attack.apply_effects(A, D, armor, rand_damage, hit_zone) D.apply_damage(real_damage, hit_dam_type, hit_zone, damage_flags = damage_flags)
D.apply_damage(real_damage, hit_dam_type, hit_zone, armor, damage_flags = damage_flags)
return 1 return 1

View File

@@ -36,8 +36,7 @@
A.visible_message("<span class='warning'>[A] strikes [D] with their open palm!</span>") A.visible_message("<span class='warning'>[A] strikes [D] with their open palm!</span>")
playsound(get_turf(A), /decl/sound_category/punch_sound, 50, 1, -1) playsound(get_turf(A), /decl/sound_category/punch_sound, 50, 1, -1)
var/obj/item/organ/external/affecting = D.get_organ(ran_zone(A.zone_sel.selecting)) var/obj/item/organ/external/affecting = D.get_organ(ran_zone(A.zone_sel.selecting))
var/armor_block = D.run_armor_check(affecting, "melee") D.apply_damage(25, PAIN, affecting)
D.apply_damage(25, PAIN, affecting, armor_block)
return 1 return 1
/datum/martial_art/karak_virul/proc/dislocating_strike(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) /datum/martial_art/karak_virul/proc/dislocating_strike(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)

View File

@@ -48,8 +48,7 @@
var/obj/item/organ/internal/eyes/eyes = D.get_eyes() var/obj/item/organ/internal/eyes/eyes = D.get_eyes()
eyes.take_damage(rand(3,4), 1) eyes.take_damage(rand(3,4), 1)
var/armor = D.getarmor_organ(affecting,"melee") D.apply_damage(10,BRUTE, BP_HEAD, damage_flags = DAM_SHARP|DAM_EDGE)
D.apply_damage(10,BRUTE, BP_HEAD, armor, damage_flags = DAM_SHARP|DAM_EDGE)
return 1 return 1
@@ -58,8 +57,7 @@
A.visible_message("<span class='danger'>[A] lunges forwards and strikes [D] with their claws!</span>") A.visible_message("<span class='danger'>[A] lunges forwards and strikes [D] with their claws!</span>")
playsound(get_turf(A), 'sound/weapons/slice.ogg', 50, 1, -1) playsound(get_turf(A), 'sound/weapons/slice.ogg', 50, 1, -1)
var/obj/item/organ/external/affecting = D.get_organ(ran_zone(A.zone_sel.selecting)) var/obj/item/organ/external/affecting = D.get_organ(ran_zone(A.zone_sel.selecting))
var/armor_block = D.run_armor_check(affecting, "melee") D.apply_damage(20, BRUTE, affecting, damage_flags = DAM_SHARP|DAM_EDGE)
D.apply_damage(20, BRUTE, affecting, armor_block, damage_flags = DAM_SHARP|DAM_EDGE)
if(prob(20)) if(prob(20))
D.apply_effect(4, WEAKEN) D.apply_effect(4, WEAKEN)
return 1 return 1
@@ -69,9 +67,8 @@
return 0 return 0
A.do_attack_animation(D) A.do_attack_animation(D)
var/obj/item/organ/external/organ = D.get_organ(A.zone_sel.selecting) var/obj/item/organ/external/organ = D.get_organ(A.zone_sel.selecting)
var/armor = D.getarmor_organ(organ,"melee")
A.visible_message("<span class='danger'>[A] stabs [D]'s [organ.name] with their claws!</span>") A.visible_message("<span class='danger'>[A] stabs [D]'s [organ.name] with their claws!</span>")
D.apply_damage(organ.brute_dam, BRUTE, organ, armor, damage_flags = DAM_SHARP|DAM_EDGE) D.apply_damage(organ.brute_dam, BRUTE, organ, damage_flags = DAM_SHARP|DAM_EDGE)
return 1 return 1
/datum/martial_art/baghrar/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) /datum/martial_art/baghrar/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)

View File

@@ -73,10 +73,9 @@
if(istype(A.get_active_hand(),/obj/item/grab)) if(istype(A.get_active_hand(),/obj/item/grab))
var/obj/item/grab/G = A.get_active_hand() var/obj/item/grab/G = A.get_active_hand()
if(G && G.affecting == D) if(G && G.affecting == D)
var/armor_block = D.run_armor_check(null, "melee")
A.visible_message("<span class='warning'>[A] crushes [D] with its mandibles!</span>") A.visible_message("<span class='warning'>[A] crushes [D] with its mandibles!</span>")
D.apply_damage(30, BRUTE, null, armor_block) D.apply_damage(30, BRUTE)
D.apply_effect(6, WEAKEN, armor_block) D.apply_effect(6, WEAKEN)
qdel(G) qdel(G)
return 1 return 1

View File

@@ -22,17 +22,15 @@
D.visible_message("<span class='danger'>[A] suplexes [D]!</span>") D.visible_message("<span class='danger'>[A] suplexes [D]!</span>")
D.forceMove(A.loc) D.forceMove(A.loc)
var/armor_block = D.run_armor_check(null, "melee") D.apply_damage(30, BRUTE)
D.apply_damage(30, BRUTE, null, armor_block) D.apply_effect(6, WEAKEN)
D.apply_effect(6, WEAKEN, armor_block)
add_logs(A, D, "suplexed") add_logs(A, D, "suplexed")
A.SpinAnimation(10,1) A.SpinAnimation(10,1)
D.SpinAnimation(10,1) D.SpinAnimation(10,1)
spawn(3) spawn(3)
armor_block = A.run_armor_check(null, "melee") A.apply_effect(4, WEAKEN)
A.apply_effect(4, WEAKEN, armor_block)
return return
/datum/martial_art/wrestling/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D) /datum/martial_art/wrestling/disarm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
@@ -48,8 +46,7 @@
D.grabbedby(A,1) D.grabbedby(A,1)
D.visible_message("<span class='danger'>[A] holds [D] down!</span>") D.visible_message("<span class='danger'>[A] holds [D] down!</span>")
var/obj/item/organ/external/affecting = D.get_organ(ran_zone(A.zone_sel.selecting)) var/obj/item/organ/external/affecting = D.get_organ(ran_zone(A.zone_sel.selecting))
var/armor_block = D.run_armor_check(affecting, "melee") D.apply_damage(40, PAIN, affecting)
D.apply_damage(40, PAIN, affecting, armor_block)
return 1 return 1
/datum/martial_art/wrestling/proc/wrestling_help() /datum/martial_art/wrestling/proc/wrestling_help()

View File

@@ -61,7 +61,7 @@
sleeping = 0 sleeping = 0
willfully_sleeping = FALSE willfully_sleeping = FALSE
/mob/living/carbon/standard_weapon_hit_effects(obj/item/I, mob/living/user, var/effective_force, var/blocked, var/hit_zone) /mob/living/carbon/standard_weapon_hit_effects(obj/item/I, mob/living/user, var/effective_force, var/hit_zone)
var/t_him = "it" var/t_him = "it"
if (src.gender == MALE) if (src.gender == MALE)
t_him = "him" t_him = "him"
@@ -90,7 +90,7 @@
willfully_sleeping = FALSE willfully_sleeping = FALSE
if(!effective_force || blocked >= 100) if(!effective_force)
return 0 return 0
//Hulk modifier //Hulk modifier
@@ -99,17 +99,12 @@
//Apply weapon damage //Apply weapon damage
var/damage_flags = I.damage_flags() var/damage_flags = I.damage_flags()
if(prob(blocked)) //armor provides a chance to turn sharp/edge weapon attacks into blunt ones apply_damage(effective_force, I.damtype, hit_zone, I, damage_flags)
damage_flags &= ~DAM_SHARP
damage_flags &= ~DAM_EDGE
apply_damage(effective_force, I.damtype, hit_zone, blocked, used_weapon=I, damage_flags = damage_flags)
//Melee weapon embedded object code. //Melee weapon embedded object code.
if (I && I.damtype == BRUTE && !I.anchored && !is_robot_module(I)) if (I && I.damtype == BRUTE && !I.anchored && !is_robot_module(I))
var/damage = effective_force //just the effective damage used for sorting out embedding, no further damage is applied here var/damage = effective_force //just the effective damage used for sorting out embedding, no further damage is applied here
if (blocked) damage *= 1 - get_blocked_ratio(hit_zone, I.damtype, I.damage_flags(), I.armor_penetration, I.force)
damage *= BLOCKED_MULT(blocked)
if(I.can_embed)//If this weapon is allowed to embed in people if(I.can_embed)//If this weapon is allowed to embed in people
//blunt objects should really not be embedding in things unless a huge amount of force is involved //blunt objects should really not be embedding in things unless a huge amount of force is involved

View File

@@ -100,7 +100,7 @@
if (severity) if (severity)
damage_factor = (1 / severity) damage_factor = (1 / severity)
var/armorval = getarmor(null, "bomb") var/armorval = get_blocked_ratio(BP_CHEST, BRUTE, DAM_DISPERSED, damage = damage)
if (armorval) if (armorval)
damage_factor *= (1 - (armorval * 0.01)) damage_factor *= (1 - (armorval * 0.01))

View File

@@ -233,15 +233,8 @@
if (1.0) if (1.0)
b_loss += 500 b_loss += 500
f_loss = 100 f_loss = 100
if (!prob(getarmor(null, "bomb")))
gib()
return
else
var/atom/target = get_edge_target_turf(src, get_dir(src, get_step_away(src, src))) var/atom/target = get_edge_target_turf(src, get_dir(src, get_step_away(src, src)))
throw_at(target, 200, 4) throw_at(target, 200, 4)
//return
// var/atom/target = get_edge_target_turf(user, get_dir(src, get_step_away(user, src)))
//user.throw_at(target, 200, 4)
if (2.0) if (2.0)
b_loss = 60 b_loss = 60
@@ -261,46 +254,15 @@
if (prob(50)) if (prob(50))
Paralyse(10) Paralyse(10)
// factor in armor
var/protection = BLOCKED_MULT(getarmor(null, "bomb"))
b_loss *= protection
f_loss *= protection
var/update = 0
// focus most of the blast on one organ // focus most of the blast on one organ
var/obj/item/organ/external/take_blast = pick(organs) apply_damage(0.7 * b_loss, BRUTE, null, DAM_EXPLODE, used_weapon = "Explosive blast")
update |= take_blast.take_damage(b_loss * 0.7, f_loss * 0.7, used_weapon = "Explosive blast") apply_damage(0.7 * f_loss, BURN, null, DAM_EXPLODE, used_weapon = "Explosive blast")
// distribute the remaining 30% on all limbs equally (including the one already dealt damage) // distribute the remaining 30% on all limbs equally (including the one already dealt damage)
b_loss *= 0.3 apply_damage(0.3 * b_loss, BRUTE, null, DAM_EXPLODE | DAM_DISPERSED, used_weapon = "Explosive blast")
f_loss *= 0.3 apply_damage(0.3 * f_loss, BURN, null, DAM_EXPLODE | DAM_DISPERSED, used_weapon = "Explosive blast")
var/weapon_message = "Explosive Blast" UpdateDamageIcon()
for(var/obj/item/organ/external/temp in organs)
switch(temp.name)
if(BP_HEAD)
update |= temp.take_damage(b_loss * 0.2, f_loss * 0.2, used_weapon = weapon_message)
if(BP_CHEST)
update |= temp.take_damage(b_loss * 0.4, f_loss * 0.4, used_weapon = weapon_message)
if(BP_L_ARM)
update |= temp.take_damage(b_loss * 0.05, f_loss * 0.05, used_weapon = weapon_message)
if(BP_R_ARM)
update |= temp.take_damage(b_loss * 0.05, f_loss * 0.05, used_weapon = weapon_message)
if(BP_L_LEG)
update |= temp.take_damage(b_loss * 0.05, f_loss * 0.05, used_weapon = weapon_message)
if(BP_R_LEG)
update |= temp.take_damage(b_loss * 0.05, f_loss * 0.05, used_weapon = weapon_message)
if(BP_R_FOOT)
update |= temp.take_damage(b_loss * 0.05, f_loss * 0.05, used_weapon = weapon_message)
if(BP_L_FOOT)
update |= temp.take_damage(b_loss * 0.05, f_loss * 0.05, used_weapon = weapon_message)
if(BP_R_ARM)
update |= temp.take_damage(b_loss * 0.05, f_loss * 0.05, used_weapon = weapon_message)
if(BP_L_ARM)
update |= temp.take_damage(b_loss * 0.05, f_loss * 0.05, used_weapon = weapon_message)
if(update) UpdateDamageIcon()
/mob/living/carbon/human/proc/implant_loyalty(mob/living/carbon/human/M, override = FALSE) // Won't override by default. /mob/living/carbon/human/proc/implant_loyalty(mob/living/carbon/human/M, override = FALSE) // Won't override by default.
if(!config.use_loyalty_implants && !override) return // Nuh-uh. if(!config.use_loyalty_implants && !override) return // Nuh-uh.
@@ -1988,15 +1950,17 @@
return BULLET_IMPACT_METAL return BULLET_IMPACT_METAL
return BULLET_IMPACT_MEAT return BULLET_IMPACT_MEAT
/mob/living/carbon/human/bullet_impact_visuals(var/obj/item/projectile/P, var/def_zone, var/damage) /mob/living/carbon/human/bullet_impact_visuals(var/obj/item/projectile/P, var/def_zone, var/damage, var/blocked_ratio)
..() ..()
if(blocked_ratio > 0.7)
return
switch(get_bullet_impact_effect_type(def_zone)) switch(get_bullet_impact_effect_type(def_zone))
if(BULLET_IMPACT_MEAT) if(BULLET_IMPACT_MEAT)
if(P.damage_type == BRUTE) if(P.damage_type == BRUTE)
var/hit_dir = get_dir(P.starting, src) var/hit_dir = get_dir(P.starting, src)
var/obj/effect/decal/cleanable/blood/B = blood_splatter(get_step(src, hit_dir), src, 1, hit_dir) var/obj/effect/decal/cleanable/blood/B = blood_splatter(get_step(src, hit_dir), src, 1, hit_dir)
B.icon_state = pick("dir_splatter_1","dir_splatter_2") B.icon_state = pick("dir_splatter_1","dir_splatter_2")
var/scale = min(1, round(P.damage / 50, 0.2)) var/scale = min(1, round(damage / 50, 0.2))
var/matrix/M = new() var/matrix/M = new()
B.transform = M.Scale(scale) B.transform = M.Scale(scale)
@@ -2011,9 +1975,9 @@
src.adjustToxLoss(-damage) src.adjustToxLoss(-damage)
to_chat(src, SPAN_NOTICE("You can feel flow of energy which makes you regenerate.")) to_chat(src, SPAN_NOTICE("You can feel flow of energy which makes you regenerate."))
src.apply_effect((rand(15,30)),IRRADIATE,blocked = src.getarmor(null, "rad")) apply_damage((rand(15,30)), IRRADIATE, damage_flags = DAM_DISPERSED)
if(prob(4)) if(prob(4))
src.apply_effect((rand(20,60)),IRRADIATE,blocked = src.getarmor(null, "rad")) apply_damage((rand(20,60)), IRRADIATE, damage_flags = DAM_DISPERSED)
if (prob(75)) if (prob(75))
randmutb(src) // Applies bad mutation randmutb(src) // Applies bad mutation
domutcheck(src,null,MUTCHK_FORCED) domutcheck(src,null,MUTCHK_FORCED)

View File

@@ -52,9 +52,8 @@
msg_admin_attack("[key_name_admin(M)] stungloved [src.name] ([src.ckey]) (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[M.x];Y=[M.y];Z=[M.z]'>JMP</a>)",ckey=key_name(M),ckey_target=key_name(src)) msg_admin_attack("[key_name_admin(M)] stungloved [src.name] ([src.ckey]) (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[M.x];Y=[M.y];Z=[M.z]'>JMP</a>)",ckey=key_name(M),ckey_target=key_name(src))
var/armorblock = run_armor_check(M.zone_sel.selecting, "energy") apply_effects(5,5,0,0,5,0,0,0,0)
apply_effects(5,5,0,0,5,0,0,0,0,armorblock) apply_damage(rand(5,25), BURN, M.zone_sel.selecting)
apply_damage(rand(5,25), BURN, M.zone_sel.selecting,armorblock)
if(prob(15)) if(prob(15))
playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1) playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1)
@@ -84,7 +83,6 @@
visible_message("<span class='danger'>[H] has attempted to punch [src]!</span>") visible_message("<span class='danger'>[H] has attempted to punch [src]!</span>")
return 0 return 0
var/obj/item/organ/external/affecting = get_organ(ran_zone(H.zone_sel.selecting)) var/obj/item/organ/external/affecting = get_organ(ran_zone(H.zone_sel.selecting))
var/armor_block = run_armor_check(affecting, "melee")
if(HULK in H.mutations) if(HULK in H.mutations)
damage += 5 damage += 5
@@ -93,10 +91,10 @@
visible_message("<span class='danger'>[H] has punched [src]!</span>") visible_message("<span class='danger'>[H] has punched [src]!</span>")
apply_damage(damage, PAIN, affecting, armor_block) apply_damage(damage, PAIN, affecting)
if(damage >= 9) if(damage >= 9)
visible_message("<span class='danger'>[H] has weakened [src]!</span>") visible_message("<span class='danger'>[H] has weakened [src]!</span>")
apply_effect(4, WEAKEN, armor_block) apply_effect(4, WEAKEN)
return return
@@ -284,12 +282,11 @@
var/obj/item/clothing/gloves/force/X = H.gloves var/obj/item/clothing/gloves/force/X = H.gloves
real_damage *= X.amplification real_damage *= X.amplification
var/armor = run_armor_check(hit_zone, "melee")
// Apply additional unarmed effects. // Apply additional unarmed effects.
attack.apply_effects(H, src, armor, rand_damage, hit_zone) attack.apply_effects(H, src, rand_damage, hit_zone)
// Finally, apply damage to target // Finally, apply damage to target
apply_damage(real_damage, hit_dam_type, hit_zone, armor, damage_flags = damage_flags) apply_damage(real_damage, hit_dam_type, hit_zone, damage_flags = damage_flags)
if(M.resting && src.help_up_offer) if(M.resting && src.help_up_offer)
@@ -375,7 +372,7 @@
var/randn = rand(1, 100) var/randn = rand(1, 100)
if(randn <= 25) if(randn <= 25)
if(H.gloves && istype(H.gloves,/obj/item/clothing/gloves/force)) if(H.gloves && istype(H.gloves,/obj/item/clothing/gloves/force))
apply_effect(6, WEAKEN, run_armor_check(affecting, "melee")) apply_effect(6, WEAKEN)
playsound(loc, 'sound/weapons/push_connect.ogg', 50, 1, -1) playsound(loc, 'sound/weapons/push_connect.ogg', 50, 1, -1)
visible_message("<span class='danger'>[M] hurls [src] to the floor!</span>") visible_message("<span class='danger'>[M] hurls [src] to the floor!</span>")
step_away(src,M,15) step_away(src,M,15)
@@ -384,7 +381,7 @@
return return
else else
var/armor_check = run_armor_check(affecting, "melee") var/armor_check = 100 * get_blocked_ratio(affecting, BRUTE, damage = 20)
apply_effect(3, WEAKEN, armor_check) apply_effect(3, WEAKEN, armor_check)
if(armor_check < 100) if(armor_check < 100)
visible_message("<span class='danger'>[M] has pushed [src]!</span>") visible_message("<span class='danger'>[M] has pushed [src]!</span>")
@@ -406,7 +403,7 @@
sleep(1) sleep(1)
step_away(src,M,15) step_away(src,M,15)
sleep(1) sleep(1)
apply_effect(1, WEAKEN, run_armor_check(affecting, "melee")) apply_effect(1, WEAKEN, get_blocked_ratio(M.zone_sel.selecting, BRUTE, damage = 20)*100)
return return
//See about breaking grips or pulls //See about breaking grips or pulls
@@ -506,8 +503,7 @@
if(!dam_zone) if(!dam_zone)
dam_zone = pick(organs) dam_zone = pick(organs)
var/obj/item/organ/external/affecting = get_organ(ran_zone(dam_zone)) var/obj/item/organ/external/affecting = get_organ(ran_zone(dam_zone))
var/armor_block = run_armor_check(affecting, "melee") apply_damage(damage, BRUTE, affecting)
apply_damage(damage, BRUTE, affecting, armor_block)
updatehealth() updatehealth()
return TRUE return TRUE

View File

@@ -20,7 +20,6 @@
ChangeToHusk() ChangeToHusk()
UpdateDamageIcon() // to fix that darn overlay bug UpdateDamageIcon() // to fix that darn overlay bug
return
/mob/living/carbon/human/proc/get_total_health() /mob/living/carbon/human/proc/get_total_health()
var/amount = maxHealth - getFireLoss() - getBruteLoss() - getOxyLoss() - getToxLoss() - getBrainLoss() var/amount = maxHealth - getFireLoss() - getBruteLoss() - getOxyLoss() - getToxLoss() - getBrainLoss()
@@ -323,7 +322,8 @@ In most cases it makes more sense to use apply_damage() instead! And make sure t
updatehealth() updatehealth()
BITSET(hud_updateflag, HEALTH_HUD) BITSET(hud_updateflag, HEALTH_HUD)
speech_problem_flag = 1 speech_problem_flag = 1
if(update) UpdateDamageIcon() if(update)
UpdateDamageIcon()
// damage MANY external organs, in random order // damage MANY external organs, in random order
/mob/living/carbon/human/take_overall_damage(var/brute, var/burn, var/damage_flags, var/used_weapon = null) /mob/living/carbon/human/take_overall_damage(var/brute, var/burn, var/damage_flags, var/used_weapon = null)
@@ -383,63 +383,76 @@ This function restores all organs.
zone = BP_HEAD zone = BP_HEAD
return organs_by_name[zone] return organs_by_name[zone]
/mob/living/carbon/human/apply_damage(var/damage = 0, var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/obj/used_weapon = null, var/damage_flags) /mob/living/carbon/human/apply_damage(var/damage = 0, var/damagetype = BRUTE, var/def_zone, var/obj/used_weapon, var/damage_flags, var/armor_pen, var/silent = FALSE)
//visible_message("Hit debug. [damage] | [damagetype] | [def_zone] | [blocked] | [sharp] | [used_weapon]")
if (invisibility == INVISIBILITY_LEVEL_TWO && back && (istype(back, /obj/item/rig))) if (invisibility == INVISIBILITY_LEVEL_TWO && back && (istype(back, /obj/item/rig)))
if(damage > 0) if(damage > 0)
to_chat(src, "<span class='danger'>You are now visible.</span>") to_chat(src, "<span class='danger'>You are now visible.</span>")
src.invisibility = 0 src.invisibility = 0
//Handle other types of damage var/obj/item/organ/external/organ = get_organ(def_zone)
if(damagetype != BRUTE && damagetype != BURN) if(!organ)
if(!stat && damagetype == PAIN)
if((damage > 25 && prob(20)) || (damage > 50 && prob(60)))
emote("scream")
..(damage, damagetype, def_zone, blocked)
return 1
//Handle BRUTE and BURN damage
handle_suit_punctures(damagetype, damage, def_zone)
if(blocked >= 100)
return 0
var/obj/item/organ/external/organ = null
if(isorgan(def_zone)) if(isorgan(def_zone))
organ = def_zone organ = def_zone
else else
if(!def_zone) def_zone = ran_zone(def_zone) if(!def_zone)
if(damage_flags & DAM_DISPERSED)
var/old_damage = damage
var/tally
silent = TRUE // Will damage a lot of organs, probably, so avoid spam.
for(var/zone in organ_rel_size)
tally += organ_rel_size[zone]
for(var/zone in organ_rel_size)
damage = old_damage * organ_rel_size[zone]/tally
def_zone = zone
. = .() || .
return
def_zone = ran_zone(def_zone)
organ = get_organ(check_zone(def_zone)) organ = get_organ(check_zone(def_zone))
if(!organ)
return 0
if(blocked) //Handle other types of damage
damage *= BLOCKED_MULT(blocked) if(!(damagetype in list(BRUTE, BURN, PAIN, CLONE)))
if(!stat && damagetype == PAIN)
if((damage > 25 && prob(20)) || (damage > 50 && prob(60)))
emote("scream")
return ..()
if(!organ)
return FALSE
handle_suit_punctures(damagetype, damage, def_zone)
var/list/after_armor = modify_damage_by_armor(def_zone, damage, damagetype, damage_flags, src, armor_pen, silent)
damage = after_armor[1]
damagetype = after_armor[2]
damage_flags = after_armor[3]
if(!damage)
return FALSE
if(damage > 15 && prob(damage*4) && organ.can_feel_pain()) if(damage > 15 && prob(damage*4) && organ.can_feel_pain())
make_adrenaline(round(damage/10)) make_adrenaline(round(damage/10))
switch(damagetype) switch(damagetype)
if(BRUTE) if(BRUTE)
damageoverlaytemp = 20 damageoverlaytemp = 20
if(damage > 0) if(damage > 0)
damage *= species.brute_mod damage *= species.brute_mod
if(organ.take_damage(damage, 0, damage_flags, used_weapon)) organ.take_damage(damage, 0, damage_flags, used_weapon)
UpdateDamageIcon() UpdateDamageIcon()
if(BURN) if(BURN)
damageoverlaytemp = 20 damageoverlaytemp = 20
if(damage > 0) if(damage > 0)
damage *= species.burn_mod damage *= species.burn_mod
if(organ.take_damage(0, damage, damage_flags, used_weapon)) organ.take_damage(0, damage, damage_flags, used_weapon)
UpdateDamageIcon() UpdateDamageIcon()
if(PAIN)
organ.add_pain(damage)
if(CLONE)
organ.add_genetic_damage(damage)
// Will set our damageoverlay icon to the next level, which will then be set back to the normal level the next mob.Life(). // Will set our damageoverlay icon to the next level, which will then be set back to the normal level the next mob.Life().
updatehealth() updatehealth()
BITSET(hud_updateflag, HEALTH_HUD) BITSET(hud_updateflag, HEALTH_HUD)
return 1 return TRUE
/mob/living/carbon/human/apply_radiation(var/rads) /mob/living/carbon/human/apply_radiation(var/rads)
if(species && rads > 0) if(species && rads > 0)

View File

@@ -43,11 +43,13 @@ emp_act
//Shrapnel //Shrapnel
if(!(species.flags & NO_EMBED) && P.can_embed()) if(!(species.flags & NO_EMBED) && P.can_embed())
var/armor = getarmor_organ(organ, "bullet") var/armor = get_blocked_ratio(def_zone, BRUTE, P.damage_flags(), armor_pen = P.armor_penetration, damage = P.damage)*100
if(prob(20 + max(P.damage + P.embed_chance - armor, -10))) if(prob(20 + max(P.damage + P.embed_chance - armor, -10)))
P.do_embed(organ) P.do_embed(organ)
return (..(P , def_zone)) var/blocked = ..(P, def_zone)
return blocked
/mob/living/carbon/human/stun_effect_act(var/stun_amount, var/agony_amount, var/def_zone) /mob/living/carbon/human/stun_effect_act(var/stun_amount, var/agony_amount, var/def_zone)
var/obj/item/organ/external/affected = get_organ(check_zone(def_zone)) var/obj/item/organ/external/affected = get_organ(check_zone(def_zone))
@@ -78,27 +80,37 @@ emp_act
..(stun_amount, agony_amount, def_zone) ..(stun_amount, agony_amount, def_zone)
/mob/living/carbon/human/getarmor(var/def_zone, var/type) /mob/living/carbon/human/get_blocked_ratio(def_zone, damage_type, damage_flags, armor_pen, damage)
var/armorval = 0 if(!def_zone && (damage_flags & DAM_DISPERSED))
var/total = 0 var/tally
for(var/zone in organ_rel_size)
tally += organ_rel_size[zone]
for(var/zone in organ_rel_size)
def_zone = zone
. += .() * organ_rel_size/tally
return
return ..()
if(def_zone) /mob/living/carbon/human/get_armors_by_zone(obj/item/organ/external/def_zone, damage_type, damage_flags)
if(isorgan(def_zone)) . = ..()
return getarmor_organ(def_zone, type) if(!def_zone)
var/obj/item/organ/external/affecting = get_organ(def_zone) def_zone = ran_zone()
if(affecting) if(!istype(def_zone))
return getarmor_organ(affecting, type) def_zone = get_organ(check_zone(def_zone))
//If a specific bodypart is targetted, check how that bodypart is protected and return the value. if(!def_zone)
return
//If you don't specify a bodypart, it checks ALL your bodyparts for protection, and averages out the values var/list/protective_gear = list(head, wear_mask, wear_suit, w_uniform, gloves, shoes)
for(var/organ_name in organs_by_name) for(var/obj/item/clothing/gear in protective_gear)
if (organ_name in organ_rel_size) if(gear.accessories && length(gear.accessories))
var/obj/item/organ/external/organ = organs_by_name[organ_name] for(var/obj/item/clothing/accessory/bling in gear.accessories)
if(organ) if(bling.body_parts_covered & def_zone.body_part)
var/weight = organ_rel_size[organ_name] var/armor = bling.GetComponent(/datum/component/armor)
armorval += getarmor_organ(organ, type) * weight if(armor)
total += weight . += armor
return (armorval/max(total, 1)) if(gear.body_parts_covered & def_zone.body_part)
var/armor = gear.GetComponent(/datum/component/armor)
if(armor)
. += armor
//this proc returns the Siemens coefficient of electrical resistivity for a particular external organ. //this proc returns the Siemens coefficient of electrical resistivity for a particular external organ.
/mob/living/carbon/human/proc/get_siemens_coefficient_organ(var/obj/item/organ/external/def_zone) /mob/living/carbon/human/proc/get_siemens_coefficient_organ(var/obj/item/organ/external/def_zone)
@@ -123,30 +135,16 @@ emp_act
results.Add(C) results.Add(C)
return results return results
//this proc returns the armor value for a particular external organ.
/mob/living/carbon/human/proc/getarmor_organ(var/obj/item/organ/external/def_zone, var/type)
if(!type || !def_zone) return 0
var/protection = 0
var/list/protective_gear = list(head, wear_mask, wear_suit, w_uniform, gloves, shoes)
for(var/obj/item/clothing/gear in protective_gear)
if(!isnull(gear.armor) && gear.body_parts_covered & def_zone.body_part)
protection = add_armor(protection, gear.armor[type])
for(var/obj/item/clothing/accessory/A in gear.accessories)
if(!isnull(A.armor) && A.body_parts_covered & def_zone.body_part)
protection = add_armor(protection, A.armor[type])
return protection
/mob/living/carbon/human/proc/check_head_coverage() /mob/living/carbon/human/proc/check_head_coverage()
var/list/body_parts = list(head, wear_mask, wear_suit, w_uniform) var/list/body_parts = list(head, wear_mask, wear_suit, w_uniform)
for(var/bp in body_parts) for(var/bp in body_parts)
if(!bp) continue if(!bp)
continue
if(bp && istype(bp ,/obj/item/clothing)) if(bp && istype(bp ,/obj/item/clothing))
var/obj/item/clothing/C = bp var/obj/item/clothing/C = bp
if(C.body_parts_covered & HEAD) if(C.body_parts_covered & HEAD)
return 1 return TRUE
return 0 return FALSE
/mob/living/carbon/human/proc/check_head_airtight_coverage() /mob/living/carbon/human/proc/check_head_airtight_coverage()
var/list/clothing = list(head, wear_mask, wear_suit) var/list/clothing = list(head, wear_mask, wear_suit)
@@ -231,19 +229,18 @@ emp_act
if(user == src) // Attacking yourself can't miss if(user == src) // Attacking yourself can't miss
target_zone = user.zone_sel.selecting target_zone = user.zone_sel.selecting
if(!target_zone)
visible_message("<span class='danger'>[user] misses [src] with \the [I]!</span>")
return 0
//var/obj/item/organ/external/affecting = get_organ(target_zone) if(!hit_zone)
visible_message("<span class='danger'>[user] misses [src] with \the [I]!</span>")
return
if(check_shields(I.force, I, user, target_zone, "the [I.name]")) if(check_shields(I.force, I, user, target_zone, "the [I.name]"))
return null return
var/obj/item/organ/external/affecting = get_organ(hit_zone) var/obj/item/organ/external/affecting = get_organ(hit_zone)
if (!affecting || affecting.is_stump()) if (!affecting || affecting.is_stump())
to_chat(user, "<span class='danger'>They are missing that limb!</span>") to_chat(user, "<span class='danger'>They are missing that limb!</span>")
return null return
return hit_zone return hit_zone
@@ -253,13 +250,9 @@ emp_act
return //should be prevented by attacked_with_item() but for sanity. return //should be prevented by attacked_with_item() but for sanity.
visible_message("<span class='danger'>[src] has been [LAZYPICK(I.attack_verb, "attacked")] in the [affecting.name] with [I] by [user]!</span>") visible_message("<span class='danger'>[src] has been [LAZYPICK(I.attack_verb, "attacked")] in the [affecting.name] with [I] by [user]!</span>")
return standard_weapon_hit_effects(I, user, effective_force, hit_zone)
var/blocked = run_armor_check(hit_zone, "melee", I.armor_penetration, "Your armor has protected your [affecting.name].", "Your armor has softened the blow to your [affecting.name].") /mob/living/carbon/human/standard_weapon_hit_effects(obj/item/I, mob/living/user, var/effective_force, var/hit_zone)
standard_weapon_hit_effects(I, user, effective_force, blocked, hit_zone)
return blocked
/mob/living/carbon/human/standard_weapon_hit_effects(obj/item/I, mob/living/user, var/effective_force, var/blocked, var/hit_zone)
var/obj/item/organ/external/affecting = get_organ(hit_zone) var/obj/item/organ/external/affecting = get_organ(hit_zone)
if(!affecting) if(!affecting)
return 0 return 0
@@ -273,23 +266,21 @@ emp_act
// Handle striking to cripple. // Handle striking to cripple.
if(user.a_intent == I_DISARM) if(user.a_intent == I_DISARM)
effective_force /= 2 //half the effective force effective_force /= 2 //half the effective force
if(!..(I, user, effective_force, blocked, hit_zone)) if(!..(I, user, effective_force, hit_zone))
return 0 return FALSE
attack_joint(affecting, I, blocked) //but can dislocate joints attack_joint(affecting, I, blocked) //but can dislocate joints
else if(!..()) else if(!..())
return 0 return FALSE
// forceglove amplification // forceglove amplification
if(istype(user, /mob/living/carbon/human)) if(ishuman(user))
var/mob/living/carbon/human/X = user var/mob/living/carbon/human/X = user
if(X.gloves && istype(X.gloves,/obj/item/clothing/gloves/force)) if(X.gloves && istype(X.gloves,/obj/item/clothing/gloves/force))
var/obj/item/clothing/gloves/force/G = X.gloves var/obj/item/clothing/gloves/force/G = X.gloves
effective_force *= G.amplification effective_force *= G.amplification
if(effective_force > 10 || effective_force >= 5 && prob(33))
forcesay(hit_appends) //forcesay checks stat already
if((I.damtype == BRUTE || I.damtype == PAIN) && prob(25 + (effective_force * 2))) if((I.damtype == BRUTE || I.damtype == PAIN) && prob(25 + (effective_force * 2)))
if(!stat) if(!stat)
if(headcheck(hit_zone)) if(headcheck(hit_zone))
@@ -326,7 +317,7 @@ emp_act
if(BP_CHEST) if(BP_CHEST)
bloody_body(src) bloody_body(src)
return 1 return TRUE
/mob/living/carbon/human/proc/attack_joint(var/obj/item/organ/external/organ, var/obj/item/W, var/blocked) /mob/living/carbon/human/proc/attack_joint(var/obj/item/organ/external/organ, var/obj/item/W, var/blocked)
if(!organ || (organ.dislocated == 2) || (organ.dislocated == -1) || blocked >= 100) if(!organ || (organ.dislocated == 2) || (organ.dislocated == -1) || blocked >= 100)
@@ -396,12 +387,8 @@ emp_act
var/obj/item/organ/external/affecting = get_organ(zone) var/obj/item/organ/external/affecting = get_organ(zone)
var/hit_area = affecting.name var/hit_area = affecting.name
src.visible_message("<span class='warning'>[src] has been hit in the [hit_area] by [O].</span>", "<span class='warning'><font size='2'>You're hit in the [hit_area] by [O]!</font></span>") src.visible_message("<span class='warning'>[src] has been hit in the [hit_area] by [O].</span>", "<span class='warning'><font size=2>You're hit in the [hit_area] by [O]!</font></span>")
var/armor = run_armor_check(affecting, "melee", O.armor_penetration, "Your armor has protected your [hit_area].", "Your armor has softened the hit to your [hit_area].") //I guess "melee" is the best fit here apply_damage(throw_damage, dtype, zone, used_weapon = O, damage_flags = O.damage_flags(), armor_pen = O.armor_penetration)
if(armor < 100)
var/damage_flags = O.damage_flags()
apply_damage(throw_damage, dtype, zone, armor, O, damage_flags = damage_flags)
if(ismob(O.thrower)) if(ismob(O.thrower))
var/mob/M = O.thrower var/mob/M = O.thrower
@@ -418,8 +405,7 @@ emp_act
if (!is_robot_module(I)) if (!is_robot_module(I))
var/sharp = is_sharp(I) var/sharp = is_sharp(I)
var/damage = throw_damage var/damage = throw_damage
if (armor) damage *= (1 - get_blocked_ratio(zone, BRUTE, O.damage_flags(), O.armor_penetration, damage))
damage *= BLOCKED_MULT(armor)
//blunt objects should really not be embedding in things unless a huge amount of force is involved //blunt objects should really not be embedding in things unless a huge amount of force is involved
var/embed_chance = sharp ? damage/I.w_class : damage/(I.w_class*3) var/embed_chance = sharp ? damage/I.w_class : damage/(I.w_class*3)
@@ -432,7 +418,7 @@ emp_act
// Begin BS12 momentum-transfer code. // Begin BS12 momentum-transfer code.
var/mass = 1.5 var/mass = 1.5
if(istype(O, /obj/item)) if(isitem(O))
var/obj/item/I = O var/obj/item/I = O
mass = I.w_class/THROWNOBJ_KNOCKBACK_DIVISOR mass = I.w_class/THROWNOBJ_KNOCKBACK_DIVISOR
var/momentum = speed*mass var/momentum = speed*mass

View File

@@ -1018,11 +1018,11 @@ mob/living/carbon/human/proc/change_monitor()
last_special = world.time + 20 last_special = world.time + 20
src.drop_from_inventory(O) drop_from_inventory(O)
O.replaced(src) O.replaced(src)
src.update_body() update_body()
src.updatehealth() updatehealth()
src.UpdateDamageIcon() UpdateDamageIcon()
update_body() update_body()
updatehealth() updatehealth()

View File

@@ -2,8 +2,8 @@
attack_verb = list("bit", "chomped on") attack_verb = list("bit", "chomped on")
attack_sound = 'sound/weapons/bite.ogg' attack_sound = 'sound/weapons/bite.ogg'
shredding = 0 shredding = 0
sharp = 1 sharp = TRUE
edge = 1 edge = TRUE
damage = 5 damage = 5
attack_name = "sharp bite" attack_name = "sharp bite"
@@ -21,8 +21,8 @@
eye_attack_text_victim = "sharp claws" eye_attack_text_victim = "sharp claws"
attack_sound = 'sound/weapons/slice.ogg' attack_sound = 'sound/weapons/slice.ogg'
miss_sound = 'sound/weapons/slashmiss.ogg' miss_sound = 'sound/weapons/slashmiss.ogg'
sharp = 1 sharp = TRUE
edge = 1 edge = TRUE
damage = 5 damage = 5
attack_name = "claws" attack_name = "claws"
@@ -64,13 +64,13 @@
/datum/unarmed_attack/claws/strong /datum/unarmed_attack/claws/strong
attack_verb = list("slashed") attack_verb = list("slashed")
damage = 10 damage = 10
shredding = 1 shredding = TRUE
attack_name = "strong claws" attack_name = "strong claws"
/datum/unarmed_attack/bite/strong /datum/unarmed_attack/bite/strong
attack_verb = list("mauled") attack_verb = list("mauled")
damage = 10 damage = 10
shredding = 1 shredding = TRUE
attack_name = "strong bite" attack_name = "strong bite"
/datum/unarmed_attack/slime_glomp /datum/unarmed_attack/slime_glomp
@@ -110,7 +110,7 @@
damage = 7 damage = 7
attack_sound = 'sound/weapons/smash.ogg' attack_sound = 'sound/weapons/smash.ogg'
attack_name = "heavy fist" attack_name = "heavy fist"
shredding = 1 shredding = TRUE
/datum/unarmed_attack/industrial/heavy /datum/unarmed_attack/industrial/heavy
damage = 9 damage = 9
@@ -125,7 +125,7 @@
damage = 12 damage = 12
attack_sound = 'sound/weapons/beartrap_shut.ogg' attack_sound = 'sound/weapons/beartrap_shut.ogg'
attack_name = "power fist" attack_name = "power fist"
shredding = 1 shredding = TRUE
/datum/unarmed_attack/terminator/apply_effects(var/mob/living/carbon/human/user,var/mob/living/carbon/human/target,var/armor,var/attack_damage,var/zone) /datum/unarmed_attack/terminator/apply_effects(var/mob/living/carbon/human/user,var/mob/living/carbon/human/target,var/armor,var/attack_damage,var/zone)
..() ..()
@@ -148,10 +148,10 @@
attack_verb = list("cleaved", "plowed", "swiped") attack_verb = list("cleaved", "plowed", "swiped")
attack_noun = list("massive claws") attack_noun = list("massive claws")
damage = 25 damage = 25
sharp = 1 sharp = TRUE
edge = 1 edge = TRUE
attack_name = "massive claws" attack_name = "massive claws"
shredding = 1 shredding = TRUE
/datum/unarmed_attack/claws/cleave/apply_effects(var/mob/living/carbon/human/user,var/mob/living/carbon/human/target,var/armor,var/attack_damage,var/zone) /datum/unarmed_attack/claws/cleave/apply_effects(var/mob/living/carbon/human/user,var/mob/living/carbon/human/target,var/armor,var/attack_damage,var/zone)
..() ..()
@@ -172,9 +172,9 @@
attack_verb = list("mauled","gored","perforated") attack_verb = list("mauled","gored","perforated")
attack_noun = list("mandibles") attack_noun = list("mandibles")
damage = 35 damage = 35
shredding = 1 shredding = TRUE
sharp = 1 sharp = TRUE
edge = 1 edge = TRUE
attack_name = "mandibles" attack_name = "mandibles"
/datum/unarmed_attack/bite/infectious /datum/unarmed_attack/bite/infectious
@@ -188,7 +188,7 @@
to_chat(user, SPAN_WARNING("You feel that \the [target] has been already infected!")) to_chat(user, SPAN_WARNING("You feel that \the [target] has been already infected!"))
var/infection_chance = 80 var/infection_chance = 80
infection_chance -= target.run_armor_check(zone,"melee") infection_chance -= target.get_blocked_ratio(zone, BRUTE, damage_flags = DAM_SHARP|DAM_EDGE, damage = damage)*100
if(prob(infection_chance)) if(prob(infection_chance))
if(target.reagents) if(target.reagents)
var/trioxin_amount = REAGENT_VOLUME(target.reagents, /decl/reagent/toxin/trioxin) var/trioxin_amount = REAGENT_VOLUME(target.reagents, /decl/reagent/toxin/trioxin)
@@ -200,7 +200,7 @@
damage = 15 damage = 15
attack_sound = 'sound/weapons/heavysmash.ogg' attack_sound = 'sound/weapons/heavysmash.ogg'
attack_name = "crushing fist" attack_name = "crushing fist"
shredding = 1 shredding = TRUE
/datum/unarmed_attack/shocking /datum/unarmed_attack/shocking
attack_verb = list("prodded", "touched") attack_verb = list("prodded", "touched")

View File

@@ -766,7 +766,7 @@ var/global/list/golem_types = list(SPECIES_GOLEM_COAL,
/datum/species/golem/uranium/handle_environment_special(var/mob/living/carbon/human/H) /datum/species/golem/uranium/handle_environment_special(var/mob/living/carbon/human/H)
if(prob(25)) if(prob(25))
for(var/mob/living/L in view(7, H)) for(var/mob/living/L in view(7, H))
L.apply_effect(150, IRRADIATE, blocked = L.getarmor(null, "rad")) L.apply_damage(150, IRRADIATE, damage_flags = DAM_DISPERSED)
/datum/species/golem/homunculus /datum/species/golem/homunculus
name = SPECIES_GOLEM_MEAT name = SPECIES_GOLEM_MEAT

View File

@@ -43,18 +43,19 @@ var/global/list/sparring_attack_cache = list()
/datum/unarmed_attack/proc/get_unarmed_damage() /datum/unarmed_attack/proc/get_unarmed_damage()
return damage return damage
/datum/unarmed_attack/proc/apply_effects(var/mob/living/carbon/human/user,var/mob/living/carbon/human/target,var/armor,var/attack_damage,var/zone) /datum/unarmed_attack/proc/apply_effects(var/mob/living/carbon/human/user,var/mob/living/carbon/human/target,var/attack_damage,var/zone)
if(target.stat == DEAD) if(target.stat == DEAD)
return return
var/stun_chance = rand(0, 100) var/stun_chance = rand(0, 100)
var/armor = target.get_blocked_ratio(zone, BRUTE)
var/pain_message = TRUE var/pain_message = TRUE
if(!target.can_feel_pain()) if(!target.can_feel_pain())
pain_message = FALSE pain_message = FALSE
if(attack_damage >= 5 && armor < 100 && !(target == user) && stun_chance <= attack_damage * 5) // 25% standard chance if(attack_damage >= 5 && armor < 1 && !(target == user) && stun_chance <= attack_damage * 5) // 25% standard chance
switch(zone) // strong punches can have effects depending on where they hit switch(zone) // strong punches can have effects depending on where they hit
if(BP_HEAD, BP_MOUTH, BP_EYES) if(BP_HEAD, BP_MOUTH, BP_EYES)
// Induce blurriness // Induce blurriness
@@ -92,12 +93,12 @@ var/global/list/sparring_attack_cache = list()
if(pain_message) if(pain_message)
target.visible_message("<span class='warning'>[target] gives way slightly.</span>") target.visible_message("<span class='warning'>[target] gives way slightly.</span>")
target.apply_effect(attack_damage*3, PAIN, armor) target.apply_effect(attack_damage*3, PAIN, armor)
else if(attack_damage >= 5 && !(target == user) && (stun_chance + attack_damage * 5 >= 100) && armor < 100) // Chance to get the usual throwdown as well (25% standard chance) else if(attack_damage >= 5 && !(target == user) && (stun_chance + attack_damage * 5 >= 100) && armor < 1) // Chance to get the usual throwdown as well (25% standard chance)
if(!target.lying) if(!target.lying)
target.visible_message("<span class='danger'>[target] [pick("slumps", "falls", "drops")] down to the ground!</span>") target.visible_message("<span class='danger'>[target] [pick("slumps", "falls", "drops")] down to the ground!</span>")
else else
target.visible_message("<span class='danger'>[target] has been weakened!</span>") target.visible_message("<span class='danger'>[target] has been weakened!</span>")
target.apply_effect(3, WEAKEN, armor) target.apply_effect(3, WEAKEN, armor*100)
/datum/unarmed_attack/proc/show_attack(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone, var/attack_damage) /datum/unarmed_attack/proc/show_attack(var/mob/living/carbon/human/user, var/mob/living/carbon/human/target, var/zone, var/attack_damage)
var/obj/item/organ/external/affecting = target.get_organ(zone) var/obj/item/organ/external/affecting = target.get_organ(zone)

View File

@@ -8,36 +8,46 @@
standard 0 if fail standard 0 if fail
*/ */
/mob/living/proc/apply_damage(var/damage = 0,var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/used_weapon = null, var/damage_flags) /mob/living/proc/apply_damage(var/damage = 0, var/damagetype = BRUTE, var/def_zone, var/used_weapon, var/damage_flags = 0, var/armor_pen, var/silent = FALSE)
if(!damage || (blocked >= 100)) if(!damage)
return 0 return FALSE
var/list/after_armor = modify_damage_by_armor(def_zone, damage, damagetype, damage_flags, src, armor_pen, silent)
damage = after_armor[1]
damagetype = after_armor[2]
damage_flags = after_armor[3] // args modifications in case of parent calls
if(!damage)
return FALSE
switch(damagetype) switch(damagetype)
if(BRUTE) if(BRUTE)
adjustBruteLoss(damage * BLOCKED_MULT(blocked)) adjustBruteLoss(damage)
if(BURN) if(BURN)
if(COLD_RESISTANCE in mutations) if(COLD_RESISTANCE in mutations)
damage = 0 damage = 0
adjustFireLoss(damage * BLOCKED_MULT(blocked)) adjustFireLoss(damage)
if(TOX) if(TOX)
adjustToxLoss(damage * BLOCKED_MULT(blocked)) adjustToxLoss(damage)
if(OXY) if(OXY)
adjustOxyLoss(damage * BLOCKED_MULT(blocked)) adjustOxyLoss(damage)
if(CLONE) if(CLONE)
adjustCloneLoss(damage * BLOCKED_MULT(blocked)) adjustCloneLoss(damage)
if(PAIN) if(PAIN)
adjustHalLoss(damage * BLOCKED_MULT(blocked)) adjustHalLoss(damage)
updatehealth() if(IRRADIATE)
return 1 apply_radiation(damage)
/mob/living/proc/apply_damages(var/brute = 0, var/burn = 0, var/tox = 0, var/oxy = 0, var/clone = 0, var/halloss = 0, var/def_zone = null, var/blocked = 0) updatehealth()
if(blocked >= 100) return 0 return TRUE
/mob/living/proc/apply_damages(var/brute = 0, var/burn = 0, var/tox = 0, var/oxy = 0, var/clone = 0, var/halloss = 0, var/def_zone, var/damage_flags = 0)
if(brute) apply_damage(brute, BRUTE, def_zone, blocked) if(brute) apply_damage(brute, BRUTE, def_zone, blocked)
if(burn) apply_damage(burn, BURN, def_zone, blocked) if(burn) apply_damage(burn, BURN, def_zone, blocked)
if(tox) apply_damage(tox, TOX, def_zone, blocked) if(tox) apply_damage(tox, TOX, def_zone, blocked)
if(oxy) apply_damage(oxy, OXY, def_zone, blocked) if(oxy) apply_damage(oxy, OXY, def_zone, blocked)
if(clone) apply_damage(clone, CLONE, def_zone, blocked) if(clone) apply_damage(clone, CLONE, def_zone, blocked)
if(halloss) apply_damage(halloss, PAIN, def_zone, blocked) if(halloss) apply_damage(halloss, PAIN, def_zone, blocked)
return 1 return TRUE
/mob/living/proc/apply_effect(var/effect = 0,var/effecttype = STUN, var/blocked = 0) /mob/living/proc/apply_effect(var/effect = 0,var/effecttype = STUN, var/blocked = 0)
if(!effect || (blocked >= 100)) return 0 if(!effect || (blocked >= 100)) return 0
@@ -50,9 +60,6 @@
Paralyse(effect * BLOCKED_MULT(blocked)) Paralyse(effect * BLOCKED_MULT(blocked))
if(PAIN) if(PAIN)
adjustHalLoss(effect * BLOCKED_MULT(blocked)) //Changed this to use the wrapper function, it shouldn't directly alter the value adjustHalLoss(effect * BLOCKED_MULT(blocked)) //Changed this to use the wrapper function, it shouldn't directly alter the value
if(IRRADIATE)
var/rad_protection = blocked ? getarmor(null, "rad")/100 : 0
apply_radiation(max((1-rad_protection) * BLOCKED_MULT(blocked),0))//Rads auto check armor
if(STUTTER) if(STUTTER)
if(status_flags & CANSTUN) // stun is usually associated with stutter if(status_flags & CANSTUN) // stun is usually associated with stutter
stuttering = max(stuttering, effect * BLOCKED_MULT(blocked)) stuttering = max(stuttering, effect * BLOCKED_MULT(blocked))
@@ -71,7 +78,6 @@
if(stun) apply_effect(stun, STUN, blocked) if(stun) apply_effect(stun, STUN, blocked)
if(weaken) apply_effect(weaken, WEAKEN, blocked) if(weaken) apply_effect(weaken, WEAKEN, blocked)
if(paralyze) apply_effect(paralyze, PARALYZE, blocked) if(paralyze) apply_effect(paralyze, PARALYZE, blocked)
if(irradiate) apply_effect(irradiate, IRRADIATE, blocked)
if(stutter) apply_effect(stutter, STUTTER, blocked) if(stutter) apply_effect(stutter, STUTTER, blocked)
if(eyeblur) apply_effect(eyeblur, EYE_BLUR, blocked) if(eyeblur) apply_effect(eyeblur, EYE_BLUR, blocked)
if(drowsy) apply_effect(drowsy, DROWSY, blocked) if(drowsy) apply_effect(drowsy, DROWSY, blocked)

Some files were not shown because too many files have changed in this diff Show More