parent
8aff6bd6f6
commit
0b0f83c00a
@ -0,0 +1,42 @@ |
||||
extends Area2D |
||||
|
||||
var data#unit data |
||||
onready var grid = data.grid |
||||
var country: Country |
||||
var current_turn_movable = true |
||||
onready var game = get_tree().current_scene |
||||
|
||||
func _on_Boat_input_event(viewport, event, shape_idx): |
||||
if event is InputEventMouseButton: |
||||
if event.pressed and event.button_index == BUTTON_LEFT: |
||||
grid.selected_thing = self |
||||
|
||||
func _process(delta): |
||||
update() |
||||
if game.country_turn_id == country.id: |
||||
$Sprite.modulate = Color.white if current_turn_movable else Color.white.darkened(0.5) |
||||
else: |
||||
$Sprite.modulate = Color.white.darkened(0.25) |
||||
if not grid.selected_thing == self: |
||||
return |
||||
if Input.is_action_just_pressed("move"): |
||||
var pos = grid.tilemap.world_to_map(position/grid.tilemap.scale) |
||||
var mouse_pos = grid.tilemap.world_to_map(get_global_mouse_position()/grid.tilemap.scale) |
||||
|
||||
var dx = abs(floor(pos.x-mouse_pos.x)) |
||||
var dy = abs(floor(pos.y-mouse_pos.y)) |
||||
|
||||
if dx != dy and (dx == 1 or dy == 1): |
||||
if game.country_turn_id == country.id and current_turn_movable: |
||||
if grid.move_boat(data, mouse_pos): |
||||
current_turn_movable = false |
||||
|
||||
func _draw(): |
||||
if grid.selected_thing == self: |
||||
draw_arc( |
||||
Vector2.ZERO, |
||||
16, |
||||
0, 2*PI, 32, |
||||
Color.yellow, |
||||
4 |
||||
) |
@ -0,0 +1,20 @@ |
||||
[gd_scene load_steps=4 format=2] |
||||
|
||||
[ext_resource path="res://assets/tileset.png" type="Texture" id=1] |
||||
[ext_resource path="res://prefabs/units/boat/boat.gd" type="Script" id=2] |
||||
|
||||
[sub_resource type="RectangleShape2D" id=1] |
||||
extents = Vector2( 7, 5 ) |
||||
|
||||
[node name="Boat" type="Area2D"] |
||||
script = ExtResource( 2 ) |
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] |
||||
shape = SubResource( 1 ) |
||||
|
||||
[node name="Sprite" type="Sprite" parent="."] |
||||
texture = ExtResource( 1 ) |
||||
region_enabled = true |
||||
region_rect = Rect2( 32, 32, 16, 16 ) |
||||
|
||||
[connection signal="input_event" from="." to="." method="_on_Boat_input_event"] |
Loading…
Reference in new issue