internal void Update(long[] rpRawData)
        {
            var rState = (int)rpRawData[0];
            var rExpeditionID = (int)rpRawData[1];
            var rTimeToComplete = rpRawData[2];

            if (rState != 0)
            {
                if (Expedition == null)
                    foreach (var rShip in r_Fleet.Ships)
                        rShip.State |= ShipState.Expedition;

                Expedition = KanColleGame.Current.MasterInfo.Expeditions[rExpeditionID];
                TimeToComplete = new DateTimeOffset?(DateTimeUtil.UnixEpoch.AddMilliseconds(rTimeToComplete));
            }
            else
            {
                if (Expedition != null)
                    foreach (var rShip in r_Fleet.Ships)
                        rShip.State &= ~ShipState.Expedition;

                Expedition = null;
                TimeToComplete = null;
            }
        }
        internal ExpeditionViewModel(ExpeditionInfo rpInfo)
        {
            Info    = rpInfo;
            r_Info2 = ExpeditionService.Instance.GetInfo(rpInfo.ID);

            ResultPrediction = KanColleGame.Current.Port.Fleets.Table.Values.Skip(1).Select(r => new ExpeditionResultPrediction(r_Info2, r)).ToList();
        }
Пример #3
0
 public void OnExpeditionComplete(HomeportFleet fleet, ExpeditionInfo expedition, ExpeditionResult result)
 {
     foreach (var c in Counters)
     {
         if (c is ExpeditionCounter ec)
         {
             ec.OnExpeditionComplete(StatePersist, fleet, expedition, result);
         }
     }
     UpdateProgress();
 }
Пример #4
0
        public override bool TakeAction()
        {
            int question = 0;
            int index    = 0;

            answerID1 = 1;
            answerID2 = 2;
            int expID       = 0;
            int usegoldTime = GetExpCodeTime(ContextUser.UserID);

            useGold = MathUtils.Addition((usegoldTime / 60), 1, int.MaxValue);
            UserExpedition userExp = new PersonalCacheStruct <UserExpedition>().FindKey(ContextUser.UserID);

            if (userExp != null && DateTime.Now.Date == userExp.InsertDate.Date)
            {
                if (userExp.ExpeditionNum >= 10)
                {
                    isEnd = 1;
                }
                else
                {
                    isEnd = 2;
                }
                question = MathUtils.Addition(userExp.ExpeditionNum, 1, int.MaxValue);
                expID    = userExp.ExpID;
                codeTime = userExp.DoRefresh();
            }
            else
            {
                isEnd    = 2;
                question = 1;
            }

            List <ExpeditionInfo> expeditionArray = new ShareCacheStruct <ExpeditionInfo>().FindAll(m => m.GroupID == question);

            if (expeditionArray.Count > 0)
            {
                if (IsAnswer(expeditionArray, expID))
                {
                    expInfo = new ShareCacheStruct <ExpeditionInfo>().FindKey(expID);
                }
                else
                {
                    index   = RandomUtils.GetRandom(0, expeditionArray.Count);
                    expInfo = new ShareCacheStruct <ExpeditionInfo>().FindKey(expeditionArray[index].ExpID);
                    if (userExp != null)
                    {
                        userExp.ExpID = expeditionArray[index].ExpID;
                    }
                }
            }
            return(true);
        }
        internal void Update(long[] rpRawData)
        {
            var rState = (int)rpRawData[0];
            var rExpeditionID = (int)rpRawData[1];
            var rTimeToComplete = rpRawData[2];

            if (rState != 0)
            {
                Expedition = KanColleGame.Current.MasterInfo.Expeditions[rExpeditionID];
                TimeToComplete = new DateTimeOffset?(DateTimeUtil.UnixEpoch.AddMilliseconds(rTimeToComplete));
            }
            else
            {
                Expedition = null;
                TimeToComplete = null;
            }
        }