public static void UpdateIntroductionPatch_nonbattleUseHealSkill(ref CtrlMartialArtsWindow __instance, ref int index) { Heluo.Logger.LogError("UpdateIntroductionPatch_nonbattleUseHealSkill start"); if (nonbattleUseHealSkill.Value && index < 4) { //获得当前鼠标指向技能 CharacterMapping mapping = Traverse.Create(__instance).Field("mapping").GetValue <CharacterMapping>(); CharacterInfoData source = Game.GameData.Character[mapping.InfoId]; selectSkill = source.GetSkill((SkillColumn)index); showUITeamMember(source, selectSkill); } Heluo.Logger.LogError("UpdateIntroductionPatch_nonbattleUseHealSkill end"); }
public static void openElementUI() { Heluo.Logger.LogError("openElementUI start"); if (nonbattleChangeElement.Value) { //show结束时ctrlMartialArts还没当前角色数据,需要从ctrlhome处获得 List <CharacterMapping> characterMapping = Traverse.Create(homeController).Field("characterMapping").GetValue <List <CharacterMapping> >(); int communityIndex = Traverse.Create(homeController).Field("communityIndex").GetValue <int>(); CharacterMapping mapping = characterMapping[communityIndex]; characterInfoData = Game.GameData.Character[mapping.InfoId]; clickSkill = characterInfoData.GetSkill(characterInfoData.SpecialSkill); //不是切换功体或召唤技能 if (clickSkill == null || (clickSkill.Item.DamageType != DamageType.ChangeElement && clickSkill.Item.DamageType != DamageType.Summon)) { return; } //mp不足 if (characterInfoData.MP < clickSkill.Item.RequestMP) { string text2 = Game.Data.Get <StringTable>("SecondaryInterface1207").Text; Game.UI.AddMessage(text2, UIPromptMessage.PromptType.Normal); return; } //切换功体 if (clickSkill.Item.DamageType == DamageType.ChangeElement) { Game.MusicPlayer.Current_Volume = 0.5f; //从uibattle处获得五行盘ui UIBattle uiBattle = Game.UI.Open <UIBattle>(); WgBattleRound battle_round = uiBattle.battle_round; battle_round.gameObject.SetActive(false);//隐藏右上角的回合数 UIAttributeList attr_list = Traverse.Create(uiBattle).Field("attr_list").GetValue <UIAttributeList>(); //图层设置为最前,否则会被挡住 Game.UI.SetParent(attr_list.transform, UIForm.Depth.Front); attr_list.transform.SetAsLastSibling(); attr_list.Show(); attr_list.SetOriginElement((int)characterInfoData.Element, new Action <int>(OnElementSelect), delegate { Game.MusicPlayer.Current_Volume = 1f; }); } //召唤小熊猫,开启乖乖技能列表 else if (nonbattleUseHealSkill.Value && clickSkill.Item.DamageType == DamageType.Summon) { CharacterInfoData characterInfoData = Game.GameData.Character["in91001"]; CharacterSkillData skill = characterInfoData.Skill; Props equip = characterInfoData.Equip.GetEquip(EquipType.Weapon); if (equip == null) { return; } List <SkillData> list = new List <SkillData>(); PropsCategory propsCategory = equip.PropsCategory; foreach (string key in skill.Keys) { SkillData skillData = skill[key]; if (skillData.Item == null) { Debug.LogError("Skill表中找不到" + skillData.Id + "的文本"); } else if (!(skillData.Item.Id == characterInfoData.SpecialSkill)) { list.Add(skillData); } } if (list.Count > 0) { MartialArtsWindowInfo martialArtsWindowInfo = new MartialArtsWindowInfo(); martialArtsWindowInfo.Mapping = new CharacterMapping(); Npc npc = Game.Data.Get <Npc>("in91001"); martialArtsWindowInfo.Mapping.Id = "in91001"; martialArtsWindowInfo.Mapping.InfoId = npc.CharacterInfoId; martialArtsWindowInfo.Mapping.ExteriorId = npc.ExteriorId; martialArtsWindowInfo.Sort = list; martialArtsWindowInfo.SkillColumn = (CtrlMartialArts.UISkillColumn) 5; Game.UI.Open <UIMartialArtsWindow>().OpenWindow(martialArtsWindowInfo, null); return; } } } }