mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-12 07:35:31 +01:00
fix some weirdness with wall damage overlays
Signed-off-by: Mloc <colmohici@gmail.com>
This commit is contained in:
@@ -44,6 +44,7 @@
|
||||
return
|
||||
|
||||
overlays.Cut()
|
||||
damage_overlay = 0
|
||||
|
||||
if(!wall_cache["[new_state]-[material.icon_colour]"])
|
||||
var/image/I = image(icon='icons/turf/wall_masks.dmi',icon_state="[new_state]")
|
||||
@@ -74,7 +75,6 @@
|
||||
check_relatives(1)
|
||||
|
||||
/turf/simulated/wall/proc/update_icon()
|
||||
|
||||
if(!material)
|
||||
return
|
||||
|
||||
@@ -86,15 +86,23 @@
|
||||
else
|
||||
set_wall_state("[material.icon_base]fwall_open")
|
||||
|
||||
var/dmg_amt = material.integrity
|
||||
if(reinf_material)
|
||||
dmg_amt += reinf_material.integrity
|
||||
var/overlay = round(damage / dmg_amt * damage_overlays.len) + 1
|
||||
if(overlay > damage_overlays.len)
|
||||
overlay = damage_overlays.len
|
||||
if(density)
|
||||
if(damage == 0)
|
||||
if(damage_overlay != 0)
|
||||
overlays -= damage_overlays[damage_overlay]
|
||||
damage_overlay = 0
|
||||
else if(density)
|
||||
var/integrity = material.integrity
|
||||
if(reinf_material)
|
||||
integrity += reinf_material.integrity
|
||||
|
||||
var/overlay = round(damage / integrity * damage_overlays.len) + 1
|
||||
if(overlay > damage_overlays.len)
|
||||
overlay = damage_overlays.len
|
||||
|
||||
if(damage_overlay && overlay == damage_overlay) //No need to update.
|
||||
return
|
||||
|
||||
if(damage_overlay) overlays -= damage_overlays[damage_overlay]
|
||||
overlays += damage_overlays[overlay]
|
||||
damage_overlay = overlay
|
||||
return
|
||||
@@ -131,4 +139,4 @@
|
||||
/turf/simulated/wall/proc/can_join_with(var/turf/simulated/wall/W)
|
||||
if(material && W.material && material.icon_base == W.material.icon_base)
|
||||
return 1
|
||||
return 0
|
||||
return 0
|
||||
|
||||
@@ -12,8 +12,8 @@ var/list/global/wall_cache = list()
|
||||
heat_capacity = 312500 //a little over 5 cm thick , 312500 for 1 m by 2.5 m by 0.25 m plasteel wall
|
||||
|
||||
var/damage = 0
|
||||
var/damage_overlay
|
||||
var/global/damage_overlays[8]
|
||||
var/damage_overlay = 0
|
||||
var/global/damage_overlays[16]
|
||||
var/active
|
||||
var/can_open = 0
|
||||
var/material/material
|
||||
|
||||
Reference in New Issue
Block a user