MobSkillFactory takes MobSkillType instead of int as id argument
This commit is contained in:
@@ -42,6 +42,7 @@ import provider.Data;
|
||||
import provider.DataTool;
|
||||
import server.life.MobSkill;
|
||||
import server.life.MobSkillFactory;
|
||||
import server.life.MobSkillType;
|
||||
import server.life.Monster;
|
||||
import server.maps.*;
|
||||
import server.partyquest.CarnivalFactory;
|
||||
@@ -1067,7 +1068,7 @@ public class StatEffect {
|
||||
applyfrom.dispelDebuff(debuff);
|
||||
}
|
||||
} else if (mobSkill > 0 && mobSkillLevel > 0) {
|
||||
MobSkill ms = MobSkillFactory.getMobSkill(mobSkill, mobSkillLevel);
|
||||
MobSkill ms = MobSkillFactory.getMobSkill(MobSkillType.from(mobSkill), mobSkillLevel);
|
||||
Disease dis = Disease.getBySkill(mobSkill);
|
||||
|
||||
if (target > 0) {
|
||||
|
||||
@@ -201,7 +201,7 @@ public class LifeFactory {
|
||||
animationTime += DataTool.getIntConvert("delay", effectEntry, 0);
|
||||
}
|
||||
|
||||
MobSkill skill = MobSkillFactory.getMobSkill(skillId, skillLv);
|
||||
MobSkill skill = MobSkillFactory.getMobSkill(MobSkillType.from(skillId), skillLv);
|
||||
mi.setMobSkillAnimationTime(skill, animationTime);
|
||||
}
|
||||
|
||||
|
||||
@@ -47,11 +47,10 @@ public class MobSkillFactory {
|
||||
private static final Lock readLock = readWriteLock.readLock();
|
||||
private static final Lock writeLock = readWriteLock.writeLock();
|
||||
|
||||
// TODO: take in MobSkillType as argument instead of skillId
|
||||
public static MobSkill getMobSkill(final int skillId, final int level) { // TODO: return Optional
|
||||
public static MobSkill getMobSkill(final MobSkillType type, final int level) { // TODO: return Optional
|
||||
readLock.lock();
|
||||
try {
|
||||
MobSkill ms = mobSkills.get(createKey(skillId, level));
|
||||
MobSkill ms = mobSkills.get(createKey(type, level));
|
||||
if (ms != null) {
|
||||
return ms;
|
||||
}
|
||||
@@ -59,18 +58,18 @@ public class MobSkillFactory {
|
||||
readLock.unlock();
|
||||
}
|
||||
|
||||
return loadMobSkill(skillId, level).orElse(null);
|
||||
return loadMobSkill(type, level).orElse(null);
|
||||
}
|
||||
|
||||
private static Optional<MobSkill> loadMobSkill(final int skillId, final int level) {
|
||||
private static Optional<MobSkill> loadMobSkill(final MobSkillType type, final int level) {
|
||||
writeLock.lock();
|
||||
try {
|
||||
MobSkill existingMs = mobSkills.get(createKey(skillId, level));
|
||||
MobSkill existingMs = mobSkills.get(createKey(type, level));
|
||||
if (existingMs != null) {
|
||||
return Optional.of(existingMs);
|
||||
}
|
||||
|
||||
Data skillData = skillRoot.getChildByPath(skillId + "/level/" + level);
|
||||
Data skillData = skillRoot.getChildByPath(type + "/level/" + level);
|
||||
if (skillData == null) {
|
||||
return Optional.empty();
|
||||
}
|
||||
@@ -103,7 +102,7 @@ public class MobSkillFactory {
|
||||
rb = (Point) rbData.getData();
|
||||
}
|
||||
|
||||
MobSkill loadedMobSkill = new MobSkill.Builder(MobSkillType.from(skillId), level)
|
||||
MobSkill loadedMobSkill = new MobSkill.Builder(type, level)
|
||||
.toSummon(toSummon)
|
||||
.cooltime(cooltime)
|
||||
.duration(duration)
|
||||
@@ -117,14 +116,14 @@ public class MobSkillFactory {
|
||||
.rb(rb)
|
||||
.build();
|
||||
|
||||
mobSkills.put(createKey(skillId, level), loadedMobSkill);
|
||||
mobSkills.put(createKey(type, level), loadedMobSkill);
|
||||
return Optional.of(loadedMobSkill);
|
||||
} finally {
|
||||
writeLock.unlock();
|
||||
}
|
||||
}
|
||||
|
||||
private static String createKey(int skillId, int skillLevel) {
|
||||
return skillId + "" + skillLevel;
|
||||
private static String createKey(MobSkillType type, int skillLevel) {
|
||||
return type.getId() + "" + skillLevel;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import provider.DataTool;
|
||||
import provider.wz.WZFiles;
|
||||
import server.life.MobSkill;
|
||||
import server.life.MobSkillFactory;
|
||||
import server.life.MobSkillType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@@ -94,7 +95,7 @@ public class CarnivalFactory {
|
||||
}
|
||||
|
||||
public static MobSkill getMobSkill(int skillid, int level) {
|
||||
return MobSkillFactory.getMobSkill(skillid, level);
|
||||
return MobSkillFactory.getMobSkill(MobSkillType.from(skillid), level);
|
||||
}
|
||||
|
||||
public Disease getDisease() {
|
||||
|
||||
Reference in New Issue
Block a user