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); }
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); }
public static IEnumerable <CHideOutRoom> RoomsThatCanBuilded(this HideOut hideout) { foreach (var room in AllRooms) { if (hideout.CanRoomBeBuild(room.identifier)) { yield return(room); } } }
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); } } } }
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); }
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); }
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)); }
public static int TotalCost(this IHideOutCost roomLevel, HideOut hideOut) { return(roomLevel.price_stone + roomLevel.price_glue + (int)roomLevel.GetReducedGameCurrencyValue()); }