public void Collision(ProjectileCollision collider) { Vector2 velocity = collider.rb.velocity; Vector2 position = new Vector2(collider.transform.position.x, collider.transform.position.y); rb.AddExplosionForce(collider.ExplosionForce, position); TakeDamage(collider.CalculateDamage(velocity)); }
void ProjectileDispute(ProjectileCollision proj) { if (proj.gameObject.activeSelf && gameObject.activeSelf) { if (proj.priority >= priority) { proj.spellCollisionBehaviour(gameObject, proj.gameObject); } if (proj.priority <= priority) { spellCollisionBehaviour(proj.gameObject, gameObject); } } }
private void OnCollisionEnter(Collision collision) { if (collision.gameObject.CompareTag("projectile")) { var data = collision.gameObject.GetComponent <CollisionData>(); ProjectileCollision.SafeInvoke(data); } if (collision.gameObject.CompareTag("Player")) { PlayerCollisionBegin.SafeInvoke(); } ; }
private IEnumerator DelayedLaunchCoroutine() { yield return(new WaitForSeconds(m_LaunchDelay)); SFXPool.Instance.PlaySFX(SFXPool.SFX.SpellCast1); GameObject projectile = Instantiate(m_ProjectilePrefab); projectile.transform.position = m_ProjectileOrigin.position; ProjectileMovement movement = projectile.GetComponent <ProjectileMovement>(); movement.Init( transform.right * -transform.localScale.x + new Vector3(0, Mathf.Sin(m_ElevationAngle * Mathf.Deg2Rad)), m_ProjectileSpeed); ProjectileCollision collision = projectile.GetComponent <ProjectileCollision>(); collision.Init(gameObject); }
private void OnCollisionEnter(Collision collision) { if (photonView.IsMine) { Player player = collision.collider.GetComponent <Player>(); if (player) { if (InstanceID != player.InstanceID) { ProjectileCollision col = player.GetComponent <ProjectileCollision>(); col.FlashRed(); if (player.OnDamage(damage)) { ++owner.score; } PhotonNetwork.Destroy(gameObject); } } } }
// Check out and init projectiles foreach seg void CheckOutProj(ProjectileSpellBookBuilder builder) { foreach (SpellCreationSegment seg in builder.GetSpellSegs()) { List <GameObject> gameObjs = new List <GameObject>(); for (int i = 0; i < 15; i++) { GameObject projParent = ProjectileParentPool.Take(); if (builder.trigger == ProjectileSpellBookBuilder.EventTrigger.Proximity) { projParent.GetComponent <Trigger>().active = true; projParent.GetComponent <Trigger>().spellEvent = builder.spellEvent; } foreach (SpellPixelFinal spf in seg.GetPixels()) { GameObject projPixel = ProjectilePool.Take(); projPixel.transform.parent = projParent.transform; projPixel.transform.localPosition = Vector2.zero + spf.m_position * .25f; projPixel.transform.rotation = Quaternion.identity; projPixel.GetComponent <SpriteRenderer>().color = spf.m_ink.GetColor(); ProjectileCollision projCollision = projPixel.GetComponent <ProjectileCollision>(); projCollision.caster = caster; projCollision.priority = spf.m_ink.GetPriority(); projCollision.spellCollisionBehaviour = spf.m_ink.GetOnSpellCollisionEffect(); projCollision.damage = spf.damage; projCollision.damageBehaviour = spf.m_ink.GetOnHitEffect(); projCollision.backGroundCollisionBehaviour = builder.lang.GetCollisionBehaviour(); } projParent.GetComponent <ProjectileController>().SetProjectile(seg, this); gameObjs.Add(projParent); projParent.SetActive(false); } openObjs.Add(seg, gameObjs); } }
} // end void start //------------------------------------------------------------------------------------------------------------------------------- void Update() { /* Need to up Date every scene since the bullet is not created until it is fired */ Bullet = GameObject.FindWithTag("Bullet").GetComponent <ProjectileCollision>(); // Having a hard time determining wheather the object exist or not //--------------------------------------------------------------------------------------------------- /* Changes camera to the projectile */ if (Bullet.IsDestroyed == false) { bulletCamera.enabled = true; // Need to change the camera from enabled to something else that will determine player1Camera.enabled = false; // wheather the camera is on or not. player2Camera.enabled = false; // this line aslo needs to be changed. /* Getting the position for the bullet */ xPos = Bullet.transform.position.x; yPos = Bullet.transform.position.y; zPos = transform.position.z; // setting the postion of the camera with the vector Vector3 center = new Vector3(xPos, yPos, zPos); // setting the position marker for the camera // bulletCamera.transform.position = center; if (player1.firedProjectile) { player1.turnCheck = false; player2.turnCheck = false; timer1 -= Time.deltaTime; if (timer1 <= 0) { player1.turnCheck = false; player2.turnCheck = true; player1Camera.enabled = false; player2Camera.enabled = true; bulletCamera.enabled = false; timer1 = baseTimer; } } if (player2.firedProjectile) { player1.turnCheck = false; player2.turnCheck = false; timer2 -= Time.deltaTime; if (timer2 <= 0) { player1.turnCheck = true; player2.turnCheck = false; player1Camera.enabled = true; player2Camera.enabled = false; bulletCamera.enabled = false; timer2 = baseTimer; } } } else { /* setting the player camera to true */ if (player1.turnCheck) { player1Camera.enabled = true; player2Camera.enabled = false; bulletCamera.enabled = false; } /* setting the player camera to true */ else if (player2.turnCheck) { player1Camera.enabled = false; player2Camera.enabled = true; bulletCamera.enabled = false; } } } // end void update
void Start() { projectileRB = projectile.GetComponent <Rigidbody>(); projCol = projectile.GetComponent <ProjectileCollision>(); anim = GetComponentInChildren <Animator>(false); }
public void Collision(ProjectileCollision collider) { }