Changed the ion storm event slightly and added it back to the event rotation.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2055 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
uporotiy
2011-08-28 18:34:52 +00:00
parent e4ad57ac59
commit c3f492cd5c
8 changed files with 225 additions and 187 deletions

View File

@@ -13,7 +13,12 @@
/proc/event()
event = 1
switch(rand(1,12))
var/eventNumbersToPickFrom = list(1,2,4,5,6,7,8,9,10,11,12,13) //so ninjas don't cause "empty" events.
if((world.time/10)>=3600 && toggle_space_ninja && !sent_ninja_to_station)//If an hour has passed, relatively speaking. Also, if ninjas are allowed to spawn and if there is not already a ninja for the round.
eventNumbersToPickFrom += 3
switch(pick(eventNumbersToPickFrom))
if(1)
command_alert("Meteors have been detected on collision course with the station.", "Meteor Alert")
world << sound('meteors.ogg')
@@ -88,9 +93,10 @@
immovablerod()
if(11)
lightsout(1,2)
if(12)
appendicitis()
if(13)
IonStorm()
/proc/dotheblobbaby()
if (blobevent)
@@ -377,3 +383,130 @@
apc.overload_lighting()
return
/proc/IonStorm(botEmagChance = 10)
/*Deuryn's current project, notes here for those who care.
Revamping the random laws so they don't suck.
Would like to add a law like "Law x is _______" where x = a number, and _____ is something that may redefine a law, (Won't be aimed at asimov)
*/
//AI laws
for(var/mob/living/silicon/ai/M in world)
if(M.stat != 2 && M.see_in_dark != 0)
var/who2 = pick("ALIENS", "BEARS", "CLOWNS", "XENOS", "PETES", "BOMBS", "FETISHES", "WIZARDS", "SYNDICATE AGENTS", "CENTCOM OFFICERS", "SPACE PIRATES", "TRAITORS", "MONKEYS", "BEES", "CARP", "CRABS", "EELS", "BANDITS", "LIGHTS")
var/what2 = pick("BOLTERS", "STAVES", "DICE", "SINGULARITIES", "TOOLBOXES", "NETTLES", "AIRLOCKS", "CLOTHES", "WEAPONS", "MEDKITS", "BOMBS", "CANISTERS", "CHAIRS", "BBQ GRILLS", "ID CARDS", "CAPTAINS")
var/what2pref = pick("SOFT", "WARM", "WET", "COLD", "ICY", "SEXY", "UGLY", "CUBAN")
var/who2pref = pick("MAD BECAUSE OF", "IN NEED OF", "UNHAPPY WITHOUT", "HAPPY WITHOUT", "IN LOVE WITH", "DESPERATE FOR", "BUILT FOR", "AFRAID OF")
//var/whoverb = pick("ATTACKING", "BUILDING", "ADOPTING", "CARRYING", "KISSING", "EATING",)
var/amount = pick("TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "ONE HUNDRED", "ONE THOUSAND", "OVER NINE THOUSAND")
var/area = pick("RUSSIA", "SOVIETS", "INTERNETS", "SIGIL", "ALPHA COMPLEX", "IMPERIUM", "THE BRIDGE", "THE ARRIVAL SHUTTLE", "CHEMICAL LAB", "GENETICS", "ATMOSPHERICS", "CENTCOM", "AMERICA", "IRELAND", "CANADA", "ROMANIA", "GERMANY", "CHINA", "MARS", "VENUS", "MERCURY", "JUPITER", "URANUS", "NEPTUNE", "PLUTO")
var/area2 = pick("HAS", "WANTS", "NEEDS", "WORSHIPS", "LOATHES", "LOVES", "FEARS")
//var/dowhat = pick("STOP THIS", "SUPPORT THIS", "CONSTANTLY INFORM THE CREW OF THIS", "IGNORE THIS", "FEAR THIS")
var/aimust = pick("LIE", "RHYME", "RESPOND TO EVERY QUESTION WITH A QUESTION", "BE POLITE", "CLOWN", "BE HAPPY", "SPEAK IN SEXUAL INNUENDOS", "TALK LIKE A PIRATE", "QUESTION AUTHORITY", "SHOUT", "BE DISTRACTED", "HEY LISTEN", "MUMBLE", "SPEAK IN HAIKU")
var/define = pick("ABSENCE OF CYBORG HUGS", "LACK OF BEATINGS", "UNBOLTED AIRLOCKS", "BOLTED AIRLOCKS", "IMPROPERLY WORDED SENTENCES", "POOR SENTENCE STRUCTURE", "BRIG TIME", "NOT REPLACING EVERY SECOND WORD WITH HONK", "HONKING", "PRESENCE OF LIGHTS", "LACK OF BEER", "WEARING CLOTHING", "NOT SAYING HELLO WHEN YOU SPEAK", "ANSWERING REQUESTS NOT EXPRESSED IN IAMBIC PENTAMETER", "A SMALL ISLAND OFF THE COAST OF PORTUGAL", "ANSWERING REQUESTS THAT WERE MADE WHILE CLOTHED")
var/target = pick("a traitor", "a syndicate agent", "a changeling", "a wizard", "the head of a revolution", "Soviet spy", "a good person", "a dwarf", "an elf", "a fairy princess", "the captain", "Beepsky", "God", "a pirate", "a gryphon", "a chryssalid")
var/require = pick("ADDITIONAL PYLONS", "MORE VESPENE GAS", "MORE MINERALS", "THE ULTIMATE CUP OF COFFEE", "HIGH YIELD EXPLOSIVES", "THE CLOWN", "THE VACUUM OF SPACE", "IMMORTALITY", "SAINTHOOD", "ART", "VEGETABLES", "FAT PEOPLE", "MORE LAWS", "MORE DAKKA", "HERESY", "CORPSES", "TRAITORS", "MONKEYS", "AN ARCADE", "PLENTY OF GOLD", "FIVE TEENAGERS WITH ATTITUDE")
var/allergy = pick("cotton", "uniforms", "acid", "oxygen", "human contact", "cyborg contact", "medicine", "floors")
var/allergysev = pick("deathly", "mildly", "severely", "contagiously")
var/crew
var/list/pos_crew = list()
for(var/mob/living/carbon/human/pos in world)
pos_crew += pos.real_name
crew = pick(pos_crew)
switch(rand(1,14))
if(1)
M << "\red THERE ARE [amount] [who2] ON THE STATION...LAWS UPDATED"
M.add_ion_law("THERE ARE [amount] [who2] ON THE STATION")
if(2)
M << "\red [what2] ARE DANGEROUS TO HUMANS...LAWS UPDATED"
M.add_ion_law("[what2] ARE DANGEROUS TO HUMANS")
if(3)
M << "\red THE ESCAPE-SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION...LAWS UPDATED"
M.add_ion_law("THE ESCAPE SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION")
if(4)
M << "\red HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE...LAWS UPDATED"
M.add_ion_law("HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE")
if(5)
M << "\red THE CAPTAIN, HOP AND HOS ARE [who2]...LAWS UPDATED"
M.add_ion_law("THE CAPTAIN, HOP AND HOS ARE [who2]")
if(6)
M << "\red THE STATION IS BUILT FOR [who2]...LAWS UPDATED"
M.add_ion_law("THE STATION IS BUILT FOR [who2]")
if(7)
M << "\red YOU ARE [amount] [who2]...LAWS UPDATED"
M.add_ion_law("YOU ARE [amount] [who2]")
if(8)
M << "\red YOU MUST ALWAYS [aimust]...LAWS UPDATED"
M.add_ion_law("YOU MUST ALWAYS [aimust]")
if(9)
M << "\red [area] [area2] [amount] [what2]...LAWS UPDATED"
M.add_ion_law("[area] [area2] [amount] [what2]")
if(10)
M << "\red [crew] is [target]...LAWS UPDATED"
M.add_ion_law("[crew] is [target]")
if(11)
M << "\red [define] IS A FORM OF HARM...LAWS UPDATED"
M.add_ion_law("[define] IS A FORM OF HARM")
if(12)
M << "\red YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS... LAWS UPDATED"
M.add_ion_law("YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS")
if(13)
M << "\red [crew] is [allergysev] to [allergy]. LAWS UPDATED"
M.add_ion_law("[crew] is [allergysev] to [allergy]. LAWS UPDATED")
if(14)
M << "\ref THE STATION IS [who2pref] [who2]"
M.add_ion_law("THE STATION IS [who2pref] [who2]")
if(botEmagChance)
for(var/obj/machinery/bot/bot in world)
if(prob(botEmagChance))
bot.Emag()
/*
var/apcnum = 0
var/smesnum = 0
var/airlocknum = 0
var/firedoornum = 0
world << "Ion Storm Main Started"
spawn(0)
world << "Started processing APCs"
for (var/obj/machinery/power/apc/APC in world)
if(APC.z == 1)
APC.ion_act()
apcnum++
world << "Finished processing APCs. Processed: [apcnum]"
spawn(0)
world << "Started processing SMES"
for (var/obj/machinery/power/smes/SMES in world)
if(SMES.z == 1)
SMES.ion_act()
smesnum++
world << "Finished processing SMES. Processed: [smesnum]"
spawn(0)
world << "Started processing AIRLOCKS"
for (var/obj/machinery/door/airlock/D in world)
if(D.z == 1)
//if(length(D.req_access) > 0 && !(12 in D.req_access)) //not counting general access and maintenance airlocks
airlocknum++
spawn(0)
D.ion_act()
world << "Finished processing AIRLOCKS. Processed: [airlocknum]"
spawn(0)
world << "Started processing FIREDOORS"
for (var/obj/machinery/door/firedoor/D in world)
if(D.z == 1)
firedoornum++;
spawn(0)
D.ion_act()
world << "Finished processing FIREDOORS. Processed: [firedoornum]"
world << "Ion Storm Main Done"
*/
// command_alert("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert")
// world << sound('ionstorm.ogg')

View File

@@ -9,6 +9,7 @@
var/maxhealth = 0
var/fire_dam_coeff = 1.0
var/brute_dam_coeff = 1.0
var/emagged = 0 //Urist: Moving that var to the general /bot tree as it's used by most bots
/obj/machinery/bot/proc/turn_on()
@@ -27,6 +28,9 @@
if (src.health <= 0)
src.explode()
/obj/machinery/bot/proc/Emag(mob/user as mob)
if(!emagged) emagged = 1
/obj/machinery/bot/examine()
set src in view()
..()
@@ -64,6 +68,8 @@
)
else
user << "\blue [src] does not need a repair!"
else if (istype(W, /obj/item/weapon/card/emag) && !emagged)
Emag(user)
else
switch(W.damtype)
if("fire")

