public MissionModel(User_MissionFmt fmt, DeckModel deck) { this._id = fmt.MissionId; this._state = fmt.State; this._mst = Mst_DataManager.Instance.Mst_mission.get_Item(this._id); this._deck = deck; }
public MissionModel(User_MissionFmt fmt, DeckModel deck) { _id = fmt.MissionId; _state = fmt.State; _mst = Mst_DataManager.Instance.Mst_mission[_id]; _deck = deck; }
public Api_Result <int> Stop(int deck_rid) { Api_Result <int> api_Result = new Api_Result <int>(); Mem_deck mem_deck = Comm_UserDatas.Instance.User_deck.get_Item(deck_rid); Mst_mission2 mst_mission = Mst_DataManager.Instance.Mst_mission.get_Item(mem_deck.Mission_id); int num = mst_mission.Time - (mem_deck.StartTime - mem_deck.CompleteTime); double num2 = Math.Ceiling((double)(mst_mission.Time + num) / 2.0); int total_turn = Comm_UserDatas.Instance.User_turn.Total_turn; int num3 = ((double)(total_turn - mem_deck.StartTime) >= num2) ? 2 : 1; double num4; if (num3 == 1) { num4 = (double)(total_turn - mem_deck.StartTime); } else { num4 = (double)(mem_deck.CompleteTime - total_turn); } num4 = Math.Ceiling(num4 / 3.0); int newEndTime = (int)((double)total_turn + num4); mem_deck.MissionStop(newEndTime); api_Result.data = mem_deck.StartTime - mem_deck.CompleteTime; 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 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); }
public Exec_MissionResult(Mem_deck deck, Dictionary <int, int> mst_level, Dictionary <int, int> mst_userlevel) { this.daihatuNum = 0; this.drumNum = 0; this.drumShipNum = 0; this.mem_deck = deck; this.mst_level = mst_level; this.mst_userlevel = mst_userlevel; this.mem_ships = deck.Ship.getMemShip(); this.mst_mission = Mst_DataManager.Instance.Mst_mission.get_Item(deck.Mission_id); this.missionTanker = Enumerable.ToList <Mem_tanker>(Enumerable.Where <Mem_tanker>(Comm_UserDatas.Instance.User_tanker.get_Values(), (Mem_tanker x) => x.Mission_deck_rid == deck.Rid)); this.randInstance = new Random(); }
public Exec_MissionResult(Mem_deck deck, Dictionary <int, int> mst_level, Dictionary <int, int> mst_userlevel) { daihatuNum = 0; drumNum = 0; drumShipNum = 0; mem_deck = deck; this.mst_level = mst_level; this.mst_userlevel = mst_userlevel; mem_ships = deck.Ship.getMemShip(); mst_mission = Mst_DataManager.Instance.Mst_mission[deck.Mission_id]; missionTanker = (from x in Comm_UserDatas.Instance.User_tanker.Values where x.Mission_deck_rid == deck.Rid select x).ToList(); randInstance = new Random(); }
public Api_Result <int> Stop(int deck_rid) { Api_Result <int> api_Result = new Api_Result <int>(); Mem_deck mem_deck = Comm_UserDatas.Instance.User_deck[deck_rid]; Mst_mission2 mst_mission = Mst_DataManager.Instance.Mst_mission[mem_deck.Mission_id]; int num = mst_mission.Time - (mem_deck.StartTime - mem_deck.CompleteTime); double num2 = Math.Ceiling((double)(mst_mission.Time + num) / 2.0); int total_turn = Comm_UserDatas.Instance.User_turn.Total_turn; int num3 = ((double)(total_turn - mem_deck.StartTime) < num2) ? 1 : 2; double num4 = (num3 != 1) ? ((double)(mem_deck.CompleteTime - total_turn)) : ((double)(total_turn - mem_deck.StartTime)); num4 = Math.Ceiling(num4 / 3.0); int newEndTime = (int)((double)total_turn + num4); mem_deck.MissionStop(newEndTime); api_Result.data = mem_deck.StartTime - mem_deck.CompleteTime; return(api_Result); }
public static void MissionOpenToMissionId(int missionId) { Mst_mission2 master = Mst_DataManager.Instance.Mst_mission[missionId]; Mem_missioncomp mem_missioncomp = new Mem_missioncomp(master.Id, master.Maparea_id, MissionClearKinds.CLEARED); List <User_MissionFmt> activeMission = mem_missioncomp.GetActiveMission(); if (activeMission.Any((User_MissionFmt x) => x.MissionId == master.Id)) { Mem_missioncomp value = null; if (Comm_UserDatas.Instance.User_missioncomp.TryGetValue(missionId, out value)) { mem_missioncomp.Update(); } else { mem_missioncomp.Insert(); } mem_missioncomp.GetActiveMission(); } }
public static void MissionOpenToArea(int areaId) { IEnumerable <Mst_mission2> enumerable = Enumerable.Where <Mst_mission2>(Mst_DataManager.Instance.Mst_mission.get_Values(), (Mst_mission2 x) => x.Maparea_id == areaId); using (IEnumerator <Mst_mission2> enumerator = enumerable.GetEnumerator()) { while (enumerator.MoveNext()) { Mst_mission2 current = enumerator.get_Current(); Mem_missioncomp mem_missioncomp = new Mem_missioncomp(current.Id, areaId, MissionClearKinds.CLEARED); if (!Comm_UserDatas.Instance.User_missioncomp.ContainsKey(current.Id)) { mem_missioncomp.Insert(); } else { mem_missioncomp.Update(); } } } }
public static void MissionOpenToMissionId(int missionId) { Mst_mission2 master = Mst_DataManager.Instance.Mst_mission.get_Item(missionId); Mem_missioncomp mem_missioncomp = new Mem_missioncomp(master.Id, master.Maparea_id, MissionClearKinds.CLEARED); List <User_MissionFmt> activeMission = mem_missioncomp.GetActiveMission(); if (!Enumerable.Any <User_MissionFmt>(activeMission, (User_MissionFmt x) => x.MissionId == master.Id)) { return; } Mem_missioncomp mem_missioncomp2 = null; if (Comm_UserDatas.Instance.User_missioncomp.TryGetValue(missionId, ref mem_missioncomp2)) { mem_missioncomp.Update(); } else { mem_missioncomp.Insert(); } mem_missioncomp.GetActiveMission(); }
public HashSet <IsGoCondition> ValidStart(int deck_rid, int mission_id, int tankerNum) { HashSet <IsGoCondition> ret = new HashSet <IsGoCondition>(); Mst_mission2 mst_mission = null; if (mission_id > 0) { if (!Mst_DataManager.Instance.Mst_mission.TryGetValue(mission_id, out mst_mission)) { ret.Add(IsGoCondition.Invalid); return(ret); } } else { if (mission_id != -1 && mission_id != -2) { ret.Add(IsGoCondition.Invalid); return(ret); } List <Mst_mission2> supportResistedData = Mst_DataManager.Instance.GetSupportResistedData(Comm_UserDatas.Instance.User_deck[deck_rid].Area_id); mst_mission = ((mission_id != -1) ? supportResistedData[1] : supportResistedData[0]); } Mem_deck value = null; if (!Comm_UserDatas.Instance.User_deck.TryGetValue(deck_rid, out value)) { ret.Add(IsGoCondition.InvalidDeck); return(ret); } if (value.Ship.Count() == 0) { ret.Add(IsGoCondition.InvalidDeck); return(ret); } if (value.MissionState != 0) { ret.Add(IsGoCondition.Mission); } if (value.IsActionEnd) { ret.Add(IsGoCondition.ActionEndDeck); return(ret); } Mem_ship value2 = null; if (!Comm_UserDatas.Instance.User_ship.TryGetValue(value.Ship[0], out value2)) { ret.Add(IsGoCondition.Invalid); return(ret); } if (value2.Get_DamageState() == DamageState.Taiha) { ret.Add(IsGoCondition.FlagShipTaiha); } Mem_deck mem_deck = Comm_UserDatas.Instance.User_deck.Values.FirstOrDefault((Mem_deck x) => (x.Mission_id == mission_id) ? true : false); if (mem_deck != null) { ret.Add(IsGoCondition.OtherDeckMissionRunning); } int destroy_ship = 0; value.Ship.getMemShip().ForEach(delegate(Mem_ship deck_ship) { if (deck_ship.Stype == 2) { destroy_ship++; } Mst_ship mst_ship = Mst_DataManager.Instance.Mst_ship[deck_ship.Ship_id]; if (deck_ship.Fuel <= 0 || deck_ship.Bull <= 0) { ret.Add(IsGoCondition.NeedSupply); } if (mst_mission.IsSupportMission() && (deck_ship.Fuel < mst_ship.Fuel_max || deck_ship.Bull < mst_ship.Bull_max)) { ret.Add(IsGoCondition.ReqFullSupply); } if (Comm_UserDatas.Instance.User_ndock.Values.Any((Mem_ndock ndock) => ndock.Ship_id == deck_ship.Rid)) { ret.Add(IsGoCondition.HasRepair); } if (deck_ship.IsBlingShip()) { ret.Add(IsGoCondition.HasBling); } }); if (mst_mission.IsSupportMission() && destroy_ship < 2) { ret.Add(IsGoCondition.NecessaryStype); } List <Mem_tanker> freeTanker = Mem_tanker.GetFreeTanker(Comm_UserDatas.Instance.User_tanker); if (freeTanker.Count < tankerNum) { ret.Add(IsGoCondition.Tanker); } return(ret); }
public HashSet <IsGoCondition> ValidStart(int deck_rid, int mission_id, int tankerNum) { HashSet <IsGoCondition> ret = new HashSet <IsGoCondition>(); Mst_mission2 mst_mission = null; if (mission_id > 0) { if (!Mst_DataManager.Instance.Mst_mission.TryGetValue(mission_id, ref mst_mission)) { ret.Add(IsGoCondition.Invalid); return(ret); } } else { if (mission_id != -1 && mission_id != -2) { ret.Add(IsGoCondition.Invalid); return(ret); } 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)) { ret.Add(IsGoCondition.InvalidDeck); return(ret); } if (mem_deck.Ship.Count() == 0) { ret.Add(IsGoCondition.InvalidDeck); return(ret); } if (mem_deck.MissionState != MissionStates.NONE) { ret.Add(IsGoCondition.Mission); } if (mem_deck.IsActionEnd) { ret.Add(IsGoCondition.ActionEndDeck); return(ret); } Mem_ship mem_ship = null; if (!Comm_UserDatas.Instance.User_ship.TryGetValue(mem_deck.Ship[0], ref mem_ship)) { ret.Add(IsGoCondition.Invalid); return(ret); } if (mem_ship.Get_DamageState() == DamageState.Taiha) { ret.Add(IsGoCondition.FlagShipTaiha); } Mem_deck mem_deck2 = Enumerable.FirstOrDefault <Mem_deck>(Comm_UserDatas.Instance.User_deck.get_Values(), (Mem_deck x) => x.Mission_id == mission_id); if (mem_deck2 != null) { ret.Add(IsGoCondition.OtherDeckMissionRunning); } int destroy_ship = 0; mem_deck.Ship.getMemShip().ForEach(delegate(Mem_ship deck_ship) { if (deck_ship.Stype == 2) { destroy_ship++; } Mst_ship mst_ship = Mst_DataManager.Instance.Mst_ship.get_Item(deck_ship.Ship_id); if (deck_ship.Fuel <= 0 || deck_ship.Bull <= 0) { ret.Add(IsGoCondition.NeedSupply); } if (mst_mission.IsSupportMission() && (deck_ship.Fuel < mst_ship.Fuel_max || deck_ship.Bull < mst_ship.Bull_max)) { ret.Add(IsGoCondition.ReqFullSupply); } if (Enumerable.Any <Mem_ndock>(Comm_UserDatas.Instance.User_ndock.get_Values(), (Mem_ndock ndock) => ndock.Ship_id == deck_ship.Rid)) { ret.Add(IsGoCondition.HasRepair); } if (deck_ship.IsBlingShip()) { ret.Add(IsGoCondition.HasBling); } }); if (mst_mission.IsSupportMission() && destroy_ship < 2) { ret.Add(IsGoCondition.NecessaryStype); } List <Mem_tanker> freeTanker = Mem_tanker.GetFreeTanker(Comm_UserDatas.Instance.User_tanker); if (freeTanker.get_Count() < tankerNum) { ret.Add(IsGoCondition.Tanker); } return(ret); }
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); }