示例#1
0
        public Api_Result <Mem_deck> Start(int deck_rid, int mission_id, int tankerNum)
        {
            Api_Result <Mem_deck> api_Result = new Api_Result <Mem_deck>();
            Mst_mission2          value      = null;

            if (mission_id > 0)
            {
                if (!Mst_DataManager.Instance.Mst_mission.TryGetValue(mission_id, out value))
                {
                    api_Result.state = Api_Result_State.Parameter_Error;
                    return(api_Result);
                }
            }
            else
            {
                List <Mst_mission2> supportResistedData = Mst_DataManager.Instance.GetSupportResistedData(Comm_UserDatas.Instance.User_deck[deck_rid].Area_id);
                value = ((mission_id != -1) ? supportResistedData[1] : supportResistedData[0]);
            }
            Mem_deck value2 = null;

            if (!Comm_UserDatas.Instance.User_deck.TryGetValue(deck_rid, out value2))
            {
                api_Result.state = Api_Result_State.Parameter_Error;
                return(api_Result);
            }
            if (mission_id > 0 && !Comm_UserDatas.Instance.User_missioncomp.ContainsKey(mission_id))
            {
                Mem_missioncomp mem_missioncomp = new Mem_missioncomp(mission_id, value.Maparea_id, MissionClearKinds.NOTCLEAR);
                mem_missioncomp.Insert();
            }
            if (!value2.MissionStart(value))
            {
                api_Result.state = Api_Result_State.Parameter_Error;
                return(api_Result);
            }
            if (tankerNum > 0)
            {
                IEnumerable <Mem_tanker> enumerable = Mem_tanker.GetFreeTanker(Comm_UserDatas.Instance.User_tanker).Take(tankerNum);
                List <Mem_tanker>        list       = new List <Mem_tanker>();
                foreach (Mem_tanker item in enumerable)
                {
                    if (!item.MissionStart(value.Maparea_id, deck_rid))
                    {
                        list.ForEach(delegate(Mem_tanker x)
                        {
                            x.MissionTerm();
                        });
                        api_Result.state = Api_Result_State.Parameter_Error;
                        return(api_Result);
                    }
                    list.Add(item);
                }
            }
            api_Result.data = value2;
            QuestMission questMission = new QuestMission(value.Id, value2, MissionResultKinds.FAILE);

            questMission.ExecuteCheck();
            return(api_Result);
        }
