Additional refactoring and fixing of equipment data

Add attack data to enemy attacks (might need to rework a little bit for primary/secondary attacks)
This commit is contained in:
2025-10-23 00:05:44 -07:00
parent f0c4e65783
commit bc161a58b3
73 changed files with 641 additions and 641 deletions

View File

@@ -5,15 +5,13 @@ namespace Zennysoft.Ma.Adapter
{ {
public static class DamageCalculator public static class DamageCalculator
{ {
public static int CalculateDamage(Damage damage, double defense, ElementalResistanceSet elementalResistanceSet) public static int CalculateDamage(AttackData damage, double defense, ElementalResistanceSet elementalResistanceSet)
{ {
var calculatedDamage = damage.BaseDamage; var calculatedDamage = damage.BaseDamage;
if (!damage.IgnoreDefense) if (!damage.IgnoreDefense)
calculatedDamage = CalculateDefenseResistance(calculatedDamage, defense); calculatedDamage = CalculateDefenseResistance(calculatedDamage, defense);
if (!damage.IgnoreElementalResistance) if (!damage.IgnoreElementalResistance)
calculatedDamage = CalculateElementalResistance(calculatedDamage, elementalResistanceSet.ElementalResistance[damage.ElementType]); calculatedDamage = CalculateElementalResistance(calculatedDamage, elementalResistanceSet.ElementalResistance[damage.ElementType]);
if (damage.IsCriticalHit)
calculatedDamage *= 2;
return Mathf.Max(1, calculatedDamage); return Mathf.Max(1, calculatedDamage);
} }

View File

@@ -1,5 +1,4 @@
using Chickensoft.Collections; using Chickensoft.Collections;
using Zennysoft.Ma.Adapter;
namespace Zennysoft.Ma.Adapter; namespace Zennysoft.Ma.Adapter;
public interface IEquipmentComponent public interface IEquipmentComponent
@@ -13,4 +12,17 @@ public interface IEquipmentComponent
public void Equip(EquipableItem equipable); public void Equip(EquipableItem equipable);
public void Unequip(EquipableItem equipable); public void Unequip(EquipableItem equipable);
public bool IsItemEquipped(InventoryItem item);
public int BonusAttack { get; }
public int BonusDefense { get; }
public int BonusHP { get; }
public int BonusVT { get; }
public int BonusLuck { get; }
} }

View File

@@ -6,5 +6,5 @@ public interface ILuckComponent
{ {
public IAutoProp<int> Luck { get; } public IAutoProp<int> Luck { get; }
public void SetLuck(int value); public void IncreaseLuck(int value);
} }

View File

@@ -0,0 +1,3 @@
namespace Zennysoft.Ma.Adapter;
public record AttackData(int BaseDamage, ElementType ElementType, bool IgnoreDefense = false, bool IgnoreElementalResistance = false);

View File

@@ -1,3 +0,0 @@
namespace Zennysoft.Ma.Adapter;
public record Damage(int BaseDamage, ElementType ElementType, bool IsCriticalHit, bool IgnoreDefense, bool IgnoreElementalResistance);

View File

@@ -4,6 +4,8 @@
{ {
public Dictionary<ElementType, double> ElementalResistance { get; } public Dictionary<ElementType, double> ElementalResistance { get; }
public static ElementalResistanceSet None => new ElementalResistanceSet(0, 0, 0, 0, 0);
public ElementalResistanceSet(double aeolicResistance, double hydricResistance, double igneousResistance, double ferrumResistance, double telluricResistance) public ElementalResistanceSet(double aeolicResistance, double hydricResistance, double igneousResistance, double ferrumResistance, double telluricResistance)
{ {
ElementalResistance = new Dictionary<ElementType, double> ElementalResistance = new Dictionary<ElementType, double>

View File

@@ -1,11 +1,17 @@
using Chickensoft.Introspection; using Chickensoft.Introspection;
using Chickensoft.Serialization;
namespace Zennysoft.Ma.Adapter; namespace Zennysoft.Ma.Adapter;
[Meta, Id("equipable_item")] [Meta, Id("equipable_item")]
public abstract partial class EquipableItem : InventoryItem public abstract partial class EquipableItem : InventoryItem
{ {
[Save("equipable_item_is_equipped")] public virtual int BonusAttack { get; }
public bool IsEquipped { get; set; }
public virtual int BonusDefense { get; }
public virtual int BonusHP { get; }
public virtual int BonusVT { get; }
public virtual int BonusLuck { get; }
} }

View File

@@ -5,5 +5,6 @@ public enum WeaponTag
None, None,
SelfDamage, SelfDamage,
IgnoreAffinity, IgnoreAffinity,
IgnoreDefense,
Knockback, Knockback,
} }

View File

@@ -53,8 +53,6 @@ public interface IGameRepo : IDisposable
public void OnPlayerAttackedWall(); public void OnPlayerAttackedWall();
public void OnPlayerAttackedEnemy();
public void OnRestorativePickedUp(IHealthPack restorative); public void OnRestorativePickedUp(IHealthPack restorative);
public void CloseInventory(); public void CloseInventory();
@@ -147,11 +145,6 @@ public class GameRepo : IGameRepo
PlayerAttackedWall?.Invoke(); PlayerAttackedWall?.Invoke();
} }
public void OnPlayerAttackedEnemy()
{
PlayerAttackedEnemy?.Invoke();
}
public void OnRestorativePickedUp(IHealthPack restorative) public void OnRestorativePickedUp(IHealthPack restorative)
{ {
RestorativePickedUp?.Invoke(restorative); RestorativePickedUp?.Invoke(restorative);

View File

@@ -12,5 +12,5 @@ public interface IInventory
public void Remove(InventoryItem inventoryItem); public void Remove(InventoryItem inventoryItem);
public void Sort(); public void Sort(EquipableItem currentWeapon, EquipableItem currentArmor, EquipableItem currentAccessory);
} }

View File

@@ -1,15 +1,16 @@
using Godot; using Chickensoft.GodotNodeInterfaces;
using Godot;
using Zennysoft.Game.Abstractions; using Zennysoft.Game.Abstractions;
namespace Zennysoft.Ma.Adapter; namespace Zennysoft.Ma.Adapter;
public interface IPlayer : IKillable public interface IPlayer : IKillable, ICharacterBody3D
{ {
public void Activate(); public void Activate();
public void Deactivate(); public void Deactivate();
public void TakeDamage(Damage damage); public void TakeDamage(AttackData damage);
public void Knockback(float impulse); public void Knockback(float impulse);
@@ -19,10 +20,6 @@ public interface IPlayer : IKillable
public IInventory Inventory { get; } public IInventory Inventory { get; }
public Vector3 CurrentPosition { get; }
public Basis CurrentBasis { get; }
public IHealthComponent HealthComponent { get; } public IHealthComponent HealthComponent { get; }
public IVTComponent VTComponent { get; } public IVTComponent VTComponent { get; }

View File

@@ -16,6 +16,16 @@ public class EquipmentComponent : IEquipmentComponent
public AutoProp<EquipableItem> _equippedAccessory; public AutoProp<EquipableItem> _equippedAccessory;
public int BonusAttack => _equippedWeapon.Value.BonusAttack + _equippedArmor.Value.BonusAttack + _equippedAccessory.Value.BonusAttack;
public int BonusDefense => _equippedWeapon.Value.BonusDefense + _equippedArmor.Value.BonusDefense + _equippedAccessory.Value.BonusDefense;
public int BonusHP => _equippedWeapon.Value.BonusHP + _equippedArmor.Value.BonusHP + _equippedAccessory.Value.BonusHP;
public int BonusVT => _equippedWeapon.Value.BonusVT + _equippedArmor.Value.BonusVT + _equippedAccessory.Value.BonusVT;
public int BonusLuck => _equippedWeapon.Value.BonusLuck + _equippedArmor.Value.BonusLuck + _equippedAccessory.Value.BonusLuck;
public EquipmentComponent() public EquipmentComponent()
{ {
_equippedWeapon = new AutoProp<EquipableItem>(new Weapon()); _equippedWeapon = new AutoProp<EquipableItem>(new Weapon());
@@ -42,4 +52,12 @@ public class EquipmentComponent : IEquipmentComponent
if (equipable is Accessory accessory) if (equipable is Accessory accessory)
_equippedAccessory.OnNext(new Accessory()); _equippedAccessory.OnNext(new Accessory());
} }
public bool IsItemEquipped(InventoryItem item)
{
if (item is not EquipableItem)
return false;
return item == _equippedWeapon.Value || item == _equippedArmor.Value || item == _equippedAccessory.Value;
}
} }

View File

@@ -14,5 +14,5 @@ public class LuckComponent : ILuckComponent
_luck = new AutoProp<int>(initialLuck); _luck = new AutoProp<int>(initialLuck);
} }
public void SetLuck(int value) => _luck.OnNext(value); public void IncreaseLuck(int value) => _luck.OnNext(_luck.Value + value);
} }

View File

@@ -0,0 +1,14 @@
using System;
using Zennysoft.Ma.Adapter;
namespace Zennysoft.Game.Ma;
public class AttackEventArgs : EventArgs
{
public AttackData Damage;
public AttackEventArgs(AttackData damage)
{
Damage = damage;
}
}

View File

