Fix level up, fix gallery room height, fix enemy heights, fix gospel of dimension spawn height, put minimap on right visual layer for some floors, add script to floor scene file

This commit is contained in:
2026-02-06 03:24:34 -08:00
parent 70a33d68cf
commit 8dd194a202
44 changed files with 125 additions and 53 deletions

View File

@@ -22,6 +22,8 @@ public class ExperiencePointsComponent : IExperiencePointsComponent
private readonly AutoProp<int> _level;
public event Action PlayerLevelUp;
public ExperiencePointsComponent()
{
var firstLevelExpRequirement = ExpToNextLevelCalculation(1);
@@ -57,6 +59,7 @@ public class ExperiencePointsComponent : IExperiencePointsComponent
var expToNextLevel = ExpToNextLevelCalculation(_level.Value);
_currentExp.OnNext(_currentExp.Value - _expToNextLevel.Value);
_expToNextLevel.OnNext(expToNextLevel);
PlayerLevelUp?.Invoke();
}
private int ExpToNextLevelCalculation(int nextLevel)

View File

@@ -207,7 +207,7 @@ public abstract partial class Enemy : CharacterBody3D, IEnemy, IProvide<IEnemyLo
var spawnPointsGodotCollection = new Godot.Collections.Array<Marker3D>(spawnPoints);
var randomSpawnPoint = spawnPointsGodotCollection.PickRandom();
GlobalPosition = randomSpawnPoint.GlobalPosition;
GlobalPosition = new Vector3(randomSpawnPoint.GlobalPosition.X, 0, randomSpawnPoint.GlobalPosition.Y);
_previousPosition = GlobalPosition;
if (this is IHavePatrolBehavior patrolEnemy)

View File

