Beeg checkin

This commit is contained in:
2023-09-06 03:49:16 -07:00
parent f180d4cacd
commit f8cca640a6
320 changed files with 2751 additions and 26682 deletions

View File

@@ -0,0 +1,10 @@
using Godot;
public partial class EnemyBullet : Projectile
{
public override void _PhysicsProcess(double delta)
{
TranslateObjectLocal(new Vector3(0, 0, -Speed * (float)delta));
}
}

View File

@@ -0,0 +1,48 @@
[gd_scene load_steps=6 format=3 uid="uid://rlxnnw4yay7e"]
[ext_resource type="Script" path="res://Enemies/Attacks/EnemyBullet.cs" id="1_rv13r"]
[ext_resource type="Texture2D" uid="uid://dd71tdgrgic46" path="res://Textures/Projectiles/LB ORB.png" id="2_6l2aj"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_phgri"]
albedo_color = Color(0.584314, 0.0352941, 0.141176, 1)
[sub_resource type="SphereMesh" id="SphereMesh_wuk0e"]
material = SubResource("StandardMaterial3D_phgri")
[sub_resource type="CylinderShape3D" id="CylinderShape3D_e4v7f"]
radius = 0.4
[node name="TestBullet" type="Node3D"]
script = ExtResource("1_rv13r")
_projectileSpeed = 3.0
[node name="RigidBody3D" type="RigidBody3D" parent="."]
collision_layer = 4
collision_mask = 0
gravity_scale = 0.0
custom_integrator = true
continuous_cd = true
max_contacts_reported = 10
contact_monitor = true
can_sleep = false
[node name="MeshInstance3D" type="MeshInstance3D" parent="RigidBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.02602, 0)
visible = false
mesh = SubResource("SphereMesh_wuk0e")
skeleton = NodePath("../..")
[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0111055, 1.02602, 0)
shape = SubResource("CylinderShape3D_e4v7f")
[node name="Sprite3D" type="Sprite3D" parent="RigidBody3D"]
transform = Transform3D(0.08, 0, 0, 0, 0.08, 0, 0, 0, 0.08, -0.379318, 1.02602, 0.436329)
centered = false
axis = 1
texture = ExtResource("2_6l2aj")
[node name="TTL" type="Timer" parent="."]
process_callback = 0
wait_time = 0.8
autostart = true

View File

@@ -0,0 +1,29 @@
using Godot;
using System.Linq;
public partial class FireAtPlayer : Timer
{
[Export]
private Area3D _enemy;
[Export]
private PackedScene _fireProjectile;
public void OnFireAtPlayer()
{
var players = GetTree().GetNodesInGroup("Player");
if (players.Any())
{
var convertedPlayers = players.Select(x => (Node3D)x);
var target = convertedPlayers.OrderBy(x => _enemy.Position.DistanceTo(x.Position)).FirstOrDefault();
var projectile = _fireProjectile.Instantiate<Projectile>() as EnemyBullet;
projectile.Rotation = _enemy.Rotation;
projectile.Position = _enemy.Position;
GetParent().AddChild(projectile);
}
}
private void OnDied()
{
Stop();
}
}

30
Enemies/GodCircuit.tscn Normal file
View File

@@ -0,0 +1,30 @@
[gd_scene load_steps=4 format=3 uid="uid://brbshysbgd47q"]
[ext_resource type="Script" path="res://Enemies/Scripts/GodCircuit.cs" id="1_gyfww"]
[ext_resource type="PackedScene" uid="uid://cigdj84f0m3jd" path="res://Levels/Models/Stage10/god circuit stage 1.glb" id="1_w12q0"]
[sub_resource type="BoxShape3D" id="BoxShape3D_l1qm4"]
size = Vector3(2.64724, 5.07315, 0.653787)
[node name="God Circuit" type="Node3D"]
script = ExtResource("1_gyfww")
[node name="god circuit stage 1" parent="." instance=ExtResource("1_w12q0")]
[node name="Area3D" type="Area3D" parent="god circuit stage 1"]
collision_layer = 0
collision_mask = 2
[node name="CollisionShape3D" type="CollisionShape3D" parent="god circuit stage 1/Area3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.93109, 1.49955, -2.35288)
shape = SubResource("BoxShape3D_l1qm4")
[node name="StaticBody3D" type="StaticBody3D" parent="god circuit stage 1"]
collision_layer = 4096
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="god circuit stage 1/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.93109, 1.49955, -2.35288)
shape = SubResource("BoxShape3D_l1qm4")
[connection signal="body_entered" from="god circuit stage 1/Area3D" to="." method="OnHit"]

6
Enemies/HPComponent.tscn Normal file
View File

@@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://b1j0g6ikmnibm"]
[ext_resource type="Script" path="res://Enemies/HealthPoints.cs" id="1_rrase"]
[node name="HP Component" type="Node2D"]
script = ExtResource("1_rrase")

28
Enemies/HealthPoints.cs Normal file
View File

@@ -0,0 +1,28 @@
using Godot;
public partial class HealthPoints : Node
{
[Export]
public long MaximumHP { get; protected set; }
public long CurrentHP { get; protected set; }
[Export]
private TextureProgressBar _healthBar;
public override void _Ready()
{
CurrentHP = MaximumHP;
}
public void TakeDamage(long damage)
{
CurrentHP -= damage;
GD.Print(CurrentHP);
}
public void UpdateHealthbar()
{
_healthBar.Value = CurrentHP;
}
}

View File

@@ -0,0 +1,9 @@
using Godot;
public partial class HealthbarProgress : TextureProgressBar
{
public void UpdateBar(long amount, long full)
{
Value = amount;
}
}

37
Enemies/MeleeEnemy.tscn Normal file
View File

@@ -0,0 +1,37 @@
[gd_scene load_steps=5 format=3 uid="uid://bt5rolsyjmx55"]
[ext_resource type="Script" path="res://Enemies/Scripts/MeleeEnemy.cs" id="1_50och"]
[ext_resource type="PackedScene" uid="uid://bg18q3cj6wdie" path="res://Enemies/Models/MeleeEnemy.glb" id="2_l827r"]
[sub_resource type="BoxShape3D" id="BoxShape3D_1nq5h"]
size = Vector3(0.579358, 2.18762, 0.423598)
[sub_resource type="BoxShape3D" id="BoxShape3D_i1yvp"]
size = Vector3(0.470892, 2.18133, 0.423598)
[node name="MeleeEnemyOrb" type="Node3D" groups=["Enemy"]]
script = ExtResource("1_50och")
[node name="CharacterBody3D" type="CharacterBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.251952, 0)
collision_layer = 0
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="CharacterBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0840461, 0.475385, 0.143401)
shape = SubResource("BoxShape3D_1nq5h")
[node name="meleeenemy - Updated" type="Node3D" parent="CharacterBody3D"]
[node name="Area3D" type="Area3D" parent="CharacterBody3D"]
collision_layer = 0
collision_mask = 4098
[node name="CollisionShape3D" type="CollisionShape3D" parent="CharacterBody3D/Area3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0840461, 0.475385, 0.143401)
shape = SubResource("BoxShape3D_i1yvp")
[node name="MeleeEnemy" parent="." instance=ExtResource("2_l827r")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.716768, 0)
[connection signal="body_entered" from="CharacterBody3D/Area3D" to="." method="OnEnemyHit"]

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -0,0 +1,32 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://dotxb4dc15l4k"
path="res://.godot/imported/RangedEnemy.glb-b55597650bade0297f264b6e0420a5b0.scn"
[deps]
source_file="res://Enemies/Models/RangedEnemy.glb"
dest_files=["res://.godot/imported/RangedEnemy.glb-b55597650bade0297f264b6e0420a5b0.scn"]
[params]
nodes/root_type="Node3D"
nodes/root_name="Scene Root"
nodes/apply_root_scale=true
nodes/root_scale=1.0
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
gltf/embedded_image_handling=1

34
Enemies/RangedEnemy.tscn Normal file
View File

@@ -0,0 +1,34 @@
[gd_scene load_steps=6 format=3 uid="uid://dahp73fwld24h"]
[ext_resource type="Script" path="res://Enemies/Scripts/RangedEnemy.cs" id="1_01lvj"]
[ext_resource type="PackedScene" uid="uid://dotxb4dc15l4k" path="res://Models/Enemies/ranged enemy.glb" id="1_aj5wt"]
[ext_resource type="PackedScene" uid="uid://rlxnnw4yay7e" path="res://Scenes/Weapons/EnemyBullet.tscn" id="3_qenx3"]
[ext_resource type="Script" path="res://Enemies/Attacks/FireAtPlayer.cs" id="3_qt2md"]
[sub_resource type="BoxShape3D" id="BoxShape3D_dm3u7"]
size = Vector3(0.721796, 2.18529, 0.564825)
[node name="RangedEnemy" type="Node3D" groups=["Enemy"]]
script = ExtResource("1_01lvj")
[node name="Area3D" type="Area3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
collision_layer = 0
collision_mask = 4098
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.113206, 0.5, 0)
shape = SubResource("BoxShape3D_dm3u7")
[node name="ranged enemy" parent="Area3D" instance=ExtResource("1_aj5wt")]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
[node name="Timer" type="Timer" parent="." node_paths=PackedStringArray("_enemy")]
wait_time = 3.0
autostart = true
script = ExtResource("3_qt2md")
_enemy = NodePath("../Area3D")
_fireProjectile = ExtResource("3_qenx3")
[connection signal="body_entered" from="Area3D" to="." method="OnEnemyHit"]
[connection signal="timeout" from="Timer" to="Timer" method="OnFireAtPlayer"]

View File

@@ -0,0 +1,18 @@
using Godot;
public partial class BasicEnemy : Node3D
{
protected GameManager _gameManager;
public override void _Ready()
{
_gameManager = GetTree().Root.GetNode<GameManager>("Main/GameManager");
}
public void OnEnemyHit(Node3D node)
{
var currentLevel = (Level)GetTree().GetFirstNodeInGroup("Level");
currentLevel.OnEnemyDefeated(this);
QueueFree();
}
}

View File

@@ -0,0 +1,14 @@
using Godot;
public partial class GodCircuit : Node3D
{
private void OnHit(Node3D node)
{
GD.Print("Hit");
var hpComponent = GetNode<HealthPoints>("HP Component");
hpComponent.TakeDamage(800000);
hpComponent.UpdateHealthbar();
if (hpComponent.CurrentHP <= 0)
QueueFree();
}
}

View File

@@ -0,0 +1,20 @@
using Godot;
using System.Linq;
public partial class MeleeEnemy : BasicEnemy
{
[Export]
private float _speed = 0.4f;
public override void _PhysicsProcess(double delta)
{
var players = GetTree().GetNodesInGroup("Player");
if (players.Any())
{
var convertedPlayers = players.Select(x => (Node3D)x);
var target = convertedPlayers.OrderBy(x => Position.DistanceTo(x.Position)).FirstOrDefault();
Position = Position.MoveToward(target.Position, _speed * (float)delta);
LookAt(-target.Position, Vector3.Up);
}
}
}

View File

@@ -0,0 +1,17 @@
using Godot;
using System.Linq;
public partial class RangedEnemy : BasicEnemy
{
public override void _Process(double delta)
{
var players = GetTree().GetNodesInGroup("Player");
if (players.Any())
{
var convertedPlayers = players.Select(x => (Node3D)x);
var target = convertedPlayers.OrderBy(x => Position.DistanceTo(x.Position)).FirstOrDefault();
var area = GetChildren().OfType<Area3D>().Single();
area.LookAt(target.Position, Vector3.Up);
}
}
}