public bool HandleEffects(StatusEffects statusEffect) { for(int i = affectedStatusEffects.Count-1; i >= 0; i--) { if(statusEffect.GetType() == affectedStatusEffects[i].GetType()) { int result = statusEffect.compare(affectedStatusEffects[i]); if (result == -2) //not even same elemental type continue; else if (result == -1) //weaker so give up { return false; } else if (result == 0) // equal so just refresh { affectedStatusEffects[i].refresh(); return false; } else //stronger so replate { affectedStatusEffects.Add(statusEffect); affectedStatusEffects.Remove(affectedStatusEffects[i]); return true; } } } affectedStatusEffects.Add(statusEffect); return true; }