Implements ColorChange

This commit is contained in:
Deukhoofd 2022-03-12 13:05:26 +01:00
parent 262152b81d
commit 617c09b577
Signed by: Deukhoofd
GPG Key ID: F63E044490819F6F
4 changed files with 23 additions and 2 deletions

View File

@ -68,8 +68,12 @@
"clear_body": {
"effect": "PreventStatLowering"
},
"cloud_nine": {},
"color_change": {},
"cloud_nine": {
"effect": "SuppressWeather"
},
"color_change": {
"effect": "ColorChange"
},
"comatose": {},
"competitive": {},
"compound_eyes": {},

View File

@ -0,0 +1,15 @@
namespace Gen7 {
[Ability effect=ColorChange]
class ColorChange : PkmnScript {
void OnIncomingHit(ExecutingMove@ move, Pokemon@ target, uint8 hit) override{
// Color Change now activates after the last hit of a multi-strike move.
if (move.NumberOfHits - 1 != hit)
return;
// Color Change does not activate if the Pokémon is hit by a move of the same type as itself, even if the Pokémon is dual-typed
if (!target.HasType(move.UseMove.Type)){
// Color Change will change the Pokémon's own type to the type of the move that it was hit by
target.SetType(0, move.UseMove.Type);
}
}
}
}

View File

@ -2,6 +2,7 @@ type ExecutingMove {
Pokemon@ User { get const; };
LearnedMove@ Move { get const; };
MoveData@ UseMove { get const; };
uint8 NumberOfHits { get const; };
HitData@ GetHitData(Pokemon@ target, uint8 hit) const;
bool IsPokemonTarget(Pokemon@ pkmn) const;
}

View File

@ -21,6 +21,7 @@ type Pokemon {
const constString& ActiveAbility { get const; };
uint64 TypesLength { get const; };
uint8 GetType(uint64 index) const;
void SetType(uint8 index, uint8 type);
bool HasHeldItem(const constString &in name) const;
void SetHeldItem(const constString &in name);
void SetHeldItem(const Item@ item);