public void onSelectAbility(AbilityBase ability) { if (ability != null && ability.IsValid() && GameData.Instance.BattleSceneActionFlag.HasFlag((long)StateDef.BattleActionFlag.OnChoosingSkill)) { ability.onSelect(); } }
protected override bool ChooseSkill() { List <AbilityBase> availableSkills = new List <AbilityBase>(); foreach (AbilityBase skill in m_abilities) { if (skill.IsValid()) { availableSkills.Add(skill); } } if (availableSkills.Count > 0) { List <RandomObject> objs = new List <RandomObject>(); foreach (AbilityBase ab in availableSkills) { if (ab != null) { RandomObject ro = new RandomObject(); ro.ItemId = ab.SkillData.id; ro.Weight = ab.SkillData.weight; objs.Add(ro); } } if (objs.Count > 0) { List <RandomObject> retObjs = ProjectHelper.GetRandomList <RandomObject>(objs, 1); AbilityBase abb = m_abilities.Where(ability => ability.SkillData.id == retObjs[0].ItemId).FirstOrDefault(); if (abb != null) { abb.onSelect(); return(true); } } } return(false); }