Variables to Weapon.gd
This commit is contained in:
@@ -5,8 +5,10 @@
|
||||
|
||||
[node name="RevolverFix" type="Node3D"]
|
||||
script = ExtResource("1_2cfte")
|
||||
initialPos = Transform3D(0.05, 0, 0, 0, 0.05, 0, 0, 0, 0.05, 0, 0, 0)
|
||||
transition_speed = 5.0
|
||||
MOMENTUM = Vector2(-0.08, -0.25)
|
||||
ANGULAR_MOMENTUM = Vector3(-12, 7, 10)
|
||||
RECOIL_COOLDOWN = 0.35
|
||||
RPM = 600.0
|
||||
|
||||
[node name="Revolver" parent="." instance=ExtResource("1_81137")]
|
||||
transform = Transform3D(0.05, 0, 0, 0, 0.017101, -0.0469845, 0, 0.0469845, 0.017101, 0, -0.526001, -0.296439)
|
||||
|
||||
@@ -1,26 +1,35 @@
|
||||
extends Node3D
|
||||
class_name Weapon
|
||||
|
||||
const MAX_CLIP = 5
|
||||
var damage = 25
|
||||
var clip = 444444
|
||||
@export var initialPos : Transform3D
|
||||
@export var transition_speed = 1.0
|
||||
var initialTransform : Transform3D
|
||||
|
||||
|
||||
const DEFAULT = 0
|
||||
const INITIAL = 1
|
||||
const SHOOT = 2
|
||||
const RELOAD = 3
|
||||
|
||||
const DRAW_TIME = 0.35
|
||||
|
||||
#TODO: Load gun config from file
|
||||
|
||||
@export var MAX_CLIP = 5
|
||||
@export var DAMAGE = 25
|
||||
@export var MOMENTUM : Vector2
|
||||
@export var ANGULAR_MOMENTUM : Vector3
|
||||
@export var RECOIL_COOLDOWN : float
|
||||
@export var RPM: float
|
||||
var SHOOTING_SPEED: float
|
||||
var clip = 444444
|
||||
|
||||
|
||||
|
||||
|
||||
var state = DEFAULT
|
||||
|
||||
func _ready():
|
||||
SHOOTING_SPEED = 60.0 / RPM
|
||||
var tween = create_tween()
|
||||
tween.set_trans(Tween.TRANS_CIRC)
|
||||
tween.set_ease(Tween.EASE_IN_OUT)
|
||||
tween.tween_callback(InitialPos).set_delay(2)
|
||||
tween.tween_callback(InitialPos).set_delay(DRAW_TIME)
|
||||
|
||||
|
||||
func InitialPos():
|
||||
@@ -28,9 +37,9 @@ func InitialPos():
|
||||
tween.set_trans(Tween.TRANS_CIRC)
|
||||
tween.set_ease(Tween.EASE_IN_OUT)
|
||||
tween.set_parallel(true)
|
||||
tween.tween_property($Revolver, "position", initialPos.origin, 0.4)
|
||||
tween.tween_property($Revolver, "rotation", Vector3.ZERO, 0.4)
|
||||
tween.tween_callback(func(): state = INITIAL).set_delay(0.3)
|
||||
tween.tween_property($Revolver, "position", Vector3.ZERO, RECOIL_COOLDOWN / 2)
|
||||
tween.tween_property($Revolver, "rotation", Vector3.ZERO, RECOIL_COOLDOWN / 2)
|
||||
tween.tween_callback(func(): state = INITIAL).set_delay(SHOOTING_SPEED / 2)
|
||||
|
||||
|
||||
|
||||
@@ -42,13 +51,14 @@ func Shoot():
|
||||
tween.set_trans(Tween.TRANS_ELASTIC)
|
||||
tween.set_ease(Tween.EASE_OUT)
|
||||
tween.set_parallel(true)
|
||||
tween.tween_property($Revolver, "position", get_node("Revolver").transform.origin + Vector3(.0, 0.3, -.3), 0.3)
|
||||
tween.tween_property($Revolver, "rotation", Vector3(deg_to_rad(-60),.0,.0),0.3)
|
||||
tween.tween_callback(InitialPos).set_delay(0.3)
|
||||
tween.tween_property($Revolver, "position", Vector3(.0, MOMENTUM.x, MOMENTUM.y), RECOIL_COOLDOWN / 2)
|
||||
var rand_rot_y = randi_range(-ANGULAR_MOMENTUM.y,ANGULAR_MOMENTUM.y)
|
||||
var rand_rot_z = randi_range(-ANGULAR_MOMENTUM.z,ANGULAR_MOMENTUM.z)
|
||||
tween.tween_property($Revolver, "rotation", Vector3(deg_to_rad(ANGULAR_MOMENTUM.x),deg_to_rad(rand_rot_y),deg_to_rad(rand_rot_z)),RECOIL_COOLDOWN /2)
|
||||
tween.tween_callback(InitialPos).set_delay(SHOOTING_SPEED / 2)
|
||||
return true
|
||||
return false
|
||||
|
||||
|
||||
|
||||
func Reload():
|
||||
if(clip < MAX_CLIP && state == INITIAL):
|
||||
|
||||
Reference in New Issue
Block a user