Make an attack Art¶
Designer · 40 min · No code
Result: an Ether cone attack called Frost Fan. It hits every enemy in front of you, reads Ether instead of Strength, deals double damage from the side, Slows anyone it hits from behind, and grows stronger and faster to recharge as the player trains it.
Before you start¶
- Your first art. This recipe assumes you have made Stone Cleave, and goes further: area, attribute, positional bonuses, conditional effects and levels.
- In the glossary: Art, Break, Status effect.
Steps¶
1. Start from a blank Art¶
- In
MyGame/Arts, right-click › Data › Data Asset, pickXenoCoreArtDefinitionand name itDA_FrostFan. Do not duplicateDA_XenoCore_AirSlash: the copy would bring Air Slash's Break and side-Slow effects with it. - Open it. Under Art, set Display Name
Frost Fanand DescriptionEther damage in a cone. Slows from behind. - Give it its own Cooldown Tag,
Cooldown.MyGame.Art.FrostFan: add the tag in Project Settings › Project › Gameplay Tags (in a tag source of your own), then pick it here. Until you do, saving reports an error, and Arts sharing a tag share one cooldown. - Set Target Type to Enemy. Under Art › Animation, set Montage to an existing Art
montage such as
Characters/Player/Animations/Kwang/AM_XenoCore_BackSlash. Under Art › Palette, set Palette Glyph to the oneBattle/Arts/DA_XenoCore_AirSlashuses. - Leave Ability Class empty. The Art then runs as the shared
GA_XenoCore_Art_Base.
DA_XenoCore_SlitEdge (from the side, lowers Physical Defence) and DA_XenoCore_StreamEdge (a
cone) in Battle/Arts were built this way and are worth comparing against.
2. Make it an Ether art¶
All under Art:
- Attribute: Ether. Damage now uses the attacker's Ether against the target's Ether Defence, instead of Strength against Physical Defence.
- Category: Ether. This is the colour category the Arts menu shows; it changes no numbers.
- Effect Type: Damage.
- Under Art › Palette, set Glyph Colour to a blue, to match.
3. Make it hit an area¶
Under Art › Area:
- Area: Cone in front of the user.
- Area Radius:
600(cm). - Cone Angle:
100(degrees, full width).
An area Art aimed at a cone or at a circle around the user needs no target in reach, so Distance is ignored for it. For Single target or Circle around the target, Distance is the reach, and confirming the Art from further away makes the character run in and strike on arrival.
To see the shape in play, run XenoCore.Arts.DrawArea 1 in the console: every Art draws its area,
and who it hit, at impact. Tune the radius and angle by eye. (Not in Shipping builds.)
4. Reward position¶
- Under Art › Positional, add one entry to Positional Bonuses:
- Position: Beside the target
- Power Multiplier:
2.0 - Announce Chance: ticked. The palette lights "Chance!" while you stand there.
- You can add a second entry for another position. The best multiplier that applies is used.
The front, side and back are judged from the target's facing: within 60° of its front is front, beyond 120° is behind, between is the side.
5. Add a conditional status¶
Under Art › Effects, add one entry:
| Field | Value | Meaning |
|---|---|---|
| Effect | Battle/Status/GE_XenoCore_Status_Slow |
What to apply |
| Chance | 0.5 |
50% per target hit |
| Duration | 8 |
Seconds. Required for statuses |
| Magnitude | 0 |
Slow's strength is fixed in its own asset |
| Condition | From behind | Only when the user is behind that target |
| Recipient | Each target | |
| Announce Chance | ticked | Lights the palette's Chance while behind |
Conditions are checked against each target as it was before this hit, so an Art that Breaks cannot also count its own Break for a "Target is Broken" entry. The full list of conditions, and reactions, is in Chain Arts into Break, Topple and Daze. Making your own status is Make a status effect.
6. Make it grow with training¶
Arts level from I to XII with Art Points. Power, Cooldown Duration, and each effect's Duration and Magnitude are scalable floats: a Value times a curve row keyed by the Art's level.
- Create a curve table
CT_MyGame_ArtLevels(right-click › Data › Curve Table, pick Linear) with two rows:FrostFan.Power: keys1 = 1.0,12 = 2.0FrostFan.Cooldown: keys1 = 1.0,12 = 0.6
- Under Art, expand Power and set Value
150, Curve TableCT_MyGame_ArtLevels, Row NameFrostFan.Power. At level I it is 150; at XII, 300. - On Cooldown Duration: Value
14, rowFrostFan.Cooldown. 14 seconds untrained, 8.4 fully trained. - Under Art › Level, Base Level Up Cost is the AP to reach level II; later levels multiply it (see Tune levelling).
With no curve, a scalable float is just its Value at every level.
The shipped Arts do not scale with level yet
The sample Arts' Power and Cooldown Duration have no curve, so training them on the Level Up tab does not change their numbers. Give them curves as above if you use them.
7. Animation¶
Keep the borrowed Montage to start. To use your own:
- The montage's slot must be in the DefaultGroup slot group:
FullBodyis the one the shipped Arts use. - Set Impact Fraction: where in the montage the hit lands, as a fraction of its length
(
0.45= a little before halfway). An Art applies itself on this timer, not from a notify. - Montage Play Rate speeds the whole Art up, impact included.
Fails silently: a montage on another slot group
A montage whose slot is outside DefaultGroup blends wrong against the character's
animation layers, and nothing reports it.
8. Optional: how companions use it¶
Under Art › Companion AI, Usable By AI and AI Priority decide whether and how much an AI-controlled member picks this Art; AI Conditions limit it to targets that meet them, for example Target lacks tag with a status tag so it is not used twice on the same enemy. See Tune companion AI.
9. Teach it¶
Add a row for DA_FrostFan to a character's learnset (the Data Table in their pawn's Class
Defaults › XenoCore › Arts › Art Learn Table) as in
Your first art, or see Set palette slots and unlocks.
Test it¶
- Press Play in
Maps/L_XenoCore_Gym, slot Frost Fan on a member's palette from the Arts menu, and lead with them. - Engage a group of minions and stand to one side of the one you are locked on. "Chance!" lights.
- Use Frost Fan. Every minion in the cone takes damage; the side one takes more.
- Walk behind one and use it again: about half the time it is Slowed, and its auto-attacks come round visibly slower.
- Open the console (
`), typeXenoGiveAP 5000, level Frost Fan up on the Arts menu's Level Up tab, and check that it hits harder and recharges faster.
If it doesn't work¶
Validation error on save: 'takes its duration from the art, and Duration is 0'
Every shipped status takes its duration from the Art. With Duration 0 it would last no
time at all. Set a duration.
Validation error on save: 'Cooldown Tag ... is also used by ...'
Another Art definition uses the same Cooldown Tag, usually one you picked from an existing Art. Give this Art its own tag.
Save warning: 'No Montage'
The definition has no Montage. The Art still works, but plays no animation: its effect lands the moment it is used. A blank Art starts with none; set one as in step 1.
It hits only the locked target
Area is still Single target.
Fails silently: damage is 0
Power's Value is 0, or its Row Name is misspelled and the curve reads 0.
It does physical damage
Attribute is still Physical. Category only changes the colour.
Going further¶
- Arts: the definition, the shared ability, dispatch by spec.
- Chain Arts into Break, Topple and Daze
- Make a support Art
- Add a stat to the damage formula (needs a programmer)