Exemplo n.º 1
0
 public RangeAttackState(FinitStateMachine stateMachine, SkeletonData data) : base(stateMachine)
 {
     _animator          = data.Animator;
     _target            = data.Player;
     _spawnPoint        = data.ArrowSpawnPoint;
     _projectileSpawner = new ProjectileSpawner(data.ArrowPrefab.name, 0f);
 }
Exemplo n.º 2
0
 public MeleeAttackState(FinitStateMachine stateMachine, SkeletonData data) : base(stateMachine)
 {
     _animator       = data.Animator;
     _target         = data.Player;
     _damage         = data.DamageItem;
     _attackDistance = data.AttackDistance;
 }
Exemplo n.º 3
0
 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;
        }
    }
Exemplo n.º 5
0
 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);
        });
    }
Exemplo n.º 7
0
    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;
            }
        }
    }
Exemplo n.º 10
0
    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);
    }
Exemplo n.º 11
0
 public NpcLocomotionController(NavMeshAgent navMeshAgent, NpcAnimator animator)
 {
     _navMeshAgent = navMeshAgent;
     _animator     = animator;
 }
Exemplo n.º 12
0
 public TakeDamageState(FinitStateMachine stateMachine, SkeletonData data, IState next) : base(stateMachine)
 {
     _locomotionController = data.LocomotionController;
     _animator             = data.Animator;
     _next = next;
 }