@@ -33,7 +33,7 @@ public abstract partial class Enemy2D : Enemy
if (_enemyLogic.Value is EnemyLogic.State.FollowPlayer || _enemyLogic.Value is EnemyLogic.State.Patrolling)
{
var velocity = (GlobalPosition - _previousPosition) / (float)delta;
if (velocity.IsZeroApprox())
if (velocity.Length() < 0.3f)
_enemyLogic.Input(new EnemyLogic.Input.Idle());
else
_enemyLogic.Input(new EnemyLogic.Input.Move());

View File

@@ -84,18 +84,12 @@ public abstract partial class EnemyModelView : Node3D, IEnemyModelView
public virtual void PlayIdleAnimation()
{
if (!AnimationTree.HasAnimation("idle_front"))
return;
_walkSFX.Stop();
_stateMachine.Travel(_idleName, false);
}
public virtual void PlayWalkAnimation()
{
if (!AnimationTree.HasAnimation("idle_front_walking"))
return;
if (!_walkSFX.Playing)
_walkSFX.Play();
_stateMachine.Travel(_walkingName, false);

View File

@@ -38,6 +38,7 @@ public partial class FilthEater : Enemy2D, IHavePatrolBehavior, IHaveEngagePlaye
public void OnResolved()
{
_enemyLogic.Input(new EnemyLogic.Input.Activate());
_enemyLogic.Input(new EnemyLogic.Input.Patrol());
}

View File

@@ -25,6 +25,13 @@ radius = 1.0
script = ExtResource("4_5eid5")
Name = "Filth Eater"
Description = "This guy grosses me out."
MaximumHP = ""
ATK = ""
DEF = ""
Affinity = ""
Weakness = ""
Drop1 = ""
Drop2 = ""
metadata/_custom_type_script = ExtResource("4_5eid5")
[sub_resource type="CylinderShape3D" id="CylinderShape3D_qbmfg"]
@@ -41,7 +48,7 @@ script = ExtResource("1_p438s")
[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)
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.56859, 0)
collision_layer = 2
collision_mask = 2
@@ -51,15 +58,17 @@ shape = SubResource("CylinderShape3D_jbgmx")
[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)
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.56859, 0)
shape = SubResource("CapsuleShape3D_cwfph")
[node name="Raycast" type="RayCast3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.56859, 0)
target_position = Vector3(0, 0, -5)
collision_mask = 3
[node name="Collision" type="Area3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.56859, 0)
collision_layer = 2048
collision_mask = 0
@@ -69,10 +78,12 @@ shape = SubResource("SphereShape3D_0y048")
[node name="EnemyModelView" parent="." instance=ExtResource("3_rrwed")]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.06859, 0)
EnemyLoreInfo = SubResource("Resource_fv5vf")
[node name="PlayerDetector" type="Area3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.56859, 0)
collision_layer = 0
collision_mask = 34
@@ -81,6 +92,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.179932, 0)
shape = SubResource("CylinderShape3D_qbmfg")
[node name="Components" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.56859, 0)
[node name="PatrolBehavior" parent="Components" instance=ExtResource("5_pvjvo")]
unique_name_in_owner = true
@@ -99,6 +111,7 @@ avoidance_enabled = true
radius = 1.0
[node name="HitSounds" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.56859, 0)
[node name="AbsorbSFX" type="AudioStreamPlayer3D" parent="HitSounds"]
unique_name_in_owner = true

View File

@@ -1919,7 +1919,7 @@ states/Start/position = Vector2(198, 100)
states/Walking/node = ExtResource("197_mno7m")
states/Walking/position = Vector2(588, 100)
transitions = ["Start", "Idle", SubResource("AnimationNodeStateMachineTransition_u5xjp"), "Primary Attack", "Idle", SubResource("AnimationNodeStateMachineTransition_5cwnl"), "Idle", "Primary Attack", SubResource("AnimationNodeStateMachineTransition_e0gee"), "Idle", "Walking", SubResource("AnimationNodeStateMachineTransition_mno7m"), "Walking", "Idle", SubResource("AnimationNodeStateMachineTransition_4h5gj"), "Idle", "Secondary Attack", SubResource("AnimationNodeStateMachineTransition_e5pq0"), "Secondary Attack", "Idle", SubResource("AnimationNodeStateMachineTransition_wka7s"), "Walking", "Secondary Attack", SubResource("AnimationNodeStateMachineTransition_8jscc"), "Walking", "Primary Attack", SubResource("AnimationNodeStateMachineTransition_7vrs0")]
graph_offset = Vector2(-32, 46)
graph_offset = Vector2(226.043, 46)
[sub_resource type="AtlasTexture" id="AtlasTexture_smxxh"]
atlas = ExtResource("194_pyy2h")

View File

@@ -36,10 +36,11 @@ script = ExtResource("1_3ejdn")
[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)
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.95329, 0)
shape = SubResource("CapsuleShape3D_cwfph")
[node name="Collision" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.95329, 0)
[node name="Collision" type="Area3D" parent="Collision"]
collision_layer = 2048
@@ -50,7 +51,7 @@ shape = SubResource("SphereShape3D_8vcnq")
[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)
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.95329, 0)
collision_layer = 2
collision_mask = 2
@@ -65,12 +66,14 @@ target_position = Vector3(0, 0, -5)
collision_mask = 3
[node name="Visual" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.95329, 0)
[node name="EnemyModelView" parent="Visual" instance=ExtResource("4_82s0m")]
unique_name_in_owner = true
[node name="PlayerDetector" type="Area3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.95329, 0)
collision_layer = 0
collision_mask = 34
@@ -78,6 +81,7 @@ collision_mask = 34
shape = SubResource("CylinderShape3D_746fv")
[node name="Components" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.95329, 0)
[node name="PatrolBehavior" parent="Components" instance=ExtResource("4_8ymq6")]
unique_name_in_owner = true
@@ -96,6 +100,7 @@ avoidance_enabled = true
radius = 1.0
[node name="HitSounds" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.95329, 0)
[node name="AbsorbSFX" type="AudioStreamPlayer3D" parent="HitSounds"]
unique_name_in_owner = true
@@ -122,7 +127,7 @@ stream = ExtResource("10_ddchx")
bus = &"SFX"
[node name="Shadow" type="Sprite3D" parent="."]
transform = Transform3D(0.925, 0, 0, 0, -4.0433e-08, 0.925, 0, -0.925, -4.0433e-08, 0.00393164, -1.00089, 0.0077811)
transform = Transform3D(0.925, 0, 0, 0, -4.0433e-08, 0.925, 0, -0.925, -4.0433e-08, 0.00393164, 0.101466, 0.0077811)
transparency = 0.1
cast_shadow = 0
modulate = Color(1, 1, 1, 0.591)

View File

@@ -33,12 +33,12 @@ script = ExtResource("1_iy2fp")
[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)
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 2, 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)
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 2, 0)
collision_layer = 2
collision_mask = 2
@@ -53,6 +53,7 @@ target_position = Vector3(0, 0, -5)
collision_mask = 3
[node name="Collision" type="Area3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
collision_layer = 2048
collision_mask = 0
@@ -61,9 +62,11 @@ shape = SubResource("SphereShape3D_8vcnq")
[node name="EnemyModelView" parent="." instance=ExtResource("2_v2urn")]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
[node name="PlayerDetector" type="Area3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
collision_layer = 0
collision_mask = 34
@@ -71,6 +74,7 @@ collision_mask = 34
shape = SubResource("CylinderShape3D_jhnwb")
[node name="Components" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
[node name="PatrolBehavior" parent="Components" instance=ExtResource("4_bjnvx")]
unique_name_in_owner = true
@@ -92,6 +96,7 @@ avoidance_enabled = true
radius = 1.0
[node name="HitSounds" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
[node name="AbsorbSFX" type="AudioStreamPlayer3D" parent="HitSounds"]
unique_name_in_owner = true

View File

@@ -1537,7 +1537,7 @@ autoplay = true
bus = &"SFX"
[node name="Shadow" type="Sprite3D" parent="."]
transform = Transform3D(1.265, 0, 0, 0, -5.52949e-08, 1.265, 0, -1.265, -5.52949e-08, 0.00393164, -1.31885, 0.0077811)
transform = Transform3D(1.265, 0, 0, 0, -5.52949e-08, 1.265, 0, -1.265, -5.52949e-08, 0.00393164, -1.88689, 0.0077811)
transparency = 0.1
cast_shadow = 0
modulate = Color(1, 1, 1, 0.591)

View File

@@ -33,12 +33,12 @@ script = ExtResource("1_e2477")
[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)
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.47389, 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)
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 1.47389, 0)
collision_layer = 2
collision_mask = 2
@@ -53,6 +53,7 @@ target_position = Vector3(0, 0, -5)
collision_mask = 3
[node name="Collision" type="Area3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.47389, 0)
collision_layer = 2048
collision_mask = 0
@@ -61,9 +62,11 @@ shape = SubResource("SphereShape3D_8vcnq")
[node name="EnemyModelView" parent="." instance=ExtResource("3_tbkej")]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.47389, 0)
[node name="PlayerDetector" type="Area3D" parent="."]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.47389, 0)
collision_layer = 0
collision_mask = 34
@@ -71,6 +74,7 @@ collision_mask = 34
shape = SubResource("CylinderShape3D_tbkej")
[node name="Components" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.47389, 0)
[node name="PatrolBehavior" parent="Components" instance=ExtResource("4_dxxe5")]
unique_name_in_owner = true
@@ -89,6 +93,7 @@ avoidance_enabled = true
radius = 1.0
[node name="HitSounds" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.47389, 0)
[node name="AbsorbSFX" type="AudioStreamPlayer3D" parent="HitSounds"]
unique_name_in_owner = true

View File

@@ -39,11 +39,4 @@ public partial class GoldSproingy : Enemy2D, IHavePatrolBehavior, IHaveFleeBehav
}
public override void Move() => EnemyModelView.PlayIdleAnimation();
public override void _ExitTree()
{
PatrolBehavior.OnVelocityComputed -= OnVelocityComputed;
PlayerDetector.BodyEntered -= PlayerDetector_BodyEntered;
PlayerDetector.BodyExited -= PlayerDetector_BodyExited;
}
}

