Implements core interfaces for better language server compiles.
This commit is contained in:
parent
5650fd004c
commit
d3262e924d
|
@ -0,0 +1,5 @@
|
||||||
|
shared interface BaseTurnChoice {
|
||||||
|
TurnChoiceKind Kind { get const; }
|
||||||
|
Pokemon@ User { get const; }
|
||||||
|
MoveTurnChoice@ opCast();
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
shared interface Battle {
|
||||||
|
const BattleLibrary@ Library { get const; }
|
||||||
|
bool CanUse(BaseTurnChoice@ choice);
|
||||||
|
bool CanFlee { get const; }
|
||||||
|
BattleRandom@ Random { get const; }
|
||||||
|
ChoiceQueue@ TurnQueue { get const; }
|
||||||
|
void AddVolatile(const constString &in name) const;
|
||||||
|
void RemoveVolatile(const constString &in name) const;
|
||||||
|
void SetWeather(const constString &in name) const;
|
||||||
|
void ClearWeather(const constString &in name) const;
|
||||||
|
const constString& GetWeatherName() const;
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
shared enum BattleItemCategory {
|
||||||
|
None = 0,
|
||||||
|
Healing = 1,
|
||||||
|
StatusHealing = 2,
|
||||||
|
CaptureDevice = 3,
|
||||||
|
Misc = 4,
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
shared interface BattleLibrary {
|
||||||
|
const LibrarySettings@ Settings { get const; }
|
||||||
|
const StaticLibrary@ StaticLibrary { get const; }
|
||||||
|
const SpeciesLibrary@ SpeciesLibrary { get const; }
|
||||||
|
const MoveLibrary@ MoveLibrary { get const; }
|
||||||
|
const ItemLibrary@ ItemLibrary { get const; }
|
||||||
|
const DamageLibrary@ DamageLibrary { get const; }
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
shared interface BattleRandom {
|
||||||
|
bool EffectChance(float chance, ExecutingMove@ move, Pokemon@ target);
|
||||||
|
int Get();
|
||||||
|
int Get(int max);
|
||||||
|
int Get(int min, int max);
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
shared interface ChoiceQueue {
|
||||||
|
bool MovePokemonChoiceNext(Pokemon@ target);
|
||||||
|
const BaseTurnChoice@ Peek() const;
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
shared interface DamageLibrary {
|
||||||
|
int GetDamage() const;
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
shared enum DamageSource {
|
||||||
|
AttackDamage = 0,
|
||||||
|
Struggle = 1,
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
shared interface EffectParameter {
|
||||||
|
EffectParameterType GetType() const;
|
||||||
|
bool AsBool() const;
|
||||||
|
int64 AsInt() const;
|
||||||
|
float AsFloat() const;
|
||||||
|
const constString& AsString() const;
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
shared enum EffectParameterType {
|
||||||
|
None = 0,
|
||||||
|
Bool = 1,
|
||||||
|
Int = 2,
|
||||||
|
Float = 3,
|
||||||
|
String = 4,
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
shared interface ExecutingMove {
|
||||||
|
HitData@ GetHitData(Pokemon@ target, uint8 hit) const;
|
||||||
|
bool IsPokemonTarget(Pokemon@ pkmn) const;
|
||||||
|
Pokemon@ User { get const; }
|
||||||
|
LearnedMove@ Move { get const; }
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
shared interface Forme {
|
||||||
|
const constString& Name { get const; }
|
||||||
|
float Weight { get const; }
|
||||||
|
float Height { get const; }
|
||||||
|
uint BaseExperience { get const; }
|
||||||
|
int TypeCount { get const; }
|
||||||
|
uint8 GetType(int index) const;
|
||||||
|
uint GetStatistic(Statistic stat) const;
|
||||||
|
const constString& GetAbility(bool hidden, uint8 index) const;
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
shared enum Gender {
|
||||||
|
Male = 0,
|
||||||
|
Female = 1,
|
||||||
|
Genderless = 2,
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
shared interface GrowthRate {
|
||||||
|
uint8 CalculateLevel(uint experience) const;
|
||||||
|
uint CalculateExperience(uint8 level) const;
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
shared interface GrowthRateLibrary {
|
||||||
|
uint8 CalculateLevel(const constString &in growthRate, uint experience) const;
|
||||||
|
uint CalculateExperience(const constString &in growthRate, uint8 experience) const;
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
shared interface HitData {
|
||||||
|
bool IsCritical { get const; }
|
||||||
|
uint8 BasePower { get const; }
|
||||||
|
float Effectiveness { get const; }
|
||||||
|
uint Damage { get const; }
|
||||||
|
uint8 Type { get const; }
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
shared interface Item {
|
||||||
|
const constString& Name { get const; }
|
||||||
|
ItemCategory Category { get const; }
|
||||||
|
BattleItemCategory BattleCategory { get const; }
|
||||||
|
int Price { get const; }
|
||||||
|
bool HasFlag(const constString &in flag) const;
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
shared enum ItemCategory {
|
||||||
|
Misc = 0,
|
||||||
|
Pokeball = 1,
|
||||||
|
Medicine = 2,
|
||||||
|
Berry = 3,
|
||||||
|
TM = 4,
|
||||||
|
VariantChanger = 5,
|
||||||
|
KeyItem = 6,
|
||||||
|
Mail = 7,
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
shared interface ItemLibrary {
|
||||||
|
const Item@ Get(const constString &in name) const;
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
shared interface LearnedMove {
|
||||||
|
const MoveData@ MoveData { get const; }
|
||||||
|
uint8 MaxUses { get const; }
|
||||||
|
uint8 RemainingUses { get const; }
|
||||||
|
Gender LearnMethod { get const; }
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
shared interface LibrarySettings {
|
||||||
|
uint8 MaximalLevel { get const; }
|
||||||
|
uint8 MaximalMoves { get const; }
|
||||||
|
uint16 ShinyRate { get const; }
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
shared enum MoveCategory {
|
||||||
|
Physical = 0,
|
||||||
|
Special = 1,
|
||||||
|
Status = 2,
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
shared interface MoveData {
|
||||||
|
const constString& Name { get const; }
|
||||||
|
uint8 Type { get const; }
|
||||||
|
MoveCategory Category { get const; }
|
||||||
|
uint8 BasePower { get const; }
|
||||||
|
uint8 Accuracy { get const; }
|
||||||
|
uint8 BaseUsages { get const; }
|
||||||
|
MoveTarget Target { get const; }
|
||||||
|
int8 Priority { get const; }
|
||||||
|
bool HasFlag(const constString &in flag) const;
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
shared enum MoveLearnMethod {
|
||||||
|
Unknown = 0,
|
||||||
|
Level = 1,
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
shared interface MoveLibrary {
|
||||||
|
const MoveData@ Get(const constString &in name) const;
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
shared enum MoveTarget {
|
||||||
|
Adjacent = 0,
|
||||||
|
AdjacentAlly = 1,
|
||||||
|
AdjacentAllySelf = 2,
|
||||||
|
AdjacentOpponent = 3,
|
||||||
|
All = 4,
|
||||||
|
AllAdjacent = 5,
|
||||||
|
AllAdjacentOpponent = 6,
|
||||||
|
AllAlly = 7,
|
||||||
|
AllOpponent = 8,
|
||||||
|
Any = 9,
|
||||||
|
RandomOpponent = 10,
|
||||||
|
Self = 11,
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
shared interface MoveTurnChoice {
|
||||||
|
TurnChoiceKind Kind { get const; }
|
||||||
|
Pokemon@ User { get const; }
|
||||||
|
LearnedMove@ Move { get const; }
|
||||||
|
int8 Priority { get const; }
|
||||||
|
BaseTurnChoice@ opImplCast();
|
||||||
|
}
|
|
@ -1,32 +1,34 @@
|
||||||
shared abstract class PkmnScript {
|
shared abstract class PkmnScript {
|
||||||
// CreatureLib methods
|
void OnInitialize(const EffectParameter@[] &in){};
|
||||||
void OnInitialize(const array<EffectParameter@> &in parameters){};
|
|
||||||
void Stack(){};
|
void Stack(){};
|
||||||
void OnRemove(){};
|
void OnRemove(){};
|
||||||
void PreventAttack(ExecutingMove@ attack, bool& result){};
|
void OnBeforeTurn(BaseTurnChoice@){};
|
||||||
void FailAttack(ExecutingMove@ attack, bool& result){};
|
void ChangeAttack(MoveTurnChoice@, constString &inout){};
|
||||||
void StopBeforeAttack(ExecutingMove@ attack, bool& result){};
|
void PreventAttack(ExecutingMove@, bool &inout){};
|
||||||
void OnBeforeAttack(ExecutingMove@ attack){};
|
void FailAttack(ExecutingMove@, bool &inout){};
|
||||||
void FailIncomingAttack(ExecutingMove@ attack, Pokemon@ target, bool& result){};
|
void StopBeforeAttack(ExecutingMove@, bool &inout){};
|
||||||
void IsInvulnerable(ExecutingMove@ attack, Pokemon@ target, bool& result){};
|
void OnBeforeAttack(ExecutingMove@){};
|
||||||
void OnAttackMiss(ExecutingMove@ attack, Pokemon@ target){};
|
void FailIncomingAttack(ExecutingMove@, Pokemon@, bool &inout){};
|
||||||
void ChangeAttackType(ExecutingMove@ attack, Pokemon@ target, uint8 hit, uint8& outType){};
|
void IsInvulnerable(ExecutingMove@, Pokemon@, bool &inout){};
|
||||||
void OnStatusMove(ExecutingMove@ attack, Pokemon@ target, uint8 hit){};
|
void OnAttackMiss(ExecutingMove@, Pokemon@){};
|
||||||
void PreventSecondaryEffects(ExecutingMove@ attack, Pokemon@ target, uint8 hit, bool& outResult){};
|
void ChangeAttackType(ExecutingMove@, Pokemon@, uint8, uint8 &inout){};
|
||||||
void OnSecondaryEffect(ExecutingMove@ attack, Pokemon@ target, uint8 hit){};
|
void ChangeEffectiveness(ExecutingMove@, Pokemon@, uint8, float &inout){};
|
||||||
void OnAfterHits(ExecutingMove@ attack, Pokemon@ target){};
|
void PreventSecondaryEffects(ExecutingMove@, Pokemon@, uint8, bool &inout){};
|
||||||
|
void OnSecondaryEffect(ExecutingMove@, Pokemon@, uint8){};
|
||||||
void ModifyEffectChance(ExecutingMove@ attack, Pokemon@ target, float& chance){};
|
void OnAfterHits(ExecutingMove@, Pokemon@){};
|
||||||
void ModifyIncomingEffectChance(ExecutingMove@ attack, Pokemon@ target, float& chance){};
|
void PreventSelfSwitch(SwitchTurnChoice@, bool &inout){};
|
||||||
|
void ModifyEffectChance(ExecutingMove@, Pokemon@, float &inout){};
|
||||||
void OverrideBasePower(ExecutingMove@ attack, Pokemon@ target, uint8 hit, uint8& chance){};
|
void ModifyIncomingEffectChance(ExecutingMove@, Pokemon@, float &inout){};
|
||||||
void ChangeDamageStatsUser(ExecutingMove@ attack, Pokemon@ target, uint8 hit, Pokemon@& user){};
|
void OverrideBasePower(ExecutingMove@, Pokemon@, uint8, uint8 &inout){};
|
||||||
void BypassDefensiveStat(ExecutingMove@ attack, Pokemon@ target, uint8 hit, bool& bypass){};
|
void ChangeDamageStatsUser(ExecutingMove@, Pokemon@, uint8, Pokemon@ &inout){};
|
||||||
void BypassOffensiveStat(ExecutingMove@ attack, Pokemon@ target, uint8 hit, bool& bypass){};
|
void BypassDefensiveStat(ExecutingMove@, Pokemon@, uint8, bool &inout){};
|
||||||
void ModifyStatModifier(ExecutingMove@ attack, Pokemon@ target, uint8 hit, float& modifier){};
|
void BypassOffensiveStat(ExecutingMove@, Pokemon@, uint8, bool &inout){};
|
||||||
void ModifyDamageModifier(ExecutingMove@ attack, Pokemon@ target, uint8 hit, float& modifier){};
|
void ModifyStatModifier(ExecutingMove@, Pokemon@, uint8, float &inout){};
|
||||||
void OverrideDamage(ExecutingMove@ attack, Pokemon@ target, uint8 hit, int& damage){};
|
void ModifyDamageModifier(ExecutingMove@, Pokemon@, uint8, float &inout){};
|
||||||
|
void OverrideDamage(ExecutingMove@, Pokemon@, uint8, uint &inout){};
|
||||||
// PkmnLib methods
|
void ModifyCriticalStage(ExecutingMove@, Pokemon@, uint8, uint8 &inout){};
|
||||||
void ModifyCriticalStage(ExecutingMove@ attack, Pokemon@ target, uint8 hit, uint8& critStage){};
|
void OverrideCriticalModifier(ExecutingMove@, Pokemon@, uint8, float &inout){};
|
||||||
|
void OverrideSTABModifier(ExecutingMove@, Pokemon@, uint8, float &inout){};
|
||||||
|
void ModifyExperienceGain(Pokemon@, Pokemon@, uint &inout){};
|
||||||
|
void DoesShareExperience(Pokemon@, Pokemon@, bool &inout){};
|
||||||
}
|
}
|
|
@ -1,38 +1,33 @@
|
||||||
interface Pokemon{
|
shared interface Pokemon {
|
||||||
const Species@ Species { get const; }
|
const Species@ Species { get const; }
|
||||||
const Forme@ Forme { get const; }
|
const Forme@ Forme { get const; }
|
||||||
const Species@ DisplaySpecies { get const; }
|
|
||||||
const Forme@ DisplayForme { get const; }
|
|
||||||
|
|
||||||
uint8 Level { get const; }
|
uint8 Level { get const; }
|
||||||
uint32 Experience { get const; }
|
uint Experience { get const; }
|
||||||
Gender Gender { get const; }
|
Gender Gender { get const; }
|
||||||
uint8 Coloring { get const; }
|
uint8 Coloring { get const; }
|
||||||
bool Shiny { get const; }
|
bool Shiny { get const; }
|
||||||
const Item@ HeldItem { get const; }
|
const Item@ HeldItem { get const; }
|
||||||
uint32 CurrentHealth{ get const; }
|
bool HasHeldItem(const constString &in name) const;
|
||||||
const string& Nickname { get const; }
|
|
||||||
const string& ActiveAbility { get const; }
|
|
||||||
bool IsFainted { get const; }
|
|
||||||
bool HasType(uint8) const;
|
|
||||||
uint32 MaxHealth{ get const; };
|
|
||||||
const Species@ DisplaySpecies { get const; }
|
|
||||||
|
|
||||||
uint8[]@ GetTypes() const;
|
|
||||||
LearnedMove@[]@ GetMoves() const
|
|
||||||
void ChangeStatBoost(Statistic stat, int8 amount);
|
|
||||||
uint32 GetFlatStat(Statistic stat) const;
|
|
||||||
uint32 GetBoostedStat(Statistic stat) const;
|
|
||||||
uint32 GetBaseStat(Statistic stat) const;
|
|
||||||
int8 GetStatBoost(Statistic stat) const;
|
|
||||||
|
|
||||||
bool HasHeldItem(const string &in name) const;
|
|
||||||
|
|
||||||
void Damage(uint32 amount, DamageSource source);
|
|
||||||
void Heal(uint32 amount);
|
|
||||||
void OverrideActiveAbility(const string &in ability);
|
|
||||||
void SetHeldItem(const string &in name);
|
void SetHeldItem(const string &in name);
|
||||||
void SetHeldItem(const Item@ name);
|
void SetHeldItem(const Item@ item);
|
||||||
|
uint CurrentHealth { get const; }
|
||||||
Battle Battle{ get const; }
|
const string& Nickname { get const; }
|
||||||
|
const constString& ActiveAbility { get const; }
|
||||||
|
bool IsFainted { get const; }
|
||||||
|
bool HasType(uint8 type) const;
|
||||||
|
uint MaxHealth { get const; }
|
||||||
|
void Damage(uint type, DamageSource source);
|
||||||
|
void Heal(uint type);
|
||||||
|
void OverrideActiveAbility(const string &in ability);
|
||||||
|
LearnedMove@[]@ GetMoves() const;
|
||||||
|
void ChangeStatBoost(Statistic stat, int8 amount);
|
||||||
|
const Species@ DisplaySpecies { get const; }
|
||||||
|
const Species@ DisplayForme { get const; }
|
||||||
|
uint GetFlatStat(Statistic stat) const;
|
||||||
|
uint GetBoostedStat(Statistic stat) const;
|
||||||
|
uint GetBaseStat(Statistic stat) const;
|
||||||
|
int8 GetStatBoost(Statistic stat) const;
|
||||||
|
void AddVolatile(const constString &in name) const;
|
||||||
|
void RemoveVolatile(const constString &in name) const;
|
||||||
|
const Battle@ Battle { get const; }
|
||||||
}
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
shared interface Species {
|
||||||
|
const constString& Name { get const; }
|
||||||
|
uint16 Id { get const; }
|
||||||
|
float GenderRate { get const; }
|
||||||
|
uint8 CaptureRate { get const; }
|
||||||
|
Gender GetRandomGender() const;
|
||||||
|
const Forme@ GetForme(string key) const;
|
||||||
|
const Forme@ DefaultForme { get const; }
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
shared interface SpeciesLibrary {
|
||||||
|
const Species@ Get(const constString &in name) const;
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
shared interface StaticLibrary {
|
||||||
|
const LibrarySettings@ Settings { get const; }
|
||||||
|
const SpeciesLibrary@ SpeciesLibrary { get const; }
|
||||||
|
const MoveLibrary@ MoveLibrary { get const; }
|
||||||
|
const ItemLibrary@ ItemLibrary { get const; }
|
||||||
|
const GrowthRateLibrary@ GrowthRateLibrary { get const; }
|
||||||
|
const TypeLibrary@ TypeLibrary { get const; }
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
shared enum Statistic {
|
||||||
|
HP = 0,
|
||||||
|
Attack = 1,
|
||||||
|
Defense = 2,
|
||||||
|
SpecialAttack = 3,
|
||||||
|
SpecialDefense = 4,
|
||||||
|
Speed = 5,
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
shared interface SwitchTurnChoice {
|
||||||
|
TurnChoiceKind Kind { get const; }
|
||||||
|
Pokemon@ User { get const; }
|
||||||
|
Pokemon@ NewPokemon { get const; }
|
||||||
|
MoveTurnChoice@ opCast();
|
||||||
|
BaseTurnChoice@ opImplCast();
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
shared enum TurnChoiceKind {
|
||||||
|
Pass = 0,
|
||||||
|
Attack = 1,
|
||||||
|
Item = 2,
|
||||||
|
Switch = 3,
|
||||||
|
Flee = 4,
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
shared interface TypeLibrary {
|
||||||
|
uint8 GetTypeId(const constString &in name) const;
|
||||||
|
float GetSingleEffectiveness(uint8 attacking, uint8 defensive) const;
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
shared interface constString {
|
||||||
|
bool opEquals(const constString &in) const;
|
||||||
|
bool opEquals(const string &in) const;
|
||||||
|
uint opImplConv();
|
||||||
|
}
|
|
@ -3,7 +3,7 @@ namespace Gen7 {
|
||||||
shared class ChangeTargetDefense : PkmnScript{
|
shared class ChangeTargetDefense : PkmnScript{
|
||||||
int8 _amount;
|
int8 _amount;
|
||||||
|
|
||||||
void OnInitialize(const array<EffectParameter@> &in parameters) override{
|
void OnInitialize(const EffectParameter@[] &in parameters) override{
|
||||||
_amount = int8(parameters[0].AsInt());
|
_amount = int8(parameters[0].AsInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue