public float[] fireEffect(EffectActionTypes[] keys, float[] paramList, AbstractInteractive target) { List<AbstracteEffect> effectList = getEffectListByKey(new HashSet<EffectActionTypes>(keys)); foreach (AbstracteEffect effect in effectList) { paramList = effect.execute(keys, paramList, target); } return paramList; }
public virtual float[] execute(EffectActionTypes[] keys, float[] paramsLis, AbstractInteractive target) { for (int i = 0; i < keys.Length; i++){ switch (keys[i]){ case EffectActionTypes.ON_START_CAPTURE : onStartCapture(target); break; case EffectActionTypes.ON_CAPTURE : onCapture(target); break; case EffectActionTypes.ON_DIE : onDie(); break; case EffectActionTypes.ON_START_COMBAT : onStartCombat(target); break; case EffectActionTypes.ON_TAKE_DMG : onTakeDmg(target); break; case EffectActionTypes.ON_ATTACK : onAttack(target); break; case EffectActionTypes.GET_ARMOR : paramsLis[i] = getArmor(paramsLis[i]); break; case EffectActionTypes.GET_ATTACK_TIME : paramsLis[i] = getAttackTime(paramsLis[i]); break; case EffectActionTypes.GET_CAPTURE_TIME : paramsLis[i] = getCaptureTime(paramsLis[i]); break; case EffectActionTypes.GET_DMG : paramsLis[i] = getDmg(paramsLis[i]); break; } } return paramsLis; }