IEnumerable <WPos> TargetablePositions(Actor self) { if (Info.UseTargetableCellsOffsets && targetableCells != null) { foreach (var c in targetableCells.TargetableCells()) { yield return(self.World.Map.CenterOfCell(c.Cell)); } } foreach (var o in Info.TargetableOffsets) { var offset = CalculateTargetableOffset(self, o); yield return(self.CenterPosition + offset); } }
IEnumerable <WPos> ITargetablePositions.TargetablePositions(Actor self) { if (IsTraitDisabled) { yield break; } if (Info.UseTargetableCellsOffsets && targetableCells != null) { foreach (var c in targetableCells.TargetableCells()) { yield return(self.World.Map.CenterOfCell(c.First)); } } foreach (var o in Info.TargetableOffsets) { var offset = orientation.LocalToWorld(o.Rotate(orientation.QuantizeOrientation(self, self.Orientation))); yield return(self.CenterPosition + offset); } }