static public void Save(PlayerInfo.Info info) { datas = new ArrayList(); datas.Add(info); SaveData("PlayerInfoData.sav"); }
public ChatLoader() { info = PlayerInfo.GetPlayerInfo(); //获取配置表 XmlTool xt = new XmlTool(); chatconifg = xt.loadChatConfigXmlToArray(); }
//进入商店时,显示金币 void UpdateShopMoney() { #if _Debug Debug.Log("读取角色存档.."); #endif PlayerInfo.Info info = PlayerInfo.GetPlayerInfo(); Money.text = info.Money.ToString(); Mine.text = info.MineCount.ToString(); }
//更新显示金币 void UpdateMapUI(bool checkEvent) { playerInfo = PlayerInfo.GetPlayerInfo(); mineText.text = playerInfo.MineCount.ToString(); moneyText.text = playerInfo.Money.ToString(); if (checkEvent) { bool ishit = false; ishit = eventmanager.CheckEventList(ChatEventManager.ChatEvent.EventTypeList.Mines, true) || ishit; ishit = eventmanager.CheckEventList(ChatEventManager.ChatEvent.EventTypeList.Golds, false) || ishit; if (ishit) { eventmanager.StartStory(); } } }
//初始化显示地图ui void InstMapUI() { playerInfo = PlayerInfo.GetPlayerInfo(); mineText.text = playerInfo.MineCount.ToString(); moneyText.text = playerInfo.Money.ToString(); bool ishit = false; ishit = eventmanager.CheckUnCompleteEvent() || ishit; ishit = eventmanager.CheckEventList(ChatEventManager.ChatEvent.EventTypeList.InMap, false) || ishit; ishit = eventmanager.CheckEventList(ChatEventManager.ChatEvent.EventTypeList.Mines, false) || ishit; ishit = eventmanager.CheckEventList(ChatEventManager.ChatEvent.EventTypeList.Golds, false) || ishit; if (ishit) { eventmanager.StartStory(); } }
/// <summary> /// 检查是否有未完成事件 /// </summary> /// <returns></returns> public bool CheckUnCompleteEvent() { bool ishit = false; PlayerInfo.Info playerInfo = PlayerInfo.GetPlayerInfo(); foreach (PlayerInfo.EventInfo info in playerInfo.CompleteEvents) { if (info.Type == PlayerInfo.EventInfo.EventInfoType.Todo) { ChatEvent ct = FindEvetByID(info.ID); if (ct.StoryName != null) { AddStroyName(ct); ishit = true; } } } return(ishit); }
public void Clear() { chatconifg = null; info = new PlayerInfo.Info(); }
//预检查事件 ,用于显示可以触发的任务 /// <summary> /// 预检查事件 ,用于显示可以触发的任务 /// sceneID 0;shop;1:map /// </summary> /// <param name="sceneID"></param> /// <returns></returns> public void PreCheckEventList(int sceneID) { ArrayList preCheckEvent = new ArrayList(); PlayerInfo.Info playerInfo = PlayerInfo.GetPlayerInfo(); //筛选需要判断的事件 ArrayList CheckList = new ArrayList(); foreach (ChatEvent _event in ChatEventsList) { if (_event.EventType == ChatEvent.EventTypeList.Arrive || _event.EventType == ChatEvent.EventTypeList.InMap || _event.EventType == ChatEvent.EventTypeList.InShop) { CheckList.Add(_event); } } //事件判断 foreach (ChatEvent _event in CheckList) { switch (_event.EventType) { case ChatEvent.EventTypeList.InShop: if (sceneID == 0) { break; } PlayerInfo.SenceInfo shop_senceinfo = (PlayerInfo.SenceInfo)playerInfo.SenceInfoList[0]; if (_event.Num <= shop_senceinfo.InCount + 1 && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { Debug.Log("prehit event: " + _event.ID); preCheckEvent.Add(_event); } } break; case ChatEvent.EventTypeList.InMap: if (sceneID == 1) { break; } PlayerInfo.SenceInfo map_senceinfo = (PlayerInfo.SenceInfo)playerInfo.SenceInfoList[1]; if (_event.Num <= map_senceinfo.InCount + 1 && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { Debug.Log("prehit event: " + _event.ID); preCheckEvent.Add(_event); } } break; case ChatEvent.EventTypeList.Arrive: foreach (PlayerInfo.MapInfo mapinfo in playerInfo.MapInfoList) { if (mapinfo.ID == _event.Parameter[0] && _event.Num <= mapinfo.InCount + 1 && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { Debug.Log("prehit event: " + _event.ID); preCheckEvent.Add(_event); } break; } } break; default: Debug.LogWarning("Can't Check EventType:" + _event.EventType + "!"); break; } } if (preCheckEvent.Count > 0) { ShowEventHint(sceneID, preCheckEvent); } }
/// <summary> /// 用于检查是否触发事件,物品判断的条件不管使用哪个EventType都一样 /// </summary> /// <param name="EventType"></param> /// <returns></returns> public bool CheckEventList(ChatEvent.EventTypeList EventType, bool ClearStoryList) { bool ishit = false; if (ClearStoryList) { StoryList = new ArrayList(); } PlayerInfo.Info playerInfo = PlayerInfo.GetPlayerInfo(); //筛选需要判断的事件 ArrayList CheckList = new ArrayList(); foreach (ChatEvent _event in ChatEventsList) { if (CompareEventType(_event.EventType, EventType)) { CheckList.Add(_event); } } //事件判断 foreach (ChatEvent _event in CheckList) { switch (_event.EventType) { //给物品相关的判断,统一处理 case ChatEvent.EventTypeList.PutGoods: case ChatEvent.EventTypeList.SellGoods: case ChatEvent.EventTypeList.ComposeGoods: case ChatEvent.EventTypeList.CollectGoods: case ChatEvent.EventTypeList.ComposeProperty: if (_event.EventType == ChatEvent.EventTypeList.ComposeProperty) { foreach (PlayerInfo.PropertysInfo pinfo in playerInfo.MaterialInfoList.Propertys) { if (pinfo.ID == _event.Parameter[0] && _event.Num <= pinfo.RecipeCount && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { ishit = true; PlayerInfo.AddEvents(_event.ID); Debug.Log("hit event: " + _event.ID); AddStroyName(_event); break; } } } } else { if (_event.Parameter == null || _event.Parameter.Length <= 0) { Debug.LogWarning("事件配置表Parameter出错! eventID:" + _event.ID); } if (_event.Parameter[0] == 0) { foreach (PlayerInfo.ItemsInfo items in playerInfo.MaterialInfoList.Items) { if (items.ID == _event.Parameter[1] && _event.EventType == ChatEvent.EventTypeList.PutGoods && _event.Num <= items.PutCount && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { ishit = true; PlayerInfo.AddEvents(_event.ID); Debug.Log("hit event: " + _event.ID); AddStroyName(_event); break; } } else if (items.ID == _event.Parameter[1] && _event.EventType == ChatEvent.EventTypeList.SellGoods && _event.Num <= items.SellCount && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { ishit = true; PlayerInfo.AddEvents(_event.ID); Debug.Log("hit event: " + _event.ID); AddStroyName(_event); break; } } else if (items.ID == _event.Parameter[1] && _event.EventType == ChatEvent.EventTypeList.ComposeGoods && _event.Num <= items.RecipeCount && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { ishit = true; PlayerInfo.AddEvents(_event.ID); Debug.Log("hit event: " + _event.ID); AddStroyName(_event); break; } } else if (items.ID == _event.Parameter[1] && _event.EventType == ChatEvent.EventTypeList.CollectGoods && _event.Num <= items.CollectCount && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { ishit = true; PlayerInfo.AddEvents(_event.ID); Debug.Log("hit event: " + _event.ID); AddStroyName(_event); break; } } } } //item else if (_event.Parameter[0] == 1) { foreach (PlayerInfo.MindsInfo minds in playerInfo.MaterialInfoList.Minds) { if (minds.ID == _event.Parameter[1] && _event.EventType == ChatEvent.EventTypeList.PutGoods && _event.Num <= minds.PutCount && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { ishit = true; PlayerInfo.AddEvents(_event.ID); Debug.Log("hit event: " + _event.ID); AddStroyName(_event); break; } } else if (minds.ID == _event.Parameter[1] && _event.EventType == ChatEvent.EventTypeList.SellGoods && _event.Num <= minds.SellCount && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { ishit = true; PlayerInfo.AddEvents(_event.ID); Debug.Log("hit event: " + _event.ID); AddStroyName(_event); break; } } else if (minds.ID == _event.Parameter[1] && _event.EventType == ChatEvent.EventTypeList.ComposeGoods && _event.Num <= minds.RecipeCount && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { ishit = true; PlayerInfo.AddEvents(_event.ID); Debug.Log("hit event: " + _event.ID); AddStroyName(_event); break; } } else if (minds.ID == _event.Parameter[1] && _event.EventType == ChatEvent.EventTypeList.CollectGoods && _event.Num <= minds.CollectCount && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { ishit = true; PlayerInfo.AddEvents(_event.ID); Debug.Log("hit event: " + _event.ID); AddStroyName(_event); break; } } } } //mind else if (_event.Parameter[0] == 2) { foreach (PlayerInfo.SpecialItemsInfo spitems in playerInfo.MaterialInfoList.SpecialItems) { if (spitems.ID == _event.Parameter[1] && _event.EventType == ChatEvent.EventTypeList.PutGoods && _event.Num <= spitems.PutCount && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { ishit = true; PlayerInfo.AddEvents(_event.ID); Debug.Log("hit event: " + _event.ID); AddStroyName(_event); break; } } else if (spitems.ID == _event.Parameter[1] && _event.EventType == ChatEvent.EventTypeList.SellGoods && _event.Num <= spitems.SellCount && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { ishit = true; PlayerInfo.AddEvents(_event.ID); Debug.Log("hit event: " + _event.ID); AddStroyName(_event); break; } } else if (spitems.ID == _event.Parameter[1] && _event.EventType == ChatEvent.EventTypeList.ComposeGoods && _event.Num <= spitems.RecipeCount && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { ishit = true; PlayerInfo.AddEvents(_event.ID); Debug.Log("hit event: " + _event.ID); AddStroyName(_event); break; } } else if (spitems.ID == _event.Parameter[1] && _event.EventType == ChatEvent.EventTypeList.CollectGoods && _event.Num <= spitems.CollectCount && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { ishit = true; PlayerInfo.AddEvents(_event.ID); Debug.Log("hit event: " + _event.ID); AddStroyName(_event); break; } } } } //specail } break; case ChatEvent.EventTypeList.InShop: PlayerInfo.SenceInfo shop_senceinfo = (PlayerInfo.SenceInfo)playerInfo.SenceInfoList[0]; if (_event.Num <= shop_senceinfo.InCount && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { ishit = true; PlayerInfo.AddEvents(_event.ID); Debug.Log("hit event: " + _event.ID); AddStroyName(_event); } } break; case ChatEvent.EventTypeList.InMap: PlayerInfo.SenceInfo map_senceinfo = (PlayerInfo.SenceInfo)playerInfo.SenceInfoList[1]; if (_event.Num <= map_senceinfo.InCount && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { ishit = true; PlayerInfo.AddEvents(_event.ID); Debug.Log("hit event: " + _event.ID); AddStroyName(_event); } } break; case ChatEvent.EventTypeList.Arrive: foreach (PlayerInfo.MapInfo mapinfo in playerInfo.MapInfoList) { if (mapinfo.ID == _event.Parameter[0] && _event.Num <= mapinfo.InCount && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { ishit = true; PlayerInfo.AddEvents(_event.ID); Debug.Log("hit event: " + _event.ID); AddStroyName(_event); } break; } } break; case ChatEvent.EventTypeList.Mines: if (_event.Num <= playerInfo.MineCount && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { ishit = true; PlayerInfo.AddEvents(_event.ID); Debug.Log("hit event: " + _event.ID); AddStroyName(_event); } } break; case ChatEvent.EventTypeList.Golds: if (_event.Num <= playerInfo.Money && !PlayerInfo.CheckEvents(_event.ID)) { if (((_event.EventItem == null) || (_event.EventItem != null && CharBag.ContainsGoods(_event.EventItem[0], _event.EventItem[1]))) && (_event.NeedQuest == 0 || (_event.NeedQuest != 0 && PlayerInfo.CheckCompleteQuest(_event.NeedQuest)))) { ishit = true; PlayerInfo.AddEvents(_event.ID); Debug.Log("hit event: " + _event.ID); AddStroyName(_event); } } break; default: Debug.LogWarning("Can't Check EventType:" + EventType + "!"); ishit = false; break; } } return(ishit); }
void GetQuestAward(GameObject go) { Transform Board = go.transform.parent.parent; Transform root = Board.parent; Transform MoneyBoard = transform.Find("/ToolsKit/Canvas/PlayerInfo/glodBoard"); Transform mineBoard = transform.Find("/ToolsKit/Canvas/PlayerInfo/mineBoard"); //Award Transform awardGold = Board.transform.Find("QuestBoard/award/Gold"); Transform awardExp = Board.transform.Find("QuestBoard/award/Exp"); Transform AwardGoods = Board.transform.Find("QuestBoard/award/Goods"); QuestManager.QuestBase info = questManager.GetQuestInfoByID(int.Parse(Board.name)); //增加奖励 PlayerInfo.ChangeMoney(info.Award.Gold); for (int i = 0; i < info.Award.GoodsNum; i++) { CharBag.AddGoodsByID(info.Award.Goods[0], info.Award.Goods[1]); } //完成任务 PlayerInfo.AddCompleteQuest(info.ID); questManager.RemoveQuestToList(info.ID); //销毁任务面板的任务 Transform questbutton = QuestListUI.transform.Find(info.ID.ToString()); if (questbutton != null) { Destroy(questbutton.gameObject); } //生成金币 for (int i = 0; i < info.Award.Gold; i = i + 50) { Transform gold = Instantiate(awardGold, root); gold.position = awardGold.position; float randomrange = 100f; float time = 0.5f; LeanTween.moveY(gold.gameObject, gold.position.y + Random.Range(-randomrange, randomrange), time).setEase(LeanTweenType.easeOutSine); LeanTween.moveX(gold.gameObject, gold.position.x + Random.Range(-randomrange, randomrange), time).setEase(LeanTweenType.easeOutSine); LeanTween.moveX(gold.gameObject, MoneyBoard.position.x, time).setDelay(time * Random.Range(1.5f, 2f)); LeanTween.moveY(gold.gameObject, MoneyBoard.position.y, time).setDelay(time * Random.Range(1.5f, 2f)).setOnComplete( () => { Destroy(gold.gameObject); }); if (i > 500) { break; } } //生成经验 for (int i = 0; i < info.Award.Exp; i = i + 50) { Transform exp = Instantiate(awardExp, root); exp.position = awardExp.position; float randomrange = 100f; float time = 0.5f; LeanTween.moveY(exp.gameObject, exp.position.y + Random.Range(-randomrange, randomrange), time).setEase(LeanTweenType.easeOutSine); LeanTween.moveX(exp.gameObject, exp.position.x + Random.Range(-randomrange, randomrange), time).setEase(LeanTweenType.easeOutSine); LeanTween.moveX(exp.gameObject, mineBoard.position.x, time).setDelay(time * Random.Range(1.5f, 2f)); LeanTween.moveY(exp.gameObject, mineBoard.position.y, time).setDelay(time * Random.Range(1.5f, 2f)).setOnComplete( () => { Destroy(exp.gameObject); }); if (i > 500) { break; } } //生成物品 for (int i = 0; i < info.Award.GoodsNum; i++) { Transform goods = Instantiate(AwardGoods, root); goods.position = AwardGoods.position; float randomrange = 100f; float time = 0.5f; LeanTween.moveY(goods.gameObject, AwardGoods.position.y + Random.Range(-randomrange, randomrange), time).setEase(LeanTweenType.easeOutSine); LeanTween.moveX(goods.gameObject, AwardGoods.position.x + Random.Range(-randomrange, randomrange), time).setEase(LeanTweenType.easeOutSine); LeanTween.moveX(goods.gameObject, mineBoard.position.x + 100, time).setDelay(time * Random.Range(1.5f, 2f)); LeanTween.moveY(goods.gameObject, mineBoard.position.y, time).setDelay(time * Random.Range(1.5f, 2f)).setOnComplete( () => { Destroy(goods.gameObject); }); if (i > 10) { break; } } LeanTween.moveLocalY(go.transform.parent.gameObject, Screen.height / 2 + 200, 0.3f).setEaseInBack().setOnComplete(() => { Destroy(Board.gameObject); //添加完成的事件 if (info.Award.Event != 0) { eventmanager.AddStroyWithEventID(info.Award.Event); } if (!questManager.IsArriveWaitingCheckPoint(0)) { eventmanager.StartStory(); } }); //延迟更新显示 LeanTween.delayedCall(0.5f * 2f, () => { PlayerInfo.Info playerInfo = PlayerInfo.GetPlayerInfo(); MoneyBoard.Find("Text").GetComponent <Text>().text = playerInfo.Money.ToString(); }); }