Exemplo n.º 1
0
        public static bool IsRoomActivityFinished(this HideOut hideout)
        {
            var _loc1_ = 0;
            var _loc4_ = 0;
            var _loc2_ = HzAccountManger.GetAccByCharacterID(hideout.character_id).ServerTime;

            foreach (var room in hideout.Rooms)
            {
                if (room.CRoom.IsManuallyProductionRoom && room.status == HideoutRoomStatus.Producing && room.CurrentCalculatedResourceAmount() >= room.MaxResourceAmount())
                {
                    return(true);
                }
                if ((room.status == HideoutRoomStatus.Building || room.status == HideoutRoomStatus.Upgrading || room.status == HideoutRoomStatus.Storing || room.status == HideoutRoomStatus.Placing) && room.ts_activity_end <= _loc2_)
                {
                    return(true);
                }
            }
            _loc1_ = 0;
            while (_loc1_ < HideoutUtil.MAX_LEVELS)
            {
                _loc4_ = 0;
                while (_loc4_ < HideoutUtil.MAX_SLOTS)
                {
                    if (hideout.IsSlotUnlockInProgress(_loc1_, _loc4_) && hideout.GetSlotUnlockTsEnd(_loc1_, _loc4_) <= _loc2_)
                    {
                        return(true);
                    }
                    _loc4_++;
                }
                _loc1_++;
            }
            return(false);
        }
Exemplo n.º 2
0
        public static int GetSlotUnlockTsEnd(this HideOut hideout, int level, int slot)
        {
            var _loc3_  = "room_slot_" + HideoutUtil.GetSlotIdFromLevelAndSlot(level, slot);
            var endslot = (int)hideout.GetType().GetProperty(_loc3_).GetValue(hideout);

            return(endslot * -1);
        }
Exemplo n.º 3
0
 public static IEnumerable <CHideOutRoom> RoomsThatCanBuilded(this HideOut hideout)
 {
     foreach (var room in AllRooms)
     {
         if (hideout.CanRoomBeBuild(room.identifier))
         {
             yield return(room);
         }
     }
 }
Exemplo n.º 4
0
 public static IEnumerable <HideOutRoom> RoomsToRewardCollect(this HideOut hideout, int IsFullInProzent)
 {
     if (hideout != null)
     {
         foreach (var room in hideout.Rooms)
         {
             if (room.HasRewardToCollect(IsFullInProzent))
             {
                 yield return(room);
             }
         }
     }
 }
Exemplo n.º 5
0
        public static bool CanRoomBeBuild(this HideOut hideOut, string hideOutRoomType)
        {
            var param3 = HzConstants.Default.Constants["hideout_rooms"][hideOutRoomType];

            if (param3["limit"].Value <int>() == 0)
            {
                return(false);
            }
            var roomCount = hideOut.Rooms.GetRoomCountWithIdentifier(hideOutRoomType);

            if (roomCount >= param3["limit"].Value <int>())
            {
                return(false);
            }
            var level = 0;
            var room  = hideOut.Rooms.FirstOrDefault(r => r.CRoom.Type == HideoutRoomType.main_building);

            if (room != null && !room.IsRoomInStore())
            {
                level = room.level;
            }
            var unlockLevel = 0;
            var _loc8_      = roomCount + 1;

            switch (_loc8_)
            {
            case 1:
                unlockLevel = param3["unlock_with_mainbuilding_1"].Value <int>();
                break;

            case 2:
                unlockLevel = param3["unlock_with_mainbuilding_2"].Value <int>();
                break;

            case 3:
                unlockLevel = param3["unlock_with_mainbuilding_3"].Value <int>();
                break;

            case 4:
                unlockLevel = param3["unlock_with_mainbuilding_4"].Value <int>();
                break;
            }
            if (level < unlockLevel)
            {
                return(false); // LocText.current.text("dialog/hideout/place_room/error_room_needs_mainbuilding_level", _loc4_);
            }
            return(true);
        }
Exemplo n.º 6
0
        public static HideOutRoom GetRoomBySlot(this HideOut hideout, string identifier)
        {
            var slotName = "room_slot_" + identifier;
            var slot     = (int)hideout.GetType().GetProperty(slotName).GetValue(hideout);

            if (slot == 0)
            {
                return(null);
            }

            foreach (var room in hideout.Rooms)
            {
                if (room.id == slot)
                {
                    return(room);
                }
            }
            return(null);
        }
Exemplo n.º 7
0
        public static HideoutWorkerActivity GetCurrentWorkerActivity(this HideOut hideout)
        {
            var         _loc4_  = 0;
            var         _loc7_  = 0;
            var         endTime = 0;
            HideOutRoom Room    = null;
            var         level   = -1;
            var         slot    = -1;

            foreach (var room in hideout.Rooms)
            {
                if (room.status == HideoutRoomStatus.Building || room.status == HideoutRoomStatus.Placing || room.status == HideoutRoomStatus.Storing || room.status == HideoutRoomStatus.Upgrading)
                {
                    if (room.ts_activity_end > endTime /* && room.ts_activity_end > HzAccountManger.GetAccByCharacterID(hideout.character_id).ServerTime*/)
                    {
                        endTime = room.ts_activity_end;
                        Room    = room;
                    }
                }
            }
            _loc4_ = 0;
            while (_loc4_ < HideoutUtil.MAX_LEVELS)
            {
                _loc7_ = 0;
                while (_loc7_ < HideoutUtil.MAX_SLOTS)
                {
                    if (hideout.IsSlotUnlockInProgress(_loc4_, _loc7_) && hideout.GetSlotUnlockTsEnd(_loc4_, _loc7_) > endTime /* && hideout.GetSlotUnlockTsEnd(_loc4_, _loc7_) > HzAccountManger.GetAccByCharacterID(hideout.character_id).ServerTime */)
                    {
                        endTime = hideout.GetSlotUnlockTsEnd(_loc4_, _loc7_);
                        level   = _loc4_;
                        slot    = _loc7_;
                    }
                    _loc7_++;
                }
                _loc4_++;
            }
            if (Room == null && level == -1 && slot == -1)
            {
                return(null);
            }
            return(new HideoutWorkerActivity(Room, level, slot, endTime));
        }
Exemplo n.º 8
0
 public static int TotalCost(this IHideOutCost roomLevel, HideOut hideOut)
 {
     return(roomLevel.price_stone + roomLevel.price_glue + (int)roomLevel.GetReducedGameCurrencyValue());
 }