Minor fixes to navigation

This commit is contained in:
2025-02-25 02:04:15 -08:00
parent 22a930358c
commit 0d7242c96d
11 changed files with 194 additions and 115 deletions

View File

@@ -11,7 +11,7 @@ config_version=5
[application] [application]
config/name="GameJamDungeon" config/name="GameJamDungeon"
run/main_scene="res://src/Main.tscn" run/main_scene="uid://d1gjaijijd5ot"
config/features=PackedStringArray("4.4", "C#", "GL Compatibility") config/features=PackedStringArray("4.4", "C#", "GL Compatibility")
boot_splash/show_image=false boot_splash/show_image=false

View File

@@ -9,7 +9,7 @@ using System.Threading.Tasks;
namespace GameJamDungeon; namespace GameJamDungeon;
[Meta(typeof(IAutoNode))] [Meta(typeof(IAutoNode))]
public partial class Enemy : RigidBody3D, IEnemy, IProvide<IEnemyLogic> public partial class Enemy : CharacterBody3D, IEnemy, IProvide<IEnemyLogic>
{ {
#region Registration #region Registration
public override void _Notification(int what) => this.Notify(what); public override void _Notification(int what) => this.Notify(what);
@@ -25,7 +25,7 @@ public partial class Enemy : RigidBody3D, IEnemy, IProvide<IEnemyLogic>
[Dependency] IGameEventDepot GameEventDepot => this.DependOn<IGameEventDepot>(); [Dependency] IGameEventDepot GameEventDepot => this.DependOn<IGameEventDepot>();
[Dependency] protected IPlayer Player => this.DependOn<IPlayer>(() => GetParent().GetChildren().OfType<IPlayer>().Single()); [Dependency] protected IPlayer Player => this.DependOn(() => GetParent().GetChildren().OfType<IPlayer>().Single());
#endregion #endregion
#region Exports #region Exports
@@ -67,12 +67,14 @@ public partial class Enemy : RigidBody3D, IEnemy, IProvide<IEnemyLogic>
_enemyLogic.Set(this as IEnemy); _enemyLogic.Set(this as IEnemy);
_enemyLogic.Set(Player); _enemyLogic.Set(Player);
_currentTarget = GlobalPosition;
NavAgent.VelocityComputed += NavAgent_VelocityComputed; NavAgent.VelocityComputed += NavAgent_VelocityComputed;
NavAgent.TargetReached += NavAgent_TargetReached; NavAgent.TargetReached += NavAgent_TargetReached;
_thinkTimer = new Timer _thinkTimer = new Timer
{ {
WaitTime = 1f WaitTime = 0.4f
}; };
AddChild(_thinkTimer); AddChild(_thinkTimer);
_thinkTimer.Timeout += NavAgent_TargetReached; _thinkTimer.Timeout += NavAgent_TargetReached;
@@ -89,13 +91,9 @@ public partial class Enemy : RigidBody3D, IEnemy, IProvide<IEnemyLogic>
if (CurrentHP <= 0) if (CurrentHP <= 0)
return; return;
var lookDir = GlobalPosition - safeVelocity;
var leveledLookDir = new Vector3(lookDir.X, Position.Y, lookDir.Z);
if (leveledLookDir.DistanceTo(GlobalPosition) > 0.2f)
LookAt(new Vector3(lookDir.X, Position.Y, lookDir.Z), Vector3.Up);
_knockbackStrength = _knockbackStrength * 0.9f; _knockbackStrength = _knockbackStrength * 0.9f;
MoveAndCollide(safeVelocity + (_knockbackDirection * _knockbackStrength)); Velocity = safeVelocity + (_knockbackDirection * _knockbackStrength);
MoveAndSlide();
} }
public void SetTarget(Vector3 target) public void SetTarget(Vector3 target)
@@ -122,6 +120,7 @@ public partial class Enemy : RigidBody3D, IEnemy, IProvide<IEnemyLogic>
EnemyModelView.PlayHitAnimation(); EnemyModelView.PlayHitAnimation();
_enemyLogic.Input(new EnemyLogic.Input.Alerted()); _enemyLogic.Input(new EnemyLogic.Input.Alerted());
NavAgent_TargetReached();
if (Player.EquippedWeapon.Value.WeaponTags.Contains(WeaponTag.SelfDamage)) if (Player.EquippedWeapon.Value.WeaponTags.Contains(WeaponTag.SelfDamage))
Player.Stats.SetCurrentHP(Player.Stats.CurrentHP.Value - 5); Player.Stats.SetCurrentHP(Player.Stats.CurrentHP.Value - 5);
@@ -133,16 +132,21 @@ public partial class Enemy : RigidBody3D, IEnemy, IProvide<IEnemyLogic>
if (CurrentHP <= 0) if (CurrentHP <= 0)
return; return;
if (_enemyLogic.Value is EnemyLogic.State.Attacking)
SetTarget(GlobalPosition);
var nextPathPosition = NavAgent.GetNextPathPosition(); var nextPathPosition = NavAgent.GetNextPathPosition();
var movementDelta = 2f * (float)delta;
var newVelocity = GlobalPosition.DirectionTo(nextPathPosition) * movementDelta;
var newVelocity = GlobalPosition.DirectionTo(nextPathPosition) * 2f;
if (NavAgent.AvoidanceEnabled) if (NavAgent.AvoidanceEnabled)
NavAgent.Velocity = newVelocity; NavAgent.Velocity = newVelocity;
else else
NavAgent_VelocityComputed(newVelocity); NavAgent_VelocityComputed(newVelocity);
var lookDir = GlobalPosition + Velocity;
if (_enemyLogic.Value is not EnemyLogic.State.Attacking && (!lookDir.IsEqualApprox(GlobalPosition) || !Velocity.IsZeroApprox()))
LookAt(lookDir, Vector3.Up, true);
var isWalking = _enemyLogic.Value is EnemyLogic.State.Patrolling or EnemyLogic.State.FollowPlayer; var isWalking = _enemyLogic.Value is EnemyLogic.State.Patrolling or EnemyLogic.State.FollowPlayer;
EnemyModelView.RotateModel(GlobalTransform.Basis, -Player.CurrentBasis.Z, isWalking); EnemyModelView.RotateModel(GlobalTransform.Basis, -Player.CurrentBasis.Z, isWalking);
} }
@@ -200,7 +204,7 @@ public partial class Enemy : RigidBody3D, IEnemy, IProvide<IEnemyLogic>
{ {
var rng = new RandomNumberGenerator(); var rng = new RandomNumberGenerator();
rng.Randomize(); rng.Randomize();
var randomizedSpot = new Vector3(rng.RandfRange(-7.0f, 7.0f), 0, rng.RandfRange(-7.0f, 7.0f)); 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.PatrolToRandomSpot(GlobalPosition + randomizedSpot));
_enemyLogic.Input(new EnemyLogic.Input.StartPatrol()); _enemyLogic.Input(new EnemyLogic.Input.StartPatrol());
PatrolTimer.WaitTime = rng.RandfRange(5.0f, 10.0f); PatrolTimer.WaitTime = rng.RandfRange(5.0f, 10.0f);

View File

@@ -84,7 +84,7 @@ public partial class EnemyModelView : Node3D, IEnemyModelView
tweener.TweenCallback(Callable.From(QueueFree)); tweener.TweenCallback(Callable.From(QueueFree));
} }
public void RotateModel(Basis enemyBasis, Vector3 cameraDirection, bool isWalking) => RotateModel(enemyBasis, cameraDirection, 0.85f, 0.3f, isWalking); public void RotateModel(Basis enemyBasis, Vector3 cameraDirection, bool isWalking) => RotateModel(enemyBasis, cameraDirection, 0.55f, 0.45f, isWalking);
public void RotateModel( public void RotateModel(
Basis enemyBasis, Basis enemyBasis,

View File

@@ -24,11 +24,11 @@ public partial class Sproingy : Enemy, IHasPrimaryAttack
{ {
_enemyLogic.Input(new EnemyLogic.Input.PhysicsTick(delta)); _enemyLogic.Input(new EnemyLogic.Input.PhysicsTick(delta));
if (_enemyLogic.Value is EnemyLogic.State.FollowPlayer && GlobalPosition.DistanceTo(Player.CurrentPosition) < 3f) if (_enemyLogic.Value is EnemyLogic.State.FollowPlayer && GlobalPosition.DistanceTo(Player.CurrentPosition) < 3.5f)
_enemyLogic.Input(new EnemyLogic.Input.StartAttacking()); _enemyLogic.Input(new EnemyLogic.Input.StartAttacking());
if (_enemyLogic.Value is EnemyLogic.State.FollowPlayer && GlobalPosition.DistanceTo(Player.CurrentPosition) > 45f) if (_enemyLogic.Value is EnemyLogic.State.FollowPlayer && GlobalPosition.DistanceTo(Player.CurrentPosition) > 30f)
_enemyLogic.Input(new EnemyLogic.Input.LostPlayer()); _enemyLogic.Input(new EnemyLogic.Input.LostPlayer());
if (_enemyLogic.Value is EnemyLogic.State.Attacking && GlobalPosition.DistanceTo(Player.CurrentPosition) > 3f) if (_enemyLogic.Value is EnemyLogic.State.Attacking && GlobalPosition.DistanceTo(Player.CurrentPosition) > 5f)
_enemyLogic.Input(new EnemyLogic.Input.Alerted()); _enemyLogic.Input(new EnemyLogic.Input.Alerted());
} }

View File

@@ -23,8 +23,6 @@ DropsSoulGemChance = 0.75
metadata/_custom_type_script = ExtResource("2_oln85") metadata/_custom_type_script = ExtResource("2_oln85")
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_cwfph"]
radius = 0.3
height = 2.02807
[sub_resource type="CylinderShape3D" id="CylinderShape3D_jbgmx"] [sub_resource type="CylinderShape3D" id="CylinderShape3D_jbgmx"]
height = 5.0 height = 5.0
@@ -33,16 +31,13 @@ radius = 1.0
[sub_resource type="SphereShape3D" id="SphereShape3D_8vcnq"] [sub_resource type="SphereShape3D" id="SphereShape3D_8vcnq"]
radius = 1.20703 radius = 1.20703
[node name="Sproingy" type="RigidBody3D"] [node name="Sproingy" type="CharacterBody3D"]
process_mode = 1 process_mode = 1
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
collision_layer = 10 collision_layer = 10
collision_mask = 11 collision_mask = 3
axis_lock_linear_y = true axis_lock_linear_y = true
axis_lock_angular_x = true axis_lock_angular_x = true
axis_lock_angular_z = true axis_lock_angular_z = true
contact_monitor = true
max_contacts_reported = 1
script = ExtResource("1_xsluo") script = ExtResource("1_xsluo")
_enemyStatResource = SubResource("Resource_oln85") _enemyStatResource = SubResource("Resource_oln85")
@@ -53,9 +48,10 @@ shape = SubResource("CapsuleShape3D_cwfph")
[node name="NavAgent" type="NavigationAgent3D" parent="."] [node name="NavAgent" type="NavigationAgent3D" parent="."]
unique_name_in_owner = true unique_name_in_owner = true
path_desired_distance = 2.0
target_desired_distance = 2.5
avoidance_enabled = true avoidance_enabled = true
radius = 1.5 radius = 1.5
neighbor_distance = 5.0
time_horizon_obstacles = 1.0 time_horizon_obstacles = 1.0
debug_enabled = true debug_enabled = true
debug_use_custom = true debug_use_custom = true

View File

@@ -577,10 +577,8 @@ switch_mode = 2
switch_mode = 2 switch_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_bmy1k"] [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_bmy1k"]
switch_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_mxl7w"] [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_mxl7w"]
switch_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_qq0ru"] [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_qq0ru"]
advance_mode = 2 advance_mode = 2
@@ -664,6 +662,7 @@ switch_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_irq32"] [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_irq32"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_2khaq"] [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_2khaq"]
switch_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_k7x0x"] [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_k7x0x"]
@@ -678,7 +677,7 @@ states/idle_back/position = Vector2(180.116, -34)
states/idle_back_walk/node = SubResource("AnimationNodeAnimation_o0tmb") states/idle_back_walk/node = SubResource("AnimationNodeAnimation_o0tmb")
states/idle_back_walk/position = Vector2(1024, 12.9474) states/idle_back_walk/position = Vector2(1024, 12.9474)
states/idle_front/node = SubResource("AnimationNodeAnimation_d5bmw") states/idle_front/node = SubResource("AnimationNodeAnimation_d5bmw")
states/idle_front/position = Vector2(676, 119) states/idle_front/position = Vector2(644, 532)
states/idle_front_walk/node = SubResource("AnimationNodeAnimation_a6s5c") states/idle_front_walk/node = SubResource("AnimationNodeAnimation_a6s5c")
states/idle_front_walk/position = Vector2(644, -100) states/idle_front_walk/position = Vector2(644, -100)
states/idle_left/node = SubResource("AnimationNodeAnimation_fpvxl") states/idle_left/node = SubResource("AnimationNodeAnimation_fpvxl")
@@ -686,9 +685,9 @@ states/idle_left/position = Vector2(466.116, 119)
states/idle_left_walk/node = SubResource("AnimationNodeAnimation_dvj10") states/idle_left_walk/node = SubResource("AnimationNodeAnimation_dvj10")
states/idle_left_walk/position = Vector2(438, 242.947) states/idle_left_walk/position = Vector2(438, 242.947)
states/primary_attack/node = SubResource("AnimationNodeAnimation_erbrx") states/primary_attack/node = SubResource("AnimationNodeAnimation_erbrx")
states/primary_attack/position = Vector2(1521, 176.947) states/primary_attack/position = Vector2(1760, 309)
transitions = ["idle_front_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_3xv6a"), "idle_left_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_0h1op"), "idle_front_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_361b7"), "idle_back_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_wftla"), "idle_back_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_gqqkl"), "idle_left_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_5cj36"), "idle_front_walk", "primary_attack", SubResource("AnimationNodeStateMachineTransition_4t05h"), "primary_attack", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_8hgxu"), "primary_attack", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_fq2yw"), "primary_attack", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_yqm0k"), "idle_back_walk", "primary_attack", SubResource("AnimationNodeStateMachineTransition_bmy1k"), "idle_left_walk", "primary_attack", SubResource("AnimationNodeStateMachineTransition_mxl7w"), "Start", "idle_front", SubResource("AnimationNodeStateMachineTransition_qq0ru"), "idle_front", "idle_back", SubResource("AnimationNodeStateMachineTransition_c54uj"), "idle_back", "idle_left", SubResource("AnimationNodeStateMachineTransition_qmo72"), "idle_left", "idle_front", SubResource("AnimationNodeStateMachineTransition_jyt1n"), "idle_left", "idle_back", SubResource("AnimationNodeStateMachineTransition_5un2v"), "idle_back", "idle_front", SubResource("AnimationNodeStateMachineTransition_2x3nl"), "idle_front", "idle_left", SubResource("AnimationNodeStateMachineTransition_6a5nw"), "idle_back", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_0jqty"), "idle_front", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_yjcrh"), "idle_back", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_2ybyh"), "idle_left", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_n454k"), "idle_back_walk", "idle_left", SubResource("AnimationNodeStateMachineTransition_vrcjv"), "idle_back_walk", "idle_front", SubResource("AnimationNodeStateMachineTransition_h1yxw"), "idle_back_walk", "idle_back", SubResource("AnimationNodeStateMachineTransition_kg6hd"), "idle_back", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_25i3y"), "idle_left", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_5g722"), "idle_front", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_a6y4x"), "idle_left_walk", "idle_front", SubResource("AnimationNodeStateMachineTransition_7y7m4"), "idle_left_walk", "idle_left", SubResource("AnimationNodeStateMachineTransition_ldcvv"), "idle_left_walk", "idle_back", SubResource("AnimationNodeStateMachineTransition_aalmk"), "idle_front_walk", "idle_back", SubResource("AnimationNodeStateMachineTransition_2le5t"), "idle_front_walk", "idle_front", SubResource("AnimationNodeStateMachineTransition_4nmgu"), "idle_front_walk", "idle_left", SubResource("AnimationNodeStateMachineTransition_mw5r6"), "idle_front", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_jbtxi"), "idle_left", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_mjxlk"), "idle_back", "primary_attack", SubResource("AnimationNodeStateMachineTransition_al2xs"), "primary_attack", "idle_back", SubResource("AnimationNodeStateMachineTransition_afa0q"), "idle_front", "primary_attack", SubResource("AnimationNodeStateMachineTransition_irq32"), "primary_attack", "idle_front", SubResource("AnimationNodeStateMachineTransition_2khaq"), "idle_left", "primary_attack", SubResource("AnimationNodeStateMachineTransition_k7x0x"), "primary_attack", "idle_left", SubResource("AnimationNodeStateMachineTransition_noc6c")] transitions = ["idle_front_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_3xv6a"), "idle_left_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_0h1op"), "idle_front_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_361b7"), "idle_back_walk", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_wftla"), "idle_back_walk", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_gqqkl"), "idle_left_walk", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_5cj36"), "idle_front_walk", "primary_attack", SubResource("AnimationNodeStateMachineTransition_4t05h"), "primary_attack", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_8hgxu"), "primary_attack", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_fq2yw"), "primary_attack", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_yqm0k"), "idle_back_walk", "primary_attack", SubResource("AnimationNodeStateMachineTransition_bmy1k"), "idle_left_walk", "primary_attack", SubResource("AnimationNodeStateMachineTransition_mxl7w"), "Start", "idle_front", SubResource("AnimationNodeStateMachineTransition_qq0ru"), "idle_front", "idle_back", SubResource("AnimationNodeStateMachineTransition_c54uj"), "idle_back", "idle_left", SubResource("AnimationNodeStateMachineTransition_qmo72"), "idle_left", "idle_front", SubResource("AnimationNodeStateMachineTransition_jyt1n"), "idle_left", "idle_back", SubResource("AnimationNodeStateMachineTransition_5un2v"), "idle_back", "idle_front", SubResource("AnimationNodeStateMachineTransition_2x3nl"), "idle_front", "idle_left", SubResource("AnimationNodeStateMachineTransition_6a5nw"), "idle_back", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_0jqty"), "idle_front", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_yjcrh"), "idle_back", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_2ybyh"), "idle_left", "idle_back_walk", SubResource("AnimationNodeStateMachineTransition_n454k"), "idle_back_walk", "idle_left", SubResource("AnimationNodeStateMachineTransition_vrcjv"), "idle_back_walk", "idle_front", SubResource("AnimationNodeStateMachineTransition_h1yxw"), "idle_back_walk", "idle_back", SubResource("AnimationNodeStateMachineTransition_kg6hd"), "idle_back", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_25i3y"), "idle_left", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_5g722"), "idle_front", "idle_left_walk", SubResource("AnimationNodeStateMachineTransition_a6y4x"), "idle_left_walk", "idle_front", SubResource("AnimationNodeStateMachineTransition_7y7m4"), "idle_left_walk", "idle_left", SubResource("AnimationNodeStateMachineTransition_ldcvv"), "idle_left_walk", "idle_back", SubResource("AnimationNodeStateMachineTransition_aalmk"), "idle_front_walk", "idle_back", SubResource("AnimationNodeStateMachineTransition_2le5t"), "idle_front_walk", "idle_front", SubResource("AnimationNodeStateMachineTransition_4nmgu"), "idle_front_walk", "idle_left", SubResource("AnimationNodeStateMachineTransition_mw5r6"), "idle_front", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_jbtxi"), "idle_left", "idle_front_walk", SubResource("AnimationNodeStateMachineTransition_mjxlk"), "idle_back", "primary_attack", SubResource("AnimationNodeStateMachineTransition_al2xs"), "primary_attack", "idle_back", SubResource("AnimationNodeStateMachineTransition_afa0q"), "idle_front", "primary_attack", SubResource("AnimationNodeStateMachineTransition_irq32"), "primary_attack", "idle_front", SubResource("AnimationNodeStateMachineTransition_2khaq"), "idle_left", "primary_attack", SubResource("AnimationNodeStateMachineTransition_k7x0x"), "primary_attack", "idle_left", SubResource("AnimationNodeStateMachineTransition_noc6c")]
graph_offset = Vector2(-124.884, 28.2972) graph_offset = Vector2(495.706, -34.8579)
[node name="EnemyModelView" type="Node3D"] [node name="EnemyModelView" type="Node3D"]
script = ExtResource("1_0vbio") script = ExtResource("1_0vbio")

