Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
90d2663
Please let this work
Xoxeyos Mar 14, 2021
d299f4d
This shit is fucking abhorrent
Xoxeyos Mar 14, 2021
780ab22
Why is this here?
Xoxeyos Mar 15, 2021
0761ac8
Update dynamic_rulesets_roundstart.dm
Xoxeyos Mar 15, 2021
b1dbe8e
Merges Dynamic 2021 final fixes
Xoxeyos Mar 16, 2021
35064ac
Will this work?
Xoxeyos Mar 16, 2021
f560d3f
Maybe this might work.
Xoxeyos Mar 16, 2021
6213487
This was suggested as a change.
Xoxeyos Mar 16, 2021
44e8be2
Fixes bad bugs
Mar 18, 2021
1f9ae79
Easy enough.
Xoxeyos Mar 21, 2021
107b8d2
Update ghost_pool_protection.dm
Xoxeyos Mar 21, 2021
e821d68
Update ghost_pool_protection.dm
Xoxeyos Mar 21, 2021
e077b2a
Merge remote-tracking branch 'origin/dynamic2021-goodluck' into Dynam…
Xoxeyos Mar 22, 2021
3ae426b
Update dynamic.dm
Xoxeyos Mar 22, 2021
b4352e1
Update dynamic.dm
Xoxeyos Mar 22, 2021
6f36a13
Update dynamic_rulesets_latejoin.dm
Xoxeyos Mar 25, 2021
5ea6965
Update dynamic_rulesets_latejoin.dm
Xoxeyos Mar 28, 2021
443bfeb
Merge branch 'master' into dynamic2021-goodluck
Xoxeyos Apr 18, 2021
fb0efe4
Update dynamic.dm
Xoxeyos Apr 18, 2021
a1c2f44
Merge branch 'master' into dynamic2021-goodluck
JamieD1 Apr 25, 2021
0e82c53
Update dynamic_rulesets_roundstart.dm
Xoxeyos May 6, 2021
07a8655
Merge branch 'master' into dynamic2021-goodluck
Xoxeyos May 7, 2021
2e2b443
I can put in sound_enviroment when I figure out what it is
Xoxeyos May 7, 2021
141b61b
Update mob_defines.dm
Xoxeyos May 7, 2021
cb85bd8
Update mob_defines.dm
Xoxeyos May 7, 2021
9271265
Update mob_defines.dm
Xoxeyos May 7, 2021
e7f8bef
Security and Command personnel rolled infiltrator again
Xoxeyos May 12, 2021
dda0376
Update dynamic.dm
Xoxeyos May 12, 2021
24e0a63
Ports over https://github.com/tgstation/tgstation/pull/58644 - No mor…
Xoxeyos May 18, 2021
d272a69
Update ruleset_picking.dm
Xoxeyos May 18, 2021
8eabc26
Update dynamic_rulesets_latejoin.dm
Xoxeyos May 18, 2021
45abf5b
Update dynamic_rulesets_roundstart.dm
Xoxeyos May 18, 2021
5a6e75d
Update dynamic_rulesets_roundstart.dm
Xoxeyos May 18, 2021
ff18a8e
Merge branch 'yogstation13:master' into dynamic2021-goodluck
Xoxeyos May 18, 2021
46bbe9e
weight configurement
Xoxeyos May 25, 2021
2463808
weight configurement
Xoxeyos May 25, 2021
0654b57
Update dynamic_rulesets_roundstart.dm
Xoxeyos May 25, 2021
22a6c93
Update dynamic_rulesets_latejoin.dm
Xoxeyos May 25, 2021
fc3c59d
Update dynamic_rulesets_roundstart.dm
Xoxeyos May 25, 2021
1e15260
Update dynamic_rulesets.dm
Xoxeyos May 25, 2021
c787e40
Update dynamic.dm
Xoxeyos May 25, 2021
c570372
Update dynamic_rulesets_latejoin.dm
Xoxeyos May 25, 2021
faf815f
Update dynamic_rulesets_roundstart.dm
Xoxeyos May 25, 2021
b64568d
Update dynamic_rulesets_roundstart.dm
Xoxeyos May 25, 2021
91d4606
Update dynamic_rulesets.dm
Xoxeyos May 25, 2021
816054e
Merge branch 'yogstation13:master' into dynamic2021-goodluck
Xoxeyos Jun 15, 2021
31cd130
Update new_player.dm
Xoxeyos Jun 15, 2021
9d2c87d
Update dynamic_rulesets_roundstart.dm
Xoxeyos Jun 17, 2021
e615f47
Update dynamic_rulesets_midround.dm
Xoxeyos Jun 17, 2021
ebcead7
Update dynamic_rulesets_latejoin.dm
Xoxeyos Jun 17, 2021
db43616
Update dynamic_rulesets_midround.dm
Xoxeyos Jun 17, 2021
52cb755
Update dynamic_rulesets_roundstart.dm
Xoxeyos Jun 17, 2021
34886c0
Update dynamic_rulesets_roundstart.dm
Xoxeyos Jun 17, 2021
f75abfe
Update dynamic_rulesets_latejoin.dm
Xoxeyos Jun 22, 2021
7e9e218
Update dynamic_rulesets_roundstart.dm
Xoxeyos Jun 22, 2021
af22426
Adds from logging from https://github.com/tgstation/tgstation/pull/58…
Xoxeyos Jun 22, 2021
1a41f89
Finishes up adding https://github.com/tgstation/tgstation/pull/58451/
Xoxeyos Jun 22, 2021
17565e3
Update dynamic_rulesets_midround.dm
Xoxeyos Jun 23, 2021
85ce65d
Update dynamic_rulesets_midround.dm
Xoxeyos Jun 23, 2021
603b047
Merge branch 'yogstation13:master' into dynamic2021-goodluck
Xoxeyos Jun 30, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions code/__DEFINES/admin.dm
Original file line number Diff line number Diff line change
Expand Up @@ -99,3 +99,18 @@
#define POLICY_POLYMORPH "polymorph"
/// Shown on top of policy verb window
#define POLICY_VERB_HEADER "policy_verb_header"

