Add scene and class to all enemy types, update all floors with enemy spawn types and rates

This commit is contained in:
2025-04-09 01:21:55 -07:00
parent e95188efc8
commit 3b7ef1b801
64 changed files with 1429 additions and 167 deletions

View File

@@ -8,7 +8,7 @@
[ext_resource type="PackedScene" uid="uid://dcm53j3rncxdm" path="res://src/enemy/enemy_types/06. chariot/ChariotModelView.tscn" id="5_vk1lh"] [ext_resource type="PackedScene" uid="uid://dcm53j3rncxdm" path="res://src/enemy/enemy_types/06. chariot/ChariotModelView.tscn" id="5_vk1lh"]
[ext_resource type="PackedScene" uid="uid://bimjnsu52y3xi" path="res://src/enemy/enemy_types/01. sproingy/SproingyModelView.tscn" id="6_hpkd1"] [ext_resource type="PackedScene" uid="uid://bimjnsu52y3xi" path="res://src/enemy/enemy_types/01. sproingy/SproingyModelView.tscn" id="6_hpkd1"]
[ext_resource type="PackedScene" uid="uid://bup8c4x1na3aw" path="res://src/enemy/enemy_types/03. filth_eater/FilthEaterModelView.tscn" id="8_dvixg"] [ext_resource type="PackedScene" uid="uid://bup8c4x1na3aw" path="res://src/enemy/enemy_types/03. filth_eater/FilthEaterModelView.tscn" id="8_dvixg"]
[ext_resource type="PackedScene" uid="uid://bls3mcsyld4vy" path="res://src/enemy/enemy_types/09. Agi/AgiModelView.tscn" id="9_utjpw"] [ext_resource type="PackedScene" uid="uid://bls3mcsyld4vy" path="res://src/enemy/enemy_types/09. Agi/AgiDemonModelView.tscn" id="9_utjpw"]
[ext_resource type="PackedScene" uid="uid://cu7n814hhtjwm" path="res://src/enemy/enemy_types/9b. Aqueos Demon/AqueosModelView.tscn" id="10_ylptw"] [ext_resource type="PackedScene" uid="uid://cu7n814hhtjwm" path="res://src/enemy/enemy_types/9b. Aqueos Demon/AqueosModelView.tscn" id="10_ylptw"]
[ext_resource type="PackedScene" uid="uid://c2i8ylr3y0bri" path="res://src/enemy/enemy_types/08a. Ambassador/AmbassadorModelView.tscn" id="11_fm7p5"] [ext_resource type="PackedScene" uid="uid://c2i8ylr3y0bri" path="res://src/enemy/enemy_types/08a. Ambassador/AmbassadorModelView.tscn" id="11_fm7p5"]
[ext_resource type="PackedScene" uid="uid://72lbcmp4bcx4" path="res://src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorSmallModelView.tscn" id="12_5hrw6"] [ext_resource type="PackedScene" uid="uid://72lbcmp4bcx4" path="res://src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorSmallModelView.tscn" id="12_5hrw6"]

View File

@@ -1,14 +0,0 @@
shader_type canvas_item;
void vertex() {
// Called for every vertex the material is visible on.
}
void fragment() {
// Called for every pixel the material is visible on.
}
//void light() {
// Called for every pixel for every light affecting the CanvasItem.
// Uncomment to replace the default light processing function with this one.
//}

View File

@@ -1 +0,0 @@
uid://ctl63y5wwil04

View File

@@ -1,28 +1,10 @@
[gd_scene load_steps=10 format=3 uid="uid://cvk007twac22c"] [gd_scene load_steps=9 format=3 uid="uid://cvk007twac22c"]
[ext_resource type="Script" uid="uid://cohal8w5ceneg" path="res://src/enemy/enemy_types/03. filth_eater/FilthEater.cs" id="1_fyc13"] [ext_resource type="Script" uid="uid://cohal8w5ceneg" path="res://src/enemy/enemy_types/03. filth_eater/FilthEater.cs" id="1_fyc13"]
[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="2_mqiog"] [ext_resource type="Resource" uid="uid://coyidduu5uhsp" path="res://src/enemy/enemy_types/03. filth_eater/FilthEaterStats.tres" id="2_p438s"]
[ext_resource type="PackedScene" uid="uid://bup8c4x1na3aw" path="res://src/enemy/enemy_types/03. filth_eater/FilthEaterModelView.tscn" id="3_rrwed"] [ext_resource type="PackedScene" uid="uid://bup8c4x1na3aw" path="res://src/enemy/enemy_types/03. filth_eater/FilthEaterModelView.tscn" id="3_rrwed"]
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="4_5eid5"] [ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="4_5eid5"]
[sub_resource type="Resource" id="Resource_0y048"]
script = ExtResource("2_mqiog")
CurrentHP = 50.0
MaximumHP = 50.0
CurrentAttack = 15
CurrentDefense = 5
MaxAttack = 15
MaxDefense = 5
ExpFromDefeat = 15
Luck = 0.05
TelluricResistance = 0.0
AeolicResistance = 0.0
HydricResistance = 0.0
IgneousResistance = 0.0
FerrumResistance = 0.0
DropsSoulGemChance = 0.75
metadata/_custom_type_script = ExtResource("2_mqiog")
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
radius = 1.0 radius = 1.0
@@ -41,7 +23,6 @@ metadata/_custom_type_script = ExtResource("4_5eid5")
[node name="FilthEater" type="CharacterBody3D"] [node name="FilthEater" type="CharacterBody3D"]
process_mode = 1 process_mode = 1
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
collision_layer = 10 collision_layer = 10
collision_mask = 11 collision_mask = 11
axis_lock_linear_y = true axis_lock_linear_y = true
@@ -49,7 +30,7 @@ axis_lock_angular_x = true
script = ExtResource("1_fyc13") script = ExtResource("1_fyc13")
SecondaryAttackElementalType = 2 SecondaryAttackElementalType = 2
SecondaryAttackElementalDamageBonus = 1.15 SecondaryAttackElementalDamageBonus = 1.15
_enemyStatResource = SubResource("Resource_0y048") _enemyStatResource = ExtResource("2_p438s")
[node name="CollisionShape" type="CollisionShape3D" parent="."] [node name="CollisionShape" type="CollisionShape3D" parent="."]
unique_name_in_owner = true unique_name_in_owner = true

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="EnemyStatResource" load_steps=2 format=3 uid="uid://coyidduu5uhsp"]
[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="1_o2ug3"]
[resource]
script = ExtResource("1_o2ug3")
CurrentHP = 50.0
MaximumHP = 50.0
CurrentAttack = 15
CurrentDefense = 5
MaxAttack = 15
MaxDefense = 5
ExpFromDefeat = 15
Luck = 0.05
_telluricResistance = 0.0
_aeolicResistance = 0.0
_hydricResistance = 0.0
_igneousResistance = 0.0
_ferrumResistance = 0.0
DropsSoulGemChance = 0.75
metadata/_custom_type_script = ExtResource("1_o2ug3")

View File

@@ -30,7 +30,7 @@ public partial class Sara : Enemy, IHasPrimaryAttack, IHasSecondaryAttack, ICanP
((EnemyModelView2D)_enemyModelView).Hitbox.AreaEntered += Hitbox_AreaEntered; ((EnemyModelView2D)_enemyModelView).Hitbox.AreaEntered += Hitbox_AreaEntered;
} }
public new void OnPhysicsProcess(double delta) public void OnPhysicsProcess(double delta)
{ {
_enemyLogic.Input(new EnemyLogic.Input.PhysicsTick(delta)); _enemyLogic.Input(new EnemyLogic.Input.PhysicsTick(delta));

View File

@@ -1,28 +1,10 @@
[gd_scene load_steps=9 format=3 uid="uid://bksq62muhk3h5"] [gd_scene load_steps=8 format=3 uid="uid://bksq62muhk3h5"]
[ext_resource type="Script" uid="uid://jjulhqd5g3bd" path="res://src/enemy/enemy_types/04. sara/Sara.cs" id="1_1grvw"] [ext_resource type="Script" uid="uid://jjulhqd5g3bd" path="res://src/enemy/enemy_types/04. sara/Sara.cs" id="1_1grvw"]
[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="2_14et8"] [ext_resource type="Resource" uid="uid://b0e6yx54hhbw7" path="res://src/enemy/enemy_types/04. sara/SaraStats.tres" id="2_1grvw"]
[ext_resource type="PackedScene" uid="uid://pbnsngx5jvrh" path="res://src/enemy/NavigationAgentClient.tscn" id="3_c4qcm"] [ext_resource type="PackedScene" uid="uid://pbnsngx5jvrh" path="res://src/enemy/NavigationAgentClient.tscn" id="3_c4qcm"]
[ext_resource type="PackedScene" uid="uid://bli0t0d6ommvi" path="res://src/enemy/enemy_types/04. sara/SaraModelView.tscn" id="4_82s0m"] [ext_resource type="PackedScene" uid="uid://bli0t0d6ommvi" path="res://src/enemy/enemy_types/04. sara/SaraModelView.tscn" id="4_82s0m"]
[sub_resource type="Resource" id="Resource_oln85"]
script = ExtResource("2_14et8")
CurrentHP = 30.0
MaximumHP = 30
CurrentAttack = 15
CurrentDefense = 7
MaxAttack = 15
MaxDefense = 7
ExpFromDefeat = 5
Luck = 0.05
_telluricResistance = 0.0
_aeolicResistance = 0.0
_hydricResistance = 0.0
_igneousResistance = 0.0
_ferrumResistance = 0.0
DropsSoulGemChance = 0.75
metadata/_custom_type_script = ExtResource("2_14et8")
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
radius = 0.106078 radius = 0.106078
height = 1.23076 height = 1.23076
@@ -42,7 +24,7 @@ axis_lock_linear_y = true
axis_lock_angular_x = true axis_lock_angular_x = true
axis_lock_angular_z = true axis_lock_angular_z = true
script = ExtResource("1_1grvw") script = ExtResource("1_1grvw")
_enemyStatResource = SubResource("Resource_oln85") _enemyStatResource = ExtResource("2_1grvw")
[node name="CollisionShape" type="CollisionShape3D" parent="."] [node name="CollisionShape" type="CollisionShape3D" parent="."]
unique_name_in_owner = true unique_name_in_owner = true

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="EnemyStatResource" load_steps=2 format=3 uid="uid://b0e6yx54hhbw7"]
[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="1_besl4"]
[resource]
script = ExtResource("1_besl4")
CurrentHP = 30.0
MaximumHP = 30
CurrentAttack = 15
CurrentDefense = 7
MaxAttack = 15
MaxDefense = 7
ExpFromDefeat = 5
Luck = 0.05
_telluricResistance = 0.0
_aeolicResistance = 0.0
_hydricResistance = 0.0
_igneousResistance = 0.0
_ferrumResistance = 0.0
DropsSoulGemChance = 0.75
metadata/_custom_type_script = ExtResource("1_besl4")

View File

@@ -1,29 +1,11 @@
[gd_scene load_steps=11 format=3 uid="uid://c6tqt27ql8s35"] [gd_scene load_steps=10 format=3 uid="uid://c6tqt27ql8s35"]
[ext_resource type="Script" uid="uid://fwtjthix6awv" path="res://src/enemy/enemy_types/07. chinthe/Chinthe.cs" id="1_vw2ww"] [ext_resource type="Script" uid="uid://fwtjthix6awv" path="res://src/enemy/enemy_types/07. chinthe/Chinthe.cs" id="1_vw2ww"]
[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="2_120m2"] [ext_resource type="Resource" uid="uid://c854s8bdil3" path="res://src/enemy/enemy_types/07. chinthe/ChintheStats.tres" id="2_d665t"]
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="3_567xa"] [ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="3_567xa"]
[ext_resource type="PackedScene" uid="uid://pbnsngx5jvrh" path="res://src/enemy/NavigationAgentClient.tscn" id="3_d665t"] [ext_resource type="PackedScene" uid="uid://pbnsngx5jvrh" path="res://src/enemy/NavigationAgentClient.tscn" id="3_d665t"]
[ext_resource type="PackedScene" uid="uid://byd7cwxq1be6f" path="res://src/enemy/enemy_types/07. chinthe/ChinteModelView.tscn" id="3_ncr2e"] [ext_resource type="PackedScene" uid="uid://byd7cwxq1be6f" path="res://src/enemy/enemy_types/07. chinthe/ChinteModelView.tscn" id="3_ncr2e"]
[sub_resource type="Resource" id="Resource_d665t"]
script = ExtResource("2_120m2")
CurrentHP = 200.0
MaximumHP = 0
CurrentAttack = 10
CurrentDefense = 10
MaxAttack = 10
MaxDefense = 10
ExpFromDefeat = 100
Luck = 0.05
_telluricResistance = 0.0
_aeolicResistance = 0.0
_hydricResistance = 0.0
_igneousResistance = 0.0
_ferrumResistance = 0.0
DropsSoulGemChance = 0.75
metadata/_custom_type_script = "uid://dnkmr0eq1sij0"
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
radius = 0.226425 radius = 0.226425
height = 2.02807 height = 2.02807
@@ -50,7 +32,7 @@ axis_lock_angular_x = true
axis_lock_angular_z = true axis_lock_angular_z = true
motion_mode = 1 motion_mode = 1
script = ExtResource("1_vw2ww") script = ExtResource("1_vw2ww")
_enemyStatResource = SubResource("Resource_d665t") _enemyStatResource = ExtResource("2_d665t")
[node name="NavigationAgentClient" parent="." instance=ExtResource("3_d665t")] [node name="NavigationAgentClient" parent="." instance=ExtResource("3_d665t")]
unique_name_in_owner = true unique_name_in_owner = true

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="EnemyStatResource" load_steps=2 format=3 uid="uid://c854s8bdil3"]
[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="1_616yc"]
[resource]
script = ExtResource("1_616yc")
CurrentHP = 200.0
MaximumHP = 200
CurrentAttack = 10
CurrentDefense = 10
MaxAttack = 10
MaxDefense = 10
ExpFromDefeat = 100
Luck = 0.05
_telluricResistance = 0.0
_aeolicResistance = 0.0
_hydricResistance = 0.0
_igneousResistance = 0.0
_ferrumResistance = 0.0
DropsSoulGemChance = 0.75
metadata/_custom_type_script = "uid://dnkmr0eq1sij0"

