Implemented Pillbug/Mosquito actions. Implemented pre-game settings. TODO: Game settings + bug testing

This commit is contained in:
Sch1nken 2024-03-30 01:43:38 +01:00
parent 397082f966
commit 2343638749
15 changed files with 477 additions and 70 deletions

View file

@ -2,7 +2,22 @@ extends ActionBehaviour
class_name ActionBehaviourMosquito
func do_action(source_tile: InsectTile, action_tile: InsectTile, map: HexGrid) -> void:
pass
# if target only has move, just do move as
#source_tile.temporary_action_behaviour = action_tile.resource.action_behaviour
#source_tile.temporary_movement_behaviour = action_tile.resource.movement_behaviour
source_tile.temporary_resource = action_tile.resource
GameEvents.insect_tile_selected.emit(source_tile)
#if action_tile.resource.action_behaviour == null:
# map.do_move_as(source_tile, action_tile)
#else:
# Copy and offer MOVE and Action (basically pillbug)
# Starting to think it would be easier to temporarily change action_behaviour resource
# pass
# GameEvents.insect_tiles_selected_for_action
func get_targets(source_pos: Vector4i, map: HexGrid) -> Array[InsectTile]:
@ -10,7 +25,6 @@ func get_targets(source_pos: Vector4i, map: HexGrid) -> Array[InsectTile]:
# so we can't use our action unless we're on layer 0
# TODO: Update movement selection
if source_pos.w > 0:
map.debug_label(Vector3(source_pos.x, source_pos.y, source_pos.z), "TODO: Implement Beetle Movement")
return []
var neighbours = map.get_neighbours(source_pos)
@ -20,7 +34,10 @@ func get_targets(source_pos: Vector4i, map: HexGrid) -> Array[InsectTile]:
var tile = map.get_tile(neighbour)
if tile != null:
# TODO: Find better way to see what tile we have...
if not tile.resource.movement_behaviour is MovementBehaviourMosquito:
if tile.resource.movement_behaviour is MovementBehaviourMosquito:
continue
if tile.resource.movement_behaviour.get_available_spaces(source_pos, map).size() > 0:
possible_action_targets.push_back(tile)
#GameEvents.insect_tiles_selected_for_action.emit(source_pos, possible_action_targets)