public override bool Execute(IDamageable self, IDamageable[] targets) { if (!base.Execute(self, targets)) { return(false); } bool flag = false; for (int i = 0; i < buffs.Length; i++) { if (buffs[i].ForSelf) { flag = self.Buff(buffs[i], durations[i]); } else { foreach (IDamageable target in targets) { if (target.Buff(buffs[i], durations[i])) { flag = true; } } } } return(flag); }