From 15c4188d48046ccea22c2e28c3be2171a6442c3b Mon Sep 17 00:00:00 2001 From: P0nk Date: Sat, 3 Sep 2022 14:44:14 +0200 Subject: [PATCH] Make MCSkill immutable with record --- .../handlers/MonsterCarnivalHandler.java | 10 ++++----- src/main/java/server/StatEffect.java | 8 ++++--- .../java/server/life/MobSkillFactory.java | 2 +- .../server/partyquest/CarnivalFactory.java | 21 ++----------------- 4 files changed, 13 insertions(+), 28 deletions(-) diff --git a/src/main/java/net/server/channel/handlers/MonsterCarnivalHandler.java b/src/main/java/net/server/channel/handlers/MonsterCarnivalHandler.java index 302562e1c7..b0b6a9f1f5 100644 --- a/src/main/java/net/server/channel/handlers/MonsterCarnivalHandler.java +++ b/src/main/java/net/server/channel/handlers/MonsterCarnivalHandler.java @@ -95,14 +95,14 @@ public final class MonsterCarnivalHandler extends AbstractPacketHandler { return; } final MCSkill skill = CarnivalFactory.getInstance().getSkill(skillid.get(num)); //ugh wtf - if (skill == null || c.getPlayer().getCP() < skill.cpLoss) { + if (skill == null || c.getPlayer().getCP() < skill.cpLoss()) { c.sendPacket(PacketCreator.CPQMessage((byte) 1)); c.sendPacket(PacketCreator.enableActions()); return; } final Disease dis = skill.getDisease(); Party enemies = c.getPlayer().getParty().getEnemy(); - if (skill.targetsAll) { + if (skill.targetsAll()) { int hitChance = rollHitChance(dis.getMobSkillType()); if (hitChance <= 80) { for (PartyCharacter mpc : enemies.getPartyMembers()) { @@ -128,11 +128,11 @@ public final class MonsterCarnivalHandler extends AbstractPacketHandler { } } } - neededCP = skill.cpLoss; + neededCP = skill.cpLoss(); c.sendPacket(PacketCreator.enableActions()); } else if (tab == 2) { //protectors final MCSkill skill = CarnivalFactory.getInstance().getGuardian(num); - if (skill == null || c.getPlayer().getCP() < skill.cpLoss) { + if (skill == null || c.getPlayer().getCP() < skill.cpLoss()) { c.sendPacket(PacketCreator.CPQMessage((byte) 1)); c.sendPacket(PacketCreator.enableActions()); return; @@ -163,7 +163,7 @@ public final class MonsterCarnivalHandler extends AbstractPacketHandler { c.sendPacket(PacketCreator.enableActions()); return; } else { - neededCP = skill.cpLoss; + neededCP = skill.cpLoss(); } } } diff --git a/src/main/java/server/StatEffect.java b/src/main/java/server/StatEffect.java index 9a42178dca..5f308e6219 100644 --- a/src/main/java/server/StatEffect.java +++ b/src/main/java/server/StatEffect.java @@ -1039,14 +1039,15 @@ public class StatEffect { if (skill != null) { final Disease dis = skill.getDisease(); Party opposition = applyfrom.getParty().getEnemy(); - if (skill.targetsAll) { + if (skill.targetsAll()) { for (PartyCharacter enemyChrs : opposition.getPartyMembers()) { Character chrApp = enemyChrs.getPlayer(); if (chrApp != null && chrApp.getMap().isCPQMap()) { if (dis == null) { chrApp.dispel(); } else { - chrApp.giveDebuff(dis, MCSkill.getMobSkill(dis.getMobSkillType(), skill.level)); + MobSkill mobSkill = MobSkillFactory.getMobSkill(dis.getMobSkillType(), skill.level()); + chrApp.giveDebuff(dis, mobSkill); } } } @@ -1058,7 +1059,8 @@ public class StatEffect { if (dis == null) { chrApp.dispel(); } else { - chrApp.giveDebuff(dis, MCSkill.getMobSkill(dis.getMobSkillType(), skill.level)); + MobSkill mobSkill = MobSkillFactory.getMobSkill(dis.getMobSkillType(), skill.level()); + chrApp.giveDebuff(dis, mobSkill); } } } diff --git a/src/main/java/server/life/MobSkillFactory.java b/src/main/java/server/life/MobSkillFactory.java index e2d85daebb..0c090d4289 100644 --- a/src/main/java/server/life/MobSkillFactory.java +++ b/src/main/java/server/life/MobSkillFactory.java @@ -47,7 +47,7 @@ public class MobSkillFactory { private static final Lock readLock = readWriteLock.readLock(); private static final Lock writeLock = readWriteLock.writeLock(); - public static MobSkill getMobSkill(final MobSkillType type, final int level) { // TODO: return Optional + public static MobSkill getMobSkill(final MobSkillType type, final int level) { readLock.lock(); try { MobSkill ms = mobSkills.get(createKey(type, level)); diff --git a/src/main/java/server/partyquest/CarnivalFactory.java b/src/main/java/server/partyquest/CarnivalFactory.java index 3b852504df..450a08c080 100644 --- a/src/main/java/server/partyquest/CarnivalFactory.java +++ b/src/main/java/server/partyquest/CarnivalFactory.java @@ -90,26 +90,9 @@ public class CarnivalFactory { return guardians.get(id); } - public static class MCSkill { - - public int cpLoss; - public MobSkillType mobSkillType; - public int level; - public boolean targetsAll; - - public MCSkill(int _cpLoss, MobSkillType mobSkillType, int _level, boolean _targetsAll) { - cpLoss = _cpLoss; - mobSkillType = mobSkillType; - level = _level; - targetsAll = _targetsAll; - } - + public record MCSkill(int cpLoss, MobSkillType mobSkillType, int level, boolean targetsAll) { public MobSkill getSkill() { - return getMobSkill(mobSkillType, level); - } - - public static MobSkill getMobSkill(MobSkillType type, int level) { - return MobSkillFactory.getMobSkill(type, level); + return MobSkillFactory.getMobSkill(mobSkillType, level); } public Disease getDisease() {