diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index c1628fcdeaf..b98c9ffac48 100644 --- a/code/controllers/master_controller.dm +++ b/code/controllers/master_controller.dm @@ -26,6 +26,7 @@ datum/controller/game_controller var/powernets_cost = 0 var/nano_cost = 0 var/events_cost = 0 + var/puddles_cost var/ticker_cost = 0 var/gc_cost = 0 var/total_cost = 0 @@ -214,6 +215,11 @@ datum/controller/game_controller/proc/process() processEvents() events_cost = (world.timeofday - timer) / 10 + //PUDDLES + timer = world.timeofday + processPuddles() + puddles_cost = (world.timeofday - timer) / 10 + //TICKER timer = world.timeofday last_thing_processed = ticker.type @@ -227,7 +233,7 @@ datum/controller/game_controller/proc/process() gc_cost = (world.timeofday - timer) / 10 //TIMING - total_cost = air_cost + sun_cost + mobs_cost + diseases_cost + machines_cost + objects_cost + networks_cost + powernets_cost + nano_cost + events_cost + ticker_cost + gc_cost + total_cost = air_cost + sun_cost + mobs_cost + diseases_cost + machines_cost + objects_cost + networks_cost + powernets_cost + nano_cost + events_cost + puddles_cost + ticker_cost + gc_cost var/end_time = world.timeofday if(end_time < start_time) @@ -318,6 +324,14 @@ datum/controller/game_controller/proc/process() checkEvent() +/datum/controller/game_controller/proc/processPuddles() + last_thing_processed = /datum/puddle + + for (var/datum/puddle/Puddle in puddles) + if (Puddle) + Puddle.process() + continue + datum/controller/game_controller/proc/Recover() //Mostly a placeholder for now. var/msg = "## DEBUG: [time2text(world.timeofday)] MC restarted. Reports:\n" for(var/varname in master_controller.vars) diff --git a/code/modules/liquid/splash_simulation.dm b/code/modules/liquid/splash_simulation.dm index d9147f60b18..da344cb609b 100644 --- a/code/modules/liquid/splash_simulation.dm +++ b/code/modules/liquid/splash_simulation.dm @@ -74,7 +74,7 @@ obj/effect/liquid/proc/spread() //world << "DEBUG: liquid spread!" var/surrounding_volume = 0 var/list/spread_directions = list(1,2,4,8) - var/turf/loc_turf = loc + var/turf/loc_turf = get_turf(src) for(var/direction in spread_directions) var/turf/T = get_step(src,direction) if(!T) @@ -137,24 +137,31 @@ obj/effect/liquid/Destroy() obj/effect/liquid/proc/update_icon2() //icon_state = num2text( max(1,min(7,(floor(volume),10)/10)) ) - + overlays = null switch(volume) - if(0 to 0.1) + if(0 to 0.2) del(src) - if(0.1 to 5) + if(0.2 to 5) icon_state = "1" + overlays += image('icons/effects/liquid.dmi', src , "1-1", 5) if(5 to 10) icon_state = "2" + overlays += image('icons/effects/liquid.dmi', src , "2-1", 5) if(10 to 20) icon_state = "3" + overlays += image('icons/effects/liquid.dmi', src , "3-1", 5) if(20 to 30) icon_state = "4" + overlays += image('icons/effects/liquid.dmi', src , "4-1", 5) if(30 to 40) icon_state = "5" + overlays += image('icons/effects/liquid.dmi', src , "5-1", 5) if(40 to 50) icon_state = "6" + overlays += image('icons/effects/liquid.dmi', src , "6-1", 5) if(50 to INFINITY) icon_state = "7" + layer = 5 turf/proc/can_accept_liquid(from_direction) return 0 diff --git a/icons/effects/liquid.dmi b/icons/effects/liquid.dmi index 258a0fb2e62..962dace0672 100644 Binary files a/icons/effects/liquid.dmi and b/icons/effects/liquid.dmi differ