Fix Card Selection Menu, Pause

main
Luna Brovchuk 2023-10-02 17:39:11 +02:00
parent bbe9a17cfa
commit ccac9da653
6 changed files with 63 additions and 17 deletions

View File

@ -48,8 +48,12 @@ func _physics_process(delta):
$Sprite.global_position.y += sin(Time.get_ticks_msec() * 0.01) / 3 $Sprite.global_position.y += sin(Time.get_ticks_msec() * 0.01) / 3
velocity *= speed * speed_multiplier velocity *= speed * speed_multiplier
if not shooting: if Global.playing:
velocity = move_and_slide(velocity) $Sprite.playing = true
if not shooting:
velocity = move_and_slide(velocity)
else:
$Sprite.playing = false
func _shoot(): func _shoot():
sonic_wave = sonic_wave_preload.instance() sonic_wave = sonic_wave_preload.instance()

View File

@ -124,7 +124,6 @@ visible = false
position = Vector2( 11, 2 ) position = Vector2( 11, 2 )
frames = ExtResource( 5 ) frames = ExtResource( 5 )
animation = "idle" animation = "idle"
frame = 3
playing = true playing = true
[node name="AudioGetDamage" type="AudioStreamPlayer" parent="."] [node name="AudioGetDamage" type="AudioStreamPlayer" parent="."]

View File

@ -138,7 +138,7 @@ func _physics_process(delta):
choose_target() choose_target()
if target != null and is_instance_valid(target) and not target.dead: if Global.playing and target != null and is_instance_valid(target) and not target.dead:
target.material = outline_material target.material = outline_material
if recharge_timer >= get_recharge(): if recharge_timer >= get_recharge():

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=28 format=2] [gd_scene load_steps=29 format=2]
[ext_resource path="res://src/scenes/menu/background/background.png" type="Texture" id=1] [ext_resource path="res://src/scenes/menu/background/background.png" type="Texture" id=1]
[ext_resource path="res://src/scenes/game/sprites/background_houses.png" type="Texture" id=2] [ext_resource path="res://src/scenes/game/sprites/background_houses.png" type="Texture" id=2]
@ -6,6 +6,7 @@
[ext_resource path="res://res/themes/8px.tres" type="Theme" id=4] [ext_resource path="res://res/themes/8px.tres" type="Theme" id=4]
[ext_resource path="res://src/models/player/Player.tscn" type="PackedScene" id=5] [ext_resource path="res://src/models/player/Player.tscn" type="PackedScene" id=5]
[ext_resource path="res://src/scenes/game/sprites/health/health.png" type="Texture" id=6] [ext_resource path="res://src/scenes/game/sprites/health/health.png" type="Texture" id=6]
[ext_resource path="res://src/scenes/game/card_placeholder.gd" type="Script" id=8]
[ext_resource path="res://src/scenes/game/sprites/player_icon.png" type="Texture" id=10] [ext_resource path="res://src/scenes/game/sprites/player_icon.png" type="Texture" id=10]
[ext_resource path="res://src/scenes/game/game.gd" type="Script" id=11] [ext_resource path="res://src/scenes/game/game.gd" type="Script" id=11]
[ext_resource path="res://src/scenes/game/sprites/ui_background.png" type="Texture" id=12] [ext_resource path="res://src/scenes/game/sprites/ui_background.png" type="Texture" id=12]
@ -153,10 +154,12 @@ color = Color( 0.133333, 0.133333, 0.137255, 1 )
[node name="UIWrapper" type="CanvasLayer" parent="."] [node name="UIWrapper" type="CanvasLayer" parent="."]
layer = 3 layer = 3
follow_viewport_enable = true
[node name="UI" type="Control" parent="UIWrapper"] [node name="UI" type="Control" parent="UIWrapper"]
margin_right = 40.0 margin_right = 320.0
margin_bottom = 40.0 margin_bottom = 180.0
mouse_filter = 2
[node name="Background" type="TextureRect" parent="UIWrapper/UI"] [node name="Background" type="TextureRect" parent="UIWrapper/UI"]
margin_top = 120.0 margin_top = 120.0
@ -252,36 +255,47 @@ margin_right = 40.0
margin_bottom = 40.0 margin_bottom = 40.0
[node name="Cards" type="Control" parent="UIWrapper/UI"] [node name="Cards" type="Control" parent="UIWrapper/UI"]
visible = false
margin_right = 320.0 margin_right = 320.0
margin_bottom = 120.0 margin_bottom = 120.0
mouse_filter = 2
[node name="LeftPlaceholder" type="Control" parent="UIWrapper/UI/Cards"] [node name="LeftPlaceholder" type="Control" parent="UIWrapper/UI/Cards" groups=["card_placeholder"]]
margin_left = 8.0 margin_left = 8.0
margin_top = 8.0 margin_top = 8.0
margin_right = 102.0 margin_right = 102.0
margin_bottom = 111.0 margin_bottom = 111.0
mouse_filter = 1
script = ExtResource( 8 )
[node name="Card" parent="UIWrapper/UI/Cards/LeftPlaceholder" instance=ExtResource( 18 )] [node name="Card" parent="UIWrapper/UI/Cards/LeftPlaceholder" instance=ExtResource( 18 )]
[node name="CenterPlaceholder" type="Control" parent="UIWrapper/UI/Cards"] [node name="CenterPlaceholder" type="Control" parent="UIWrapper/UI/Cards" groups=["card_placeholder"]]
margin_left = 113.0 margin_left = 113.0
margin_top = 8.0 margin_top = 8.0
margin_right = 207.0 margin_right = 207.0
margin_bottom = 111.0 margin_bottom = 111.0
mouse_filter = 1
script = ExtResource( 8 )
id = 1
[node name="Card" parent="UIWrapper/UI/Cards/CenterPlaceholder" instance=ExtResource( 18 )] [node name="Card" parent="UIWrapper/UI/Cards/CenterPlaceholder" instance=ExtResource( 18 )]
[node name="RightPlaceholder" type="Control" parent="UIWrapper/UI/Cards"] [node name="RightPlaceholder" type="Control" parent="UIWrapper/UI/Cards" groups=["card_placeholder"]]
margin_left = 218.0 margin_left = 218.0
margin_top = 8.0 margin_top = 8.0
margin_right = 312.0 margin_right = 312.0
margin_bottom = 111.0 margin_bottom = 111.0
mouse_filter = 1
script = ExtResource( 8 )
id = 2
[node name="Card" parent="UIWrapper/UI/Cards/RightPlaceholder" instance=ExtResource( 18 )] [node name="Card" parent="UIWrapper/UI/Cards/RightPlaceholder" instance=ExtResource( 18 )]
[node name="Gameover" type="Control" parent="UIWrapper/UI"] [node name="Gameover" type="Control" parent="UIWrapper/UI"]
margin_right = 320.0 margin_right = 320.0
margin_bottom = 180.0 margin_bottom = 180.0
mouse_filter = 2
[node name="Sprite" type="Sprite" parent="UIWrapper/UI/Gameover"] [node name="Sprite" type="Sprite" parent="UIWrapper/UI/Gameover"]
modulate = Color( 1, 1, 1, 0 ) modulate = Color( 1, 1, 1, 0 )