// allowed ghost roles this round, starts as everything allowed
GLOBAL_VAR_INIT(ghost_role_flags, (~0))

//Flags that control what ways ghosts can get back into the round
//ie fugitives, space dragon, etc. also includes dynamic midrounds as it's the same deal
#define GHOSTROLE_MIDROUND_EVENT (1<<0)
//ie ashwalkers, free golems, beach bums
#define GHOSTROLE_SPAWNER (1<<1)
//ie mind monkeys, sentience potion
#define GHOSTROLE_STATION_SENTIENCE (1<<2)
//ie pais, posibrains
#define GHOSTROLE_SILICONS (1<<3)
//ie mafia, ctf
#define GHOSTROLE_MINIGAME (1<<4)
5 changes: 5 additions & 0 deletions code/__DEFINES/components.dm
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,11 @@
// signals from globally accessible objects
/// from SSsun when the sun changes position : (azimuth)
#define COMSIG_SUN_MOVED "sun_moved"
/// Random event is trying to roll. (/datum/round_event_control/random_event)
/// Called by (/datum/round_event_control/preRunEvent).
#define COMSIG_GLOB_PRE_RANDOM_EVENT "!pre_random_event"
/// Do not allow this random event to continue.
#define CANCEL_PRE_RANDOM_EVENT (1<<0)

//////////////////////////////////////////////////////////////////

Expand Down
17 changes: 17 additions & 0 deletions code/__DEFINES/dynamic.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/// This is the only ruleset that should be picked this round, used by admins and should not be on rulesets in code.
#define ONLY_RULESET (1 << 0)

/// Only one ruleset with this flag will be picked.
#define HIGH_IMPACT_RULESET (1 << 1)

/// This ruleset can only be picked once. Anything that does not have a scaling_cost MUST have this.
#define LONE_RULESET (1 << 2)

/// No round event was hijacked this cycle
#define HIJACKED_NOTHING "HIJACKED_NOTHING"

/// This cycle, a round event was hijacked when the last midround event was too recent.
#define HIJACKED_TOO_RECENT "HIJACKED_TOO_RECENT"

/// This cycle, a round event was hijacked when the next midround event is too soon.
#define HIJACKED_TOO_SOON "HIJACKED_TOO_SOON"
6 changes: 6 additions & 0 deletions code/__DEFINES/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@
#define PLAYER_READY_TO_PLAY 1
#define PLAYER_READY_TO_OBSERVE 2

//Game mode list indexes
#define CURRENT_LIVING_PLAYERS "living_players_list"
#define CURRENT_LIVING_ANTAGS "living_antags_list"
#define CURRENT_DEAD_PLAYERS "dead_players_list"
#define CURRENT_OBSERVERS "current_observers_list"

//movement intent defines for the m_intent var
#define MOVE_INTENT_WALK "walk"
#define MOVE_INTENT_RUN "run"
Expand Down
5 changes: 5 additions & 0 deletions code/__DEFINES/rust_g.dm
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,11 @@
#define RUSTG_HTTP_METHOD_PATCH "patch"
#define RUSTG_HTTP_METHOD_HEAD "head"

#define rustg_file_read(fname) call(RUST_G, "file_read")("[fname]")
#define rustg_file_exists(fname) call(RUST_G, "file_exists")("[fname]")
#define rustg_file_write(text, fname) call(RUST_G, "file_write")(text, "[fname]")
#define rustg_file_append(text, fname) call(RUST_G, "file_append")(text, "[fname]")

