public DamageData(int mindex, Transform mspawn_point, Vector3 moffset, int mdamage, CombatDamagesHUD.eDamageTextType mtext_type) { spawn_point = mspawn_point; offset = moffset; damage = mdamage; text_type = mtext_type; index = mindex; }
public void OnHitCombatantListener(Hotfix_LT.Combat.CombatHitDamageEvent e) { Hotfix_LT.Combat.Combatant combatant = e.TargetCombatant.GetComponent <Hotfix_LT.Combat.Combatant>(); Vector3 offset = combatant.damageTextOffset; CombatDamagesHUD.eDamageTextType text_type = CombatDamagesHUD.eDamageTextType.Attack; if (e.ShowDamage < 0) { text_type = CombatDamagesHUD.eDamageTextType.Heal; offset = combatant.healTextOffset; } else if (e.IsCrit) { text_type = CombatDamagesHUD.eDamageTextType.Crit; } ShowDamages(combatant.Data.Index.GetHashCode(), combatant.DamageTextTarget, offset, e.Shield > 0 ? e.Damage : e.ShowDamage, text_type); }
private void ShowDamagesFunc(Transform spawn_point, Vector3 offset, int damage, CombatDamagesHUD.eDamageTextType text_type) { if (_instance == null || spawn_point == null) { return; } CombatDamagesHUD hud = GetHUDFromPool(); hud.ShowDamage(damage, spawn_point, offset, text_type, delegate() { PutHUDInPool(hud); }); }
private void ShowDamages(int index, Transform spawn_point, Vector3 offset, int damage, CombatDamagesHUD.eDamageTextType text_type) { DamageData data = new DamageData(index, spawn_point, offset, damage, text_type); bool isNew = false; if (!DamageQueueDic.ContainsKey(index)) { DamageQueueDic.Add(index, new Queue <DamageData>()); isNew = true; } DamageQueueDic[index].Enqueue(data); if (isNew) { int timer = ILRTimerManager.instance.AddTimer(150, 0, ShowDamagesTimer); timerDic.Add(timer, index); } }