Esempio n. 1
0
        private void AddMilieu(IBeast beast)
        {
            int index = App.rng.Next(Milieux.Length);

            beast.AddTag(Milieux[index]);
            if (Milieux[index].CanTrample)
            {
                beast.AddTag(Trample);
            }
        }
Esempio n. 2
0
        private void AddBodyPlan(IBeast beast)
        {
            int index = App.rng.Next(BodyPlans.Length);

            beast.AddTag(BodyPlans[index]);
            if (BodyPlans[index].HasRadialSymmetry)
            {
                foreach (Tag tag in BodyPlan.RadialSymmetry)
                {
                    beast.AddTag(tag);
                }
            }
        }
Esempio n. 3
0
        private void AddArmor(IBeast beast)
        {
            int index = App.rng.Next(Armor.Armorses.Count);

            Armor[] pick = Armor.Armorses[index];
            foreach (Armor armor in pick)
            {
                beast.AddTag(armor);
            }
        }
Esempio n. 4
0
        private void AddNaturalAttacks(IBeast beast)
        {
            //First get the bodyplans
            var       plan = beast.Tags.FirstOrDefault(x => x is BodyPlan) as BodyPlan;
            AttackTag att  = new AttackTag()
            {
                RelativeLevel = App.rng.Next(0, 3),
                AttackName    = "Natural Attack",
                Base          = AttackBases.Thrust,
                DamageType    = DamageType.Crush,
                BaseStat      = BaseStat.DX,
                CanParry      = false,
            };

            if (plan == null || plan.Limbs <= 0)
            {
                return;
            }
            att.Reach = plan.LimbLength;
            beast.AddTag(att);
        }
Esempio n. 5
0
        private static void AddBite(IBeast beast)
        {
            beast.Name = $"Beast {beast.Difficulty}";
            List <DamageType> biteTypes = new List <DamageType>
            {
                DamageType.Crush,
                DamageType.Cut,
                DamageType.Impale
            };

            AttackTag biteAttackTag = new AttackTag
            {
                RelativeLevel = App.rng.Next(0, 3),
                AttackName    = "Bite",
                Base          = AttackBases.Thrust,
                DamageType    = biteTypes[App.rng.Next(biteTypes.Count)],
                BaseStat      = BaseStat.DX,
                CanParry      = false,
            };

            beast.AddTag(biteAttackTag);
        }