private void ShieldFieldTransformer_OnDestroyed(object sender, EventArgs e) { ShieldFieldTransformer shieldFieldTransformer = sender as ShieldFieldTransformer; ShieldFieldTransformerLink shieldFieldTransformerLink = GetShieldFieldTransformerLink(shieldFieldTransformer); foreach (Transform powerLine in shieldFieldTransformerLink.shieldFieldTransformerPowerLines.powerLineArray) { Destroy(powerLine.gameObject); } TestAllTransformersDead(); }
public ShieldFieldTransformerLink GetShieldFieldTransformerLink(ShieldFieldTransformer shieldFieldTransformer) { foreach (ShieldFieldTransformerLink shieldFieldTransformerLink in shieldFieldTransformerLinkArray) { if (shieldFieldTransformerLink.shieldFieldTransformer == shieldFieldTransformer) { return(shieldFieldTransformerLink); } } return(null); }
private void PlayerSwapAimNormal_OnShoot(object sender, CharacterAim_Base.OnShootEventArgs e) { Shoot_Flash.AddFlash(e.gunEndPointPosition); WeaponTracer.Create(e.gunEndPointPosition, e.shootPosition); UtilsClass.ShakeCamera(.6f, .05f); SpawnBulletShellCasing(e.gunEndPointPosition, e.shootPosition); if (weapon.GetWeaponType() == Weapon.WeaponType.Shotgun) { // Shotgun spread int shotgunShells = 4; for (int i = 0; i < shotgunShells; i++) { WeaponTracer.Create(e.gunEndPointPosition, e.shootPosition + UtilsClass.GetRandomDir() * UnityEngine.Random.Range(-20f, 20f)); if (i % 2 == 0) { SpawnBulletShellCasing(e.gunEndPointPosition, e.shootPosition); } } } switch (weapon.GetWeaponType()) { default: case Weapon.WeaponType.Pistol: Sound_Manager.PlaySound(Sound_Manager.Sound.Pistol_Fire, GetPosition()); break; case Weapon.WeaponType.Rifle: Sound_Manager.PlaySound(Sound_Manager.Sound.Rifle_Fire, GetPosition()); break; case Weapon.WeaponType.Shotgun: Sound_Manager.PlaySound(Sound_Manager.Sound.Shotgun_Fire, GetPosition()); break; } // Any enemy hit? if (e.hitObject != null) { Enemy enemy = e.hitObject.GetComponent <Enemy>(); if (enemy != null) { enemy.Damage(this, weapon.GetDamageMultiplier()); } ShieldFieldTransformer shieldFieldTransformer = e.hitObject.GetComponent <ShieldFieldTransformer>(); if (shieldFieldTransformer != null) { shieldFieldTransformer.Damage(this, weapon.GetDamageMultiplier()); } } }