Implements ColorChange
This commit is contained in:
15
Scripts/Abilities/ColorChange.as
Normal file
15
Scripts/Abilities/ColorChange.as
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user