diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 1894664a..2a359465 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -91,6 +91,17 @@ SUBSYSTEM_DEF(mapping) seedRuins(space_ruins, CONFIG_GET(number/space_budget), /area/space, space_ruins_templates) SSmapping.seedStation() loading_ruins = FALSE + + //Hyper change - preload Reebe for midround purposes. I'll change this when I find a decent way to load maps midround. + var/list/errorList = list() + var/list/reebes = SSmapping.LoadGroup(errorList, "Reebe", "map_files/generic", "City_of_Cogs.dmm", default_traits = ZTRAITS_REEBE, silent = TRUE) + if(errorList.len) // reebe failed to load + message_admins("Reebe failed to load!") + log_game("Reebe failed to load!") + return FALSE + for(var/datum/parsed_map/PM in reebes) + PM.initTemplateBounds() + #endif repopulate_sorted_areas() // Set up Z-level transitions. diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index a80ccb9c..1695d9fc 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -150,6 +150,7 @@ Credit where due: var/datum/team/clockcult/main_clockcult /datum/game_mode/clockwork_cult/pre_setup() + /* //Reebe should be preloaded var/list/errorList = list() var/list/reebes = SSmapping.LoadGroup(errorList, "Reebe", "map_files/generic", "City_of_Cogs.dmm", default_traits = ZTRAITS_REEBE, silent = TRUE) if(errorList.len) // reebe failed to load @@ -158,6 +159,7 @@ Credit where due: return FALSE for(var/datum/parsed_map/PM in reebes) PM.initTemplateBounds() + */ if(CONFIG_GET(flag/protect_roles_from_antagonist)) restricted_jobs += protected_jobs if(CONFIG_GET(flag/protect_assistant_from_antagonist)) diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index 4c6a7acd..ca878983 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -17,10 +17,10 @@ GLOBAL_VAR_INIT(dynamic_latejoin_delay_max, (25 MINUTES)) GLOBAL_VAR_INIT(dynamic_midround_delay_min, (15 MINUTES)) GLOBAL_VAR_INIT(dynamic_midround_delay_max, (35 MINUTES)) -GLOBAL_VAR_INIT(dynamic_event_delay_min, (3 MINUTES)) -GLOBAL_VAR_INIT(dynamic_event_delay_max, (10 MINUTES)) +GLOBAL_VAR_INIT(dynamic_event_delay_min, (4 MINUTES)) +GLOBAL_VAR_INIT(dynamic_event_delay_max, (12 MINUTES)) -GLOBAL_VAR_INIT(dynamic_threat_delay, (5 MINUTES)) +GLOBAL_VAR_INIT(dynamic_threat_delay, (4 MINUTES)) // Are HIGHLANDER_RULESETs allowed to stack? GLOBAL_VAR_INIT(dynamic_no_stacking, TRUE) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets.dm b/code/game/gamemodes/dynamic/dynamic_rulesets.dm index fa944b17..b1e115b0 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets.dm @@ -27,7 +27,7 @@ var/list/exclusive_roles = list() /// If set, there needs to be a certain amount of players doing those roles (among the players who won't be drafted) for the rule to be drafted IMPORTANT: DOES NOT WORK ON ROUNDSTART RULESETS. var/list/enemy_roles = list() - /// If enemy_roles was set, this is the amount of enemy job workers needed per threat_level range (0-10,10-20,etc) IMPORTANT: DOES NOT WORK ON ROUNDSTART RULESETS. + /// If enemy_roles was set, this is the amount of enemy job workers needed per GLOB.dynamic_chaos_level range (0-0.5, 0.5-1.0) IMPORTANT: DOES NOT WORK ON ROUNDSTART RULESETS. var/required_enemies = list(1,1,0,0,0,0,0,0,0,0) /// The rule needs this many candidates (post-trimming) to be executed (example: Cult needs 4 players at round start) var/required_candidates = 0 diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm index 2890b5d0..c5dbea95 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm @@ -27,8 +27,8 @@ if (M.mind && M.mind.assigned_role && (M.mind.assigned_role in enemy_roles) && (!(M in candidates) || (M.mind.assigned_role in restricted_roles))) job_check++ // Checking for "enemies" (such as sec officers). To be counters, they must either not be candidates to that rule, or have a job that restricts them from it - var/threat = max(min(round(mode.threat_level/10),9),1) //min() to stop index errors at 100 threat //Max to stop breaking at 0 threat. - if (job_check < required_enemies[threat]) + var/chaos = min(max(round(GLOB.dynamic_chaos_level * 2), 0), 9) + if (job_check < required_enemies[chaos]) return FALSE return ..() @@ -249,7 +249,7 @@ else if(mode.threat_level > 15 && mode.threat > 15 && prob(30)) name = "Clogged Vents: Catastrophic" cost = 15 - required_enemies = list(4,4,4,3,3,3,2,1,1,1) + required_enemies = list(4,4,4,3,3,3,2,1,1,0) typepath = /datum/round_event/vent_clog/catastrophic chaos_min = 1.8 else @@ -307,14 +307,15 @@ /datum/dynamic_ruleset/event/meteor_wave/ready() if(world.time-SSticker.round_start_time > 35 MINUTES && mode.threat_level > 40 && mode.threat >= 25 && prob(30)) name = "Meteor Wave: Threatening" - cost = 10 + cost = 5 typepath = /datum/round_event/meteor_wave/threatening + requirements = list(101,101,30,25,20,20,20,20,20,15) chaos_min = 1.8 else if(world.time-SSticker.round_start_time > 45 MINUTES && mode.threat_level > 50 && mode.threat >= 40 && prob(30)) name = "Meteor Wave: Catastrophic" - cost = 0 + cost = 10 typepath = /datum/round_event/meteor_wave/catastrophic - required_enemies = list(3,3,3,3,3,3,3,3,3,3) + required_enemies = list(3,3,3,3,3,2,2,1,1,0) requirements = list(101,101,40,30,30,30,30,30,30,30) chaos_min = 2.0 else @@ -336,11 +337,11 @@ //config_tag = "anomaly_bluespace" typepath = /datum/round_event/anomaly/anomaly_bluespace enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Scientist","Captain") - required_enemies = list(1,1,1,0,0,0,0,0,0,0) + required_enemies = list(2,2,2,1,1,1,1,1,1,0) weight = 3 earliest_start = 20 MINUTES repeatable_weight_decrease = 2 - cost = 3 + cost = 0 requirements = list(101,101,5,5,5,5,5,5,5,5) high_population_requirement = 5 repeatable = TRUE @@ -353,7 +354,7 @@ //config_tag = "anomaly_flux" typepath = /datum/round_event/anomaly/anomaly_flux enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Scientist","Captain") - required_enemies = list(1,1,1,0,0,0,0,0,0,0) + required_enemies = list(2,2,2,2,2,2,2,2,2,0) weight = 3 earliest_start = 20 MINUTES repeatable_weight_decrease = 2 @@ -388,7 +389,7 @@ repeatable_weight_decrease = 1 cost = 0 enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Scientist","Captain","Cyborg") - required_enemies = list(2,2,2,2,2,1,1,1,1,1) + required_enemies = list(2,2,2,2,2,1,1,1,1,0) requirements = list(101,101,10,10,10,10,10,10,10,10) high_population_requirement = 10 repeatable = TRUE @@ -405,7 +406,7 @@ repeatable_weight_decrease = 1 cost = 0 enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Scientist","Captain","Cyborg") - required_enemies = list(3,3,3,2,2,2,2,2,2,2) + required_enemies = list(3,3,3,2,2,2,2,2,2,0) requirements = list(101,101,10,10,10,10,10,10,10,10) high_population_requirement = 10 repeatable = TRUE @@ -428,6 +429,7 @@ occurances_max = 1 requirements = list(10,5,0,0,0,0,0,0,0,0) //SECURE THAT DISK cost = 50 + chaos_min = 0.5 /datum/dynamic_ruleset/event/operative/get_weight() var/datum/round_event_control/operative/loneop = locate(/datum/round_event_control/operative) in SSevents.control @@ -453,7 +455,7 @@ weight = 1 earliest_start = 30 MINUTES repeatable_weight_decrease = 1 - cost = -10 + cost = 0 enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Scientist","Captain","Cyborg") required_enemies = list(2,1,1,1,1,1,0,0,0,0) requirements = list(101,25,20,15,15,15,10,10,10,10) @@ -472,7 +474,7 @@ cost = 4 requirements = list(101,5,5,1,1,1,1,1,1,1) high_population_requirement = 10 - earliest_start = 0 MINUTES + earliest_start = 10 MINUTES repeatable = TRUE //property_weights = list("extended" = 1) occurances_max = 3 @@ -482,7 +484,7 @@ name = "Communications Blackout" //config_tag = "communications_blackout" typepath = /datum/round_event/communications_blackout - cost = 4 + cost = 2 weight = 10 repeatable_weight_decrease = 2 enemy_roles = list("Chief Engineer","Station Engineer") @@ -549,7 +551,7 @@ repeatable_weight_decrease = 2 enemy_roles = list("Chief Engineer","Station Engineer") required_enemies = list(1,1,1,0,0,0,0,0,0,0) - requirements = list(5,5,4,3,2,1,1,0,0,0) + requirements = list(3,3,2,2,1,1,0,0,0,0) high_population_requirement = 5 repeatable = TRUE occurances_max = 10 @@ -557,12 +559,12 @@ /datum/dynamic_ruleset/event/heart_attack name = "Random Heart Attack" typepath = /datum/round_event/heart_attack - cost = 15 + cost = 0 weight = 2 earliest_start = 30 MINUTES repeatable_weight_decrease = 1 enemy_roles = list("Medical Doctor","Chief Medical Officer") - required_enemies = list(2,2,2,2,2,2,2,2,2,2) + required_enemies = list(2,2,2,2,2,2,2,2,2,0) requirements = list(101,101,101,10,5,5,5,5,5,5) high_population_requirement = 5 repeatable = TRUE @@ -577,7 +579,7 @@ weight = 2 repeatable_weight_decrease = 2 enemy_roles = list("Chemist","Chief Medical Officer","Geneticist","Medical Doctor","AI","Captain") - required_enemies = list(1,1,1,1,1,1,1,1,1,1) + required_enemies = list(1,1,1,1,1,1,1,1,1,0) requirements = list(5,5,5,5,5,5,5,5,5,5) high_population_requirement = 5 //property_weights = list("extended" = 1,"chaos" = 1) @@ -590,7 +592,7 @@ cost = 0 weight = 1 enemy_roles = list("Head of Security","Security Officer","AI","Captain","Shaft Miner") - required_enemies = list(2,2,2,2,2,2,2,2,2,2) + required_enemies = list(2,2,2,2,2,2,2,2,2,0) requirements = list(101,101,40,35,30,30,30,30,25,20) high_population_requirement = 30 earliest_start = 40 MINUTES @@ -607,7 +609,7 @@ weight = 2 repeatable_weight_decrease = 1 enemy_roles = list("AI","Medical Doctor","Station Engineer","Head of Personnel","Captain") - required_enemies = list(2,2,2,2,2,2,2,2,2,2) + required_enemies = list(2,2,2,2,2,2,2,2,2,0) requirements = list(5,5,5,5,5,5,5,5,5,5) high_population_requirement = 5 //property_weights = list("extended" = 1) @@ -622,7 +624,7 @@ weight = 1 earliest_start = 40 MINUTES enemy_roles = list("AI","Security Officer","Head of Security","Captain","Station Engineer","Atmos Technician","Chief Engineer") - required_enemies = list(4,4,4,4,3,3,3,3,3,2) + required_enemies = list(4,4,4,4,3,3,3,3,2,0) requirements = list(101,101,50,40,40,40,40,35,30,30) high_population_requirement = 5 //property_weights = list("extended" = -2) @@ -638,7 +640,7 @@ required_candidates = 1 weight = 4 cost = -5 - requirements = list(30,30,20,20,15,10,10,10,10,5) // yes, it can even happen in "extended"! + requirements = list(101,30,20,20,15,10,10,10,10,5) // yes, it can even happen in "extended"! //property_weights = list("story_potential" = 1, "extended" = 1, "valid" = -2) high_population_requirement = 5 occurances_max = 1 @@ -664,7 +666,7 @@ controller = /datum/round_event_control/immovable_rod typepath = /datum/round_event/immovable_rod enemy_roles = list("Research Director","Chief Engineer","Station Engineer","Captain","Chaplain","AI") - required_enemies = list(2,2,2,2,2,2,1,1,1,1) + required_enemies = list(2,2,2,2,2,2,1,1,1,0) requirements = list(101,101,18,16,14,12,10,8,6,6) high_population_requirement = 15 cost = 0 @@ -798,7 +800,7 @@ name = "Grey Tide" typepath = /datum/round_event/grey_tide enemy_roles = list("Chief Engineer","Station Engineer","Captain","Atmospheric Technician","AI","Cyborg") - required_enemies = list(3,2,2,2,2,2,1,1,1,1) + required_enemies = list(3,2,2,2,2,2,1,1,1,0) requirements = list(101,101,5,5,5,5,5,5,5,5) high_population_requirement = 0 repeatable = TRUE @@ -809,9 +811,9 @@ /datum/dynamic_ruleset/event/sentience name = "Random Human-level Intelligence" typepath = /datum/round_event/ghost_role/sentience - requirements = list(0,0,0,0,0,0,0,0,0,0) + requirements = list(101,101,0,0,0,0,0,0,0,0) high_population_requirement = 0 - weight = 5 + weight = 1 /datum/dynamic_ruleset/event/shuttle_loan name = "Shuttle Loan" @@ -829,7 +831,7 @@ name = "Spacevine" typepath = /datum/round_event/spacevine enemy_roles = list("Cook","Botanist","Security Officer","Captain","Station Engineer") - required_enemies = list(2,2,2,1,1,1,1,1,1,1) + required_enemies = list(2,2,2,1,1,1,1,1,1,0) requirements = list(101,101,10,9,8,7,5,5,5,0) cost = 2 high_population_requirement = 0 @@ -843,10 +845,10 @@ name = "Spontaneous Appendicitis" typepath = /datum/round_event/spontaneous_appendicitis enemy_roles = list("Medical Doctor","Chief Medical Officer") - required_enemies = list(2,2,1,1,1,1,1,1,1,1) + required_enemies = list(2,2,1,1,1,1,1,1,1,0) requirements = list(5,5,5,5,5,5,5,5,0,0) high_population_requirement = 5 - weight = 8 + weight = 5 repeatable = TRUE - repeatable_weight_decrease = 5 + repeatable_weight_decrease = 3 occurances_max = 3 \ No newline at end of file diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm index c9fd4422..8aaab0cb 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -18,6 +18,7 @@ var/list/dead_players = list() var/list/list_observers = list() var/list/ghost_eligible = list() + var/controller //round event controller for the event - Required for certain events dependendant on variables within their controllers /datum/dynamic_ruleset/midround/from_ghosts weight = 0 @@ -99,9 +100,8 @@ continue // Dead players cannot count as opponents if (M.mind && M.mind.assigned_role && (M.mind.assigned_role in enemy_roles) && (!(M in candidates) || (M.mind.assigned_role in restricted_roles))) job_check++ // Checking for "enemies" (such as sec officers). To be counters, they must either not be candidates to that rule, or have a job that restricts them from it - - var/threat = min(round(mode.threat_level/10),9) - if (job_check < required_enemies[threat]) + var/chaos = min(max(round(GLOB.dynamic_chaos_level * 2), 0), 9) + if (job_check < required_enemies[chaos]) return FALSE return TRUE @@ -113,8 +113,20 @@ /datum/dynamic_ruleset/midround/from_ghosts/execute() - var/application_successful = send_applications(ghost_eligible) - return assigned.len > 0 && application_successful + message_admins("[name] has just been randomly triggered!") //STOP ASSUMING IT'S BADMINS! + log_game("Midround triggering: [name]") + var/datum/round_event/E + //occurances_current++ + if(controller) + var/datum/round_event_control/C = locate(controller) in SSevents.control + E = C.runEvent() + else + var/application_successful = send_applications(ghost_eligible) + return assigned.len > 0 && application_successful + + testing("[time2text(world.time, "hh:mm:ss")] [E.type]") + + return E /// This sends a poll to ghosts if they want to be a ghost spawn from a ruleset. /datum/dynamic_ruleset/midround/from_ghosts/proc/send_applications(list/possible_volunteers = list()) @@ -221,7 +233,7 @@ high_population_requirement = 10 flags = TRAITOR_RULESET chaos_min = 2.0 - chaos_max = 4.0 + chaos_max = 3.5 /datum/dynamic_ruleset/midround/autotraitor/acceptable(population = 0, threat = 0) var/player_count = mode.current_players[CURRENT_LIVING_PLAYERS].len @@ -380,7 +392,7 @@ required_candidates = 1 weight = 3 cost = 20 - requirements = list(101,101,55,50,45,40,35,30,25,20) + requirements = list(101,101,101,45,40,35,30,25,20,15) high_population_requirement = 35 required_type = /mob/living/silicon/ai var/ion_announce = 33 @@ -428,7 +440,7 @@ antag_datum = /datum/antagonist/wizard antag_flag = ROLE_WIZARD enemy_roles = list("Security Officer","Detective","Head of Security", "Captain") - required_enemies = list(2,2,1,1,1,1,1,1,0,0) + required_enemies = list(2,2,1,1,1,1,1,1,1,0) required_candidates = 1 weight = 1 cost = 20 @@ -462,13 +474,13 @@ antag_flag = ROLE_OPERATIVE antag_datum = /datum/antagonist/nukeop enemy_roles = list("AI", "Cyborg", "Security Officer", "Warden","Detective","Head of Security", "Captain") - required_enemies = list(3,3,3,3,3,2,2,1,1,0) + required_enemies = list(3,3,3,3,3,2,2,2,2,1) required_candidates = 5 weight = 5 - cost = 35 - requirements = list(101,101,100,70,60,50,40,40,40,40) + cost = 20 + requirements = list(101,100,95,85,70,60,50,40,30,20) high_population_requirement = 10 - var/operative_cap = list(2,2,2,2,3,3,4,4,5,5) + var/operative_cap = list(1,1,1,2,2,3,3,4,4,5) var/datum/team/nuclear/nuke_team flags = HIGHLANDER_RULESET chaos_min = 4.0 @@ -505,15 +517,17 @@ name = "Blob" antag_datum = /datum/antagonist/blob antag_flag = ROLE_BLOB - enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain") + enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain", "Station Engineer") required_enemies = list(2,2,1,1,1,1,1,0,0,0) required_candidates = 1 - weight = 4 + weight = 3 cost = 20 - requirements = list(101,101,60,50,45,40,40,40,30,20) + requirements = list(101,101,101,60,50,40,40,40,30,20) + //requirements = list(0,0,0,0,0,0,0,0,0,0) high_population_requirement = 50 repeatable = TRUE - chaos_min = 3.5 + chaos_min = 4.0 + controller = /datum/round_event_control/blob /datum/dynamic_ruleset/midround/from_ghosts/blob/generate_ruleset_body(mob/applicant) var/body = applicant.become_overmind() @@ -534,11 +548,13 @@ required_candidates = 1 weight = 3 cost = 15 - requirements = list(101,101,100,70,60,50,40,40,30,20) + requirements = list(101,101,101,50,40,35,30,30,30,20) + //requirements = list(0,0,0,0,0,0,0,0,0,0) high_population_requirement = 50 repeatable = TRUE var/list/vents = list() chaos_min = 3.5 + controller = /datum/round_event_control/alien_infestation /datum/dynamic_ruleset/midround/from_ghosts/xenomorph/execute() // 50% chance of being incremented by one @@ -580,7 +596,7 @@ enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain") required_enemies = list(2,2,1,1,1,1,1,0,0,0) required_candidates = 1 - weight = 3 + weight = 4 cost = 10 requirements = list(101,50,40,30,20,20,20,20,15,10) high_population_requirement = 50 @@ -626,18 +642,18 @@ antag_flag = ROLE_ABDUCTOR // Has two antagonist flags, in fact enemy_roles = list("AI", "Cyborg", "Security Officer", "Warden","Detective","Head of Security", "Captain") - required_enemies = list(3,3,2,2,1,1,0,0,0,0) + required_enemies = list(3,3,2,2,2,2,2,2,2,0) required_candidates = 2 - weight = 4 + weight = 3 cost = 10 - requirements = list(101,101,50,45,40,30,20,20,10,10) + requirements = list(101,101,101,101,40,30,30,30,30,30) blocking_rules = list(/datum/dynamic_ruleset/roundstart/nuclear,/datum/dynamic_ruleset/midround/from_ghosts/nuclear) high_population_requirement = 15 var/datum/team/abductor_team/team //property_weights = list("extended" = -2, "valid" = 1, "trust" = -1, "chaos" = 2) repeatable_weight_decrease = 4 repeatable = TRUE - chaos_min = 2.0 + chaos_min = 4.0 /datum/dynamic_ruleset/midround/from_ghosts/abductors/ready(forced = FALSE) team = new /datum/team/abductor_team @@ -671,7 +687,7 @@ required_enemies = list(3,2,2,2,2,1,1,1,1,0) required_candidates = 1 weight = 4 - cost = 15 + cost = 10 requirements = list(101,101,101,40,35,30,25,20,20,20) high_population_requirement = 30 //property_weights = list("story_potential" = 1, "extended" = -2, "valid" = 2) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm index 30586ee2..f6c90a90 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm @@ -300,7 +300,7 @@ flags = HIGHLANDER_RULESET var/cultist_cap = list(2,2,2,3,3,4,4,4,4,4) var/datum/team/cult/main_cult - chaos_min = 4.9 + chaos_min = 4.5 admin_required = TRUE /datum/dynamic_ruleset/roundstart/bloodcult/ready(forced = FALSE) @@ -356,7 +356,7 @@ required_candidates = 5 weight = 3 cost = 20 - requirements = list(101,100,90,80,70,60,50,40,30,20) + requirements = list(101,100,95,85,70,60,50,40,30,20) high_population_requirement = 10 pop_per_requirement = 5 flags = HIGHLANDER_RULESET @@ -559,11 +559,13 @@ required_candidates = 4 weight = 4 cost = 0 - requirements = list(101,101,100,90,80,70,60,50,40,30) + requirements = list(101,101,100,95,85,70,60,50,40,30) + //requirements = list(0,0,0,0,0,0,0,0,0,0) high_population_requirement = 101 flags = HIGHLANDER_RULESET var/ark_time - chaos_min = 4.9 + var/servants = list(1,1,1,1,2,2,3,3,4,4) + chaos_min = 4.5 admin_required = TRUE /datum/dynamic_ruleset/roundstart/clockcult/pre_execute() @@ -575,20 +577,23 @@ return FALSE for(var/datum/parsed_map/PM in reebes) PM.initTemplateBounds() - + /* var/starter_servants = 4 var/number_players = num_players() if(number_players > 30) number_players -= 30 starter_servants += round(number_players / 10) starter_servants = min(starter_servants, 8) + */ + var/indice_pop = min(10,round(mode.roundstart_pop_ready/5)+1) + var/starter_servants = servants[indice_pop] for (var/i in 1 to starter_servants) var/mob/servant = pick(candidates) candidates -= servant assigned += servant.mind servant.mind.assigned_role = ROLE_SERVANT_OF_RATVAR servant.mind.special_role = ROLE_SERVANT_OF_RATVAR - ark_time = 30 + round((number_players / 5)) + ark_time = 30 + round((mode.roundstart_pop_ready / 5)) ark_time = min(ark_time, 35) return TRUE diff --git a/hyperstation/code/gamemode/traitor_thief.dm b/hyperstation/code/gamemode/traitor_thief.dm index 96018540..5b45aa29 100644 --- a/hyperstation/code/gamemode/traitor_thief.dm +++ b/hyperstation/code/gamemode/traitor_thief.dm @@ -25,7 +25,7 @@ roundend_category = "traitors" antagpanel_category = "Traitor" job_rank = ROLE_TRAITOR - antag_moodlet = /datum/mood_event/focused //No special moodlet yet + antag_moodlet = /datum/mood_event/focused special_role = ROLE_TRAITOR employer = "The Syndicate" give_objectives = TRUE @@ -72,11 +72,6 @@ add_objective(steal_objective) return -/datum/antagonist/traitor/thief/greet() - to_chat(owner.current, "You are the [owner.special_role].") - owner.announce_objectives() - if(should_give_codewords) - give_codewords() /datum/antagonist/traitor/thief/on_gain() if(owner.current && isAI(owner.current))