// TOOD Calculate //public float CalculateOnHitDamage(GameObject hit) { // if (hit.GetComponent<Role>() != null) { // return creatorRole.attribute.attack; // } // return 0; //} public void AddTracking() { if (enhancement.isTracking) { SmartMissile3D smartMissile = gameObject.AddComponent <SmartMissile3D>(); smartMissile.m_lifeTime = autoDestroyTime; //smartMissile.m_searchRange = 10f; smartMissile.m_searchAngle = enhancement.trackingAngle; smartMissile.m_canLooseTarget = true; smartMissile.m_guidanceIntensity = enhancement.trackingIntensity; smartMissile.TargetTag = creatorRole.GetEnemyTag(); //smartMissile.m_targetOffset = m_config.m_targetOffset; //smartMissile.m_distanceInfluence = m_config.m_selectedPreset; } }
void Fire() { GameObject newProjectile = Instantiate(m_projectile) as GameObject; newProjectile.transform.position = transform.position; if (newProjectile.GetComponent <Rigidbody2D>()) { newProjectile.GetComponent <Rigidbody2D>().AddForce(transform.forward * m_launchIntensity, ForceMode2D.Impulse); newProjectile.transform.eulerAngles = new Vector3(0, 0, -Mathf.Atan2(transform.forward.x, transform.forward.y) * Mathf.Rad2Deg); SmartMissile2D smartMissile = newProjectile.GetComponent <SmartMissile2D>(); smartMissile.m_lifeTime = m_config.m_lifeTime; smartMissile.m_searchRange = m_config.m_searchRange; smartMissile.m_searchAngle = m_config.m_searchAngle; smartMissile.m_canLooseTarget = m_config.m_canLooseTarget; smartMissile.m_guidanceIntensity = m_config.m_guidanceIntensity; smartMissile.m_targetOffset = m_config.m_targetOffset; smartMissile.m_distanceInfluence = m_config.m_selectedPreset; } else if (newProjectile.GetComponent <Rigidbody>()) { newProjectile.GetComponent <Rigidbody>().AddForce(transform.forward * m_launchIntensity, ForceMode.Impulse); SmartMissile3D smartMissile = newProjectile.GetComponent <SmartMissile3D>(); smartMissile.m_lifeTime = m_config.m_lifeTime; smartMissile.m_searchRange = m_config.m_searchRange; smartMissile.m_searchAngle = m_config.m_searchAngle; smartMissile.m_canLooseTarget = m_config.m_canLooseTarget; smartMissile.m_guidanceIntensity = m_config.m_guidanceIntensity; smartMissile.m_targetOffset = m_config.m_targetOffset; smartMissile.m_distanceInfluence = m_config.m_selectedPreset; } }