|
|
|
|
|
|
|
|
|
|
|
import { |
|
PicletDefinition, |
|
Move, |
|
BaseStats, |
|
SpecialAbility, |
|
AttackType, |
|
PicletType |
|
} from './types'; |
|
|
|
|
|
export const LOW_TIER_STATS: BaseStats = { |
|
hp: 80, |
|
attack: 65, |
|
defense: 60, |
|
speed: 55 |
|
}; |
|
|
|
export const MEDIUM_TIER_STATS: BaseStats = { |
|
hp: 100, |
|
attack: 80, |
|
defense: 75, |
|
speed: 70 |
|
}; |
|
|
|
export const HIGH_TIER_STATS: BaseStats = { |
|
hp: 120, |
|
attack: 100, |
|
defense: 90, |
|
speed: 85 |
|
}; |
|
|
|
|
|
export const BASIC_TACKLE: Move = { |
|
name: "Tackle", |
|
type: AttackType.NORMAL, |
|
power: 40, |
|
accuracy: 100, |
|
pp: 35, |
|
priority: 0, |
|
flags: ['contact'], |
|
effects: [{ |
|
type: 'damage', |
|
target: 'opponent', |
|
amount: 'normal' |
|
}] |
|
}; |
|
|
|
export const FLAME_BURST: Move = { |
|
name: "Flame Burst", |
|
type: AttackType.SPACE, |
|
power: 70, |
|
accuracy: 100, |
|
pp: 15, |
|
priority: 0, |
|
flags: ['explosive'], |
|
effects: [{ |
|
type: 'damage', |
|
target: 'opponent', |
|
amount: 'normal' |
|
}] |
|
}; |
|
|
|
export const HEALING_LIGHT: Move = { |
|
name: "Healing Light", |
|
type: AttackType.SPACE, |
|
power: 0, |
|
accuracy: 100, |
|
pp: 10, |
|
priority: 0, |
|
flags: [], |
|
effects: [{ |
|
type: 'heal', |
|
target: 'self', |
|
amount: 'medium' |
|
}] |
|
}; |
|
|
|
export const POWER_UP: Move = { |
|
name: "Power Up", |
|
type: AttackType.NORMAL, |
|
power: 0, |
|
accuracy: 100, |
|
pp: 20, |
|
priority: 0, |
|
flags: [], |
|
effects: [{ |
|
type: 'modifyStats', |
|
target: 'self', |
|
stats: { attack: 'increase' } |
|
}] |
|
}; |
|
|
|
export const BERSERKER_END: Move = { |
|
name: "Berserker's End", |
|
type: AttackType.BEAST, |
|
power: 80, |
|
accuracy: 90, |
|
pp: 5, |
|
priority: 0, |
|
flags: ['contact', 'reckless', 'sacrifice'], |
|
effects: [ |
|
{ |
|
type: 'damage', |
|
target: 'opponent', |
|
amount: 'normal' |
|
}, |
|
{ |
|
type: 'damage', |
|
target: 'opponent', |
|
amount: 'strong', |
|
condition: 'ifLowHp' |
|
}, |
|
{ |
|
type: 'modifyStats', |
|
target: 'self', |
|
stats: { defense: 'greatly_decrease' }, |
|
condition: 'ifLowHp' |
|
} |
|
] |
|
}; |
|
|
|
export const TOXIC_STING: Move = { |
|
name: "Toxic Sting", |
|
type: AttackType.BUG, |
|
power: 30, |
|
accuracy: 100, |
|
pp: 20, |
|
priority: 0, |
|
flags: ['contact'], |
|
effects: [ |
|
{ |
|
type: 'damage', |
|
target: 'opponent', |
|
amount: 'weak' |
|
}, |
|
{ |
|
type: 'applyStatus', |
|
target: 'opponent', |
|
status: 'poison' |
|
} |
|
] |
|
}; |
|
|
|
|
|
export const REGENERATOR: SpecialAbility = { |
|
name: "Regenerator", |
|
description: "Restores HP when switching out", |
|
triggers: [{ |
|
event: "onSwitchOut", |
|
effects: [{ |
|
type: 'heal', |
|
target: 'self', |
|
amount: 'small' |
|
}] |
|
}] |
|
}; |
|
|
|
export const FLAME_BODY: SpecialAbility = { |
|
name: "Flame Body", |
|
description: "Contact moves may burn the attacker", |
|
triggers: [{ |
|
event: "onContactDamage", |
|
condition: 'ifLucky50', |
|
effects: [{ |
|
type: 'applyStatus', |
|
target: 'attacker', |
|
status: 'burn' |
|
}] |
|
}] |
|
}; |
|
|
|
export const SPEED_BOOST: SpecialAbility = { |
|
name: "Speed Boost", |
|
description: "Speed increases each turn", |
|
triggers: [{ |
|
event: "onTurnEnd", |
|
effects: [{ |
|
type: 'modifyStats', |
|
target: 'self', |
|
stats: { speed: 'increase' } |
|
}] |
|
}] |
|
}; |
|
|
|
|
|
export const STELLAR_WOLF: PicletDefinition = { |
|
name: "Stellar Wolf", |
|
description: "A cosmic predator that hunts among the stars", |
|
tier: 'medium', |
|
primaryType: PicletType.SPACE, |
|
secondaryType: PicletType.BEAST, |
|
baseStats: MEDIUM_TIER_STATS, |
|
nature: "Brave", |
|
specialAbility: FLAME_BODY, |
|
movepool: [BASIC_TACKLE, FLAME_BURST, HEALING_LIGHT, POWER_UP] |
|
}; |
|
|
|
export const TOXIC_CRAWLER: PicletDefinition = { |
|
name: "Toxic Crawler", |
|
description: "A venomous arthropod with deadly precision", |
|
tier: 'low', |
|
primaryType: PicletType.BUG, |
|
baseStats: LOW_TIER_STATS, |
|
nature: "Careful", |
|
specialAbility: SPEED_BOOST, |
|
movepool: [BASIC_TACKLE, TOXIC_STING, POWER_UP] |
|
}; |
|
|
|
export const BERSERKER_BEAST: PicletDefinition = { |
|
name: "Berserker Beast", |
|
description: "A wild creature that fights with reckless abandon", |
|
tier: 'high', |
|
primaryType: PicletType.BEAST, |
|
baseStats: HIGH_TIER_STATS, |
|
nature: "Reckless", |
|
specialAbility: REGENERATOR, |
|
movepool: [BASIC_TACKLE, BERSERKER_END, HEALING_LIGHT, POWER_UP] |
|
}; |
|
|
|
export const AQUA_GUARDIAN: PicletDefinition = { |
|
name: "Aqua Guardian", |
|
description: "A protective water spirit", |
|
tier: 'medium', |
|
primaryType: PicletType.AQUATIC, |
|
baseStats: MEDIUM_TIER_STATS, |
|
nature: "Calm", |
|
specialAbility: REGENERATOR, |
|
movepool: [BASIC_TACKLE, HEALING_LIGHT, POWER_UP] |
|
}; |