Current Version

This commit is contained in:
Sch1nken 2024-08-05 15:51:26 +02:00
parent 8e2857506f
commit 55decffc90
3 changed files with 85 additions and 0 deletions

View file

@ -107,6 +107,7 @@ shadow_enabled = true
script = ExtResource("6_41m5i")
[node name="BuildMenu" type="Control" parent="."]
visible = false
layout_mode = 3
anchors_preset = 12
anchor_top = 1.0
@ -235,6 +236,7 @@ layout_mode = 2
mouse_filter = 0
[node name="CurrentTurnDisplay" type="Control" parent="."]
visible = false
layout_mode = 3
anchors_preset = 5
anchor_left = 0.5
@ -247,6 +249,7 @@ size_flags_vertical = 0
mouse_filter = 2
[node name="InputInfo" type="Control" parent="."]
visible = false
layout_mode = 3
anchors_preset = 1
anchor_left = 1.0
@ -425,6 +428,7 @@ text = "Show/Hide controls"
horizontal_alignment = 2
[node name="MenuButtons" type="Control" parent="."]
visible = false
layout_mode = 3
anchors_preset = 0
offset_right = 40.0
@ -581,6 +585,7 @@ layout_mode = 2
text = "Back to menu"
[node name="CanvasLayer" type="CanvasLayer" parent="."]
visible = false
[node name="ActionMoveMenu" type="Control" parent="CanvasLayer"]
visible = false
@ -715,6 +720,14 @@ layout_mode = 2
layout_mode = 2
text = "Start"
[node name="Timer" type="Timer" parent="."]
wait_time = 2.0
autostart = true
[node name="Timer2" type="Timer" parent="."]
wait_time = 2.0
autostart = true
[connection signal="pressed" from="MenuButtons/VBoxContainer/MenuButton" to="MenuButtons" method="_on_menu_button_pressed"]
[connection signal="pressed" from="MenuButtons/VBoxContainer/PassRoundButton" to="MenuButtons" method="_on_pass_round_button_pressed"]
[connection signal="pressed" from="MenuButtons/VBoxContainer/SurrenderButton" to="MenuButtons" method="_on_surrender_button_pressed"]
@ -731,3 +744,5 @@ text = "Start"
[connection signal="toggled" from="GameSettings/GameSettings/PanelContainer/VBoxContainer/HBoxContainer3/MosquitoCheckbutton" to="GameSettings/GameSettings" method="_on_mosquito_checkbutton_toggled"]
[connection signal="toggled" from="GameSettings/GameSettings/PanelContainer/VBoxContainer/HBoxContainer4/PillbugCheckbutton" to="GameSettings/GameSettings" method="_on_pillbug_checkbutton_toggled"]
[connection signal="pressed" from="GameSettings/GameSettings/PanelContainer/VBoxContainer/StartGameButton" to="GameSettings/GameSettings" method="_on_start_game_button_pressed"]
[connection signal="timeout" from="Timer" to="HexGrid" method="_on_timer_timeout"]
[connection signal="timeout" from="Timer2" to="HexGrid" method="_on_timer_2_timeout"]

View file

@ -22,6 +22,8 @@ func _on_turn_ended(turn_num: int, map: HexGrid) -> void:
var black_lost: bool = false
var white_lost: bool = false
return
for b in bees:
if map.get_empty_neighbours(b.coordinates).size() == 0:
if b.is_black:

View file

@ -283,7 +283,30 @@ func place_insect_tile(resource_path: String, is_black: bool, pos: Vector4i) ->
var tween = get_tree().create_tween()
tween.tween_property(tile_copy, "position", target_pos, 1.0).set_ease(Tween.EASE_OUT).set_trans(Tween.TRANS_EXPO)
var cell_to_be_removed: Vector4i = Vector4i.ZERO
func _force_remove_tile(cell: Vector4i) -> void:
if not used_cells.has(cell):
return
var tile = used_cells[cell]
cell_to_be_removed = cell
var tween = get_tree().create_tween()
var sky_pos = Vector3(tile.position.x, 20.0, tile.position.z)
tween.tween_property(tile, "position", sky_pos, 1.0).set_ease(Tween.EASE_IN).set_trans(Tween.TRANS_EXPO)
tween.tween_callback(_remove_tile)
func _remove_tile() -> void:
if not used_cells.has(cell_to_be_removed):
return
used_cells[cell_to_be_removed].queue_free()
used_cells.erase(cell_to_be_removed)
func _on_insect_placed(resource: TileResource, is_black: bool, pos: Vector4i) -> void:
var resource_path = resource.resource_path
@ -600,3 +623,48 @@ func _ready() -> void:
GameEvents.insect_tile_moved.connect(_on_insect_tile_moved)
GameEvents.insect_tile_action_started.connect(_on_insect_tile_action_started)
GameEvents.insect_tile_move_started.connect(_on_insect_tile_move_started)
const pieces = [
"res://Tile/Prefabs/Ant.tres",
"res://Tile/Prefabs/Bee.tres",
"res://Tile/Prefabs/Beetle.tres",
"res://Tile/Prefabs/Grasshopper.tres",
"res://Tile/Prefabs/Ladybug.tres",
"res://Tile/Prefabs/Mosquito.tres",
"res://Tile/Prefabs/Pillbug.tres",
"res://Tile/Prefabs/Spider.tres",
]
var last_cell: Vector4i = Vector4i.ZERO
func _on_timer_timeout() -> void:
# spawn random tile
# get random position q, r, s
var q = randi_range(-5, 5)
var r = randi_range(-5, 5)
#var s = randi_range(-5, 5)
var cell: Vector4i = axial_to_cube(AxialCoordinates.new(q, r))
if not is_cell_empty(cell):
return
if used_cells.has(cell):
return
print(cell)
last_cell = cell
place_insect_tile(pieces.pick_random(), randi_range(0, 1) == 0, cell)
func _on_timer_2_timeout() -> void:
if used_cells.size() > 25:
# remove random cell
var cell_idx = used_cells.keys().pick_random()
if cell_idx == last_cell:
return
#var cell = used_cells[cell_idx]
_force_remove_tile(cell_idx)
pass
# lift and remove random tile (but not the last one)
pass