-
Notifications
You must be signed in to change notification settings - Fork 0
GetCompleteStormElement
koliva8245 edited this page Jun 22, 2026
·
4 revisions
Example of getting the complete xml element with an id of AmazonBlindingLight.
<!-- \core.stormmod\base.stormdata\gamedata\abildata.xml -->
<CAbil default="1">
<Name value="Abil/Name/##id##" />
<TechPlayer value="Upkeep" />
<TargetMessage value="Abil/TargetMessage/DefaultTargetMessage" />
<OrderArray>
<Color value="255,0,255,0" />
<Model value="Assets\UI\Feedback\WayPointConfirm\WayPointConfirm.m3" />
<LineTexture value="Assets\Textures\WayPointLine.dds" />
</OrderArray>
<SharedFlags index="DisableWhileDead" value="1" />
<SharedFlags index="AllowQuickCastCustomization" value="1" />
<SharedFlags index="TargetCursorVisibleInBlackMask" value="1" />
</CAbil>
<!-- \core.stormmod\base.stormdata\gamedata\abildata.xml -->
<CAbilEffectTarget default="1">
<CmdButtonArray index="Execute">
<Flags index="ShowInGlossary" value="1" />
</CmdButtonArray>
<Flags index="CanToggleAutoCast" value="1" />
<Flags index="BestUnit" value="1" />
<FollowRange value="5" />
</CAbilEffectTarget>
<!-- \heroesdata.stormmod\base.stormdata\gamedata\abildata.xml -->
<CAbilEffectTarget default="1">
<CmdButtonArray index="Execute" AutoQueueId="Spell">
<Flags index="AllowMinimap" value="0" />
<Flags index="AllowSelfCast" value="1" />
</CmdButtonArray>
<Flags index="AllowMovement" value="1" />
<Flags index="WaitToSpend" value="0" />
<Flags index="UninterruptibleTurn" value="1" />
<Flags index="ValidateButtonState" value="1" />
<SharedFlags index="DisableWhileDead" value="0" />
<OrderArray index="0" Model="Assets\Units\Test\InvisibleUnit\InvisibleUnit.m3" LineTexture="Assets\Textures\Storm_WayPointLine.dds" />
</CAbilEffectTarget>
<!-- \heromods\amazon.stormmod\base.stormdata\gamedata\amazondata.xml -->
<CAbilEffectTarget id="AmazonBlindingLight">
<CmdButtonArray index="Execute" DefaultButtonFace="AmazonBlindingLight" />
<PrepEffect value="DismountDecloakCasterSet" />
<Effect value="AmazonBlindingLightInitialSet" />
<Flags index="ClearLastMoveTarget" value="1" />
<Flags index="RangeUseCasterRadius" value="0" />
<Flags index="RequireTargetVision" value="0" />
<UninterruptibleArray index="Cast" value="1" />
<UninterruptibleArray index="Channel" value="1" />
<UninterruptibleArray index="Finish" value="1" />
<CastIntroTime value="0.125" />
<Cost>
<Vital index="Energy" value="50" />
<Cooldown TimeUse="15" />
</Cost>
<Range value="8" />
<RangeSlop value="5" />
<CursorEffect value="AmazonBlindingLightTargetSearch" />
<Arc value="360" />
</CAbilEffectTarget>HeroesData heroesData = heroesXmlLoader.HeroesData;
StormElement? stormElement = heroesData.GetCompleteStormElement("abil", "AmazonBlindingLight");
StormElementData dataValues = stormElement.DataValues;
// Abil/Name/AmazonBlindingLight
string nameValue = dataValues.GetElementDataAt("name").Value.GetString();
// 5
int followRange = dataValues.GetElementDataAt("FollowRange").Value.GetInt();
IReadOnlyCollection<string> flags = dataValues.GetElementDataAt("flags").GetElementDataIndexes();
// {
// CanToggleAutoCast,
// BestUnit,
// AllowMovement,
// WaitToSpend,
// UninterruptibleTurn,
// ValidateButtonState,
// ClearLastMoveTarget,
// RangeUseCasterRadius,
// RequireTargetVision,
// }