Fixed more movement bugs, disabled expansions for now. Added turnendbehaviour (for bee, should add trigger by turn end signal)
This commit is contained in:
parent
5722ffab48
commit
26fec25a6e
14 changed files with 154 additions and 37 deletions
50
Tile/Tile.gd
50
Tile/Tile.gd
|
|
@ -27,6 +27,7 @@ var selected: bool = false
|
|||
var hover_shader: ShaderMaterial = preload("res://InsectTiles/HoverShader.tres")
|
||||
|
||||
const SELECTION_FAILED_MAT: ShaderMaterial = preload("res://InsectTiles/SelectionFailedMat.tres")
|
||||
const ACTION_SHADER = preload("res://InsectTiles/ActionShader.tres")
|
||||
|
||||
var mat: StandardMaterial3D
|
||||
|
||||
|
|
@ -34,6 +35,8 @@ var tween: Tween
|
|||
|
||||
var tweening: bool = false
|
||||
|
||||
var selected_for_action: bool = false
|
||||
|
||||
func _ready() -> void:
|
||||
if is_black:
|
||||
hexagon_small.set_surface_override_material(0, resource.material_black.duplicate())
|
||||
|
|
@ -50,7 +53,17 @@ func _ready() -> void:
|
|||
GameEvents.insect_tile_selected.connect(_on_insect_tile_selected)
|
||||
GameEvents.insect_tile_deselected.connect(_on_insect_tile_deselected)
|
||||
GameEvents.insect_tile_moved.connect(_on_insect_tile_moved)
|
||||
GameEvents.insect_tiles_selected_for_action.connect(_on_tiles_selected_for_action)
|
||||
|
||||
func _on_tiles_selected_for_action(source_pos: Vector4i, targets: Array[InsectTile]) -> void:
|
||||
if self in targets:
|
||||
selected_for_action = true
|
||||
print("meme")
|
||||
mat.next_pass = ACTION_SHADER
|
||||
return
|
||||
|
||||
deactivated = true
|
||||
|
||||
|
||||
func _on_insect_tile_moved(tile: InsectTile, to: Vector4i) -> void:
|
||||
move_in_progress = false
|
||||
|
|
@ -66,7 +79,6 @@ func _on_insect_tile_deselected(tile: InsectTile) -> void:
|
|||
selected = false
|
||||
|
||||
func _on_insect_tile_selected(tile: InsectTile) -> void:
|
||||
move_in_progress = true
|
||||
if tile == self:
|
||||
selected = true
|
||||
|
||||
|
|
@ -86,25 +98,21 @@ func _process(delta):
|
|||
|
||||
if not hovered:
|
||||
return
|
||||
|
||||
# Move up the insect stack.... or just do not react while we have something on top of us?
|
||||
|
||||
## Check with map if we can be placed
|
||||
#if not map_reference.can_move(self):
|
||||
#return
|
||||
#
|
||||
#
|
||||
#if resource.movement_behaviour == null:
|
||||
## TODO: Play fail animation/tween
|
||||
#return
|
||||
#
|
||||
#var spaces = resource.movement_behaviour.get_available_spaces(coordinates, map_reference)
|
||||
#
|
||||
#if spaces.is_empty():
|
||||
##GameEvents.insect_tile_selection_request_failed.emit(tile)
|
||||
#return
|
||||
|
||||
print(resource)
|
||||
|
||||
GameEvents.insect_tile_selected.emit(self)
|
||||
if GameData.allow_selecting_in_stack:
|
||||
var top: InsectTile = self
|
||||
while top.hat != null:
|
||||
top = top.hat
|
||||
|
||||
if top.is_black == GameData.is_player_black or GameData.debug:
|
||||
GameEvents.insect_tile_selected.emit(top)
|
||||
else:
|
||||
if hat != null:
|
||||
return
|
||||
else:
|
||||
GameEvents.insect_tile_selected.emit(self)
|
||||
|
||||
func hover() -> void:
|
||||
#if GameData.is_player_black != is_black:
|
||||
|
|
@ -138,11 +146,11 @@ func unhover() -> void:
|
|||
func _on_mouse_entered():
|
||||
hovered = true
|
||||
|
||||
if not deactivated:
|
||||
if not deactivated and not selected_for_action:
|
||||
hover()
|
||||
|
||||
func _on_mouse_exited():
|
||||
hovered = false
|
||||
|
||||
if not selected:
|
||||
if not selected and not selected_for_action:
|
||||
unhover()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue