diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index 73b27adcca9..97650fcf307 100644 --- a/code/controllers/master_controller.dm +++ b/code/controllers/master_controller.dm @@ -90,9 +90,13 @@ datum/controller/game_controller/proc/setup() setup_economy() SetupXenoarch() cachedamageicons() - + if(map && map.dorf) + mining_surprises = typesof(/mining_surprise/dorf) - /mining_surprise/dorf for(var/i=0, i\The [src] indicates that their mind is completely unresponsive; there's no point." + if(!..()) + if(istype(O,/obj/item/device/mmi)) + var/obj/item/device/mmi/mmi = O + if(building) + user << "\red \The [src] is busy building something already." + return 1 + if(!mmi.brainmob) + user << "\red \The [mmi] appears to be devoid of any soul." + return 1 + if(!mmi.brainmob.key) + var/ghost_can_reenter = 0 + if(mmi.brainmob.mind) + for(var/mob/dead/observer/G in player_list) + if(G.can_reenter_corpse && G.mind == mmi.brainmob.mind) + ghost_can_reenter = 1 + break + if(!ghost_can_reenter) + user << "\The [src] indicates that their mind is completely unresponsive; there's no point." + return TRUE + + if(mmi.brainmob.stat == DEAD) + user << "\red Yeah, good idea. Give something deader than the pizza in your fridge legs. Mom would be so proud." return TRUE - if(mmi.brainmob.stat == DEAD) - user << "\red Yeah, good idea. Give something deader than the pizza in your fridge legs. Mom would be so proud." - return TRUE + if(mmi.brainmob.mind in ticker.mode.head_revolutionaries) + user << "\red \The [src]'s firmware lets out a shrill sound, and flashes 'Abnormal Memory Engram'. It refuses to accept \the [mmi]." + return TRUE - if(mmi.brainmob.mind in ticker.mode.head_revolutionaries) - user << "\red \The [src]'s firmware lets out a shrill sound, and flashes 'Abnormal Memory Engram'. It refuses to accept \the [mmi]." - return TRUE + if(jobban_isbanned(mmi.brainmob, "Cyborg")) + user << "\red \The [src] lets out an annoyed buzz and rejects \the [mmi]." + return TRUE - if(jobban_isbanned(mmi.brainmob, "Cyborg")) - user << "\red \The [src] lets out an annoyed buzz and rejects \the [mmi]." - return TRUE + if(metal < metalPerMoMMI) + user << "\red \The [src] doesn't have enough metal to complete this task." + return TRUE - if(metal < metalPerMoMMI) - user << "\red \The [src] doesn't have enough metal to complete this task." + building=1 + update_icon() + user.drop_item() + mmi.icon = null + mmi.invisibility = 101 + mmi.loc=src + spawn(50) + makeMoMMI(mmi.brainmob) return TRUE - building=1 - update_icon() - user.drop_item() - mmi.icon = null - mmi.invisibility = 101 - mmi.loc=src - spawn(50) - makeMoMMI(mmi.brainmob) - return TRUE - /obj/machinery/mommi_spawner/proc/makeMoMMI(var/mob/user) var/turf/T = get_turf(src) diff --git a/code/modules/events/event_dynamic.dm b/code/modules/events/event_dynamic.dm index f1ae5ca1659..53fc2e2dda5 100644 --- a/code/modules/events/event_dynamic.dm +++ b/code/modules/events/event_dynamic.dm @@ -2,7 +2,7 @@ var/list/event_last_fired = list() //Always triggers an event when called, dynamically chooses events based on job population /proc/spawn_dynamic_event() - if(!config.allow_random_events) + if(!config.allow_random_events || map && map.dorf) return var/minutes_passed = world.time/600 diff --git a/code/modules/mining/surprise.dm b/code/modules/mining/surprise.dm index f8e2492ccc2..891e191afae 100644 --- a/code/modules/mining/surprise.dm +++ b/code/modules/mining/surprise.dm @@ -3,6 +3,7 @@ #define TURF_FLOOR 0 #define TURF_WALL 1 + var/global/list/mining_surprises = typesof(/mining_surprise)-/mining_surprise /surprise_turf_info diff --git a/maps/_map.dm b/maps/_map.dm index a486ae07803..f9dc8bd644e 100644 --- a/maps/_map.dm +++ b/maps/_map.dm @@ -26,6 +26,9 @@ //nanoui stuff var/map_dir = "" + //Fuck the preprocessor + var/dorf = 0 + /datum/map/New() . = ..() src.zLevels = src.loadZLevels(src.zLevels)