示例#1
0
        public int CreateItemToken(int affectedItemID)
        {
            GameObject obj = null;

            obj = new ItemToken(GetNextID(), affectedItemID);

            return(RegisterGameObject(obj));
        }
示例#2
0
        public override string ToString()
        {
            StringBuilder buf = new StringBuilder();

            buf.Append(GetStmtPrefix());
            buf.AppendFormat("循环每一个( {0},{1} )", this.ListExp.ToString(),
                             ItemToken.ToCode());
            buf.AppendLine();
            buf.Append(Body.ToString());
            return(buf.ToString());
        }
示例#3
0
        public ItemToken GetItemToken(int key)
        {
            ItemToken i = null;

            GameObject obj = GetGameObject(key);

            if (obj != null && obj is ItemToken)
            {
                i = (ItemToken)obj;
            }

            return(i);
        }
示例#4
0
        public void OnMoveCommand(IntVector2 deltaPosition)
        {
            if (_scene.IsPositionFree(Position + deltaPosition))
            {
                Position += deltaPosition;

                //Pickup items on the tile
                List <int> items = _scene.GetItemTokensAtPosition(Position);
                foreach (int i in items)
                {
                    ItemToken token = _scene.GetGameObjectPool().GetItemToken(i);
                    if (token != null)
                    {
                        Item item = _scene.GetGameObjectPool().GetItem(token.ItemID);
                        if (item != null)
                        {
                            if (item.ObjectID == "magicCrystal") //Use crystals on pickup
                            {
                                item.OnUse(this);
                            }
                            else
                            {
                                AddItem(item);
                            }
                            token.Alive = false;
                        }
                    }
                }

                _currentEnergy -= moveCost;
                _turnOver       = true;
            }
            else if (_scene.GetMap().DoesTileHaveFeature(Position + deltaPosition, Tile_SimpleFeatureType.DOOR))
            {
                OnOpenDoor(Position + deltaPosition);
            }
            else
            {
                _scene.WriteMessage("Something is in your way!");
            }
        }