void OnCollisionEnter2D(Collision2D collision) { GameObject explosionInst = Instantiate(shellExplosion, this.transform.position, this.transform.rotation); ShellController shellC = explosionInst.GetComponent <ShellController>(); shellC.playerM = playerM; shellC.Init(BalanceTweaks.GlobalInstance.explosiveGun.shellDamage, 0, 1.1f); }
public void Fire() { if (timeAccumulator > weaponTweaks.fireDelaySeconds) { float anglePerShell = weaponTweaks.shotSpread / weaponTweaks.shellsPerShot; float startAngle = this.transform.rotation.eulerAngles.z - (weaponTweaks.shotSpread / 2); float endAngle = startAngle + weaponTweaks.shotSpread; for (int i = 0; i < weaponTweaks.shellsPerShot; i++) { float shellAngle = Random.Range(startAngle, endAngle); GameObject shellInst = Instantiate(weaponTweaks.shellPrefab, shellSpawn.position, Quaternion.Euler(0, 0, shellAngle), playerM.gameObject.transform); shellInst.layer = LAYER_START_INDEX + playerM.playerNum; ShellController shellC = shellInst.GetComponent <ShellController>(); shellC.playerM = playerM; shellC.Init(weaponTweaks.shellDamage, weaponTweaks.shellSpeed, weaponTweaks.shellDestroyTime); } timeAccumulator = 0.0F; } }