Esempio n. 1
0
        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();
            }
        }
Esempio n. 2
0
        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();
            }
        }