blob: 5e6b84d5dd12b7bcf6585a61f0c28efc191edfb1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
extends "res://scripts/ballistics/NetworkedProjectile.gd"
export var drag_constant: float = 0.3
var damage_exceptions = []
var oldvel: Vector3
var oldoldvel: Vector3
const inventory_name: String = "cannonball"
func _physics_process(_delta):
if is_network_master():
oldoldvel = oldvel
oldvel = linear_velocity
add_force(-1*linear_velocity*drag_constant, Vector3.ZERO)
if global_transform.origin.y < -20:
rpc("net_remove")
func get_init_info():
return {"linear_velocity" : linear_velocity, "angular_velocity" : angular_velocity, "oldvel" : oldvel, "shooter" : shooter, "shooter_id" : shooter_id}
func _on_collision(body):
if is_network_master() and oldoldvel.length() > 20 and !damage_exceptions.has(body) and body.has_method("damage"):
body.rpc("damage", oldoldvel.length(), "BLUNT", [shooter_id, shooter], "using 'cannon'")
damage_exceptions.append(body)
|