Esempio n. 1
0
        /// <summary>
        /// Default constructor
        /// </summary>
        public StoneTroll() : base(name, tier, faction, ammo, meleePenalty, localID)
        {
            Element = new Earth();
            Tier    = 7;
            Faction = 0;


            Unitstats = new UnitStats(attack, defence, speed, moral, luck, minDamage, maxDamage, health, initative, effectiveRange);

            Moves   = new Move[] { new TreeSwing(), new BoulderThrow() };
            Price   = new Cost(100, 1, 1, 1, 1);
            Ability = new StoneSkin();
        }
Esempio n. 2
0
        public Skill CreateSkill(Player player)
        {
            List <Skill> playerSkills = player.ListOfSkills;
            Skill        known        = CheckContent(playerSkills); // check what spells from the BasicSpells category are known by the player already

            if (known == null)                                      // no BasicSpells known - we will return one of them
            {
                MagicArrow     s1 = new MagicArrow();
                StoneSkin      s2 = new StoneSkin();
                Blessing       s3 = new Blessing();
                AuraOfTheSword s4 = new AuraOfTheSword();

                // only include elligible spells
                List <Skill> tmp = new List <Skill>();
                if (s1.MinimumLevel <= player.Level)
                {
                    tmp.Add(s1);                                  // check level requirements
                }
                if (s2.MinimumLevel <= player.Level)
                {
                    tmp.Add(s2);
                }
                if (s3.MinimumLevel <= player.Level)
                {
                    tmp.Add(s3);
                }
                if (tmp.Count == 0)
                {
                    return(null);
                }
                return(tmp[Index.RNG(0, tmp.Count)]); // use Index.RNG for safe random numbers
            }
            else if (known.decoratedSkill == null)    // a BasicSpell has been already learned, use decorator to create a combo
            {
                MagicArrowDecorator     s1 = new MagicArrowDecorator(known);
                StoneSkinDecorator      s2 = new StoneSkinDecorator(known);
                BlessingDecorator       s3 = new BlessingDecorator(known);
                AuraOfTheSwordDecorator s4 = new AuraOfTheSwordDecorator(known);

                List <Skill> tmp = new List <Skill>();
                if (s1.MinimumLevel <= player.Level)
                {
                    tmp.Add(s1);                                  // check level requirements
                }
                if (s2.MinimumLevel <= player.Level)
                {
                    tmp.Add(s2);
                }
                if (s3.MinimumLevel <= player.Level)
                {
                    tmp.Add(s3);
                }
                if (tmp.Count == 0)
                {
                    return(null);
                }
                return(tmp[Index.RNG(0, tmp.Count)]);
            }
            else
            {
                return(null); // a combo of BasicSpells has been already learned - this factory doesn't offer double combos so we stop here
            }
        }