root/trunk/AE-go_GameServer/src/com/aionemu/gameserver/controllers/effect/EffectController.java
| 1515 | 1521 | ||
|---|---|---|---|
69 | { | 69 | { |
70 | Map<String, Effect> mapToUpdate = getMapForEffect(effect); | 70 | Map<String, Effect> mapToUpdate = getMapForEffect(effect); |
71 | 71 | ||
72 | if(mapToUpdate.containsKey(effect.getStack())) | 72 | Effect existingEffect = mapToUpdate.get(effect.getStack()); |
73 | if(existingEffect != null) | ||
73 | { | 74 | { |
74 | Effect existingEffect = mapToUpdate.get(effect.getStack()); | 75 | // check stack level |
75 | | ||
76 | //check stack level | ||
77 | if(existingEffect.getSkillStackLvl() > effect.getSkillStackLvl()) | 76 | if(existingEffect.getSkillStackLvl() > effect.getSkillStackLvl()) |
78 | return; | 77 | return; |
79 | //check skill level (when stack level same) | 78 | // check skill level (when stack level same) |
80 | if(existingEffect.getSkillStackLvl() == effect.getSkillStackLvl() | 79 | if(existingEffect.getSkillStackLvl() == effect.getSkillStackLvl() |
81 | && existingEffect.getSkillLevel() > effect.getSkillLevel()) | 80 | && existingEffect.getSkillLevel() > effect.getSkillLevel()) |
82 | return; | 81 | return; |
83 | | 82 | |
84 | existingEffect.endEffect(); | 83 | existingEffect.endEffect(); |
85 | } | 84 | } |
86 | 85 | ||
86 | if(effect.isToggle() && mapToUpdate.size() >= 3) | ||
87 | { | ||
88 | Iterator<Effect> iter = mapToUpdate.values().iterator(); | ||
89 | Effect nextEffect = iter.next(); | ||
90 | nextEffect.endEffect(); | ||
91 | iter.remove(); | ||
92 | } | ||
93 | |||
87 | mapToUpdate.put(effect.getStack(), effect); | 94 | mapToUpdate.put(effect.getStack(), effect); |
88 | effect.startEffect(); | 95 | effect.startEffect(); |
89 | | 96 | |
90 | if(!effect.isPassive()) | 97 | if(!effect.isPassive()) |
91 | { | 98 | { |
92 | // effect icon updates | 99 | // effect icon updates |
... | ... | ||
170 | { | 177 | { |
171 | for(Effect effect : abnormalEffectMap.values()){ | 178 | for(Effect effect : abnormalEffectMap.values()){ |
172 | if(effect.getSkillId()==skillid){ | 179 | if(effect.getSkillId()==skillid){ |
173 | abnormalEffectMap.remove(effect.getStack()); | ||
174 | effect.endEffect(); | 180 | effect.endEffect(); |
181 | abnormalEffectMap.remove(effect.getStack()); | ||
175 | } | 182 | } |
176 | } | 183 | } |
177 | 184 | ||
... | ... | ||
190 | { | 197 | { |
191 | for(Effect effect : abnormalEffectMap.values()){ | 198 | for(Effect effect : abnormalEffectMap.values()){ |
192 | if(effect.containsEffectId(effectId)){ | 199 | if(effect.containsEffectId(effectId)){ |
193 | abnormalEffectMap.remove(effect.getStack()); | ||
194 | effect.endEffect(); | 200 | effect.endEffect(); |
201 | abnormalEffectMap.remove(effect.getStack()); | ||
195 | } | 202 | } |
196 | } | 203 | } |
197 | 204 | ||
... | ... | ||
211 | { | 218 | { |
212 | for(Effect effect : passiveEffectMap.values()){ | 219 | for(Effect effect : passiveEffectMap.values()){ |
213 | if(effect.getSkillId()==skillid){ | 220 | if(effect.getSkillId()==skillid){ |
214 | passiveEffectMap.remove(effect.getStack()); | ||
215 | effect.endEffect(); | 221 | effect.endEffect(); |
222 | passiveEffectMap.remove(effect.getStack()); | ||
216 | } | 223 | } |
217 | } | 224 | } |
218 | } | 225 | } |
... | ... | ||
225 | { | 232 | { |
226 | for(Effect effect : noshowEffects.values()){ | 233 | for(Effect effect : noshowEffects.values()){ |
227 | if(effect.getSkillId()==skillid){ | 234 | if(effect.getSkillId()==skillid){ |
228 | noshowEffects.remove(effect.getStack()); | ||
229 | effect.endEffect(); | 235 | effect.endEffect(); |
236 | noshowEffects.remove(effect.getStack()); | ||
230 | } | 237 | } |
231 | } | 238 | } |
232 | } | 239 | } |
... | ... | ||
241 | effect.endEffect(); | 248 | effect.endEffect(); |
242 | } | 249 | } |
243 | abnormalEffectMap.clear(); | 250 | abnormalEffectMap.clear(); |
251 | for(Effect effect : noshowEffects.values()) | ||
252 | { | ||
253 | effect.endEffect(); | ||
254 | } | ||
255 | noshowEffects.clear(); | ||
244 | } | 256 | } |
245 | 257 | ||
246 | public void updatePlayerEffectIcons() | 258 | public void updatePlayerEffectIcons() |
Download diff