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)); }
public TextDisplay GetFloatingText() { return(new TextDisplay() { textColor = color, text = "- " + value, callback = () => character.SetAnimation(Common.Animator.AnimatorUtils.animationType.damage) }); }
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); }