aboutsummaryrefslogtreecommitdiff
path: root/go/game/range.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/game/range.go')
-rw-r--r--go/game/range.go18
1 files changed, 18 insertions, 0 deletions
diff --git a/go/game/range.go b/go/game/range.go
index ab86c44e..6e04d21f 100644
--- a/go/game/range.go
+++ b/go/game/range.go
@@ -4,6 +4,24 @@ import (
"math"
)
+func DistanceBetweenPositions(origin, pos Position) int {
+ x, y := float64(pos.X-origin.X), float64(pos.Y-origin.Y)
+ ax, ay := math.Abs(x), math.Abs(y)
+
+ var abs float64
+ if pos.X > pos.Y {
+ abs = ax + math.Floor(ay/2)
+ } else {
+ abs = ay + math.Floor(ax/2)
+ }
+
+ return int(abs)
+}
+
+func DistanceBetweenPermanents(p1, p2 Permanent) int {
+ return DistanceBetweenPositions(p1.Tile().Position, p2.Tile().Position)
+}
+
func IsPositionInRange(origin Position, pos Position, r int) bool {
x, y := float64(pos.X-origin.X), float64(pos.Y-origin.Y)
ax, ay := math.Abs(x), math.Abs(y)