void OnEnable() { HP = 10; ME = GetComponent<ASMissileEffect>(); targetDistanceTimer = 0; }
private void OnCollisionEnter2D(Collision2D col) //NEED TO CREATE PARTICLE EFFECTS AND SOUND EFFECTS FOR HIT { if (col.gameObject.layer == LayerMask.NameToLayer("Player"))//ADD BACK IN FRIENDLY COLLISIONS LATER { controller.calculateCollisionDamage(col); } if (col.gameObject.layer == LayerMask.NameToLayer("Enemies") && owner == Controller.Owner.Player) { controller.calculateCollisionDamage(col); } if (col.gameObject.CompareTag("Projectile")) { lastHit = Time.time; Projectile p = col.gameObject.GetComponent<Projectile>(); Projectile.ProjectileType type = p.getType(); if (controller.shieldRef.Shields > 0) { controller.shieldRef.takeDamage(p.DamageShield); col.gameObject.layer = LayerMask.NameToLayer("Default"); TrashMan.despawn(col.gameObject); return; } float proc = Random.Range(0f,1f); if (proc <= p.procChance)//if proc happened then do proc effect { switch (type) { case Projectile.ProjectileType.ion: controller.disableWeapons(); break; case Projectile.ProjectileType.rail: takeDamage(p.DamageHull * 2, col); return; } } takeDamage(p.DamageHull, col); } if (col.gameObject.CompareTag("Missile")) { lastHit = Time.time; nuke= col.gameObject.GetComponent<ASMissileEffect>(); if (nuke != null) nuke.resetMissile(); Missile m = col.gameObject.GetComponent<Missile>(); Missile.MissileType mType = m.getMissileType(); m.trail.ps.Stop(); m.trail.m = null; switch (mType) { case Missile.MissileType.Ballistic: //Debug.Log("hit by ballistic missile"); takeDamage(m.Damage, col); break; case Missile.MissileType.AOE://Create effect for DOT Collider2D[] inBlastRadius = Physics2D.OverlapCircleAll(transform.position, m.Modifier, 1 << LayerMask.NameToLayer("Enemies")); StartCoroutine(blastNearby(inBlastRadius)); takeDamage(m.Damage, col); break; case Missile.MissileType.DOT://Create effect for DOT setDOT(m.Damage, m.Modifier); col.gameObject.layer = LayerMask.NameToLayer("Default"); TrashMan.despawn(col.gameObject); break; } ParticleManager.pm.spawnMissileExplosion(transform.position, m.getMissileType()); } }