Fixed bugs with Metal Burst and Powder

This commit is contained in:
Maruno17
2020-09-20 15:14:27 +01:00
parent 301a4c9b4f
commit 3099cc4802
9 changed files with 157 additions and 163 deletions

View File

@@ -11,7 +11,7 @@ BattleHandlers::SpeedCalcAbility.add(:CHLOROPHYLL,
BattleHandlers::SpeedCalcAbility.add(:QUICKFEET,
proc { |ability,battler,mult|
next (mult*1.5).round if battler.pbHasAnyStatus?
next mult*1.5 if battler.pbHasAnyStatus?
}
)
@@ -767,13 +767,13 @@ BattleHandlers::MoveBaseTypeModifierAbility.add(:REFRIGERATE,
BattleHandlers::AccuracyCalcUserAbility.add(:COMPOUNDEYES,
proc { |ability,mods,user,target,move,type|
mods[ACC_MULT] = (mods[ACC_MULT]*1.3).round
mods[ACC_MULT] *= 1.3
}
)
BattleHandlers::AccuracyCalcUserAbility.add(:HUSTLE,
proc { |ability,mods,user,target,move,type|
mods[ACC_MULT] = (mods[ACC_MULT]*0.8).round if move.physicalMove?
mods[ACC_MULT] *= 0.8 if move.physicalMove?
}
)
@@ -797,7 +797,7 @@ BattleHandlers::AccuracyCalcUserAbility.add(:UNAWARE,
BattleHandlers::AccuracyCalcUserAbility.add(:VICTORYSTAR,
proc { |ability,mods,user,target,move,type|
mods[ACC_MULT] = (mods[ACC_MULT]*1.1).round
mods[ACC_MULT] *= 1.1
}
)
@@ -807,7 +807,7 @@ BattleHandlers::AccuracyCalcUserAbility.add(:VICTORYSTAR,
BattleHandlers::AccuracyCalcUserAllyAbility.add(:VICTORYSTAR,
proc { |ability,mods,user,target,move,type|
mods[ACC_MULT] = (mods[ACC_MULT]*1.1).round
mods[ACC_MULT] *= 1.1
}
)
@@ -830,7 +830,7 @@ BattleHandlers::AccuracyCalcTargetAbility.add(:NOGUARD,
BattleHandlers::AccuracyCalcTargetAbility.add(:SANDVEIL,
proc { |ability,mods,user,target,move,type|
if target.battle.pbWeather==PBWeather::Sandstorm
mods[EVA_MULT] = (mods[EVA_MULT]*1.25).round
mods[EVA_MULT] *= 1.25
end
}
)
@@ -838,7 +838,7 @@ BattleHandlers::AccuracyCalcTargetAbility.add(:SANDVEIL,
BattleHandlers::AccuracyCalcTargetAbility.add(:SNOWCLOAK,
proc { |ability,mods,user,target,move,type|
if target.battle.pbWeather==PBWeather::Hail
mods[EVA_MULT] = (mods[EVA_MULT]*1.25).round
mods[EVA_MULT] *= 1.25
end
}
)
@@ -875,7 +875,7 @@ BattleHandlers::AccuracyCalcTargetAbility.add(:WONDERSKIN,
BattleHandlers::DamageCalcUserAbility.add(:AERILATE,
proc { |ability,user,target,move,mults,baseDmg,type|
mults[BASE_DMG_MULT] = (mults[BASE_DMG_MULT]*1.2).round if move.powerBoost
mults[BASE_DMG_MULT] *= 1.2 if move.powerBoost
}
)
@@ -886,7 +886,7 @@ BattleHandlers::DamageCalcUserAbility.add(:ANALYTIC,
if (target.battle.choices[target.index][0]!=:UseMove &&
target.battle.choices[target.index][0]!=:Shift) ||
target.movedThisRound?
mults[BASE_DMG_MULT] = (mults[BASE_DMG_MULT]*1.3).round
mults[BASE_DMG_MULT] *= 1.3
end
}
)
@@ -894,21 +894,21 @@ BattleHandlers::DamageCalcUserAbility.add(:ANALYTIC,
BattleHandlers::DamageCalcUserAbility.add(:BLAZE,
proc { |ability,user,target,move,mults,baseDmg,type|
if user.hp<=user.totalhp/3 && isConst?(type,PBTypes,:FIRE)
mults[ATK_MULT] = (mults[ATK_MULT]*1.5).round
mults[ATK_MULT] *= 1.5
end
}
)
BattleHandlers::DamageCalcUserAbility.add(:DEFEATIST,
proc { |ability,user,target,move,mults,baseDmg,type|
mults[ATK_MULT] = (mults[ATK_MULT]*0.5).round if user.hp<=user.totalhp/2
mults[ATK_MULT] /= 2 if user.hp<=user.totalhp/2
}
)
BattleHandlers::DamageCalcUserAbility.add(:FLAREBOOST,
proc { |ability,user,target,move,mults,baseDmg,type|
if user.burned? && move.specialMove?
mults[BASE_DMG_MULT] = (mults[BASE_DMG_MULT]*1.5).round
mults[BASE_DMG_MULT] *= 1.5
end
}
)
@@ -916,7 +916,7 @@ BattleHandlers::DamageCalcUserAbility.add(:FLAREBOOST,
BattleHandlers::DamageCalcUserAbility.add(:FLASHFIRE,
proc { |ability,user,target,move,mults,baseDmg,type|
if user.effects[PBEffects::FlashFire] && isConst?(type,PBTypes,:FIRE)
mults[ATK_MULT] = (mults[ATK_MULT]*1.5).round
mults[ATK_MULT] *= 1.5
end
}
)
@@ -925,7 +925,7 @@ BattleHandlers::DamageCalcUserAbility.add(:FLOWERGIFT,
proc { |ability,user,target,move,mults,baseDmg,type|
w = user.battle.pbWeather
if move.physicalMove? && (w==PBWeather::Sun || w==PBWeather::HarshSun)
mults[ATK_MULT] = (mults[ATK_MULT]*1.5).round
mults[ATK_MULT] *= 1.5
end
}
)
@@ -933,7 +933,7 @@ BattleHandlers::DamageCalcUserAbility.add(:FLOWERGIFT,
BattleHandlers::DamageCalcUserAbility.add(:GUTS,
proc { |ability,user,target,move,mults,baseDmg,type|
if user.pbHasAnyStatus? && move.physicalMove?
mults[ATK_MULT] = (mults[ATK_MULT]*1.5).round
mults[ATK_MULT] *= 1.5
end
}
)
@@ -948,19 +948,19 @@ BattleHandlers::DamageCalcUserAbility.copy(:HUGEPOWER,:PUREPOWER)
BattleHandlers::DamageCalcUserAbility.add(:HUSTLE,
proc { |ability,user,target,move,mults,baseDmg,type|
mults[ATK_MULT] = (mults[ATK_MULT]*1.5).round if move.physicalMove?
mults[ATK_MULT] *= 1.5 if move.physicalMove?
}
)
BattleHandlers::DamageCalcUserAbility.add(:IRONFIST,
proc { |ability,user,target,move,mults,baseDmg,type|
mults[BASE_DMG_MULT] = (mults[BASE_DMG_MULT]*1.2).round if move.punchingMove?
mults[BASE_DMG_MULT] *= 1.2 if move.punchingMove?
}
)
BattleHandlers::DamageCalcUserAbility.add(:MEGALAUNCHER,
proc { |ability,user,target,move,mults,baseDmg,type|
mults[BASE_DMG_MULT] = (mults[BASE_DMG_MULT]*1.5).round if move.pulseMove?
mults[BASE_DMG_MULT] *= 1.5 if move.pulseMove?
}
)
@@ -969,7 +969,7 @@ BattleHandlers::DamageCalcUserAbility.add(:MINUS,
next if !move.specialMove?
user.eachAlly do |b|
next if !b.hasActiveAbility?([:MINUS,:PLUS])
mults[ATK_MULT] = (mults[ATK_MULT]*1.5).round
mults[ATK_MULT] *= 1.5
break
end
}
@@ -980,7 +980,7 @@ BattleHandlers::DamageCalcUserAbility.copy(:MINUS,:PLUS)
BattleHandlers::DamageCalcUserAbility.add(:NEUROFORCE,
proc { |ability,user,target,move,mults,baseDmg,type|
if PBTypes.superEffective?(target.damageState.typeMod)
mults[FINAL_DMG_MULT] = (mults[FINAL_DMG_MULT]*1.25).round
mults[FINAL_DMG_MULT] *= 1.25
end
}
)
@@ -988,14 +988,14 @@ BattleHandlers::DamageCalcUserAbility.add(:NEUROFORCE,
BattleHandlers::DamageCalcUserAbility.add(:OVERGROW,
proc { |ability,user,target,move,mults,baseDmg,type|
if user.hp<=user.totalhp/3 && isConst?(type,PBTypes,:GRASS)
mults[ATK_MULT] = (mults[ATK_MULT]*1.5).round
mults[ATK_MULT] *= 1.5
end
}
)
BattleHandlers::DamageCalcUserAbility.add(:RECKLESS,
proc { |ability,user,target,move,mults,baseDmg,type|
mults[BASE_DMG_MULT] = (mults[BASE_DMG_MULT]*1.2).round if move.recoilMove?
mults[BASE_DMG_MULT] *= 1.2 if move.recoilMove?
}
)
@@ -1003,9 +1003,9 @@ BattleHandlers::DamageCalcUserAbility.add(:RIVALRY,
proc { |ability,user,target,move,mults,baseDmg,type|
if user.gender!=2 && target.gender!=2
if user.gender==target.gender
mults[BASE_DMG_MULT] = (mults[BASE_DMG_MULT]*1.25).round
mults[BASE_DMG_MULT] *= 1.25
else
mults[BASE_DMG_MULT] = (mults[BASE_DMG_MULT]*0.75).round
mults[BASE_DMG_MULT] *= 0.75
end
end
}
@@ -1017,22 +1017,20 @@ BattleHandlers::DamageCalcUserAbility.add(:SANDFORCE,
(isConst?(type,PBTypes,:ROCK) ||
isConst?(type,PBTypes,:GROUND) ||
isConst?(type,PBTypes,:STEEL))
mults[BASE_DMG_MULT] = (mults[BASE_DMG_MULT]*1.3).round
mults[BASE_DMG_MULT] *= 1.3
end
}
)
BattleHandlers::DamageCalcUserAbility.add(:SHEERFORCE,
proc { |ability,user,target,move,mults,baseDmg,type|
mults[BASE_DMG_MULT] = (mults[BASE_DMG_MULT]*1.3).round if move.addlEffect>0
mults[BASE_DMG_MULT] *= 1.3 if move.addlEffect>0
}
)
BattleHandlers::DamageCalcUserAbility.add(:SLOWSTART,
proc { |ability,user,target,move,mults,baseDmg,type|
if user.turnCount<=5 && move.physicalMove?
mults[ATK_MULT] = (mults[ATK_MULT]*0.5).round
end
mults[ATK_MULT] /= 2 if user.turnCount<=5 && move.physicalMove?
}
)
@@ -1040,7 +1038,7 @@ BattleHandlers::DamageCalcUserAbility.add(:SOLARPOWER,
proc { |ability,user,target,move,mults,baseDmg,type|
w = user.battle.pbWeather
if move.specialMove? && (w==PBWeather::Sun || w==PBWeather::HarshSun)
mults[ATK_MULT] = (mults[ATK_MULT]*1.5).round
mults[ATK_MULT] *= 1.5
end
}
)
@@ -1048,7 +1046,7 @@ BattleHandlers::DamageCalcUserAbility.add(:SOLARPOWER,
BattleHandlers::DamageCalcUserAbility.add(:SNIPER,
proc { |ability,user,target,move,mults,baseDmg,type|
if target.damageState.critical
mults[FINAL_DMG_MULT] = (mults[FINAL_DMG_MULT]*1.5).round
mults[FINAL_DMG_MULT] *= 1.5
end
}
)
@@ -1061,28 +1059,28 @@ BattleHandlers::DamageCalcUserAbility.add(:STAKEOUT,
BattleHandlers::DamageCalcUserAbility.add(:STEELWORKER,
proc { |ability,user,target,move,mults,baseDmg,type|
mults[ATK_MULT] = (mults[ATK_MULT]*1.5).round if isConst?(type,PBTypes,:STEEL)
mults[ATK_MULT] *= 1.5 if isConst?(type,PBTypes,:STEEL)
}
)
BattleHandlers::DamageCalcUserAbility.add(:STRONGJAW,
proc { |ability,user,target,move,mults,baseDmg,type|
mults[BASE_DMG_MULT] = (mults[BASE_DMG_MULT]*1.5).round if move.bitingMove?
mults[BASE_DMG_MULT] *= 1.5 if move.bitingMove?
}
)
BattleHandlers::DamageCalcUserAbility.add(:SWARM,
proc { |ability,user,target,move,mults,baseDmg,type|
if user.hp<=user.totalhp/3 && isConst?(type,PBTypes,:BUG)
mults[ATK_MULT] = (mults[ATK_MULT]*1.5).round
mults[ATK_MULT] *= 1.5
end
}
)
BattleHandlers::DamageCalcUserAbility.add(:TECHNICIAN,
proc { |ability,user,target,move,mults,baseDmg,type|
if user.index!=target.index && move.id>0 && baseDmg*mults[BASE_DMG_MULT]/0x1000<=60
mults[BASE_DMG_MULT] = (mults[BASE_DMG_MULT]*1.5).round
if user.index!=target.index && move.id>0 && baseDmg*mults[BASE_DMG_MULT]<=60
mults[BASE_DMG_MULT] *= 1.5
end
}
)
@@ -1096,21 +1094,21 @@ BattleHandlers::DamageCalcUserAbility.add(:TINTEDLENS,
BattleHandlers::DamageCalcUserAbility.add(:TORRENT,
proc { |ability,user,target,move,mults,baseDmg,type|
if user.hp<=user.totalhp/3 && isConst?(type,PBTypes,:WATER)
mults[ATK_MULT] = (mults[ATK_MULT]*1.5).round
mults[ATK_MULT] *= 1.5
end
}
)
BattleHandlers::DamageCalcUserAbility.add(:TOUGHCLAWS,
proc { |ability,user,target,move,mults,baseDmg,type|
mults[BASE_DMG_MULT] = (mults[BASE_DMG_MULT]*4/3.0).round if move.contactMove?
mults[BASE_DMG_MULT] *= 4/3.0 if move.contactMove?
}
)
BattleHandlers::DamageCalcUserAbility.add(:TOXICBOOST,
proc { |ability,user,target,move,mults,baseDmg,type|
if user.poisoned? && move.physicalMove?
mults[BASE_DMG_MULT] = (mults[BASE_DMG_MULT]*1.5).round
mults[BASE_DMG_MULT] *= 1.5
end
}
)
@@ -1128,7 +1126,7 @@ BattleHandlers::DamageCalcUserAbility.add(:WATERBUBBLE,
BattleHandlers::DamageCalcUserAllyAbility.add(:BATTERY,
proc { |ability,user,target,move,mults,baseDmg,type|
next if !move.specialMove?
mults[FINAL_DMG_MULT] = (mults[FINAL_DMG_MULT]*1.3).round
mults[FINAL_DMG_MULT] *= 1.3
}
)
@@ -1136,7 +1134,7 @@ BattleHandlers::DamageCalcUserAllyAbility.add(:FLOWERGIFT,
proc { |ability,user,target,move,mults,baseDmg,type|
w = user.battle.pbWeather
if move.physicalMove? && (w==PBWeather::Sun || w==PBWeather::HarshSun)
mults[ATK_MULT] = (mults[ATK_MULT]*1.5).round
mults[ATK_MULT] *= 1.5
end
}
)
@@ -1148,7 +1146,7 @@ BattleHandlers::DamageCalcUserAllyAbility.add(:FLOWERGIFT,
BattleHandlers::DamageCalcTargetAbility.add(:DRYSKIN,
proc { |ability,user,target,move,mults,baseDmg,type|
if isConst?(type,PBTypes,:FIRE)
mults[BASE_DMG_MULT] = (mults[BASE_DMG_MULT]*1.25).round
mults[BASE_DMG_MULT] *= 1.25
end
}
)
@@ -1156,7 +1154,7 @@ BattleHandlers::DamageCalcTargetAbility.add(:DRYSKIN,
BattleHandlers::DamageCalcTargetAbility.add(:FILTER,
proc { |ability,user,target,move,mults,baseDmg,type|
if PBTypes.superEffective?(target.damageState.typeMod)
mults[FINAL_DMG_MULT] = (mults[FINAL_DMG_MULT]*0.75).round
mults[FINAL_DMG_MULT] *= 0.75
end
}
)
@@ -1167,7 +1165,7 @@ BattleHandlers::DamageCalcTargetAbility.add(:FLOWERGIFT,
proc { |ability,user,target,move,mults,baseDmg,type|
w = user.battle.pbWeather
if move.specialMove? && (w==PBWeather::Sun || w==PBWeather::HarshSun)
mults[DEF_MULT] = (mults[DEF_MULT]*1.5).round
mults[DEF_MULT] *= 1.5
end
}
)
@@ -1175,7 +1173,7 @@ BattleHandlers::DamageCalcTargetAbility.add(:FLOWERGIFT,
BattleHandlers::DamageCalcTargetAbility.add(:FLUFFY,
proc { |ability,user,target,move,mults,baseDmg,type|
mults[FINAL_DMG_MULT] *= 2 if isConst?(move.calcType,PBTypes,:FIRE)
mults[FINAL_DMG_MULT] = (mults[FINAL_DMG_MULT]*0.5).round if move.contactMove?
mults[FINAL_DMG_MULT] /= 2 if move.contactMove?
}
)
@@ -1188,21 +1186,21 @@ BattleHandlers::DamageCalcTargetAbility.add(:FURCOAT,
BattleHandlers::DamageCalcTargetAbility.add(:GRASSPELT,
proc { |ability,user,target,move,mults,baseDmg,type|
if user.battle.field.terrain==PBBattleTerrains::Grassy
mults[DEF_MULT] = (mults[DEF_MULT]*1.5).round
mults[DEF_MULT] *= 1.5
end
}
)
BattleHandlers::DamageCalcTargetAbility.add(:HEATPROOF,
proc { |ability,user,target,move,mults,baseDmg,type|
mults[BASE_DMG_MULT] = (mults[BASE_DMG_MULT]*0.5).round if isConst?(type,PBTypes,:FIRE)
mults[BASE_DMG_MULT] /= 2 if isConst?(type,PBTypes,:FIRE)
}
)
BattleHandlers::DamageCalcTargetAbility.add(:MARVELSCALE,
proc { |ability,user,target,move,mults,baseDmg,type|
if target.pbHasAnyStatus? && move.physicalMove?
mults[DEF_MULT] = (mults[DEF_MULT]*1.5).round
mults[DEF_MULT] *= 1.5
end
}
)
@@ -1210,7 +1208,7 @@ BattleHandlers::DamageCalcTargetAbility.add(:MARVELSCALE,
BattleHandlers::DamageCalcTargetAbility.add(:MULTISCALE,
proc { |ability,user,target,move,mults,baseDmg,type|
if target.hp==target.totalhp
mults[FINAL_DMG_MULT] = (mults[FINAL_DMG_MULT]*0.5).round
mults[FINAL_DMG_MULT] /= 2
end
}
)
@@ -1218,7 +1216,7 @@ BattleHandlers::DamageCalcTargetAbility.add(:MULTISCALE,
BattleHandlers::DamageCalcTargetAbility.add(:THICKFAT,
proc { |ability,user,target,move,mults,baseDmg,type|
if isConst?(type,PBTypes,:FIRE) || isConst?(type,PBTypes,:ICE)
mults[BASE_DMG_MULT] = (mults[BASE_DMG_MULT]*0.5).round
mults[BASE_DMG_MULT] /= 2
end
}
)
@@ -1226,7 +1224,7 @@ BattleHandlers::DamageCalcTargetAbility.add(:THICKFAT,
BattleHandlers::DamageCalcTargetAbility.add(:WATERBUBBLE,
proc { |ability,user,target,move,mults,baseDmg,type|
if isConst?(type,PBTypes,:FIRE)
mults[FINAL_DMG_MULT] = (mults[FINAL_DMG_MULT]*0.5).round
mults[FINAL_DMG_MULT] /= 2
end
}
)
@@ -1238,7 +1236,7 @@ BattleHandlers::DamageCalcTargetAbility.add(:WATERBUBBLE,
BattleHandlers::DamageCalcTargetAbilityNonIgnorable.add(:PRISMARMOR,
proc { |ability,user,target,move,mults,baseDmg,type|
if PBTypes.superEffective?(target.damageState.typeMod)
mults[FINAL_DMG_MULT] = (mults[FINAL_DMG_MULT]*0.75).round
mults[FINAL_DMG_MULT] *= 0.75
end
}
)
@@ -1246,7 +1244,7 @@ BattleHandlers::DamageCalcTargetAbilityNonIgnorable.add(:PRISMARMOR,
BattleHandlers::DamageCalcTargetAbilityNonIgnorable.add(:SHADOWSHIELD,
proc { |ability,user,target,move,mults,baseDmg,type|
if target.hp==target.totalhp
mults[FINAL_DMG_MULT] = (mults[FINAL_DMG_MULT]*0.5).round
mults[FINAL_DMG_MULT] /= 2
end
}
)
@@ -1259,14 +1257,14 @@ BattleHandlers::DamageCalcTargetAllyAbility.add(:FLOWERGIFT,
proc { |ability,user,target,move,mults,baseDmg,type|
w = user.battle.pbWeather
if move.specialMove? && (w==PBWeather::Sun || w==PBWeather::HarshSun)
mults[DEF_MULT] = (mults[DEF_MULT]*1.5).round
mults[DEF_MULT] *= 1.5
end
}
)
BattleHandlers::DamageCalcTargetAllyAbility.add(:FRIENDGUARD,
proc { |ability,user,target,move,mults,baseDmg,type|
mults[FINAL_DMG_MULT] = (mults[FINAL_DMG_MULT]*0.75).round
mults[FINAL_DMG_MULT] *= 0.75
}
)