fix weapon draw bug

This commit is contained in:
2023-01-03 23:16:05 +01:00
parent b5286a5f54
commit b2b82271f7
4 changed files with 22 additions and 24 deletions

View File

@@ -29,28 +29,34 @@ var SHOOTING_SPEED: float
var can_shoot : bool
var clip : int
var state = DEFAULT
var tween : Tween
func stop_tween():
if(tween.is_running()):
tween.stop()
func init():
visible = true
state = DEFAULT
SHOOTING_SPEED = 60.0 / RPM
var tween = create_tween()
if(tween != null && tween.is_running()):
tween.stop()
MODEL.position = DRAW_POS
MODEL.rotation = DRAW_ROT
can_shoot = true
tween.tween_callback(InitialPos).set_delay(DRAW_TIME)
InitialPos(DRAW_TIME, DRAW_TIME)
func InitialPos():
var tween = create_tween()
func InitialPos(draw_time, ready_time):
tween = create_tween()
tween.set_trans(Tween.TRANS_QUAD)
tween.set_parallel(true)
tween.tween_property(MODEL, "position", Vector3.ZERO, RECOIL_COOLDOWN / 2)
tween.tween_property(MODEL, "rotation", Vector3.ZERO, RECOIL_COOLDOWN / 2)
tween.tween_callback(func(): state = INITIAL).set_delay(SHOOTING_SPEED / 2)
tween.tween_property(MODEL, "position", Vector3.ZERO, draw_time)
tween.tween_property(MODEL, "rotation", Vector3.ZERO, draw_time)
tween.tween_callback(func(): state = INITIAL).set_delay(ready_time)
@@ -62,7 +68,7 @@ func Shoot():
clip -= 1
state = SHOOT;
var tween = create_tween()
tween = create_tween()
tween.set_trans(Tween.TRANS_ELASTIC)
tween.set_ease(Tween.EASE_OUT)
tween.set_parallel(true)
@@ -70,7 +76,7 @@ func Shoot():
var rand_rot_y = randf_range(-ANGULAR_MOMENTUM.y,ANGULAR_MOMENTUM.y)
var rand_rot_z = randf_range(-ANGULAR_MOMENTUM.z,ANGULAR_MOMENTUM.z)
tween.tween_property(MODEL, "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)
tween.tween_callback(func(): InitialPos(RECOIL_COOLDOWN / 2, SHOOTING_SPEED / 2)).set_delay(SHOOTING_SPEED / 2)
return true
return false
@@ -85,7 +91,7 @@ func Release():
func Reload():
if(clip < MAX_CLIP && state == INITIAL):
state = RELOAD
var tween = create_tween()
tween = create_tween()
tween.set_trans(Tween.TRANS_CIRC)
tween.set_ease(Tween.EASE_IN)
tween.set_parallel(true)