git bisect is blaming a recent regression with the following OSTW code on commit 520c266:
enum PowerupType {
NONE,
DOUBLE_JUMP,
SPEED_BOOST,
JUMP_BOOST,
SHIELD
}
rule: "When player spawns, give them a new powerup."
Event.OngoingPlayer
if (HasSpawned())
if (IsAlive())
{
PowerupType powerup = PowerupType.NONE;
Number random = RandomInteger(0, 4);
if (random == 0)
{
powerup = PowerupType.DOUBLE_JUMP;
}
else if (random == 1)
{
powerup = PowerupType.SPEED_BOOST;
}
else if (random == 2)
{
powerup = PowerupType.JUMP_BOOST;
}
else if (random == 3)
{
powerup = PowerupType.SHIELD;
}
switch (powerup) {
case PowerupType.DOUBLE_JUMP:
LogToInspector("TODO: Double Jump");
break;
}
}
(yes it's not the prettiest code, I just had Copilot spit something out really quick for demonstration purposes)
Expected output:
variables
{
player:
0: powerup
1: random
}
rule("When player spawns, give them a new powerup.")
{
event
{
Ongoing - Each Player;
All;
All;
}
conditions
{
Has Spawned(Event Player) == True;
Is Alive(Event Player) == True;
}
// Action count: 13
actions
{
Set Player Variable(Event Player, powerup, 0);
Set Player Variable(Event Player, random, Random Integer(0, 4));
If(Compare(Player Variable(Event Player, random), ==, 0));
Set Player Variable(Event Player, powerup, 1);
Else If(Compare(Player Variable(Event Player, random), ==, 1));
Set Player Variable(Event Player, powerup, 2);
Else If(Compare(Player Variable(Event Player, random), ==, 2));
Set Player Variable(Event Player, powerup, 3);
Else If(Compare(Player Variable(Event Player, random), ==, 3));
Set Player Variable(Event Player, powerup, 4);
End;
Skip(Value In Array(Array(1, 0), Add(Index Of Array Value(Array(1), Player Variable(Event Player, powerup)), 1)));
Log To Inspector(Custom String("TODO: Double Jump"));
}
}
Actual output:
An exception was thrown while translating to workshop.
System.NullReferenceException: Object reference not set to an instance of an object.
at Deltin.Deltinteger.Parse.BlockAction.Translate(ActionSet actionSet) in D:\Projects_Local\Overwatch-Script-To-Workshop\Deltinteger\Deltinteger\Parse\Block.cs:line 42
at Deltin.Deltinteger.Parse.ActionSet.CompileStatement(IStatement statement) in D:\Projects_Local\Overwatch-Script-To-Workshop\Deltinteger\Deltinteger\Parse\TranslateRule.cs:line 317
at Deltin.Deltinteger.Parse.SwitchAction.Translate(ActionSet actionSet) in D:\Projects_Local\Overwatch-Script-To-Workshop\Deltinteger\Deltinteger\Parse\Switch.cs:line 141
at Deltin.Deltinteger.Parse.ActionSet.CompileStatement(IStatement statement) in D:\Projects_Local\Overwatch-Script-To-Workshop\Deltinteger\Deltinteger\Parse\TranslateRule.cs:line 317
at Deltin.Deltinteger.Parse.BlockAction.Translate(ActionSet actionSet) in D:\Projects_Local\Overwatch-Script-To-Workshop\Deltinteger\Deltinteger\Parse\Block.cs:line 42
at Deltin.Deltinteger.Parse.ActionSet.CompileStatement(IStatement statement) in D:\Projects_Local\Overwatch-Script-To-Workshop\Deltinteger\Deltinteger\Parse\TranslateRule.cs:line 317
at Deltin.Deltinteger.Parse.TranslateRule..ctor(DeltinScript deltinScript, RuleAction ruleAction) in D:\Projects_Local\Overwatch-Script-To-Workshop\Deltinteger\Deltinteger\Parse\TranslateRule.cs:line 46
at Deltin.Deltinteger.Parse.DeltinScript.<ToWorkshop>b__96_2(RuleAction ostwRule) in D:\Projects_Local\Overwatch-Script-To-Workshop\Deltinteger\Deltinteger\Parse\Translate.cs:line 397
at Deltin.Deltinteger.Model.Variant`2.Match(Action`1 onA, Action`1 onB) in D:\Projects_Local\Overwatch-Script-To-Workshop\Deltinteger\Deltinteger\Model\Variant.cs:line 26
at Deltin.Deltinteger.Parse.DeltinScript.ToWorkshop(Func`2 addRules) in D:\Projects_Local\Overwatch-Script-To-Workshop\Deltinteger\Deltinteger\Parse\Translate.cs:line 393
at Deltin.Deltinteger.Parse.DeltinScript..ctor(TranslateSettings translateSettings) in D:\Projects_Local\Overwatch-Script-To-Workshop\Deltinteger\Deltinteger\Parse\Translate.cs:line 79
git bisect
is blaming a recent regression with the following OSTW code on commit 520c266:(yes it's not the prettiest code, I just had Copilot spit something out really quick for demonstration purposes)
Expected output:
Actual output: