예제 #1
0
            internal static Order ToShortModel(DB.Orders dbItem, UnitOfWork unitOfWork)
            {
                var Order =
                    new Order()
                {
                    Id           = dbItem.Id,
                    Closed       = dbItem.Closed,
                    Client       = Clients.ReadShort(dbItem.Client.Id, unitOfWork),
                    Car          = Cars.ReadShort(dbItem.Car.Id, unitOfWork),
                    DateFrom     = dbItem.DateFrom,
                    DateTo       = dbItem.DateTo,
                    MileageEnd   = dbItem.MileageEnd,
                    Other        = dbItem.Other,
                    Overrun      = dbItem.Overrun,
                    Territory    = dbItem.Territory,
                    Wash         = dbItem.Wash,
                    Discount     = dbItem.Discount,
                    DiscountType = dbItem.DiscountType,
                    SiteId       = dbItem.SiteId,
                    User         = Users.Read(dbItem.User.Id, unitOfWork),
                    Deleted      = dbItem.Deleted
                };

                foreach (var od in dbItem.OrderDamagesCollection)
                {
                    Order.Damages.Add(Damages.Read(od.Damage.Id, unitOfWork));
                }

                return(Order);
            }
예제 #2
0
        public static void Init()
        {
            var Minions = EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy, Player.Instance.Position, Annie.Q.Range);

            foreach (var Minion in Minions)
            {
                if (Annie.Q.IsReady() && AnnieMenu.CheckBox(AnnieMenu.Lasthit, "Q"))
                {
                    if (Minion.IsValidTarget(Annie.Q.Range))
                    {
                        if (Minion.Health - Damages.QDamage(Minion) <= 0)
                        {
                            if (AnnieMenu.CheckBox(AnnieMenu.Laneclear, "Exception"))
                            {
                                if (!Annie.HasStun())
                                {
                                    Annie.Q.Cast(Minion);
                                }
                            }
                            else
                            {
                                Annie.Q.Cast(Minion);
                            }
                        }
                    }
                }
            }
        }
예제 #3
0
        /// <summary>
        /// Update damages
        /// </summary>
        /// <param name="damages">Damages to update</param>
        public void UpdateDamages(Damages damages)
        {
            AutoRentEntities context     = new AutoRentEntities();
            DbTransaction    transaction = null;

            try
            {
                context.Connection.Open();
                transaction = context.Connection.BeginTransaction();

                context.Damages.Attach(context.Damages.Single(c => c.Id == damages.Id));
                context.Damages.ApplyCurrentValues(damages);

                context.SaveChanges();
                transaction.Commit();
            }
            catch
            {
                transaction.Rollback();
            }
            finally
            {
                context.Connection.Close();
            }
        }
예제 #4
0
 public override void Execute()
 {
     // Items
     if (Settings.UseItems)
     {
         var enemy = TargetSelector.GetTarget(BOTRK.Range, DamageType.Physical);
         if (enemy != null)
         {
             if (CanUseItem(ItemId.Bilgewater_Cutlass))
             {
                 Cutlass.Cast(enemy);
                 Debug.WriteChat("Using Bilgewater Cutlass on {0}", enemy.ChampionName);
             }
             else if (CanUseItem(ItemId.Blade_of_the_Ruined_King) &&
                      enemy.HealthPercent <= Settings.MaxBOTRKHPEnemy && PlayerHealth <= Settings.MaxBOTRKHPPlayer)
             {
                 BOTRK.Cast(enemy);
                 Debug.WriteChat("Using BOTRK on {0}", enemy.ChampionName);
             }
         }
     }
     // Skills
     if (Settings.UseR && R.IsReady() && PlayerMana >= SettingsMana.MinRMana)
     {
         var target = TargetSelector.GetTarget(R.Range, DamageType.Magical);
         if (target != null)
         {
             if (!target.HasBuffOfType(BuffType.SpellImmunity) && !target.HasBuffOfType(BuffType.SpellShield))
             {
                 var targetHealth = target.TotalShieldHealth();
                 if (target.HasBuff("TristanaEChargeSound"))
                 {
                     targetHealth -= Damages.EDamage(target);
                 }
                 if (targetHealth < Damages.RDamage(target))
                 {
                     R.Cast(target);
                     Debug.WriteChat("Casting R in Combo to finish {0}, calculated HP to cast R: {1}, current HP: {2}.", target.ChampionName, targetHealth.ToString(), target.Health.ToString());
                     return;
                 }
             }
         }
     }
     if (Settings.UseW && W.IsReady() && PlayerMana >= SettingsMana.MinWMana)
     {
         var target = TargetSelector.GetTarget(W.Range, DamageType.Magical);
         if (target != null)
         {
             if (!target.HasBuffOfType(BuffType.SpellImmunity) && !target.HasBuffOfType(BuffType.SpellShield))
             {
                 var pred = W.GetPrediction(target);
                 if (pred.HitChance >= SettingsPrediction.MinWHCCombo)
                 {
                     W.Cast(pred.CastPosition);
                     Debug.WriteChat("Casting W in Combo on {0}", target.ChampionName);
                 }
             }
         }
     }
 }
 private static void OnSpellbookCastSpell(Spellbook sender, SpellbookCastSpellEventArgs args)
 {
     if (!Enabled)
     {
         return;
     }
     try
     {
         if (sender.Owner.IsMe)
         {
             var target = args.Target as Obj_AI_Hero;
             if (target != null)
             {
                 switch (args.Slot)
                 {
                 case SpellSlot.Q:
                 case SpellSlot.W:
                 case SpellSlot.E:
                 case SpellSlot.R:
                     Damages.Clean();
                     if (Damages.IsDying(target))
                     {
                         args.Process = false;
                     }
                     break;
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Global.Logger.AddItem(new LogItem(ex));
     }
 }
예제 #6
0
        /// <summary>
        /// 航空戦での与ダメージを推測します。
        /// </summary>
        /// <param name="damages">与ダメージリスト。</param>
        private void CalculateAttackDamage(int[] damages)
        {
            // 敵はめんどくさすぎるので省略
            // 仮想火力を求め、それに従って合計ダメージを分配

            var firepower     = new int[12];
            var launchedIndex = LaunchedShipIndexFriend;

            foreach (int i in launchedIndex)
            {
                var ship = Battle.Initial.GetFriendShip(i);

                if (ship == null)
                {
                    continue;
                }

                var slots     = ship.SlotInstanceMaster;
                var aircrafts = ship.Aircraft;
                for (int s = 0; s < slots.Count; s++)
                {
                    if (slots[s] == null)
                    {
                        continue;
                    }

                    switch (slots[s].CategoryType)
                    {
                    // 通常の爆撃機系
                    case EquipmentTypes.CarrierBasedBomber:
                    case EquipmentTypes.SeaplaneBomber:
                        firepower[i] += (int)(1.0 * (slots[s].Bomber * Math.Sqrt(aircrafts[s]) + 25));
                        break;

                    // 噴式爆撃機
                    case EquipmentTypes.JetBomber:
                        firepower[i] += (int)(1.0 / Math.Sqrt(2) * (slots[s].Bomber * Math.Sqrt(aircrafts[s]) + 25));
                        break;

                    // 通常の攻撃機系 (80%と150%はランダムのため係数は平均値)
                    case EquipmentTypes.CarrierBasedTorpedo:
                        firepower[i] += (int)(1.15 * (slots[s].Torpedo * Math.Sqrt(aircrafts[s]) + 25));
                        break;

                    // 噴式攻撃機(いる?)
                    case EquipmentTypes.JetTorpedo:
                        firepower[i] += (int)(1.15 / Math.Sqrt(2) * (slots[s].Torpedo * Math.Sqrt(aircrafts[s]) + 25));
                        break;
                    }
                }
            }

            int totalFirepower = firepower.Sum();
            int totalDamage    = Damages.Select(dmg => (int)dmg).Skip(12).Take(12).Sum();

            for (int i = 0; i < firepower.Length; i++)
            {
                damages[i] += (int)Math.Round((double)totalDamage * firepower[i] / Math.Max(totalFirepower, 1));
            }
        }
예제 #7
0
        public static void Init()
        {
            var Minions = EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy, Player.Instance.Position, Elise.Q.Range);

            foreach (var Minion in Minions)
            {
                if (Elise.CheckForm())
                {
                    if (Elise.Q.IsReady() && EliseMenu.CheckBox(EliseMenu.Lasthit, "Q"))
                    {
                        if (Minion.Health - Damages.QDamage(Minion) <= 0)
                        {
                            Elise.Q.Cast(Minion);
                        }
                    }
                }
                else
                {
                    if (Elise.Q2.IsReady() && EliseMenu.CheckBox(EliseMenu.Lasthit, "Q2"))
                    {
                        if (Minion.Health - Damages.Q2Damage(Minion) <= 0)
                        {
                            Elise.Q2.Cast(Minion);
                        }
                    }
                }
            }
        }
예제 #8
0
        /// <summary>
        /// 航空戦での与ダメージを推測します。
        /// </summary>
        /// <param name="damages">与ダメージリスト。</param>
        private void CalculateAttackDamage(int[] damages)
        {
            // 敵はめんどくさすぎるので省略
            // 仮想火力を求め、それに従って合計ダメージを分配

            var firepower     = new int[12];
            var launchedIndex = LaunchedShipIndexFriend;
            var members       = _battleData.Initial.FriendFleet.MembersWithoutEscaped;

            foreach (int i in launchedIndex)
            {
                ShipData ship;
                if (i < 6)
                {
                    ship = _battleData.Initial.FriendFleet.MembersWithoutEscaped[i];
                }
                else
                {
                    ship = _battleData.Initial.FriendFleetEscort.MembersWithoutEscaped[i - 6];
                }

                if (ship == null)
                {
                    continue;
                }

                var slots     = ship.SlotInstanceMaster;
                var aircrafts = ship.Aircraft;
                for (int s = 0; s < slots.Count; s++)
                {
                    if (slots[s] == null)
                    {
                        continue;
                    }

                    switch (slots[s].CategoryType)
                    {
                    case 7:                                     // 艦上爆撃機
                    case 11:                                    // 水上爆撃機
                    case 57:                                    // 噴式戦闘爆撃機
                        firepower[i] += (int)(1.0 * (slots[s].Bomber * Math.Sqrt(aircrafts[s]) + 25));
                        break;

                    case 8:                                     // 艦上攻撃機 (80%と150%はランダムのため係数は平均値)
                    case 58:                                    // 噴式攻撃機
                        firepower[i] += (int)(1.15 * (slots[s].Torpedo * Math.Sqrt(aircrafts[s]) + 25));
                        break;
                    }
                }
            }

            int totalFirepower = firepower.Sum();
            int totalDamage    = Damages.Skip(6).Take(6).Sum() + damages.Skip(18).Take(6).Sum();

            for (int i = 0; i < firepower.Length; i++)
            {
                damages[(i < 6 ? i : (i + 6))] += (int)Math.Round((double)totalDamage * firepower[i] / Math.Max(totalFirepower, 1));
            }
        }
예제 #9
0
        private static float HandleDamageIndicator(Obj_AI_Base unit)
        {
            if (!Settings.Drawings.DrawInfo)
            {
                return(0);
            }

            var enemy = (AIHeroClient)unit;

            if (enemy == null)
            {
                return(0);
            }

            if (MenuManager.IsCacheEnabled && Damages.Exist(unit.NetworkId))
            {
                return(Damages.Get(unit.NetworkId));
            }

            var damage = 0f;

            if (!IsCastingR)
            {
                if (R.IsReady() && unit.IsValidTargetCached(R.Range))
                {
                    damage += GetCurrentShootsRCount == 1
                        ? Damage.GetRDamage(unit, true)
                        : Damage.GetRDamage(unit) * (GetCurrentShootsRCount - 1) + Damage.GetRDamage(unit, true);
                }
                if (Q.IsReady() && unit.IsValidTarget(Q.Range))
                {
                    damage += Damage.GetQDamage(unit);
                }
                if (W.IsReady() && unit.IsValidTarget(W.Range))
                {
                    damage += Damage.GetWDamage(unit);
                }
            }
            else
            {
                if (IsInsideRRange(unit))
                {
                    damage += GetCurrentShootsRCount == 1 ? Damage.GetRDamage(unit, true) : Damage.GetRDamage(unit);
                }
            }

            if (unit.IsValidTargetCached(Player.Instance.GetAutoAttackRange()))
            {
                damage += HasAttackBuff ? Damage.Get4ThShootDamage(unit) : Player.Instance.GetAutoAttackDamage(unit);
            }

            if (MenuManager.IsCacheEnabled)
            {
                Damages.Add(unit.NetworkId, damage);
            }

            return(damage);
        }
예제 #10
0
        public override void Execute()
        {
            // Kill Steal
            foreach (var enemy in EntityManager.Heroes.Enemies.Where(e => e.IsValidTarget(SpellManager.HasIgnite() ? SpellManager.Ignite.Range : SpellManager.R.Range)))
            {
                if (Settings.KsR && SpellManager.R.IsReady() && SpellManager.R.IsInRange(enemy) && Damages.RDamage(enemy) > enemy.TotalShieldHealth())
                {
                    if (enemy.HasBuffOfType(BuffType.SpellImmunity))
                    {
                        continue;
                    }
                    SpellManager.R.Cast(enemy);
                    break;
                }

                if (Settings.KsIgnite && SpellManager.HasIgnite() && SpellManager.Ignite.IsReady() &&
                    Damages.IgniteDmg(enemy) > enemy.Health && SpellManager.Ignite.IsInRange(enemy))
                {
                    SpellManager.Ignite.Cast(enemy);
                    break;
                }
            }

            // Potion manager
            if (Settings.Potion && !Player.Instance.IsInShopRange() && Player.Instance.HealthPercent <= Settings.potionMinHP && !(Player.Instance.HasBuff("RegenerationPotion") || Player.Instance.HasBuff("ItemCrystalFlaskJungle") || Player.Instance.HasBuff("ItemMiniRegenPotion") || Player.Instance.HasBuff("ItemCrystalFlask") || Player.Instance.HasBuff("ItemDarkCrystalFlask")))
            {
                if (Item.HasItem(HealthPotion.Id) && Item.CanUseItem(HealthPotion.Id))
                {
                    Debug.WriteChat("Using HealthPotion because below {0}% HP - have {1}% HP", String.Format("{0}", Settings.potionMinHP), String.Format("{0:##.##}", Player.Instance.HealthPercent));
                    HealthPotion.Cast();
                    return;
                }
                if (Item.HasItem(HuntersPotion.Id) && Item.CanUseItem(HuntersPotion.Id))
                {
                    Debug.WriteChat("Using HuntersPotion because below {0}% HP - have {1}% HP", String.Format("{0}", Settings.potionMinHP), String.Format("{0:##.##}", Player.Instance.HealthPercent));
                    HuntersPotion.Cast();
                    return;
                }
                if (Item.HasItem(TotalBiscuit.Id) && Item.CanUseItem(TotalBiscuit.Id))
                {
                    Debug.WriteChat("Using TotalBiscuitOfRejuvenation because below {0}% HP - have {1}% HP", String.Format("{0}", Settings.potionMinHP), String.Format("{0:##.##}", Player.Instance.HealthPercent));
                    TotalBiscuit.Cast();
                    return;
                }
                if (Item.HasItem(RefillablePotion.Id) && Item.CanUseItem(RefillablePotion.Id))
                {
                    Debug.WriteChat("Using RefillablePotion because below {0}% HP - have {1}% HP", String.Format("{0}", Settings.potionMinHP), String.Format("{0:##.##}", Player.Instance.HealthPercent));
                    RefillablePotion.Cast();
                    return;
                }
                if (Item.HasItem(CorruptingPotion.Id) && Item.CanUseItem(CorruptingPotion.Id))
                {
                    Debug.WriteChat("Using CorruptingPotion because below {0}% HP - have {1}% HP", String.Format("{0}", Settings.potionMinHP), String.Format("{0:##.##}", Player.Instance.HealthPercent));
                    CorruptingPotion.Cast();
                    return;
                }
            }
        }
예제 #11
0
        public void Clearup()
        {
            //RunTimedFunction.RemoveTimer(BetterTimerTypes.MobKillTimer, MapID, SpawnID);

            OriginalPosition = null;
            Owner            = null;
            Controller       = null;
            Damages.Clear();
        }
예제 #12
0
파일: Combo.cs 프로젝트: lolscripts/Aka-s
        public override void Execute()
        {
            if (Settings.UseR)
            {
                var etarget = TargetSelector.GetTarget(R.Range, DamageType.Physical);
                if (Damages.RDamage(etarget) + Damages.QDamage(etarget) + Damages.EDamage(etarget) + Damages.WDamage(etarget) > etarget.Health)
                {
                    R.Cast();
                }
            }



            if (Settings.UseE)
            {
                var etarget     = TargetSelector.GetTarget(E.Range, DamageType.Magical);
                var eprediction = E.GetPrediction(etarget);
                if (eprediction.HitChance >= HitChance.High)
                {
                    if (E.IsReady() && etarget != null && !ObjectManager.Player.HasBuff("SionR"))
                    {
                        E.Cast(eprediction.CastPosition);
                    }
                }
            }
            if (Settings.UseW)
            {
                var target = TargetSelector.GetTarget(W.Range, DamageType.Physical);
                if (W.IsReady() && target != null && !ObjectManager.Player.HasBuff("SionR"))
                {
                    W.Cast();
                }
            }

            if (Settings.UseQ)
            {
                var target      = TargetSelector.GetTarget(Q.Range, DamageType.Physical);
                var eprediction = Q.GetPrediction(target);
                if (eprediction.HitChance >= HitChance.High && !ObjectManager.Player.HasBuff("SionR"))
                {
                    if (Q.IsReady() && target != null && Player.Instance.IsFacing(target))
                    {
                        Q.Cast(eprediction.CastPosition);
                    }
                }
            }

            if (activatedP)
            {
                var target = TargetSelector.GetTarget(2000, DamageType.Physical);
                if (Q.IsReady() && Player.Instance.Position.Distance(target) > target.GetAutoAttackRange())
                {
                    Q.Cast(target);
                }
            }
        }
예제 #13
0
        public override void SerializeEffect <T>(T effect, DM_Effect holder)
        {
            var puncDamage = effect as PunctualDamage;

            Knockback             = puncDamage.Knockback;
            HitInventory          = puncDamage.HitInventory;
            Damage                = Damages.ParseDamageArray(puncDamage.Damages);
            Damages_AI            = Damages.ParseDamageArray(puncDamage.DamagesAI);
            IgnoreHalfResistances = puncDamage.IgnoreHalfResistances;
        }
예제 #14
0
        public override void Execute()
        {
            if (Player.Instance.IsDead)
            {
                return;
            }

            var enemies =
                EntityManager.Heroes.Enemies.Where(
                    e => e.IsEnemy && e.IsVisible && !e.IsDead && !e.IsZombie && !e.IsInvulnerable && e.Health > 0)
                .ToList();

            foreach (var enemy in enemies)
            {
                if (Settings.KSQ && SpellManager.Q.IsReady() && Damages.QDamage(enemy) > enemy.Health &&
                    SpellManager.Q.IsInRange(enemy))
                {
                    if (enemy.HasBuffOfType(BuffType.SpellImmunity) || enemy.HasBuffOfType(BuffType.SpellShield))
                    {
                        continue;
                    }
                    var pred = Q.GetPrediction(enemy);
                    if (pred.HitChance >= HitChance.High)
                    {
                        Q.Cast(pred.CastPosition);
                        break;
                    }
                }

                if (Settings.KSE && SpellManager.E.IsReady() && Damages.EDamage(enemy) > enemy.Health &&
                    SpellManager.E.IsInRange(enemy))
                {
                    if (enemy.HasBuffOfType(BuffType.SpellImmunity) || enemy.HasBuffOfType(BuffType.SpellShield))
                    {
                        continue;
                    }
                    var pred = E.GetPrediction(enemy);
                    if (pred.HitChance >= HitChance.High)
                    {
                        E.Cast(pred.CastPosition);
                        break;
                    }
                }
                if (Settings.KSR && SpellManager.R.IsReady() && Damages.RDamage(enemy) > enemy.Health &&
                    SpellManager.R.IsInRange(enemy))
                {
                    if (enemy.HasBuffOfType(BuffType.SpellImmunity) || enemy.HasBuffOfType(BuffType.SpellShield))
                    {
                        continue;
                    }
                    R.Cast(enemy);
                    break;
                }
            }
        }
예제 #15
0
        public override void Execute()
        {
            // Skills
            if (Settings.UseR && R.IsReady() && PlayerMana >= SettingsMana.MinRManaC)
            {
                var target = TargetSelector.GetTarget(R.Range, DamageType.Magical);
                if (target != null)
                {
                    if (!target.HasBuffOfType(BuffType.SpellImmunity) && !target.HasBuffOfType(BuffType.SpellShield))
                    {
                        var targetHealth = target.TotalShieldHealth();
                        if (target.HasBuff("TristanaEChargeSound"))
                        {
                            targetHealth -= Damages.EDamage(target);
                        }
                        if (targetHealth < Damages.RDamage(target))
                        {
                            R.Cast(target);
                            return;
                        }
                    }
                }
            }
            if (Settings.UseW && W.IsReady() && PlayerMana >= SettingsMana.MinWManaC)
            {
                var target = TargetSelector.GetTarget(W.Range, DamageType.Magical);

                if (target != null)
                {
                    if (!Settings.WTurret && Extensions.CountEnemiesInRange(target, 200) <= 2)
                    {
                        if (!target.HasBuffOfType(BuffType.SpellImmunity) && !target.HasBuffOfType(BuffType.SpellShield) &&
                            !target.IsUnderTurret())
                        {
                            var pred = W.GetPrediction(target);
                            if (pred.HitChance >= SettingsPrediction.MinWHCCombo)
                            {
                                W.Cast(pred.CastPosition);
                            }
                        }
                    }
                    else
                    {
                        if (!target.HasBuffOfType(BuffType.SpellImmunity) && !target.HasBuffOfType(BuffType.SpellShield))
                        {
                            var pred = W.GetPrediction(target);
                            if (pred.HitChance >= SettingsPrediction.MinWHCCombo)
                            {
                                W.Cast(pred.CastPosition);
                            }
                        }
                    }
                }
            }
        }
예제 #16
0
 public void InsertDamages(Damages damages)
 {
     if ((damages.EntityState != EntityState.Detached))
     {
         this.ObjectContext.ObjectStateManager.ChangeObjectState(damages, EntityState.Added);
     }
     else
     {
         this.ObjectContext.Damages.AddObject(damages);
     }
 }
예제 #17
0
 public void AddMove(Command move, HitPos hitPosition, int damage,
                     CrushProp crushProperty            = CrushProp.None,
                     PositionProp positionProperty      = PositionProp.Stand,
                     PositionProp enemyPositionProperty = PositionProp.Stand)
 {
     Commands.Add(move);
     HitPositions.Add(hitPosition);
     Damages.Add(damage);
     CrushProperties.Add(crushProperty);
     PositionProperties.Add(positionProperty);
 }
예제 #18
0
        public static void SpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
        {
            if (!sender.IsMe)
            {
                return;
            }
            if ((Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) &&
                 MenuManager.LaneClearMenu["LCQ"].Cast <CheckBox>().CurrentValue) &&
                Program.Q.IsReady())
            {
                if (Orbwalker.CanAutoAttack)
                {
                    return;
                }
                foreach (var minion in EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy,
                                                                                       Variables._Player.ServerPosition, Variables._Player.GetAutoAttackRange()))
                {
                    if (minion == null)
                    {
                        return;
                    }
                    var dmg = Variables._Player.GetSpellDamage(minion, SpellSlot.Q) +
                              Variables._Player.GetAutoAttackDamage(minion);
                    if (Prediction.Health.GetPrediction(minion, (int)(Variables._Player.AttackDelay * 1000)) <= dmg / 2 &&
                        (Orbwalker.LastTarget == null || Orbwalker.LastTarget.NetworkId != minion.NetworkId))
                    {
                        Player.CastSpell(SpellSlot.Q, Game.CursorPos);
                    }
                }
            }
            var LastHitE = Variables._Player;

            foreach (
                var Etarget in
                EntityManager.Heroes.Enemies.Where(
                    Etarget => Etarget.IsValidTarget(Program.E.Range) && Etarget.Path.Count() < 2))
            {
                if (MenuManager.ComboMenu["Ekill"].Cast <CheckBox>().CurrentValue&& Program.E.IsReady() &&
                    Variables._Player.CountEnemiesInRange(600) <= 1)
                {
                    var dmgE = Variables._Player.GetSpellDamage(Etarget, SpellSlot.E);
                    if (dmgE > Etarget.Health ||
                        (Damages.WTarget(Etarget) == 2 && dmgE + Damages.Wdmg(Etarget) > Etarget.Health))
                    {
                        LastHitE = Etarget;
                    }
                }

                if (LastHitE != Variables._Player)
                {
                    Program.E.Cast(LastHitE);
                }
            }
        }
예제 #19
0
파일: Combo.cs 프로젝트: lolscripts/Aka-s
        public override void Execute()
        {
            if (Settings.UseRk && R.IsReady() && E.IsReady() && Q.IsReady())
            {
                var target = TargetSelector.GetTarget(R.Range, DamageType.Physical);
                if (target != null && Damages.RDamage(target) + Damages.QDamage(target) + Damages.EDamage(target) + Damages.FaaDamage(target) > target.Health)
                {
                    R.Cast(target);
                }
            }

            var qtarget = TargetSelector.GetTarget(Q.Range, DamageType.Physical);

            if (Settings.UseE && E.IsReady() &&
                (qtarget.IsValidTarget(Q.Range) && Q.IsReady()))
            {
                var vec        = qtarget.ServerPosition - ObjectManager.Player.Position;
                var castBehind = E.GetPrediction(qtarget).CastPosition + Vector3.Normalize(vec) * 100;
                E.Cast(castBehind);
                Q.Cast(castBehind);
            }


            if (Settings.UseW)
            {
                var target = TargetSelector.GetTarget(W.Range, DamageType.Physical);
                if (W.IsReady() && target != null)
                {
                    W.Cast();
                }
            }

            if (Settings.UseQ && Q.IsReady() && !E.IsReady())
            {
                var wtarget = TargetSelector.GetTarget(W.Range, DamageType.Physical);
                var prede   = Q.GetPrediction(wtarget);
                if (prede.HitChance >= HitChance.High)
                {
                    if (wtarget != null)
                    {
                        Q.Cast(prede.CastPosition);
                    }
                }
            }
            if (Settings.UseRi && R.IsReady())
            {
                var target = TargetSelector.GetTarget(R.Range, DamageType.Physical);
                if (R.IsReady() && target != null)
                {
                    R.Cast(target);
                }
            }
        }
예제 #20
0
        /// <summary>
        /// 戦闘詳細の情報を出力します。
        /// </summary>
        public override string ToString()
        {
            StringBuilder builder = new StringBuilder();

            builder.AppendFormat("{0} → {1}\r\n", GetAttackerName(), GetDefenderName());


            if (AttackType >= 0)
            {
                builder.Append("[").Append(GetAttackKind()).Append("] ");
            }

            for (int i = 0; i < Damages.Length; i++)
            {
                if (CriticalTypes[i] == CriticalType.Invalid)                   // カットイン(主砲/主砲)、カットイン(主砲/副砲)時に発生する
                {
                    continue;
                }

                if (i > 0)
                {
                    builder.Append(" , ");
                }

                switch (CriticalTypes[i])
                {
                case CriticalType.Miss:
                    builder.Append("Miss");
                    break;

                case CriticalType.Hit:
                    builder.Append(Damages[i]).Append(" Dmg");
                    break;

                case CriticalType.Critical:
                    builder.Append(Damages[i]).Append(" Critical!");
                    break;
                }
            }

            {
                int before = Math.Max(DefenderHP, 0);
                int after  = Math.Max(DefenderHP - Damages.Sum(), 0);
                if (before != after)
                {
                    builder.AppendFormat(" ( {0} → {1} )", before, after);
                }
            }


            builder.AppendLine();
            return(builder.ToString());
        }
예제 #21
0
        public virtual void InflictDamages(Damages damages)
        {
            if (!ObjectAvailable)
            {
                return;
            }

            damages.Apply();

            if (!Stats.IsLifeStealImmune && damages.ApplyAutoAttack && damages.Type == DamageType.DAMAGE_TYPE_PHYSICAL)
            {
                damages.Source.Stats.Health.Heal(damages.Delta * damages.Source.Stats.LifeSteal.TotalSafe);
            }

            if (Shields.Magical > 0 && damages.Type == DamageType.DAMAGE_TYPE_MAGICAL)
            {
                float value = Shields.UseMagicalShield(damages.Delta);
                Stats.Health.Current -= value;
                float shieldLoss = -(damages.Delta - value);
                OnShieldModified(true, false, shieldLoss);
            }
            else if (Shields.Physical > 0 && damages.Type == DamageType.DAMAGE_TYPE_PHYSICAL)
            {
                float value = Shields.UsePhysicalShield(damages.Delta);
                Stats.Health.Current -= value;
                float shieldLoss = -(damages.Delta - value);
                OnShieldModified(false, true, shieldLoss);
            }
            else if (Shields.MagicalAndPhysical > 0)
            {
                float value = Shields.UseMagicalAndPhysicalShield(damages.Delta);
                Stats.Health.Current -= value;
                float shieldLoss = -(damages.Delta - value);
                OnShieldModified(true, true, shieldLoss);
            }
            else
            {
                Stats.Health.Current -= damages.Delta;
                Game.Send(new DamageDoneMessage(damages.Result, damages.Type, damages.Delta, NetId, damages.Source.NetId));
            }



            UpdateStats();
            damages.Source.UpdateStats();

            EventsBinder.OnDamagesInflicted(damages);

            if (Stats.Health.Current <= 0)
            {
                OnDead(damages.Source);
            }
        }
