feat: implement plasma gun and rocket swarm mechanics along with various 3D asset imports

This commit is contained in:
DottsGit
2026-06-07 18:23:47 -04:00
parent c9f082ebba
commit 4bb867a6f2
50 changed files with 5372 additions and 437 deletions
+14 -13
View File
@@ -20,18 +20,19 @@ func _init() -> void:
projectile_speed = 25.0 # Slower so they have time to home
func _build_model() -> void:
position = Vector3(0.4, -0.4, -0.6)
position = Vector3(0.4, -0.4, -0.656)
var mat_box = StandardMaterial3D.new()
mat_box.albedo_color = Color(0.2, 0.4, 0.5)
# Box launcher
var body = MeshInstance3D.new()
var b_mesh = BoxMesh.new()
b_mesh.size = Vector3(0.2, 0.2, 0.4)
b_mesh.material = mat_box
body.mesh = b_mesh
model_root.add_child(body)
var model_scene = load("res://assets/weapons/swarm launcher/source/LOD_0.fbx")
if model_scene:
var model = model_scene.instantiate()
model_root.add_child(model)
model.scale = Vector3(1.0, 1.0, 1.0)
model.rotation_degrees.y = -90
model.position.y -= 0.6 # Move model down without moving arms
# Strip lights
for child in model.find_children("*", "Light3D", true, false):
child.queue_free()
# Laser
targeting_laser = MeshInstance3D.new()
@@ -46,7 +47,7 @@ func _build_model() -> void:
l_mesh.material = l_mat
targeting_laser.mesh = l_mesh
targeting_laser.rotation.x = deg_to_rad(90)
targeting_laser.position = Vector3(0, 0, -150.0)
targeting_laser.position = Vector3(0, 0, -234.375)
targeting_laser.visible = false
model_root.add_child(targeting_laser)
@@ -123,7 +124,7 @@ func _fire() -> void:
var tween = create_tween()
tween.tween_property(muzzle_flash, "light_energy", 0.0, 0.1)
var _origin = camera.global_position + camera.global_transform.basis * Vector3(0.4, -0.2, -0.6)
var _origin = camera.global_position + camera.global_transform.basis * Vector3(0.4, -0.2, -0.938)
var base_dir = -camera.global_transform.basis.z
_current_aim_dir = base_dir