public override void OnEvent(TakeDamageEvent evnt) { if (evnt.Entity.IsOwner) { if (evnt.Entity.Source == null) { BoltEntity entity = evnt.Entity; PlayerHealth playerHealth = entity.GetComponent <PlayerHealth>(); playerHealth.TakeDamage(evnt.Damage); } } else { if (evnt.Entity.Source == null) { BoltConsole.Write("empty soiurce"); } else { var newEvnt = TakeDamageEvent.Create(evnt.Entity.Source); newEvnt.Damage = evnt.Damage; newEvnt.Entity = evnt.Entity; newEvnt.Send(); } } }
void OnCollisionEnter(Collision collision) { if (entity.IsAttached) { speed = 0; Destroy(gameObject); if (isProjectileShooter) { var targetEntity = collision.gameObject.GetComponent <BoltEntity>(); if (targetEntity != null && targetEntity.IsAttached) { var evnt = TakeDamageEvent.Create(targetEntity.Source); evnt.Damage = damage; evnt.Entity = targetEntity; evnt.Send(); } if (projectileHitPrefab != null) { ContactPoint contact = collision.contacts[0]; Quaternion rot = Quaternion.FromToRotation(Vector3.up, contact.normal); var hitfx = BoltNetwork.Instantiate(projectileHitPrefab, contact.point, rot); } } } }
public void TakeDamage(float getDamage) { //if (!this.IsDie && !this.IsInvinsible) { var flash = TakeDamageEvent.Create(entity); flash.GetDamage = getDamage; flash.Respawn = false; flash.Send(); } return; }
public void Shoot() { Vector3 aimPoint; RaycastHit rayHit; if (Physics.Raycast(cam.transform.position, cam.transform.forward, out rayHit, gunRange)) { aimPoint = rayHit.point; var targetEntity = rayHit.collider.gameObject.GetComponent <BoltEntity>(); if (entity.IsOwner) { BoltConsole.Write("HIT DETECTED on OBJECT : " + rayHit.collider.gameObject.name); if (targetEntity != null) { if (entity.IsAttached) { BoltConsole.Write("CALLING EVENT"); var evnt = TakeDamageEvent.Create(targetEntity.Source); evnt.Damage = gunDamage; evnt.Send(); } } if (projectileHitPrefab != null) { Quaternion rot = Quaternion.FromToRotation(Vector3.up, aimPoint); var hitfx = Instantiate(projectileHitPrefab, aimPoint, rot); } } } else { aimPoint = cam.transform.position + cam.transform.forward * gunRange; } if (entity.IsOwner) { muzzleIndex = state.WeaponActiveIndex; var muz = firePoints[muzzleIndex]; var bullet = BoltNetwork.Instantiate(BoltPrefabs.Projectile, muz.transform.position, Quaternion.identity); bullet.transform.LookAt(aimPoint); if (muzzlePrefab != null) { var muzzleVfx = BoltNetwork.Instantiate(muzzlePrefab, muz.transform.position, Quaternion.identity); muzzleVfx.transform.forward = bullet.transform.forward; } } }
IEnumerator Death() { yield return(new WaitForEndOfFrame()); while (Time.time < this.currentDietime) { yield return(new WaitForEndOfFrame()); if (entity.IsOwner) { state.MyColor = Color.Lerp(state.MyColor, Color.black, Time.deltaTime * this.dietime); } } var flash = TakeDamageEvent.Create(entity); flash.GetDamage = 0; flash.Respawn = true; flash.Send(); yield break; }
public void Shoot() { var currentWeapon = WeaponObjects[state.WeaponActiveIndex]; Weapon weapon = currentWeapon.GetComponent <Weapon>(); float gunRange = weapon.GetRange(); float gunDamage = weapon.GetDamage(); float projectileSpeed = weapon.GetProjectileSpeed(); bool isProjectileShooter = weapon.GetIsProjectileShooter(); GameObject projectilePrefab = weapon.projectilPrefab; GameObject projectilHitPrefab = weapon.projectileHitPrefab; GameObject firePoint = weapon.firePoint; Vector3 aimPoint; RaycastHit rayHit; if (Physics.Raycast(cam.transform.position, cam.transform.forward, out rayHit, gunRange)) { aimPoint = rayHit.point; var targetEntity = rayHit.collider.gameObject.GetComponent <BoltEntity>(); if (entity.IsOwner) { if (!isProjectileShooter) { if (targetEntity != null) { if (entity.IsAttached) { var evnt = TakeDamageEvent.Create(targetEntity.Source); evnt.Damage = gunDamage; evnt.Entity = targetEntity; evnt.Send(); } } if (projectilHitPrefab != null) { Quaternion rot = Quaternion.FromToRotation(Vector3.up, aimPoint); var hitfx = BoltNetwork.Instantiate(projectilHitPrefab, aimPoint, Quaternion.identity); } } } } else { aimPoint = cam.transform.position + cam.transform.forward * gunRange; } if (entity.IsOwner) { var bullet = BoltNetwork.Instantiate(projectilePrefab, firePoint.transform.position, Quaternion.identity); var projectileScript = bullet.GetComponent <Projectile>(); projectileScript.SetSpeed(projectileSpeed); projectileScript.SetIsProjectileShooter(isProjectileShooter); projectileScript.SetProjectileDamage(gunDamage); projectileScript.SetProjectileHitPrefab(projectilHitPrefab); bullet.transform.LookAt(aimPoint); if (muzzlePrefab != null) { var muzzleVfx = BoltNetwork.Instantiate(muzzlePrefab, firePoint.transform.position, Quaternion.identity); muzzleVfx.transform.forward = bullet.transform.forward; } } }