@@ -52,10 +52,10 @@ public partial class BossTypeA : Enemy, IHaveEngagePlayerBehavior, IHaveFollowBe
public void OnPhysicsProcess(double delta) public void OnPhysicsProcess(double delta)
{ {
var direction = GlobalPosition.DirectionTo(_player.CurrentPosition).Normalized(); var direction = GlobalPosition.DirectionTo(_player.GlobalPosition).Normalized();
var rotationAngle = GetRotationAngle(); var rotationAngle = GetRotationAngle();
if (GlobalBasis.Z.AngleTo(_player.CurrentBasis.Z) > Mathf.DegToRad(60)) if (GlobalBasis.Z.AngleTo(_player.GlobalBasis.Z) > Mathf.DegToRad(60))
{ {
RotateToPlayer(rotationAngle); RotateToPlayer(rotationAngle);
EnemyModelView.PlayIdleAnimation(); EnemyModelView.PlayIdleAnimation();
@@ -95,7 +95,7 @@ public partial class BossTypeA : Enemy, IHaveEngagePlayerBehavior, IHaveFollowBe
{ {
var target = area.GetOwner(); var target = area.GetOwner();
if (target is IPlayer player) if (target is IPlayer player)
player.TakeDamage(new Damage(AttackComponent.TotalAttack, PrimaryAttackElementalType, BattleExtensions.IsCriticalHit(7), false, false)); player.TakeDamage(new AttackData(AttackComponent.TotalAttack, PrimaryAttackElementalType));
} }
public void StartFight() public void StartFight()
@@ -120,7 +120,7 @@ public partial class BossTypeA : Enemy, IHaveEngagePlayerBehavior, IHaveFollowBe
private float GetRotationAngle() private float GetRotationAngle()
{ {
var target = new Vector3(_player.CurrentPosition.X, Position.Y, _player.CurrentPosition.Z); var target = new Vector3(_player.GlobalPosition.X, Position.Y, _player.GlobalPosition.Z);
_rotation.LookAt(target, Vector3.Up, true); _rotation.LookAt(target, Vector3.Up, true);
_rotation.RotateY(Rotation.Y); _rotation.RotateY(Rotation.Y);
return _rotation.Rotation.Y; return _rotation.Rotation.Y;

View File

@@ -182,6 +182,6 @@ public abstract partial class Enemy : CharacterBody3D, IEnemy, IProvide<IEnemyLo
private void EnemyModelView_HitPlayer(object sender, System.EventArgs e) private void EnemyModelView_HitPlayer(object sender, System.EventArgs e)
{ {
_player.TakeDamage(new Damage(AttackComponent.TotalAttack, ElementType.None, false, false, false)); _player.TakeDamage(new AttackData(AttackComponent.TotalAttack, ElementType.None));
} }
} }

View File

@@ -25,7 +25,7 @@ public abstract partial class Enemy2D : Enemy
public override void _PhysicsProcess(double delta) public override void _PhysicsProcess(double delta)
{ {
_enemyModelView.SetCurrentDirection(GlobalBasis, -_player.CurrentBasis.Z); _enemyModelView.SetCurrentDirection(GlobalBasis, -_player.GlobalBasis.Z);
} }
protected void PlayerDetector_BodyEntered(Node3D node) protected void PlayerDetector_BodyEntered(Node3D node)
@@ -53,15 +53,15 @@ public abstract partial class Enemy2D : Enemy
protected void EngagePlayerBehavior_TakeAction() => EnemyModelView.PlayPrimaryAttackAnimation(); protected void EngagePlayerBehavior_TakeAction() => EnemyModelView.PlayPrimaryAttackAnimation();
protected void EngagePlayerBehavior_AcquireTarget() => LookAt(new Vector3(_player.CurrentPosition.X, GlobalPosition.Y, _player.CurrentPosition.Z), Vector3.Up, true); protected void EngagePlayerBehavior_AcquireTarget() => LookAt(new Vector3(_player.GlobalPosition.X, GlobalPosition.Y, _player.GlobalPosition.Z), Vector3.Up, true);
private void LineOfSight_BodyEntered(Node3D body) private void LineOfSight_BodyEntered(Node3D body)
{ {
var overlappingBodies = LineOfSight.GetOverlappingBodies(); var overlappingBodies = LineOfSight.GetOverlappingBodies();
foreach (var _ in overlappingBodies) foreach (var _ in overlappingBodies)
{ {
if (Raycast.GlobalPosition != _player.CurrentPosition) if (Raycast.GlobalPosition != _player.GlobalPosition)
Raycast.LookAt(_player.CurrentPosition, Vector3.Up); Raycast.LookAt(_player.GlobalPosition, Vector3.Up);
Raycast.ForceRaycastUpdate(); Raycast.ForceRaycastUpdate();
if (Raycast.IsColliding()) if (Raycast.IsColliding())
{ {

View File

@@ -19,6 +19,8 @@ public abstract partial class EnemyModelView : Node3D, IEnemyModelView
[Node] public AnimationTree AnimationTree { get; set; } = default!; [Node] public AnimationTree AnimationTree { get; set; } = default!;
[Export] public AttackDataResource AttackData { get; set; }
private AnimationNodeStateMachinePlayback _stateMachine; private AnimationNodeStateMachinePlayback _stateMachine;
public event EventHandler HitPlayer; public event EventHandler HitPlayer;
@@ -44,10 +46,7 @@ public abstract partial class EnemyModelView : Node3D, IEnemyModelView
public virtual void PlayHitAnimation() => throw new System.NotImplementedException(); public virtual void PlayHitAnimation() => throw new System.NotImplementedException();
protected virtual void OnPlayerHit() protected virtual void OnPlayerHit(AttackEventArgs arg) => HitPlayer?.Invoke(this, arg);
{
HitPlayer?.Invoke(this, EventArgs.Empty);
}
public override void _ExitTree() public override void _ExitTree()
{ {

View File

@@ -2,6 +2,7 @@ using Chickensoft.AutoInject;
using Chickensoft.Introspection; using Chickensoft.Introspection;
using Godot; using Godot;
using System.Linq; using System.Linq;
using Zennysoft.Ma.Adapter;
namespace Zennysoft.Game.Ma; namespace Zennysoft.Game.Ma;
[Meta(typeof(IAutoNode))] [Meta(typeof(IAutoNode))]
@@ -31,7 +32,7 @@ public partial class EnemyModelView2D : EnemyModelView, IEnemyModelView
base.OnReady(); base.OnReady();
} }
private void Hitbox_AreaEntered(Area3D area) => OnPlayerHit(); private void Hitbox_AreaEntered(Area3D area) => OnPlayerHit(new AttackEventArgs(new AttackData(10, ElementType.None)));
public void SetCurrentDirection(Basis enemyBasis, Vector3 cameraDirection) => _enemyDirection = GetEnemyDirection(enemyBasis, cameraDirection, _upperThreshold, _lowerThreshold); public void SetCurrentDirection(Basis enemyBasis, Vector3 cameraDirection) => _enemyDirection = GetEnemyDirection(enemyBasis, cameraDirection, _upperThreshold, _lowerThreshold);

View File

@@ -9,8 +9,6 @@ public partial class EnemyModelView3D : EnemyModelView
{ {
public override void _Notification(int what) => this.Notify(what); public override void _Notification(int what) => this.Notify(what);
[Export] public EnemyLoreInfo EnemyLoreInfo { get; set; } = default!;
[Node] private AnimationPlayer _animationPlayer { get; set; } = default!; [Node] private AnimationPlayer _animationPlayer { get; set; } = default!;
[Node] public MeshInstance3D MeshInstance { get; set; } = default!; [Node] public MeshInstance3D MeshInstance { get; set; } = default!;

View File

@@ -1,4 +1,4 @@
[gd_resource type="AnimationNodeStateMachine" load_steps=25 format=3 uid="uid://dlqudph8o3py1"] [gd_resource type="AnimationNodeStateMachine" load_steps=22 format=3 uid="uid://dlqudph8o3py1"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ivy74"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ivy74"]
animation = &"activate_back" animation = &"activate_back"
@@ -14,7 +14,6 @@ animation = &"activate_right"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ivy74"] [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ivy74"]
advance_mode = 2 advance_mode = 2
advance_expression = "_enemyDirection == 2"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_x7uye"] [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_x7uye"]
switch_mode = 1 switch_mode = 1
@@ -92,18 +91,6 @@ advance_mode = 2
switch_mode = 2 switch_mode = 2
advance_mode = 2 advance_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_eilyo"]
advance_mode = 2
advance_expression = "_enemyDirection == 0"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_qqywc"]
advance_mode = 2
advance_expression = "_enemyDirection == 3"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_p2oir"]
advance_mode = 2
advance_expression = "_enemyDirection == 1"
[resource] [resource]
states/End/position = Vector2(997, 236) states/End/position = Vector2(997, 236)
states/Start/position = Vector2(201, 100) states/Start/position = Vector2(201, 100)
@@ -115,4 +102,4 @@ states/left/node = SubResource("AnimationNodeAnimation_djeua")
states/left/position = Vector2(378, 179) states/left/position = Vector2(378, 179)
states/right/node = SubResource("AnimationNodeAnimation_8wbs7") states/right/node = SubResource("AnimationNodeAnimation_8wbs7")
states/right/position = Vector2(701, 179) states/right/position = Vector2(701, 179)
transitions = ["Start", "forward", SubResource("AnimationNodeStateMachineTransition_ivy74"), "forward", "left", SubResource("AnimationNodeStateMachineTransition_x7uye"), "left", "forward", SubResource("AnimationNodeStateMachineTransition_djeua"), "forward", "back", SubResource("AnimationNodeStateMachineTransition_8wbs7"), "back", "forward", SubResource("AnimationNodeStateMachineTransition_mnr4r"), "left", "right", SubResource("AnimationNodeStateMachineTransition_l2wq1"), "right", "left", SubResource("AnimationNodeStateMachineTransition_jwlar"), "back", "left", SubResource("AnimationNodeStateMachineTransition_fdoul"), "left", "back", SubResource("AnimationNodeStateMachineTransition_kpotx"), "forward", "right", SubResource("AnimationNodeStateMachineTransition_lfuuf"), "right", "forward", SubResource("AnimationNodeStateMachineTransition_dfvqa"), "right", "back", SubResource("AnimationNodeStateMachineTransition_dnvt3"), "back", "right", SubResource("AnimationNodeStateMachineTransition_m7aft"), "forward", "End", SubResource("AnimationNodeStateMachineTransition_ctux2"), "right", "End", SubResource("AnimationNodeStateMachineTransition_qlkux"), "back", "End", SubResource("AnimationNodeStateMachineTransition_rmn3u"), "left", "End", SubResource("AnimationNodeStateMachineTransition_do1qe"), "Start", "left", SubResource("AnimationNodeStateMachineTransition_eilyo"), "Start", "back", SubResource("AnimationNodeStateMachineTransition_qqywc"), "Start", "right", SubResource("AnimationNodeStateMachineTransition_p2oir")] transitions = ["Start", "forward", SubResource("AnimationNodeStateMachineTransition_ivy74"), "forward", "left", SubResource("AnimationNodeStateMachineTransition_x7uye"), "left", "forward", SubResource("AnimationNodeStateMachineTransition_djeua"), "forward", "back", SubResource("AnimationNodeStateMachineTransition_8wbs7"), "back", "forward", SubResource("AnimationNodeStateMachineTransition_mnr4r"), "left", "right", SubResource("AnimationNodeStateMachineTransition_l2wq1"), "right", "left", SubResource("AnimationNodeStateMachineTransition_jwlar"), "back", "left", SubResource("AnimationNodeStateMachineTransition_fdoul"), "left", "back", SubResource("AnimationNodeStateMachineTransition_kpotx"), "forward", "right", SubResource("AnimationNodeStateMachineTransition_lfuuf"), "right", "forward", SubResource("AnimationNodeStateMachineTransition_dfvqa"), "right", "back", SubResource("AnimationNodeStateMachineTransition_dnvt3"), "back", "right", SubResource("AnimationNodeStateMachineTransition_m7aft"), "forward", "End", SubResource("AnimationNodeStateMachineTransition_ctux2"), "right", "End", SubResource("AnimationNodeStateMachineTransition_qlkux"), "back", "End", SubResource("AnimationNodeStateMachineTransition_rmn3u"), "left", "End", SubResource("AnimationNodeStateMachineTransition_do1qe")]

View File

@@ -1,4 +1,4 @@
[gd_resource type="AnimationNodeStateMachine" load_steps=25 format=3 uid="uid://cbq8xog50cjjy"] [gd_resource type="AnimationNodeStateMachine" load_steps=22 format=3 uid="uid://cbq8xog50cjjy"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ivy74"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ivy74"]
animation = &"primary_attack_back" animation = &"primary_attack_back"
@@ -14,7 +14,6 @@ animation = &"primary_attack_right"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ivy74"] [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ivy74"]
advance_mode = 2 advance_mode = 2
advance_expression = "_enemyDirection == 2"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_x7uye"] [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_x7uye"]
switch_mode = 1 switch_mode = 1
@@ -92,27 +91,15 @@ advance_mode = 2
switch_mode = 2 switch_mode = 2
advance_mode = 2 advance_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_jkh6t"]
advance_mode = 2
advance_expression = "_enemyDirection == 0"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_8fa3m"]
advance_mode = 2
advance_expression = "_enemyDirection == 3"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_a8clo"]
advance_mode = 2
advance_expression = "_enemyDirection == 1"
[resource] [resource]
states/End/position = Vector2(996, 236) states/End/position = Vector2(996, 236)
states/Start/position = Vector2(106, 236) states/Start/position = Vector2(106, 236)
states/back/node = SubResource("AnimationNodeAnimation_ivy74") states/back/node = SubResource("AnimationNodeAnimation_ivy74")
states/back/position = Vector2(542, 276) states/back/position = Vector2(542, 276)
states/forward/node = SubResource("AnimationNodeAnimation_x7uye") states/forward/node = SubResource("AnimationNodeAnimation_x7uye")
states/forward/position = Vector2(542, 68) states/forward/position = Vector2(542, 67)
states/left/node = SubResource("AnimationNodeAnimation_djeua") states/left/node = SubResource("AnimationNodeAnimation_djeua")
states/left/position = Vector2(378, 179) states/left/position = Vector2(378, 179)
states/right/node = SubResource("AnimationNodeAnimation_8wbs7") states/right/node = SubResource("AnimationNodeAnimation_8wbs7")
states/right/position = Vector2(701, 179) states/right/position = Vector2(701, 179)
transitions = ["Start", "forward", SubResource("AnimationNodeStateMachineTransition_ivy74"), "forward", "left", SubResource("AnimationNodeStateMachineTransition_x7uye"), "left", "forward", SubResource("AnimationNodeStateMachineTransition_djeua"), "forward", "back", SubResource("AnimationNodeStateMachineTransition_8wbs7"), "back", "forward", SubResource("AnimationNodeStateMachineTransition_mnr4r"), "left", "right", SubResource("AnimationNodeStateMachineTransition_l2wq1"), "right", "left", SubResource("AnimationNodeStateMachineTransition_jwlar"), "back", "left", SubResource("AnimationNodeStateMachineTransition_fdoul"), "left", "back", SubResource("AnimationNodeStateMachineTransition_kpotx"), "forward", "right", SubResource("AnimationNodeStateMachineTransition_lfuuf"), "right", "forward", SubResource("AnimationNodeStateMachineTransition_dfvqa"), "right", "back", SubResource("AnimationNodeStateMachineTransition_dnvt3"), "back", "right", SubResource("AnimationNodeStateMachineTransition_m7aft"), "forward", "End", SubResource("AnimationNodeStateMachineTransition_ctux2"), "right", "End", SubResource("AnimationNodeStateMachineTransition_qlkux"), "back", "End", SubResource("AnimationNodeStateMachineTransition_rmn3u"), "left", "End", SubResource("AnimationNodeStateMachineTransition_do1qe"), "Start", "left", SubResource("AnimationNodeStateMachineTransition_jkh6t"), "Start", "back", SubResource("AnimationNodeStateMachineTransition_8fa3m"), "Start", "right", SubResource("AnimationNodeStateMachineTransition_a8clo")] transitions = ["Start", "forward", SubResource("AnimationNodeStateMachineTransition_ivy74"), "forward", "left", SubResource("AnimationNodeStateMachineTransition_x7uye"), "left", "forward", SubResource("AnimationNodeStateMachineTransition_djeua"), "forward", "back", SubResource("AnimationNodeStateMachineTransition_8wbs7"), "back", "forward", SubResource("AnimationNodeStateMachineTransition_mnr4r"), "left", "right", SubResource("AnimationNodeStateMachineTransition_l2wq1"), "right", "left", SubResource("AnimationNodeStateMachineTransition_jwlar"), "back", "left", SubResource("AnimationNodeStateMachineTransition_fdoul"), "left", "back", SubResource("AnimationNodeStateMachineTransition_kpotx"), "forward", "right", SubResource("AnimationNodeStateMachineTransition_lfuuf"), "right", "forward", SubResource("AnimationNodeStateMachineTransition_dfvqa"), "right", "back", SubResource("AnimationNodeStateMachineTransition_dnvt3"), "back", "right", SubResource("AnimationNodeStateMachineTransition_m7aft"), "forward", "End", SubResource("AnimationNodeStateMachineTransition_ctux2"), "right", "End", SubResource("AnimationNodeStateMachineTransition_qlkux"), "back", "End", SubResource("AnimationNodeStateMachineTransition_rmn3u"), "left", "End", SubResource("AnimationNodeStateMachineTransition_do1qe")]

View File

@@ -1,4 +1,4 @@
[gd_resource type="AnimationNodeStateMachine" load_steps=25 format=3 uid="uid://clybvwx3itfeo"] [gd_resource type="AnimationNodeStateMachine" load_steps=22 format=3 uid="uid://clybvwx3itfeo"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ivy74"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ivy74"]
animation = &"secondary_attack_back" animation = &"secondary_attack_back"
@@ -14,7 +14,6 @@ animation = &"secondary_attack_right"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ivy74"] [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ivy74"]
advance_mode = 2 advance_mode = 2
advance_expression = "_enemyDirection == 2"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_x7uye"] [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_x7uye"]
switch_mode = 1 switch_mode = 1
@@ -92,18 +91,6 @@ advance_mode = 2
switch_mode = 2 switch_mode = 2
advance_mode = 2 advance_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_hl6c6"]
advance_mode = 2
advance_expression = "_enemyDirection == 0"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_shpbw"]
advance_mode = 2
advance_expression = "_enemyDirection == 1"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_d770k"]
advance_mode = 2
advance_expression = "_enemyDirection == 3"
[resource] [resource]
states/End/position = Vector2(996, 236) states/End/position = Vector2(996, 236)
states/Start/position = Vector2(114, 219) states/Start/position = Vector2(114, 219)
@@ -115,4 +102,4 @@ states/left/node = SubResource("AnimationNodeAnimation_djeua")
states/left/position = Vector2(378, 179) states/left/position = Vector2(378, 179)
states/right/node = SubResource("AnimationNodeAnimation_8wbs7") states/right/node = SubResource("AnimationNodeAnimation_8wbs7")
states/right/position = Vector2(702, 179) states/right/position = Vector2(702, 179)
transitions = ["Start", "forward", SubResource("AnimationNodeStateMachineTransition_ivy74"), "forward", "left", SubResource("AnimationNodeStateMachineTransition_x7uye"), "left", "forward", SubResource("AnimationNodeStateMachineTransition_djeua"), "forward", "back", SubResource("AnimationNodeStateMachineTransition_8wbs7"), "back", "forward", SubResource("AnimationNodeStateMachineTransition_mnr4r"), "left", "right", SubResource("AnimationNodeStateMachineTransition_l2wq1"), "right", "left", SubResource("AnimationNodeStateMachineTransition_jwlar"), "back", "left", SubResource("AnimationNodeStateMachineTransition_fdoul"), "left", "back", SubResource("AnimationNodeStateMachineTransition_kpotx"), "forward", "right", SubResource("AnimationNodeStateMachineTransition_lfuuf"), "right", "forward", SubResource("AnimationNodeStateMachineTransition_dfvqa"), "right", "back", SubResource("AnimationNodeStateMachineTransition_dnvt3"), "back", "right", SubResource("AnimationNodeStateMachineTransition_m7aft"), "forward", "End", SubResource("AnimationNodeStateMachineTransition_ctux2"), "right", "End", SubResource("AnimationNodeStateMachineTransition_qlkux"), "back", "End", SubResource("AnimationNodeStateMachineTransition_rmn3u"), "left", "End", SubResource("AnimationNodeStateMachineTransition_do1qe"), "Start", "left", SubResource("AnimationNodeStateMachineTransition_hl6c6"), "Start", "right", SubResource("AnimationNodeStateMachineTransition_shpbw"), "Start", "back", SubResource("AnimationNodeStateMachineTransition_d770k")] transitions = ["Start", "forward", SubResource("AnimationNodeStateMachineTransition_ivy74"), "forward", "left", SubResource("AnimationNodeStateMachineTransition_x7uye"), "left", "forward", SubResource("AnimationNodeStateMachineTransition_djeua"), "forward", "back", SubResource("AnimationNodeStateMachineTransition_8wbs7"), "back", "forward", SubResource("AnimationNodeStateMachineTransition_mnr4r"), "left", "right", SubResource("AnimationNodeStateMachineTransition_l2wq1"), "right", "left", SubResource("AnimationNodeStateMachineTransition_jwlar"), "back", "left", SubResource("AnimationNodeStateMachineTransition_fdoul"), "left", "back", SubResource("AnimationNodeStateMachineTransition_kpotx"), "forward", "right", SubResource("AnimationNodeStateMachineTransition_lfuuf"), "right", "forward", SubResource("AnimationNodeStateMachineTransition_dfvqa"), "right", "back", SubResource("AnimationNodeStateMachineTransition_dnvt3"), "back", "right", SubResource("AnimationNodeStateMachineTransition_m7aft"), "forward", "End", SubResource("AnimationNodeStateMachineTransition_ctux2"), "right", "End", SubResource("AnimationNodeStateMachineTransition_qlkux"), "back", "End", SubResource("AnimationNodeStateMachineTransition_rmn3u"), "left", "End", SubResource("AnimationNodeStateMachineTransition_do1qe")]

View File

@@ -1,4 +1,4 @@
[gd_resource type="AnimationNodeStateMachine" load_steps=21 format=3 uid="uid://cy2ngl55c0rws"] [gd_resource type="AnimationNodeStateMachine" load_steps=18 format=3 uid="uid://cy2ngl55c0rws"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ivy74"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_ivy74"]
animation = &"idle_back_walk" animation = &"idle_back_walk"
@@ -14,7 +14,6 @@ animation = &"idle_right_walk"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ivy74"] [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ivy74"]
advance_mode = 2 advance_mode = 2
advance_expression = "_enemyDirection == 2"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_x7uye"] [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_x7uye"]
switch_mode = 1 switch_mode = 1
@@ -76,18 +75,6 @@ switch_mode = 1
advance_mode = 2 advance_mode = 2
advance_expression = "_enemyDirection == 1" advance_expression = "_enemyDirection == 1"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_v537b"]
advance_mode = 2
advance_expression = "_enemyDirection == 0"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_11ejb"]
advance_mode = 2
advance_expression = "_enemyDirection == 1"
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ear7g"]
advance_mode = 2
advance_expression = "_enemyDirection == 3"
[resource] [resource]
states/End/position = Vector2(910, 100) states/End/position = Vector2(910, 100)
states/Start/position = Vector2(102, 111) states/Start/position = Vector2(102, 111)
@@ -99,5 +86,5 @@ states/left/node = SubResource("AnimationNodeAnimation_djeua")
states/left/position = Vector2(378, 179) states/left/position = Vector2(378, 179)
states/right/node = SubResource("AnimationNodeAnimation_8wbs7") states/right/node = SubResource("AnimationNodeAnimation_8wbs7")
states/right/position = Vector2(701, 179) states/right/position = Vector2(701, 179)
transitions = ["Start", "forward", SubResource("AnimationNodeStateMachineTransition_ivy74"), "forward", "left", SubResource("AnimationNodeStateMachineTransition_x7uye"), "left", "forward", SubResource("AnimationNodeStateMachineTransition_djeua"), "forward", "back", SubResource("AnimationNodeStateMachineTransition_8wbs7"), "back", "forward", SubResource("AnimationNodeStateMachineTransition_mnr4r"), "left", "right", SubResource("AnimationNodeStateMachineTransition_l2wq1"), "right", "left", SubResource("AnimationNodeStateMachineTransition_jwlar"), "back", "left", SubResource("AnimationNodeStateMachineTransition_fdoul"), "left", "back", SubResource("AnimationNodeStateMachineTransition_kpotx"), "forward", "right", SubResource("AnimationNodeStateMachineTransition_lfuuf"), "right", "forward", SubResource("AnimationNodeStateMachineTransition_dfvqa"), "right", "back", SubResource("AnimationNodeStateMachineTransition_dnvt3"), "back", "right", SubResource("AnimationNodeStateMachineTransition_m7aft"), "Start", "left", SubResource("AnimationNodeStateMachineTransition_v537b"), "Start", "right", SubResource("AnimationNodeStateMachineTransition_11ejb"), "Start", "back", SubResource("AnimationNodeStateMachineTransition_ear7g")] transitions = ["Start", "forward", SubResource("AnimationNodeStateMachineTransition_ivy74"), "forward", "left", SubResource("AnimationNodeStateMachineTransition_x7uye"), "left", "forward", SubResource("AnimationNodeStateMachineTransition_djeua"), "forward", "back", SubResource("AnimationNodeStateMachineTransition_8wbs7"), "back", "forward", SubResource("AnimationNodeStateMachineTransition_mnr4r"), "left", "right", SubResource("AnimationNodeStateMachineTransition_l2wq1"), "right", "left", SubResource("AnimationNodeStateMachineTransition_jwlar"), "back", "left", SubResource("AnimationNodeStateMachineTransition_fdoul"), "left", "back", SubResource("AnimationNodeStateMachineTransition_kpotx"), "forward", "right", SubResource("AnimationNodeStateMachineTransition_lfuuf"), "right", "forward", SubResource("AnimationNodeStateMachineTransition_dfvqa"), "right", "back", SubResource("AnimationNodeStateMachineTransition_dnvt3"), "back", "right", SubResource("AnimationNodeStateMachineTransition_m7aft")]
graph_offset = Vector2(0, 26.7654) graph_offset = Vector2(0, 26.7654)

View File

@@ -36,11 +36,11 @@ public partial class FollowBehavior : Node3D, IBehavior
SetPhysicsProcess(false); SetPhysicsProcess(false);
} }
private void OnTimeout() => _navigationAgent.TargetPosition = _player.CurrentPosition; private void OnTimeout() => _navigationAgent.TargetPosition = _player.GlobalPosition;
public void StartFollow(NavigationAgent3D navigationAgent) public void StartFollow(NavigationAgent3D navigationAgent)
{ {
_navigationAgent.TargetPosition = _player.CurrentPosition; _navigationAgent.TargetPosition = _player.GlobalPosition;
_thinkTimer.Start(); _thinkTimer.Start();
SetPhysicsProcess(true); SetPhysicsProcess(true);
} }

View File

@@ -1,9 +1,10 @@
[gd_scene load_steps=88 format=3 uid="uid://bimjnsu52y3xi"] [gd_scene load_steps=90 format=3 uid="uid://bimjnsu52y3xi"]
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_oh25a"] [ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_oh25a"]
[ext_resource type="Texture2D" uid="uid://dd0ia6isdqg61" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 1.png" id="1_pbx41"] [ext_resource type="Texture2D" uid="uid://dd0ia6isdqg61" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 1.png" id="1_pbx41"]
[ext_resource type="Texture2D" uid="uid://bs4ico5ouo5d3" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 2.png" id="2_0vbio"] [ext_resource type="Texture2D" uid="uid://bs4ico5ouo5d3" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 2.png" id="2_0vbio"]
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_7hf3j"] [ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_7hf3j"]
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="3_8wbs7"]
[ext_resource type="Material" uid="uid://x2bv1q51mcjq" path="res://src/enemy/PixelMelt.tres" id="3_ivy74"] [ext_resource type="Material" uid="uid://x2bv1q51mcjq" path="res://src/enemy/PixelMelt.tres" id="3_ivy74"]
[ext_resource type="Texture2D" uid="uid://85ki5mc4h0vs" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 3.png" id="3_lae8t"] [ext_resource type="Texture2D" uid="uid://85ki5mc4h0vs" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 3.png" id="3_lae8t"]
[ext_resource type="Texture2D" uid="uid://bwt1m2frb3r0e" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 4.png" id="4_53wuj"] [ext_resource type="Texture2D" uid="uid://bwt1m2frb3r0e" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 4.png" id="4_53wuj"]
@@ -68,6 +69,12 @@ Name = "Sproingy"
Description = "He's smaller than I expected..." Description = "He's smaller than I expected..."
metadata/_custom_type_script = "uid://dlsgyx4i1jmp3" metadata/_custom_type_script = "uid://dlsgyx4i1jmp3"
[sub_resource type="Resource" id="Resource_8wbs7"]
script = ExtResource("3_8wbs7")
Damage = 10
ElementType = 0
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
[sub_resource type="ViewportTexture" id="ViewportTexture_h1kaf"] [sub_resource type="ViewportTexture" id="ViewportTexture_h1kaf"]
viewport_path = NodePath("Sprite3D/SubViewportContainer/SubViewport") viewport_path = NodePath("Sprite3D/SubViewportContainer/SubViewport")
@@ -819,8 +826,7 @@ transitions = ["Start", "Idle", SubResource("AnimationNodeStateMachineTransition
[node name="EnemyModelView" type="Node3D"] [node name="EnemyModelView" type="Node3D"]
script = ExtResource("1_oh25a") script = ExtResource("1_oh25a")
EnemyLoreInfo = SubResource("Resource_ivy74") EnemyLoreInfo = SubResource("Resource_ivy74")
_upperThreshold = null AttackData = SubResource("Resource_8wbs7")
_lowerThreshold = null
[node name="Sprite3D" type="Sprite3D" parent="."] [node name="Sprite3D" type="Sprite3D" parent="."]
transform = Transform3D(6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0) transform = Transform3D(6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0)

View File

@@ -1815,6 +1815,7 @@ states/Idle/position = Vector2(373, 100)
"states/Primary Attack/position" = Vector2(373, 218) "states/Primary Attack/position" = Vector2(373, 218)
"states/Secondary Attack/node" = ExtResource("196_e0gee") "states/Secondary Attack/node" = ExtResource("196_e0gee")
"states/Secondary Attack/position" = Vector2(588, 218) "states/Secondary Attack/position" = Vector2(588, 218)
states/Start/position = Vector2(198, 100)
states/Walking/node = ExtResource("197_mno7m") states/Walking/node = ExtResource("197_mno7m")
states/Walking/position = Vector2(588, 100) 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")] 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")]

View File

@@ -81,7 +81,7 @@ public partial class EdenPillar : Enemy3D, IHasPrimaryAttack, IHasSecondaryAttac
private float GetRotationAngle(float angleOffsetInRadians) private float GetRotationAngle(float angleOffsetInRadians)
{ {
var target = new Vector3(_player.CurrentPosition.X, Position.Y, _player.CurrentPosition.Z); var target = new Vector3(_player.GlobalPosition.X, Position.Y, _player.GlobalPosition.Z);
_rotation.LookAt(target, Vector3.Up, true); _rotation.LookAt(target, Vector3.Up, true);
_rotation.RotateY(Rotation.Y + angleOffsetInRadians); _rotation.RotateY(Rotation.Y + angleOffsetInRadians);
return _rotation.Rotation.Y; return _rotation.Rotation.Y;

View File

@@ -1,5 +1,6 @@
[gd_scene load_steps=188 format=4 uid="uid://b7ofk5cv4ldh"] [gd_scene load_steps=190 format=4 uid="uid://b7ofk5cv4ldh"]
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_crk52"]
[ext_resource type="Texture2D" uid="uid://bid5r6mhevna3" path="res://src/enemy/enemy_types/16. demon wall/model/ARM1_AREA_2_MAIN_222STONE.png" id="2_pkcrx"] [ext_resource type="Texture2D" uid="uid://bid5r6mhevna3" path="res://src/enemy/enemy_types/16. demon wall/model/ARM1_AREA_2_MAIN_222STONE.png" id="2_pkcrx"]
[ext_resource type="Script" uid="uid://vgvrmwsrwakf" path="res://src/enemy/enemy_types/16. demon wall/DemonWallArm.cs" id="2_w0a5p"] [ext_resource type="Script" uid="uid://vgvrmwsrwakf" path="res://src/enemy/enemy_types/16. demon wall/DemonWallArm.cs" id="2_w0a5p"]
[ext_resource type="Texture2D" uid="uid://dkh83g7ce40i7" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_ao_1k.jpg" id="3_tn8ay"] [ext_resource type="Texture2D" uid="uid://dkh83g7ce40i7" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_ao_1k.jpg" id="3_tn8ay"]
@@ -8,6 +9,12 @@
[ext_resource type="Texture2D" uid="uid://wdncxtvw7xxw" path="res://src/vfx/Enemy/demon_wall_holy_orbs.png" id="6_554i8"] [ext_resource type="Texture2D" uid="uid://wdncxtvw7xxw" path="res://src/vfx/Enemy/demon_wall_holy_orbs.png" id="6_554i8"]
[ext_resource type="Texture2D" uid="uid://cp6jald32fyon" path="res://src/vfx/Enemy/demon wall holyorb blast section.png" id="7_ij2i2"] [ext_resource type="Texture2D" uid="uid://cp6jald32fyon" path="res://src/vfx/Enemy/demon wall holyorb blast section.png" id="7_ij2i2"]
[sub_resource type="Resource" id="Resource_crk52"]
script = ExtResource("2_crk52")
Damage = 10
ElementType = 0
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_wf4fg"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_wf4fg"]
resource_name = "STONE" resource_name = "STONE"
cull_mode = 2 cull_mode = 2
@@ -1344,7 +1351,7 @@ tracks/22/path = NodePath("1_ R TELLERIC PROJECTILE ARM/Skeleton3D/BoneAttachmen
tracks/22/interp = 1 tracks/22/interp = 1
tracks/22/loop_wrap = true tracks/22/loop_wrap = true
tracks/22/keys = { tracks/22/keys = {
"times": PackedFloat32Array(0, 0.3, 2.26667), "times": PackedFloat32Array(0, 0.3, 0.8),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [false, true, false] "values": [false, true, false]
@@ -1380,7 +1387,7 @@ tracks/25/path = NodePath("1_ R TELLERIC PROJECTILE ARM/Skeleton3D/BoneAttachmen
tracks/25/interp = 1 tracks/25/interp = 1
tracks/25/loop_wrap = true tracks/25/loop_wrap = true
tracks/25/keys = { tracks/25/keys = {
"times": PackedFloat32Array(0.0666667, 0.858373, 2.26667), "times": PackedFloat32Array(0.0666667, 0.858373, 1.36667),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [false, true, false] "values": [false, true, false]
@@ -1392,7 +1399,7 @@ tracks/26/path = NodePath("1_ R TELLERIC PROJECTILE ARM/Skeleton3D/BoneAttachmen
tracks/26/interp = 1 tracks/26/interp = 1
tracks/26/loop_wrap = true tracks/26/loop_wrap = true
tracks/26/keys = { tracks/26/keys = {
"times": PackedFloat32Array(0.0666667, 1.4, 2.26667), "times": PackedFloat32Array(0.0666667, 1.4, 1.9),
"transitions": PackedFloat32Array(1, 1, 1), "transitions": PackedFloat32Array(1, 1, 1),
"update": 1, "update": 1,
"values": [false, true, false] "values": [false, true, false]
@@ -1953,7 +1960,7 @@ animations = [{
[node name="Arm1" type="Node3D"] [node name="Arm1" type="Node3D"]
script = ExtResource("2_w0a5p") script = ExtResource("2_w0a5p")
PrimaryAttackElementalType = 2 AttackData = SubResource("Resource_crk52")
[node name="Pivot" type="Node3D" parent="."] [node name="Pivot" type="Node3D" parent="."]
unique_name_in_owner = true unique_name_in_owner = true
@@ -1970,43 +1977,43 @@ bones/0/name = "Bone"
bones/0/parent = -1 bones/0/parent = -1
bones/0/rest = Transform3D(0.664239, -0.5079, 0.548475, 0.747326, 0.467912, -0.471764, -0.017029, 0.723254, 0.690372, 1.32537, -1.1447, -1.67359) bones/0/rest = Transform3D(0.664239, -0.5079, 0.548475, 0.747326, 0.467912, -0.471764, -0.017029, 0.723254, 0.690372, 1.32537, -1.1447, -1.67359)
bones/0/enabled = true bones/0/enabled = true
bones/0/position = Vector3(1.40784, -1.06997, -0.968705) bones/0/position = Vector3(1.49292, -0.977413, -0.864047)
bones/0/rotation = Quaternion(0.0123396, 0.674013, 0.439247, 0.593815) bones/0/rotation = Quaternion(-0.0232671, 0.62584, 0.764734, 0.151543)
bones/0/scale = Vector3(1, 1, 1) bones/0/scale = Vector3(1, 1, 1)
bones/1/name = "Bone.001" bones/1/name = "Bone.001"
bones/1/parent = 0 bones/1/parent = 0
bones/1/rest = Transform3D(0.997342, -0.0728408, -0.00159767, 0.0728462, 0.996536, 0.0401248, -0.00133059, -0.0401345, 0.999193, 1.19209e-07, 1.85949, 3.57628e-07) bones/1/rest = Transform3D(0.997342, -0.0728408, -0.00159767, 0.0728462, 0.996536, 0.0401248, -0.00133059, -0.0401345, 0.999193, 1.19209e-07, 1.85949, 3.57628e-07)
bones/1/enabled = true bones/1/enabled = true
bones/1/position = Vector3(1.19209e-07, 1.85949, 3.57628e-07) bones/1/position = Vector3(1.19209e-07, 1.85949, 3.57628e-07)
bones/1/rotation = Quaternion(-0.190038, 0.356288, 0.291912, 0.867024) bones/1/rotation = Quaternion(0.641671, -0.0247244, -0.110593, 0.758562)
bones/1/scale = Vector3(1, 1, 1) bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "Bone.002" bones/2/name = "Bone.002"
bones/2/parent = 1 bones/2/parent = 1
bones/2/rest = Transform3D(0.175378, 0.963955, 0.200084, -0.983796, 0.179284, -0.00142574, -0.0372462, -0.196592, 0.979778, -1.19209e-07, 0.416929, 0) bones/2/rest = Transform3D(0.175378, 0.963955, 0.200084, -0.983796, 0.179284, -0.00142574, -0.0372462, -0.196592, 0.979778, -1.19209e-07, 0.416929, 0)
bones/2/enabled = true bones/2/enabled = true
bones/2/position = Vector3(-1.19209e-07, 0.416929, 0) bones/2/position = Vector3(-1.19209e-07, 0.416929, 0)
bones/2/rotation = Quaternion(-0.0530884, 0.10245, -0.708154, 0.696566) bones/2/rotation = Quaternion(-0.0638595, 0.0776872, -0.637462, 0.763891)
bones/2/scale = Vector3(1, 1, 1) bones/2/scale = Vector3(1, 1, 1)
bones/3/name = "Bone.003" bones/3/name = "Bone.003"
bones/3/parent = 2 bones/3/parent = 2
bones/3/rest = Transform3D(0.795965, -0.570793, -0.201581, 0.584249, 0.811523, 0.00907765, 0.158406, -0.124999, 0.97943, 0, 0.298125, -7.15256e-07) bones/3/rest = Transform3D(0.795965, -0.570793, -0.201581, 0.584249, 0.811523, 0.00907765, 0.158406, -0.124999, 0.97943, 0, 0.298125, -7.15256e-07)
bones/3/enabled = true bones/3/enabled = true
bones/3/position = Vector3(0, 0.298125, -7.15256e-07) bones/3/position = Vector3(0, 0.298125, -7.15256e-07)
bones/3/rotation = Quaternion(0.0575465, -0.131542, 0.408228, 0.901518) bones/3/rotation = Quaternion(-0.0375077, -0.0918056, 0.293336, 0.950852)
bones/3/scale = Vector3(1, 1, 1) bones/3/scale = Vector3(1, 1, 1)
bones/4/name = "Bone.004" bones/4/name = "Bone.004"
bones/4/parent = 3 bones/4/parent = 3
bones/4/rest = Transform3D(0.989609, -0.143492, 0.00920886, 0.143739, 0.98559, -0.0891694, 0.00371892, 0.0895665, 0.995974, 2.38419e-07, 0.217615, -1.19209e-07) bones/4/rest = Transform3D(0.989609, -0.143492, 0.00920886, 0.143739, 0.98559, -0.0891694, 0.00371892, 0.0895665, 0.995974, 2.38419e-07, 0.217615, -1.19209e-07)
bones/4/enabled = true bones/4/enabled = true
bones/4/position = Vector3(2.38419e-07, 0.217615, -1.19209e-07) bones/4/position = Vector3(2.38419e-07, 0.217615, -1.19209e-07)
bones/4/rotation = Quaternion(-0.0197099, -0.0686087, 0.330507, 0.9411) bones/4/rotation = Quaternion(0.186175, 0.150689, 0.017675, 0.970731)
bones/4/scale = Vector3(1, 1, 1) bones/4/scale = Vector3(1, 1, 1)
bones/5/name = "Bone.005" bones/5/name = "Bone.005"
bones/5/parent = 1 bones/5/parent = 1
bones/5/rest = Transform3D(0.891186, 0.451267, 0.0463144, -0.453483, 0.888891, 0.0650073, -0.0118328, -0.0789364, 0.996809, -1.19209e-07, 0.416929, 0) bones/5/rest = Transform3D(0.891186, 0.451267, 0.0463144, -0.453483, 0.888891, 0.0650073, -0.0118328, -0.0789364, 0.996809, -1.19209e-07, 0.416929, 0)
bones/5/enabled = true bones/5/enabled = true
bones/5/position = Vector3(-1.19209e-07, 0.416929, 0) bones/5/position = Vector3(-1.19209e-07, 0.416929, 0)
bones/5/rotation = Quaternion(0.0227858, -0.0067049, -0.254039, 0.966902) bones/5/rotation = Quaternion(0.156758, 0.0802091, -0.22941, 0.957269)
bones/5/scale = Vector3(1, 1, 1) bones/5/scale = Vector3(1, 1, 1)
bones/6/name = "Bone.006" bones/6/name = "Bone.006"
bones/6/parent = 5 bones/6/parent = 5
@@ -2020,7 +2027,7 @@ bones/7/parent = 6
bones/7/rest = Transform3D(0.999951, -0.0095981, -0.00243508, 0.00990217, 0.968863, 0.247398, -1.52888e-05, -0.24741, 0.968911, -5.96046e-08, 0.229155, 1.19209e-07) bones/7/rest = Transform3D(0.999951, -0.0095981, -0.00243508, 0.00990217, 0.968863, 0.247398, -1.52888e-05, -0.24741, 0.968911, -5.96046e-08, 0.229155, 1.19209e-07)
bones/7/enabled = true bones/7/enabled = true
bones/7/position = Vector3(-5.96046e-08, 0.229155, 1.19209e-07) bones/7/position = Vector3(-5.96046e-08, 0.229155, 1.19209e-07)
bones/7/rotation = Quaternion(-0.124676, -0.000609761, 0.00491343, 0.992185) bones/7/rotation = Quaternion(-0.126436, -0.00933444, 0.0643938, 0.989838)
bones/7/scale = Vector3(1, 1, 1) bones/7/scale = Vector3(1, 1, 1)
bones/8/name = "Bone.008" bones/8/name = "Bone.008"
bones/8/parent = 7 bones/8/parent = 7
@@ -2034,91 +2041,91 @@ bones/9/parent = 1
bones/9/rest = Transform3D(0.998888, 0.0470342, 0.00321046, -0.047142, 0.997098, 0.0597768, -0.000389597, -0.0598616, 0.998207, -1.19209e-07, 0.416929, 0) bones/9/rest = Transform3D(0.998888, 0.0470342, 0.00321046, -0.047142, 0.997098, 0.0597768, -0.000389597, -0.0598616, 0.998207, -1.19209e-07, 0.416929, 0)
bones/9/enabled = true bones/9/enabled = true
bones/9/position = Vector3(-1.19209e-07, 0.416929, 0) bones/9/position = Vector3(-1.19209e-07, 0.416929, 0)
bones/9/rotation = Quaternion(-0.0299314, 0.000900694, -0.0235612, 0.999274) bones/9/rotation = Quaternion(0.166069, 0.0240288, -0.075139, 0.982954)
bones/9/scale = Vector3(1, 1, 1) bones/9/scale = Vector3(1, 1, 1)
bones/10/name = "Bone.010" bones/10/name = "Bone.010"
bones/10/parent = 9 bones/10/parent = 9
bones/10/rest = Transform3D(0.999465, -0.0299684, -0.0130876, 0.0321775, 0.972617, 0.230175, 0.00583128, -0.230473, 0.973061, -5.96046e-07, 0.347821, -4.76837e-07) bones/10/rest = Transform3D(0.999465, -0.0299684, -0.0130876, 0.0321775, 0.972617, 0.230175, 0.00583128, -0.230473, 0.973061, -5.96046e-07, 0.347821, -4.76837e-07)
bones/10/enabled = true bones/10/enabled = true
bones/10/position = Vector3(-5.96046e-07, 0.347821, -4.76837e-07) bones/10/position = Vector3(-5.96046e-07, 0.347821, -4.76837e-07)
bones/10/rotation = Quaternion(0.040836, 0.0124512, 0.020644, 0.998875) bones/10/rotation = Quaternion(-0.115831, -0.00474823, 0.0156484, 0.993134)
bones/10/scale = Vector3(1, 1, 1) bones/10/scale = Vector3(1, 1, 1)
bones/11/name = "Bone.011" bones/11/name = "Bone.011"
bones/11/parent = 10 bones/11/parent = 10
bones/11/rest = Transform3D(0.999927, -0.00347527, -0.0115401, 0.00624295, 0.968404, 0.249307, 0.0103091, -0.249361, 0.968356, 5.36442e-07, 0.236611, 0) bones/11/rest = Transform3D(0.999927, -0.00347527, -0.0115401, 0.00624295, 0.968404, 0.249307, 0.0103091, -0.249361, 0.968356, 5.36442e-07, 0.236611, 0)
bones/11/enabled = true bones/11/enabled = true
bones/11/position = Vector3(5.36442e-07, 0.236611, 0) bones/11/position = Vector3(5.36442e-07, 0.236611, 0)
bones/11/rotation = Quaternion(-0.351479, -0.0591771, 0.0168826, 0.934171) bones/11/rotation = Quaternion(-0.125856, -0.00555071, 0.00246106, 0.99203)
bones/11/scale = Vector3(1, 1, 1) bones/11/scale = Vector3(1, 1, 1)
bones/12/name = "Bone.012" bones/12/name = "Bone.012"
bones/12/parent = 11 bones/12/parent = 11
bones/12/rest = Transform3D(0.997952, 0.0219232, -0.0600952, -0.0135761, 0.990624, 0.13594, 0.062512, -0.134846, 0.988893, 1.07288e-06, 0.172989, -1.19209e-07) bones/12/rest = Transform3D(0.997952, 0.0219232, -0.0600952, -0.0135761, 0.990624, 0.13594, 0.062512, -0.134846, 0.988893, 1.07288e-06, 0.172989, -1.19209e-07)
bones/12/enabled = true bones/12/enabled = true
bones/12/position = Vector3(1.07288e-06, 0.172989, -1.19209e-07) bones/12/position = Vector3(1.07288e-06, 0.172989, -1.19209e-07)
bones/12/rotation = Quaternion(-0.296299, -0.0872988, 0.00370382, 0.95109) bones/12/rotation = Quaternion(-0.0680791, -0.0307861, -0.00888968, 0.997165)
bones/12/scale = Vector3(1, 1, 1) bones/12/scale = Vector3(1, 1, 1)
bones/13/name = "Bone.013" bones/13/name = "Bone.013"
bones/13/parent = 1 bones/13/parent = 1
bones/13/rest = Transform3D(0.924677, -0.380197, -0.0205529, 0.380735, 0.922776, 0.0593796, -0.0036102, -0.0627321, 0.998024, -1.19209e-07, 0.416929, 0) bones/13/rest = Transform3D(0.924677, -0.380197, -0.0205529, 0.380735, 0.922776, 0.0593796, -0.0036102, -0.0627321, 0.998024, -1.19209e-07, 0.416929, 0)
bones/13/enabled = true bones/13/enabled = true
bones/13/position = Vector3(-1.19209e-07, 0.416929, 0) bones/13/position = Vector3(-1.19209e-07, 0.416929, 0)
bones/13/rotation = Quaternion(0.144524, 0.065323, 0.166822, 0.973148) bones/13/rotation = Quaternion(0.058868, 0.00703708, 0.0456108, 0.997198)
bones/13/scale = Vector3(1, 1, 1) bones/13/scale = Vector3(1, 1, 1)
bones/14/name = "Bone.014" bones/14/name = "Bone.014"
bones/14/parent = 13 bones/14/parent = 13
bones/14/rest = Transform3D(0.961502, 0.268958, 0.0563539, -0.274785, 0.938956, 0.207014, 0.00276425, -0.214529, 0.976714, -5.36442e-07, 0.369994, -4.76837e-07) bones/14/rest = Transform3D(0.961502, 0.268958, 0.0563539, -0.274785, 0.938956, 0.207014, 0.00276425, -0.214529, 0.976714, -5.36442e-07, 0.369994, -4.76837e-07)
bones/14/enabled = true bones/14/enabled = true
bones/14/position = Vector3(-5.36442e-07, 0.369994, -4.76837e-07) bones/14/position = Vector3(-5.36442e-07, 0.369994, -4.76837e-07)
bones/14/rotation = Quaternion(-0.214199, -0.0220554, -0.14695, 0.965421) bones/14/rotation = Quaternion(-0.856067, -0.000184571, 0.034124, 0.515738)
bones/14/scale = Vector3(1, 1, 1) bones/14/scale = Vector3(1, 1, 1)
bones/15/name = "Bone.015" bones/15/name = "Bone.015"
bones/15/parent = 14 bones/15/parent = 14
bones/15/rest = Transform3D(0.991898, -0.123693, -0.0289439, 0.12423, 0.896879, 0.424471, -0.026545, -0.424628, 0.904979, -1.63913e-07, 0.248163, 0) bones/15/rest = Transform3D(0.991898, -0.123693, -0.0289439, 0.12423, 0.896879, 0.424471, -0.026545, -0.424628, 0.904979, -1.63913e-07, 0.248163, 0)
bones/15/enabled = true bones/15/enabled = true
bones/15/position = Vector3(-1.63913e-07, 0.248163, 0) bones/15/position = Vector3(-1.63913e-07, 0.248163, 0)
bones/15/rotation = Quaternion(-0.217968, -0.000615816, 0.0636434, 0.973878) bones/15/rotation = Quaternion(-0.816669, 0.067689, 0.0768337, 0.567949)
bones/15/scale = Vector3(1, 1, 1) bones/15/scale = Vector3(1, 1, 1)
bones/16/name = "Bone.016" bones/16/name = "Bone.016"
bones/16/parent = 15 bones/16/parent = 15
bones/16/rest = Transform3D(0.985406, 0.151262, 0.0780702, -0.133163, 0.97071, -0.199976, -0.106032, 0.186662, 0.976686, 3.20375e-07, 0.160424, -2.98023e-07) bones/16/rest = Transform3D(0.985406, 0.151262, 0.0780702, -0.133163, 0.97071, -0.199976, -0.106032, 0.186662, 0.976686, 3.20375e-07, 0.160424, -2.98023e-07)
bones/16/enabled = true bones/16/enabled = true
bones/16/position = Vector3(3.20375e-07, 0.160424, -2.98023e-07) bones/16/position = Vector3(3.20375e-07, 0.160424, -2.98023e-07)
bones/16/rotation = Quaternion(-0.172602, -0.0448319, -0.159063, 0.971029) bones/16/rotation = Quaternion(-0.395139, 0.0820319, -0.0537277, 0.913373)
bones/16/scale = Vector3(1, 1, 1) bones/16/scale = Vector3(1, 1, 1)
bones/17/name = "Bone.017" bones/17/name = "Bone.017"
bones/17/parent = 1 bones/17/parent = 1
bones/17/rest = Transform3D(0.731154, -0.681923, -0.0198731, 0.682037, 0.729994, 0.0439829, -0.0154858, -0.0457125, 0.998835, -1.19209e-07, 0.416929, 0) bones/17/rest = Transform3D(0.731154, -0.681923, -0.0198731, 0.682037, 0.729994, 0.0439829, -0.0154858, -0.0457125, 0.998835, -1.19209e-07, 0.416929, 0)
bones/17/enabled = true bones/17/enabled = true
bones/17/position = Vector3(-1.19209e-07, 0.416929, 0) bones/17/position = Vector3(-1.19209e-07, 0.416929, 0)
bones/17/rotation = Quaternion(-0.0814658, -0.0778514, 0.520065, 0.846661) bones/17/rotation = Quaternion(0.0651369, -0.000630724, 0.166016, 0.983969)
bones/17/scale = Vector3(1, 1, 1) bones/17/scale = Vector3(1, 1, 1)
bones/18/name = "Bone.018" bones/18/name = "Bone.018"
bones/18/parent = 17 bones/18/parent = 17
bones/18/rest = Transform3D(0.857942, 0.502854, 0.105234, -0.513704, 0.842316, 0.163131, -0.00660927, -0.194016, 0.980976, 4.17233e-07, 0.400229, -2.38419e-07) bones/18/rest = Transform3D(0.857942, 0.502854, 0.105234, -0.513704, 0.842316, 0.163131, -0.00660927, -0.194016, 0.980976, 4.17233e-07, 0.400229, -2.38419e-07)
bones/18/enabled = true bones/18/enabled = true
bones/18/position = Vector3(4.17233e-07, 0.400229, -2.38419e-07) bones/18/position = Vector3(4.17233e-07, 0.400229, -2.38419e-07)
bones/18/rotation = Quaternion(-0.0930721, 0.0291462, -0.264914, 0.959327) bones/18/rotation = Quaternion(-0.848862, 0.0085005, 0.0755041, 0.523126)
bones/18/scale = Vector3(1, 1, 1) bones/18/scale = Vector3(1, 1, 1)
bones/19/name = "Bone.019" bones/19/name = "Bone.019"
bones/19/parent = 18 bones/19/parent = 18
bones/19/rest = Transform3D(0.998612, 0.0399293, -0.034358, -0.038507, 0.998412, 0.0411089, 0.0359449, -0.0397288, 0.998564, 1.04308e-07, 0.196712, 4.76837e-07) bones/19/rest = Transform3D(0.998612, 0.0399293, -0.034358, -0.038507, 0.998412, 0.0411089, 0.0359449, -0.0397288, 0.998564, 1.04308e-07, 0.196712, 4.76837e-07)
bones/19/enabled = true bones/19/enabled = true
bones/19/position = Vector3(1.04308e-07, 0.196712, 4.76837e-07) bones/19/position = Vector3(1.04308e-07, 0.196712, 4.76837e-07)
bones/19/rotation = Quaternion(-0.0202206, -0.0175854, -0.0196199, 0.999448) bones/19/rotation = Quaternion(-0.685061, 0.0717736, 0.0292193, 0.724352)
bones/19/scale = Vector3(1, 1, 1) bones/19/scale = Vector3(1, 1, 1)
bones/20/name = "Bone.020" bones/20/name = "Bone.020"
bones/20/parent = 19 bones/20/parent = 19
bones/20/rest = Transform3D(0.986969, -0.15974, -0.0193679, 0.158639, 0.945818, 0.283305, -0.0269366, -0.282686, 0.958834, -1.04308e-07, 0.127214, -1.19209e-07) bones/20/rest = Transform3D(0.986969, -0.15974, -0.0193679, 0.158639, 0.945818, 0.283305, -0.0269366, -0.282686, 0.958834, -1.04308e-07, 0.127214, -1.19209e-07)
bones/20/enabled = true bones/20/enabled = true
bones/20/position = Vector3(-1.04308e-07, 0.127214, -1.19209e-07) bones/20/position = Vector3(-1.04308e-07, 0.127214, -1.19209e-07)
bones/20/rotation = Quaternion(-0.143455, 0.0019183, 0.0806953, 0.98636) bones/20/rotation = Quaternion(-0.594904, 0.0842665, 0.117064, 0.790749)
bones/20/scale = Vector3(1, 1, 1) bones/20/scale = Vector3(1, 1, 1)
bones/21/name = "Bone.021" bones/21/name = "Bone.021"
bones/21/parent = -1 bones/21/parent = -1
bones/21/rest = Transform3D(0.638395, -0.466665, -0.612107, -0.416251, 0.459614, -0.784532, 0.647447, 0.755632, 0.0991655, 2.29161, -2.09633, -3.23813) bones/21/rest = Transform3D(0.638395, -0.466665, -0.612107, -0.416251, 0.459614, -0.784532, 0.647447, 0.755632, 0.0991655, 2.29161, -2.09633, -3.23813)
bones/21/enabled = true bones/21/enabled = true
bones/21/position = Vector3(2.1845, -0.249322, -2.77981) bones/21/position = Vector3(2.042, -0.451989, -2.88672)
bones/21/rotation = Quaternion(0.725462, 0.0455603, 0.423981, 0.540249) bones/21/rotation = Quaternion(0.528824, 0.329629, 0.5801, 0.524571)
bones/21/scale = Vector3(1, 1, 1) bones/21/scale = Vector3(1, 1, 1)
[node name="CHEST_006" type="MeshInstance3D" parent="Pivot/ARM1/1_ R TELLERIC PROJECTILE ARM/Skeleton3D"] [node name="CHEST_006" type="MeshInstance3D" parent="Pivot/ARM1/1_ R TELLERIC PROJECTILE ARM/Skeleton3D"]
@@ -2126,7 +2133,7 @@ mesh = SubResource("ArrayMesh_5cjg8")
skin = SubResource("Skin_my7ts") skin = SubResource("Skin_my7ts")
[node name="BoneAttachment3D" type="BoneAttachment3D" parent="Pivot/ARM1/1_ R TELLERIC PROJECTILE ARM/Skeleton3D"] [node name="BoneAttachment3D" type="BoneAttachment3D" parent="Pivot/ARM1/1_ R TELLERIC PROJECTILE ARM/Skeleton3D"]
transform = Transform3D(-0.918527, 0.107575, 0.38044, 0.314263, -0.385204, 0.867673, 0.239887, 0.91654, 0.320013, 0.644265, -0.0976639, 1.01292) transform = Transform3D(-0.860738, -0.107977, -0.497465, 0.400607, -0.746631, -0.53109, -0.314077, -0.656418, 0.685909, 1.04365, -0.665394, 1.30351)
bone_name = "Bone.019" bone_name = "Bone.019"
bone_idx = 19 bone_idx = 19
@@ -2214,6 +2221,7 @@ light_energy = 2.0
omni_range = 2.781 omni_range = 2.781
[node name="AnimationPlayer" type="AnimationPlayer" parent="Pivot/ARM1"] [node name="AnimationPlayer" type="AnimationPlayer" parent="Pivot/ARM1"]
unique_name_in_owner = true
libraries = { libraries = {
&"": SubResource("AnimationLibrary_utjtd") &"": SubResource("AnimationLibrary_utjtd")
} }

View File

@@ -1,11 +1,18 @@
[gd_scene load_steps=27 format=4 uid="uid://ctlvo2kw5r0ey"] [gd_scene load_steps=29 format=4 uid="uid://ctlvo2kw5r0ey"]
[ext_resource type="Script" uid="uid://vgvrmwsrwakf" path="res://src/enemy/enemy_types/16. demon wall/DemonWallArm.cs" id="1_jkuo4"] [ext_resource type="Script" uid="uid://vgvrmwsrwakf" path="res://src/enemy/enemy_types/16. demon wall/DemonWallArm.cs" id="1_jkuo4"]
[ext_resource type="Texture2D" uid="uid://fjwfbrwtb7ps" path="res://src/enemy/enemy_types/16. demon wall/model/ARM2_AREA_2_MAIN_222STONE.png" id="2_hmqyn"] [ext_resource type="Texture2D" uid="uid://fjwfbrwtb7ps" path="res://src/enemy/enemy_types/16. demon wall/model/ARM2_AREA_2_MAIN_222STONE.png" id="2_hmqyn"]
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_phvjc"]
[ext_resource type="Texture2D" uid="uid://dkh83g7ce40i7" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_ao_1k.jpg" id="3_wpd4r"] [ext_resource type="Texture2D" uid="uid://dkh83g7ce40i7" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_ao_1k.jpg" id="3_wpd4r"]
[ext_resource type="Texture2D" uid="uid://bx25c4uynoy1r" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_normal_opengl_1k.png" id="4_phvjc"] [ext_resource type="Texture2D" uid="uid://bx25c4uynoy1r" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_normal_opengl_1k.png" id="4_phvjc"]
[ext_resource type="Texture2D" uid="uid://brgmdx0p03syp" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_roughness_1k.jpg" id="5_ctuoa"] [ext_resource type="Texture2D" uid="uid://brgmdx0p03syp" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_roughness_1k.jpg" id="5_ctuoa"]
[sub_resource type="Resource" id="Resource_phvjc"]
script = ExtResource("2_phvjc")
Damage = 10
ElementType = 0
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pchf4"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pchf4"]
resource_name = "STONE" resource_name = "STONE"
cull_mode = 2 cull_mode = 2
@@ -737,6 +744,7 @@ material = SubResource("ShaderMaterial_k4tl8")
[node name="Arm2" type="Node3D"] [node name="Arm2" type="Node3D"]
script = ExtResource("1_jkuo4") script = ExtResource("1_jkuo4")
AttackData = SubResource("Resource_phvjc")
[node name="Pivot" type="Node3D" parent="."] [node name="Pivot" type="Node3D" parent="."]
unique_name_in_owner = true unique_name_in_owner = true
@@ -753,155 +761,155 @@ bones/0/name = "Bone"
bones/0/parent = -1 bones/0/parent = -1
bones/0/rest = Transform3D(0.0151222, 0.673616, -0.738927, -0.999829, 0.0180683, -0.00399019, 0.0106633, 0.738861, 0.673774, -1.71286, 0.00923252, -1.71285) bones/0/rest = Transform3D(0.0151222, 0.673616, -0.738927, -0.999829, 0.0180683, -0.00399019, 0.0106633, 0.738861, 0.673774, -1.71286, 0.00923252, -1.71285)
bones/0/enabled = true bones/0/enabled = true
bones/0/position = Vector3(-2.04279, 0.628214, -1.77738) bones/0/position = Vector3(-1.71026, 0.829431, -1.5194)
bones/0/rotation = Quaternion(0.553646, -0.462054, -0.468912, 0.510004) bones/0/rotation = Quaternion(0.0740812, -0.451103, -0.66238, 0.593524)
bones/0/scale = Vector3(1, 1, 1) bones/0/scale = Vector3(1, 1, 1)
bones/1/name = "Bone.001" bones/1/name = "Bone.001"
bones/1/parent = 0 bones/1/parent = 0
bones/1/rest = Transform3D(0.997342, 0.0728408, -0.00158073, -0.072718, 0.996536, 0.0403565, 0.00451486, -0.0401343, 0.999184, -4.4331e-07, 1.85949, -4.81494e-07) bones/1/rest = Transform3D(0.997342, 0.0728408, -0.00158073, -0.072718, 0.996536, 0.0403565, 0.00451486, -0.0401343, 0.999184, -4.4331e-07, 1.85949, -4.81494e-07)
bones/1/enabled = true bones/1/enabled = true
bones/1/position = Vector3(-4.4331e-07, 1.85949, -4.81494e-07) bones/1/position = Vector3(-4.4331e-07, 1.85949, -4.81494e-07)
bones/1/rotation = Quaternion(0.00595559, -0.555987, 0.0306637, 0.830604) bones/1/rotation = Quaternion(0.22166, -0.196224, 0.0508024, 0.953825)
bones/1/scale = Vector3(1, 1, 1) bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "Bone.002" bones/2/name = "Bone.002"
bones/2/parent = 1 bones/2/parent = 1
bones/2/rest = Transform3D(0.189846, -0.964577, -0.183168, 0.981103, 0.179283, 0.0727582, -0.037342, -0.19352, 0.980385, -9.68575e-08, 0.416929, 8.61473e-09) bones/2/rest = Transform3D(0.189846, -0.964577, -0.183168, 0.981103, 0.179283, 0.0727582, -0.037342, -0.19352, 0.980385, -9.68575e-08, 0.416929, 8.61473e-09)
bones/2/enabled = true bones/2/enabled = true
bones/2/position = Vector3(-9.68575e-08, 0.416929, 8.61473e-09) bones/2/position = Vector3(-9.68575e-08, 0.416929, 8.61473e-09)
bones/2/rotation = Quaternion(-0.413777, 0.0246759, 0.548295, 0.726328) bones/2/rotation = Quaternion(-0.242306, 0.269493, 0.756669, 0.544163)
bones/2/scale = Vector3(1, 1, 1) bones/2/scale = Vector3(1, 1, 1)
bones/3/name = "Bone.003" bones/3/name = "Bone.003"
bones/3/parent = 2 bones/3/parent = 2
bones/3/rest = Transform3D(0.810203, 0.578594, -0.0938093, -0.560363, 0.811523, 0.165602, 0.171945, -0.0816043, 0.981721, -4.76837e-07, 0.298125, -2.68221e-07) bones/3/rest = Transform3D(0.810203, 0.578594, -0.0938093, -0.560363, 0.811523, 0.165602, 0.171945, -0.0816043, 0.981721, -4.76837e-07, 0.298125, -2.68221e-07)
bones/3/enabled = true bones/3/enabled = true
bones/3/position = Vector3(-4.76837e-07, 0.298125, -2.68221e-07) bones/3/position = Vector3(-4.76837e-07, 0.298125, -2.68221e-07)
bones/3/rotation = Quaternion(-0.265917, -0.517647, -0.55651, 0.592981) bones/3/rotation = Quaternion(-0.0489528, -0.104295, -0.424289, 0.898167)
bones/3/scale = Vector3(1, 1, 1) bones/3/scale = Vector3(1, 1, 1)
bones/4/name = "Bone.004" bones/4/name = "Bone.004"
bones/4/parent = 3 bones/4/parent = 3
bones/4/rest = Transform3D(0.986624, 0.16227, 0.0155213, -0.161299, 0.98559, -0.050939, -0.0235636, 0.0477541, 0.998581, 2.38419e-07, 0.217614, 5.96046e-08) bones/4/rest = Transform3D(0.986624, 0.16227, 0.0155213, -0.161299, 0.98559, -0.050939, -0.0235636, 0.0477541, 0.998581, 2.38419e-07, 0.217614, 5.96046e-08)
bones/4/enabled = true bones/4/enabled = true
bones/4/position = Vector3(2.38419e-07, 0.217614, 5.96046e-08) bones/4/position = Vector3(2.38419e-07, 0.217614, 5.96046e-08)
bones/4/rotation = Quaternion(-0.235352, 0.28963, -0.380433, 0.846165) bones/4/rotation = Quaternion(0.0489722, -0.135712, -0.308985, 0.94006)
bones/4/scale = Vector3(1, 1, 1) bones/4/scale = Vector3(1, 1, 1)
bones/5/name = "Bone.005" bones/5/name = "Bone.005"
bones/5/parent = 1 bones/5/parent = 1
bones/5/rest = Transform3D(0.89182, -0.451516, 0.0281062, 0.446851, 0.888891, 0.100982, -0.0705786, -0.0774989, 0.994491, -9.68575e-08, 0.416929, 8.61473e-09) bones/5/rest = Transform3D(0.89182, -0.451516, 0.0281062, 0.446851, 0.888891, 0.100982, -0.0705786, -0.0774989, 0.994491, -9.68575e-08, 0.416929, 8.61473e-09)
bones/5/enabled = true bones/5/enabled = true
bones/5/position = Vector3(-9.68575e-08, 0.416929, 8.61473e-09) bones/5/position = Vector3(-9.68575e-08, 0.416929, 8.61473e-09)
bones/5/rotation = Quaternion(-0.0359133, 0.0244231, 0.2361, 0.970758) bones/5/rotation = Quaternion(0.249233, -0.00436698, 0.362533, 0.898017)
bones/5/scale = Vector3(1, 1, 1) bones/5/scale = Vector3(1, 1, 1)
bones/6/name = "Bone.006" bones/6/name = "Bone.006"
bones/6/parent = 5 bones/6/parent = 5
bones/6/rest = Transform3D(0.941856, 0.326827, -0.0780507, -0.307446, 0.931929, 0.192316, 0.135592, -0.157137, 0.978224, 0, 0.366571, -7.45058e-08) bones/6/rest = Transform3D(0.941856, 0.326827, -0.0780507, -0.307446, 0.931929, 0.192316, 0.135592, -0.157137, 0.978224, 0, 0.366571, -7.45058e-08)
bones/6/enabled = true bones/6/enabled = true
bones/6/position = Vector3(0, 0.366571, -7.45058e-08) bones/6/position = Vector3(0, 0.366571, -7.45058e-08)
bones/6/rotation = Quaternion(-0.0177034, -0.103473, -0.259263, 0.960085) bones/6/rotation = Quaternion(-0.452367, -0.0571315, -0.0285445, 0.889542)
bones/6/scale = Vector3(1, 1, 1) bones/6/scale = Vector3(1, 1, 1)
bones/7/name = "Bone.007" bones/7/name = "Bone.007"
bones/7/parent = 6 bones/7/parent = 6
bones/7/rest = Transform3D(0.999908, -0.0133759, -0.00243115, 0.0135617, 0.968863, 0.247224, -0.000951389, -0.247234, 0.968955, 8.75443e-08, 0.229155, 1.19209e-07) bones/7/rest = Transform3D(0.999908, -0.0133759, -0.00243115, 0.0135617, 0.968863, 0.247224, -0.000951389, -0.247234, 0.968955, 8.75443e-08, 0.229155, 1.19209e-07)
bones/7/enabled = true bones/7/enabled = true
bones/7/position = Vector3(8.75443e-08, 0.229155, 1.19209e-07) bones/7/position = Vector3(8.75443e-08, 0.229155, 1.19209e-07)
bones/7/rotation = Quaternion(0.0450268, -0.0255307, -0.00750371, 0.998631) bones/7/rotation = Quaternion(-0.21602, -0.00775135, 0.0276496, 0.975967)
bones/7/scale = Vector3(1, 1, 1) bones/7/scale = Vector3(1, 1, 1)
bones/8/name = "Bone.008" bones/8/name = "Bone.008"
bones/8/parent = 7 bones/8/parent = 7
bones/8/rest = Transform3D(0.996542, 0.0206638, -0.0804854, -0.00720722, 0.986431, 0.164018, 0.0827825, -0.162871, 0.983168, -1.49012e-08, 0.142665, 6.85453e-07) bones/8/rest = Transform3D(0.996542, 0.0206638, -0.0804854, -0.00720722, 0.986431, 0.164018, 0.0827825, -0.162871, 0.983168, -1.49012e-08, 0.142665, 6.85453e-07)
bones/8/enabled = true bones/8/enabled = true
bones/8/position = Vector3(-1.49012e-08, 0.142665, 6.85453e-07) bones/8/position = Vector3(-1.49012e-08, 0.142665, 6.85453e-07)
bones/8/rotation = Quaternion(0.0903047, -0.0661763, -0.0523669, 0.992332) bones/8/rotation = Quaternion(-0.302908, -0.0680276, 0.0489726, 0.949327)
bones/8/scale = Vector3(1, 1, 1) bones/8/scale = Vector3(1, 1, 1)
bones/9/name = "Bone.009" bones/9/name = "Bone.009"
bones/9/parent = 1 bones/9/parent = 1
bones/9/rest = Transform3D(0.998879, -0.0472251, 0.00320398, 0.0469487, 0.997098, 0.0599298, -0.00602488, -0.0597122, 0.998197, -9.68575e-08, 0.416929, 8.61473e-09) bones/9/rest = Transform3D(0.998879, -0.0472251, 0.00320398, 0.0469487, 0.997098, 0.0599298, -0.00602488, -0.0597122, 0.998197, -9.68575e-08, 0.416929, 8.61473e-09)
bones/9/enabled = true bones/9/enabled = true
bones/9/position = Vector3(-9.68575e-08, 0.416929, 8.61473e-09) bones/9/position = Vector3(-9.68575e-08, 0.416929, 8.61473e-09)
bones/9/rotation = Quaternion(-0.0232149, 0.00560281, 0.0260133, 0.999376) bones/9/rotation = Quaternion(0.167222, 0.0985437, 0.0946512, 0.976405)
bones/9/scale = Vector3(1, 1, 1) bones/9/scale = Vector3(1, 1, 1)
bones/10/name = "Bone.010" bones/10/name = "Bone.010"
bones/10/parent = 9 bones/10/parent = 9
bones/10/rest = Transform3D(0.999443, 0.0307123, -0.0130676, -0.0268696, 0.972617, 0.230853, 0.0197998, -0.230373, 0.972901, 1.21567e-07, 0.347822, -2.08616e-07) bones/10/rest = Transform3D(0.999443, 0.0307123, -0.0130676, -0.0268696, 0.972617, 0.230853, 0.0197998, -0.230373, 0.972901, 1.21567e-07, 0.347822, -2.08616e-07)
bones/10/enabled = true bones/10/enabled = true
bones/10/position = Vector3(1.21567e-07, 0.347822, -2.08616e-07) bones/10/position = Vector3(1.21567e-07, 0.347822, -2.08616e-07)
bones/10/rotation = Quaternion(0.0167576, -0.0558181, -0.0061938, 0.998281) bones/10/rotation = Quaternion(-0.346872, -0.167372, 0.00737142, 0.922828)
bones/10/scale = Vector3(1, 1, 1) bones/10/scale = Vector3(1, 1, 1)
bones/11/name = "Bone.011" bones/11/name = "Bone.011"
bones/11/parent = 10 bones/11/parent = 10
bones/11/rest = Transform3D(0.999931, -0.0022571, -0.0115383, 0.00506303, 0.968404, 0.249333, 0.010611, -0.249375, 0.968349, 1.37836e-07, 0.236611, 3.53903e-07) bones/11/rest = Transform3D(0.999931, -0.0022571, -0.0115383, 0.00506303, 0.968404, 0.249333, 0.010611, -0.249375, 0.968349, 1.37836e-07, 0.236611, 3.53903e-07)
bones/11/enabled = true bones/11/enabled = true
bones/11/position = Vector3(1.37836e-07, 0.236611, 3.53903e-07) bones/11/position = Vector3(1.37836e-07, 0.236611, 3.53903e-07)
bones/11/rotation = Quaternion(0.0183635, -0.0218316, 0.013077, 0.999507) bones/11/rotation = Quaternion(-0.125676, -0.00558169, 0.0018447, 0.992054)
bones/11/scale = Vector3(1, 1, 1) bones/11/scale = Vector3(1, 1, 1)
bones/12/name = "Bone.012" bones/12/name = "Bone.012"
bones/12/parent = 11 bones/12/parent = 11
bones/12/rest = Transform3D(0.997806, -0.0280254, -0.0599811, 0.0357503, 0.990623, 0.131861, 0.0557232, -0.133716, 0.989452, 1.18278e-07, 0.172989, 2.01166e-07) bones/12/rest = Transform3D(0.997806, -0.0280254, -0.0599811, 0.0357503, 0.990623, 0.131861, 0.0557232, -0.133716, 0.989452, 1.18278e-07, 0.172989, 2.01166e-07)
bones/12/enabled = true bones/12/enabled = true
bones/12/position = Vector3(1.18278e-07, 0.172989, 2.01166e-07) bones/12/position = Vector3(1.18278e-07, 0.172989, 2.01166e-07)
bones/12/rotation = Quaternion(0.0513961, -0.044052, -0.0331636, 0.997155) bones/12/rotation = Quaternion(-0.238476, 0.0272146, 0.0764061, 0.967756)
bones/12/scale = Vector3(1, 1, 1) bones/12/scale = Vector3(1, 1, 1)
bones/13/name = "Bone.013" bones/13/name = "Bone.013"
bones/13/parent = 1 bones/13/parent = 1
bones/13/rest = Transform3D(0.92488, 0.379995, -0.0141585, -0.377983, 0.922776, 0.0749236, 0.0415357, -0.0639437, 0.997089, -9.68575e-08, 0.416929, 8.61473e-09) bones/13/rest = Transform3D(0.92488, 0.379995, -0.0141585, -0.377983, 0.922776, 0.0749236, 0.0415357, -0.0639437, 0.997089, -9.68575e-08, 0.416929, 8.61473e-09)
bones/13/enabled = true bones/13/enabled = true
bones/13/position = Vector3(-9.68575e-08, 0.416929, 8.61473e-09) bones/13/position = Vector3(-9.68575e-08, 0.416929, 8.61473e-09)
bones/13/rotation = Quaternion(-0.0420054, -0.00972719, -0.112364, 0.992731) bones/13/rotation = Quaternion(0.1788, 0.154566, -0.143507, 0.961013)
bones/13/scale = Vector3(1, 1, 1) bones/13/scale = Vector3(1, 1, 1)
bones/14/name = "Bone.014" bones/14/name = "Bone.014"
bones/14/parent = 13 bones/14/parent = 13
bones/14/rest = Transform3D(0.959373, -0.277519, 0.050852, 0.259649, 0.938956, 0.225709, -0.110386, -0.203336, 0.972867, 1.78814e-07, 0.369994, -3.53903e-07) bones/14/rest = Transform3D(0.959373, -0.277519, 0.050852, 0.259649, 0.938956, 0.225709, -0.110386, -0.203336, 0.972867, 1.78814e-07, 0.369994, -3.53903e-07)
bones/14/enabled = true bones/14/enabled = true
bones/14/position = Vector3(1.78814e-07, 0.369994, -3.53903e-07) bones/14/position = Vector3(1.78814e-07, 0.369994, -3.53903e-07)
bones/14/rotation = Quaternion(-0.8809, -0.119386, 0.00312777, 0.457987) bones/14/rotation = Quaternion(-0.258946, -0.106873, 0.0272923, 0.959573)
bones/14/scale = Vector3(1, 1, 1) bones/14/scale = Vector3(1, 1, 1)
bones/15/name = "Bone.015" bones/15/name = "Bone.015"
bones/15/parent = 14 bones/15/parent = 14
bones/15/rest = Transform3D(0.987789, 0.153061, -0.029059, -0.126507, 0.896881, 0.423794, 0.0909288, -0.414943, 0.905292, -5.96046e-08, 0.248162, 5.96046e-08) bones/15/rest = Transform3D(0.987789, 0.153061, -0.029059, -0.126507, 0.896881, 0.423794, 0.0909288, -0.414943, 0.905292, -5.96046e-08, 0.248162, 5.96046e-08)
bones/15/enabled = true bones/15/enabled = true
bones/15/position = Vector3(-5.96046e-08, 0.248162, 5.96046e-08) bones/15/position = Vector3(-5.96046e-08, 0.248162, 5.96046e-08)
bones/15/rotation = Quaternion(-0.783805, -0.0455323, -0.0450259, 0.617696) bones/15/rotation = Quaternion(-0.328658, -0.00201829, 0.090301, 0.94012)
bones/15/scale = Vector3(1, 1, 1) bones/15/scale = Vector3(1, 1, 1)
bones/16/name = "Bone.016" bones/16/name = "Bone.016"
bones/16/parent = 15 bones/16/parent = 15
bones/16/rest = Transform3D(0.985539, -0.152261, 0.0743639, 0.163269, 0.970709, -0.17626, -0.0453481, 0.185853, 0.98153, -1.78814e-07, 0.160425, -4.02331e-07) bones/16/rest = Transform3D(0.985539, -0.152261, 0.0743639, 0.163269, 0.970709, -0.17626, -0.0453481, 0.185853, 0.98153, -1.78814e-07, 0.160425, -4.02331e-07)
bones/16/enabled = true bones/16/enabled = true
bones/16/position = Vector3(-1.78814e-07, 0.160425, -4.02331e-07) bones/16/position = Vector3(-1.78814e-07, 0.160425, -4.02331e-07)
bones/16/rotation = Quaternion(-0.695006, -0.000138842, 0.0482284, 0.717385) bones/16/rotation = Quaternion(-0.12641, 0.0523709, 0.0656333, 0.988418)
bones/16/scale = Vector3(1, 1, 1) bones/16/scale = Vector3(1, 1, 1)
bones/17/name = "Bone.017" bones/17/name = "Bone.017"
bones/17/parent = 1 bones/17/parent = 1
bones/17/rest = Transform3D(0.731563, 0.681774, 8.39818e-05, -0.680319, 0.729994, 0.0653797, 0.0445129, -0.0478865, 0.99786, -9.68575e-08, 0.416929, 8.61473e-09) bones/17/rest = Transform3D(0.731563, 0.681774, 8.39818e-05, -0.680319, 0.729994, 0.0653797, 0.0445129, -0.0478865, 0.99786, -9.68575e-08, 0.416929, 8.61473e-09)
bones/17/enabled = true bones/17/enabled = true
bones/17/position = Vector3(-9.68575e-08, 0.416929, 8.61473e-09) bones/17/position = Vector3(-9.68575e-08, 0.416929, 8.61473e-09)
bones/17/rotation = Quaternion(-0.0402354, -0.0157531, -0.236275, 0.970725) bones/17/rotation = Quaternion(0.182165, 0.0229952, -0.377521, 0.907615)
bones/17/scale = Vector3(1, 1, 1) bones/17/scale = Vector3(1, 1, 1)
bones/18/name = "Bone.018" bones/18/name = "Bone.018"
bones/18/parent = 17 bones/18/parent = 17
bones/18/rest = Transform3D(0.858902, -0.5087, 0.059257, 0.482273, 0.842315, 0.240663, -0.172338, -0.178128, 0.968798, 3.57628e-07, 0.400229, -2.95229e-07) bones/18/rest = Transform3D(0.858902, -0.5087, 0.059257, 0.482273, 0.842315, 0.240663, -0.172338, -0.178128, 0.968798, 3.57628e-07, 0.400229, -2.95229e-07)
bones/18/enabled = true bones/18/enabled = true
bones/18/position = Vector3(3.57628e-07, 0.400229, -2.95229e-07) bones/18/position = Vector3(3.57628e-07, 0.400229, -2.95229e-07)
bones/18/rotation = Quaternion(-0.814831, 0.0346116, -0.200371, 0.542867) bones/18/rotation = Quaternion(-0.32315, -0.324887, 0.359481, 0.812894)
bones/18/scale = Vector3(1, 1, 1) bones/18/scale = Vector3(1, 1, 1)
bones/19/name = "Bone.019" bones/19/name = "Bone.019"
bones/19/parent = 18 bones/19/parent = 18
bones/19/rest = Transform3D(0.998851, -0.0332967, -0.0344649, 0.0348099, 0.998413, 0.0442783, 0.0329358, -0.0454271, 0.998425, 0, 0.196712, 3.57628e-07) bones/19/rest = Transform3D(0.998851, -0.0332967, -0.0344649, 0.0348099, 0.998413, 0.0442783, 0.0329358, -0.0454271, 0.998425, 0, 0.196712, 3.57628e-07)
bones/19/enabled = true bones/19/enabled = true
bones/19/position = Vector3(0, 0.196712, 3.57628e-07) bones/19/position = Vector3(0, 0.196712, 3.57628e-07)
bones/19/rotation = Quaternion(-0.694139, -0.211747, -0.27267, 0.631653) bones/19/rotation = Quaternion(-0.0822222, -0.0122603, -0.00894785, 0.996499)
bones/19/scale = Vector3(1, 1, 1) bones/19/scale = Vector3(1, 1, 1)
bones/20/name = "Bone.020" bones/20/name = "Bone.020"
bones/20/parent = 19 bones/20/parent = 19
bones/20/rest = Transform3D(0.982791, 0.183548, -0.0207611, -0.170809, 0.945817, 0.276144, 0.0703217, -0.267845, 0.960892, 2.98023e-07, 0.127214, 5.96046e-08) bones/20/rest = Transform3D(0.982791, 0.183548, -0.0207611, -0.170809, 0.945817, 0.276144, 0.0703217, -0.267845, 0.960892, 2.98023e-07, 0.127214, 5.96046e-08)
bones/20/enabled = true bones/20/enabled = true
bones/20/position = Vector3(2.98023e-07, 0.127214, 5.96046e-08) bones/20/position = Vector3(2.98023e-07, 0.127214, 5.96046e-08)
bones/20/rotation = Quaternion(-0.672507, 0.0739211, 0.0366838, 0.735476) bones/20/rotation = Quaternion(-0.251732, -0.0454352, 0.0174863, 0.966572)
bones/20/scale = Vector3(1, 1, 1) bones/20/scale = Vector3(1, 1, 1)
bones/21/name = "Bone.021" bones/21/name = "Bone.021"
bones/21/parent = -1 bones/21/parent = -1
bones/21/rest = Transform3D(0.769842, 0.636233, -0.0505042, -0.0970478, 0.0384815, -0.994536, -0.630813, 0.770536, 0.0913697, -3.03019, -0.0704439, -3.30826) bones/21/rest = Transform3D(0.769842, 0.636233, -0.0505042, -0.0970478, 0.0384815, -0.994536, -0.630813, 0.770536, 0.0913697, -3.03019, -0.0704439, -3.30826)
bones/21/enabled = true bones/21/enabled = true
bones/21/position = Vector3(-2.06607, 0.879806, -3.83246) bones/21/position = Vector3(-2.25449, 0.699812, -3.51348)
bones/21/rotation = Quaternion(0.338171, -0.60599, -0.652831, 0.303692) bones/21/rotation = Quaternion(0.18431, -0.642888, -0.642625, 0.373842)
bones/21/scale = Vector3(1, 1, 1) bones/21/scale = Vector3(1, 1, 1)
[node name="CHEST_004" type="MeshInstance3D" parent="Pivot/ARM2/2_ R MAGIC ARM 4/Skeleton3D"] [node name="CHEST_004" type="MeshInstance3D" parent="Pivot/ARM2/2_ R MAGIC ARM 4/Skeleton3D"]
@@ -909,7 +917,7 @@ mesh = SubResource("ArrayMesh_ddgyy")
skin = SubResource("Skin_lcoox") skin = SubResource("Skin_lcoox")
[node name="BoneAttachment3D" type="BoneAttachment3D" parent="Pivot/ARM2/2_ R MAGIC ARM 4/Skeleton3D"] [node name="BoneAttachment3D" type="BoneAttachment3D" parent="Pivot/ARM2/2_ R MAGIC ARM 4/Skeleton3D"]
transform = Transform3D(-0.112841, 0.993339, 0.0233374, -0.616932, -0.0884549, 0.78203, 0.778885, 0.0738476, 0.622804, -2.11185, 0.533136, 0.495338) transform = Transform3D(0.942125, 0.259369, -0.212434, 0.0456806, 0.528416, 0.847756, 0.332135, -0.808396, 0.485986, -0.18816, 1.22954, 0.0758562)
bone_name = "Bone.002" bone_name = "Bone.002"
bone_idx = 2 bone_idx = 2

View File

@@ -1,10 +1,17 @@
[gd_scene load_steps=86 format=4 uid="uid://dxrgfh28wj5su"] [gd_scene load_steps=88 format=4 uid="uid://dxrgfh28wj5su"]
[ext_resource type="Script" uid="uid://vgvrmwsrwakf" path="res://src/enemy/enemy_types/16. demon wall/DemonWallArm.cs" id="1_fhrhk"] [ext_resource type="Script" uid="uid://vgvrmwsrwakf" path="res://src/enemy/enemy_types/16. demon wall/DemonWallArm.cs" id="1_fhrhk"]
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_4acx4"]
[ext_resource type="Texture2D" uid="uid://cnwnwfiellbi4" path="res://src/enemy/enemy_types/16. demon wall/model/ARM3_AREA_2_MAIN_222STONE.png" id="2_afuej"] [ext_resource type="Texture2D" uid="uid://cnwnwfiellbi4" path="res://src/enemy/enemy_types/16. demon wall/model/ARM3_AREA_2_MAIN_222STONE.png" id="2_afuej"]
[ext_resource type="Texture2D" uid="uid://bntxhgjbex8m1" path="res://src/enemy/enemy_types/16. demon wall/model/ARM3_concrete_0003_height_1k.png" id="3_gcbec"] [ext_resource type="Texture2D" uid="uid://bntxhgjbex8m1" path="res://src/enemy/enemy_types/16. demon wall/model/ARM3_concrete_0003_height_1k.png" id="3_gcbec"]
[ext_resource type="Texture2D" uid="uid://blqlb7bc65cv1" path="res://src/vfx/Enemy/DEMONWALL_MOVE_VISUALCUE.png" id="4_gcbec"] [ext_resource type="Texture2D" uid="uid://blqlb7bc65cv1" path="res://src/vfx/Enemy/DEMONWALL_MOVE_VISUALCUE.png" id="4_gcbec"]
[sub_resource type="Resource" id="Resource_4acx4"]
script = ExtResource("2_4acx4")
Damage = 0
ElementType = 0
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_enor0"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_enor0"]
resource_name = "STONE" resource_name = "STONE"
cull_mode = 2 cull_mode = 2
@@ -974,6 +981,7 @@ _data = {
[node name="Arm3" type="Node3D"] [node name="Arm3" type="Node3D"]
script = ExtResource("1_fhrhk") script = ExtResource("1_fhrhk")
AttackData = SubResource("Resource_4acx4")
[node name="ARM3" type="Node3D" parent="."] [node name="ARM3" type="Node3D" parent="."]
@@ -985,64 +993,64 @@ bones/0/name = "Bone"
bones/0/parent = -1 bones/0/parent = -1
bones/0/rest = Transform3D(-0.0590079, 0.671656, -0.73851, -0.998184, -0.0307104, 0.0518259, 0.0121292, 0.740227, 0.672248, -1.70411, 0.133377, -1.71641) bones/0/rest = Transform3D(-0.0590079, 0.671656, -0.73851, -0.998184, -0.0307104, 0.0518259, 0.0121292, 0.740227, 0.672248, -1.70411, 0.133377, -1.71641)
bones/0/enabled = true bones/0/enabled = true
bones/0/position = Vector3(-2.73775, 0.468596, -1.22531) bones/0/position = Vector3(-2.85148, 0.526529, -1.221)
bones/0/rotation = Quaternion(0.200842, -0.392181, -0.716197, 0.54122) bones/0/rotation = Quaternion(0.176403, -0.406312, -0.74143, 0.504057)
bones/0/scale = Vector3(1, 1, 1) bones/0/scale = Vector3(1, 1, 1)
bones/1/name = "Bone.001" bones/1/name = "Bone.001"
bones/1/parent = 0 bones/1/parent = 0
bones/1/rest = Transform3D(0.997342, 0.0728404, -0.00158077, -0.0727175, 0.996536, 0.0403564, 0.00451487, -0.0401342, 0.999184, 1.2666e-07, 1.85949, 0) bones/1/rest = Transform3D(0.997342, 0.0728404, -0.00158077, -0.0727175, 0.996536, 0.0403564, 0.00451487, -0.0401342, 0.999184, 1.2666e-07, 1.85949, 0)
bones/1/enabled = true bones/1/enabled = true
bones/1/position = Vector3(1.2666e-07, 1.85949, 0) bones/1/position = Vector3(1.2666e-07, 1.85949, 0)
bones/1/rotation = Quaternion(-0.151259, -0.496705, 0.156024, 0.840275) bones/1/rotation = Quaternion(-0.129554, -0.450316, 0.190666, 0.862599)
bones/1/scale = Vector3(1, 1, 1) bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "Bone.002" bones/2/name = "Bone.002"
bones/2/parent = 1 bones/2/parent = 1
bones/2/rest = Transform3D(0.189847, -0.964576, -0.183168, 0.981104, 0.179283, 0.0727586, -0.0373423, -0.19352, 0.980386, 8.9407e-08, 0.416929, -2.38419e-07) bones/2/rest = Transform3D(0.189847, -0.964576, -0.183168, 0.981104, 0.179283, 0.0727586, -0.0373423, -0.19352, 0.980386, 8.9407e-08, 0.416929, -2.38419e-07)
bones/2/enabled = true bones/2/enabled = true
bones/2/position = Vector3(8.9407e-08, 0.416929, -2.38419e-07) bones/2/position = Vector3(8.9407e-08, 0.416929, -2.38419e-07)
bones/2/rotation = Quaternion(-0.338372, -0.0949748, 0.71327, 0.606408) bones/2/rotation = Quaternion(-0.339053, -0.0891983, 0.743566, 0.569383)
bones/2/scale = Vector3(1, 1, 1) bones/2/scale = Vector3(1, 1, 1)
bones/3/name = "Bone.003" bones/3/name = "Bone.003"
bones/3/parent = 2 bones/3/parent = 2
bones/3/rest = Transform3D(0.810203, 0.578594, -0.0938098, -0.560363, 0.811523, 0.165603, 0.171946, -0.0816042, 0.981721, -1.78814e-07, 0.298124, 5.96046e-08) bones/3/rest = Transform3D(0.810203, 0.578594, -0.0938098, -0.560363, 0.811523, 0.165603, 0.171946, -0.0816042, 0.981721, -1.78814e-07, 0.298124, 5.96046e-08)
bones/3/enabled = true bones/3/enabled = true
bones/3/position = Vector3(-1.78814e-07, 0.298124, 5.96046e-08) bones/3/position = Vector3(-1.78814e-07, 0.298124, 5.96046e-08)
bones/3/rotation = Quaternion(-0.156375, 0.032684, -0.354513, 0.921303) bones/3/rotation = Quaternion(-0.159636, 0.012243, -0.397507, 0.903524)
bones/3/scale = Vector3(1, 1, 1) bones/3/scale = Vector3(1, 1, 1)
bones/4/name = "Bone.004" bones/4/name = "Bone.004"
bones/4/parent = 3 bones/4/parent = 3
bones/4/rest = Transform3D(0.986624, 0.16227, 0.0155225, -0.161298, 0.98559, -0.0509395, -0.0235648, 0.0477544, 0.998581, -2.98023e-07, 0.217615, 2.83122e-07) bones/4/rest = Transform3D(0.986624, 0.16227, 0.0155225, -0.161298, 0.98559, -0.0509395, -0.0235648, 0.0477544, 0.998581, -2.98023e-07, 0.217615, 2.83122e-07)
bones/4/enabled = true bones/4/enabled = true
bones/4/position = Vector3(-2.98023e-07, 0.217615, 2.83122e-07) bones/4/position = Vector3(-2.98023e-07, 0.217615, 2.83122e-07)
bones/4/rotation = Quaternion(-0.102239, 0.10942, -0.539565, 0.828519) bones/4/rotation = Quaternion(-0.135926, 0.0631315, -0.45165, 0.879517)
bones/4/scale = Vector3(1, 1, 1) bones/4/scale = Vector3(1, 1, 1)
bones/5/name = "Bone.005" bones/5/name = "Bone.005"
bones/5/parent = 1 bones/5/parent = 1
bones/5/rest = Transform3D(0.89182, -0.451516, 0.0281058, 0.446851, 0.888891, 0.100983, -0.0705783, -0.0774992, 0.994491, 8.9407e-08, 0.416929, -2.38419e-07) bones/5/rest = Transform3D(0.89182, -0.451516, 0.0281058, 0.446851, 0.888891, 0.100983, -0.0705783, -0.0774992, 0.994491, 8.9407e-08, 0.416929, -2.38419e-07)
bones/5/enabled = true bones/5/enabled = true
bones/5/position = Vector3(8.9407e-08, 0.416929, -2.38419e-07) bones/5/position = Vector3(8.9407e-08, 0.416929, -2.38419e-07)
bones/5/rotation = Quaternion(-0.230047, 0.212539, 0.0541331, 0.948143) bones/5/rotation = Quaternion(-0.243063, 0.220045, 0.0517508, 0.943304)
bones/5/scale = Vector3(1, 1, 1) bones/5/scale = Vector3(1, 1, 1)
bones/6/name = "Bone.006" bones/6/name = "Bone.006"
bones/6/parent = 5 bones/6/parent = 5
bones/6/rest = Transform3D(0.941855, 0.326829, -0.0780507, -0.307447, 0.931929, 0.192315, 0.135592, -0.157136, 0.978224, 2.98023e-07, 0.36657, -5.96046e-08) bones/6/rest = Transform3D(0.941855, 0.326829, -0.0780507, -0.307447, 0.931929, 0.192315, 0.135592, -0.157136, 0.978224, 2.98023e-07, 0.36657, -5.96046e-08)
bones/6/enabled = true bones/6/enabled = true
bones/6/position = Vector3(2.98023e-07, 0.36657, -5.96046e-08) bones/6/position = Vector3(2.98023e-07, 0.36657, -5.96046e-08)
bones/6/rotation = Quaternion(-0.436074, 0.311569, -0.0925453, 0.839166) bones/6/rotation = Quaternion(-0.364424, 0.306274, -0.141446, 0.867977)
bones/6/scale = Vector3(1, 1, 1) bones/6/scale = Vector3(1, 1, 1)
bones/7/name = "Bone.007" bones/7/name = "Bone.007"
bones/7/parent = 6 bones/7/parent = 6
bones/7/rest = Transform3D(0.999908, -0.0133746, -0.00243148, 0.0135605, 0.968863, 0.247226, -0.000950764, -0.247236, 0.968955, -5.36442e-07, 0.229155, 3.57628e-07) bones/7/rest = Transform3D(0.999908, -0.0133746, -0.00243148, 0.0135605, 0.968863, 0.247226, -0.000950764, -0.247236, 0.968955, -5.36442e-07, 0.229155, 3.57628e-07)
bones/7/enabled = true bones/7/enabled = true
bones/7/position = Vector3(-5.36442e-07, 0.229155, 3.57628e-07) bones/7/position = Vector3(-5.36442e-07, 0.229155, 3.57628e-07)
bones/7/rotation = Quaternion(-0.621228, -0.0285121, -0.205159, 0.75576) bones/7/rotation = Quaternion(-0.548289, -0.0728312, -0.245804, 0.796025)
bones/7/scale = Vector3(1, 1, 1) bones/7/scale = Vector3(1, 1, 1)
bones/8/name = "Bone.008" bones/8/name = "Bone.008"
bones/8/parent = 7 bones/8/parent = 7
bones/8/rest = Transform3D(0.996542, 0.0206576, -0.0804851, -0.00720127, 0.986431, 0.164017, 0.0827812, -0.162871, 0.983169, -5.96046e-08, 0.142665, -3.12924e-07) bones/8/rest = Transform3D(0.996542, 0.0206576, -0.0804851, -0.00720127, 0.986431, 0.164017, 0.0827812, -0.162871, 0.983169, -5.96046e-08, 0.142665, -3.12924e-07)
bones/8/enabled = true bones/8/enabled = true
bones/8/position = Vector3(-5.96046e-08, 0.142665, -3.12924e-07) bones/8/position = Vector3(-5.96046e-08, 0.142665, -3.12924e-07)
bones/8/rotation = Quaternion(-0.14301, -0.0638604, 0.0436387, 0.986694) bones/8/rotation = Quaternion(-0.107425, -0.0505146, 0.01401, 0.99283)
bones/8/scale = Vector3(1, 1, 1) bones/8/scale = Vector3(1, 1, 1)
bones/9/name = "Bone.009" bones/9/name = "Bone.009"
bones/9/parent = 1 bones/9/parent = 1
@@ -1056,21 +1064,21 @@ bones/10/parent = 9
bones/10/rest = Transform3D(0.999443, 0.0307126, -0.0130675, -0.0268698, 0.972617, 0.230855, 0.0197998, -0.230375, 0.9729, 4.787e-07, 0.347821, -1.78814e-07) bones/10/rest = Transform3D(0.999443, 0.0307126, -0.0130675, -0.0268698, 0.972617, 0.230855, 0.0197998, -0.230375, 0.9729, 4.787e-07, 0.347821, -1.78814e-07)
bones/10/enabled = true bones/10/enabled = true
bones/10/position = Vector3(4.787e-07, 0.347821, -1.78814e-07) bones/10/position = Vector3(4.787e-07, 0.347821, -1.78814e-07)
bones/10/rotation = Quaternion(-0.462345, 0.302549, -0.00771726, 0.833452) bones/10/rotation = Quaternion(-0.437212, 0.282571, -0.0347845, 0.853106)
bones/10/scale = Vector3(1, 1, 1) bones/10/scale = Vector3(1, 1, 1)
bones/11/name = "Bone.011" bones/11/name = "Bone.011"
bones/11/parent = 10 bones/11/parent = 10
bones/11/rest = Transform3D(0.999931, -0.0022606, -0.0115383, 0.00506641, 0.968404, 0.249334, 0.0106101, -0.249375, 0.968349, 8.49366e-07, 0.236611, 4.17233e-07) bones/11/rest = Transform3D(0.999931, -0.0022606, -0.0115383, 0.00506641, 0.968404, 0.249334, 0.0106101, -0.249375, 0.968349, 8.49366e-07, 0.236611, 4.17233e-07)
bones/11/enabled = true bones/11/enabled = true
bones/11/position = Vector3(8.49366e-07, 0.236611, 4.17233e-07) bones/11/position = Vector3(8.49366e-07, 0.236611, 4.17233e-07)
bones/11/rotation = Quaternion(-0.488899, -0.0893169, -0.291617, 0.817288) bones/11/rotation = Quaternion(-0.463791, -0.114711, -0.312175, 0.82115)
bones/11/scale = Vector3(1, 1, 1) bones/11/scale = Vector3(1, 1, 1)
bones/12/name = "Bone.012" bones/12/name = "Bone.012"
bones/12/parent = 11 bones/12/parent = 11
bones/12/rest = Transform3D(0.997806, -0.0280227, -0.0599811, 0.0357475, 0.990624, 0.13186, 0.0557236, -0.133715, 0.989452, -5.93718e-07, 0.172989, 1.78814e-07) bones/12/rest = Transform3D(0.997806, -0.0280227, -0.0599811, 0.0357475, 0.990624, 0.13186, 0.0557236, -0.133715, 0.989452, -5.93718e-07, 0.172989, 1.78814e-07)
bones/12/enabled = true bones/12/enabled = true
bones/12/position = Vector3(-5.93718e-07, 0.172989, 1.78814e-07) bones/12/position = Vector3(-5.93718e-07, 0.172989, 1.78814e-07)
bones/12/rotation = Quaternion(-0.22648, -0.00959885, 0.0367457, 0.973275) bones/12/rotation = Quaternion(-0.133166, -0.0210463, 0.0246556, 0.990563)
bones/12/scale = Vector3(1, 1, 1) bones/12/scale = Vector3(1, 1, 1)
bones/13/name = "Bone.013" bones/13/name = "Bone.013"
bones/13/parent = 1 bones/13/parent = 1
@@ -1084,14 +1092,14 @@ bones/14/parent = 13
bones/14/rest = Transform3D(0.959373, -0.277519, 0.0508523, 0.259649, 0.938956, 0.225709, -0.110386, -0.203335, 0.972867, 1.19209e-07, 0.369994, -3.57628e-07) bones/14/rest = Transform3D(0.959373, -0.277519, 0.0508523, 0.259649, 0.938956, 0.225709, -0.110386, -0.203335, 0.972867, 1.19209e-07, 0.369994, -3.57628e-07)
bones/14/enabled = true bones/14/enabled = true
bones/14/position = Vector3(1.19209e-07, 0.369994, -3.57628e-07) bones/14/position = Vector3(1.19209e-07, 0.369994, -3.57628e-07)
bones/14/rotation = Quaternion(-0.543733, 0.198253, 0.102282, 0.809067) bones/14/rotation = Quaternion(-0.502782, 0.207311, 0.0747823, 0.835847)
bones/14/scale = Vector3(1, 1, 1) bones/14/scale = Vector3(1, 1, 1)
bones/15/name = "Bone.015" bones/15/name = "Bone.015"
bones/15/parent = 14 bones/15/parent = 14
bones/15/rest = Transform3D(0.987789, 0.153063, -0.029059, -0.126508, 0.89688, 0.423794, 0.0909294, -0.414943, 0.905292, -4.17233e-07, 0.248162, 1.19209e-07) bones/15/rest = Transform3D(0.987789, 0.153063, -0.029059, -0.126508, 0.89688, 0.423794, 0.0909294, -0.414943, 0.905292, -4.17233e-07, 0.248162, 1.19209e-07)
bones/15/enabled = true bones/15/enabled = true
bones/15/position = Vector3(-4.17233e-07, 0.248162, 1.19209e-07) bones/15/position = Vector3(-4.17233e-07, 0.248162, 1.19209e-07)
bones/15/rotation = Quaternion(-0.47245, -0.175251, -0.367377, 0.781737) bones/15/rotation = Quaternion(-0.455944, -0.175773, -0.410721, 0.769758)
bones/15/scale = Vector3(1, 1, 1) bones/15/scale = Vector3(1, 1, 1)
bones/16/name = "Bone.016" bones/16/name = "Bone.016"
bones/16/parent = 15 bones/16/parent = 15
@@ -1112,14 +1120,14 @@ bones/18/parent = 17
bones/18/rest = Transform3D(0.858902, -0.508701, 0.0592547, 0.482273, 0.842314, 0.240665, -0.172338, -0.178131, 0.968798, 4.17233e-07, 0.400229, 0) bones/18/rest = Transform3D(0.858902, -0.508701, 0.0592547, 0.482273, 0.842314, 0.240665, -0.172338, -0.178131, 0.968798, 4.17233e-07, 0.400229, 0)
bones/18/enabled = true bones/18/enabled = true
bones/18/position = Vector3(4.17233e-07, 0.400229, 0) bones/18/position = Vector3(4.17233e-07, 0.400229, 0)
bones/18/rotation = Quaternion(-0.572993, 0.0865172, 0.178951, 0.795092) bones/18/rotation = Quaternion(-0.530286, 0.117681, 0.154087, 0.825352)
bones/18/scale = Vector3(1, 1, 1) bones/18/scale = Vector3(1, 1, 1)
bones/19/name = "Bone.019" bones/19/name = "Bone.019"
bones/19/parent = 18 bones/19/parent = 18
bones/19/rest = Transform3D(0.998851, -0.0332957, -0.0344645, 0.0348088, 0.998413, 0.0442743, 0.0329356, -0.0454231, 0.998425, 4.17233e-07, 0.196711, -2.38419e-07) bones/19/rest = Transform3D(0.998851, -0.0332957, -0.0344645, 0.0348088, 0.998413, 0.0442743, 0.0329356, -0.0454231, 0.998425, 4.17233e-07, 0.196711, -2.38419e-07)
bones/19/enabled = true bones/19/enabled = true
bones/19/position = Vector3(4.17233e-07, 0.196711, -2.38419e-07) bones/19/position = Vector3(4.17233e-07, 0.196711, -2.38419e-07)
bones/19/rotation = Quaternion(-0.277547, -0.232517, -0.262091, 0.894546) bones/19/rotation = Quaternion(-0.255985, -0.244795, -0.313937, 0.880903)
bones/19/scale = Vector3(1, 1, 1) bones/19/scale = Vector3(1, 1, 1)
bones/20/name = "Bone.020" bones/20/name = "Bone.020"
bones/20/parent = 19 bones/20/parent = 19
@@ -1132,8 +1140,8 @@ bones/21/name = "Bone.021"
bones/21/parent = -1 bones/21/parent = -1
bones/21/rest = Transform3D(0.761771, 0.635827, -0.12422, -0.154809, -0.00753344, -0.987916, -0.629079, 0.771795, 0.0926928, -3.0206, 0.148975, -3.31442) bones/21/rest = Transform3D(0.761771, 0.635827, -0.12422, -0.154809, -0.00753344, -0.987916, -0.629079, 0.771795, 0.0926928, -3.0206, 0.148975, -3.31442)
bones/21/enabled = true bones/21/enabled = true
bones/21/position = Vector3(-2.97609, 1.07319, -3.25623) bones/21/position = Vector3(-3.00563, 1.12785, -3.26054)
bones/21/rotation = Quaternion(0.733612, -0.140555, -0.295156, 0.595769) bones/21/rotation = Quaternion(0.717367, -0.194, -0.335859, 0.578746)
bones/21/scale = Vector3(1, 1, 1) bones/21/scale = Vector3(1, 1, 1)
[node name="CHEST_005" type="MeshInstance3D" parent="ARM3/3_ R STATUS ARM/Skeleton3D"] [node name="CHEST_005" type="MeshInstance3D" parent="ARM3/3_ R STATUS ARM/Skeleton3D"]
@@ -1163,12 +1171,10 @@ disabled = true
[node name="AnimatedSprite3D" type="AnimatedSprite3D" parent="."] [node name="AnimatedSprite3D" type="AnimatedSprite3D" parent="."]
transform = Transform3D(1.7, 0, 0, 0, 1.7, 0, 0, 0, 1.7, -9.64615, 6.37768, 10.09) transform = Transform3D(1.7, 0, 0, 0, 1.7, 0, 0, 0, 1.7, -9.64615, 6.37768, 10.09)
sprite_frames = SubResource("SpriteFrames_kyvod") sprite_frames = SubResource("SpriteFrames_kyvod")
frame = 54
[node name="AnimationPlayer" type="AnimationPlayer" parent="."] [node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = { libraries = {
&"": SubResource("AnimationLibrary_4acx4") &"": SubResource("AnimationLibrary_4acx4")
} }
autoplay = "Wall Move VFX"
[node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="."] [node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="."]

View File

@@ -1,7 +1,8 @@
[gd_scene load_steps=31 format=4 uid="uid://cuupl4irduut4"] [gd_scene load_steps=33 format=4 uid="uid://cuupl4irduut4"]
[ext_resource type="Script" uid="uid://vgvrmwsrwakf" path="res://src/enemy/enemy_types/16. demon wall/DemonWallArm.cs" id="1_nwywg"] [ext_resource type="Script" uid="uid://vgvrmwsrwakf" path="res://src/enemy/enemy_types/16. demon wall/DemonWallArm.cs" id="1_nwywg"]
[ext_resource type="Texture2D" uid="uid://d3xy7wplqk3gq" path="res://src/enemy/enemy_types/16. demon wall/model/ARM4_AREA_2_MAIN_222STONE.png" id="2_0pjjv"] [ext_resource type="Texture2D" uid="uid://d3xy7wplqk3gq" path="res://src/enemy/enemy_types/16. demon wall/model/ARM4_AREA_2_MAIN_222STONE.png" id="2_0pjjv"]
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_wbqyb"]
[ext_resource type="Texture2D" uid="uid://dkh83g7ce40i7" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_ao_1k.jpg" id="3_hehm5"] [ext_resource type="Texture2D" uid="uid://dkh83g7ce40i7" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_ao_1k.jpg" id="3_hehm5"]
[ext_resource type="Texture2D" uid="uid://bx25c4uynoy1r" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_normal_opengl_1k.png" id="4_1em87"] [ext_resource type="Texture2D" uid="uid://bx25c4uynoy1r" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_normal_opengl_1k.png" id="4_1em87"]
[ext_resource type="Texture2D" uid="uid://b8ifdfxk0ebv5" path="res://src/enemy/enemy_types/16. demon wall/model/ARM4_concrete_0003_height_1k_2.png" id="4_hehm5"] [ext_resource type="Texture2D" uid="uid://b8ifdfxk0ebv5" path="res://src/enemy/enemy_types/16. demon wall/model/ARM4_concrete_0003_height_1k_2.png" id="4_hehm5"]
@@ -10,6 +11,12 @@
[ext_resource type="Texture2D" uid="uid://cm5di6dciqwa5" path="res://src/vfx/Enemy/processed lightning bolts/plightning3.png" id="8_wbqyb"] [ext_resource type="Texture2D" uid="uid://cm5di6dciqwa5" path="res://src/vfx/Enemy/processed lightning bolts/plightning3.png" id="8_wbqyb"]
[ext_resource type="Texture2D" uid="uid://bcl1oo6yr37wl" path="res://src/vfx/Enemy/processed lightning bolts/plightning4.png" id="9_el805"] [ext_resource type="Texture2D" uid="uid://bcl1oo6yr37wl" path="res://src/vfx/Enemy/processed lightning bolts/plightning4.png" id="9_el805"]
[sub_resource type="Resource" id="Resource_wbqyb"]
script = ExtResource("2_wbqyb")
Damage = 10
ElementType = 5
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jeu65"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jeu65"]
resource_name = "Material.002" resource_name = "Material.002"
cull_mode = 2 cull_mode = 2
@@ -769,6 +776,7 @@ albedo_texture = ExtResource("9_el805")
[node name="Arm4" type="Node3D"] [node name="Arm4" type="Node3D"]
script = ExtResource("1_nwywg") script = ExtResource("1_nwywg")
AttackData = SubResource("Resource_wbqyb")
[node name="ARM4" type="Node3D" parent="."] [node name="ARM4" type="Node3D" parent="."]
@@ -780,8 +788,8 @@ bones/0/name = "Bone"
bones/0/parent = -1 bones/0/parent = -1
bones/0/rest = Transform3D(0.0151219, 0.673616, -0.738927, -0.999828, 0.0180682, -0.00398999, 0.0106634, 0.738861, 0.673774, -1.71741, 0.00290632, -1.71742) bones/0/rest = Transform3D(0.0151219, 0.673616, -0.738927, -0.999828, 0.0180682, -0.00398999, 0.0106634, 0.738861, 0.673774, -1.71741, 0.00290632, -1.71742)
bones/0/enabled = true bones/0/enabled = true
bones/0/position = Vector3(-2.1996, -0.363059, -1.80911) bones/0/position = Vector3(-2.13039, -0.268787, -1.69886)
bones/0/rotation = Quaternion(0.105613, -0.507544, -0.459568, 0.72114) bones/0/rotation = Quaternion(0.0923062, -0.514227, -0.439319, 0.730787)
bones/0/scale = Vector3(1, 1, 1) bones/0/scale = Vector3(1, 1, 1)
bones/1/name = "Bone.001" bones/1/name = "Bone.001"
bones/1/parent = 0 bones/1/parent = 0
@@ -934,8 +942,8 @@ bones/22/name = "Bone.021"
bones/22/parent = -1 bones/22/parent = -1
bones/22/rest = Transform3D(0.769842, 0.636233, -0.050504, -0.0970476, 0.0384815, -0.994536, -0.630813, 0.770536, 0.0913696, -3.03474, -0.0767703, -3.31282) bones/22/rest = Transform3D(0.769842, 0.636233, -0.050504, -0.0970476, 0.0384815, -0.994536, -0.630813, 0.770536, 0.0913696, -3.03474, -0.0767703, -3.31282)
bones/22/enabled = true bones/22/enabled = true
bones/22/position = Vector3(-2.00846, 0.925536, -3.63189) bones/22/position = Vector3(-2.0261, 0.838448, -3.63792)
bones/22/rotation = Quaternion(0.863091, -0.137402, -0.180787, 0.451121) bones/22/rotation = Quaternion(0.8414, -0.121862, -0.170241, 0.498211)
bones/22/scale = Vector3(1, 1, 1) bones/22/scale = Vector3(1, 1, 1)
[node name="CHEST_003" type="MeshInstance3D" parent="ARM4/4_ R WEAPON ARM/Skeleton3D"] [node name="CHEST_003" type="MeshInstance3D" parent="ARM4/4_ R WEAPON ARM/Skeleton3D"]
@@ -943,7 +951,7 @@ mesh = SubResource("ArrayMesh_k01v5")
skin = SubResource("Skin_f7n3b") skin = SubResource("Skin_f7n3b")
[node name="BoneAttachment3D" type="BoneAttachment3D" parent="ARM4/4_ R WEAPON ARM/Skeleton3D"] [node name="BoneAttachment3D" type="BoneAttachment3D" parent="ARM4/4_ R WEAPON ARM/Skeleton3D"]
transform = Transform3D(0.169695, -0.93473, 0.312225, -0.855071, -0.297164, -0.424909, 0.489957, -0.194869, -0.849687, -0.424691, 1.04398, -0.515404) transform = Transform3D(0.193298, -0.928984, 0.315633, -0.826446, -0.327548, -0.457929, 0.528794, -0.172337, -0.83107, -0.37909, 1.23909, -0.489325)
bone_name = "Bone.008" bone_name = "Bone.008"
bone_idx = 8 bone_idx = 8

View File

@@ -1,12 +1,19 @@
[gd_scene load_steps=54 format=4 uid="uid://bh1pkdedeoj16"] [gd_scene load_steps=56 format=4 uid="uid://bh1pkdedeoj16"]
[ext_resource type="Script" uid="uid://vgvrmwsrwakf" path="res://src/enemy/enemy_types/16. demon wall/DemonWallArm.cs" id="1_j3ruw"] [ext_resource type="Script" uid="uid://vgvrmwsrwakf" path="res://src/enemy/enemy_types/16. demon wall/DemonWallArm.cs" id="1_j3ruw"]
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_flp87"]
[ext_resource type="Texture2D" uid="uid://c0fcr0wngdp3k" path="res://src/enemy/enemy_types/16. demon wall/model/ARM5_AREA_2_MAIN_222STONE.png" id="2_l5gtd"] [ext_resource type="Texture2D" uid="uid://c0fcr0wngdp3k" path="res://src/enemy/enemy_types/16. demon wall/model/ARM5_AREA_2_MAIN_222STONE.png" id="2_l5gtd"]
[ext_resource type="Texture2D" uid="uid://hhkrujf0lr46" path="res://src/enemy/enemy_types/16. demon wall/ROCK SMASH_AREA_2_MAIN_STON2E.png" id="2_mq4nh"] [ext_resource type="Texture2D" uid="uid://hhkrujf0lr46" path="res://src/enemy/enemy_types/16. demon wall/ROCK SMASH_AREA_2_MAIN_STON2E.png" id="2_mq4nh"]
[ext_resource type="Texture2D" uid="uid://dkh83g7ce40i7" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_ao_1k.jpg" id="3_b7812"] [ext_resource type="Texture2D" uid="uid://dkh83g7ce40i7" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_ao_1k.jpg" id="3_b7812"]
[ext_resource type="Texture2D" uid="uid://bx25c4uynoy1r" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_normal_opengl_1k.png" id="4_mq4nh"] [ext_resource type="Texture2D" uid="uid://bx25c4uynoy1r" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_normal_opengl_1k.png" id="4_mq4nh"]
[ext_resource type="Texture2D" uid="uid://brgmdx0p03syp" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_roughness_1k.jpg" id="5_flp87"] [ext_resource type="Texture2D" uid="uid://brgmdx0p03syp" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_roughness_1k.jpg" id="5_flp87"]
[sub_resource type="Resource" id="Resource_flp87"]
script = ExtResource("2_flp87")
Damage = 10
ElementType = 2
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
[sub_resource type="Animation" id="Animation_sn5j6"] [sub_resource type="Animation" id="Animation_sn5j6"]
resource_name = "Animation" resource_name = "Animation"
length = 7.0137 length = 7.0137
@@ -1389,6 +1396,7 @@ transitions = ["Start", "idle", SubResource("AnimationNodeStateMachineTransition
[node name="Arm5" type="Node3D"] [node name="Arm5" type="Node3D"]
script = ExtResource("1_j3ruw") script = ExtResource("1_j3ruw")
AttackData = SubResource("Resource_flp87")
[node name="ROCK SMASH" type="Node3D" parent="."] [node name="ROCK SMASH" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.59119, 7.25161, 10.1115) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.59119, 7.25161, 10.1115)
@@ -1405,7 +1413,7 @@ mesh = SubResource("ArrayMesh_mwsfi")
skeleton = NodePath("") skeleton = NodePath("")
[node name="Cube_cell_026_cell" type="MeshInstance3D" parent="ROCK SMASH"] [node name="Cube_cell_026_cell" type="MeshInstance3D" parent="ROCK SMASH"]
transform = Transform3D(0.869264, 0.0678596, 0.25252, -0.212709, 0.693359, 0.545894, -0.152073, -0.581928, 0.679872, -1.57176, -3.54047, 17.4467) transform = Transform3D(0.869264, 0.0678598, 0.25252, -0.212709, 0.693359, 0.545894, -0.152073, -0.581928, 0.679872, -1.57176, -3.54047, 17.4467)
mesh = SubResource("ArrayMesh_yaf82") mesh = SubResource("ArrayMesh_yaf82")
skeleton = NodePath("") skeleton = NodePath("")
@@ -1415,12 +1423,12 @@ mesh = SubResource("ArrayMesh_mf0fv")
skeleton = NodePath("") skeleton = NodePath("")
[node name="Cube_cell_005_cell_001" type="MeshInstance3D" parent="ROCK SMASH"] [node name="Cube_cell_005_cell_001" type="MeshInstance3D" parent="ROCK SMASH"]
transform = Transform3D(-0.151836, -0.221721, 0.867051, -0.889419, 0.135014, -0.121228, -0.0993515, -0.869829, -0.23983, -0.447331, -3.51994, -9.17886) transform = Transform3D(-0.151836, -0.221721, 0.867051, -0.889419, 0.135014, -0.121228, -0.0993516, -0.869829, -0.23983, -0.447331, -3.51994, -9.17886)
mesh = SubResource("ArrayMesh_ftrgi") mesh = SubResource("ArrayMesh_ftrgi")
skeleton = NodePath("") skeleton = NodePath("")
[node name="Cube_cell_cell" type="MeshInstance3D" parent="ROCK SMASH"] [node name="Cube_cell_cell" type="MeshInstance3D" parent="ROCK SMASH"]
transform = Transform3D(0.634158, 0.294344, -0.323215, -0.605196, 0.353464, -0.00828147, 0.235741, 0.115613, 0.848207, -0.592601, -3.56393, 0.335403) transform = Transform3D(0.634158, 0.294344, -0.323215, -0.605196, 0.353464, -0.00828187, 0.235741, 0.115613, 0.848207, -0.592601, -3.56393, 0.335403)
mesh = SubResource("ArrayMesh_puagn") mesh = SubResource("ArrayMesh_puagn")
skeleton = NodePath("") skeleton = NodePath("")
@@ -1435,22 +1443,22 @@ mesh = SubResource("ArrayMesh_fugsc")
skeleton = NodePath("") skeleton = NodePath("")
[node name="Cube_cell_cell_004_cell_007" type="MeshInstance3D" parent="ROCK SMASH"] [node name="Cube_cell_cell_004_cell_007" type="MeshInstance3D" parent="ROCK SMASH"]
transform = Transform3D(0.171285, 0.376762, -0.807901, -0.068169, 0.825807, 0.370659, 0.888823, -0.00926991, 0.184119, 2.93068, -3.53875, -3.42814) transform = Transform3D(0.171285, 0.376762, -0.807901, -0.0681688, 0.825807, 0.37066, 0.888823, -0.0092699, 0.184118, 2.93068, -3.53875, -3.42814)
mesh = SubResource("ArrayMesh_8hrhs") mesh = SubResource("ArrayMesh_8hrhs")
skeleton = NodePath("") skeleton = NodePath("")
[node name="Cube_cell_005_cell_cell_006" type="MeshInstance3D" parent="ROCK SMASH"] [node name="Cube_cell_005_cell_cell_006" type="MeshInstance3D" parent="ROCK SMASH"]
transform = Transform3D(-0.404434, 0.615904, -0.530177, 0.0258777, -0.582143, -0.696012, -0.812253, -0.325215, 0.241809, -4.11829, -3.37613, -5.54113) transform = Transform3D(-0.404434, 0.615904, -0.530177, 0.0258777, -0.582143, -0.696012, -0.812253, -0.325215, 0.24181, -4.11829, -3.37613, -5.54113)
mesh = SubResource("ArrayMesh_53pjh") mesh = SubResource("ArrayMesh_53pjh")
skeleton = NodePath("") skeleton = NodePath("")
[node name="Cube_cell_012_cell_002_cell_003" type="MeshInstance3D" parent="ROCK SMASH"] [node name="Cube_cell_012_cell_002_cell_003" type="MeshInstance3D" parent="ROCK SMASH"]
transform = Transform3D(0.660286, -0.29837, 0.546799, 0.270466, 0.855124, 0.140012, -0.561126, 0.0610775, 0.710915, 4.69964, -3.45594, 2.13534) transform = Transform3D(0.660286, -0.29837, 0.5468, 0.270466, 0.855124, 0.140012, -0.561126, 0.0610777, 0.710914, 4.69964, -3.45594, 2.13534)
mesh = SubResource("ArrayMesh_f8xj0") mesh = SubResource("ArrayMesh_f8xj0")
skeleton = NodePath("") skeleton = NodePath("")
[node name="Cube_cell_026_cell_006_cell_006" type="MeshInstance3D" parent="ROCK SMASH"] [node name="Cube_cell_026_cell_006_cell_006" type="MeshInstance3D" parent="ROCK SMASH"]
transform = Transform3D(0.765097, 0.459496, 0.16578, -0.482873, 0.66485, 0.385745, 0.0738424, -0.413315, 0.804804, -2.70943, -3.48923, 8.10288) transform = Transform3D(0.765097, 0.459495, 0.165779, -0.482873, 0.66485, 0.385745, 0.0738424, -0.413315, 0.804804, -2.70943, -3.48923, 8.10288)
mesh = SubResource("ArrayMesh_xmko7") mesh = SubResource("ArrayMesh_xmko7")
skeleton = NodePath("") skeleton = NodePath("")
@@ -1479,29 +1487,29 @@ bones/0/name = "Bone"
bones/0/parent = -1 bones/0/parent = -1
bones/0/rest = Transform3D(0.0151219, -0.673616, 0.738927, 0.999829, 0.0180681, -0.00399013, -0.0106631, 0.738861, 0.673774, 1.71286, 0.00923371, -1.71285) bones/0/rest = Transform3D(0.0151219, -0.673616, 0.738927, 0.999829, 0.0180681, -0.00399013, -0.0106631, 0.738861, 0.673774, 1.71286, 0.00923371, -1.71285)
bones/0/enabled = true bones/0/enabled = true
bones/0/position = Vector3(2.62569, -0.0349066, -1.21983) bones/0/position = Vector3(2.61091, -0.168294, -1.43586)
bones/0/rotation = Quaternion(0.288488, 0.553689, 0.652755, 0.429084) bones/0/rotation = Quaternion(0.317499, 0.527284, 0.660757, 0.429611)
bones/0/scale = Vector3(1, 1, 1) bones/0/scale = Vector3(1, 1, 1)
bones/1/name = "Bone.001" bones/1/name = "Bone.001"
bones/1/parent = 0 bones/1/parent = 0
bones/1/rest = Transform3D(0.997342, -0.0728417, -0.00159788, 0.0728471, 0.996536, 0.040124, -0.00133035, -0.0401337, 0.999193, -2.93367e-07, 1.85949, 2.16067e-07) bones/1/rest = Transform3D(0.997342, -0.0728417, -0.00159788, 0.0728471, 0.996536, 0.040124, -0.00133035, -0.0401337, 0.999193, -2.93367e-07, 1.85949, 2.16067e-07)
bones/1/enabled = true bones/1/enabled = true
bones/1/position = Vector3(-2.93367e-07, 1.85949, 2.16067e-07) bones/1/position = Vector3(-2.93367e-07, 1.85949, 2.16067e-07)
bones/1/rotation = Quaternion(-0.191539, 0.13042, -0.0271536, 0.972402) bones/1/rotation = Quaternion(0.201428, 0.246076, -0.0338279, 0.947486)
bones/1/scale = Vector3(1, 1, 1) bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "Bone.002" bones/2/name = "Bone.002"
bones/2/parent = 1 bones/2/parent = 1
bones/2/rest = Transform3D(0.175376, 0.963955, 0.200086, -0.983797, 0.179282, -0.00142622, -0.0372466, -0.196594, 0.979777, 5.40167e-08, 0.416929, 1.78814e-07) bones/2/rest = Transform3D(0.175376, 0.963955, 0.200086, -0.983797, 0.179282, -0.00142622, -0.0372466, -0.196594, 0.979777, 5.40167e-08, 0.416929, 1.78814e-07)
bones/2/enabled = true bones/2/enabled = true
bones/2/position = Vector3(5.40167e-08, 0.416929, 1.78814e-07) bones/2/position = Vector3(5.40167e-08, 0.416929, 1.78814e-07)
bones/2/rotation = Quaternion(-0.53644, -0.0319246, -0.417881, 0.732522) bones/2/rotation = Quaternion(-0.124536, 0.0489233, -0.685721, 0.715461)
bones/2/scale = Vector3(1, 1, 1) bones/2/scale = Vector3(1, 1, 1)
bones/3/name = "Bone.003" bones/3/name = "Bone.003"
bones/3/parent = 2 bones/3/parent = 2
bones/3/rest = Transform3D(0.795966, -0.570792, -0.201583, 0.584248, 0.811525, 0.00907693, 0.158408, -0.124999, 0.97943, -1.04308e-07, 0.298126, 2.5332e-07) bones/3/rest = Transform3D(0.795966, -0.570792, -0.201583, 0.584248, 0.811525, 0.00907693, 0.158408, -0.124999, 0.97943, -1.04308e-07, 0.298126, 2.5332e-07)
bones/3/enabled = true bones/3/enabled = true
bones/3/position = Vector3(-1.04308e-07, 0.298126, 2.5332e-07) bones/3/position = Vector3(-1.04308e-07, 0.298126, 2.5332e-07)
bones/3/rotation = Quaternion(0.106525, -0.412173, 0.141205, 0.893771) bones/3/rotation = Quaternion(0.0949767, -0.578823, 0.256969, 0.768056)
bones/3/scale = Vector3(1, 1, 1) bones/3/scale = Vector3(1, 1, 1)
bones/4/name = "Bone.004" bones/4/name = "Bone.004"
bones/4/parent = 3 bones/4/parent = 3
@@ -1515,7 +1523,7 @@ bones/5/parent = 1
bones/5/rest = Transform3D(0.891185, 0.451269, 0.046316, -0.453486, 0.88889, 0.0650086, -0.0118334, -0.0789384, 0.996809, 5.40167e-08, 0.416929, 1.78814e-07) bones/5/rest = Transform3D(0.891185, 0.451269, 0.046316, -0.453486, 0.88889, 0.0650086, -0.0118334, -0.0789384, 0.996809, 5.40167e-08, 0.416929, 1.78814e-07)
bones/5/enabled = true bones/5/enabled = true
bones/5/position = Vector3(5.40167e-08, 0.416929, 1.78814e-07) bones/5/position = Vector3(5.40167e-08, 0.416929, 1.78814e-07)
bones/5/rotation = Quaternion(-0.270474, 0.176192, -0.185232, 0.928164) bones/5/rotation = Quaternion(0.0186613, 0.00228513, -0.25223, 0.967485)
bones/5/scale = Vector3(1, 1, 1) bones/5/scale = Vector3(1, 1, 1)
bones/6/name = "Bone.006" bones/6/name = "Bone.006"
bones/6/parent = 5 bones/6/parent = 5
@@ -1543,7 +1551,7 @@ bones/9/parent = 1
bones/9/rest = Transform3D(0.998888, 0.0470357, 0.00321129, -0.0471435, 0.997098, 0.0597784, -0.000390256, -0.0598634, 0.998206, 5.40167e-08, 0.416929, 1.78814e-07) bones/9/rest = Transform3D(0.998888, 0.0470357, 0.00321129, -0.0471435, 0.997098, 0.0597784, -0.000390256, -0.0598634, 0.998206, 5.40167e-08, 0.416929, 1.78814e-07)
bones/9/enabled = true bones/9/enabled = true
bones/9/position = Vector3(5.40167e-08, 0.416929, 1.78814e-07) bones/9/position = Vector3(5.40167e-08, 0.416929, 1.78814e-07)
bones/9/rotation = Quaternion(-0.161916, 0.220053, 0.0688103, 0.959492) bones/9/rotation = Quaternion(0.0515522, -0.0270531, 0.0230489, 0.998038)
bones/9/scale = Vector3(1, 1, 1) bones/9/scale = Vector3(1, 1, 1)
bones/10/name = "Bone.010" bones/10/name = "Bone.010"
bones/10/parent = 9 bones/10/parent = 9
@@ -1571,7 +1579,7 @@ bones/13/parent = 1
bones/13/rest = Transform3D(0.924678, -0.380194, -0.0205531, 0.380732, 0.922777, 0.0593806, -0.00361027, -0.0627332, 0.998024, 5.40167e-08, 0.416929, 1.78814e-07) bones/13/rest = Transform3D(0.924678, -0.380194, -0.0205531, 0.380732, 0.922777, 0.0593806, -0.00361027, -0.0627332, 0.998024, 5.40167e-08, 0.416929, 1.78814e-07)
bones/13/enabled = true bones/13/enabled = true
bones/13/position = Vector3(5.40167e-08, 0.416929, 1.78814e-07) bones/13/position = Vector3(5.40167e-08, 0.416929, 1.78814e-07)
bones/13/rotation = Quaternion(-0.0218501, 0.224031, 0.236137, 0.945289) bones/13/rotation = Quaternion(0.123381, -0.0834547, 0.214205, 0.965365)
bones/13/scale = Vector3(1, 1, 1) bones/13/scale = Vector3(1, 1, 1)
bones/14/name = "Bone.014" bones/14/name = "Bone.014"
bones/14/parent = 13 bones/14/parent = 13
@@ -1599,7 +1607,7 @@ bones/17/parent = 1
bones/17/rest = Transform3D(0.731155, -0.681922, -0.0198745, 0.682036, 0.729995, 0.0439837, -0.0154852, -0.045714, 0.998834, 5.40167e-08, 0.416929, 1.78814e-07) bones/17/rest = Transform3D(0.731155, -0.681922, -0.0198745, 0.682036, 0.729995, 0.0439837, -0.0154852, -0.045714, 0.998834, 5.40167e-08, 0.416929, 1.78814e-07)
bones/17/enabled = true bones/17/enabled = true
bones/17/position = Vector3(5.40167e-08, 0.416929, 1.78814e-07) bones/17/position = Vector3(5.40167e-08, 0.416929, 1.78814e-07)
bones/17/rotation = Quaternion(0.094853, 0.140219, 0.344745, 0.923305) bones/17/rotation = Quaternion(0.20707, -0.188954, 0.3266, 0.902635)
bones/17/scale = Vector3(1, 1, 0.999999) bones/17/scale = Vector3(1, 1, 0.999999)
bones/18/name = "Bone.018" bones/18/name = "Bone.018"
bones/18/parent = 17 bones/18/parent = 17
@@ -1626,8 +1634,8 @@ bones/21/name = "Bone.021"
bones/21/parent = -1 bones/21/parent = -1
bones/21/rest = Transform3D(0.769842, -0.636234, 0.0505046, 0.0970479, 0.038481, -0.994536, 0.630814, 0.770536, 0.0913694, 3.03019, -0.0704418, -3.30826) bones/21/rest = Transform3D(0.769842, -0.636234, 0.0505046, 0.0970479, 0.038481, -0.994536, 0.630814, 0.770536, 0.0913694, 3.03019, -0.0704418, -3.30826)
bones/21/enabled = true bones/21/enabled = true
bones/21/position = Vector3(2.37565, -0.461888, -3.45993) bones/21/position = Vector3(2.37198, -0.370113, -3.46949)
bones/21/rotation = Quaternion(0.541897, 0.478804, 0.337294, 0.602767) bones/21/rotation = Quaternion(0.567172, 0.467662, 0.362014, 0.573196)
bones/21/scale = Vector3(1, 1, 1) bones/21/scale = Vector3(1, 1, 1)
[node name="CHEST_008" type="MeshInstance3D" parent="ARM5/5_ R MELEE ARM/Skeleton3D"] [node name="CHEST_008" type="MeshInstance3D" parent="ARM5/5_ R MELEE ARM/Skeleton3D"]
@@ -1635,7 +1643,7 @@ mesh = SubResource("ArrayMesh_mat8l")
skin = SubResource("Skin_em6a3") skin = SubResource("Skin_em6a3")
[node name="BoneAttachment3D" type="BoneAttachment3D" parent="ARM5/5_ R MELEE ARM/Skeleton3D"] [node name="BoneAttachment3D" type="BoneAttachment3D" parent="ARM5/5_ R MELEE ARM/Skeleton3D"]
transform = Transform3D(-0.97588, -0.17167, -0.134861, 0.0797697, -0.855447, 0.511709, -0.203211, 0.488609, 0.848508, 2.00074, -0.317732, 1.2842) transform = Transform3D(-0.707153, 0.127075, 0.695547, 0.657326, -0.244267, 0.712921, 0.260494, 0.961345, 0.0892054, 2.47652, -0.223076, 1.05386)
bone_name = "Bone.018" bone_name = "Bone.018"
bone_idx = 18 bone_idx = 18

View File

@@ -1,11 +1,18 @@
[gd_scene load_steps=20 format=4 uid="uid://c61hpj1aackmn"] [gd_scene load_steps=22 format=4 uid="uid://c61hpj1aackmn"]
[ext_resource type="Script" uid="uid://vgvrmwsrwakf" path="res://src/enemy/enemy_types/16. demon wall/DemonWallArm.cs" id="1_xefo1"] [ext_resource type="Script" uid="uid://vgvrmwsrwakf" path="res://src/enemy/enemy_types/16. demon wall/DemonWallArm.cs" id="1_xefo1"]
[ext_resource type="Texture2D" uid="uid://c4gfxyge646im" path="res://src/enemy/enemy_types/16. demon wall/model/ARM6_AREA_2_MAIN_222STONE.png" id="2_7j47h"] [ext_resource type="Texture2D" uid="uid://c4gfxyge646im" path="res://src/enemy/enemy_types/16. demon wall/model/ARM6_AREA_2_MAIN_222STONE.png" id="2_7j47h"]
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_h1jik"]
[ext_resource type="Texture2D" uid="uid://dkh83g7ce40i7" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_ao_1k.jpg" id="3_7qtol"] [ext_resource type="Texture2D" uid="uid://dkh83g7ce40i7" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_ao_1k.jpg" id="3_7qtol"]
[ext_resource type="Texture2D" uid="uid://bx25c4uynoy1r" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_normal_opengl_1k.png" id="4_h1jik"] [ext_resource type="Texture2D" uid="uid://bx25c4uynoy1r" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_normal_opengl_1k.png" id="4_h1jik"]
[ext_resource type="Texture2D" uid="uid://brgmdx0p03syp" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_roughness_1k.jpg" id="5_3jiko"] [ext_resource type="Texture2D" uid="uid://brgmdx0p03syp" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_roughness_1k.jpg" id="5_3jiko"]
[sub_resource type="Resource" id="Resource_h1jik"]
script = ExtResource("2_h1jik")
Damage = 10
ElementType = 0
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_kv7mn"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_kv7mn"]
resource_name = "STONE" resource_name = "STONE"
cull_mode = 2 cull_mode = 2
@@ -501,7 +508,7 @@ transitions = ["attack", "idle", SubResource("AnimationNodeStateMachineTransitio
[node name="Arm6" type="Node3D"] [node name="Arm6" type="Node3D"]
script = ExtResource("1_xefo1") script = ExtResource("1_xefo1")
PrimaryAttackElementalType = 5 AttackData = SubResource("Resource_h1jik")
[node name="ARM6" type="Node3D" parent="."] [node name="ARM6" type="Node3D" parent="."]
@@ -513,29 +520,29 @@ bones/0/name = "Bone"
bones/0/parent = -1 bones/0/parent = -1
bones/0/rest = Transform3D(0.351559, -0.633916, 0.68888, 0.936032, 0.250429, -0.247241, -0.0157858, 0.731734, 0.681407, 1.6292, -0.58344, -1.69503) bones/0/rest = Transform3D(0.351559, -0.633916, 0.68888, 0.936032, 0.250429, -0.247241, -0.0157858, 0.731734, 0.681407, 1.6292, -0.58344, -1.69503)
bones/0/enabled = true bones/0/enabled = true
bones/0/position = Vector3(2.47058, -0.783689, -2.01448) bones/0/position = Vector3(2.33541, -0.688565, -1.91412)
bones/0/rotation = Quaternion(0.213407, 0.661084, 0.344333, 0.631554) bones/0/rotation = Quaternion(0.23455, 0.560847, 0.451655, 0.653027)
bones/0/scale = Vector3(1, 1, 1) bones/0/scale = Vector3(1, 1, 1)
bones/1/name = "Bone.001" bones/1/name = "Bone.001"
bones/1/parent = 0 bones/1/parent = 0
bones/1/rest = Transform3D(0.997342, -0.0728406, -0.00159759, 0.072846, 0.996536, 0.0401254, -0.0013307, -0.0401352, 0.999193, -2.57045e-07, 1.85949, -1.63913e-07) bones/1/rest = Transform3D(0.997342, -0.0728406, -0.00159759, 0.072846, 0.996536, 0.0401254, -0.0013307, -0.0401352, 0.999193, -2.57045e-07, 1.85949, -1.63913e-07)
bones/1/enabled = true bones/1/enabled = true
bones/1/position = Vector3(-2.57045e-07, 1.85949, -1.63913e-07) bones/1/position = Vector3(-2.57045e-07, 1.85949, -1.63913e-07)
bones/1/rotation = Quaternion(-0.0235021, 0.0497298, -0.0547961, 0.996981) bones/1/rotation = Quaternion(-0.0201357, 0.000686987, 0.0350889, 0.999181)
bones/1/scale = Vector3(1, 1, 1) bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "Bone.002" bones/2/name = "Bone.002"
bones/2/parent = 1 bones/2/parent = 1
bones/2/rest = Transform3D(0.175377, 0.963955, 0.200084, -0.983797, 0.179282, -0.00142542, -0.0372455, -0.196592, 0.979778, -2.04891e-08, 0.416929, -1.19209e-07) bones/2/rest = Transform3D(0.175377, 0.963955, 0.200084, -0.983797, 0.179282, -0.00142542, -0.0372455, -0.196592, 0.979778, -2.04891e-08, 0.416929, -1.19209e-07)
bones/2/enabled = true bones/2/enabled = true
bones/2/position = Vector3(-2.04891e-08, 0.416929, -1.19209e-07) bones/2/position = Vector3(-2.04891e-08, 0.416929, -1.19209e-07)
bones/2/rotation = Quaternion(-0.494192, 0.207934, -0.555612, 0.635479) bones/2/rotation = Quaternion(-0.464806, 0.232241, -0.547331, 0.656086)
bones/2/scale = Vector3(1, 1, 1) bones/2/scale = Vector3(1, 1, 1)
bones/3/name = "Bone.003" bones/3/name = "Bone.003"
bones/3/parent = 2 bones/3/parent = 2
bones/3/rest = Transform3D(0.795964, -0.570795, -0.201579, 0.584251, 0.811522, 0.00907907, 0.158404, -0.125, 0.97943, -2.79397e-07, 0.298125, 7.07805e-08) bones/3/rest = Transform3D(0.795964, -0.570795, -0.201579, 0.584251, 0.811522, 0.00907907, 0.158404, -0.125, 0.97943, -2.79397e-07, 0.298125, 7.07805e-08)
bones/3/enabled = true bones/3/enabled = true
bones/3/position = Vector3(-2.79397e-07, 0.298125, 7.07805e-08) bones/3/position = Vector3(-2.79397e-07, 0.298125, 7.07805e-08)
bones/3/rotation = Quaternion(0.16642, -0.0119571, 0.538867, 0.825702) bones/3/rotation = Quaternion(0.14401, -0.0282497, 0.51576, 0.84407)
bones/3/scale = Vector3(1, 1, 1) bones/3/scale = Vector3(1, 1, 1)
bones/4/name = "Bone.004" bones/4/name = "Bone.004"
bones/4/parent = 3 bones/4/parent = 3
@@ -549,14 +556,14 @@ bones/5/parent = 1
bones/5/rest = Transform3D(0.891186, 0.451268, 0.0463134, -0.453484, 0.888891, 0.0650076, -0.0118317, -0.0789362, 0.996809, -2.04891e-08, 0.416929, -1.19209e-07) bones/5/rest = Transform3D(0.891186, 0.451268, 0.0463134, -0.453484, 0.888891, 0.0650076, -0.0118317, -0.0789362, 0.996809, -2.04891e-08, 0.416929, -1.19209e-07)
bones/5/enabled = true bones/5/enabled = true
bones/5/position = Vector3(-2.04891e-08, 0.416929, -1.19209e-07) bones/5/position = Vector3(-2.04891e-08, 0.416929, -1.19209e-07)
bones/5/rotation = Quaternion(-0.099829, 0.0142057, -0.0748918, 0.99208) bones/5/rotation = Quaternion(-0.0557565, 0.0165769, -0.0757018, 0.995432)
bones/5/scale = Vector3(1, 1, 1) bones/5/scale = Vector3(1, 1, 1)
bones/6/name = "Bone.006" bones/6/name = "Bone.006"
bones/6/parent = 5 bones/6/parent = 5
bones/6/rest = Transform3D(0.94556, -0.31325, -0.0882615, 0.323948, 0.931928, 0.162993, 0.0311958, -0.182712, 0.982671, 0, 0.366571, 4.47035e-08) bones/6/rest = Transform3D(0.94556, -0.31325, -0.0882615, 0.323948, 0.931928, 0.162993, 0.0311958, -0.182712, 0.982671, 0, 0.366571, 4.47035e-08)
bones/6/enabled = true bones/6/enabled = true
bones/6/position = Vector3(0, 0.366571, 4.47035e-08) bones/6/position = Vector3(0, 0.366571, 4.47035e-08)
bones/6/rotation = Quaternion(-0.710436, -0.2111, 0.0772733, 0.666894) bones/6/rotation = Quaternion(-0.655487, -0.210131, 0.0681422, 0.722176)
bones/6/scale = Vector3(1, 1, 1) bones/6/scale = Vector3(1, 1, 1)
bones/7/name = "Bone.007" bones/7/name = "Bone.007"
bones/7/parent = 6 bones/7/parent = 6
@@ -584,7 +591,7 @@ bones/10/parent = 9
bones/10/rest = Transform3D(0.999465, -0.0299655, -0.0130879, 0.0321747, 0.972617, 0.230176, 0.00583219, -0.230474, 0.973061, -2.98023e-08, 0.347821, 2.23517e-07) bones/10/rest = Transform3D(0.999465, -0.0299655, -0.0130879, 0.0321747, 0.972617, 0.230176, 0.00583219, -0.230474, 0.973061, -2.98023e-08, 0.347821, 2.23517e-07)
bones/10/enabled = true bones/10/enabled = true
bones/10/position = Vector3(-2.98023e-08, 0.347821, 2.23517e-07) bones/10/position = Vector3(-2.98023e-08, 0.347821, 2.23517e-07)
bones/10/rotation = Quaternion(-0.761541, -0.0506147, -0.089266, 0.639942) bones/10/rotation = Quaternion(-0.676481, -0.0608641, -0.0961764, 0.727612)
bones/10/scale = Vector3(1, 1, 1) bones/10/scale = Vector3(1, 1, 1)
bones/11/name = "Bone.011" bones/11/name = "Bone.011"
bones/11/parent = 10 bones/11/parent = 10
@@ -612,7 +619,7 @@ bones/14/parent = 13
bones/14/rest = Transform3D(0.961502, 0.268958, 0.056354, -0.274785, 0.938956, 0.207015, 0.00276436, -0.21453, 0.976713, 4.93601e-08, 0.369994, -2.08616e-07) bones/14/rest = Transform3D(0.961502, 0.268958, 0.056354, -0.274785, 0.938956, 0.207015, 0.00276436, -0.21453, 0.976713, 4.93601e-08, 0.369994, -2.08616e-07)
bones/14/enabled = true bones/14/enabled = true
bones/14/position = Vector3(4.93601e-08, 0.369994, -2.08616e-07) bones/14/position = Vector3(4.93601e-08, 0.369994, -2.08616e-07)
bones/14/rotation = Quaternion(-0.809646, 0.103837, -0.139815, 0.560485) bones/14/rotation = Quaternion(-0.733167, 0.0965788, -0.170543, 0.651194)
bones/14/scale = Vector3(1, 1, 1) bones/14/scale = Vector3(1, 1, 1)
bones/15/name = "Bone.015" bones/15/name = "Bone.015"
bones/15/parent = 14 bones/15/parent = 14
@@ -633,14 +640,14 @@ bones/17/parent = 1
bones/17/rest = Transform3D(0.731154, -0.681923, -0.0198726, 0.682037, 0.729994, 0.0439829, -0.0154861, -0.0457121, 0.998834, -2.04891e-08, 0.416929, -1.19209e-07) bones/17/rest = Transform3D(0.731154, -0.681923, -0.0198726, 0.682037, 0.729994, 0.0439829, -0.0154861, -0.0457121, 0.998834, -2.04891e-08, 0.416929, -1.19209e-07)
bones/17/enabled = true bones/17/enabled = true
bones/17/position = Vector3(-2.04891e-08, 0.416929, -1.19209e-07) bones/17/position = Vector3(-2.04891e-08, 0.416929, -1.19209e-07)
bones/17/rotation = Quaternion(-0.0435475, 0.0160745, 0.335227, 0.940993) bones/17/rotation = Quaternion(-0.0204443, 0.00724419, 0.33475, 0.942057)
bones/17/scale = Vector3(1, 1, 1) bones/17/scale = Vector3(1, 1, 1)
bones/18/name = "Bone.018" bones/18/name = "Bone.018"
bones/18/parent = 17 bones/18/parent = 17
bones/18/rest = Transform3D(0.857941, 0.502855, 0.105234, -0.513706, 0.842315, 0.163132, -0.00660832, -0.194017, 0.980976, -1.56462e-07, 0.400229, 2.23517e-07) bones/18/rest = Transform3D(0.857941, 0.502855, 0.105234, -0.513706, 0.842315, 0.163132, -0.00660832, -0.194017, 0.980976, -1.56462e-07, 0.400229, 2.23517e-07)
bones/18/enabled = true bones/18/enabled = true
bones/18/position = Vector3(-1.56462e-07, 0.400229, 2.23517e-07) bones/18/position = Vector3(-1.56462e-07, 0.400229, 2.23517e-07)
bones/18/rotation = Quaternion(-0.771895, 0.135055, -0.165312, 0.59884) bones/18/rotation = Quaternion(-0.696575, 0.105, -0.215223, 0.676341)
bones/18/scale = Vector3(1, 1, 1) bones/18/scale = Vector3(1, 1, 1)
bones/19/name = "Bone.019" bones/19/name = "Bone.019"
bones/19/parent = 18 bones/19/parent = 18
@@ -660,8 +667,8 @@ bones/21/name = "Bone.021"
bones/21/parent = -1 bones/21/parent = -1
bones/21/rest = Transform3D(0.752405, -0.592093, -0.288639, -0.162915, 0.257308, -0.952497, 0.638236, 0.763687, 0.0971389, 2.85513, -1.1162, -3.27626) bones/21/rest = Transform3D(0.752405, -0.592093, -0.288639, -0.162915, 0.257308, -0.952497, 0.638236, 0.763687, 0.0971389, 2.85513, -1.1162, -3.27626)
bones/21/enabled = true bones/21/enabled = true
bones/21/position = Vector3(1.07427, -0.876382, -3.47631) bones/21/position = Vector3(1.20947, -0.971519, -3.57677)
bones/21/rotation = Quaternion(0.66934, 0.413585, -0.110013, 0.607313) bones/21/rotation = Quaternion(0.642522, 0.332355, -0.0570724, 0.688076)
bones/21/scale = Vector3(1, 1, 1) bones/21/scale = Vector3(1, 1, 1)
[node name="CHEST_001" type="MeshInstance3D" parent="ARM6/6_ L WEAPON ARM/Skeleton3D"] [node name="CHEST_001" type="MeshInstance3D" parent="ARM6/6_ L WEAPON ARM/Skeleton3D"]
@@ -669,7 +676,7 @@ mesh = SubResource("ArrayMesh_4ec00")
skin = SubResource("Skin_37t5x") skin = SubResource("Skin_37t5x")
[node name="BoneAttachment3D" type="BoneAttachment3D" parent="ARM6/6_ L WEAPON ARM/Skeleton3D"] [node name="BoneAttachment3D" type="BoneAttachment3D" parent="ARM6/6_ L WEAPON ARM/Skeleton3D"]
transform = Transform3D(0.0652241, 0.924122, -0.37649, 0.727903, -0.302141, -0.615522, -0.682571, -0.233902, -0.692378, 1.86286, 0.679221, -0.161973) transform = Transform3D(0.215367, 0.850044, -0.480668, 0.904477, -0.359206, -0.229986, -0.368157, -0.385222, -0.846206, 1.25594, 0.234354, 0.127906)
bone_name = "Bone.020" bone_name = "Bone.020"
bone_idx = 20 bone_idx = 20

View File

@@ -1,12 +1,19 @@
[gd_scene load_steps=26 format=4 uid="uid://big4eurgqyejq"] [gd_scene load_steps=28 format=4 uid="uid://big4eurgqyejq"]
[ext_resource type="Script" uid="uid://vgvrmwsrwakf" path="res://src/enemy/enemy_types/16. demon wall/DemonWallArm.cs" id="1_enq7k"] [ext_resource type="Script" uid="uid://vgvrmwsrwakf" path="res://src/enemy/enemy_types/16. demon wall/DemonWallArm.cs" id="1_enq7k"]
[ext_resource type="Texture2D" uid="uid://dni8145sh8qu3" path="res://src/enemy/enemy_types/16. demon wall/model/ARM7_AREA_2_MAIN_222STONE.png" id="2_1gdpg"] [ext_resource type="Texture2D" uid="uid://dni8145sh8qu3" path="res://src/enemy/enemy_types/16. demon wall/model/ARM7_AREA_2_MAIN_222STONE.png" id="2_1gdpg"]
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_v88k1"]
[ext_resource type="Texture2D" uid="uid://dkh83g7ce40i7" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_ao_1k.jpg" id="3_11f7o"] [ext_resource type="Texture2D" uid="uid://dkh83g7ce40i7" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_ao_1k.jpg" id="3_11f7o"]
[ext_resource type="Texture2D" uid="uid://bx25c4uynoy1r" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_normal_opengl_1k.png" id="4_xpy5w"] [ext_resource type="Texture2D" uid="uid://bx25c4uynoy1r" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_normal_opengl_1k.png" id="4_xpy5w"]
[ext_resource type="Texture2D" uid="uid://brgmdx0p03syp" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_roughness_1k.jpg" id="5_v88k1"] [ext_resource type="Texture2D" uid="uid://brgmdx0p03syp" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_roughness_1k.jpg" id="5_v88k1"]
[ext_resource type="Texture2D" uid="uid://cnnn1m1mcb6qc" path="res://src/vfx/Enemy/FLAME_SPRITE_SHEET_FIXED.png" id="6_xpy5w"] [ext_resource type="Texture2D" uid="uid://cnnn1m1mcb6qc" path="res://src/vfx/Enemy/FLAME_SPRITE_SHEET_FIXED.png" id="6_xpy5w"]
[sub_resource type="Resource" id="Resource_v88k1"]
script = ExtResource("2_v88k1")
Damage = 10
ElementType = 4
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_o18ct"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_o18ct"]
resource_name = "STONE" resource_name = "STONE"
cull_mode = 2 cull_mode = 2
@@ -588,7 +595,7 @@ transitions = ["idle", "attack", SubResource("AnimationNodeStateMachineTransitio
[node name="Arm7" type="Node3D"] [node name="Arm7" type="Node3D"]
script = ExtResource("1_enq7k") script = ExtResource("1_enq7k")
PrimaryAttackElementalType = 4 AttackData = SubResource("Resource_v88k1")
[node name="Pivot" type="Node3D" parent="."] [node name="Pivot" type="Node3D" parent="."]
unique_name_in_owner = true unique_name_in_owner = true
@@ -605,155 +612,155 @@ bones/0/name = "Bone"
bones/0/parent = -1 bones/0/parent = -1
bones/0/rest = Transform3D(0.0151218, -0.673616, 0.738927, 0.999829, 0.0180678, -0.0039901, -0.010663, 0.738861, 0.673774, 1.71286, 0.009233, -1.71285) bones/0/rest = Transform3D(0.0151218, -0.673616, 0.738927, 0.999829, 0.0180678, -0.0039901, -0.010663, 0.738861, 0.673774, 1.71286, 0.009233, -1.71285)
bones/0/enabled = true bones/0/enabled = true
bones/0/position = Vector3(2.27844, -0.57056, -1.48374) bones/0/position = Vector3(2.26558, -0.584002, -1.49189)
bones/0/rotation = Quaternion(0.351014, 0.135407, 0.687436, 0.621197) bones/0/rotation = Quaternion(0.291981, 0.220058, 0.656706, 0.65959)
bones/0/scale = Vector3(1, 1, 1) bones/0/scale = Vector3(1, 1, 1)
bones/1/name = "Bone.001" bones/1/name = "Bone.001"
bones/1/parent = 0 bones/1/parent = 0
bones/1/rest = Transform3D(0.997342, -0.0728417, -0.00159799, 0.0728471, 0.996536, 0.0401243, -0.00133027, -0.0401341, 0.999193, 3.45986e-07, 1.85949, 1.30385e-07) bones/1/rest = Transform3D(0.997342, -0.0728417, -0.00159799, 0.0728471, 0.996536, 0.0401243, -0.00133027, -0.0401341, 0.999193, 3.45986e-07, 1.85949, 1.30385e-07)
bones/1/enabled = true bones/1/enabled = true
bones/1/position = Vector3(3.45986e-07, 1.85949, 1.30385e-07) bones/1/position = Vector3(3.45986e-07, 1.85949, 1.30385e-07)
bones/1/rotation = Quaternion(0.193277, 0.620021, 0.0892583, 0.75515) bones/1/rotation = Quaternion(0.132934, 0.59865, 0.12757, 0.779534)
bones/1/scale = Vector3(1, 1, 1) bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "Bone.002" bones/2/name = "Bone.002"
bones/2/parent = 1 bones/2/parent = 1
bones/2/rest = Transform3D(0.175376, 0.963955, 0.200084, -0.983797, 0.179281, -0.0014251, -0.0372451, -0.196592, 0.979778, 5.59958e-08, 0.416929, 4.28408e-08) bones/2/rest = Transform3D(0.175376, 0.963955, 0.200084, -0.983797, 0.179281, -0.0014251, -0.0372451, -0.196592, 0.979778, 5.59958e-08, 0.416929, 4.28408e-08)
bones/2/enabled = true bones/2/enabled = true
bones/2/position = Vector3(5.59958e-08, 0.416929, 4.28408e-08) bones/2/position = Vector3(5.59958e-08, 0.416929, 4.28408e-08)
bones/2/rotation = Quaternion(-0.0403907, 0.216605, -0.600669, 0.768536) bones/2/rotation = Quaternion(-0.0444342, 0.193358, -0.607799, 0.768907)
bones/2/scale = Vector3(1, 1, 1) bones/2/scale = Vector3(1, 1, 1)
bones/3/name = "Bone.003" bones/3/name = "Bone.003"
bones/3/parent = 2 bones/3/parent = 2
bones/3/rest = Transform3D(0.795965, -0.570793, -0.20158, 0.584249, 0.811523, 0.0090791, 0.158405, -0.125, 0.97943, -3.50177e-07, 0.298125, 3.20375e-07) bones/3/rest = Transform3D(0.795965, -0.570793, -0.20158, 0.584249, 0.811523, 0.0090791, 0.158405, -0.125, 0.97943, -3.50177e-07, 0.298125, 3.20375e-07)
bones/3/enabled = true bones/3/enabled = true
bones/3/position = Vector3(-3.50177e-07, 0.298125, 3.20375e-07) bones/3/position = Vector3(-3.50177e-07, 0.298125, 3.20375e-07)
bones/3/rotation = Quaternion(-0.061542, -0.104012, 0.308094, 0.943648) bones/3/rotation = Quaternion(-0.0957386, -0.115652, 0.311867, 0.938189)
bones/3/scale = Vector3(1, 1, 1) bones/3/scale = Vector3(1, 1, 1)
bones/4/name = "Bone.004" bones/4/name = "Bone.004"
bones/4/parent = 3 bones/4/parent = 3
bones/4/rest = Transform3D(0.989609, -0.143493, 0.00920777, 0.14374, 0.98559, -0.089171, 0.00372037, 0.0895679, 0.995974, 6.03497e-07, 0.217615, -2.83122e-07) bones/4/rest = Transform3D(0.989609, -0.143493, 0.00920777, 0.14374, 0.98559, -0.089171, 0.00372037, 0.0895679, 0.995974, 6.03497e-07, 0.217615, -2.83122e-07)
bones/4/enabled = true bones/4/enabled = true
bones/4/position = Vector3(6.03497e-07, 0.217615, -2.83122e-07) bones/4/position = Vector3(6.03497e-07, 0.217615, -2.83122e-07)
bones/4/rotation = Quaternion(0.0369, 0.00985486, 0.110808, 0.993108) bones/4/rotation = Quaternion(0.0263167, 0.0210218, 0.161668, 0.98627)
bones/4/scale = Vector3(1, 1, 1) bones/4/scale = Vector3(1, 1, 1)
bones/5/name = "Bone.005" bones/5/name = "Bone.005"
bones/5/parent = 1 bones/5/parent = 1
bones/5/rest = Transform3D(0.891185, 0.45127, 0.0463153, -0.453486, 0.888889, 0.0650082, -0.011833, -0.0789377, 0.996809, 5.59958e-08, 0.416929, 4.28408e-08) bones/5/rest = Transform3D(0.891185, 0.45127, 0.0463153, -0.453486, 0.888889, 0.0650082, -0.011833, -0.0789377, 0.996809, 5.59958e-08, 0.416929, 4.28408e-08)
bones/5/enabled = true bones/5/enabled = true
bones/5/position = Vector3(5.59958e-08, 0.416929, 4.28408e-08) bones/5/position = Vector3(5.59958e-08, 0.416929, 4.28408e-08)
bones/5/rotation = Quaternion(-0.0326452, 0.0171704, -0.233478, 0.971662) bones/5/rotation = Quaternion(-0.0269362, 0.0200439, -0.234387, 0.971564)
bones/5/scale = Vector3(1, 1, 1) bones/5/scale = Vector3(1, 1, 1)
bones/6/name = "Bone.006" bones/6/name = "Bone.006"
bones/6/parent = 5 bones/6/parent = 5
bones/6/rest = Transform3D(0.94556, -0.313252, -0.0882626, 0.323951, 0.931928, 0.162992, 0.0311969, -0.182711, 0.982671, -1.56462e-07, 0.366571, -7.45058e-08) bones/6/rest = Transform3D(0.94556, -0.313252, -0.0882626, 0.323951, 0.931928, 0.162992, 0.0311969, -0.182711, 0.982671, -1.56462e-07, 0.366571, -7.45058e-08)
bones/6/enabled = true bones/6/enabled = true
bones/6/position = Vector3(-1.56462e-07, 0.366571, -7.45058e-08) bones/6/position = Vector3(-1.56462e-07, 0.366571, -7.45058e-08)
bones/6/rotation = Quaternion(-0.107487, -0.0310207, 0.169229, 0.979207) bones/6/rotation = Quaternion(-0.132919, -0.03181, 0.178355, 0.974428)
bones/6/scale = Vector3(1, 1, 1) bones/6/scale = Vector3(1, 1, 1)
bones/7/name = "Bone.007" bones/7/name = "Bone.007"
bones/7/parent = 6 bones/7/parent = 6
bones/7/rest = Transform3D(0.999951, -0.00959686, -0.00243394, 0.00990068, 0.968863, 0.247401, -1.61149e-05, -0.247413, 0.96891, 2.14204e-07, 0.229155, -1.71363e-07) bones/7/rest = Transform3D(0.999951, -0.00959686, -0.00243394, 0.00990068, 0.968863, 0.247401, -1.61149e-05, -0.247413, 0.96891, 2.14204e-07, 0.229155, -1.71363e-07)
bones/7/enabled = true bones/7/enabled = true
bones/7/position = Vector3(2.14204e-07, 0.229155, -1.71363e-07) bones/7/position = Vector3(2.14204e-07, 0.229155, -1.71363e-07)
bones/7/rotation = Quaternion(-0.0960046, 0.0131847, 0.00771012, 0.995264) bones/7/rotation = Quaternion(-0.0582314, 0.0312637, 0.0113686, 0.997749)
bones/7/scale = Vector3(1, 1, 1) bones/7/scale = Vector3(1, 1, 1)
bones/8/name = "Bone.008" bones/8/name = "Bone.008"
bones/8/parent = 7 bones/8/parent = 7
bones/8/rest = Transform3D(0.996094, -0.0359841, -0.0806318, 0.0483356, 0.986431, 0.156898, 0.0738919, -0.160182, 0.984318, 1.47149e-07, 0.142665, 1.63913e-07) bones/8/rest = Transform3D(0.996094, -0.0359841, -0.0806318, 0.0483356, 0.986431, 0.156898, 0.0738919, -0.160182, 0.984318, 1.47149e-07, 0.142665, 1.63913e-07)
bones/8/enabled = true bones/8/enabled = true
bones/8/position = Vector3(1.47149e-07, 0.142665, 1.63913e-07) bones/8/position = Vector3(1.47149e-07, 0.142665, 1.63913e-07)
bones/8/rotation = Quaternion(-0.109089, -0.0510713, 0.016739, 0.992578) bones/8/rotation = Quaternion(-0.147664, -0.0671252, 0.0108925, 0.986697)
bones/8/scale = Vector3(1, 1, 1) bones/8/scale = Vector3(1, 1, 1)
bones/9/name = "Bone.009" bones/9/name = "Bone.009"
bones/9/parent = 1 bones/9/parent = 1
bones/9/rest = Transform3D(0.998888, 0.0470356, 0.00321137, -0.0471435, 0.997098, 0.0597771, -0.000390392, -0.0598621, 0.998207, 5.59958e-08, 0.416929, 4.28408e-08) bones/9/rest = Transform3D(0.998888, 0.0470356, 0.00321137, -0.0471435, 0.997098, 0.0597771, -0.000390392, -0.0598621, 0.998207, 5.59958e-08, 0.416929, 4.28408e-08)
bones/9/enabled = true bones/9/enabled = true
bones/9/position = Vector3(5.59958e-08, 0.416929, 4.28408e-08) bones/9/position = Vector3(5.59958e-08, 0.416929, 4.28408e-08)
bones/9/rotation = Quaternion(-0.0279196, 0.00707433, -0.0210497, 0.999363) bones/9/rotation = Quaternion(-0.0253005, 0.0151036, -0.0177805, 0.999408)
bones/9/scale = Vector3(1, 1, 1) bones/9/scale = Vector3(1, 1, 1)
bones/10/name = "Bone.010" bones/10/name = "Bone.010"
bones/10/parent = 9 bones/10/parent = 9
bones/10/rest = Transform3D(0.999465, -0.0299664, -0.0130889, 0.0321758, 0.972617, 0.230175, 0.00583295, -0.230473, 0.973061, 2.34169e-07, 0.347821, 2.51457e-07) bones/10/rest = Transform3D(0.999465, -0.0299664, -0.0130889, 0.0321758, 0.972617, 0.230175, 0.00583295, -0.230473, 0.973061, 2.34169e-07, 0.347821, 2.51457e-07)
bones/10/enabled = true bones/10/enabled = true
bones/10/position = Vector3(2.34169e-07, 0.347821, 2.51457e-07) bones/10/position = Vector3(2.34169e-07, 0.347821, 2.51457e-07)
bones/10/rotation = Quaternion(-0.10002, -0.00412201, 0.0106043, 0.99492) bones/10/rotation = Quaternion(-0.0791503, -0.0032824, 0.0040158, 0.996849)
bones/10/scale = Vector3(1, 1, 1) bones/10/scale = Vector3(1, 1, 1)
bones/11/name = "Bone.011" bones/11/name = "Bone.011"
bones/11/parent = 10 bones/11/parent = 10
bones/11/rest = Transform3D(0.999927, -0.00348307, -0.0115382, 0.00625005, 0.968404, 0.249308, 0.0103053, -0.249362, 0.968356, -4.47035e-07, 0.236611, -1.2666e-07) bones/11/rest = Transform3D(0.999927, -0.00348307, -0.0115382, 0.00625005, 0.968404, 0.249308, 0.0103053, -0.249362, 0.968356, -4.47035e-07, 0.236611, -1.2666e-07)
bones/11/enabled = true bones/11/enabled = true
bones/11/position = Vector3(-4.47035e-07, 0.236611, -1.2666e-07) bones/11/position = Vector3(-4.47035e-07, 0.236611, -1.2666e-07)
bones/11/rotation = Quaternion(-0.124472, -0.0019178, 0.00503538, 0.992208) bones/11/rotation = Quaternion(-0.122914, 0.00274944, 0.00839576, 0.992378)
bones/11/scale = Vector3(1, 1, 1) bones/11/scale = Vector3(1, 1, 1)
bones/12/name = "Bone.012" bones/12/name = "Bone.012"
bones/12/parent = 11 bones/12/parent = 11
bones/12/rest = Transform3D(0.997952, 0.0219325, -0.0600964, -0.0135852, 0.990624, 0.13594, 0.0625145, -0.134845, 0.988893, -2.6077e-08, 0.172989, -8.9407e-08) bones/12/rest = Transform3D(0.997952, 0.0219325, -0.0600964, -0.0135852, 0.990624, 0.13594, 0.0625145, -0.134845, 0.988893, -2.6077e-08, 0.172989, -8.9407e-08)
bones/12/enabled = true bones/12/enabled = true
bones/12/position = Vector3(-2.6077e-08, 0.172989, -8.9407e-08) bones/12/position = Vector3(-2.6077e-08, 0.172989, -8.9407e-08)
bones/12/rotation = Quaternion(-0.0796264, -0.0345836, -0.00823533, 0.996191) bones/12/rotation = Quaternion(-0.0949057, -0.0395853, -0.00736128, 0.994672)
bones/12/scale = Vector3(1, 1, 1) bones/12/scale = Vector3(1, 1, 1)
bones/13/name = "Bone.013" bones/13/name = "Bone.013"
bones/13/parent = 1 bones/13/parent = 1
bones/13/rest = Transform3D(0.924678, -0.380194, -0.020553, 0.380732, 0.922777, 0.0593802, -0.00361024, -0.0627328, 0.998024, 5.59958e-08, 0.416929, 4.28408e-08) bones/13/rest = Transform3D(0.924678, -0.380194, -0.020553, 0.380732, 0.922777, 0.0593802, -0.00361024, -0.0627328, 0.998024, 5.59958e-08, 0.416929, 4.28408e-08)
bones/13/enabled = true bones/13/enabled = true
bones/13/position = Vector3(5.59958e-08, 0.416929, 4.28408e-08) bones/13/position = Vector3(5.59958e-08, 0.416929, 4.28408e-08)
bones/13/rotation = Quaternion(-0.116277, -0.0514328, 0.177919, 0.975797) bones/13/rotation = Quaternion(-0.101938, -0.0434897, 0.180767, 0.977262)
bones/13/scale = Vector3(1, 1, 1) bones/13/scale = Vector3(1, 1, 1)
bones/14/name = "Bone.014" bones/14/name = "Bone.014"
bones/14/parent = 13 bones/14/parent = 13
bones/14/rest = Transform3D(0.961502, 0.268956, 0.0563545, -0.274783, 0.938957, 0.207014, 0.00276324, -0.21453, 0.976713, -5.96046e-08, 0.369994, -1.19209e-07) bones/14/rest = Transform3D(0.961502, 0.268956, 0.0563545, -0.274783, 0.938957, 0.207014, 0.00276324, -0.21453, 0.976713, -5.96046e-08, 0.369994, -1.19209e-07)
bones/14/enabled = true bones/14/enabled = true
bones/14/position = Vector3(-5.96046e-08, 0.369994, -1.19209e-07) bones/14/position = Vector3(-5.96046e-08, 0.369994, -1.19209e-07)
bones/14/rotation = Quaternion(-0.0848285, 0.0323395, -0.145509, 0.985183) bones/14/rotation = Quaternion(-0.0555702, 0.0568686, -0.155068, 0.984699)
bones/14/scale = Vector3(1, 1, 1) bones/14/scale = Vector3(1, 1, 1)
bones/15/name = "Bone.015" bones/15/name = "Bone.015"
bones/15/parent = 14 bones/15/parent = 14
bones/15/rest = Transform3D(0.991898, -0.123696, -0.0289435, 0.124233, 0.89688, 0.424467, -0.0265461, -0.424624, 0.904981, 3.35276e-07, 0.248162, 2.98023e-08) bones/15/rest = Transform3D(0.991898, -0.123696, -0.0289435, 0.124233, 0.89688, 0.424467, -0.0265461, -0.424624, 0.904981, 3.35276e-07, 0.248162, 2.98023e-08)
bones/15/enabled = true bones/15/enabled = true
bones/15/position = Vector3(3.35276e-07, 0.248162, 2.98023e-08) bones/15/position = Vector3(3.35276e-07, 0.248162, 2.98023e-08)
bones/15/rotation = Quaternion(-0.225803, -0.0229835, 0.0582279, 0.972159) bones/15/rotation = Quaternion(-0.235835, -0.0521692, 0.0511032, 0.969045)
bones/15/scale = Vector3(1, 1, 1) bones/15/scale = Vector3(1, 1, 1)
bones/16/name = "Bone.016" bones/16/name = "Bone.016"
bones/16/parent = 15 bones/16/parent = 15
bones/16/rest = Transform3D(0.985405, 0.151269, 0.0780704, -0.133169, 0.970709, -0.199973, -0.106033, 0.186658, 0.976686, 2.5332e-07, 0.160425, 2.38419e-07) bones/16/rest = Transform3D(0.985405, 0.151269, 0.0780704, -0.133169, 0.970709, -0.199973, -0.106033, 0.186658, 0.976686, 2.5332e-07, 0.160425, 2.38419e-07)
bones/16/enabled = true bones/16/enabled = true
bones/16/position = Vector3(2.5332e-07, 0.160425, 2.38419e-07) bones/16/position = Vector3(2.5332e-07, 0.160425, 2.38419e-07)
bones/16/rotation = Quaternion(0.052825, 0.0350712, -0.0718641, 0.995397) bones/16/rotation = Quaternion(-0.00650619, 0.0199245, -0.0718257, 0.997197)
bones/16/scale = Vector3(1, 1, 1) bones/16/scale = Vector3(1, 1, 1)
bones/17/name = "Bone.017" bones/17/name = "Bone.017"
bones/17/parent = 1 bones/17/parent = 1
bones/17/rest = Transform3D(0.731155, -0.681922, -0.0198728, 0.682036, 0.729995, 0.0439838, -0.0154864, -0.0457129, 0.998835, 5.59958e-08, 0.416929, 4.28408e-08) bones/17/rest = Transform3D(0.731155, -0.681922, -0.0198728, 0.682036, 0.729995, 0.0439838, -0.0154864, -0.0457129, 0.998835, 5.59958e-08, 0.416929, 4.28408e-08)
bones/17/enabled = true bones/17/enabled = true
bones/17/position = Vector3(5.59958e-08, 0.416929, 4.28408e-08) bones/17/position = Vector3(5.59958e-08, 0.416929, 4.28408e-08)
bones/17/rotation = Quaternion(-0.0260753, -0.0222024, 0.365352, 0.930239) bones/17/rotation = Quaternion(-0.0286277, -0.0496881, 0.363426, 0.929857)
bones/17/scale = Vector3(1, 1, 1) bones/17/scale = Vector3(1, 1, 1)
bones/18/name = "Bone.018" bones/18/name = "Bone.018"
bones/18/parent = 17 bones/18/parent = 17
bones/18/rest = Transform3D(0.857941, 0.502855, 0.105234, -0.513706, 0.842315, 0.163131, -0.00660895, -0.194016, 0.980976, 3.20375e-07, 0.400228, 5.21541e-08) bones/18/rest = Transform3D(0.857941, 0.502855, 0.105234, -0.513706, 0.842315, 0.163131, -0.00660895, -0.194016, 0.980976, 3.20375e-07, 0.400228, 5.21541e-08)
bones/18/enabled = true bones/18/enabled = true
bones/18/position = Vector3(3.20375e-07, 0.400228, 5.21541e-08) bones/18/position = Vector3(3.20375e-07, 0.400228, 5.21541e-08)
bones/18/rotation = Quaternion(-0.0866441, 0.060767, -0.258998, 0.960063) bones/18/rotation = Quaternion(-0.078067, 0.102163, -0.25081, 0.95946)
bones/18/scale = Vector3(1, 1, 1) bones/18/scale = Vector3(1, 1, 1)
bones/19/name = "Bone.019" bones/19/name = "Bone.019"
bones/19/parent = 18 bones/19/parent = 18
bones/19/rest = Transform3D(0.998612, 0.039922, -0.0343595, -0.0384998, 0.998413, 0.041105, 0.035946, -0.0397251, 0.998564, -1.11759e-08, 0.196711, 2.08616e-07) bones/19/rest = Transform3D(0.998612, 0.039922, -0.0343595, -0.0384998, 0.998413, 0.041105, 0.035946, -0.0397251, 0.998564, -1.11759e-08, 0.196711, 2.08616e-07)
bones/19/enabled = true bones/19/enabled = true
bones/19/position = Vector3(-1.11759e-08, 0.196711, 2.08616e-07) bones/19/position = Vector3(-1.11759e-08, 0.196711, 2.08616e-07)
bones/19/rotation = Quaternion(-0.0191526, -0.0295748, -0.02333, 0.999107) bones/19/rotation = Quaternion(-0.0177574, -0.0452057, -0.0281685, 0.998423)
bones/19/scale = Vector3(1, 1, 1) bones/19/scale = Vector3(1, 1, 1)
bones/20/name = "Bone.020" bones/20/name = "Bone.020"
bones/20/parent = 19 bones/20/parent = 19
bones/20/rest = Transform3D(0.986971, -0.159729, -0.0193674, 0.158629, 0.945818, 0.283312, -0.0269352, -0.282693, 0.958832, -2.01166e-07, 0.127215, 4.47035e-08) bones/20/rest = Transform3D(0.986971, -0.159729, -0.0193674, 0.158629, 0.945818, 0.283312, -0.0269352, -0.282693, 0.958832, -2.01166e-07, 0.127215, 4.47035e-08)
bones/20/enabled = true bones/20/enabled = true
bones/20/position = Vector3(-2.01166e-07, 0.127215, 4.47035e-08) bones/20/position = Vector3(-2.01166e-07, 0.127215, 4.47035e-08)
bones/20/rotation = Quaternion(-0.153167, -0.0075734, 0.0791432, 0.984997) bones/20/rotation = Quaternion(-0.165766, -0.01993, 0.0771067, 0.982944)
bones/20/scale = Vector3(1, 1, 1) bones/20/scale = Vector3(1, 1, 1)
bones/21/name = "Bone.021" bones/21/name = "Bone.021"
bones/21/parent = -1 bones/21/parent = -1
bones/21/rest = Transform3D(0.769842, -0.636234, 0.0505047, 0.097048, 0.038481, -0.994536, 0.630814, 0.770536, 0.0913695, 3.03019, -0.0704427, -3.30826) bones/21/rest = Transform3D(0.769842, -0.636234, 0.0505047, 0.097048, 0.038481, -0.994536, 0.630814, 0.770536, 0.0913695, 3.03019, -0.0704427, -3.30826)
bones/21/enabled = true bones/21/enabled = true
bones/21/position = Vector3(2.70805, 0.0321641, -3.41549) bones/21/position = Vector3(2.72091, 0.045606, -3.40734)
bones/21/rotation = Quaternion(0.751096, 0.0858709, 0.285687, 0.588951) bones/21/rotation = Quaternion(0.754269, 0.0780863, 0.289028, 0.584331)
bones/21/scale = Vector3(1, 1, 1) bones/21/scale = Vector3(1, 1, 1)
[node name="CHEST_002" type="MeshInstance3D" parent="Pivot/ARM7/7_ L AGNI CONE ARM/Skeleton3D"] [node name="CHEST_002" type="MeshInstance3D" parent="Pivot/ARM7/7_ L AGNI CONE ARM/Skeleton3D"]
@@ -761,7 +768,7 @@ mesh = SubResource("ArrayMesh_x24rv")
skin = SubResource("Skin_pqs8c") skin = SubResource("Skin_pqs8c")
[node name="BoneAttachment3D" type="BoneAttachment3D" parent="Pivot/ARM7/7_ L AGNI CONE ARM/Skeleton3D"] [node name="BoneAttachment3D" type="BoneAttachment3D" parent="Pivot/ARM7/7_ L AGNI CONE ARM/Skeleton3D"]
transform = Transform3D(-0.867307, -0.426281, 0.257027, 0.357948, -0.175284, 0.917142, -0.345908, 0.887446, 0.304611, 0.867071, -0.92676, -0.326641) transform = Transform3D(-0.860007, -0.446772, 0.246541, 0.32404, -0.104924, 0.940207, -0.39419, 0.888474, 0.235008, 0.893633, -0.645424, -0.238215)
bone_name = "Bone.001" bone_name = "Bone.001"
bone_idx = 1 bone_idx = 1

View File

@@ -1,11 +1,18 @@
[gd_scene load_steps=20 format=4 uid="uid://25ignmox5j8o"] [gd_scene load_steps=22 format=4 uid="uid://25ignmox5j8o"]
[ext_resource type="Script" uid="uid://vgvrmwsrwakf" path="res://src/enemy/enemy_types/16. demon wall/DemonWallArm.cs" id="1_5tnjc"] [ext_resource type="Script" uid="uid://vgvrmwsrwakf" path="res://src/enemy/enemy_types/16. demon wall/DemonWallArm.cs" id="1_5tnjc"]
[ext_resource type="Texture2D" uid="uid://dsnuk0k83wrna" path="res://src/enemy/enemy_types/16. demon wall/model/ARM8_AREA_2_MAIN_222STONE.png" id="2_8jyke"] [ext_resource type="Texture2D" uid="uid://dsnuk0k83wrna" path="res://src/enemy/enemy_types/16. demon wall/model/ARM8_AREA_2_MAIN_222STONE.png" id="2_8jyke"]
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_yary7"]
[ext_resource type="Texture2D" uid="uid://dkh83g7ce40i7" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_ao_1k.jpg" id="3_udgo6"] [ext_resource type="Texture2D" uid="uid://dkh83g7ce40i7" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_ao_1k.jpg" id="3_udgo6"]
[ext_resource type="Texture2D" uid="uid://bx25c4uynoy1r" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_normal_opengl_1k.png" id="4_yary7"] [ext_resource type="Texture2D" uid="uid://bx25c4uynoy1r" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_normal_opengl_1k.png" id="4_yary7"]
[ext_resource type="Texture2D" uid="uid://brgmdx0p03syp" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_roughness_1k.jpg" id="5_cglns"] [ext_resource type="Texture2D" uid="uid://brgmdx0p03syp" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_roughness_1k.jpg" id="5_cglns"]
[sub_resource type="Resource" id="Resource_yary7"]
script = ExtResource("2_yary7")
Damage = 10
ElementType = 0
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_iye06"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_iye06"]
resource_name = "STONE" resource_name = "STONE"
cull_mode = 2 cull_mode = 2
@@ -515,6 +522,7 @@ transitions = ["attack", "idle", SubResource("AnimationNodeStateMachineTransitio
[node name="Arm8" type="Node3D"] [node name="Arm8" type="Node3D"]
script = ExtResource("1_5tnjc") script = ExtResource("1_5tnjc")
AttackData = SubResource("Resource_yary7")
[node name="ARM8" type="Node3D" parent="."] [node name="ARM8" type="Node3D" parent="."]
@@ -526,15 +534,15 @@ bones/0/name = "Bone"
bones/0/parent = -1 bones/0/parent = -1
bones/0/rest = Transform3D(-0.0590079, 0.671656, -0.73851, -0.998184, -0.0307105, 0.0518258, 0.0121291, 0.740227, 0.672248, -1.70411, 0.133377, -1.7164) bones/0/rest = Transform3D(-0.0590079, 0.671656, -0.73851, -0.998184, -0.0307105, 0.0518258, 0.0121291, 0.740227, 0.672248, -1.70411, 0.133377, -1.7164)
bones/0/enabled = true bones/0/enabled = true
bones/0/position = Vector3(-2.78023, 0.452504, -1.20746) bones/0/position = Vector3(-2.86512, 0.708377, -1.20181)
bones/0/rotation = Quaternion(0.0895743, -0.443005, -0.715414, 0.532828) bones/0/rotation = Quaternion(0.00582242, -0.587142, -0.714277, 0.38084)
bones/0/scale = Vector3(1, 1, 1) bones/0/scale = Vector3(1, 1, 1)
bones/1/name = "Bone.001" bones/1/name = "Bone.001"
bones/1/parent = 0 bones/1/parent = 0
bones/1/rest = Transform3D(0.997342, 0.0728404, -0.00158078, -0.0727175, 0.996536, 0.0403564, 0.00451488, -0.0401342, 0.999184, -2.90573e-07, 1.85949, 2.08616e-07) bones/1/rest = Transform3D(0.997342, 0.0728404, -0.00158078, -0.0727175, 0.996536, 0.0403564, 0.00451488, -0.0401342, 0.999184, -2.90573e-07, 1.85949, 2.08616e-07)
bones/1/enabled = true bones/1/enabled = true
bones/1/position = Vector3(-2.90573e-07, 1.85949, 2.08616e-07) bones/1/position = Vector3(-2.90573e-07, 1.85949, 2.08616e-07)
bones/1/rotation = Quaternion(-0.211659, 0.0254751, 0.0858656, 0.973231) bones/1/rotation = Quaternion(-0.10035, 0.0153046, 0.19328, 0.975878)
bones/1/scale = Vector3(1, 1, 1) bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "Bone.002" bones/2/name = "Bone.002"
bones/2/parent = 1 bones/2/parent = 1
@@ -673,8 +681,8 @@ bones/21/name = "Bone.021"
bones/21/parent = -1 bones/21/parent = -1
bones/21/rest = Transform3D(0.761771, 0.635827, -0.12422, -0.154809, -0.00753331, -0.987916, -0.629079, 0.771795, 0.0926929, -3.0206, 0.148976, -3.31442) bones/21/rest = Transform3D(0.761771, 0.635827, -0.12422, -0.154809, -0.00753331, -0.987916, -0.629079, 0.771795, 0.0926929, -3.0206, 0.148976, -3.31442)
bones/21/enabled = true bones/21/enabled = true
bones/21/position = Vector3(-3.0806, 0.733435, -3.27408) bones/21/position = Vector3(-2.9957, 0.477562, -3.27973)
bones/21/rotation = Quaternion(0.627963, -0.256163, -0.403644, 0.614097) bones/21/rotation = Quaternion(0.525009, -0.401446, -0.408207, 0.629741)
bones/21/scale = Vector3(1, 1, 1) bones/21/scale = Vector3(1, 1, 1)
[node name="CHEST_007" type="MeshInstance3D" parent="ARM8/8_ L MELEE ARM/Skeleton3D"] [node name="CHEST_007" type="MeshInstance3D" parent="ARM8/8_ L MELEE ARM/Skeleton3D"]
@@ -682,7 +690,7 @@ mesh = SubResource("ArrayMesh_3e72b")
skin = SubResource("Skin_v7bct") skin = SubResource("Skin_v7bct")
[node name="BoneAttachment3D" type="BoneAttachment3D" parent="ARM8/8_ L MELEE ARM/Skeleton3D"] [node name="BoneAttachment3D" type="BoneAttachment3D" parent="ARM8/8_ L MELEE ARM/Skeleton3D"]
transform = Transform3D(-0.566511, -0.616385, 0.546932, -0.773979, 0.170159, -0.60992, 0.28288, -0.76884, -0.573466, -0.802242, 0.116063, -0.0862304) transform = Transform3D(-0.700552, -0.461924, 0.543924, -0.522774, -0.186616, -0.831794, 0.485731, -0.867064, -0.110747, -1.1713, 0.297161, 0.42271)
bone_name = "Bone.012" bone_name = "Bone.012"
bone_idx = 12 bone_idx = 12

View File

@@ -1,12 +1,19 @@
[gd_scene load_steps=155 format=4 uid="uid://dppws3muepn0l"] [gd_scene load_steps=157 format=4 uid="uid://dppws3muepn0l"]
[ext_resource type="Script" uid="uid://vgvrmwsrwakf" path="res://src/enemy/enemy_types/16. demon wall/DemonWallArm.cs" id="1_fjfqv"] [ext_resource type="Script" uid="uid://vgvrmwsrwakf" path="res://src/enemy/enemy_types/16. demon wall/DemonWallArm.cs" id="1_fjfqv"]
[ext_resource type="Texture2D" uid="uid://c1jl757qlt28e" path="res://src/enemy/enemy_types/16. demon wall/model/ARM9_AREA_2_MAIN_222STONE.png" id="2_bbf6x"] [ext_resource type="Texture2D" uid="uid://c1jl757qlt28e" path="res://src/enemy/enemy_types/16. demon wall/model/ARM9_AREA_2_MAIN_222STONE.png" id="2_bbf6x"]
[ext_resource type="Texture2D" uid="uid://b7kb4avagq566" path="res://src/vfx/Enemy/demon_wall_status_inflicter.png" id="2_fk886"] [ext_resource type="Texture2D" uid="uid://b7kb4avagq566" path="res://src/vfx/Enemy/demon_wall_status_inflicter.png" id="2_fk886"]
[ext_resource type="Script" uid="uid://ctshiyffvt4y5" path="res://src/system/AttackDataResource.cs" id="2_jltgb"]
[ext_resource type="Texture2D" uid="uid://dkh83g7ce40i7" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_ao_1k.jpg" id="3_ydud8"] [ext_resource type="Texture2D" uid="uid://dkh83g7ce40i7" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_ao_1k.jpg" id="3_ydud8"]
[ext_resource type="Texture2D" uid="uid://bx25c4uynoy1r" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_normal_opengl_1k.png" id="4_fk886"] [ext_resource type="Texture2D" uid="uid://bx25c4uynoy1r" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_normal_opengl_1k.png" id="4_fk886"]
[ext_resource type="Texture2D" uid="uid://brgmdx0p03syp" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_roughness_1k.jpg" id="5_jltgb"] [ext_resource type="Texture2D" uid="uid://brgmdx0p03syp" path="res://src/enemy/enemy_types/16. demon wall/concrete_0003_roughness_1k.jpg" id="5_jltgb"]
[sub_resource type="Resource" id="Resource_jltgb"]
script = ExtResource("2_jltgb")
Damage = 10
ElementType = 0
metadata/_custom_type_script = "uid://ctshiyffvt4y5"
[sub_resource type="AtlasTexture" id="AtlasTexture_jltgb"] [sub_resource type="AtlasTexture" id="AtlasTexture_jltgb"]
atlas = ExtResource("2_fk886") atlas = ExtResource("2_fk886")
region = Rect2(0, 0, 512, 512) region = Rect2(0, 0, 512, 512)
@@ -1502,6 +1509,7 @@ transitions = ["Start", "idle", SubResource("AnimationNodeStateMachineTransition
[node name="Arm9" type="Node3D"] [node name="Arm9" type="Node3D"]
script = ExtResource("1_fjfqv") script = ExtResource("1_fjfqv")
AttackData = SubResource("Resource_jltgb")
[node name="AnimatedSprite3D" type="AnimatedSprite3D" parent="."] [node name="AnimatedSprite3D" type="AnimatedSprite3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.0684, 8.17799, 10.6701) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.0684, 8.17799, 10.6701)
@@ -1525,141 +1533,141 @@ bones/0/name = "Bone"
bones/0/parent = -1 bones/0/parent = -1
bones/0/rest = Transform3D(0.664239, -0.5079, 0.548475, 0.747327, 0.467912, -0.471764, -0.0170288, 0.723254, 0.690372, 1.32537, -1.1447, -1.67359) bones/0/rest = Transform3D(0.664239, -0.5079, 0.548475, 0.747327, 0.467912, -0.471764, -0.0170288, 0.723254, 0.690372, 1.32537, -1.1447, -1.67359)
bones/0/enabled = true bones/0/enabled = true
bones/0/position = Vector3(1.44441, -1.07471, -1.44808) bones/0/position = Vector3(1.44496, -1.07463, -1.44783)
bones/0/rotation = Quaternion(0.0761007, 0.580784, 0.656085, 0.475868) bones/0/rotation = Quaternion(0.0755964, 0.581819, 0.655697, 0.47522)
bones/0/scale = Vector3(1, 1, 1) bones/0/scale = Vector3(1, 1, 1)
bones/1/name = "Bone.001" bones/1/name = "Bone.001"
bones/1/parent = 0 bones/1/parent = 0
bones/1/rest = Transform3D(0.997342, -0.0728411, -0.00159727, 0.0728464, 0.996536, 0.0401251, -0.00133102, -0.0401348, 0.999193, 4.76837e-07, 1.85949, -3.57628e-07) bones/1/rest = Transform3D(0.997342, -0.0728411, -0.00159727, 0.0728464, 0.996536, 0.0401251, -0.00133102, -0.0401348, 0.999193, 4.76837e-07, 1.85949, -3.57628e-07)
bones/1/enabled = true bones/1/enabled = true
bones/1/position = Vector3(4.76837e-07, 1.85949, -3.57628e-07) bones/1/position = Vector3(4.76837e-07, 1.85949, -3.57628e-07)
bones/1/rotation = Quaternion(-0.0295522, -0.00909152, 0.0390719, 0.998758) bones/1/rotation = Quaternion(-0.030313, -0.0098167, 0.039282, 0.99872)
bones/1/scale = Vector3(1, 1, 1) bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "Bone.002" bones/2/name = "Bone.002"
bones/2/parent = 1 bones/2/parent = 1
bones/2/rest = Transform3D(0.175377, 0.963955, 0.200084, -0.983796, 0.179283, -0.00142535, -0.0372456, -0.196592, 0.979778, 2.38419e-07, 0.416929, 0) bones/2/rest = Transform3D(0.175377, 0.963955, 0.200084, -0.983796, 0.179283, -0.00142535, -0.0372456, -0.196592, 0.979778, 2.38419e-07, 0.416929, 0)
bones/2/enabled = true bones/2/enabled = true
bones/2/position = Vector3(2.38419e-07, 0.416929, 0) bones/2/position = Vector3(2.38419e-07, 0.416929, 0)
bones/2/rotation = Quaternion(-0.0719204, 0.0813511, -0.638381, 0.762023) bones/2/rotation = Quaternion(-0.0725664, 0.0816466, -0.638457, 0.761867)
bones/2/scale = Vector3(1, 1, 1) bones/2/scale = Vector3(1, 1, 1)
bones/3/name = "Bone.003" bones/3/name = "Bone.003"
bones/3/parent = 2 bones/3/parent = 2
bones/3/rest = Transform3D(0.795965, -0.570793, -0.20158, 0.584249, 0.811523, 0.00907775, 0.158406, -0.124999, 0.97943, -3.57628e-07, 0.298125, 2.98023e-07) bones/3/rest = Transform3D(0.795965, -0.570793, -0.20158, 0.584249, 0.811523, 0.00907775, 0.158406, -0.124999, 0.97943, -3.57628e-07, 0.298125, 2.98023e-07)
bones/3/enabled = true bones/3/enabled = true
bones/3/position = Vector3(-3.57628e-07, 0.298125, 2.98023e-07) bones/3/position = Vector3(-3.57628e-07, 0.298125, 2.98023e-07)
bones/3/rotation = Quaternion(-0.0343943, -0.0947545, 0.308816, 0.945765) bones/3/rotation = Quaternion(-0.0343208, -0.0947338, 0.3091, 0.945677)
bones/3/scale = Vector3(1, 1, 1) bones/3/scale = Vector3(1, 1, 1)
bones/4/name = "Bone.004" bones/4/name = "Bone.004"
bones/4/parent = 3 bones/4/parent = 3
bones/4/rest = Transform3D(0.989609, -0.143491, 0.00920793, 0.143738, 0.98559, -0.0891698, 0.00371984, 0.0895667, 0.995974, -1.19209e-07, 0.217615, 0) bones/4/rest = Transform3D(0.989609, -0.143491, 0.00920793, 0.143738, 0.98559, -0.0891698, 0.00371984, 0.0895667, 0.995974, -1.19209e-07, 0.217615, 0)
bones/4/enabled = true bones/4/enabled = true
bones/4/position = Vector3(-1.19209e-07, 0.217615, 0) bones/4/position = Vector3(-1.19209e-07, 0.217615, 0)
bones/4/rotation = Quaternion(0.0492356, 0.00166527, 0.0777992, 0.995751) bones/4/rotation = Quaternion(0.0495876, 0.00168838, 0.0782588, 0.995698)
bones/4/scale = Vector3(1, 1, 1) bones/4/scale = Vector3(1, 1, 1)
bones/5/name = "Bone.005" bones/5/name = "Bone.005"
bones/5/parent = 1 bones/5/parent = 1
bones/5/rest = Transform3D(0.891187, 0.451267, 0.0463142, -0.453483, 0.888891, 0.0650071, -0.0118327, -0.0789361, 0.99681, 2.38419e-07, 0.416929, 0) bones/5/rest = Transform3D(0.891187, 0.451267, 0.0463142, -0.453483, 0.888891, 0.0650071, -0.0118327, -0.0789361, 0.99681, 2.38419e-07, 0.416929, 0)
bones/5/enabled = true bones/5/enabled = true
bones/5/position = Vector3(2.38419e-07, 0.416929, 0) bones/5/position = Vector3(2.38419e-07, 0.416929, 0)
bones/5/rotation = Quaternion(-0.0403386, 0.0153167, -0.231738, 0.971821) bones/5/rotation = Quaternion(-0.0405886, 0.0153437, -0.231659, 0.971829)
bones/5/scale = Vector3(1, 1, 1) bones/5/scale = Vector3(1, 1, 1)
bones/6/name = "Bone.006" bones/6/name = "Bone.006"
bones/6/parent = 5 bones/6/parent = 5
bones/6/rest = Transform3D(0.945561, -0.313247, -0.0882632, 0.323946, 0.931929, 0.162995, 0.0311974, -0.182714, 0.982671, 2.38419e-07, 0.366571, 2.38419e-07) bones/6/rest = Transform3D(0.945561, -0.313247, -0.0882632, 0.323946, 0.931929, 0.162995, 0.0311974, -0.182714, 0.982671, 2.38419e-07, 0.366571, 2.38419e-07)
bones/6/enabled = true bones/6/enabled = true
bones/6/position = Vector3(2.38419e-07, 0.366571, 2.38419e-07) bones/6/position = Vector3(2.38419e-07, 0.366571, 2.38419e-07)
bones/6/rotation = Quaternion(-0.0950728, -0.0313817, 0.162122, 0.981679) bones/6/rotation = Quaternion(-0.0956416, -0.0314602, 0.162119, 0.981621)
bones/6/scale = Vector3(1, 1, 1) bones/6/scale = Vector3(1, 1, 1)
bones/7/name = "Bone.007" bones/7/name = "Bone.007"
bones/7/parent = 6 bones/7/parent = 6
bones/7/rest = Transform3D(0.999951, -0.00959863, -0.00243464, 0.00990257, 0.968864, 0.247396, -1.58236e-05, -0.247408, 0.968911, -3.57628e-07, 0.229155, -4.76837e-07) bones/7/rest = Transform3D(0.999951, -0.00959863, -0.00243464, 0.00990257, 0.968864, 0.247396, -1.58236e-05, -0.247408, 0.968911, -3.57628e-07, 0.229155, -4.76837e-07)
bones/7/enabled = true bones/7/enabled = true
bones/7/position = Vector3(-3.57628e-07, 0.229155, -4.76837e-07) bones/7/position = Vector3(-3.57628e-07, 0.229155, -4.76837e-07)
bones/7/rotation = Quaternion(-0.132188, 0.000839738, 0.00616819, 0.991205) bones/7/rotation = Quaternion(-0.13279, 0.000955992, 0.0062688, 0.991124)
bones/7/scale = Vector3(1, 1, 1) bones/7/scale = Vector3(1, 1, 1)
bones/8/name = "Bone.008" bones/8/name = "Bone.008"
bones/8/parent = 7 bones/8/parent = 7
bones/8/rest = Transform3D(0.996094, -0.0359844, -0.080632, 0.0483362, 0.986431, 0.156901, 0.0738919, -0.160186, 0.984317, -1.19209e-07, 0.142665, 5.96046e-08) bones/8/rest = Transform3D(0.996094, -0.0359844, -0.080632, 0.0483362, 0.986431, 0.156901, 0.0738919, -0.160186, 0.984317, -1.19209e-07, 0.142665, 5.96046e-08)
bones/8/enabled = true bones/8/enabled = true
bones/8/position = Vector3(-1.19209e-07, 0.142665, 5.96046e-08) bones/8/position = Vector3(-1.19209e-07, 0.142665, 5.96046e-08)
bones/8/rotation = Quaternion(-0.0890698, -0.0370641, 0.0234891, 0.995058) bones/8/rotation = Quaternion(-0.0898294, -0.0369252, 0.0236753, 0.994991)
bones/8/scale = Vector3(1, 1, 1) bones/8/scale = Vector3(1, 1, 1)
bones/9/name = "Bone.009" bones/9/name = "Bone.009"
bones/9/parent = 1 bones/9/parent = 1
bones/9/rest = Transform3D(0.998888, 0.0470345, 0.00320965, -0.0471423, 0.997098, 0.0597765, -0.000388783, -0.0598614, 0.998207, 2.38419e-07, 0.416929, 0) bones/9/rest = Transform3D(0.998888, 0.0470345, 0.00320965, -0.0471423, 0.997098, 0.0597765, -0.000388783, -0.0598614, 0.998207, 2.38419e-07, 0.416929, 0)
bones/9/enabled = true bones/9/enabled = true
bones/9/position = Vector3(2.38419e-07, 0.416929, 0) bones/9/position = Vector3(2.38419e-07, 0.416929, 0)
bones/9/rotation = Quaternion(-0.0358375, 0.00272252, -0.0229573, 0.99909) bones/9/rotation = Quaternion(-0.0363111, 0.00286866, -0.0229088, 0.999074)
bones/9/scale = Vector3(1, 1, 1) bones/9/scale = Vector3(1, 1, 1)
bones/10/name = "Bone.010" bones/10/name = "Bone.010"
bones/10/parent = 9 bones/10/parent = 9
bones/10/rest = Transform3D(0.999465, -0.0299688, -0.013087, 0.0321776, 0.972617, 0.230175, 0.00583061, -0.230473, 0.973061, 1.19209e-07, 0.347821, -4.76837e-07) bones/10/rest = Transform3D(0.999465, -0.0299688, -0.013087, 0.0321776, 0.972617, 0.230175, 0.00583061, -0.230473, 0.973061, 1.19209e-07, 0.347821, -4.76837e-07)
bones/10/enabled = true bones/10/enabled = true
bones/10/position = Vector3(1.19209e-07, 0.347821, -4.76837e-07) bones/10/position = Vector3(1.19209e-07, 0.347821, -4.76837e-07)
bones/10/rotation = Quaternion(-0.122209, -0.00642284, 0.01608, 0.992353) bones/10/rotation = Quaternion(-0.12271, -0.006556, 0.016115, 0.99229)
bones/10/scale = Vector3(1, 1, 1) bones/10/scale = Vector3(1, 1, 1)
bones/11/name = "Bone.011" bones/11/name = "Bone.011"
bones/11/parent = 10 bones/11/parent = 10
bones/11/rest = Transform3D(0.999927, -0.00347542, -0.0115401, 0.00624306, 0.968405, 0.249306, 0.010309, -0.24936, 0.968356, -1.19209e-07, 0.23661, -3.57628e-07) bones/11/rest = Transform3D(0.999927, -0.00347542, -0.0115401, 0.00624306, 0.968405, 0.249306, 0.010309, -0.24936, 0.968356, -1.19209e-07, 0.23661, -3.57628e-07)
bones/11/enabled = true bones/11/enabled = true
bones/11/position = Vector3(-1.19209e-07, 0.23661, -3.57628e-07) bones/11/position = Vector3(-1.19209e-07, 0.23661, -3.57628e-07)
bones/11/rotation = Quaternion(-0.132223, -0.00380595, 0.00393668, 0.991205) bones/11/rotation = Quaternion(-0.132749, -0.0036696, 0.00405599, 0.991135)
bones/11/scale = Vector3(1, 1, 1) bones/11/scale = Vector3(1, 1, 1)
bones/12/name = "Bone.012" bones/12/name = "Bone.012"
bones/12/parent = 11 bones/12/parent = 11
bones/12/rest = Transform3D(0.997952, 0.0219231, -0.0600952, -0.0135757, 0.990623, 0.135945, 0.062512, -0.13485, 0.988892, -7.15256e-07, 0.172989, -3.57628e-07) bones/12/rest = Transform3D(0.997952, 0.0219231, -0.0600952, -0.0135757, 0.990623, 0.135945, 0.062512, -0.13485, 0.988892, -7.15256e-07, 0.172989, -3.57628e-07)
bones/12/enabled = true bones/12/enabled = true
bones/12/position = Vector3(-7.15256e-07, 0.172989, -3.57628e-07) bones/12/position = Vector3(-7.15256e-07, 0.172989, -3.57628e-07)
bones/12/rotation = Quaternion(-0.0737158, -0.0295527, -0.00709329, 0.996816) bones/12/rotation = Quaternion(-0.0741829, -0.0294577, -0.00694839, 0.996785)
bones/12/scale = Vector3(1, 1, 1) bones/12/scale = Vector3(1, 1, 1)
bones/13/name = "Bone.013" bones/13/name = "Bone.013"
bones/13/parent = 1 bones/13/parent = 1
bones/13/rest = Transform3D(0.924677, -0.380196, -0.0205531, 0.380734, 0.922776, 0.0593795, -0.00360998, -0.0627321, 0.998024, 2.38419e-07, 0.416929, 0) bones/13/rest = Transform3D(0.924677, -0.380196, -0.0205531, 0.380734, 0.922776, 0.0593795, -0.00360998, -0.0627321, 0.998024, 2.38419e-07, 0.416929, 0)
bones/13/enabled = true bones/13/enabled = true
bones/13/position = Vector3(2.38419e-07, 0.416929, 0) bones/13/position = Vector3(2.38419e-07, 0.416929, 0)
bones/13/rotation = Quaternion(-0.0333686, -0.0036831, 0.194081, 0.980411) bones/13/rotation = Quaternion(-0.0335347, -0.00363574, 0.194085, 0.980405)
bones/13/scale = Vector3(1, 1, 1) bones/13/scale = Vector3(1, 1, 1)
bones/14/name = "Bone.014" bones/14/name = "Bone.014"
bones/14/parent = 13 bones/14/parent = 13
bones/14/rest = Transform3D(0.961502, 0.268959, 0.0563536, -0.274785, 0.938956, 0.207013, 0.00276419, -0.214528, 0.976714, -4.76837e-07, 0.369994, 1.19209e-07) bones/14/rest = Transform3D(0.961502, 0.268959, 0.0563536, -0.274785, 0.938956, 0.207013, 0.00276419, -0.214528, 0.976714, -4.76837e-07, 0.369994, 1.19209e-07)
bones/14/enabled = true bones/14/enabled = true
bones/14/position = Vector3(-4.76837e-07, 0.369994, 1.19209e-07) bones/14/position = Vector3(-4.76837e-07, 0.369994, 1.19209e-07)
bones/14/rotation = Quaternion(-0.109453, 0.0144274, -0.137861, 0.98428) bones/14/rotation = Quaternion(-0.109642, 0.0144914, -0.137844, 0.98426)
bones/14/scale = Vector3(1, 1, 1) bones/14/scale = Vector3(1, 1, 1)
bones/15/name = "Bone.015" bones/15/name = "Bone.015"
bones/15/parent = 14 bones/15/parent = 14
bones/15/rest = Transform3D(0.991898, -0.123694, -0.0289441, 0.12423, 0.896878, 0.424473, -0.0265452, -0.42463, 0.904978, 4.17233e-07, 0.248162, 0) bones/15/rest = Transform3D(0.991898, -0.123694, -0.0289441, 0.12423, 0.896878, 0.424473, -0.0265452, -0.42463, 0.904978, 4.17233e-07, 0.248162, 0)
bones/15/enabled = true bones/15/enabled = true
bones/15/position = Vector3(4.17233e-07, 0.248162, 0) bones/15/position = Vector3(4.17233e-07, 0.248162, 0)
bones/15/rotation = Quaternion(-0.2229, 0.000510598, 0.064302, 0.972718) bones/15/rotation = Quaternion(-0.223261, 0.000593095, 0.0643502, 0.972632)
bones/15/scale = Vector3(1, 1, 1) bones/15/scale = Vector3(1, 1, 1)
bones/16/name = "Bone.016" bones/16/name = "Bone.016"
bones/16/parent = 15 bones/16/parent = 15
bones/16/rest = Transform3D(0.985406, 0.151262, 0.0780701, -0.133163, 0.970709, -0.199978, -0.106032, 0.186663, 0.976685, -8.9407e-08, 0.160424, -8.34465e-07) bones/16/rest = Transform3D(0.985406, 0.151262, 0.0780701, -0.133163, 0.970709, -0.199978, -0.106032, 0.186663, 0.976685, -8.9407e-08, 0.160424, -8.34465e-07)
bones/16/enabled = true bones/16/enabled = true
bones/16/position = Vector3(-8.9407e-08, 0.160424, -8.34465e-07) bones/16/position = Vector3(-8.9407e-08, 0.160424, -8.34465e-07)
bones/16/rotation = Quaternion(0.0952832, 0.046847, -0.0714507, 0.991777) bones/16/rotation = Quaternion(0.0951067, 0.0468815, -0.0714298, 0.991794)
bones/16/scale = Vector3(1, 1, 1) bones/16/scale = Vector3(1, 1, 1)
bones/17/name = "Bone.017" bones/17/name = "Bone.017"
bones/17/parent = 1 bones/17/parent = 1
bones/17/rest = Transform3D(0.731154, -0.681923, -0.0198735, 0.682037, 0.729994, 0.0439834, -0.0154858, -0.0457131, 0.998835, 2.38419e-07, 0.416929, 0) bones/17/rest = Transform3D(0.731154, -0.681923, -0.0198735, 0.682037, 0.729994, 0.0439834, -0.0154858, -0.0457131, 0.998835, 2.38419e-07, 0.416929, 0)
bones/17/enabled = true bones/17/enabled = true
bones/17/position = Vector3(2.38419e-07, 0.416929, 0) bones/17/position = Vector3(2.38419e-07, 0.416929, 0)
bones/17/rotation = Quaternion(-0.0273007, 0.000857824, 0.367859, 0.929481) bones/17/rotation = Quaternion(-0.0275485, 0.0010161, 0.367954, 0.929435)
bones/17/scale = Vector3(1, 1, 1) bones/17/scale = Vector3(1, 1, 1)
bones/18/name = "Bone.018" bones/18/name = "Bone.018"
bones/18/parent = 17 bones/18/parent = 17
bones/18/rest = Transform3D(0.857942, 0.502854, 0.105233, -0.513705, 0.842316, 0.163129, -0.00660948, -0.194014, 0.980976, -5.96046e-07, 0.400228, -7.15256e-07) bones/18/rest = Transform3D(0.857942, 0.502854, 0.105233, -0.513705, 0.842316, 0.163129, -0.00660948, -0.194014, 0.980976, -5.96046e-07, 0.400228, -7.15256e-07)
bones/18/enabled = true bones/18/enabled = true
bones/18/position = Vector3(-5.96046e-07, 0.400228, -7.15256e-07) bones/18/position = Vector3(-5.96046e-07, 0.400228, -7.15256e-07)
bones/18/rotation = Quaternion(-0.0960279, 0.0306086, -0.264964, 0.958977) bones/18/rotation = Quaternion(-0.0963091, 0.0307478, -0.264968, 0.958943)
bones/18/scale = Vector3(1, 1, 1) bones/18/scale = Vector3(1, 1, 1)
bones/19/name = "Bone.019" bones/19/name = "Bone.019"
bones/19/parent = 18 bones/19/parent = 18
bones/19/rest = Transform3D(0.998612, 0.039929, -0.0343581, -0.0385066, 0.998412, 0.0411099, 0.035945, -0.0397298, 0.998564, 2.08616e-07, 0.196712, -2.38419e-07) bones/19/rest = Transform3D(0.998612, 0.039929, -0.0343581, -0.0385066, 0.998412, 0.0411099, 0.035945, -0.0397298, 0.998564, 2.08616e-07, 0.196712, -2.38419e-07)
bones/19/enabled = true bones/19/enabled = true
bones/19/position = Vector3(2.08616e-07, 0.196712, -2.38419e-07) bones/19/position = Vector3(2.08616e-07, 0.196712, -2.38419e-07)
bones/19/rotation = Quaternion(-0.0243731, -0.0180625, -0.0204339, 0.999331) bones/19/rotation = Quaternion(-0.0246978, -0.0180998, -0.0204976, 0.999321)
bones/19/scale = Vector3(1, 1, 1) bones/19/scale = Vector3(1, 1, 1)
bones/20/name = "Bone.020" bones/20/name = "Bone.020"
bones/20/parent = 19 bones/20/parent = 19
@@ -1672,8 +1680,8 @@ bones/21/name = "Bone.021"
bones/21/parent = -1 bones/21/parent = -1
bones/21/rest = Transform3D(0.638395, -0.466665, -0.612108, -0.416251, 0.459614, -0.784532, 0.647446, 0.755632, 0.0991659, 2.29161, -2.09633, -3.23813) bones/21/rest = Transform3D(0.638395, -0.466665, -0.612108, -0.416251, 0.459614, -0.784532, 0.647446, 0.755632, 0.0991659, 2.29161, -2.09633, -3.23813)
bones/21/enabled = true bones/21/enabled = true
bones/21/position = Vector3(2.51503, -1.40955, -3.18659) bones/21/position = Vector3(2.51448, -1.40963, -3.18684)
bones/21/rotation = Quaternion(0.497122, 0.108774, 0.414594, 0.75442) bones/21/rotation = Quaternion(0.497287, 0.108962, 0.414333, 0.754428)
bones/21/scale = Vector3(1, 1, 1) bones/21/scale = Vector3(1, 1, 1)
[node name="CHEST" type="MeshInstance3D" parent="ARM9/9_ L MAGIC 3 ARM/Skeleton3D"] [node name="CHEST" type="MeshInstance3D" parent="ARM9/9_ L MAGIC 3 ARM/Skeleton3D"]
@@ -1681,7 +1689,7 @@ mesh = SubResource("ArrayMesh_auq5d")
skin = SubResource("Skin_h0kek") skin = SubResource("Skin_h0kek")
[node name="BoneAttachment3D" type="BoneAttachment3D" parent="ARM9/9_ L MAGIC 3 ARM/Skeleton3D"] [node name="BoneAttachment3D" type="BoneAttachment3D" parent="ARM9/9_ L MAGIC 3 ARM/Skeleton3D"]
transform = Transform3D(-0.700074, -0.690981, 0.180118, 0.68537, -0.579414, 0.441077, -0.200413, 0.432234, 0.879209, -0.0462436, -0.993866, 0.974356) transform = Transform3D(-0.70091, -0.6905, 0.178704, 0.684437, -0.580648, 0.440901, -0.200678, 0.431343, 0.879586, -0.0440634, -0.991943, 0.975215)
bone_name = "Bone.015" bone_name = "Bone.015"
bone_idx = 15 bone_idx = 15

View File

@@ -7,7 +7,7 @@ using Zennysoft.Ma.Adapter;
namespace Zennysoft.Game.Ma; namespace Zennysoft.Game.Ma;
[Meta(typeof(IAutoNode))] [Meta(typeof(IAutoNode))]
public partial class DemonWallArm : Node3D public partial class DemonWallArm : EnemyModelView
{ {
public override void _Notification(int what) => this.Notify(what); public override void _Notification(int what) => this.Notify(what);
@@ -19,27 +19,20 @@ public partial class DemonWallArm : Node3D
[Dependency] protected IPlayer _player => this.DependOn(() => GetParent().GetChildren().OfType<IPlayer>().Single()); [Dependency] protected IPlayer _player => this.DependOn(() => GetParent().GetChildren().OfType<IPlayer>().Single());
[Node] public AnimationTree AnimationTree { get; set; } = default!;
[Node] public Area3D Hitbox { get; set; } = default!; [Node] public Area3D Hitbox { get; set; } = default!;
[Export] public double Damage { get; set; } = 15;
[Export] public ElementType PrimaryAttackElementalType { get; set; } = ElementType.None;
[Export] public double PrimaryAttackElementalDamageBonus { get; set; } = 1.0f;
public void PrimaryAttack() => AnimationTree.Get(PARAMETERS_PLAYBACK).As<AnimationNodeStateMachinePlayback>().Travel(ATTACK); public void PrimaryAttack() => AnimationTree.Get(PARAMETERS_PLAYBACK).As<AnimationNodeStateMachinePlayback>().Travel(ATTACK);
public void OnReady() public new void OnReady()
{ {
Hitbox.AreaEntered += Hitbox_AreaEntered; Hitbox.AreaEntered += Hitbox_AreaEntered;
base.OnReady();
} }
private void Hitbox_AreaEntered(Area3D area) private void Hitbox_AreaEntered(Area3D area)
{ {
var target = area.GetOwner(); var target = area.GetOwner();
if (target is IPlayer player) if (target is IPlayer player)
player.TakeDamage(new Damage((int)(Damage * PrimaryAttackElementalDamageBonus), PrimaryAttackElementalType, false, false, false)); OnPlayerHit(new AttackEventArgs(new AttackData(AttackData.Damage, AttackData.ElementType)));
} }
} }

View File

@@ -12,6 +12,16 @@ public partial class DemonWallModelView : EnemyModelView3D, IEnemyModelView
{ {
public override void _Notification(int what) => this.Notify(what); public override void _Notification(int what) => this.Notify(what);
private readonly string ATTACK1 = "ARM 1 PROJECTILE";
private readonly string ATTACK2 = "ARM 2 LASER";
private readonly string ATTACK3 = "ARM 3 WALL CALL";
private readonly string ATTACK4 = "ARM 4 SHOCK";
private readonly string ATTACK5 = "5_ _ R MELEE SLAM";
private readonly string ATTACK6 = "ARM 6 SLASH";
private readonly string ATTACK7 = "7_ AGNI CONE";
private readonly string ATTACK8 = "ARM 8 MELEE";
private readonly string ATTACK9 = "ARM 9 MAGIC SPELL";
[Dependency] protected IPlayer _player => this.DependOn(() => GetParent().GetChildren().OfType<IPlayer>().Single()); [Dependency] protected IPlayer _player => this.DependOn(() => GetParent().GetChildren().OfType<IPlayer>().Single());
[Node] public Node3D LeftArms { get; set; } = default!; [Node] public Node3D LeftArms { get; set; } = default!;
@@ -24,6 +34,14 @@ public partial class DemonWallModelView : EnemyModelView3D, IEnemyModelView
[Node] private AnimatableBody3D _opposingWall { get; set; } = default!; [Node] private AnimatableBody3D _opposingWall { get; set; } = default!;
[Node] public DemonWallArm Arm1 { get; set; } = default!;
[Node] public DemonWallArm Arm2 { get; set; } = default!;
[Node] public DemonWallArm Arm3 { get; set; } = default!;
[Node] public DemonWallArm Arm7 { get; set; } = default!;
public override void PlayActivateAnimation() public override void PlayActivateAnimation()
{ {
_opposingWall.Show(); _opposingWall.Show();
@@ -34,7 +52,6 @@ public partial class DemonWallModelView : EnemyModelView3D, IEnemyModelView
public void OnPhysicsProcess(double delta) public void OnPhysicsProcess(double delta)
{ {
var direction = GlobalPosition.DirectionTo(_player.CurrentPosition).Normalized();
var rotationAngle = GetRotationAngle(_rotation); var rotationAngle = GetRotationAngle(_rotation);
RotateToPlayer(Eye, rotationAngle, 1f); RotateToPlayer(Eye, rotationAngle, 1f);
} }
@@ -59,22 +76,30 @@ public partial class DemonWallModelView : EnemyModelView3D, IEnemyModelView
leftArm.PrimaryAttack(); leftArm.PrimaryAttack();
rightArm.PrimaryAttack(); rightArm.PrimaryAttack();
var arm1 = GetNode<DemonWallArm>("%Arm1"); if (leftArm == Arm1)
var arm2 = GetNode<DemonWallArm>("%Arm2"); {
var arm7 = GetNode<DemonWallArm>("%Arm2"); var anim = Arm1.AnimationTree.GetAnimation(ATTACK1);
await AimAtPlayer(Arm1, anim.Length);
}
if (leftArm == Arm2)
{
var anim = Arm2.AnimationTree.GetAnimation(ATTACK2);
await AimAtPlayer(Arm2, anim.Length);
}
if (leftArm == arm1) if (leftArm == Arm3 && _opposingWall.Position.Z > -maximumWallMoveAmount)
await AimAtPlayer(arm1, 2.1);
if (leftArm == arm2)
await AimAtPlayer(arm2, 1.5);
if (leftArm == GetNode<DemonWallArm>("%Arm3") && _opposingWall.Position.Z > -maximumWallMoveAmount)
MoveWall(); MoveWall();
if (rightArm == arm7)
await AimAtPlayer(arm7, 2.5); if (rightArm == Arm7)
{
var anim = Arm7.AnimationTree.GetAnimation(ATTACK7);
await AimAtPlayer(Arm7, anim.Length);
}
} }
private async Task AimAtPlayer(DemonWallArm arm, double animationLengthInSeconds) private async Task AimAtPlayer(DemonWallArm arm, double animationLengthInSeconds)
{ {
var anim = new Animation();
var rotationAngle = GetRotationAngle(arm.GetNode<Node3D>("%Rotation")); var rotationAngle = GetRotationAngle(arm.GetNode<Node3D>("%Rotation"));
RotateToPlayer(arm.GetNode<Node3D>("%Pivot"), rotationAngle, 0.3f); RotateToPlayer(arm.GetNode<Node3D>("%Pivot"), rotationAngle, 0.3f);
await ToSignal(GetTree().CreateTimer(animationLengthInSeconds), "timeout"); await ToSignal(GetTree().CreateTimer(animationLengthInSeconds), "timeout");
@@ -95,11 +120,11 @@ public partial class DemonWallModelView : EnemyModelView3D, IEnemyModelView
private float GetRotationAngle(Node3D rotationNode) private float GetRotationAngle(Node3D rotationNode)
{ {
var target = new Vector3(_player.CurrentPosition.X, Position.Y, _player.CurrentPosition.Z); var target = new Vector3(_player.GlobalPosition.X, Position.Y, _player.GlobalPosition.Z);
rotationNode.LookAt(target, Vector3.Up, true); rotationNode.LookAt(target, Vector3.Up, true);
rotationNode.RotateY(Rotation.Y); rotationNode.RotateY(Rotation.Y);
return rotationNode.Rotation.Y; return rotationNode.Rotation.Y;
} }
private void RotateTowardsPlayer(Node3D rotationNode, float angle) => rotationNode.Rotation = new Vector3(rotationNode.Rotation.X, angle, rotationNode.Rotation.Z); private static void RotateTowardsPlayer(Node3D rotationNode, float angle) => rotationNode.Rotation = new Vector3(rotationNode.Rotation.X, angle, rotationNode.Rotation.Z);
} }

View File

@@ -343,33 +343,42 @@ unique_name_in_owner = true
[node name="Arm1" parent="LeftArms" instance=ExtResource("1_ell80")] [node name="Arm1" parent="LeftArms" instance=ExtResource("1_ell80")]
unique_name_in_owner = true unique_name_in_owner = true
AttackData = null
[node name="Arm2" parent="LeftArms" instance=ExtResource("2_kblru")] [node name="Arm2" parent="LeftArms" instance=ExtResource("2_kblru")]
unique_name_in_owner = true unique_name_in_owner = true
AttackData = null
[node name="Arm3" parent="LeftArms" instance=ExtResource("3_nqxqr")] [node name="Arm3" parent="LeftArms" instance=ExtResource("3_nqxqr")]
unique_name_in_owner = true unique_name_in_owner = true
AttackData = null
[node name="Arm4" parent="LeftArms" instance=ExtResource("4_r5yku")] [node name="Arm4" parent="LeftArms" instance=ExtResource("4_r5yku")]
unique_name_in_owner = true unique_name_in_owner = true
AttackData = null
[node name="Arm5" parent="LeftArms" instance=ExtResource("5_5oa7x")] [node name="Arm5" parent="LeftArms" instance=ExtResource("5_5oa7x")]
unique_name_in_owner = true unique_name_in_owner = true
AttackData = null
[node name="RightArms" type="Node3D" parent="."] [node name="RightArms" type="Node3D" parent="."]
unique_name_in_owner = true unique_name_in_owner = true
[node name="Arm6" parent="RightArms" instance=ExtResource("6_h1yna")] [node name="Arm6" parent="RightArms" instance=ExtResource("6_h1yna")]
unique_name_in_owner = true unique_name_in_owner = true
AttackData = null
[node name="Arm7" parent="RightArms" instance=ExtResource("7_6s6sq")] [node name="Arm7" parent="RightArms" instance=ExtResource("7_6s6sq")]
unique_name_in_owner = true unique_name_in_owner = true
AttackData = null
[node name="Arm8" parent="RightArms" instance=ExtResource("8_e82oe")] [node name="Arm8" parent="RightArms" instance=ExtResource("8_e82oe")]
unique_name_in_owner = true unique_name_in_owner = true
AttackData = null
[node name="Arm9" parent="RightArms" instance=ExtResource("9_c826n")] [node name="Arm9" parent="RightArms" instance=ExtResource("9_c826n")]
unique_name_in_owner = true unique_name_in_owner = true
AttackData = null
[node name="DEMON WALL BASE + PIPES" type="Node3D" parent="."] [node name="DEMON WALL BASE + PIPES" type="Node3D" parent="."]

View File

@@ -124,7 +124,7 @@ public class EffectService
var currentEnemies = currentRoom.EnemiesInRoom; var currentEnemies = currentRoom.EnemiesInRoom;
foreach (var enemy in currentEnemies) foreach (var enemy in currentEnemies)
{ {
var damageDealt = DamageCalculator.CalculateDamage(new Damage(20, elementType, false, false, false), 10, new ElementalResistanceSet(0, 0, 0, 0, 0)); var damageDealt = DamageCalculator.CalculateDamage(new AttackData(20, elementType), 10, ElementalResistanceSet.None);
enemy.HealthComponent.Damage(damageDealt); enemy.HealthComponent.Damage(damageDealt);
} }
} }

View File

@@ -5,7 +5,6 @@ using Godot;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Zennysoft.Game.Abstractions; using Zennysoft.Game.Abstractions;
using Zennysoft.Game.Implementation;
using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter;
namespace Zennysoft.Game.Ma; namespace Zennysoft.Game.Ma;
@@ -47,11 +46,11 @@ public partial class Inventory : Node, IInventory
public void Remove(InventoryItem inventoryItem) => Items.Remove(inventoryItem); public void Remove(InventoryItem inventoryItem) => Items.Remove(inventoryItem);
public void Sort() public void Sort(EquipableItem currentWeapon, EquipableItem currentArmor, EquipableItem currentAccessory)
{ {
var equippedWeapon = Items.OfType<Weapon>().Where(x => x.IsEquipped); var equippedWeapon = Items.OfType<Weapon>().Where(x => x == currentWeapon);
var equippedArmor = Items.OfType<Armor>().Where(x => x.IsEquipped); var equippedArmor = Items.OfType<Armor>().Where(x => x == currentArmor);
var equippedAccessory = Items.OfType<Accessory>().Where(x => x.IsEquipped); var equippedAccessory = Items.OfType<Accessory>().Where(x => x == currentAccessory);
var equippedItems = new List<InventoryItem>(); var equippedItems = new List<InventoryItem>();
equippedItems.AddRange(equippedWeapon); equippedItems.AddRange(equippedWeapon);
equippedItems.AddRange(equippedArmor); equippedItems.AddRange(equippedArmor);
@@ -80,10 +79,10 @@ public partial class Inventory : Node, IInventory
{ {
public int Compare(Weapon x, Weapon y) public int Compare(Weapon x, Weapon y)
{ {
if (x.Damage == y.Damage) if (x.BonusAttack == y.BonusAttack)
return x.ItemName.CompareTo(y.ItemName); return x.ItemName.CompareTo(y.ItemName);
return x.Damage < y.Damage ? 1 : -1; return x.BonusAttack < y.BonusAttack ? 1 : -1;
} }
} }
@@ -91,10 +90,10 @@ public partial class Inventory : Node, IInventory
{ {
public int Compare(Armor x, Armor y) public int Compare(Armor x, Armor y)
{ {
if (x.Defense == y.Defense) if (x.BonusDefense == y.BonusDefense)
return x.ItemName.CompareTo(y.ItemName); return x.ItemName.CompareTo(y.ItemName);
return x.Defense < y.Defense ? 1 : -1; return x.BonusDefense < y.BonusDefense ? 1 : -1;
} }
} }

View File

@@ -10,22 +10,34 @@ namespace Zennysoft.Game.Ma;
public abstract partial class InventoryItemStats : Resource public abstract partial class InventoryItemStats : Resource
{ {
[Export] [Export]
public abstract string Name { get; set; } public string Name { get; set; }
[Export(PropertyHint.MultilineText)] [Export(PropertyHint.MultilineText)]
public abstract string Description { get; set; } public string Description { get; set; }
[Export(PropertyHint.Range, "0, 1, 0.01")] [Export(PropertyHint.Range, "0, 1, 0.01")]
public float SpawnRate { get; set; } = 0.5f; public float SpawnRate { get; set; } = 0.5f;
[Export]
[Save("weapon_damage")]
public int BonusAttack { get; set; } = 0;
[Export]
[Save("armor_defense")]
public int Defense { get; set; } = 0;
[Export]
[Save("weapon_luck")]
public double Luck { get; set; } = 0.05;
[Export(PropertyHint.Range, "0, 25, 0.1")] [Export(PropertyHint.Range, "0, 25, 0.1")]
public float ThrowSpeed { get; set; } = 12.0f; public float ThrowSpeed { get; set; } = 12.0f;
[Export(PropertyHint.Range, "0, 999, 1")] [Export(PropertyHint.Range, "0, 999, 1")]
public int HealHPAmount { get; set; } public int IncreaseMaxHPAmount { get; set; }
[Export(PropertyHint.Range, "0, 999, 1")] [Export(PropertyHint.Range, "0, 999, 1")]
public int HealVTAmount { get; set; } public int IncreaseMaxVTAmount { get; set; }
[Export(PropertyHint.Range, "0, 999, 1")] [Export(PropertyHint.Range, "0, 999, 1")]
public int ThrowDamage { get; set; } = 5; public int ThrowDamage { get; set; } = 5;

View File

@@ -27,16 +27,6 @@ public partial class Accessory : EquipableItem
public override float ThrowSpeed => Stats.ThrowSpeed; public override float ThrowSpeed => Stats.ThrowSpeed;
public int MaxHPUp => Stats.MaxHPUp;
public int MaxVTUp => Stats.MaxVTUp;
public double LuckUp => Stats.LuckUp;
public int ATKUp => Stats.ATKUp;
public int DEFUp => Stats.DEFUp;
public AccessoryTag AccessoryTag => Stats.AccessoryTag; public AccessoryTag AccessoryTag => Stats.AccessoryTag;
public override ItemTag ItemTag => Stats.ItemTag; public override ItemTag ItemTag => Stats.ItemTag;

View File

@@ -1,7 +1,6 @@
using Chickensoft.Introspection; using Chickensoft.Introspection;
using Chickensoft.Serialization; using Chickensoft.Serialization;
using Godot; using Godot;
using Zennysoft.Game.Implementation;
using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter;
namespace Zennysoft.Game.Ma; namespace Zennysoft.Game.Ma;
@@ -10,34 +9,6 @@ namespace Zennysoft.Game.Ma;
[Meta, Id("accessory_stat_type")] [Meta, Id("accessory_stat_type")]
public partial class AccessoryStats : InventoryItemStats public partial class AccessoryStats : InventoryItemStats
{ {
[Export]
[Save("accessory_name")]
public override string Name { get; set; } = default!;
[Export(PropertyHint.MultilineText)]
[Save("accessory_description")]
public override string Description { get; set; } = default!;
[Export]
[Save("accessory_atk_up")]
public int ATKUp { get; set; } = 0;
[Export]
[Save("accessory_def_up")]
public int DEFUp { get; set; } = 0;
[Export]
[Save("accessory_luck_up")]
public double LuckUp { get; set; } = 0;
[Export]
[Save("accessory_max_hp_up")]
public int MaxHPUp { get; set; } = 0;
[Export]
[Save("accessory_max_vt_up")]
public int MaxVTUp { get; set; } = 0;
[Export] [Export]
[Save("accessory_tag")] [Save("accessory_tag")]
public AccessoryTag AccessoryTag { get; set; } = AccessoryTag.None; public AccessoryTag AccessoryTag { get; set; } = AccessoryTag.None;

View File

@@ -28,9 +28,8 @@ public partial class Armor : EquipableItem
public override float ThrowSpeed => Stats.ThrowSpeed; public override float ThrowSpeed => Stats.ThrowSpeed;
public int Defense => Stats.Defense + _bonusDefense; public override int BonusDefense => Stats.Defense + _bonusDefense;
[Save("armor_bonus_defense")]
private int _bonusDefense { get; set; } = 0; private int _bonusDefense { get; set; } = 0;
public void IncreaseArmorDefense(int bonus) => _bonusDefense += bonus; public void IncreaseArmorDefense(int bonus) => _bonusDefense += bonus;

View File

@@ -9,18 +9,6 @@ namespace Zennysoft.Game.Ma;
[Meta, Id("armor_stats")] [Meta, Id("armor_stats")]
public partial class ArmorStats : InventoryItemStats public partial class ArmorStats : InventoryItemStats
{ {
[Export]
[Save("armor_name")]
public override string Name { get; set; } = default!;
[Export(PropertyHint.MultilineText)]
[Save("armor_description")]
public override string Description { get; set; } = default!;
[Export]
[Save("armor_defense")]
public int Defense { get; set; } = 0;
[Export] [Export]
[Save("armor_telluric_resistance")] [Save("armor_telluric_resistance")]
private double _telluricResistance { get; set; } = 0; private double _telluricResistance { get; set; } = 0;

View File

@@ -32,9 +32,9 @@ public partial class ConsumableItem : InventoryItem
public int HealVTAmount => Stats.HealVTAmount; public int HealVTAmount => Stats.HealVTAmount;
public int RaiseHPAmount => Stats.RaiseHPAmount; public int RaiseHPAmount => Stats.PermanentRaiseHPAmount;
public int RaiseVTAmount => Stats.RaiseVTAmount; public int RaiseVTAmount => Stats.PermanentRaiseVTAmount;
public override ItemTag ItemTag => Stats.ItemTag; public override ItemTag ItemTag => Stats.ItemTag;

View File

@@ -8,19 +8,17 @@ namespace Zennysoft.Game.Ma;
[Meta, Id("consumable_item_stats")] [Meta, Id("consumable_item_stats")]
public partial class ConsumableItemStats : InventoryItemStats public partial class ConsumableItemStats : InventoryItemStats
{ {
[Export] [Export(PropertyHint.Range, "0, 999, 1")]
[Save("consumable_item_name")] public int HealHPAmount { get; set; }
public override string Name { get; set; } = default!;
[Export(PropertyHint.MultilineText)] [Export(PropertyHint.Range, "0, 999, 1")]
[Save("consumable_item_description")] public int HealVTAmount { get; set; }
public override string Description { get; set; } = default!;
[Export] [Export]
[Save("consumable_item_raise_hp")] [Save("consumable_item_raise_hp")]
public int RaiseHPAmount { get; set; } = 0; public int PermanentRaiseHPAmount { get; set; } = 0;
[Export] [Export]
[Save("consumable_item_raise_vt")] [Save("consumable_item_raise_vt")]
public int RaiseVTAmount { get; set; } = 0; public int PermanentRaiseVTAmount { get; set; } = 0;
} }

View File

@@ -38,8 +38,8 @@ public partial class DroppedItem : RigidBody3D, IDroppedItem
AddCollisionExceptionWith((Node)Player); AddCollisionExceptionWith((Node)Player);
Pickup.Monitorable = false; Pickup.Monitorable = false;
Pickup.Monitoring = false; Pickup.Monitoring = false;
GlobalPosition = Player.CurrentPosition + Vector3.Up; GlobalPosition = Player.GlobalPosition + Vector3.Up;
ApplyCentralImpulse(-Player.CurrentBasis.Z.Normalized() * 5.0f); ApplyCentralImpulse(-Player.GlobalBasis.Z.Normalized() * 5.0f);
await ToSignal(GetTree().CreateTimer(1), "timeout"); await ToSignal(GetTree().CreateTimer(1), "timeout");
RemoveCollisionExceptionWith((Node)Player); RemoveCollisionExceptionWith((Node)Player);
Pickup.Monitorable = true; Pickup.Monitorable = true;

View File

@@ -10,14 +10,6 @@ namespace Zennysoft.Game.Ma;
[Meta, Id("effect_item_stats")] [Meta, Id("effect_item_stats")]
public partial class EffectItemStats : InventoryItemStats public partial class EffectItemStats : InventoryItemStats
{ {
[Export]
[Save("effect_item_name")]
public override string Name { get; set; } = default!;
[Export(PropertyHint.MultilineText)]
[Save("effect_item_description")]
public override string Description { get; set; } = default!;
[Export] [Export]
[Save("effect_item_tag")] [Save("effect_item_tag")]
public UsableItemTag UsableItemTag { get; set; } = UsableItemTag.None; public UsableItemTag UsableItemTag { get; set; } = UsableItemTag.None;

View File

@@ -3,7 +3,6 @@ using Chickensoft.Introspection;
using Chickensoft.Serialization; using Chickensoft.Serialization;
using Godot; using Godot;
using Zennysoft.Game.Abstractions; using Zennysoft.Game.Abstractions;
using Zennysoft.Game.Implementation;
using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter;
namespace Zennysoft.Game.Ma; namespace Zennysoft.Game.Ma;

View File

@@ -1,7 +1,6 @@
using Chickensoft.Introspection; using Chickensoft.Introspection;
using Chickensoft.Serialization; using Chickensoft.Serialization;
using Godot; using Godot;
using Zennysoft.Game.Implementation;
using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter;
namespace Zennysoft.Game.Ma; namespace Zennysoft.Game.Ma;
@@ -10,13 +9,11 @@ namespace Zennysoft.Game.Ma;
[Meta, Id("throwable_item_stats")] [Meta, Id("throwable_item_stats")]
public partial class ThrowableItemStats : InventoryItemStats public partial class ThrowableItemStats : InventoryItemStats
{ {
[Export] [Export(PropertyHint.Range, "0, 999, 1")]
[Save("throwable_item_name")] public int HealHPAmount { get; set; }
public override string Name { get; set; } = default!;
[Export(PropertyHint.MultilineText)] [Export(PropertyHint.Range, "0, 999, 1")]
[Save("throwable_item_description")] public int HealVTAmount { get; set; }
public override string Description { get; set; } = default!;
[Export] [Export]
[Save("throwable_item_tag")] [Save("throwable_item_tag")]

View File

@@ -1,7 +1,6 @@
using Chickensoft.AutoInject; using Chickensoft.AutoInject;
using Chickensoft.Introspection; using Chickensoft.Introspection;
using Godot; using Godot;
using Zennysoft.Game.Implementation;
using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter;
using Zennysoft.Ma.Adapter.Entity; using Zennysoft.Ma.Adapter.Entity;
@@ -28,7 +27,7 @@ public partial class ThrownItem : RigidBody3D
{ {
BodyEntered += ThrownItem_BodyEntered; BodyEntered += ThrownItem_BodyEntered;
Collision.AreaEntered += Collision_AreaEntered; Collision.AreaEntered += Collision_AreaEntered;
GlobalPosition = Player.CurrentPosition; GlobalPosition = Player.GlobalPosition;
Sprite.Texture = ItemThatIsThrown.GetTexture(); Sprite.Texture = ItemThatIsThrown.GetTexture();
AddCollisionExceptionWith((Node)Player); AddCollisionExceptionWith((Node)Player);
Collision.SetCollisionLayerValue(3, false); Collision.SetCollisionLayerValue(3, false);
@@ -60,7 +59,7 @@ public partial class ThrownItem : RigidBody3D
public void Throw(EffectService effectService) public void Throw(EffectService effectService)
{ {
_effectService = effectService; _effectService = effectService;
ApplyCentralImpulse(-Player.CurrentBasis.Z.Normalized() * ItemThatIsThrown.ThrowSpeed); ApplyCentralImpulse(-Player.GlobalBasis.Z.Normalized() * ItemThatIsThrown.ThrowSpeed);
} }
public void RescueItem() public void RescueItem()
@@ -116,14 +115,14 @@ public partial class ThrownItem : RigidBody3D
_effectService.TeleportToRandomRoom(enemy); _effectService.TeleportToRandomRoom(enemy);
break; break;
default: default:
var damageDealt = DamageCalculator.CalculateDamage(new Damage(throwableItem.ThrowDamage, throwableItem.ElementType, false, false, false), 10, new ElementalResistanceSet(0, 0, 0, 0, 0)); var damageDealt = DamageCalculator.CalculateDamage(new AttackData(throwableItem.ThrowDamage, throwableItem.ElementType), 10, ElementalResistanceSet.None);
enemy.HealthComponent.Damage(damageDealt); enemy.HealthComponent.Damage(damageDealt);
break; break;
} }
} }
else else
{ {
var damageDealt = DamageCalculator.CalculateDamage(new Damage(ItemThatIsThrown.ThrowDamage, ElementType.None, false, false, false), 10, new ElementalResistanceSet(0, 0, 0, 0, 0)); var damageDealt = DamageCalculator.CalculateDamage(new AttackData(ItemThatIsThrown.ThrowDamage, ElementType.None), 10, ElementalResistanceSet.None);
enemy.HealthComponent.Damage(damageDealt); enemy.HealthComponent.Damage(damageDealt);
} }
} }

View File

@@ -38,14 +38,11 @@ public partial class Weapon : EquipableItem
public ElementType WeaponElement => Stats.WeaponElement; public ElementType WeaponElement => Stats.WeaponElement;
public double ElementalDamageBonus => Stats.ElementalDamageBonus; public void IncreaseWeaponAttack(int bonus) => _extraDamage += bonus;
public int Damage => Stats.Damage + _bonusDamage; public override int BonusAttack { get => Stats.BonusAttack + _extraDamage; }
public void IncreaseWeaponAttack(int bonus) => _bonusDamage += bonus; private int _extraDamage = 0;
[Save("weapon_bonus_damage")]
private int _bonusDamage { get; set; } = 0;
[Export] [Export]
[Save("weapon_stats")] [Save("weapon_stats")]

View File

@@ -1,7 +1,6 @@
using Chickensoft.Introspection; using Chickensoft.Introspection;
using Chickensoft.Serialization; using Chickensoft.Serialization;
using Godot; using Godot;
using Zennysoft.Game.Implementation;
using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter;
namespace Zennysoft.Game.Ma; namespace Zennysoft.Game.Ma;
@@ -10,22 +9,6 @@ namespace Zennysoft.Game.Ma;
[Meta, Id("weapon_stat_type")] [Meta, Id("weapon_stat_type")]
public partial class WeaponStats : InventoryItemStats public partial class WeaponStats : InventoryItemStats
{ {
[Export]
[Save("weapon_name")]
public override string Name { get; set; } = default!;
[Export(PropertyHint.MultilineText)]
[Save("weapon_description")]
public override string Description { get; set; } = default!;
[Export]
[Save("weapon_damage")]
public int Damage { get; set; } = 0;
[Export]
[Save("weapon_luck")]
public double Luck { get; set; } = 0.05;
[Export] [Export]
[Save("weapon_atk_speed")] [Save("weapon_atk_speed")]
public double AttackSpeed { get; set; } = 1; public double AttackSpeed { get; set; } = 1;
@@ -34,10 +17,6 @@ public partial class WeaponStats : InventoryItemStats
[Save("weapon_element")] [Save("weapon_element")]
public ElementType WeaponElement { get; set; } = ElementType.None; public ElementType WeaponElement { get; set; } = ElementType.None;
[Export]
[Save("weapon_elemental_damage_bonus")]
public double ElementalDamageBonus { get; set; } = 1.0;
[Export] [Export]
[Save("weapon_tag")] [Save("weapon_tag")]
public WeaponTag WeaponTag { get; set; } = WeaponTag.None; public WeaponTag WeaponTag { get; set; } = WeaponTag.None;

View File

@@ -1,9 +1,12 @@
[gd_resource type="Resource" load_steps=2 format=3 uid="uid://ww4vha51i82v"] [gd_resource type="Resource" script_class="WeaponStats" load_steps=2 format=3 uid="uid://ww4vha51i82v"]
[ext_resource type="Script" uid="uid://cc7byqeolw5y4" path="res://src/items/weapons/WeaponStats.cs" id="1_d2lw0"] [ext_resource type="Script" uid="uid://cc7byqeolw5y4" path="res://src/items/weapons/WeaponStats.cs" id="1_d2lw0"]
[resource] [resource]
script = ExtResource("1_d2lw0") script = ExtResource("1_d2lw0")
AttackSpeed = 0.15
WeaponElement = 0
WeaponTag = 0
Name = "Atonement" Name = "Atonement"
Description = "\"Should I betray my mother, my father, my brother, my sister, my love, let me be pierced by a thousand knives. Description = "\"Should I betray my mother, my father, my brother, my sister, my love, let me be pierced by a thousand knives.
Should I betray the self, let me be struck by 10,000 lightning bolts. Should I betray the self, let me be struck by 10,000 lightning bolts.
@@ -15,16 +18,13 @@ The Goddess of Destruction materialized it's sorrow into this form.
A powerful weapon that has the ability to obliterate anything of the earth. A powerful weapon that has the ability to obliterate anything of the earth.
There is significance in your using it." There is significance in your using it."
Damage = 1000
Luck = 0.05
AttackSpeed = 0.15
WeaponElement = 0
ElementalDamageBonus = 1.0
WeaponTag = 0
SpawnRate = 0.0 SpawnRate = 0.0
BonusAttack = 1000
Defense = 0
Luck = 0.05
ThrowSpeed = 12.0 ThrowSpeed = 12.0
HealHPAmount = 0 IncreaseMaxHPAmount = 0
HealVTAmount = 0 IncreaseMaxVTAmount = 0
ThrowDamage = 5 ThrowDamage = 5
ItemTag = 0 ItemTag = 0
metadata/_custom_type_script = "uid://cc7byqeolw5y4" metadata/_custom_type_script = "uid://cc7byqeolw5y4"

View File

@@ -1,21 +1,23 @@
[gd_resource type="Resource" script_class="WeaponStats" load_steps=3 format=3 uid="uid://c1bg0o7nmu2xw"] [gd_resource type="Resource" script_class="WeaponStats" load_steps=3 format=3 uid="uid://c1bg0o7nmu2xw"]
[ext_resource type="Texture2D" uid="uid://cil3xe3jq82r6" path="res://src/items/weapons/textures/JIBLETT.PNG" id="1_ifm43"] [ext_resource type="Texture2D" uid="uid://cil3xe3jq82r6" path="res://src/items/weapons/textures/JIBLETT.PNG" id="1_ifm43"]
[ext_resource type="Script" path="res://src/items/weapons/WeaponStats.cs" id="1_re512"] [ext_resource type="Script" uid="uid://cc7byqeolw5y4" path="res://src/items/weapons/WeaponStats.cs" id="1_re512"]
[resource] [resource]
script = ExtResource("1_re512") script = ExtResource("1_re512")
Damage = 3
Luck = 0.05
AttackSpeed = 1.0 AttackSpeed = 1.0
TelluricDamageBonus = 0.0 WeaponElement = 0
AeolicDamageBonus = 0.0 WeaponTag = 0
BaseHydricDamageBonus = 0.0
IgneousDamageBonus = 0.0
FerrumDamageBonus = 0.0
WeaponTags = []
Name = "Jiblett" Name = "Jiblett"
Description = "+3 ATK Description = "+3 ATK
A halberd for the tasteful." A halberd for the tasteful."
Texture = ExtResource("1_ifm43")
SpawnRate = 0.1 SpawnRate = 0.1
BonusAttack = 3
Defense = 0
Luck = 0.05
ThrowSpeed = 12.0
IncreaseMaxHPAmount = 0
IncreaseMaxVTAmount = 0
ThrowDamage = 5
ItemTag = 0
Texture = ExtResource("1_ifm43")

View File

@@ -1,20 +1,22 @@
[gd_resource type="Resource" script_class="WeaponStats" load_steps=3 format=3 uid="uid://c8bvtfcq772sv"] [gd_resource type="Resource" script_class="WeaponStats" load_steps=3 format=3 uid="uid://c8bvtfcq772sv"]
[ext_resource type="Texture2D" uid="uid://dsi0myqu80aq3" path="res://src/items/weapons/textures/katar.PNG" id="1_3waom"] [ext_resource type="Texture2D" uid="uid://dsi0myqu80aq3" path="res://src/items/weapons/textures/katar.PNG" id="1_3waom"]
[ext_resource type="Script" path="res://src/items/weapons/WeaponStats.cs" id="2_3gdyl"] [ext_resource type="Script" uid="uid://cc7byqeolw5y4" path="res://src/items/weapons/WeaponStats.cs" id="2_3gdyl"]
[resource] [resource]
script = ExtResource("2_3gdyl") script = ExtResource("2_3gdyl")
Damage = 1
Luck = 0.05
AttackSpeed = 1.25 AttackSpeed = 1.25
TelluricDamageBonus = 0.0 WeaponElement = 0
AeolicDamageBonus = 0.0 WeaponTag = 0
BaseHydricDamageBonus = 0.0
IgneousDamageBonus = 0.0
FerrumDamageBonus = 0.0
WeaponTags = []
Name = "Katara" Name = "Katara"
Description = "+1 ATK, Fast" Description = "+1 ATK, Fast"
Texture = ExtResource("1_3waom")
SpawnRate = 0.3 SpawnRate = 0.3
BonusAttack = 1
Defense = 0
Luck = 0.05
ThrowSpeed = 12.0
IncreaseMaxHPAmount = 0
IncreaseMaxVTAmount = 0
ThrowDamage = 5
ItemTag = 0
Texture = ExtResource("1_3waom")

View File

@@ -1,22 +1,24 @@
[gd_resource type="Resource" script_class="WeaponStats" load_steps=3 format=3 uid="uid://db075qhmlmrcu"] [gd_resource type="Resource" script_class="WeaponStats" load_steps=3 format=3 uid="uid://db075qhmlmrcu"]
[ext_resource type="Script" path="res://src/items/weapons/WeaponStats.cs" id="1_kbje7"] [ext_resource type="Script" uid="uid://cc7byqeolw5y4" path="res://src/items/weapons/WeaponStats.cs" id="1_kbje7"]
[ext_resource type="Texture2D" uid="uid://bkntmni5jxfpk" path="res://src/items/weapons/textures/KUBEL.PNG" id="1_kwtbu"] [ext_resource type="Texture2D" uid="uid://bkntmni5jxfpk" path="res://src/items/weapons/textures/KUBEL.PNG" id="1_kwtbu"]
[resource] [resource]
script = ExtResource("1_kbje7") script = ExtResource("1_kbje7")
Damage = 9
Luck = 0.05
AttackSpeed = 1.0 AttackSpeed = 1.0
TelluricDamageBonus = 0.0 WeaponElement = 0
AeolicDamageBonus = 0.0 WeaponTag = 0
BaseHydricDamageBonus = 0.0
IgneousDamageBonus = 0.0
FerrumDamageBonus = 0.0
WeaponTags = [0]
Name = "Kubel" Name = "Kubel"
Description = "+9 ATK Description = "+9 ATK
A very powerful spear. A very powerful spear.
For every hit, you lose 5 HP." For every hit, you lose 5 HP."
Texture = ExtResource("1_kwtbu")
SpawnRate = 0.01 SpawnRate = 0.01
BonusAttack = 9
Defense = 0
Luck = 0.05
ThrowSpeed = 12.0
IncreaseMaxHPAmount = 0
IncreaseMaxVTAmount = 0
ThrowDamage = 5
ItemTag = 0
Texture = ExtResource("1_kwtbu")

View File

@@ -1,21 +1,23 @@
[gd_resource type="Resource" script_class="WeaponStats" load_steps=3 format=3 uid="uid://cfr100khjkloh"] [gd_resource type="Resource" script_class="WeaponStats" load_steps=3 format=3 uid="uid://cfr100khjkloh"]
[ext_resource type="Texture2D" uid="uid://blq3nnyostunl" path="res://src/items/weapons/textures/LOVE JUDGEMENT.PNG" id="1_ivlxj"] [ext_resource type="Texture2D" uid="uid://blq3nnyostunl" path="res://src/items/weapons/textures/LOVE JUDGEMENT.PNG" id="1_ivlxj"]
[ext_resource type="Script" path="res://src/items/weapons/WeaponStats.cs" id="1_vroib"] [ext_resource type="Script" uid="uid://cc7byqeolw5y4" path="res://src/items/weapons/WeaponStats.cs" id="1_vroib"]
[resource] [resource]
script = ExtResource("1_vroib") script = ExtResource("1_vroib")
Damage = 12
Luck = 0.05
AttackSpeed = 1.0 AttackSpeed = 1.0
TelluricDamageBonus = 0.0 WeaponElement = 0
AeolicDamageBonus = 25.0 WeaponTag = 0
BaseHydricDamageBonus = 0.0
IgneousDamageBonus = 0.0
FerrumDamageBonus = 0.0
WeaponTags = []
Name = "Love Judgement" Name = "Love Judgement"
Description = "+12 ATK Description = "+12 ATK
A mace only wieldable by the strong of heart." A mace only wieldable by the strong of heart."
Texture = ExtResource("1_ivlxj")
SpawnRate = 0.01 SpawnRate = 0.01
BonusAttack = 12
Defense = 0
Luck = 0.05
ThrowSpeed = 12.0
IncreaseMaxHPAmount = 0
IncreaseMaxVTAmount = 0
ThrowDamage = 5
ItemTag = 0
Texture = ExtResource("1_ivlxj")

View File

@@ -1,22 +1,24 @@
[gd_resource type="Resource" script_class="WeaponStats" load_steps=3 format=3 uid="uid://ckj1m4iv4m02r"] [gd_resource type="Resource" script_class="WeaponStats" load_steps=3 format=3 uid="uid://ckj1m4iv4m02r"]
[ext_resource type="Texture2D" uid="uid://740syoj0w14p" path="res://src/items/weapons/textures/PALM OF HEAVEN.PNG" id="1_hi6xm"] [ext_resource type="Texture2D" uid="uid://740syoj0w14p" path="res://src/items/weapons/textures/PALM OF HEAVEN.PNG" id="1_hi6xm"]
[ext_resource type="Script" path="res://src/items/weapons/WeaponStats.cs" id="1_pwwg7"] [ext_resource type="Script" uid="uid://cc7byqeolw5y4" path="res://src/items/weapons/WeaponStats.cs" id="1_pwwg7"]
[resource] [resource]
script = ExtResource("1_pwwg7") script = ExtResource("1_pwwg7")
Damage = 10
Luck = 0.05
AttackSpeed = 1.0 AttackSpeed = 1.0
TelluricDamageBonus = 0.0 WeaponElement = 0
AeolicDamageBonus = 0.0 WeaponTag = 0
BaseHydricDamageBonus = 0.0
IgneousDamageBonus = 0.0
FerrumDamageBonus = 0.0
WeaponTags = [3]
Name = "Palm of Heaven" Name = "Palm of Heaven"
Description = "+10 ATK Description = "+10 ATK
Very Powerful. Very Powerful.
Breaks upon leaving the floor." Breaks upon leaving the floor."
Texture = ExtResource("1_hi6xm")
SpawnRate = 0.01 SpawnRate = 0.01
BonusAttack = 10
Defense = 0
Luck = 0.05
ThrowSpeed = 12.0
IncreaseMaxHPAmount = 0
IncreaseMaxVTAmount = 0
ThrowDamage = 5
ItemTag = 0
Texture = ExtResource("1_hi6xm")

View File

@@ -1,21 +1,23 @@
[gd_resource type="Resource" script_class="WeaponStats" load_steps=3 format=3 uid="uid://gebgo2x6nr3t"] [gd_resource type="Resource" script_class="WeaponStats" load_steps=3 format=3 uid="uid://gebgo2x6nr3t"]
[ext_resource type="Texture2D" uid="uid://b8c7kd436tg4" path="res://src/items/weapons/textures/RONDO.PNG" id="1_cvwbh"] [ext_resource type="Texture2D" uid="uid://b8c7kd436tg4" path="res://src/items/weapons/textures/RONDO.PNG" id="1_cvwbh"]
[ext_resource type="Script" path="res://src/items/weapons/WeaponStats.cs" id="1_xfb0x"] [ext_resource type="Script" uid="uid://cc7byqeolw5y4" path="res://src/items/weapons/WeaponStats.cs" id="1_xfb0x"]
[resource] [resource]
script = ExtResource("1_xfb0x") script = ExtResource("1_xfb0x")
Damage = 7
Luck = 0.05
AttackSpeed = 1.333 AttackSpeed = 1.333
TelluricDamageBonus = 0.0 WeaponElement = 0
AeolicDamageBonus = 0.0 WeaponTag = 0
BaseHydricDamageBonus = 0.0
IgneousDamageBonus = 0.0
FerrumDamageBonus = 0.0
WeaponTags = [1]
Name = "Rondo" Name = "Rondo"
Description = "+7 ATK Description = "+7 ATK
An eastern blade outside of time and reproach." An eastern blade outside of time and reproach."
Texture = ExtResource("1_cvwbh")
SpawnRate = 0.01 SpawnRate = 0.01
BonusAttack = 7
Defense = 0
Luck = 0.05
ThrowSpeed = 12.0
IncreaseMaxHPAmount = 0
IncreaseMaxVTAmount = 0
ThrowDamage = 5
ItemTag = 0
Texture = ExtResource("1_cvwbh")

View File

@@ -1,26 +1,24 @@
[gd_resource type="Resource" script_class="WeaponStats" load_steps=3 format=3 uid="uid://b7xr0l4a8g1gk"] [gd_resource type="Resource" script_class="WeaponStats" load_steps=3 format=3 uid="uid://b7xr0l4a8g1gk"]
[ext_resource type="Script" path="res://src/items/weapons/WeaponStats.cs" id="1_40b5j"] [ext_resource type="Script" uid="uid://cc7byqeolw5y4" path="res://src/items/weapons/WeaponStats.cs" id="1_40b5j"]
[ext_resource type="Texture2D" uid="uid://b1qbho30vnuxf" path="res://src/items/weapons/textures/sealing rod.PNG" id="1_wiylj"] [ext_resource type="Texture2D" uid="uid://b1qbho30vnuxf" path="res://src/items/weapons/textures/sealing rod.PNG" id="1_wiylj"]
[resource] [resource]
script = ExtResource("1_40b5j") script = ExtResource("1_40b5j")
Damage = 2
Luck = 0.05
AttackSpeed = 1.0 AttackSpeed = 1.0
TelluricDamageBonus = 0.0 WeaponElement = 0
AeolicDamageBonus = 0.0 WeaponTag = 0
BaseHydricDamageBonus = 0.0
IgneousDamageBonus = 0.0
FerrumDamageBonus = 0.0
WeaponTags = []
Name = "Sealing Rod" Name = "Sealing Rod"
Description = "+2 ATK Description = "+2 ATK
A wand fitted with charms said to cleanse and purify that which belongs to other worlds. A wand fitted with charms said to cleanse and purify that which belongs to other worlds.
It's unaligned nature has the power to balance all that it comes into contact with, should the wielder have the will." It's unaligned nature has the power to balance all that it comes into contact with, should the wielder have the will."
Texture = ExtResource("1_wiylj")
SpawnRate = 0.5 SpawnRate = 0.5
BonusAttack = 2
Defense = 0
Luck = 0.05
ThrowSpeed = 12.0 ThrowSpeed = 12.0
HealHPAmount = 0 IncreaseMaxHPAmount = 0
HealVTAmount = 0 IncreaseMaxVTAmount = 0
ThrowDamage = 5 ThrowDamage = 5
ItemTag = 0
Texture = ExtResource("1_wiylj")

View File

@@ -1,20 +1,22 @@
[gd_resource type="Resource" script_class="WeaponStats" load_steps=3 format=3 uid="uid://dj6i0em2a3hj8"] [gd_resource type="Resource" script_class="WeaponStats" load_steps=3 format=3 uid="uid://dj6i0em2a3hj8"]
[ext_resource type="Texture2D" uid="uid://cixq2naufiuhv" path="res://src/items/weapons/textures/spaded staff.PNG" id="1_6tifm"] [ext_resource type="Texture2D" uid="uid://cixq2naufiuhv" path="res://src/items/weapons/textures/spaded staff.PNG" id="1_6tifm"]
[ext_resource type="Script" path="res://src/items/weapons/WeaponStats.cs" id="2_w4n0u"] [ext_resource type="Script" uid="uid://cc7byqeolw5y4" path="res://src/items/weapons/WeaponStats.cs" id="2_w4n0u"]
[resource] [resource]
script = ExtResource("2_w4n0u") script = ExtResource("2_w4n0u")
Damage = 5
Luck = 0.1
AttackSpeed = 0.75 AttackSpeed = 0.75
TelluricDamageBonus = 0.0 WeaponElement = 0
AeolicDamageBonus = 0.0 WeaponTag = 0
BaseHydricDamageBonus = 0.0
IgneousDamageBonus = 0.0
FerrumDamageBonus = 0.0
WeaponTags = []
Name = "Monk's Spade" Name = "Monk's Spade"
Description = "+5 ATK, Slow" Description = "+5 ATK, Slow"
Texture = ExtResource("1_6tifm")
SpawnRate = 0.3 SpawnRate = 0.3
BonusAttack = 5
Defense = 0
Luck = 0.1
ThrowSpeed = 12.0
IncreaseMaxHPAmount = 0
IncreaseMaxVTAmount = 0
ThrowDamage = 5
ItemTag = 0
Texture = ExtResource("1_6tifm")

View File

@@ -5,21 +5,21 @@
[resource] [resource]
script = ExtResource("1_cik6n") script = ExtResource("1_cik6n")
Damage = 12
Luck = 0.05
AttackSpeed = 1.25 AttackSpeed = 1.25
WeaponElement = 0 WeaponElement = 0
ElementalDamageBonus = 1.0 WeaponTag = 2
WeaponTag = 0
Name = "Swan Sword Odette" Name = "Swan Sword Odette"
Description = "+12 ATK Description = "+12 ATK
Ignores Affinity. Ignores Affinity.
The blade of a thousand faced heroine." The blade of a thousand faced heroine."
Texture = ExtResource("1_qc4eu")
SpawnRate = 0.01 SpawnRate = 0.01
BonusAttack = 12
Defense = 0
Luck = 0.05
ThrowSpeed = 12.0 ThrowSpeed = 12.0
HealHPAmount = 0 IncreaseMaxHPAmount = 0
HealVTAmount = 0 IncreaseMaxVTAmount = 0
ThrowDamage = 5 ThrowDamage = 5
ItemTag = 0 ItemTag = 0
Texture = ExtResource("1_qc4eu")

View File

@@ -1,20 +1,22 @@
[gd_resource type="Resource" script_class="WeaponStats" load_steps=3 format=3 uid="uid://bs01dnjkcmi7a"] [gd_resource type="Resource" script_class="WeaponStats" load_steps=3 format=3 uid="uid://bs01dnjkcmi7a"]
[ext_resource type="Texture2D" uid="uid://d02gqi3icdp8l" path="res://src/items/weapons/textures/talwar.PNG" id="1_8a832"] [ext_resource type="Texture2D" uid="uid://d02gqi3icdp8l" path="res://src/items/weapons/textures/talwar.PNG" id="1_8a832"]
[ext_resource type="Script" path="res://src/items/weapons/WeaponStats.cs" id="2_a7ln4"] [ext_resource type="Script" uid="uid://cc7byqeolw5y4" path="res://src/items/weapons/WeaponStats.cs" id="2_a7ln4"]
[resource] [resource]
script = ExtResource("2_a7ln4") script = ExtResource("2_a7ln4")
Damage = 3
Luck = 0.07
AttackSpeed = 1.0 AttackSpeed = 1.0
TelluricDamageBonus = 0.0 WeaponElement = 0
AeolicDamageBonus = 0.0 WeaponTag = 0
BaseHydricDamageBonus = 0.0
IgneousDamageBonus = 0.0
FerrumDamageBonus = 0.0
WeaponTags = []
Name = "Talwar" Name = "Talwar"
Description = "+3 ATK" Description = "+3 ATK"
Texture = ExtResource("1_8a832")
SpawnRate = 0.3 SpawnRate = 0.3
BonusAttack = 3
Defense = 0
Luck = 0.07
ThrowSpeed = 12.0
IncreaseMaxHPAmount = 0
IncreaseMaxVTAmount = 0
ThrowDamage = 5
ItemTag = 0
Texture = ExtResource("1_8a832")

View File

@@ -4,7 +4,6 @@ using Chickensoft.Introspection;
using Chickensoft.SaveFileBuilder; using Chickensoft.SaveFileBuilder;
using Godot; using Godot;
using SimpleInjector; using SimpleInjector;
using System;
using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter;
using Zennysoft.Ma.Adapter.Entity; using Zennysoft.Ma.Adapter.Entity;
@@ -207,7 +206,7 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<ISaveChunk<Play
Transform = newTransform; Transform = newTransform;
} }
public void TakeDamage(Damage damage) public void TakeDamage(AttackData damage)
{ {
var damageReceived = DamageCalculator.CalculateDamage(damage, DefenseComponent.TotalDefense, ((Armor)EquipmentComponent.EquippedArmor.Value).Stats.ElementalResistanceSet); var damageReceived = DamageCalculator.CalculateDamage(damage, DefenseComponent.TotalDefense, ((Armor)EquipmentComponent.EquippedArmor.Value).Stats.ElementalResistanceSet);
HealthComponent.Damage(damageReceived); HealthComponent.Damage(damageReceived);
@@ -263,47 +262,12 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<ISaveChunk<Play
return; return;
} }
if (equipable is Weapon weapon) EquipmentComponent.Equip(equipable);
{
Unequip(EquipmentComponent.EquippedWeapon.Value);
weapon.IsEquipped = true;
EquipmentComponent.Equip(weapon);
}
else if (equipable is Armor armor)
{
Unequip(EquipmentComponent.EquippedArmor.Value);
armor.IsEquipped = true;
EquipmentComponent.Equip(armor);
}
else if (equipable is Accessory accessory)
{
Unequip(EquipmentComponent.EquippedAccessory.Value);
accessory.IsEquipped = true;
EquipmentComponent.Equip(accessory);
}
else
throw new NotImplementedException("Item type is not supported.");
} }
public void Unequip(EquipableItem equipable) public void Unequip(EquipableItem equipable)
{ {
if (equipable is Weapon weapon) EquipmentComponent.Unequip(equipable);
{
weapon.IsEquipped = false;
EquipmentComponent.Unequip(weapon);
}
else if (equipable is Armor armor)
{
armor.IsEquipped = false;
EquipmentComponent.Unequip(armor);
}
else if (equipable is Accessory accessory)
{
accessory.IsEquipped = false;
EquipmentComponent.Unequip(accessory);
}
else
throw new NotImplementedException("Item type is not supported.");
} }
private static Vector3 GlobalInputVector private static Vector3 GlobalInputVector
@@ -403,24 +367,23 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<ISaveChunk<Play
private void HitEnemy(IEnemy enemy) private void HitEnemy(IEnemy enemy)
{ {
var ignoreElementalResistance = ((Weapon)EquipmentComponent.EquippedWeapon.Value).WeaponTag == WeaponTag.IgnoreAffinity; var ignoreElementalResistance = (EquipmentComponent.EquippedWeapon.Value as Weapon).WeaponTag == WeaponTag.IgnoreAffinity;
var isCriticalHit = BattleExtensions.IsCriticalHit(LuckComponent.Luck.Value); var ignoreDefense = (EquipmentComponent.EquippedWeapon.Value as Weapon).WeaponTag == WeaponTag.IgnoreDefense;
var element = ((Weapon)EquipmentComponent.EquippedWeapon.Value).WeaponElement; var isCriticalHit = BattleExtensions.IsCriticalHit(LuckComponent.Luck.Value + EquipmentComponent.BonusLuck);
var baseAttack = new Damage( var totalDamage = AttackComponent.TotalAttack + EquipmentComponent.BonusAttack;
(int)(AttackComponent.TotalAttack * ((Weapon)EquipmentComponent.EquippedWeapon.Value).ElementalDamageBonus), var element = (EquipmentComponent.EquippedWeapon.Value as Weapon).WeaponElement;
element,
false, if (isCriticalHit)
false, totalDamage += (int)(totalDamage * 0.5f);
ignoreElementalResistance);
var damageDealt = DamageCalculator.CalculateDamage(baseAttack, enemy.DefenseComponent.TotalDefense, new ElementalResistanceSet(0, 0, 0, 0, 0)); var baseAttack = new AttackData(totalDamage, element, ignoreDefense, ignoreElementalResistance);
var damageDealt = DamageCalculator.CalculateDamage(baseAttack, enemy.DefenseComponent.TotalDefense, ElementalResistanceSet.None);
enemy.HealthComponent.Damage(damageDealt); enemy.HealthComponent.Damage(damageDealt);
if (((Weapon)EquipmentComponent.EquippedWeapon.Value).WeaponTag == WeaponTag.Knockback && enemy is IKnockbackable knockbackable) if (((Weapon)EquipmentComponent.EquippedWeapon.Value).WeaponTag == WeaponTag.Knockback && enemy is IKnockbackable knockbackable)
knockbackable.Knockback(0.3f, -CurrentBasis.Z.Normalized()); knockbackable.Knockback(0.3f, -CurrentBasis.Z.Normalized());
if (((Weapon)EquipmentComponent.EquippedWeapon.Value).WeaponTag == WeaponTag.SelfDamage) if (((Weapon)EquipmentComponent.EquippedWeapon.Value).WeaponTag == WeaponTag.SelfDamage)
TakeDamage(new Damage(5, ElementType.None, false, true, true)); HealthComponent.Damage(5);
_gameRepo.OnPlayerAttackedEnemy();
} }
private void CollisionDetector_AreaEntered(Area3D area) private void CollisionDetector_AreaEntered(Area3D area)

View File

@@ -0,0 +1,14 @@
using Godot;
using Zennysoft.Ma.Adapter;
namespace Zennysoft.Game.Ma;
[GlobalClass]
public partial class AttackDataResource : Resource
{
[Export]
public int Damage { get; set; } = 10;
[Export]
public ElementType ElementType { get; set; } = ElementType.None;
}

View File

@@ -0,0 +1 @@
uid://ctshiyffvt4y5

View File

@@ -4,7 +4,6 @@ using Chickensoft.Introspection;
using Godot; using Godot;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Zennysoft.Game.Implementation;
using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter;
namespace Zennysoft.Game.Ma; namespace Zennysoft.Game.Ma;
@@ -74,10 +73,11 @@ public partial class InventoryMenu : Control, IInventoryMenu
{ {
Player.AttackComponent.CurrentAttack.Sync -= AttackSync; Player.AttackComponent.CurrentAttack.Sync -= AttackSync;
Player.AttackComponent.MaximumAttack.Sync -= AttackSync; Player.AttackComponent.MaximumAttack.Sync -= AttackSync;
Player.AttackComponent.BonusAttack.Sync -= BonusAttack_Sync; Player.EquipmentComponent.EquippedWeapon.Sync -= BonusSync;
Player.EquipmentComponent.EquippedArmor.Sync -= BonusSync;
Player.EquipmentComponent.EquippedAccessory.Sync -= BonusSync;
Player.DefenseComponent.CurrentDefense.Sync -= DefenseSync; Player.DefenseComponent.CurrentDefense.Sync -= DefenseSync;
Player.DefenseComponent.MaximumDefense.Sync -= DefenseSync; Player.DefenseComponent.MaximumDefense.Sync -= DefenseSync;
Player.DefenseComponent.BonusDefense.Sync -= BonusDefense_Sync;
} }
public void OnResolved() public void OnResolved()
@@ -85,10 +85,11 @@ public partial class InventoryMenu : Control, IInventoryMenu
SetProcessInput(false); SetProcessInput(false);
Player.AttackComponent.CurrentAttack.Sync += AttackSync; Player.AttackComponent.CurrentAttack.Sync += AttackSync;
Player.AttackComponent.MaximumAttack.Sync += AttackSync; Player.AttackComponent.MaximumAttack.Sync += AttackSync;
Player.AttackComponent.BonusAttack.Sync += BonusAttack_Sync; Player.EquipmentComponent.EquippedWeapon.Sync += BonusSync;
Player.EquipmentComponent.EquippedArmor.Sync += BonusSync;
Player.EquipmentComponent.EquippedAccessory.Sync += BonusSync;
Player.DefenseComponent.CurrentDefense.Sync += DefenseSync; Player.DefenseComponent.CurrentDefense.Sync += DefenseSync;
Player.DefenseComponent.MaximumDefense.Sync += DefenseSync; Player.DefenseComponent.MaximumDefense.Sync += DefenseSync;
Player.DefenseComponent.BonusDefense.Sync += BonusDefense_Sync;
} }
public async Task DisplayMessage(string message) public async Task DisplayMessage(string message)
@@ -104,13 +105,14 @@ public partial class InventoryMenu : Control, IInventoryMenu
private void AttackSync(int obj) => ATKValue.Text = $"{Player.AttackComponent.CurrentAttack.Value}/{Player.AttackComponent.MaximumAttack.Value}"; private void AttackSync(int obj) => ATKValue.Text = $"{Player.AttackComponent.CurrentAttack.Value}/{Player.AttackComponent.MaximumAttack.Value}";
private void BonusAttack_Sync(int bonus) => ATKBonusLabel.Text = $"{bonus:+0;-#;\\.\\.\\.}"; private void BonusSync(EquipableItem equip)
{
ATKBonusLabel.Text = $"{Player.EquipmentComponent.BonusAttack:+0;-#;\\.\\.\\.}";
DEFBonusLabel.Text = $"{Player.EquipmentComponent.BonusDefense:+0;-#;\\.\\.\\.}";
}
private void DefenseSync(int obj) => DEFValue.Text = $"{Player.DefenseComponent.CurrentDefense.Value}/{Player.DefenseComponent.MaximumDefense.Value}"; private void DefenseSync(int obj) => DEFValue.Text = $"{Player.DefenseComponent.CurrentDefense.Value}/{Player.DefenseComponent.MaximumDefense.Value}";
private void BonusDefense_Sync(int bonus) => DEFBonusLabel.Text = $"{bonus:+0;-#;\\.\\.\\.}";
public async Task RefreshInventoryScreen() public async Task RefreshInventoryScreen()
{ {
await ClearItems(); await ClearItems();
@@ -184,7 +186,7 @@ public partial class InventoryMenu : Control, IInventoryMenu
if (@event.IsActionPressed(GameInputs.InventorySort)) if (@event.IsActionPressed(GameInputs.InventorySort))
{ {
inventory.Sort(); inventory.Sort(Player.EquipmentComponent.EquippedWeapon.Value, Player.EquipmentComponent.EquippedArmor.Value, Player.EquipmentComponent.EquippedAccessory.Value);
if (_currentIndex > inventory.Items.Count - 1) if (_currentIndex > inventory.Items.Count - 1)
_currentIndex = inventory.Items.Count - 1; _currentIndex = inventory.Items.Count - 1;
RefreshInventoryScreen(); RefreshInventoryScreen();
@@ -239,11 +241,12 @@ public partial class InventoryMenu : Control, IInventoryMenu
if (currentItem is EquipableItem equipable) if (currentItem is EquipableItem equipable)
{ {
UseButton.Text = equipable.IsEquipped ? "Unequip" : "Equip"; var isItemEquipped = Player.EquipmentComponent.IsItemEquipped(equipable);
ThrowButton.Disabled = equipable.IsEquipped; UseButton.Text = isItemEquipped ? "Unequip" : "Equip";
ThrowButton.FocusMode = equipable.IsEquipped ? FocusModeEnum.None : FocusModeEnum.All; ThrowButton.Disabled = isItemEquipped;
DropButton.Disabled = equipable.IsEquipped; ThrowButton.FocusMode = isItemEquipped ? FocusModeEnum.None : FocusModeEnum.All;
DropButton.FocusMode = equipable.IsEquipped ? FocusModeEnum.None : FocusModeEnum.All; DropButton.Disabled = isItemEquipped;
DropButton.FocusMode = isItemEquipped ? FocusModeEnum.None : FocusModeEnum.All;
} }
else else
{ {
@@ -309,14 +312,14 @@ public partial class InventoryMenu : Control, IInventoryMenu
itemSlot.Item = item; itemSlot.Item = item;
ItemsPage.AddChildEx(itemSlot); ItemsPage.AddChildEx(itemSlot);
if (itemSlot.Item is EquipableItem equipable && equipable.IsEquipped) if (Player.EquipmentComponent.IsItemEquipped(itemSlot.Item))
itemSlot.SetEquippedItemStyle(); itemSlot.SetEquippedItemStyle();
} }
if (ItemSlots.Length != 0) if (ItemSlots.Length != 0)
{ {
ItemSlots.ElementAt(_currentIndex).SetSelectedItemStyle(); ItemSlots.ElementAt(_currentIndex).SetSelectedItemStyle();
if (ItemSlots.ElementAt(_currentIndex).Item is EquipableItem equipable && equipable.IsEquipped) if (Player.EquipmentComponent.IsItemEquipped(ItemSlots.ElementAt(_currentIndex).Item))
ItemSlots.ElementAt(_currentIndex).SetEquippedSelectedItemStyle(); ItemSlots.ElementAt(_currentIndex).SetEquippedSelectedItemStyle();
} }
} }
@@ -325,7 +328,7 @@ public partial class InventoryMenu : Control, IInventoryMenu
{ {
await ToSignal(GetTree().CreateTimer(0.1f), "timeout"); await ToSignal(GetTree().CreateTimer(0.1f), "timeout");
itemSlot.SetItemStyle(); itemSlot.SetItemStyle();
if (itemSlot.Item is EquipableItem equipable && equipable.IsEquipped) if (Player.EquipmentComponent.IsItemEquipped(itemSlot.Item))
itemSlot.SetEquippedItemStyle(); itemSlot.SetEquippedItemStyle();
} }
@@ -340,25 +343,25 @@ public partial class InventoryMenu : Control, IInventoryMenu
private async Task EquipOrUnequipItem() private async Task EquipOrUnequipItem()
{ {
var itemSlot = ItemSlots[_currentIndex]; var itemSlot = ItemSlots[_currentIndex];
if (itemSlot.Item is EquipableItem equipableItem) if (itemSlot.Item is not EquipableItem)
return;
var equippableItem = (EquipableItem)itemSlot.Item;
if (Player.EquipmentComponent.IsItemEquipped(equippableItem))
{ {
if (equipableItem.IsEquipped) ItemEffectLabel.Text = $"{equippableItem.GetType().Name} unequipped.";
{ Player.EquipmentComponent.Unequip(equippableItem);
ItemEffectLabel.Text = $"{itemSlot.Item.GetType()} unequipped."; itemSlot.SetSelectedItemStyle();
Player.EquipmentComponent.Unequip(equipableItem); if (itemSlot.Item.ItemTag == ItemTag.BreaksOnChange)
itemSlot.SetSelectedItemStyle(); Player.Inventory.Remove(equippableItem);
if (equipableItem.ItemTag == ItemTag.BreaksOnChange)
Player.Inventory.Remove(equipableItem);
}
else
{
ItemEffectLabel.Text = $"{itemSlot.Item.GetType()} equipped.";
Player.EquipmentComponent.Equip(equipableItem);
itemSlot.SetEquippedSelectedItemStyle();
}
RefreshUIAfterUserSelection();
} }
else
{
ItemEffectLabel.Text = $"{equippableItem.GetType().Name} equipped.";
Player.EquipmentComponent.Equip(equippableItem);
itemSlot.SetEquippedSelectedItemStyle();
}
RefreshUIAfterUserSelection();
} }
private async void UseButtonPressed() private async void UseButtonPressed()

View File

@@ -61,14 +61,10 @@ public partial class ItemSlot : HBoxContainer, IItemSlot
} }
public void SetSelectedItemStyle() public void SetSelectedItemStyle()
{ {
if (Item is EquipableItem equipableItem && equipableItem.IsEquipped) if (Player.EquipmentComponent.IsItemEquipped(Item))
{
ItemName.LabelSettings = SelectedEquippedItemFont; ItemName.LabelSettings = SelectedEquippedItemFont;
}
else else
{
ItemName.LabelSettings = SelectedItemFont; ItemName.LabelSettings = SelectedItemFont;
}
} }
public void SetEquippedItemStyle() public void SetEquippedItemStyle()
{ {

View File

@@ -92,7 +92,7 @@ public partial class PauseDebugMenu : Control, IDebugMenu
var enemyToSpawn = _spawnableEnemies.ElementAt((int)index); var enemyToSpawn = _spawnableEnemies.ElementAt((int)index);
var loadedEnemy = GD.Load<PackedScene>(enemyToSpawn).Instantiate<Enemy>(); var loadedEnemy = GD.Load<PackedScene>(enemyToSpawn).Instantiate<Enemy>();
AddChild(loadedEnemy); AddChild(loadedEnemy);
loadedEnemy.GlobalPosition = new Vector3(_player.CurrentPosition.X, _player.CurrentPosition.Y + 1, _player.CurrentPosition.Z) + (-_player.CurrentBasis.Z * 2); loadedEnemy.GlobalPosition = new Vector3(_player.GlobalPosition.X, _player.GlobalPosition.Y + 1, _player.GlobalPosition.Z) + (-_player.GlobalBasis.Z * 2);
} }
private void SpawnItemDropDown_ItemSelected(long index) private void SpawnItemDropDown_ItemSelected(long index)
@@ -100,7 +100,7 @@ public partial class PauseDebugMenu : Control, IDebugMenu
var itemToSpawn = _spawnableItems.ElementAt((int)index); var itemToSpawn = _spawnableItems.ElementAt((int)index);
var duplicated = itemToSpawn.Duplicate((int)DuplicateFlags.UseInstantiation) as Node3D; var duplicated = itemToSpawn.Duplicate((int)DuplicateFlags.UseInstantiation) as Node3D;
AddChild(duplicated); AddChild(duplicated);
duplicated.GlobalPosition = new Vector3(_player.CurrentPosition.X, _player.CurrentPosition.Y + 1, _player.CurrentPosition.Z) + (-_player.CurrentBasis.Z * 2); duplicated.GlobalPosition = new Vector3(_player.GlobalPosition.X, _player.GlobalPosition.Y + 1, _player.GlobalPosition.Z) + (-_player.GlobalBasis.Z * 2);
} }
private async void LoadNextFloorButton_Pressed() private async void LoadNextFloorButton_Pressed()