Example #1
0
    /* --- Overridden Methods --- */
    public override void Effect(CharacterState characterState)
    {
        PoisonCircle poisonCircle = GameObject.FindGameObjectsWithTag("Poison Circle")[0].GetComponent <PoisonCircle>();

        poisonCircle.circleCollider.radius = poisonCircle.circleCollider.radius + (poisonVialValue / Time.fixedDeltaTime) * poisonCircle.radiusIncrement;
        if (poisonCircle.circleCollider.radius > poisonCircle.initRadius)
        {
            poisonCircle.circleCollider.radius = poisonCircle.initRadius;
        }
    }
Example #2
0
    /* --- Overridden Methods --- */
    public override float MoveFlag()
    {
        // Get a new direction for the character to move in
        float thinkInterval = idleMinInterval;

        PoisonCircle poisonCircle = GameObject.FindGameObjectsWithTag("Poison Circle")[0].GetComponent <PoisonCircle>();

        if (Vector2.Distance(transform.position, Vector2.zero) > poisonCircle.circleCollider.radius)
        {
            characterMovement.horizontalMove = -(int)transform.position.x;
            characterMovement.verticalMove   = -(int)transform.position.y;
            return(thinkInterval);
        }

        // Get a new direction for the zombie to move in
        if (characterState.stateDict[CharacterState.State.aggro])
        {
            if (Mathf.Abs(playerTransform.position.x - transform.position.x) >= Mathf.Abs(playerTransform.position.y - transform.position.y))
            {
                characterMovement.horizontalMove = 1;
                characterMovement.verticalMove   = 0;
            }
            else
            {
                characterMovement.horizontalMove = 0;
                characterMovement.verticalMove   = 1;
            }

            if (playerTransform.position.x < transform.position.x)
            {
                characterMovement.horizontalMove = -characterMovement.horizontalMove;
            }
            if (playerTransform.position.y < transform.position.y)
            {
                characterMovement.verticalMove = -characterMovement.verticalMove;
            }
            thinkInterval = Random.Range(aggroMinInterval, aggroMaxInterval);
        }
        else
        {
            characterMovement.horizontalMove = Random.Range(-1, 1);
            characterMovement.verticalMove   = Random.Range(-1, 1);
        }

        return(thinkInterval);
    }
Example #3
0
    /* --- Overridden Methods --- */
    public override float MoveFlag()
    {
        // Get a new direction for the character to move in
        float thinkInterval = idleMinInterval;

        PoisonCircle poisonCircle = GameObject.FindGameObjectsWithTag("Poison Circle")[0].GetComponent <PoisonCircle>();

        if (Vector2.Distance(transform.position, Vector2.zero) > poisonCircle.circleCollider.radius)
        {
            characterMovement.horizontalMove = -(int)transform.position.x;
            characterMovement.verticalMove   = -(int)transform.position.y;
            return(thinkInterval);
        }

        if (targetPoint == null || Random.Range(0f, 1f) < 0.1f || Vector2.Distance(targetPoint, Vector2.zero) > poisonCircle.circleCollider.radius || Vector2.Distance(targetPoint, Vector2.zero) > 2f)
        {
            targetPoint = Random.insideUnitCircle * poisonCircle.circleCollider.radius * 4 / 5;
        }
        characterMovement.horizontalMove = (targetPoint - (Vector2)transform.position).x;
        characterMovement.verticalMove   = (targetPoint - (Vector2)transform.position).y;

        return(thinkInterval);
    }