//===== rAthena Documentation ================================
//= Skill Database Structure
//===== By: ==================================================
//= rAthena Dev Team
//===== Last Updated: ========================================
//= 20220126
//===== Description: =========================================
//= Explanation of the skill_db.yml file and structure.
//============================================================

---------------------------------------

Id: Unique skill ID.

---------------------------------------

Name: Skill Aegis name.

---------------------------------------

Description: Skill description.

---------------------------------------

MaxLevel: Max skill level.

---------------------------------------

Type: Skill type.

None	- No specific type. (Default)
Weapon	- Weapon type damage.
Magic	- Magic type damage.
Misc	- Misc type damage.

---------------------------------------

TargetType: Skill target type.

Passive	- Passive skill. (Default)
Attack	- Damage enemies.
Ground	- Ground placement skill.
Self	- Self cast skill.
Support	- Friendly cast skill.
Trap	- Trap cast skill.

---------------------------------------

DamageFlags: Skill damage properties.

NoDamage		- No damage skill. (Default)
Splash			- Has splash area.
SplashSplit		- Damage should be split among targets.
IgnoreAtkCard	- Skill ignores caster's % damage cards (Misc type always ignores).
IgnoreElement	- Skill ignores elemental adjustments.
IgnoreDefense	- Skill ignores target's defense (Misc type always ignores).
IgnoreFlee		- Skill ignores target's flee (Magic type always ignores)
IgnoreDefCard	- Skill ignores target's defense cards.
IgnoreLongCard	- Skill ignores caster's long range damage cards.
Critical		- Skill can critical.
SimpleDefense	- (Renewal-only) Physical damage is flatly reduced by DEF+DEF2. RES is ignored.

---------------------------------------

Flags: Skill information flags.

IsQuest						- Quest skill.
IsNpc						- NPC skill.
IsWedding					- Wedding skill.
IsSpirit					- Spirit skill.
IsGuild						- Guild skill.
IsSong						- Song/Dance skill.
IsEnsemble					- Ensemble skill.
IsTrap						- Trap skill.
TargetSelf					- Damages/targets self.
NoTargetSelf				- Cannot target self. If TargetType is Self, changes to Attack.
PartyOnly					- Usable on party (and enemies if offensive).
GuildOnly					- Usable on guild (and enemies if offensive).
NoTargetEnemy				- Disable on enemies (for non-offensive).
IsShadowSpell				- Make skill available for SC_AUTOSHADOWSPELL.
IsChorus					- Chorus skill.
IgnoreBgReduction			- Ignore Battleground reduction.
IgnoreGvgReduction			- Ignore GvG reduction.
DisableNearNpc				- Disable self/ground skills near NPC. In tandem with NoNearNpc node.
TargetTrap					- Damage traps. If TargetType is Trap.
IgnoreLandProtector			- Ignore SA_LANDPROTECTOR.
AllowWhenHidden				- Usable while hiding.
AllowWhenPerforming			- Usable while in dancing state.
TargetEmperium				- Damages/targets Emperium.
IgnoreKagehumi				- Ignore KG_KAGEHUMI.
AlterRangeVulture			- Skill range affected by AC_VULTURE.
AlterRangeSnakeEye			- Skill range affected by GS_SNAKEEYE.
AlterRangeShadowJump		- Skill range affected by NJ_SHADOWJUMP.
AlterRangeRadius			- Skill range affected by WL_RADIUS.
AlterRangeResearchTrap		- Skill range affected by RA_RESEARCHTRAP.
IgnoreHovering				- Ignore SC_HOVERING.
AllowOnWarg					- Usable while riding Warg.
AllowOnMado					- Usable while on Madogear.
TargetManHole				- Target enemy with SC__MANHOLE.
TargetHidden				- Target enemy with OPTION_HIDE.
IncreaseDanceWithWugDamage	- Increase SC_DANCEWITHWUG damage.
IgnoreWugBite				- Ignore RA_WUGBITE.
IgnoreAutoGuard				- Not blocked by SC_AUTOGUARD (When TargetType is Weapon only).
IgnoreCicada				- Not blocked by SC_UTSUSEMI or SC_BUNSINJYUTSU (When TargetType is Weapon only).
ShowScale					- Shows AoE area while casting
IgnoreGtb					- Not blocked by Golden Thief Bug card.
Toggleable					- Skill can be toggled on and off. When toggled off the skill doesn't consume HP/SP.

---------------------------------------

