예제 #1
0
        public string GetWeaknessString(Enemy e, Files.SkillManager sm)
        {
            var str = new StringBuilder();

            if (Weaknesses.ContainsKey(e.Name))
            {
                var set = Weaknesses[e.Name];
                foreach (int w in e.Weakness)
                {
                    if (set.Contains(w))
                    {
                        str.Append(sm.ElementToString(w));
                    }
                    else
                    {
                        str.Append("???");
                    }

                    str.Append(", ");
                }
            }
            else
            {
                foreach (int w in e.Weakness)
                {
                    str.Append("???, ");
                }
            }

            string ret_str = str.ToString();

            // "string, " --> 8 chars --> 8 - 2 = 6... string (excludes "right" value)
            return(ret_str.Substring(0, ret_str.Length - 2));
        }
예제 #2
0
 public int HowMuchWouldYouHitMe(Group s)
 {
     if (Immunities.Contains(s.AttackType))
     {
         return(0);
     }
     else if (Weaknesses.Contains(s.AttackType))
     {
         return(s.EffectivePower * 2);
     }
     {
         return(s.EffectivePower);
     }
 }
예제 #3
0
        public int CalculateDamageDone(string incomingAttackType, int effectivePower)
        {
            if (Immunities != null && Immunities.Contains(incomingAttackType))
            {
                return(0);
            }

            if (Weaknesses != null && Weaknesses.Contains(incomingAttackType))
            {
                return(effectivePower * 2);
            }

            return(effectivePower);
        }
예제 #4
0
 public int ComputeDamage(AttackType attackType, int damage)
 {
     if (Immunity.Contains(attackType))
     {
         return(0);
     }
     else if (Weaknesses.Contains(attackType))
     {
         return(damage * 2);
     }
     else
     {
         return(damage);
     }
 }
예제 #5
0
            public int DamageReceivedOnAttack(Group attackingGroup)
            {
                if (ImmuneTo.Contains(attackingGroup.Attack.Type))
                {
                    return(0);
                }

                var damage = attackingGroup.EffectivePower;

                if (Weaknesses.Contains(attackingGroup.Attack.Type))
                {
                    damage = damage * 2;
                }

                return(damage);
            }
예제 #6
0
 public void ProcessWeakness(Enemy e, int element)
 {
     if (Weaknesses.ContainsKey(e.Name))
     {
         var set = Weaknesses[e.Name];
         if (!set.Contains(element))
         {
             set.Add(element);
         }
     }
     else
     {
         var set = new HashSet <int>();
         set.Add(element);
         Weaknesses.Add(e.Name, set);
     }
 }
예제 #7
0
            public int GetDamage(BattleGroup attackingGroup)
            {
                if (attackingGroup.Type == Type)
                {
                    return(0);
                }

                int damage = attackingGroup.EffectivePower;

                if (Immunities.Contains(attackingGroup.AttackType))
                {
                    damage = 0;
                }
                if (Weaknesses.Contains(attackingGroup.AttackType))
                {
                    damage *= 2;
                }
                return(damage);
            }
예제 #8
0
        private void PokemonTypeListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            PokemonType temp = (PokemonType)PokemonTypeListBox.SelectedItem;

            PTypeNameTextBox.Text          = temp.Name;
            PTypeInternalNameTextBox.Text  = temp.InternalName;
            PTypePseudoCheckBox.IsChecked  = temp.IsPseudoType;
            PTypeSpecialCheckBox.IsChecked = temp.IsSpecialType;

            PTypeWeaknessListBox.UnselectAll();
            if (temp.Weaknesses != null)
            {
                foreach (String type in temp.Weaknesses)
                {
                    PTypeWeaknessListBox.SelectedItems.Add(Weaknesses.Find(p => p.InternalName.Equals(type)));
                }
            }

            PTypeResistanceListBox.UnselectAll();
            if (temp.Resistances != null)
            {
                foreach (String type in temp.Resistances)
                {
                    PTypeResistanceListBox.SelectedItems.Add(Resistances.Find(p => p.InternalName.Equals(type)));
                }
            }

            PTypeImmunityListBox.UnselectAll();
            if (temp.Immunities != null)
            {
                foreach (String type in temp.Immunities)
                {
                    PTypeImmunityListBox.SelectedItems.Add(Immunities.Find(p => p.InternalName.Equals(type)));
                }
            }
        }
예제 #9
0
 public object Clone()
 {
     return(new Group(Units, HitPoints, AttackDamage, AttackType, Initiative, Weaknesses.ToList(), Immunities.ToList()));
 }
예제 #10
0
        ////////////////////
        // Stat Functions //
        ////////////////////

        public bool IsWeakTo(Element element)
        {
            return(Weaknesses.Contains(element));
        }
예제 #11
0
 public Builder WithWeakness(Weaknesses weakness)
 {
     this.weakness = weakness.ToString();
     return(this);
 }
예제 #12
0
 public bool IsWeakTo(Attack attack) => Weaknesses.Contains(attack);