using CommonAI.ZoneClient;
using ET;
using ET.Client;

public class BattleActor : BattlePlayer
{
    public override void OnAwake(ZoneObject zo)
    {
        base.OnAwake(zo);
        ZoneActor za = zo as ZoneActor;
        za.IsFollow = false;
        za.OnStartPickObject += OnStartPickObject;
        za.OnStopPickObject += OnStopPickObject;
        za.OnSkillChanged += OnSkillChanged;
        za.OnClickSkillSimulationEvent += OnClickSkillSimulationEvent;
    }

    private void OnSkillChanged(ZoneUnit.SkillOption op, ZoneUnit unit, int baseSkillID, params int[] skills)
    {
        Log.Debug("OnSkillChanged> {0}, base:{1},skills:{2}", op, baseSkillID, skills != null ? skills.Length : 0);
        //SkillOption.Init的不用管,SkillBar.InitSkill直接从UserData读
        //SkillOpetion.Active不明意义,未处理
        if (op == ZoneUnit.SkillOption.Reset)
        {
            if(baseSkillID != 0)
            {
                if(skills.Length > 0)
                {
                    skills[0] = baseSkillID;
                }
                else
                {
                    skills = new int[] { baseSkillID };
                }
            }
            SkillMgr.Instance.Init(skills);
        }
        else if (op == ZoneUnit.SkillOption.Add || op == ZoneUnit.SkillOption.Remove)
        {
            Log.Error($"not implements skill option: {op}");
        }
    }

    private void OnStopPickObject(ZoneUnit unit, CommonAI.Zone.UnitStopPickObjectEvent stop)
    {
        Log.Error("unhande event: OnStopPickObject");
    }

    private void OnStartPickObject(ZoneUnit unit, CommonLang.TimeExpire<CommonAI.Zone.UnitStartPickObjectEvent> start)
    {
        Log.Error("unhande event: OnStartPickObject");
    }

    private void OnClickSkillSimulationEvent(ZoneUnit unit, CommonAI.Zone.Helper.SimulationSkillEnum type)
    {
        Log.Error("unhande event: OnClickSkillSimulationEvent");
    }
}