Ejemplo n.º 1
0
 public void UpdateTile()
 {
     this.HigestRoomItem = this.GetHigestItem();
     if (this.HigestRoomItem != null)
     {
         if (this.HigestRoomItem is RoomItemGate)
         {
             this.ModelItemState = this.HigestRoomItem.ExtraData == "1" ? ModelItemState.NONE : ModelItemState.LOCKED;
         }
         else if (this.HigestRoomItem is RoomItemFreezeGateBlue || this.HigestRoomItem is RoomItemFreezeGateGreen || this.HigestRoomItem is RoomItemFreezeGateRed || this.HigestRoomItem is RoomItemFreezeGateYellow)
         {
             this.ModelItemState = this.Room.RoomFreezeManager.GameStarted ? ModelItemState.LOCKED : ModelItemState.NONE;
         }
         else if (this.HigestRoomItem is RoomItemFreezeIceBlock)
         {
             this.ModelItemState = (this.HigestRoomItem.ExtraData == "0" || string.IsNullOrEmpty(this.HigestRoomItem.ExtraData)) ? ModelItemState.LOCKED : ModelItemState.NONE;
         }
         else if (this.HigestRoomItem is RoomItemHorseObstacle)
         {
             if (this.HigestRoomItem.Rot == 0 || this.HigestRoomItem.Rot == 2)
             {
                 if ((this.HigestRoomItem.X + 1 == this.X && this.HigestRoomItem.Y == this.Y) || (this.HigestRoomItem.X + 1 == this.X && this.HigestRoomItem.Y + 1 == this.Y))
                 {
                     this.ModelItemState = ModelItemState.LOCKED;
                 }
                 else
                 {
                     this.ModelItemState = ModelItemState.NONE;
                 }
             }
             else if (this.HigestRoomItem.Rot == 4)
             {
                 if ((this.HigestRoomItem.X == this.X && this.HigestRoomItem.Y + 1 == this.Y) || (this.HigestRoomItem.X + 1 == this.X && this.HigestRoomItem.Y + 1 == this.Y))
                 {
                     this.ModelItemState = ModelItemState.LOCKED;
                 }
                 else
                 {
                     this.ModelItemState = ModelItemState.NONE;
                 }
             }
         }
         else
         {
             this.ModelItemState = this.HigestRoomItem.BaseItem.InteractionType == "bed" ? ModelItemState.BED : this.HigestRoomItem.BaseItem.IsSeat ? ModelItemState.SEAT : this.HigestRoomItem.BaseItem.Walkable ? ModelItemState.NONE : ModelItemState.LOCKED;
         }
     }
     else
     {
         this.ModelItemState = ModelItemState.NONE;
     }
 }
Ejemplo n.º 2
0
        public Dictionary <int, RoomUnit> UsersOnTile; //key = virtual Id, value = roomUser

        public RoomTile(Room room, int x, int y, int modelZ, ModelTileState modelTileState)
        {
            this.Room           = room;
            this.X              = x;
            this.Y              = y;
            this.ModelZ         = modelZ;
            this.ModelTileState = modelTileState;

            this.ItemsOnTile = new ConcurrentListDictionary <uint, Type, RoomItem>();
            this.UsersOnTile = new Dictionary <int, RoomUnit>();

            this.ModelItemState = ModelItemState.NONE;
        }