From 191dee80b8dd9fa14f6551add39c56cf99b3cf3d Mon Sep 17 00:00:00 2001 From: Letter N <24603524+LetterN@users.noreply.github.com> Date: Wed, 12 Aug 2020 17:20:29 +0800 Subject: [PATCH] 50% more fun! --- code/modules/mafia/controller.dm | 38 ++++++++++++++++++++++++++------ code/modules/mafia/map_pieces.dm | 4 ++-- 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/code/modules/mafia/controller.dm b/code/modules/mafia/controller.dm index 5873decb8f..cd8c382f30 100644 --- a/code/modules/mafia/controller.dm +++ b/code/modules/mafia/controller.dm @@ -67,6 +67,8 @@ var/max_player = MAFIA_MAX_PLAYER_COUNT ///Required player count var/required_player = 5 + ///Prioritizes clients to have cool antag roles + var/low_pop_mode = FALSE /datum/mafia_controller/New() . = ..() @@ -93,7 +95,7 @@ * * setup_list: list of all the datum setups (fancy list of roles) that would work for the game * * ready_players: list of filtered, sane players (so not playing or disconnected) for the game to put into roles */ -/datum/mafia_controller/proc/prepare_game(setup_list,ready_players) +/datum/mafia_controller/proc/prepare_game(setup_list, ready_players) var/list/possible_maps = subtypesof(/datum/map_template/mafia) var/turf/spawn_area = get_turf(locate(/obj/effect/landmark/mafia_game_area) in GLOB.landmarks_list) @@ -116,18 +118,40 @@ landmarks += possible_spawn current_setup_text = list() + + var/list/boring_roles = list() + var/list/not_boring_roles = list() + for(var/rtype in setup_list) for(var/i in 1 to setup_list[rtype]) - all_roles += new rtype(src) + var/datum/mafia_role/role = new rtype(src) + all_roles += role + if(role.role_type == TOWN_PROTECT || role.role_type == TOWN_INVEST || role.role_type == MAFIA_SPECIAL || role.role_type == MAFIA_REGULAR) + not_boring_roles += role + else + boring_roles += role var/datum/mafia_role/rp = rtype current_setup_text += "[initial(rp.name)] x[setup_list[rtype]]" + var/list/spawnpoints = landmarks.Copy() - for(var/datum/mafia_role/role in all_roles) - role.assigned_landmark = pick_n_take(spawnpoints) - if(!debug) + + if(length(ready_players) < 7 || low_pop_mode) + //do normal assign + for(var/datum/mafia_role/role in not_boring_roles) + role.assigned_landmark = pick_n_take(spawnpoints) role.player_key = pick_n_take(ready_players) - else - role.player_key = pop(ready_players) + //shame! + for(var/datum/mafia_role/role in boring_roles) + role.assigned_landmark = pick_n_take(spawnpoints) + role.player_key = pick_n_take(ready_players) + + else //go run the normal one + for(var/datum/mafia_role/role in all_roles) + role.assigned_landmark = pick_n_take(spawnpoints) + if(!debug) + role.player_key = pick_n_take(ready_players) + else + role.player_key = pop(ready_players) /datum/mafia_controller/proc/send_message(msg,team) for(var/datum/mafia_role/R in all_roles) diff --git a/code/modules/mafia/map_pieces.dm b/code/modules/mafia/map_pieces.dm index 3459603f3c..3339c596b4 100644 --- a/code/modules/mafia/map_pieces.dm +++ b/code/modules/mafia/map_pieces.dm @@ -73,7 +73,7 @@ description = "Vampires and changelings clash to find out who's the superior bloodsucking monster in this creepy castle map." mappath = "_maps/map_files/Mafia/mafia_gothic.dmm" -/datum/map_template/mafia/gothic +/datum/map_template/mafia/reebe name = "Reebe" description = "Trouble in Reebe station! Copypaste guranteed by ClockCo™" - mappath = "_maps/map_files/Mafia/mafia_reebe.dmm" \ No newline at end of file + mappath = "_maps/map_files/Mafia/mafia_reebe.dmm"