Fixed shield issue by removing old experiments and ensuring the right
values were being used!
This commit is contained in:
parent
c8d578af04
commit
b5d97c0ffb
3 changed files with 32 additions and 20 deletions
6
main.gd
6
main.gd
|
|
@ -75,6 +75,9 @@ func new_game():
|
||||||
Global.score = 0
|
Global.score = 0
|
||||||
$CanvasLayer/UI.update_score(Global.score)
|
$CanvasLayer/UI.update_score(Global.score)
|
||||||
|
|
||||||
|
# Tell the shield to recharge.
|
||||||
|
# EventBus.initialize_shieldbar.emit()
|
||||||
|
# await EventBus.initialize_shieldbar
|
||||||
|
|
||||||
# instantiate the Player
|
# instantiate the Player
|
||||||
# await get_tree().create_timer(1).timeout
|
# await get_tree().create_timer(1).timeout
|
||||||
|
|
@ -82,9 +85,6 @@ func new_game():
|
||||||
add_child(instance)
|
add_child(instance)
|
||||||
$Player.start()
|
$Player.start()
|
||||||
|
|
||||||
# Tell the shield to recharge.
|
|
||||||
EventBus.initialize_shieldbar.emit()
|
|
||||||
|
|
||||||
# Tell the enemies to spawn!
|
# Tell the enemies to spawn!
|
||||||
#await get_tree().create_timer(.5).timeout
|
#await get_tree().create_timer(.5).timeout
|
||||||
spawn_enemies()
|
spawn_enemies()
|
||||||
|
|
|
||||||
44
player.gd
44
player.gd
|
|
@ -9,11 +9,18 @@ signal damage_taken
|
||||||
@export var cooldown: float = 0.25
|
@export var cooldown: float = 0.25
|
||||||
@export var bullet_scene : PackedScene
|
@export var bullet_scene : PackedScene
|
||||||
@export var max_shield: int = 10
|
@export var max_shield: int = 10
|
||||||
var shield: int = 1:
|
var shield: int = 0:
|
||||||
set = set_shield
|
set = set_shield
|
||||||
|
|
||||||
|
|
||||||
var can_shoot = false
|
var can_shoot = false
|
||||||
var shader_active = false
|
var shader_active: bool = false:
|
||||||
|
set(value):
|
||||||
|
if value == true:
|
||||||
|
print_debug("Shader active!", get_stack())
|
||||||
|
else:
|
||||||
|
print_debug("Shader inactive!", get_stack())
|
||||||
|
|
||||||
var clamp_shield = clamp(shield, 0, max_shield)
|
var clamp_shield = clamp(shield, 0, max_shield)
|
||||||
|
|
||||||
@onready var screensize = get_viewport_rect().size
|
@onready var screensize = get_viewport_rect().size
|
||||||
|
|
@ -35,10 +42,11 @@ func start():
|
||||||
position = Vector2(screensize.x / 2, screensize.y)
|
position = Vector2(screensize.x / 2, screensize.y)
|
||||||
var tween = create_tween()
|
var tween = create_tween()
|
||||||
tween.tween_property(self, "position:y", 48 * -1, .75).as_relative()
|
tween.tween_property(self, "position:y", 48 * -1, .75).as_relative()
|
||||||
|
await tween.finished
|
||||||
$GunCooldown.wait_time = cooldown
|
$GunCooldown.wait_time = cooldown
|
||||||
set_shield(max_shield)
|
set_shield(max_shield)
|
||||||
print(shield)
|
print(shield)
|
||||||
await get_tree().create_timer(2).timeout
|
await get_tree().create_timer(1).timeout
|
||||||
set_process(true)
|
set_process(true)
|
||||||
$Ship/Boosters.show()
|
$Ship/Boosters.show()
|
||||||
can_shoot = true
|
can_shoot = true
|
||||||
|
|
@ -74,11 +82,11 @@ func shoot():
|
||||||
|
|
||||||
func set_shield(value: int):
|
func set_shield(value: int):
|
||||||
var old_value = shield
|
var old_value = shield
|
||||||
shield = clamp(value, 0, max_shield)
|
# shield = clamp(value, 0, max_shield)
|
||||||
|
shield = min(max_shield, value)
|
||||||
EventBus.shield_changed.emit(max_shield, old_value, shield)
|
EventBus.shield_changed.emit(max_shield, old_value, shield)
|
||||||
print("Shield set to:", shield)
|
print("Shield set to:", shield)
|
||||||
if shield <= 0:
|
if shield <= 0:
|
||||||
print("Shader deactivated!")
|
|
||||||
set_process(false)
|
set_process(false)
|
||||||
$Ship.hide()
|
$Ship.hide()
|
||||||
shader_active = false
|
shader_active = false
|
||||||
|
|
@ -93,27 +101,31 @@ func _on_gun_cooldown_timeout() -> void:
|
||||||
|
|
||||||
func _on_area_entered(area):
|
func _on_area_entered(area):
|
||||||
if area.is_in_group("enemies"):
|
if area.is_in_group("enemies"):
|
||||||
area.explode()
|
|
||||||
shield -= int(max_shield / 2)
|
shield -= int(max_shield / 2)
|
||||||
damage_taken.emit()
|
# damage_taken.emit()
|
||||||
|
area.explode()
|
||||||
if area.is_in_group("enemy_bullets") and self.monitoring == true:
|
if area.is_in_group("enemy_bullets") and self.monitoring == true:
|
||||||
damage_taken.emit()
|
damage_taken.emit()
|
||||||
|
|
||||||
|
|
||||||
func _on_damage_taken() -> void:
|
func _on_damage_taken():
|
||||||
shader_active = true
|
|
||||||
print("Shader active!")
|
if shield == 0:
|
||||||
$Ship.material.set_shader_parameter("toggle", 1.0)
|
shader_active = false
|
||||||
await get_tree().create_timer(1).timeout
|
return
|
||||||
$Ship.material.set_shader_parameter("toggle", 0.0)
|
|
||||||
shader_active = false
|
else:
|
||||||
print("Shader deactivated!")
|
shader_active = true
|
||||||
|
$Ship.material.set_shader_parameter("toggle", 1.0)
|
||||||
|
await get_tree().create_timer(1).timeout
|
||||||
|
$Ship.material.set_shader_parameter("toggle", 0.0)
|
||||||
|
shader_active = false
|
||||||
|
|
||||||
func _on_player_victory() -> void:
|
func _on_player_victory() -> void:
|
||||||
print("Victory!")
|
print("Victory!")
|
||||||
set_process(false)
|
set_process(false)
|
||||||
$Ship.frame = 1
|
$Ship.frame = 1
|
||||||
await get_tree().create_timer(2).timeout
|
await get_tree().create_timer(1).timeout
|
||||||
var tween = create_tween()
|
var tween = create_tween()
|
||||||
tween.tween_property(self, "position:y", 60 * -1, .25).set_ease(tween.EASE_IN)
|
tween.tween_property(self, "position:y", 60 * -1, .25).set_ease(tween.EASE_IN)
|
||||||
await tween.finished
|
await tween.finished
|
||||||
|
|
|
||||||
2
ui.gd
2
ui.gd
|
|
@ -16,7 +16,7 @@ func update_score(value):
|
||||||
|
|
||||||
func _on_shield_changed(max_value: int, old_value: int, new_value: int) -> void:
|
func _on_shield_changed(max_value: int, old_value: int, new_value: int) -> void:
|
||||||
shield_bar.max_value = max_value
|
shield_bar.max_value = max_value
|
||||||
shield_bar.value = new_value
|
shield_bar.value = old_value
|
||||||
var tween = create_tween()
|
var tween = create_tween()
|
||||||
print_debug("Tweening shield bar")
|
print_debug("Tweening shield bar")
|
||||||
tween.tween_property(shield_bar, "value", new_value, .25).set_trans(Tween.TRANS_LINEAR)
|
tween.tween_property(shield_bar, "value", new_value, .25).set_trans(Tween.TRANS_LINEAR)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue