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); }
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); }
private void ExecuteAddDamage() { AddDamageWindowViewModel addDamageWindowViewModel = new AddDamageWindowViewModel(); Model.Damage damage = addDamageWindowViewModel.GetDamage(); if (damage != null) { DamageViewModel damageViewModel = new DamageViewModel { Damage = damage }; Damages.Add(damageViewModel); } }
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()); } }
public void AddDamage(DamageTypeName damageType, float amount, float min = 0, float max = 0) { var existing = Damages.Find(x => x.DamageType == damageType); if (existing != null) { existing.Min += min; existing.Max += max; existing.Amount += amount; } else { Damages.Add(new Damage() { DamageType = damageType, Amount = amount, Min = min, Max = max }); } }
public bool giveDamage(Character f****r, int amount) { if (HP == 0) { return(false); } if (!Damages.ContainsKey(f****r.ID)) { Damages.Add(f****r.ID, 0); } Damages[f****r.ID] += (ulong)amount; if (HP < amount) { HP = 0; } else { HP -= amount; } return(true); }
private static void OnObjAiBaseProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (!Enabled) { return; } try { if (args.Target != null && args.Target.IsEnemy) { var target = args.Target as Obj_AI_Hero; if (target != null) { if (!(sender is Obj_AI_Hero) || args.SData.IsAutoAttack()) { Damages.Add( target.NetworkId, target.ServerPosition.Distance(sender.ServerPosition) / args.SData.MissileSpeed + Game.Time, (float)sender.GetAutoAttackDamage(target)); } else { var slot = target.GetSpellSlot(args.SData.Name); if (slot != SpellSlot.Unknown && slot == target.GetSpellSlot("SummonerDot")) { Damages.Add( target.NetworkId, Game.Time + 2, (float)target.GetSummonerSpellDamage(target, Damage.SummonerSpell.Ignite)); } } } } var hero = sender as Obj_AI_Hero; if (hero != null && hero.IsAlly) { var slot = hero.GetSpellSlot(args.SData.Name); if (slot != SpellSlot.Unknown) { if (slot == SpellSlot.Q || slot == SpellSlot.W || slot == SpellSlot.E || slot == SpellSlot.R) { if (args.Target != null && args.Target.IsEnemy) { Damages.Add( args.Target.NetworkId, Game.Time + 1, (float)hero.GetSpellDamage(args.Target as Obj_AI_Hero, slot)); } else if (args.Target == null) { foreach (var enemy in GameObjects.EnemyHeroes.Where( e => e.IsValidTarget() && e.Distance(args.Start) < 300)) { var length = (int)args.Start.Distance(args.End); for (int i = 0, l = length > 300 ? 300 : length; i < l; i = i + 50) { var pos = args.Start.Extend(args.End, i); if (enemy.Distance(pos) <= 50) { Damages.Add( enemy.NetworkId, Game.Time + 1, (float)hero.GetSpellDamage(enemy, slot)); break; } } } } } } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
public void AddDamage(Guid name, int t) { Damages.Add(name, t); IsUpdate = true; }
void UpdateDamage() { foreach (var item in Objects.Where(obj => obj is IDamageControler)) { switch (item) { case Player player: player.Damage = null; break; case MapObject mapObject: mapObject.Damage = null; break; default: Logger.Error("Invalid Type"); break; } } foreach (IDamageControler item in Objects.Where(obj => obj is IDamageControler)) { while (item.DamageRequests.Count > 0) { Damages.Add(item.DamageRequests.Dequeue()); } while (item.DirectDamageRequests.Count > 0) { var damage = item.DirectDamageRequests.Dequeue(); if (item.Damage == null) { if (item is Player player) { player.Damage = new DamageInfo(damage.Damage, damage.KnockBack, damage.TakeDown, damage.Priority); } else if (item is MapObject mapObject) { mapObject.Damage = new DamageInfo(damage.Damage, damage.KnockBack, damage.TakeDown, damage.Priority); } } else if (Player.Damage is DamageInfo info) { info.RecieveDamage += damage.Damage; info.KnockBack = info.KnockBack < damage.KnockBack ? damage.KnockBack : info.KnockBack; info.TakeDown = info.TakeDown < damage.TakeDown ? damage.TakeDown : info.TakeDown; info.Priority = info.Priority < damage.Priority ? damage.Priority : info.Priority; } } } List <DamageRect> removeRect = new List <DamageRect>(); if (Player != null) { foreach (var item in Damages.Where(obj => obj.Group != Player.DamageGroup)) { if (Player.CollisionShape.GetIsCollidedWith(item)) { if (Player.Damage == null) { Player.Damage = new DamageInfo(item.Damage, item.KnockBack, item.TakeDown, item.Priority); } else if (Player.Damage is DamageInfo info) { info.RecieveDamage += item.Damage; info.KnockBack = info.KnockBack < item.KnockBack ? item.KnockBack : info.KnockBack; info.TakeDown = info.TakeDown < item.TakeDown ? item.TakeDown : info.TakeDown; info.Priority = info.Priority < item.Priority ? item.Priority : info.Priority; } if (!item.Sastainable) { removeRect.Add(item); } } } foreach (var item in Damages.Where(obj => obj.Group == Player.DamageGroup)) { foreach (IDamageControler item2 in Objects.Where(obj => obj is IDamageControler damageControler && damageControler.IsReceiveDamage && damageControler.DamageGroup != Player.DamageGroup && damageControler.CollisionShape.GetIsCollidedWith(item))) { if (item2 is MapObject mapObject && mapObject.Damage == null) { mapObject.Damage = new DamageInfo(item.Damage, item.KnockBack, item.TakeDown, item.Priority); } else if (item2 is MapObject mapObject2 && mapObject2.Damage is DamageInfo info) { info.RecieveDamage += item.Damage; info.KnockBack = info.KnockBack < item.KnockBack ? item.KnockBack : info.KnockBack; info.TakeDown = info.TakeDown < item.TakeDown ? item.TakeDown : info.TakeDown; info.Priority = info.Priority < item.Priority ? item.Priority : info.Priority; } if (!item.Sastainable) { removeRect.Add(item); } }