Range: Skill range. Combo skills do not check for range when used. If range is < 5 the skill is considered melee-range.

Can be defined in scalar form or sequence map form:
Scalar Form
  Range: 1

Sequence Map Form
  Range:
    - Level: 1
      Size: 1
    - Level: 2
      Size: 1
    - Level: 3
      Size: 2
    - Level: 4
      Size: 2
    - Level: 5
      Size: 3

---------------------------------------

Hit: Skill hit type.

Normal		- Passive/No damage skill. (Default)
Single		- Single hit.
Multi_Hit	- Multiple hits.

---------------------------------------

HitCount: Skill hit count. When positive the damage is increased by hits. Negative values the number of hits without increasing the total damage.

Can be defined in scalar form or sequence map form:
Scalar Form
  HitCount: 1

Sequence Map Form
  HitCount:
    - Level: 1
      Count: 2
    - Level: 2
      Count: 4
    - Level: 3
      Count: 6
    - Level: 4
      Count: 8
    - Level: 5
      Count: 10

---------------------------------------

Element: Skill element.

Neutral (Default)
Water
Earth
Fire
Wind
Poison
Holy
Dark
Ghost
Undead
Weapon	- Uses weapon element.
Endowed	- Uses endowed element.
Random	- Uses random element.

Can be defined in scalar form or sequence map form:
Scalar Form
  Element: Fire

Sequence Map Form
  Element:
    - Level: 1
      Element: Neutral
    - Level: 2
      Element: Neutral
    - Level: 3
      Element: Poison
    - Level: 4
      Element: Poison
    - Level: 5
      Element: Poison

---------------------------------------

SplashArea: Skill splash area of effect.

-1	- Screen-wide.
 0	- No splash.
All other values follow the formula: value * 2 + 1
 1	- 3x3
 2	- 5x5
 3	- 7x7
 4	- 9x9
 5	- 11x11
 6	- 13x13
 7	- 15x15
 8	- 17x17
 9	- 19x19
 10	- 21x21
 11	- 23x32
 12	- 25x25
 13	- 27x27
 14	- 29x29
 15	- 31x31

Can be defined in scalar form or sequence map form:
Scalar Form
  SplashArea: 1

Sequence Map Form
  SplashArea:
    - Level: 1
      Area: 1
    - Level: 2
      Area: 1
    - Level: 3
      Area: 2
    - Level: 4
      Area: 2
    - Level: 5
      Area: 3

---------------------------------------

ActiveInstance: Maximum amount of active skill instances that can be on the ground.

Can be defined in scalar form or sequence map form:
Scalar Form
  ActiveInstance: 1

Sequence Map Form
  ActiveInstance:
    - Level: 1
      Max: 1
    - Level: 2
      Max: 1
    - Level: 3
      Max: 2
    - Level: 4
      Max: 2
    - Level: 5
      Max: 3

---------------------------------------

Knockback: Amount of tiles the skill knockbacks.

Can be defined in scalar form or sequence map form:
Scalar Form
  Knockback: 1

Sequence Map Form
  Range:
    - Level: 1
      Amount: 1
    - Level: 2
      Amount: 1
    - Level: 3
      Amount: 2
    - Level: 4
      Amount: 2
    - Level: 5
      Amount: 3

---------------------------------------

CopyFlags: Determines if the skill is copyable.

Skill				- Type of skill that can copy.
  Plagiarism
  Reproduce
RemoveRequirement	- Ability to remove skill cast requirement.
  HpCost
  SpCost
  HpRateCost
  SpRateCost
  MaxHpTrigger
  ZenyCost
  Weapon
  Ammo
  State
  Status
  SpiritSphereCost
  ItemCost
  Equipment

---------------------------------------

NoNearNPC: Determines if the skill can be used near a NPC.

AdditionalRange	- Number of cells from an NPC where the skill can be cast.
	If zero this will read the splash range value.
	If that is also zero then Unit Range + Unit Layout Range will be used.

Type			- Type of NPC that will block the skill.
WarpPortal
Shop
Npc
Tomb

---------------------------------------

CastCancel: Cancel cast when hit.

---------------------------------------

CastDefenseReduction: Defense reduction rate during skill cast.

---------------------------------------

CastTime: Time to cast the skill in milliseconds.

Can be defined in scalar form or sequence map form:
Scalar Form
  CastTime: 1000

Sequence Map Form
  CastTime:
    - Level: 1
      Time: 1000
    - Level: 2
      Time: 2000
    - Level: 3
      Time: 3000
    - Level: 4
      Time: 4000
    - Level: 5
      Time: 5000

