private bool MatchRule(ResDeadInfoCondition resCond, ulong ulDeadTime, uint[] arrDiffTypeHurtValue, uint uiTotalDamage, int iSpecailType) { if (resCond == null) { return(false); } if (resCond.ullEndTime != 0uL && (ulDeadTime < resCond.ullStartTime || ulDeadTime > resCond.ullEndTime)) { return(false); } if (resCond.bHurtType != 0) { if (resCond.bHurtType == 1 && resCond.bHurtType == 2) { return(false); } if (resCond.dwHurtValue < arrDiffTypeHurtValue[(int)(resCond.bHurtType - 1)]) { return(false); } uint num = (uiTotalDamage != 0u) ? (arrDiffTypeHurtValue[(int)(resCond.bHurtType - 1)] * 100u / uiTotalDamage) : 100u; if (num < resCond.dwHurtRate) { return(false); } } return(resCond.bSpecailType == 0 || (iSpecailType & 1 << (int)resCond.bSpecailType) != 0); }
private void InitDeadInfoPanelBottomText(ulong ulDeadTime, uint[] arrDiffTypeHurtValue, uint uiTotalDamage, int iSpecailType) { int count = GameDataMgr.deadInfoConditionDatabin.count; int i; for (i = 2; i <= count; i++) { ResDeadInfoCondition dataByKey = GameDataMgr.deadInfoConditionDatabin.GetDataByKey((long)i); if (this.MatchRule(dataByKey, ulDeadTime, arrDiffTypeHurtValue, uiTotalDamage, iSpecailType)) { break; } } if (i > count) { i = 1; } if (i <= count) { int condtionTextCount = this.GetCondtionTextCount(i); if (condtionTextCount > 0) { int iIndex = (int)(Singleton <FrameSynchr> .get_instance().LogicFrameTick % (ulong)((long)condtionTextCount)); string condtionText = this.GetCondtionText(i, iIndex); if (condtionText != null) { Transform transform = this.m_heroDeadInfoForm.transform.FindChild("PanelDeadInfo/TxtBottom"); if (transform) { Text component = transform.GetComponent <Text>(); if (component) { component.text = condtionText; } } } } } }