public void SetUpArmorCon() { // Setup of services and Clientfactory var services = TestStartUp.ServiceStartUp(); IHttpClientFactory factory = services.BuildServiceProvider() .GetRequiredService <IHttpClientFactory>(); _armorController = new ArmorController(null, factory); }
private IEnumerator ActivateInvulnerability() { ArmorController.SetInvulnerabilityStatus(true); playerObject.GetComponent <Animator>().SetBool("isInvulnerable", true); yield return(new WaitForSeconds(3f)); ArmorController.SetInvulnerabilityStatus(false); playerObject.GetComponent <Animator>().SetBool("isInvulnerable", false); }
private void Awake() { if (instance == null) { instance = this; } else if (instance != this) { Destroy(gameObject); } }
// TODO: Add Character and Armor Controllers public static void ConfigureControllers(DataContext context, Mapper mapper, out PotionController potionController, out WeaponController weaponController, out ArmorController armorController, out CharacterController characterController) { PotionRepository potionRepository = new PotionRepository(context); WeaponRepository weaponRepository = new WeaponRepository(context); ArmorRepository armorRepository = new ArmorRepository(context); CharacterRepository characterRepository = new CharacterRepository(context); potionController = new PotionController(potionRepository, mapper); weaponController = new WeaponController(weaponRepository, mapper); armorController = new ArmorController(armorRepository, mapper); characterController = new CharacterController(characterRepository, mapper); }
private void ActivatePlayer() { StartCoroutine("ActivateInvulnerability"); playerObject.transform.position = gameObject.transform.position; logicController.GetComponent <PlayerController>().enabled = true; logicController.GetComponent <WeaponsController>().enabled = true; playerObject.GetComponent <Animator>().enabled = true; ArmorController.SetMaxArmor(1); ArmorController.SetArmor(1); GetComponent <Animator>().SetBool("isSpawning", false); }
public override void _Ready() { animationPlayer = GetNode <AnimationPlayer>("AnimationPlayer"); rayCast2D = GetNode <RayCast2D>("RayCaster"); tween = GetNode <Tween>("Tween"); // Controllers statController = GetNode <StatController>("Controllers/StatController"); weaponController = GetNode <WeaponController>("Controllers/WeaponController"); armorController = GetNode <ArmorController>("Controllers/ArmorController"); inputController = GetNode <InputController>("Controllers/InputController"); movementController = GetNode <MovementController>("Controllers/MovementController"); if (movementController == null) { GD.PrintErr("MovementController null"); } movementController.Init(this, animationPlayer, rayCast2D, tween); }
public void CalculateArmor() { foreach (GameObject item in items) { ArmorController aC = item.GetComponent <ArmorController>(); if (aC.type == ArmorController.ArmorType.Head) { armorHead = aC.armorValue; } else if (aC.type == ArmorController.ArmorType.Chest) { armorChest = aC.armorValue; } else if (aC.type == ArmorController.ArmorType.Legs) { armorLegs = aC.armorValue; } } }
private void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.CompareTag("Brick")) { Vector3Int tileHit, adjacentTileHit; Vector3 normal = Vector3.zero, point; //Get contacts ContactPoint2D[] contacts = new ContactPoint2D[collision.contactCount]; collision.GetContacts(contacts); //Check that the normal vector for all contact points is the same if (contacts.All(c => Math.Round(c.normal.x) == Math.Round(contacts[0].normal.x)) && contacts.All(c => Math.Round(c.normal.y) == Math.Round(contacts[0].normal.y))) { normal = new Vector3(contacts[0].normal.x, contacts[0].normal.y); } //if contacts have different normals, default to opposite direction player is facing, eg.: (-1,0) when player is facing right else { GameObject player = GameObject.FindGameObjectWithTag("Player"); float direction = player.transform.localRotation.eulerAngles.z; switch ((int)direction) { case 0: normal = new Vector3(-1, 0, 0); break; case 90: case -270: normal = new Vector3(0, 1, 0); break; case 180: case -180: normal = new Vector3(1, 0, 0); break; case -90: case 270: normal = new Vector3(0, -1, 0); break; default: throw new Exception(); } } float correction = .5f; point = new Vector3(contacts.Average(c => c.point.x - (correction * normal.x)), (contacts.Average(c => c.point.y - (correction * normal.y)))); Tilemap tilemap = collision.gameObject.GetComponent <Tilemap>(); tileHit = tilemap.WorldToCell(point); adjacentTileHit = tilemap.WorldToCell(GetAdjacentTile(normal, tileHit)); tilemap.SetTile(tileHit, null); tilemap.SetTile(adjacentTileHit, null); if (firedByPlayer) { SoundManager.PlaySfx(SFX.ProjectileHitsBrick); } } //Enemy is hit by player's bullet else if (collision.gameObject.CompareTag("Enemy") && firedByPlayer && collision.gameObject != shooter) { int health = collision.gameObject.GetComponent <EnemyProperties>().armor; health--; if (health == 0) { if (collision.gameObject.GetComponent <EnemyProperties>().hasPU&& !collision.gameObject.GetComponent <EnemyProperties>().alreadySpawnedPU) { PowerUpController.SpawnPowerup(); collision.gameObject.GetComponent <EnemyProperties>().alreadySpawnedPU = true; } explosion.transform.localPosition = collision.gameObject.transform.localPosition; Instantiate(explosion); if (collision.gameObject.GetComponent <EnemyProperties>().enemyType == EnemyType.Armored) { SoundManager.PlaySfx(SFX.ExplosionEnemyArmored); } else { SoundManager.PlaySfx(SFX.ExplosionEnemyRegular); } Destroy(collision.gameObject); LevelEndManager.IncreaseKillCount(); } else { if (collision.gameObject.GetComponent <EnemyProperties>().enemyType == EnemyType.Armored) { SoundManager.PlaySfx(SFX.DamageArmor); } collision.gameObject.GetComponent <EnemyProperties>().armor = health; } } //Player is hit by a bullet that is not his own else if (collision.gameObject.CompareTag("Player") && collision.gameObject != shooter) { if (!ArmorController.GetInvulnerabilityStatus()) { ArmorController.TakeDamage(); if (ArmorController.GetArmor() == 0) { explosion.transform.localPosition = collision.gameObject.transform.localPosition; PlayerController.ResetPlayerStats(); Instantiate(explosion); LivesController.DecreaseLives(); SoundManager.PlaySfx(SFX.ExplosionPlayer); } else { SoundManager.PlaySfx(SFX.DamageArmor); } } } //Bullet hits eagle else if (collision.gameObject.CompareTag("Eagle") && LevelManager.GetEagleStatus()) { Animator eagleAnim = GameObject.FindGameObjectWithTag("Eagle").GetComponent <Animator>(); GameObject[] players = GameObject.FindGameObjectsWithTag("Player"); eagleAnim.SetBool("isEagleDestroyed", true); SoundManager.Stop(); SoundManager.PlaySfx(SFX.ExplosionEagle); LevelEndManager.ShowLevelEndScreen(Outcome.Defeat); logicController.GetComponent <PlayerController>().enabled = false; logicController.GetComponent <WeaponsController>().enabled = false; GameObject.FindGameObjectWithTag("Player").GetComponent <Rigidbody2D>().velocity = Vector2.zero; GameObject.FindGameObjectWithTag("Player").GetComponent <BoxCollider2D>().enabled = false; GameObject.FindGameObjectWithTag("Player").GetComponent <Animator>().enabled = false; LevelManager.SetEagleStatus(false); } else if ((collision.gameObject.CompareTag("Concrete") || collision.gameObject.CompareTag("Boundary")) && firedByPlayer) { SoundManager.PlaySfx(SFX.ProjectileHitsWall); } if (collision.gameObject != shooter) { gameObject.SetActive(false); } }
// Use this for initialization void Awake() { Cursor.lockState = CursorLockMode.Confined; audio_bullet = GetComponents<AudioSource>()[0]; //0: bullets, 1: engines, 2: shield, 3: impacts, 4: other audio_engineHum = GetComponents<AudioSource>()[1]; audio_engineHum.enabled = true; audio_engineHum.Play(); audio_accellerators = GetComponents<AudioSource>()[2]; audio_thrusters = GetComponents<AudioSource>()[3]; audio_hullHit = GetComponents<AudioSource>()[4]; audio_wallImpact = GetComponents<AudioSource>()[5]; audio_effects = GetComponents<AudioSource>()[6]; audio_bomb = GetComponents<AudioSource>()[7]; audio_accellerators_max_vol = audio_accellerators.volume; audio_thrusters_max_vol = audio_thrusters.volume; Time.timeScale = 1; // The time scale must be reset upon loading from the main menu rb = GetComponent<Rigidbody>(); originalColor = mesh.GetComponent<Renderer>().material.color; curPowerUp = powerUpList[0]; shield = GetComponentInChildren<ShieldController>(); bomb = GetComponentInChildren<BombController> (); maxHullIntegrity = currHullIntegrity = 5; armorGauge = gameObject.GetComponentInChildren<ArmorController>(); bombTimer = gameObject.GetComponentInChildren<BombCountdownController>(); deathEndingTimer = 0.0f; sceneTransition = GameObject.FindGameObjectWithTag("Screen Transition").GetComponent<CanvasGroup>(); transitionRate = 3; if (tutorialMode) { //Debug.Log("tutorial mode"); currHullIntegrity = 0; } Transform[] temp = bulletSpawns.GetComponentsInChildren<Transform>(); bulletSpawnLocations = new Transform[temp.Length - 1]; bulletSpawnLocIndex = 0; for(int i = 0; i < temp.Length; ++i) { if(temp[i].gameObject.GetInstanceID() != bulletSpawns.GetInstanceID()) { bulletSpawnLocations[bulletSpawnLocIndex] = temp[i]; ++bulletSpawnLocIndex; } } if (GameObject.Find("GameController") == null) { Instantiate(gameController); } gameController = GameObject.FindGameObjectWithTag("GameController"); im = gameController.GetComponent<InputManager>(); mainThrusterLeft.Play (); mainThrusterRight.Play (); }
private void InitializeSingleton() { singletonInstance = this; }
private void OnTriggerEnter2D(Collider2D other) { if (other.gameObject == player) { if (puType == PowerUpType.Ammo) { if (WeaponsController.GetCurrentMaxAmmo() < ammoCap) { WeaponsController.IncreaseMaxAmmo(); ShellDisplay.UpdateAmmoDisplay(); powerUpText.GetComponentInChildren <Text>().text = "+Max Ammo"; } } else if (puType == PowerUpType.ShellSpeed) { if (WeaponsController.GetShellSpeed() < shellSpeedCap) { float shellSpeed = WeaponsController.GetShellSpeed(); WeaponsController.SetShellSpeed(shellSpeed * 1.25f); powerUpText.GetComponentInChildren <Text>().text = "+Bullet Speed"; } } else if (puType == PowerUpType.Money) { TowerController.AddMoney(200); powerUpText.GetComponentInChildren <Text>().text = "$$$"; } else if (puType == PowerUpType.TankSpeed) { float tankSpeed = PlayerController.GetPlayerSpeed(); float bulletSpeed = WeaponsController.GetShellSpeed(); if (tankSpeed < tankSpeedCap) { PlayerController.SetPlayerSpeed(tankSpeed * 1.25f); powerUpText.GetComponentInChildren <Text>().text = "+Speed"; } if (bulletSpeed < tankSpeed) { WeaponsController.SetShellSpeed(tankSpeed * 1.1f); if (WeaponsController.GetShellSpeed() > shellSpeedCap) { WeaponsController.SetShellSpeed(shellSpeedCap); } } } else if (puType == PowerUpType.Armor) { int currentMaxArmor = ArmorController.GetMaxArmor(); string param = PlayerController.GetSizeParameter(); PlayerController.SetAnimationParameter(param, false); if (currentMaxArmor < armorCap) { if (currentMaxArmor == 1) { PlayerController.SetSizeParameter("isMoving_S1"); } else if (currentMaxArmor == 2) { PlayerController.SetSizeParameter("isMoving_S2"); } else if (currentMaxArmor == 3) { PlayerController.SetSizeParameter("isMoving_S3"); } //Increase max armor and set it to the new max ArmorController.IncreaseMaxArmor(); ArmorController.SetArmor(ArmorController.GetMaxArmor()); } else { //if already at max, just refill armor ArmorController.SetArmor(ArmorController.GetMaxArmor()); } powerUpText.GetComponentInChildren <Text>().text = "+Max Armor"; } if (puType == PowerUpType.Money) { SoundManager.PlaySfx(SFX.MoneyPickUp); } else { SoundManager.PlaySfx(SFX.PickUpPowerUp); } //CanvasToWorldSpacePositioner.TranslateCanvasToWorldPosition(powerUpText.GetComponent<RectTransform>(), gameObject); GameObject text; text = Instantiate(powerUpText, transform.position, Quaternion.identity); text.transform.SetParent(GameObject.Find("Canvas").transform, false); text.GetComponent <RectTransform>().position = Camera.main.WorldToScreenPoint(transform.position); Destroy(gameObject); } }
private bool ShouldIgnoreCollision(ArmorController withArmor) { return(withArmor.bot.Equals(firedBy) && !isRebound); }