Minor fixes to navigation
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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="."]
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
Reference in New Issue
Block a user