diff --git a/code/modules/mob/living/simple_animal/hostile/goose_vr.dm b/code/modules/mob/living/simple_animal/hostile/goose_vr.dm new file mode 100644 index 00000000000..080c6fac924 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/goose_vr.dm @@ -0,0 +1,11 @@ +/mob/living/simple_animal/hostile/goose + //Space geese aren't affected by atmos. + min_oxy = 0 + max_oxy = 0 + min_tox = 0 + max_tox = 0 + min_co2 = 0 + max_co2 = 0 + min_n2 = 0 + max_n2 = 0 + minbodytemp = 0 \ No newline at end of file diff --git a/code/modules/rogueminer_vr/controller.dm b/code/modules/rogueminer_vr/controller.dm index fb3aa0bac8b..3a4e7305c6b 100644 --- a/code/modules/rogueminer_vr/controller.dm +++ b/code/modules/rogueminer_vr/controller.dm @@ -147,14 +147,15 @@ var/datum/controller/rogue/rm_controller = new() ZM_target = pick(clean_zones) if(ZM_target) + world.log << "RM(stats): SCORING [ready_zones.len] zones (if unscored)." //DEBUG code for playtest stats gathering. for(var/datum/rogue/zonemaster/ZM_toscore in ready_zones) //Score all the zones first. - if(!ZM_target.scored) - ZM_toscore.score_zone() + if(ZM_toscore.scored) continue + ZM_toscore.score_zone() ZM_target.prepare_zone() else rm_controller.dbg("RMC(pnz): I was asked for a new zone but there's no space.") - if(clean_zones.len <= 0) //Need to clean the oldest one, too. + if(clean_zones.len <= 1) //Need to clean the oldest one, too. rm_controller.dbg("RMC(pnz): Cleaning up oldest zone.") spawn(0) //Detatch it so we can return the new zone for now. var/datum/rogue/zonemaster/ZM_oldest = get_oldest_zone() diff --git a/code/modules/rogueminer_vr/zone_console.dm b/code/modules/rogueminer_vr/zone_console.dm index 8e3aecefee4..2073f92452f 100644 --- a/code/modules/rogueminer_vr/zone_console.dm +++ b/code/modules/rogueminer_vr/zone_console.dm @@ -144,7 +144,7 @@ if (shuttle_control.z != BELT_Z) return // Usable only when shuttle is away if(rm_controller.current_zone && rm_controller.current_zone.is_occupied()) - return // Not usable if shuttle is in occupied zone + return // Not usable if shuttle is in occupied zone // Okay do it var/datum/shuttle/ferry/S = shuttle_controller.shuttles["Belter"] S.launch(usr) @@ -158,3 +158,17 @@ #undef OUTPOST_Z #undef TRANSIT_Z #undef BELT_Z + +/obj/item/weapon/paper/rogueminer + name = "R-38 Scanner Console Guide" + info = {"

Getting Started

+ Congratulations, your station has purchased the R-38 industrial asteroid belt scanner!
+ Using the R-38 is almost as simple as brain surgery! Simply press the scan button to scan for a new mineral-rich asteroid belt location!
+ That's all there is to it!
+ Notice, scan may cause extreme brain damage to those present in asteroid belt, so scanning will be disabled in that case.
+ Existing minerals and living creatures interfere with the scans, so the more minerals extracted and creatures 'removed'/made-not-living in the belt, the more accurate future scans will be.
+

Traveling to the belt