View File

@@ -1,11 +0,0 @@
[gd_scene load_steps=3 format=3 uid="uid://byqhrq73p1y7v"]
[ext_resource type="PackedScene" uid="uid://c6tqt27ql8s35" path="res://src/enemy/enemy_types/07. chinthe/Chinthe.tscn" id="1_un7uu"]
[ext_resource type="PackedScene" uid="uid://cfecvvav8kkp6" path="res://src/player/Player.tscn" id="2_w0g4y"]
[node name="ChintheTest" type="Node3D"]
[node name="Chinthe" parent="." instance=ExtResource("1_un7uu")]
[node name="Player" parent="." instance=ExtResource("2_w0g4y")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.12146, 4.44506)

View File

@@ -0,0 +1,90 @@
using Chickensoft.AutoInject;
using Chickensoft.Introspection;
using Godot;
using System.Collections.Generic;
using System;
using Zennysoft.Game.Abstractions;
using Zennysoft.Ma.Adapter;
namespace Zennysoft.Game.Ma;
[Meta(typeof(IAutoNode))]
public partial class Ambassador : Enemy, IHasPrimaryAttack, IHasSecondaryAttack, ICanPatrol
{
public override void _Notification(int what) => this.Notify(what);
[Export]
public ElementType PrimaryAttackElementalType { get; set; } = ElementType.None;
[Export]
public double PrimaryAttackElementalDamageBonus { get; set; } = 1.0;
[Node] private INavigationAgentClient _navigationAgentClient { get; set; } = default!;
public ElementType SecondaryAttackElementalType { get; set; } = ElementType.None;
public double SecondaryAttackElementalDamageBonus { get; set; } = 1.0;
public void OnReady()
{
SetPhysicsProcess(true);
((EnemyModelView2D)_enemyModelView).Hitbox.AreaEntered += Hitbox_AreaEntered;
}
public void OnPhysicsProcess(double delta)
{
_enemyLogic.Input(new EnemyLogic.Input.PhysicsTick(delta));
if (_enemyLogic.Value is not EnemyLogic.State.Activated)
return;
if (_enemyLogic.Value is EnemyLogic.State.FollowPlayer && GlobalPosition.DistanceTo(_player.CurrentPosition) < 1.5f)
_enemyLogic.Input(new EnemyLogic.Input.StartAttacking());
if (_enemyLogic.Value is EnemyLogic.State.FollowPlayer && GlobalPosition.DistanceTo(_player.CurrentPosition) > 30f)
_enemyLogic.Input(new EnemyLogic.Input.LostPlayer());
if (_enemyLogic.Value is EnemyLogic.State.Attacking && GlobalPosition.DistanceTo(_player.CurrentPosition) > 3f)
_enemyLogic.Input(new EnemyLogic.Input.Alerted());
_navigationAgentClient.CalculateVelocity(GlobalPosition, true);
base._PhysicsProcess(delta);
}
public override void TakeAction()
{
var rng = new RandomNumberGenerator();
var options = new List<Action>() { PrimaryAttack, SecondaryAttack };
var selection = rng.RandWeighted([0.875f, 0.125f]);
options[(int)selection].Invoke();
}
public void PrimaryAttack()
{
_enemyModelView.PlayPrimaryAttackAnimation();
}
public void SecondaryAttack()
{
_enemyModelView.PlaySecondaryAttackAnimation();
}
public override void SetTarget(Vector3 target) => _navigationAgentClient.SetTarget(target);
public void Patrol()
{
var rng = new RandomNumberGenerator();
rng.Randomize();
var randomizedSpot = new Vector3(rng.RandfRange(-5.0f, 5.0f), 0, rng.RandfRange(-5.0f, 5.0f));
_enemyLogic.Input(new EnemyLogic.Input.PatrolToRandomSpot(GlobalPosition + randomizedSpot));
_enemyLogic.Input(new EnemyLogic.Input.StartPatrol());
}
private void Hitbox_AreaEntered(Area3D area)
{
var target = area.GetOwner();
if (target is IPlayer player)
{
var damage = _enemyStatResource.CurrentAttack * PrimaryAttackElementalDamageBonus;
player.TakeDamage(damage, PrimaryAttackElementalType, BattleExtensions.IsCriticalHit(_enemyStatResource.Luck));
}
}
}

View File

@@ -0,0 +1 @@
uid://dauir5q616wyq

View File

