summaryrefslogtreecommitdiff
path: root/scripts/ballistics
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/ballistics')
-rw-r--r--scripts/ballistics/Cannonball.gd11
-rw-r--r--scripts/ballistics/NetworkedProjectile.gd22
2 files changed, 24 insertions, 9 deletions
diff --git a/scripts/ballistics/Cannonball.gd b/scripts/ballistics/Cannonball.gd
index e59ca6c..15f35a3 100644
--- a/scripts/ballistics/Cannonball.gd
+++ b/scripts/ballistics/Cannonball.gd
@@ -1,11 +1,9 @@
-extends RigidBody
+extends "res://scripts/ballistics/NetworkedProjectile.gd"
export var drag_constant = 0.3
var damage_exceptions = []
var oldvel
-var shooter = "WORLD"
-
func _physics_process(_delta):
oldvel = linear_velocity
add_force(-1*linear_velocity*drag_constant, Vector3.ZERO)
@@ -13,12 +11,7 @@ func _physics_process(_delta):
func get_init_info():
return {"linear_velocity" : linear_velocity, "angular_velocity" : angular_velocity, "oldvel" : oldvel, "shooter" : shooter}
-func mp_init(init_info):
- for variable in init_info.keys():
- set(variable, init_info[variable])
-
-
func _on_collision(body):
if linear_velocity.length() > 20 and !damage_exceptions.has(body) and body.has_method("damage"):
- body.damage(oldvel.length(), "blunt")
+ body.rpc("damage", oldvel.length(), "blunt", shooter, "using 'cannon'")
damage_exceptions.append(body)
diff --git a/scripts/ballistics/NetworkedProjectile.gd b/scripts/ballistics/NetworkedProjectile.gd
new file mode 100644
index 0000000..0626e9f
--- /dev/null
+++ b/scripts/ballistics/NetworkedProjectile.gd
@@ -0,0 +1,22 @@
+extends RigidBody
+
+
+var shooter = "WORLD"
+
+
+# Called when the node enters the scene tree for the first time.
+func _ready():
+ pass # Replace with function body.
+
+func mp_init(init_info):
+ for variable in init_info.keys():
+ set(variable, init_info[variable])
+
+remote func update_phys_transform(t, lv, av):
+ transform = t
+ linear_velocity = lv
+ angular_velocity = av
+
+func _integrate_forces(state):
+ if is_network_master():
+ rpc("update_phys_transform", transform, linear_velocity, angular_velocity)