Пример #1
0
 void Awake()
 {
     thisCs         = GetComponent <CharacterState>();
     aiSkillHandler = UnityUtil.AddComponetIfNull <AISkillHandler>(gameObject);
     aiSkillHandler.SetSkills(thisCs.GetSkills());
     OnAwake();
 }
Пример #2
0
    public void SwitchAutoMode(bool isAuto)
    {
        if (SceneUIManager.instance != null)
        {
            SceneUIManager.instance.autoFight.SetActive(isAuto);
            ResetAutoFightEffect(SceneUIManager.instance.autoFight.transform);
        }
        if (FightTouch._instance != null)
        {
            FightTouch._instance.autoBattleEffect.SetActive(isAuto);
        }

        if (!PlayerAlive())
        {
            return;
        }
        BasePlayerAI ai = player.GetComponent <BasePlayerAI>();

        if (ai != null)
        {
            ai.enabled = isAuto;
            if (isAuto)
            {
                AISkillHandler aisHandler = player.GetComponent <AISkillHandler>();
                if (aisHandler != null && FightTouch._instance != null)
                {
                    aisHandler.SetSkills(playerCS.GetSkills(), GetCds());
                }
            }
        }
        if (playerMotion.isAutoMode != isAuto)
        {
            playerMotion.isAutoMode  = isAuto;
            playerMotion.nav.enabled = false;
            playerMotion.nav.enabled = true;
            if (!isAuto)
            {
                playerMotion.Stop();
            }
        }
    }
Пример #3
0
    void Start()
    {
        List <long>  skills   = thisCs.GetSkills();
        List <float> skillCDs = new List <float>();

        skills.ForEach((long sid) => skillCDs.Add(AISkillHandler.GetNode(sid).cooling));
        aiSkillHandler.SetSkills(thisCs.GetSkills(), skillCDs);
        GameLibrary.bossBlood.ShowBlood(thisCs);
        //Thunder = Resources.Load("Thunder") as GameObject;

        //if (null != Thunder)
        //    InvokeRepeating("BeginThunder", 5, 5);

        if (GameLibrary.SceneType(SceneType.TD) || GameLibrary.SceneType(SceneType.ACT_GOLD) || GameLibrary.SceneType(SceneType.ACT_EXP))
        {
            thisCs.OnBeAttack += (c) =>
            {
                if (c.state == Modestatus.Player && thisCs.attackTarget != CharacterManager.playerCS)
                {
                    targetCs = CharacterManager.playerCS;
                    thisCs.SetAttackTargetTo(CharacterManager.playerCS);
                }
            };
        }

        thisCs.OnDead += (c) =>
        {
            for (int i = sumMonster.Count - 1; i >= 0; i--)
            {
                if (null != sumMonster[i])
                {
                    if (sumMonster[i].GetComponent <Monster_AI>())
                    {
                        sumMonster[i].GetComponent <Monster_AI>().StopMonsterAI();
                    }
                }
            }
        };
    }