using System.Collections; using System.Collections.Generic; using UnityEngine; namespace vnxbqy.UI { public class ViewPetSkillCell : CellView { [SerializeField] SkillBehaviour[] m_Skills; PetModel model { get { return ModelCenter.Instance.GetModel(); } } ViewPetDetailWin displayWindow; public void Display(int line, ViewPetDetailWin win) { displayWindow = win; for (int i = 0; i < displayWindow.lineCount; i++) { var index = line * displayWindow.lineCount + i; if (index < displayWindow.displayTotalSkills.Count) { m_Skills[i].SetActive(true); m_Skills[i].Display(displayWindow.displayTotalSkills[index]); m_Skills[i].onClick -= OnSkillClick; m_Skills[i].onClick += OnSkillClick; } else { m_Skills[i].SetActive(false); m_Skills[i].onClick -= OnSkillClick; } } } public void OnSkillClick(int skillId) { int petId = 0; var skillConfig = SkillConfig.Get(skillId); if (model.TryGetPetId(skillId, out petId)) { PetInfoConfig config = PetInfoConfig.Get(petId); if (config != null) { var label1 = skillConfig.Description; var label2 = Language.Get("pet_SkillTipLv", config.Name, model.GetSkillUnlockLevel(skillId)); SkillDetails.ShowSkillDetails(skillId, SkillDetails.SkillSourceType.ViewHorsePet, skillConfig == null ? 0 : skillConfig.FightPower, label1, label2); } } else { List skills; var fightPower = 0; var effect = SkillConfig.GetSkillEffectValue(skillConfig); var count = effect.GetHasValueCount(); var values = new float[count]; if (model.TryGetPetSkills(effect, out skills)) { foreach (var id in skills) { if (displayWindow.unlockTotalSkills.Contains(id)) { var effectGroup = model.GetSkillEffectGroup(id); for (int i = 0; i < count; i++) { values[i] += effectGroup.GetEffectValue(i); } var config = SkillConfig.Get(id); fightPower += config.FightPower; } } } var label1 = SkillConfig.GetSkillDescription(skillConfig.Description, values); var label2 = string.Empty; SkillDetails.ShowSkillDetails(skillId, SkillDetails.SkillSourceType.ViewHorsePet, fightPower, label1, label2); } } } }