예제 #22
0
        public override void Execute()
        {
            if (Settings.UseE)
            {
                var etarget     = TargetSelector.GetTarget(E.Range, DamageType.Physical);
                var eprediction = E.GetPrediction(etarget);
                if (eprediction.HitChance >= HitChance.High)
                {
                    if (E.IsReady() && etarget != null)
                    {
                        E.Cast(eprediction.CastPosition);
                    }
                }
            }
            if (Settings.UseW)
            {
                var target = TargetSelector.GetTarget(W.Range, DamageType.Physical);
                if (W.IsReady() && target != null)
                {
                    W.Cast();
                }
            }

            if (Settings.UseQ)
            {
                var target = TargetSelector.GetTarget(Q.Range, DamageType.Physical);
                if (Q.IsReady() && target != null)
                {
                    Q.Cast();
                }
            }
            if (Settings.UseR && R.IsReady())
            {
                var target = TargetSelector.GetTarget(E.Range, DamageType.Physical);

                if (target.IsValidTarget(R.Range) && !target.IsZombie && !target.IsInvulnerable && !target.IsDead)
                {
                    int passiveCounter = target.GetBuffCount("dariushemo") <= 0 ? 0 : target.GetBuffCount("dariushemo");
                    if (!target.HasBuffOfType(BuffType.Invulnerability) && !target.HasBuffOfType(BuffType.SpellShield))
                    {
                        if (Damages.RDamage(target, passiveCounter) >=
                            target.Health + Damages.PassiveDmg(target, 1))
                        {
                            if (!target.HasBuffOfType(BuffType.Invulnerability) &&
                                !target.HasBuffOfType(BuffType.SpellShield))
                            {
                                R.Cast(target);
                            }
                        }
                    }
                }
            }
        }