#define rustg_sql_connect_pool(options) call(RUST_G, "sql_connect_pool")(options)
#define rustg_sql_query_async(handle, query, params) call(RUST_G, "sql_query_async")(handle, query, params)
#define rustg_sql_query_blocking(handle, query, params) call(RUST_G, "sql_query_blocking")(handle, query, params)
Expand Down
1 change: 1 addition & 0 deletions code/__HELPERS/_lists.dm
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#define LAZYSET(L, K, V) if(!L) { L = list(); } L[K] = V;
#define LAZYLEN(L) length(L)
#define LAZYCLEARLIST(L) if(L) L.Cut()
#define LAZYACCESSASSOC(L, I, K) L ? L[I] ? L[I][K] ? L[I][K] : null : null : null
#define SANITIZE_LIST(L) ( islist(L) ? L : list() )
#define reverseList(L) reverseRange(L.Copy())
#define LAZYADDASSOC(L, K, V) if(!L) { L = list(); } L[K] += list(V);
Expand Down
2 changes: 2 additions & 0 deletions code/__HELPERS/game.dm
Original file line number Diff line number Diff line change
Expand Up @@ -476,6 +476,8 @@
*/
/proc/pollGhostCandidates(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, ignore_category = null, flashwindow = TRUE)
var/list/candidates = list()
if(!(GLOB.ghost_role_flags & GHOSTROLE_STATION_SENTIENCE))
return candidates

for(var/mob/dead/observer/G in GLOB.player_list)
candidates += G
Expand Down
6 changes: 5 additions & 1 deletion code/__HELPERS/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -520,4 +520,8 @@ GLOBAL_LIST_EMPTY(species_list)
callperrotate?.Invoke()
sleep(1)
if(set_original_dir)
AM.setDir(originaldir)
AM.setDir(originaldir)

/// Gets the client of the mob, allowing for mocking of the client.
/// You only need to use this if you know you're going to be mocking clients somewhere else.
#define GET_CLIENT(mob) (##mob.client || ##mob.mock_client)
2 changes: 1 addition & 1 deletion code/__HELPERS/roundend.dm
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@
if(istype(SSticker.mode, /datum/game_mode/dynamic))
var/datum/game_mode/dynamic/mode = SSticker.mode
parts += "[FOURSPACES]Threat level: [mode.threat_level]"
parts += "[FOURSPACES]Threat left: [mode.threat]" //yes
parts += "[FOURSPACES]Threat left: [mode.mid_round_budget]"
parts += "[FOURSPACES]Executed rules:"
for(var/datum/dynamic_ruleset/rule in mode.executed_rules)
parts += "[FOURSPACES][FOURSPACES][rule.ruletype] - <b>[rule.name]</b>: -[rule.cost + rule.scaled_times * rule.scaling_cost] threat"
Expand Down
3 changes: 2 additions & 1 deletion code/_globalvars/lists/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ GLOBAL_LIST_INIT(simple_animals, list(list(),list(),list(),list())) // One for e
GLOBAL_LIST_EMPTY(spidermobs) //all sentient spider mobs
GLOBAL_LIST_EMPTY(bots_list)
GLOBAL_LIST_EMPTY(aiEyes)
GLOBAL_LIST_EMPTY(new_player_list) //all /mob/dead/new_player, in theory all should have clients and those that don't are in the process of spawning and get deleted when done.
///underages who have been reported to security for trying to buy things they shouldn't, so they can't spam
GLOBAL_LIST_EMPTY(narcd_underages)

Expand Down Expand Up @@ -72,7 +73,7 @@ GLOBAL_LIST_EMPTY(walkingmushroom)
.[E.key] = list(E)
else
.[E.key] += E

if(!.[E.key_third_person])
.[E.key_third_person] = list(E)
else
Expand Down
3 changes: 3 additions & 0 deletions code/controllers/subsystem/pai.dm
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,9 @@ SUBSYSTEM_DEF(pai)
return FALSE

/datum/controller/subsystem/pai/proc/findPAI(obj/item/paicard/p, mob/user)
if(!(GLOB.ghost_role_flags & GHOSTROLE_SILICONS))
to_chat(user, "<span class='warning'>Due to growing incidents of SELF corrupted independent artificial intelligences, freeform personality devices have been temporarily banned in this sector.</span>")
return
if(!ghost_spam)
ghost_spam = TRUE
for(var/mob/dead/observer/G in GLOB.player_list)
Expand Down
4 changes: 4 additions & 0 deletions code/controllers/subsystem/ticker.dm
Original file line number Diff line number Diff line change
Expand Up @@ -619,6 +619,10 @@ SUBSYSTEM_DEF(ticker)
fdel(F)
WRITE_FILE(F, the_mode)

/// Returns if either the master mode or the forced secret ruleset matches the mode name.
/datum/controller/subsystem/ticker/proc/is_mode(mode_name)
return GLOB.master_mode == mode_name || GLOB.secret_force_mode == mode_name

/datum/controller/subsystem/ticker/proc/SetRoundEndSound(the_sound)
set waitfor = FALSE
round_end_sound_sent = FALSE
Expand Down
4 changes: 4 additions & 0 deletions code/datums/mocking/client.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/// This should match the interface of /client wherever necessary.
/datum/client_interface
/// Player preferences datum for the client
var/datum/preferences/prefs
Loading