Adds more abilities
This commit is contained in:
parent
57e5e03dc3
commit
7d6017dfeb
|
@ -18,11 +18,21 @@
|
||||||
"anger_point": {
|
"anger_point": {
|
||||||
"effect": "AngerPoint"
|
"effect": "AngerPoint"
|
||||||
},
|
},
|
||||||
"anticipation": {},
|
"anticipation": {
|
||||||
"arena_trap": {},
|
"effect": "Anticipation"
|
||||||
"aroma_veil": {},
|
},
|
||||||
"aura_break": {},
|
"arena_trap": {
|
||||||
"bad_dreams": {},
|
"effect": "ArenaTrap"
|
||||||
|
},
|
||||||
|
"aroma_veil": {
|
||||||
|
"effect": "AromaVeil"
|
||||||
|
},
|
||||||
|
"aura_break": {
|
||||||
|
"effect": "AuraBreal"
|
||||||
|
},
|
||||||
|
"bad_dreams": {
|
||||||
|
"effect": "BadDreams"
|
||||||
|
},
|
||||||
"battery": {},
|
"battery": {},
|
||||||
"battle_armor": {},
|
"battle_armor": {},
|
||||||
"battle_bond": {},
|
"battle_bond": {},
|
||||||
|
|
15
Moves.json
15
Moves.json
|
@ -2052,7 +2052,8 @@
|
||||||
"protect",
|
"protect",
|
||||||
"reflectable",
|
"reflectable",
|
||||||
"mirror",
|
"mirror",
|
||||||
"ignore-substitute"
|
"ignore-substitute",
|
||||||
|
"limit_move_choice"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -2635,7 +2636,8 @@
|
||||||
"reflectable",
|
"reflectable",
|
||||||
"mirror",
|
"mirror",
|
||||||
"ignore-substitute",
|
"ignore-substitute",
|
||||||
"mental"
|
"mental",
|
||||||
|
"limit_move_choice"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -4068,7 +4070,8 @@
|
||||||
"flags": [
|
"flags": [
|
||||||
"protect",
|
"protect",
|
||||||
"reflectable",
|
"reflectable",
|
||||||
"mirror"
|
"mirror",
|
||||||
|
"limit_move_choice"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -9309,7 +9312,8 @@
|
||||||
"reflectable",
|
"reflectable",
|
||||||
"mirror",
|
"mirror",
|
||||||
"ignore-substitute",
|
"ignore-substitute",
|
||||||
"mental"
|
"mental",
|
||||||
|
"limit_move_choice"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -9612,7 +9616,8 @@
|
||||||
"reflectable",
|
"reflectable",
|
||||||
"mirror",
|
"mirror",
|
||||||
"ignore-substitute",
|
"ignore-substitute",
|
||||||
"mental"
|
"mental",
|
||||||
|
"limit_move_choice"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
namespace Gen7 {
|
namespace Gen7 {
|
||||||
|
[Ability effect=ArenaTrap]
|
||||||
class ArenaTrap : PkmnScript {
|
class ArenaTrap : PkmnScript {
|
||||||
void PreventOpponentRunAway(FleeTurnChoice@ choice, bool &inout block){
|
void PreventOpponentRunAway(FleeTurnChoice@ choice, bool &inout block){
|
||||||
if (block) return;
|
if (block) return;
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
namespace Gen7 {
|
||||||
|
[Ability effect=AromaVeil]
|
||||||
|
class AromaVeil {
|
||||||
|
void PreventSecondaryEffects(ExecutingMove@ move, Pokemon@, uint8, bool &inout prevent){
|
||||||
|
// TODO: This only prevents disabling moves, not other things that block move uses.
|
||||||
|
if (move.UseMove.HasFlag("limit_move_choice")){
|
||||||
|
prevent = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
namespace Gen7 {
|
||||||
|
class AuraBreakAbility : PkmnScript {
|
||||||
|
void OnSecondaryEffect(ExecutingMove@, Pokemon@ target, uint8){
|
||||||
|
auto battle = target.Battle;
|
||||||
|
battle.RemoveVolatile("FairyAura");
|
||||||
|
battle.RemoveVolatile("DarkAura");
|
||||||
|
battle.AddVolatile("AuraBreak");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
namespace Gen7 {
|
||||||
|
[Ability effect=BadDreams]
|
||||||
|
class BadDreams : PkmnScript {
|
||||||
|
void OnEndTurn(){
|
||||||
|
auto owner = cast<Pokemon@>(GetOwner());
|
||||||
|
auto ownerSide = owner.BattleSide;
|
||||||
|
auto battle = owner.Battle;
|
||||||
|
if (battle is null) return;
|
||||||
|
for (uint64 i = 0; i < battle.Sides.Length; i++){
|
||||||
|
auto side = battle.Sides[i];
|
||||||
|
if (side is ownerSide){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
for (uint64 j = 0; j < side.Pokemon.Length; j++){
|
||||||
|
auto opponent = side.Pokemon[j];
|
||||||
|
if (opponent is null || opponent.IsFainted){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (opponent.Status == "Sleep"){
|
||||||
|
opponent.Damage(uint(opponent.MaxHealth / 8), DamageSource::Misc);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
namespace Gen7 {
|
||||||
|
class AuraBreak : PkmnScript {
|
||||||
|
void OverrideBasePower(ExecutingMove@ move, Pokemon@, uint8, uint8 &inout power){
|
||||||
|
auto typeLib = move.User.Battle.Library.StaticLibrary.TypeLibrary;
|
||||||
|
auto fairyType = typeLib.GetTypeId("fairy");
|
||||||
|
auto darkType = typeLib.GetTypeId("dark");
|
||||||
|
if (move.UseMove.Type == fairyType || move.UseMove.Type == darkType){
|
||||||
|
power = uint8(power * 0.75f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
type narray<T> {
|
type narray<T> {
|
||||||
uint64 Length { get const; };
|
uint64 Length { get const; };
|
||||||
const T@ At(uint64 index) const;
|
T@ At(uint64 index) const;
|
||||||
const T@ get_opIndex(uint64) const property;
|
T@ get_opIndex(uint64) const property;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue