A continuation of the introduction to the YAML format describing the skills used by the creatures in game. This post provides an example of the workflow for creating the file describing a skill.
Stomp:
Stomp:
Using:
Anim: Stomp@3x # 3 cycles per second
Stomp:
Using:
Anim: Stomp@3x # 3 cycles per second
Set:
COST: 500/20
DMG: 65
Stomp:
Using:
Anim: Stomp@3x # 3 cycles per second
Set:
COST: 500/20
DMG: 65
Sequence:
- Anim.Setup:
- Anim.Launch:
- Anim.Recover:
Stomp:
Using:
Anim: Stomp@3x # 3 cycles per second
Set:
COST: 500/20
DMG: 65
Sequence:
- Anim.Setup:
Cost: COST/T/2
- Anim.Launch:
Cost: COST*I/2
- Anim.Recover:
Stomp:
Using:
Anim: Stomp@3x # 3 cycles per second
Set:
COST: 500/20 # 500/PP rounded to nearest multiple of 5
DMG: 65
Sequence:
- Anim.Setup:
Cost: COST/T/2
Interruptible: [Dodge,Impact]
- Anim.Launch:
Cost: COST*I/2
Interruptible: [HeavyImpact]
- Anim.Recover:
Interruptible: [Impact]
Solar Beam:
Using:
Anim: ...
Set:
COST: 500/10
DMG: 120
FAST: Weather.Sunny
Sequence:
# I haven't fully decided how the branching should be done on the FAST variable. So you can just write it in some way that makes sense, like
- Noop@0s: # To go to the beam action if we don't need the "turn" of charging. 0 second segment completes immediately.
GoTo:
- Segment: 3
If: FAST
Stomp:
Using:
Anim: Stomp@3x # 3 cycles per second
Set:
COST: 500/20 # 500/PP rounded to nearest multiple of 5
DMG: 65
Sequence:
- Anim.Setup:
Cost: COST/T/2
Interruptible: [Dodge,Impact]
Motion:
Horizontal: 0.5 # Half speed
- Anim.Launch:
Cost: COST*I/2
Interruptible: [HeavyImpact]
Motion:
Horizontal: 0.5 # Half speed
Fall: Fast # Forced Fast-Fall
- Anim.Recover:
Interruptible: [Impact]
Motion: Last
Stomp:
Using:
Anim: Stomp@3x # 3 cycles per second
Set:
COST: 500/20 # 500/PP rounded to nearest multiple of 5
DMG: 65
Sequence:
- Anim.Setup:
Cost: COST/T/2
Interruptible: [Dodge,Impact]
Motion:
Horizontal: 0.5 # Half speed
- Anim.Launch:
Cost: COST*I/2
Interruptible: [HeavyImpact]
Motion:
Horizontal: 0.5 # Half speed
Fall: Fast # Forced Fast-Fall
Spawn: # Being able to spawn nodes is needed so we can attach both a hitbox and an FX to a projectile.
- Name: Projectile
At : Anim:SpawnPoint The Location to attach to. See discussion with FX below.
Every: 0.05 # How often to spawn them, in seconds, if it is repeated.
Endures: True # True if it needs to endure beyond the current (here Anim.Launch) segment.
- Anim.Recover:
Interruptible: [Impact]
Motion: Last
FX:
"Location":
- List
- Of
- FX
"Other":
- List
In general we will use the Anim:SpawnPoint location, which defines where projectiles or FX should be created for an attack. So on the Fist for Punches or Foot for Stomp, etc. Some other locations we can have are Spawn:<SPAWN_NAME>
, or Ground
for a ground node, or Ground:<OTHER_LOCATION>
to project another location onto the ground, such as the foot/SpawnPoint for Stomp, or Self
if it should be applied to the Mon itself (e.g. recoloring part of it for an FX like Metal Claw), or Target
for the targets that have been hit by the attack. Because these haven't been created yet, it is very important to include a comment describing what is meant for the FX so we don't forget what we wanted to do later when it is actually implemented. The 2 word or so short form to specify which FX (will be the filename for the FX) is probably not enough. So for Stomp we could have:
Stomp:
Using:
Anim: Stomp@3x # 3 cycles per second
Set:
COST: 500/20 # 500/PP rounded to nearest multiple of 5
DMG: 65
Sequence:
- Anim.Setup:
Cost: COST/T/2
Interruptible: [Dodge,Impact]
Motion:
Horizontal: 0.5 # Half speed
FX:
Anim:SpawnPoint:
- CollapsingMarkerRing:
Scale: 0.2
Color: Warning
- Anim.Launch:
Cost: COST*I/2
Interruptible: [HeavyImpact]
Motion:
Horizontal: 0.5 # Half speed
Fall: Fast # Forced Fast-Fall
FX:
Anim:SpawnPoint:
- TackleWind # Fist/Tackle wind cone. Basically a bunch of streaks in a parabolic cone.
- HoofMarker #
Target:ImpactPoint:
- TwinkleStar # 4 pointed flashing white star at teh impact point
- HoofImprint # Leave behind a black hoof mark on the body of the opponent
Target:TrueGround: # Ground exists at the feet even in the air. TrueGround only exists if the target is on the ground.
- DustRing # Poof out a dust ring on the ground at the target
Target:
- ForceCrouch # Briefly force into a crouch state
- Meteor # Like smash bros being knocked to earth
Target.1: # Targets for damage group 1 only
- PushAwayAxial:
From: Anim:SpawnPoint
- Anim.Recover:
Interruptible: [Impact]
Motion: Last
DamageGroup:
, a list of other damage groups (Damage, Bonuses, Target set). Note that Target: refers to all targets, Target:GroupINDEX: refers to specific targets for a given damage group for the attack. The DamageGroup list starts with 1, and the segment is index 0. If you prefer, they can be names instead of indices (e.g. otherDamageGroup: PushBack: Damage: 5
(but with newlines and indentation))Stomp:
Using:
Anim: Stomp@3x # 3 cycles per second
Set:
COST: 500/20 # 500/PP rounded to nearest multiple of 5
DMG: 65
Sequence:
- Anim.Setup:
Cost: COST/T/2
Interruptible: [Dodge,Impact]
Motion:
Horizontal: 0.5 # Half speed
FX:
Anim:SpawnPoint:
- CollapsingMarkerRing:
Scale: 0.2
Color: Warning
- Anim.Launch:
Cost: COST*I/2
Damage: DMG # A fixed value (no /T, etc.) is applied only once, on the first impact. This is damage group 0.
DamageGroup:
- Damage: 5 # Very weak damage for the impact ring
Interruptible: [HeavyImpact]
Motion:
Horizontal: 0.5 # Half speed
Fall: Fast # Forced Fast-Fall
FX:
Anim:SpawnPoint:
- TackleWind # Fist/Tackle wind cone. Basically a bunch of streaks in a parabolic cone.
- HoofMarker #
Target:ImpactPoint:
- TwinkleStar # 4 pointed flashing white star at teh impact point
- HoofImprint # Leave behind a black hoof mark on the body of the opponent
Target:TrueGround: # Ground exists at the feet even in the air. TrueGround only exists if the target is on the ground.
- DustRing # Poof out a dust ring on the ground at the target
Target:
- ForceCrouch # Briefly force into a crouch state
- Meteor # Like smash bros being knocked to earth
Target:Group1 # Targets for damage group 1 only
- PushAwayAxial:
From: Anim:SpawnPoint
Hitbox:
- Shape: Sphere # Or just use `Shape: Foot` `At: User`.
Radius: 0.5
At: Anim:SpawnPoint # This is the "spawnpoint" for attack projectiles and such, so for Stomp it will be on the foot.
Remove: False # Can hit arbitrarily many enemies with Stomp, so don't remove on impact
- Shape: Cylinder # This will be the "Shockwave" from the stomp, pushing enemies back
Radius: RANGE
Height: 1
At: Ground:Anim:SpawnPoint # Project the spawnpoint onto the ground for the pulse. I forgot how I split the damage up for these, I'll check later.
Remove: False
Group: 1 # Damage group. Default is 0, which uses the Damage and Bonus parameters and such specified in the segment
- Anim.Recover:
Interruptible: [Impact]
Motion: Last
Bonus:
All:
- ClearEntryHazards: 100%
Self:
- Speed+1: 10%
- ClearBinds: 100%
Enemy:
- Burn: 10%
For stomp we don't have any turned-based game bonuses, but we do have a few to apply to the targets like a meteor effect. Previously I included them under attacks, but they should be moved as they are not just visual/auditory but are gameplay elements (only moving around spawned nodes is done as an FX, not control of characters).
Stomp:
Using:
Anim: Stomp@3x # 3 cycles per second
Set:
COST: 500/20 # 500/PP rounded to nearest multiple of 5
DMG: 65
Sequence:
- Anim.Setup:
Cost: COST/T/2
Interruptible: [Dodge,Impact]
Motion:
Horizontal: 0.5 # Half speed
FX:
Anim:SpawnPoint:
- CollapsingMarkerRing:
Scale: 0.2
Color: Warning
- Anim.Launch:
Cost: COST*I/2
Damage: DMG # A fixed value (no /T, etc.) is applied only once, on the first impact. This is damage group 0.
DamageGroup:
- Damage: 5 # Very weak damage for the impact ring
Bonus:
Target:
- PushAwayAxial:
From: Anim:SpawnPoint
Interruptible: [HeavyImpact]
Motion:
Horizontal: 0.5 # Half speed
Fall: Fast # Forced Fast-Fall
FX:
Anim:SpawnPoint:
- TackleWind # Fist/Tackle wind cone. Basically a bunch of streaks in a parabolic cone.
- HoofMarker #
Target:ImpactPoint:
- TwinkleStar # 4 pointed flashing white star at teh impact point
- HoofImprint # Leave behind a black hoof mark on the body of the opponent
Target:TrueGround: # Ground exists at the feet even in the air. TrueGround only exists if the target is on the ground.
- DustRing # Poof out a dust ring on the ground at the target
Bonus:
Target:
- ForceCrouch # Briefly force into a crouch state
- Meteor # Like smash bros being knocked to earth
Hitbox:
- Shape: Sphere # Or just use `Shape: Foot` `At: User`.
Radius: 0.5
At: Anim:SpawnPoint # This is the "spawnpoint" for attack projectiles and such, so for Stomp it will be on the foot.
Remove: False # Can hit arbitrarily many enemies with Stomp, so don't remove on impact
- Shape: Cylinder # This will be the "Shockwave" from the stomp, pushing enemies back
Radius: RANGE
Height: 1
At: Ground:Anim:SpawnPoint # Project the spawnpoint onto the ground for the pulse. I forgot how I split the damage up for these, I'll check later.
Remove: False
Group: 1 # Damage group. Default is 0, which uses the Damage and Bonus parameters and such specified in the segment
- Anim.Recover:
Interruptible: [Impact]
Motion: Last