void ExecuteState(JamSpace.EState _enemyState) { switch (_enemyState) { case JamSpace.EState.NONE: break; case JamSpace.EState.IDLE: moveSpeed = normalSpeed; TriggerAnimation(JamSpace.AnimationTags.ANIMATION_IDLE); myAnimator.speed = 1; break; case JamSpace.EState.MONITORING: StartCoroutine(CallMonitoring()); break; case JamSpace.EState.ATTACKING: Attack(); break; case JamSpace.EState.COOLDOWN: StartCoroutine(CallCooldown()); break; case JamSpace.EState.MAX: break; default: break; } }
void ExecuteState(JamSpace.EState _enemyState) { switch (_enemyState) { case JamSpace.EState.NONE: break; case JamSpace.EState.IDLE: bCanStartCounter = true; TriggerAnimation(JamSpace.AnimationTags.ANIMATION_IDLE); break; case JamSpace.EState.MONITORING: StartCoroutine(CallMonitoring()); break; case JamSpace.EState.ATTACKING: StartCoroutine(AfterAttackAnimRoutine()); break; case JamSpace.EState.COOLDOWN: StartCoroutine(CallCooldown()); break; case JamSpace.EState.MAX: break; default: break; } }
IEnumerator CallCooldown() { TriggerAnimation(JamSpace.AnimationTags.ANIMATION_COOLDOWN); yield return(new WaitForSeconds(cooldownDur)); CurrentState = JamSpace.EState.IDLE; }
private void GetNextPoint() { if (Mathf.Approximately(point1.position.x, targetPoint.x) && Mathf.Approximately(point1.position.y, targetPoint.y)) { targetPoint = point2.transform.position; isMovingRight = !isMovingRight; EvaluateRotation(); } else if (Mathf.Approximately(point2.position.x, targetPoint.x) && Mathf.Approximately(point2.position.y, targetPoint.y)) { targetPoint = point1.transform.position; isMovingRight = !isMovingRight; EvaluateRotation(); } else { targetPoint = GetRandomPosititonBetweenPoints(ref point1, ref point2); } moveSpeed = normalSpeed; if (currentEState == JamSpace.EState.ATTACKING) { CurrentState = JamSpace.EState.COOLDOWN; } }
private void OnTriggerStay2D(Collider2D collision) { if (CurrentState == JamSpace.EState.IDLE) { var collisionScript = collision.GetComponent <Player.Movement.PlayerCollision>(); if (collisionScript) { InvestigatedTargetHealthSetter = collisionScript.GetComponent <Common.HealthSetter>(); Vector2 _vec2 = this.gameObject.transform.position - InvestigatedTargetHealthSetter.transform.position; float _angle = Vector2.Angle(Vector2.right, _vec2); if (_angle <= thetaRange) { //_text.text = "monitoring"; CurrentState = JamSpace.EState.MONITORING; //ExecuteState(JamSpace.EState.MONITORING); } else { var _tempAngle = 180 - thetaRange; var _subAngle = _angle - _tempAngle; if (((_subAngle) <= thetaRange) && (_subAngle > 0)) { //_text.text = "monitoring"; CurrentState = JamSpace.EState.MONITORING; } //_text.text = "not in range"; } } } }
IEnumerator CallAttack() { TriggerAnimation(JamSpace.AnimationTags.ANIMATION_CHARGE); yield return(new WaitForSeconds(wait_attack_position)); moveSpeed = normalSpeed; CurrentState = JamSpace.EState.IDLE; }
private void Attack() { FireProjectileBlast(InvestigatedTargetHealthSetter.transform.position); TriggerAnimation(JamSpace.AnimationTags.ANIMATION_CHARGE); moveSpeed = normalSpeed; CurrentState = JamSpace.EState.IDLE; isInCooldown = true; //StartCoroutine(CallAttack()); }
private void OnTriggerEnter2D(Collider2D collision) { var collisionScript = collision.GetComponent <Player.Movement.PlayerCollision>(); if (collisionScript) { InvestigatedTargetHealthSetter = collisionScript.GetComponent <Common.HealthSetter>(); CurrentState = JamSpace.EState.MONITORING; } }
void ReachedEndPoint() { RotateCharacter(); moveSpeed = normalSpeed; if (CurrentState == JamSpace.EState.ATTACKING) { CurrentState = JamSpace.EState.COOLDOWN; } }
IEnumerator CallCooldown() { moveSpeed = normalSpeed; //TriggerAnimation(JamSpace.AnimationTags.ANIMATION_COOLDOWN); TriggerAnimation(JamSpace.AnimationTags.ANIMATION_IDLE); myAnimator.speed = 1; yield return(new WaitForSeconds(Wait_Cooldown)); CurrentState = JamSpace.EState.IDLE; }
IEnumerator CallMonitoring() { playerInsideRangeCounter = readyToAttackDur; yield return(new WaitForSeconds(readyToAttackDur)); if (InvestigatedTargetHealthSetter) { CurrentState = JamSpace.EState.ATTACKING; } else { CurrentState = JamSpace.EState.IDLE; } }
IEnumerator CallMonitoring() { moveSpeed = 0; TriggerAnimation(JamSpace.AnimationTags.ANIMATION_INVESTIGATE); yield return(new WaitForSeconds(Wait_Monitoring)); if (InvestigatedTargetHealthSetter) { CurrentState = JamSpace.EState.ATTACKING; } else { CurrentState = JamSpace.EState.IDLE; } }
private void OnTriggerStay2D(Collider2D collision) { if (!bIsInCooldown) { var collisionScript = collision.GetComponent <Player.Movement.PlayerCollision>(); if (collisionScript) { InvestigatedTargetHealthSetter = collisionScript.GetComponent <Common.HealthSetter>(); if (bCanStartCounter) { CurrentState = JamSpace.EState.MONITORING; bCanStartCounter = false; } } } }
IEnumerator CallMonitoring() { moveSpeed = 0; TriggerAnimation(JamSpace.AnimationTags.ANIMATION_INVESTIGATE); myAnimator.speed = (1 / (Wait_Monitoring / baseAnim_Monitoring_Time)); yield return(new WaitForSeconds(Wait_Monitoring)); if (InvestigatedTargetHealthSetter) { // fire projectile blast and continue CurrentState = JamSpace.EState.ATTACKING; } else { CurrentState = JamSpace.EState.IDLE; } }
IEnumerator CallMonitoring() { moveSpeed = 0; TriggerAnimation(JamSpace.AnimationTags.ANIMATION_INVESTIGATE); yield return(new WaitForSeconds(Wait_Monitoring)); if (InvestigatedTargetHealthSetter) { if (!isEnemy1) { targetPoint = InvestigatedTargetHealthSetter.gameObject.transform.position; } CurrentState = JamSpace.EState.ATTACKING; } else { CurrentState = JamSpace.EState.IDLE; } }
IEnumerator AfterAttackAnimRoutine() { TriggerAnimation(JamSpace.AnimationTags.ANIMATION_BITE); var playerXPos = InvestigatedTargetHealthSetter.transform.position.x; var myXPos = this.transform.position.x; Projectiles.BaseProjectile baseEnemyProj = null; var rightDirection = false; if (((playerXPos - myXPos) < 0)) { rightDirection = true; this.gameObject.transform.rotation = Quaternion.Euler(0, 0, 0); } else { rightDirection = false; this.gameObject.transform.rotation = Quaternion.Euler(0, 180, 0); } bIsInCooldown = true; CurrentState = JamSpace.EState.IDLE; yield return(new WaitForSeconds(_waitBeforeAnim)); var zProjectile = 0; var pos = bulletPosition.position; var newPos = new Vector3(pos.x, pos.y, zProjectile); if (rightDirection) { baseEnemyProj = Instantiate(projectilePrefab, newPos, Quaternion.Euler(0, -180, 0)).GetComponent <Projectiles.BaseProjectile>(); baseEnemyProj.GetComponent <Rigidbody2D>().velocity = speed * baseEnemyProj.transform.right; } else { baseEnemyProj = Instantiate(projectilePrefab, newPos, Quaternion.Euler(0, 0, 0)).GetComponent <Projectiles.BaseProjectile>(); baseEnemyProj.GetComponent <Rigidbody2D>().velocity = speed * baseEnemyProj.transform.right; } }
// Call on enemy activation event public override void Init() { CurrentState = JamSpace.EState.IDLE; }