View File

@@ -42,10 +42,11 @@ script = ExtResource("1_o1o4d")
[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)
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 2.09874, 0)
shape = SubResource("CapsuleShape3D_cwfph")
[node name="Collision" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.09874, 0)
[node name="Collision" type="Area3D" parent="Collision"]
collision_layer = 2048
@@ -83,11 +84,13 @@ collision_mask = 34
shape = SubResource("CylinderShape3D_drfkj")
[node name="Visual" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.09874, 0)
[node name="EnemyModelView" parent="Visual" instance=ExtResource("2_o1o4d")]
unique_name_in_owner = true
[node name="Components" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.09874, 0)
[node name="PatrolBehavior" parent="Components" instance=ExtResource("3_dxqkk")]
unique_name_in_owner = true
@@ -101,6 +104,7 @@ avoidance_enabled = true
radius = 1.0
[node name="SFX" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.09874, 0)
[node name="AbsorbSFX" type="AudioStreamPlayer3D" parent="SFX"]
unique_name_in_owner = true

View File

@@ -209,7 +209,7 @@ public class EffectService
var roomsGodotCollection = new Godot.Collections.Array<MonsterRoom>(validRooms);
var randomRoom = roomsGodotCollection.PickRandom();
var spawnPoint = randomRoom.PlayerSpawn;
player.TeleportPlayer((spawnPoint.Rotation, spawnPoint.Position));
player.TeleportPlayer((spawnPoint.Rotation, new Vector3(spawnPoint.Position.X, 0, spawnPoint.Position.Z)));
SfxDatabase.Instance.Play(SoundEffect.TeleportToRandomRoom);
}

