diff --git a/Zennysoft.Game.Ma/src/data_viewer/DataViewer.tscn b/Zennysoft.Game.Ma/src/data_viewer/DataViewer.tscn index 76ee5c5a..4c7261e0 100644 --- a/Zennysoft.Game.Ma/src/data_viewer/DataViewer.tscn +++ b/Zennysoft.Game.Ma/src/data_viewer/DataViewer.tscn @@ -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://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://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://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"] diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/02. michael/Michael.gdshader b/Zennysoft.Game.Ma/src/enemy/enemy_types/02. michael/Michael.gdshader deleted file mode 100644 index d855d9ab..00000000 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/02. michael/Michael.gdshader +++ /dev/null @@ -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. -//} diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/02. michael/Michael.gdshader.uid b/Zennysoft.Game.Ma/src/enemy/enemy_types/02. michael/Michael.gdshader.uid deleted file mode 100644 index afc747f6..00000000 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/02. michael/Michael.gdshader.uid +++ /dev/null @@ -1 +0,0 @@ -uid://ctl63y5wwil04 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/03. filth_eater/FilthEater.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/03. filth_eater/FilthEater.tscn index e1c8c646..51658d6e 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/03. filth_eater/FilthEater.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/03. filth_eater/FilthEater.tscn @@ -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://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="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"] radius = 1.0 @@ -41,7 +23,6 @@ metadata/_custom_type_script = ExtResource("4_5eid5") [node name="FilthEater" type="CharacterBody3D"] process_mode = 1 -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) collision_layer = 10 collision_mask = 11 axis_lock_linear_y = true @@ -49,7 +30,7 @@ axis_lock_angular_x = true script = ExtResource("1_fyc13") SecondaryAttackElementalType = 2 SecondaryAttackElementalDamageBonus = 1.15 -_enemyStatResource = SubResource("Resource_0y048") +_enemyStatResource = ExtResource("2_p438s") [node name="CollisionShape" type="CollisionShape3D" parent="."] unique_name_in_owner = true diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/03. filth_eater/FilthEaterStats.tres b/Zennysoft.Game.Ma/src/enemy/enemy_types/03. filth_eater/FilthEaterStats.tres new file mode 100644 index 00000000..d118a60d --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/03. filth_eater/FilthEaterStats.tres @@ -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") diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/04. sara/Sara.cs b/Zennysoft.Game.Ma/src/enemy/enemy_types/04. sara/Sara.cs index 982bf3d2..c0627ad1 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/04. sara/Sara.cs +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/04. sara/Sara.cs @@ -30,7 +30,7 @@ public partial class Sara : Enemy, IHasPrimaryAttack, IHasSecondaryAttack, ICanP ((EnemyModelView2D)_enemyModelView).Hitbox.AreaEntered += Hitbox_AreaEntered; } - public new void OnPhysicsProcess(double delta) + public void OnPhysicsProcess(double delta) { _enemyLogic.Input(new EnemyLogic.Input.PhysicsTick(delta)); diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/04. sara/Sara.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/04. sara/Sara.tscn index a6816e9e..bf85e610 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/04. sara/Sara.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/04. sara/Sara.tscn @@ -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://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://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"] radius = 0.106078 height = 1.23076 @@ -42,7 +24,7 @@ axis_lock_linear_y = true axis_lock_angular_x = true axis_lock_angular_z = true script = ExtResource("1_1grvw") -_enemyStatResource = SubResource("Resource_oln85") +_enemyStatResource = ExtResource("2_1grvw") [node name="CollisionShape" type="CollisionShape3D" parent="."] unique_name_in_owner = true diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/04. sara/SaraStats.tres b/Zennysoft.Game.Ma/src/enemy/enemy_types/04. sara/SaraStats.tres new file mode 100644 index 00000000..0d75f587 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/04. sara/SaraStats.tres @@ -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") diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/07. chinthe/Chinthe.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/07. chinthe/Chinthe.tscn index c6eca16b..3019f387 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/07. chinthe/Chinthe.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/07. chinthe/Chinthe.tscn @@ -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://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="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"] -[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"] radius = 0.226425 height = 2.02807 @@ -50,7 +32,7 @@ axis_lock_angular_x = true axis_lock_angular_z = true motion_mode = 1 script = ExtResource("1_vw2ww") -_enemyStatResource = SubResource("Resource_d665t") +_enemyStatResource = ExtResource("2_d665t") [node name="NavigationAgentClient" parent="." instance=ExtResource("3_d665t")] unique_name_in_owner = true diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/07. chinthe/ChintheStats.tres b/Zennysoft.Game.Ma/src/enemy/enemy_types/07. chinthe/ChintheStats.tres new file mode 100644 index 00000000..bf4fc520 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/07. chinthe/ChintheStats.tres @@ -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" diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/07. chinthe/ChintheTest.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/07. chinthe/ChintheTest.tscn deleted file mode 100644 index b1bee330..00000000 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/07. chinthe/ChintheTest.tscn +++ /dev/null @@ -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) diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/Ambassador.cs b/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/Ambassador.cs new file mode 100644 index 00000000..10de94fa --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/Ambassador.cs @@ -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() { 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)); + } + } +} diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/Ambassador.cs.uid b/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/Ambassador.cs.uid new file mode 100644 index 00000000..5f966f45 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/Ambassador.cs.uid @@ -0,0 +1 @@ +uid://dauir5q616wyq diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/Ambassador.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/Ambassador.tscn new file mode 100644 index 00000000..5bcb4279 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/Ambassador.tscn @@ -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 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/AmbassadorStats.tres b/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/AmbassadorStats.tres new file mode 100644 index 00000000..52e5ec4f --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/08a. Ambassador/AmbassadorStats.tres @@ -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" diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorRed.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorRed.tscn new file mode 100644 index 00000000..0edb3fce --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorRed.tscn @@ -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 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorStats.tres b/Zennysoft.Game.Ma/src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorStats.tres new file mode 100644 index 00000000..f9030481 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorStats.tres @@ -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" diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/08c. Ambassador (steel)/AmbassadorSteel.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/08c. Ambassador (steel)/AmbassadorSteel.tscn new file mode 100644 index 00000000..8d8bc0ba --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/08c. Ambassador (steel)/AmbassadorSteel.tscn @@ -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 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/08c. Ambassador (steel)/AmbassadorSteelStats.tres b/Zennysoft.Game.Ma/src/enemy/enemy_types/08c. Ambassador (steel)/AmbassadorSteelStats.tres new file mode 100644 index 00000000..ef3099ce --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/08c. Ambassador (steel)/AmbassadorSteelStats.tres @@ -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" diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agi/AgiDemon.cs b/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agi/AgiDemon.cs new file mode 100644 index 00000000..194a6f15 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agi/AgiDemon.cs @@ -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() { 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)); + } + } +} diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agi/AgiDemon.cs.uid b/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agi/AgiDemon.cs.uid new file mode 100644 index 00000000..867c7251 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agi/AgiDemon.cs.uid @@ -0,0 +1 @@ +uid://h6duv685n6eh diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agi/AgiDemon.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agi/AgiDemon.tscn new file mode 100644 index 00000000..d82d94c1 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agi/AgiDemon.tscn @@ -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")] diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agi/AgiModelView.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agi/AgiDemonModelView.tscn similarity index 100% rename from Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agi/AgiModelView.tscn rename to Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agi/AgiDemonModelView.tscn diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agi/AgiDemonStats.tres b/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agi/AgiDemonStats.tres new file mode 100644 index 00000000..be2a113d --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agi/AgiDemonStats.tres @@ -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" diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/Palan.cs b/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/Palan.cs new file mode 100644 index 00000000..5d56a4b4 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/Palan.cs @@ -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() { 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)); + } + } +} diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/Palan.cs.uid b/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/Palan.cs.uid new file mode 100644 index 00000000..c45711e5 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/Palan.cs.uid @@ -0,0 +1 @@ +uid://cjd7k1scp1am8 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/Palan.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/Palan.tscn new file mode 100644 index 00000000..8614d120 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/Palan.tscn @@ -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 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/PalanStats.tres b/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/PalanStats.tres new file mode 100644 index 00000000..601fd7dc --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/11. Palan/PalanStats.tres @@ -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" diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.cs b/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.cs new file mode 100644 index 00000000..5cc4fe7b --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.cs @@ -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() { 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)); + } + } +} diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.cs.uid b/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.cs.uid new file mode 100644 index 00000000..873e782e --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.cs.uid @@ -0,0 +1 @@ +uid://cjdivu0v1kfhy diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.tscn new file mode 100644 index 00000000..79877b49 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeaven.tscn @@ -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 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeavenStats.tres b/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeavenStats.tres new file mode 100644 index 00000000..da90fdec --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/12. Shield of Heaven/ShieldOfHeavenStats.tres @@ -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" diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/13. gold sproingy/GoldSproingy.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/13. gold sproingy/GoldSproingy.tscn new file mode 100644 index 00000000..e0e4a1e8 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/13. gold sproingy/GoldSproingy.tscn @@ -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 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/13. gold sproingy/GoldSproingyStats.tres b/Zennysoft.Game.Ma/src/enemy/enemy_types/13. gold sproingy/GoldSproingyStats.tres new file mode 100644 index 00000000..be568e73 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/13. gold sproingy/GoldSproingyStats.tres @@ -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" diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1.1.glb b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1.1.glb new file mode 100644 index 00000000..72765f85 Binary files /dev/null and b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1.1.glb differ diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1.1.glb.import b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1.1.glb.import new file mode 100644 index 00000000..bec54eb7 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1.1.glb.import @@ -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 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_AREA_2_MAIN_222STONE.png b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_AREA_2_MAIN_222STONE.png new file mode 100644 index 00000000..99133879 Binary files /dev/null and b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_AREA_2_MAIN_222STONE.png differ diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_AREA_2_MAIN_222STONE.png.import b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_AREA_2_MAIN_222STONE.png.import new file mode 100644 index 00000000..9cf27743 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_AREA_2_MAIN_222STONE.png.import @@ -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 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_PIPER.png b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_PIPER.png new file mode 100644 index 00000000..3fb9fea7 Binary files /dev/null and b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_PIPER.png differ diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_PIPER.png.import b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_PIPER.png.import new file mode 100644 index 00000000..d6ae0fa6 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_PIPER.png.import @@ -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 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_concrete_0003_height_1k.png b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_concrete_0003_height_1k.png new file mode 100644 index 00000000..bd394f52 Binary files /dev/null and b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_concrete_0003_height_1k.png differ diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_concrete_0003_height_1k.png.import b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_concrete_0003_height_1k.png.import new file mode 100644 index 00000000..44520bb4 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_concrete_0003_height_1k.png.import @@ -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 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_iris-photography-no-reflections-method.jpg b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_iris-photography-no-reflections-method.jpg new file mode 100644 index 00000000..e835832f Binary files /dev/null and b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_iris-photography-no-reflections-method.jpg differ diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_iris-photography-no-reflections-method.jpg.import b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_iris-photography-no-reflections-method.jpg.import new file mode 100644 index 00000000..efedd1ce --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DEMON WALL BASE+ PIPES VER.1_iris-photography-no-reflections-method.jpg.import @@ -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 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agi/Agi.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/9b. Aqueos Demon/AqueosDemon.tscn similarity index 68% rename from Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agi/Agi.tscn rename to Zennysoft.Game.Ma/src/enemy/enemy_types/9b. Aqueos Demon/AqueosDemon.tscn index 271e9786..6e38103c 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/09. Agi/Agi.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/9b. Aqueos Demon/AqueosDemon.tscn @@ -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://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="2_55x64"] -[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://h6duv685n6eh" path="res://src/enemy/enemy_types/09. Agi/AgiDemon.cs" id="1_wbopj"] +[ext_resource type="PackedScene" uid="uid://cu7n814hhtjwm" path="res://src/enemy/enemy_types/9b. Aqueos Demon/AqueosModelView.tscn" id="2_0hbxv"] +[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="2_wtipe"] -[sub_resource type="Resource" id="Resource_o3b7p"] -script = ExtResource("2_55x64") -CurrentHP = 50.0 -MaximumHP = 0 -CurrentAttack = 20 +[sub_resource type="Resource" id="Resource_m7ocm"] +script = ExtResource("2_wtipe") +CurrentHP = 100.0 +MaximumHP = 100 +CurrentAttack = 10 CurrentDefense = 5 -MaxAttack = 20 +MaxAttack = 10 MaxDefense = 5 -ExpFromDefeat = 15 +ExpFromDefeat = 0 Luck = 0.05 _telluricResistance = 0.0 _aeolicResistance = 0.0 -_hydricResistance = 0.0 +_hydricResistance = 0.5 _igneousResistance = 0.0 _ferrumResistance = 0.0 DropsSoulGemChance = 0.75 -metadata/_custom_type_script = ExtResource("2_55x64") +metadata/_custom_type_script = "uid://dnkmr0eq1sij0" [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"] radius = 0.226425 @@ -33,15 +33,16 @@ radius = 1.0 [sub_resource type="SphereShape3D" id="SphereShape3D_8vcnq"] radius = 1.20703 -[node name="Agi" type="CharacterBody3D"] +[node name="AqueousDemon" type="CharacterBody3D"] process_mode = 1 -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) collision_layer = 10 collision_mask = 11 axis_lock_linear_y = true axis_lock_angular_x = true -script = ExtResource("1_2bycu") -_enemyStatResource = SubResource("Resource_o3b7p") +script = ExtResource("1_wbopj") +PrimaryAttackElementalType = 3 +SecondaryAttackElementalType = 3 +_enemyStatResource = SubResource("Resource_m7ocm") [node name="CollisionShape3D" type="CollisionShape3D" parent="."] 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) 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="."] collision_layer = 2048 collision_mask = 0 [node name="CollisionShape3D" type="CollisionShape3D" parent="Collision"] shape = SubResource("SphereShape3D_8vcnq") + +[node name="EnemyModelView" parent="." instance=ExtResource("2_0hbxv")] +unique_name_in_owner = true diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/9b. Aqueos Demon/AqueosDemonInfo.tres b/Zennysoft.Game.Ma/src/enemy/enemy_types/9b. Aqueos Demon/AqueosDemonInfo.tres new file mode 100644 index 00000000..56ebb1c4 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/9b. Aqueos Demon/AqueosDemonInfo.tres @@ -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" diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/9b. Aqueos Demon/AqueosDemonStats.tres b/Zennysoft.Game.Ma/src/enemy/enemy_types/9b. Aqueos Demon/AqueosDemonStats.tres new file mode 100644 index 00000000..8400ccb4 --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/9b. Aqueos Demon/AqueosDemonStats.tres @@ -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" diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/9b. Aqueos Demon/AqueosModelView.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/9b. Aqueos Demon/AqueosModelView.tscn index fa6f6e96..51925089 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/9b. Aqueos Demon/AqueosModelView.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/9b. Aqueos Demon/AqueosModelView.tscn @@ -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://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://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"] @@ -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="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"] viewport_path = NodePath("Sprite3D/SubViewportContainer/SubViewport") @@ -2561,7 +2555,7 @@ _data = { [node name="EnemyModelView" type="Node3D"] script = ExtResource("1_vf7er") -EnemyLoreInfo = SubResource("Resource_f45wt") +EnemyLoreInfo = ExtResource("2_ejhrk") [node name="Sprite3D" type="Sprite3D" parent="."] transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 0, 0) diff --git a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor01.tscn b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor01.tscn index 49956b0c..5d4fccbc 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor01.tscn +++ b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor01.tscn @@ -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://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://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://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://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"] @@ -188,6 +187,3 @@ disabled = true [node name="EnemyDatabase" parent="." instance=ExtResource("12_aw26s")] unique_name_in_owner = true 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) diff --git a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor02.tscn b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor02.tscn index 5b57b7dd..08ad6df9 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor02.tscn +++ b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor02.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=19 format=3 uid="uid://dmiqwmivkjgmq"] +[gd_scene load_steps=20 format=3 uid="uid://dmiqwmivkjgmq"] [ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="1_afeds"] [ext_resource type="PackedScene" uid="uid://dpec2lbt83dhe" path="res://src/map/dungeon/rooms/Set A/03. Antechamber A.tscn" id="3_7txs6"] @@ -16,6 +16,7 @@ [ext_resource type="PackedScene" uid="uid://cihbmyo0ltq4m" path="res://src/map/dungeon/rooms/Set A/19. Floor Exit A.tscn" id="12_e0s3j"] [ext_resource type="PackedScene" uid="uid://b0gwivt7cw7nd" path="res://src/enemy/enemy_types/02. michael/Michael.tscn" id="13_eyrkc"] [ext_resource type="PackedScene" uid="uid://bs56ccgosmu47" path="res://src/enemy/enemy_types/01. sproingy/Sproingy.tscn" id="15_23nxb"] +[ext_resource type="PackedScene" uid="uid://b3giib0jp3uod" path="res://src/enemy/enemy_types/13. gold sproingy/GoldSproingy.tscn" id="17_sn0iw"] [sub_resource type="NavigationMesh" id="NavigationMesh_23nxb"] vertices = PackedVector3Array(15.25, -0.588592, 51, 15.25, -0.588592, 50, 14.75, -0.588592, 49.75, 12.75, -0.588592, 49, 7.25, -0.588592, 49, 7.25, -0.588592, 51, -46.25, -0.588592, 41.5, -45, -0.588592, 41.25, -45, -0.588592, 40.75, -59.25, -0.588592, 40.75, -59.25, -0.588592, 41.25, -57.75, -0.588592, 41.5, 7.5, -0.588592, 0.75, -19.5, -0.588592, 11, -19.25, -0.588592, 16.5, -45, -0.588592, 55.5, -45, -0.588592, 54.25, -45.75, -0.588592, 54, -46.25, -0.588592, 55.75, -43, -0.588592, 49.5, -45.75, -0.588592, 49.25, -39.25, -0.588592, 51, 15, -0.588592, 42, 15.5, -0.588592, 41.75, 15.25, -0.588592, 40, 11.25, -0.588592, 43.25, -16.25, -0.588592, 53, -16.75, -0.588592, 51.5, -16.75, -0.588592, 55, -45.75, -0.588592, 46.25, -45, -0.588592, 46, -45, -0.588592, 44.25, -46.25, -0.588592, 44, -9, -0.588592, -20.75, -11.25, -0.588592, -21, -11, -0.588592, -19.75, -8.75, -0.588592, -19.5, 19.5, -0.588592, 23, 23.5, -0.588592, 19, 27.5, -0.588592, 11, -57, -0.588592, -36.75, -55.25, -0.588592, -36.75, -55.75, -0.588592, -39, -59.25, -0.588592, -39.25, 7.75, -0.588592, -7, 7.25, -0.588592, -8.5, 7.25, -0.588592, -4.75, 8.75, -0.588592, -5, -32.25, -0.588592, -11, -32.75, -0.588592, -12.5, -32.75, -0.588592, -8.75, -31.25, -0.588592, -9, -20.5, -0.588592, -19.25, -27.25, -0.588592, -7.5, -27.25, -0.588592, -4.75, 15, -0.588592, 31.25, 15.75, -0.588592, 29, 15.25, -0.588592, 27.5, 3.25, -0.588592, 43.25, -19, -0.588592, -24.25, -17, -0.588592, -24.25, -16.5, -0.588592, -24.75, -19.5, -0.588592, -25, -16.75, -0.588592, -23, -19.25, -0.588592, -21, -27.75, -0.588592, -7, -29, -0.588592, -7.25, -29, -0.588592, -4.75, 11.5, -0.588592, -25, 12.5, -0.588592, -25, 67.5, -0.588592, -66.5, 4.5, -0.588592, 43, 5, -0.588592, 43.75, 7, -0.588592, 43.75, 7.5, -0.588592, 43, 20, -0.588592, 44.25, 17.75, -0.588592, 44.25, 17.5, -0.588592, 45.25, -40.75, -0.588592, 52.5, -43, -0.588592, 52.5, -43, -0.588592, 54, -41, -0.588592, 56.25, -55.25, -0.588592, -39.5, -43.5, -0.588592, -25, -45, -0.588592, -19.75, -44.75, -0.588592, -23.25, -47.25, -0.588592, -21, -47, -0.588592, -19.75, -39.25, -0.588592, 32.5, -39.25, -0.588592, 47.25, -35.25, -0.588592, 47.25, -31.25, -0.588592, 32.25, -59.25, -0.588592, -21, -57, -0.588592, -23.25, -43.5, -0.588592, 54.25, -43.25, -0.588592, 57.5, -33, -0.588592, 15.25, -40.5, -0.588592, 56.75, 28, -0.588592, 55.75, 30.75, -0.588592, 55.75, 31, -0.588592, 54.5, 11.25, -0.588592, -7.25, 11, -0.588592, -3.25, -60.5, -0.588592, -19.25, -61, -0.588592, -20.75, -60.5, -0.588592, 39.25, 8.75, -0.588592, -1, 12.75, -0.588592, -1, -44.5, -0.588592, -19.25, 15.25, -0.588592, -3.25, 15, -0.588592, 0.25, -66.5, -0.588592, -66.5, -55.5, -0.588592, -40.75, -20.75, -0.588592, -24.75, 13, -0.588592, 0.25, 15.5, -0.588592, 0.75, 7, -0.588592, -0.75, -28.75, -0.588592, -11.25, -55.25, -0.588592, -24.75, 15, -0.588592, 43.25, 8.75, -0.588592, 43.25, 8.75, -0.588592, 47.25, 11.25, -0.588592, 47.25, 9, -0.588592, -23.25, 11.25, -0.588592, -21, 11, -0.588592, -24.25, 15.75, -0.588592, 39.5, -17, -0.588592, 56.25, -35.25, -0.588592, 52.5, -35.25, -0.588592, 55.25, -45.5, -0.588592, 51, -50.75, -0.588592, 48.5, -50.5, -0.588592, 51.25, -27.5, -0.588592, -13, -21, -0.588592, -20.75, -43.25, -0.588592, -19.5, 28.5, -0.588592, 28.75, 24.75, -0.588592, 28.5, 24.5, -0.588592, 32.75, 32, -0.588592, 39.5, 23.25, -0.588592, 23.25, 24.75, -0.588592, 25, 20.75, -0.588592, 24.75, 20.75, -0.588592, 29, 23, -0.588592, 27.25, 5, -0.588592, 52.75, -36.75, -0.588592, 53, -39.25, -0.588592, 55, -27.25, -0.588592, 11.25, 27.25, -0.588592, 27, 27.25, -0.588592, 23, 32.75, -0.588592, 24.5, 28.75, -0.588592, 24.5, 32.5, -0.588592, 40, 12.5, -0.588592, -9, 12.75, -0.588592, -4.75, 16.75, -0.588592, -4.75, 12.75, -0.588592, -19.5, -36.75, -0.588592, 48.75, -41, -0.588592, 48.75, 29, -0.588592, 20.75, 24.75, -0.588592, 20.75, 17.75, -0.588592, 49.75, 16.75, -0.588592, 50, 16.75, -0.588592, 55.75, 20, -0.588592, 55.75, 23.25, -0.588592, 31, -44.5, -0.588592, 27, 30.75, -0.588592, 52.75, 12.75, -0.588592, 44.75, 17.75, -0.588592, 47, 16.75, -0.588592, 0.5, 31.25, -0.588592, 23, 31.25, -0.588592, 15, 28.75, -0.588592, 12.75, -31.25, -0.588592, 15, -29, -0.588592, 12.75, 19.25, -0.588592, 27.25, 15.25, -0.588592, 32.5, -53.25, -0.588592, 51.5, -53.5, -0.588592, 48.75, -57.75, -0.588592, 44, -59.25, -0.588592, 44.25, -59.25, -0.588592, 55.5, -57.75, -0.588592, 55.75, 33.75, -0.588592, 50, 33.75, -0.588592, 52.75, 67.5, -0.588592, 57.5, -35.5, -0.588592, 56.5, 15.5, -0.588592, 57.5, 8.5, -0.588592, 56.75, 20.25, -0.588592, 57.5, 27.75, -0.588592, 57.5, -44.75, -0.588592, 39.25, 27.75, -0.588592, 44, 27.75, -0.588592, 41, 20.25, -0.588592, 41, 44.5, -0.588592, 11, 15.5, -0.588592, 52.5, 8.75, -0.588592, 52.5, 3.25, -0.588592, 51.25, -23.25, -0.588592, 15, -20.75, -0.588592, 12.75, -23, -0.588592, 16.25, -31.25, -0.588592, 28.5, -31.5, -0.588592, 31, -20.5, -0.588592, 16.75, -21, -0.588592, 16.25, -57.75, -0.588592, 57.5, -46.25, -0.588592, 57.5, 27.25, -0.588592, 19.25, -66.5, -0.588592, 57.5, -60.75, -0.588592, 57.5, 33.5, -0.588592, 54.75, 8.5, -0.588592, -24.75, -41, -0.588592, 31.25, -43.25, -0.588592, 28.75, 31, -0.588592, 44.25, -31.75, -0.588592, 29, 15, -0.588592, 46.75, 7.25, -0.588592, 55, 32.25, -0.588592, 49.75, -31.5, -0.588592, 27.25, -32.5, -0.588592, 16.75, 33.5, -0.588592, 57.5, 41, -0.588592, 16.25, 32.75, -0.588592, 16.5, 43.5, -0.588592, 16.75, 43, -0.588592, 16.25, 43.25, -0.588592, 12.75, 40.75, -0.588592, 15, -60.75, -0.588592, -40.75, 44.75, -0.588592, 16.5, 28.75, 6.66141, 40.5, 28.75, 6.66141, 43.25, 31.25, 6.66141, 43.25, 31.25, 6.66141, 40.5, 16.75, 6.66141, 40.75, 16.75, 6.66141, 43.25, 19.25, 6.66141, 43.25, 19.25, 6.66141, 40.75, 29, -0.588592, 41, 29, -0.588592, 43, 31, -0.588592, 43, 31, -0.588592, 41, 16.75, 6.66141, 56.75, 16.75, 6.66141, 59.25, 19.25, 6.66141, 59.25, 19.25, 6.66141, 56.75, 28.75, 6.66141, 56.75, 28.75, 6.66141, 59.25, 31.25, 6.66141, 59.25, 31.25, 6.66141, 56.75) @@ -268,4 +269,4 @@ shape = SubResource("BoxShape3D_23nxb") [node name="EnemyDatabase" parent="." instance=ExtResource("11_yvj8v")] unique_name_in_owner = true -EnemyList = Array[PackedScene]([ExtResource("15_23nxb"), ExtResource("13_eyrkc")]) +EnemyList = Array[PackedScene]([ExtResource("15_23nxb"), ExtResource("13_eyrkc"), ExtResource("17_sn0iw")]) diff --git a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor05.tscn b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor05.tscn index a320224b..fad5139f 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor05.tscn +++ b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor05.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=18 format=3 uid="uid://t7cac7801bnk"] +[gd_scene load_steps=19 format=3 uid="uid://t7cac7801bnk"] [ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_8l7r7"] [ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_ksplq"] @@ -15,6 +15,7 @@ [ext_resource type="PackedScene" uid="uid://b0gwivt7cw7nd" path="res://src/enemy/enemy_types/02. michael/Michael.tscn" id="12_uv3l4"] [ext_resource type="PackedScene" uid="uid://cvk007twac22c" path="res://src/enemy/enemy_types/03. filth_eater/FilthEater.tscn" id="13_v44hk"] [ext_resource type="PackedScene" uid="uid://bksq62muhk3h5" path="res://src/enemy/enemy_types/04. sara/Sara.tscn" id="15_b3rou"] +[ext_resource type="PackedScene" uid="uid://b3giib0jp3uod" path="res://src/enemy/enemy_types/13. gold sproingy/GoldSproingy.tscn" id="16_duhq4"] [sub_resource type="NavigationMesh" id="NavigationMesh_duhq4"] vertices = PackedVector3Array(-73.5, -0.588592, -19.5, -73.5, -0.588592, -16.75, -72.75, -0.588592, -18, -72.5, -0.588592, -18.5, -72.75, -0.588592, -19.25, -56.5, -0.588592, 17.5, -56.75, -0.588592, 14.75, -57, -0.588592, 18.25, 6.5, -0.588592, -90.25, 6.75, -0.588592, -89.5, 7.25, -0.588592, -89.5, 7.25, -0.588592, -103.25, 6.75, -0.588592, -103.25, 6.5, -0.588592, -101.75, -37.5, -0.588592, 15.25, -37, -0.588592, 15, -37, -0.588592, 14.25, -33.5, -0.588592, 3.25, -33, -0.588592, 3, -33, -0.588592, 2.25, -34.5, -0.588592, -0.75, -23.25, -0.588592, 2.25, -23.25, -0.588592, 3, -22.5, -0.588592, 3.25, -21.5, -0.588592, 1.5, -35.5, -0.588592, 13.5, -33.5, -0.588592, 14, -34.5, -0.588592, 12.5, -35.25, -0.588592, 12.75, -74.5, -0.588592, 52.5, -75.25, -0.588592, 52.75, -75.5, -0.588592, 53.5, -73.5, -0.588592, 54, -89.25, -0.588592, 51.25, -88.5, -0.588592, 50.5, -77.25, -0.588592, 35.25, -77.25, -0.588592, 0.5, -96.75, -0.588592, -39, -97.25, -0.588592, -39.5, -38.5, -0.588592, 16.5, -39.25, -0.588592, 16.75, -39.5, -0.588592, 17.5, -37.5, -0.588592, 18, 16.5, -0.588592, -34, 16.75, -0.588592, -33, 17.5, -0.588592, -32.75, 18.5, -0.588592, -34.5, -75.5, -0.588592, -42, -75.25, -0.588592, -41, -74.5, -0.588592, -40.75, -73.5, -0.588592, -42.5, -19.5, -0.588592, 78, -19.25, -0.588592, 78.75, -18.25, -0.588592, 79, 4.5, -0.588592, -86, 4.75, -0.588592, -85, 5.5, -0.588592, -84.75, 6.5, -0.588592, -86.5, -70.5, -0.588592, 56.5, -83.25, -0.588592, 68.75, -108.5, -0.588592, 94.5, -20.25, -0.588592, 92.75, -20.75, -0.588592, 92.25, -10.25, -0.588592, -101.75, -10.5, -0.588592, -103.25, -11, -0.588592, -103.25, -11, -0.588592, -89, -10.5, -0.588592, -90.25, -7.5, -0.588592, -89, -6.25, -0.588592, -89, -6, -0.588592, -89.75, -7.75, -0.588592, -90.25, -86.5, -0.588592, 53.5, -85.5, -0.588592, 55.25, -84.75, -0.588592, 54, -32.5, -0.588592, 1.5, -33, -0.588592, -0.25, -32.5, -0.588592, -1.5, -94.75, -0.588592, -45, -93, -0.588592, -44.25, -92.5, -0.588592, -45.5, 1.25, -0.588592, -37, 3, -0.588592, -36.25, 3.5, -0.588592, -37.5, -16, -0.588592, 76.25, -18.25, -0.588592, 76.25, -18.5, -0.588592, 77.25, -94.5, -0.588592, -42, -92.5, -0.588592, -42.5, -74.5, -0.588592, 0.5, 1.5, -0.588592, -34, 3.5, -0.588592, -34.5, -37, -0.588592, -35.25, -47.5, -0.588592, -21.5, -47.25, -0.588592, -18.75, 6.5, -0.588592, -63.5, 5.5, -0.588592, -63.5, 3, -0.588592, -63.25, -31.25, -0.588592, -50.75, -34.5, -0.588592, -50.5, -33.5, -0.588592, -48.75, -30.5, -0.588592, -48.75, 2.75, -0.588592, -83, -4.75, -0.588592, -83, -2.5, -0.588592, 89.75, -3.75, -0.588592, 90, -3.75, -0.588592, 92.75, 41.5, -0.588592, 94.5, -5.25, -0.588592, -83.5, -5.25, -0.588592, -87, -6, -0.588592, -87, -8.25, -0.588592, 88, -5.25, -0.588592, 87.75, -5, -0.588592, 86.5, -18.25, -0.588592, 81.75, -16, -0.588592, 87.75, -21.25, -0.588592, 81.75, -21.25, -0.588592, 81, -24.75, -0.588592, 81, -6.25, -0.588592, -87.5, -10.5, -0.588592, -87.25, -20.5, -0.588592, 82, -37, -0.588592, -1, -3.25, -0.588592, -89.75, -3.25, -0.588592, -94.5, -97.25, -0.588592, -44.75, -108.5, -0.588592, -108.5, -1.25, -0.588592, -36.75, -31.5, -0.588592, -53.5, -1.25, -0.588592, -31.5, -12.5, -0.588592, -87.75, -31.5, -0.588592, 17, -34.5, -0.588592, 17, -34.75, -0.588592, 20.75, -1.25, -0.588592, -89.75, 3.75, -0.588592, -89.5, 4, -0.588592, -90.25, -0.5, -0.588592, -94.75, -30.5, -0.588592, 16.5, -25.25, -0.588592, 80.5, -19.25, -0.588592, 82, -19.25, -0.588592, 87.75, -2.25, -0.588592, 84.75, -2.5, -0.588592, 86.75, -73.25, -0.588592, 0.75, -7.5, -0.588592, -103.25, -7.75, -0.588592, -101.75, -3.5, -0.588592, -97.25, -0.75, -0.588592, -97.5, 4, -0.588592, -101.75, 3.75, -0.588592, -103.25, -8.25, -0.588592, 76, -8.25, -0.588592, 73, -15.75, -0.588592, 73, -19.5, -0.588592, -1.5, -18.5, -0.588592, -0.75, 20.75, -0.588592, -23.25, -15.75, -0.588592, 91.25, -8.25, -0.588592, 91.25, -74.75, -0.588592, 35, -12.5, -0.588592, -104.5, -36.5, -0.588592, -53.5, 20.5, -0.588592, -37.5, 9.5, -0.588592, -63.5, -30.5, -0.588592, -35.5, -47.25, -0.588592, -15.25, 15.25, -0.588592, -23, -0.75, -0.588592, -31, -5.25, -0.588592, 84.75, -5, -0.588592, 76.25, -71.5, -0.588592, -45.5, -37.25, -0.588592, -52.75, -38.5, -0.588592, 13.5, -89.25, -0.588592, 68.5, -3.5, -0.588592, 72, -3.75, -0.588592, 81.75, -2.25, -0.588592, 82, -70.5, -0.588592, -44.75, -86.5, -0.588592, 66, -85.5, -0.588592, 64.5, -4, -0.588592, 71.5, -84.75, -0.588592, 65, -83.5, -0.588592, 66, -77.25, -0.588592, 50.5, -82.5, -0.588592, 64.5, -71.5, -0.588592, 57, 8.75, -0.588592, -104.5, 41.5, -0.588592, -108.5, -40.5, -0.588592, 10.5, -37.25, -0.588592, 10.5, -56.75, -0.588592, 21, -70.75, -0.588592, 35, 21.5, -0.588592, -36.75, 9.5, -0.588592, -88.75, 21.5, -0.588592, -27.5, -47.5, -0.588592, -18, -1.5, -0.588592, -87, -2.5, -0.588592, -88.75, -25.25, -0.588592, 5, -30.5, -0.588592, 5, -88.75, -0.588592, 69, -77.25, -0.588592, -39, -70.5, -0.588592, -15, -70.5, -0.588592, 0.5, -2.5, -0.588592, -86, -0.5, -0.588592, -86.5, -18.5, -0.588592, 71.75, -41.25, -0.588592, 11.25, 18.5, -0.588592, -27.5, 17.5, -0.588592, -26, 19.25, -0.588592, -27, 20.5, -0.588592, -26, 14.75, -0.588592, -23.5, -34.5, -0.588592, -35.5, -33.5, -0.588592, -35.5, -82.5, -0.588592, 57, -20.75, -0.588592, 77.25, -22.5, -0.588592, 78, 8.75, -0.588592, -89, -41.25, -0.588592, 14.5, 14.75, -0.588592, -31, -73.5, -0.588592, 35.25, -21.5, -0.588592, 76.5, -70.5, -0.588592, -21.5, -7.25, 6.66141, 72.5, -7.25, 6.66141, 75.25, -4.75, 6.66141, 75.25, -4.75, 6.66141, 72.5, -19.25, 6.66141, 72.75, -19.25, 6.66141, 75.25, -16.75, 6.66141, 75.25, -16.75, 6.66141, 72.75, -7, -0.588592, 73, -7, -0.588592, 75, -5, -0.588592, 75, -5, -0.588592, 73, -19.25, 6.66141, 88.75, -19.25, 6.66141, 91.25, -16.75, 6.66141, 91.25, -16.75, 6.66141, 88.75, -7.25, 6.66141, 88.75, -7.25, 6.66141, 91.25, -4.75, 6.66141, 91.25, -4.75, 6.66141, 88.75, -19, -0.588592, 89, -19, -0.588592, 91, -17, -0.588592, 91, -17, -0.588592, 89) @@ -332,5 +333,5 @@ shape = SubResource("BoxShape3D_duhq4") [node name="EnemyDatabase" parent="." instance=ExtResource("11_l2dei")] unique_name_in_owner = true -EnemyList = Array[PackedScene]([ExtResource("12_uv3l4"), ExtResource("13_v44hk"), ExtResource("15_b3rou")]) -SpawnRate = PackedFloat32Array(0.5, 1, 1) +EnemyList = Array[PackedScene]([ExtResource("12_uv3l4"), ExtResource("13_v44hk"), ExtResource("15_b3rou"), ExtResource("16_duhq4")]) +SpawnRate = PackedFloat32Array(0.5, 1, 1, 0.1) diff --git a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor06.tscn b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor06.tscn index ce9307c9..94e03c21 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor06.tscn +++ b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor06.tscn @@ -369,5 +369,5 @@ shape = SubResource("BoxShape3D_ltey6") [node name="EnemyDatabase" parent="." instance=ExtResource("11_vn8cd")] unique_name_in_owner = true -EnemyList = Array[PackedScene]([ExtResource("13_gb3sg"), ExtResource("13_0tmnj"), ExtResource("16_rgrkc")]) -SpawnRate = PackedFloat32Array(1, 0.5, 1) +EnemyList = Array[PackedScene]([ExtResource("13_gb3sg"), ExtResource("16_rgrkc"), ExtResource("13_0tmnj")]) +SpawnRate = PackedFloat32Array(0.5, 1, 0.5) diff --git a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor07.tscn b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor07.tscn index 6bf79e34..b856fc1b 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor07.tscn +++ b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor07.tscn @@ -333,5 +333,5 @@ shape = SubResource("BoxShape3D_bji1g") [node name="EnemyDatabase" parent="." instance=ExtResource("11_xast8")] unique_name_in_owner = true -EnemyList = Array[PackedScene]([ExtResource("12_tr8km"), ExtResource("13_43euk"), ExtResource("14_purgj"), ExtResource("16_ogmgc")]) -SpawnRate = PackedFloat32Array(0.5, 1, 0.25, 0.5) +EnemyList = Array[PackedScene]([ExtResource("12_tr8km"), ExtResource("16_ogmgc"), ExtResource("13_43euk"), ExtResource("14_purgj")]) +SpawnRate = PackedFloat32Array(0.5, 0.5, 1, 0.5) diff --git a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor08.tscn b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor08.tscn index 2078b6c2..eb31f749 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor08.tscn +++ b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor08.tscn @@ -395,5 +395,5 @@ shape = SubResource("BoxShape3D_mir7f") [node name="EnemyDatabase" parent="." instance=ExtResource("11_uflod")] unique_name_in_owner = true -EnemyList = Array[PackedScene]([ExtResource("13_c8dl5"), ExtResource("13_qs20c"), ExtResource("15_pn3nc")]) -SpawnRate = PackedFloat32Array(1, 1, 0.5) +EnemyList = Array[PackedScene]([ExtResource("15_pn3nc"), ExtResource("13_c8dl5"), ExtResource("13_qs20c")]) +SpawnRate = PackedFloat32Array(0.25, 1, 1) diff --git a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor09.tscn b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor09.tscn index 6bd5a514..0d81da00 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor09.tscn +++ b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor09.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=17 format=3 uid="uid://b5jk743ng6fqg"] +[gd_scene load_steps=19 format=3 uid="uid://b5jk743ng6fqg"] [ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_ah6eb"] [ext_resource type="Script" uid="uid://b1x125h0tya2w" path="res://addons/SimpleDungeons/DungeonGenerator3D.gd" id="2_2l5nt"] @@ -15,6 +15,8 @@ [ext_resource type="PackedScene" uid="uid://dbvr8ewajja6a" path="res://src/enemy/EnemyDatabase.tscn" id="11_xxd5b"] [ext_resource type="PackedScene" uid="uid://feegakykn3fv" path="res://src/enemy/enemy_types/05. ballos/Ballos.tscn" id="12_mhyau"] [ext_resource type="PackedScene" uid="uid://bksq62muhk3h5" path="res://src/enemy/enemy_types/04. sara/Sara.tscn" id="15_f55jb"] +[ext_resource type="PackedScene" uid="uid://dlw5cvutvypxn" path="res://src/enemy/enemy_types/06. chariot/Chariot.tscn" id="16_2admg"] +[ext_resource type="PackedScene" uid="uid://b3giib0jp3uod" path="res://src/enemy/enemy_types/13. gold sproingy/GoldSproingy.tscn" id="17_fuh3g"] [sub_resource type="NavigationMesh" id="NavigationMesh_b81ow"] vertices = PackedVector3Array(-58.4873, -1.58859, -7.11705, -58.4873, -1.58859, -6.61705, -57.7373, -1.58859, -6.36705, -46.2373, -1.58859, -6.36705, -44.7373, -1.58859, -6.61705, -44.7373, -1.58859, -7.11705, 79.5127, -1.58859, 29.3829, 79.2627, -1.58859, 28.6329, 78.5127, -1.58859, 28.3829, 77.5127, -1.58859, 29.8829, 75.5127, -1.58859, 25.3829, 75.2627, -1.58859, 24.6329, 74.5127, -1.58859, 24.3829, 73.5127, -1.58859, 25.8829, 43.5127, -1.58859, 21.3829, 43.2627, -1.58859, 20.6329, 42.5127, -1.58859, 20.3829, 41.5127, -1.58859, 21.8829, 57.5127, -1.58859, -103.617, 56.7627, -1.58859, -103.367, 56.5127, -1.58859, -102.617, 58.5127, -1.58859, -102.117, 53.5127, -1.58859, -87.6171, 52.7627, -1.58859, -87.3671, 52.5127, -1.58859, -86.6171, 54.5127, -1.58859, -86.1171, -59.4873, -1.58859, 1.88295, -59.2373, -1.58859, 2.63295, -58.4873, -1.58859, 2.88295, -53.2373, -1.58859, 3.63295, 76.7627, -1.58859, 26.1329, 76.7627, -1.58859, 27.1329, 77.5127, -1.58859, 27.3829, -57.7373, -1.58859, 10.3829, -58.9873, -1.58859, 10.6329, -58.9873, -1.58859, 11.1329, -44.7373, -1.58859, 11.1329, -44.7373, -1.58859, 10.6329, -46.2373, -1.58859, 10.3829, -61.4873, -1.58859, -8.61705, -60.9873, -1.58859, -8.86705, -60.7373, -1.58859, -10.1171, -62.4873, -1.58859, -10.6171, 50.5127, -1.58859, -84.6171, 51.0127, -1.58859, -84.8671, 51.2627, -1.58859, -86.1171, 49.5127, -1.58859, -86.6171, 54.5127, -1.58859, -100.617, 55.0127, -1.58859, -100.867, 55.2627, -1.58859, -102.117, 53.5127, -1.58859, -102.617, 58.5127, -1.58859, -108.617, 59.0127, -1.58859, -108.867, 59.2627, -1.58859, -110.117, 57.5127, -1.58859, -110.617, -50.4873, -1.58859, 3.38295, -46.2373, -1.58859, 7.88295, -44.7373, -1.58859, 7.63295, -44.7373, -1.58859, -3.61705, -46.2373, -1.58859, -3.86705, -50.7373, -1.58859, 0.63295, 49.5127, -1.58859, -27.6171, 50.5127, -1.58859, -26.8671, 40.5127, -1.58859, -10.1171, 40.7627, -1.58859, -8.86705, 41.5127, -1.58859, -8.61705, 42.7627, -1.58859, -13.3671, 41.0127, -1.58859, -10.8671, 72.5127, -1.58859, 21.8829, 72.7627, -1.58859, 23.1329, 73.5127, -1.58859, 23.3829, 40.2627, -1.58859, -15.8671, 40.2627, -1.58859, -13.8671, 41.2627, -1.58859, -13.6171, 84.5127, -1.58859, 29.8829, 85.0127, -1.58859, 31.6329, 86.5127, -1.58859, 31.6329, 86.5127, -1.58859, 29.3829, -62.4873, -1.58859, 1.88295, -60.9873, -1.58859, 1.13295, 76.5127, -1.58859, -110.117, 77.0127, -1.58859, -108.367, 78.5127, -1.58859, -108.367, 78.5127, -1.58859, -110.617, 61.0127, -1.58859, 23.6329, 63.0127, -1.58859, 23.6329, 63.2627, -1.58859, 21.8829, 60.5127, -1.58859, 21.8829, -61.4873, -1.58859, 0.38295, 52.0127, -1.58859, -23.8671, 51.7627, -1.58859, -26.6171, 45.7627, -1.58859, -13.6171, 52.0127, -1.58859, -16.1171, -57.7373, -1.58859, -3.86705, -58.4873, -1.58859, -3.61705, -58.2373, -1.58859, 0.88295, -53.4873, -1.58859, 0.88295, 74.5127, -1.58859, 21.3829, -57.7373, -1.58859, 7.88295, 78.5127, -1.58859, 25.3829, -58.9873, -1.58859, 7.63295, 46.0127, -1.58859, -12.8671, 51.7627, -1.58859, -12.8671, 48.7627, -1.58859, -26.8671, 40.0127, -1.58859, -23.8671, 37.0127, -1.58859, -23.8671, 37.0127, -1.58859, -16.1171, 55.2627, -1.58859, -16.1171, 55.2627, -1.58859, -23.8671, 40.2627, -1.58859, -27.1171, 73.0127, 2.16141, -108.117, 75.0127, 2.16141, -108.117, 75.0127, 2.16141, -108.617, 72.7627, 2.16141, -108.867, 75.7627, 2.16141, -108.867, 60.7627, 2.16141, -108.867, 61.0127, 2.41141, -108.117, 63.0127, 2.16141, -108.117, 63.2627, 2.16141, -108.867, 64.7627, 2.16141, -108.867, 65.0127, 2.16141, -108.117, 67.0127, 2.16141, -108.117, 67.2627, 2.16141, -108.867, 68.7627, 2.16141, -108.867, 69.0127, 2.16141, -108.117, 71.0127, 2.16141, -108.117, 71.2627, 2.16141, -108.867, 60.0127, 2.16141, -109.117, 56.7627, 2.16141, -100.867, 57.0127, 2.41141, -100.117, 59.0127, 2.41141, -100.117, 59.2627, 2.41141, -100.867, 59.2627, 2.41141, -101.117, 60.5127, 2.41141, -100.617, 60.5127, 2.41141, -103.367, 59.5127, 2.41141, -103.117, 56.0127, 2.16141, -101.117, 52.7627, 2.16141, -84.8671, 53.0127, 2.41141, -84.1171, 55.0127, 2.41141, -84.1171, 55.2627, 2.41141, -84.8671, 55.2627, 2.41141, -85.1171, 56.5127, 2.41141, -84.6171, 56.5127, 2.41141, -87.3671, 55.5127, 2.41141, -87.1171, 52.0127, 2.16141, -85.1171, 36.5127, 6.66141, -27.3671, 36.5127, 6.66141, -24.8671, 39.2627, 6.66141, -24.8671, 39.2627, 6.66141, -27.3671, 52.7627, 6.66141, -27.3671, 52.7627, 6.66141, -24.8671, 55.2627, 6.66141, -24.8671, 55.2627, 6.66141, -27.3671, 37.0127, -1.58859, -27.1171, 37.0127, -1.58859, -25.1171, 39.0127, -1.58859, -25.1171, 39.0127, -1.58859, -27.1171, 36.5127, 6.66141, -12.6171, 39.2627, 6.66141, -12.3671, 39.2627, 6.66141, -15.1171, 36.7627, 6.66141, -15.1171, 52.7627, 6.66141, -15.1171, 52.7627, 6.66141, -12.6171, 55.2627, 6.66141, -12.6171, 55.2627, 6.66141, -15.1171, 53.0127, -1.58859, -14.8671, 53.0127, -1.58859, -12.8671, 55.0127, -1.58859, -12.8671, 55.0127, -1.58859, -14.8671, 37.0127, 2.16141, -8.11705, 39.0127, 2.16141, -8.11705, 39.0127, 2.16141, -8.61705, 36.7627, 2.16141, -8.86705, 39.7627, 2.16141, -8.86705, -43.2373, 2.16141, -8.86705, -42.9873, 2.16141, -8.11705, -40.9873, 2.16141, -8.11705, -40.7373, 2.16141, -8.86705, -39.2373, 2.16141, -8.86705, -38.9873, 2.16141, -8.11705, -36.9873, 2.16141, -8.11705, -36.7373, 2.16141, -8.86705, -35.2373, 2.16141, -8.86705, -34.9873, 2.16141, -8.11705, -32.9873, 2.16141, -8.11705, -32.7373, 2.16141, -8.86705, -31.2373, 2.16141, -8.86705, -30.9873, 2.16141, -8.11705, -28.9873, 2.16141, -8.11705, -28.7373, 2.16141, -8.86705, -27.2373, 2.16141, -8.86705, -26.9873, 2.16141, -8.11705, -24.9873, 2.16141, -8.11705, -24.7373, 2.16141, -8.86705, -23.2373, 2.16141, -8.86705, -22.9873, 2.16141, -8.11705, -20.9873, 2.16141, -8.11705, -20.7373, 2.16141, -8.86705, -19.2373, 2.16141, -8.86705, -18.9873, 2.16141, -8.11705, -16.9873, 2.16141, -8.11705, -16.7373, 2.16141, -8.86705, -15.2373, 2.16141, -8.86705, -14.9873, 2.16141, -8.11705, -12.9873, 2.16141, -8.11705, -12.7373, 2.16141, -8.86705, -11.2373, 2.16141, -8.86705, -10.9873, 2.16141, -8.11705, -8.98731, 2.16141, -8.11705, -8.73731, 2.16141, -8.86705, -7.23731, 2.16141, -8.86705, -6.98731, 2.16141, -8.11705, -4.98731, 2.16141, -8.11705, -4.73731, 2.16141, -8.86705, -3.23731, 2.16141, -8.86705, -2.98731, 2.16141, -8.11705, -0.987312, 2.16141, -8.11705, -0.737312, 2.16141, -8.86705, 0.762688, 2.16141, -8.86705, 1.01269, 2.16141, -8.11705, 3.01269, 2.16141, -8.11705, 3.26269, 2.16141, -8.86705, 4.76269, 2.16141, -8.86705, 5.01269, 2.16141, -8.11705, 7.01269, 2.16141, -8.11705, 7.26269, 2.16141, -8.86705, 8.76269, 2.16141, -8.86705, 9.01269, 2.16141, -8.11705, 11.0127, 2.16141, -8.11705, 11.2627, 2.16141, -8.86705, 12.7627, 2.16141, -8.86705, 13.0127, 2.16141, -8.11705, 15.0127, 2.16141, -8.11705, 15.2627, 2.16141, -8.86705, 16.7627, 2.16141, -8.86705, 17.0127, 2.16141, -8.11705, 19.0127, 2.16141, -8.11705, 19.2627, 2.16141, -8.86705, 20.7627, 2.16141, -8.86705, 21.0127, 2.16141, -8.11705, 23.0127, 2.16141, -8.11705, 23.2627, 2.16141, -8.86705, 24.7627, 2.16141, -8.86705, 25.0127, 2.16141, -8.11705, 27.0127, 2.16141, -8.11705, 27.2627, 2.16141, -8.86705, 28.7627, 2.16141, -8.86705, 29.0127, 2.16141, -8.11705, 31.0127, 2.16141, -8.11705, 31.2627, 2.16141, -8.86705, 32.7627, 2.16141, -8.86705, 33.0127, 2.16141, -8.11705, 35.0127, 2.16141, -8.11705, 35.2627, 2.16141, -8.86705, -59.9873, 2.16141, -9.11705, -59.2373, 2.16141, -8.61705, 57.0127, 2.16141, 23.8829, 59.0127, 2.16141, 23.8829, 59.0127, 2.16141, 23.3829, 40.7627, 2.16141, 22.8829, 40.5127, 2.16141, 20.8829, 39.7627, 2.16141, 20.8829, 39.7627, 2.16141, 23.1329, 40.7627, 2.16141, 23.1329, 47.2627, 2.16141, 23.1329, 48.7627, 2.16141, 23.1329, 44.7627, 2.16141, 23.1329, 41.0127, 2.16141, 23.8829, 43.0127, 2.16141, 23.8829, 43.2627, 2.16141, 23.1329, 56.7627, 2.16141, 23.1329, 59.7627, 2.16141, 23.1329, 45.0127, 2.16141, 23.8829, 47.0127, 2.16141, 23.8829, 49.0127, 2.16141, 23.8829, 51.0127, 2.16141, 23.8829, 51.2627, 2.16141, 23.1329, 52.7627, 2.16141, 23.1329, 53.0127, 2.16141, 23.8829, 55.0127, 2.16141, 23.8829, 55.2627, 2.16141, 23.1329, 69.0127, 2.16141, 23.8829, 71.0127, 2.16141, 23.8829, 71.0127, 2.16141, 23.3829, 68.7627, 2.16141, 23.1329, 71.7627, 2.16141, 23.1329, 64.7627, 2.16141, 23.1329, 65.0127, 2.16141, 23.8829, 67.0127, 2.16141, 23.8829, 67.2627, 2.16141, 23.1329, 64.0127, 2.16141, 22.8829, 73.0127, 2.16141, 27.8829, 75.0127, 2.16141, 27.8829, 75.0127, 2.16141, 27.3829, 72.7627, 2.16141, 26.8829, 72.5127, 2.16141, 24.8829, 71.7627, 2.16141, 24.8829, 71.7627, 2.16141, 27.1329, 72.7627, 2.16141, 27.1329, 75.7627, 2.16141, 27.1329, 81.0127, 2.16141, 31.8829, 83.0127, 2.16141, 31.8829, 83.0127, 2.16141, 31.3829, 76.7627, 2.16141, 30.8829, 76.5127, 2.16141, 28.8829, 75.7627, 2.16141, 28.8829, 75.7627, 2.16141, 31.1329, 76.7627, 2.16141, 31.1329, 80.7627, 2.16141, 31.1329, 83.7627, 2.16141, 31.1329, 79.2627, 2.16141, 31.1329, 77.0127, 2.16141, 31.8829, 79.0127, 2.16141, 31.8829, 61.5127, -1.58859, 52.3829, 61.5127, -1.58859, 63.6329, 62.5127, -1.58859, 63.6329, 62.5127, -1.58859, 52.3829, 6.51269, -1.58859, 83.3829, 7.01269, -1.58859, 83.1329, 7.26269, -1.58859, 81.8829, 4.51269, -1.58859, 81.8829, 4.76269, -1.58859, 83.1329, 5.51269, -1.58859, 83.3829, 43.5127, -1.58859, 81.8829, 43.5127, -1.58859, 81.3829, 7.51269, -1.58859, 105.883, 7.51269, -1.58859, 104.883, 6.51269, -1.58859, 104.383, 5.51269, -1.58859, 105.883, -51.7373, -1.58859, 81.3829, -51.7373, -1.58859, 81.8829, 92.5127, -1.58859, 81.8829, 92.7627, -1.58859, 83.1329, 93.5127, -1.58859, 83.3829, 95.5127, -1.58859, 85.8829, 95.5127, -1.58859, 84.8829, 94.5127, -1.58859, 84.3829, 93.5127, -1.58859, 85.8829, 80.2627, -1.58859, 81.3829, 80.2627, -1.58859, 81.8829, 94.5127, -1.58859, 81.3829, 1.01269, 2.16141, 83.8829, 3.01269, 2.16141, 83.8829, 3.01269, 2.16141, 83.3829, 0.762688, 2.16141, 83.1329, 3.76269, 2.16141, 83.1329, -51.2373, 2.16141, 83.1329, -50.9873, 2.16141, 83.8829, -48.9873, 2.16141, 83.8829, -48.7373, 2.16141, 83.1329, -47.2373, 2.16141, 83.1329, -46.9873, 2.16141, 83.8829, -44.9873, 2.16141, 83.8829, -44.7373, 2.16141, 83.1329, -43.2373, 2.16141, 83.1329, -42.9873, 2.16141, 83.8829, -40.9873, 2.16141, 83.8829, -40.7373, 2.16141, 83.1329, -39.2373, 2.16141, 83.1329, -38.9873, 2.16141, 83.8829, -36.9873, 2.16141, 83.8829, -36.7373, 2.16141, 83.1329, -35.2373, 2.16141, 83.1329, -34.9873, 2.16141, 83.8829, -32.9873, 2.16141, 83.8829, -32.7373, 2.16141, 83.1329, -31.2373, 2.16141, 83.1329, -30.9873, 2.16141, 83.8829, -28.9873, 2.16141, 83.8829, -28.7373, 2.16141, 83.1329, -27.2373, 2.16141, 83.1329, -26.9873, 2.16141, 83.8829, -24.9873, 2.16141, 83.8829, -24.7373, 2.16141, 83.1329, -23.2373, 2.16141, 83.1329, -22.9873, 2.16141, 83.8829, -20.9873, 2.16141, 83.8829, -20.7373, 2.16141, 83.1329, -19.2373, 2.16141, 83.1329, -18.9873, 2.16141, 83.8829, -16.9873, 2.16141, 83.8829, -16.7373, 2.16141, 83.1329, -15.2373, 2.16141, 83.1329, -14.9873, 2.16141, 83.8829, -12.9873, 2.16141, 83.8829, -12.7373, 2.16141, 83.1329, -11.2373, 2.16141, 83.1329, -10.9873, 2.16141, 83.8829, -8.98731, 2.16141, 83.8829, -8.73731, 2.16141, 83.1329, -7.23731, 2.16141, 83.1329, -6.98731, 2.16141, 83.8829, -4.98731, 2.16141, 83.8829, -4.73731, 2.16141, 83.1329, -3.23731, 2.16141, 83.1329, -2.98731, 2.16141, 83.8829, -0.987312, 2.16141, 83.8829, -0.737312, 2.16141, 83.1329, -51.9873, 2.16141, 82.8829, 41.0127, 2.16141, 83.8829, 43.0127, 2.16141, 83.8829, 43.0127, 2.16141, 83.3829, 40.7627, 2.16141, 83.1329, 43.7627, 2.16141, 83.1329, 8.76269, 2.16141, 83.1329, 9.01269, 2.41141, 83.8829, 11.0127, 2.16141, 83.8829, 11.2627, 2.16141, 83.1329, 12.7627, 2.16141, 83.1329, 13.0127, 2.16141, 83.8829, 15.0127, 2.16141, 83.8829, 15.2627, 2.16141, 83.1329, 16.7627, 2.16141, 83.1329, 17.0127, 2.16141, 83.8829, 19.0127, 2.16141, 83.8829, 19.2627, 2.16141, 83.1329, 20.7627, 2.16141, 83.1329, 21.0127, 2.16141, 83.8829, 23.0127, 2.16141, 83.8829, 23.2627, 2.16141, 83.1329, 24.7627, 2.16141, 83.1329, 25.0127, 2.16141, 83.8829, 27.0127, 2.16141, 83.8829, 27.2627, 2.16141, 83.1329, 28.7627, 2.16141, 83.1329, 29.0127, 2.16141, 83.8829, 31.0127, 2.16141, 83.8829, 31.2627, 2.16141, 83.1329, 32.7627, 2.16141, 83.1329, 33.0127, 2.16141, 83.8829, 35.0127, 2.16141, 83.8829, 35.2627, 2.16141, 83.1329, 36.7627, 2.16141, 83.1329, 37.0127, 2.16141, 83.8829, 39.0127, 2.16141, 83.8829, 39.2627, 2.16141, 83.1329, 8.01269, 2.16141, 82.8829, 89.0127, 2.16141, 83.8829, 91.0127, 2.16141, 83.8829, 91.0127, 2.16141, 83.3829, 88.7627, 2.16141, 83.1329, 91.7627, 2.16141, 83.1329, 80.7627, 2.16141, 83.1329, 81.0127, 2.16141, 83.8829, 83.0127, 2.16141, 83.8829, 83.2627, 2.16141, 83.1329, 84.7627, 2.16141, 83.1329, 85.0127, 2.16141, 83.8829, 87.0127, 2.16141, 83.8829, 87.2627, 2.16141, 83.1329, 80.0127, 2.16141, 82.8829, 93.0127, 2.16141, 87.8829, 95.0127, 2.16141, 87.8829, 95.0127, 2.16141, 87.3829, 92.7627, 2.16141, 86.8829, 92.5127, 2.16141, 84.8829, 91.7627, 2.16141, 84.8829, 91.7627, 2.16141, 87.1329, 92.7627, 2.16141, 87.1329, 95.7627, 2.16141, 87.1329, 5.01269, 2.16141, 107.883, 7.01269, 2.16141, 107.883, 7.01269, 2.16141, 107.383, 4.76269, 2.16141, 106.883, 4.51269, 2.16141, 104.883, 3.76269, 2.16141, 104.883, 3.76269, 2.16141, 107.133, 4.76269, 2.16141, 107.133, 7.76269, 2.16141, 107.133) @@ -423,5 +425,5 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 106) [node name="EnemyDatabase" parent="." instance=ExtResource("11_xxd5b")] unique_name_in_owner = true -EnemyList = Array[PackedScene]([ExtResource("12_mhyau"), ExtResource("15_f55jb")]) -SpawnRate = PackedFloat32Array(1, 0.5) +EnemyList = Array[PackedScene]([ExtResource("15_f55jb"), ExtResource("12_mhyau"), ExtResource("16_2admg"), ExtResource("17_fuh3g")]) +SpawnRate = PackedFloat32Array(0.25, 1, 1, 0.1) diff --git a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor11.tscn b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor11.tscn index c4965e26..873484db 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor11.tscn +++ b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor11.tscn @@ -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://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://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://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"] [sub_resource type="NavigationMesh" id="NavigationMesh_gqi8w"] @@ -39,4 +40,4 @@ generate_on_ready = false [node name="EnemyDatabase" parent="." instance=ExtResource("11_y24bo")] 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")]) diff --git a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor12.tscn b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor12.tscn index af4198b4..fd0da547 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor12.tscn +++ b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor12.tscn @@ -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://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://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://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"] border_size = 1.0 @@ -38,5 +40,5 @@ generate_on_ready = false [node name="EnemyDatabase" parent="." instance=ExtResource("13_jwrcb")] unique_name_in_owner = true -EnemyList = Array[PackedScene]([ExtResource("14_edmor")]) -SpawnRate = PackedFloat32Array(1) +EnemyList = Array[PackedScene]([ExtResource("14_xpfig"), ExtResource("14_edmor"), ExtResource("16_m28m3")]) +SpawnRate = PackedFloat32Array(1, 1, 0.25) diff --git a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor13.tscn b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor13.tscn index ed73d908..5848802f 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor13.tscn +++ b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor13.tscn @@ -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://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://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://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"] border_size = 1.0 @@ -37,5 +40,5 @@ generate_on_ready = false [node name="EnemyDatabase" parent="." instance=ExtResource("13_bm34w")] unique_name_in_owner = true -EnemyList = Array[PackedScene]([]) -SpawnRate = PackedFloat32Array() +EnemyList = Array[PackedScene]([ExtResource("14_cmrxb"), ExtResource("15_bb5ek"), ExtResource("16_ak4no")]) +SpawnRate = PackedFloat32Array(1, 1, 1) diff --git a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor14.tscn b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor14.tscn index bca6e3f8..1500f968 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor14.tscn +++ b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor14.tscn @@ -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://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://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://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"] border_size = 1.0 @@ -38,5 +41,5 @@ generate_on_ready = false [node name="EnemyDatabase" parent="." instance=ExtResource("13_8j25c")] unique_name_in_owner = true -EnemyList = Array[PackedScene]([ExtResource("14_r4r1j")]) -SpawnRate = PackedFloat32Array(1) +EnemyList = Array[PackedScene]([ExtResource("14_r4r1j"), ExtResource("15_q127u"), ExtResource("16_7km57"), ExtResource("17_nrwsy")]) +SpawnRate = PackedFloat32Array(0.25, 1, 0.1, 0.05) diff --git a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor15.tscn b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor15.tscn index f5cadc4b..6abb3853 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor15.tscn +++ b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor15.tscn @@ -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://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://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://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"] border_size = 1.0 @@ -37,5 +40,5 @@ generate_on_ready = false [node name="EnemyDatabase" parent="." instance=ExtResource("13_hlb65")] unique_name_in_owner = true -EnemyList = Array[PackedScene]([]) -SpawnRate = PackedFloat32Array() +EnemyList = Array[PackedScene]([ExtResource("14_i4yll"), ExtResource("15_xtyir"), ExtResource("16_cfhak")]) +SpawnRate = PackedFloat32Array(1, 1, 0.25) diff --git a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor16.tscn b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor16.tscn index d7be30c6..6bc257cc 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor16.tscn +++ b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor16.tscn @@ -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://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://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://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"] border_size = 1.0 @@ -37,5 +40,5 @@ generate_on_ready = false [node name="EnemyDatabase" parent="." instance=ExtResource("13_gg5wp")] unique_name_in_owner = true -EnemyList = Array[PackedScene]([]) -SpawnRate = PackedFloat32Array(1) +EnemyList = Array[PackedScene]([ExtResource("14_dg3fy"), ExtResource("15_q8hlb"), ExtResource("16_0utb0")]) +SpawnRate = PackedFloat32Array(0.25, 1, 1) diff --git a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor17.tscn b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor17.tscn index 39b7ed55..ec5de13f 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor17.tscn +++ b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor17.tscn @@ -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://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://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://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"] border_size = 1.0 @@ -37,5 +40,5 @@ generate_on_ready = false [node name="EnemyDatabase" parent="." instance=ExtResource("13_f1owy")] unique_name_in_owner = true -EnemyList = Array[PackedScene]([]) -SpawnRate = PackedFloat32Array() +EnemyList = Array[PackedScene]([ExtResource("14_7fjdy"), ExtResource("15_neo74"), ExtResource("16_iqgo0")]) +SpawnRate = PackedFloat32Array(1, 1, 1) diff --git a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor18.tscn b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor18.tscn index 36fc3c45..c01faa9f 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor18.tscn +++ b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor18.tscn @@ -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://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://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://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"] border_size = 1.0 @@ -37,5 +40,5 @@ generate_on_ready = false [node name="EnemyDatabase" parent="." instance=ExtResource("13_avl22")] unique_name_in_owner = true -EnemyList = Array[PackedScene]([]) -SpawnRate = PackedFloat32Array() +EnemyList = Array[PackedScene]([ExtResource("14_ksrny"), ExtResource("15_a76ri"), ExtResource("16_biant")]) +SpawnRate = PackedFloat32Array(1, 1, 1) diff --git a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor19.tscn b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor19.tscn index d0a8cc26..6c205a3b 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor19.tscn +++ b/Zennysoft.Game.Ma/src/map/dungeon/floors/Floor19.tscn @@ -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://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://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://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"] border_size = 1.0 @@ -37,5 +41,5 @@ generate_on_ready = false [node name="EnemyDatabase" parent="." instance=ExtResource("13_8mkl1")] unique_name_in_owner = true -EnemyList = Array[PackedScene]([]) -SpawnRate = PackedFloat32Array() +EnemyList = Array[PackedScene]([ExtResource("14_m0atb"), ExtResource("15_blhib"), ExtResource("16_rxmjy"), ExtResource("17_fnjfv")]) +SpawnRate = PackedFloat32Array(1, 1, 1, 0.05)