View File

@@ -27,18 +27,19 @@ height = 5.0
radius = 1.0 radius = 1.0
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_0h5s2"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_0h5s2"]
radius = 0.3 height = 2.66932
[sub_resource type="SphereShape3D" id="SphereShape3D_wrps7"] [sub_resource type="SphereShape3D" id="SphereShape3D_wrps7"]
radius = 1.0 radius = 1.0
[node name="Michael" type="RigidBody3D"] [node name="Michael" type="CharacterBody3D"]
process_mode = 1 process_mode = 1
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
collision_layer = 10 collision_layer = 10
collision_mask = 11 collision_mask = 11
axis_lock_linear_y = true axis_lock_linear_y = true
axis_lock_angular_x = true axis_lock_angular_x = true
axis_lock_angular_z = true
motion_mode = 1
script = ExtResource("1_wfjxm") script = ExtResource("1_wfjxm")
_enemyStatResource = SubResource("Resource_xhsah") _enemyStatResource = SubResource("Resource_xhsah")
@@ -76,6 +77,8 @@ shape = SubResource("CapsuleShape3D_0h5s2")
[node name="NavAgent" type="NavigationAgent3D" parent="."] [node name="NavAgent" type="NavigationAgent3D" parent="."]
unique_name_in_owner = true unique_name_in_owner = true
path_postprocessing = 2 path_postprocessing = 2
simplify_path = true
simplify_epsilon = 1.0
avoidance_enabled = true avoidance_enabled = true
radius = 5.0 radius = 5.0
debug_enabled = true debug_enabled = true