View File

@@ -78,7 +78,7 @@ navigation_mesh = SubResource("NavigationMesh_7ysko")
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, -27.9429, 0, -4.39086)
[node name="A1CircleRoom" parent="NavigationRegion3D" instance=ExtResource("3_7ysko")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 4, 2.00561, 33.9984)
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 4, 0, 33.998)
[node name="BasinRoom" parent="NavigationRegion3D" instance=ExtResource("8_mm2su")]
transform = Transform3D(0, 0, 1, 0, 1, 0, -1, 0, 0, 33.9683, -0.0379416, 34.0224)

View File

@@ -128,7 +128,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -29, 0, -14)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.0424, -3.38633, 47.9748)
[node name="A1CircleRoom" parent="NavigationRegion3D" instance=ExtResource("12_u3sjh")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 2.00241, 30)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, 30)
[node name="CA1_CORNERBLOCK" parent="NavigationRegion3D" instance=ExtResource("5_5con5")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -59, 0, 28)

View File

@@ -92,7 +92,7 @@ transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -6.947
transform = Transform3D(2.98023e-08, 0, -1, 0, 1, 0, 1, 0, 2.98023e-08, -44.8972, 0, -3.93051)
[node name="A1CircleRoom" parent="NavigationRegion3D" instance=ExtResource("6_pbqy2")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.00045, 2, 18)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7, 0, 18)
[node name="02_BigBlockRoom" parent="NavigationRegion3D" instance=ExtResource("7_ry1wj")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 24.9478, 0, 17.9076)
@@ -149,7 +149,8 @@ mesh = SubResource("PlaneMesh_ry1wj")
skeleton = NodePath("../..")
[node name="Minimap2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.88379, -1.627, 10.9144)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.88379, -0.652309, 10.9144)
layers = 2
mesh = SubResource("PlaneMesh_ferpc")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap2"]

View File

@@ -166,8 +166,12 @@ layers = 0
mesh = SubResource("PlaneMesh_q0osc")
skeleton = NodePath("../..")
[node name="Node3D6" parent="NavigationRegion3D" instance=ExtResource("15_rdx86")]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 35.3871, 0, 5.99815)
[node name="Minimap2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.87502, -1.627, 11.4857)
layers = 2
mesh = SubResource("PlaneMesh_2edmy")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap2"]

View File

@@ -89,7 +89,7 @@ transform = Transform3D(-8.74228e-08, 0, -2, 0, 2, 0, 2, 0, -8.74228e-08, 73.702
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 20.833, 4.371, -22.475)
[node name="GalleryA1" parent="NavigationRegion3D" instance=ExtResource("5_bqqn6")]
transform = Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -41.9999, 1.98411, 46)
transform = Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -42, 0, 46)
[node name="Statue Room" parent="NavigationRegion3D" instance=ExtResource("12_mwhl3")]
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -33.9995, 0, 12.0695)
@@ -155,6 +155,7 @@ mesh = SubResource("PlaneMesh_bqqn6")
[node name="Minimap2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.3232, -9.627, 9.60703)
layers = 2
mesh = SubResource("PlaneMesh_e2od1")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap2"]

View File

@@ -1,5 +1,6 @@
[gd_scene load_steps=20 format=3 uid="uid://b0ufyie2aq3oy"]
[gd_scene load_steps=21 format=3 uid="uid://b0ufyie2aq3oy"]
[ext_resource type="Script" uid="uid://dwt6302nsf4vq" path="res://src/map/dungeon/code/DungeonFloor.cs" id="1_3sxps"]
[ext_resource type="PackedScene" uid="uid://dfpyfpnya0f4u" path="res://src/map/dungeon/rooms/Set A/13. Water Room.tscn" id="1_jn0u4"]
[ext_resource type="PackedScene" uid="uid://by2op0p65ht27" path="res://src/map/dungeon/rooms/Set A/02. Big Block Room.tscn" id="2_eck5x"]
[ext_resource type="PackedScene" uid="uid://cihbmyo0ltq4m" path="res://src/map/dungeon/rooms/Set A/19. Floor Exit A.tscn" id="3_3sxps"]
@@ -70,6 +71,7 @@ _data = {
}
[node name="4b" type="Node3D"]
script = ExtResource("1_3sxps")
[node name="NavigationRegion3D" type="NavigationRegion3D" parent="."]
navigation_mesh = SubResource("NavigationMesh_eck5x")
@@ -127,6 +129,7 @@ skeleton = NodePath("../..")
[node name="Minimap2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -26.3714, -14.627, -7.52566)
layers = 2
mesh = SubResource("PlaneMesh_a154m")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap2"]

View File

@@ -81,7 +81,7 @@ navigation_mesh = SubResource("NavigationMesh_rghjh")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.705, -0.08, 10.07)
[node name="GalleryA1" parent="NavigationRegion3D" instance=ExtResource("2_f4t56")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -12.7064, 2, -31.9042)
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -12.706, 0, -31.904)
[node name="Long Room" parent="NavigationRegion3D" instance=ExtResource("3_wbyyx")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -51.1365, 0, -3.89138)
@@ -154,6 +154,7 @@ skeleton = NodePath("../../..")
[node name="Minimap2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.70335, -5.627, -3.95678)
layers = 2
mesh = SubResource("PlaneMesh_nls0x")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap2"]

View File

@@ -143,7 +143,7 @@ transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -19.79
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, -21.8763, -0.0302756, -61.0795)
[node name="GalleryA1" parent="NavigationRegion3D" instance=ExtResource("15_b6ce1")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 92.3546, 1.97453, -46.5255)
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 92.355, 0, -46.526)
[node name="Node3D18" parent="NavigationRegion3D" instance=ExtResource("8_3ae17")]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 9.7533, 0, -34.5417)
@@ -165,6 +165,7 @@ skeleton = NodePath("../../..")
[node name="Minimap2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 32.1436, -17.627, -25.006)
layers = 2
mesh = SubResource("PlaneMesh_yhnvc")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap2"]

View File

@@ -158,6 +158,7 @@ skeleton = NodePath("../..")
[node name="Minimap2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -35.2676, -9.54691, -16.1372)
layers = 2
mesh = SubResource("PlaneMesh_36beo")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap2"]

View File

@@ -83,7 +83,7 @@ navigation_mesh = SubResource("NavigationMesh_p70jf")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.387, 3.56246, 45.5497)
[node name="A1CircleRoom" parent="NavigationRegion3D" instance=ExtResource("3_5rsdd")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -30.9011, 2.00522, 19.2355)
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -30.901, 0, 19.236)
[node name="Column Room" parent="NavigationRegion3D" instance=ExtResource("4_l15fl")]
transform = Transform3D(1, 0, -1.06581e-14, 0, 1, 0, 1.06581e-14, 0, 1, 78.6671, 0, 42.7835)
@@ -174,6 +174,7 @@ skeleton = NodePath("../..")
[node name="Minimap2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 43.4336, -7.83002, 10.6265)
layers = 2
mesh = SubResource("PlaneMesh_l15fl")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap2"]

View File

@@ -159,6 +159,7 @@ skeleton = NodePath("../..")
[node name="Minimap2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40.9971, -1.23456, 12.6741)
layers = 2
mesh = SubResource("PlaneMesh_m6pak")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap2"]

View File

@@ -93,7 +93,7 @@ transform = Transform3D(1.31134e-07, 0, 1, 0, 1, 0, -1, 0, 1.31134e-07, -1, 0, -
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 38.9281, -0.085, 10)
[node name="GalleryA1" parent="NavigationRegion3D" instance=ExtResource("6_mqwjf")]
transform = Transform3D(1.98418e-09, 0, 1, 0, 1, 0, -1, 0, 1.98418e-09, -47, 2, 20)
transform = Transform3D(1.98418e-09, 0, 1, 0, 1, 0, -1, 0, 1.98418e-09, -47, 0, 20)
[node name="Long Room" parent="NavigationRegion3D" instance=ExtResource("7_caxvq")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 90.412, 0, -4)
@@ -102,7 +102,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 90.412, 0, -4)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.00053, 0, -13.9305)
[node name="A1CircleRoom" parent="NavigationRegion3D" instance=ExtResource("9_3rk4b")]
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -5, 2, 20)
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -5, 0, 20)
[node name="CA1_3BLOCK" parent="NavigationRegion3D" instance=ExtResource("8_irxvk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, 0, 22)
@@ -154,6 +154,7 @@ skeleton = NodePath("../..")
[node name="Minimap2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 28.946, -1.01226, -8.047)
layers = 2
mesh = SubResource("PlaneMesh_mqwjf")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap2"]

View File

@@ -174,6 +174,7 @@ skeleton = NodePath("../..")
[node name="Minimap2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.3119, -1.65182, -2.33316)
layers = 2
mesh = SubResource("PlaneMesh_u6l1h")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap2"]

File diff suppressed because one or more lines are too long

View File

@@ -193,6 +193,7 @@ skeleton = NodePath("../..")
[node name="Minimap2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 61.8826, -1.59075, -9.67056)
layers = 2
mesh = SubResource("PlaneMesh_cqkfq")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap2"]

View File

@@ -154,6 +154,7 @@ skeleton = NodePath("../..")
[node name="Minimap2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.87809, -8.95929, 41.5167)
layers = 2
mesh = SubResource("PlaneMesh_53qaf")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap2"]

View File

@@ -147,6 +147,7 @@ skeleton = NodePath("../..")
[node name="Minimap2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.27648, -4.40777, 38.915)
layers = 2
mesh = SubResource("PlaneMesh_qclr3")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap2"]

View File

@@ -149,4 +149,5 @@ skeleton = NodePath("../..")
[node name="Minimap" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 39.9422, 0, -22.6404)
layers = 2
mesh = SubResource("PlaneMesh_axhvs")

View File

@@ -192,6 +192,7 @@ skeleton = NodePath("../..")
[node name="Minimap2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.44169, -0.247826, 3.07943)
layers = 2
mesh = SubResource("PlaneMesh_tr1gi")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap2"]

View File

@@ -166,6 +166,7 @@ skeleton = NodePath("../..")
[node name="Minimap2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17.8659, -11.2217, 66.0216)
layers = 2
mesh = SubResource("PlaneMesh_f5oy5")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap2"]

View File

@@ -170,6 +170,7 @@ skeleton = NodePath("../..")
[node name="Minimap" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.859, -1.6004, 42.4854)
layers = 2
mesh = SubResource("PlaneMesh_vi6hn")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap"]

View File

@@ -189,6 +189,7 @@ skeleton = NodePath("../..")
[node name="Minimap" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -39.9698, -4.55022, -79.843)
layers = 2
mesh = SubResource("PlaneMesh_nlvua")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap"]

View File

@@ -168,6 +168,7 @@ mesh = SubResource("PlaneMesh_irwtv")
[node name="Minimap" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34.0523, -3.76094, 15.9884)
layers = 2
mesh = SubResource("PlaneMesh_wklws")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap"]

View File

@@ -151,6 +151,7 @@ skeleton = NodePath("../..")
[node name="Minimap" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.60067, -1.96918, 40.358)
layers = 2
mesh = SubResource("PlaneMesh_xw3tf")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap"]

View File

@@ -222,6 +222,7 @@ skeleton = NodePath("../..")
[node name="Minimap" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 34.305, -0.327558, 16.999)
layers = 2
mesh = SubResource("PlaneMesh_x4fnm")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap"]

View File

@@ -190,6 +190,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -19.0957, 2.16418, -35.8279)
[node name="Minimap2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.04739, -2.4605, -26.4829)
layers = 2
mesh = SubResource("PlaneMesh_ur1qn")
[node name="AnimationPlayer" type="AnimationPlayer" parent="Minimap2"]

View File

@@ -143,6 +143,7 @@ subdivide_depth = 1
script = ExtResource("1_k4n66")
[node name="Model" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.98973, 0)
[node name="A1-WateryCircle" parent="Model" instance=ExtResource("1_1t1ov")]
@@ -156,6 +157,7 @@ mesh = SubResource("PlaneMesh_wbtug")
skeleton = NodePath("../../..")
[node name="Collisions" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.98973, 0)
[node name="StaticBody3D" type="StaticBody3D" parent="Collisions"]
@@ -190,7 +192,7 @@ transform = Transform3D(9.69048, 0, 0, 0, 9.69048, 0, 0, 0, 9.69048, -0.0314422,
shape = SubResource("ConcavePolygonShape3D_j6fpi")
[node name="Spawn Points" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.3092, 0, -8.8875)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.3092, 1.98973, -8.8875)
[node name="PlayerSpawn" type="Marker3D" parent="Spawn Points"]
unique_name_in_owner = true
@@ -223,7 +225,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.6143, -1.602, 6.01731)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.9752, -1.602, 11.0699)
[node name="Room" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.3092, 0, -8.8875)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.3092, 1.98973, -8.8875)
[node name="Room" type="Area3D" parent="Room"]
unique_name_in_owner = true
@@ -245,6 +247,7 @@ sorting_offset = 100.0
mesh = SubResource("PlaneMesh_qjvxm")
[node name="Lights" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.98973, 0)
[node name="OmniLight3D" type="OmniLight3D" parent="Lights"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.116278, 2.29578, -0.0767513)
@@ -254,6 +257,7 @@ omni_range = 14.008
omni_attenuation = 1.157
[node name="VFX" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.98973, 0)
[node name="GPUParticles3D2" type="GPUParticles3D" parent="VFX"]
transform = Transform3D(0.464, 0, 0, 0, 0.227, 0, 0, 0, 0.462, -0.206923, -1.16501, -0.808931)

View File

@@ -91,10 +91,12 @@ subdivide_depth = 1
script = ExtResource("1_wk80w")
[node name="Model" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
[node name="A1Gallery" parent="Model" instance=ExtResource("1_4yixp")]
[node name="Collisions" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
[node name="StaticBody3D" type="StaticBody3D" parent="Collisions"]
@@ -123,7 +125,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.000244141, -2.04318, 4.0011
shape = SubResource("BoxShape3D_q8qa6")
[node name="Spawn Points" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.3092, 0, -8.8875)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.3092, 2, -8.8875)
[node name="PlayerSpawn" type="Marker3D" parent="Spawn Points"]
unique_name_in_owner = true
@@ -156,7 +158,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.6143, -1.602, 6.01731)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.9752, -1.602, 11.0699)
[node name="Room" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.3092, 0, -8.8875)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.3092, 2, -8.8875)
[node name="Room" type="Area3D" parent="Room"]
unique_name_in_owner = true
@@ -178,6 +180,7 @@ sorting_offset = 100.0
mesh = SubResource("PlaneMesh_w4hfg")
[node name="Lights" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
[node name="OmniLight3D" type="OmniLight3D" parent="Lights"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6.768, -5.27914)
@@ -212,6 +215,7 @@ shadow_enabled = true
omni_range = 10.2
[node name="VFX" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0)
[node name="Altar Godrays" type="CSGCylinder3D" parent="VFX"]
transform = Transform3D(0.238656, -0.489364, -20.1776, -0.180127, 20.1781, -0.491485, 20.1828, 0.185877, 0.234199, -0.00122181, 7.10086, 1.28416)

View File

@@ -171,6 +171,7 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
CollisionDetector.AreaEntered += CollisionDetector_AreaEntered;
HealthComponent.CurrentHP.Changed += InverseHPToAttackPowerSync;
HealthComponent.HealthReachedZero += Die;
ExperiencePointsComponent.PlayerLevelUp += OnLevelUp;
PlayerFXAnimations.AnimationFinished += PlayerFXAnimations_AnimationFinished;
HealthTimer.WaitTime = _healthTimerWaitTime;
SetProcessInput(false);
@@ -222,17 +223,13 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
_knockbackDirection = GlobalBasis.Z.Normalized();
}
public void PlayJumpScareAnimation() => PlayerFXAnimations.Play("jump_scare");
public void LevelUp()
{
var rng = new RandomNumberGenerator();
rng.Randomize();
var hpIncrease = rng.RandiRange(3, 6);
HealthComponent.RaiseMaximumHP(hpIncrease);
ExperiencePointsComponent.LevelUp();
}
public void PlayJumpScareAnimation() => PlayerFXAnimations.Play("jump_scare");
public void Die()
{
PlayerFXAnimations.Play("death");
@@ -295,6 +292,19 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
}
}
private void OnLevelUp()
{
BoostPlayerHPFromLevelUp();
}
private void BoostPlayerHPFromLevelUp()
{
var rng = new RandomNumberGenerator();
rng.Randomize();
var hpIncrease = rng.RandiRange(3, 6);
HealthComponent.RaiseMaximumHP(hpIncrease);
}
private static float LeftStrafeInputVector => Input.GetActionStrength(GameInputs.StrafeLeft);
private static float RightStrafeInputVector => Input.GetActionStrength(GameInputs.StrafeRight);