/// <summary> /// UpdateMissionをWCF RPCで呼び出す /// </summary> /// <param name="info"></param> /// <returns>失敗したらfalse</returns> void RPCUpdateMission(MissionInfo info) { if (info == null) { return; } if (!ExistWCFServer) { return; } Task.Factory.StartNew(() => { try { //上に同じ var notifyProxy = _notifyFactory.CreateChannel(); notifyProxy.UpdateMission(info.FleetNum, info.FleetName ?? "", info.MissionName ?? "", info.FinishTime); ((IClientChannel)notifyProxy).Close(); } catch (EndpointNotFoundException exp) { Debug.WriteLine("UpdateMission:EndpointNotFoundException\n" + exp.ToString()); } }); }
public IEnumerable <WarframeVoidFissure> GetVoidFissures() { JObject worldState = _scraper.WorldState; var resultVoidFissures = new List <WarframeVoidFissure>(); //Find Alerts foreach (var jsonFissure in worldState["ActiveMissions"]) { WarframeVoidFissure currentVoidFissure = _voidFissures.Find(x => x.GUID == jsonFissure["_id"]["$oid"].ToString()); if (currentVoidFissure == null) { var id = jsonFissure["_id"]["$oid"].ToString(); var loc = jsonFissure["Node"].ToString(); var millisecondsUntilStart = long.Parse(jsonFissure["Activation"]["$date"]["$numberLong"].ToString()) - (long.Parse(worldState["Time"].ToString()) * TIME_TO_LONG_MULTIPLIER); var millisecondsUntilExpire = long.Parse(jsonFissure["Expiry"]["$date"]["$numberLong"].ToString()) - (long.Parse(worldState["Time"].ToString()) * TIME_TO_LONG_MULTIPLIER); var startTime = DateTime.Now.AddMilliseconds(millisecondsUntilStart); var expireTime = DateTime.Now.AddMilliseconds(millisecondsUntilExpire); var nodeName = loc; var faction = string.Empty; var missionType = string.Empty; var fissure = string.Empty; var minLevel = 0; var maxLevel = 0; var archwingRequired = false; using (var unit = new UnitOfWork(new WarframeDataContext())) { nodeName = unit.WFSolarNodes.GetNodeName(loc); faction = unit.WFSolarNodes.GetFaction(loc); missionType = unit.WFSolarNodes.GetMissionType(loc); minLevel = unit.WFSolarNodes.GetMinLevel(loc); maxLevel = unit.WFSolarNodes.GetMaxLevel(loc); fissure = unit.WFVoidFissures.GetFissureName(jsonFissure["Modifier"].ToString()); archwingRequired = unit.WFSolarNodes.ArchwingRequired(loc); } if (DateTime.Now < expireTime) { var fissureInfo = new MissionInfo(faction, missionType, 0, fissure, 0, minLevel, maxLevel, archwingRequired); currentVoidFissure = new WarframeVoidFissure(fissureInfo, id, nodeName, startTime, expireTime); _voidFissures.Add(currentVoidFissure); #if DEBUG Console.WriteLine("New Fissure Event"); #endif } } _voidFissures.RemoveAll(x => x.ExpireTime < DateTime.Now); if ((currentVoidFissure != null) && (currentVoidFissure.ExpireTime > DateTime.Now)) { resultVoidFissures.Add(currentVoidFissure); } } return(_voidFissures); }
public void InitMissionMgr(List <MissionInfo> missionInfoList) { m_MissionInfoList = missionInfoList; m_RemovingStore = new List <int>(); m_MissionList = new List <MissionElement>(); m_AddedMissionList = new List <MissionElement>(); m_MissionCounterMap = new Dictionary <int, int>(); m_MissionStepCounterMap = new Dictionary <int, int>(); for (int i = 0; i < missionInfoList.Count; ++i) { MissionInfo info = missionInfoList[i]; //test code if (m_MissionCounterMap.ContainsKey(info.MissionId)) { continue; } m_MissionCounterMap.Add(info.MissionId, info.Counter); foreach (var elem in info.MissionStepInfoList) { if (m_MissionStepCounterMap.ContainsKey(elem.StepId)) { continue; } m_MissionStepCounterMap.Add(elem.StepId, elem.Counter); } } MessageDispatcher.Instance.RegistMessage(ClientCustomMessageDefine.C_ACCEPT_MISSION, TriggerAcceptMission); MessageDispatcher.Instance.RegistMessage(ClientCustomMessageDefine.C_GAMELOGIC_SCENE_TRIGGER, TriggerSceneState); }
///// <summary> ///// 类型编号1.用于替换只有{fw}的模板 ///// </summary> //public static string WaveFW(string modelText,MissionInfo missionInfo) //{ // //替换海浪预报数据{fw} // var forecastList = ReshapeWave(missionInfo); // int i = 0; // try // { // foreach (var temp in forecastList) // { // modelText = ForecastReplace.Replace(modelText, "{fw}", temp); // i++; // } // }catch (Exception e) // { // throw e; // } // return modelText; //} ///// <summary> ///// 类型编号2中,用于替换{fwt} ///// </summary> ///// <param name="modelText"></param> ///// <param name="missionInfo"></param> ///// <returns></returns> //public static string WaveFWT(string modelText, MissionInfo missionInfo) //{ // //替换海浪预报数据{fwt} // var forecastList = ReshapeWave(missionInfo); // int i = 0; // try // { // foreach (var temp in forecastList) // { // //按规则将浪高转换为适宜海上游览\较适宜海上游览\不适宜海上游览 // float h = float.Parse(temp); // string s; // if (h <= 1) s = "适宜海上游览"; // if (h > 1 & h <= 2) s = "较适宜海上游览"; // else s = "不适宜海上游览"; // modelText = ForecastReplace.Replace(modelText, "{fwt}", s); // i++; // } // } // catch (Exception e) // { // throw e; // } // return modelText; //} ///// <summary> ///// 类型编号3.用于海水浴场的海浪数据输入 ///// </summary> ///// <param name="path"></param> ///// <param name="outPath"></param> ///// <param name="missionInfo"></param> //public static void WaveHSYC(string path,string outPath, MissionInfo missionInfo) //{ // Document document = new Document(path,FileFormat.Doc); // TextSelection[] textFW = document.FindAllString("{fw}", true, false); // TextSelection[] textFWYC = document.FindAllString("{fwyc}", true, false); // TextSelection textY = document.FindString("{yyyy}", true, false); // TextSelection textM = document.FindString("{mm}", true, false); // TextSelection textD = document.FindString("{dd}", true, false); // textY.GetAsOneRange().Text = DateTime.Today.ToString("yyyy"); // textM.GetAsOneRange().Text = DateTime.Today.ToString("MM"); // textD.GetAsOneRange().Text = DateTime.Today.ToString("dd"); // //获取模板文件信息 // //var enc= GetEncoding(path); // //path = Path.GetDirectoryName(path) + "\\word\\document.xml"; // //读取模板 // //string modelText = TxtLoad(path,enc); // //替换海浪预报数据{fwqq}、{fw} // var forecastList = ReshapeWave(missionInfo); // int i = 0; // try // { // foreach (var temp in forecastList) // { // //按规则将浪高转换为适宜、较适宜、不适宜 // float h = float.Parse(temp); // string s; // if (h <= 1) s = "适宜"; // if (h > 1 & h <= 2) s = "较适宜"; // else s = "不适宜"; // //modelText = ForecastReplace.Replace(modelText, "{fwyc}", s); // //modelText = ForecastReplace.Replace(modelText, "{fw}", temp); // textFW[i].GetAsOneRange().Text = temp; // textFWYC[i].GetAsOneRange().Text = s; // i++; // } // //检查目录是否存在 // if (!Directory.Exists(Path.GetDirectoryName(outPath))) // { // Directory.CreateDirectory(Path.GetDirectoryName(outPath)); // } // document.SaveToFile(outPath); // } // catch (Exception e) // { // throw e; // } // //存储修改后的模板文件 // //var xmlOutPath= Path.GetDirectoryName(outPath) + "\\Temp\\word\\document.xml"; // //if (!TxtWrite(xmlOutPath, modelText, enc)) throw new Exception("产品存储失败"); //} ///// <summary> ///// 类型编号4.用于海浪-旅游全球类型的{fwqq} ///// </summary> ///// <param name="modelText"></param> ///// <param name="missionInfo"></param> ///// <returns></returns> //public static string WaveFWQQ(string modelText, MissionInfo missionInfo) //{ // //替换海浪预报数据{fwqq} // var forecastList = ReshapeWave(missionInfo); // int i = 0; // try // { // foreach (var temp in forecastList) // { // //按规则将浪高转换为轻浪、中浪、大浪等 // float h = float.Parse(temp); // string s; // if (h <= 1) s = "轻浪"; // if (h > 1 & h <= 2) s = "中浪"; // if (h > 2 & h <= 3) s = "大浪"; // if (h > 3 & h <= 4) s = "巨浪"; // else s = "狂浪"; // modelText = ForecastReplace.Replace(modelText, "{fwqq}", s); // i++; // } // } // catch (Exception e) // { // throw e; // } // return modelText; //} /// <summary> /// 将气象能见度预报数据整合成stringlist形式 /// </summary> /// <param name="missionInfo"></param> /// <returns></returns> private static List <string> ReshapeFMV(MissionInfo missionInfo) { var stationList = ChartProcess.DailyFileRead(missionInfo); List <string> forecastList = new List <string>(); foreach (var temp in stationList) { if (temp.visibilityPrescription > 0) { forecastList.Add(temp.visibility.ToString()); //temp.visibilityPrescription--; //if (temp.forecastPrescription > 0) //{ // forecastList.Add(temp.forecastValue2.ToString()); // temp.forecastPrescription--; // if (temp.forecastPrescription > 0) // { // forecastList.Add(temp.forecastValue3.ToString()); // temp.forecastPrescription--; // if (temp.forecastPrescription > 0) // { // forecastList.Add(temp.forecastValue4.ToString()); // temp.forecastPrescription--; // if (temp.forecastPrescription > 0) // { // forecastList.Add(temp.forecastValue5.ToString()); // } // } // } //} } } return(forecastList); }
public void RefreshMissionName(bool isMissionLimit) { string titleBg = missionConifg.GetCurrentTitleBg(ShowMissionHelper.Instance.currShowMissionId); if (titleBg != string.Empty) { imageBg.sprite = this.PrefabRoot.GetObjectNoInstantiate <Sprite>("Texture/Title", titleBg); } if (dataManager.missionId == ShowMissionHelper.Instance.currShowMissionId && isMissionLimit ) { aniMissionLimitImage.gameObject.SetActive(true); textName.gameObject.SetActive(false); } else { aniMissionLimitImage.gameObject.SetActive(false); textName.gameObject.SetActive(true); MissionInfo info = missionConifg.GetMissionInfoByMissionId(ShowMissionHelper.Instance.currShowMissionId); if (info != null) { textName.text = mLangManager.GetLanguageString(info.MissionName); textName.color = missionConifg.GetCurrentTitleTextColor(info.missionId); } } }
public void LoadLowData() { TextAsset data = Resources.Load("TestJson/Mission_Mission", typeof(TextAsset)) as TextAsset; StringReader sr = new StringReader(data.text); string strSrc = sr.ReadToEnd(); JSONObject Mission = new JSONObject(strSrc); for (int i = 0; i < Mission.list.Count; i++) { MissionInfo tmpInfo = new MissionInfo(); tmpInfo.MissionID = (uint)Mission[i]["MissionID_ui"].n; tmpInfo.MissionType = (byte)Mission[i]["MissionType_b"].n; tmpInfo.MissionSubType = (byte)Mission[i]["MissionSubType_b"].n; tmpInfo.MissionValue = (uint)Mission[i]["MissionValue_ui"].n; tmpInfo.MissionString = Mission[i]["MissionString_c"].str; tmpInfo.rewardGold = (uint)Mission[i]["rewardGold_ui"].n; tmpInfo.rewardExp = (uint)Mission[i]["rewardExp_ui"].n; tmpInfo.rewardCash = (uint)Mission[i]["rewardCash_ui"].n; tmpInfo.rewardEnergy = (uint)Mission[i]["rewardEnergy_ui"].n; tmpInfo.isDaily = (byte)Mission[i]["isDaily_b"].n; tmpInfo.NextMission = (uint)Mission[i]["NextMission_ui"].n; tmpInfo.beforeMission = (uint)Mission[i]["beforeMission_ui"].n; MissionInfoList.Add(tmpInfo); } }
public void AddPlayers(GameObject obj) { MissionInfo info = obj.GetComponent <MissionInfo>(); players.Add(obj, info); index++; }
private void Get_LibrarySystemBookInfo(object obj) { MissionInfo info = (MissionInfo)obj; string data = info.MissionData; string username = string.Empty; string url = string.Empty; string res = string.Empty; if (string.IsNullOrEmpty(data)) { data = string.Empty; } Regex reg = new Regex(@"username=(.+?)&url=(.+)"); MatchCollection mcResul = reg.Matches(data); if (mcResul.Count > 0) { username = mcResul[0].Groups[1].Value; url = mcResul[0].Groups[2].Value; } AddTalkMessage("收到 [" + username + "] 请求图书馆详细信息检索"); res = new LibrarySystemBookInfo().Get(username, url); SendMessage(info.MissionID + "," + res); AddTalkMessage("已向 [" + username + "] 发送图书馆详细信息检索结果"); }
private void Get_EducationSystem(object obj) { MissionInfo info = (MissionInfo)obj; string username = string.Empty; string password = string.Empty; string data = info.MissionData; string res = string.Empty; if (string.IsNullOrEmpty(data)) { data = string.Empty; } Regex reg = new Regex(@"username=(.+?)&password=(.+)"); MatchCollection mcResul = reg.Matches(data); if (mcResul.Count > 0) { username = mcResul[0].Groups[1].Value; password = mcResul[0].Groups[2].Value; } AddTalkMessage("收到 [" + username + "] 请求教务系统查询"); res = new EducationSystem().Get(username, password); SendMessage(info.MissionID + "," + res); AddTalkMessage("已向 [" + username + "] 发送教务系统查询结果"); }
//説明文 public static string GetDescription(MissionInfo info) { switch (info.Type) { case MissionType.PlayCount: return("Finish levels"); case MissionType.MoveSlimeCount: return("Move blocks"); case MissionType.MakeSlimeCount: return("Complete slimes"); case MissionType.EarnCoinCount: return("Earn coins"); case MissionType.UnlockSkinCount: return("Get skins"); case MissionType.PlayChallengeCount: return("Complete challenge levels"); } return(""); }
/// <summary> /// Passes the mission, this is just to make it a bit more self explanatory for developers to pass missions /// </summary> public void Pass() { MissionInfo info = Func.GetMissionInfo(missionType); Function.Call(Hash.PLAY_MISSION_COMPLETE_AUDIO, "FRANKLIN_BIG_01"); while (!Function.Call <bool>(Hash.IS_MISSION_COMPLETE_PLAYING)) { Script.Yield(); } if (info.type == MissionType.Heist) { BigMessageThread.MessageInstance.ShowSimpleShard($"~y~Heist Passed", info.displayName); } else if (info.type == MissionType.HeistSetup) { BigMessageThread.MessageInstance.ShowSimpleShard($"~y~Heist Setup Passed", info.displayName); } else { BigMessageThread.MessageInstance.ShowSimpleShard($"~y~Mission Passed", info.displayName); } SaveManager.save.completedMissions.Add(info.id); SaveManager.Save(); Stop(EndState.Pass); }
/// <summary> /// 获取所有站点数据 /// </summary> /// <param name="url"></param> /// <returns></returns> public static List <StationData> GetStationData(string url, MissionInfo missionInfo) { try { HttpWebRequest req = WebRequest.CreateHttp(url); req.Method = "POST"; req.ContentType = "application/json;charset=UTF-8"; string jsonStr = JsonConvert.SerializeObject(missionInfo); byte[] payload = Encoding.UTF8.GetBytes(jsonStr); req.ContentLength = payload.Length; Stream writer = req.GetRequestStream(); writer.Write(payload, 0, payload.Length); writer.Close(); var response = req.GetResponse() as HttpWebResponse; Stream stm = response.GetResponseStream(); StreamReader reader = new StreamReader(stm, Encoding.UTF8); string strDate = ""; string strValue = ""; while ((strDate = reader.ReadLine()) != null) { strValue += strDate + "\r\n"; } reader.Close(); stm.Close(); return(Str2StationData(strValue, missionInfo)); } catch (Exception e) { WriteLog(DateTime.Now.ToString() + " 获取所有站点数据异常 " + e.Message); return(null); } }
/// <summary> /// 生成预报产品文件 /// </summary> /// <param name="url"></param> /// <param name="sd"></param> /// <returns></returns> public static string MeteoProducGeneration(string url, MissionInfo mi) { try { string jsonStr = JsonConvert.SerializeObject(mi); HttpWebRequest req = WebRequest.CreateHttp(url); req.Method = "POST"; req.ContentType = "application/json;charset=UTF-8"; byte[] payload = Encoding.UTF8.GetBytes(jsonStr); req.ContentLength = payload.Length; Stream writer = req.GetRequestStream(); writer.Write(payload, 0, payload.Length); writer.Close(); var response = req.GetResponse() as HttpWebResponse; Stream stm = response.GetResponseStream(); StreamReader reader = new StreamReader(stm, Encoding.UTF8); string strDate = ""; string strValue = ""; while ((strDate = reader.ReadLine()) != null) { strValue += strDate + "\r\n"; } reader.Close(); stm.Close(); return(strValue); } catch { return(null); } }
/// <summary> /// 向服务器推送保存信息 /// </summary> /// <param name="url"></param> /// <param name="sd"></param> /// <returns></returns> public static string PostMeteoData(string url, StationData sd, MissionInfo mi) { try { MeteoDataInputModel waveData = new MeteoDataInputModel(); waveData.stationID = sd.stationID; waveData.visibility = sd.visibility; waveData.missionInfo = mi; string jsonStr = JsonConvert.SerializeObject(waveData); HttpWebRequest req = WebRequest.CreateHttp(url); req.Method = "POST"; req.ContentType = "application/json;charset=UTF-8"; byte[] payload = Encoding.UTF8.GetBytes(jsonStr); req.ContentLength = payload.Length; Stream writer = req.GetRequestStream(); writer.Write(payload, 0, payload.Length); writer.Close(); var response = req.GetResponse() as HttpWebResponse; Stream stm = response.GetResponseStream(); StreamReader reader = new StreamReader(stm, Encoding.UTF8); string strDate = ""; string strValue = ""; while ((strDate = reader.ReadLine()) != null) { strValue += strDate + "\r\n"; } reader.Close(); stm.Close(); return(strValue); } catch { return(null); } }
/// <summary> /// 将字符串转换成StationData格式 /// </summary> /// <param name="str"></param> /// <returns></returns> private static List <MissionInfo> Str2MissionList(string str) { List <MissionInfo> missionList = new List <MissionInfo>(); try { StringBuilder sb = new StringBuilder(); sb.AppendLine(str); string jsonText = sb.ToString(); JsonSerializerSettings jSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, DateFormatString = "yyy-MM-dd HH:mm:ss" }; var jsonObject = JsonConvert.DeserializeObject <dynamic>(jsonText, jSetting); //var jsonObject = JsonConvert.DeserializeObject<dynamic>(jsonText); for (int i = 0; i < jsonObject.Count; i++) { MissionInfo missionInfo = new MissionInfo(); //获取父对象的栏位 missionInfo.missionID = int.Parse(jsonObject[i]["missionID"].Value.ToString()); missionInfo.missionName = jsonObject[i]["missionName"].Value; missionInfo.stationInfoFile = jsonObject[i]["stationInfoFile"].Value; missionInfo.forecastFilesHead = jsonObject[i]["forecastFilesHead"].Value; missionInfo.outPutModel = jsonObject[i]["outPutModel"].Value; missionList.Add(missionInfo); } return(missionList); } catch (Exception e) { WriteLog(DateTime.Now.ToString() + " 将字符串转换成Mission格式异常 " + e.Message); return(null); } }
public static float NullValue = -999999;//空值 /// <summary> /// 初始化当天的表格,当天没有文件就新建一个 /// </summary> /// <returns></returns> public static bool ChartPreparation(MissionInfo missionInfo) { string fileName = missionInfo.forecastFilesHead + DateTime.Today.ToString("yyyyMMdd") + ".txt"; string baseDirectory = AppDomain.CurrentDomain.BaseDirectory + "\\DailyData\\Meteorological\\ForecastFiles\\" + DateTime.Today.ToString("yyyyMMdd") + "\\"; //检查目录是否存在 if (!Directory.Exists(baseDirectory)) { Directory.CreateDirectory(baseDirectory); } //检查今日文件是否存在 if (!File.Exists(baseDirectory + fileName)) { //不存在就读取模板并新建 List <StationData> stationList = StationInfoRead(missionInfo); if (stationList == null) { return(false); } if (!ChartWrite(stationList, baseDirectory + fileName)) { return(false); } } return(true); }
private void Awake() { //App 오브젝트를 씬 넘어가도 지우지 말어라 DontDestroyOnLoad(this.gameObject); DataManager.GetInstance().Load(); InfoManager.GetInstance().Init(); string path = Application.persistentDataPath + "/gameInfo.json"; if (File.Exists(path)) { string LoadJson = File.ReadAllText(path); GameInfo gameInfo = JsonConvert.DeserializeObject <GameInfo>(LoadJson); InfoManager.GetInstance().Init(gameInfo); } else { InfoManager.GetInstance().Init(); List <MissionData> missionDataList = DataManager.GetInstance().GetMissionData(); foreach (var data in missionDataList) { MissionInfo info = new MissionInfo(data.id, 0); InfoManager.GetInstance().gameInfo.missionInfoList.Add(info); } } //Title 씬으로 바꾸기 this.ChangeScene(eSceneState.Title); }
/// <summary> /// 将字符串转换成StationData格式 /// </summary> /// <param name="str"></param> /// <returns></returns> private static List <StationData> Str2StationData(string str, MissionInfo missionInfo) { List <StationData> stationList = new List <StationData>(); try { StringBuilder sb = new StringBuilder(); sb.AppendLine(str); string jsonText = sb.ToString(); JsonSerializerSettings jSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, DateFormatString = "yyy-MM-dd HH:mm:ss" }; var jsonObject = JsonConvert.DeserializeObject <dynamic>(jsonText, jSetting); //var jsonObject = JsonConvert.DeserializeObject<dynamic>(jsonText); for (int i = 0; i < jsonObject.Count; i++) { StationData stationData = new StationData(missionInfo); //获取父对象的栏位 stationData.stationID = int.Parse(jsonObject[i]["stationID"].Value.ToString()); stationData.stationName = jsonObject[i]["stationName"].Value; stationData.visibility = float.Parse(jsonObject[i]["visibility"].Value.ToString()); stationData.coordinateX = double.Parse(jsonObject[i]["coordinateX"].Value.ToString()); stationData.coordinateY = double.Parse(jsonObject[i]["coordinateY"].Value.ToString()); stationData.visibilityPrescription = int.Parse(jsonObject[i]["visibilityPrescription"].Value.ToString()); stationData.photoHead = jsonObject[i]["photoHead"].Value; stationList.Add(stationData); } return(stationList); } catch { return(null); } }
public static string DiscordMessage(this WarframeVoidFissure fissure, bool isNotification) { MissionInfo info = fissure.MissionDetails; var rewardMessage = (!string.IsNullOrEmpty(info.Reward) ? info.Reward : string.Empty); var statusString = (!fissure.IsExpired()) ? (DateTime.Now < fissure.StartTime ? $"Starts {fissure.StartTime:HH:mm} ({fissure.GetMinutesRemaining(true)}m)" : $"Expires {fissure.ExpireTime:HH:mm} ({fissure.GetMinutesRemaining(false)}m)") : $"Expired ({fissure.ExpireTime:HH:mm})"; StringBuilder returnMessage = new StringBuilder(); if (!isNotification) { returnMessage.AppendLine(fissure.DestinationName); returnMessage.AppendLine($"{info.Faction} {info.MissionType}{(info.RequiresArchwing ? $" (Archwing)" : string.Empty)}"); returnMessage.AppendLine(rewardMessage); returnMessage.Append(statusString); } else { returnMessage.AppendLine("New Void Fissure"); returnMessage.AppendLine($"{info.Faction} {info.MissionType}"); returnMessage.AppendLine(rewardMessage); returnMessage.Append(statusString); } return(returnMessage.ToString()); }
private Level convertToJsonModel(MissionInfo mission, int level, int sublevel) { var rotors = mission.Rotors.Select(e => new RotorJsonModel() { Id = e.Id, Ticks = mission.NumberOfTick, State = e.CurrentState }).ToList(); var circuits = mission.Rotors.Select(e => new Circuit() { Switch = e.Id, Rotors = e.AffectTo.Select(f => mission.Rotors[f].Id).ToArray() }).ToList(); return(new Level() { Major = level, Minor = sublevel, Rotors = rotors, Circuits = circuits, Layout = mission.Layout, Answer = mission.Answer.Count }); }
private void CommitMission() { FleetInfo fleetInfo = this._app.GameDatabase.GetFleetInfo(this._interceptFleetWidget.SelectedFleet); int systemId1 = fleetInfo.SystemID; int systemId2 = this._currentReaction.fleet.SystemID; this._app.GameDatabase.ChangeDiplomacyState(this._currentReaction.fleet.PlayerID, fleetInfo.PlayerID, DiplomacyState.WAR); this._app.GameDatabase.UpdateFleetLocation(this._currentReaction.fleet.ID, systemId1, new int?()); MissionInfo missionByFleetId = this._app.GameDatabase.GetMissionByFleetID(this._currentReaction.fleet.ID); if (missionByFleetId == null) { Kerberos.Sots.StarFleet.StarFleet.SetRelocationMission(this._app.Game, this._currentReaction.fleet.ID, systemId2, false, (List <int>)null); } else { List <WaypointInfo> list = this._app.GameDatabase.GetWaypointsByMissionID(missionByFleetId.ID).ToList <WaypointInfo>(); foreach (WaypointInfo waypointInfo in list) { this._app.GameDatabase.RemoveWaypoint(waypointInfo.ID); } this._app.GameDatabase.InsertWaypoint(missionByFleetId.ID, WaypointType.TravelTo, new int?(systemId2)); foreach (WaypointInfo waypointInfo in list) { this._app.GameDatabase.InsertWaypoint(missionByFleetId.ID, waypointInfo.Type, waypointInfo.SystemID); } } this.GetNextReaction(); }
private void ShowRewardItem(MissionInfo missionVO) { AwardTitle.gameObject.SetActive(true); int index = 0; if (missionVO.money > 0) { SetItemData(index + 1, (int)KItemTableType.ittOther, "money", missionVO.money); index++; } if (missionVO.exp > 0) { SetItemData(index + 1, (int)KItemTableType.ittOther, "exp", missionVO.exp); index++; } if (missionVO.rewardTypes != null && missionVO.rewardTypes.Length != 0) { for (; index < missionVO.rewardTypes.Length; ++index) { SetItemData(index + 1, missionVO.rewardTypes[index], missionVO.rewardItemIDs[index].ToString(), missionVO.rewardItemNums[index]); } } for (int i = index; i < maxRewardNum; ++i) { SetRewardItemHide(i); } }
public List <StationData> MeteoRefill(MissionInfo missionInfo) { if (missionInfo == null & missionInfo.stationInfoFile == null & missionInfo.forecastFilesHead == null & missionInfo.missionID == 0) { return(null); } //读取站点每日数据 List <StationData> stationDataList = ChartProcess.DailyFileRead(missionInfo); //读取客观数据,若成功则返回更新后的数据,若失败则返回null var stationDataList1 = ChartProcess.NFDataRead(missionInfo, stationDataList); //若更新成功,则保存,并返回新数据,否则返回原数据 if (stationDataList1 != null) { string baseDirectory = AppDomain.CurrentDomain.BaseDirectory + "\\DailyData\\Meteorological\\ForecastFiles\\" + DateTime.Today.ToString("yyyyMMdd") + "\\"; string fileName = missionInfo.forecastFilesHead + DateTime.Today.ToString("yyyyMMdd") + ".txt"; if (!ChartProcess.ChartWrite(stationDataList1, baseDirectory + fileName)) { return(null); } return(stationDataList1); } else { return(stationDataList); } }
/// <summary> /// 类型编号2中,用于替换{fwt} /// </summary> /// <param name="modelText"></param> /// <param name="missionInfo"></param> /// <returns></returns> public static string WaveFWT(string modelText, MissionInfo missionInfo) { //替换海浪预报数据{fwt} var forecastList = ReshapeWave(missionInfo); int i = 0; try { foreach (var temp in forecastList) { //按规则将浪高转换为适宜海上游览\较适宜海上游览\不适宜海上游览 float h = float.Parse(temp); string s = ""; if (h <= 1) { s = "适宜海上游览"; } if (h > 1 & h <= 1.8) { s = "较适宜海上游览"; } if (h > 1.8) { s = "不适宜海上游览"; } modelText = ForecastReplace.Replace(modelText, "{fwt}", s); i++; } } catch (Exception e) { throw e; } return(modelText); }
/// <summary> /// 将海浪预报数据整合成stringlist形式 /// </summary> /// <param name="missionInfo"></param> /// <returns></returns> private static List <string> ReshapeWave(MissionInfo missionInfo) { var stationList = ChartProcess.DailyFileRead(missionInfo); List <string> forecastList = new List <string>(); foreach (var temp in stationList) { if (temp.forecastPrescription > 0) { forecastList.Add(temp.forecastValue1.ToString("F1")); temp.forecastPrescription--; if (temp.forecastPrescription > 0) { forecastList.Add(temp.forecastValue2.ToString("F1")); temp.forecastPrescription--; if (temp.forecastPrescription > 0) { forecastList.Add(temp.forecastValue3.ToString("F1")); temp.forecastPrescription--; if (temp.forecastPrescription > 0) { forecastList.Add(temp.forecastValue4.ToString("F1")); temp.forecastPrescription--; if (temp.forecastPrescription > 0) { forecastList.Add(temp.forecastValue5.ToString("F1")); } } } } } } return(forecastList); }
protected override void OnCommitMission() { foreach (OverlayReactionlMission.ReactionUIContainer container in this._containers) { OverlayReactionlMission.ReactionUIContainer rui = container; if (rui.TargetFleet.HasValue) { FleetInfo fleetInfo = rui.Reaction.fleetsInRange.FirstOrDefault <FleetInfo>((Func <FleetInfo, bool>)(x => { int id = x.ID; int?targetFleet = rui.TargetFleet; if (id == targetFleet.GetValueOrDefault()) { return(targetFleet.HasValue); } return(false); })); int systemId = rui.Reaction.fleet.SystemID; this._app.GameDatabase.ChangeDiplomacyState(rui.Reaction.fleet.PlayerID, fleetInfo.PlayerID, DiplomacyState.WAR); this._app.GameDatabase.UpdateFleetLocation(rui.Reaction.fleet.ID, fleetInfo.SystemID, new int?()); MissionInfo missionByFleetId = this._app.GameDatabase.GetMissionByFleetID(rui.Reaction.fleet.ID); if (missionByFleetId == null) { Kerberos.Sots.StarFleet.StarFleet.SetRelocationMission(this._app.Game, rui.Reaction.fleet.ID, systemId, false, (List <int>)null); } else { List <WaypointInfo> list = this._app.GameDatabase.GetWaypointsByMissionID(missionByFleetId.ID).ToList <WaypointInfo>(); foreach (WaypointInfo waypointInfo in list) { this._app.GameDatabase.RemoveWaypoint(waypointInfo.ID); } this._app.GameDatabase.InsertWaypoint(missionByFleetId.ID, WaypointType.TravelTo, new int?(systemId)); foreach (WaypointInfo waypointInfo in list) { this._app.GameDatabase.InsertWaypoint(missionByFleetId.ID, waypointInfo.Type, waypointInfo.SystemID); } } } this._app.Game.RemoveReaction(rui.Reaction); } if (!this._app.GameSetup.IsMultiplayer) { this._app.Game.Phase4_Combat(); } else if (this._app.Network.IsJoined) { this._app.GameDatabase.LogComment("SYNC REACTIONS"); this._app.Network.SendHistory(this._app.GameDatabase.GetTurnCount()); } else { if (!this._app.Network.IsHosting) { return; } this._app.Network.ReactionComplete(); } }
/// <summary> /// 类型编号4.用于海浪-旅游全球类型的{fwqq} /// </summary> /// <param name="modelText"></param> /// <param name="missionInfo"></param> /// <returns></returns> public static string WaveFWQQ(string modelText, MissionInfo missionInfo) { //替换海浪预报数据{fwqq} var forecastList = ReshapeWave(missionInfo); int i = 0; try { foreach (var temp in forecastList) { //按规则将浪高转换为轻浪、中浪、大浪等 float h = float.Parse(temp); string s = ""; if (h < 0.1) { s = "微浪"; } if (h >= 0.1 & h < 0.5) { s = "小浪"; } if (h >= 0.5 & h < 1.25) { s = "轻浪"; } if (h >= 1.25 & h < 2.5) { s = "中浪"; } if (h >= 2.5 & h < 4) { s = "大浪"; } if (h >= 4 & h < 6) { s = "巨浪"; } if (h >= 6 & h < 9) { s = "狂浪"; } if (h >= 9 & h < 14) { s = "狂涛"; } if (h >= 14) { s = "怒涛"; } modelText = ForecastReplace.Replace(modelText, "{fwqq}", s); i++; } } catch (Exception e) { throw e; } return(modelText); }
public ColonySelfSufficientDialog(App game, int planetId, int missionId) : base(game, "dialogColonySelfSufficientEvent") { this.orbitalObject = game.GameDatabase.GetOrbitalObjectInfo(planetId); this.planet = game.GameDatabase.GetPlanetInfo(planetId); this.colony = game.GameDatabase.GetColonyInfoForPlanet(planetId); this.mission = game.GameDatabase.GetMissionInfo(missionId); }
void Awake() { _instance = this; _papsInfo = new PAPSInfo(); _missionInfo = new MissionInfo(); _papsTableManager = new PAPSTableManager(); _papsTableManager.ReadTableFile(); }
private void OnClickCompleteBtnHandler(GameObject go) { NpcLinkInfo linkVO = PannelVO.missionLinks[missionIndex]; MissionInfo missionVO = linkVO.data as MissionInfo; MissionLogic.GetInstance().SendFinishQuestMsg(missionVO.id); missionIndex = 0; Hide(); }
public void PrepareNewSession() { if (GameState == eGameState.Prepared || GameState == eGameState.GameOver || GameState == eGameState.ALLSessionStopped) { m_gameState = eGameState.SessionPrepared; SessionId++; ClearLoadingFiles(); ClearMissionData(); m_gameOverResources.Clear(); WantTryAgain = 0; m_missionInfo = Misssions[SessionId]; m_pveGameDelay = m_missionInfo.Delay; TotalCount = m_missionInfo.TotalCount; TotalTurn = m_missionInfo.TotalTurn; Param1 = m_missionInfo.Param1; Param2 = m_missionInfo.Param2; Param3 = -1; Param4 = -1; m_missionAI = ScriptMgr.CreateInstance(m_missionInfo.Script) as AMissionControl; if (m_missionAI == null) { log.ErrorFormat("Can't create game mission ai :{0}", m_missionInfo.Script); m_missionAI = SimpleMissionControl.Simple; } IsBossWar = ""; m_missionAI.Game = this; try { m_missionAI.OnPrepareNewSession(); } catch (Exception ex) { log.ErrorFormat("game ai script {0} error:{1}", GameState, ex); } } }
/// <summary> /// 遠征情報をタイマに反映するRPC呼び出し /// </summary> /// <param name="deckData"></param> public void UpdateMission(IEnumerable<MemberData.Deck.Fleet> deckList) { lock (deckList) { foreach (var fleet in deckList) { var info = new MissionInfo(fleet); _missionList[info.FleetNum - 1] = info; System.Diagnostics.Debug.WriteLine(info); RPCUpdateMission(info); } } }
public Global() { Network = new NetworkManager(); Player = new PlayerData(); CurrentMission = new MissionInfo(); }
/// <summary> /// UpdateMissionをWCF RPCで呼び出す /// </summary> /// <param name="info"></param> /// <returns>失敗したらfalse</returns> void RPCUpdateMission(MissionInfo info) { if (info == null) return; if (!ExistWCFServer) return; Task.Factory.StartNew(() => { try { //上に同じ var notifyProxy = _notifyFactory.CreateChannel(); notifyProxy.UpdateMission(info.FleetNum, info.FleetName ?? "", info.MissionName ?? "", info.FinishTime); ((IClientChannel)notifyProxy).Close(); } catch (EndpointNotFoundException exp) { Debug.WriteLine("UpdateMission:EndpointNotFoundException\n" + exp.ToString()); } }); }