File diff suppressed because one or more lines are too long

View File

@@ -777,6 +777,14 @@ shape = SubResource("BoxShape3D_phhs1")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.66204, -0.677457, 94.7863) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.66204, -0.677457, 94.7863)
shape = SubResource("BoxShape3D_phhs1") shape = SubResource("BoxShape3D_phhs1")
[node name="CollisionShape3D9" type="CollisionShape3D" parent="Antechamber A/StaticBody3D2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.41592, -0.677457, 78.7059)
shape = SubResource("BoxShape3D_phhs1")
[node name="CollisionShape3D10" type="CollisionShape3D" parent="Antechamber A/StaticBody3D2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.24982, -0.677457, 78.8461)
shape = SubResource("BoxShape3D_phhs1")
[node name="CSGBox3D" type="CSGBox3D" parent="."] [node name="CSGBox3D" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0314088, 4.23029, -0.0385468) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0314088, 4.23029, -0.0385468)
visible = false visible = false

View File

@@ -497,7 +497,7 @@ blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_p4f4g") shadow_mesh = SubResource("ArrayMesh_p4f4g")
[sub_resource type="BoxShape3D" id="BoxShape3D_gbjb2"] [sub_resource type="BoxShape3D" id="BoxShape3D_gbjb2"]
size = Vector3(4.40063, 4, 1.67725) size = Vector3(4.40063, 4, 1.72632)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lepkf"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_lepkf"]
transparency = 1 transparency = 1
@@ -707,6 +707,8 @@ mesh = SubResource("ArrayMesh_pjk1a")
skeleton = NodePath("") skeleton = NodePath("")
[node name="StaticBody3D" type="StaticBody3D" parent="18_A1_CORRIDOR_A"] [node name="StaticBody3D" type="StaticBody3D" parent="18_A1_CORRIDOR_A"]
collision_layer = 2147483649
collision_mask = 2147483649
[node name="CollisionShape3D" type="CollisionShape3D" parent="18_A1_CORRIDOR_A/StaticBody3D"] [node name="CollisionShape3D" type="CollisionShape3D" parent="18_A1_CORRIDOR_A/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.7192, 2.25405, -0.816737) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11.7192, 2.25405, -0.816737)
@@ -740,7 +742,7 @@ collision_layer = 2147483648
collision_mask = 2147483648 collision_mask = 2147483648
[node name="CollisionShape3D" type="CollisionShape3D" parent="DOOR?_F_CUT/StaticBody3D"] [node name="CollisionShape3D" type="CollisionShape3D" parent="DOOR?_F_CUT/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0286865, 0, 0.463623) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0286865, 0, 0.439088)
shape = SubResource("BoxShape3D_gbjb2") shape = SubResource("BoxShape3D_gbjb2")
[node name="DOOR?_R_CUT" type="CSGBox3D" parent="."] [node name="DOOR?_R_CUT" type="CSGBox3D" parent="."]

View File

@@ -20,6 +20,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.791832, 0)
[node name="Sproingy" parent="." instance=ExtResource("2_3keei")] [node name="Sproingy" parent="." instance=ExtResource("2_3keei")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.64783, -11.9575) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.64783, -11.9575)
motion_mode = 1
[node name="NavigationRegion3D" type="NavigationRegion3D" parent="."] [node name="NavigationRegion3D" type="NavigationRegion3D" parent="."]
navigation_mesh = SubResource("NavigationMesh_3keei") navigation_mesh = SubResource("NavigationMesh_3keei")