using System.Collections;
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
namespace vnxbqy.UI
|
{
|
public class ViewHorseSkillCell : CellView
|
{
|
[SerializeField] SkillBehaviour[] m_Skills;
|
|
MountModel model { get { return ModelCenter.Instance.GetModel<MountModel>(); } }
|
|
ViewHorseDetailWin displayWindow;
|
public void Display(int line, ViewHorseDetailWin 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)
|
{
|
var skillConfig = SkillConfig.Get(skillId);
|
|
if (model.GetMountSkillAndItem.ContainsKey(skillId))
|
{
|
int horseId = model.GetMountSkillAndItem[skillId].HorseID;
|
var config = HorseConfig.Get(horseId);
|
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<int> skills;
|
var fightPower = 0;
|
var effect = SkillConfig.GetSkillEffectValue(skillConfig);
|
var count = effect.GetHasValueCount();
|
var values = new float[count];
|
if (model.TryGetHorseSkills(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);
|
}
|
}
|
}
|
}
|
|