public override bool TakeDamage(float damage, Vector3 hitPoint) { if (IsDead) { return(false); } CurrentHp -= damage; if (m_CurrentHp <= 0) { m_BobyCollider.enabled = false; m_DamageCollider.enabled = false; StartCoroutine(Displacement(hitPoint, 0.2f)); m_GODeadBlood = ObjectPool.m_Instance.LoadGameObjectFromPool(3004); m_DeadBloodSpurt = m_GODeadBlood.GetComponent <BloodSpurt>(); m_DeadBloodSpurt.Init(m_AIData, this.transform.position + Vector3.up); m_SoundManager.PlayInWorld(3904, this.transform.position, 0.5f); Death(); } else { m_GOHurtBlood = ObjectPool.m_Instance.LoadGameObjectFromPool(3003); m_HurtBloodSpurt = m_GOHurtBlood.GetComponent <BloodSpurt>(); m_HurtBloodSpurt.Init(m_AIData, hitPoint); PerformGetHurt(hitPoint); } return(true); }
private void OnEnable() { m_SoundManager = this.GetComponent <SoundManager>(); SoundDataSetting Soundsetting = ResourceManager.m_Instance.LoadData(typeof(SoundDataSetting), "Sounds/Mobs/Fish", "SoundDataSetting") as SoundDataSetting; m_SoundManager.SetAudioClips(Soundsetting.SoundDatas); MobManager.m_Instance.OnDestroyAll += Death; if (m_FSM == null) { return; } m_AIData.m_Go = this.gameObject; m_bDead = false; m_CurrentHp = m_MaxHp; m_BodyCollider.enabled = true; m_DamageCollider.enabled = true; m_GODeadBlood = null; m_GOHurtBlood = null; m_DeadBloodSpurt = null; m_HurtBloodSpurt = null; m_FSM.PerformTransition(eFSMTransition.Go_Respawn); if (OnSpawn != null) { OnSpawn(); } }
private IEnumerator TakeHit(Vector2 direction) { health -= 1; if (health == 0) { dead = true; } rb.velocity = Vector2.zero; yield return(new WaitForNote(Note.Eighth)); var bloodObject = Instantiate(bloodPrefab, transform); bloodSpurtVfx = bloodObject.GetComponent <BloodSpurt>(); bloodSpurtVfx.Run(direction); if (dead) { StartCoroutine(Die()); } else { StartCoroutine(Stumble()); } }
public void ReturnToPool(BloodSpurt bSpurt) { _bloodPool.Add(bSpurt); }