fully sync player movements over network
This commit is contained in:
@@ -58,32 +58,39 @@ func InitialPos(draw_time, ready_time):
|
||||
tween.tween_property(MODEL, "rotation", Vector3.ZERO, draw_time)
|
||||
tween.tween_callback(func(): state = INITIAL).set_delay(ready_time)
|
||||
|
||||
|
||||
|
||||
@rpc
|
||||
func Shoot():
|
||||
if CanShoot():
|
||||
if not FIREMODE:
|
||||
can_shoot = false
|
||||
if not MELEE:
|
||||
clip -= 1
|
||||
|
||||
state = SHOOT;
|
||||
tween = create_tween()
|
||||
tween.set_trans(Tween.TRANS_ELASTIC)
|
||||
tween.set_ease(Tween.EASE_OUT)
|
||||
tween.set_parallel(true)
|
||||
tween.tween_property(MODEL, "position", Vector3(.0, MOMENTUM.x, MOMENTUM.y), RECOIL_COOLDOWN / 2)
|
||||
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(func(): InitialPos(RECOIL_COOLDOWN / 2, SHOOTING_SPEED / 2)).set_delay(SHOOTING_SPEED / 2)
|
||||
rpc("rpc_AnimShoot")
|
||||
return true
|
||||
return false
|
||||
|
||||
@rpc(call_local, any_peer)
|
||||
func rpc_AnimShoot():
|
||||
state = SHOOT;
|
||||
tween = create_tween()
|
||||
tween.set_trans(Tween.TRANS_ELASTIC)
|
||||
tween.set_ease(Tween.EASE_OUT)
|
||||
tween.set_parallel(true)
|
||||
tween.tween_property(MODEL, "position", Vector3(.0, MOMENTUM.x, MOMENTUM.y), RECOIL_COOLDOWN / 2)
|
||||
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(func(): InitialPos(RECOIL_COOLDOWN / 2, SHOOTING_SPEED / 2)).set_delay(SHOOTING_SPEED / 2)
|
||||
|
||||
func CanShoot():
|
||||
return clip > 0 && state == INITIAL && can_shoot
|
||||
|
||||
|
||||
@rpc
|
||||
func Release():
|
||||
rpc("rpc_Release")
|
||||
|
||||
@rpc(call_local, any_peer)
|
||||
func rpc_Release():
|
||||
if !FIREMODE:
|
||||
can_shoot = true
|
||||
|
||||
|
||||
Reference in New Issue
Block a user