Rename and clean up MapleBuffStat
This commit is contained in:
@@ -248,12 +248,12 @@ public abstract class AbstractDealDamageHandler extends AbstractPacketHandler {
|
||||
}
|
||||
totDamage += totDamageToOneMonster;
|
||||
monster.aggroMonsterDamage(player, totDamageToOneMonster);
|
||||
if (player.getBuffedValue(MapleBuffStat.PICKPOCKET) != null && (attack.skill == 0 || attack.skill == Rogue.DOUBLE_STAB || attack.skill == Bandit.SAVAGE_BLOW || attack.skill == ChiefBandit.ASSAULTER || attack.skill == ChiefBandit.BAND_OF_THIEVES || attack.skill == Shadower.ASSASSINATE || attack.skill == Shadower.TAUNT || attack.skill == Shadower.BOOMERANG_STEP)) {
|
||||
if (player.getBuffedValue(BuffStat.PICKPOCKET) != null && (attack.skill == 0 || attack.skill == Rogue.DOUBLE_STAB || attack.skill == Bandit.SAVAGE_BLOW || attack.skill == ChiefBandit.ASSAULTER || attack.skill == ChiefBandit.BAND_OF_THIEVES || attack.skill == Shadower.ASSASSINATE || attack.skill == Shadower.TAUNT || attack.skill == Shadower.BOOMERANG_STEP)) {
|
||||
Skill pickpocket = SkillFactory.getSkill(ChiefBandit.PICKPOCKET);
|
||||
int picklv = (player.isGM()) ? pickpocket.getMaxLevel() : player.getSkillLevel(pickpocket);
|
||||
if(picklv > 0) {
|
||||
int delay = 0;
|
||||
final int maxmeso = player.getBuffedValue(MapleBuffStat.PICKPOCKET);
|
||||
final int maxmeso = player.getBuffedValue(BuffStat.PICKPOCKET);
|
||||
for (Integer eachd : onedList) {
|
||||
eachd += Integer.MAX_VALUE;
|
||||
|
||||
@@ -312,7 +312,7 @@ public abstract class AbstractDealDamageHandler extends AbstractPacketHandler {
|
||||
}
|
||||
|
||||
if (player.isAran()) {
|
||||
if (player.getBuffedValue(MapleBuffStat.WK_CHARGE) != null) {
|
||||
if (player.getBuffedValue(BuffStat.WK_CHARGE) != null) {
|
||||
Skill snowCharge = SkillFactory.getSkill(Aran.SNOW_CHARGE);
|
||||
if (totDamageToOneMonster > 0) {
|
||||
MonsterStatusEffect monsterStatusEffect = new MonsterStatusEffect(Collections.singletonMap(MonsterStatus.SPEED, snowCharge.getEffect(player.getSkillLevel(snowCharge)).getX()), snowCharge, null, false);
|
||||
@@ -320,21 +320,21 @@ public abstract class AbstractDealDamageHandler extends AbstractPacketHandler {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (player.getBuffedValue(MapleBuffStat.HAMSTRING) != null) {
|
||||
if (player.getBuffedValue(BuffStat.HAMSTRING) != null) {
|
||||
Skill hamstring = SkillFactory.getSkill(Bowmaster.HAMSTRING);
|
||||
if (hamstring.getEffect(player.getSkillLevel(hamstring)).makeChanceResult()) {
|
||||
MonsterStatusEffect monsterStatusEffect = new MonsterStatusEffect(Collections.singletonMap(MonsterStatus.SPEED, hamstring.getEffect(player.getSkillLevel(hamstring)).getX()), hamstring, null, false);
|
||||
monster.applyStatus(player, monsterStatusEffect, false, hamstring.getEffect(player.getSkillLevel(hamstring)).getY() * 1000);
|
||||
}
|
||||
}
|
||||
if (player.getBuffedValue(MapleBuffStat.SLOW) != null) {
|
||||
if (player.getBuffedValue(BuffStat.SLOW) != null) {
|
||||
Skill slow = SkillFactory.getSkill(Evan.SLOW);
|
||||
if (slow.getEffect(player.getSkillLevel(slow)).makeChanceResult()) {
|
||||
MonsterStatusEffect monsterStatusEffect = new MonsterStatusEffect(Collections.singletonMap(MonsterStatus.SPEED, slow.getEffect(player.getSkillLevel(slow)).getX()), slow, null, false);
|
||||
monster.applyStatus(player, monsterStatusEffect, false, slow.getEffect(player.getSkillLevel(slow)).getY() * 60 * 1000);
|
||||
}
|
||||
}
|
||||
if (player.getBuffedValue(MapleBuffStat.BLIND) != null) {
|
||||
if (player.getBuffedValue(BuffStat.BLIND) != null) {
|
||||
Skill blind = SkillFactory.getSkill(Marksman.BLIND);
|
||||
if (blind.getEffect(player.getSkillLevel(blind)).makeChanceResult()) {
|
||||
MonsterStatusEffect monsterStatusEffect = new MonsterStatusEffect(Collections.singletonMap(MonsterStatus.ACC, blind.getEffect(player.getSkillLevel(blind)).getX()), blind, null, false);
|
||||
@@ -344,7 +344,7 @@ public abstract class AbstractDealDamageHandler extends AbstractPacketHandler {
|
||||
if (job == 121 || job == 122) {
|
||||
for (int charge = 1211005; charge < 1211007; charge++) {
|
||||
Skill chargeSkill = SkillFactory.getSkill(charge);
|
||||
if (player.isBuffFrom(MapleBuffStat.WK_CHARGE, chargeSkill)) {
|
||||
if (player.isBuffFrom(BuffStat.WK_CHARGE, chargeSkill)) {
|
||||
if (totDamageToOneMonster > 0) {
|
||||
if (charge == WhiteKnight.BW_ICE_CHARGE || charge == WhiteKnight.SWORD_ICE_CHARGE) {
|
||||
monster.setTempEffectiveness(Element.ICE, ElementalEffectiveness.WEAK, chargeSkill.getEffect(player.getSkillLevel(chargeSkill)).getY() * 1000);
|
||||
@@ -360,7 +360,7 @@ public abstract class AbstractDealDamageHandler extends AbstractPacketHandler {
|
||||
if (job == 122) {
|
||||
for (int charge = 1221003; charge < 1221004; charge++) {
|
||||
Skill chargeSkill = SkillFactory.getSkill(charge);
|
||||
if (player.isBuffFrom(MapleBuffStat.WK_CHARGE, chargeSkill)) {
|
||||
if (player.isBuffFrom(BuffStat.WK_CHARGE, chargeSkill)) {
|
||||
if (totDamageToOneMonster > 0) {
|
||||
monster.setTempEffectiveness(Element.HOLY, ElementalEffectiveness.WEAK, chargeSkill.getEffect(player.getSkillLevel(chargeSkill)).getY() * 1000);
|
||||
break;
|
||||
@@ -368,9 +368,9 @@ public abstract class AbstractDealDamageHandler extends AbstractPacketHandler {
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (player.getBuffedValue(MapleBuffStat.COMBO_DRAIN) != null) {
|
||||
} else if (player.getBuffedValue(BuffStat.COMBO_DRAIN) != null) {
|
||||
Skill skill;
|
||||
if (player.getBuffedValue(MapleBuffStat.COMBO_DRAIN) != null) {
|
||||
if (player.getBuffedValue(BuffStat.COMBO_DRAIN) != null) {
|
||||
skill = SkillFactory.getSkill(21100005);
|
||||
player.addHP(((totDamage * skill.getEffect(player.getSkillLevel(skill)).getX()) / 100));
|
||||
}
|
||||
@@ -660,7 +660,7 @@ public abstract class AbstractDealDamageHandler extends AbstractPacketHandler {
|
||||
}
|
||||
}
|
||||
|
||||
Integer comboBuff = chr.getBuffedValue(MapleBuffStat.COMBO);
|
||||
Integer comboBuff = chr.getBuffedValue(BuffStat.COMBO);
|
||||
if(comboBuff != null && comboBuff > 0) {
|
||||
int oid = chr.isCygnus() ? DawnWarrior.COMBO : Crusader.COMBO;
|
||||
int advcomboid = chr.isCygnus() ? DawnWarrior.ADVANCED_COMBO : Hero.ADVANCED_COMBO;
|
||||
@@ -720,7 +720,7 @@ public abstract class AbstractDealDamageHandler extends AbstractPacketHandler {
|
||||
canCrit = true;
|
||||
}
|
||||
|
||||
if(chr.getBuffEffect(MapleBuffStat.SHARP_EYES) != null) {
|
||||
if(chr.getBuffEffect(BuffStat.SHARP_EYES) != null) {
|
||||
// Any class that has sharp eyes can crit. Also, since it stacks with normal crit go ahead
|
||||
// and calc it in.
|
||||
|
||||
@@ -729,7 +729,7 @@ public abstract class AbstractDealDamageHandler extends AbstractPacketHandler {
|
||||
}
|
||||
|
||||
boolean shadowPartner = false;
|
||||
if(chr.getBuffEffect(MapleBuffStat.SHADOWPARTNER) != null) {
|
||||
if(chr.getBuffEffect(BuffStat.SHADOWPARTNER) != null) {
|
||||
shadowPartner = true;
|
||||
}
|
||||
|
||||
@@ -744,10 +744,10 @@ public abstract class AbstractDealDamageHandler extends AbstractPacketHandler {
|
||||
List<Integer> allDamageNumbers = new ArrayList<>();
|
||||
MapleMonster monster = chr.getMap().getMonsterByOid(oid);
|
||||
|
||||
if(chr.getBuffEffect(MapleBuffStat.WK_CHARGE) != null) {
|
||||
if(chr.getBuffEffect(BuffStat.WK_CHARGE) != null) {
|
||||
// Charge, so now we need to check elemental effectiveness
|
||||
int sourceID = chr.getBuffSource(MapleBuffStat.WK_CHARGE);
|
||||
int level = chr.getBuffedValue(MapleBuffStat.WK_CHARGE);
|
||||
int sourceID = chr.getBuffSource(BuffStat.WK_CHARGE);
|
||||
int level = chr.getBuffedValue(BuffStat.WK_CHARGE);
|
||||
if(monster != null) {
|
||||
if(sourceID == WhiteKnight.BW_FIRE_CHARGE || sourceID == WhiteKnight.SWORD_FIRE_CHARGE) {
|
||||
if(monster.getStats().getEffectiveness(Element.FIRE) == ElementalEffectiveness.WEAK) {
|
||||
@@ -775,7 +775,7 @@ public abstract class AbstractDealDamageHandler extends AbstractPacketHandler {
|
||||
|
||||
if(ret.skill != 0) {
|
||||
Skill skill = SkillFactory.getSkill(ret.skill);
|
||||
if(skill.getElement() != Element.NEUTRAL && chr.getBuffedValue(MapleBuffStat.ELEMENTAL_RESET) == null) {
|
||||
if(skill.getElement() != Element.NEUTRAL && chr.getBuffedValue(BuffStat.ELEMENTAL_RESET) == null) {
|
||||
// The skill has an element effect, so we need to factor that in.
|
||||
if(monster != null) {
|
||||
ElementalEffectiveness eff = monster.getElementalEffectiveness(skill.getElement());
|
||||
|
||||
@@ -47,8 +47,8 @@ public final class CloseRangeDamageHandler extends AbstractDealDamageHandler {
|
||||
chr.getAutobanManager().spam(8);*/
|
||||
|
||||
AttackInfo attack = parseDamage(p, chr, false, false);
|
||||
if (chr.getBuffEffect(MapleBuffStat.MORPH) != null) {
|
||||
if(chr.getBuffEffect(MapleBuffStat.MORPH).isMorphWithoutAttack()) {
|
||||
if (chr.getBuffEffect(BuffStat.MORPH) != null) {
|
||||
if(chr.getBuffEffect(BuffStat.MORPH).isMorphWithoutAttack()) {
|
||||
// How are they attacking when the client won't let them?
|
||||
chr.getClient().disconnect(false, false);
|
||||
return;
|
||||
@@ -64,7 +64,7 @@ public final class CloseRangeDamageHandler extends AbstractDealDamageHandler {
|
||||
|
||||
chr.getMap().broadcastMessage(chr, PacketCreator.closeRangeAttack(chr, attack.skill, attack.skilllevel, attack.stance, attack.numAttackedAndDamage, attack.allDamage, attack.speed, attack.direction, attack.display), false, true);
|
||||
int numFinisherOrbs = 0;
|
||||
Integer comboBuff = chr.getBuffedValue(MapleBuffStat.COMBO);
|
||||
Integer comboBuff = chr.getBuffedValue(BuffStat.COMBO);
|
||||
if (GameConstants.isFinisherSkill(attack.skill)) {
|
||||
if (comboBuff != null) {
|
||||
numFinisherOrbs = comboBuff - 1;
|
||||
@@ -72,7 +72,7 @@ public final class CloseRangeDamageHandler extends AbstractDealDamageHandler {
|
||||
chr.handleOrbconsume();
|
||||
} else if (attack.numAttacked > 0) {
|
||||
if (attack.skill != 1111008 && comboBuff != null) {
|
||||
int orbcount = chr.getBuffedValue(MapleBuffStat.COMBO);
|
||||
int orbcount = chr.getBuffedValue(BuffStat.COMBO);
|
||||
int oid = chr.isCygnus() ? DawnWarrior.COMBO : Crusader.COMBO;
|
||||
int advcomboid = chr.isCygnus() ? DawnWarrior.ADVANCED_COMBO : Hero.ADVANCED_COMBO;
|
||||
Skill combo = SkillFactory.getSkill(oid);
|
||||
@@ -101,9 +101,9 @@ public final class CloseRangeDamageHandler extends AbstractDealDamageHandler {
|
||||
if(olv <= 0) olv = SkillFactory.getSkill(oid).getMaxLevel();
|
||||
|
||||
int duration = combo.getEffect(olv).getDuration();
|
||||
List<Pair<MapleBuffStat, Integer>> stat = Collections.singletonList(new Pair<>(MapleBuffStat.COMBO, neworbcount));
|
||||
chr.setBuffedValue(MapleBuffStat.COMBO, neworbcount);
|
||||
duration -= (int) (currentServerTime() - chr.getBuffedStarttime(MapleBuffStat.COMBO));
|
||||
List<Pair<BuffStat, Integer>> stat = Collections.singletonList(new Pair<>(BuffStat.COMBO, neworbcount));
|
||||
chr.setBuffedValue(BuffStat.COMBO, neworbcount);
|
||||
duration -= (int) (currentServerTime() - chr.getBuffedStarttime(BuffStat.COMBO));
|
||||
c.sendPacket(PacketCreator.giveBuff(oid, duration, stat));
|
||||
chr.getMap().broadcastMessage(chr, PacketCreator.giveForeignBuff(chr.getId(), stat), false);
|
||||
}
|
||||
@@ -130,7 +130,7 @@ public final class CloseRangeDamageHandler extends AbstractDealDamageHandler {
|
||||
advcharge_prob = SkillFactory.getSkill(1220010).getEffect(advcharge_level).makeChanceResult();
|
||||
}
|
||||
if (!advcharge_prob) {
|
||||
chr.cancelEffectFromBuffStat(MapleBuffStat.WK_CHARGE);
|
||||
chr.cancelEffectFromBuffStat(BuffStat.WK_CHARGE);
|
||||
}
|
||||
}
|
||||
int attackCount = 1;
|
||||
@@ -160,12 +160,12 @@ public final class CloseRangeDamageHandler extends AbstractDealDamageHandler {
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((chr.getSkillLevel(SkillFactory.getSkill(NightWalker.VANISH)) > 0 || chr.getSkillLevel(SkillFactory.getSkill(Rogue.DARK_SIGHT)) > 0) && chr.getBuffedValue(MapleBuffStat.DARKSIGHT) != null) {// && chr.getBuffSource(MapleBuffStat.DARKSIGHT) != 9101004
|
||||
chr.cancelEffectFromBuffStat(MapleBuffStat.DARKSIGHT);
|
||||
chr.cancelBuffStats(MapleBuffStat.DARKSIGHT);
|
||||
} else if(chr.getSkillLevel(SkillFactory.getSkill(WindArcher.WIND_WALK)) > 0 && chr.getBuffedValue(MapleBuffStat.WIND_WALK) != null) {
|
||||
chr.cancelEffectFromBuffStat(MapleBuffStat.WIND_WALK);
|
||||
chr.cancelBuffStats(MapleBuffStat.WIND_WALK);
|
||||
if ((chr.getSkillLevel(SkillFactory.getSkill(NightWalker.VANISH)) > 0 || chr.getSkillLevel(SkillFactory.getSkill(Rogue.DARK_SIGHT)) > 0) && chr.getBuffedValue(BuffStat.DARKSIGHT) != null) {// && chr.getBuffSource(BuffStat.DARKSIGHT) != 9101004
|
||||
chr.cancelEffectFromBuffStat(BuffStat.DARKSIGHT);
|
||||
chr.cancelBuffStats(BuffStat.DARKSIGHT);
|
||||
} else if(chr.getSkillLevel(SkillFactory.getSkill(WindArcher.WIND_WALK)) > 0 && chr.getBuffedValue(BuffStat.WIND_WALK) != null) {
|
||||
chr.cancelEffectFromBuffStat(BuffStat.WIND_WALK);
|
||||
chr.cancelBuffStats(BuffStat.WIND_WALK);
|
||||
}
|
||||
|
||||
applyAttack(attack, chr, attackCount);
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
*/
|
||||
package net.server.channel.handlers;
|
||||
|
||||
import client.MapleBuffStat;
|
||||
import client.BuffStat;
|
||||
import client.MapleCharacter;
|
||||
import client.MapleClient;
|
||||
import net.AbstractPacketHandler;
|
||||
@@ -46,7 +46,7 @@ public final class DamageSummonHandler extends AbstractPacketHandler {
|
||||
|
||||
summon.addHP(-damage);
|
||||
if (summon.getHP() <= 0) {
|
||||
player.cancelEffectFromBuffStat(MapleBuffStat.PUPPET);
|
||||
player.cancelEffectFromBuffStat(BuffStat.PUPPET);
|
||||
}
|
||||
player.getMap().broadcastMessage(player, PacketCreator.damageSummon(player.getId(), oid, damage, monsterIdFrom), summon.getPosition());
|
||||
}
|
||||
|
||||
@@ -46,8 +46,8 @@ public final class MagicDamageHandler extends AbstractDealDamageHandler {
|
||||
|
||||
AttackInfo attack = parseDamage(p, chr, false, true);
|
||||
|
||||
if (chr.getBuffEffect(MapleBuffStat.MORPH) != null) {
|
||||
if(chr.getBuffEffect(MapleBuffStat.MORPH).isMorphWithoutAttack()) {
|
||||
if (chr.getBuffEffect(BuffStat.MORPH) != null) {
|
||||
if(chr.getBuffEffect(BuffStat.MORPH).isMorphWithoutAttack()) {
|
||||
// How are they attacking when the client won't let them?
|
||||
chr.getClient().disconnect(false, false);
|
||||
return;
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
package net.server.channel.handlers;
|
||||
|
||||
import client.MapleBuffStat;
|
||||
import client.BuffStat;
|
||||
import client.MapleCharacter;
|
||||
import client.MapleClient;
|
||||
import net.AbstractPacketHandler;
|
||||
@@ -44,11 +44,11 @@ public final class PlayerMapTransitionHandler extends AbstractPacketHandler {
|
||||
MapleCharacter chr = c.getPlayer();
|
||||
chr.setMapTransitionComplete();
|
||||
|
||||
int beaconid = chr.getBuffSource(MapleBuffStat.HOMING_BEACON);
|
||||
int beaconid = chr.getBuffSource(BuffStat.HOMING_BEACON);
|
||||
if (beaconid != -1) {
|
||||
chr.cancelBuffStats(MapleBuffStat.HOMING_BEACON);
|
||||
chr.cancelBuffStats(BuffStat.HOMING_BEACON);
|
||||
|
||||
final List<Pair<MapleBuffStat, Integer>> stat = Collections.singletonList(new Pair<>(MapleBuffStat.HOMING_BEACON, 0));
|
||||
final List<Pair<BuffStat, Integer>> stat = Collections.singletonList(new Pair<>(BuffStat.HOMING_BEACON, 0));
|
||||
chr.sendPacket(PacketCreator.giveBuff(1, beaconid, stat));
|
||||
}
|
||||
|
||||
|
||||
@@ -53,8 +53,8 @@ public final class RangedAttackHandler extends AbstractDealDamageHandler {
|
||||
|
||||
AttackInfo attack = parseDamage(p, chr, true, false);
|
||||
|
||||
if (chr.getBuffEffect(MapleBuffStat.MORPH) != null) {
|
||||
if(chr.getBuffEffect(MapleBuffStat.MORPH).isMorphWithoutAttack()) {
|
||||
if (chr.getBuffEffect(BuffStat.MORPH) != null) {
|
||||
if(chr.getBuffEffect(BuffStat.MORPH).isMorphWithoutAttack()) {
|
||||
// How are they attacking when the client won't let them?
|
||||
chr.getClient().disconnect(false, false);
|
||||
return;
|
||||
@@ -119,7 +119,7 @@ public final class RangedAttackHandler extends AbstractDealDamageHandler {
|
||||
}
|
||||
}
|
||||
}
|
||||
boolean hasShadowPartner = chr.getBuffedValue(MapleBuffStat.SHADOWPARTNER) != null;
|
||||
boolean hasShadowPartner = chr.getBuffedValue(BuffStat.SHADOWPARTNER) != null;
|
||||
if (hasShadowPartner) {
|
||||
bulletCount *= 2;
|
||||
}
|
||||
@@ -156,8 +156,8 @@ public final class RangedAttackHandler extends AbstractDealDamageHandler {
|
||||
}
|
||||
}
|
||||
}
|
||||
boolean soulArrow = chr.getBuffedValue(MapleBuffStat.SOULARROW) != null;
|
||||
boolean shadowClaw = chr.getBuffedValue(MapleBuffStat.SHADOW_CLAW) != null;
|
||||
boolean soulArrow = chr.getBuffedValue(BuffStat.SOULARROW) != null;
|
||||
boolean shadowClaw = chr.getBuffedValue(BuffStat.SHADOW_CLAW) != null;
|
||||
if (projectile != 0) {
|
||||
if (!soulArrow && !shadowClaw && attack.skill != 11101004 && attack.skill != 15111007 && attack.skill != 14101006) {
|
||||
short bulletConsume = bulletCount;
|
||||
@@ -215,12 +215,12 @@ public final class RangedAttackHandler extends AbstractDealDamageHandler {
|
||||
}
|
||||
}
|
||||
|
||||
if (chr.getSkillLevel(SkillFactory.getSkill(NightWalker.VANISH)) > 0 && chr.getBuffedValue(MapleBuffStat.DARKSIGHT) != null && attack.numAttacked > 0 && chr.getBuffSource(MapleBuffStat.DARKSIGHT) != 9101004) {
|
||||
chr.cancelEffectFromBuffStat(MapleBuffStat.DARKSIGHT);
|
||||
chr.cancelBuffStats(MapleBuffStat.DARKSIGHT);
|
||||
} else if(chr.getSkillLevel(SkillFactory.getSkill(WindArcher.WIND_WALK)) > 0 && chr.getBuffedValue(MapleBuffStat.WIND_WALK) != null && attack.numAttacked > 0) {
|
||||
chr.cancelEffectFromBuffStat(MapleBuffStat.WIND_WALK);
|
||||
chr.cancelBuffStats(MapleBuffStat.WIND_WALK);
|
||||
if (chr.getSkillLevel(SkillFactory.getSkill(NightWalker.VANISH)) > 0 && chr.getBuffedValue(BuffStat.DARKSIGHT) != null && attack.numAttacked > 0 && chr.getBuffSource(BuffStat.DARKSIGHT) != 9101004) {
|
||||
chr.cancelEffectFromBuffStat(BuffStat.DARKSIGHT);
|
||||
chr.cancelBuffStats(BuffStat.DARKSIGHT);
|
||||
} else if(chr.getSkillLevel(SkillFactory.getSkill(WindArcher.WIND_WALK)) > 0 && chr.getBuffedValue(BuffStat.WIND_WALK) != null && attack.numAttacked > 0) {
|
||||
chr.cancelEffectFromBuffStat(BuffStat.WIND_WALK);
|
||||
chr.cancelBuffStats(BuffStat.WIND_WALK);
|
||||
}
|
||||
|
||||
applyAttack(attack, chr, bulletCount);
|
||||
|
||||
@@ -87,7 +87,7 @@ public final class TakeDamageHandler extends AbstractPacketHandler {
|
||||
if (damage > 0) {
|
||||
loseItems = attacker.getStats().loseItem();
|
||||
if (loseItems != null) {
|
||||
if (chr.getBuffEffect(MapleBuffStat.AURA) == null) {
|
||||
if (chr.getBuffEffect(BuffStat.AURA) == null) {
|
||||
InventoryType type;
|
||||
final int playerpos = chr.getPosition().x;
|
||||
byte d = 1;
|
||||
@@ -157,12 +157,12 @@ public final class TakeDamageHandler extends AbstractPacketHandler {
|
||||
}
|
||||
|
||||
attacker.setMp(attacker.getMp() - attackInfo.getMpCon());
|
||||
if (chr.getBuffedValue(MapleBuffStat.MANA_REFLECTION) != null && damage > 0 && !attacker.isBoss()) {
|
||||
if (chr.getBuffedValue(BuffStat.MANA_REFLECTION) != null && damage > 0 && !attacker.isBoss()) {
|
||||
int jobid = chr.getJob().getId();
|
||||
if (jobid == 212 || jobid == 222 || jobid == 232) {
|
||||
int id = jobid * 10000 + 1002;
|
||||
Skill manaReflectSkill = SkillFactory.getSkill(id);
|
||||
if (chr.isBuffFrom(MapleBuffStat.MANA_REFLECTION, manaReflectSkill) && chr.getSkillLevel(manaReflectSkill) > 0 && manaReflectSkill.getEffect(chr.getSkillLevel(manaReflectSkill)).makeChanceResult()) {
|
||||
if (chr.isBuffFrom(BuffStat.MANA_REFLECTION, manaReflectSkill) && chr.getSkillLevel(manaReflectSkill) > 0 && manaReflectSkill.getEffect(chr.getSkillLevel(manaReflectSkill)).makeChanceResult()) {
|
||||
int bouncedamage = (damage * manaReflectSkill.getEffect(chr.getSkillLevel(manaReflectSkill)).getX() / 100);
|
||||
if (bouncedamage > attacker.getMaxHp() / 5) {
|
||||
bouncedamage = attacker.getMaxHp() / 5;
|
||||
@@ -196,15 +196,15 @@ public final class TakeDamageHandler extends AbstractPacketHandler {
|
||||
if (damage > 0 && !chr.isHidden()) {
|
||||
if (attacker != null) {
|
||||
if (damagefrom == -1) {
|
||||
if (chr.getBuffedValue(MapleBuffStat.POWERGUARD) != null) { // PG works on bosses, but only at half of the rate.
|
||||
int bouncedamage = (int) (damage * (chr.getBuffedValue(MapleBuffStat.POWERGUARD).doubleValue() / (attacker.isBoss() ? 200 : 100)));
|
||||
if (chr.getBuffedValue(BuffStat.POWERGUARD) != null) { // PG works on bosses, but only at half of the rate.
|
||||
int bouncedamage = (int) (damage * (chr.getBuffedValue(BuffStat.POWERGUARD).doubleValue() / (attacker.isBoss() ? 200 : 100)));
|
||||
bouncedamage = Math.min(bouncedamage, attacker.getMaxHp() / 10);
|
||||
damage -= bouncedamage;
|
||||
map.damageMonster(chr, attacker, bouncedamage);
|
||||
map.broadcastMessage(chr, PacketCreator.damageMonster(oid, bouncedamage), false, true);
|
||||
attacker.aggroMonsterDamage(chr, bouncedamage);
|
||||
}
|
||||
MapleStatEffect bPressure = chr.getBuffEffect(MapleBuffStat.BODY_PRESSURE); // thanks Atoot for noticing an issue on Body Pressure neutralise
|
||||
MapleStatEffect bPressure = chr.getBuffEffect(BuffStat.BODY_PRESSURE); // thanks Atoot for noticing an issue on Body Pressure neutralise
|
||||
if (bPressure != null) {
|
||||
Skill skill = SkillFactory.getSkill(Aran.BODY_PRESSURE);
|
||||
if (!attacker.alreadyBuffedStats().contains(MonsterStatus.NEUTRALISE)) {
|
||||
@@ -215,7 +215,7 @@ public final class TakeDamageHandler extends AbstractPacketHandler {
|
||||
}
|
||||
}
|
||||
|
||||
MapleStatEffect cBarrier = chr.getBuffEffect(MapleBuffStat.COMBO_BARRIER); // thanks BHB for noticing Combo Barrier buff not working
|
||||
MapleStatEffect cBarrier = chr.getBuffEffect(BuffStat.COMBO_BARRIER); // thanks BHB for noticing Combo Barrier buff not working
|
||||
if (cBarrier != null) {
|
||||
damage *= (cBarrier.getX() / 1000.0);
|
||||
}
|
||||
@@ -238,9 +238,9 @@ public final class TakeDamageHandler extends AbstractPacketHandler {
|
||||
damage *= Math.ceil(highDef.getEffect(hdLevel).getX() / 1000.0);
|
||||
}
|
||||
}
|
||||
Integer mesoguard = chr.getBuffedValue(MapleBuffStat.MESOGUARD);
|
||||
if (chr.getBuffedValue(MapleBuffStat.MAGIC_GUARD) != null && mpattack == 0) {
|
||||
int mploss = (int) (damage * (chr.getBuffedValue(MapleBuffStat.MAGIC_GUARD).doubleValue() / 100.0));
|
||||
Integer mesoguard = chr.getBuffedValue(BuffStat.MESOGUARD);
|
||||
if (chr.getBuffedValue(BuffStat.MAGIC_GUARD) != null && mpattack == 0) {
|
||||
int mploss = (int) (damage * (chr.getBuffedValue(BuffStat.MAGIC_GUARD).doubleValue() / 100.0));
|
||||
int hploss = damage - mploss;
|
||||
|
||||
int curmp = chr.getMp();
|
||||
@@ -255,7 +255,7 @@ public final class TakeDamageHandler extends AbstractPacketHandler {
|
||||
int mesoloss = (int) (damage * (mesoguard.doubleValue() / 100.0));
|
||||
if (chr.getMeso() < mesoloss) {
|
||||
chr.gainMeso(-chr.getMeso(), false);
|
||||
chr.cancelBuffStats(MapleBuffStat.MESOGUARD);
|
||||
chr.cancelBuffStats(BuffStat.MESOGUARD);
|
||||
} else {
|
||||
chr.gainMeso(-mesoloss, false);
|
||||
}
|
||||
|
||||
@@ -21,16 +21,16 @@
|
||||
*/
|
||||
package net.server.channel.handlers;
|
||||
|
||||
import client.MapleBuffStat;
|
||||
import client.MapleClient;
|
||||
import client.BuffStat;
|
||||
import client.MapleCharacter;
|
||||
import client.MapleClient;
|
||||
import net.packet.InPacket;
|
||||
|
||||
public final class TouchMonsterDamageHandler extends AbstractDealDamageHandler {
|
||||
@Override
|
||||
public final void handlePacket(InPacket p, MapleClient c) {
|
||||
MapleCharacter chr = c.getPlayer();
|
||||
if (chr.getEnergyBar() == 15000 || chr.getBuffedValue(MapleBuffStat.BODY_PRESSURE) != null) {
|
||||
if (chr.getEnergyBar() == 15000 || chr.getBuffedValue(BuffStat.BODY_PRESSURE) != null) {
|
||||
applyAttack(parseDamage(p, chr, false, false), c.getPlayer(), 1);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user