+ When a new zone has been scanned, your station's shuttle destination will be updated to direct it to the newly discovered area automatically.
+ You can then travel to the new area to mine in that location.
+
+ This technology produced under license from Thinktronic Systems, LTD."} \ No newline at end of file diff --git a/code/modules/rogueminer_vr/zonemaster.dm b/code/modules/rogueminer_vr/zonemaster.dm index e7a12681eae..0f3b39b37a4 100644 --- a/code/modules/rogueminer_vr/zonemaster.dm +++ b/code/modules/rogueminer_vr/zonemaster.dm @@ -329,11 +329,9 @@ /////////////////////////////// ///// Zone Cleaning /////////// /////////////////////////////// -/datum/rogue/zonemaster/proc/score_zone(var/bonus = 0) - if(clean || !ready) - return - +/datum/rogue/zonemaster/proc/score_zone(var/bonus = 10) rm_controller.dbg("ZM(sz): Scoring zone with area [myarea].") + scored = 1 var/tally = bonus //Ore-bearing rocks that were mined @@ -369,8 +367,14 @@ //Overall 'destroy' proc (marks as unready) /datum/rogue/zonemaster/proc/clean_zone(var/delay = 1) rm_controller.dbg("ZM(cz): Cleaning zone with area [myarea].") + world.log << "RM(stats): CLEAN start [myarea] at [world.time] prepared at [prepared_at]." //DEBUG code for playtest stats gathering. rm_controller.unmark_ready(src) + //Cut these lists so qdel can dereference the things properly + mineral_rocks.Cut() + spawned_mobs.Cut() + rockspawns.Cut() + mobspawns.Cut() var/ignored = list( /obj/asteroid_spawner, @@ -380,8 +384,6 @@ /obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/ontop, /obj/effect/step_trigger/teleporter/random/rogue/fourbyfour/onbottom) - var/deleted = 0 - for(var/atom/I in myarea.contents) if(I.type == /turf/space) I.overlays.Cut() @@ -389,33 +391,23 @@ else if(I.type in ignored) continue qdel(I) - deleted++ - if(delay) - sleep(delay) + sleep(delay) //A deletion so nice that I give it twice for(var/atom/I in myarea.contents) if(I.type in ignored) continue qdel(I) - deleted++ - if(delay) - sleep(delay) - - rm_controller.dbg("ZM(cz): Deleted [deleted] atoms in [myarea].") - - mineral_rocks.Cut() - spawned_mobs.Cut() - rockspawns.Cut() - mobspawns.Cut() - rm_controller.dbg("ZM(cz): Cleaned up lists.") - - world.log << "RM(stats): CLEAN [myarea] at [world.time] prepared at [prepared_at]." //DEBUG code for playtest stats gathering. + sleep(delay) + //Clean up vars scored = 0 original_mobs = 0 prepared_at = 0 - rm_controller.dbg("ZM(cz): Finished cleaning up zone.") + + world.log << "RM(stats): CLEAN done [myarea] at [world.time]." //DEBUG code for playtest stats gathering. + + rm_controller.dbg("ZM(cz): Finished cleaning up zone area [myarea].") rm_controller.mark_clean(src) return myarea diff --git a/icons/obj/gun_vr.dmi b/icons/obj/gun_vr.dmi index c7465c7b786..4a996eedb53 100644 Binary files a/icons/obj/gun_vr.dmi and b/icons/obj/gun_vr.dmi differ diff --git a/maps/virgo-5.dmm b/maps/virgo-5.dmm index 40064b2b2f0..706e322e36e 100644 --- a/maps/virgo-5.dmm +++ b/maps/virgo-5.dmm @@ -1539,7 +1539,7 @@ "DE" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/outpost/engineering/mining/power) "DF" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/outpost/engineering/mining/power) "DG" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow{tag = "icon-map (NORTH)"; icon_state = "map"; dir = 1},/obj/effect/landmark{name = "bluespacerift"},/turf/simulated/floor/tiled,/area/outpost/research/anomaly) -"DH" = (/obj/machinery/computer/roguezones,/turf/simulated/floor/tiled/asteroid_steel/airless,/area/mine/explored) +"DH" = (/obj/machinery/computer/roguezones,/obj/item/weapon/paper/rogueminer,/turf/simulated/floor/tiled/asteroid_steel/airless,/area/mine/explored) "DI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/landmark{name = "bluespacerift"},/turf/simulated/floor/tiled,/area/outpost/mining_main/north_hall) "DJ" = (/obj/effect/landmark{name = "bluespacerift"},/turf/simulated/floor/tiled,/area/outpost/mining_main/eva) "DK" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/effect/landmark{name = "bluespacerift"},/turf/simulated/floor/tiled,/area/outpost/mining_main/south_hall) @@ -1928,7 +1928,7 @@ "Ld" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/turf/simulated/shuttle/plating/airless,/area/shuttle/belter/station) "Le" = (/obj/structure/grille,/obj/structure/shuttle/window{tag = "icon-5"; icon_state = "5"},/turf/simulated/shuttle/plating,/area/shuttle/belter/station) "Lf" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/machinery/light{dir = 1},/obj/machinery/airlock_sensor{frequency = 1390; id_tag = "belter_sensor"; master_tag = "belter_airlock"; pixel_y = 25},/turf/simulated/shuttle/floor/airless{tag = "icon-floor4"; icon_state = "floor4"},/area/shuttle/belter/station) -"Lg" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/structure/table/standard,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/shuttle/belter/station) +"Lg" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/structure/table/standard,/obj/item/device/binoculars,/obj/item/weapon/gun/energy/particle,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/shuttle/belter/station) "Lh" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/shuttle/belter/station) "Li" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/shuttle/belter/station) "Lj" = (/obj/machinery/atmospherics/binary/pump/on{dir = 8},/obj/structure/table/standard,/obj/machinery/recharger{pixel_x = 4; pixel_y = 4},/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor6"},/area/shuttle/belter/station) diff --git a/vorestation.dme b/vorestation.dme index 48e69f5f858..3abdb2418d2 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1791,6 +1791,7 @@ #include "code\modules\mob\living\simple_animal\hostile\faithless.dm" #include "code\modules\mob\living\simple_animal\hostile\giant_spider.dm" #include "code\modules\mob\living\simple_animal\hostile\goose.dm" +#include "code\modules\mob\living\simple_animal\hostile\goose_vr.dm" #include "code\modules\mob\living\simple_animal\hostile\hivebot.dm" #include "code\modules\mob\living\simple_animal\hostile\hostile.dm" #include "code\modules\mob\living\simple_animal\hostile\pirate.dm"