GUI building tower
This commit is contained in:
parent
5b994b91d1
commit
58f7a7c48e
16 changed files with 127 additions and 74 deletions
|
|
@ -6,10 +6,13 @@ extends Node
|
||||||
signal tower_selected(tower : PackedScene)
|
signal tower_selected(tower : PackedScene)
|
||||||
|
|
||||||
|
|
||||||
#Emitter : World.gd
|
#Emitter :
|
||||||
#Subscriber : HeroIcon.gd
|
#Subscriber :
|
||||||
signal tower_builded(tower : PackedScene)
|
signal tower_builded(tower : Tower)
|
||||||
|
|
||||||
|
#Emitter : gui.gd
|
||||||
|
#Subscriber : PlayerManager.gd
|
||||||
|
signal tower_to_build(packed_tower : PackedScene)
|
||||||
|
|
||||||
#Emitter : UpgradeButton.gd
|
#Emitter : UpgradeButton.gd
|
||||||
#Subscriber : tower.gd
|
#Subscriber : tower.gd
|
||||||
|
|
|
||||||
|
|
@ -9,10 +9,10 @@
|
||||||
[ext_resource type="PackedScene" uid="uid://dpjfo15otkfru" path="res://Tiles/cube.tscn" id="5_wse8f"]
|
[ext_resource type="PackedScene" uid="uid://dpjfo15otkfru" path="res://Tiles/cube.tscn" id="5_wse8f"]
|
||||||
[ext_resource type="Script" uid="uid://chu8s12rtdeqx" path="res://Scripts/Wave.gd" id="6_gbfbk"]
|
[ext_resource type="Script" uid="uid://chu8s12rtdeqx" path="res://Scripts/Wave.gd" id="6_gbfbk"]
|
||||||
[ext_resource type="Resource" uid="uid://dkbuy7fetnihs" path="res://Waves/wave_1.tres" id="7_ioo17"]
|
[ext_resource type="Resource" uid="uid://dkbuy7fetnihs" path="res://Waves/wave_1.tres" id="7_ioo17"]
|
||||||
[ext_resource type="PackedScene" uid="uid://djyye2otjju2d" path="res://game_menu.tscn" id="9_44brb"]
|
|
||||||
[ext_resource type="Script" uid="uid://blxx3vs2wnfet" path="res://Scripts/Troop.gd" id="10_oyb16"]
|
[ext_resource type="Script" uid="uid://blxx3vs2wnfet" path="res://Scripts/Troop.gd" id="10_oyb16"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dknt1oiyei5e5" path="res://enemies/enemy-a.tscn" id="11_43wwi"]
|
[ext_resource type="PackedScene" uid="uid://dknt1oiyei5e5" path="res://enemies/enemy-a.tscn" id="11_43wwi"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c54881eookjth" path="res://Assets/Meshes/SM_B26.glb" id="12_44brb"]
|
[ext_resource type="PackedScene" uid="uid://c54881eookjth" path="res://Assets/Meshes/SM_B26.glb" id="12_44brb"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://p6a6rb7sgeqd" path="res://UI/gui.tscn" id="12_ikoig"]
|
||||||
[ext_resource type="Script" uid="uid://xkk2pxkrwsq8" path="res://bullet_container.gd" id="12_k3n1d"]
|
[ext_resource type="Script" uid="uid://xkk2pxkrwsq8" path="res://bullet_container.gd" id="12_k3n1d"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dxeb1kk5ieix2" path="res://Assets/Meshes/SM_MiniHouse.glb" id="13_ju8gl"]
|
[ext_resource type="PackedScene" uid="uid://dxeb1kk5ieix2" path="res://Assets/Meshes/SM_MiniHouse.glb" id="13_ju8gl"]
|
||||||
[ext_resource type="PackedScene" uid="uid://3u5ds5imu6d7" path="res://Assets/Meshes/SM_Minoterie.glb" id="14_4eob5"]
|
[ext_resource type="PackedScene" uid="uid://3u5ds5imu6d7" path="res://Assets/Meshes/SM_Minoterie.glb" id="14_4eob5"]
|
||||||
|
|
@ -210,8 +210,7 @@ light_energy = 0.0
|
||||||
|
|
||||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||||
|
|
||||||
[node name="GameMenu" parent="CanvasLayer" instance=ExtResource("9_44brb")]
|
[node name="GUI" parent="CanvasLayer" instance=ExtResource("12_ikoig")]
|
||||||
visible = false
|
|
||||||
|
|
||||||
[node name="BulletContainer" type="Node3D" parent="."]
|
[node name="BulletContainer" type="Node3D" parent="."]
|
||||||
script = ExtResource("12_k3n1d")
|
script = ExtResource("12_k3n1d")
|
||||||
|
|
@ -237,3 +236,5 @@ transform = Transform3D(1.08365, 0, 1.68098, 0, 2, 0, -1.68098, 0, 1.08365, 1.44
|
||||||
|
|
||||||
[connection signal="timeout" from="WaveManager/WaveTimer" to="WaveManager" method="_on_wave_timer_timeout"]
|
[connection signal="timeout" from="WaveManager/WaveTimer" to="WaveManager" method="_on_wave_timer_timeout"]
|
||||||
[connection signal="timeout" from="WaveManager/TroopTimer" to="WaveManager" method="_on_troop_timer_timeout"]
|
[connection signal="timeout" from="WaveManager/TroopTimer" to="WaveManager" method="_on_troop_timer_timeout"]
|
||||||
|
|
||||||
|
[editable path="PlayerManager"]
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,19 @@
|
||||||
extends Node3D
|
extends Node3D
|
||||||
|
|
||||||
class_name PlayerManager
|
class_name PlayerManager
|
||||||
|
enum STATE {IDLE,PLACING}
|
||||||
|
var _state = STATE.IDLE
|
||||||
|
|
||||||
#TODO Get rid of tower_blueprint
|
#TODO Get rid of tower_blueprint
|
||||||
@onready var tower_blueprint = preload("res://Towers/tower.tscn")
|
@onready var tower_blueprint : PackedScene
|
||||||
|
|
||||||
@onready var selected_tower : Tower = null
|
@onready var selected_tower : Tower = null
|
||||||
|
|
||||||
@onready var cam : Camera3D = $"../Camera3D"
|
@onready var cam : Camera3D = $"../Camera3D"
|
||||||
@onready var the_cube : TheCube = %TheCube
|
@onready var the_cube : TheCube = %TheCube
|
||||||
|
|
||||||
|
@onready var towers : Array[Tower]
|
||||||
|
|
||||||
var tower_count : int = 0:
|
var tower_count : int = 0:
|
||||||
set(value):
|
set(value):
|
||||||
tower_count = value
|
tower_count = value
|
||||||
|
|
@ -34,6 +37,7 @@ var selected_collider : CollisionObject3D
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
EventBus.tower_selected.connect(_on_EventBus_tower_selected)
|
EventBus.tower_selected.connect(_on_EventBus_tower_selected)
|
||||||
|
EventBus.tower_to_build.connect(_on_EventBus_tower_to_build)
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
handle_player_controls()
|
handle_player_controls()
|
||||||
|
|
@ -49,6 +53,9 @@ func _process(delta: float) -> void:
|
||||||
EventBus.close_shop.emit()
|
EventBus.close_shop.emit()
|
||||||
|
|
||||||
if Input.is_action_just_pressed("rest"):
|
if Input.is_action_just_pressed("rest"):
|
||||||
|
if _state == STATE.PLACING:
|
||||||
|
quit_placing()
|
||||||
|
|
||||||
EventBus.close_shop.emit()
|
EventBus.close_shop.emit()
|
||||||
if target_tower:
|
if target_tower:
|
||||||
send_to_rest()
|
send_to_rest()
|
||||||
|
|
@ -73,6 +80,7 @@ func handle_player_controls() -> void:
|
||||||
selected_collider = collider
|
selected_collider = collider
|
||||||
|
|
||||||
visible = true
|
visible = true
|
||||||
|
$"selection-a".visible = true
|
||||||
global_position = collider.global_position
|
global_position = collider.global_position
|
||||||
global_position += Vector3(0.0,0.2,0.0)
|
global_position += Vector3(0.0,0.2,0.0)
|
||||||
|
|
||||||
|
|
@ -80,9 +88,33 @@ func handle_player_controls() -> void:
|
||||||
target_tower = collider
|
target_tower = collider
|
||||||
else:
|
else:
|
||||||
target_tower = null
|
target_tower = null
|
||||||
|
|
||||||
|
if _state == STATE.PLACING:
|
||||||
|
tower_to_place.sprite.modulate = "ff4545c8" #If the tower can't be placed he is red
|
||||||
|
$"selection-a".visible = false
|
||||||
|
if selected_collider is BuildTile: #if we are placing a tower, hide the selector model
|
||||||
|
tower_to_place.sprite.modulate = "61ff45c8" #If the tower can be placed he is green
|
||||||
|
|
||||||
|
|
||||||
|
var tower_to_place : Tower #It is freed in the build_tower()
|
||||||
|
func place_tower() -> void:
|
||||||
|
_state = STATE.PLACING
|
||||||
|
tower_to_place = tower_blueprint.instantiate()
|
||||||
|
add_child(tower_to_place)
|
||||||
|
tower_to_place.can_shoot = false
|
||||||
|
tower_to_place.collision_layer = 0
|
||||||
|
tower_to_place.sprite.modulate = "ffffffc8"
|
||||||
|
tower_to_place.show_price_tag()
|
||||||
|
|
||||||
|
func quit_placing() -> void:
|
||||||
|
_state = STATE.IDLE
|
||||||
|
tower_to_place.queue_free()
|
||||||
|
|
||||||
# Refactoriser ce code
|
# Refactoriser ce code
|
||||||
func build_tower() -> void:
|
func build_tower() -> void:
|
||||||
|
if tower_blueprint == null:
|
||||||
|
return
|
||||||
|
|
||||||
if !visible:
|
if !visible:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
@ -109,10 +141,14 @@ func build_tower() -> void:
|
||||||
return
|
return
|
||||||
else :
|
else :
|
||||||
#Can build
|
#Can build
|
||||||
|
quit_placing() #Destroy the tower placeholder
|
||||||
|
|
||||||
EventBus.money_spent.emit(temp_tower.price)
|
EventBus.money_spent.emit(temp_tower.price)
|
||||||
tower_count += 1
|
tower_count += 1
|
||||||
$"../Towers".add_child(temp_tower)
|
$"../Towers".add_child(temp_tower)
|
||||||
EventBus.tower_builded.emit(temp_tower)
|
EventBus.tower_builded.emit(temp_tower)
|
||||||
|
towers.append(temp_tower)
|
||||||
|
tower_blueprint == null
|
||||||
selected_tower = temp_tower
|
selected_tower = temp_tower
|
||||||
send_to_action()
|
send_to_action()
|
||||||
move_tower()
|
move_tower()
|
||||||
|
|
@ -146,3 +182,7 @@ func _on_EventBus_tower_selected(tower : PackedScene):
|
||||||
func _on_cube_icon_pressed() -> void:
|
func _on_cube_icon_pressed() -> void:
|
||||||
pass
|
pass
|
||||||
#open_shop()
|
#open_shop()
|
||||||
|
|
||||||
|
func _on_EventBus_tower_to_build(packed_tower : PackedScene) -> void:
|
||||||
|
tower_blueprint = packed_tower
|
||||||
|
place_tower()
|
||||||
|
|
|
||||||
1
Tests/test_enviroment.gd
Normal file
1
Tests/test_enviroment.gd
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
extends Node3D
|
||||||
1
Tests/test_enviroment.gd.uid
Normal file
1
Tests/test_enviroment.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://dcssahwfr5irf
|
||||||
|
|
@ -1,67 +1,6 @@
|
||||||
[gd_scene load_steps=15 format=3 uid="uid://ukt2r8vmpj00"]
|
[gd_scene load_steps=2 format=3 uid="uid://ukt2r8vmpj00"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://c6ceaa6x357bb" path="res://Assets/Meshes/SM_Cube.glb" id="1_bk1pw"]
|
[ext_resource type="Script" uid="uid://dcssahwfr5irf" path="res://Tests/test_enviroment.gd" id="1_37o1p"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c54881eookjth" path="res://Assets/Meshes/SM_B26.glb" id="2_r8lby"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dxeb1kk5ieix2" path="res://Assets/Meshes/SM_MiniHouse.glb" id="3_0qotu"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://3u5ds5imu6d7" path="res://Assets/Meshes/SM_Minoterie.glb" id="4_twuly"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://trsvfgyds26p" path="res://Assets/Meshes/SM_Polyson.glb" id="5_d84uc"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://c8qg6bkxv643o" path="res://Assets/Meshes/SM_Studio24.glb" id="6_47v0e"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://do60hy3251c0m" path="res://Assets/Meshes/SM_TNP.glb" id="7_o4hcd"]
|
|
||||||
[ext_resource type="Shader" uid="uid://de7bad0qu56fl" path="res://Assets/Shaders/sky.gdshader" id="8_shjfl"]
|
|
||||||
[ext_resource type="Texture2D" uid="uid://drkxt6okkevle" path="res://Assets/Skybox/strange_night.jpg" id="9_fnc5e"]
|
|
||||||
|
|
||||||
[sub_resource type="Curve" id="Curve_t3m1v"]
|
|
||||||
_data = [Vector2(0.119342, 0), 0.0, 0.0, 0, 0, Vector2(0.502058, 0.269663), 0.0, 0.0, 0, 0, Vector2(0.917696, 0), 0.0, 0.0, 0, 0]
|
|
||||||
point_count = 3
|
|
||||||
|
|
||||||
[sub_resource type="CurveTexture" id="CurveTexture_3jcr0"]
|
|
||||||
curve = SubResource("Curve_t3m1v")
|
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_1yhx5"]
|
|
||||||
shader = ExtResource("8_shjfl")
|
|
||||||
shader_parameter/sky_tex = ExtResource("9_fnc5e")
|
|
||||||
shader_parameter/energy = 2.0
|
|
||||||
shader_parameter/gamma = 1.5
|
|
||||||
shader_parameter/tint_ramp = SubResource("CurveTexture_3jcr0")
|
|
||||||
shader_parameter/scale = Vector3(0.5, 0.5, 0.5)
|
|
||||||
shader_parameter/triplanar_blend_power = 20.0
|
|
||||||
shader_parameter/seamless_blend = 0.1
|
|
||||||
|
|
||||||
[sub_resource type="Sky" id="Sky_ls68a"]
|
|
||||||
sky_material = SubResource("ShaderMaterial_1yhx5")
|
|
||||||
|
|
||||||
[sub_resource type="Environment" id="Environment_8tkh1"]
|
|
||||||
background_mode = 2
|
|
||||||
sky = SubResource("Sky_ls68a")
|
|
||||||
ambient_light_source = 3
|
|
||||||
|
|
||||||
[node name="TestEnviroment" type="Node3D"]
|
[node name="TestEnviroment" type="Node3D"]
|
||||||
|
script = ExtResource("1_37o1p")
|
||||||
[node name="SM_Cube" parent="." instance=ExtResource("1_bk1pw")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.364047, 0, 0.441566)
|
|
||||||
|
|
||||||
[node name="SM_B26" parent="." instance=ExtResource("2_r8lby")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.12279, 0, 0.850057)
|
|
||||||
|
|
||||||
[node name="SM_MiniHouse" parent="." instance=ExtResource("3_0qotu")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.181508, 0, 2.29622)
|
|
||||||
|
|
||||||
[node name="SM_Minoterie" parent="." instance=ExtResource("4_twuly")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.34223, 0, -0.243607)
|
|
||||||
|
|
||||||
[node name="SM_Polyson" parent="." instance=ExtResource("5_d84uc")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.64868, 0, -1.9913)
|
|
||||||
|
|
||||||
[node name="SM_Studio24" parent="." instance=ExtResource("6_47v0e")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.637257, 0, -2.4217)
|
|
||||||
|
|
||||||
[node name="SM_TNP" parent="." instance=ExtResource("7_o4hcd")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.95593, 0, -5.94892)
|
|
||||||
|
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
|
||||||
environment = SubResource("Environment_8tkh1")
|
|
||||||
|
|
||||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.955505, 0.294974, 0, -0.294974, 0.955505, 0, 4.83978, 0)
|
|
||||||
light_color = Color(0.779275, 0.87651, 0.94841, 1)
|
|
||||||
light_energy = 2.0
|
|
||||||
|
|
|
||||||
2
Tiles/tile.gd
Normal file
2
Tiles/tile.gd
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
extends StaticBody3D
|
||||||
|
class_name BuildTile
|
||||||
1
Tiles/tile.gd.uid
Normal file
1
Tiles/tile.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://ypfplijax7cd
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
[gd_scene load_steps=3 format=3 uid="uid://d1f6m15niwgt"]
|
[gd_scene load_steps=4 format=3 uid="uid://d1f6m15niwgt"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://ypfplijax7cd" path="res://Tiles/tile.gd" id="1_2ljfi"]
|
||||||
[ext_resource type="PackedScene" uid="uid://p67ggbkjfwm1" path="res://Assets/GLB format/tile.glb" id="1_71op4"]
|
[ext_resource type="PackedScene" uid="uid://p67ggbkjfwm1" path="res://Assets/GLB format/tile.glb" id="1_71op4"]
|
||||||
|
|
||||||
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_71op4"]
|
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_71op4"]
|
||||||
|
|
@ -11,6 +12,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0, 0.5)
|
||||||
[node name="tile2" parent="." instance=ExtResource("1_71op4")]
|
[node name="tile2" parent="." instance=ExtResource("1_71op4")]
|
||||||
|
|
||||||
[node name="StaticBody3D" type="StaticBody3D" parent="."]
|
[node name="StaticBody3D" type="StaticBody3D" parent="."]
|
||||||
|
script = ExtResource("1_2ljfi")
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
|
||||||
shape = SubResource("ConcavePolygonShape3D_71op4")
|
shape = SubResource("ConcavePolygonShape3D_71op4")
|
||||||
|
|
|
||||||
2
Towers/pierre.gd
Normal file
2
Towers/pierre.gd
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
extends Tower
|
||||||
|
class_name Pierre
|
||||||
1
Towers/pierre.gd.uid
Normal file
1
Towers/pierre.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://q4o384wv3ijj
|
||||||
18
Towers/pierre.tscn
Normal file
18
Towers/pierre.tscn
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
[gd_scene load_steps=4 format=3 uid="uid://bj6srer7ghf7p"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://trg7ag3dqr2l" path="res://Towers/tower.tscn" id="1_7f7qx"]
|
||||||
|
[ext_resource type="Script" uid="uid://q4o384wv3ijj" path="res://Towers/pierre.gd" id="1_v16mf"]
|
||||||
|
[ext_resource type="Script" uid="uid://bg0x4egeu17qb" path="res://Scripts/Upgrades/TowerUpgrade.gd" id="3_v16mf"]
|
||||||
|
|
||||||
|
[node name="Pierre" instance=ExtResource("1_7f7qx")]
|
||||||
|
script = ExtResource("1_v16mf")
|
||||||
|
icone = null
|
||||||
|
bio = ""
|
||||||
|
bullet_damage = 1
|
||||||
|
tower_shop = Array[ExtResource("3_v16mf")]([])
|
||||||
|
|
||||||
|
[node name="Sprite3D" parent="." index="6"]
|
||||||
|
modulate = Color(0.3795, 1, 0.27, 0.784314)
|
||||||
|
|
||||||
|
[node name="EnergyBar3D" parent="." index="7"]
|
||||||
|
visible = true
|
||||||
|
|
@ -19,10 +19,10 @@ var bullet : PackedScene = preload("res://Bullets/bullet.tscn")
|
||||||
@export var max_energy : float = 100.0:
|
@export var max_energy : float = 100.0:
|
||||||
set(value):
|
set(value):
|
||||||
max_energy = value
|
max_energy = value
|
||||||
energy_bar.set_max_value(max_energy)
|
|
||||||
@export var energy_regen : float = 10.0
|
@export var energy_regen : float = 10.0
|
||||||
@export var energy_cost : float = 50.0
|
@export var energy_cost : float = 50.0
|
||||||
@onready var energy_bar : EnergyBar3D = $EnergyBar3D
|
@onready var energy_bar : EnergyBar3D = $EnergyBar3D
|
||||||
|
@onready var sprite : Sprite3D = $Sprite3D
|
||||||
|
|
||||||
var energy : float = max_energy:
|
var energy : float = max_energy:
|
||||||
set(value):
|
set(value):
|
||||||
|
|
@ -77,6 +77,7 @@ func apply_upgrade(upgrade : TowerUpgrade):
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
EventBus.tower_upgraded.connect(_on_EventBus_tower_upgraded)
|
EventBus.tower_upgraded.connect(_on_EventBus_tower_upgraded)
|
||||||
energy_bar.set_up(energy, max_energy)
|
energy_bar.set_up(energy, max_energy)
|
||||||
|
energy_bar.set_max_value(max_energy)
|
||||||
$Cooldown.wait_time = action_cooldown
|
$Cooldown.wait_time = action_cooldown
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
func _process(delta: float) -> void:
|
||||||
|
|
@ -131,6 +132,15 @@ func choose_target(_current_targets : Array) -> void:
|
||||||
current = current_target
|
current = current_target
|
||||||
|
|
||||||
|
|
||||||
|
func show_price_tag()-> void:
|
||||||
|
$PriceTag.text = str(price) +" €"
|
||||||
|
visible = true
|
||||||
|
|
||||||
|
|
||||||
|
func hide_price_tag()-> void:
|
||||||
|
visible = false
|
||||||
|
|
||||||
|
|
||||||
func _on_range_body_entered(body: Node3D) -> void:
|
func _on_range_body_entered(body: Node3D) -> void:
|
||||||
if body is Enemy:
|
if body is Enemy:
|
||||||
current_targets.append(body)
|
current_targets.append(body)
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,11 @@ frame = 75
|
||||||
|
|
||||||
[node name="EnergyBar3D" parent="." instance=ExtResource("3_pajr1")]
|
[node name="EnergyBar3D" parent="." instance=ExtResource("3_pajr1")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.44473, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.44473, 0)
|
||||||
|
visible = false
|
||||||
|
|
||||||
|
[node name="PriceTag" type="Label3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.06776, 0)
|
||||||
|
billboard = 2
|
||||||
|
|
||||||
[connection signal="input_event" from="." to="." method="_on_input_event"]
|
[connection signal="input_event" from="." to="." method="_on_input_event"]
|
||||||
[connection signal="body_entered" from="Range" to="." method="_on_range_body_entered"]
|
[connection signal="body_entered" from="Range" to="." method="_on_range_body_entered"]
|
||||||
|
|
|
||||||
24
UI/gui.gd
24
UI/gui.gd
|
|
@ -1,5 +1,29 @@
|
||||||
extends Control
|
extends Control
|
||||||
|
|
||||||
|
@onready var player_manager : PlayerManager = $"../../PlayerManager"
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
pass
|
||||||
|
|
||||||
func _on_button_cube_pressed() -> void:
|
func _on_button_cube_pressed() -> void:
|
||||||
pass # Replace with function body.
|
pass # Replace with function body.
|
||||||
|
|
||||||
|
|
||||||
|
func _on_button_quit_level_pressed() -> void:
|
||||||
|
Transition.goto("res://UI/start_menu.tscn")
|
||||||
|
|
||||||
|
|
||||||
|
func _on_button_quit_game_pressed() -> void:
|
||||||
|
get_tree().quit()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_button_pierre_pressed() -> void:
|
||||||
|
var can_build = true
|
||||||
|
for tower in player_manager.towers:
|
||||||
|
if tower is Pierre:
|
||||||
|
can_build = false
|
||||||
|
player_manager.selected_tower = tower #If can't build, tower is selected
|
||||||
|
|
||||||
|
if can_build: #If Pierre is not builded then build it !
|
||||||
|
print("can build !")
|
||||||
|
EventBus.tower_to_build.emit(load("res://Towers/pierre.tscn"))
|
||||||
|
|
|
||||||
|
|
@ -331,3 +331,6 @@ layout_mode = 2
|
||||||
mouse_default_cursor_shape = 2
|
mouse_default_cursor_shape = 2
|
||||||
|
|
||||||
[connection signal="pressed" from="HBoxContainer/ControlPanelBase/MarginContainer/GridContainer/ButtonCube" to="." method="_on_button_cube_pressed"]
|
[connection signal="pressed" from="HBoxContainer/ControlPanelBase/MarginContainer/GridContainer/ButtonCube" to="." method="_on_button_cube_pressed"]
|
||||||
|
[connection signal="pressed" from="HBoxContainer/ControlPanelBase/MarginContainer/GridContainer/ButtonQuitLevel" to="." method="_on_button_quit_level_pressed"]
|
||||||
|
[connection signal="pressed" from="HBoxContainer/ControlPanelBase/MarginContainer/GridContainer/ButtonQuitGame" to="." method="_on_button_quit_game_pressed"]
|
||||||
|
[connection signal="pressed" from="HBoxContainer/ControlPanelBase/MarginContainer/GridContainer/ButtonPierre" to="." method="_on_button_pierre_pressed"]
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue