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); }
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); } }
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); } } }
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; }
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>(); }
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); } }
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); }
public virtual void Fire(BaseWeaponItem weaponData) { }
private void SetWeaponData() { m_WeaponData = ItemManager.GetWeaponItem(m_WeaponID); m_WeaponData.Manager = m_Manager; }