@@ -0,0 +1,78 @@
[gd_scene load_steps=8 format=3 uid="uid://fosk3kt7vp8d"]
[ext_resource type="Script" uid="uid://dauir5q616wyq" path="res://src/enemy/enemy_types/08a. Ambassador/Ambassador.cs" id="1_m2guv"]
[ext_resource type="Resource" uid="uid://bcpygpm2q5bpn" path="res://src/enemy/enemy_types/08a. Ambassador/AmbassadorStats.tres" id="2_pjmem"]
[ext_resource type="PackedScene" uid="uid://pbnsngx5jvrh" path="res://src/enemy/NavigationAgentClient.tscn" id="3_pj8fe"]
[ext_resource type="PackedScene" uid="uid://c2i8ylr3y0bri" path="res://src/enemy/enemy_types/08a. Ambassador/AmbassadorModelView.tscn" id="4_pjmem"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
radius = 0.106078
height = 1.23076
[sub_resource type="SphereShape3D" id="SphereShape3D_8vcnq"]
radius = 0.57308
[sub_resource type="CylinderShape3D" id="CylinderShape3D_jbgmx"]
height = 5.0
radius = 1.0
[node name="Ambassador" type="CharacterBody3D"]
process_mode = 1
collision_layer = 10
collision_mask = 3
axis_lock_linear_y = true
axis_lock_angular_x = true
axis_lock_angular_z = true
script = ExtResource("1_m2guv")
_enemyStatResource = ExtResource("2_pjmem")
[node name="CollisionShape" type="CollisionShape3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
shape = SubResource("CapsuleShape3D_cwfph")
[node name="Navigation" type="Node3D" parent="."]
[node name="NavigationAgentClient" parent="Navigation" instance=ExtResource("3_pj8fe")]
unique_name_in_owner = true
[node name="Collision" type="Node3D" parent="."]
[node name="Collision" type="Area3D" parent="Collision"]
collision_layer = 2048
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Collision/Collision"]
shape = SubResource("SphereShape3D_8vcnq")
[node name="LineOfSight" type="Area3D" parent="Collision"]
unique_name_in_owner = true
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
collision_layer = 2
collision_mask = 2
[node name="CollisionShape3D" type="CollisionShape3D" parent="Collision/LineOfSight"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, -2)
shape = SubResource("CylinderShape3D_jbgmx")
[node name="Raycast" type="RayCast3D" parent="Collision"]
unique_name_in_owner = true
target_position = Vector3(0, 0, -5)
collision_mask = 3
[node name="Visual" type="Node3D" parent="."]
[node name="EnemyModelView" parent="Visual" instance=ExtResource("4_pjmem")]
unique_name_in_owner = true
[node name="Timers" type="Node" parent="."]
[node name="PatrolTimer" type="Timer" parent="Timers"]
unique_name_in_owner = true
wait_time = 10.0
autostart = true
[node name="AttackTimer" type="Timer" parent="Timers"]
unique_name_in_owner = true
wait_time = 0.8
autostart = true

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="EnemyStatResource" load_steps=2 format=3 uid="uid://bcpygpm2q5bpn"]
[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="1_1vmbx"]
[resource]
script = ExtResource("1_1vmbx")
CurrentHP = 100.0
MaximumHP = 100
CurrentAttack = 10
CurrentDefense = 10
MaxAttack = 10
MaxDefense = 10
ExpFromDefeat = 0
Luck = 0.05
_telluricResistance = 0.0
_aeolicResistance = 0.0
_hydricResistance = 0.0
_igneousResistance = 0.0
_ferrumResistance = 0.0
DropsSoulGemChance = 0.75
metadata/_custom_type_script = "uid://dnkmr0eq1sij0"

View File

@@ -0,0 +1,78 @@
[gd_scene load_steps=8 format=3 uid="uid://c5gbaybqm4cuk"]
[ext_resource type="Script" uid="uid://dauir5q616wyq" path="res://src/enemy/enemy_types/08a. Ambassador/Ambassador.cs" id="1_4nav4"]
[ext_resource type="Resource" uid="uid://doycpt2aqxnx" path="res://src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorStats.tres" id="2_hqkeq"]
[ext_resource type="PackedScene" uid="uid://pbnsngx5jvrh" path="res://src/enemy/NavigationAgentClient.tscn" id="3_31xt7"]
[ext_resource type="PackedScene" uid="uid://72lbcmp4bcx4" path="res://src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorSmallModelView.tscn" id="4_hqkeq"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
radius = 0.106078
height = 1.23076
[sub_resource type="SphereShape3D" id="SphereShape3D_8vcnq"]
radius = 0.57308
[sub_resource type="CylinderShape3D" id="CylinderShape3D_jbgmx"]
height = 5.0
radius = 1.0
[node name="AmbassadorRed" type="CharacterBody3D"]
process_mode = 1
collision_layer = 10
collision_mask = 3
axis_lock_linear_y = true
axis_lock_angular_x = true
axis_lock_angular_z = true
script = ExtResource("1_4nav4")
_enemyStatResource = ExtResource("2_hqkeq")
[node name="CollisionShape" type="CollisionShape3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
shape = SubResource("CapsuleShape3D_cwfph")
[node name="Navigation" type="Node3D" parent="."]
[node name="NavigationAgentClient" parent="Navigation" instance=ExtResource("3_31xt7")]
unique_name_in_owner = true
[node name="Collision" type="Node3D" parent="."]
[node name="Collision" type="Area3D" parent="Collision"]
collision_layer = 2048
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Collision/Collision"]
shape = SubResource("SphereShape3D_8vcnq")
[node name="LineOfSight" type="Area3D" parent="Collision"]
unique_name_in_owner = true
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
collision_layer = 2
collision_mask = 2
[node name="CollisionShape3D" type="CollisionShape3D" parent="Collision/LineOfSight"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, -2)
shape = SubResource("CylinderShape3D_jbgmx")
[node name="Raycast" type="RayCast3D" parent="Collision"]
unique_name_in_owner = true
target_position = Vector3(0, 0, -5)
collision_mask = 3
[node name="Visual" type="Node3D" parent="."]
[node name="EnemyModelView" parent="Visual" instance=ExtResource("4_hqkeq")]
unique_name_in_owner = true
[node name="Timers" type="Node" parent="."]
[node name="PatrolTimer" type="Timer" parent="Timers"]
unique_name_in_owner = true
wait_time = 10.0
autostart = true
[node name="AttackTimer" type="Timer" parent="Timers"]
unique_name_in_owner = true
wait_time = 0.8
autostart = true

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="EnemyStatResource" load_steps=2 format=3 uid="uid://doycpt2aqxnx"]
[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="1_rf66x"]
[resource]
script = ExtResource("1_rf66x")
CurrentHP = 100.0
MaximumHP = 100
CurrentAttack = 10
CurrentDefense = 10
MaxAttack = 10
MaxDefense = 10
ExpFromDefeat = 0
Luck = 0.05
_telluricResistance = 0.0
_aeolicResistance = 0.0
_hydricResistance = 0.0
_igneousResistance = 0.0
_ferrumResistance = 0.0
DropsSoulGemChance = 0.75
metadata/_custom_type_script = "uid://dnkmr0eq1sij0"

View File

@@ -0,0 +1,78 @@
[gd_scene load_steps=8 format=3 uid="uid://b4oliop60eghn"]
[ext_resource type="Script" uid="uid://dauir5q616wyq" path="res://src/enemy/enemy_types/08a. Ambassador/Ambassador.cs" id="1_ln0kc"]
[ext_resource type="Resource" uid="uid://dudtbfjfekkh1" path="res://src/enemy/enemy_types/08c. Ambassador (steel)/AmbassadorSteelStats.tres" id="2_kdt1g"]
[ext_resource type="PackedScene" uid="uid://pbnsngx5jvrh" path="res://src/enemy/NavigationAgentClient.tscn" id="3_aubqt"]
[ext_resource type="PackedScene" uid="uid://lc5koiqn1sca" path="res://src/enemy/enemy_types/08c. Ambassador (steel)/AmbassadorSteelModelView.tscn" id="4_kdt1g"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
radius = 0.106078
height = 1.23076
[sub_resource type="SphereShape3D" id="SphereShape3D_8vcnq"]
radius = 0.57308
[sub_resource type="CylinderShape3D" id="CylinderShape3D_jbgmx"]
height = 5.0
radius = 1.0
[node name="AmbassadorSteel" type="CharacterBody3D"]
process_mode = 1
collision_layer = 10
collision_mask = 3
axis_lock_linear_y = true
axis_lock_angular_x = true
axis_lock_angular_z = true
script = ExtResource("1_ln0kc")
_enemyStatResource = ExtResource("2_kdt1g")
[node name="CollisionShape" type="CollisionShape3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
shape = SubResource("CapsuleShape3D_cwfph")
[node name="Navigation" type="Node3D" parent="."]
[node name="NavigationAgentClient" parent="Navigation" instance=ExtResource("3_aubqt")]
unique_name_in_owner = true
[node name="Collision" type="Node3D" parent="."]
[node name="Collision" type="Area3D" parent="Collision"]
collision_layer = 2048
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Collision/Collision"]
shape = SubResource("SphereShape3D_8vcnq")
[node name="LineOfSight" type="Area3D" parent="Collision"]
unique_name_in_owner = true
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
collision_layer = 2
collision_mask = 2
[node name="CollisionShape3D" type="CollisionShape3D" parent="Collision/LineOfSight"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, -2)
shape = SubResource("CylinderShape3D_jbgmx")
[node name="Raycast" type="RayCast3D" parent="Collision"]
unique_name_in_owner = true
target_position = Vector3(0, 0, -5)
collision_mask = 3
[node name="Visual" type="Node3D" parent="."]
[node name="EnemyModelView" parent="Visual" instance=ExtResource("4_kdt1g")]
unique_name_in_owner = true
[node name="Timers" type="Node" parent="."]
[node name="PatrolTimer" type="Timer" parent="Timers"]
unique_name_in_owner = true
wait_time = 10.0
autostart = true
[node name="AttackTimer" type="Timer" parent="Timers"]
unique_name_in_owner = true
wait_time = 0.8
autostart = true

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="EnemyStatResource" load_steps=2 format=3 uid="uid://dudtbfjfekkh1"]
[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="1_wijuv"]
[resource]
script = ExtResource("1_wijuv")
CurrentHP = 100.0
MaximumHP = 100
CurrentAttack = 10
CurrentDefense = 10
MaxAttack = 10
MaxDefense = 10
ExpFromDefeat = 0
Luck = 0.05
_telluricResistance = 0.0
_aeolicResistance = 0.0
_hydricResistance = 0.0
_igneousResistance = 0.0
_ferrumResistance = 0.0
DropsSoulGemChance = 0.75
metadata/_custom_type_script = "uid://dnkmr0eq1sij0"

View File

@@ -0,0 +1,86 @@
using Chickensoft.AutoInject;
using Chickensoft.Introspection;
using Godot;
using System.Collections.Generic;
using System;
using Zennysoft.Ma.Adapter;
using Zennysoft.Game.Abstractions;
namespace Zennysoft.Game.Ma;
[Meta(typeof(IAutoNode))]
public partial class AgiDemon : Enemy, IHasPrimaryAttack, IHasSecondaryAttack, ICanPatrol
{
public override void _Notification(int what) => this.Notify(what);
[Export]
public ElementType PrimaryAttackElementalType { get; set; } = ElementType.None;
[Export]
public double PrimaryAttackElementalDamageBonus { get; set; } = 1.0;
[Export]
public ElementType SecondaryAttackElementalType { get; set; } = ElementType.None;
[Export]
public double SecondaryAttackElementalDamageBonus { get; set; } = 1.0;
[Node] private INavigationAgentClient _navigationAgentClient { get; set; } = default!;
public void OnReady()
{
SetPhysicsProcess(true);
((EnemyModelView2D)_enemyModelView).Hitbox.AreaEntered += Hitbox_AreaEntered;
}
public void OnPhysicsProcess(double delta)
{
_enemyLogic.Input(new EnemyLogic.Input.PhysicsTick(delta));
if (_enemyLogic.Value is EnemyLogic.State.FollowPlayer && GlobalPosition.DistanceTo(_player.CurrentPosition) < 2.5f)
_enemyLogic.Input(new EnemyLogic.Input.StartAttacking());
if (_enemyLogic.Value is EnemyLogic.State.FollowPlayer && GlobalPosition.DistanceTo(_player.CurrentPosition) > 45f)
_enemyLogic.Input(new EnemyLogic.Input.LostPlayer());
if (_enemyLogic.Value is EnemyLogic.State.Attacking && GlobalPosition.DistanceTo(_player.CurrentPosition) > 2.5f)
_enemyLogic.Input(new EnemyLogic.Input.Alerted());
_navigationAgentClient.CalculateVelocity(GlobalPosition, true);
base._PhysicsProcess(delta);
}
public override void TakeAction()
{
var rng = new RandomNumberGenerator();
var options = new List<Action>() { PrimaryAttack, SecondaryAttack };
var selection = rng.RandWeighted([0.875f, 0.125f]);
options[(int)selection].Invoke();
}
public void PrimaryAttack()
{
_enemyModelView.PlayPrimaryAttackAnimation();
}
public void SecondaryAttack()
{
_enemyModelView.PlaySecondaryAttackAnimation();
}
public override void SetTarget(Vector3 target) => _navigationAgentClient.SetTarget(target);
public void Patrol()
{
var rng = new RandomNumberGenerator();
rng.Randomize();
var randomizedSpot = new Vector3(rng.RandfRange(-5.0f, 5.0f), 0, rng.RandfRange(-5.0f, 5.0f));
_enemyLogic.Input(new EnemyLogic.Input.PatrolToRandomSpot(GlobalPosition + randomizedSpot));
_enemyLogic.Input(new EnemyLogic.Input.StartPatrol());
}
private void Hitbox_AreaEntered(Area3D area)
{
var target = area.GetOwner();
if (target is IPlayer player)
{
var damage = _enemyStatResource.CurrentAttack * PrimaryAttackElementalDamageBonus;
player.TakeDamage(damage, PrimaryAttackElementalType, BattleExtensions.IsCriticalHit(_enemyStatResource.Luck));
}
}
}

View File

@@ -0,0 +1 @@
uid://h6duv685n6eh

View File

@@ -0,0 +1,73 @@
[gd_scene load_steps=7 format=3 uid="uid://b8ewfgcjv60es"]
[ext_resource type="Script" uid="uid://h6duv685n6eh" path="res://src/enemy/enemy_types/09. Agi/AgiDemon.cs" id="1_56f32"]
[ext_resource type="Resource" uid="uid://2lflwab43lb0" path="res://src/enemy/enemy_types/09. Agi/AgiDemonStats.tres" id="2_qec65"]
[ext_resource type="PackedScene" uid="uid://bls3mcsyld4vy" path="res://src/enemy/enemy_types/09. Agi/AgiDemonModelView.tscn" id="3_703e7"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
radius = 0.226425
height = 2.02807
[sub_resource type="CylinderShape3D" id="CylinderShape3D_jbgmx"]
height = 5.0
radius = 1.0
[sub_resource type="SphereShape3D" id="SphereShape3D_8vcnq"]
radius = 1.20703
[node name="Agi" type="CharacterBody3D"]
process_mode = 1
collision_layer = 10
collision_mask = 11
axis_lock_linear_y = true
axis_lock_angular_x = true
script = ExtResource("1_56f32")
PrimaryAttackElementalType = 4
SecondaryAttackElementalType = 4
_enemyStatResource = ExtResource("2_qec65")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
shape = SubResource("CapsuleShape3D_cwfph")
[node name="NavAgent" type="NavigationAgent3D" parent="."]
unique_name_in_owner = true
path_max_distance = 3.01
simplify_path = true
avoidance_enabled = true
radius = 2.0
debug_path_custom_color = Color(1, 0, 0, 1)
[node name="LineOfSight" type="Area3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
collision_layer = 2
collision_mask = 2
[node name="CollisionShape3D" type="CollisionShape3D" parent="LineOfSight"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, -2)
shape = SubResource("CylinderShape3D_jbgmx")
[node name="PatrolTimer" type="Timer" parent="."]
unique_name_in_owner = true
wait_time = 10.0
autostart = true
[node name="AttackTimer" type="Timer" parent="."]
unique_name_in_owner = true
wait_time = 0.8
autostart = true
[node name="Raycast" type="RayCast3D" parent="."]
unique_name_in_owner = true
target_position = Vector3(0, 0, -5)
collision_mask = 3
[node name="Collision" type="Area3D" parent="."]
collision_layer = 2048
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Collision"]
shape = SubResource("SphereShape3D_8vcnq")
[node name="EnemyModelView" parent="." instance=ExtResource("3_703e7")]

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="EnemyStatResource" load_steps=2 format=3 uid="uid://2lflwab43lb0"]
[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="1_ip8hu"]
[resource]
script = ExtResource("1_ip8hu")
CurrentHP = 100.0
MaximumHP = 10
CurrentAttack = 10
CurrentDefense = 10
MaxAttack = 10
MaxDefense = 10
ExpFromDefeat = 0
Luck = 0.05
_telluricResistance = 0.0
_aeolicResistance = 0.0
_hydricResistance = 0.0
_igneousResistance = 0.0
_ferrumResistance = 0.0
DropsSoulGemChance = 0.75
metadata/_custom_type_script = "uid://dnkmr0eq1sij0"

View File

@@ -0,0 +1,86 @@
using Chickensoft.AutoInject;
using Chickensoft.Introspection;
using Godot;
using System.Collections.Generic;
using System;
using Zennysoft.Ma.Adapter;
using Zennysoft.Game.Abstractions;
namespace Zennysoft.Game.Ma;
[Meta(typeof(IAutoNode))]
public partial class Palan : Enemy, IHasPrimaryAttack, IHasSecondaryAttack, ICanPatrol
{
public override void _Notification(int what) => this.Notify(what);
[Export]
public ElementType PrimaryAttackElementalType { get; set; } = ElementType.None;
[Export]
public double PrimaryAttackElementalDamageBonus { get; set; } = 1.0;
[Export]
public ElementType SecondaryAttackElementalType { get; set; } = ElementType.None;
[Export]
public double SecondaryAttackElementalDamageBonus { get; set; } = 1.0;
[Node] private INavigationAgentClient _navigationAgentClient { get; set; } = default!;
public void OnReady()
{
SetPhysicsProcess(true);
((EnemyModelView2D)_enemyModelView).Hitbox.AreaEntered += Hitbox_AreaEntered;
}
public void OnPhysicsProcess(double delta)
{
_enemyLogic.Input(new EnemyLogic.Input.PhysicsTick(delta));
if (_enemyLogic.Value is EnemyLogic.State.FollowPlayer && GlobalPosition.DistanceTo(_player.CurrentPosition) < 2.5f)
_enemyLogic.Input(new EnemyLogic.Input.StartAttacking());
if (_enemyLogic.Value is EnemyLogic.State.FollowPlayer && GlobalPosition.DistanceTo(_player.CurrentPosition) > 45f)
_enemyLogic.Input(new EnemyLogic.Input.LostPlayer());
if (_enemyLogic.Value is EnemyLogic.State.Attacking && GlobalPosition.DistanceTo(_player.CurrentPosition) > 2.5f)
_enemyLogic.Input(new EnemyLogic.Input.Alerted());
_navigationAgentClient.CalculateVelocity(GlobalPosition, true);
base._PhysicsProcess(delta);
}
public override void TakeAction()
{
var rng = new RandomNumberGenerator();
var options = new List<Action>() { PrimaryAttack, SecondaryAttack };
var selection = rng.RandWeighted([0.875f, 0.125f]);
options[(int)selection].Invoke();
}
public void PrimaryAttack()
{
_enemyModelView.PlayPrimaryAttackAnimation();
}
public void SecondaryAttack()
{
_enemyModelView.PlaySecondaryAttackAnimation();
}
public override void SetTarget(Vector3 target) => _navigationAgentClient.SetTarget(target);
public void Patrol()
{
var rng = new RandomNumberGenerator();
rng.Randomize();
var randomizedSpot = new Vector3(rng.RandfRange(-5.0f, 5.0f), 0, rng.RandfRange(-5.0f, 5.0f));
_enemyLogic.Input(new EnemyLogic.Input.PatrolToRandomSpot(GlobalPosition + randomizedSpot));
_enemyLogic.Input(new EnemyLogic.Input.StartPatrol());
}
private void Hitbox_AreaEntered(Area3D area)
{
var target = area.GetOwner();
if (target is IPlayer player)
{
var damage = _enemyStatResource.CurrentAttack * PrimaryAttackElementalDamageBonus;
player.TakeDamage(damage, PrimaryAttackElementalType, BattleExtensions.IsCriticalHit(_enemyStatResource.Luck));
}
}
}

View File

@@ -0,0 +1 @@
uid://cjd7k1scp1am8

View File

@@ -0,0 +1,71 @@
[gd_scene load_steps=8 format=3 uid="uid://boqjebx7yuiqy"]
[ext_resource type="Script" uid="uid://cjd7k1scp1am8" path="res://src/enemy/enemy_types/11. Palan/Palan.cs" id="1_2upgt"]
[ext_resource type="Resource" uid="uid://dc1i06laolear" path="res://src/enemy/enemy_types/11. Palan/PalanStats.tres" id="2_u6tof"]
[ext_resource type="PackedScene" uid="uid://pbnsngx5jvrh" path="res://src/enemy/NavigationAgentClient.tscn" id="3_c82i6"]
[ext_resource type="PackedScene" uid="uid://dxwwfbt2mtmer" path="res://src/enemy/enemy_types/11. Palan/PalanModelView.tscn" id="4_3ahu6"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
radius = 0.717471
height = 2.02807
[sub_resource type="CylinderShape3D" id="CylinderShape3D_jbgmx"]
height = 5.0
radius = 1.0
[sub_resource type="SphereShape3D" id="SphereShape3D_8vcnq"]
radius = 1.20703
[node name="Palan" type="CharacterBody3D"]
process_mode = 1
collision_layer = 10
collision_mask = 11
axis_lock_linear_y = true
axis_lock_angular_x = true
script = ExtResource("1_2upgt")
_enemyStatResource = ExtResource("2_u6tof")
[node name="CollisionShape" type="CollisionShape3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
shape = SubResource("CapsuleShape3D_cwfph")
[node name="LineOfSight" type="Area3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
collision_layer = 2
collision_mask = 2
[node name="CollisionShape3D" type="CollisionShape3D" parent="LineOfSight"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, -2)
shape = SubResource("CylinderShape3D_jbgmx")
[node name="PatrolTimer" type="Timer" parent="."]
unique_name_in_owner = true
wait_time = 10.0
autostart = true
[node name="AttackTimer" type="Timer" parent="."]
unique_name_in_owner = true
wait_time = 0.8
autostart = true
[node name="Raycast" type="RayCast3D" parent="."]
unique_name_in_owner = true
target_position = Vector3(0, 0, -5)
collision_mask = 3
[node name="Collision" type="Area3D" parent="."]
collision_layer = 2048
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Collision"]
shape = SubResource("SphereShape3D_8vcnq")
[node name="Navigation" type="Node3D" parent="."]
[node name="NavigationAgentClient" parent="Navigation" instance=ExtResource("3_c82i6")]
unique_name_in_owner = true
[node name="EnemyModelView" parent="." instance=ExtResource("4_3ahu6")]
unique_name_in_owner = true

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="EnemyStatResource" load_steps=2 format=3 uid="uid://dc1i06laolear"]
[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="1_b6ynu"]
[resource]
script = ExtResource("1_b6ynu")
CurrentHP = 100.0
MaximumHP = 100
CurrentAttack = 10
CurrentDefense = 10
MaxAttack = 10
MaxDefense = 10
ExpFromDefeat = 0
Luck = 0.05
_telluricResistance = 0.0
_aeolicResistance = 0.0
_hydricResistance = 0.0
_igneousResistance = 0.0
_ferrumResistance = 0.0
DropsSoulGemChance = 0.75
metadata/_custom_type_script = "uid://dnkmr0eq1sij0"

View File

@@ -0,0 +1,86 @@
using Chickensoft.AutoInject;
using Chickensoft.Introspection;
using Godot;
using System.Collections.Generic;
using System;
using Zennysoft.Ma.Adapter;
using Zennysoft.Game.Abstractions;
namespace Zennysoft.Game.Ma;
[Meta(typeof(IAutoNode))]
public partial class ShieldOfHeaven : Enemy, IHasPrimaryAttack, IHasSecondaryAttack, ICanPatrol
{
public override void _Notification(int what) => this.Notify(what);
[Export]
public ElementType PrimaryAttackElementalType { get; set; } = ElementType.None;
[Export]
public double PrimaryAttackElementalDamageBonus { get; set; } = 1.0;
[Export]
public ElementType SecondaryAttackElementalType { get; set; } = ElementType.None;
[Export]
public double SecondaryAttackElementalDamageBonus { get; set; } = 1.0;
[Node] private INavigationAgentClient _navigationAgentClient { get; set; } = default!;
public void OnReady()
{
SetPhysicsProcess(true);
((EnemyModelView2D)_enemyModelView).Hitbox.AreaEntered += Hitbox_AreaEntered;
}
public new void OnPhysicsProcess(double delta)
{
_enemyLogic.Input(new EnemyLogic.Input.PhysicsTick(delta));
if (_enemyLogic.Value is EnemyLogic.State.FollowPlayer && GlobalPosition.DistanceTo(_player.CurrentPosition) < 2.5f)
_enemyLogic.Input(new EnemyLogic.Input.StartAttacking());
if (_enemyLogic.Value is EnemyLogic.State.FollowPlayer && GlobalPosition.DistanceTo(_player.CurrentPosition) > 45f)
_enemyLogic.Input(new EnemyLogic.Input.LostPlayer());
if (_enemyLogic.Value is EnemyLogic.State.Attacking && GlobalPosition.DistanceTo(_player.CurrentPosition) > 2.5f)
_enemyLogic.Input(new EnemyLogic.Input.Alerted());
_navigationAgentClient.CalculateVelocity(GlobalPosition, true);
base._PhysicsProcess(delta);
}
public override void TakeAction()
{
var rng = new RandomNumberGenerator();
var options = new List<Action>() { PrimaryAttack, SecondaryAttack };
var selection = rng.RandWeighted([0.875f, 0.125f]);
options[(int)selection].Invoke();
}
public void PrimaryAttack()
{
_enemyModelView.PlayPrimaryAttackAnimation();
}
public void SecondaryAttack()
{
_enemyModelView.PlaySecondaryAttackAnimation();
}
public override void SetTarget(Vector3 target) => _navigationAgentClient.SetTarget(target);
public void Patrol()
{
var rng = new RandomNumberGenerator();
rng.Randomize();
var randomizedSpot = new Vector3(rng.RandfRange(-5.0f, 5.0f), 0, rng.RandfRange(-5.0f, 5.0f));
_enemyLogic.Input(new EnemyLogic.Input.PatrolToRandomSpot(GlobalPosition + randomizedSpot));
_enemyLogic.Input(new EnemyLogic.Input.StartPatrol());
}
private void Hitbox_AreaEntered(Area3D area)
{
var target = area.GetOwner();
if (target is IPlayer player)
{
var damage = _enemyStatResource.CurrentAttack * PrimaryAttackElementalDamageBonus;
player.TakeDamage(damage, PrimaryAttackElementalType, BattleExtensions.IsCriticalHit(_enemyStatResource.Luck));
}
}
}

View File

@@ -0,0 +1 @@
uid://cjdivu0v1kfhy

View File

@@ -0,0 +1,90 @@
[gd_scene load_steps=8 format=3 uid="uid://5s7c4dsb1wwk"]
[ext_resource type="Script" uid="uid://cjdivu0v1kfhy" path="res://src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.cs" id="1_ips1f"]
[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="2_oxa5b"]
[ext_resource type="PackedScene" uid="uid://drkaq6grim1fb" path="res://src/enemy/enemy_types/12. Shield of Heaven/ShieldModelView.tscn" id="3_r2swr"]
[sub_resource type="Resource" id="Resource_r2swr"]
script = ExtResource("2_oxa5b")
CurrentHP = 100.0
MaximumHP = 100
CurrentAttack = 10
CurrentDefense = 10
MaxAttack = 10
MaxDefense = 10
ExpFromDefeat = 0
Luck = 0.05
_telluricResistance = 0.0
_aeolicResistance = 0.0
_hydricResistance = 0.0
_igneousResistance = 0.0
_ferrumResistance = 0.0
DropsSoulGemChance = 0.75
metadata/_custom_type_script = "uid://dnkmr0eq1sij0"
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
radius = 0.226425
height = 2.02807
[sub_resource type="CylinderShape3D" id="CylinderShape3D_jbgmx"]
height = 5.0
radius = 1.0
[sub_resource type="SphereShape3D" id="SphereShape3D_8vcnq"]
radius = 1.20703
[node name="ShieldOfHeaven" type="CharacterBody3D"]
process_mode = 1
collision_layer = 10
collision_mask = 11
axis_lock_linear_y = true
axis_lock_angular_x = true
script = ExtResource("1_ips1f")
_enemyStatResource = SubResource("Resource_r2swr")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
shape = SubResource("CapsuleShape3D_cwfph")
[node name="NavAgent" type="NavigationAgent3D" parent="."]
unique_name_in_owner = true
path_max_distance = 3.01
simplify_path = true
avoidance_enabled = true
radius = 2.0
debug_path_custom_color = Color(1, 0, 0, 1)
[node name="LineOfSight" type="Area3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
collision_layer = 2
collision_mask = 2
[node name="CollisionShape3D" type="CollisionShape3D" parent="LineOfSight"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, -2)
shape = SubResource("CylinderShape3D_jbgmx")
[node name="PatrolTimer" type="Timer" parent="."]
unique_name_in_owner = true
wait_time = 10.0
autostart = true
[node name="AttackTimer" type="Timer" parent="."]
unique_name_in_owner = true
wait_time = 0.8
autostart = true
[node name="Raycast" type="RayCast3D" parent="."]
unique_name_in_owner = true
target_position = Vector3(0, 0, -5)
collision_mask = 3
[node name="Collision" type="Area3D" parent="."]
collision_layer = 2048
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Collision"]
shape = SubResource("SphereShape3D_8vcnq")
[node name="EnemyModelView" parent="." instance=ExtResource("3_r2swr")]
unique_name_in_owner = true

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="EnemyStatResource" load_steps=2 format=3 uid="uid://c5fgcsruq5gx6"]
[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="1_e725b"]
[resource]
script = ExtResource("1_e725b")
CurrentHP = 100.0
MaximumHP = 100
CurrentAttack = 10
CurrentDefense = 10
MaxAttack = 10
MaxDefense = 10
ExpFromDefeat = 0
Luck = 0.05
_telluricResistance = 0.0
_aeolicResistance = 0.0
_hydricResistance = 0.0
_igneousResistance = 0.0
_ferrumResistance = 0.0
DropsSoulGemChance = 0.75
metadata/_custom_type_script = "uid://dnkmr0eq1sij0"

View File

@@ -0,0 +1,79 @@
[gd_scene load_steps=8 format=3 uid="uid://b3giib0jp3uod"]
[ext_resource type="Script" uid="uid://jjulhqd5g3be" path="res://src/enemy/enemy_types/13. gold sproingy/GoldSproingy.cs" id="1_o1o4d"]
[ext_resource type="Resource" uid="uid://m8wl23q4kr4t" path="res://src/enemy/enemy_types/13. gold sproingy/GoldSproingyStats.tres" id="2_58d4o"]
[ext_resource type="PackedScene" uid="uid://pbnsngx5jvrh" path="res://src/enemy/NavigationAgentClient.tscn" id="3_u82b8"]
[ext_resource type="PackedScene" uid="uid://c5asojy73n44d" path="res://src/enemy/enemy_types/13. gold sproingy/GoldSproingyModelView.tscn" id="4_58d4o"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
radius = 0.106078
height = 1.23076
[sub_resource type="SphereShape3D" id="SphereShape3D_8vcnq"]
radius = 0.57308
[sub_resource type="CylinderShape3D" id="CylinderShape3D_jbgmx"]
height = 5.0
radius = 1.0
[node name="GoldSproingy" type="CharacterBody3D"]
process_mode = 1
collision_layer = 10
collision_mask = 3
axis_lock_linear_y = true
axis_lock_angular_x = true
axis_lock_angular_z = true
script = ExtResource("1_o1o4d")
_enemyStatResource = ExtResource("2_58d4o")
_movementSpeed = 4.0
[node name="CollisionShape" type="CollisionShape3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
shape = SubResource("CapsuleShape3D_cwfph")
[node name="Navigation" type="Node3D" parent="."]
[node name="NavigationAgentClient" parent="Navigation" instance=ExtResource("3_u82b8")]
unique_name_in_owner = true
[node name="Collision" type="Node3D" parent="."]
[node name="Collision" type="Area3D" parent="Collision"]
collision_layer = 2048
collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Collision/Collision"]
shape = SubResource("SphereShape3D_8vcnq")
[node name="LineOfSight" type="Area3D" parent="Collision"]
unique_name_in_owner = true
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
collision_layer = 2
collision_mask = 2
[node name="CollisionShape3D" type="CollisionShape3D" parent="Collision/LineOfSight"]
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, -2)
shape = SubResource("CylinderShape3D_jbgmx")
[node name="Raycast" type="RayCast3D" parent="Collision"]
unique_name_in_owner = true
target_position = Vector3(0, 0, -5)
collision_mask = 3
[node name="Visual" type="Node3D" parent="."]
[node name="EnemyModelView" parent="Visual" instance=ExtResource("4_58d4o")]
unique_name_in_owner = true
[node name="Timers" type="Node" parent="."]
[node name="PatrolTimer" type="Timer" parent="Timers"]
unique_name_in_owner = true
wait_time = 10.0
autostart = true
[node name="AttackTimer" type="Timer" parent="Timers"]
unique_name_in_owner = true
wait_time = 0.8
autostart = true

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="EnemyStatResource" load_steps=2 format=3 uid="uid://m8wl23q4kr4t"]
[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="1_dvrvn"]
[resource]
script = ExtResource("1_dvrvn")
CurrentHP = 25.0
MaximumHP = 25
CurrentAttack = 0
CurrentDefense = 0
MaxAttack = 0
MaxDefense = 0
ExpFromDefeat = 0
Luck = 0.05
_telluricResistance = 0.0
_aeolicResistance = 0.0
_hydricResistance = 0.0
_igneousResistance = 0.0
_ferrumResistance = 0.0
DropsSoulGemChance = 0.75
metadata/_custom_type_script = "uid://dnkmr0eq1sij0"

View File

@@ -0,0 +1,37 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://bum4gfqtytntr"
path="res://.godot/imported/DEMON WALL BASE+ PIPES VER.1.1.glb-522719266db4a46fdb0aa3a3c11a4d12.scn"
[deps]
source_file="res://src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1.1.glb"
dest_files=["res://.godot/imported/DEMON WALL BASE+ PIPES VER.1.1.glb-522719266db4a46fdb0aa3a3c11a4d12.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
gltf/naming_version=1
gltf/embedded_image_handling=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

View File

@@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://slclem8jixl7"
path="res://.godot/imported/DEMON WALL BASE+ PIPES VER.1_AREA_2_MAIN_222STONE.png-9e4c173cadf0e6dfd5e7e26de18acf88.ctex"
metadata={
"vram_texture": false
}
generator_parameters={
"md5": "11027637ea8e7d257bd13c57efd3b5b4"
}
[deps]
source_file="res://src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_AREA_2_MAIN_222STONE.png"
dest_files=["res://.godot/imported/DEMON WALL BASE+ PIPES VER.1_AREA_2_MAIN_222STONE.png-9e4c173cadf0e6dfd5e7e26de18acf88.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

View File

@@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://baegb2s3ewm3l"
path="res://.godot/imported/DEMON WALL BASE+ PIPES VER.1_PIPER.png-5151203ff02228e68308c039225079ea.ctex"
metadata={
"vram_texture": false
}
generator_parameters={
"md5": "7c3246438ecabef0efa70cd71e8029d0"
}
[deps]
source_file="res://src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_PIPER.png"
dest_files=["res://.godot/imported/DEMON WALL BASE+ PIPES VER.1_PIPER.png-5151203ff02228e68308c039225079ea.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 784 KiB

View File

@@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cfk7krp1djh1q"
path="res://.godot/imported/DEMON WALL BASE+ PIPES VER.1_concrete_0003_height_1k.png-e479d00c71f1a8cdb7bf5611b61f6b3b.ctex"
metadata={
"vram_texture": false
}
generator_parameters={
"md5": "ae0147c1574dde9b1de51f409b0ef04f"
}
[deps]
source_file="res://src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_concrete_0003_height_1k.png"
dest_files=["res://.godot/imported/DEMON WALL BASE+ PIPES VER.1_concrete_0003_height_1k.png-e479d00c71f1a8cdb7bf5611b61f6b3b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=1
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=1
roughness/src_normal="res://src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_concrete_0003_height_1k.png"
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View File

@@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c3a7xkip7wit5"
path="res://.godot/imported/DEMON WALL BASE+ PIPES VER.1_iris-photography-no-reflections-method.jpg-b5032c01dd2105fcbe9010f947eaca60.ctex"
metadata={
"vram_texture": false
}
generator_parameters={
"md5": "585f2a4c17e3fbeb9a34c0c9c519e1e3"
}
[deps]
source_file="res://src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_iris-photography-no-reflections-method.jpg"
dest_files=["res://.godot/imported/DEMON WALL BASE+ PIPES VER.1_iris-photography-no-reflections-method.jpg-b5032c01dd2105fcbe9010f947eaca60.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View File

@@ -1,26 +1,26 @@
[gd_scene load_steps=8 format=3 uid="uid://b8ewfgcjv60es"] [gd_scene load_steps=8 format=3 uid="uid://dpq17ej06uah1"]
[ext_resource type="Script" uid="uid://jjulhqd5g3be" path="res://src/enemy/enemy_types/13. gold sproingy/GoldSproingy.cs" id="1_2bycu"] [ext_resource type="Script" uid="uid://h6duv685n6eh" path="res://src/enemy/enemy_types/09. Agi/AgiDemon.cs" id="1_wbopj"]
[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="2_55x64"] [ext_resource type="PackedScene" uid="uid://cu7n814hhtjwm" path="res://src/enemy/enemy_types/9b. Aqueos Demon/AqueosModelView.tscn" id="2_0hbxv"]
[ext_resource type="PackedScene" uid="uid://bli0t0d6ommvi" path="res://src/enemy/enemy_types/04. sara/SaraModelView.tscn" id="3_3trjw"] [ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="2_wtipe"]
[sub_resource type="Resource" id="Resource_o3b7p"] [sub_resource type="Resource" id="Resource_m7ocm"]
script = ExtResource("2_55x64") script = ExtResource("2_wtipe")
CurrentHP = 50.0 CurrentHP = 100.0
MaximumHP = 0 MaximumHP = 100
CurrentAttack = 20 CurrentAttack = 10
CurrentDefense = 5 CurrentDefense = 5
MaxAttack = 20 MaxAttack = 10
MaxDefense = 5 MaxDefense = 5
ExpFromDefeat = 15 ExpFromDefeat = 0
Luck = 0.05 Luck = 0.05
_telluricResistance = 0.0 _telluricResistance = 0.0
_aeolicResistance = 0.0 _aeolicResistance = 0.0
_hydricResistance = 0.0 _hydricResistance = 0.5
_igneousResistance = 0.0 _igneousResistance = 0.0
_ferrumResistance = 0.0 _ferrumResistance = 0.0
DropsSoulGemChance = 0.75 DropsSoulGemChance = 0.75
metadata/_custom_type_script = ExtResource("2_55x64") metadata/_custom_type_script = "uid://dnkmr0eq1sij0"
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
radius = 0.226425 radius = 0.226425
@@ -33,15 +33,16 @@ radius = 1.0
[sub_resource type="SphereShape3D" id="SphereShape3D_8vcnq"] [sub_resource type="SphereShape3D" id="SphereShape3D_8vcnq"]
radius = 1.20703 radius = 1.20703
[node name="Agi" type="CharacterBody3D"] [node name="AqueousDemon" type="CharacterBody3D"]
process_mode = 1 process_mode = 1
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
collision_layer = 10 collision_layer = 10
collision_mask = 11 collision_mask = 11
axis_lock_linear_y = true axis_lock_linear_y = true
axis_lock_angular_x = true axis_lock_angular_x = true
script = ExtResource("1_2bycu") script = ExtResource("1_wbopj")
_enemyStatResource = SubResource("Resource_o3b7p") PrimaryAttackElementalType = 3
SecondaryAttackElementalType = 3
_enemyStatResource = SubResource("Resource_m7ocm")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."] [node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0) transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
@@ -80,13 +81,12 @@ unique_name_in_owner = true
target_position = Vector3(0, 0, -5) target_position = Vector3(0, 0, -5)
collision_mask = 3 collision_mask = 3
[node name="EnemyModelView" parent="." instance=ExtResource("3_3trjw")]
unique_name_in_owner = true
transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 0.0862446, 0)
[node name="Collision" type="Area3D" parent="."] [node name="Collision" type="Area3D" parent="."]
collision_layer = 2048 collision_layer = 2048
collision_mask = 0 collision_mask = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="Collision"] [node name="CollisionShape3D" type="CollisionShape3D" parent="Collision"]
shape = SubResource("SphereShape3D_8vcnq") shape = SubResource("SphereShape3D_8vcnq")
[node name="EnemyModelView" parent="." instance=ExtResource("2_0hbxv")]
unique_name_in_owner = true

View File

@@ -0,0 +1,9 @@
[gd_resource type="Resource" script_class="EnemyLoreInfo" load_steps=2 format=3 uid="uid://co0eq5nl2ai24"]
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="1_se0pe"]
[resource]
script = ExtResource("1_se0pe")
Name = "Aqueous Demon"
Description = "Water monster"
metadata/_custom_type_script = "uid://dlsgyx4i1jmp3"

View File

@@ -0,0 +1,21 @@
[gd_resource type="Resource" script_class="EnemyStatResource" load_steps=2 format=3 uid="uid://cpoxit5pafww5"]
[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="1_8v7ib"]
[resource]
script = ExtResource("1_8v7ib")
CurrentHP = 100.0
MaximumHP = 100
CurrentAttack = 10
CurrentDefense = 5
MaxAttack = 10
MaxDefense = 5
ExpFromDefeat = 0
Luck = 0.05
_telluricResistance = 0.0
_aeolicResistance = 0.0
_hydricResistance = 0.5
_igneousResistance = 0.0
_ferrumResistance = 0.0
DropsSoulGemChance = 0.75
metadata/_custom_type_script = "uid://dnkmr0eq1sij0"

View File

@@ -1,7 +1,7 @@
[gd_scene load_steps=530 format=3 uid="uid://cu7n814hhtjwm"] [gd_scene load_steps=529 format=3 uid="uid://cu7n814hhtjwm"]
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_vf7er"] [ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_vf7er"]
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_tsjqi"] [ext_resource type="Resource" uid="uid://co0eq5nl2ai24" path="res://src/enemy/enemy_types/9b. Aqueos Demon/AqueosDemonInfo.tres" id="2_ejhrk"]
[ext_resource type="Texture2D" uid="uid://ble7lu2fb6owm" path="res://src/enemy/enemy_types/9b. Aqueos Demon/animations/BACK/0060.png" id="3_pcxyk"] [ext_resource type="Texture2D" uid="uid://ble7lu2fb6owm" path="res://src/enemy/enemy_types/9b. Aqueos Demon/animations/BACK/0060.png" id="3_pcxyk"]
[ext_resource type="Texture2D" uid="uid://bccdtqmpevvrp" path="res://src/enemy/enemy_types/9b. Aqueos Demon/animations/BACK/0062.png" id="4_g6g3u"] [ext_resource type="Texture2D" uid="uid://bccdtqmpevvrp" path="res://src/enemy/enemy_types/9b. Aqueos Demon/animations/BACK/0062.png" id="4_g6g3u"]
[ext_resource type="Texture2D" uid="uid://c87w07evb5avc" path="res://src/enemy/enemy_types/9b. Aqueos Demon/animations/BACK/0064.png" id="5_sm161"] [ext_resource type="Texture2D" uid="uid://c87w07evb5avc" path="res://src/enemy/enemy_types/9b. Aqueos Demon/animations/BACK/0064.png" id="5_sm161"]
@@ -334,12 +334,6 @@
[ext_resource type="Texture2D" uid="uid://c311su0a86yii" path="res://src/enemy/enemy_types/9b. Aqueos Demon/animations/WATER LOOP/0190.png" id="332_8j4qa"] [ext_resource type="Texture2D" uid="uid://c311su0a86yii" path="res://src/enemy/enemy_types/9b. Aqueos Demon/animations/WATER LOOP/0190.png" id="332_8j4qa"]
[ext_resource type="Script" uid="uid://6edayafleq8y" path="res://src/hitbox/Hitbox.cs" id="333_ylptm"] [ext_resource type="Script" uid="uid://6edayafleq8y" path="res://src/hitbox/Hitbox.cs" id="333_ylptm"]
[sub_resource type="Resource" id="Resource_f45wt"]
script = ExtResource("2_tsjqi")
Name = "Agi Demon"
Description = "Lava monster"
metadata/_custom_type_script = "uid://dlsgyx4i1jmp3"
[sub_resource type="ViewportTexture" id="ViewportTexture_h1kaf"] [sub_resource type="ViewportTexture" id="ViewportTexture_h1kaf"]
viewport_path = NodePath("Sprite3D/SubViewportContainer/SubViewport") viewport_path = NodePath("Sprite3D/SubViewportContainer/SubViewport")
@@ -2561,7 +2555,7 @@ _data = {
[node name="EnemyModelView" type="Node3D"] [node name="EnemyModelView" type="Node3D"]
script = ExtResource("1_vf7er") script = ExtResource("1_vf7er")
EnemyLoreInfo = SubResource("Resource_f45wt") EnemyLoreInfo = ExtResource("2_ejhrk")
[node name="Sprite3D" type="Sprite3D" parent="."] [node name="Sprite3D" type="Sprite3D" parent="."]
transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 0, 0) transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 0, 0)

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=14 format=3 uid="uid://bc1sp6xwe0j65"] [gd_scene load_steps=13 format=3 uid="uid://bc1sp6xwe0j65"]
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_0ecnn"] [ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_0ecnn"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_cxmwa"] [ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_cxmwa"]
@@ -6,7 +6,6 @@
[ext_resource type="PackedScene" uid="uid://dn5546yqyntfr" path="res://src/map/dungeon/rooms/Set A/10. Item Transfer Room.tscn" id="6_atq1f"] [ext_resource type="PackedScene" uid="uid://dn5546yqyntfr" path="res://src/map/dungeon/rooms/Set A/10. Item Transfer Room.tscn" id="6_atq1f"]
[ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/rooms/Set A/08. Basin Room.tscn" id="8_5rblf"] [ext_resource type="PackedScene" uid="uid://b82dx66mgs2d7" path="res://src/map/dungeon/rooms/Set A/08. Basin Room.tscn" id="8_5rblf"]
[ext_resource type="PackedScene" uid="uid://bs56ccgosmu47" path="res://src/enemy/enemy_types/01. sproingy/Sproingy.tscn" id="9_atq1f"] [ext_resource type="PackedScene" uid="uid://bs56ccgosmu47" path="res://src/enemy/enemy_types/01. sproingy/Sproingy.tscn" id="9_atq1f"]
[ext_resource type="PackedScene" uid="uid://dlw5cvutvypxn" path="res://src/enemy/enemy_types/06. chariot/Chariot.tscn" id="11_sdyti"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="12_aw26s"] [ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="12_aw26s"]
[ext_resource type="PackedScene" uid="uid://cihbmyo0ltq4m" path="res://src/map/dungeon/rooms/Set A/19. Floor Exit A.tscn" id="12_n02rw"] [ext_resource type="PackedScene" uid="uid://cihbmyo0ltq4m" path="res://src/map/dungeon/rooms/Set A/19. Floor Exit A.tscn" id="12_n02rw"]
[ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/rooms/Set A/18. Corridor A.tscn" id="13_ofywd"] [ext_resource type="PackedScene" uid="uid://bn4gslp2gk8ds" path="res://src/map/dungeon/rooms/Set A/18. Corridor A.tscn" id="13_ofywd"]
@@ -188,6 +187,3 @@ disabled = true
[node name="EnemyDatabase" parent="." instance=ExtResource("12_aw26s")] [node name="EnemyDatabase" parent="." instance=ExtResource("12_aw26s")]
unique_name_in_owner = true unique_name_in_owner = true
EnemyList = Array[PackedScene]([ExtResource("9_atq1f"), ExtResource("14_gkkr3")]) EnemyList = Array[PackedScene]([ExtResource("9_atq1f"), ExtResource("14_gkkr3")])
[node name="Chariot" parent="." instance=ExtResource("11_sdyti")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -33.5203, 0.647948, -28.4574)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -369,5 +369,5 @@ shape = SubResource("BoxShape3D_ltey6")
[node name="EnemyDatabase" parent="." instance=ExtResource("11_vn8cd")] [node name="EnemyDatabase" parent="." instance=ExtResource("11_vn8cd")]
unique_name_in_owner = true unique_name_in_owner = true
EnemyList = Array[PackedScene]([ExtResource("13_gb3sg"), ExtResource("13_0tmnj"), ExtResource("16_rgrkc")]) EnemyList = Array[PackedScene]([ExtResource("13_gb3sg"), ExtResource("16_rgrkc"), ExtResource("13_0tmnj")])
SpawnRate = PackedFloat32Array(1, 0.5, 1) SpawnRate = PackedFloat32Array(0.5, 1, 0.5)

View File

@@ -333,5 +333,5 @@ shape = SubResource("BoxShape3D_bji1g")
[node name="EnemyDatabase" parent="." instance=ExtResource("11_xast8")] [node name="EnemyDatabase" parent="." instance=ExtResource("11_xast8")]
unique_name_in_owner = true unique_name_in_owner = true
EnemyList = Array[PackedScene]([ExtResource("12_tr8km"), ExtResource("13_43euk"), ExtResource("14_purgj"), ExtResource("16_ogmgc")]) EnemyList = Array[PackedScene]([ExtResource("12_tr8km"), ExtResource("16_ogmgc"), ExtResource("13_43euk"), ExtResource("14_purgj")])
SpawnRate = PackedFloat32Array(0.5, 1, 0.25, 0.5) SpawnRate = PackedFloat32Array(0.5, 0.5, 1, 0.5)

View File

@@ -395,5 +395,5 @@ shape = SubResource("BoxShape3D_mir7f")
[node name="EnemyDatabase" parent="." instance=ExtResource("11_uflod")] [node name="EnemyDatabase" parent="." instance=ExtResource("11_uflod")]
unique_name_in_owner = true unique_name_in_owner = true
EnemyList = Array[PackedScene]([ExtResource("13_c8dl5"), ExtResource("13_qs20c"), ExtResource("15_pn3nc")]) EnemyList = Array[PackedScene]([ExtResource("15_pn3nc"), ExtResource("13_c8dl5"), ExtResource("13_qs20c")])
SpawnRate = PackedFloat32Array(1, 1, 0.5) SpawnRate = PackedFloat32Array(0.25, 1, 1)

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=17 format=3 uid="uid://dl2x3l7a3an65"] [gd_scene load_steps=18 format=3 uid="uid://dl2x3l7a3an65"]
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_k525w"] [ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_k525w"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_bw315"] [ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_bw315"]
@@ -14,6 +14,7 @@
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="11_jk7yl"] [ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="11_jk7yl"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="11_y24bo"] [ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="11_y24bo"]
[ext_resource type="PackedScene" uid="uid://dlw5cvutvypxn" path="res://src/enemy/enemy_types/06. chariot/Chariot.tscn" id="13_aj7yr"] [ext_resource type="PackedScene" uid="uid://dlw5cvutvypxn" path="res://src/enemy/enemy_types/06. chariot/Chariot.tscn" id="13_aj7yr"]
[ext_resource type="PackedScene" uid="uid://fosk3kt7vp8d" path="res://src/enemy/enemy_types/08a. Ambassador/Ambassador.tscn" id="15_8e7p7"]
[ext_resource type="PackedScene" uid="uid://c6tqt27ql8s35" path="res://src/enemy/enemy_types/07. chinthe/Chinthe.tscn" id="15_bw315"] [ext_resource type="PackedScene" uid="uid://c6tqt27ql8s35" path="res://src/enemy/enemy_types/07. chinthe/Chinthe.tscn" id="15_bw315"]
[sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"] [sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"]
@@ -39,4 +40,4 @@ generate_on_ready = false
[node name="EnemyDatabase" parent="." instance=ExtResource("11_y24bo")] [node name="EnemyDatabase" parent="." instance=ExtResource("11_y24bo")]
unique_name_in_owner = true unique_name_in_owner = true
EnemyList = Array[PackedScene]([ExtResource("13_aj7yr"), ExtResource("15_bw315")]) EnemyList = Array[PackedScene]([ExtResource("13_aj7yr"), ExtResource("15_8e7p7"), ExtResource("15_bw315")])

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=16 format=3 uid="uid://drvjw06wbi2qh"] [gd_scene load_steps=18 format=3 uid="uid://drvjw06wbi2qh"]
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_xpfig"] [ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_xpfig"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_m28m3"] [ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_m28m3"]
@@ -14,6 +14,8 @@
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_1rgka"] [ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_1rgka"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_jwrcb"] [ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_jwrcb"]
[ext_resource type="PackedScene" uid="uid://c6tqt27ql8s35" path="res://src/enemy/enemy_types/07. chinthe/Chinthe.tscn" id="14_edmor"] [ext_resource type="PackedScene" uid="uid://c6tqt27ql8s35" path="res://src/enemy/enemy_types/07. chinthe/Chinthe.tscn" id="14_edmor"]
[ext_resource type="PackedScene" uid="uid://fosk3kt7vp8d" path="res://src/enemy/enemy_types/08a. Ambassador/Ambassador.tscn" id="14_xpfig"]
[ext_resource type="PackedScene" uid="uid://b8ewfgcjv60es" path="res://src/enemy/enemy_types/09. Agi/AgiDemon.tscn" id="16_m28m3"]
[sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"] [sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"]
border_size = 1.0 border_size = 1.0
@@ -38,5 +40,5 @@ generate_on_ready = false
[node name="EnemyDatabase" parent="." instance=ExtResource("13_jwrcb")] [node name="EnemyDatabase" parent="." instance=ExtResource("13_jwrcb")]
unique_name_in_owner = true unique_name_in_owner = true
EnemyList = Array[PackedScene]([ExtResource("14_edmor")]) EnemyList = Array[PackedScene]([ExtResource("14_xpfig"), ExtResource("14_edmor"), ExtResource("16_m28m3")])
SpawnRate = PackedFloat32Array(1) SpawnRate = PackedFloat32Array(1, 1, 0.25)

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=15 format=3 uid="uid://fellg2owwe64"] [gd_scene load_steps=18 format=3 uid="uid://fellg2owwe64"]
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_cmrxb"] [ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_cmrxb"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_bb5ek"] [ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_bb5ek"]
@@ -13,6 +13,9 @@
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_mwwyc"] [ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_mwwyc"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_hnpqo"] [ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_hnpqo"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_bm34w"] [ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_bm34w"]
[ext_resource type="PackedScene" uid="uid://fosk3kt7vp8d" path="res://src/enemy/enemy_types/08a. Ambassador/Ambassador.tscn" id="14_cmrxb"]
[ext_resource type="PackedScene" uid="uid://c6tqt27ql8s35" path="res://src/enemy/enemy_types/07. chinthe/Chinthe.tscn" id="15_bb5ek"]
[ext_resource type="PackedScene" uid="uid://b8ewfgcjv60es" path="res://src/enemy/enemy_types/09. Agi/AgiDemon.tscn" id="16_ak4no"]
[sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"] [sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"]
border_size = 1.0 border_size = 1.0
@@ -37,5 +40,5 @@ generate_on_ready = false
[node name="EnemyDatabase" parent="." instance=ExtResource("13_bm34w")] [node name="EnemyDatabase" parent="." instance=ExtResource("13_bm34w")]
unique_name_in_owner = true unique_name_in_owner = true
EnemyList = Array[PackedScene]([]) EnemyList = Array[PackedScene]([ExtResource("14_cmrxb"), ExtResource("15_bb5ek"), ExtResource("16_ak4no")])
SpawnRate = PackedFloat32Array() SpawnRate = PackedFloat32Array(1, 1, 1)

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=16 format=3 uid="uid://vhqwff12y7wn"] [gd_scene load_steps=19 format=3 uid="uid://vhqwff12y7wn"]
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_qo66f"] [ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_qo66f"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_q127u"] [ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_q127u"]
@@ -14,6 +14,9 @@
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_tkntm"] [ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_tkntm"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_8j25c"] [ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_8j25c"]
[ext_resource type="PackedScene" uid="uid://c6tqt27ql8s35" path="res://src/enemy/enemy_types/07. chinthe/Chinthe.tscn" id="14_r4r1j"] [ext_resource type="PackedScene" uid="uid://c6tqt27ql8s35" path="res://src/enemy/enemy_types/07. chinthe/Chinthe.tscn" id="14_r4r1j"]
[ext_resource type="PackedScene" uid="uid://b8ewfgcjv60es" path="res://src/enemy/enemy_types/09. Agi/AgiDemon.tscn" id="15_q127u"]
[ext_resource type="PackedScene" uid="uid://cmvimr0pvsgqy" path="res://src/enemy/enemy_types/10. Eden Pillar/Eden Pillar.tscn" id="16_7km57"]
[ext_resource type="PackedScene" uid="uid://b3giib0jp3uod" path="res://src/enemy/enemy_types/13. gold sproingy/GoldSproingy.tscn" id="17_nrwsy"]
[sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"] [sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"]
border_size = 1.0 border_size = 1.0
@@ -38,5 +41,5 @@ generate_on_ready = false
[node name="EnemyDatabase" parent="." instance=ExtResource("13_8j25c")] [node name="EnemyDatabase" parent="." instance=ExtResource("13_8j25c")]
unique_name_in_owner = true unique_name_in_owner = true
EnemyList = Array[PackedScene]([ExtResource("14_r4r1j")]) EnemyList = Array[PackedScene]([ExtResource("14_r4r1j"), ExtResource("15_q127u"), ExtResource("16_7km57"), ExtResource("17_nrwsy")])
SpawnRate = PackedFloat32Array(1) SpawnRate = PackedFloat32Array(0.25, 1, 0.1, 0.05)

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=15 format=3 uid="uid://h8tc1uohuqx2"] [gd_scene load_steps=18 format=3 uid="uid://h8tc1uohuqx2"]
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_i4yll"] [ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_i4yll"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_xtyir"] [ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_xtyir"]
@@ -13,6 +13,9 @@
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_t8tuf"] [ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_t8tuf"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_f284e"] [ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_f284e"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_hlb65"] [ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_hlb65"]
[ext_resource type="PackedScene" uid="uid://b8ewfgcjv60es" path="res://src/enemy/enemy_types/09. Agi/AgiDemon.tscn" id="14_i4yll"]
[ext_resource type="PackedScene" uid="uid://cmvimr0pvsgqy" path="res://src/enemy/enemy_types/10. Eden Pillar/Eden Pillar.tscn" id="15_xtyir"]
[ext_resource type="PackedScene" uid="uid://5s7c4dsb1wwk" path="res://src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.tscn" id="16_cfhak"]
[sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"] [sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"]
border_size = 1.0 border_size = 1.0
@@ -37,5 +40,5 @@ generate_on_ready = false
[node name="EnemyDatabase" parent="." instance=ExtResource("13_hlb65")] [node name="EnemyDatabase" parent="." instance=ExtResource("13_hlb65")]
unique_name_in_owner = true unique_name_in_owner = true
EnemyList = Array[PackedScene]([]) EnemyList = Array[PackedScene]([ExtResource("14_i4yll"), ExtResource("15_xtyir"), ExtResource("16_cfhak")])
SpawnRate = PackedFloat32Array() SpawnRate = PackedFloat32Array(1, 1, 0.25)

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=15 format=3 uid="uid://cyfp0p38w2yfr"] [gd_scene load_steps=18 format=3 uid="uid://cyfp0p38w2yfr"]
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_dg3fy"] [ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_dg3fy"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_q8hlb"] [ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_q8hlb"]
@@ -13,6 +13,9 @@
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_wurkp"] [ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_wurkp"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_qbngl"] [ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_qbngl"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_gg5wp"] [ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_gg5wp"]
[ext_resource type="PackedScene" uid="uid://b8ewfgcjv60es" path="res://src/enemy/enemy_types/09. Agi/AgiDemon.tscn" id="14_dg3fy"]
[ext_resource type="PackedScene" uid="uid://cmvimr0pvsgqy" path="res://src/enemy/enemy_types/10. Eden Pillar/Eden Pillar.tscn" id="15_q8hlb"]
[ext_resource type="PackedScene" uid="uid://boqjebx7yuiqy" path="res://src/enemy/enemy_types/11. Palan/Palan.tscn" id="16_0utb0"]
[sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"] [sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"]
border_size = 1.0 border_size = 1.0
@@ -37,5 +40,5 @@ generate_on_ready = false
[node name="EnemyDatabase" parent="." instance=ExtResource("13_gg5wp")] [node name="EnemyDatabase" parent="." instance=ExtResource("13_gg5wp")]
unique_name_in_owner = true unique_name_in_owner = true
EnemyList = Array[PackedScene]([]) EnemyList = Array[PackedScene]([ExtResource("14_dg3fy"), ExtResource("15_q8hlb"), ExtResource("16_0utb0")])
SpawnRate = PackedFloat32Array(1) SpawnRate = PackedFloat32Array(0.25, 1, 1)

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=15 format=3 uid="uid://dnrbqkv438tjx"] [gd_scene load_steps=18 format=3 uid="uid://dnrbqkv438tjx"]
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_7fjdy"] [ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_7fjdy"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_neo74"] [ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_neo74"]
@@ -13,6 +13,9 @@
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_0tado"] [ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_0tado"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_wm2qn"] [ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_wm2qn"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_f1owy"] [ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_f1owy"]
[ext_resource type="PackedScene" uid="uid://cmvimr0pvsgqy" path="res://src/enemy/enemy_types/10. Eden Pillar/Eden Pillar.tscn" id="14_7fjdy"]
[ext_resource type="PackedScene" uid="uid://boqjebx7yuiqy" path="res://src/enemy/enemy_types/11. Palan/Palan.tscn" id="15_neo74"]
[ext_resource type="PackedScene" uid="uid://5s7c4dsb1wwk" path="res://src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.tscn" id="16_iqgo0"]
[sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"] [sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"]
border_size = 1.0 border_size = 1.0
@@ -37,5 +40,5 @@ generate_on_ready = false
[node name="EnemyDatabase" parent="." instance=ExtResource("13_f1owy")] [node name="EnemyDatabase" parent="." instance=ExtResource("13_f1owy")]
unique_name_in_owner = true unique_name_in_owner = true
EnemyList = Array[PackedScene]([]) EnemyList = Array[PackedScene]([ExtResource("14_7fjdy"), ExtResource("15_neo74"), ExtResource("16_iqgo0")])
SpawnRate = PackedFloat32Array() SpawnRate = PackedFloat32Array(1, 1, 1)

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=15 format=3 uid="uid://cgoogenmugoti"] [gd_scene load_steps=18 format=3 uid="uid://cgoogenmugoti"]
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_ksrny"] [ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_ksrny"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_a76ri"] [ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_a76ri"]
@@ -13,6 +13,9 @@
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_380n2"] [ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_380n2"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_tg7p8"] [ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_tg7p8"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_avl22"] [ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_avl22"]
[ext_resource type="PackedScene" uid="uid://cmvimr0pvsgqy" path="res://src/enemy/enemy_types/10. Eden Pillar/Eden Pillar.tscn" id="14_ksrny"]
[ext_resource type="PackedScene" uid="uid://boqjebx7yuiqy" path="res://src/enemy/enemy_types/11. Palan/Palan.tscn" id="15_a76ri"]
[ext_resource type="PackedScene" uid="uid://5s7c4dsb1wwk" path="res://src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.tscn" id="16_biant"]
[sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"] [sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"]
border_size = 1.0 border_size = 1.0
@@ -37,5 +40,5 @@ generate_on_ready = false
[node name="EnemyDatabase" parent="." instance=ExtResource("13_avl22")] [node name="EnemyDatabase" parent="." instance=ExtResource("13_avl22")]
unique_name_in_owner = true unique_name_in_owner = true
EnemyList = Array[PackedScene]([]) EnemyList = Array[PackedScene]([ExtResource("14_ksrny"), ExtResource("15_a76ri"), ExtResource("16_biant")])
SpawnRate = PackedFloat32Array() SpawnRate = PackedFloat32Array(1, 1, 1)

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=15 format=3 uid="uid://33lvido1dkbu"] [gd_scene load_steps=19 format=3 uid="uid://33lvido1dkbu"]
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_8tkq2"] [ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_8tkq2"]
[ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_m0atb"] [ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_m0atb"]
@@ -13,6 +13,10 @@
[ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_gnpgo"] [ext_resource type="PackedScene" uid="uid://02v033xrh6xi" path="res://src/map/dungeon/rooms/Set B/38. Floor Exit B.tscn" id="11_gnpgo"]
[ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_rgx5c"] [ext_resource type="PackedScene" uid="uid://dooy8nc5pgaxm" path="res://src/map/dungeon/rooms/Set B/37. Corridor 2.tscn" id="12_rgx5c"]
[ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_8mkl1"] [ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="13_8mkl1"]
[ext_resource type="PackedScene" uid="uid://cmvimr0pvsgqy" path="res://src/enemy/enemy_types/10. Eden Pillar/Eden Pillar.tscn" id="14_m0atb"]
[ext_resource type="PackedScene" uid="uid://boqjebx7yuiqy" path="res://src/enemy/enemy_types/11. Palan/Palan.tscn" id="15_blhib"]
[ext_resource type="PackedScene" uid="uid://5s7c4dsb1wwk" path="res://src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.tscn" id="16_rxmjy"]
[ext_resource type="PackedScene" uid="uid://b3giib0jp3uod" path="res://src/enemy/enemy_types/13. gold sproingy/GoldSproingy.tscn" id="17_fnjfv"]
[sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"] [sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"]
border_size = 1.0 border_size = 1.0
@@ -37,5 +41,5 @@ generate_on_ready = false
[node name="EnemyDatabase" parent="." instance=ExtResource("13_8mkl1")] [node name="EnemyDatabase" parent="." instance=ExtResource("13_8mkl1")]
unique_name_in_owner = true unique_name_in_owner = true
EnemyList = Array[PackedScene]([]) EnemyList = Array[PackedScene]([ExtResource("14_m0atb"), ExtResource("15_blhib"), ExtResource("16_rxmjy"), ExtResource("17_fnjfv")])
SpawnRate = PackedFloat32Array() SpawnRate = PackedFloat32Array(1, 1, 1, 0.05)