Esempio n. 1
0
    public override void Fire(BaseWeaponItem weaponData)
    {
        float           angle1      = Vector2.SignedAngle(Vector2.up, m_manager.GetAimDir());
        FidgeProjectile projectile1 = Instantiate(m_Projectile, m_manager.transform.position, Quaternion.Euler(0, 0, angle1));

        projectile1.Setup(m_Damage, m_manager.GetAimDir().normalized, m_ProjectileSpeed, m_manager, KnockbackPower);
    }
Esempio n. 2
0
    public void TakeDamage(BaseWeaponItem weaponUsed, int damage, int playerID)
    {
        m_Data.TakeDamage(damage);
        if (!m_IsFlashing)
        {
            StartCoroutine(DamageFlash());
        }

        if (m_Data.CurrHealth <= 0)
        {
            if (weaponUsed != null)
            {
                weaponUsed.OnKillEnemy();
            }

            GetComponentInParent <Room>().EnemyDeath(this, playerID, transform.position);
            DropItem();
            if (weaponUsed != null)
            {
                if (weaponUsed.GetItemName() == "HeartWand")
                {
                    gameObject.tag = Consts.PRIMED;
                    weaponUsed.EnemyExplode(transform.position);
                }
            }

            Destroy(gameObject);
        }
    }
Esempio n. 3
0
    public void TakeDamage(BaseWeaponItem weaponUsed, int damage, PlayerManager from = null)
    {
        m_Data.TakeDamage(damage);

        if (!m_IsFlashing)
        {
            StartCoroutine(DamageFlash());
        }

        TakeDamageSounds();
        m_PlayerCanvas.SliderDamage(damage);
        if (m_Data.CurrHealth <= 0)
        {
            if (weaponUsed != null)
            {
                weaponUsed.OnKillEnemy();
            }

            Die();
            m_AudioManager.Play("Death_Player");
            if (from != null)
            {
                PKEvent(from.GetID(), GetID());
            }
            else
            {
                DropSpotlightEvent(gameObject.transform.position.x, gameObject.transform.position.y);
            }
        }
    }
Esempio n. 4
0
 public void Setup(int damage, Vector2 dir, float speed, PlayerManager player, float knockback, BaseWeaponItem data, float scale, float radius, bool big)
 {
     SetDamage(damage);
     SetVelocity(dir, speed);
     m_Manager    = player;
     m_Knockback  = knockback;
     m_WeaponData = data;
     m_Scale      = scale;
     m_Radius     = radius;
 }
Esempio n. 5
0
    private void Awake()
    {
        m_WeaponID   = Consts.NULL_ITEM_ID;
        m_WeaponData = null;

        m_HasWeaponEquipped = false;
        m_IsInUse           = false;
        m_IsAttacking       = false;

        m_CurrentDirection = Vector2.right;

        m_OnAttackEffects = new List <ItemAndEffect>();

        m_Manager = GetComponent <PlayerManager>();

        m_AudioManager = GetComponent <AudioManager>();
    }
Esempio n. 6
0
    public override void Fire(BaseWeaponItem weaponData)
    {
        bool huge = (Random.value <= m_ChanceHuge);

        m_WeaponData = weaponData;
        float           angle1     = Vector2.SignedAngle(Vector2.up, m_manager.GetAimDir());
        HeartProjectile projectile = Instantiate(m_Projectile, m_manager.transform.position, Quaternion.Euler(0, 0, angle1));

        if (huge)
        {
            projectile.transform.localScale = projectile.transform.localScale * 3;
            projectile.Setup(m_Damage, m_manager.GetAimDir().normalized, m_ProjectileSpeed, m_manager, KnockbackPower, weaponData, m_Scale, m_ExplodeRadius, true);
        }
        else
        {
            projectile.Setup(m_Damage, m_manager.GetAimDir().normalized, m_ProjectileSpeed, m_manager, KnockbackPower, weaponData, 1, m_ExplodeRadius, false);
        }
    }
Esempio n. 7
0
    public override void Fire(BaseWeaponItem weaponData)
    {
        float         angle1      = Vector2.SignedAngle(Vector2.up, m_manager.GetAimDir());
        ScatterBullet projectile1 = Instantiate(m_Projectile, m_manager.transform.position, Quaternion.Euler(0, 0, angle1));

        projectile1.Setup(m_Damage, m_manager.GetAimDir().normalized, m_ProjectileSpeed, m_manager, KnockbackPower, m_MaxBounces);

        float         angle2       = angle1 + 15;
        Vector2       offsetAngle2 = Rotate(m_manager.GetAimDir(), 15).normalized;
        ScatterBullet projectile2  = Instantiate(m_Projectile, m_manager.transform.position, Quaternion.Euler(0, 0, angle2));

        projectile2.Setup(m_Damage, offsetAngle2, m_ProjectileSpeed, m_manager, KnockbackPower, m_MaxBounces);

        float         angle3       = angle1 - 15;
        Vector2       offsetAngle3 = Rotate(m_manager.GetAimDir(), -15).normalized;
        ScatterBullet projectile3  = Instantiate(m_Projectile, m_manager.transform.position, Quaternion.Euler(0, 0, angle3));

        projectile3.Setup(m_Damage, offsetAngle3, m_ProjectileSpeed, m_manager, KnockbackPower, m_MaxBounces);
    }
Esempio n. 8
0
 public virtual void Fire(BaseWeaponItem weaponData)
 {
 }
Esempio n. 9
0
 private void SetWeaponData()
 {
     m_WeaponData         = ItemManager.GetWeaponItem(m_WeaponID);
     m_WeaponData.Manager = m_Manager;
 }