---------------------------------------

AfterCastActDelay: Time the character cannot use skills in milliseconds.

Can be defined in scalar form or sequence map form:
Scalar Form
  AfterCastActDelay: 1000

Sequence Map Form
  AfterCastActDelay:
    - Level: 1
      Time: 1000
    - Level: 2
      Time: 2000
    - Level: 3
      Time: 3000
    - Level: 4
      Time: 4000
    - Level: 5
      Time: 5000

---------------------------------------

AfterCastWalkDelay: Time before the character can move again in milliseconds.

Can be defined in scalar form or sequence map form:
Scalar Form
  AfterCastWalkDelay: 1000

Sequence Map Form
  AfterCastWalkDelay:
    - Level: 1
      Time: 1000
    - Level: 2
      Time: 2000
    - Level: 3
      Time: 3000
    - Level: 4
      Time: 4000
    - Level: 5
      Time: 5000

---------------------------------------

Duration1: Duration of the skill in milliseconds.

Can be defined in scalar form or sequence map form:
Scalar Form
  Duration1: 1000

Sequence Map Form
  Duration1:
    - Level: 1
      Time: 1000
    - Level: 2
      Time: 2000
    - Level: 3
      Time: 3000
    - Level: 4
      Time: 4000
    - Level: 5
      Time: 5000

---------------------------------------

Duration2:  Duration of the skill in milliseconds.

Can be defined in scalar form or sequence map form:
Scalar Form
  Duration2: 1000

Sequence Map Form
  Duration2:
    - Level: 1
      Time: 1000
    - Level: 2
      Time: 2000
    - Level: 3
      Time: 3000
    - Level: 4
      Time: 4000
    - Level: 5
      Time: 5000

---------------------------------------

Cooldown: Time before the character can use the same skill again in milliseconds.

Can be defined in scalar form or sequence map form:
Scalar Form
  Cooldown: 1000

Sequence Map Form
  Cooldown:
    - Level: 1
      Time: 1000
    - Level: 2
      Time: 2000
    - Level: 3
      Time: 3000
    - Level: 4
      Time: 4000
    - Level: 5
      Time: 5000

---------------------------------------

FixedCastTime: Time that is fixed during cast of the skill in milliseconds. A value of -1 will use 20% of CastTime as FixedCastTime. See battle_config::default_fixed_castrate to adjust the rate.

Can be defined in scalar form or sequence map form:
Scalar Form
  FixedCastTime: 1000

Sequence Map Form
  FixedCastTime:
    - Level: 1
      Time: 1000
    - Level: 2
      Time: 2000
    - Level: 3
      Time: 3000
    - Level: 4
      Time: 4000
    - Level: 5
      Time: 5000

---------------------------------------

CastTimeFlags: Effects of the skill's cast time.

IgnoreDex		- Cast time not affected by DEX.
IgnoreStatus	- Cast time not affected by statuses (Suffragium, etc).
IgnoreItemBonus	- Cast time not affected by item bonuses.

---------------------------------------

CastDelayFlags: Effects of the skill's delay.

IgnoreDex		- Delay not affected by DEX.
IgnoreStatus	- Delay not affected by statuses (Suffragium, etc).
IgnoreItemBonus	- Delay not affected by item bonuses.

IgnoreDex only makes sense when battle_config::delay_dependon_dex is enabled.

---------------------------------------

Requires: List of requirements to cast the skill.

HpCost: HP required to cast.

Can be defined in scalar form or sequence map form:
Scalar Form
  HpCost: 10

Sequence Map Form
  HpCost:
    - Level: 1
      Amount: 10
    - Level: 2
      Amount: 20
    - Level: 3
      Amount: 30
    - Level: 4
      Amount: 40
    - Level: 5
      Amount: 50

------------------

SpCost: SP required to cast.

Can be defined in scalar form or sequence map form:
Scalar Form
  SpCost: 10

Sequence Map Form
  SpCost:
    - Level: 1
      Amount: 10
    - Level: 2
      Amount: 20
    - Level: 3
      Amount: 30
    - Level: 4
      Amount: 40
    - Level: 5
      Amount: 50

------------------

ApCost: AP required to cast.

Can be defined in scalar form or sequence map form:
Scalar Form
  ApCost: 10

Sequence Map Form
  ApCost:
    - Level: 1
      Amount: 10
    - Level: 2
      Amount: 20
    - Level: 3
      Amount: 30
    - Level: 4
      Amount: 40
    - Level: 5
      Amount: 50

------------------

HpRateCost: HP rate required to cast. If positive, uses current HP, else uses Max HP.

Can be defined in scalar form or sequence map form:
Scalar Form
  HpRateCost: 10

Sequence Map Form
  HpRateCost:
    - Level: 1
      Amount: 10
    - Level: 2
      Amount: 20
    - Level: 3
      Amount: 30
    - Level: 4
      Amount: 40
    - Level: 5
      Amount: 50

------------------

SpRateCost: SP rate required to cast. If positive, uses current SP, else uses Max SP.

Can be defined in scalar form or sequence map form:
Scalar Form
  SpRateCost: 10

Sequence Map Form
  SpRateCost:
    - Level: 1
      Amount: 10
    - Level: 2
      Amount: 20
    - Level: 3
      Amount: 30
    - Level: 4
      Amount: 40
    - Level: 5
      Amount: 50

------------------

ApRateCost: AP rate required to cast. If positive, uses current AP, else uses Max AP.

Can be defined in scalar form or sequence map form:
Scalar Form
  ApRateCost: 10

Sequence Map Form
  ApRateCost:
    - Level: 1
      Amount: 10
    - Level: 2
      Amount: 20
    - Level: 3
      Amount: 30
    - Level: 4
      Amount: 40
    - Level: 5
      Amount: 50

------------------

MaxHpTrigger: Maximum amount of HP to cast the skill.

Can be defined in scalar form or sequence map form:
Scalar Form
  MaxHpTrigger: 10

Sequence Map Form
  MaxHpTrigger:
    - Level: 1
      Amount: 10
    - Level: 2
      Amount: 20
    - Level: 3
      Amount: 30
    - Level: 4
      Amount: 40
    - Level: 5
      Amount: 50

------------------

ZenyCost: Zeny required to cast.

Can be defined in scalar form or sequence map form:
Scalar Form
  ZenyCost: 10

Sequence Map Form
  ZenyCost:
    - Level: 1
      Amount: 10
    - Level: 2
      Amount: 20
    - Level: 3
      Amount: 30
    - Level: 4
      Amount: 40
    - Level: 5
      Amount: 50

------------------

Weapon: Weapon required to cast.

All (Default)
Fist
Dagger
1hSword
2hSword
1hSpear
2hSpear
1hAxe
2hAxe
Mace
2hMace
Staff
Bow
Knuckle
Musical
Whip
Book
Katar
Revolver
Rifle
Gatling
Shotgun
Grenade
Huuma
2hStaff

------------------

Ammo: Ammo required to cast.

None (Default)
Arrow
Dagger
Bullet
Shell
Grenade
Shuriken
Kunai
Cannonball
Throwweapon

------------------

AmmoAmount: Ammo amount required to cast.

Can be defined in scalar form or sequence map form:
Scalar Form
  AmmoAmount: 10

Sequence Map Form
  AmmoAmount:
    - Level: 1
      Amount: 1
    - Level: 2
      Amount: 2
    - Level: 3
      Amount: 3
    - Level: 4
      Amount: 4
    - Level: 5
      Amount: 5

------------------

State: Special state required to cast.

None				- No special state required.
Hidden				- Requires OPTION_HIDE, OPTION_CLOAK, or OPTION_CHASEWALK.
Riding				- Requires OPTION_RIDING or OPTION_DRAGON.
Falcon				- Requires OPTION_FALCON.
Cart				- Requires OPTION_CART for pre-renewal or SC_PUSH_CART for renewal.
Shield				- Requires a shield to be equipped.
Recover_Weight_Rate	- Requires weight to be less than 50% for pre-renewal or 70% for renewal.
Move_Enable			- Requires to be able to move.
Water				- Requires to be standing in water.
RidingDragon		- Requires OPTION_DRAGON.
Wug					- Requires OPTION_WUG.
RidingWug			- Requires OPTION_WUGRIDER.
Mado				- Requires OPTION_MADOGEAR.
ElementalSpirit		- Requires an Elemental Spirit to be summoned.
ElementalSpirit2	- Requires an Elemental Spirit to be summoned and will be removed after.
Peco				- Requires OPTION_RIDING.
Sunstance			- Requires Sun/Universe Stance status be active.
Moonstance			- Requires Moon/Universe Stance status be active.
Starstance			- Requires Star/Universe Stance status be active.
Universestance		- Requires Universe Stance status be active.

------------------

Status: Status change required to cast.

