// public void dead() // { // needToSetDead = true; // } public virtual void dead(bool useSound = true) { if (UIPopupSkillPreview.isOpen) { hp = 1000; return; } if (monsterDeadCallback != null) { monsterDeadCallback(stat.uniqueId); monsterDeadCallback = null; } if (shadow != null) { shadow.renderer.enabled = false; } _isEnabled.Set(false); isFreeze.Set(true); if (hpBar != null) { hpBar.visible = false; } removeAttacker(); removeTarget(); switch (category) { // case MonsterCategory.Category.HEROMONSTER: // if(GameManager.me.stageManager.clearChecker(ClearChecker.CHECK_IMMEDIATELY, this)) return; // break; case MonsterCategory.Category.UNIT: if (aiUnitSlot != null) { aiUnitSlot.deadCreatedMonster(); } else if (monsterUISlotIndex > -1) { UIPlay.getUnitSlot(monsterUISlotIndex).deadCreatedMonster(); } // if(isPlayerSide == false) // { // if(GameManager.me.stageManager.clearChecker(ClearChecker.CHECK_IMMEDIATELY, this)) return; // } break; } if (string.IsNullOrEmpty(monsterData.explosionEffect) == false) { if (GameManager.info.effectData.ContainsKey(monsterData.explosionEffect)) { _v = cTransformPosition; _v.z -= 5.0f; GameManager.info.effectData[monsterData.explosionEffect].getEffect(attackerUniqueId, _v); } } _v = cTransformPosition; _v.y = bodyYCenter; characterEffect.clear(); clearAnimationMethod(); if (useSound) { SoundData.playDieSound(resourceId); } setVisibleForSkillCam(true, 1.0f); setColor(_normalColor); if (monsterUISlotIndex > -1) { UIPlay.getUnitSlot(monsterUISlotIndex).spDamageEffect.cachedGameObject.SetActive(false); } state = Monster.DEAD; if (action != null) { action.dead(); } }