예제 #23
0
 public void DeleteDamages(Damages damages)
 {
     if ((damages.EntityState != EntityState.Detached))
     {
         this.ObjectContext.ObjectStateManager.ChangeObjectState(damages, EntityState.Deleted);
     }
     else
     {
         this.ObjectContext.Damages.Attach(damages);
         this.ObjectContext.Damages.DeleteObject(damages);
     }
 }
예제 #24
0
            private static Car ToModel(DB.Cars dbItem, UnitOfWork unitOfWork)
            {
                var car =
                    new Car()
                {
                    Id         = dbItem.Id,
                    Color      = (CarColor)dbItem.Color,
                    BodyType   = (Body)dbItem.Body,
                    BodyNumber = dbItem.BodyNumber,
                    Enginge    = dbItem.Engine,
                    Kpp        = dbItem.Kpp,
                    Number     = dbItem.Number,
                    Sts        = dbItem.Sts,
                    TO         = dbItem.TO,
                    Year       = dbItem.Year,
                    Insurance  = dbItem.Insurance,
                    Model      = CarModels.Read(dbItem.Model.Id, unitOfWork),
                    Mileage    = dbItem.Mileage,
                    SiteId     = dbItem.SiteId,
                    User       = Users.Read(dbItem.User.Id, unitOfWork),
                    Deleted    = dbItem.Deleted
                };

                if (dbItem.CarRental != null)
                {
                    car.CarRental = CarRentals.Read(dbItem.CarRental.Id, unitOfWork);
                }
                foreach (var damage in dbItem.DamagesCollection.Where(damage => !damage.Archive))
                {
                    car.Damages.Add(Damages.Read(damage.Id, unitOfWork));
                }
                foreach (var rent in dbItem.RentsCollection)
                {
                    car.Rents.Add(Rents.Read(rent.Id, unitOfWork));
                }
                foreach (var order in dbItem.OrdersCollection.Where(q => !q.Deleted))
                {
                    var cor = new CarOrder()
                    {
                        ClientId  = order.Client.Id,
                        DateFrom  = order.DateFrom,
                        DateTo    = order.DateTo,
                        Id        = order.Id,
                        Territory = order.Territory
                    };
                    foreach (var serv in order.OrderServicesCollection)
                    {
                        cor.Services.Add(Services.Read(serv.Service.Id, unitOfWork));
                    }
                    car.Orders.Add(cor);
                }
                return(car);
            }
