예제 #1
0
        public static bool SkillExpPatch_BreakTen3(ref CheckLevelMaxMantrasAndSkills __instance, ref bool __result)
        {
            __result = false;
            if (!Application.isPlaying)
            {
                return(false);
            }
            string id = Traverse.Create(__instance).Method("GetId").GetValue <string>();

            if (id.IsNullOrEmpty())
            {
                return(false);
            }
            CharacterInfoData   characterInfoData = Game.GameData.Character[id];
            CharacterMantraData mantra            = characterInfoData.Mantra;
            CharacterSkillData  skill             = characterInfoData.Skill;
            // m: for achevement correct
            int current = (from x in mantra
                           where x.Value.Level >= 10
                           select x).Count() + (from x in skill
                                                where x.Value.Level >= 10
                                                select x).Count();

            __result = __instance.Execute(current);
            return(false);
        }
예제 #2
0
 public static void SkillExpPatch_WuxiaUnit(ref WuxiaUnit __instance, ref CharacterSkillData __result)
 {
     foreach (var s in __result)
     {
         s.Value.CharacterId = null;
     }
 }
예제 #3
0
        public static bool SkillExpPatch_BreakTen2(ref CheckSkillLevel __instance, ref bool __result)
        {
            __result = false;
            if (!Application.isPlaying)
            {
                return(false);
            }
            string id = Traverse.Create(__instance).Method("GetId").GetValue <string>();

            if (id.IsNullOrEmpty())
            {
                return(false);
            }
            CharacterSkillData skill = Game.GameData.Character[id].Skill;

            if (!skill.ContainsKey(__instance.skillid))
            {
                return(false);
            }
            SkillData skillData = skill[__instance.skillid];
            int       level     = (skillData.Level > 10) ? 10 : skillData.Level;

            __result = skillData != null && __instance.Execute(level);
            return(false);
        }
예제 #4
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;
                    }
                }
            }
        }