Rename and clean up MapleStatEffect

This commit is contained in:
P0nk
2021-09-09 22:51:02 +02:00
parent ca4bcd80d1
commit 18e1f6c50b
21 changed files with 225 additions and 231 deletions

View File

@@ -1876,7 +1876,7 @@ public class Character extends AbstractCharacterObject {
List<Character> pchr = this.getPartyMembersOnSameMap();
if (!ItemConstants.isPartyAllcure(itemid)) {
MapleStatEffect mse = ii.getItemEffect(itemid);
StatEffect mse = ii.getItemEffect(itemid);
if (!pchr.isEmpty()) {
for (Character mc : pchr) {
@@ -3332,7 +3332,7 @@ public class Character extends AbstractCharacterObject {
}
}
public MapleStatEffect getBuffEffect(BuffStat stat) {
public StatEffect getBuffEffect(BuffStat stat) {
effLock.lock();
chrLock.lock();
try {
@@ -3633,7 +3633,7 @@ public class Character extends AbstractCharacterObject {
effLock.unlock();
}
} else {
Map<MapleStatEffect, Long> mseBuffs = new LinkedHashMap<>();
Map<StatEffect, Long> mseBuffs = new LinkedHashMap<>();
effLock.lock();
chrLock.lock();
@@ -3648,7 +3648,7 @@ public class Character extends AbstractCharacterObject {
effLock.unlock();
}
for (Entry<MapleStatEffect, Long> mse : mseBuffs.entrySet()) {
for (Entry<StatEffect, Long> mse : mseBuffs.entrySet()) {
cancelEffect(mse.getKey(), false, mse.getValue());
}
}
@@ -3758,7 +3758,7 @@ public class Character extends AbstractCharacterObject {
cancelEffect(ii.getItemEffect(itemId), false, -1);
}
public boolean cancelEffect(MapleStatEffect effect, boolean overwrite, long startTime) {
public boolean cancelEffect(StatEffect effect, boolean overwrite, long startTime) {
boolean ret;
prtLock.lock();
@@ -3786,7 +3786,7 @@ public class Character extends AbstractCharacterObject {
return ret;
}
private static MapleStatEffect getEffectFromBuffSource(Map<BuffStat, MapleBuffStatValueHolder> buffSource) {
private static StatEffect getEffectFromBuffSource(Map<BuffStat, MapleBuffStatValueHolder> buffSource) {
try {
return buffSource.entrySet().iterator().next().getValue().effect;
} catch (Exception e) {
@@ -3794,7 +3794,7 @@ public class Character extends AbstractCharacterObject {
}
}
private boolean isUpdatingEffect(Set<MapleStatEffect> activeEffects, MapleStatEffect mse) {
private boolean isUpdatingEffect(Set<StatEffect> activeEffects, StatEffect mse) {
if (mse == null) {
return false;
}
@@ -3812,14 +3812,14 @@ public class Character extends AbstractCharacterObject {
effLock.lock(); // thanks davidlafriniere, maple006, RedHat for pointing a deadlock occurring here
try {
Set<BuffStat> updatedBuffs = new LinkedHashSet<>();
Set<MapleStatEffect> activeEffects = new LinkedHashSet<>();
Set<StatEffect> activeEffects = new LinkedHashSet<>();
for (MapleBuffStatValueHolder mse : effects.values()) {
activeEffects.add(mse.effect);
}
for (Map<BuffStat, MapleBuffStatValueHolder> buff : buffEffects.values()) {
MapleStatEffect mse = getEffectFromBuffSource(buff);
StatEffect mse = getEffectFromBuffSource(buff);
if (isUpdatingEffect(activeEffects, mse)) {
for (Pair<BuffStat, Integer> p : mse.getStatups()) {
updatedBuffs.add(p.getLeft());
@@ -3854,14 +3854,14 @@ public class Character extends AbstractCharacterObject {
}
}
propagateBuffEffectUpdates(new LinkedHashMap<Integer, Pair<MapleStatEffect, Long>>(), retrievedStats, removedStats);
propagateBuffEffectUpdates(new LinkedHashMap<Integer, Pair<StatEffect, Long>>(), retrievedStats, removedStats);
} finally {
chrLock.unlock();
effLock.unlock();
}
}
private boolean cancelEffect(MapleStatEffect effect, boolean overwrite, long startTime, boolean firstCancel) {
private boolean cancelEffect(StatEffect effect, boolean overwrite, long startTime, boolean firstCancel) {
Set<BuffStat> removedStats = new LinkedHashSet<>();
dropBuffStats(cancelEffectInternal(effect, overwrite, startTime, removedStats));
updateLocalStats();
@@ -3870,7 +3870,7 @@ public class Character extends AbstractCharacterObject {
return !removedStats.isEmpty();
}
private List<Pair<BuffStat, MapleBuffStatValueHolder>> cancelEffectInternal(MapleStatEffect effect, boolean overwrite, long startTime, Set<BuffStat> removedStats) {
private List<Pair<BuffStat, MapleBuffStatValueHolder>> cancelEffectInternal(StatEffect effect, boolean overwrite, long startTime, Set<BuffStat> removedStats) {
Map<BuffStat, MapleBuffStatValueHolder> buffstats = null;
BuffStat ombs;
if (!overwrite) { // is removing the source effect, meaning every effect from this srcid is being purged
@@ -3949,7 +3949,7 @@ public class Character extends AbstractCharacterObject {
cancelPlayerBuffs(Arrays.asList(stat));
}
private Map<BuffStat, MapleBuffStatValueHolder> extractCurrentBuffStats(MapleStatEffect effect) {
private Map<BuffStat, MapleBuffStatValueHolder> extractCurrentBuffStats(StatEffect effect) {
chrLock.lock();
try {
Map<BuffStat, MapleBuffStatValueHolder> stats = new LinkedHashMap<>();
@@ -3968,7 +3968,7 @@ public class Character extends AbstractCharacterObject {
}
}
private Map<BuffStat, MapleBuffStatValueHolder> extractLeastRelevantStatEffectsIfFull(MapleStatEffect effect) {
private Map<BuffStat, MapleBuffStatValueHolder> extractLeastRelevantStatEffectsIfFull(StatEffect effect) {
Map<BuffStat, MapleBuffStatValueHolder> extractedStatBuffs = new LinkedHashMap<>();
chrLock.lock();
@@ -4035,16 +4035,16 @@ public class Character extends AbstractCharacterObject {
}
}
private static Map<MapleStatEffect, Integer> topologicalSortLeafStatCount(Map<BuffStat, Stack<MapleStatEffect>> buffStack) {
Map<MapleStatEffect, Integer> leafBuffCount = new LinkedHashMap<>();
private static Map<StatEffect, Integer> topologicalSortLeafStatCount(Map<BuffStat, Stack<StatEffect>> buffStack) {
Map<StatEffect, Integer> leafBuffCount = new LinkedHashMap<>();
for (Entry<BuffStat, Stack<MapleStatEffect>> e : buffStack.entrySet()) {
Stack<MapleStatEffect> mseStack = e.getValue();
for (Entry<BuffStat, Stack<StatEffect>> e : buffStack.entrySet()) {
Stack<StatEffect> mseStack = e.getValue();
if (mseStack.isEmpty()) {
continue;
}
MapleStatEffect mse = mseStack.peek();
StatEffect mse = mseStack.peek();
Integer count = leafBuffCount.get(mse);
if (count == null) {
leafBuffCount.put(mse, 1);
@@ -4056,12 +4056,12 @@ public class Character extends AbstractCharacterObject {
return leafBuffCount;
}
private static List<MapleStatEffect> topologicalSortRemoveLeafStats(Map<MapleStatEffect, Set<BuffStat>> stackedBuffStats, Map<BuffStat, Stack<MapleStatEffect>> buffStack, Map<MapleStatEffect, Integer> leafStatCount) {
List<MapleStatEffect> clearedStatEffects = new LinkedList<>();
private static List<StatEffect> topologicalSortRemoveLeafStats(Map<StatEffect, Set<BuffStat>> stackedBuffStats, Map<BuffStat, Stack<StatEffect>> buffStack, Map<StatEffect, Integer> leafStatCount) {
List<StatEffect> clearedStatEffects = new LinkedList<>();
Set<BuffStat> clearedStats = new LinkedHashSet<>();
for (Entry<MapleStatEffect, Integer> e : leafStatCount.entrySet()) {
MapleStatEffect mse = e.getKey();
for (Entry<StatEffect, Integer> e : leafStatCount.entrySet()) {
StatEffect mse = e.getKey();
if (stackedBuffStats.get(mse).size() <= e.getValue()) {
clearedStatEffects.add(mse);
@@ -4073,36 +4073,36 @@ public class Character extends AbstractCharacterObject {
}
for (BuffStat mbs : clearedStats) {
MapleStatEffect mse = buffStack.get(mbs).pop();
StatEffect mse = buffStack.get(mbs).pop();
stackedBuffStats.get(mse).remove(mbs);
}
return clearedStatEffects;
}
private static void topologicalSortRebaseLeafStats(Map<MapleStatEffect, Set<BuffStat>> stackedBuffStats, Map<BuffStat, Stack<MapleStatEffect>> buffStack) {
for (Entry<BuffStat, Stack<MapleStatEffect>> e : buffStack.entrySet()) {
Stack<MapleStatEffect> mseStack = e.getValue();
private static void topologicalSortRebaseLeafStats(Map<StatEffect, Set<BuffStat>> stackedBuffStats, Map<BuffStat, Stack<StatEffect>> buffStack) {
for (Entry<BuffStat, Stack<StatEffect>> e : buffStack.entrySet()) {
Stack<StatEffect> mseStack = e.getValue();
if (!mseStack.isEmpty()) {
MapleStatEffect mse = mseStack.pop();
StatEffect mse = mseStack.pop();
stackedBuffStats.get(mse).remove(e.getKey());
}
}
}
private static List<MapleStatEffect> topologicalSortEffects(Map<BuffStat, List<Pair<MapleStatEffect, Integer>>> buffEffects) {
Map<MapleStatEffect, Set<BuffStat>> stackedBuffStats = new LinkedHashMap<>();
Map<BuffStat, Stack<MapleStatEffect>> buffStack = new LinkedHashMap<>();
private static List<StatEffect> topologicalSortEffects(Map<BuffStat, List<Pair<StatEffect, Integer>>> buffEffects) {
Map<StatEffect, Set<BuffStat>> stackedBuffStats = new LinkedHashMap<>();
Map<BuffStat, Stack<StatEffect>> buffStack = new LinkedHashMap<>();
for (Entry<BuffStat, List<Pair<MapleStatEffect, Integer>>> e : buffEffects.entrySet()) {
for (Entry<BuffStat, List<Pair<StatEffect, Integer>>> e : buffEffects.entrySet()) {
BuffStat mbs = e.getKey();
Stack<MapleStatEffect> mbsStack = new Stack<>();
Stack<StatEffect> mbsStack = new Stack<>();
buffStack.put(mbs, mbsStack);
for (Pair<MapleStatEffect, Integer> emse : e.getValue()) {
MapleStatEffect mse = emse.getLeft();
for (Pair<StatEffect, Integer> emse : e.getValue()) {
StatEffect mse = emse.getLeft();
mbsStack.push(mse);
Set<BuffStat> mbsStats = stackedBuffStats.get(mse);
@@ -4115,14 +4115,14 @@ public class Character extends AbstractCharacterObject {
}
}
List<MapleStatEffect> buffList = new LinkedList<>();
List<StatEffect> buffList = new LinkedList<>();
while (true) {
Map<MapleStatEffect, Integer> leafStatCount = topologicalSortLeafStatCount(buffStack);
Map<StatEffect, Integer> leafStatCount = topologicalSortLeafStatCount(buffStack);
if (leafStatCount.isEmpty()) {
break;
}
List<MapleStatEffect> clearedNodes = topologicalSortRemoveLeafStats(stackedBuffStats, buffStack, leafStatCount);
List<StatEffect> clearedNodes = topologicalSortRemoveLeafStats(stackedBuffStats, buffStack, leafStatCount);
if (clearedNodes.isEmpty()) {
topologicalSortRebaseLeafStats(stackedBuffStats, buffStack);
} else {
@@ -4133,16 +4133,16 @@ public class Character extends AbstractCharacterObject {
return buffList;
}
private static List<MapleStatEffect> sortEffectsList(Map<MapleStatEffect, Integer> updateEffectsList) {
Map<BuffStat, List<Pair<MapleStatEffect, Integer>>> buffEffects = new LinkedHashMap<>();
private static List<StatEffect> sortEffectsList(Map<StatEffect, Integer> updateEffectsList) {
Map<BuffStat, List<Pair<StatEffect, Integer>>> buffEffects = new LinkedHashMap<>();
for (Entry<MapleStatEffect, Integer> p : updateEffectsList.entrySet()) {
MapleStatEffect mse = p.getKey();
for (Entry<StatEffect, Integer> p : updateEffectsList.entrySet()) {
StatEffect mse = p.getKey();
for (Pair<BuffStat, Integer> statup : mse.getStatups()) {
BuffStat stat = statup.getLeft();
List<Pair<MapleStatEffect, Integer>> statBuffs = buffEffects.get(stat);
List<Pair<StatEffect, Integer>> statBuffs = buffEffects.get(stat);
if (statBuffs == null) {
statBuffs = new ArrayList<>();
buffEffects.put(stat, statBuffs);
@@ -4152,23 +4152,23 @@ public class Character extends AbstractCharacterObject {
}
}
Comparator cmp = new Comparator<Pair<MapleStatEffect, Integer>>() {
Comparator cmp = new Comparator<Pair<StatEffect, Integer>>() {
@Override
public int compare(Pair<MapleStatEffect, Integer> o1, Pair<MapleStatEffect, Integer> o2) {
public int compare(Pair<StatEffect, Integer> o1, Pair<StatEffect, Integer> o2) {
return o2.getRight().compareTo(o1.getRight());
}
};
for (Entry<BuffStat, List<Pair<MapleStatEffect, Integer>>> statBuffs : buffEffects.entrySet()) {
for (Entry<BuffStat, List<Pair<StatEffect, Integer>>> statBuffs : buffEffects.entrySet()) {
Collections.sort(statBuffs.getValue(), cmp);
}
return topologicalSortEffects(buffEffects);
}
private List<Pair<Integer, Pair<MapleStatEffect, Long>>> propagatePriorityBuffEffectUpdates(Set<BuffStat> retrievedStats) {
List<Pair<Integer, Pair<MapleStatEffect, Long>>> priorityUpdateEffects = new LinkedList<>();
Map<MapleBuffStatValueHolder, MapleStatEffect> yokeStats = new LinkedHashMap<>();
private List<Pair<Integer, Pair<StatEffect, Long>>> propagatePriorityBuffEffectUpdates(Set<BuffStat> retrievedStats) {
List<Pair<Integer, Pair<StatEffect, Long>>> priorityUpdateEffects = new LinkedList<>();
Map<MapleBuffStatValueHolder, StatEffect> yokeStats = new LinkedHashMap<>();
// priority buffsources: override buffstats for the client to perceive those as "currently buffed"
Set<MapleBuffStatValueHolder> mbsvhList = new LinkedHashSet<>();
@@ -4177,7 +4177,7 @@ public class Character extends AbstractCharacterObject {
}
for (MapleBuffStatValueHolder mbsvh : mbsvhList) {
MapleStatEffect mse = mbsvh.effect;
StatEffect mse = mbsvh.effect;
int buffSourceId = mse.getBuffSourceId();
if (isPriorityBuffSourceid(buffSourceId) && !hasActiveBuff(buffSourceId)) {
for (Pair<BuffStat, Integer> ps : mse.getStatups()) {
@@ -4194,9 +4194,9 @@ public class Character extends AbstractCharacterObject {
}
}
for (Entry<MapleBuffStatValueHolder, MapleStatEffect> e : yokeStats.entrySet()) {
for (Entry<MapleBuffStatValueHolder, StatEffect> e : yokeStats.entrySet()) {
MapleBuffStatValueHolder mbsvhPriority = e.getKey();
MapleStatEffect mseActive = e.getValue();
StatEffect mseActive = e.getValue();
priorityUpdateEffects.add(new Pair<>(mseActive.getBuffSourceId(), new Pair<>(mbsvhPriority.effect, mbsvhPriority.startTime)));
}
@@ -4204,13 +4204,13 @@ public class Character extends AbstractCharacterObject {
return priorityUpdateEffects;
}
private void propagateBuffEffectUpdates(Map<Integer, Pair<MapleStatEffect, Long>> retrievedEffects, Set<BuffStat> retrievedStats, Set<BuffStat> removedStats) {
private void propagateBuffEffectUpdates(Map<Integer, Pair<StatEffect, Long>> retrievedEffects, Set<BuffStat> retrievedStats, Set<BuffStat> removedStats) {
cancelInactiveBuffStats(retrievedStats, removedStats);
if (retrievedStats.isEmpty()) {
return;
}
Map<BuffStat, Pair<Integer, MapleStatEffect>> maxBuffValue = new LinkedHashMap<>();
Map<BuffStat, Pair<Integer, StatEffect>> maxBuffValue = new LinkedHashMap<>();
for (BuffStat mbs : retrievedStats) {
MapleBuffStatValueHolder mbsvh = effects.get(mbs);
if (mbsvh != null) {
@@ -4220,19 +4220,19 @@ public class Character extends AbstractCharacterObject {
maxBuffValue.put(mbs, new Pair<>(Integer.MIN_VALUE, null));
}
Map<MapleStatEffect, Integer> updateEffects = new LinkedHashMap<>();
Map<StatEffect, Integer> updateEffects = new LinkedHashMap<>();
List<MapleStatEffect> recalcMseList = new LinkedList<>();
for (Entry<Integer, Pair<MapleStatEffect, Long>> re : retrievedEffects.entrySet()) {
List<StatEffect> recalcMseList = new LinkedList<>();
for (Entry<Integer, Pair<StatEffect, Long>> re : retrievedEffects.entrySet()) {
recalcMseList.add(re.getValue().getLeft());
}
boolean mageJob = this.getJobStyle() == Job.MAGICIAN;
do {
List<MapleStatEffect> mseList = recalcMseList;
List<StatEffect> mseList = recalcMseList;
recalcMseList = new LinkedList<>();
for (MapleStatEffect mse : mseList) {
for (StatEffect mse : mseList) {
int maxEffectiveStatup = Integer.MIN_VALUE;
for (Pair<BuffStat, Integer> st : mse.getStatups()) {
BuffStat mbs = st.getLeft();
@@ -4248,13 +4248,13 @@ public class Character extends AbstractCharacterObject {
}
}
Pair<Integer, MapleStatEffect> mbv = maxBuffValue.get(mbs);
Pair<Integer, StatEffect> mbv = maxBuffValue.get(mbs);
if (mbv == null) {
continue;
}
if (mbv.getLeft() < st.getRight()) {
MapleStatEffect msbe = mbv.getRight();
StatEffect msbe = mbv.getRight();
if (msbe != null) {
recalcMseList.add(msbe);
}
@@ -4273,16 +4273,16 @@ public class Character extends AbstractCharacterObject {
}
} while (!recalcMseList.isEmpty());
List<MapleStatEffect> updateEffectsList = sortEffectsList(updateEffects);
List<StatEffect> updateEffectsList = sortEffectsList(updateEffects);
List<Pair<Integer, Pair<MapleStatEffect, Long>>> toUpdateEffects = new LinkedList<>();
for (MapleStatEffect mse : updateEffectsList) {
List<Pair<Integer, Pair<StatEffect, Long>>> toUpdateEffects = new LinkedList<>();
for (StatEffect mse : updateEffectsList) {
toUpdateEffects.add(new Pair<>(mse.getBuffSourceId(), retrievedEffects.get(mse.getBuffSourceId())));
}
List<Pair<BuffStat, Integer>> activeStatups = new LinkedList<>();
for (Pair<Integer, Pair<MapleStatEffect, Long>> lmse : toUpdateEffects) {
Pair<MapleStatEffect, Long> msel = lmse.getRight();
for (Pair<Integer, Pair<StatEffect, Long>> lmse : toUpdateEffects) {
Pair<StatEffect, Long> msel = lmse.getRight();
for (Pair<BuffStat, Integer> statup : getActiveStatupsFromSourceid(lmse.getLeft())) {
activeStatups.add(statup);
@@ -4292,9 +4292,9 @@ public class Character extends AbstractCharacterObject {
activeStatups.clear();
}
List<Pair<Integer, Pair<MapleStatEffect, Long>>> priorityEffects = propagatePriorityBuffEffectUpdates(retrievedStats);
for (Pair<Integer, Pair<MapleStatEffect, Long>> lmse : priorityEffects) {
Pair<MapleStatEffect, Long> msel = lmse.getRight();
List<Pair<Integer, Pair<StatEffect, Long>>> priorityEffects = propagatePriorityBuffEffectUpdates(retrievedStats);
for (Pair<Integer, Pair<StatEffect, Long>> lmse : priorityEffects) {
Pair<StatEffect, Long> msel = lmse.getRight();
for (Pair<BuffStat, Integer> statup : getActiveStatupsFromSourceid(lmse.getLeft())) {
activeStatups.add(statup);
@@ -4312,7 +4312,7 @@ public class Character extends AbstractCharacterObject {
}
}
private static BuffStat getSingletonStatupFromEffect(MapleStatEffect mse) {
private static BuffStat getSingletonStatupFromEffect(StatEffect mse) {
for (Pair<BuffStat, Integer> mbs : mse.getStatups()) {
if (isSingletonStatup(mbs.getLeft())) {
return mbs.getLeft();
@@ -4375,7 +4375,7 @@ public class Character extends AbstractCharacterObject {
buffEffectsCount.put(stat, val);
}
public void registerEffect(MapleStatEffect effect, long starttime, long expirationtime, boolean isSilent) {
public void registerEffect(StatEffect effect, long starttime, long expirationtime, boolean isSilent) {
if (effect.isDragonBlood()) {
prepareDragonBlood(effect);
} else if (effect.isBerserk()) {
@@ -4391,7 +4391,7 @@ public class Character extends AbstractCharacterObject {
Skill bHealing = SkillFactory.getSkill(DarkKnight.AURA_OF_BEHOLDER);
int bHealingLvl = getSkillLevel(bHealing);
if (bHealingLvl > 0) {
final MapleStatEffect healEffect = bHealing.getEffect(bHealingLvl);
final StatEffect healEffect = bHealing.getEffect(bHealingLvl);
int healInterval = healEffect.getX() * 1000;
beholderHealingSchedule = TimerManager.getInstance().register(new Runnable() {
@Override
@@ -4409,7 +4409,7 @@ public class Character extends AbstractCharacterObject {
}
Skill bBuff = SkillFactory.getSkill(DarkKnight.HEX_OF_BEHOLDER);
if (getSkillLevel(bBuff) > 0) {
final MapleStatEffect buffEffect = bBuff.getEffect(getSkillLevel(bBuff));
final StatEffect buffEffect = bBuff.getEffect(getSkillLevel(bBuff));
int buffInterval = buffEffect.getX() * 1000;
beholderBuffSchedule = TimerManager.getInstance().register(new Runnable() {
@Override
@@ -4498,7 +4498,7 @@ public class Character extends AbstractCharacterObject {
boolean active = effect.isActive(this);
if (YamlConfig.config.server.USE_BUFF_MOST_SIGNIFICANT) {
toDeploy = new LinkedHashMap<>();
Map<Integer, Pair<MapleStatEffect, Long>> retrievedEffects = new LinkedHashMap<>();
Map<Integer, Pair<StatEffect, Long>> retrievedEffects = new LinkedHashMap<>();
Set<BuffStat> retrievedStats = new LinkedHashSet<>();
for (Entry<BuffStat, MapleBuffStatValueHolder> statup : appliedStatups.entrySet()) {
MapleBuffStatValueHolder mbsvh = effects.get(statup.getKey());
@@ -4583,7 +4583,7 @@ public class Character extends AbstractCharacterObject {
int skillId = getJobMapChair(job);
int skillLv = getSkillLevel(skillId);
if (skillLv > 0) {
MapleStatEffect mapChairSkill = SkillFactory.getSkill(skillId).getEffect(skillLv);
StatEffect mapChairSkill = SkillFactory.getSkill(skillId).getEffect(skillLv);
return cancelEffect(mapChairSkill, false, -1);
}
@@ -4598,7 +4598,7 @@ public class Character extends AbstractCharacterObject {
int skillId = getJobMapChair(job);
int skillLv = getSkillLevel(skillId);
if (skillLv > 0) {
MapleStatEffect mapChairSkill = SkillFactory.getSkill(skillId).getEffect(skillLv);
StatEffect mapChairSkill = SkillFactory.getSkill(skillId).getEffect(skillLv);
mapChairSkill.applyTo(this);
return true;
}
@@ -4933,12 +4933,12 @@ public class Character extends AbstractCharacterObject {
float rate = 100.0f;
if (itemid == 0) {
MapleStatEffect mseMeso = getBuffEffect(BuffStat.MESO_UP_BY_ITEM);
StatEffect mseMeso = getBuffEffect(BuffStat.MESO_UP_BY_ITEM);
if (mseMeso != null) {
rate += mseMeso.getCardRate(mapid, itemid);
}
} else {
MapleStatEffect mseItem = getBuffEffect(BuffStat.ITEM_UP_BY_ITEM);
StatEffect mseItem = getBuffEffect(BuffStat.ITEM_UP_BY_ITEM);
if (mseItem != null) {
rate += mseItem.getCardRate(mapid, itemid);
}
@@ -5848,7 +5848,7 @@ public class Character extends AbstractCharacterObject {
return Collections.unmodifiableList(ret);
}
public MapleStatEffect getStatForBuff(BuffStat effect) {
public StatEffect getStatForBuff(BuffStat effect) {
effLock.lock();
chrLock.lock();
try {
@@ -5948,7 +5948,7 @@ public class Character extends AbstractCharacterObject {
public void handleEnergyChargeGain() { // to get here energychargelevel has to be > 0
Skill energycharge = isCygnus() ? SkillFactory.getSkill(ThunderBreaker.ENERGY_CHARGE) : SkillFactory.getSkill(Marauder.ENERGY_CHARGE);
MapleStatEffect ceffect;
StatEffect ceffect;
ceffect = energycharge.getEffect(getSkillLevel(energycharge));
TimerManager tMan = TimerManager.getInstance();
if (energybar < 10000) {
@@ -6806,7 +6806,7 @@ public class Character extends AbstractCharacterObject {
return;
}
MapleStatEffect mse = ii.getItemEffect(couponid);
StatEffect mse = ii.getItemEffect(couponid);
mse.applyTo(this);
}
@@ -7472,12 +7472,12 @@ public class Character extends AbstractCharacterObject {
private static class MapleBuffStatValueHolder {
public MapleStatEffect effect;
public StatEffect effect;
public long startTime;
public int value;
public boolean bestApplied;
public MapleBuffStatValueHolder(MapleStatEffect effect, long startTime, int value) {
public MapleBuffStatValueHolder(StatEffect effect, long startTime, int value) {
super();
this.effect = effect;
this.startTime = startTime;
@@ -7680,7 +7680,7 @@ public class Character extends AbstractCharacterObject {
setStance(0);
}
private void prepareDragonBlood(final MapleStatEffect bloodEffect) {
private void prepareDragonBlood(final StatEffect bloodEffect) {
if (dragonBloodSchedule != null) {
dragonBloodSchedule.cancel(false);
}
@@ -7769,14 +7769,14 @@ public class Character extends AbstractCharacterObject {
localmaxhp = Math.min(30000, localmaxhp);
localmaxmp = Math.min(30000, localmaxmp);
MapleStatEffect combo = getBuffEffect(BuffStat.ARAN_COMBO);
StatEffect combo = getBuffEffect(BuffStat.ARAN_COMBO);
if (combo != null) {
localwatk += combo.getX();
}
if (energybar == 15000) {
Skill energycharge = isCygnus() ? SkillFactory.getSkill(ThunderBreaker.ENERGY_CHARGE) : SkillFactory.getSkill(Marauder.ENERGY_CHARGE);
MapleStatEffect ceffect = energycharge.getEffect(getSkillLevel(energycharge));
StatEffect ceffect = energycharge.getEffect(getSkillLevel(energycharge));
localwatk += ceffect.getWatk();
}