예제 #25
0
 private static void AddDependencies(UnitOfWork unitOfWork, Car item, int carId)
 {
     foreach (var itm in item.Damages)
     {
         itm.CarId = carId;
         Damages.AddNew(itm, unitOfWork);
     }
     foreach (var rent in item.Rents)
     {
         rent.CarId = carId;
         Rents.AddNew(rent, unitOfWork);
     }
 }
예제 #26
0
 private static void AddDependencies(UnitOfWork unitOfWork, Order item, DB.Orders dbItem)
 {
     foreach (var itm in item.Damages)
     {
         var did = Damages.AddNew(itm, unitOfWork, true);
         itm.Id = did;
         OrderDamages.AddNew(itm, dbItem, unitOfWork);
     }
     foreach (var serv in item.Services)
     {
         OrderServices.AddNew(serv, dbItem, unitOfWork);
     }
 }
예제 #27
0
        private void ExecuteAddDamage()
        {
            AddDamageWindowViewModel addDamageWindowViewModel = new AddDamageWindowViewModel();

            Model.Damage damage = addDamageWindowViewModel.GetDamage();
            if (damage != null)
            {
                DamageViewModel damageViewModel = new DamageViewModel {
                    Damage = damage
                };
                Damages.Add(damageViewModel);
            }
        }
예제 #28
0
 public void ReadXML(XmlNode xmlNode)
 {
     try
     {
         foreach (XmlNode childNode in xmlNode.ChildNodes)
         {
             if (childNode.Name == "Name")
             {
                 Name = childNode.InnerText;
             }
             else if (childNode.Name == "Modifier")
             {
                 Modifier = Convert.ToInt32(childNode.InnerText);
             }
             else if (childNode.Name == "Type")
             {
                 Type = Methods.GetAttackTypeFromString(childNode.InnerText);
             }
             else if (childNode.Name == "Ability")
             {
                 Ability = Methods.GetAbilityFromString(childNode.InnerText);
             }
             else if (childNode.Name == "Damages")
             {
                 foreach (XmlNode damageNode in childNode.ChildNodes)
                 {
                     if (damageNode.Name == "Damage")
                     {
                         Damages.Add(new Damage(damageNode));
                     }
                 }
             }
             else if (childNode.Name == "ThreatRangeMin")
             {
                 ThreatRangeMin = Convert.ToInt32(childNode.InnerText);
             }
             else if (childNode.Name == "CritMultiplier")
             {
                 CritMultiplier = Convert.ToInt32(childNode.InnerText);
             }
             else if (childNode.Name == "TwoHanded")
             {
                 TwoHanded = Convert.ToBoolean(childNode.InnerText);
             }
         }
     }
     catch (XmlException e)
     {
         MessageBox.Show(e.ToString());
     }
 }
예제 #29
0
 public override void Execute()
 {
     if (Settings.UseQ && Q.IsReady() && PlayerMana >= SettingsMana.MinQMana)
     {
         var target =
             EntityManager.MinionsAndMonsters.CombinedAttackable.Where(e => e.IsValidTarget(Q.Range))
             .OrderBy(e => e.Health).FirstOrDefault(e => e.Health <= Damages.QDamage(e));
         if (target != null)
         {
             Q.Cast(target);
             Debug.WriteChat("Casting Q in LastHit on {0}", target.BaseSkinName);
         }
     }
 }
예제 #30
0
 private void Update()
 {
     if (Input.GetKeyDown(KeyCode.F))
     {
         if (isTrigger == true)
         {
             arme1.transform.parent = null;
             Destroy(arme1);
             arme2.transform.parent   = pivot.transform;
             arme2.transform.position = arme1.transform.position;
             Damages damages = arme2.GetComponent <Damages>();
             damages.isOnPlayer = true;
         }
     }
 }
예제 #31
0
파일: Weighting.cs 프로젝트: VWille/fund
        public double AddDamagesUp(Damages Damages, int yearsToAggregate, Timestep emissionPeriod)
        {
            double i_totalDamage = 0.0;

            for (int year = emissionPeriod.Value; year < Math.Min(LegacyConstants.NYear, emissionPeriod.Value + yearsToAggregate); year++)
            {
                for (int region = 0; region < LegacyConstants.NoReg; region++)
                {
                    for (int sector = 0; sector < LegacyConstants.NoSector; sector++)
                    {
                        i_totalDamage += Damages[year, region, (Sector)sector] * this[year, region];
                    }
                }
            }

            return i_totalDamage;
        }