private void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.CompareTag("Enemy") && !bUsed) { AudioSource mSFXBox = this.gameObject.AddComponent <AudioSource>(); mSFXBox.outputAudioMixerGroup = m_Channel; mSFXBox.clip = crashSFX; mSFXBox.time = 1; mSFXBox.Play(); WerewolfAI ai = collision.gameObject.GetComponent <WerewolfAI>(); if (ai != null) { //this.transform.parent.transform.parent.GetComponent<Room>().NPCs.Remove(collision.gameObject); collision.gameObject.transform.parent.GetComponent <Room>().NPCs.Remove(collision.gameObject); ai.TakeDamage(ai.HP); } bUsed = true; GetComponent <SpriteRenderer>().enabled = false; GetComponent <Collider2D>().enabled = false; GetComponent <Rigidbody2D>().simulated = false; } }
private void OnTriggerEnter2D(Collider2D collision) { ServantAI servant = AIParent.GetComponent <ServantAI>(); WerewolfAI werewolf = AIParent.GetComponent <WerewolfAI>(); if (collision.CompareTag("Servant") && werewolf != null) { werewolf.newState = WerewolfAI.EWerewolfStates.Chasing; werewolf.singleTarget = collision.gameObject.transform; } else if (collision.CompareTag("ManorLord") && werewolf != null) { werewolf.newState = WerewolfAI.EWerewolfStates.Chasing; werewolf.singleTarget = collision.gameObject.transform; } else if (collision.CompareTag("Enemy") && servant != null) { if (servant.hasWolfsbane) { servant.newState = ServantAI.EServantStates.PresentingWolfsbane; servant.singleTarget = collision.gameObject.transform; } else if (servant.CurrentState != ServantAI.EServantStates.CreatingWolfsbane || servant.CurrentState != ServantAI.EServantStates.FoundFoodbowl) { servant.newState = ServantAI.EServantStates.Running; } } else if (collision.CompareTag("Food Bowl") && servant != null) { servant.newState = ServantAI.EServantStates.FoundFoodbowl; servant.singleTarget = collision.gameObject.transform; } }
private void OnTriggerExit2D(Collider2D collision) { WerewolfAI werewolf = AIParent.GetComponent <WerewolfAI>(); if (collision.CompareTag("Servant") && werewolf != null) { werewolf.singleTarget = null; } }
private void OnTriggerEnter2D(Collider2D collision) { WerewolfAI werewolf = collision.gameObject.GetComponent <WerewolfAI>(); if (collision.CompareTag("Enemy") && werewolf != null) { werewolf.newState = WerewolfAI.EWerewolfStates.Cursed; werewolf.Roar(); } }
private void OnTriggerStay2D(Collider2D collision) { WerewolfAI werewolf = collision.gameObject.GetComponent <WerewolfAI>(); if (collision.CompareTag("Enemy")) { if (werewolf.CurrentState != WerewolfAI.EWerewolfStates.Chasing) { werewolf.TakeDamage(werewolf.HP); } } }
/// <summary> /// Get the spawnquota, the current spawn id's and enemy arrangement and spawn the appropriate number of enemies /// </summary> public void SpawnEnemies() { MethodBase SpawnEnemiesMethod = MethodBase.GetCurrentMethod(); if (TotalSpawnedEnemies < TotalEnemiesToBeSpawned) { InitializeCurrentWaveQuota(); for (uint CurrentEnemyInQuota = 0; CurrentEnemyInQuota < CurrentSpawnQuota; CurrentEnemyInQuota++) { // This is used for a random spawn range within a 3d box where the ground is // Vector3 RandomOffset = new Vector3(Random.Range(SpawnRandomRange.x / -2f, SpawnRandomRange.x / 2f), 0f, Random.Range(SpawnRandomRange.z / -2f, SpawnRandomRange.z / 2f)); Vector3 RandomOffset = new Vector3(Random.Range(SpawnRandomRange.x / -2f, SpawnRandomRange.x / 2f), 0f, 0f); // Instantiate enemy at the appropriate spawner, select its type int CurrentSpawnIndex = Waves[CurrentWaveID - 1].EnemyArrangement[CurrentEnemyInQuota].SpawnId; Transform SpawnInThisBox = SpawnPoints[CurrentSpawnIndex]; GameObject SpawnedEnemy = Instantiate(EnemyPrefab, SpawnInThisBox.position + RandomOffset, Quaternion.identity); WerewolfAI EnemyBehaviorControls = SpawnedEnemy.GetComponent <WerewolfAI>(); SpawnedEnemy.transform.parent = WaveOrganizer.transform; EnemyBehaviorControls.masterCommander = this.gameObject.GetComponent <WaveController>(); EnemyBehaviorControls.MonsterID = TotalSpawnedEnemies + 1; EnemyBehaviorControls.WaveID = CurrentWaveID; EnemyBehaviorControls.name = EnemyBehaviorControls.AIType.ToString() + " " + EnemyBehaviorControls.MonsterID + " Wave " + EnemyBehaviorControls.WaveID; EnemyBehaviorControls.movementEnabled = true; EnemyBehaviorControls.attackEnabled = true; CurrentSpawnedEnemies++; TotalSpawnedEnemies++; } if (CurrentSpawnedEnemies == SpawnQuotaGoal) { CurrentWaveID++; WaveOrganizer = new GameObject(); WaveOrganizer.name = "Wave ( " + CurrentWaveID + " )"; WaveOrganizer.transform.parent = WaveOrganizerContainer.transform; EnemiesDeadInWave = 0; if (SpawnSystemToggle != EWaveSystemVersion.AfterLastEnemyInWaveWithDelay) { CurrentSpawnedEnemies = 0; } } } }
private void OnTriggerEnter2D(Collider2D collision) { if (collision.CompareTag("Enemy")) { //collision.gameObject.transform.parent = this.transform; WerewolfAI ai = collision.gameObject.GetComponent <WerewolfAI>(); if (ai != null) { //this.transform.parent.GetComponent<Room>().NPCs.Remove(collision.gameObject); collision.gameObject.transform.parent.GetComponent <Room>().NPCs.Remove(collision.gameObject); ai.TakeDamage(ai.HP); StartCoroutine(TrapCooldown()); } } }
private void OnTriggerEnter2D(Collider2D collision) { // check if the werewolf is on fire and the trap has not been used. if (collision.CompareTag("Enemy") && !bWasUsed) { // print(collision.name + ""); Chandelier.simulated = true; Chandelier.WakeUp(); WerewolfAI ai = collision.gameObject.GetComponent <WerewolfAI>(); if (ai != null) { //collision.gameObject.GetComponent<WerewolfAI>().newState = WerewolfAI.EWerewolfStates.; collision.gameObject.GetComponent <Rigidbody2D>().velocity = new Vector2(0f, 0f); } bWasUsed = true; } }
private void OnTriggerEnter2D(Collider2D collision) { ServantAI servant = collision.gameObject.GetComponent <ServantAI>(); WerewolfAI werewolf = collision.gameObject.GetComponent <WerewolfAI>(); if (collision.CompareTag("Enemy")) { werewolf.singleTarget = nextLevelTarget; werewolf.levelTarget = nextLevelTarget; } else if (collision.CompareTag("Servant")) { servant.singleTarget = nextLevelTarget; servant.levelTarget = nextLevelTarget; servant.AnalyzePatrolArray(nextWaypointTargets); } }
private void OnTriggerEnter2D(Collider2D collision) { //Open if not already open. if (collision.CompareTag("Enemy")) { connectedPlatform.gravityScale = 1; GetComponent <Collider2D>().enabled = false; connectedPlatform.GetComponent <HingeJoint2D>().useLimits = false; WerewolfAI ai = collision.gameObject.GetComponent <WerewolfAI>(); if (ai != null) { //collision.gameObject.GetComponent<WerewolfAI>().newState = WerewolfAI.EWerewolfStates.Trapped; collision.gameObject.GetComponent <Rigidbody2D>().velocity = new Vector2(0f, 0f); } StartCoroutine("HangTimer"); } }
private void OnTriggerEnter2D(Collider2D collision) { ServantAI servant = collision.gameObject.GetComponent <ServantAI>(); WerewolfAI werewolf = collision.gameObject.GetComponent <WerewolfAI>(); if (collision.CompareTag("Servant")) { if (servant.CurrentState == ServantAI.EServantStates.Running) { servant.TakeDamage(servant.HP); } } else if (collision.CompareTag("Enemy")) { if (werewolf.CurrentState != WerewolfAI.EWerewolfStates.Chasing) { werewolf.TakeDamage(werewolf.HP); } } }
private void OnTriggerEnter2D(Collider2D collision) { ServantAI servant = collision.gameObject.GetComponent <ServantAI>(); WerewolfAI werewolf = collision.gameObject.GetComponent <WerewolfAI>(); if (collision.CompareTag("Enemy")) { werewolf.transform.position = teleportPoint.position; werewolf.singleTarget = nextLevelTarget; werewolf.levelTarget = nextLevelTarget; collision.gameObject.GetComponent <Rigidbody2D>().velocity = new Vector2(collision.gameObject.GetComponent <Rigidbody2D>().velocity.x * -1, collision.gameObject.GetComponent <Rigidbody2D>().velocity.y); collision.gameObject.transform.parent.GetComponent <Room>().NPCs.Remove(collision.gameObject);//sometimes object no exist error } else if (collision.CompareTag("Servant")) { servant.transform.position = teleportPoint.position; servant.singleTarget = nextLevelTarget; servant.levelTarget = nextLevelTarget; servant.AnalyzePatrolArray(nextWaypointTargets); collision.gameObject.GetComponent <Rigidbody2D>().velocity = new Vector2(collision.gameObject.GetComponent <Rigidbody2D>().velocity.x * -1, collision.gameObject.GetComponent <Rigidbody2D>().velocity.y); collision.gameObject.transform.parent.GetComponent <Room>().NPCs.Remove(collision.gameObject);//sometimes object no exist error } }