Esempio n. 1
0
        /// <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());
                }
            });
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
    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);
                }
            }
        }
Esempio n. 6
0
    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);
        }
    }
Esempio n. 7
0
    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 + "] 发送教务系统查询结果");
        }
Esempio n. 10
0
    //説明文
    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("");
    }
Esempio n. 11
0
        /// <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);
        }
Esempio n. 12
0
 /// <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);
     }
 }
Esempio n. 13
0
 /// <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); }
 }
Esempio n. 14
0
 /// <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); }
 }
Esempio n. 15
0
        /// <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);
            }
        }
Esempio n. 16
0
        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);
        }
Esempio n. 17
0
    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);
    }
Esempio n. 18
0
        /// <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());
        }
Esempio n. 20
0
        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
            });
        }
Esempio n. 21
0
        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();
        }
Esempio n. 22
0
        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);
            }
        }
Esempio n. 23
0
        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);
            }
        }
Esempio n. 24
0
        /// <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);
        }
Esempio n. 25
0
        /// <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);
        }
Esempio n. 26
0
 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();
     }
 }
Esempio n. 27
0
        /// <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);
        }
Esempio n. 28
0
 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);
 }
Esempio n. 29
0
 void Awake()
 {
     _instance         = this;
     _papsInfo         = new PAPSInfo();
     _missionInfo      = new MissionInfo();
     _papsTableManager = new PAPSTableManager();
     _papsTableManager.ReadTableFile();
 }
Esempio n. 30
0
        private void OnClickCompleteBtnHandler(GameObject go)
        {
            NpcLinkInfo linkVO    = PannelVO.missionLinks[missionIndex];
            MissionInfo missionVO = linkVO.data as MissionInfo;

            MissionLogic.GetInstance().SendFinishQuestMsg(missionVO.id);
            missionIndex = 0;
            Hide();
        }
Esempio n. 31
0
        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);
                }
            }
        }
Esempio n. 32
0
 /// <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);
         }
     }
 }
Esempio n. 33
0
	public Global() {
		Network = new NetworkManager();
		Player = new PlayerData();
		CurrentMission = new MissionInfo();
	}
Esempio n. 34
0
        /// <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());
               }
           });

        }