New random event

This commit is contained in:
ZomgPonies
2013-11-28 02:56:57 -05:00
parent 6a5f652e22
commit f0500437cd
7 changed files with 81 additions and 5 deletions
+3 -2
View File
@@ -5,7 +5,7 @@
var/oneShot = 0 //If true, then the event removes itself from the list of potential events on creation.
var/activeFor = 0 //How long the event has existed. You don't need to change this.
var/area/impact_area
//Called first before processing.
//Allows you to setup your event, such as randomly
//setting the startWhen and or announceWhen variables.
@@ -87,4 +87,5 @@
for(var/mob/living/carbon/human/P in player_list)
if(P.client)
players++
return players
return players
+1 -1
View File
@@ -105,7 +105,7 @@ var/global/list/possibleEvents = list()
possibleEvents[/datum/event/space_ninja] = max(active_with_role["Security"], 5)
possibleEvents[/datum/event/undead] = active_with_role["Security"] * 10
possibleEvents[/datum/event/ghosts] = active_with_role["Security"] * 25
possibleEvents[/datum/event/tear] = active_with_role["Security"] * 25
for(var/event_type in event_last_fired) if(possibleEvents[event_type])
var/time_passed = world.time - event_last_fired[event_type]
+2 -1
View File
@@ -91,4 +91,5 @@ var/scheduledEvent = null
/area/engine/chiefs_office)
//Need to locate() as it's just a list of paths.
return locate(pick((the_station_areas - safe_areas) + danger_areas))
return locate(pick((the_station_areas - safe_areas) + danger_areas))
+73
View File
@@ -0,0 +1,73 @@
/datum/event/tear
startWhen = 3
announceWhen = 20
endWhen = 50
var/obj/effect/tear/TE
/datum/event/tear/announce()
command_alert("A tear in the fabric of space and time has opened. Expected location: [impact_area.name].", "Anomaly Alert")
score_eventsendured++
/datum/event/tear/start()
var/turf/T = pick(get_area_turfs(impact_area))
if(T)
TE = new /obj/effect/tear(T.loc)
/datum/event/tear/setup()
impact_area = findEventArea()
/datum/event/tear/end()
if(TE)
del(TE)
/obj/effect/tear
name="Dimensional Tear"
desc="A tear in the dimensional fabric of space and time."
icon='icons/effects/tear.dmi'
icon_state="tear"
unacidable = 1
density = 0
anchored = 1
luminosity = 3
/obj/effect/tear/New()
..()
var/atom/movable/overlay/animation = null
animation = new(loc)
animation.icon_state = "newtear"
animation.icon = 'icons/effects/tear.dmi'
animation.master = src
// flick("newtear",usr)
spawn(15)
if(animation) del(animation)
spawn(rand(30,120))
var/blocked = list(/mob/living/simple_animal/hostile,
/mob/living/simple_animal/hostile/pirate,
/mob/living/simple_animal/hostile/pirate/ranged,
/mob/living/simple_animal/hostile/russian,
/mob/living/simple_animal/hostile/russian/ranged,
/mob/living/simple_animal/hostile/syndicate,
/mob/living/simple_animal/hostile/syndicate/melee,
/mob/living/simple_animal/hostile/syndicate/melee/space,
/mob/living/simple_animal/hostile/syndicate/ranged,
/mob/living/simple_animal/hostile/syndicate/ranged/space,
/mob/living/simple_animal/hostile/alien/queen/large,
/mob/living/simple_animal/hostile/faithless,
/mob/living/simple_animal/hostile/panther,
/mob/living/simple_animal/hostile/snake,
/mob/living/simple_animal/hostile/retaliate,
/mob/living/simple_animal/hostile/retaliate/clown
)//exclusion list for things you don't want the reaction to create.
var/list/critters = typesof(/mob/living/simple_animal/hostile) - blocked // list of possible hostile mobs
for(var/i = 1, i <= 5, i++)
var/chosen = pick(critters)
var/mob/living/simple_animal/hostile/C = new chosen
C.faction = "slimesummon"
C.loc = src.loc
if(prob(50))
for(var/j = 1, j <= rand(1, 3), j++)
step(C, pick(NORTH,SOUTH,EAST,WEST))
+1 -1
View File
@@ -1,5 +1,5 @@
/datum/event/anomaly
var/area/impact_area
var/obj/effect/anomaly/newAnomaly