Пример #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);
            }
        }
Пример #2
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);
            }
        }
Пример #3
0
        public IBeast DoTheBasics(IBeast beast)
        {
            AddArmor(beast);
            AddMilieu(beast);
            AddBodyPlan(beast);
            AddBite(beast);
            AddNaturalAttacks(beast);



            return(beast);
        }
Пример #4
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);
                }
            }
        }
        public int PlayEffect(int id, IBeast caster, IBeast target)
        {
            int num = -1;
            int result;

            try
            {
                EffectLogger.Debug("PlayEffect:" + id);
                if (!this.m_EffectDatas.ContainsKey(id))
                {
                    EffectLogger.Error("!m_EffectDatas.ContainsKey(id):" + id);
                    result = -1;
                    return(result);
                }
                EffectData effectData = this.m_EffectDatas[id];
                if (effectData == null)
                {
                    result = -1;
                    return(result);
                }
                Effect effect = new Effect();
                effect.m_nEffectTypeId = id;
                effect.Caster          = caster;
                effect.Target          = target;
                num = this.GetID();
                if (this.HighLight)
                {
                    effect.HighLight = true;
                    this.m_HightLightEffect.Add(num, effect);
                }
                effect.Load(effectData);
                if (num != -1)
                {
                    effect.Id = num;
                    this.m_Effects.Add(num, effect);
                }
            }
            catch (Exception e)
            {
                EffectLogger.Fatal(e.ToString());
            }
            result = num;
            return(result);
        }
Пример #6
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);
        }
Пример #7
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);
        }
Пример #8
0
 public void KillBeast(IBeast beast)
 {
     beast.LooseHead();
 }