1 using Microsoft.Xna.Framework;
3 using System.Collections.Generic;
9 partial class KarmaManager : ISerializableEntity
13 if (TextManager.ContainsTag(
"Karma.ResetKarmaBetweenRounds"))
15 CreateLabeledTickBox(parent,
"ResetKarmaBetweenRounds");
19 if (TextManager.ContainsTag(
"Karma.KicksBeforeBan"))
23 CreateLabeledSlider(parent, 0.0f, 50.0f, 1.0f, nameof(
HerpesThreshold));
25 CreateLabeledSlider(parent, 0.0f, 0.5f, 0.01f, nameof(
KarmaDecay));
27 CreateLabeledSlider(parent, 0.0f, 0.5f, 0.01f, nameof(
KarmaIncrease));
31 textAlignment: Alignment.Center, font: GUIStyle.SubHeadingFont)
44 textAlignment: Alignment.Center, font: GUIStyle.SubHeadingFont)
80 private void CreateLabeledSlider(
GUIComponent parent,
float min,
float max,
float step,
string propertyName)
85 RelativeSpacing = 0.05f,
86 ToolTip = TextManager.Get(
"Karma." + propertyName +
"ToolTip")
89 LocalizedString labelText = TextManager.Get(
"Karma." + propertyName);
90 var label =
new GUITextBlock(
new RectTransform(
new Vector2(0.7f, 1.0f), container.RectTransform),
91 labelText, textAlignment: Alignment.CenterLeft, font: GUIStyle.SmallFont)
93 ToolTip = TextManager.Get(
"Karma." + propertyName +
"ToolTip")
96 var slider =
new GUIScrollBar(
new RectTransform(
new Vector2(0.3f, 1.0f), container.RectTransform), barSize: 0.1f, style:
"GUISlider")
98 Step = step <= 0.0f ? 0.0f : step / (max - min),
99 Range =
new Vector2(min, max),
100 OnMoved = (GUIScrollBar scrollBar,
float barScroll) =>
102 string formattedValueStr = step >= 1.0f ?
103 ((int)scrollBar.BarScrollValue).ToString() :
104 scrollBar.BarScrollValue.Format(decimalCount: step <= 0.1f ? 2 : 1);
105 label.Text = TextManager.AddPunctuation(
':', labelText, formattedValueStr);
109 container.
RectTransform.
MinSize =
new Point(0, container.RectTransform.Children.Max(c => c.MinSize.Y));
110 GameMain.NetworkMember.ServerSettings.AssignGUIComponent(propertyName, slider);
111 slider.OnMoved(slider, slider.BarScroll);
114 private void CreateLabeledNumberInput(GUIComponent parent,
int min,
int max,
string propertyName)
116 var container =
new GUILayoutGroup(
new RectTransform(
new Vector2(1.0f, 0.1f), parent.RectTransform), isHorizontal:
true)
119 RelativeSpacing = 0.05f,
120 ToolTip = TextManager.Get(
"Karma." + propertyName +
"ToolTip")
123 LocalizedString labelText = TextManager.Get(
"Karma." + propertyName);
124 new GUITextBlock(
new RectTransform(
new Vector2(0.7f, 1.0f), container.RectTransform), labelText, textAlignment: Alignment.CenterLeft, font: GUIStyle.SmallFont)
126 ToolTip = TextManager.Get(
"Karma." + propertyName +
"ToolTip")
129 var numInput =
new GUINumberInput(
new RectTransform(
new Vector2(0.3f, 1.0f), container.RectTransform),
NumberType.Int)
135 container.RectTransform.MinSize =
new Point(0, container.RectTransform.Children.Max(c => c.MinSize.Y));
136 GameMain.NetworkMember.ServerSettings.AssignGUIComponent(propertyName, numInput);
139 private void CreateLabeledTickBox(GUIComponent parent,
string propertyName)
141 var tickBox =
new GUITickBox(
new RectTransform(
new Vector2(0.3f, 0.1f), parent.RectTransform), TextManager.Get(
"Karma." + propertyName))
143 ToolTip = TextManager.Get(
"Karma." + propertyName +
"ToolTip").Fallback(
"")
145 GameMain.NetworkMember.ServerSettings.AssignGUIComponent(propertyName, tickBox);
RectTransform RectTransform
float BallastFloraKarmaIncrease
float StructureRepairKarmaIncrease
float KarmaDecayThreshold
float WireDisconnectionKarmaDecrease
float KarmaIncreaseThreshold
float DamageEnemyKarmaIncrease
float HealFriendlyKarmaIncrease
float DangerousItemStealKarmaDecrease
void CreateSettingsFrame(GUIComponent parent)
float MaxDangerousItemContainKarmaDecrease
float ReactorOverheatKarmaDecrease
bool IsDangerousItemContainKarmaDecreaseIncremental
float StunFriendlyKarmaDecrease
float ExtinguishFireKarmaIncrease
float StunFriendlyKarmaDecreaseThreshold
bool DangerousItemStealBots
float StructureDamageKarmaDecrease
float DangerousItemContainKarmaDecrease
float ReactorMeltdownKarmaDecrease
float ItemRepairKarmaIncrease
float DamageFriendlyKarmaDecrease
float SpamFilterKarmaDecrease
int AllowedWireDisconnectionsPerMinute