protected override void HoldingItem(bool use, bool startUse, bool endUse, bool doubleUse) { //update the time before the next missle can be shot if (shotTimer > 0) { shotTimer--; } //if its time to shoot the next missle and the holder is pressing this Item's key, //then create a new missle infront of the holder else if (use) { //create the missle infront of the holder HomingMissile missile = (HomingMissile)level.CreateObject("HomingMissilePF", holder.position + offset.Rotate(holder.angle), holder.angle, holder.velocity); //set the missle's initial settings missile.damage = missileDamge; missile.acceleration = missileAcceleration; missile.turnSpeed = missileTurnSpeed; missile.timeToLiveSecs = missleLifeTimeSecs; missile.team = holder.team; missile.color = color; missile.maxSpeed = missileMaxSpeed; //reset the timer to shoot the next missle shotTimer = (int)(shootTimeSecs * level.updatesPerSec); level.score += USE_POINTS; } }
void ShootHomingMissile(Transform target) { GameObject go = (GameObject)Instantiate(homingMissileGO, transform.position, Quaternion.identity); HomingMissile homingMissile = go.GetComponent <HomingMissile>(); homingMissile.SetTarget(target); }
override public void activate(WheelVehicle user) { Debug.Log("called act"); HomingMissile clone = Instantiate(prefab, user.gameObject.transform.position + 5 * Vector3.up, user.gameObject.transform.rotation); clone.ignite(user, aim.rot); }
public HomingMissileObstacle(EvadableAbility ability, Unit missileUnit) : base(ability) { this.homingMissileAbility = (HomingMissile)ability.Ability; this.missileUnit = missileUnit; this.initialPosition = missileUnit.Position; this.initialTime = Game.RawGameTime + this.homingMissileAbility.ActivationDelay; }
public HomingLauncher(Ship ship, Game1 game) { owner = ship; missile = new HomingMissile(Vector2.Zero, ship, game); fireSFXs = missile.getFireSFX(); random = new Random(); }
public void Attack(Transform target) { this.target = target; GameObject instancedMissile = Instantiate(MissilePrefab, launchPoint.position, Quaternion.identity); //instancedMissile.SetActive(false); currentMissile = instancedMissile.GetComponent <HomingMissile>(); currentMissile.Launch(missileReachPoint, target, damage); ammo--; }
void LaunchHomingMissile() { HomingMissile newMissile = Instantiate(homingMissilePrefab, missileCannon.position, Quaternion.identity, proyectileContainer).GetComponent <HomingMissile>(); newMissile.Initialize(powerPlusOn, model.missileDamage, model.movementSpeed); newMissile.SetScreenLimits(leftScreenLimit, rightScreenLimit, upperScreenLimit, lowerScreenLimit); if (onHomingMissileLaunch != null) { onHomingMissileLaunch(newMissile); } }
private void ShootMissile() { Vector3 target = MouseRayCast(); GameObject missile = Instantiate(_missile, _missileSpawn.position, Quaternion.Euler(-90f, 0f, 0f)); HomingMissile missileBrain = missile.GetComponent <HomingMissile>(); missileBrain.Speed = _missileSpeed; missileBrain.RotationSpeed = _missileSteerSpeed; missileBrain.Target = target; }
public void Cast(Player player) { float maxAngle = 45; float angleSpacing = maxAngle / numberOfMissiles; float currentAngle = -maxAngle / 2; for (int i = 0; i < numberOfMissiles; i++) { HomingMissile missle = (HomingMissile)player.CreateBullet(missileBullet); missle.ShootOffset(currentAngle); currentAngle += angleSpacing; } }
public void PowerUpPickUp(string PowerUpType) { switch (PowerUpType) { case "TripleShot": StartCoroutine(TripleShotCooldown()); break; case "SpeedUp": StartCoroutine(SpeedUpCooldown()); break; case "Shield": _isShieldActive = true; //activate shield game object _shield.SetActive(true); _shieldHealth = 3; _shieldSprite.color = Color.cyan; _uIManager.UpdateUIShield(_shieldHealth); break; case "Repair": Repair(); break; case "Ammo": _currAmmo = _maxAmmo; _uIManager.UpdateUIAmmo(_currAmmo, _maxAmmo); break; case "MassHomingMissile": GameObject[] Targets = GameObject.FindGameObjectsWithTag("Enemy"); foreach (GameObject Target in Targets) { GameObject HMissileObject = Instantiate(HMissilePrefab, transform.position, Quaternion.identity); HomingMissile HMissileScript = HMissileObject.GetComponent <HomingMissile>(); HMissileScript.AssignTarget(Target); } break; case "Asteroid": StartCoroutine(SpeedDownCooldown()); break; default: Debug.Log("Default value in switch statement in Player script for PowerUpType"); break; } }
// Start is called before the first frame update void Start() { //target = GameObject.FindGameObjectWithTag("spaceship").transform; if (hm = null) { HMissileObject = GameObject.FindGameObjectWithTag("2"); } speed = 4; activated = false; RespawnRotation = transform.rotation; RespawnPosition = transform.position; rb = GetComponent <Rigidbody2D>(); angularspeed = 4; }
void InitializeHommingMissileData(HomingMissile missile) { Vector2 missilePosition = missile.transform.position; float smallestDistance = 1000f; Transform target = null; foreach (EnemyController enemy in currentEnemies) { if (enemy) { float distanceToEnemy = Vector2.Distance(missilePosition, enemy.transform.position); if (distanceToEnemy < smallestDistance) { target = enemy.transform; } } } missile.SetTarget(target); }
public void TryToFire( ) { if (spawnPoint == null) { return; } if (realoadTimeLeft > 0 || timeToNextShot > 0) { return; } audioEvent.Raise(AudioEvents.RocketLaunch, transform.position); GameObject missile = Instantiate(parameters.Projectile, spawnPoint.position, Quaternion.Euler(0, 0, 90 + Random.Range(-15f, 15f))); hasShotMissile = true; if (mechAnimScript != null) { mechAnimScript.positionLocked = true; } HomingMissile missileScript = missile.GetComponent <HomingMissile>(); missileScript.fromTeam = FromTeam; //Debug.Log("Has shot missile Launcher CS " + hasShotMissile); missileScript.SetDamage(parameters.GetDamage( )); //let homingMissile script know mech that shot. Used so self-circle collider of wing spawn is ignored for collision //currently console returns error because the below hierarchy fits the winged spawn only. TODO //Transform shootingMech = transform.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent; //Debug.Log("Mech Shooting" + shootingMech); //missile.GetComponent<HomingMissile>().ReceiveMechName(shootingMech); //find parent mech object that shot and pass it to homing Missile so missile ignores hitting that mech at first shootingMech = FindParentWithTag(transform, "Mech"); Debug.Log("Name of Shooting Mech IS " + shootingMech.name); missileScript.ReceiveMechName(shootingMech); // TODO: suggest that we compare TAGS, not which gamepad this player is controlled by missileScript.playerNumber = transform.GetComponentInParent <Mech>().driver.gamepadNumber; // FIXME if (cursor == null) { cursor = UIResourceManager.MouseCursor; } cursor.AddMissile(missile); missile.transform.SetParent(LitterContainer.instanceTransform); timeToNextShot = parameters.DelayBetweenShots; currentMagSize--; if (isPlayerDriver) { weaponSlotEvents.Raise(UIEvent.LauncherOn, currentMagSize / parameters.MagSize); } if (currentMagSize <= 0) { currentMagSize = (int)parameters.MagSize; realoadTimeLeft = parameters.RealoadTime; } }
private void OnTriggerEnter2D(Collider2D other) { if (other.tag == "Player" && tag != "BossEnemy") { if (_player != null) { _player.Damage(); } Destroy(this.gameObject, 2.3f); _enemySpeed = 0f; _frequency = 0f; _animator.SetTrigger("OnEnemyDeath"); _isExploded = true; } if (other.tag == "Laser" && tag != "BossEnemy" && _isEnemyShieldActive == false) { Destroy(other.gameObject); if (_player != null) { Destroy(this.gameObject, 1.5f); _player.AddPoints(10); _enemySpeed = 0f; _frequency = 0f; _animator.SetTrigger("OnEnemyDeath"); _isExploded = true; other.GetComponent <Collider2D>().enabled = false; } } if (other.tag == "SuperLaser" && tag != "BossEnemy" && _isEnemyShieldActive == false) { Destroy(other.gameObject, 1.5f); if (_player != null) { Destroy(this.gameObject, 1.5f); _player.AddPoints(10); _enemySpeed = 0f; _frequency = 0f; _animator.SetTrigger("OnEnemyDeath"); _isExploded = true; other.GetComponent <Collider2D>().enabled = false; } } if (other.tag == "HomingMissile" && tag != "BossEnemy") { _homingMissile = GameObject.FindWithTag("HomingMissile").GetComponent <HomingMissile>(); if (_homingMissile != null) { Destroy(other.gameObject, 2f); _homingMissile.OnMissileDestroy(); _shakeBehavior.TriggerShake(); } else { Debug.Log("HOMING MISSILE IS NULL"); } if (_player != null) { _enemySpeed = 0f; _frequency = 0f; Destroy(this.gameObject, 1.5f); _player.AddPoints(10); _animator.SetTrigger("OnEnemyDeath"); _isExploded = true; other.GetComponent <Collider2D>().enabled = false; } } if (other.tag == "Laser" || other.tag == "SuperLaser" || other.tag == "Player" && tag == "EnemyShield" && _isEnemyShieldActive == true) { Destroy(other.gameObject); _isEnemyShieldActive = false; _enemyShieldSprite.gameObject.SetActive(false); _player.AddPoints(10); } if (tag == "AggressiveEnemy" && other.tag == "Player") { if (_player != null) { _player.Damage(); } movementSpeed = 0; rotationSpeed = 0; Destroy(this.gameObject, 2.3f); _animator.SetTrigger("OnEnemyDeath"); _isExploded = true; } if (tag == "BossEnemy" && other.tag == "Player" || other.tag == "Laser" || other.tag == "SuperLaser") { _shakeBehavior.TriggerShake(); _bossLives--; _player.AddPoints(10); if (_bossLives == 0 && _player != null) { _bossSpeed = 0f; _bossFrequency = 0f; _shakeBehavior.TriggerShake(); Destroy(this.gameObject, 2.5f); _animator.SetTrigger("OnEnemyDeath"); _isExploded = true; _bossWinnerActive = true; if (_bossWinnerActive == true) { StartCoroutine(WinnerTextCoroutine()); } } } }