/* --- 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; } }
/* --- 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); }
/* --- 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); }