Add debug floors, fix boss battle A crashes (need to reimplement the fight anyway)
This commit is contained in:
@@ -4,31 +4,104 @@ using Godot;
|
||||
using System.Collections.Generic;
|
||||
using System;
|
||||
using Zennysoft.Ma.Adapter;
|
||||
using System.Linq;
|
||||
using Chickensoft.Collections;
|
||||
|
||||
namespace Zennysoft.Game.Ma;
|
||||
|
||||
[Meta(typeof(IAutoNode))]
|
||||
public partial class BossTypeA : Enemy, IHasPrimaryAttack, IHasSecondaryAttack, ICanActivate
|
||||
public partial class BossTypeA : CharacterBody3D, IEnemy, IHasPrimaryAttack, IHasSecondaryAttack, ICanActivate, IProvide<IEnemyLogic>
|
||||
{
|
||||
public override void _Notification(int what) => this.Notify(what);
|
||||
|
||||
protected IEnemyLogic _enemyLogic { get; set; } = default!;
|
||||
|
||||
IEnemyLogic IProvide<IEnemyLogic>.Value() => _enemyLogic;
|
||||
|
||||
public EnemyLogic.IBinding EnemyBinding { get; set; } = default!;
|
||||
|
||||
|
||||
[Dependency] protected IPlayer _player => this.DependOn(() => GetParent().GetChildren().OfType<IPlayer>().Single());
|
||||
|
||||
[Export]
|
||||
public ElementType PrimaryAttackElementalType { get; set; } = ElementType.None;
|
||||
[Export]
|
||||
public double PrimaryAttackElementalDamageBonus { get; set; } = 1.0;
|
||||
|
||||
[Export] protected EnemyStatResource _enemyStatResource { get; set; } = default!;
|
||||
|
||||
public ElementType SecondaryAttackElementalType { get; set; } = ElementType.None;
|
||||
|
||||
public double SecondaryAttackElementalDamageBonus { get; set; } = 1.0;
|
||||
|
||||
[Node] public new BossTypeAEnemyModelView _enemyModelView { get; set; }
|
||||
[Node] public BossTypeAEnemyModelView _enemyModelView { get; set; }
|
||||
|
||||
[Node] public CollisionShape3D EnemyHitbox { get; set; } = default!;
|
||||
|
||||
[Node] private Node3D _rotation { get; set; } = default!;
|
||||
|
||||
[Node] protected Timer _attackTimer { get; set; } = default!;
|
||||
|
||||
[Node] private CollisionShape3D _collisionShape { get; set; } = default!;
|
||||
|
||||
private Vector3 _target;
|
||||
|
||||
private float _movementSpeed = 2.0f;
|
||||
|
||||
public AutoProp<double> CurrentHP { get; set; }
|
||||
|
||||
private DamageCalculator _damageCalculator;
|
||||
|
||||
public void Setup()
|
||||
{
|
||||
_enemyLogic = new EnemyLogic();
|
||||
_enemyLogic.Set(_enemyStatResource);
|
||||
_enemyLogic.Set(this as IEnemy);
|
||||
_enemyLogic.Set(_player);
|
||||
_damageCalculator = new DamageCalculator();
|
||||
SetPhysicsProcess(true);
|
||||
}
|
||||
|
||||
public void OnResolved()
|
||||
{
|
||||
EnemyBinding = _enemyLogic.Bind();
|
||||
|
||||
EnemyBinding
|
||||
.Handle((in EnemyLogic.Output.TakeAction _) =>
|
||||
{
|
||||
TakeAction();
|
||||
})
|
||||
.Handle((in EnemyLogic.Output.Defeated output) =>
|
||||
{
|
||||
});
|
||||
|
||||
this.Provide();
|
||||
|
||||
_enemyLogic.Start();
|
||||
|
||||
CurrentHP = new AutoProp<double>(_enemyStatResource.MaximumHP);
|
||||
CurrentHP.Sync += OnHPChanged;
|
||||
}
|
||||
|
||||
private void OnHPChanged(double newHP)
|
||||
{
|
||||
if (newHP <= 0)
|
||||
Die();
|
||||
}
|
||||
|
||||
public virtual void Die()
|
||||
{
|
||||
SetProcess(false);
|
||||
_movementSpeed = 0;
|
||||
CurrentHP.OnNext(0);
|
||||
_enemyLogic.Input(new EnemyLogic.Input.EnemyDefeated());
|
||||
_collisionShape.SetDeferred("disabled", true);
|
||||
_enemyModelView.PlayDeathAnimation();
|
||||
var tweener = CreateTween();
|
||||
tweener.TweenInterval(1.0f);
|
||||
tweener.TweenCallback(Callable.From(QueueFree));
|
||||
}
|
||||
|
||||
public void OnReady()
|
||||
{
|
||||
_target = GlobalPosition;
|
||||
@@ -71,7 +144,7 @@ public partial class BossTypeA : Enemy, IHasPrimaryAttack, IHasSecondaryAttack,
|
||||
}
|
||||
}
|
||||
|
||||
public override void TakeAction()
|
||||
public void TakeAction()
|
||||
{
|
||||
var rng = new RandomNumberGenerator();
|
||||
var options = new List<Action>() { PrimaryAttack, SecondaryAttack };
|
||||
@@ -89,18 +162,20 @@ public partial class BossTypeA : Enemy, IHasPrimaryAttack, IHasSecondaryAttack,
|
||||
_enemyModelView.PlaySecondaryAttackAnimation();
|
||||
}
|
||||
|
||||
public override void StartAttackTimer()
|
||||
public void StartAttackTimer()
|
||||
{
|
||||
_attackTimer.Timeout += OnAttackTimeout;
|
||||
}
|
||||
|
||||
public override void StopAttackTimer()
|
||||
public void StopAttackTimer()
|
||||
{
|
||||
if (_attackTimer.TimeLeft > 0)
|
||||
_attackTimer.Timeout -= OnAttackTimeout;
|
||||
}
|
||||
|
||||
public override void SetTarget(Vector3 target) => _target = target;
|
||||
|
||||
|
||||
public void SetTarget(Vector3 target) => _target = target;
|
||||
|
||||
private void Hitbox_AreaEntered(Area3D area)
|
||||
{
|
||||
@@ -112,10 +187,14 @@ public partial class BossTypeA : Enemy, IHasPrimaryAttack, IHasSecondaryAttack,
|
||||
}
|
||||
}
|
||||
|
||||
public void StartFight()
|
||||
{
|
||||
_enemyLogic.Input(new EnemyLogic.Input.Alerted());
|
||||
}
|
||||
|
||||
public void Activate()
|
||||
{
|
||||
Show();
|
||||
_enemyLogic.Input(new EnemyLogic.Input.Alerted());
|
||||
EnemyHitbox.SetDeferred(CollisionShape3D.PropertyName.Disabled, false);
|
||||
}
|
||||
|
||||
@@ -156,4 +235,13 @@ public partial class BossTypeA : Enemy, IHasPrimaryAttack, IHasSecondaryAttack,
|
||||
CurrentHP.OnCompleted();
|
||||
StopAttackTimer();
|
||||
}
|
||||
|
||||
public void Move(Vector3 velocity) => throw new NotImplementedException();
|
||||
public void TakeDamage(double damage, ElementType elementType = ElementType.None, bool isCriticalHit = false, bool ignoreDefense = false, bool ignoreElementalResistance = false) => throw new NotImplementedException();
|
||||
public void Knockback(float impulse, Vector3 direction) => throw new NotImplementedException();
|
||||
public void SetCurrentHP(int newHP) => throw new NotImplementedException();
|
||||
public int GetMaximumHP() => throw new NotImplementedException();
|
||||
public void SetEnemyGlobalPosition(Vector3 target) => throw new NotImplementedException();
|
||||
public Vector3 GetEnemyGlobalPosition() => throw new NotImplementedException();
|
||||
public IDungeonRoom GetCurrentRoom() => throw new NotImplementedException();
|
||||
}
|
||||
|
||||
@@ -37,11 +37,11 @@ public partial class Enemy : CharacterBody3D, IEnemy, IProvide<IEnemyLogic>
|
||||
#region Node Dependencies
|
||||
[Node] private CollisionShape3D _collisionShape { get; set; } = default!;
|
||||
|
||||
[Node] private Area3D _lineOfSight { get; set; } = default!;
|
||||
[Node] private Area3D LineOfSight { get; set; } = default!;
|
||||
|
||||
[Node] protected Timer _attackTimer { get; set; } = default!;
|
||||
|
||||
[Node] private RayCast3D _raycast { get; set; } = default!;
|
||||
[Node] private RayCast3D Raycast { get; set; } = default!;
|
||||
|
||||
[Node] protected IEnemyModelView _enemyModelView { get; set; } = default!;
|
||||
#endregion
|
||||
@@ -86,7 +86,7 @@ public partial class Enemy : CharacterBody3D, IEnemy, IProvide<IEnemyLogic>
|
||||
|
||||
CurrentHP = new AutoProp<double>(_enemyStatResource.MaximumHP);
|
||||
CurrentHP.Sync += OnHPChanged;
|
||||
_lineOfSight.BodyEntered += LineOfSight_BodyEntered;
|
||||
LineOfSight.BodyEntered += LineOfSight_BodyEntered;
|
||||
}
|
||||
|
||||
public override void _Process(double delta)
|
||||
@@ -233,18 +233,18 @@ public partial class Enemy : CharacterBody3D, IEnemy, IProvide<IEnemyLogic>
|
||||
|
||||
private void LineOfSight_BodyEntered(Node3D body)
|
||||
{
|
||||
var overlappingBodies = _lineOfSight.GetOverlappingBodies();
|
||||
var overlappingBodies = LineOfSight.GetOverlappingBodies();
|
||||
foreach (var _ in overlappingBodies)
|
||||
{
|
||||
if (_raycast.GlobalPosition != _player.CurrentPosition)
|
||||
_raycast.LookAt(_player.CurrentPosition, Vector3.Up);
|
||||
_raycast.ForceRaycastUpdate();
|
||||
if (_raycast.IsColliding())
|
||||
if (Raycast.GlobalPosition != _player.CurrentPosition)
|
||||
Raycast.LookAt(_player.CurrentPosition, Vector3.Up);
|
||||
Raycast.ForceRaycastUpdate();
|
||||
if (Raycast.IsColliding())
|
||||
{
|
||||
var collider = _raycast.GetCollider();
|
||||
var collider = Raycast.GetCollider();
|
||||
if (collider is IPlayer)
|
||||
{
|
||||
_raycast.DebugShapeCustomColor = Color.FromString("Purple", Colors.Purple);
|
||||
Raycast.DebugShapeCustomColor = Color.FromString("Purple", Colors.Purple);
|
||||
_enemyLogic.Input(new EnemyLogic.Input.Alerted());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,5 +98,8 @@ public partial class EnemyModelView3D : Node3D, IEnemyModelView
|
||||
AnimationTree.Get(PARAMETERS_PLAYBACK).As<AnimationNodeStateMachinePlayback>().Stop();
|
||||
}
|
||||
|
||||
public void SetCurrentDirection(Basis enemyBasis, Vector3 cameraDirection) => throw new System.NotImplementedException();
|
||||
public void SetCurrentDirection(Basis enemyBasis, Vector3 cameraDirection)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://2wibfnu2jvlv"]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://2wibfnu2jvlv"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dveonnhcxcp08" path="res://src/enemy/BossTypeA.cs" id="1_x21p4"]
|
||||
[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="2_jl3qa"]
|
||||
@@ -14,11 +14,11 @@ MaxAttack = 0
|
||||
MaxDefense = 0
|
||||
ExpFromDefeat = 0
|
||||
Luck = 0.05
|
||||
TelluricResistance = 0.0
|
||||
AeolicResistance = 0.0
|
||||
HydricResistance = 0.0
|
||||
IgneousResistance = 0.0
|
||||
FerrumResistance = 0.0
|
||||
_telluricResistance = 0.0
|
||||
_aeolicResistance = 0.0
|
||||
_hydricResistance = 0.0
|
||||
_igneousResistance = 0.0
|
||||
_ferrumResistance = 0.0
|
||||
DropsSoulGemChance = 0.75
|
||||
metadata/_custom_type_script = "uid://dnkmr0eq1sij0"
|
||||
|
||||
@@ -26,9 +26,6 @@ metadata/_custom_type_script = "uid://dnkmr0eq1sij0"
|
||||
radius = 10.3283
|
||||
height = 50.0
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_x21p4"]
|
||||
radius = 1.0
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_jl3qa"]
|
||||
radius = 15.426
|
||||
|
||||
@@ -40,7 +37,10 @@ axis_lock_angular_x = true
|
||||
axis_lock_angular_y = true
|
||||
motion_mode = 1
|
||||
script = ExtResource("1_x21p4")
|
||||
PrimaryAttackElementalType = null
|
||||
PrimaryAttackElementalDamageBonus = null
|
||||
_enemyStatResource = SubResource("Resource_jl3qa")
|
||||
_movementSpeed = null
|
||||
|
||||
[node name="CollisionShape" type="CollisionShape3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
@@ -53,15 +53,6 @@ wait_time = 3.5
|
||||
[node name="EnemyModelView" parent="." instance=ExtResource("2_x21p4")]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="LineOfSight" type="Area3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="LineOfSight"]
|
||||
shape = SubResource("SphereShape3D_x21p4")
|
||||
|
||||
[node name="Raycast" type="RayCast3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="Collision" type="Area3D" parent="."]
|
||||
collision_layer = 2048
|
||||
collision_mask = 0
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=35 format=4 uid="uid://bid6f48l0q58o"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://ckv5dmrw6pvn6" path="res://src/enemy/EnemyModelView3D.cs" id="1_q3bfl"]
|
||||
[ext_resource type="Script" uid="uid://bvcfww5827g74" path="res://src/enemy/enemy_types/BossTypeAEnemyModelView.cs" id="1_q3bfl"]
|
||||
[ext_resource type="Texture2D" uid="uid://2e4cp477ex0t" path="res://src/enemy/enemy_types/14. horse_head/animation/Horse Head 1_Metal054C_1K-JPG_Color.jpg" id="1_vv6g0"]
|
||||
[ext_resource type="Animation" uid="uid://bhsp32c05j2o5" path="res://src/enemy/enemy_types/14. horse_head/animation/walking.res" id="2_yvw71"]
|
||||
[ext_resource type="Animation" uid="uid://ccq41qrm1lduk" path="res://src/enemy/enemy_types/14. horse_head/animation/walking2.res" id="3_bkc4x"]
|
||||
@@ -950,7 +950,7 @@ bones/0/name = "spine1"
|
||||
bones/0/parent = -1
|
||||
bones/0/rest = Transform3D(1.49012e-06, 0.00846654, -0.999964, 2.93367e-08, 0.999964, 0.00846654, 1, -4.23752e-08, 1.49012e-06, 0.000155807, -0.00105953, -2.01735)
|
||||
bones/0/enabled = true
|
||||
bones/0/position = Vector3(0.0996386, -0.283223, -1.53144)
|
||||
bones/0/position = Vector3(0.0996386, -0.431243, -1.53144)
|
||||
bones/0/rotation = Quaternion(0.0256267, -0.805691, 0.0118477, 0.591662)
|
||||
bones/0/scale = Vector3(1, 1, 1)
|
||||
bones/1/name = "spine0"
|
||||
@@ -979,7 +979,7 @@ bones/4/parent = 3
|
||||
bones/4/rest = Transform3D(0.901905, -0.410135, 0.135488, 0.412416, 0.910915, 0.0120912, -0.128377, 0.0449723, 0.990705, 2.5332e-07, 0.990515, -7.07805e-08)
|
||||
bones/4/enabled = true
|
||||
bones/4/position = Vector3(2.5332e-07, 0.990515, -7.07805e-08)
|
||||
bones/4/rotation = Quaternion(0.00753206, 0.0671297, 0.209216, 0.975534)
|
||||
bones/4/rotation = Quaternion(-0.00605913, 0.0592422, 0.183905, 0.981138)
|
||||
bones/4/scale = Vector3(1, 1, 1)
|
||||
bones/5/name = "neck4"
|
||||
bones/5/parent = 4
|
||||
@@ -993,7 +993,7 @@ bones/6/parent = 5
|
||||
bones/6/rest = Transform3D(0.0598389, 0.98531, 0.15995, -0.975271, 0.0235553, 0.219755, 0.212759, -0.169144, 0.962353, 3.65078e-07, 1.40318, 0)
|
||||
bones/6/enabled = true
|
||||
bones/6/position = Vector3(3.65078e-07, 1.40318, 0)
|
||||
bones/6/rotation = Quaternion(-0.342657, 0.0520706, -0.493702, 0.79758)
|
||||
bones/6/rotation = Quaternion(-0.327511, 0.0506271, -0.45109, 0.828668)
|
||||
bones/6/scale = Vector3(1, 1, 1)
|
||||
bones/7/name = "Bone.007"
|
||||
bones/7/parent = 6
|
||||
@@ -1028,7 +1028,7 @@ bones/11/parent = 1
|
||||
bones/11/rest = Transform3D(0.981457, 0.0769315, -0.175568, 0.18837, -0.217537, 0.957703, 0.035485, -0.973015, -0.227995, -1.09896e-07, 3.84743, -2.10479e-07)
|
||||
bones/11/enabled = true
|
||||
bones/11/position = Vector3(-1.09896e-07, 3.84743, -2.10479e-07)
|
||||
bones/11/rotation = Quaternion(-0.806279, -0.0801045, -0.0234975, 0.585615)
|
||||
bones/11/rotation = Quaternion(-0.814088, -0.0947363, -0.0238342, 0.572467)
|
||||
bones/11/scale = Vector3(1, 1, 1)
|
||||
bones/12/name = "arm2_L"
|
||||
bones/12/parent = 11
|
||||
@@ -1055,7 +1055,7 @@ bones/15/name = "arm1_R"
|
||||
bones/15/parent = 1
|
||||
bones/15/rest = Transform3D(-0.98213, 0.0512573, -0.181089, -0.187541, -0.185921, 0.964501, 0.0157694, 0.981227, 0.192212, 0.00107862, 3.8461, -0.0821097)
|
||||
bones/15/enabled = true
|
||||
bones/15/position = Vector3(-0.2018, 3.64477, 0.0766737)
|
||||
bones/15/position = Vector3(-0.169433, 3.39586, 0.123739)
|
||||
bones/15/rotation = Quaternion(-0.502686, 0.531044, 0.680821, -0.0422068)
|
||||
bones/15/scale = Vector3(1, 1, 1)
|
||||
bones/16/name = "arm2_R"
|
||||
@@ -1070,7 +1070,7 @@ bones/17/parent = 16
|
||||
bones/17/rest = Transform3D(0.998789, 0.0488077, -0.00615137, -0.0491113, 0.996528, -0.0672226, 0.00284903, 0.0674433, 0.997719, -5.21541e-08, 3.04263, -1.31503e-06)
|
||||
bones/17/enabled = true
|
||||
bones/17/position = Vector3(-5.21541e-08, 3.04263, -1.31503e-06)
|
||||
bones/17/rotation = Quaternion(-0.0450407, 0.0973271, 0.265229, 0.958203)
|
||||
bones/17/rotation = Quaternion(-0.00861264, 0.0960594, 0.277881, 0.955762)
|
||||
bones/17/scale = Vector3(1, 1, 1)
|
||||
bones/18/name = "hand_R"
|
||||
bones/18/parent = 17
|
||||
@@ -1083,7 +1083,7 @@ bones/19/name = "hip_L"
|
||||
bones/19/parent = -1
|
||||
bones/19/rest = Transform3D(0.138486, 0.897208, 0.419333, -0.129033, -0.403458, 0.905854, 0.981923, -0.179556, 0.059896, 0.000155807, -0.00105953, -2.01735)
|
||||
bones/19/enabled = true
|
||||
bones/19/position = Vector3(0.147751, -0.284407, -1.49267)
|
||||
bones/19/position = Vector3(0.147751, -0.370067, -1.49267)
|
||||
bones/19/rotation = Quaternion(0.427793, 0.34021, 0.687061, -0.478745)
|
||||
bones/19/scale = Vector3(1, 1, 1)
|
||||
bones/20/name = "leg1_L"
|
||||
@@ -1091,14 +1091,14 @@ bones/20/parent = 19
|
||||
bones/20/rest = Transform3D(0.945603, 0.113405, 0.304916, -0.324072, 0.410457, 0.852351, -0.0284943, -0.9048, 0.424881, 2.08616e-07, 2.00996, -7.1153e-07)
|
||||
bones/20/enabled = true
|
||||
bones/20/position = Vector3(2.08616e-07, 2.00996, -7.1153e-07)
|
||||
bones/20/rotation = Quaternion(-0.437674, -0.325425, -0.369556, 0.752309)
|
||||
bones/20/rotation = Quaternion(-0.433786, -0.330242, -0.375496, 0.749515)
|
||||
bones/20/scale = Vector3(1, 1, 1)
|
||||
bones/21/name = "leg2_L"
|
||||
bones/21/parent = 20
|
||||
bones/21/rest = Transform3D(0.990336, -0.138679, 0.00180777, 0.138628, 0.990193, 0.0173138, -0.00419111, -0.0168959, 0.999848, 5.96046e-08, 5.85994, -5.23403e-07)
|
||||
bones/21/enabled = true
|
||||
bones/21/position = Vector3(5.96046e-08, 5.85994, -5.23403e-07)
|
||||
bones/21/rotation = Quaternion(-0.0475515, 0.00188972, 0.380368, 0.92361)
|
||||
bones/21/rotation = Quaternion(-0.0494072, 0.00187672, 0.395211, 0.917259)
|
||||
bones/21/scale = Vector3(1, 1, 1)
|
||||
bones/22/name = "foot1_L"
|
||||
bones/22/parent = 21
|
||||
@@ -1132,7 +1132,7 @@ bones/26/name = "hip_R"
|
||||
bones/26/parent = -1
|
||||
bones/26/rest = Transform3D(0.138486, -0.897208, -0.419333, 0.129033, -0.403458, 0.905854, -0.981923, -0.179556, 0.059896, -0.000155807, -0.00105953, -2.01735)
|
||||
bones/26/enabled = true
|
||||
bones/26/position = Vector3(0.0289172, -0.299562, -1.59603)
|
||||
bones/26/position = Vector3(0.0289172, -0.356669, -1.59603)
|
||||
bones/26/rotation = Quaternion(0.695067, -0.09936, -0.377924, -0.603475)
|
||||
bones/26/scale = Vector3(1, 1, 1)
|
||||
bones/27/name = "leg1_R"
|
||||
@@ -1140,14 +1140,14 @@ bones/27/parent = 26
|
||||
bones/27/rest = Transform3D(0.945603, -0.113405, -0.304916, 0.324072, 0.410457, 0.852351, 0.0284943, -0.9048, 0.424881, -9.54606e-09, 2.00996, -3.52971e-07)
|
||||
bones/27/enabled = true
|
||||
bones/27/position = Vector3(-9.54606e-09, 2.00996, -3.52971e-07)
|
||||
bones/27/rotation = Quaternion(-0.317513, 0.174091, 0.183894, 0.913816)
|
||||
bones/27/rotation = Quaternion(-0.312012, 0.178024, 0.184282, 0.914875)
|
||||
bones/27/scale = Vector3(1, 1, 1)
|
||||
bones/28/name = "leg2_R"
|
||||
bones/28/parent = 27
|
||||
bones/28/rest = Transform3D(0.990336, 0.138679, -0.00180777, -0.138628, 0.990193, 0.0173138, 0.00419111, -0.0168959, 0.999848, 4.51691e-08, 5.85994, -3.72529e-09)
|
||||
bones/28/enabled = true
|
||||
bones/28/position = Vector3(4.51691e-08, 5.85994, -3.72529e-09)
|
||||
bones/28/rotation = Quaternion(-0.268209, 0.0202209, -0.175002, 0.947116)
|
||||
bones/28/rotation = Quaternion(-0.278231, 0.0201328, -0.181542, 0.942987)
|
||||
bones/28/scale = Vector3(1, 1, 1)
|
||||
bones/29/name = "foot1_R"
|
||||
bones/29/parent = 28
|
||||
@@ -1184,7 +1184,7 @@ mesh = SubResource("ArrayMesh_6e63x")
|
||||
skin = SubResource("Skin_yvw71")
|
||||
|
||||
[node name="BoneAttachment3D" type="BoneAttachment3D" parent="Armature/Skeleton3D"]
|
||||
transform = Transform3D(-0.370165, -0.13327, -0.919357, -0.259654, -0.935368, 0.240137, -0.89194, 0.327605, 0.311637, -2.00356, 8.78341, 6.14536)
|
||||
transform = Transform3D(-0.370164, -0.13327, -0.919357, -0.303186, -0.918133, 0.255165, -0.878098, 0.373189, 0.299455, -2.00357, 8.72165, 6.32816)
|
||||
bone_name = "TOP OF SKULL"
|
||||
bone_idx = 8
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://6dnsw37d1uw4"]
|
||||
[gd_scene load_steps=7 format=3 uid="uid://6dnsw37d1uw4"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dveonnhcxcp08" path="res://src/enemy/BossTypeA.cs" id="1_v6b2s"]
|
||||
[ext_resource type="Script" uid="uid://dnkmr0eq1sij0" path="res://src/enemy/EnemyStatResource.cs" id="2_j7u30"]
|
||||
@@ -26,9 +26,6 @@ metadata/_custom_type_script = "uid://dnkmr0eq1sij0"
|
||||
radius = 12.4931
|
||||
height = 50.0
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_v6b2s"]
|
||||
radius = 1.0
|
||||
|
||||
[sub_resource type="SphereShape3D" id="SphereShape3D_j7u30"]
|
||||
radius = 15.426
|
||||
|
||||
@@ -57,15 +54,6 @@ unique_name_in_owner = true
|
||||
unique_name_in_owner = true
|
||||
wait_time = 3.5
|
||||
|
||||
[node name="LineOfSight" type="Area3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="LineOfSight"]
|
||||
shape = SubResource("SphereShape3D_v6b2s")
|
||||
|
||||
[node name="Raycast" type="RayCast3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="Collision" type="Area3D" parent="."]
|
||||
collision_layer = 2048
|
||||
collision_mask = 0
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
[gd_scene load_steps=25 format=4 uid="uid://dnomfbym36ivg"]
|
||||
[gd_scene load_steps=26 format=4 uid="uid://dnomfbym36ivg"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://ckv5dmrw6pvn6" path="res://src/enemy/EnemyModelView3D.cs" id="1_6miqu"]
|
||||
[ext_resource type="Script" uid="uid://bvcfww5827g74" path="res://src/enemy/enemy_types/BossTypeAEnemyModelView.cs" id="1_f2iok"]
|
||||
[ext_resource type="Texture2D" uid="uid://dp6hwvuhfkji8" path="res://src/enemy/enemy_types/15. ox_face/models/OX FACE_Metal054C_1K-JPG_Color.jpg" id="1_lsf8e"]
|
||||
[ext_resource type="AnimationLibrary" uid="uid://dn4501qsypsu" path="res://src/enemy/enemy_types/14. horse_head/animation/OxFaceAnimations.tres" id="3_pmgg3"]
|
||||
[ext_resource type="Script" uid="uid://6edayafleq8y" path="res://src/hitbox/Hitbox.cs" id="5_f2iok"]
|
||||
@@ -190,7 +191,7 @@ graph_offset = Vector2(0, -71.1111)
|
||||
size = Vector3(5, 24.0327, 5.50244)
|
||||
|
||||
[node name="EnemyModelView" type="Node3D"]
|
||||
script = ExtResource("1_6miqu")
|
||||
script = ExtResource("1_f2iok")
|
||||
|
||||
[node name="Armature" type="Node3D" parent="."]
|
||||
script = ExtResource("1_6miqu")
|
||||
@@ -200,7 +201,7 @@ bones/0/name = "spine1"
|
||||
bones/0/parent = -1
|
||||
bones/0/rest = Transform3D(1.49012e-06, 0.00846654, -0.999964, 2.93367e-08, 0.999964, 0.00846654, 1, -4.23752e-08, 1.49012e-06, 0.000155807, -0.00105953, -2.01735)
|
||||
bones/0/enabled = true
|
||||
bones/0/position = Vector3(-0.259488, -0.96383, -1.97376)
|
||||
bones/0/position = Vector3(-0.260305, -1.05722, -1.96747)
|
||||
bones/0/rotation = Quaternion(0.0915277, -0.692111, -0.0341586, 0.715149)
|
||||
bones/0/scale = Vector3(1, 1, 1)
|
||||
bones/1/name = "spine0"
|
||||
@@ -243,7 +244,7 @@ bones/6/parent = 5
|
||||
bones/6/rest = Transform3D(0.0598389, 0.98531, 0.15995, -0.975271, 0.0235553, 0.219755, 0.212759, -0.169144, 0.962353, 3.65078e-07, 1.40318, 0)
|
||||
bones/6/enabled = true
|
||||
bones/6/position = Vector3(3.65078e-07, 1.40318, 0)
|
||||
bones/6/rotation = Quaternion(-0.0697867, -0.302352, -0.744713, 0.59086)
|
||||
bones/6/rotation = Quaternion(-0.0493826, -0.294897, -0.744216, 0.597277)
|
||||
bones/6/scale = Vector3(1, 1, 1)
|
||||
bones/7/name = "Bone.007"
|
||||
bones/7/parent = 6
|
||||
@@ -278,7 +279,7 @@ bones/11/parent = 1
|
||||
bones/11/rest = Transform3D(0.981457, 0.0769315, -0.175568, 0.18837, -0.217537, 0.957703, 0.035485, -0.973015, -0.227995, -1.09896e-07, 3.84743, -2.10479e-07)
|
||||
bones/11/enabled = true
|
||||
bones/11/position = Vector3(-1.09896e-07, 3.84743, -2.10479e-07)
|
||||
bones/11/rotation = Quaternion(-0.784729, -0.0616535, 0.0718257, 0.612568)
|
||||
bones/11/rotation = Quaternion(-0.779594, -0.0571616, 0.0820679, 0.618248)
|
||||
bones/11/scale = Vector3(1, 0.999999, 1)
|
||||
bones/12/name = "arm2_L"
|
||||
bones/12/parent = 11
|
||||
@@ -306,7 +307,7 @@ bones/15/parent = 1
|
||||
bones/15/rest = Transform3D(-0.98213, 0.0512573, -0.181089, -0.187541, -0.185921, 0.964501, 0.0157694, 0.981227, 0.192212, 0.00107862, 3.8461, -0.0821097)
|
||||
bones/15/enabled = true
|
||||
bones/15/position = Vector3(0.00107886, 3.8461, -0.0821095)
|
||||
bones/15/rotation = Quaternion(-0.210671, 0.737877, 0.621635, -0.157245)
|
||||
bones/15/rotation = Quaternion(-0.215504, 0.745403, 0.613457, -0.14698)
|
||||
bones/15/scale = Vector3(1, 1, 1)
|
||||
bones/16/name = "arm2_R"
|
||||
bones/16/parent = 15
|
||||
@@ -333,22 +334,22 @@ bones/19/name = "hip_L"
|
||||
bones/19/parent = -1
|
||||
bones/19/rest = Transform3D(0.138486, 0.897208, 0.419333, -0.129033, -0.403458, 0.905854, 0.981923, -0.179556, 0.059896, 0.000155807, -0.00105953, -2.01735)
|
||||
bones/19/enabled = true
|
||||
bones/19/position = Vector3(-0.309033, -1.1318, -1.95517)
|
||||
bones/19/rotation = Quaternion(0.612762, 0.310855, 0.569327, -0.451397)
|
||||
bones/19/position = Vector3(-0.384243, -1.20295, -1.70736)
|
||||
bones/19/rotation = Quaternion(0.628187, 0.292155, 0.544258, -0.473086)
|
||||
bones/19/scale = Vector3(1, 1, 1)
|
||||
bones/20/name = "leg1_L"
|
||||
bones/20/parent = 19
|
||||
bones/20/rest = Transform3D(0.945603, 0.113405, 0.304916, -0.324072, 0.410457, 0.852351, -0.0284943, -0.9048, 0.424881, 2.08616e-07, 2.00996, -7.1153e-07)
|
||||
bones/20/enabled = true
|
||||
bones/20/position = Vector3(2.08616e-07, 2.00996, -7.1153e-07)
|
||||
bones/20/rotation = Quaternion(-0.312233, -0.440038, -0.274881, 0.795813)
|
||||
bones/20/rotation = Quaternion(-0.328369, -0.422086, -0.301599, 0.789339)
|
||||
bones/20/scale = Vector3(1, 0.999999, 1)
|
||||
bones/21/name = "leg2_L"
|
||||
bones/21/parent = 20
|
||||
bones/21/rest = Transform3D(0.990336, -0.138679, 0.00180777, 0.138628, 0.990193, 0.0173138, -0.00419111, -0.0168959, 0.999848, 5.96046e-08, 5.85994, -5.23403e-07)
|
||||
bones/21/enabled = true
|
||||
bones/21/position = Vector3(5.96046e-08, 5.85994, -5.23403e-07)
|
||||
bones/21/rotation = Quaternion(-0.0601745, 0.00130057, 0.487115, 0.871261)
|
||||
bones/21/rotation = Quaternion(-0.0605247, 0.00129816, 0.489949, 0.869646)
|
||||
bones/21/scale = Vector3(1, 1, 1)
|
||||
bones/22/name = "foot1_L"
|
||||
bones/22/parent = 21
|
||||
@@ -382,7 +383,7 @@ bones/26/name = "hip_R"
|
||||
bones/26/parent = -1
|
||||
bones/26/rest = Transform3D(0.138486, -0.897208, -0.419333, 0.129033, -0.403458, 0.905854, -0.981923, -0.179556, 0.059896, -0.000155807, -0.00105953, -2.01735)
|
||||
bones/26/enabled = true
|
||||
bones/26/position = Vector3(-0.235011, -1.11395, -2.01773)
|
||||
bones/26/position = Vector3(-0.0139445, -1.11395, -2.01924)
|
||||
bones/26/rotation = Quaternion(0.608697, -0.3155, -0.575514, -0.445793)
|
||||
bones/26/scale = Vector3(1, 1, 1)
|
||||
bones/27/name = "leg1_R"
|
||||
@@ -390,14 +391,14 @@ bones/27/parent = 26
|
||||
bones/27/rest = Transform3D(0.945603, -0.113405, -0.304916, 0.324072, 0.410457, 0.852351, 0.0284943, -0.9048, 0.424881, -9.54606e-09, 2.00996, -3.52971e-07)
|
||||
bones/27/enabled = true
|
||||
bones/27/position = Vector3(-9.54606e-09, 2.00996, -3.52971e-07)
|
||||
bones/27/rotation = Quaternion(-0.207711, 0.421647, 0.141893, 0.871169)
|
||||
bones/27/rotation = Quaternion(-0.201915, 0.424853, 0.137695, 0.871648)
|
||||
bones/27/scale = Vector3(1, 0.999999, 1)
|
||||
bones/28/name = "leg2_R"
|
||||
bones/28/parent = 27
|
||||
bones/28/rest = Transform3D(0.990336, 0.138679, -0.00180777, -0.138628, 0.990193, 0.0173138, 0.00419111, -0.0168959, 0.999848, 4.51691e-08, 5.85994, -3.72529e-09)
|
||||
bones/28/enabled = true
|
||||
bones/28/position = Vector3(4.51691e-08, 5.85994, -3.72529e-09)
|
||||
bones/28/rotation = Quaternion(-0.0640421, -0.00115636, -0.511308, 0.857007)
|
||||
bones/28/rotation = Quaternion(-0.0627373, -0.00116475, -0.500889, 0.863234)
|
||||
bones/28/scale = Vector3(1, 1, 1)
|
||||
bones/29/name = "foot1_R"
|
||||
bones/29/parent = 28
|
||||
@@ -429,7 +430,7 @@ bones/32/rotation = Quaternion(0.456756, 0.539878, -0.539587, -0.456893)
|
||||
bones/32/scale = Vector3(1, 1, 1)
|
||||
|
||||
[node name="BoneAttachment3D" type="BoneAttachment3D" parent="Armature/Skeleton3D"]
|
||||
transform = Transform3D(-0.291816, -0.0758791, -0.95346, -0.329798, -0.927733, 0.174769, -0.897817, 0.36545, 0.245702, -1.66649, 8.30024, 4.94846)
|
||||
transform = Transform3D(-0.268422, -0.0393269, -0.962498, -0.333441, -0.933606, 0.131136, -0.903751, 0.356137, 0.237487, -1.68766, 8.19743, 4.95698)
|
||||
bone_name = "TOP OF SKULL"
|
||||
bone_idx = 8
|
||||
|
||||
|
||||
Reference in New Issue
Block a user