Implements clearbody, update changestatboost interface
continuous-integration/drone/push Build is failing
Details
continuous-integration/drone/push Build is failing
Details
This commit is contained in:
parent
1fdca38b29
commit
262152b81d
|
@ -65,7 +65,9 @@
|
|||
"effect": "DoubleSpeedInWeather",
|
||||
"parameters": ["HarshSunlight"]
|
||||
},
|
||||
"clear_body": {},
|
||||
"clear_body": {
|
||||
"effect": "PreventStatLowering"
|
||||
},
|
||||
"cloud_nine": {},
|
||||
"color_change": {},
|
||||
"comatose": {},
|
||||
|
|
|
@ -2,7 +2,7 @@ namespace Gen7 {
|
|||
class AngerPoint : PkmnScript {
|
||||
void OnIncomingHit(ExecutingMove@ move, Pokemon@ target, uint8 hit) override {
|
||||
if (move.GetHitData(target, hit).IsCritical){
|
||||
target.ChangeStatBoost(Statistic::Attack, 12);
|
||||
target.ChangeStatBoost(Statistic::Attack, 12, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace Gen7 {
|
|||
if (user.GetFlatStat(Statistic::Speed) > user.GetFlatStat(Statistic::HP)) {
|
||||
increaseStat = Statistic::Speed;
|
||||
}
|
||||
user.ChangeStatBoost(increaseStat, 1);
|
||||
user.ChangeStatBoost(increaseStat, 1, true);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,7 +3,7 @@ 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);
|
||||
pokemon.ChangeStatBoost(Statistic::SpecialDefense, 1, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
namespace Gen7 {
|
||||
[Ability effect=PreventDefLowering]
|
||||
class PreventDefLowering : PkmnScript {
|
||||
void PreventStatBoostChange(Pokemon@, Statistic stat, int8 amount, bool &inout prevent) override {
|
||||
if (stat == Statistic::Defense && amount < 0) {
|
||||
void PreventStatBoostChange(Pokemon@, Statistic stat, int8 amount, bool selfInflicted, bool &inout prevent) override {
|
||||
if (stat == Statistic::Defense && amount < 0 && !selfInflicted) {
|
||||
prevent = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
namespace Gen7 {
|
||||
[Ability effect=PreventStatLowering]
|
||||
class PreventStatLowering : PkmnScript {
|
||||
void PreventStatBoostChange(Pokemon@, Statistic stat, int8 amount, bool selfInflicted, bool &inout prevent) override {
|
||||
if (amount < 0 && !selfInflicted) {
|
||||
prevent = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,7 +1,8 @@
|
|||
shared abstract class PkmnScript {
|
||||
ref@ __owner;
|
||||
|
||||
ref@& GetOwner(){ return __owner; };
|
||||
const ref@& GetOwner(){ return __owner; };
|
||||
void SetOwner(ref@){};
|
||||
void OnInitialize(const BattleLibrary@, const narray<EffectParameter@>@){};
|
||||
void Stack(){};
|
||||
void OnRemove(){};
|
||||
|
@ -20,7 +21,7 @@ shared abstract class PkmnScript {
|
|||
void BlockCritical(ExecutingMove@, Pokemon@, uint8, bool &inout){};
|
||||
void OnIncomingHit(ExecutingMove@, Pokemon@, uint8){};
|
||||
void OnFaintingOpponent(ExecutingMove@, Pokemon@, uint8){};
|
||||
void PreventStatBoostChange(Pokemon@, Statistic, int8, bool &inout){};
|
||||
void PreventStatBoostChange(Pokemon@, Statistic, int8, bool, bool &inout){};
|
||||
void ModifyStatBoostChange(Pokemon@, Statistic, int8 &inout){};
|
||||
void PreventSecondaryEffects(ExecutingMove@, Pokemon@, uint8, bool &inout){};
|
||||
void OnSecondaryEffect(ExecutingMove@, Pokemon@, uint8){};
|
||||
|
|
|
@ -30,7 +30,7 @@ type Pokemon {
|
|||
void Damage(uint type, DamageSource source);
|
||||
void Heal(uint type);
|
||||
void OverrideActiveAbility(const string &in ability);
|
||||
void ChangeStatBoost(Statistic stat, int8 amount);
|
||||
void ChangeStatBoost(Statistic stat, int8 amount, bool selfInflicted);
|
||||
uint GetFlatStat(Statistic stat) const;
|
||||
uint GetBoostedStat(Statistic stat) const;
|
||||
uint GetBaseStat(Statistic stat) const;
|
||||
|
|
|
@ -7,7 +7,7 @@ namespace Gen7{
|
|||
return;
|
||||
}
|
||||
auto randStat = Statistic(target.Battle.Random.Get(1, 6));
|
||||
target.ChangeStatBoost(randStat, 2);
|
||||
target.ChangeStatBoost(randStat, 2, false);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ namespace Gen7 {
|
|||
void OnSecondaryEffect(ExecutingMove@ move, Pokemon@ target, uint8 hit) override {
|
||||
auto originalSpeed = move.User.GetBoostedStat(Statistic::Speed);
|
||||
auto originalWeight = move.User.Weight;
|
||||
move.User.ChangeStatBoost(Statistic::Speed, 2);
|
||||
move.User.ChangeStatBoost(Statistic::Speed, 2, true);
|
||||
if (move.User.GetBoostedStat(Statistic::Speed) != originalSpeed){
|
||||
// This setter function protects against going below 0.1
|
||||
move.User.Weight -= 100;
|
||||
|
|
|
@ -8,11 +8,11 @@ namespace Gen7 {
|
|||
}
|
||||
|
||||
void OnSecondaryEffect(ExecutingMove@ attack, Pokemon@ target, uint8 hit) override{
|
||||
target.ChangeStatBoost(Statistic::Attack, _amount);
|
||||
target.ChangeStatBoost(Statistic::Defense, _amount);
|
||||
target.ChangeStatBoost(Statistic::SpecialAttack, _amount);
|
||||
target.ChangeStatBoost(Statistic::SpecialDefense, _amount);
|
||||
target.ChangeStatBoost(Statistic::Speed, _amount);
|
||||
target.ChangeStatBoost(Statistic::Attack, _amount, attack.User is target);
|
||||
target.ChangeStatBoost(Statistic::Defense, _amount, attack.User is target);
|
||||
target.ChangeStatBoost(Statistic::SpecialAttack, _amount, attack.User is target);
|
||||
target.ChangeStatBoost(Statistic::SpecialDefense, _amount, attack.User is target);
|
||||
target.ChangeStatBoost(Statistic::Speed, _amount, attack.User is target);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ namespace Gen7 {
|
|||
}
|
||||
|
||||
void OnSecondaryEffect(ExecutingMove@ attack, Pokemon@ target, uint8 hit) override{
|
||||
target.ChangeStatBoost(Statistic::Attack, _amount);
|
||||
target.ChangeStatBoost(Statistic::Attack, _amount, attack.User is target);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ namespace Gen7 {
|
|||
}
|
||||
|
||||
void OnSecondaryEffect(ExecutingMove@ attack, Pokemon@ target, uint8 hit) override{
|
||||
target.ChangeStatBoost(Statistic::Defense, _amount);
|
||||
target.ChangeStatBoost(Statistic::Defense, _amount, attack.User is target);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ namespace Gen7 {
|
|||
}
|
||||
|
||||
void OnSecondaryEffect(ExecutingMove@ attack, Pokemon@ target, uint8 hit) override{
|
||||
target.ChangeStatBoost(Statistic::SpecialDefense, _amount);
|
||||
target.ChangeStatBoost(Statistic::SpecialDefense, _amount, attack.User is target);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ namespace Gen7 {
|
|||
}
|
||||
|
||||
void OnSecondaryEffect(ExecutingMove@ attack, Pokemon@ target, uint8 hit) override{
|
||||
target.ChangeStatBoost(Statistic::Speed, _amount);
|
||||
target.ChangeStatBoost(Statistic::Speed, _amount, attack.User is target);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue