From 2b8fe43ef18ea228583ec3ae0fcfca13ffabfb83 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sat, 5 Oct 2019 02:31:02 +0200 Subject: [PATCH 1/4] Removes the minimum player cap for the war ops. --- .../antagonists/nukeop/equipment/nuclear_challenge.dm | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm index edae8a4240..cd2856e2e4 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm @@ -1,7 +1,6 @@ #define CHALLENGE_TELECRYSTALS 280 #define PLAYER_SCALING 1.5 #define CHALLENGE_TIME_LIMIT 3000 -#define CHALLENGE_MIN_PLAYERS 50 #define CHALLENGE_SHUTTLE_DELAY 15000 // 25 minutes, so the ops have at least 5 minutes before the shuttle is callable. GLOBAL_LIST_EMPTY(jam_on_wardec) @@ -62,7 +61,7 @@ GLOBAL_VAR_INIT(war_declared, FALSE) for(var/obj/machinery/computer/camera_advanced/shuttle_docker/D in GLOB.jam_on_wardec) D.jammed = TRUE - + GLOB.war_declared = TRUE var/list/nukeops = get_antag_minds(/datum/antagonist/nukeop) var/actual_players = GLOB.joined_player_list.len - nukeops.len @@ -79,11 +78,6 @@ GLOBAL_VAR_INIT(war_declared, FALSE) to_chat(user, "You are already in the process of declaring war! Make your mind up.") return FALSE - var/list/nukeops = get_antag_minds(/datum/antagonist/nukeop) - var/actual_players = GLOB.joined_player_list.len - nukeops.len - if(actual_players < CHALLENGE_MIN_PLAYERS) - to_chat(user, "The enemy crew is too small to be worth declaring war on.") - return FALSE if(!user.onSyndieBase()) to_chat(user, "You have to be at your base to use this.") return FALSE @@ -102,5 +96,4 @@ GLOBAL_VAR_INIT(war_declared, FALSE) #undef CHALLENGE_TELECRYSTALS #undef CHALLENGE_TIME_LIMIT -#undef CHALLENGE_MIN_PLAYERS #undef CHALLENGE_SHUTTLE_DELAY From e4705ae5c02ad9815553f30f0c0aad9fc8b6c662 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sat, 5 Oct 2019 02:57:50 +0200 Subject: [PATCH 2/4] Actually... let's do some scaling. --- .../antagonists/nukeop/equipment/nuclear_challenge.dm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm index cd2856e2e4..69513b5cf8 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm @@ -1,6 +1,8 @@ #define CHALLENGE_TELECRYSTALS 280 #define PLAYER_SCALING 1.5 #define CHALLENGE_TIME_LIMIT 3000 +#define CHALLENGE_PLAYERS_TARGET 50 //target players population. anything below is a malus to the challenge tc bonus. +#define TELECRYSTALS_MALUS_SCALING 1 //the higher the value, the bigger the malus. #define CHALLENGE_SHUTTLE_DELAY 15000 // 25 minutes, so the ops have at least 5 minutes before the shuttle is callable. GLOBAL_LIST_EMPTY(jam_on_wardec) @@ -65,8 +67,11 @@ GLOBAL_VAR_INIT(war_declared, FALSE) GLOB.war_declared = TRUE var/list/nukeops = get_antag_minds(/datum/antagonist/nukeop) var/actual_players = GLOB.joined_player_list.len - nukeops.len + var/tc_malus = 0 + if(actual_players < CHALLENGE_PLAYERS_TARGET) + tc_malus = (CHALLENGE_TELECRYSTALS - actual_players * INVERSE(CHALLENGE_PLAYERS_TARGET)) * TELECRYSTALS_MALUS_SCALING - new uplink_type(get_turf(user), user.key, CHALLENGE_TELECRYSTALS + CEILING(PLAYER_SCALING * actual_players, 1)) + new uplink_type(get_turf(user), user.key, CHALLENGE_TELECRYSTALS - tc_malus + CEILING(PLAYER_SCALING * actual_players, 1)) CONFIG_SET(number/shuttle_refuel_delay, max(CONFIG_GET(number/shuttle_refuel_delay), CHALLENGE_SHUTTLE_DELAY)) SSblackbox.record_feedback("amount", "nuclear_challenge_mode", 1) @@ -96,4 +101,6 @@ GLOBAL_VAR_INIT(war_declared, FALSE) #undef CHALLENGE_TELECRYSTALS #undef CHALLENGE_TIME_LIMIT +#undef CHALLENGE_PLAYERS_TARGET +#undef TELECRYSTALS_MALUS_SCALING #undef CHALLENGE_SHUTTLE_DELAY From b6cc81d097e96e31e65540d0188804927d55d363 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sat, 5 Oct 2019 03:13:51 +0200 Subject: [PATCH 3/4] flooring. --- code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm index 69513b5cf8..f2bf9eef3f 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm @@ -69,7 +69,7 @@ GLOBAL_VAR_INIT(war_declared, FALSE) var/actual_players = GLOB.joined_player_list.len - nukeops.len var/tc_malus = 0 if(actual_players < CHALLENGE_PLAYERS_TARGET) - tc_malus = (CHALLENGE_TELECRYSTALS - actual_players * INVERSE(CHALLENGE_PLAYERS_TARGET)) * TELECRYSTALS_MALUS_SCALING + tc_malus = FLOOR((CHALLENGE_TELECRYSTALS - actual_players * INVERSE(CHALLENGE_PLAYERS_TARGET)) * TELECRYSTALS_MALUS_SCALING) new uplink_type(get_turf(user), user.key, CHALLENGE_TELECRYSTALS - tc_malus + CEILING(PLAYER_SCALING * actual_players, 1)) From 34bef911b2de465555d91c131685b6c812413b2d Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Sat, 5 Oct 2019 03:49:06 +0200 Subject: [PATCH 4/4] macro arguments --- code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm index f2bf9eef3f..daa3876744 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm @@ -69,7 +69,7 @@ GLOBAL_VAR_INIT(war_declared, FALSE) var/actual_players = GLOB.joined_player_list.len - nukeops.len var/tc_malus = 0 if(actual_players < CHALLENGE_PLAYERS_TARGET) - tc_malus = FLOOR((CHALLENGE_TELECRYSTALS - actual_players * INVERSE(CHALLENGE_PLAYERS_TARGET)) * TELECRYSTALS_MALUS_SCALING) + tc_malus = FLOOR((CHALLENGE_TELECRYSTALS - actual_players * INVERSE(CHALLENGE_PLAYERS_TARGET)) * TELECRYSTALS_MALUS_SCALING, 1) new uplink_type(get_turf(user), user.key, CHALLENGE_TELECRYSTALS - tc_malus + CEILING(PLAYER_SCALING * actual_players, 1))