MobSkillFactory takes MobSkillType instead of int as id argument

This commit is contained in:
P0nk
2022-09-03 04:52:55 +02:00
parent 66b04969fd
commit fba49e7eec
11 changed files with 60 additions and 72 deletions

View File

@@ -494,8 +494,8 @@ public abstract class AbstractDealDamageHandler extends AbstractPacketHandler {
List<Pair<Integer, Integer>> mobSkills = monster.getSkills();
for (Pair<Integer, Integer> ms : mobSkills) {
if (ms.left == 145) {
MobSkill toUse = MobSkillFactory.getMobSkill(ms.left, ms.right);
if (ms.left == 145) { // TODO: de-magic
MobSkill toUse = MobSkillFactory.getMobSkill(MobSkillType.PHYSICAL_AND_MAGIC_COUNTER, ms.right);
player.addHP(-toUse.getX());
map.broadcastMessage(player, PacketCreator.damagePlayer(0, monster.getId(), player.getId(), toUse.getX(), 0, 0, false, 0, true, monster.getObjectId(), 0, 0), true);
}
@@ -505,8 +505,8 @@ public abstract class AbstractDealDamageHandler extends AbstractPacketHandler {
List<Pair<Integer, Integer>> mobSkills = monster.getSkills();
for (Pair<Integer, Integer> ms : mobSkills) {
if (ms.left == 145) {
MobSkill toUse = MobSkillFactory.getMobSkill(ms.left, ms.right);
if (ms.left == 145) { // TODO: de-magic
MobSkill toUse = MobSkillFactory.getMobSkill(MobSkillType.PHYSICAL_AND_MAGIC_COUNTER, ms.right);
player.addHP(-toUse.getY());
map.broadcastMessage(player, PacketCreator.damagePlayer(0, monster.getId(), player.getId(), toUse.getY(), 0, 0, false, 0, true, monster.getObjectId(), 0, 0), true);
}

View File

@@ -96,7 +96,7 @@ public final class MoveLifeHandler extends AbstractMovementPacketHandler {
castPos = monster.getSkillPos(useSkillId, useSkillLevel);
if (castPos != -1) {
toUse = MobSkillFactory.getMobSkill(useSkillId, useSkillLevel);
toUse = MobSkillFactory.getMobSkill(MobSkillType.from(useSkillId), useSkillLevel);
if (monster.canUseSkill(toUse, true)) {
int animationTime = MonsterInformationProvider.getInstance().getMobSkillAnimationTime(toUse);
@@ -127,7 +127,7 @@ public final class MoveLifeHandler extends AbstractMovementPacketHandler {
Pair<Integer, Integer> skillToUse = monster.getSkills().get(rndSkill);
nextSkillId = skillToUse.getLeft();
nextSkillLevel = skillToUse.getRight();
nextUse = MobSkillFactory.getMobSkill(nextSkillId, nextSkillLevel);
nextUse = MobSkillFactory.getMobSkill(MobSkillType.from(nextSkillId), nextSkillLevel);
if (!(nextUse != null && monster.canUseSkill(nextUse, false) && nextUse.getHP() >= (int) (((float) monster.getHp() / monster.getMaxHp()) * 100) && mobMp >= nextUse.getMpCon())) {
// thanks OishiiKawaiiDesu for noticing mobs trying to cast skills they are not supposed to be able

View File

@@ -151,7 +151,7 @@ public final class TakeDamageHandler extends AbstractPacketHandler {
is_deadly = true;
}
mpattack += attackInfo.getMpBurn();
MobSkill mobSkill = MobSkillFactory.getMobSkill(attackInfo.getDiseaseSkill(), attackInfo.getDiseaseLevel());
MobSkill mobSkill = MobSkillFactory.getMobSkill(MobSkillType.from(attackInfo.getDiseaseSkill()), attackInfo.getDiseaseLevel());
if (mobSkill != null && damage > 0) {
mobSkill.applyEffect(chr, attacker, false, banishPlayers);
}