コード例 #1
0
 @Override
 protected void executeOverride(final RunningEffect linkedRE, final boolean trigger) {
   final ArrayList<RunningEffect> effectToRemove = new ArrayList<RunningEffect>();
   if (this.m_target == null) {
     StateDecurse.m_logger.warn(
         (Object) "[Effect] Impossible d'appliquer un desenvoutement car la cible est null");
     this.setNotified(true);
     return;
   }
   final RunningEffectManager effectManager = this.m_target.getRunningEffectManager();
   if (effectManager == null) {
     return;
   }
   int newStateLevel = 0;
   newStateLevel = this.computeEffectsToRemove(effectToRemove, effectManager, newStateLevel);
   if (effectToRemove.isEmpty()) {
     this.setNotified();
     return;
   }
   for (final RunningEffect anEffectToRemove : effectToRemove) {
     ((TimedRunningEffectManager) effectManager).removeEffect(anEffectToRemove, true);
   }
   this.notifyExecution(linkedRE, trigger);
   if (this.isValueComputationEnabled() && this.m_decreaseLevel && newStateLevel > 0) {
     this.applyNewState(newStateLevel, linkedRE);
   }
 }