Skip to content

Commit 599bb29

Browse files
committed
Refactor NewSpecialAbility.cs per Scott's comments.
Added method for handling StatIconInfo
1 parent ebdb87b commit 599bb29

1 file changed

Lines changed: 34 additions & 10 deletions

File tree

Models/NewSpecialAbility.cs

Lines changed: 34 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,51 @@ public class NewSpecialAbility
1111
public SpecialTriggeredAbility specialTriggeredAbility;
1212
public StatIconInfo statIconInfo;
1313
public Type abilityBehaviour;
14-
public Texture tex;
1514
public SpecialAbilityIdentifier id;
1615

1716
public NewSpecialAbility(
18-
StatIconInfo statIconInfo,
1917
Type abilityBehaviour,
20-
Texture tex,
21-
SpecialAbilityIdentifier id
18+
SpecialAbilityIdentifier id,
19+
StatIconInfo statIconInfo = null
2220
)
2321
{
2422
specialTriggeredAbility = (SpecialTriggeredAbility)26 + specialAbilities.Count;
25-
this.statIconInfo = statIconInfo;
23+
var logNameOrIdNumber = specialTriggeredAbility.ToString();
24+
if (statIconInfo)
25+
{
26+
this.statIconInfo = statIconInfo;
27+
HandleStatIconInfo(statIconInfo);
28+
logNameOrIdNumber = this.statIconInfo.rulebookName;
29+
}
2630
this.abilityBehaviour = abilityBehaviour;
27-
tex.filterMode = FilterMode.Point;
28-
this.tex = tex;
2931
this.id = id;
30-
specialAbilities.Add(this);
3132
id.id = specialTriggeredAbility;
32-
this.id = id;
3333

34-
Plugin.Log.LogInfo($"Loaded custom special ability [{statIconInfo.rulebookName}]!");
34+
HandleStatIconInfo(statIconInfo);
35+
36+
specialAbilities.Add(this);
37+
Plugin.Log.LogInfo($"Loaded custom special ability [{logNameOrIdNumber}]!");
38+
}
39+
40+
// is only called if StatIconInfo is not null
41+
private static void HandleStatIconInfo(StatIconInfo statIconInfo)
42+
{
43+
statIconInfo.iconType = (SpecialStatIcon)8 + specialAbilities.Count;
44+
45+
if (statIconInfo.iconGraphic is not null)
46+
{
47+
// the reason for this is just one less step for the end user to setup
48+
statIconInfo.iconGraphic.filterMode = FilterMode.Point;
49+
}
50+
51+
// a lazy initializer
52+
if (statIconInfo.metaCategories.Count == 0)
53+
{
54+
statIconInfo.metaCategories = new List<AbilityMetaCategory>
55+
{
56+
AbilityMetaCategory.Part1Modular, AbilityMetaCategory.Part1Rulebook
57+
};
58+
}
3559
}
3660
}
3761
}

0 commit comments

Comments
 (0)