public override void Use(List <HexCell> cells) { try { ItadakiNoKura passiveAbility = ParentCharacter.Abilities.OfType <ItadakiNoKura>().SingleOrDefault(); if (passiveAbility == null) { throw new Exception("Pasywna umiejętność nie znaleziona!"); } List <Character> enemyCharactersOnMap = Game.Players.Where(p => p != Active.GamePlayer).SelectMany(p => p.Characters).Where(c => c.IsOnMap).ToList(); var damageValue = passiveAbility.CollectedEnergy / enemyCharactersOnMap.Count; //Animations.Instance.SonzaiNoChikara(enemyCharactersOnMap.Select(c=>c.CharacterObject.transform).ToList()); var damage = new Damage(damageValue, DamageType.Magical); enemyCharactersOnMap.ForEach(c => ParentCharacter.Attack(c, damage)); passiveAbility.CollectedEnergyCharacters.Clear(); OnUseFinish(); } catch (Exception e) { MessageLogger.DebugLog(e.Message); OnFailedUseFinish(); } }
public override void Use(List <HexCell> cells) { List <Character> characters = cells.GetCharacters(); try { ItadakiNoKura passiveAbility = ParentCharacter.Abilities.OfType <ItadakiNoKura>().SingleOrDefault(); if (passiveAbility == null) { throw new Exception("Pasywna umiejętność nie znaleziona!"); } characters = characters.Where(c => c.Owner != ParentCharacter.Owner).ToList(); // AnimationPlayer.Instance.AsterYo(ParentCharacter.CharacterObject.transform, characters.Select(c => c.CharacterObject.transform).ToList()); AnimationPlayer.Add(new Animations.AsterYo(ParentCharacter.CharacterObject.transform, characters.Select(c => c.CharacterObject.transform).ToList())); characters.ForEach(targetCharacter => { var damage = new Damage(AbilityDamage, DamageType.Magical); ParentCharacter.Attack(targetCharacter, damage); passiveAbility.TryCollectingEnergy(targetCharacter); }); OnUseFinish(); } catch (Exception e) { MessageLogger.DebugLog(e.Message); OnFailedUseFinish(); } }