private void FallOnGround() { //falling if (!IsFalling && !OnGround) { Animation = EnemyAnimationState.Fall; CurrentYValue = transform.position.Y; Debug.log("Current Y Value: " + CurrentYValue); Debug.log("Current Transform.position.Y: " + transform.position.Y); Movement.Y = -Mathf.sqrt(JumpHeight * Gravity); IsFalling = true; } if (IsFalling) { //animation = EnemyAnimationState.Fall; Movement.X += FallSpeedX * Time.deltaTime; Movement.Y += Gravity * Time.deltaTime; //movement.Normalize(); CollisionResult res; Mover.move(Movement * FallSpeed * Time.deltaTime, out res); if (transform.position.Y >= CurrentYValue) { transform.setPosition(new Vector2(transform.position.X, CurrentYValue)); Debug.log("Current Y Value after ground hit: " + CurrentYValue); Debug.log("Current Transform.position.Y after ground hit: " + transform.position.Y); IsFalling = false; OnGround = true; SetState(EnemyState.OnGround); } } }
private void Getup() { Animation = EnemyAnimationState.GetUp; OnGround = false; IsFalling = false; ITimer task = Core.schedule(2f, false, timer => this.SetState(EnemyState.Following)); }
private void Die() { if (Alive) { Alive = false; Animation = EnemyAnimationState.Die; entity.scene.findEntity("audio").getComponent <Utilities.AudioController>().EnemyDieEffect.Play(); var task = Core.schedule(3f, false, timer => entity.detachFromScene()); } }
private void HandleOnGround() { Movement = Vector2.Zero; Animation = EnemyAnimationState.Die; if (CurrentLife > 0) { SetState(EnemyState.GettingUp); } if (CurrentLife <= 0) { SetState(EnemyState.Dying); } }
private void GetHit() { if (_canBeHit) { _canBeHit = false; Animation = EnemyAnimationState.Hit; if (WeightedSearchPath != null && WeightedSearchPath.Count() > TargetPositionRange) { ITimer newTask = Core.schedule(0.3f, false, newTimer => this.SetState(EnemyState.Following)); } else if (WeightedSearchPath != null && WeightedSearchPath.Count() <= TargetPositionRange) { ITimer newTask = Core.schedule(0.3f, false, newTimer => this.SetState(EnemyState.Attacking)); } } }
private void Shoot() { if (entity.scene != null) { Animation = EnemyAnimationState.Shoot; if (!_canBeHit) { _canBeHit = true; } if (CanShoot) { CanShoot = false; Animation = EnemyAnimationState.Shoot; _shootTask = Core.schedule(1f, false, newTimer => MakeBullet(transform.position - _shootOffset, _outVel)); } } }
private void WalkAnimation() { Animation = EnemyAnimationState.Walk; if (TargetPosition.X > entity.transform.position.X) { Collider.setLocalOffset(new Vector2(-14, 0)); //_animationMaster.flipX = true; } if (TargetPosition.X < entity.transform.position.X) { Collider.setLocalOffset(new Vector2(14, 0)); } if (WeightedSearchPath != null && WeightedSearchPath.Count() <= TargetPositionRange) { Animation = EnemyAnimationState.Idle; } }
// Update is called once per frame public void activateThisAnimationStateState(EnemyAnimationState animationState) { updateCurrentState(animationState); var states = Enum.GetValues(typeof(AnimationState)); foreach (int stateNumber in states) { if ((EnemyAnimationState)stateNumber == animationState) { animator.SetBool(animationState.ToString(), true); this.currentAnimationState = animationState; } else { animator.SetBool(((EnemyAnimationState)stateNumber).ToString(), false); } } }
public void SetAnimation(EnemyAnimationState aninemationstate) { _AnimationState = aninemationstate; }
public virtual void Punch() { Animation = EnemyAnimationState.Punch; }
public void updateCurrentState(EnemyAnimationState newAnimationState) { this.currentAnimationState = newAnimationState; }
// Start is called before the first frame update void Start() { currentAnimationState = EnemyAnimationState.Move; animator = GetComponent <Animator>(); }