Skip to content

Commit b7f7604

Browse files
committed
Add TriggerType option to CreateRandomTriggerSetWindow
1 parent 37726c0 commit b7f7604

File tree

2 files changed

+32
-13
lines changed

2 files changed

+32
-13
lines changed

src/TSMapEditor/Config/Default/UI/Windows/CreateRandomTriggerSetWindow.ini

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[CreateRandomTriggerSetWindow]
2-
$Height=300
2+
$Height=330
33
$Width=300
44

55
$CC00=lblHeader:XNALabel
@@ -14,8 +14,10 @@ $CC08=lblElapsedTime:XNALabel
1414
$CC09=tbElapsedTime:EditorNumberTextBox
1515
$CC10=lblDelay:XNALabel
1616
$CC11=tbDelay:EditorNumberTextBox
17-
$CC12=cbEveryDiff:XNACheckBox
18-
$CC13=btnApply:EditorButton
17+
$CC12=lblTriggerType:XNALabel
18+
$CC13=ddTriggerType:XNADropDown
19+
$CC14=cbEveryDiff:XNACheckBox
20+
$CC15=btnApply:EditorButton
1921
HasCloseButton=true
2022

2123
[lblHeader]
@@ -86,9 +88,22 @@ $Width=getWidth(tbNumTriggers)
8688
AllowComma=no
8789
AllowDecimals=no
8890

91+
[lblTriggerType]
92+
$X=getX(lblNumTriggers)
93+
$Y=getBottom(lblDelay) + (VERTICAL_SPACING * 2)
94+
Text=Trigger Type:
95+
96+
[ddTriggerType]
97+
$X=getX(tbNumTriggers)
98+
$Y=getY(lblTriggerType)
99+
$Width=getWidth(tbNumTriggers)
100+
Option0=0 - one-time, single-obj c.
101+
Option1=1 - one-time, multi-obj c.
102+
Option2=2 - repeating, single-obj c.
103+
89104
[cbEveryDiff]
90-
$X=getX(lblDelay)
91-
$Y=getBottom(lblDelay) + (VERTICAL_SPACING * 3)
105+
$X=getX(lblNumTriggers)
106+
$Y=getBottom(lblTriggerType) + (VERTICAL_SPACING * 3)
92107
Text=Create triggers for all difficulties
93108

94109
[btnApply]

src/TSMapEditor/UI/Windows/CreateRandomTriggerSetWindow.cs

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public CreateRandomTriggerSetWindow(WindowManager windowManager, Map map) : base
3232
private EditorNumberTextBox tbNumTriggers;
3333
private EditorNumberTextBox tbElapsedTime;
3434
private EditorNumberTextBox tbDelay;
35+
private XNADropDown ddTriggerType;
3536
private XNACheckBox cbEveryDiff;
3637
private EditorButton btnApply;
3738

@@ -47,6 +48,7 @@ public override void Initialize()
4748
tbNumTriggers = FindChild<EditorNumberTextBox>(nameof(tbNumTriggers));
4849
tbElapsedTime = FindChild<EditorNumberTextBox>(nameof(tbElapsedTime));
4950
tbDelay = FindChild<EditorNumberTextBox>(nameof(tbDelay));
51+
ddTriggerType = FindChild<XNADropDown>(nameof(ddTriggerType));
5052
cbEveryDiff = FindChild<XNACheckBox>(nameof(cbEveryDiff));
5153
btnApply = FindChild<EditorButton>(nameof(btnApply));
5254

@@ -71,33 +73,34 @@ public void BtnApply_LeftClick(object sender, EventArgs e)
7173
int elapsedTime = tbElapsedTime.Value;
7274
int count = tbNumTriggers.Value;
7375
int delay = tbDelay.Value;
76+
int type = ddTriggerType.SelectedIndex;
7477
bool createForEveryDifficulty = cbEveryDiff.Checked;
7578

7679
List<Trigger> baseTriggers = [];
7780

7881
if (createForEveryDifficulty)
7982
{
80-
baseTriggers.Add(CreateRandomTriggersSet(name, elapsedTime, count, delay, color, Difficulty.Hard));
81-
baseTriggers.Add(CreateRandomTriggersSet(name, elapsedTime, count, delay, color, Difficulty.Medium));
82-
baseTriggers.Add(CreateRandomTriggersSet(name, elapsedTime, count, delay, color, Difficulty.Easy));
83+
baseTriggers.Add(CreateRandomTriggersSet(name, elapsedTime, count, delay, color, type, Difficulty.Hard));
84+
baseTriggers.Add(CreateRandomTriggersSet(name, elapsedTime, count, delay, color, type, Difficulty.Medium));
85+
baseTriggers.Add(CreateRandomTriggersSet(name, elapsedTime, count, delay, color, type, Difficulty.Easy));
8386
}
8487
else
8588
{
86-
baseTriggers.Add(CreateRandomTriggersSet(name, elapsedTime, count, delay, color));
89+
baseTriggers.Add(CreateRandomTriggersSet(name, elapsedTime, count, delay, color, type));
8790
}
8891

8992
Hide();
9093
RandomTriggerSetTriggersCreated?.Invoke(this, new RandomTriggerSetTriggersCreatedEventArgs(baseTriggers[0]));
9194
}
9295

93-
private Trigger CreateRandomTriggersSet(string name, int elapsedTime, int count, int delay, string color, Difficulty? difficulty = null)
96+
private Trigger CreateRandomTriggersSet(string name, int elapsedTime, int count, int delay, string color, int type, Difficulty? difficulty = null)
9497
{
9598
if (difficulty != null)
9699
{
97100
name = $"{difficulty.ToString()[0]} {name}";
98101
}
99102

100-
var baseTrigger = CreateBaseTrigger(name, elapsedTime, color, difficulty);
103+
var baseTrigger = CreateBaseTrigger(name, elapsedTime, color, type, difficulty);
101104
var childTriggers = CreateChildTriggers(name, count, delay, color);
102105
AssociateTriggers(baseTrigger, childTriggers);
103106

@@ -137,7 +140,7 @@ private bool Validate()
137140
return true;
138141
}
139142

140-
private Trigger CreateBaseTrigger(string name, int elapsedTime, string color, Difficulty? difficulty)
143+
private Trigger CreateBaseTrigger(string name, int elapsedTime, string color, int type, Difficulty? difficulty)
141144
{
142145
string triggerName = $"{name} base";
143146

@@ -179,7 +182,7 @@ private Trigger CreateBaseTrigger(string name, int elapsedTime, string color, Di
179182
baseTrigger.Conditions.Add(elapsedTimeCondition);
180183

181184
map.Triggers.Add(baseTrigger);
182-
map.Tags.Add(new Tag() { ID = map.GetNewUniqueInternalId(), Name = baseTrigger.Name + " (tag)", Trigger = baseTrigger, Repeating = 2 });
185+
map.Tags.Add(new Tag() { ID = map.GetNewUniqueInternalId(), Name = baseTrigger.Name + " (tag)", Trigger = baseTrigger, Repeating = type });
183186

184187
return baseTrigger;
185188
}
@@ -253,6 +256,7 @@ public void ResetValues()
253256
tbNumTriggers.Value = 3;
254257
tbElapsedTime.Value = 100;
255258
tbDelay.Value = 10;
259+
ddTriggerType.SelectedIndex = 0;
256260
cbEveryDiff.Checked = false;
257261
}
258262
}

0 commit comments

Comments
 (0)