示例#1
0
        public void ReceiveAilment(Ailment ailment)
        {
            if (CurrentAilments.ContainsKey(ailment.Name) ||
                !isAilmentApplied(ailment))
            {
                return;
            }

            CurrentAilments.Add(ailment.Name, ailment);
        }
示例#2
0
        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);
        }
示例#3
0
 public void RemoveAilment(string name)
 {
     System.Console.WriteLine($"{name} removed!");
     CurrentAilments.Remove(name);
 }