mtd/Scripts/Weapons/projectile_weapon.gd

30 lines
794 B
GDScript3
Raw Permalink Normal View History

2024-02-22 06:22:22 +11:00
class_name ProjectileWeapon extends Weapon
2024-02-22 06:22:22 +11:00
@export var projectile_scene: PackedScene
2024-02-22 06:22:22 +11:00
var force: float = 20.0
var projectile_id: int = 0
2024-02-22 06:22:22 +11:00
func shoot() -> void:
super.shoot()
2023-11-16 00:07:41 +11:00
networked_spawn_projectile.rpc(multiplayer.get_unique_id(), -global_transform.basis.z)
@rpc("reliable")
2024-02-22 06:22:22 +11:00
func networked_shoot() -> void:
2023-11-16 00:07:41 +11:00
super.networked_shoot()
@rpc("reliable", "call_local")
2024-02-22 06:22:22 +11:00
func networked_spawn_projectile(peer_id: int, direction: Vector3) -> void:
var projectile: Projectile = projectile_scene.instantiate() as Projectile
projectile.position = global_position
projectile.damage = damage
2023-11-16 00:07:41 +11:00
projectile.direction = direction
projectile.force = force
projectile.owner_id = peer_id
2023-11-16 00:07:41 +11:00
projectile.name = str(peer_id) + str(projectile_id)
get_tree().root.add_child(projectile)
projectile_id += 1