diff --git a/code/modules/materials/definitions/materials_organic.dm b/code/modules/materials/definitions/materials_organic.dm
index 00e8c0b36b0..2065f604a73 100644
--- a/code/modules/materials/definitions/materials_organic.dm
+++ b/code/modules/materials/definitions/materials_organic.dm
@@ -9,6 +9,7 @@
icon_colour = COLOR_WHITE
hardness = MATERIAL_FLEXIBLE
weight = 5
+ integrity = 50
melting_point = T0C+371 //assuming heat resistant plastic
stack_origin_tech = list(TECH_MATERIAL = 3)
conductive = 0
@@ -61,6 +62,7 @@
hardness = MATERIAL_SOFT
weight = 1
brute_armor = 1
+ integrity = 10
conductive = 0
stack_type = null
hidden_from_codex = TRUE
diff --git a/code/modules/mechs/components/armour.dm b/code/modules/mechs/components/armour.dm
index e67f5815d42..4818a46e579 100644
--- a/code/modules/mechs/components/armour.dm
+++ b/code/modules/mechs/components/armour.dm
@@ -37,13 +37,13 @@
icon_state = "armor_e"
icon_state_broken = "armor_e_broken"
armor = list(
- melee = ARMOR_MELEE_RESISTANT ,
- bullet = ARMOR_BALLISTIC_SMALL,
- laser = ARMOR_LASER_SMALL,
+ melee = ARMOR_MELEE_RESISTANT,
+ bullet = ARMOR_BALLISTIC_PISTOL,
+ laser = ARMOR_LASER_HANDGUNS,
energy = ARMOR_ENERGY_SHIELDED,
- bomb = ARMOR_BOMB_MINOR,
+ bomb = ARMOR_BOMB_PADDED,
bio = ARMOR_BIO_SHIELDED,
- rad = ARMOR_RAD_SMALL
+ rad = ARMOR_RAD_MINOR
)
origin_tech = list(TECH_MATERIAL = 3)
@@ -64,4 +64,4 @@
/obj/item/robot_parts/robot_component/armour/exosuit/Initialize()
. = ..()
- set_extension(src, /datum/extension/armor/mech, armor)
\ No newline at end of file
+ set_extension(src, /datum/extension/armor/mech, armor)
diff --git a/code/modules/mechs/components/body.dm b/code/modules/mechs/components/body.dm
index 764dc12b585..443ccd2afb5 100644
--- a/code/modules/mechs/components/body.dm
+++ b/code/modules/mechs/components/body.dm
@@ -1,4 +1,4 @@
-/obj/item/storage/mech
+/obj/item/storage/mech //[INF] Сам багажник меха
w_class = ITEM_SIZE_NO_CONTAINER
max_w_class = ITEM_SIZE_LARGE
storage_slots = 4
@@ -21,8 +21,9 @@
name = "body"
icon_state = "loader_body"
gender = NEUTER
-
- var/mech_health = 300
+//*=======REINFORCES FOR MECH===================
+//[INF]ХП корпуса будет зависить от материала, которым обшивают меха. Чем он прочнее (больше Integrity), тем больше мех вытерпливает поджопников до полного разрушения
+ var/mech_health = 150 //в updatehealth() добавляется хп от укрепления ресурсом.
var/obj/item/cell/cell
var/obj/item/robot_parts/robot_component/diagnosis_unit/diagnostics
var/obj/item/robot_parts/robot_component/armour/exosuit/m_armour
diff --git a/code/modules/mechs/mech_damage.dm b/code/modules/mechs/mech_damage.dm
index 759cb21cab4..4ffab699588 100644
--- a/code/modules/mechs/mech_damage.dm
+++ b/code/modules/mechs/mech_damage.dm
@@ -43,7 +43,7 @@
return AR
return def_zone //Careful with effects, mechs shouldn't be stunned
-
+
/mob/living/exosuit/hitby(atom/movable/AM, var/datum/thrownthing/TT)
if(LAZYLEN(pilots) && (!hatch_closed || !prob(body.pilot_coverage)))
var/mob/living/pilot = pick(pilots)
@@ -66,7 +66,7 @@
. += body_armor
/mob/living/exosuit/updatehealth()
- maxHealth = body ? body.mech_health : 0
+ maxHealth = body ? (body.mech_health + material.integrity) : 0 //[INF] Обьяснение логики в code/modules/mechs/components/body
health = maxHealth-(getFireLoss()+getBruteLoss())
/mob/living/exosuit/adjustFireLoss(var/amount, var/obj/item/mech_component/MC = pick(list(arms, legs, body, head)))
@@ -126,9 +126,21 @@
var/target = zoneToComponent(def_zone)
//Only 3 types of damage concern mechs and vehicles
switch(damagetype)
+ //==============================================RENFORCE MATERIAL=============================================================
+ //This code response for mech reiforce - melting(heat), brute and burn defense . Hear writed all material modifiers (Steel - Standart (Brute 7 Burn 7))
if(BRUTE)
+ //Данная формула использует БРУТ АРМОР материала, которым обшили меха (Его каркас)
+ var/brute_resist = ((material.brute_armor-7)) // Макс защита - 4 от брута, 8 от бёрна
+ if(brute_resist > 4)
+ brute_resist = 4
+ damage = damage - brute_resist
adjustBruteLoss(damage, target)
if(BURN)
+ //Данная формула использует БЁРН АРМОР материала, которым обшили меха (Его каркас)
+ var/burn_resist = ((material.burn_armor-7))
+ if(burn_resist > 8)
+ burn_resist = 5
+ damage = damage - burn_resist
adjustFireLoss(damage, target)
if(IRRADIATE)
for(var/mob/living/pilot in pilots)
@@ -149,7 +161,7 @@
if(!hatch_closed || (body.pilot_coverage < 100)) //Open, environment is the source
return .
var/list/after_armor = modify_damage_by_armor(null, ., IRRADIATE, DAM_DISPERSED, src, 0, TRUE)
- return after_armor[1]
+ return after_armor[1]
/mob/living/exosuit/getFireLoss()
var/total = 0
@@ -185,6 +197,6 @@
for(var/thing in pilots)
var/mob/pilot = thing
pilot.emp_act(severity)
-
+
/mob/living/exosuit/get_bullet_impact_effect_type(def_zone)
return BULLET_IMPACT_METAL
diff --git a/code/modules/mechs/premade/combat.dm b/code/modules/mechs/premade/combat.dm
index 520b8d4fdbd..21afc0d72e7 100644
--- a/code/modules/mechs/premade/combat.dm
+++ b/code/modules/mechs/premade/combat.dm
@@ -40,6 +40,7 @@
name = "combat arms"
exosuit_desc_string = "flexible, advanced manipulators"
icon_state = "combat_arms"
+ max_damage = 60
melee_damage = 25
action_delay = 10
power_use = 50
@@ -48,6 +49,7 @@
name = "combat legs"
exosuit_desc_string = "sleek hydraulic legs"
icon_state = "combat_legs"
+ max_damage = 60
move_delay = 3
turn_delay = 3
power_use = 20
@@ -55,6 +57,7 @@
/obj/item/mech_component/sensors/combat
name = "combat sensors"
gender = PLURAL
+ max_damage = 60
exosuit_desc_string = "high-resolution thermal sensors"
icon_state = "combat_head"
vision_flags = SEE_MOBS
@@ -67,9 +70,10 @@
software.installed_software = list(MECH_SOFTWARE_WEAPONS)
/obj/item/mech_component/chassis/combat
- name = "sealed exosuit chassis"
+ name = "combat exosuit chassis"
hatch_descriptor = "canopy"
pilot_coverage = 100
+ max_damage = 100 //[INF]+40 хп
exosuit_desc_string = "an armoured chassis"
icon_state = "combat_body"
power_use = 40
diff --git a/code/modules/mechs/premade/heavy.dm b/code/modules/mechs/premade/heavy.dm
index be745f634d6..4e1a4cb3af9 100644
--- a/code/modules/mechs/premade/heavy.dm
+++ b/code/modules/mechs/premade/heavy.dm
@@ -32,7 +32,7 @@
desc = "Designed to function where any other piece of equipment would have long fallen apart, the Hephaestus Superheavy Lifter series can take a beating and excel at delivering it."
melee_damage = 40
action_delay = 15
- max_damage = 90
+ max_damage = 160
power_use = 60
/obj/item/mech_component/propulsion/heavy
@@ -65,7 +65,7 @@
pilot_coverage = 100
exosuit_desc_string = "a heavily armoured chassis"
icon_state = "heavy_body"
- max_damage = 150
+ max_damage = 160
mech_health = 500
power_use = 50
has_hardpoints = list(HARDPOINT_BACK)
diff --git a/code/modules/mechs/premade/light.dm b/code/modules/mechs/premade/light.dm
index 18fef2391e9..ad5a0c388bd 100644
--- a/code/modules/mechs/premade/light.dm
+++ b/code/modules/mechs/premade/light.dm
@@ -54,7 +54,7 @@
gender = PLURAL
exosuit_desc_string = "advanced sensor array"
icon_state = "light_head"
- max_damage = 30
+ max_damage = 45
vision_flags = SEE_TURFS
see_invisible = SEE_INVISIBLE_NOLIGHTING
power_use = 50
diff --git a/code/modules/mechs/premade/powerloader.dm b/code/modules/mechs/premade/powerloader.dm
index 4750c099a26..79ce1110f65 100644
--- a/code/modules/mechs/premade/powerloader.dm
+++ b/code/modules/mechs/premade/powerloader.dm
@@ -44,7 +44,7 @@
name = "exosuit arms"
exosuit_desc_string = "heavy-duty industrial lifters"
melee_damage = 25
- max_damage = 70
+ max_damage = 50 //[INF] было 70
power_use = 30
desc = "The Xion Industrial Digital Interaction Manifolds allow you poke untold dangers from the relative safety of your cockpit."
@@ -52,7 +52,7 @@
name = "exosuit legs"
exosuit_desc_string = "reinforced hydraulic legs"
desc = "Wide and stable but not particularly fast."
- max_damage = 70
+ max_damage = 50 //[INF] было 70
move_delay = 4
turn_delay = 4
power_use = 10
@@ -62,7 +62,7 @@
gender = PLURAL
exosuit_desc_string = "simple collision detection sensors"
desc = "A primitive set of sensors designed to work in tandem with most MKI Eyeball platforms."
- max_damage = 100
+ max_damage = 50 //[INF] было 100(чё)
power_use = 0
/obj/item/mech_component/sensors/powerloader/prebuild()
@@ -76,7 +76,7 @@
pilot_coverage = 40
exosuit_desc_string = "an industrial rollcage"
desc = "A Xion industrial brand roll cage. Technically OSHA compliant. Technically."
- max_damage = 100
+ max_damage = 60 //[INF] Теперь стандартное хп. Карго пузо НЕ должно быть крепче боевой туши
power_use = 0
climb_time = 6
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index dad81c93c3d..efc052613b4 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -164,7 +164,7 @@
mass = I.w_class/THROWNOBJ_KNOCKBACK_DIVISOR
var/momentum = TT.speed*mass
- if(momentum >= THROWNOBJ_KNOCKBACK_SPEED | can_be_buckled)
+ if(momentum >= THROWNOBJ_KNOCKBACK_SPEED || can_be_buckled)
if(!can_be_buckled)//Not effective vs slimes and mechs
visible_message("[O] flyes away from [src]!","The projectile was ineffective against you!")
apply_damage(throw_damage*1.4, BRUTE) //[INF] Мехи и слаймы не прибиваются, а просто получают урон. Учтите, он проходит сквозь энергощит меха.
diff --git a/infinity/code/modules/mechs/armour.dm b/infinity/code/modules/mechs/armour.dm
index a1f42c218a9..458bcfc2ab5 100644
--- a/infinity/code/modules/mechs/armour.dm
+++ b/infinity/code/modules/mechs/armour.dm
@@ -2,9 +2,9 @@
name = "tactical combat plating"
desc = "Special combat plating, designed for operating in field of battle."
armor = list(
- melee = ARMOR_MELEE_MAJOR + 5, //55
- bullet = ARMOR_BALLISTIC_RESISTANT, //65
- laser = ARMOR_LASER_MAJOR, //55
+ melee = ARMOR_MELEE_MAJOR + 5,
+ bullet = ARMOR_BALLISTIC_RESISTANT,
+ laser = ARMOR_LASER_MAJOR,
energy = ARMOR_ENERGY_STRONG, //EMP dont work actually
bomb = ARMOR_BOMB_RESISTANT,
bio = ARMOR_BIO_SHIELDED