public override List <HexCell> GetTargetsInRange() { ComboStar passiveAbility = ParentCharacter.Abilities.OfType <ComboStar>().SingleOrDefault(); Character targetCharacter = passiveAbility?.ComboCharacter; return(targetCharacter == null ? new List <HexCell>() : GetRangeCells().FindAll(c => c.CharacterOnCell == targetCharacter).FindAll(c => c.GetNeighbors(MaxDistanceFromTarget).Any(cc => cc.IsFreeToStand))); }
public void Use(List <HexCell> cells) { Character target = cells[0].CharacterOnCell; ComboStar passiveAbility = ParentCharacter.Abilities.OfType <ComboStar>().SingleOrDefault(); if (passiveAbility == null) { OnFailedUseFinish(); return; } if (target != passiveAbility.ComboCharacter) { passiveAbility.SetNewComboCharacter(target); } passiveAbility.Combo += 3; ParentCharacter.HasFreeAttackUntilEndOfTheTurn = true; Finish(); }