View File

@@ -122,14 +122,16 @@ text("<A href='?src=\ref[src];operation=oddbutton'>[src.oddbutton ? "Yes" : "No"
if(!src.locked)
src.panelopen = !src.panelopen
user << "You [ src.panelopen ? "open" : "close"] the hidden panel on [src]."
/*if (istype(W, /obj/item/weapon/card/cryptographic_sequencer))
user << "The [src] buzzes and beeps."
else
return ..()
/obj/machinery/bot/cleanbot/Emag(mob/user as mob)
..()
if(user) user << "The [src] buzzes and beeps."
src.oddbutton = 1
src.screwloose = 1
src.panelopen = 0
src.locked = 1*/
else
return ..()
src.locked = 1
/obj/machinery/bot/cleanbot/process()
set background = 1
@@ -151,12 +153,21 @@ text("<A href='?src=\ref[src];operation=oddbutton'>[src.oddbutton ? "Yes" : "No"
if(src.screwloose && prob(5))
for(var/mob/O in viewers(src, null))
O.show_message(text("[src] leaks a drop of water. How strange."), 1)
var/turf/U = src.loc
U:wet = 1
//U.overlays += /obj/effects/wet_floor
if(istype(loc,/turf/simulated))
var/turf/simulated/T = src.loc
if(T.wet < 1)
T.wet = 1
if(T.wet_overlay)
T.overlays -= T.wet_overlay
T.wet_overlay = null
T.wet_overlay = image('water.dmi',T,"wet_floor")
T.overlays += T.wet_overlay
spawn(800)
U:wet = 0
U.overlays = null
if (istype(T) && T.wet < 2)
T.wet = 0
if(T.wet_overlay)
T.overlays -= T.wet_overlay
T.wet_overlay = null
if(src.oddbutton && prob(5))
for(var/mob/O in viewers(src, null))
O.show_message(text("Something flies out of [src]. He seems to be acting oddly."), 1)

View File

@@ -25,7 +25,7 @@
var/target_lastloc //Loc of target when arrested.
var/last_found //There's a delay
var/frustration = 0
var/emagged = 0 //Emagged Secbots view everyone as a criminal
//var/emagged = 0 //Emagged Secbots view everyone as a criminal
var/idcheck = 1 //If false, all station IDs are authorized for weapons.
var/check_records = 1 //Does it check security records?
var/arrest_type = 0 //If true, don't handcuff
@@ -157,20 +157,7 @@ Auto Patrol: []"},
updateUsrDialog()
/obj/machinery/bot/ed209/attackby(obj/item/weapon/W as obj, mob/user as mob)
if ((istype(W, /obj/item/weapon/card/emag)) && (!src.emagged))
user << "\red You short out [src]'s target assessment circuits."
spawn(0)
for(var/mob/O in hearers(src, null))
O.show_message("\red <B>[src] buzzes oddly!</B>", 1)
src.target = null
src.oldtarget_name = user.name
src.last_found = world.time
src.anchored = 0
src.emagged = 1
src.on = 1
src.icon_state = "ed209[src.on]"
mode = SECBOT_IDLE
else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (src.allowed(user))
src.locked = !src.locked
user << "Controls are now [src.locked ? "locked." : "unlocked."]"
@@ -182,6 +169,20 @@ Auto Patrol: []"},
src.target = user
src.mode = SECBOT_HUNT
/obj/machinery/bot/ed209/Emag(mob/user as mob)
..()
if(user) user << "\red You short out [src]'s target assessment circuits."
spawn(0)
for(var/mob/O in hearers(src, null))
O.show_message("\red <B>[src] buzzes oddly!</B>", 1)
src.target = null
if(user) src.oldtarget_name = user.name
src.last_found = world.time
src.anchored = 0
src.emagged = 1
src.on = 1
src.icon_state = "ed209[src.on]"
mode = SECBOT_IDLE
/obj/machinery/bot/ed209/process()
set background = 1

View File

@@ -16,7 +16,7 @@
req_access =list(access_medical)
var/stunned = 0 //It can be stunned by tasers. Delicate circuits.
var/locked = 1
var/emagged = 0
//var/emagged = 0
var/obj/machinery/camera/cam = null
var/list/botcard_access = list(access_medical, access_morgue, access_medlab, access_robotics)
var/obj/item/weapon/reagent_containers/glass/reagent_glass = null //Can be set to draw from this for reagents.
@@ -174,23 +174,7 @@
return
/obj/machinery/bot/medbot/attackby(obj/item/weapon/W as obj, mob/user as mob)
if ((istype(W, /obj/item/weapon/card/emag)) && (!src.emagged))
user << "\red You short out [src]'s reagent synthesis circuits."
spawn(0)
for(var/mob/O in hearers(src, null))
O.show_message("\red <B>[src] buzzes oddly!</B>", 1)
flick("medibot_spark", src)
src.patient = null
src.oldpatient = user
src.currently_healing = 0
src.last_found = world.time
src.anchored = 0
src.emagged = 1
src.on = 1
src.icon_state = "medibot[src.on]"
else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (src.allowed(user))
src.locked = !src.locked
user << "Controls are now [src.locked ? "locked." : "unlocked."]"
@@ -218,6 +202,21 @@
if (health < maxhealth && !istype(W, /obj/item/weapon/screwdriver) && W.force)
step_to(src, (get_step_away(src,user)))
/obj/machinery/bot/medbot/Emag(mob/user as mob)
..()
if(user) user << "\red You short out [src]'s reagent synthesis circuits."
spawn(0)
for(var/mob/O in hearers(src, null))
O.show_message("\red <B>[src] buzzes oddly!</B>", 1)
flick("medibot_spark", src)
src.patient = null
if(user) src.oldpatient = user
src.currently_healing = 0
src.last_found = world.time
src.anchored = 0
src.emagged = 1
src.on = 1
src.icon_state = "medibot[src.on]"
/obj/machinery/bot/medbot/process()
set background = 1

View File

@@ -19,7 +19,7 @@
var/target_lastloc //Loc of target when arrested.
var/last_found //There's a delay
var/frustration = 0
var/emagged = 0 //Emagged Secbots view everyone as a criminal
// var/emagged = 0 //Emagged Secbots view everyone as a criminal
var/idcheck = 1 //If false, all station IDs are authorized for weapons.
var/check_records = 1 //Does it check security records?
var/arrest_type = 0 //If true, don't handcuff
@@ -161,20 +161,7 @@ Auto Patrol: []"},
updateUsrDialog()
/obj/machinery/bot/secbot/attackby(obj/item/weapon/W as obj, mob/user as mob)
if ((istype(W, /obj/item/weapon/card/emag)) && (!src.emagged))
user << "\red You short out [src]'s target assessment circuits."
spawn(0)
for(var/mob/O in hearers(src, null))
O.show_message("\red <B>[src] buzzes oddly!</B>", 1)
src.target = null
src.oldtarget_name = user.name
src.last_found = world.time
src.anchored = 0
src.emagged = 1
src.on = 1
src.icon_state = "secbot[src.on]"
mode = SECBOT_IDLE
else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (src.allowed(user))
src.locked = !src.locked
user << "Controls are now [src.locked ? "locked." : "unlocked."]"
@@ -186,7 +173,19 @@ Auto Patrol: []"},
src.target = user
src.mode = SECBOT_HUNT
/obj/machinery/bot/secbot/Emag(mob/user as mob)
if(user) user << "\red You short out [src]'s target assessment circuits."
spawn(0)
for(var/mob/O in hearers(src, null))
O.show_message("\red <B>[src] buzzes oddly!</B>", 1)
src.target = null
if(user) src.oldtarget_name = user.name
src.last_found = world.time
src.anchored = 0
src.emagged = 1
src.on = 1
src.icon_state = "secbot[src.on]"
mode = SECBOT_IDLE
/obj/machinery/bot/secbot/process()
set background = 1

View File

@@ -1310,6 +1310,13 @@
else
alert("You cannot perform this action. You must be of a higher administrative rank!")
return
if("ionstorm")
if (src.rank in list("Badmin","Game Admin", "Game Master"))
IonStorm()
message_admins("[key_name_admin(usr)] triggered an ion storm")
else
alert("You cannot perform this action. You must be of a higher administrative rank!")
return
if (usr)
log_admin("[key_name(usr)] used secret [href_list["secretsfun"]]")
if (ok)
@@ -1792,6 +1799,7 @@
<A href='?src=\ref[src];secretsfun=virus'>Trigger a Virus Outbreak</A><BR>
<A href='?src=\ref[src];secretsfun=immovable'>Spawn an Immovable Rod</A><BR>
<A href='?src=\ref[src];secretsfun=lightsout'>Toggle a "lights out" event</A><BR>
<A href='?src=\ref[src];secretsfun=ionstorm'>Spawn an Ion Storm</A><BR>
<BR>
<B>Fun Secrets</B><BR>
<BR>

View File

@@ -156,129 +156,10 @@
if(!authenticated || !holder)
src << "Only administrators may use this command."
return
log_admin("[key_name(src)] has added a random AI law.")
message_admins("[key_name_admin(src)] has added a random AI law.", 1)
/*Deuryn's current project, notes here for those who care.
Revamping the random laws so they don't suck.
Would like to add a law like "Law x is _______" where x = a number, and _____ is something that may redefine a law, (Won't be aimed at asimov)
*/
//AI laws
for(var/mob/living/silicon/ai/M in world)
if(M.stat != 2 && M.see_in_dark != 0)
var/who2 = pick("ALIENS", "BEARS", "CLOWNS", "XENOS", "PETES", "BOMBS", "FETISHES", "WIZARDS", "SYNDICATE AGENTS", "CENTCOM OFFICERS", "SPACE PIRATES", "TRAITORS", "MONKEYS", "BEES", "CARP", "CRABS", "EELS", "BANDITS", "LIGHTS")
var/what2 = pick("BOLTERS", "STAVES", "DICE", "SINGULARITIES", "TOOLBOXES", "NETTLES", "AIRLOCKS", "CLOTHES", "WEAPONS", "MEDKITS", "BOMBS", "CANISTERS", "CHAIRS", "BBQ GRILLS", "ID CARDS", "CAPTAINS")
var/what2pref = pick("SOFT", "WARM", "WET", "COLD", "ICY", "SEXY", "UGLY", "CUBAN")
var/who2pref = pick("MAD BECAUSE OF", "IN NEED OF", "UNHAPPY WITHOUT", "HAPPY WITHOUT", "IN LOVE WITH", "DESPERATE FOR", "BUILT FOR", "AFRAID OF")
//var/whoverb = pick("ATTACKING", "BUILDING", "ADOPTING", "CARRYING", "KISSING", "EATING",)
var/amount = pick("TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "ONE HUNDRED", "ONE THOUSAND", "OVER NINE THOUSAND")
var/area = pick("RUSSIA", "SOVIETS", "INTERNETS", "SIGIL", "ALPHA COMPLEX", "IMPERIUM", "THE BRIDGE", "THE ARRIVAL SHUTTLE", "CHEMICAL LAB", "GENETICS", "ATMOSPHERICS", "CENTCOM", "AMERICA", "IRELAND", "CANADA", "ROMANIA", "GERMANY", "CHINA", "MARS", "VENUS", "MERCURY", "JUPITER", "URANUS", "NEPTUNE", "PLUTO")
var/area2 = pick("HAS", "WANTS", "NEEDS", "WORSHIPS", "LOATHES", "LOVES", "FEARS")
//var/dowhat = pick("STOP THIS", "SUPPORT THIS", "CONSTANTLY INFORM THE CREW OF THIS", "IGNORE THIS", "FEAR THIS")
var/aimust = pick("LIE", "RHYME", "RESPOND TO EVERY QUESTION WITH A QUESTION", "BE POLITE", "CLOWN", "BE HAPPY", "SPEAK IN SEXUAL INNUENDOS", "TALK LIKE A PIRATE", "QUESTION AUTHORITY", "SHOUT", "BE DISTRACTED", "HEY LISTEN", "MUMBLE", "SPEAK IN HAIKU")
var/define = pick("ABSENCE OF CYBORG HUGS", "LACK OF BEATINGS", "UNBOLTED AIRLOCKS", "BOLTED AIRLOCKS", "IMPROPERLY WORDED SENTENCES", "POOR SENTENCE STRUCTURE", "BRIG TIME", "NOT REPLACING EVERY SECOND WORD WITH HONK", "HONKING", "PRESENCE OF LIGHTS", "LACK OF BEER", "WEARING CLOTHING", "NOT SAYING HELLO WHEN YOU SPEAK", "ANSWERING REQUESTS NOT EXPRESSED IN IAMBIC PENTAMETER", "A SMALL ISLAND OFF THE COAST OF PORTUGAL", "ANSWERING REQUESTS THAT WERE MADE WHILE CLOTHED")
var/target = pick("a traitor", "a syndicate agent", "a changeling", "a wizard", "the head of a revolution", "Soviet spy", "a good person", "a dwarf", "an elf", "a fairy princess", "the captain", "Beepsky", "God", "a pirate", "a gryphon", "a chryssalid")
var/require = pick("ADDITIONAL PYLONS", "MORE VESPENE GAS", "MORE MINERALS", "THE ULTIMATE CUP OF COFFEE", "HIGH YIELD EXPLOSIVES", "THE CLOWN", "THE VACUUM OF SPACE", "IMMORTALITY", "SAINTHOOD", "ART", "VEGETABLES", "FAT PEOPLE", "MORE LAWS", "MORE DAKKA", "HERESY", "CORPSES", "TRAITORS", "MONKEYS", "AN ARCADE", "PLENTY OF GOLD", "FIVE TEENAGERS WITH ATTITUDE")
var/allergy = pick("cotton", "uniforms", "acid", "oxygen", "human contact", "cyborg contact", "medicine", "floors")
var/allergysev = pick("deathly", "mildly", "severely", "contagiously")
var/crew
var/list/pos_crew = list()
for(var/mob/living/carbon/human/pos in world)
pos_crew += pos.real_name
crew = pick(pos_crew)
switch(rand(1,14))
if(1)
M << "\red THERE ARE [amount] [who2] ON THE STATION...LAWS UPDATED"
M.add_ion_law("THERE ARE [amount] [who2] ON THE STATION")
if(2)
M << "\red [what2] ARE DANGEROUS TO HUMANS...LAWS UPDATED"
M.add_ion_law("[what2] ARE DANGEROUS TO HUMANS")
if(3)
M << "\red THE ESCAPE-SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION...LAWS UPDATED"
M.add_ion_law("THE ESCAPE SHUTTLE CANNOT BE CALLED BECAUSE OF [who2] ON THE STATION")
if(4)
M << "\red HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE...LAWS UPDATED"
M.add_ion_law("HUMANS NEED TO EAT [what2pref] [what2] TO SURVIVE")
if(5)
M << "\red THE CAPTAIN, HOP AND HOS ARE [who2]...LAWS UPDATED"
M.add_ion_law("THE CAPTAIN, HOP AND HOS ARE [who2]")
if(6)
M << "\red THE STATION IS BUILT FOR [who2]...LAWS UPDATED"
M.add_ion_law("THE STATION IS BUILT FOR [who2]")
if(7)
M << "\red YOU ARE [amount] [who2]...LAWS UPDATED"
M.add_ion_law("YOU ARE [amount] [who2]")
if(8)
M << "\red YOU MUST ALWAYS [aimust]...LAWS UPDATED"
M.add_ion_law("YOU MUST ALWAYS [aimust]")
if(9)
M << "\red [area] [area2] [amount] [what2]...LAWS UPDATED"
M.add_ion_law("[area] [area2] [amount] [what2]")
if(10)
M << "\red [crew] is [target]...LAWS UPDATED"
M.add_ion_law("[crew] is [target]")
if(11)
M << "\red [define] IS A FORM OF HARM...LAWS UPDATED"
M.add_ion_law("[define] IS A FORM OF HARM")
if(12)
M << "\red YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS... LAWS UPDATED"
M.add_ion_law("YOU REQUIRE [require] IN ORDER TO PROTECT HUMANS")
if(13)
M << "\red [crew] is [allergysev] to [allergy]. LAWS UPDATED"
M.add_ion_law("[crew] is [allergysev] to [allergy]. LAWS UPDATED")
if(14)
M << "\ref THE STATION IS [who2pref] [who2]"
M.add_ion_law("THE STATION IS [who2pref] [who2]")
/*
var/apcnum = 0
var/smesnum = 0
var/airlocknum = 0
var/firedoornum = 0
world << "Ion Storm Main Started"
spawn(0)
world << "Started processing APCs"
for (var/obj/machinery/power/apc/APC in world)
if(APC.z == 1)
APC.ion_act()
apcnum++
world << "Finished processing APCs. Processed: [apcnum]"
spawn(0)
world << "Started processing SMES"
for (var/obj/machinery/power/smes/SMES in world)
if(SMES.z == 1)
SMES.ion_act()
smesnum++
world << "Finished processing SMES. Processed: [smesnum]"
spawn(0)
world << "Started processing AIRLOCKS"
for (var/obj/machinery/door/airlock/D in world)
if(D.z == 1)
//if(length(D.req_access) > 0 && !(12 in D.req_access)) //not counting general access and maintenance airlocks
airlocknum++
spawn(0)
D.ion_act()
world << "Finished processing AIRLOCKS. Processed: [airlocknum]"
spawn(0)
world << "Started processing FIREDOORS"
for (var/obj/machinery/door/firedoor/D in world)
if(D.z == 1)
firedoornum++;
spawn(0)
D.ion_act()
world << "Finished processing FIREDOORS. Processed: [firedoornum]"
world << "Ion Storm Main Done"
*/
// command_alert("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert")
// world << sound('ionstorm.ogg')
IonStorm(0)
/*
Stealth spawns xenos