示例#2
0
        public Api_Result <MissionResultFmt> Result(int deck_rid)
        {
            Api_Result <MissionResultFmt> api_Result = new Api_Result <MissionResultFmt>();
            Mem_deck value = null;

            if (!Comm_UserDatas.Instance.User_deck.TryGetValue(deck_rid, out value))
            {
                api_Result.state = Api_Result_State.Parameter_Error;
                return(api_Result);
            }
            if (value.MissionState != MissionStates.END && value.MissionState != MissionStates.STOP)
            {
                api_Result.state = Api_Result_State.Parameter_Error;
                return(api_Result);
            }
            if (value.Ship.Count() == 0)
            {
                api_Result.state = Api_Result_State.Parameter_Error;
                return(api_Result);
            }
            if (mst_level == null)
            {
                mst_level = Mst_DataManager.Instance.Get_MstLevel(shipTable: true);
            }
            if (mst_userlevel == null)
            {
                mst_userlevel = Mst_DataManager.Instance.Get_MstLevel(shipTable: false);
            }
            int  mission_id = value.Mission_id;
            bool flag       = value.MissionState == MissionStates.STOP;
            Exec_MissionResult exec_MissionResult = new Exec_MissionResult(value, mst_level, mst_userlevel);

            api_Result.data = exec_MissionResult.GetResultData();
            if (!flag)
            {
                QuestMission questMission = new QuestMission(mission_id, value, api_Result.data.MissionResult);
                questMission.ExecuteCheck();
            }
            return(api_Result);
        }
        public Api_Result <MissionResultFmt> Result(int deck_rid)
        {
            Api_Result <MissionResultFmt> api_Result = new Api_Result <MissionResultFmt>();
            Mem_deck mem_deck = null;

            if (!Comm_UserDatas.Instance.User_deck.TryGetValue(deck_rid, ref mem_deck))
            {
                api_Result.state = Api_Result_State.Parameter_Error;
                return(api_Result);
            }
            if (mem_deck.MissionState != MissionStates.END && mem_deck.MissionState != MissionStates.STOP)
            {
                api_Result.state = Api_Result_State.Parameter_Error;
                return(api_Result);
            }
            if (mem_deck.Ship.Count() == 0)
            {
                api_Result.state = Api_Result_State.Parameter_Error;
                return(api_Result);
            }
            if (this.mst_level == null)
            {
                this.mst_level = Mst_DataManager.Instance.Get_MstLevel(true);
            }
            if (this.mst_userlevel == null)
            {
                this.mst_userlevel = Mst_DataManager.Instance.Get_MstLevel(false);
            }
            int  mission_id = mem_deck.Mission_id;
            bool flag       = mem_deck.MissionState == MissionStates.STOP;
            Exec_MissionResult exec_MissionResult = new Exec_MissionResult(mem_deck, this.mst_level, this.mst_userlevel);

            api_Result.data = exec_MissionResult.GetResultData();
            if (!flag)
            {
                QuestMission questMission = new QuestMission(mission_id, mem_deck, api_Result.data.MissionResult);
                questMission.ExecuteCheck();
            }
            return(api_Result);
        }
        public Api_Result <Mem_deck> Start(int deck_rid, int mission_id, int tankerNum)
        {
            Api_Result <Mem_deck> api_Result  = new Api_Result <Mem_deck>();
            Mst_mission2          mst_mission = null;

            if (mission_id > 0)
            {
                if (!Mst_DataManager.Instance.Mst_mission.TryGetValue(mission_id, ref mst_mission))
                {
                    api_Result.state = Api_Result_State.Parameter_Error;
                    return(api_Result);
                }
            }
            else
            {
                List <Mst_mission2> supportResistedData = Mst_DataManager.Instance.GetSupportResistedData(Comm_UserDatas.Instance.User_deck.get_Item(deck_rid).Area_id);
                mst_mission = ((mission_id != -1) ? supportResistedData.get_Item(1) : supportResistedData.get_Item(0));
            }
            Mem_deck mem_deck = null;

            if (!Comm_UserDatas.Instance.User_deck.TryGetValue(deck_rid, ref mem_deck))
            {
                api_Result.state = Api_Result_State.Parameter_Error;
                return(api_Result);
            }
            if (mission_id > 0 && !Comm_UserDatas.Instance.User_missioncomp.ContainsKey(mission_id))
            {
                Mem_missioncomp mem_missioncomp = new Mem_missioncomp(mission_id, mst_mission.Maparea_id, MissionClearKinds.NOTCLEAR);
                mem_missioncomp.Insert();
            }
            if (!mem_deck.MissionStart(mst_mission))
            {
                api_Result.state = Api_Result_State.Parameter_Error;
                return(api_Result);
            }
            if (tankerNum > 0)
            {
                IEnumerable <Mem_tanker> enumerable = Enumerable.Take <Mem_tanker>(Mem_tanker.GetFreeTanker(Comm_UserDatas.Instance.User_tanker), tankerNum);
                List <Mem_tanker>        list       = new List <Mem_tanker>();
                using (IEnumerator <Mem_tanker> enumerator = enumerable.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        Mem_tanker current = enumerator.get_Current();
                        if (!current.MissionStart(mst_mission.Maparea_id, deck_rid))
                        {
                            list.ForEach(delegate(Mem_tanker x)
                            {
                                x.MissionTerm();
                            });
                            api_Result.state = Api_Result_State.Parameter_Error;
                            return(api_Result);
                        }
                        list.Add(current);
                    }
                }
            }
            api_Result.data = mem_deck;
            QuestMission questMission = new QuestMission(mst_mission.Id, mem_deck, MissionResultKinds.FAILE);

            questMission.ExecuteCheck();
            return(api_Result);
        }