summaryrefslogtreecommitdiffstats
path: root/godot3-prototype/assets/weapons
diff options
context:
space:
mode:
authorMalfurious <m@lfurio.us>2023-04-24 07:50:00 -0400
committerMalfurious <m@lfurio.us>2023-04-24 07:50:00 -0400
commit97dd79339284b033774ac74a04dd4a255475261a (patch)
tree951d3c29e676c14c9f165b32143e9aaae8ec4f6a /godot3-prototype/assets/weapons
parent53091fce91ce03aae208bd0c61ee28830b34387d (diff)
downloadproject-s-master.tar.gz
project-s-master.zip
Move Godot 3 project to a new subdirectoryHEADmaster
Signed-off-by: Malfurious <m@lfurio.us>
Diffstat (limited to 'godot3-prototype/assets/weapons')
-rw-r--r--godot3-prototype/assets/weapons/goo_gun/Bullet.gd10
-rw-r--r--godot3-prototype/assets/weapons/goo_gun/Bullet.tscn26
-rw-r--r--godot3-prototype/assets/weapons/goo_gun/GooGun.gd31
-rw-r--r--godot3-prototype/assets/weapons/goo_gun/GooGun.tscn50
-rw-r--r--godot3-prototype/assets/weapons/goo_gun/gun_material.tres4
-rw-r--r--godot3-prototype/assets/weapons/goo_gun/tank_material.tres4
6 files changed, 125 insertions, 0 deletions
diff --git a/godot3-prototype/assets/weapons/goo_gun/Bullet.gd b/godot3-prototype/assets/weapons/goo_gun/Bullet.gd
new file mode 100644
index 0000000..5c5097f
--- /dev/null
+++ b/godot3-prototype/assets/weapons/goo_gun/Bullet.gd
@@ -0,0 +1,10 @@
+extends RigidBody
+
+export var material : Material = null
+
+func _ready():
+ if material != null:
+ $MeshInstance.set("material/0", material)
+
+func _on_Bullet_body_entered(_body):
+ queue_free()
diff --git a/godot3-prototype/assets/weapons/goo_gun/Bullet.tscn b/godot3-prototype/assets/weapons/goo_gun/Bullet.tscn
new file mode 100644
index 0000000..69ba3b6
--- /dev/null
+++ b/godot3-prototype/assets/weapons/goo_gun/Bullet.tscn
@@ -0,0 +1,26 @@
+[gd_scene load_steps=5 format=2]
+
+[ext_resource path="res://assets/characters/base_character/friendly_material.tres" type="Material" id=1]
+[ext_resource path="res://assets/weapons/goo_gun/Bullet.gd" type="Script" id=2]
+
+[sub_resource type="SphereMesh" id=1]
+material = ExtResource( 1 )
+
+[sub_resource type="SphereShape" id=2]
+
+[node name="Bullet" type="RigidBody"]
+transform = Transform( 0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0, 0, 0 )
+gravity_scale = 5.0
+contacts_reported = 1
+contact_monitor = true
+linear_damp = 2.0
+script = ExtResource( 2 )
+
+[node name="MeshInstance" type="MeshInstance" parent="."]
+mesh = SubResource( 1 )
+material/0 = null
+
+[node name="CollisionShape" type="CollisionShape" parent="."]
+shape = SubResource( 2 )
+
+[connection signal="body_entered" from="." to="." method="_on_Bullet_body_entered"]
diff --git a/godot3-prototype/assets/weapons/goo_gun/GooGun.gd b/godot3-prototype/assets/weapons/goo_gun/GooGun.gd
new file mode 100644
index 0000000..8ee6e0f
--- /dev/null
+++ b/godot3-prototype/assets/weapons/goo_gun/GooGun.gd
@@ -0,0 +1,31 @@
+extends Spatial
+
+export var is_firing = false
+export var fire_rate = 0.075
+export var projectile_material : Material = null
+export var projectile_spread = 0 #TODO
+export var projectile_scalar = 40
+export var look_angle = 0
+export var weapon_pitch = 0
+
+var time_since_fire = 0
+
+var Bullet = preload("res://assets/weapons/goo_gun/Bullet.tscn")
+
+func _physics_process(delta):
+ if is_firing:
+ time_since_fire += delta
+ if time_since_fire >= fire_rate:
+ time_since_fire -= fire_rate
+ do_fire_projectile()
+ else:
+ time_since_fire = fire_rate
+
+func do_fire_projectile():
+ var bullet = Bullet.instance()
+ bullet.material = projectile_material
+ $Nozzle.add_child(bullet)
+ bullet.set_as_toplevel(true)
+ var shoot_direction = Vector3.FORWARD.rotated(Vector3.LEFT, weapon_pitch)
+ shoot_direction = shoot_direction.rotated(Vector3.UP, look_angle)
+ bullet.apply_central_impulse(shoot_direction.normalized() * projectile_scalar)
diff --git a/godot3-prototype/assets/weapons/goo_gun/GooGun.tscn b/godot3-prototype/assets/weapons/goo_gun/GooGun.tscn
new file mode 100644
index 0000000..4bd8c65
--- /dev/null
+++ b/godot3-prototype/assets/weapons/goo_gun/GooGun.tscn
@@ -0,0 +1,50 @@
+[gd_scene load_steps=8 format=2]
+
+[ext_resource path="res://assets/weapons/goo_gun/gun_material.tres" type="Material" id=1]
+[ext_resource path="res://assets/weapons/goo_gun/tank_material.tres" type="Material" id=2]
+[ext_resource path="res://assets/weapons/goo_gun/GooGun.gd" type="Script" id=3]
+
+[sub_resource type="CubeMesh" id=1]
+material = ExtResource( 1 )
+size = Vector3( 0.25, 0.25, 2 )
+
+[sub_resource type="CapsuleMesh" id=2]
+material = ExtResource( 2 )
+radius = 0.275
+mid_height = 0.618
+
+[sub_resource type="CubeMesh" id=3]
+material = ExtResource( 1 )
+size = Vector3( 0.15, 0.5, 0.15 )
+
+[sub_resource type="CylinderMesh" id=4]
+material = ExtResource( 1 )
+top_radius = 0.24
+bottom_radius = 0.088
+height = 0.429
+
+[node name="GooGun" type="Spatial"]
+script = ExtResource( 3 )
+
+[node name="Body" type="MeshInstance" parent="."]
+use_in_baked_light = true
+mesh = SubResource( 1 )
+material/0 = null
+
+[node name="Tank" type="MeshInstance" parent="."]
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.398, -0.375 )
+use_in_baked_light = true
+mesh = SubResource( 2 )
+material/0 = null
+
+[node name="Handle" type="MeshInstance" parent="."]
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.373, -0.27 )
+use_in_baked_light = true
+mesh = SubResource( 3 )
+material/0 = null
+
+[node name="Nozzle" type="MeshInstance" parent="."]
+transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0.953 )
+use_in_baked_light = true
+mesh = SubResource( 4 )
+material/0 = null
diff --git a/godot3-prototype/assets/weapons/goo_gun/gun_material.tres b/godot3-prototype/assets/weapons/goo_gun/gun_material.tres
new file mode 100644
index 0000000..08bf630
--- /dev/null
+++ b/godot3-prototype/assets/weapons/goo_gun/gun_material.tres
@@ -0,0 +1,4 @@
+[gd_resource type="SpatialMaterial" format=2]
+
+[resource]
+albedo_color = Color( 0.317647, 1, 0.14902, 1 )
diff --git a/godot3-prototype/assets/weapons/goo_gun/tank_material.tres b/godot3-prototype/assets/weapons/goo_gun/tank_material.tres
new file mode 100644
index 0000000..c8b98a4
--- /dev/null
+++ b/godot3-prototype/assets/weapons/goo_gun/tank_material.tres
@@ -0,0 +1,4 @@
+[gd_resource type="SpatialMaterial" format=2]
+
+[resource]
+albedo_color = Color( 1, 0.423529, 0.0509804, 1 )