mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 12:41:09 +01:00
Merge pull request #4524 from Ikarrus/eventsprompter
Trigger Events verb will now ask if the admin wants to announce to the crew
This commit is contained in:
@@ -434,6 +434,7 @@ var/global/floorIsLava = 0
|
||||
dat += {"
|
||||
<B>Fun Secrets</B><BR>
|
||||
<BR>
|
||||
<A href='?src=\ref[src];secretsfun=virus'>Trigger a Virus Outbreak</A><BR>
|
||||
<A href='?src=\ref[src];secretsfun=monkey'>Turn all humans into monkeys</A><BR>
|
||||
<A href='?src=\ref[src];secretsfun=power'>Make all areas powered</A><BR>
|
||||
<A href='?src=\ref[src];secretsfun=unpower'>Make all areas unpowered</A><BR>
|
||||
|
||||
+24
-95
@@ -57,6 +57,30 @@
|
||||
if(!src.makeDeathsquad())
|
||||
usr << "<span class='danger'>Unfortunatly there were not enough candidates available.</span>"
|
||||
|
||||
if("11")
|
||||
var/strength = input("Set Blob Strength (1=Weak, 2=Strong, 3=Full)","Set Strength",1) as num
|
||||
message_admins("[key_name(usr)] spawned a blob with strength [strength].")
|
||||
log_admin("[key_name(usr)] spawned a blob with strength [strength].")
|
||||
new/datum/round_event/blob(strength)
|
||||
|
||||
else if(href_list["forceevent"])
|
||||
var/datum/round_event_control/E = locate(href_list["forceevent"]) in events.control
|
||||
if(E)
|
||||
var/datum/round_event/event = E.runEvent()
|
||||
if(event.announceWhen>0)
|
||||
event.processing = 0
|
||||
var/prompt = alert(usr, "Would you like to alert the crew?", "Alert", "Yes", "No", "Cancel")
|
||||
switch(prompt)
|
||||
if("Cancel")
|
||||
event.kill()
|
||||
return
|
||||
if("No")
|
||||
event.announceWhen = -1
|
||||
event.processing = 1
|
||||
message_admins("[key_name_admin(usr)] has triggered an event. ([E.name])", 1)
|
||||
log_admin("[key_name(usr)] has triggered an event. ([E.name])")
|
||||
return
|
||||
|
||||
else if(href_list["dbsearchckey"] || href_list["dbsearchadmin"])
|
||||
var/adminckey = href_list["dbsearchadmin"]
|
||||
var/playerckey = href_list["dbsearchckey"]
|
||||
@@ -1684,86 +1708,6 @@
|
||||
message_admins("<span class='userdanger'>[key_name_admin(usr)] changed the bomb cap to [MAX_EX_DEVESTATION_RANGE], [MAX_EX_HEAVY_RANGE], [MAX_EX_LIGHT_RANGE]</span>", 1)
|
||||
log_admin("[key_name(usr)] changed the bomb cap to [MAX_EX_DEVESTATION_RANGE], [MAX_EX_HEAVY_RANGE], [MAX_EX_LIGHT_RANGE]")
|
||||
|
||||
if("wave")
|
||||
var/should_announce = alert(usr, "Meteors will be spawned. Would you like to make an announcement?", "Message", "Yes", "No") == "Yes"
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","MW")
|
||||
message_admins("[key_name_admin(usr)] has spawned meteors")
|
||||
E = new /datum/round_event/meteor_wave(should_announce)
|
||||
if("gravanomalies")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","GA")
|
||||
message_admins("[key_name_admin(usr)] has spawned a gravitational anomaly")
|
||||
E = new /datum/round_event/anomaly/anomaly_grav()
|
||||
if("pyroanomalies")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","PYRO")
|
||||
message_admins("[key_name_admin(usr)] has spawned a pyroclastic anomaly")
|
||||
E = new /datum/round_event/anomaly/anomaly_pyro()
|
||||
if("blackhole")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","BH")
|
||||
message_admins("[key_name_admin(usr)] has spawned a vortex anomaly")
|
||||
E = new /datum/round_event/anomaly/anomaly_vortex()
|
||||
if("timeanomalies") //dear god this code was awful :P Still needs further optimisation
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","STA")
|
||||
message_admins("[key_name_admin(usr)] has made wormholes")
|
||||
E = new /datum/round_event/wormholes()
|
||||
if("goblob")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","BL")
|
||||
message_admins("[key_name_admin(usr)] has spawned blob", 1)
|
||||
E = new /datum/round_event/blob()
|
||||
if("aliens")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","AL")
|
||||
message_admins("[key_name_admin(usr)] has spawned aliens", 1)
|
||||
E = new /datum/round_event/alien_infestation()
|
||||
if("alien_silent") //replaces the spawn_xeno verb
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","ALS")
|
||||
create_xeno()
|
||||
if("spiders")
|
||||
E = new /datum/round_event/spider_infestation()
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","SL")
|
||||
message_admins("[key_name_admin(usr)] has spawned spiders", 1)
|
||||
if("bluespaceanomaly")
|
||||
E = new /datum/round_event/anomaly/anomaly_bluespace()
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","BA")
|
||||
message_admins("[key_name_admin(usr)] has triggered a bluespace anomaly", 1)
|
||||
if("comms_blackout")
|
||||
E = new /datum/round_event/communications_blackout()
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","CB")
|
||||
message_admins("[key_name_admin(usr)] triggered a communications blackout.", 1)
|
||||
if("spaceninja")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","SN")
|
||||
message_admins("[key_name_admin(usr)] has sent in a space ninja", 1)
|
||||
E = new /datum/round_event/ninja()
|
||||
if("carp")
|
||||
E = new /datum/round_event/carp_migration()
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","C")
|
||||
message_admins("[key_name_admin(usr)] has spawned carp.", 1)
|
||||
if("radiation")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","R")
|
||||
message_admins("[key_name_admin(usr)] has has irradiated the station", 1)
|
||||
E = new /datum/round_event/radiation_storm()
|
||||
if("immovable")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","IR")
|
||||
message_admins("[key_name_admin(usr)] has sent an immovable rod to the station", 1)
|
||||
E = new /datum/round_event/immovable_rod()
|
||||
if("prison_break")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","PB")
|
||||
message_admins("[key_name_admin(usr)] has allowed a prison break", 1)
|
||||
E = new /datum/round_event/prison_break()
|
||||
if("lightsout")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","LO")
|
||||
@@ -1879,26 +1823,11 @@
|
||||
B.facial_hair_style = "Dward Beard"
|
||||
B.update_hair()
|
||||
message_admins("[key_name_admin(usr)] activated dorf mode")
|
||||
if("ionstorm")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","I")
|
||||
message_admins("[key_name_admin(usr)] triggered an ion storm")
|
||||
E = new /datum/round_event/ion_storm()
|
||||
if("spacevines")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","K")
|
||||
message_admins("[key_name_admin(usr)] has spawned spacevines", 1)
|
||||
E = new /datum/round_event/spacevine()
|
||||
if("onlyone")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","OO")
|
||||
usr.client.only_one()
|
||||
// message_admins("[key_name_admin(usr)] has triggered a battle to the death (only one)")
|
||||
if("energeticflux")
|
||||
feedback_inc("admin_secrets_fun_used",1)
|
||||
feedback_add_details("admin_secrets_fun_used","FLUX")
|
||||
message_admins("[key_name_admin(usr)] has triggered an energetic flux")
|
||||
E = new /datum/round_event/anomaly/anomaly_flux()
|
||||
if(E)
|
||||
E.processing = 0
|
||||
if(E.announceWhen>0)
|
||||
|
||||
@@ -16,6 +16,7 @@ client/proc/one_click_antag()
|
||||
<a href='?src=\ref[src];makeAntag=3'>Make Revs</a><br>
|
||||
<a href='?src=\ref[src];makeAntag=4'>Make Cult</a><br>
|
||||
<a href='?src=\ref[src];makeAntag=5'>Make Malf AI</a><br>
|
||||
<a href='?src=\ref[src];makeAntag=11'>Make Blob</a><br>
|
||||
<a href='?src=\ref[src];makeAntag=6'>Make Wizard (Requires Ghosts)</a><br>
|
||||
<a href='?src=\ref[src];makeAntag=7'>Make Nuke Team (Requires Ghosts)</a><br>
|
||||
<a href='?src=\ref[src];makeAntag=10'>Make Deathsquad (Requires Ghosts)</a><br>
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
/datum/round_event/anomaly
|
||||
var/area/impact_area
|
||||
var/obj/effect/anomaly/newAnomaly
|
||||
announceWhen = 1
|
||||
|
||||
|
||||
/datum/round_event/anomaly/setup(loop=0)
|
||||
|
||||
@@ -9,9 +9,13 @@
|
||||
/datum/round_event/blob
|
||||
announceWhen = 12
|
||||
endWhen = 120
|
||||
|
||||
var/new_rate = 2
|
||||
var/obj/effect/blob/core/Blob
|
||||
|
||||
/datum/round_event/blob/New(var/strength)
|
||||
..()
|
||||
if(strength)
|
||||
new_rate = strength
|
||||
|
||||
/datum/round_event/blob/announce()
|
||||
priority_announce("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", 'sound/AI/outbreak5.ogg')
|
||||
@@ -21,7 +25,7 @@
|
||||
var/turf/T = pick(blobstart)
|
||||
if(!T)
|
||||
return kill()
|
||||
Blob = new /obj/effect/blob/core(T, 200)
|
||||
Blob = new /obj/effect/blob/core(T, 200, null, new_rate)
|
||||
for(var/i = 1; i < rand(3, 6), i++)
|
||||
Blob.process()
|
||||
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
typepath = /datum/round_event/communications_blackout
|
||||
weight = 30
|
||||
|
||||
/datum/round_event/communications_blackout
|
||||
announceWhen = 1
|
||||
|
||||
/datum/round_event/communications_blackout/announce()
|
||||
var/alert = pick( "Ionospheric anomalies detected. Temporary telecommunication failure imminent. Please contact you*%fj00)`5vc-BZZT", \
|
||||
"Ionospheric anomalies detected. Temporary telecommunication failu*3mga;b4;'1v¬-BZZZT", \
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
/datum/round_event/meteor_wave/dust
|
||||
startWhen = 1
|
||||
endWhen = 2
|
||||
announceWhen = 0
|
||||
|
||||
/datum/round_event/meteor_wave/dust/announce()
|
||||
return
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
/datum/round_event/electrical_storm
|
||||
var/lightsoutAmount = 1
|
||||
var/lightsoutRange = 25
|
||||
|
||||
announceWhen = 1
|
||||
|
||||
/datum/round_event/electrical_storm/announce()
|
||||
priority_announce("An electrical storm has been detected in your area, please repair potential electronic overloads.", "Electrical Storm Alert")
|
||||
|
||||
@@ -26,12 +26,14 @@
|
||||
|
||||
testing("[time2text(world.time, "hh:mm:ss")] [E.type]")
|
||||
|
||||
return E
|
||||
|
||||
/datum/round_event //NOTE: Times are measured in master controller ticks!
|
||||
var/processing = 1
|
||||
var/datum/round_event_control/control
|
||||
|
||||
var/startWhen = 0 //When in the lifetime to call start().
|
||||
var/announceWhen = 0 //When in the lifetime to call announce().
|
||||
var/announceWhen = 0 //When in the lifetime to call announce(). Set an event's announceWhen to >0 if there is an announcement.
|
||||
var/endWhen = 0 //When in the lifetime the event should end.
|
||||
|
||||
var/activeFor = 0 //How long the event has existed. You don't need to change this.
|
||||
@@ -81,7 +83,7 @@
|
||||
/datum/round_event/proc/process()
|
||||
if(!processing)
|
||||
return
|
||||
|
||||
|
||||
if(activeFor == startWhen)
|
||||
start()
|
||||
|
||||
|
||||
@@ -109,18 +109,25 @@ var/datum/controller/event/events
|
||||
|
||||
|
||||
|
||||
//allows a client to trigger an event (For Debugging Purposes)
|
||||
/client/proc/forceEvent(var/datum/round_event_control/E in events.control)
|
||||
//allows a client to trigger an event
|
||||
//aka Badmin Central
|
||||
/client/proc/forceEvent()
|
||||
set name = "Trigger Event"
|
||||
set category = "Fun"
|
||||
|
||||
if(!holder ||!check_rights(R_FUN))
|
||||
return
|
||||
|
||||
if(istype(E))
|
||||
E.runEvent()
|
||||
message_admins("[key_name_admin(usr)] has triggered an event. ([E.name])", 1)
|
||||
log_admin("[key_name(usr)] has triggered an event. ([E.name])")
|
||||
holder.forceEvent()
|
||||
|
||||
/datum/admins/proc/forceEvent()
|
||||
var/dat = ""
|
||||
for(var/datum/round_event_control/E in events.control)
|
||||
dat += "<BR><A href='?src=\ref[src];forceevent=\ref[E]'>[E]</A>"
|
||||
|
||||
var/datum/browser/popup = new(usr, "forceevent", "Force Random Event", 300, 750)
|
||||
popup.set_content(dat)
|
||||
popup.open()
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/datum/round_event_control/spooky
|
||||
name = "2 SPOOKY!"
|
||||
name = "2 SPOOKY! (Halloween)"
|
||||
holidayID = "Halloween"
|
||||
typepath = /datum/round_event/spooky
|
||||
weight = -1 //forces it to be called, regardless of weight
|
||||
@@ -14,4 +14,4 @@
|
||||
Ian.place_on_head(new /obj/item/weapon/bedsheet(Ian))
|
||||
|
||||
/datum/round_event/spooky/announce()
|
||||
priority_announce(pick("RATTLE ME BONES!","THE RIDE NEVER ENDS!", "A SKELETON POPS OUT!", "SPOOKY SCARY SKELETONS!", "CREWMEMBERS BEWARE, YOU'RE IN FOR A SCARE!") , "THE CALL IS COMING FROM INSIDE THE HOUSE")
|
||||
priority_announce(pick("RATTLE ME BONES!","THE RIDE NEVER ENDS!", "A SKELETON POPS OUT!", "SPOOKY SCARY SKELETONS!", "CREWMEMBERS BEWARE, YOU'RE IN FOR A SCARE!") , "THE CALL IS COMING FROM INSIDE THE HOUSE")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/datum/round_event_control/treevenge
|
||||
name = "Treevenge"
|
||||
name = "Treevenge (Christmas)"
|
||||
holidayID = "Xmas"
|
||||
typepath = /datum/round_event/treevenge
|
||||
max_occurrences = 1
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
//this is an example of a possible round-start event
|
||||
/datum/round_event_control/presents
|
||||
name = "Presents under Trees"
|
||||
name = "Presents under Trees (Christmas)"
|
||||
holidayID = "Xmas"
|
||||
typepath = /datum/round_event/presents
|
||||
weight = -1 //forces it to be called, regardless of weight
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
var/announceEvent = ION_RANDOM // -1 means don't announce, 0 means have it randomly announce, 1 means
|
||||
var/ionMessage = null
|
||||
var/ionAnnounceChance = 33
|
||||
announceWhen = 1
|
||||
|
||||
/datum/round_event/ion_storm/New(var/botEmagChance = 10, var/announceEvent = ION_RANDOM, var/ionMessage = null, var/ionAnnounceChance = 33)
|
||||
src.botEmagChance = botEmagChance
|
||||
|
||||
@@ -5,8 +5,7 @@
|
||||
max_occurrences = 1
|
||||
|
||||
/datum/round_event/meteor_wave/meaty/announce()
|
||||
if(announce)
|
||||
priority_announce("Meaty ores have been detected on collision course with the station.", "Oh Crap, Get The Mop.",'sound/AI/meteors.ogg')
|
||||
priority_announce("Meaty ores have been detected on collision course with the station.", "Oh Crap, Get The Mop.",'sound/AI/meteors.ogg')
|
||||
|
||||
/datum/round_event/meteor_wave/meaty/tick()
|
||||
if(IsMultiple(activeFor, 3))
|
||||
|
||||
@@ -7,15 +7,10 @@
|
||||
/datum/round_event/meteor_wave
|
||||
startWhen = 6
|
||||
endWhen = 66
|
||||
var/announce = 1
|
||||
|
||||
/datum/round_event/meteor_wave/New(should_announce = 1)
|
||||
..()
|
||||
announce = should_announce
|
||||
announceWhen = 1
|
||||
|
||||
/datum/round_event/meteor_wave/announce()
|
||||
if(announce)
|
||||
priority_announce("Meteors have been detected on collision course with the station.", "Meteor Alert", 'sound/AI/meteors.ogg')
|
||||
priority_announce("Meteors have been detected on collision course with the station.", "Meteor Alert", 'sound/AI/meteors.ogg')
|
||||
|
||||
|
||||
/datum/round_event/meteor_wave/tick()
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
/datum/round_event/radiation_storm/setup()
|
||||
startWhen = rand(10, 20)
|
||||
endWhen = startWhen + 5
|
||||
announceWhen = 1
|
||||
|
||||
/datum/round_event/radiation_storm/announce()
|
||||
priority_announce("High levels of radiation detected near the station. Maintenance is best shielded from radiation.", "Anomaly Alert", 'sound/AI/radiation.ogg')
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
var/bonus_points = 100
|
||||
var/thanks_msg = "Have some supply points as thanks (the shuttle will be returned in 5 minutes)."
|
||||
var/dispatched = 0
|
||||
announceWhen = 1
|
||||
|
||||
/datum/round_event/shuttle_loan/start()
|
||||
dispatch_type = pick(HIJACK_SYNDIE, RUSKY_PARTY, SPIDER_GIFT, DEPARTMENT_RESUPPLY)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
weight = 35
|
||||
|
||||
/datum/round_event/vent_clog
|
||||
announceWhen = 0
|
||||
announceWhen = 1
|
||||
startWhen = 5
|
||||
endWhen = 35
|
||||
var/interval = 2
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
/datum/round_event/weightless
|
||||
startWhen = 5
|
||||
endWhen = 65
|
||||
announceWhen = 1
|
||||
|
||||
/datum/round_event/weightless/setup()
|
||||
startWhen = rand(0,10)
|
||||
@@ -17,7 +18,7 @@
|
||||
/datum/round_event/weightless/start()
|
||||
for(var/area/A in world)
|
||||
A.gravitychange(0)
|
||||
|
||||
|
||||
if(control)
|
||||
control.weight *= 2
|
||||
|
||||
|
||||
Reference in New Issue
Block a user