Esempio n. 1
0
    protected override void SetDefaultValues()
    {
        base.SetDefaultValues();

        AIType = EAISelection.Servant;

        previousState = currentState;
        newState      = currentState;

        currentWaypointMode = EAIWaypointMode.Patrol;

        movementEnabled  = true;
        attackEnabled    = true;
        canMakeWolfsbane = true;

        if (wolfsbaneDamage <= 0f)
        {
            wolfsbaneDamageDefault = 1f;
            wolfsbaneDamage        = wolfsbaneDamageDefault;
        }
        else
        {
            wolfsbaneDamageDefault = wolfsbaneDamage;
        }

        if (wolfsbaneSpeedDefault <= 0f)
        {
            wolfsbaneSpeedDefault = 0f;
        }
    }
 protected void InvokeWolfsbaneCountdown()
 {
     if (!wolfsbaneTimerActive && canMakeWolfsbane)
     {
         wolfsbaneTimerActive = true;
         wolfsbaneMakeTimer   = wolfsbaneSpeedDefault;
         newState             = EServantStates.CreatingWolfsbane;
     }
 }
    void UpdateState()
    {
        previousState = currentState;
        currentState  = newState;
        newState      = currentState;

        if (currentState == EServantStates.Normal)
        {
            walkSpeed = defaultWalkSpeed;
            targets   = patrolWaypoints;

            currentWaypointMode = EAIWaypointMode.Patrol;

            currentTarget        = 0;
            nextWaypointDistance = defaultNextWaypointDistance;
            revalulatePathing    = true;

            myAnimator.SetBool("Running", false);
        }
        else if (currentState == EServantStates.Running)
        {
            currentWaypointMode  = EAIWaypointMode.OneWay;
            targets              = levelWaypoints;
            nextWaypointDistance = defaultNextWaypointDistance;
            revalulatePathing    = true;

            myAnimator.SetBool("Running", true);
        }
        else if (currentState == EServantStates.FoundFoodbowl)
        {
            currentWaypointMode  = EAIWaypointMode.OneWay;
            currentTarget        = 0;
            nextWaypointDistance = .1f;

            revalulatePathing = true;

            myAnimator.SetBool("Running", false);
        }
        else if (currentState == EServantStates.CreatingWolfsbane)
        {
            walkSpeed = 0f;
        }
        else if (currentState == EServantStates.PresentingWolfsbane)
        {
            walkSpeed           = defaultWalkSpeed;
            currentWaypointMode = EAIWaypointMode.OneWay;
        }
    }
Esempio n. 4
0
    protected override void PerformAction()
    {
        if (singleTarget != null)
        {
            if (hasWolfsbane)
            {
                if (singleTarget.CompareTag("Enemy") && currentState == EServantStates.PresentingWolfsbane)
                {
                    hasWolfsbane = false;

                    singleTarget.gameObject.GetComponent <WerewolfAI>().TakeDamage(wolfsbaneDamage);
                    singleTarget = levelTarget;
                    newState     = EServantStates.Running;
                    myAnimator.SetBool("Presenting Wolfsbane", false);
                    Destroy(foodbowlPlacementSpot.transform.GetChild(0).gameObject);
                }
            }
        }
    }
    protected override void SetDefaultValues()
    {
        base.SetDefaultValues();
        AIType = EAISelection.Servant;

        previousState = currentState;
        newState      = currentState;

        currentWaypointMode = EAIWaypointMode.Patrol;

        movementEnabled = true;
        attackEnabled   = true;

        if (wolfsbaneDamage <= 0f)
        {
            wolfsbaneDamageDefault = 1f;
            wolfsbaneDamage        = wolfsbaneDamageDefault;
        }
        else
        {
            wolfsbaneDamageDefault = wolfsbaneDamage;
        }

        if (wolfsbaneSpeedDefault <= 0f)
        {
            wolfsbaneSpeedDefault = 0f;
        }

        targets = patrolWaypoints;
        if (nextWaypointDistance <= 0f)
        {
            defaultNextWaypointDistance = 3f;
            nextWaypointDistance        = defaultNextWaypointDistance;
        }
        else
        {
            defaultNextWaypointDistance = nextWaypointDistance;
        }
    }
Esempio n. 6
0
    void UpdateState()
    {
        previousState = currentState;
        currentState  = newState;
        newState      = currentState;

        if (currentState == EServantStates.Normal)
        {
            walkSpeed = defaultWalkSpeed;

            currentWaypointMode = EAIWaypointMode.Patrol;

            myAnimator.SetBool("Running", false);
        }
        else if (currentState == EServantStates.Running)
        {
            currentWaypointMode = EAIWaypointMode.OneWay;
            singleTarget        = levelTarget;

            myAnimator.SetBool("Running", true);
        }
        else if (currentState == EServantStates.FoundFoodbowl)
        {
            currentWaypointMode = EAIWaypointMode.OneWay;
            currentTarget       = 0;

            myAnimator.SetBool("Running", false);
        }
        else if (currentState == EServantStates.CreatingWolfsbane)
        {
            walkSpeed = 0f;
        }
        else if (currentState == EServantStates.PresentingWolfsbane)
        {
            walkSpeed           = defaultWalkSpeed;
            currentWaypointMode = EAIWaypointMode.OneWay;
        }
    }
 private void TickCountdowns()
 {
     if (wolfsbaneTimerActive)
     {
         wolfsbaneMakeTimer -= Time.deltaTime;
         if (wolfsbaneMakeTimer <= 0f)
         {
             wolfsbaneTimerActive = false;
             hasWolfsbane         = true;
             canMakeWolfsbane     = false;
             newState             = EServantStates.Normal;
             if (singleTarget.CompareTag("Food Bowl"))
             {
                 if (!canMakeWolfsbane)
                 {
                     singleTarget.parent = foodbowlPlacementSpot;
                     foodbowlPlacementSpot.transform.GetChild(0).localPosition = new Vector3(0, 0, 0);
                     singleTarget = null;
                 }
             }
         }
     }
 }