Ejemplo n.º 1
0
        public void MoveDirectly(string key, Position dest)
        {
            if (!NameToEntity.ContainsKey(key) || PosToName.ContainsKey(dest))
            {
                return;
            }
            Entity   e   = NameToEntity[key];
            Position pos = e.Pos;

            PosToName.Remove(pos);
            NameToEntity.Remove(key);
            Add(key, e.UpdateWith(pos: dest));
            foreach (var k in NameToEntity.Keys)
            {
                if (NameToEntity[k].Faction == e.Faction)
                {
                    NameToEntity[k] = NameToEntity[k].UpdateAlly(pos, dest);
                }
                else
                {
                    NameToEntity[k] = NameToEntity[k].UpdateEnemy(pos, dest);
                }
            }
//            byName[key].Seeker.SetGoal(dest.Y, dest.X);
//            byPosition[dest].Seeker.SetGoal(dest.Y, dest.X);

            //Seeker.GetPath(Y, X);
        }
Ejemplo n.º 2
0
        public void Move(string key, int yMove, int xMove)
        {
            if (!NameToEntity.ContainsKey(key) || PosToName.ContainsKey(new Position(NameToEntity[key].Pos.Y + yMove, NameToEntity[key].Pos.X + xMove)))
            {
                return;
            }
            Entity   e   = NameToEntity[key];
            Position pos = e.Pos;

            PosToName.Remove(pos);
            NameToEntity.Remove(key);
            e.Pos.Move(yMove, xMove);
            Add(key, e);
            foreach (var k in NameToEntity.Keys)
            {
                if (NameToEntity[k].Faction == e.Faction)
                {
                    NameToEntity[k] = NameToEntity[k].UpdateAlly(pos, e.Pos);
                }
                else
                {
                    NameToEntity[k] = NameToEntity[k].UpdateEnemy(pos, e.Pos);
                }
            }

//            byName[key].Seeker.SetGoal(e.Pos.Y, e.Pos.X);
//            byPosition[e.Pos].Seeker.SetGoal(e.Pos.Y, e.Pos.X);

            //Seeker.GetPath(Y, X);
        }
Ejemplo n.º 3
0
        public void Remove(Position key)
        {
            Entity e = NameToEntity[PosToName[key]];

            NameToEntity.Remove(e.Name);
            PosToName.Remove(key);
            foreach (var k in NameToEntity.Keys)
            {
                NameToEntity[k] = NameToEntity[k].RemoveAll(e.Pos);
            }
            H.S.Initiative.CancelTurn(e.Name);
        }
Ejemplo n.º 4
0
        public void Remove(string key)
        {
            Entity e = NameToEntity[key];

            PosToName.Remove(e.Pos);
            NameToEntity.Remove(key);
            foreach (var k in NameToEntity.Keys)
            {
                NameToEntity[k] = NameToEntity[k].RemoveAll(e.Pos);
            }
            H.S.Initiative.CancelTurn(key);
        }