fairly sure mmo mafia is not a thing and i'm lazy
This commit is contained in:
+33
-119
@@ -1,7 +1,30 @@
|
||||
///how many people can play mafia without issues (running out of spawns, procs not expecting more than this amount of people, etc)
|
||||
#define MAFIA_MAX_PLAYER_COUNT 12
|
||||
|
||||
#define MAFIA_TEAM_TOWN "town"
|
||||
#define MAFIA_TEAM_MAFIA "mafia"
|
||||
#define MAFIA_TEAM_SOLO "solo"
|
||||
|
||||
//types of town roles for random setup gen
|
||||
/// assistants it's just assistants filling up the rest of the roles
|
||||
#define TOWN_OVERFLOW "overflow"
|
||||
/// roles that learn info about others in the game (chaplain, detective, psych)
|
||||
#define TOWN_INVEST "invest"
|
||||
/// roles that keep other roles safe (doctor, and weirdly enough lawyer counts)
|
||||
#define TOWN_PROTECT "protect"
|
||||
/// roles that don't fit into anything else (hop)
|
||||
#define TOWN_MISC "misc"
|
||||
|
||||
//other types (mafia team, neutrals)
|
||||
/// normal vote kill changelings
|
||||
#define MAFIA_REGULAR "regular"
|
||||
/// every other changeling role that has extra abilities
|
||||
#define MAFIA_SPECIAL "special"
|
||||
/// role that wins solo that nobody likes
|
||||
#define NEUTRAL_KILL "kill"
|
||||
/// role that upsets the game aka obsessed, usually worse for town than mafia but they can vote against mafia
|
||||
#define NEUTRAL_DISRUPT "disrupt"
|
||||
|
||||
#define MAFIA_PHASE_SETUP 1
|
||||
#define MAFIA_PHASE_DAY 2
|
||||
#define MAFIA_PHASE_VOTING 3
|
||||
@@ -20,132 +43,23 @@
|
||||
|
||||
//in order of events + game end
|
||||
|
||||
#define COMSIG_MAFIA_SUNDOWN "sundown" //the rest of these phases are at the end of the night when shutters raise, in a different order of resolution
|
||||
/// when the shutters fall, before the 45 second wait and night event resolution
|
||||
#define COMSIG_MAFIA_SUNDOWN "sundown"
|
||||
/// after the 45 second wait, for actions that must go first
|
||||
#define COMSIG_MAFIA_NIGHT_START "night_start"
|
||||
/// most night actions now resolve
|
||||
#define COMSIG_MAFIA_NIGHT_ACTION_PHASE "night_actions"
|
||||
/// now killing happens from the roles that do that. the reason this is post action phase is to ensure doctors can protect and lawyers can block
|
||||
#define COMSIG_MAFIA_NIGHT_KILL_PHASE "night_kill"
|
||||
/// now undoing states like protection, actions that must happen last, etc. right before shutters raise and the day begins
|
||||
#define COMSIG_MAFIA_NIGHT_END "night_end"
|
||||
|
||||
/// signal sent to roles when the game is confirmed ending
|
||||
#define COMSIG_MAFIA_GAME_END "game_end"
|
||||
|
||||
//list of ghosts who want to play mafia, every time someone enters the list it checks to see if enough are in
|
||||
/// list of ghosts who want to play mafia, every time someone enters the list it checks to see if enough are in
|
||||
GLOBAL_LIST_EMPTY(mafia_signup)
|
||||
//the current global mafia game running.
|
||||
GLOBAL_VAR(mafia_game)
|
||||
/// list of ghosts who want to play mafia that have since disconnected. They are kept in the lobby, but not counted for starting a game.
|
||||
GLOBAL_LIST_EMPTY(mafia_bad_signup)
|
||||
|
||||
GLOBAL_LIST_INIT(mafia_setups,generate_mafia_setups())
|
||||
|
||||
/proc/generate_mafia_setups()
|
||||
. = list()
|
||||
for(var/T in subtypesof(/datum/mafia_setup))
|
||||
var/datum/mafia_setup/N = new T
|
||||
. += list(N.roles)
|
||||
|
||||
/datum/mafia_setup
|
||||
var/name = "Make subtypes with the list and a name, more readable than list(list(),list()) etc"
|
||||
var/list/roles
|
||||
|
||||
// 12 Player
|
||||
|
||||
/datum/mafia_setup/twelve_basic
|
||||
name = "12 Player Setup Basic"
|
||||
roles = list(
|
||||
/datum/mafia_role=6,
|
||||
/datum/mafia_role/md=1,
|
||||
/datum/mafia_role/detective=1,
|
||||
/datum/mafia_role/clown=1,
|
||||
/datum/mafia_role/mafia=3
|
||||
)
|
||||
|
||||
/datum/mafia_setup/twelve_md
|
||||
name = "12 Player Setup MD"
|
||||
roles = list(
|
||||
/datum/mafia_role=6,
|
||||
/datum/mafia_role/md=3,
|
||||
/datum/mafia_role/mafia=3
|
||||
)
|
||||
|
||||
/datum/mafia_setup/twelve_all
|
||||
name = "12 Player Setup All"
|
||||
roles = list(
|
||||
/datum/mafia_role=1,
|
||||
/datum/mafia_role/psychologist=1,
|
||||
/datum/mafia_role/md=1,
|
||||
/datum/mafia_role/detective=1,
|
||||
/datum/mafia_role/clown=1,
|
||||
/datum/mafia_role/chaplain=1,
|
||||
/datum/mafia_role/lawyer=1,
|
||||
/datum/mafia_role/traitor=1,
|
||||
/datum/mafia_role/mafia=3,
|
||||
/datum/mafia_role/fugitive=1,
|
||||
/datum/mafia_role/obsessed=1
|
||||
)
|
||||
|
||||
/datum/mafia_setup/twelve_joke
|
||||
name = "12 Player Setup Funny"
|
||||
roles = list(
|
||||
/datum/mafia_role=5,
|
||||
/datum/mafia_role/detective=2,
|
||||
/datum/mafia_role/clown=2,
|
||||
/datum/mafia_role/mafia=3
|
||||
)
|
||||
|
||||
/datum/mafia_setup/twelve_lockdown
|
||||
name = "12 Player Setup Lockdown"
|
||||
roles = list(
|
||||
/datum/mafia_role=5,
|
||||
/datum/mafia_role/md=1,
|
||||
/datum/mafia_role/detective=1,
|
||||
/datum/mafia_role/lawyer=2,
|
||||
/datum/mafia_role/mafia=3
|
||||
)
|
||||
|
||||
/datum/mafia_setup/twelve_rip
|
||||
name = "12 Player Setup RIP"
|
||||
roles = list(
|
||||
/datum/mafia_role=6,
|
||||
/datum/mafia_role/md=1,
|
||||
/datum/mafia_role/detective=1,
|
||||
/datum/mafia_role/mafia=3,
|
||||
/datum/mafia_role/traitor=1
|
||||
)
|
||||
|
||||
/datum/mafia_setup/twelve_double_treason
|
||||
name = "12 Player Setup Double Treason"
|
||||
roles = list(
|
||||
/datum/mafia_role=8,
|
||||
/datum/mafia_role/detective=1,
|
||||
/datum/mafia_role/traitor=1,
|
||||
/datum/mafia_role/obsessed=2
|
||||
)
|
||||
|
||||
/datum/mafia_setup/twelve_fugitives
|
||||
name = "12 Player Fugitives"
|
||||
roles = list(
|
||||
/datum/mafia_role=6,
|
||||
/datum/mafia_role/psychologist=1,
|
||||
/datum/mafia_role/mafia=3,
|
||||
/datum/mafia_role/fugitive=2
|
||||
)
|
||||
|
||||
/datum/mafia_setup/twelve_traitor_mafia
|
||||
name = "12 Player Traitor Mafia"
|
||||
roles = list(
|
||||
/datum/mafia_role=3,
|
||||
/datum/mafia_role/psychologist=2,
|
||||
/datum/mafia_role/md=2,
|
||||
/datum/mafia_role/detective=2,
|
||||
/datum/mafia_role/traitor=3
|
||||
)
|
||||
|
||||
/*
|
||||
/datum/mafia_setup/three_test
|
||||
name = "3 Player Test"
|
||||
roles = list(
|
||||
/datum/mafia_role/chaplain=1,
|
||||
/datum/mafia_role/psychologist=1,
|
||||
/datum/mafia_role/mafia=1
|
||||
)
|
||||
*/
|
||||
/// the current global mafia game running.
|
||||
GLOBAL_VAR(mafia_game)
|
||||
|
||||
Reference in New Issue
Block a user