Пример #1
0
 public ItemBonuses Clone()
 => new ItemBonuses
 {
     Power        = Power.Clone(),
     Vitality     = Vitality.Clone(),
     Accuracy     = Accuracy.Clone(),
     Evasion      = Evasion.Clone(),
     CritChance   = CritChance.Clone(),
     CritDamage   = CritDamage.Clone(),
     HealthPerHit = HealthPerHit.Clone()
 };
Пример #2
0
 public override string ToString()
 {
     return($"Level: {Level}" +
            $"{NewLine}Damage: {Damage}" +
            $"{NewLine}Health: {MaxHealth}" +
            $"{NewLine}HealthPerHit: {HealthPerHit}" +
            $"{NewLine}Power: {Power}" +
            $"{NewLine}Vitality: {Vitality}" +
            $"{NewLine}Accuracy: {Accuracy}" +
            $"{NewLine}Evasion: {Evasion}" +
            $"{NewLine}Defence: {Defence}" +
            $"{NewLine}Снижение получаемого урона: {DefenceKoef.ToPercentString(2)}" +
            $"{NewLine}Шанс крита: {CritChance.ToPercentString(1)}" +
            $"{NewLine}Сила крита: {CritDamage.ToPercentString(1)}");
 }
Пример #3
0
            public static float Get4ThShootDamage(Obj_AI_Base unit)
            {
                if (MenuManager.IsCacheEnabled && CritDamage.Exist(unit.NetworkId))
                {
                    CritDamage.RefreshRate = 1000;

                    return(CritDamage.Get(unit.NetworkId));
                }

                var bonusDamage = 0f;

                if (Player.Instance.Level < 6)
                {
                    bonusDamage = 0.15f;
                }
                else if ((Player.Instance.Level < 11) && (Player.Instance.Level >= 6))
                {
                    bonusDamage = 0.20f;
                }
                else if (Player.Instance.Level >= 11)
                {
                    bonusDamage = 0.25f;
                }

                var damage = GetRealAttackDamage() * 1.75f + (unit.MaxHealth - unit.Health) * bonusDamage;

                var finalDamage = Player.Instance.CalculateDamageOnUnit(unit, DamageType.Physical,
                                                                        Player.Instance.HasItem(ItemId.Infinity_Edge) ? damage * 1.5f : damage, false, true);

                if (MenuManager.IsCacheEnabled)
                {
                    CritDamage.Add(unit.NetworkId, finalDamage);
                }

                return(finalDamage);
            }