public void ReceiveAilment(Ailment ailment) { if (CurrentAilments.ContainsKey(ailment.Name) || !isAilmentApplied(ailment)) { return; } CurrentAilments.Add(ailment.Name, ailment); }
public string TriggerAilments(ICombative attacker) { var logMessage = ""; if (CurrentAilments.Count == 0) { return(""); } foreach (var ailment in CurrentAilments.Values) { ailment.ApplyAilment(this); if (CurrentAilments.ContainsKey(ailment.Name)) { logMessage += $"|{Name} was afflicted by {ailment.Name}! \n"; } if (ailment.Name.Equals("leech-seed")) { System.Console.WriteLine("BINGO"); var healthLeeched = ((Leech)ailment).healthLeeched(this); attacker.Heal((int)healthLeeched); } else if (ailment.Name.Equals("confusion")) { logMessage += $"|{Name} is confused!"; var confusionDamage = ((Confusion)ailment).GetDamage(this); if (((Confusion)ailment).isTargetOther(PokeType.Name)) { attacker.TakeDamage((int)confusionDamage); } else { logMessage += $"|{Name} hurt itself in confusion!"; this.TakeDamage((int)confusionDamage); } } } return(logMessage); }
public void RemoveAilment(string name) { System.Console.WriteLine($"{name} removed!"); CurrentAilments.Remove(name); }