public void UpdateCollectAmount(ItemBase item, int leftAmount)//得道具时用到 { if (item == Item) { if (IsComplete) { return; } if (!InOrder) { CurrentAmount = leftAmount; } else if (AllPrevObjCmplt) { CurrentAmount = leftAmount; } if (CurrentAmount > 0) { string message = DisplayName + (IsComplete ? "(完成)" : "[" + CurrentAmount + "/" + Amount + "]"); PopoutController.CreatePopoutMessage(message, 50); } if (runtimeParent.IsComplete) { string message = "[任务]" + runtimeParent.TITLE + "(已完成)"; PopoutController.CreatePopoutMessage(message, 50); } } }
public static PopoutController CreatePopoutUnitSpeak(string unitName, string message , string unitImageAddress , int sortingoder , bool dismissAfterTapBtn, PopoutWIndowAlertType type , Action <PopoutController, PopoutWindowAlertActionType> action = null) { string name = popoutPrefabName; UnityEngine.Object prefab = null; name = "Windows/PopoutUnitSpeak"; if (popoutMessage == null) { Debug.Log("Loading popout file " + name); popoutMessage = Resources.Load(name); DontDestroyOnLoad(popoutMessage); } prefab = popoutMessage; GameObject tf = Instantiate(prefab) as GameObject; //tf.transform.position = pos; PopoutController pop = tf.GetComponent <PopoutController>(); pop.Setup(unitName, message, sortingoder, dismissAfterTapBtn, type, action); pop.panelBgImg1.sprite = Resources.Load <Sprite>(unitImageAddress); pop.fadeEndScale = Vector3.zero; return(pop); }
protected virtual void UpdateAmountUp(int amount = 1) { if (IsComplete) { return; } if (!InOrder) { CurrentAmount += amount; } else if (AllPrevObjCmplt) { CurrentAmount += amount; } if (CurrentAmount > 0) { string message = DisplayName + (IsComplete ? "完成" : "[" + CurrentAmount + "/" + Amount + "]"); PopoutController.CreatePopoutMessage(message, 50); } if (runtimeParent.IsComplete) { PopoutController.CreatePopoutMessage ("[任务 " + runtimeParent.TITLE + " ](已完成)", 50); } }
public static PopoutController CreatePopoutMessage(string message, int sortinggoder , Action <PopoutController, PopoutWindowAlertActionType> action = null) { string name = popoutPrefabName; UnityEngine.Object prefab = null; name = "Windows/PopoutMessage"; if (popoutMessage == null) { Debug.Log("Loading popout file " + name); popoutMessage = Resources.Load(name); } prefab = popoutMessage; Debug.Log("Loading file " + name); GameObject tf = Instantiate(prefab) as GameObject; PopoutController pop = tf.GetComponent <PopoutController>(); pop.SetupMsgFlow("", message, sortinggoder, true , PopoutWIndowAlertType.MessageDismissWithDelay , action); isShowingPopout = false; //SDGameManager.Instance.audio return(pop); }
public override void btnTapped() { //base.btnTapped(); if (isUnlocked) { if (!isEmpty) { GDEtimeTaskData task = SDDataManager.Instance.GetTimeTaskById(taskId); string itemId = task.itemId; int oldD = task.oldData; if (SDDataManager.Instance.FinishTimeTask(taskId)) { CurrentRewardList = new List <string>(); CurrentRewardList.Add(itemId); for (int i = 0; i < FP.AllProducts.Count; i++) { float r = oldD * 1f / (oldD + i + 2); if (UnityEngine.Random.Range(0, 1f) < r) { CurrentRewardList.Add(FP.AllProducts[i].ID); SDDataManager.Instance.addConsumable(FP.AllProducts[i].ID); } } Debug.Log("成功获取工厂成果"); string re = CurrentRewardList[0]; for (int i = 1; i < CurrentRewardList.Count; i++) { re += " & " + CurrentRewardList[i]; } PopoutController.CreatePopoutMessage("获取奖励" + re, 10); } } } }
public void SumonTenTimes_n() { CurrentAltarType = AltarType.n_tenTime; if (SDDataManager.Instance.getConsumableNum(Coupon_n_tenTimes.ID) > 0) { InitDAP(); } else { if (SDDataManager.Instance.getConsumableNum(Coupon_n_oneTime.ID) > 10) { InitDAP(); } else { if (SDDataManager.Instance.PlayerData.damond >= SDConstants.altarDamondCost * 10) { if (SDDataManager.Instance.PlayerData.damond >= SDConstants.altarDamondCost) { PopoutController.CreatePopoutAlert ( SDGameManager.T("提醒") , SDGameManager.T("确认消耗") + SDConstants.altarDamondCost * 10 + SDGameManager.T("钻石") , 25, false, PopoutController.PopoutWIndowAlertType.ConfirmMessage , (PopoutController pop , PopoutController.PopoutWindowAlertActionType type) => { if (type == PopoutController.PopoutWindowAlertActionType.OnConfirm) { InitDAP(); //pop.Dismiss(); } else { //pop.Dismiss(); } StartCoroutine(pop.Dismiss()); } ); } else { Debug.Log("无法获取:道具或钻石不足"); return; } } } } }
public IEnumerator IEInitCallingRewards() { yield return(new WaitForSeconds(newHeroPoseDismissDelay * 4)); homeScene.mapBtn.gameObject.SetActive(false); for (int i = 0; i < RewardHCs.Count; i++) { bool firstGet = true; GDEHeroData heroData = SDDataManager.Instance.getHeroByHashcode(RewardHCs[i]); string id = heroData.id; List <GDEHeroData> _List = SDDataManager.Instance.PlayerData.herosOwned.FindAll (x => x.id == id); if (_List.Count > 1) { firstGet = false; } resultRewards[i].initCalledHero(RewardHCs[i]); if (firstGet) { currentPanelContent = panelContent.pose; resultRewards[i].upText.text = "NEW!!!"; if (!excapePose) { PopoutController.CreatePopoutUnitSpeak("英雄大名" , "久仰大名", "Textures/xgb33", 10 + RewardHCs.Count - i , false, PopoutController.PopoutWIndowAlertType.ConfirmMessage , (PopoutController c, PopoutController.PopoutWindowAlertActionType a) => { if (a == PopoutController.PopoutWindowAlertActionType.OnConfirm) { StartCoroutine(c.Dismiss()); } else { StartCoroutine(c.IEWaitAndDismiss(newHeroPoseDismissDelay)); } }); yield return(new WaitForSeconds(newHeroPoseDismissDelay)); } } if (excapePose) { excapePose = false; } } currentPanelContent = panelContent.rrp; homeScene.mapBtn.gameObject.SetActive(true); }
/// <summary> /// 放弃任务 /// </summary> /// <param name="quest">放弃的任务</param> /// <param name="loadMode">是否为读档模式</param> /// <returns></returns> public bool AbandonQuest(Quest quest, bool loadMode = false) { if (HasOngoingQuest(quest) && quest && quest.Abandonable) { quest.IsOngoing = false; QuestsOngoing.Remove(quest); foreach (Objective o in quest.ObjectiveInstances) { if (o is CollectObjective) { CollectObjective co = o as CollectObjective; TriggerManager.Instance.OnGetItemEvent += co.UpdateCollectAmount; TriggerManager.Instance.OnLoseItemEvent += co.UpdateCollectAmountDown; } if (o is KillObjective) { KillObjective ko = o as KillObjective; ko.CurrentAmount = 0; TriggerManager.Instance.OnUnitDeathEvent -= ko.UpdateKillAmount; } if (o is TalkObjective) { } if (o is SubmitObjective) { } if (o is CustomObjective) { CustomObjective cuo = o as CustomObjective; cuo.CurrentAmount = 0; TriggerManager.Instance.OnTriggerSetEvent -= cuo.UpdateTriggerState; } } if (!quest.SbmtOnOriginalNPC) { } if (QuestsOngoing.Count < 1) { } return(true); } else if (!quest.Abandonable) { PopoutController.CreatePopoutAlert("", "该任务无法放弃" , 50, true, PopoutController.PopoutWIndowAlertType.ConfirmMessage , null); } return(false); }
public void UpdateCollectAmount(string itemId, int leftAmount) { bool flag = false; if (Item != null) { if (itemId == Item.ID) { flag = true; } } else if (itemId == ItemID) { flag = true; } if (flag) { if (IsComplete) { return; } if (!InOrder) { CurrentAmount = leftAmount; } else if (AllPrevObjCmplt) { CurrentAmount = leftAmount; } if (CurrentAmount > 0) { string message = DisplayName + (IsComplete ? "(完成)" : "[" + CurrentAmount + "/" + Amount + "]"); PopoutController.CreatePopoutMessage(message, 50); } if (runtimeParent.IsComplete) { string message = "[任务]" + runtimeParent.TITLE + "(已完成)"; PopoutController.CreatePopoutMessage(message, 50); } } }
/// <summary> /// 放弃当前选中的任务 /// </summary> public void AbandonSelectedQuest() { if (!selectedQuest) { return; } PopoutController.CreatePopoutAlert("", "确认放弃该任务吗(已消耗道具不会退回)", 50 , true, PopoutController.PopoutWIndowAlertType.ConfirmOrCancel , (PopoutController c, PopoutController.PopoutWindowAlertActionType a) => { if (a == PopoutController.PopoutWindowAlertActionType.OnConfirm) { AbandonQuest(selectedQuest); } else { StartCoroutine(c.IEWaitAndDismiss(0.3f)); } } ); }
public void Btn_compose_confirm() { GDERuneData rune0 = SDDataManager.Instance.getRuneOwnedByHashcode (ComposeMaterialSlots[0].hashcode); GDERuneData rune1 = SDDataManager.Instance.getRuneOwnedByHashcode (ComposeMaterialSlots[1].hashcode); GDERuneData rune2 = SDDataManager.Instance.getRuneOwnedByHashcode (ComposeMaterialSlots[2].hashcode); // if (SDDataManager.Instance.CheckIfCanComposeToCreateNewRune (rune0, rune1, rune2, out string result)) { SDDataManager.Instance.ConsumeRune(rune0.Hashcode); SDDataManager.Instance.ConsumeRune(rune1.Hashcode); SDDataManager.Instance.ConsumeRune(rune2.Hashcode); SDDataManager.Instance.AddRune(result); // RuneItem RI = SDDataManager.Instance.getRuneItemById(result); PopoutController.CreatePopoutMessage("成功呢获得 " + RI.NAME, 10); ResetComposePanel(); } }
public static PopoutController CreatePopoutAlert(string title, string message, int sortingoder , bool dismissAfterTapBtn, PopoutWIndowAlertType type , Action <PopoutController, PopoutWindowAlertActionType> action = null , string style = "") { string name = popoutPrefabName; UnityEngine.Object prefab = null; if (style == "con") { name = "Windows/PopoutConfirmCon"; if (popout1 == null) { Debug.Log("Loading popout file " + name); popout1 = Resources.Load(name); DontDestroyOnLoad(popout1); } prefab = popout1; } else { if (popout0 == null) { Debug.Log("Loading popout file " + name); popout0 = Resources.Load(name); DontDestroyOnLoad(popout0); } prefab = popout0; } Debug.Log("Loading file " + name); GameObject tf = Instantiate(prefab) as GameObject; PopoutController pop = tf.GetComponent <PopoutController>(); pop.Setup(title, message, sortingoder, dismissAfterTapBtn, type, action); //SDGameManager.Instance.audio return(pop); }
public static PopoutController CreateDamagePopoutMessage(string fontname, Vector3 pos , string message, int sortingoder , Action <PopoutController, PopoutWindowAlertActionType> action = null) { string name = popoutPrefabName; UnityEngine.Object prefab = null; name = "Windows/PopoutDamageMessage"; switch (fontname) { case "font1": name += "1"; break; case "font2": name += "2"; break; case "font3": name += "3"; break; default: break; } if (popoutMessage == null) { Debug.Log("Loading popout file" + name); popoutMessage = Resources.Load(name); DontDestroyOnLoad(popoutMessage); } prefab = popoutMessage; GameObject tf = Instantiate(prefab) as GameObject; tf.transform.position = pos; PopoutController pop = tf.GetComponent <PopoutController>(); pop.Setup ("", "-" + message, sortingoder, true , PopoutWIndowAlertType.MessageDismissWithDelay, action); return(pop); }
public void BtnGiveUpBattle() { BattleManager BM = FindObjectOfType <BattleManager>(); if (BM) { //SDGameManager.Instance.isGamePaused = true; //BM.BattleFail(); PopoutController.CreatePopoutAlert("警告", "确定放弃战斗吗</n>(有死之荣无生之辱)" , 50, true, PopoutController.PopoutWIndowAlertType.ConfirmOrCancel , (PopoutController c, PopoutController.PopoutWindowAlertActionType a) => { if (a == PopoutController.PopoutWindowAlertActionType.OnConfirm) { SDGameManager.Instance.isGamePaused = true; BM.BattleFail(); } else { c.StartCoroutine(c.IEWaitAndDismiss(0.2f)); } }); } }
public void consumeToGetItems(string itemId, bool useDamond, int itemNum = 1) { SDConstants.ItemType type = SDDataManager.Instance.getItemTypeById(itemId); int allConsume = 0; if (type == SDConstants.ItemType.Consumable) { consumableItem data = SDDataManager.Instance.getConsumableItemById(itemId); if (!useDamond) { allConsume = data.buyPrice_coin * itemNum; } else { allConsume = data.buyPrice_diamond * itemNum; } } else if (type == SDConstants.ItemType.Consumable) { consumableItem DATA = SDDataManager.Instance.getConsumableItemById(itemId); if (!useDamond) { allConsume = DATA.buyPrice_coin * itemNum; } else { allConsume = DATA.buyPrice_diamond * itemNum; } } else if (type == SDConstants.ItemType.Equip) { } if (allConsume <= 0) { return; } if (!useDamond) { if (ConsumeCoinToGetItems(allConsume, itemId, out int surplus, itemNum)) { Debug.Log("消耗 金币 " + allConsume + " 获得 商品id " + itemId + " X" + itemNum + "====== 剩余 金币 " + surplus); } } else { PopoutController.CreatePopoutAlert ( "", SDGameManager.T("是否确认购买"), 5, true, PopoutController.PopoutWIndowAlertType.ConfirmMessage, (PopoutController c, PopoutController.PopoutWindowAlertActionType d) => { if (d == PopoutController.PopoutWindowAlertActionType.OnConfirm) { bool a = ConsumeDamondToGetItems (allConsume, itemId, out int surplus, itemNum); if (a) { Debug.Log("消耗 钻石 " + allConsume + " 获得 商品id " + itemId + " X" + itemNum + "====== 剩余 钻石 " + surplus); c._dismissAfterTapBtn = true; } }
/// <summary> /// 完成任务 /// </summary> /// <param name="quest">完成的任务</param> /// <param name="loadMode">是否为读档模式</param> /// <returns></returns> public bool CompleteQuest(Quest quest, bool loadMode = false) { if (!quest) { return(false); } if (HasOngoingQuest(quest) && quest.IsComplete) { if (!loadMode) { foreach (ItemInfo rwi in quest.QuestItemReward.RewardItems) { //if() } foreach (QuestItemReward.DictItemInfo dwi in quest.QuestItemReward.DictRewardItems) { //if() } List <Quest> questsReqThisQuestItem = new List <Quest>(); foreach (Objective o in quest.ObjectiveInstances) { if (o is CollectObjective) { CollectObjective co = o as CollectObjective; questsReqThisQuestItem = QuestRequiredItem(co.Item , SDDataManager.Instance.GetItemAmount(co.Item.ID) - o.Amount) .ToList(); } if (questsReqThisQuestItem.Contains(quest) && questsReqThisQuestItem.Count > 1) //需要道具的任务群包含该任务且数量多于一个,说明其他任务对该任务提交的道具存在依赖 { PopoutController.CreatePopoutMessage ("提交失败,其他任务对该任务提交物品有需求", 50); return(false); } } } quest.IsOngoing = false; QuestsOngoing.Remove(quest); RemoveQuestAgentByQuest(quest); //quest.current QuestsComplete.Add(quest); // foreach (Objective o in quest.ObjectiveInstances) { o.OnStateChangeEvent -= OnObjectiveStateChange; if (o is CollectObjective) { CollectObjective co = o as CollectObjective; TriggerManager.Instance.OnGetItemEvent += co.UpdateCollectAmount; TriggerManager.Instance.OnLoseItemEvent += co.UpdateCollectAmountDown; if (!loadMode && co.LoseItemAtSbmt) { SDDataManager.Instance.LoseItem(co.Item.ID, o.Amount); } } if (o is KillObjective) { KillObjective ko = o as KillObjective; TriggerManager.Instance.OnUnitDeathEvent -= ko.UpdateKillAmount; } if (o is TalkObjective) { } if (o is SubmitObjective) { } if (o is CustomObjective) { CustomObjective cuo = o as CustomObjective; TriggerManager.Instance.OnTriggerSetEvent -= cuo.UpdateTriggerState; } } if (!loadMode) { SDDataManager.Instance.AddCoin(quest.RewardCoin); SDDataManager.Instance.AddDamond(quest.RewardDamond); SDDataManager.Instance.AddJiancai(quest.RewardJianCai); float R = UnityEngine.Random.Range(0, 1); if (R <= quest.QuestItemReward.GetPossible) { foreach (ItemInfo info in quest.QuestItemReward.RewardItems) { SDDataManager.Instance.AddItem(info.ItemID, info.Amount); } foreach (QuestItemReward.DictItemInfo INFO in quest.QuestItemReward.DictRewardItems) { float _R = UnityEngine.Random.Range(0, 1); if (_R <= INFO.Possibility) { SDDataManager.Instance.AddItem(INFO.ID, INFO.amount); } } } PopoutController.CreatePopoutMessage ("完成任务 [" + quest.TITLE + "]", 50); } return(true); } return(false); }
/// <summary> /// 接取任务 /// </summary> /// <param name="quest">要接取的任务</param> /// <param name="loadMode">是否读档模式</param> /// <returns></returns> public bool AcceptQuest(Quest quest, bool loadMode = false) { if (!quest || !quest.IsValid) { //PopoutController.CreatePopoutMessage("无效任务", 25); Debug.Log("无效任务"); return(false); } if (HasOngoingQuest(quest)) { //PopoutController.CreatePopoutMessage("任务正在执行", 25); Debug.Log("任务正在执行"); return(false); } if (quest.Group) { } foreach (Objective o in quest.ObjectiveInstances) { if (o is CollectObjective) { CollectObjective co = o as CollectObjective; TriggerManager.Instance.OnGetItemEvent += co.UpdateCollectAmount; TriggerManager.Instance.OnLoseItemEvent += co.UpdateCollectAmountDown; } if (o is KillObjective) { KillObjective ko = o as KillObjective; TriggerManager.Instance.OnUnitDeathEvent += ko.UpdateKillAmount; } if (o is TalkObjective) { } if (o is SubmitObjective) { } if (o is CustomObjective) { CustomObjective cuo = o as CustomObjective; TriggerManager.Instance.OnTriggerSetEvent += cuo.UpdateTriggerState; if (cuo.CheckStateAtAcpt) { TriggerManager.Instance.SetTrigger(cuo.TriggerName , TriggerManager.Instance.GetTriggerState(cuo.TriggerName)); } } o.OnStateChangeEvent += OnObjectiveStateChange; } quest.IsOngoing = true; QuestsOngoing.Add(quest); if (!quest.SbmtOnOriginalNPC) { } if (!loadMode) { PopoutController.CreatePopoutMessage("接取任务[" + quest.TITLE + "]", 50); } if (quest.ObjectiveInstances.Count > 0) { Objective firstObj = quest.ObjectiveInstances[0]; // } return(true); }