58 lines
1.4 KiB
Go
58 lines
1.4 KiB
Go
package horse
|
|
|
|
type SkillID int32
|
|
|
|
// Skill is the internal data about a skill.
|
|
type Skill struct {
|
|
ID SkillID
|
|
Name string
|
|
Description string
|
|
Group int32
|
|
Rarity int8
|
|
GroupRate int8
|
|
GradeValue int32
|
|
WitCheck bool
|
|
Activations []Activation
|
|
SPCost int
|
|
IconID int
|
|
}
|
|
|
|
// Activation is the parameters controlling when a skill activates.
|
|
type Activation struct {
|
|
Precondition string
|
|
Condition string
|
|
Duration int // 1e4 scale
|
|
Cooldown int // 1e4 scale
|
|
Abilities []Ability
|
|
}
|
|
|
|
// Ability is an individual effect applied by a skill.
|
|
type Ability struct {
|
|
Type AbilityType
|
|
ValueUsage int8
|
|
Value int32
|
|
Target int8
|
|
TargetValue int32
|
|
}
|
|
|
|
type AbilityType int8
|
|
|
|
//go:generate go run golang.org/x/tools/cmd/stringer@v0.41.0 -type AbilityType -trimprefix Ability
|
|
const (
|
|
AbilityPassiveSpeed AbilityType = 1
|
|
AbilityPassiveStamina AbilityType = 2
|
|
AbilityPassivePower AbilityType = 3
|
|
AbilityPassiveGuts AbilityType = 4
|
|
AbilityPassiveWit AbilityType = 5
|
|
AbilityGreatEscape AbilityType = 6
|
|
AbilityVision AbilityType = 8
|
|
AbilityHP AbilityType = 9
|
|
AbilityGateDelay AbilityType = 10
|
|
AbilityFrenzy AbilityType = 13
|
|
AbilityCurrentSpeed AbilityType = 21
|
|
AbilityTargetSpeed AbilityType = 27
|
|
AbilityLaneSpeed AbilityType = 28
|
|
AbilityAccel AbilityType = 31
|
|
AbilityLaneChange AbilityType = 35
|
|
)
|