protected void ActivateDeath(AIActor randomActiveEnemy) { if (randomActiveEnemy && randomActiveEnemy.behaviorSpeculator) { randomActiveEnemy.PlayEffectOnActor(ResourceCache.Acquire("Global VFX/VFX_Curse") as GameObject, Vector3.zero, false, false, false); SpawnEnemyOnDeath component = randomActiveEnemy.GetComponent <SpawnEnemyOnDeath>(); if (component) { UnityEngine.Object.Destroy(component); } randomActiveEnemy.healthHaver.minimumHealth = 0f; randomActiveEnemy.healthHaver.ApplyDamage(10000f, Vector2.zero, "Cursed", CoreDamageTypes.None, DamageCategory.Unstoppable, true, null, false); } }
private void KillAllEnemies() { RoomHandler currentRoom = GameManager.Instance.BestActivePlayer.CurrentRoom; currentRoom.ClearReinforcementLayers(); List <AIActor> activeEnemies = currentRoom.GetActiveEnemies(RoomHandler.ActiveEnemyType.All); if (activeEnemies != null) { List <AIActor> list = new List <AIActor>(activeEnemies); for (int i = 0; i < list.Count; i++) { AIActor aiactor = list[i]; { if (!aiactor.healthHaver.IsBoss) { GameManager.Instance.Dungeon.StartCoroutine(this.HandleEnemyDeath(aiactor)); SpawnEnemyOnDeath component = aiactor.GetComponent <SpawnEnemyOnDeath>(); if (component) { UnityEngine.Object.Destroy(component); } aiactor.healthHaver.minimumHealth = 0f; aiactor.healthHaver.ApplyDamage(10000f, Vector2.zero, "Infinity Guontlet", CoreDamageTypes.None, DamageCategory.Unstoppable, true, null, false); } if (aiactor.healthHaver.IsBoss) { float maxhealth = aiactor.healthHaver.GetCurrentHealth(); aiactor.healthHaver.ApplyDamage(maxhealth / 2, Vector2.zero, "Infinity Guontlet", CoreDamageTypes.None, DamageCategory.Unstoppable, true, null, false); } } } } }