View File

@ -0,0 +1,18 @@
extends Control
export var id: int
onready var game = get_tree().get_root().get_node("Game")
func _process(delta):
if not Global.playing:
if game.selected_card == null or game.selected_card == id:
self.modulate = Color(1, 1, 1, 1)
else:
self.modulate = Color(0.2, 0.2, 0.2, 1)
func _ready():
connect("mouse_entered", self, "select_hover", [self])
func select_hover(node):
game.selected_card = id

View File

@ -1,5 +1,6 @@
extends Node extends Node
var selected_card = null
var difficulty = 0 var difficulty = 0
var last_diff = 0 var last_diff = 0
var mob_preloads = [ var mob_preloads = [
@ -13,12 +14,18 @@ var mob_threshold = [5, 7, 10, 7]
func _ready(): func _ready():
Global.playing = true Global.playing = true
Global.play_time = 55 Global.play_time = 56
Global.health = 5 Global.health = 5
Global.add_health(0) Global.add_health(0)
func pause(): func _input(event):
Global.playing = false if not Global.playing:
if event is InputEventMouseButton:
select_card()
if event is InputEventMouseMotion:
var pos = event.position
if pos.x < 8 or pos.y < 8 or pos.x > 312 or pos.y > 112:
selected_card = null
func _physics_process(delta): func _physics_process(delta):
if Global.playing: if Global.playing:
@ -29,11 +36,11 @@ func _physics_process(delta):
Global.playing = false Global.playing = false
last_diff = difficulty last_diff = difficulty
var cards = range(8) var cards = range(8)
for card_placeholder in $UIWrapper/UI/Cards.get_children(): for child in $UIWrapper/UI/Cards.get_children():
randomize() randomize()
card_placeholder.get_node("Card").frame = cards.pop_at(randi()%cards.size()) if child.is_in_group("card_placeholder"):
child.get_node("Card").frame = cards.pop_at(randi()%cards.size())
$UIWrapper/UI/Cards.visible = true $UIWrapper/UI/Cards.visible = true
#TODO Pause
$UIWrapper/UI/LevelProgressBar/ColorRect.rect_size.x = (Global.play_time - difficulty * 60) / 60.0 * 300 $UIWrapper/UI/LevelProgressBar/ColorRect.rect_size.x = (Global.play_time - difficulty * 60) / 60.0 * 300
@ -45,3 +52,7 @@ func _physics_process(delta):
var mob_instance = mob_preloads[i].instance() var mob_instance = mob_preloads[i].instance()
$View/Enemies.add_child(mob_instance) $View/Enemies.add_child(mob_instance)
func select_card():
if selected_card != null:
Global.playing = true
$UIWrapper/UI/Cards.visible = false