Exemplo n.º 1
0
 public void MoveOrOpenOrAttack(int x, int y) //-1 or 0 or 1 for x and y
 {
     if (World.IsDoorPresent(CoordX + x, CoordY + y))
     {
         if (World.TryUnlockDoor(CoordX + x, CoordY + y, Inv.GetAllKeys))
         {
             Timing.AddActionTime(TimeCost.OpenDoorCost(this));
             Log.AddLine("You have unlocked the door with your key.");
             return;
         }
         if (World.TryOpenDoor(CoordX + x, CoordY + y))
         {
             Timing.AddActionTime(TimeCost.OpenDoorCost(this));
             Log.AddLine("You opened the door.");
             return;
         }
     }
     if (World.IsPassable(CoordX + x, CoordY + y))
     {
         CoordX += x;
         CoordY += y;
         Timing.AddActionTime(TimeCost.MoveCost(this));
         if (World.isItemPresent(CoordX, CoordY))
         {
             List <Item> list = World.getItemListAt(CoordX, CoordY);
             int         numberOfItemsOnFloor = list.Count();
             if (numberOfItemsOnFloor > 1)
             {
                 Log.AddLine("You see here: " + list[0].DisplayName + " and " + (numberOfItemsOnFloor - 1).ToString() + " more items");
             }
             else
             {
                 Log.AddLine("You see here: " + list[0].DisplayName);
             }
         }
         return;
     }
     if (World.isActorPresent(CoordX + x, CoordY + y))
     {
         Actor attacked = World.getActorAt(CoordX + x, CoordY + y);
         Attack.MeleeAttack(this, attacked);
     }
     else if (!World.IsPassable(CoordX + x, CoordY + y))
     {
         Log.AddLine("Locked! You need a key.");
     }
     //World.Redraw(CoordX-x, CoordY-y);
 }
Exemplo n.º 2
0
        public void PickupDialogue() //NEED TO WORK WITH LISTS. !!!
        {
            List <Item> picked = World.getItemListAt(owner.CoordX, owner.CoordY);

            if (picked.Count > 0)
            {
                picked = MultipleItemSelectionMenu("pick up", picked);
                if (picked == null)
                {
                    return;
                }
                foreach (Item i in picked)
                {
                    if (TryPickUpItem(i))
                    {
                        World.AllItemsOnFloor.Remove(i);
                        Log.AddLine("You picked up the " + i.DisplayName + ".");
                    }
                }
            }
            else
            {
                int randomMessageNumber = MyRandom.getRandomInt(3);
                switch (randomMessageNumber)
                {
                case 0:
                    Log.AddLine("There's nothing here to pick up.");
                    break;

                case 1:
                    Log.AddLine("All that lying here is the dust.");
                    break;

                case 2:
                    Log.AddLine("Of course you can pick up the air.");
                    break;
                }
                return;
            }
        }