Adds Maintenance Predator random event

This commit is contained in:
Heroman
2020-02-12 12:33:46 +10:00
parent 8c5fb2fa84
commit 8ac52fef61
8 changed files with 162 additions and 36 deletions
+6 -1
View File
@@ -1,4 +1,9 @@
/datum/ghost_query/morph
role_name = "Morph"
question = "A weird morphic creature appears to have snuck onstation. Do you want to play as it? ((Expect to be treated as vore predator))"
question = "A weird morphic creature appears to have snuck onstation. Do you want to play as it? ((Expect to be treated as vore predator.))"
cutoff_number = 1
/datum/ghost_query/maints_pred
role_name = "Maintenance Predator"
question = "It appears a predatory critter is lurking in the maintenance. Do you want to play as it? ((You get to choose type of critter. Expect to be treated as vore predator.))"
cutoff_number = 1
+2 -1
View File
@@ -82,7 +82,8 @@
//Evil grubs that drain station power slightly
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grub Infestation", /datum/event/grub_infestation, 0, list(ASSIGNMENT_SECURITY = 10, ASSIGNMENT_ENGINEER = 30), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Drone Pod Drop", /datum/event/drone_pod_drop, 10, list(ASSIGNMENT_SCIENTIST = 40), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Morph Spawn", /datum/event/morph_spawn, 75, list(ASSIGNMENT_SECURITY = 35), 1)
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Morph Spawn", /datum/event/morph_spawn, 75, list(ASSIGNMENT_SECURITY = 35), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Maintenance Predator", /datum/event/maintenance_predator, 75, list(ASSIGNMENT_SECURITY = 25, ASSIGNMENT_SCIENTIST = 10), 1)
)
add_disabled_events(list(
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Appendicitis", /datum/event/spontaneous_appendicitis, 0, list(ASSIGNMENT_MEDICAL = 30), 1),
@@ -0,0 +1,73 @@
/datum/event/maintenance_predator
startWhen = 1
announceWhen = 50
endWhen = 100
var/announceProb = 35
var/list/possible_mobs = list("Space Bumblebee" = /mob/living/simple_mob/vore/bee,
"Voracious Lizard" = /mob/living/simple_mob/vore/aggressive/dino,
"Giant Frog" = /mob/living/simple_mob/vore/aggressive/frog,
"Giant Rat" = /mob/living/simple_mob/vore/aggressive/rat,
"Crate Mimic" = /mob/living/simple_mob/vore/aggressive/mimic,
"Juvenile Solargrub" = /mob/living/simple_mob/vore/solargrub,
"Red Panda" = /mob/living/simple_mob/vore/redpanda,
"Fennec" = /mob/living/simple_mob/vore/fennec,
"Fennix" = /mob/living/simple_mob/vore/fennix,
"Jelly Blob" = /mob/living/simple_mob/animal/space/jelly,
"Wolf" = /mob/living/simple_mob/animal/wolf)
/datum/event/maintenance_predator/start()
var/obj/effect/landmark/spawnspot = null
var/list/possibleSpawnspots = list()
for(var/obj/effect/landmark/L in landmarks_list)
if(L.name == "maint_pred")
possibleSpawnspots += L
if(possibleSpawnspots.len)
spawnspot = pick(possibleSpawnspots)
else
kill() // To prevent fake announcements
return
if(!spawnspot)
kill() // To prevent fake announcements
return
var/datum/ghost_query/Q = new /datum/ghost_query/maints_pred()
var/list/winner = Q.query()
if(winner.len)
var/mob/observer/dead/D = winner[1]
var/choice
var/randomize
var/finalized = "No"
while(finalized == "No" && D.client)
choice = input(D,"What type of predator do you want to play as?") as null|anything in possible_mobs
if(!choice)
randomize = TRUE
break
if(choice)
finalized = alert(D, "Are you sure you want to play as [choice]?","Confirmation","No","Yes")
if(randomize)
choice = pick(possible_mobs)
var/mobtype = possible_mobs[choice]
var/mob/living/simple_mob/newPred = new mobtype(get_turf(spawnspot))
newPred.movement_cooldown = 0 // Remove the needless artificial speed cap
if(D.mind)
D.mind.transfer_to(newPred)
to_chat(D, "<span class='notice'>You are <b>[newPred]</b>, somehow having gotten aboard the station in search of food. \
You are wary of environment around you, but you do feel rather peckish. Stick around dark, secluded places to avoid danger or, \
if you are cute enough, try to make friends with this place's inhabitants.</span>")
newPred.ckey = D.ckey
newPred.visible_message("<span class='warning'>[newPred] emerges from somewhere!</span>")
else
kill() // To prevent fake announcements
return
/datum/event/maintenance_predator/announce()
if(prob(announceProb))
command_announcement.Announce("Unexpected biosignature detected in the maintenance tunnels of [station_name()].", "Lifesign Alert")
+16 -2
View File
@@ -32277,6 +32277,20 @@
},
/turf/simulated/floor/outdoors/grass/sif/virgo3b,
/area/tether/surfacebase/outside/outside1)
"bcW" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/landmark{
name = "maint_pred"
},
/turf/simulated/floor/plating,
/area/maintenance/lower/research)
"bcX" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/landmark{
name = "maint_pred"
},
/turf/simulated/floor/plating,
/area/maintenance/lower/atmos)
"cGJ" = (
/turf/simulated/floor/plating,
/area/maintenance/lower/mining_eva)
@@ -41487,7 +41501,7 @@ aah
aah
aah
aBO
aHZ
bcW
aHc
aJF
aKk
@@ -42650,7 +42664,7 @@ aUT
aVn
aVn
aTZ
aUE
bcX
aVn
aVn
aXz
+14 -1
View File
@@ -2142,6 +2142,9 @@
/obj/effect/floor_decal/techfloor{
dir = 8
},
/obj/effect/landmark{
name = "maint_pred"
},
/turf/simulated/floor/tiled/techfloor,
/area/maintenance/lower/north)
"aeD" = (
@@ -14060,6 +14063,9 @@
/obj/effect/floor_decal/corner_techfloor_grid/full{
dir = 4
},
/obj/effect/landmark{
name = "maint_pred"
},
/turf/simulated/floor/tiled/techfloor,
/area/maintenance/lower/south)
"azV" = (
@@ -21560,6 +21566,13 @@
/obj/structure/window/reinforced,
/turf/simulated/floor/plating,
/area/maintenance/lower/atmos)
"aOt" = (
/obj/structure/catwalk,
/obj/effect/landmark{
name = "maint_pred"
},
/turf/simulated/floor/plating,
/area/maintenance/lower/atmos)
"aOw" = (
/obj/machinery/camera/network/command{
icon_state = "camera";
@@ -39158,7 +39171,7 @@ aMq
aMq
aDS
aNG
aEp
aOt
aDS
aac
aac
+7 -1
View File
@@ -15688,6 +15688,12 @@
},
/turf/simulated/floor/tiled/white,
/area/medical/biostorage)
"xL" = (
/obj/effect/landmark{
name = "maint_pred"
},
/turf/simulated/floor,
/area/maintenance/station/sec_lower)
"xO" = (
/obj/structure/table/standard,
/obj/item/weapon/storage/box/syringegun,
@@ -32131,7 +32137,7 @@ aP
at
TW
OY
RS
xL
at
RS
RS
+43 -30
View File
@@ -29232,13 +29232,11 @@
/turf/simulated/floor/tiled,
/area/security/hallwayaux)
"UD" = (
/obj/structure/shuttle/engine/propulsion{
dir = 8;
icon_state = "propulsion_l"
/obj/effect/landmark{
name = "maint_pred"
},
/turf/simulated/floor/tiled/asteroid_steel/airless,
/turf/simulated/shuttle/plating/airless/carry,
/area/shuttle/belter/station)
/turf/simulated/floor,
/area/maintenance/station/ai)
"UE" = (
/obj/structure/bed/chair/shuttle,
/turf/simulated/floor/tiled,
@@ -29415,12 +29413,12 @@
/turf/simulated/floor/tiled,
/area/quartermaster/belterdock)
"UY" = (
/obj/structure/shuttle/engine/propulsion{
dir = 8
/obj/structure/catwalk,
/obj/effect/landmark{
name = "maint_pred"
},
/turf/simulated/floor/tiled/asteroid_steel/airless,
/turf/simulated/shuttle/plating/airless/carry,
/area/shuttle/belter/station)
/turf/simulated/floor,
/area/maintenance/cargo)
"UZ" = (
/obj/structure/shuttle/engine/heater{
dir = 8
@@ -29651,7 +29649,7 @@
"Vz" = (
/obj/structure/shuttle/engine/propulsion{
dir = 8;
icon_state = "propulsion_r"
icon_state = "propulsion_l"
},
/turf/simulated/floor/tiled/asteroid_steel/airless,
/turf/simulated/shuttle/plating/airless/carry,
@@ -29683,12 +29681,11 @@
/area/shuttle/excursion/tether)
"VC" = (
/obj/structure/shuttle/engine/propulsion{
dir = 8;
icon_state = "propulsion_l"
dir = 8
},
/turf/space,
/turf/simulated/floor/tiled/asteroid_steel/airless,
/turf/simulated/shuttle/plating/airless/carry,
/area/shuttle/large_escape_pod1/station)
/area/shuttle/belter/station)
"VD" = (
/obj/machinery/atmospherics/binary/pump,
/obj/machinery/atmospherics/pipe/simple/hidden/universal{
@@ -29766,15 +29763,23 @@
/area/ai_core_foyer)
"VN" = (
/obj/structure/shuttle/engine/propulsion{
dir = 8
dir = 8;
icon_state = "propulsion_r"
},
/turf/simulated/floor/tiled/asteroid_steel/airless,
/turf/simulated/shuttle/plating/airless/carry,
/area/shuttle/belter/station)
"VO" = (
/obj/structure/shuttle/engine/propulsion{
dir = 8;
icon_state = "propulsion_l"
},
/turf/space,
/turf/simulated/shuttle/plating/airless/carry,
/area/shuttle/large_escape_pod1/station)
"VO" = (
"VP" = (
/obj/structure/shuttle/engine/propulsion{
dir = 8;
icon_state = "propulsion_r"
dir = 8
},
/turf/space,
/turf/simulated/shuttle/plating/airless/carry,
@@ -29792,6 +29797,14 @@
},
/turf/simulated/floor/tiled/techfloor/grid,
/area/shuttle/excursion/tether)
"VS" = (
/obj/structure/shuttle/engine/propulsion{
dir = 8;
icon_state = "propulsion_r"
},
/turf/space,
/turf/simulated/shuttle/plating/airless/carry,
/area/shuttle/large_escape_pod1/station)
"VU" = (
/obj/machinery/firealarm{
dir = 2;
@@ -40184,11 +40197,11 @@ MK
Iy
ab
NL
VC
VN
VN
VN
VO
VP
VP
VP
VS
NL
vt
vt
@@ -41415,7 +41428,7 @@ jV
ms
Oz
be
nx
UY
RT
dT
Se
@@ -44109,7 +44122,7 @@ du
fy
fy
RI
gK
UD
fp
RN
eI
@@ -44297,11 +44310,11 @@ Ty
TL
QG
Ue
UD
UY
UY
UY
Vz
VC
VC
VC
VN
VH
vt
vt
+1
View File
@@ -1871,6 +1871,7 @@
#include "code\modules\events\ian_storm_vr.dm"
#include "code\modules\events\infestation.dm"
#include "code\modules\events\ion_storm.dm"
#include "code\modules\events\maintenance_predator_vr.dm"
#include "code\modules\events\meteor_strike_vr.dm"
#include "code\modules\events\meteors.dm"
#include "code\modules\events\money_hacker.dm"