Files
Yogstation/code/game/gamemodes/dynamic/dynamic_hijacking.dm
Xoxeyos 4374b935ce Dynamic 2021 & Ghost Pool Protection (#11139)
* Please let this work

Good luck to myself, Xoxeyos

* This shit is fucking abhorrent

Admin.dm, rust_g, game.dm, mobs.dm, pai.dm, dynamic folder, holy_weapons.dm, admin_verbs.dm, topic.dm, ghost_pool_protection, antag_datum.dm, CTF.dm, corpse.dm, _event.dm, living/brain/posibrain.dm, giant_spider.dm, dynamic.json

* Why is this here?

* Update dynamic_rulesets_roundstart.dm

* Merges Dynamic 2021 final fixes

* Will this work?

* Maybe this might work.

* This was suggested as a change.

* Fixes bad bugs

* Easy enough.

* Update ghost_pool_protection.dm

* Update ghost_pool_protection.dm

* Update dynamic.dm

* Update dynamic.dm

* Update dynamic_rulesets_latejoin.dm

* Update dynamic_rulesets_latejoin.dm

* Update dynamic.dm

* Update dynamic_rulesets_roundstart.dm

* I can put in sound_enviroment when I figure out what it is

* Update mob_defines.dm

* Update mob_defines.dm

* Update mob_defines.dm

* Security and Command personnel rolled infiltrator again

* Update dynamic.dm

* Ports over https://github.com/tgstation/tgstation/pull/58644 - No more mass infiltrations?

This is an attempt to keep infiltrators from spawning in nonstop.

* Update ruleset_picking.dm

* Update dynamic_rulesets_latejoin.dm

* Update dynamic_rulesets_roundstart.dm

* Update dynamic_rulesets_roundstart.dm

* weight configurement

* weight configurement

* Update dynamic_rulesets_roundstart.dm

* Update dynamic_rulesets_latejoin.dm

* Update dynamic_rulesets_roundstart.dm

* Update dynamic_rulesets.dm

* Update dynamic.dm

* Update dynamic_rulesets_latejoin.dm

* Update dynamic_rulesets_roundstart.dm

* Update dynamic_rulesets_roundstart.dm

* Update dynamic_rulesets.dm

* Update new_player.dm

* Update dynamic_rulesets_roundstart.dm

* Update dynamic_rulesets_midround.dm

* Update dynamic_rulesets_latejoin.dm

* Update dynamic_rulesets_midround.dm

* Update dynamic_rulesets_roundstart.dm

* Update dynamic_rulesets_roundstart.dm

* Update dynamic_rulesets_latejoin.dm

* Update dynamic_rulesets_roundstart.dm

* Adds from logging from https://github.com/tgstation/tgstation/pull/58451/

* Finishes up adding https://github.com/tgstation/tgstation/pull/58451/

* Update dynamic_rulesets_midround.dm

* Update dynamic_rulesets_midround.dm

Co-authored-by: Redmoogle <dakotamew@gmail.com>
Co-authored-by: Jamie D <993128+JamieD1@users.noreply.github.com>
2021-07-09 10:49:41 +01:00

26 lines
1.3 KiB
Plaintext

/datum/game_mode/dynamic/proc/setup_hijacking()
RegisterSignal(SSdcs, COMSIG_GLOB_PRE_RANDOM_EVENT, .proc/on_pre_random_event)
/datum/game_mode/dynamic/proc/on_pre_random_event(datum/source, datum/round_event_control/round_event_control)
if (!round_event_control.dynamic_should_hijack)
return
if (random_event_hijacked != HIJACKED_NOTHING)
dynamic_log("Random event [round_event_control.name] tried to roll, but Dynamic vetoed it (random event has already ran).")
SSevents.spawnEvent()
SSevents.reschedule()
return CANCEL_PRE_RANDOM_EVENT
var/time_range = rand(random_event_hijack_minimum, random_event_hijack_maximum)
if (world.time - last_midround_injection_attempt < time_range)
random_event_hijacked = HIJACKED_TOO_RECENT
dynamic_log("Random event [round_event_control.name] tried to roll, but the last midround injection \
was too recent. Injection chance has been raised to [get_midround_injection_chance(dry_run = TRUE)]%.")
return CANCEL_PRE_RANDOM_EVENT
if (midround_injection_cooldown - world.time < time_range)
random_event_hijacked = HIJACKED_TOO_SOON
dynamic_log("Random event [round_event_control.name] tried to roll, but the next midround injection \
is too soon. Injection chance has been raised to [get_midround_injection_chance(dry_run = TRUE)]%.")
return CANCEL_PRE_RANDOM_EVENT