For a full list, see src/map/status.hpp::sc_type.

------------------

SphereCost: Spirit sphere required to cast.

Can be defined in scalar form or sequence map form:
Scalar Form
  SphereCost: 10

Sequence Map Form
  SphereCost:
    - Level: 1
      Amount: 1
    - Level: 2
      Amount: 2
    - Level: 3
      Amount: 3
    - Level: 4
      Amount: 4
    - Level: 5
      Amount: 5

------------------

ItemCost: Item required to cast. If the Level is supplied, then the ItemCost becomes skill level dependent.

Levels 1 - 5 have no item cost but levels 6 - 10 require a Blue Gemstone.
  ItemCost:
    - Item: Blue_Gemstone
      Amount: 1
      Level: 6
    - Item: Blue_Gemstone
      Amount: 1
      Level: 7
    - Item: Blue_Gemstone
      Amount: 1
      Level: 8
    - Item: Blue_Gemstone
      Amount: 1
      Level: 9
    - Item: Blue_Gemstone
      Amount: 1
      Level: 10

# All levels require a Blue Gemstone.
  ItemCost:
    - Item: Blue_Gemstone
      Amount: 1

------------------

GiveAp: AP given on successful casting.

Can be defined in scalar form or sequence map form:
Scalar Form
  GiveAp: 10

Sequence Map Form
  GiveAp:
    - Level: 1
      Amount: 10
    - Level: 2
      Amount: 20
    - Level: 3
      Amount: 30
    - Level: 4
      Amount: 40
    - Level: 5
      Amount: 50

------------------

Equipment: Equipped item required to cast.

---------------------------------------

Unit: Skill unit values.

Id: Skill unit ID.

For a full list, see src/map/skill.hpp::e_skill_unit_id.

------------------

AlternateId: Alternate skill unit ID.

For a full list, see src/map/skill.hpp::e_skill_unit_id.

------------------

Layout: Skill unit layout.

-1	- Screen-wide.
 0	- No splash.
All other values follow the formula: value * 2 + 1
 1	- 3x3
 2	- 5x5
 3	- 7x7
 4	- 9x9
 5	- 11x11

Can be defined in scalar form or sequence map form:
Scalar Form
  Layout: 10

Sequence Map Form
  Layout:
    - Level: 1
      Size: 1
    - Level: 2
      Size: 2
    - Level: 3
      Size: 3
    - Level: 4
      Size: 4
    - Level: 5
      Size: 5

------------------

Range: Skill unit range.

Can be defined in scalar form or sequence map form:
Scalar Form
  Range: 10

Sequence Map Form
  Range:
    - Level: 1
      Size: 1
    - Level: 2
      Size: 2
    - Level: 3
      Size: 3
    - Level: 4
      Size: 4
    - Level: 5
      Size: 5

------------------

Interval: Skill unit interval in milliseconds.

------------------

Target: Skill unit target type.

Friend		- Targets Party, Guild, Guild Allies, and neutral players.
Party		- Targets Party.
Ally		- Targets Party and Guild and Guild Allies.
Guild		- Targets Guild and Guild Allies.
All			- Targets all. (Default)
Enemy		- Targets enemy.
Self		- Targets self.
SameGuild	- Targets Guild but not Guild Allies.

------------------

Flag: Skill unit flags.

None				- No flags.
NoEnemy				- If battle_config::defunit_not_enemy is enabled, the Target is changed to Friend.
NoReiteration		- Spell cannot be stacked.
NoFootSet			- Spell cannot be cast near/on targets.
NoOverlap			- Spell effects do not overlap.
PathCheck			- Only cells with a shootable path will be placed.
NoPc				- Spell cannot affect players.
NoMob				- Spell cannot affect mobs.
Skill				- Spell can affect skills.
Dance				- Dance unit.
Ensemble			- Duet unit.
Song				- Song unit.
DualMode			- Spell has effects both at an interval and when you step in/out.
NoKnockback			- Cannot be knocked back (only unit that can be damaged).
RangedSingleUnit	- Layout hack, use layout range property but only display center.
CrazyWeedImmune		- Immune to GN_CRAZYWEED.
RemovedByFireRain	- Removed by RL_FIRE_RAIN.
KnockbackGroup		- Knock back a whole skill group (by default, skill unit is knocked back by each unit).
HiddenTrap			- Hidden trap. See battle_config::traps_setting to enable this flag.

------------------

Status: Status Change that is associated to the skill. The status is used in association with the status.yml database.
