/// <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(); }
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 } }