[s] Fixes singularity pulls duping rods out of engine floors.

This commit is contained in:
Ghommie
2019-12-25 03:34:42 +01:00
parent c50c1ee4df
commit 60134ea8ae
3 changed files with 22 additions and 24 deletions
+14 -18
View File
@@ -177,7 +177,7 @@
I.play_tool_sound(src, 80) I.play_tool_sound(src, 80)
return remove_tile(user, silent) return remove_tile(user, silent)
/turf/open/floor/proc/remove_tile(mob/user, silent = FALSE, make_tile = TRUE) /turf/open/floor/proc/remove_tile(mob/user, silent = FALSE, make_tile = TRUE, forced = FALSE)
if(broken || burnt) if(broken || burnt)
broken = 0 broken = 0
burnt = 0 burnt = 0
@@ -191,24 +191,20 @@
return make_plating() return make_plating()
/turf/open/floor/singularity_pull(S, current_size) /turf/open/floor/singularity_pull(S, current_size)
..() . = ..()
if(current_size == STAGE_THREE) switch(current_size)
if(prob(30)) if(STAGE_THREE)
if(floor_tile && prob(30))
remove_tile()
if(STAGE_FOUR)
if(floor_tile && prob(50))
remove_tile()
if(STAGE_FIVE to INFINITY)
if(floor_tile) if(floor_tile)
new floor_tile(src) if(prob(70))
make_plating() remove_tile()
else if(current_size == STAGE_FOUR) else if(prob(50))
if(prob(50)) ReplaceWithLattice()
if(floor_tile)
new floor_tile(src)
make_plating()
else if(current_size >= STAGE_FIVE)
if(floor_tile)
if(prob(70))
new floor_tile(src)
make_plating()
else if(prob(50))
ReplaceWithLattice()
/turf/open/floor/narsie_act(force, ignore_mobs, probability = 20) /turf/open/floor/narsie_act(force, ignore_mobs, probability = 20)
. = ..() . = ..()
@@ -44,7 +44,7 @@
C.play_tool_sound(src, 80) C.play_tool_sound(src, 80)
return remove_tile(user, silent, (C.tool_behaviour == TOOL_SCREWDRIVER)) return remove_tile(user, silent, (C.tool_behaviour == TOOL_SCREWDRIVER))
/turf/open/floor/wood/remove_tile(mob/user, silent = FALSE, make_tile = TRUE) /turf/open/floor/wood/remove_tile(mob/user, silent = FALSE, make_tile = TRUE, forced = FALSE)
if(broken || burnt) if(broken || burnt)
broken = 0 broken = 0
burnt = 0 burnt = 0
@@ -76,14 +76,16 @@
/turf/open/floor/engine/singularity_pull(S, current_size) /turf/open/floor/engine/singularity_pull(S, current_size)
..() ..()
if(current_size >= STAGE_FIVE) if(current_size >= STAGE_FIVE && prob(30))
if(floor_tile) if(floor_tile)
if(prob(30)) remove_tile(forced = TRUE)
new floor_tile(src) else
make_plating()
else if(prob(30))
ReplaceWithLattice() ReplaceWithLattice()
/turf/open/floor/engine/remove_tile(mob/user, silent = FALSE, make_tile = TRUE, forced = FALSE)
if(forced)
return ..()
/turf/open/floor/engine/attack_paw(mob/user) /turf/open/floor/engine/attack_paw(mob/user)
return attack_hand(user) return attack_hand(user)