Example #1
0
        public static LivingInfo GetLivingInfo(LivingID livingID)
        {
            Debug.Assert(livingID != LivingID.Undefined);
            Debug.Assert(s_livings[(int)livingID] != null);

            return(s_livings[(int)livingID]);
        }
        AI.Group CreateHerd(int numAnimals, LivingID livingID)
        {
            var world = m_env.World;

            var group = new AI.Group();

            var center = m_env.GetRandomEnterableSurfaceLocation();

            using (var iter = IntVector2.SquareSpiral(center.ToIntVector2(), 20).GetEnumerator())
            {
                for (int i = 0; i < numAnimals; ++i)
                {
                    bool ok = true;

                    while (true)
                    {
                        if (iter.MoveNext() == false)
                        {
                            ok = false;
                            break;
                        }

                        var p2 = iter.Current;

                        if (m_env.Size.Plane.Contains(p2) == false)
                        {
                            continue;
                        }

                        var p = m_env.GetSurfaceLocation(p2);

                        if (m_env.CanEnter(p) == false)
                        {
                            continue;
                        }

                        var livingBuilder = new LivingObjectBuilder(livingID);

                        var living = livingBuilder.Create(world);
                        var ai     = new Dwarrowdelf.AI.HerbivoreAI(living, world.PlayerID);
                        ai.Group = group;
                        living.SetAI(ai);
                        living.MoveToMustSucceed(m_env, p);

                        break;
                    }

                    if (!ok)
                    {
                        break;
                    }
                }
            }

            return(group);
        }
Example #3
0
        public static SymbolID GetSymbol(LivingID id)
        {
            var sym = s_symbols[(int)id];

            if (sym == SymbolID.Undefined)
            {
                return(SymbolID.Unknown);
            }

            return(sym);
        }
Example #4
0
        AI.Group CreateHerd(int numAnimals, LivingID livingID)
        {
            var world = m_env.World;

            var group = new AI.Group();

            var center = m_env.GetRandomEnterableSurfaceLocation();

            using (var iter = IntVector2.SquareSpiral(center.ToIntVector2(), 20).GetEnumerator())
            {
                for (int i = 0; i < numAnimals; ++i)
                {
                    bool ok = true;

                    while (true)
                    {
                        if (iter.MoveNext() == false)
                        {
                            ok = false;
                            break;
                        }

                        var p2 = iter.Current;

                        if (m_env.Size.Plane.Contains(p2) == false)
                            continue;

                        var p = m_env.GetSurfaceLocation(p2);

                        if (m_env.CanEnter(p) == false)
                            continue;

                        var livingBuilder = new LivingObjectBuilder(livingID);

                        var living = livingBuilder.Create(world);
                        var ai = new Dwarrowdelf.AI.HerbivoreAI(living, world.PlayerID);
                        ai.Group = group;
                        living.SetAI(ai);
                        living.MoveToMustSucceed(m_env, p);

                        break;
                    }

                    if (!ok)
                        break;
                }
            }

            return group;
        }
Example #5
0
        public LivingObjectBuilder(LivingID livingID)
        {
            this.LivingID = livingID;

            var li = Dwarrowdelf.Livings.GetLivingInfo(this.LivingID);

            this.Color     = li.Color;
            this.HitPoints = li.Level * 10;
            this.NaturalAC = li.NaturalAC;

            Str = Dex = Con = Int = Wis = Cha = li.Level * 10;
            Siz = li.Size;

            this.MaterialID  = Dwarrowdelf.MaterialID.Flesh;
            this.VisionRange = 10;

            this.SkillMap = new Dictionary <SkillID, byte>();
        }
Example #6
0
        public LivingObjectBuilder(LivingID livingID)
        {
            this.LivingID = livingID;

            var li = Dwarrowdelf.Livings.GetLivingInfo(this.LivingID);

            this.Color = li.Color;
            this.HitPoints = li.Level * 10;
            this.NaturalAC = li.NaturalAC;

            Str = Dex = Con = Int = Wis = Cha = li.Level * 10;
            Siz = li.Size;

            this.MaterialID = Dwarrowdelf.MaterialID.Flesh;
            this.VisionRange = 10;

            this.SkillMap = new Dictionary<SkillID, byte>();
        }
Example #7
0
        public static SymbolID GetSymbol(LivingID id)
        {
            var sym = s_symbols[(int)id];

            if (sym == SymbolID.Undefined)
                return SymbolID.Unknown;

            return sym;
        }
Example #8
0
        public static LivingInfo GetLivingInfo(LivingID livingID)
        {
            Debug.Assert(livingID != LivingID.Undefined);
            Debug.Assert(s_livings[(int)livingID] != null);

            return s_livings[(int)livingID];
        }