public void CreateSkillList(List <SkillInfoBean> listData) { CptUtil.RemoveChildsByActive(objSkillItemContainer); if (CheckUtil.ListIsNull(listData)) { tvNull.gameObject.SetActive(true); return; } else { tvNull.gameObject.SetActive(false); } for (int i = 0; i < listData.Count; i++) { SkillInfoBean itemSkill = listData[i]; if (!listSkill.Contains(itemSkill.id)) { continue; } GameObject objItem = Instantiate(objSkillItemContainer, objSkillItemModel); ItemBaseTextCpt itemBaseText = objItem.GetComponent <ItemBaseTextCpt>(); PopupSkillButton infoSkillPopup = objItem.GetComponent <PopupSkillButton>(); Sprite spIcon = IconDataHandler.Instance.manager.GetIconSpriteByName(itemSkill.icon_key); itemBaseText.SetData(spIcon, itemSkill.name, ""); infoSkillPopup.SetData(itemSkill); } }
/// <summary> ///协程意图-技能 /// </summary> public IEnumerator CoroutineForIntentSkill(SkillInfoBean skillInfo, List <NpcAIMiniGameCombatCpt> relativeOurList, List <NpcAIMiniGameCombatCpt> relativeEnemyList) { if (skillInfo == null) { //如果没有技能则战斗 StartCoroutine(CoroutineForIntentFight(relativeOurList, relativeEnemyList)); } else { MiniGameHandler.Instance.handlerForCombat.miniGameData.SetRoundActionCommand(MiniGameCombatCommand.Skill); MiniGameHandler.Instance.handlerForCombat.miniGameData.SetRoundActionSkill(skillInfo); EffectDetailsEnumTools.GetEffectRange(skillInfo.effect_details, out int impactNumber, out int impactType); List <NpcAIMiniGameCombatCpt> listSelectTargetNpc = new List <NpcAIMiniGameCombatCpt>(); if (impactType == 0) { //如果选择是选择自己 listSelectTargetNpc.Add(this); } else if (impactType == 1) { //如果选择是选择友方 listSelectTargetNpc.AddRange(GetSelectTargetByNumber(impactNumber, relativeOurList)); } else if (impactType == 2) { //如果选择是选择敌人 listSelectTargetNpc.AddRange(GetSelectTargetByNumber(impactNumber, relativeEnemyList)); } MiniGameHandler.Instance.handlerForCombat.miniGameData.SetRoundTargetCharacter(listSelectTargetNpc); yield return(new WaitForSeconds(1f)); MiniGameHandler.Instance.handlerForCombat.RoundForAction(); } }
/// <summary> /// 设置属性 /// </summary> /// <param name="data"></param> public void SetAttributes(SkillInfoBean data) { CptUtil.RemoveChildsByActive(objAttributeContainer); CreateItemAttributes("hourglass_1", TextHandler.Instance.manager.GetTextById(510) + " " + data.GetUseNumber()); if (CheckUtil.StringIsNull(data.effect)) { return; } List <EffectTypeBean> listEffectData = EffectTypeEnumTools.GetListEffectData(data.effect); //获取详情 EffectDetailsEnumTools.GetEffectDetailsForCombat(data.effect_details, out string effectPSName, out int durationForRound); if (listEffectData == null) { return; } foreach (EffectTypeBean itemData in listEffectData) { EffectTypeEnumTools.GetEffectDetails(itemData, null); string describe = itemData.effectDescribe; if (durationForRound != 0) { describe += ("\n" + string.Format(TextHandler.Instance.manager.GetTextById(502), "" + durationForRound)); } CreateItemAttributes(itemData.spIcon, itemData.colorIcon, describe); } }
/// <summary> /// 更新数据 /// </summary> /// <param name="menuInfo"></param> /// <returns></returns> public bool Update(SkillInfoBean skillInfo) { if (DeleteData(skillInfo.id)) { return(InsertData(skillInfo)); } return(false); }
/// <summary> /// 结束回合 /// </summary> public void EndRound() { roundActionCharacter = null; roundListTargetCharacter = null; roundActionPowerTest = 0; roundActionItemsId = 0; roundActionSkill = null; roundCombatCommand = MiniGameCombatCommand.None; }
/// <summary> /// 插入数据 /// </summary> /// <param name="menuInfo"></param> /// <returns></returns> public bool InsertData(SkillInfoBean skillInfo) { List <string> listLeftKey = new List <string> { "skill_id", "name", "content" }; return(BaseInsertDataWithLeft(skillInfo, listLeftKey)); }
/// <summary> /// 设置文本内容 /// </summary> /// <param name="content"></param> public void SetData(SkillInfoBean skillInfoData) { if (skillInfoData == null) { return; } this.skillInfoData = skillInfoData; SetIcon(skillInfoData.icon_key); SetName(skillInfoData.name); SetContent(skillInfoData.content); SetAttributes(skillInfoData); }
/// <summary> /// 设置数据 /// </summary> /// <param name="skillInfo"></param> /// <param name="usedNumber"></param> public void SetData(SkillInfoBean skillInfoData, int usedNumber) { this.skillInfoData = skillInfoData; this.usedNumber = usedNumber; int restNumber = skillInfoData.GetRestNumber(usedNumber); SetName(skillInfoData.name, restNumber); SetNumber(restNumber); SetIcon(skillInfoData.icon_key); infoSkillPopup.SetData(skillInfoData); }
/// <summary> /// 创建技能 /// </summary> /// <param name="skillInfo"></param> public void CreateSkillItem(SkillInfoBean skillInfo) { int usedNumber = 0; if (listUsedData != null) { listUsedData.TryGetValue(skillInfo.id, out usedNumber); } GameObject objItem = Instantiate(objSkillContainer, objSkillModel); ItemDialogPickForSkillCpt itemSkill = objItem.GetComponent <ItemDialogPickForSkillCpt>(); itemSkill.SetData(skillInfo, usedNumber); itemSkill.SetCallBack(this); }
/// <summary> /// 创建技能列表 /// </summary> public void SetListSkill(List <SkillInfoBean> listAllData) { tvNull.gameObject.SetActive(false); if (listSkill == null || listSkill.Count == 0) { tvNull.gameObject.SetActive(true); return; } for (int i = 0; i < listAllData.Count; i++) { SkillInfoBean itemSkillInfo = listAllData[i]; if (listSkill.Contains(itemSkillInfo.id)) { CreateSkillItem(itemSkillInfo); } } }
/// <summary> /// 协程 技能使用 /// </summary> /// <returns></returns> private IEnumerator CoroutineForCommandSkill() { NpcAIMiniGameCombatCpt actionNpc = miniGameData.GetRoundActionCharacter(); List <NpcAIMiniGameCombatCpt> listTargetNpc = miniGameData.GetRoundTargetListCharacter(); SkillInfoBean skillData = miniGameData.GetRoundActionSkill(); Sprite spSkill = IconDataHandler.Instance.manager.GetIconSpriteByName(skillData.icon_key); //喊出技能名字 actionNpc.SetShout(skillData.name); yield return(new WaitForSeconds(1f)); actionNpc.characterMiniGameData.AddUsedSkill(skillData.id, 1); //增加技能效果 foreach (NpcAIMiniGameCombatCpt itemNpc in listTargetNpc) { itemNpc.AddCombatEffect(actionNpc, skillData.effect, skillData.effect_details, spSkill); } yield return(new WaitForSeconds(1f)); }
/// <summary> /// 设置技能数据 /// </summary> /// <param name="listData"></param> public void SetSkillInfoData(List <SkillInfoBean> listData) { if (listData == null || listData.Count == 0) { ToastHandler.Instance.ToastHint(ivIcon.sprite, TextHandler.Instance.manager.GetTextById(1065)); return; } SkillInfoBean skillInfo = listData[0]; GameDataBean gameData = GameDataHandler.Instance.manager.GetGameData(); bool isPre = PreTypeEnumTools.CheckIsAllPre(gameData, characterData, skillInfo.pre_data, out string reason); if (!isPre) { ToastHandler.Instance.ToastHint(ivIcon.sprite, reason); } else { //学习该技能 characterData.attributes.LearnSkill(itemsInfoData.add_id); string toastStr = string.Format(TextHandler.Instance.manager.GetTextById(1064), characterData.baseInfo.name, itemsInfoData.name); ToastHandler.Instance.ToastHint(ivIcon.sprite, toastStr); RefreshItems(itemsInfoData.id, -1); } }
public void PickSkillComplete(SkillInfoBean skillInfo) { EffectDetailsEnumTools.GetEffectRange(skillInfo.effect_details, out int impactNumber, out int impactType); OpenSelectCharacter(impactNumber, impactType); }
public void SelectedSkill(SkillInfoBean skillInfo) { selectedSkill = skillInfo; SubmitOnClick(); }
/// <summary> /// 设置技能ID /// </summary> /// <param name="roundActionSkillId"></param> public void SetRoundActionSkill(SkillInfoBean roundActionSkill) { this.roundActionSkill = roundActionSkill; }
public void SetData(SkillInfoBean skillInfo) { this.skillInfo = skillInfo; }
/// <summary> /// 获取选中的技能 /// </summary> /// <param name="skillInfo"></param> public void GetSelectedSkill(out SkillInfoBean skillInfo) { skillInfo = selectedSkill; }