summaryrefslogtreecommitdiffstats
path: root/Piece.gd
blob: 8725cc21f496dcd22f8e09f98ceeb4f6886ff0c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#warning-ignore-all:unused_argument
extends Node2D

class_name Piece, "res://godot/Piece.png"

# movement points
func get_mp() -> int:
	print("Piece#get_mp() must be overriden in a subclass")
	return 0

# movement point bonus if you start your movement on a road and follow it
func road_march_bonus() -> int:
	print("Piece#road_march_bonus() must be overriden in a subclass")
	return 0

# movement cost from a Tile to another adjacent Tile
func move_cost(src : Tile, dst : Tile, orientation : int) -> int:
	print("Piece#move_cost() must be overriden in a subclass")
	return -1 # impracticable

# are you allowed to move into that Tile as only move even if you don't have enough movement points
func at_least_one_tile(dst : Tile) -> bool:
	print("Piece#at_least_one_tile() must be overriden in a subclass")
	return true

# the maximum range of fire with a given category of weapon
func max_range_of_fire(category : int, from : Tile) -> int:
	print("Piece#max_range_of_fire() must be overriden in a subclass")
	return 0

# the projected volume of fire with a given category of weapon at a given distance,
# out of a given Tile with a given orientation, into a given Tile with a given orientation
func volume_of_fire(category : int, distance : int, src : Tile, src_o : int, dst : Tile, dst_o : int) -> int:
	print("Piece#volume_of_fire() must be overriden in a subclass")
	return -1 # out of range