More abilities
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
8d6ee4008c
commit
669a0094d5
|
@ -33,7 +33,9 @@
|
|||
"bad_dreams": {
|
||||
"effect": "BadDreams"
|
||||
},
|
||||
"battery": {},
|
||||
"battery": {
|
||||
"effect": "Battery"
|
||||
},
|
||||
"battle_armor": {},
|
||||
"battle_bond": {},
|
||||
"beast_boost": {},
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
namespace Gen7 {
|
||||
[Ability effect=Battery]
|
||||
class BatteryAbility : PkmnScript {
|
||||
void OnSwitchIn(Pokemon@ pokemon) override {
|
||||
pokemon.BattleSide.AddVolatile("Battery");
|
||||
}
|
||||
|
||||
void OnRemove() override {
|
||||
cast<Pokemon@>(GetOwner()).BattleSide.RemoveVolatile("Battery");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
namespace Gen7 {
|
||||
[Ability effect=BattleArmor]
|
||||
class BattleArmor : PkmnScript {
|
||||
void BlockCritical(ExecutingMove@, Pokemon@, uint8, bool &inout blockCrit) override {
|
||||
blockCrit = true;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
namespace Gen7 {
|
||||
[Ability effect=BattleBond]
|
||||
class BattleBond : PkmnScript {
|
||||
void OnFaintingOpponent(ExecutingMove@ move, Pokemon@, uint8) override {
|
||||
if (move.User.Species.Name == "greninja"){
|
||||
move.User.ChangeForme("ash");
|
||||
}
|
||||
}
|
||||
|
||||
void OverrideBasePower(ExecutingMove@ move, Pokemon@, uint8, uint8 &inout damage) override {
|
||||
if (move.User.Forme.Name == "ash" && move.UseMove.Name == "water_shuriken"){
|
||||
damage = 20;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
namespace Gen7 {
|
||||
class BeastBoost : PkmnScript {
|
||||
void OnFaintingOpponent(ExecutingMove@ move, Pokemon@, uint8) override {
|
||||
Statistic increaseStat = Statistic::HP;
|
||||
auto user = move.User;
|
||||
if (user.GetFlatStat(Statistic::Attack) > user.GetFlatStat(Statistic::HP) &&
|
||||
user.GetFlatStat(Statistic::Attack) > user.GetFlatStat(Statistic::Defense) &&
|
||||
user.GetFlatStat(Statistic::Attack) > user.GetFlatStat(Statistic::SpecialAttack) &&
|
||||
user.GetFlatStat(Statistic::Attack) > user.GetFlatStat(Statistic::SpecialDefense) &&
|
||||
user.GetFlatStat(Statistic::Attack) > user.GetFlatStat(Statistic::Speed)) {
|
||||
increaseStat = Statistic::Attack;
|
||||
}
|
||||
if (user.GetFlatStat(Statistic::Defense) > user.GetFlatStat(Statistic::HP) &&
|
||||
user.GetFlatStat(Statistic::Defense) > user.GetFlatStat(Statistic::SpecialAttack) &&
|
||||
user.GetFlatStat(Statistic::Defense) > user.GetFlatStat(Statistic::SpecialDefense) &&
|
||||
user.GetFlatStat(Statistic::Defense) > user.GetFlatStat(Statistic::Speed)) {
|
||||
increaseStat = Statistic::Defense;
|
||||
}
|
||||
if (user.GetFlatStat(Statistic::SpecialAttack) > user.GetFlatStat(Statistic::HP) &&
|
||||
user.GetFlatStat(Statistic::SpecialAttack) > user.GetFlatStat(Statistic::SpecialDefense) &&
|
||||
user.GetFlatStat(Statistic::SpecialAttack) > user.GetFlatStat(Statistic::Speed)) {
|
||||
increaseStat = Statistic::SpecialAttack;
|
||||
}
|
||||
if (user.GetFlatStat(Statistic::SpecialDefense) > user.GetFlatStat(Statistic::HP) &&
|
||||
user.GetFlatStat(Statistic::SpecialDefense) > user.GetFlatStat(Statistic::Speed)) {
|
||||
increaseStat = Statistic::SpecialDefense;
|
||||
}
|
||||
if (user.GetFlatStat(Statistic::Speed) > user.GetFlatStat(Statistic::HP)) {
|
||||
increaseStat = Statistic::Speed;
|
||||
}
|
||||
user.ChangeStatBoost(increaseStat, 1);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
namespace Gen7 {
|
||||
class Berserk : PkmnScript {
|
||||
void OnDamage(Pokemon@ pokemon, DamageSource, uint old, uint new) override {
|
||||
if (float(old) / pokemon.MaxHealth >= 0.5f && float(new) / pokemon.MaxHealth < 0.5f) {
|
||||
pokemon.ChangeStatBoost(Statistic::SpecialDefense, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
namespace Gen7 {
|
||||
[Side effect=Battery]
|
||||
class BatteryEffect : PkmnScript {
|
||||
int num = 1;
|
||||
|
||||
void Stack() override {
|
||||
num++;
|
||||
}
|
||||
|
||||
void Unstack() {
|
||||
num--;
|
||||
if (num == 0){
|
||||
cast<BattleSide@>(GetOwner()).RemoveVolatile("Battery");
|
||||
}
|
||||
}
|
||||
|
||||
void OverrideBasePower(ExecutingMove@ move, Pokemon@, uint8, uint8 &inout power) override {
|
||||
if (move.UseMove.Category == MoveCategory::Special) {
|
||||
auto p = power * 1.3f;
|
||||
if (p > 255) p = 255;
|
||||
power = uint8(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -17,7 +17,9 @@ shared abstract class PkmnScript {
|
|||
void OnAttackMiss(ExecutingMove@, Pokemon@){};
|
||||
void ChangeAttackType(ExecutingMove@, Pokemon@, uint8, uint8 &inout){};
|
||||
void ChangeEffectiveness(ExecutingMove@, Pokemon@, uint8, float &inout){};
|
||||
void BlockCritical(ExecutingMove@, Pokemon@, uint8, bool &inout){};
|
||||
void OnIncomingHit(ExecutingMove@, Pokemon@, uint8){};
|
||||
void OnFaintingOpponent(ExecutingMove@, Pokemon@, uint8){};
|
||||
void PreventSecondaryEffects(ExecutingMove@, Pokemon@, uint8, bool &inout){};
|
||||
void OnSecondaryEffect(ExecutingMove@, Pokemon@, uint8){};
|
||||
void OnAfterHits(ExecutingMove@, Pokemon@){};
|
||||
|
@ -39,6 +41,7 @@ shared abstract class PkmnScript {
|
|||
void PreventOpponentRunAway(FleeTurnChoice@, bool &inout){};
|
||||
void PreventOpponentSwitch(SwitchTurnChoice@, bool &inout){};
|
||||
void OnEndTurn(){};
|
||||
void OnDamage(Pokemon@, DamageSource, uint, uint){};
|
||||
void OnFaint(Pokemon@, DamageSource){};
|
||||
void ModifyCriticalStage(ExecutingMove@, Pokemon@, uint8, uint8 &inout){};
|
||||
void OverrideCriticalModifier(ExecutingMove@, Pokemon@, uint8, float &inout){};
|
||||
|
|
|
@ -39,5 +39,6 @@ type Pokemon {
|
|||
ref@ AddVolatile(const constString &in name);
|
||||
void RemoveVolatile(const constString &in name) const;
|
||||
void ClearStatus() const;
|
||||
void SetStatus(const constString &inout name);
|
||||
void SetStatus(const constString &in name);
|
||||
void ChangeForme(const constString &in name);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
TESTERVERSION=0.0.11
|
||||
TESTERVERSION=0.0.12
|
||||
|
||||
# Get the release information from the api for the specified version
|
||||
curl -X GET "https://git.p-epsilon.com/api/v1/repos/Deukhoofd/PokemonScriptTester/releases/tags/$TESTERVERSION" -H "accept: application/json" |
|
||||
|
|
Loading…
Reference in New Issue