public RangeAttackState(FinitStateMachine stateMachine, SkeletonData data) : base(stateMachine) { _animator = data.Animator; _target = data.Player; _spawnPoint = data.ArrowSpawnPoint; _projectileSpawner = new ProjectileSpawner(data.ArrowPrefab.name, 0f); }
public MeleeAttackState(FinitStateMachine stateMachine, SkeletonData data) : base(stateMachine) { _animator = data.Animator; _target = data.Player; _damage = data.DamageItem; _attackDistance = data.AttackDistance; }
public DestroyShieldState(FinitStateMachine stateMachine, SkeletonData data) : base(stateMachine) { _animator = data.Animator; _damage = data.DamageItem; _attackCooldown = new WaitForSeconds(data.CooldownTime); _data = data; }
public void EnemyAtack() {//controle do ataque d inimigo if ((Gamecontroller.PlayerTransform.position.x - transform.position.x <= 5 && !IsLookLeft) || (transform.position.x - Gamecontroller.PlayerTransform.position.x <= 5 && IsLookLeft)) { Gamecontroller.PlaySFX(Gamecontroller.SfxAtack); NpcAnimator.SetTrigger("Atack"); CanAtack = false; } }
public override void Move() {//faz o controle de movimento NpcRB.velocity = new Vector3(Horizontal * Speed, NpcRB.velocity.y, Vertical * Speed); if (!IsRescued) { if (Horizontal != 0 || Vertical != 0) { NpcAnimator.SetBool("IsWalk", true); } else { NpcAnimator.SetBool("IsWalk", false); } } }
/// <summary> /// Fadout npc and remove from scene. /// </summary> private void RemoveNPC(NpcController npc) { SpriteRenderer npcRend = npc.gameObject.GetComponent <SpriteRenderer>(); NpcAnimator skel = npc.gameObject.GetComponent <NpcAnimator>(); float alpha = 1f; DOTween.To(() => alpha, f => alpha = f, 0f, fadeSpeed).OnUpdate(() => { skel.body.Skeleton.SetColor(new Color(1, 1, 1, alpha)); }).SetEase(Ease.Linear).OnComplete(() => { audioSrc.PlayOneShot(doorBell); manager.npcs.Remove(npc); Destroy(npc.gameObject); }); }
private void MoveOut() {//função que movimenta o objeto rpa fora da tela int Rand = Random.Range(0, 50); if (Rand < 25) { Horizontal = -1; } else { Horizontal = 1; } Speed = 10; Vertical = 0.0f; this.gameObject.layer = LayerMask.NameToLayer("MovingOut"); NpcAnimator.SetBool("Mask", Masked); }
public override void Move() {//faz a movimentação do inimigo var pos = Gamecontroller.PlayerTransform.position; if (IsFollow && IsWalking) { if ((IsLookLeft && transform.position.x <= pos.x + 0.5f) || (!IsLookLeft && transform.position.x >= pos.x - 0.5f)) { IsWalking = false; } else { transform.position = Vector3.MoveTowards(transform.position, pos, Speed * Time.deltaTime); } NpcAnimator.SetBool("IsWalking", IsWalking); } }
public void OnTriggerEnter(Collider collision) {//controle de colisção com os ataques da personagem if (collision.CompareTag("HitBoxCollider") && !IsHit && !IsDead) { IsHit = true; IsWalking = false; switch (gameObject.tag) { case "Enemy": //se for um inimigo comum EnemyTotalLife -= 1; Gamecontroller.EnemyHeartController((int)EnemyTotalLife); Gamecontroller.TimerEnemyBar = 3f; break; case "Boss": //se for um chefe o dano é menor EnemyTotalLife -= 0.5f; Gamecontroller.BossHeartController(EnemyTotalLife); break; } Gamecontroller.PlaySFX(Gamecontroller.SfxDamageTaken); if (EnemyTotalLife <= 0)//verifica se a vida zerou para a animação de morte { IsDead = true; if (gameObject.CompareTag("Boss")) { Gamecontroller.PlaySFX(Gamecontroller.SfxBossDead); } else { Gamecontroller.PlaySFX(Gamecontroller.SfxEnemyDead); } NpcAnimator.SetTrigger("IsDead"); } else//se a vida não zerou inicia a animação de ter tomado dano { NpcAnimator.SetTrigger("Hitted"); IsHit = false; } } }
private void SickOut() {//retirar o objeto contaminado e chamando a animação própria PersonSR.color = Color.white; Speed = 20; int Rand = Random.Range(0, 50); if (Rand < 25) { Horizontal = -1; } else { Horizontal = 1; } Vertical = 0.0f; this.gameObject.layer = LayerMask.NameToLayer("MovingOut"); Gamecontroller.PlaySFX(Gamecontroller.SfxRescue); NpcAnimator.SetBool("IsRescued", IsRescued); }
public NpcLocomotionController(NavMeshAgent navMeshAgent, NpcAnimator animator) { _navMeshAgent = navMeshAgent; _animator = animator; }
public TakeDamageState(FinitStateMachine stateMachine, SkeletonData data, IState next) : base(stateMachine) { _locomotionController = data.LocomotionController; _animator = data.Animator; _next = next; }