mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-18 22:22:09 +00:00
Implemented a system to avoid the same event happening too often.
Also bumped event frequency, this shouldn't be as bad with the same event not repeating itself that often.
This commit is contained in:
@@ -20,6 +20,8 @@
|
||||
sleep(2400)
|
||||
*/
|
||||
|
||||
var/list/event_last_fired = list()
|
||||
|
||||
//Always triggers an event when called, dynamically chooses events based on job population
|
||||
/proc/spawn_dynamic_event()
|
||||
if(!config.allow_random_events)
|
||||
@@ -86,8 +88,14 @@
|
||||
if(!sent_ninja_to_station && toggle_space_ninja)
|
||||
possibleEvents[/datum/event/space_ninja] = max(active_with_role["Security"], 5)
|
||||
|
||||
for(var/event_type in event_last_fired) if(possibleEvents[event_type])
|
||||
var/time_passed = world.time - event_last_fired[event_type]
|
||||
var/weight_modifier = max(0, 60 * 60 - time_passed / 100)
|
||||
|
||||
possibleEvents[event_type] = max(possibleEvents[event_type] - weight_modifier, 0)
|
||||
|
||||
var/picked_event = pickweight(possibleEvents)
|
||||
event_last_fired[picked_event] = world.time
|
||||
|
||||
// Debug code below here, very useful for testing so don't delete please.
|
||||
var/debug_message = "Firing random event. "
|
||||
|
||||
@@ -2,8 +2,8 @@ var/list/allEvents = typesof(/datum/event) - /datum/event
|
||||
var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event
|
||||
//var/list/potentialRandomEvents = typesof(/datum/event) - /datum/event - /datum/event/spider_infestation - /datum/event/alien_infestation
|
||||
|
||||
var/eventTimeLower = 10000 //15 minutes
|
||||
var/eventTimeUpper = 25000 //30 minutes
|
||||
var/eventTimeLower = 6000 //10 minutes
|
||||
var/eventTimeUpper = 12000 //15 minutes
|
||||
var/scheduledEvent = null
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user