コード例 #1
0
        public static double CurrentCalculatedResourceAmount(this HideOutRoom room)
        {
            var _loc3_ = room.current_resource_amount;
            var _loc1_ = room.max_resource_amount;

            if (room.status != HideoutRoomStatus.Producing || _loc3_ >= _loc1_)
            {
                return(_loc3_);
            }
            if (room.CRoom.IsManuallyProductionRoom && room.ts_activity_end < HzAccountManger.GetAccByHideOutID(room.hideout_id).ServerTime)
            {
                return(_loc1_);
            }
            var _loc4_ = room.ts_last_resource_change;
            var _loc5_ = HzAccountManger.GetAccByHideOutID(room.hideout_id).ServerTime - _loc4_;
            var _loc6_ = Math.Floor(_loc5_ / 60.0f);

            if (_loc6_ <= 0)
            {
                return(_loc3_);
            }
            var _loc2_ = Math.Floor(ResourceAmountPerMinute(room) * _loc6_);

            return(Math.Min(_loc2_ + _loc3_, _loc1_));
        }
コード例 #2
0
        public static bool CanRoomUpdate(this HideOutRoom room, CHideOutRoomLevel hideoutroomlevel = null)
        {
            //if(!_room || !_btnUpgrade.visible || !User.current.character.hasTutorialFlag("hideout_first_attack"))
            //{
            //   _content.ui.upgradeAvailable.visible = false;
            //   return;
            //}
            //if (hideoutroomlevel == null)
            //{
            //    hideoutroomlevel = room.CNextLevel; // HzConstants.Default.Constants["hideout_rooms"][room.identifier]["levels"].OfType<JProperty>().FirstOrDefault(tok => tok.Name == (room.level + 1).ToString())?.Value; //CHideoutRoom.fromId(_room.identifier).getLevel(_room.level + 1);
            //}
            var _loc3_ = HzConstants.Default.Constants["hideout_room_upgrade"].OfType <JProperty>().FirstOrDefault(tok => tok.Name == (room.level + 1).ToString())?.Value["character_min_level"].Value <int>(); //CHideoutRoomUpgrade.fromId(_room.level + 1).characterMinLevel;

            if (_loc3_ > HzAccountManger.GetAccByHideOutID(room.hideout_id)?.Character?.level)
            {
                return(false);
            }
            else
            {
                if (room.CNextLevel != null &&
                    HzAccountManger.GetAccByHideOutID(room.hideout_id).Character?.game_currency >= room.CNextLevel.GetReducedGameCurrencyValue() &&
                    room.HideOut.current_resource_glue >= room.CNextLevel.price_glue &&
                    room.HideOut.current_resource_stone >= room.CNextLevel.price_stone)
                {
                    return(true);
                }
            }
            return(false);
        }
コード例 #3
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);
        }
コード例 #4
0
        public static double SecondsTillActivityFinished(this HideOutRoom room)
        {
            long   _loc3_ = 0;
            double _loc5_ = 0;
            var    _loc1_ = double.NaN;
            double _loc4_ = 0;
            double _loc2_ = 0;

            if (room.status == HideoutRoomStatus.Producing && !room.CRoom.IsManuallyProductionRoom)
            {
                _loc3_ = HzAccountManger.GetAccByHideOutID(room.hideout_id).ServerTime - room.ts_last_resource_change;
                _loc5_ = Math.Floor(_loc3_ / 60.0f);
                _loc1_ = ResourceAmountPerMinute(room);
                _loc4_ = Math.Floor(_loc1_ * _loc5_) + room.current_resource_amount;
                if (_loc4_ < room.max_resource_amount)
                {
                    _loc2_ = Math.Ceiling((room.max_resource_amount - _loc4_) / (_loc1_ / 60) - (_loc3_ - _loc5_ * 60));
                }
            }
            else if (room.status == HideoutRoomStatus.Upgrading ||
                     room.status == HideoutRoomStatus.Building ||
                     room.status == HideoutRoomStatus.Placing ||
                     room.status == HideoutRoomStatus.Storing ||
                     room.status == HideoutRoomStatus.Producing && room.CRoom.IsManuallyProductionRoom)
            {
                _loc2_ = room.ts_activity_end - HzAccountManger.GetAccByHideOutID(room.hideout_id).ServerTime;
            }
            return(_loc2_);
        }
コード例 #5
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);
            HzAccountManger.Load();
            var window = new MainWindow();

            window.Show();
        }
コード例 #6
0
 public double GearScore()
 {
     return(stat_stamina * HzAccountManger.GetAccByCharacterID(character_id).Character.HzStats.Stamina.EquipWeight +
            stat_strength * HzAccountManger.GetAccByCharacterID(character_id).Character.HzStats.Strength.EquipWeight +
            stat_dodge_rating * HzAccountManger.GetAccByCharacterID(character_id).Character.HzStats.DodgeRating.EquipWeight +
            stat_critical_rating * HzAccountManger.GetAccByCharacterID(character_id).Character.HzStats.CriticalRating.EquipWeight +
            stat_weapon_damage * HzAccountManger.GetAccByCharacterID(character_id).Character.HzStats.WeaponDamage.EquipWeight);
 }
コード例 #7
0
        public static bool IsRoomInStore(this HideOutRoom room)
        {
            var         level  = 0;
            var         slot   = 0;
            HideOutRoom _loc4_ = null;

            level = 0;
            while (level < HideoutUtil.MAX_LEVELS)
            {
                slot = 0;
                while (slot < HideoutUtil.MAX_SLOTS)
                {
                    _loc4_ = HzAccountManger.GetAccByHideOutID(room.hideout_id).Data.hideout.GetRoomBySlot(HideoutUtil.GetSlotIdFromLevelAndSlot(level, slot));
                    if (_loc4_ != null && _loc4_.id == room.id)
                    {
                        return(false);
                    }
                    slot++;
                }
                level++;
            }
            return(true);
        }
コード例 #8
0
 protected override void OnExit(ExitEventArgs e)
 {
     base.OnExit(e);
     HzAccountManger.Save();
 }
コード例 #9
0
 public HzAccount()
 {
     HzAccountManger.AddAccount(this);
     Plugins        = new HzPlugins(this);
     OnDataChanged += HzAccount_OnDataChanged;
 }