Exemplo n.º 1
0
        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");
        }
Exemplo n.º 2
0
        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;
                    }
                }
            }
        }