public void ShowAttDamageNumber(int weaponDamage, bool isCritical = false, int elementDamage = 0, CreatureElementTypes type = CreatureElementTypes.Fire) { //Logger.LogWarning("weapon damage = {0} element damage = {1} element type = {2}", weaponDamage,elementDamage,type); InitComponent(); gameObject.SetActive(true); InitTextData(); EnumDamageDisplayType t = (weaponDamage > 0 ? EnumDamageDisplayType.Attack : EnumDamageDisplayType.None) | (elementDamage > 0 ? EnumDamageDisplayType.Element : EnumDamageDisplayType.None); SetDamageParentVisible(t); SetNormalTextData(weaponDamage, isCritical); SetElementDamageTextData(type, elementDamage); m_tween?.PlayForward(); }
private Text GetTargetText(EnumDamageDisplayType type, int childIndex) { Text[] texts = null; switch (type) { case EnumDamageDisplayType.Attack: texts = attackTexts; break; case EnumDamageDisplayType.Element: texts = elementTexts; break; case EnumDamageDisplayType.Buff: texts = buffTexts; break; } if (texts != null && childIndex < texts.Length) { return(texts[childIndex]); } else { Logger.LogWarning("try to get damage number text [type:{0} index:{1}] failed", type, childIndex); return(null); } }
private void SetDamageParentVisible(EnumDamageDisplayType type = EnumDamageDisplayType.None) { attackParent.SetActive((type & EnumDamageDisplayType.Attack) > 0); elementParent.SetActive((type & EnumDamageDisplayType.Element) > 0); buffParent.SetActive((type & EnumDamageDisplayType.Buff) > 0); }