added phase 1 of gameplay and ui buttons
This commit is contained in:
@@ -10,6 +10,8 @@ var bullets: Array
|
||||
|
||||
var player1_revolver: Node3D
|
||||
var player2_revolver: Node3D
|
||||
var is_player1_loaded: bool = false
|
||||
var is_player2_loaded: bool = false
|
||||
var bullet_stack: Node3D
|
||||
|
||||
func _ready() -> void:
|
||||
@@ -52,19 +54,37 @@ func check_unloaded_bullets():
|
||||
else:
|
||||
return false
|
||||
|
||||
func check_loaded_bullets(revolver: Node3D):
|
||||
if revolver.can_be_loaded():
|
||||
return true
|
||||
else:
|
||||
return false
|
||||
|
||||
func end_player_turn():
|
||||
if check_unloaded_bullets():
|
||||
if !is_player2_loaded:
|
||||
set_state(GameState.PLAYER2_GUN_LOAD)
|
||||
|
||||
end_turn()
|
||||
|
||||
func end_enemy_turn():
|
||||
if is_player1_loaded == false:
|
||||
print("Player Turn")
|
||||
set_state(GameState.PLAYER1_GUN_LOAD)
|
||||
end_turn()
|
||||
func end_turn():
|
||||
if check_unloaded_bullets():
|
||||
if is_player1_loaded and is_player2_loaded:
|
||||
print("Phase 2")
|
||||
|
||||
else:
|
||||
set_state(GameState.PLAYER2_UNLOAD)
|
||||
print("End of Phase 1")
|
||||
func end_enemy_turn():
|
||||
if check_unloaded_bullets():
|
||||
set_state(GameState.PLAYER1_GUN_LOAD)
|
||||
else:
|
||||
set_state(GameState.PLAYER1_UNLOAD)
|
||||
print("End of Phase 1")
|
||||
func get_enemy_revolver() -> Node3D:
|
||||
return player2_revolver
|
||||
|
||||
|
||||
func get_phase2_player_start():
|
||||
var randNumb = randi_range(0,1)
|
||||
if randNumb == 0:
|
||||
set_state(GameState.PLAYER1_UNLOAD)
|
||||
else:
|
||||
set_state(GameState.PLAYER2_UNLOAD)
|
||||
|
||||
12
Scripts/player_choice_box.gd
Normal file
12
Scripts/player_choice_box.gd
Normal file
@@ -0,0 +1,12 @@
|
||||
extends HBoxContainer
|
||||
var start_pos: Vector2
|
||||
|
||||
func _ready() -> void:
|
||||
start_pos = self.position
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if event.is_action_released("left_mouse_click"):
|
||||
self.position = Vector2(1000.0,1000.0)
|
||||
|
||||
func on_state_changed():
|
||||
pass
|
||||
1
Scripts/player_choice_box.gd.uid
Normal file
1
Scripts/player_choice_box.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://2ktulh0d67v0
|
||||
@@ -4,7 +4,7 @@ var bullet_target_pos = Vector3(1.95,0.03,4.612) #2.231
|
||||
|
||||
var loaded_bullets = Array()
|
||||
var max_bullets: int = 6
|
||||
var current_round: int = 1
|
||||
var current_round: int = 0
|
||||
var timer: Timer
|
||||
|
||||
@export var is_player_revolver: bool = false
|
||||
@@ -12,7 +12,7 @@ var timer: Timer
|
||||
|
||||
var is_cylinder_out: bool = false
|
||||
func _ready() -> void:
|
||||
loaded_bullets.resize(max_bullets + 1)
|
||||
loaded_bullets.resize(max_bullets)
|
||||
timer = $Timer
|
||||
if is_player_revolver:
|
||||
GameManager.set_player_revolver(self)
|
||||
@@ -27,6 +27,8 @@ func _process(delta: float) -> void:
|
||||
|
||||
cylinder.rotation_degrees = lerp(cylinder.rotation_degrees,Vector3(30 + current_round*60,90,90), delta / 0.1 )
|
||||
#cylinder.rotation_degrees = Vector3(30 + current_round*60,90,90)
|
||||
|
||||
|
||||
func load_bullet(bullet_object: Node3D):
|
||||
loaded_bullets[current_round] = bullet_object
|
||||
bullet_object.is_loaded = true
|
||||
@@ -39,15 +41,33 @@ func load_bullet(bullet_object: Node3D):
|
||||
#cylinder.rotation.x = 90.0
|
||||
|
||||
func on_load_anim_end():
|
||||
timer.timeout.disconnect(on_load_anim_end)
|
||||
if !can_be_loaded():
|
||||
if is_player_revolver:
|
||||
GameManager.is_player1_loaded = true
|
||||
else:
|
||||
GameManager.is_player2_loaded = true
|
||||
is_cylinder_out = false
|
||||
if is_player_revolver:
|
||||
GameManager.end_player_turn()
|
||||
else:
|
||||
GameManager.end_enemy_turn()
|
||||
timer.timeout.disconnect(on_load_anim_end)
|
||||
|
||||
|
||||
func on_bullet_reached():
|
||||
current_round += 1
|
||||
timer.start()
|
||||
func shoot():
|
||||
pass
|
||||
|
||||
|
||||
func can_be_loaded():
|
||||
var free: int = 0
|
||||
for bullet in loaded_bullets:
|
||||
if bullet == null:
|
||||
free += 1
|
||||
if free > 0:
|
||||
return true
|
||||
else:
|
||||
return false
|
||||
|
||||
|
||||
Reference in New Issue
Block a user