mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-08-31 09:08:56 +01:00
@@ -4,7 +4,7 @@
|
||||
|
||||
/*
|
||||
|
||||
Important: DO NOT `sleep()` in any of the procs here, or the GM will get stuck. Use callbacks insead.
|
||||
Important: DO NOT `sleep()` in any of the procs here, or the GM will get stuck. Use callbacks instead.
|
||||
Also please don't use spawn(), but use callbacks instead.
|
||||
|
||||
Note that there is an important distinction between an event being ended, and an event being finished.
|
||||
@@ -33,20 +33,20 @@ This allows for events that have their announcement happen after the end itself.
|
||||
|
||||
// If these are set, the announcement will be delayed by a random time between the lower and upper bounds.
|
||||
// If the upper bound is not defined, then it will use the lower bound instead.
|
||||
// Note that this is independant of the event itself, so you can have the announcement happen long after the event ended.
|
||||
// This may not work if should_announce() is overrided.
|
||||
// Note that this is independent of the event itself, so you can have the announcement happen long after the event ended.
|
||||
// This may not work if should_announce() is overridden.
|
||||
var/announce_delay_lower_bound = null
|
||||
var/announce_delay_upper_bound = null
|
||||
|
||||
// If these are set, the event will be delayed by a random time between the lower and upper bounds.
|
||||
// If the upper bound is not defined, then it will use the lower bound instead.
|
||||
// This may not work if should_start() is overrided.
|
||||
// This may not work if should_start() is overridden.
|
||||
var/start_delay_lower_bound = null
|
||||
var/start_delay_upper_bound = null
|
||||
|
||||
// If these are set, the event will automatically end at a random time between the lower and upper bounds.
|
||||
// If the upper bound is not defined, then it will use the lower bound instead.
|
||||
// This may not work if should_end() is overrided.
|
||||
// This may not work if should_end() is overridden.
|
||||
var/length_lower_bound = null
|
||||
var/length_upper_bound = null
|
||||
|
||||
@@ -173,7 +173,7 @@ This allows for events that have their announcement happen after the end itself.
|
||||
return
|
||||
|
||||
if(!check_rights(R_ADMIN|R_EVENT|R_DEBUG))
|
||||
message_admins("[usr] has attempted to manipulate an event without sufficent privileges.")
|
||||
message_admins("[usr] has attempted to manipulate an event without sufficient privileges.")
|
||||
return
|
||||
|
||||
if(href_list["abort"])
|
||||
@@ -205,7 +205,7 @@ This allows for events that have their announcement happen after the end itself.
|
||||
// Note that events that have `should_start()` return TRUE at the start will never have this proc called.
|
||||
/datum/event2/event/proc/wait_tick()
|
||||
|
||||
// Called every tick from the GM system, and determines if the event should offically start.
|
||||
// Called every tick from the GM system, and determines if the event should officially start.
|
||||
// Override this for special logic on when it should start.
|
||||
/datum/event2/event/proc/should_start()
|
||||
if(!time_to_start)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/datum/event2/meta/spacevine
|
||||
name = "space-vine infestation"
|
||||
departments = list(DEPARTMENT_ENGINEERING)
|
||||
chaos = 10 // There's a really rare chance of vines getting something awful like phoron atmosphere but thats not really controllable.
|
||||
chaos = 10 // There's a really rare chance of vines getting something awful like phoron atmosphere but that's not really controllable.
|
||||
chaotic_threshold = EVENT_CHAOS_THRESHOLD_MEDIUM_IMPACT
|
||||
event_type = /datum/event2/event/spacevine
|
||||
regions = list(EVENT_REGION_PLAYER_MAIN_AREA)
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
"Life-changing winnings* await when you register with MaxBet today.",\
|
||||
"You will be able to enjoy over 450 top-flight casino games at MaxBet.")
|
||||
if(2)
|
||||
sender = pick(300;"QuickDatingSystem",200;"Find your almachi bride",50;"Tajaran beauties are waiting",50;"Find your secret skrell crush",50;"Beautiful unathi brides")
|
||||
sender = pick(300;"QuickDatingSystem",200;"Find your Almachi bride",50;"Tajaran beauties are waiting",50;"Find your secret Skrell crush",50;"Beautiful Unathi brides")
|
||||
message = pick("Your profile caught my attention and I wanted to write and say hello (QuickDating).",\
|
||||
"If you will write to me on my email [pick(pick(first_names_female),(pick(first_names_male)))]@[pick(last_names)].[pick("xo.vr","ck","tj","ur","gov","nt","xo.sh")] I shall necessarily send you a photo (QuickDating).",\
|
||||
"I want that we write each other and I hope, that you will like my profile and you will answer me (QuickDating).",\
|
||||
@@ -100,13 +100,13 @@
|
||||
"Watches, Jewelry & Accessories, Bags & Wallets !",\
|
||||
"Deposit 100Th and get 300Th totally free!",\
|
||||
"Your package is being held at [using_map.starsys_name] customs until payment of fee at (this page)",
|
||||
"You have a pending transactions ,log in is required for verifcation!",\
|
||||
"You have a pending transactions ,log in is required for verification!",\
|
||||
" 100K NT.|EUNOIACOIN �nly Th89 <HOT>",\
|
||||
"You have won a FREE [pick("Cyber Solutions household drone", "Xion power drill", "Oasis Vacation", "Bishop Rook fitting session", "NanoThreads makeover experience", "home autofabrication system", "MBT interstellar cruise", "custom cybernetic household companion", "full-immersion VR system", "personal robot chef unit", "ThinkTronic PDA upgrade", "Ward-Takahashi communicator", "Nispean Safari Experience", "case of Lite-Speed beer", "Charlemagne von Rheinland personal voidcraft", "lifetime supply of Cheesie Honkers", "RayZar personal energy weapon", "Kaleidoscope Cosmetics gene-therapy consultation")]!",\
|
||||
"We have been filed with a complaint from one of your customers in respect of their business relations with you.",\
|
||||
"We kindly ask you to open the COMPLAINT REPORT (attached) to reply on this complaint..")
|
||||
if(4)
|
||||
sender = pick("Buy Dr. Maxman","Having dysfuctional troubles?")
|
||||
sender = pick("Buy Dr. Maxman","Having dysfunctional troubles?")
|
||||
message = pick("DR MAXMAN: REAL Doctors, REAL Science, REAL Results!",\
|
||||
"Dr. Maxman was created by George Acuilar, M.D, a [using_map.boss_short] Certified Urologist who has treated over 70,000 patients region wide with '[pick("male","female", "other")] problems'.",\
|
||||
"After seven years of research, Dr Acuilar and his team came up with this simple breakthrough [pick("male","female", "other")] enhancement formula.",\
|
||||
@@ -119,12 +119,12 @@
|
||||
"We are happy to inform you that due to the delay, we have been instructed to IMMEDIATELY deposit all funds into your account",\
|
||||
"Dear fund beneficiary, We have please to inform you that overdue funds payment has finally been approved and released for payment",\
|
||||
"Due to my lack of agents I require an off-world financial account to immediately deposit the sum of 1 POINT FIVE MILLION thalers.",\
|
||||
"Greetings [pick("sir", "madame", "esteemed colleague")], I regretfully to inform you that as I lay dying here due to my lack ofheirs I have chosen you to recieve the full sum of my lifetime savings of 1.5 billion thalers")
|
||||
"Greetings [pick("sir", "madame", "esteemed colleague")], I regretfully to inform you that as I lay dying here due to my lack of heirs I have chosen you to receive the full sum of my lifetime savings of 1.5 billion thalers")
|
||||
if(6)
|
||||
sender = pick("[using_map.company_name] Morale Divison","Feeling Lonely?","Bored?","www.wetskrell.nt")
|
||||
sender = pick("[using_map.company_name] Morale Division","Feeling Lonely?","Bored?","www.wetskrell.nt")
|
||||
message = pick("The [using_map.company_name] Morale Division wishes to provide you with quality entertainment sites.",\
|
||||
"WetSkrell.nt is a xenophillic website endorsed by NT for the use of discerning crewmembers among it's many stations and colonies.",\
|
||||
"Wetskrell.nt only provides the higest quality of xenophilic entertaiment to [using_map.company_name] Employees.",\
|
||||
"Wetskrell.nt only provides the highest quality of xenophilic entertainment to [using_map.company_name] Employees.",\
|
||||
"Simply enter your [using_map.company_name] Bank account system number and pin. With three easy steps this service could be yours!")
|
||||
if(7)
|
||||
sender = pick("You have won free tickets!", "Occulum Sweepstakes!", "Click here to claim your prize!","You are the 1000th vistor!","You are our lucky grand prize winner!")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// This is a somewhat special type of event, that bridges to the old event datum and makes it work with the new system.
|
||||
// It acts as a compatability layer between the old event, and the new GM system.
|
||||
// It acts as a compatibility layer between the old event, and the new GM system.
|
||||
// This is possible because the new datum is mostly a superset of the old one.
|
||||
/datum/event2/event/legacy
|
||||
var/datum/event/legacy_event = null
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
// Type for inheritence.
|
||||
// Type for inheritance.
|
||||
// It has a null name, so it won't be ran.
|
||||
/datum/event2/meta/prison_break
|
||||
chaos = 10
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
return 10 + (door_fixers * 20) + (afflicted_crew * 10) + trapped
|
||||
|
||||
// This is overriden to have specific events trigger more often based on who is trapped in where, if applicable.
|
||||
// This is overridden to have specific events trigger more often based on who is trapped in where, if applicable.
|
||||
/datum/event2/meta/prison_break/proc/get_odds_from_trapped_mobs()
|
||||
return 0
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
var/containment_display_desc = null
|
||||
var/list/areas_to_break = list()
|
||||
var/list/area_types_to_break = null // Area types to include.
|
||||
var/list/area_types_to_ignore = null // Area types to exclude, usually due to undesired inclusion from inheritence.
|
||||
var/list/area_types_to_ignore = null // Area types to exclude, usually due to undesired inclusion from inheritance.
|
||||
var/ignore_blast_doors = FALSE
|
||||
|
||||
/datum/event2/event/prison_break/brig
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
suspicious_people += metric.count_all_of_specific_species(SPECIES_PROMETHEAN) * 20
|
||||
suspicious_people += metric.count_all_of_specific_species(SPECIES_UNATHI) * 10
|
||||
suspicious_people += metric.count_all_of_specific_species(SPECIES_ZADDAT) * 10
|
||||
suspicious_people += metric.count_all_of_specific_species(SPECIES_SKRELL) * 5 // Not sure why skrell are so high.
|
||||
suspicious_people += metric.count_all_of_specific_species(SPECIES_SKRELL) * 5 // Not sure why Skrell are so high.
|
||||
suspicious_people += metric.count_all_of_specific_species(SPECIES_TAJ) * 5
|
||||
suspicious_people += metric.count_all_of_specific_species(SPECIES_TESHARI) * 5
|
||||
suspicious_people += metric.count_all_of_specific_species(SPECIES_HUMAN_VATBORN) * 5
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Base type used for inheritence.
|
||||
// Base type used for inheritance.
|
||||
/datum/event2/meta/stowaway
|
||||
event_class = "stowaway"
|
||||
departments = list(DEPARTMENT_SECURITY, DEPARTMENT_EVERYONE)
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
log_debug("Surprise carp attack failed to find any space turfs offscreen to the victim.")
|
||||
|
||||
// Gets suitable spots for carp to spawn, without risk of going off the edge of the map.
|
||||
// If there is demand for this proc, then it can easily be made independant and moved into one of the helper files.
|
||||
// If there is demand for this proc, then it can easily be made independent and moved into one of the helper files.
|
||||
/datum/event2/event/surprise_carp/proc/get_safe_square(atom/center, radius)
|
||||
var/lower_left_x = max(center.x - radius, 1 + TRANSITIONEDGE)
|
||||
var/lower_left_y = max(center.y - radius, 1 + TRANSITIONEDGE)
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
B.emag_act(1)
|
||||
|
||||
// Messaging server spam filters.
|
||||
// This might be better served as a seperate event since it seems more like a hacker attack than a natural occurance.
|
||||
// This might be better served as a separate event since it seems more like a hacker attack than a natural occurrence.
|
||||
if(message_servers)
|
||||
for(var/obj/machinery/message_server/MS in message_servers)
|
||||
if(MS.z in get_location_z_levels())
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
// The code for actually executing an event should go inside the event object instead.
|
||||
/datum/event2/meta
|
||||
// Name used for organization, shown in the debug verb for the GM system.
|
||||
// If null, the meta event will be discarded when the GM system initializes, so it is safe to use nameless subtypes for inheritence.
|
||||
// If null, the meta event will be discarded when the GM system initializes, so it is safe to use nameless subtypes for inheritance.
|
||||
var/name = null
|
||||
|
||||
// If FALSE, the GM system won't pick this.
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
// The type path to the event associated with this meta object.
|
||||
// When the GM chooses this event, a new instance is made.
|
||||
// Seperate instances allow for multiple concurrent events without sharing state, e.g. two blobs.
|
||||
// Separate instances allow for multiple concurrent events without sharing state, e.g. two blobs.
|
||||
var/event_type = null
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
return
|
||||
|
||||
if(!check_rights(R_ADMIN|R_EVENT|R_DEBUG))
|
||||
message_admins("[usr] has attempted to manipulate an event without sufficent privilages.")
|
||||
message_admins("[usr] has attempted to manipulate an event without sufficient privileges.")
|
||||
return
|
||||
|
||||
if(href_list["force"])
|
||||
|
||||
Reference in New Issue
Block a user