Exemplo n.º 1
0
        public void Action(List <Tile> tiles, Action callback = null, bool free = false, List <SkillModifier> mods = null, bool animation = true)
        {
            if (mods != null)
            {
                skillModifiers = mods;
            }
            if (tiles.Count > 0)
            {
                boardEntity.SetAnimationDirection(AnimatorUtils.GetAttackDirectionCode(boardEntity.GetTile().Position, tiles[0].Position));
                if (animationType != AnimatorUtils.animationType.none && animation)
                {
                    boardEntity.SetAnimation(animationType);
                }
            }

            SkillReport report = ActionHelper(tiles);

            if (report != null)
            {
                foreach (Tuple <Stats, Stats> stat in report.targets)
                {
                    foreach (Passive p in ((CharacterBoardEntity)stat.first.BoardEntity).Passives)
                    {
                        p.AttackedBy(boardEntity);
                    }
                }
            }


            ActionHelperNoPreview(tiles, () => previewCallback(report, free, tiles, callback));
        }
Exemplo n.º 2
0
 public TextDisplay GetFloatingText()
 {
     return(new TextDisplay()
     {
         textColor = color,
         text = "- " + value,
         callback = () => character.SetAnimation(Common.Animator.AnimatorUtils.animationType.damage)
     });
 }
Exemplo n.º 3
0
        public SkillReport ExecuteSkillHealing(Skill skill, CharacterBoardEntity source, CharacterBoardEntity target, int value)
        {
            SkillReport report = new SkillReport();

            report.targetBefore = target.Stats.GetCopy();
            report.targetAfter  = target.Stats.GetCopy();

            report.targetAfter.SetMutableStat(StatType.Health, report.targetAfter.GetMutableStat(StatType.Health).Value + value);
            report.targets.Add(new Tuple <Stats, Stats>(report.targetBefore, report.targetAfter));

            int healValue = report.targetAfter.GetMutableStat(StatType.Health).Value - report.targetBefore.GetMutableStat(StatType.Health).Value;

            report.TextDisplays.Add(new TextDisplay()
            {
                text      = "+ " + healValue,
                textColor = Color.green,
                callback  = (() => target.SetAnimation(Common.Animator.AnimatorUtils.animationType.win)),
                target    = target
            });

            return(report);
        }