diff --git a/code/datums/helper_datums/tension.dm b/code/datums/helper_datums/tension.dm
index 7fc8e3fe6a..633c0ba79c 100644
--- a/code/datums/helper_datums/tension.dm
+++ b/code/datums/helper_datums/tension.dm
@@ -6,6 +6,9 @@
#define COOLDOWN_TIME 12000 // Twenty minutes
#define MIN_ROUND_TIME 18000
+
+#define FLAT_PERCENT 0
+
//estimated stats
//80 minute round
//60 player server
@@ -40,19 +43,9 @@ var/global/datum/tension/tension_master
var/round3 = 0
var/round4 = 0
- var/list/antagonistmodes = list (
- "POINTS_FOR_TRATIOR" = 100000,
- "POINTS_FOR_CHANGLING" = 120000,
- "POINTS_FOR_REVS" = 150000,
- "POINTS_FOR_MALF" = 250000,
- "POINTS_FOR_WIZARD" = 150000,
- "POINTS_FOR_CULT" = 150000,
- "POINTS_FOR_NUKETEAM" = 250000,
- "POINTS_FOR_ALIEN" = 200000,
- "POINTS_FOR_NINJA" = 200000,
- "POINTS_FOR_DEATHSQUAD" = 500000,
- "POINTS_FOR_BORGDEATHSQUAD" = 500000
- )
+ var/list/antagonistmodes = null
+
+
var/list/potentialgames = list()
@@ -64,11 +57,41 @@ var/global/datum/tension/tension_master
adminhelps=0
air_alarms=0
+ if(FLAT_PERCENT) // I cannot into balance
+ antagonistmodes = list (
+ "POINTS_FOR_TRATIOR" = 6,
+ "POINTS_FOR_CHANGLING" = 6,
+ "POINTS_FOR_REVS" = 3,
+ "POINTS_FOR_MALF" = 1,
+ "POINTS_FOR_WIZARD" = 2,
+ "POINTS_FOR_CULT" = 3,
+ "POINTS_FOR_NUKETEAM" = 2,
+ "POINTS_FOR_ALIEN" = 5,
+ "POINTS_FOR_NINJA" = 3,
+ "POINTS_FOR_DEATHSQUAD" = 2,
+ "POINTS_FOR_BORGDEATHSQUAD" = 2
+ )
+
+ else
+ antagonistmodes = list (
+ "POINTS_FOR_TRATIOR" = 100000,
+ "POINTS_FOR_CHANGLING" = 120000,
+ "POINTS_FOR_REVS" = 150000,
+ "POINTS_FOR_MALF" = 250000,
+ "POINTS_FOR_WIZARD" = 150000,
+ "POINTS_FOR_CULT" = 150000,
+ "POINTS_FOR_NUKETEAM" = 250000,
+ "POINTS_FOR_ALIEN" = 200000,
+ "POINTS_FOR_NINJA" = 200000,
+ "POINTS_FOR_DEATHSQUAD" = 500000,
+ "POINTS_FOR_BORGDEATHSQUAD" = 500000
+ )
+
proc/process()
score += get_num_players()*PLAYER_WEIGHT
if(config.Tensioner_Active)
- if(score > 100000 && world.time > MIN_ROUND_TIME)
+ if(world.time > MIN_ROUND_TIME)
round1++
if(!supress && !cooldown)
if(prob(1) || forcenexttick)
@@ -80,21 +103,34 @@ var/global/datum/tension/tension_master
for (var/mob/M in world)
if (M.client && M.client.holder)
- M << "The tensioner wishes to create additional antagonists! Press (this) in 30 seconds to abort!"
+ M << " The tensioner wishes to create additional antagonists! Press (this) in 60 seconds to abort!"
- spawn(300)
+ spawn(600)
if(!supress)
cooldown = 1
spawn(COOLDOWN_TIME)
cooldown = 0
round4++
- for(var/V in antagonistmodes) // OH SHIT SOMETHING IS GOING TO HAPPEN NOW
- if(antagonistmodes[V] < score)
- potentialgames.Add(V)
- antagonistmodes.Remove(V)
- if(potentialgames.len)
- var/thegame = pick(potentialgames)
+ if(!antagonistmodes.len)
+ return
+
+ var/thegame = null
+
+ if(FLAT_PERCENT)
+ thegame = pickweight(antagonistmodes)
+ antagonistmodes.Remove(thegame)
+
+ else
+ for(var/V in antagonistmodes) // OH SHIT SOMETHING IS GOING TO HAPPEN NOW
+ if(antagonistmodes[V] < score)
+ potentialgames.Add(V)
+ antagonistmodes.Remove(V)
+ thegame = pick(potentialgames)
+
+
+ if(thegame)
+
log_admin("The tensioner fired, and decided on [thegame]")
@@ -686,9 +722,9 @@ var/global/datum/tension/tension_master
for (var/obj/effect/landmark/L in world)
if (L.name == "Syndicate-Commando-Bomb")
new /obj/effect/spawner/newbomb/timer/syndicate(L.loc)
- del(L)
+ // del(L)
- return 1 // Has to return one before it knows if there's a wizard to prevent the parent from automatically selecting another game mode.
+ return 1 // Has to return one before it knows if there's a wizard to prevent the parent from automatically selecting another game mode.
proc/makeBorgDeathsquad()
@@ -757,7 +793,7 @@ var/global/datum/tension/tension_master
// P.name = "Spec. Ops. Manual"
- return 1 // Has to return one before it knows if there's a wizard to prevent the parent from automatically selecting another game mode.
+ return 1 // Has to return one before it knows if there's a wizard to prevent the parent from automatically selecting another game mode.
diff --git a/code/modules/admin/verbs/diagnostics.dm b/code/modules/admin/verbs/diagnostics.dm
index af402c180c..9bc6da3455 100644
--- a/code/modules/admin/verbs/diagnostics.dm
+++ b/code/modules/admin/verbs/diagnostics.dm
@@ -227,7 +227,7 @@
Increase Tension by 50000
Tension per player: [tension_master.score/tension_master.get_num_players()]
Tensioner Debug Data: R1:[tension_master.round1] R2:[tension_master.round2] R3:[tension_master.round3] R4:[tension_master.round4] ES: [tension_master.eversupressed] CD: [tension_master.cooldown]
-Current Tensioner Status: [config.Tensioner_Active]. Toggle?
"
+Current Tensioner Status: [config.Tensioner_Active]. Toggle?
Recommendations: All the modes. All of them. Press all of them.
@@ -243,5 +243,10 @@
Make Deathsquad (Syndicate) (Requires Ghosts)
Make Deathsquad (Borg) (Requires Ghosts)
+
+
"}
- usr << browse(output,"window=tensionreport")
+
+ for(var/game in tension_master.antagonistmodes)
+ output += "Points required/Probability for [game]: [tension_master.antagonistmodes[game]]
"
+ usr << browse(output,"window=tensionreport;size=480x480")