Example #1
0
        private async Task AddDamageMeterFragmentAsync(KeyValuePair <Guid, PlayerGameObject> healthChangeObject,
                                                       List <KeyValuePair <Guid, PlayerGameObject> > entities, long highestDamage, long highestHeal)
        {
            if (healthChangeObject.Value == null || double.IsNaN(healthChangeObject.Value.Damage) || healthChangeObject.Value.Damage <= 0)
            {
                return;
            }

            var mainHandItem = ItemController.GetItemByIndex(healthChangeObject.Value?.CharacterEquipment?.MainHand ?? 0);

            var damageMeterFragment = new DamageMeterFragment
            {
                CauserGuid       = healthChangeObject.Value.UserGuid,
                Damage           = healthChangeObject.Value.Damage.ToShortNumberString(),
                Dps              = healthChangeObject.Value.Dps,
                DamageInPercent  = (double)healthChangeObject.Value.Damage / highestDamage * 100,
                DamagePercentage = GetDamagePercentage(entities, healthChangeObject.Value.Damage),

                Heal           = healthChangeObject.Value.Heal.ToShortNumberString(),
                Hps            = healthChangeObject.Value.Hps,
                HealInPercent  = (double)healthChangeObject.Value.Heal / highestHeal * 100,
                HealPercentage = GetHealPercentage(entities, healthChangeObject.Value.Heal),

                Name           = healthChangeObject.Value.Name,
                CauserMainHand = await SetItemInfoIfSlotTypeMainHandAsync(mainHandItem, healthChangeObject.Value?.CharacterEquipment?.MainHand)
            };

            _mainWindowViewModel.DamageMeter.Add(damageMeterFragment);
        }
Example #2
0
        private async Task UpdateDamageMeterFragmentAsync(DamageMeterFragment fragment, KeyValuePair <Guid, PlayerGameObject> healthChangeObject, List <KeyValuePair <Guid, PlayerGameObject> > entities, long highestDamage, long highestHeal)
        {
            fragment.CauserMainHand = await SetItemInfoIfSlotTypeMainHandAsync(fragment.CauserMainHand, healthChangeObject.Value?.CharacterEquipment?.MainHand);

            // Damage
            if (healthChangeObject.Value?.Damage > 0)
            {
                fragment.DamageInPercent = (double)healthChangeObject.Value.Damage / highestDamage * 100;
            }

            fragment.Damage = healthChangeObject.Value?.Damage.ToShortNumberString();
            if (healthChangeObject.Value?.Dps != null)
            {
                fragment.Dps = healthChangeObject.Value.Dps;
            }

            if (healthChangeObject.Value != null)
            {
                fragment.DamagePercentage = GetDamagePercentage(entities, healthChangeObject.Value.Damage);
            }

            // Heal
            if (healthChangeObject.Value?.Heal > 0)
            {
                fragment.HealInPercent = (double)healthChangeObject.Value.Heal / highestHeal * 100;
            }

            fragment.Heal = healthChangeObject.Value?.Heal.ToShortNumberString();
            if (healthChangeObject.Value?.Hps != null)
            {
                fragment.Hps = healthChangeObject.Value.Hps;
            }

            if (healthChangeObject.Value != null)
            {
                fragment.HealPercentage = GetDamagePercentage(entities, healthChangeObject.Value.Heal);
            }
        }