private void Update()
    {
        if (singleTarget == null && currentState == EWerewolfStates.Chasing)
        {
            canSwingAttack    = true;
            attackTimerActive = false;
            attackTimer       = attackSpeed;
            newState          = previousStates;
        }

        if (newState != currentState && currentState != EWerewolfStates.Trapped)
        {
            UpdateState();
        }

        if (reachedEndOfPath)
        {
            if (singleTarget != null)
            {
                float distance = Vector2.Distance(transform.position, singleTarget.position);
                //Debug.LogFormat("<color=#04b592> Distance: {0} </color>", distance );
                if (currentState == EWerewolfStates.Chasing || currentState == EWerewolfStates.Cursed)
                {
                    if (distance <= 1f)
                    {
                        CheckAction();
                    }
                }
            }
        }
        if (attackTimerActive)
        {
            TickCountdowns();
        }
    }
Esempio n. 2
0
    void UpdateState()
    {
        previousStates = currentState;
        currentState   = newState;
        newState       = currentState;
        if (currentState == EWerewolfStates.Normal)
        {
            if (previousStates != EWerewolfStates.Cursed)
            {
                walkSpeed   = defaultWalkSpeed;
                attackSpeed = defaultAttackSpeed;
            }
            singleTarget = null;
        }
        else if (currentState == EWerewolfStates.Chasing)
        {
            if (previousStates != EWerewolfStates.Cursed)
            {
                walkSpeed = chaseWalkSpeed;
            }
        }
        else if (currentState == EWerewolfStates.Distracted)
        {
            walkSpeed    = 0f;
            attackSpeed  = 0f;
            singleTarget = null;

            movementEnabled    = false;
            attackEnabled      = false;
            rb.gravityScale    = 0f;
            myCollider.enabled = false;
        }
        else if (currentState == EWerewolfStates.Trapped)
        {
            walkSpeed    = 0f;
            attackSpeed  = 0f;
            singleTarget = null;

            movementEnabled = false;
            attackEnabled   = false;
            myAnimator.SetFloat("Speed", 0);
            rb.gravityScale    = 0f;
            myCollider.enabled = false;
        }
        else if (currentState == EWerewolfStates.Cursed)
        {
            walkSpeed   = cursedWalkSpeed;
            attackSpeed = cursedAttackSpeed;
            myAnimatorOverrideController["werewolf_idle"]    = redEyesIdle;
            myAnimatorOverrideController["werewolf_walking"] = redEyesWalking;
            myAnimatorOverrideController["werewolf_attack"]  = redEyesAttack;
        }
    }
Esempio n. 3
0
    protected override void SetDefaultValues()
    {
        base.SetDefaultValues();
        AIType = EAISelection.Werewolf;

        previousStates = currentState;
        newState       = currentState;

        myAnimatorOverrideController         = new AnimatorOverrideController(myAnimator.runtimeAnimatorController);
        myAnimator.runtimeAnimatorController = myAnimatorOverrideController;

        WerewolfVocalcords = this.gameObject.AddComponent <AudioSource>();
        WerewolfVocalcords.outputAudioMixerGroup = m_Channel;
        WerewolfVocalcords.playOnAwake           = false;

        if (attackSpeed <= 0f)
        {
            defaultAttackSpeed = 5f;
            attackSpeed        = defaultAttackSpeed;
        }
        else
        {
            defaultAttackSpeed = attackSpeed;
        }

        if (attackDmg <= 0f)
        {
            defaultAttackDmg = 1f;
            attackDmg        = defaultAttackDmg;
        }
        else
        {
            defaultAttackDmg = attackDmg;
        }

        if (chaseWalkSpeed <= 0f)
        {
            defaultChaseWalkSpeed = 500f;
            chaseWalkSpeed        = defaultChaseWalkSpeed;
        }
        else
        {
            defaultChaseWalkSpeed = chaseWalkSpeed;
        }

        if (cursedWalkSpeed <= 0f)
        {
            defaultCursedWalkSpeed = 600f;
            cursedWalkSpeed        = defaultCursedWalkSpeed;
        }
        else
        {
            defaultCursedWalkSpeed = cursedWalkSpeed;
        }

        if (cursedAttackSpeed <= 0f)
        {
            defaultCursedAttackSpeed = 3f;
            cursedAttackSpeed        = defaultCursedAttackSpeed;
        }
        else
        {
            defaultCursedAttackSpeed = cursedAttackSpeed;
        }
    }
    protected override void SetDefaultValues()
    {
        base.SetDefaultValues();
        AIType = EAISelection.Werewolf;

        previousStates = currentState;
        newState       = currentState;

        myAnimatorOverrideController         = new AnimatorOverrideController(myAnimator.runtimeAnimatorController);
        myAnimator.runtimeAnimatorController = myAnimatorOverrideController;

        if (attackSpeed <= 0f)
        {
            defaultAttackSpeed = 5f;
            attackSpeed        = defaultAttackSpeed;
        }
        else
        {
            defaultAttackSpeed = attackSpeed;
        }

        if (attackDmg <= 0f)
        {
            defaultAttackDmg = 1f;
            attackDmg        = defaultAttackDmg;
        }
        else
        {
            defaultAttackDmg = attackDmg;
        }

        if (chaseWalkSpeed <= 0f)
        {
            defaultChaseWalkSpeed = 500f;
            chaseWalkSpeed        = defaultChaseWalkSpeed;
        }
        else
        {
            defaultChaseWalkSpeed = chaseWalkSpeed;
        }

        if (cursedWalkSpeed <= 0f)
        {
            defaultCursedWalkSpeed = 600f;
            cursedWalkSpeed        = defaultCursedWalkSpeed;
        }
        else
        {
            defaultCursedWalkSpeed = cursedWalkSpeed;
        }

        if (cursedAttackSpeed <= 0f)
        {
            defaultCursedAttackSpeed = 3f;
            cursedAttackSpeed        = defaultCursedAttackSpeed;
        }
        else
        {
            defaultCursedAttackSpeed = cursedAttackSpeed;
        }

        targets = levelWaypoints;
    }