Merge pull request #9611 from SamHPurp/damaged-tile-overlays

Tiles now overlay damage & scorch
This commit is contained in:
variableundefined
2018-10-01 16:21:29 +08:00
committed by GitHub
18 changed files with 721 additions and 784 deletions
+17
View File
@@ -268,3 +268,20 @@
ruin_landmarks -= src
ruin_template = null
. = ..()
// Damage tiles
/obj/effect/landmark/damageturf
icon_state = "damaged"
/obj/effect/landmark/damageturf/New()
..()
var/turf/simulated/T = get_turf(src)
T.break_tile()
/obj/effect/landmark/burnturf
icon_state = "burned"
/obj/effect/landmark/burnturf/New()
..()
var/turf/simulated/T = get_turf(src)
T.burn_tile()
+2
View File
@@ -16,6 +16,8 @@
levelupdate()
visibilityChanged()
/turf/simulated/proc/break_tile()
/turf/simulated/proc/burn_tile()
/turf/simulated/proc/MakeSlippery(wet_setting = TURF_WET_WATER) // 1 = Water, 2 = Lube, 3 = Ice
+14 -10
View File
@@ -25,10 +25,11 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3","
var/lava = 0
var/broken = 0
var/burnt = 0
var/current_overlay = null
var/floor_tile = null //tile that this floor drops
var/obj/item/stack/tile/builtin_tile = null //needed for performance reasons when the singularity rips off floor tiles
var/list/broken_states = list("damaged1", "damaged2", "damaged3", "damaged4", "damaged5")
var/list/burnt_states = list()
var/list/burnt_states = list("floorscorched1", "floorscorched2")
/turf/simulated/floor/New()
@@ -89,6 +90,9 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3","
/turf/simulated/floor/proc/update_icon()
if(air)
update_visuals()
overlays -= current_overlay
if(current_overlay)
overlays.Add(current_overlay)
return 1
/turf/simulated/floor/proc/gets_drilled()
@@ -98,20 +102,19 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3","
var/turf/simulated/floor/plating/T = make_plating()
T.break_tile()
/turf/simulated/floor/proc/break_tile()
/turf/simulated/floor/break_tile()
if(broken)
return
icon_state = pick(broken_states)
broken = 1
current_overlay = pick(broken_states)
broken = TRUE
update_icon()
/turf/simulated/floor/burn_tile()
if(broken || burnt)
if(burnt)
return
if(burnt_states.len)
icon_state = pick(burnt_states)
else
icon_state = pick(broken_states)
burnt = 1
current_overlay = pick(burnt_states)
burnt = TRUE
update_icon()
/turf/simulated/floor/proc/make_plating()
return ChangeTurf(/turf/simulated/floor/plating)
@@ -187,6 +190,7 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3","
if(broken || burnt)
broken = 0
burnt = 0
current_overlay = null
if(user && !silent)
to_chat(user, "<span class='danger'>You remove the broken plating.</span>")
else
+4 -3
View File
@@ -3,8 +3,8 @@
icon_state = "plating"
intact = 0
floor_tile = null
broken_states = list("platingdmg1", "platingdmg2", "platingdmg3")
burnt_states = list("panelscorched")
broken_states = list("damaged1", "damaged2", "damaged3", "damaged4", "damaged5")
burnt_states = list("floorscorched1", "floorscorched2")
footstep_sounds = list(
"human" = list('sound/effects/footstep/plating_human.ogg'),
@@ -60,9 +60,10 @@
if(welder.remove_fuel(0,user))
to_chat(user, "<span class='danger'>You fix some dents on the broken plating.</span>")
playsound(src, welder.usesound, 80, 1)
icon_state = icon_plating
current_overlay = null
burnt = 0
broken = 0
update_icon()
return 1
/turf/simulated/floor/plating/airless