void CreateAccidentWarning(Accident accident) { AccidentWarning warning = new AccidentWarning(); System.Random rnd = new System.Random(); int rndNum; for (int i = 0; i < AccidentWarningAccurency.Length; i++) { warning.starttime = accident.starttime.AddMinutes(-AccidentWarningAccurency[i]); warning.location = accident.location; warning.type = accident.type; warning.Accidentstarttime = accident.starttime; rndNum = rnd.Next(0, AccidentWarningAccurency[i] / 2); warning.min = accident.duration - rndNum; if (warning.min < 0) { warning.min = accident.duration; } warning.max = accident.duration + AccidentWarningAccurency[i] - rndNum; if (DateTime.Compare(warning.starttime, InitTime) < 0) { Debug.Log("too early warning " + warning.starttime + " " + accident.starttime); warning.starttime = InitTime; AccidentWarningList.Add(warning); break; } AccidentWarningList.Add(warning); } }
void PushAccidentList() { foreach (Accident item in AccidentList) { CreateAccidentWarning(item); TimeManager.instance.AddAccidentExecute(item, HandleAccident, false); Accident eitem = new Accident { duration = item.duration, location = item.location, starttime = item.starttime.AddMinutes(item.duration), type = item.type, text = item.text }; TimeManager.instance.AddAccidentExecute(eitem, null, true); //timemanager callback } foreach (AccidentWarning item in AccidentWarningList) { //timemanager callback TimeManager.instance.AddAccidentExecute(item, null); AccidentWarning eitem = new AccidentWarning { min = item.min, location = item.location, starttime = item.starttime.AddMinutes(item.min), type = item.type, max = item.max }; TimeManager.instance.AddAccidentExecute(eitem, null, true); } }
private void SetDate(BaseAccident data) { callback = null; if (data.GetType() == typeof(Accident)) { string city = ""; Accident accident = data as Accident; if (accident.type == AccidentType.airport) { city = CityUtil.Instance.GetCityName(accident.location); RectTransform cityrt = MapTrafficView.instance.FindPlace(city); Vector3 pos = cityrt.anchoredPosition3D + new Vector3(cityrt.rect.width / 2, 0, 0); Lucky.LuckyUtils.Log("city warning" + city); rt.anchoredPosition3D = pos; } else { RectTransform railwayrt = MapTrafficView.instance.FindRailway(accident.location); Vector3 pos = railwayrt.anchoredPosition3D; rt.anchoredPosition3D = pos; } rt.localScale = new Vector3(1.5f, 1.5f, 0); //news = city + "灾害持续时间: "+accident.duration+"分钟"; news = accident.text.description; Lucky.LuckyUtils.Log("add listener"); callback = delegate() { InfoView.Show(new InfoMessage(news, "寒潮已经到达!")); }; } else if (data.GetType() == typeof(AccidentWarning)) { string city = ""; AccidentWarning warning = data as AccidentWarning; if (warning.type == AccidentType.airport) { Lucky.LuckyUtils.Log("location number " + warning.location); city = CityUtil.Instance.GetCityName(warning.location); RectTransform cityrt = MapTrafficView.instance.FindPlace(city); Vector3 pos = cityrt.anchoredPosition3D + new Vector3(cityrt.rect.width / 2, 0, 0); rt.anchoredPosition3D = pos; news = "寒潮即将到达" + city + ",请注意出行安全\n\n" + "<size=45>寒潮预计到达时间: " + warning.Accidentstarttime.ToString("HH:mm") + "</size>\n\n" + "<size=45>寒潮预计持续时间: " + warning.min + "分钟 ~ " + warning.max + "分钟</size>"; } else { RectTransform railwayrt = MapTrafficView.instance.FindRailway(warning.location); Vector3 pos = railwayrt.anchoredPosition3D; rt.anchoredPosition3D = pos; CityMapping edge = CityUtil.Instance.GetEdgeCity(warning.location); news = "寒潮即将到达" + edge.start_node + "-" + edge.end_node + ",请注意出行安全\n\n" + "<size=45>寒潮预计到达时间: " + warning.Accidentstarttime.ToString("HH:mm") + "</size>\n\n" + "<size=45>寒潮预计持续时间: " + warning.min + "分钟 ~ " + warning.max + "分钟</size>"; } rt.localScale = new Vector3(1.5f, 1.5f, 0); //news = ""+ city +"寒潮即将到达此处,请注意出行安全\n\n" // + "<size=45>寒潮预计到达时间: " + warning.Accidentstarttime.ToString("HH:mm") + "</size>\n\n" // + "<size=45>寒潮预计持续时间: " + warning.min + "分钟 ~ " + warning.max + "分钟</size>"; callback = delegate() { InfoView.Show(new InfoMessage(news, "【寒潮天气预警】")); }; } }
public void ShowAccidentMessage(BaseAccident data) { if (data.GetType() == typeof(Accident)) { Accident accident = data as Accident; Debug.Log("show accident " + accident.location); if (accident.type == AccidentType.airport) { if (AirPlanewarndic.ContainsKey(accident.location)) { AirPlanewarndic[accident.location].AccidentMessage = accident; } else { Debug.Log("add accident " + accident.location); GameObject warningPrefab = PrefabManager.Instance.GetPrefabs(Prefabs.Warning); GameObject warningObj = Instantiate(warningPrefab); LuckyUtils.MakeIndentity(warningObj.transform); WarningView wv = warningObj.GetComponent <WarningView>(); wv.AccidentMessage = accident; AirPlanewarndic.Add(accident.location, wv); warningObj.transform.SetParent(transform); warningObj.SetActive(true); LuckyUtils.MakeIndentity(warningObj.transform); } } else { if (Trainwarndic.ContainsKey(accident.location)) { Trainwarndic[accident.location].AccidentMessage = accident; } else { Debug.Log("add accident " + accident.location); GameObject warningPrefab = PrefabManager.Instance.GetPrefabs(Prefabs.Warning); GameObject warningObj = Instantiate(warningPrefab); LuckyUtils.MakeIndentity(warningObj.transform); WarningView wv = warningObj.GetComponent <WarningView>(); wv.AccidentMessage = accident; Trainwarndic.Add(accident.location, wv); warningObj.transform.SetParent(transform); warningObj.SetActive(true); LuckyUtils.MakeIndentity(warningObj.transform); } } } else if (data.GetType() == typeof(AccidentWarning)) { AccidentWarning warning = data as AccidentWarning; Debug.Log("show accident warning " + warning.location); if (warning.type == AccidentType.airport) { if (AirPlanewarndic.ContainsKey(warning.location)) { AirPlanewarndic[warning.location].AccidentMessage = warning; } else { Debug.Log("add accident warning " + warning.location); GameObject warningPrefab = PrefabManager.Instance.GetPrefabs(Prefabs.Warning); GameObject warningObj = Instantiate(warningPrefab); LuckyUtils.MakeIndentity(warningObj.transform); WarningView wv = warningObj.GetComponent <WarningView>(); wv.AccidentMessage = warning; AirPlanewarndic.Add(warning.location, wv); warningObj.transform.SetParent(transform); warningObj.SetActive(true); LuckyUtils.MakeIndentity(warningObj.transform); } } else { if (Trainwarndic.ContainsKey(warning.location)) { Trainwarndic[warning.location].AccidentMessage = warning; } else { Debug.Log("add accident warning " + warning.location); GameObject warningPrefab = PrefabManager.Instance.GetPrefabs(Prefabs.Warning); GameObject warningObj = Instantiate(warningPrefab); LuckyUtils.MakeIndentity(warningObj.transform); WarningView wv = warningObj.GetComponent <WarningView>(); wv.AccidentMessage = warning; Trainwarndic.Add(warning.location, wv); warningObj.transform.SetParent(transform); warningObj.SetActive(true); LuckyUtils.MakeIndentity(warningObj.transform); } } } }