first commit
This commit is contained in:
26
Scripts/bullet.gd
Normal file
26
Scripts/bullet.gd
Normal file
@@ -0,0 +1,26 @@
|
||||
extends Node3D
|
||||
|
||||
signal destination_reached
|
||||
|
||||
|
||||
var is_live: bool = false
|
||||
var is_target_reached: bool = true
|
||||
|
||||
var target_position: Vector3
|
||||
|
||||
func _ready() -> void:
|
||||
target_position = Vector3.ZERO
|
||||
destination_reached.connect(on_target_reached)
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if !is_target_reached:
|
||||
self.global_position = lerp(global_position, target_position, delta / 0.1)
|
||||
if (global_position.length() - target_position.length() ) == 0.0:
|
||||
destination_reached.emit()
|
||||
|
||||
func moveTo(target_pos: Vector3):
|
||||
target_position = target_pos
|
||||
is_target_reached = false
|
||||
|
||||
func on_target_reached():
|
||||
is_target_reached = true
|
||||
1
Scripts/bullet.gd.uid
Normal file
1
Scripts/bullet.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://bckkey7836cjp
|
||||
20
Scripts/bullet_stack.gd
Normal file
20
Scripts/bullet_stack.gd
Normal file
@@ -0,0 +1,20 @@
|
||||
extends Node3D
|
||||
@onready var bullet_sc = preload("res://Scenes/bullet.tscn")
|
||||
|
||||
|
||||
var bullets = Array()
|
||||
|
||||
var h_offset: float = 0.15
|
||||
var v_offset: float = 0.1
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
GameManager.set_bullet_stack(self)
|
||||
generate_bullet_stack()
|
||||
|
||||
func generate_bullet_stack():
|
||||
for i in range(1, 22, 1):
|
||||
var newBullet = bullet_sc.instantiate()
|
||||
newBullet.position = Vector3(i*h_offset,0,0)
|
||||
bullets.append(newBullet)
|
||||
add_child(newBullet)
|
||||
1
Scripts/bullet_stack.gd.uid
Normal file
1
Scripts/bullet_stack.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://dcmqt4341kxem
|
||||
24
Scripts/game_manager.gd
Normal file
24
Scripts/game_manager.gd
Normal file
@@ -0,0 +1,24 @@
|
||||
extends Node
|
||||
|
||||
var bullets: Array
|
||||
|
||||
var player1_revolver: Node3D
|
||||
var player2_revolver: Node3D
|
||||
var bullet_stack: Node3D
|
||||
|
||||
func _ready() -> void:
|
||||
bullets.resize(21)
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if event.is_action_released("load"):
|
||||
player1_revolver.load_bullet(bullet_stack.bullets[0])
|
||||
|
||||
func set_player_revolver(newRevolver):
|
||||
player1_revolver = newRevolver
|
||||
func set_enemy_revolver(newRevolver):
|
||||
player2_revolver = newRevolver
|
||||
func set_bullet_stack(newStack):
|
||||
bullet_stack = newStack
|
||||
|
||||
func add_bullet():
|
||||
pass
|
||||
1
Scripts/game_manager.gd.uid
Normal file
1
Scripts/game_manager.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://cjdog8xi8r8xf
|
||||
29
Scripts/revolver.gd
Normal file
29
Scripts/revolver.gd
Normal file
@@ -0,0 +1,29 @@
|
||||
extends Node3D
|
||||
|
||||
var bullet_target_pos = Vector3(2.231,0.03,4.612)
|
||||
|
||||
var loaded_bullets = Array()
|
||||
var max_bullets: int = 6
|
||||
var current_round: int = 0
|
||||
|
||||
|
||||
@export var is_player_revolver: bool = false
|
||||
@export var cylinder: Node3D
|
||||
|
||||
var is_cylinder_out: bool = false
|
||||
func _ready() -> void:
|
||||
if is_player_revolver:
|
||||
GameManager.set_player_revolver(self)
|
||||
else:
|
||||
GameManager.set_enemy_revolver(self)
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if is_cylinder_out:
|
||||
cylinder.position = lerp(cylinder.position, Vector3(1.947,0.543,3.979), delta/ 0.1)
|
||||
else:
|
||||
cylinder.position = lerp(cylinder.position, Vector3(0,0.543,3.979), delta/ 0.1)
|
||||
func load_bullet(bullet_object):
|
||||
bullet_object.moveTo(to_global(bullet_target_pos))
|
||||
is_cylinder_out = true
|
||||
func shoot():
|
||||
pass
|
||||
1
Scripts/revolver.gd.uid
Normal file
1
Scripts/revolver.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://d3174fuibuuyo
|
||||
Reference in New Issue
Block a user