Implements ColorChange
This commit is contained in:
parent
262152b81d
commit
617c09b577
|
@ -68,8 +68,12 @@
|
||||||
"clear_body": {
|
"clear_body": {
|
||||||
"effect": "PreventStatLowering"
|
"effect": "PreventStatLowering"
|
||||||
},
|
},
|
||||||
"cloud_nine": {},
|
"cloud_nine": {
|
||||||
"color_change": {},
|
"effect": "SuppressWeather"
|
||||||
|
},
|
||||||
|
"color_change": {
|
||||||
|
"effect": "ColorChange"
|
||||||
|
},
|
||||||
"comatose": {},
|
"comatose": {},
|
||||||
"competitive": {},
|
"competitive": {},
|
||||||
"compound_eyes": {},
|
"compound_eyes": {},
|
||||||
|
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,6 +2,7 @@ type ExecutingMove {
|
||||||
Pokemon@ User { get const; };
|
Pokemon@ User { get const; };
|
||||||
LearnedMove@ Move { get const; };
|
LearnedMove@ Move { get const; };
|
||||||
MoveData@ UseMove { get const; };
|
MoveData@ UseMove { get const; };
|
||||||
|
uint8 NumberOfHits { get const; };
|
||||||
HitData@ GetHitData(Pokemon@ target, uint8 hit) const;
|
HitData@ GetHitData(Pokemon@ target, uint8 hit) const;
|
||||||
bool IsPokemonTarget(Pokemon@ pkmn) const;
|
bool IsPokemonTarget(Pokemon@ pkmn) const;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ type Pokemon {
|
||||||
const constString& ActiveAbility { get const; };
|
const constString& ActiveAbility { get const; };
|
||||||
uint64 TypesLength { get const; };
|
uint64 TypesLength { get const; };
|
||||||
uint8 GetType(uint64 index) const;
|
uint8 GetType(uint64 index) const;
|
||||||
|
void SetType(uint8 index, uint8 type);
|
||||||
bool HasHeldItem(const constString &in name) const;
|
bool HasHeldItem(const constString &in name) const;
|
||||||
void SetHeldItem(const constString &in name);
|
void SetHeldItem(const constString &in name);
|
||||||
void SetHeldItem(const Item@ item);
|
void SetHeldItem(const Item@ item);
|
||||||
|
|
Loading…
Reference in New Issue