From bc161a58b326631b27c428ceb0a2411472bc95da Mon Sep 17 00:00:00 2001 From: Zenny Date: Thu, 23 Oct 2025 00:05:44 -0700 Subject: [PATCH] Additional refactoring and fixing of equipment data Add attack data to enemy attacks (might need to rework a little bit for primary/secondary attacks) --- .../Calculators/IDamageCalculator.cs | 4 +- .../Components/IEquipmentComponent.cs | 14 +++- .../Components/LuckComponent.cs | 2 +- .../Entity/AttackData.cs | 3 + .../Entity/Damage.cs | 3 - .../Entity/ElementalResistanceSet.cs | 2 + .../Equipment/EquipableItem.cs | 12 ++- .../Equipment/Tags/WeaponTag.cs | 1 + .../Game/GameRepo.cs | 7 -- .../Item/IInventory.cs | 2 +- .../Player/IPlayer.cs | 11 +-- .../src/Components/EquipmentComponent.cs | 18 +++++ .../src/Components/LuckComponent.cs | 2 +- .../src/enemy/AttackEventArgs.cs | 14 ++++ Zennysoft.Game.Ma/src/enemy/BossTypeA.cs | 8 +- Zennysoft.Game.Ma/src/enemy/Enemy.cs | 2 +- Zennysoft.Game.Ma/src/enemy/Enemy2D.cs | 8 +- Zennysoft.Game.Ma/src/enemy/EnemyModelView.cs | 7 +- .../src/enemy/EnemyModelView2D.cs | 5 +- .../src/enemy/EnemyModelView3D.cs | 2 - .../ActivateStateMachine.tres | 17 +---- .../PrimaryAttackStateMachine.tres | 19 +---- .../SecondaryAttackStateMachine.tres | 17 +---- .../WalkingStateMachine.tres | 17 +---- .../src/enemy/behaviors/FollowBehavior.cs | 4 +- .../01. sproingy/SproingyModelView.tscn | 12 ++- .../03. filth_eater/FilthEaterModelView.tscn | 1 + .../enemy_types/10. Eden Pillar/EdenPillar.cs | 2 +- .../enemy_types/16. demon wall/Arm1.tscn | 64 +++++++++------- .../enemy_types/16. demon wall/Arm2.tscn | 60 ++++++++------- .../enemy_types/16. demon wall/Arm3.tscn | 50 +++++++------ .../enemy_types/16. demon wall/Arm4.tscn | 20 +++-- .../enemy_types/16. demon wall/Arm5.tscn | 48 +++++++----- .../enemy_types/16. demon wall/Arm6.tscn | 39 ++++++---- .../enemy_types/16. demon wall/Arm7.tscn | 61 +++++++++------- .../enemy_types/16. demon wall/Arm8.tscn | 22 ++++-- .../enemy_types/16. demon wall/Arm9.tscn | 58 ++++++++------- .../16. demon wall/DemonWallArm.cs | 15 +--- .../16. demon wall/DemonWallModelView.cs | 51 +++++++++---- .../16. demon wall/DemonWallModelView.tscn | 9 +++ Zennysoft.Game.Ma/src/items/EffectService.cs | 2 +- Zennysoft.Game.Ma/src/items/Inventory.cs | 17 ++--- .../src/items/InventoryItemStats.cs | 20 ++++- .../src/items/accessory/Accessory.cs | 10 --- .../src/items/accessory/AccessoryStats.cs | 29 -------- Zennysoft.Game.Ma/src/items/armor/Armor.cs | 3 +- .../src/items/armor/ArmorStats.cs | 12 --- .../src/items/consumable/ConsumableItem.cs | 4 +- .../items/consumable/ConsumableItemStats.cs | 14 ++-- .../src/items/dropped/DroppedItem.cs | 4 +- .../src/items/effect/EffectItemStats.cs | 8 -- .../src/items/throwable/ThrowableItem.cs | 1 - .../src/items/throwable/ThrowableItemStats.cs | 11 +-- .../src/items/thrown/ThrownItem.cs | 9 +-- Zennysoft.Game.Ma/src/items/weapons/Weapon.cs | 9 +-- .../src/items/weapons/WeaponStats.cs | 21 ------ .../items/weapons/resources/Atonement.tres | 18 ++--- .../src/items/weapons/resources/Jiblett.tres | 22 +++--- .../src/items/weapons/resources/Katara.tres | 22 +++--- .../src/items/weapons/resources/Kubel.tres | 22 +++--- .../weapons/resources/LoveJudgement.tres | 22 +++--- .../weapons/resources/Palm of Heaven.tres | 22 +++--- .../src/items/weapons/resources/Rondo.tres | 22 +++--- .../items/weapons/resources/SealingRod.tres | 22 +++--- .../items/weapons/resources/SpadedStaff.tres | 22 +++--- .../weapons/resources/Swan Sword Odette.tres | 14 ++-- .../src/items/weapons/resources/Talwar.tres | 22 +++--- Zennysoft.Game.Ma/src/player/Player.cs | 67 ++++------------- .../src/system/AttackDataResource.cs | 14 ++++ .../src/system/AttackDataResource.cs.uid | 1 + .../src/ui/inventory_menu/InventoryMenu.cs | 73 ++++++++++--------- .../src/ui/inventory_menu/ItemSlot.cs | 6 +- .../src/ui/pause_menu/PauseDebugMenu.cs | 4 +- 73 files changed, 641 insertions(+), 641 deletions(-) create mode 100644 Zennysoft.Game.Ma.Implementation/Entity/AttackData.cs delete mode 100644 Zennysoft.Game.Ma.Implementation/Entity/Damage.cs create mode 100644 Zennysoft.Game.Ma/src/enemy/AttackEventArgs.cs create mode 100644 Zennysoft.Game.Ma/src/system/AttackDataResource.cs create mode 100644 Zennysoft.Game.Ma/src/system/AttackDataResource.cs.uid diff --git a/Zennysoft.Game.Ma.Implementation/Calculators/IDamageCalculator.cs b/Zennysoft.Game.Ma.Implementation/Calculators/IDamageCalculator.cs index 0e4d5105..9d067ae2 100644 --- a/Zennysoft.Game.Ma.Implementation/Calculators/IDamageCalculator.cs +++ b/Zennysoft.Game.Ma.Implementation/Calculators/IDamageCalculator.cs @@ -5,15 +5,13 @@ namespace Zennysoft.Ma.Adapter { 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; if (!damage.IgnoreDefense) calculatedDamage = CalculateDefenseResistance(calculatedDamage, defense); if (!damage.IgnoreElementalResistance) calculatedDamage = CalculateElementalResistance(calculatedDamage, elementalResistanceSet.ElementalResistance[damage.ElementType]); - if (damage.IsCriticalHit) - calculatedDamage *= 2; return Mathf.Max(1, calculatedDamage); } diff --git a/Zennysoft.Game.Ma.Implementation/Components/IEquipmentComponent.cs b/Zennysoft.Game.Ma.Implementation/Components/IEquipmentComponent.cs index b74d5c82..c8b58e38 100644 --- a/Zennysoft.Game.Ma.Implementation/Components/IEquipmentComponent.cs +++ b/Zennysoft.Game.Ma.Implementation/Components/IEquipmentComponent.cs @@ -1,5 +1,4 @@ using Chickensoft.Collections; -using Zennysoft.Ma.Adapter; namespace Zennysoft.Ma.Adapter; public interface IEquipmentComponent @@ -13,4 +12,17 @@ public interface IEquipmentComponent public void Equip(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; } + } diff --git a/Zennysoft.Game.Ma.Implementation/Components/LuckComponent.cs b/Zennysoft.Game.Ma.Implementation/Components/LuckComponent.cs index d9a7318e..7b43309b 100644 --- a/Zennysoft.Game.Ma.Implementation/Components/LuckComponent.cs +++ b/Zennysoft.Game.Ma.Implementation/Components/LuckComponent.cs @@ -6,5 +6,5 @@ public interface ILuckComponent { public IAutoProp Luck { get; } - public void SetLuck(int value); + public void IncreaseLuck(int value); } diff --git a/Zennysoft.Game.Ma.Implementation/Entity/AttackData.cs b/Zennysoft.Game.Ma.Implementation/Entity/AttackData.cs new file mode 100644 index 00000000..cad486ac --- /dev/null +++ b/Zennysoft.Game.Ma.Implementation/Entity/AttackData.cs @@ -0,0 +1,3 @@ +namespace Zennysoft.Ma.Adapter; + +public record AttackData(int BaseDamage, ElementType ElementType, bool IgnoreDefense = false, bool IgnoreElementalResistance = false); diff --git a/Zennysoft.Game.Ma.Implementation/Entity/Damage.cs b/Zennysoft.Game.Ma.Implementation/Entity/Damage.cs deleted file mode 100644 index 5bde6f4c..00000000 --- a/Zennysoft.Game.Ma.Implementation/Entity/Damage.cs +++ /dev/null @@ -1,3 +0,0 @@ -namespace Zennysoft.Ma.Adapter; - -public record Damage(int BaseDamage, ElementType ElementType, bool IsCriticalHit, bool IgnoreDefense, bool IgnoreElementalResistance); diff --git a/Zennysoft.Game.Ma.Implementation/Entity/ElementalResistanceSet.cs b/Zennysoft.Game.Ma.Implementation/Entity/ElementalResistanceSet.cs index 221bc8ee..2d93c3c0 100644 --- a/Zennysoft.Game.Ma.Implementation/Entity/ElementalResistanceSet.cs +++ b/Zennysoft.Game.Ma.Implementation/Entity/ElementalResistanceSet.cs @@ -4,6 +4,8 @@ { public Dictionary 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) { ElementalResistance = new Dictionary diff --git a/Zennysoft.Game.Ma.Implementation/Equipment/EquipableItem.cs b/Zennysoft.Game.Ma.Implementation/Equipment/EquipableItem.cs index 47c01f1f..bb77a30e 100644 --- a/Zennysoft.Game.Ma.Implementation/Equipment/EquipableItem.cs +++ b/Zennysoft.Game.Ma.Implementation/Equipment/EquipableItem.cs @@ -1,11 +1,17 @@ using Chickensoft.Introspection; -using Chickensoft.Serialization; namespace Zennysoft.Ma.Adapter; [Meta, Id("equipable_item")] public abstract partial class EquipableItem : InventoryItem { - [Save("equipable_item_is_equipped")] - public bool IsEquipped { get; set; } + public virtual int BonusAttack { get; } + + public virtual int BonusDefense { get; } + + public virtual int BonusHP { get; } + + public virtual int BonusVT { get; } + + public virtual int BonusLuck { get; } } diff --git a/Zennysoft.Game.Ma.Implementation/Equipment/Tags/WeaponTag.cs b/Zennysoft.Game.Ma.Implementation/Equipment/Tags/WeaponTag.cs index 6d50134e..0cb6caad 100644 --- a/Zennysoft.Game.Ma.Implementation/Equipment/Tags/WeaponTag.cs +++ b/Zennysoft.Game.Ma.Implementation/Equipment/Tags/WeaponTag.cs @@ -5,5 +5,6 @@ public enum WeaponTag None, SelfDamage, IgnoreAffinity, + IgnoreDefense, Knockback, } diff --git a/Zennysoft.Game.Ma.Implementation/Game/GameRepo.cs b/Zennysoft.Game.Ma.Implementation/Game/GameRepo.cs index b2228bba..7667fa4f 100644 --- a/Zennysoft.Game.Ma.Implementation/Game/GameRepo.cs +++ b/Zennysoft.Game.Ma.Implementation/Game/GameRepo.cs @@ -53,8 +53,6 @@ public interface IGameRepo : IDisposable public void OnPlayerAttackedWall(); - public void OnPlayerAttackedEnemy(); - public void OnRestorativePickedUp(IHealthPack restorative); public void CloseInventory(); @@ -147,11 +145,6 @@ public class GameRepo : IGameRepo PlayerAttackedWall?.Invoke(); } - public void OnPlayerAttackedEnemy() - { - PlayerAttackedEnemy?.Invoke(); - } - public void OnRestorativePickedUp(IHealthPack restorative) { RestorativePickedUp?.Invoke(restorative); diff --git a/Zennysoft.Game.Ma.Implementation/Item/IInventory.cs b/Zennysoft.Game.Ma.Implementation/Item/IInventory.cs index 8527c091..0c6b106a 100644 --- a/Zennysoft.Game.Ma.Implementation/Item/IInventory.cs +++ b/Zennysoft.Game.Ma.Implementation/Item/IInventory.cs @@ -12,5 +12,5 @@ public interface IInventory public void Remove(InventoryItem inventoryItem); - public void Sort(); + public void Sort(EquipableItem currentWeapon, EquipableItem currentArmor, EquipableItem currentAccessory); } diff --git a/Zennysoft.Game.Ma.Implementation/Player/IPlayer.cs b/Zennysoft.Game.Ma.Implementation/Player/IPlayer.cs index 8f4140ee..d88544fa 100644 --- a/Zennysoft.Game.Ma.Implementation/Player/IPlayer.cs +++ b/Zennysoft.Game.Ma.Implementation/Player/IPlayer.cs @@ -1,15 +1,16 @@ -using Godot; +using Chickensoft.GodotNodeInterfaces; +using Godot; using Zennysoft.Game.Abstractions; namespace Zennysoft.Ma.Adapter; -public interface IPlayer : IKillable +public interface IPlayer : IKillable, ICharacterBody3D { public void Activate(); public void Deactivate(); - public void TakeDamage(Damage damage); + public void TakeDamage(AttackData damage); public void Knockback(float impulse); @@ -19,10 +20,6 @@ public interface IPlayer : IKillable public IInventory Inventory { get; } - public Vector3 CurrentPosition { get; } - - public Basis CurrentBasis { get; } - public IHealthComponent HealthComponent { get; } public IVTComponent VTComponent { get; } diff --git a/Zennysoft.Game.Ma/src/Components/EquipmentComponent.cs b/Zennysoft.Game.Ma/src/Components/EquipmentComponent.cs index ce257f25..4e5d6fab 100644 --- a/Zennysoft.Game.Ma/src/Components/EquipmentComponent.cs +++ b/Zennysoft.Game.Ma/src/Components/EquipmentComponent.cs @@ -16,6 +16,16 @@ public class EquipmentComponent : IEquipmentComponent public AutoProp _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() { _equippedWeapon = new AutoProp(new Weapon()); @@ -42,4 +52,12 @@ public class EquipmentComponent : IEquipmentComponent if (equipable is Accessory 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; + } } diff --git a/Zennysoft.Game.Ma/src/Components/LuckComponent.cs b/Zennysoft.Game.Ma/src/Components/LuckComponent.cs index 4a0294ec..41b9a499 100644 --- a/Zennysoft.Game.Ma/src/Components/LuckComponent.cs +++ b/Zennysoft.Game.Ma/src/Components/LuckComponent.cs @@ -14,5 +14,5 @@ public class LuckComponent : ILuckComponent _luck = new AutoProp(initialLuck); } - public void SetLuck(int value) => _luck.OnNext(value); + public void IncreaseLuck(int value) => _luck.OnNext(_luck.Value + value); } diff --git a/Zennysoft.Game.Ma/src/enemy/AttackEventArgs.cs b/Zennysoft.Game.Ma/src/enemy/AttackEventArgs.cs new file mode 100644 index 00000000..9fa69f7b --- /dev/null +++ b/Zennysoft.Game.Ma/src/enemy/AttackEventArgs.cs @@ -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; + } +} diff --git a/Zennysoft.Game.Ma/src/enemy/BossTypeA.cs b/Zennysoft.Game.Ma/src/enemy/BossTypeA.cs index 089713a7..e5ed67ec 100644 --- a/Zennysoft.Game.Ma/src/enemy/BossTypeA.cs +++ b/Zennysoft.Game.Ma/src/enemy/BossTypeA.cs @@ -52,10 +52,10 @@ public partial class BossTypeA : Enemy, IHaveEngagePlayerBehavior, IHaveFollowBe public void OnPhysicsProcess(double delta) { - var direction = GlobalPosition.DirectionTo(_player.CurrentPosition).Normalized(); + var direction = GlobalPosition.DirectionTo(_player.GlobalPosition).Normalized(); 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); EnemyModelView.PlayIdleAnimation(); @@ -95,7 +95,7 @@ public partial class BossTypeA : Enemy, IHaveEngagePlayerBehavior, IHaveFollowBe { var target = area.GetOwner(); 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() @@ -120,7 +120,7 @@ public partial class BossTypeA : Enemy, IHaveEngagePlayerBehavior, IHaveFollowBe 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.RotateY(Rotation.Y); return _rotation.Rotation.Y; diff --git a/Zennysoft.Game.Ma/src/enemy/Enemy.cs b/Zennysoft.Game.Ma/src/enemy/Enemy.cs index 8a26101d..917c7f64 100644 --- a/Zennysoft.Game.Ma/src/enemy/Enemy.cs +++ b/Zennysoft.Game.Ma/src/enemy/Enemy.cs @@ -182,6 +182,6 @@ public abstract partial class Enemy : CharacterBody3D, IEnemy, IProvide 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) { var overlappingBodies = LineOfSight.GetOverlappingBodies(); foreach (var _ in overlappingBodies) { - if (Raycast.GlobalPosition != _player.CurrentPosition) - Raycast.LookAt(_player.CurrentPosition, Vector3.Up); + if (Raycast.GlobalPosition != _player.GlobalPosition) + Raycast.LookAt(_player.GlobalPosition, Vector3.Up); Raycast.ForceRaycastUpdate(); if (Raycast.IsColliding()) { diff --git a/Zennysoft.Game.Ma/src/enemy/EnemyModelView.cs b/Zennysoft.Game.Ma/src/enemy/EnemyModelView.cs index 1e0c7720..ce0210e8 100644 --- a/Zennysoft.Game.Ma/src/enemy/EnemyModelView.cs +++ b/Zennysoft.Game.Ma/src/enemy/EnemyModelView.cs @@ -19,6 +19,8 @@ public abstract partial class EnemyModelView : Node3D, IEnemyModelView [Node] public AnimationTree AnimationTree { get; set; } = default!; + [Export] public AttackDataResource AttackData { get; set; } + private AnimationNodeStateMachinePlayback _stateMachine; public event EventHandler HitPlayer; @@ -44,10 +46,7 @@ public abstract partial class EnemyModelView : Node3D, IEnemyModelView public virtual void PlayHitAnimation() => throw new System.NotImplementedException(); - protected virtual void OnPlayerHit() - { - HitPlayer?.Invoke(this, EventArgs.Empty); - } + protected virtual void OnPlayerHit(AttackEventArgs arg) => HitPlayer?.Invoke(this, arg); public override void _ExitTree() { diff --git a/Zennysoft.Game.Ma/src/enemy/EnemyModelView2D.cs b/Zennysoft.Game.Ma/src/enemy/EnemyModelView2D.cs index fcdc92f5..da08f2d5 100644 --- a/Zennysoft.Game.Ma/src/enemy/EnemyModelView2D.cs +++ b/Zennysoft.Game.Ma/src/enemy/EnemyModelView2D.cs @@ -2,6 +2,7 @@ using Chickensoft.AutoInject; using Chickensoft.Introspection; using Godot; using System.Linq; +using Zennysoft.Ma.Adapter; namespace Zennysoft.Game.Ma; [Meta(typeof(IAutoNode))] @@ -31,7 +32,7 @@ public partial class EnemyModelView2D : EnemyModelView, IEnemyModelView 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); @@ -135,4 +136,4 @@ public partial class EnemyModelView2D : EnemyModelView, IEnemyModelView { _enemyDirection = EnemyDirection.Backward; } -} +} \ No newline at end of file diff --git a/Zennysoft.Game.Ma/src/enemy/EnemyModelView3D.cs b/Zennysoft.Game.Ma/src/enemy/EnemyModelView3D.cs index 5d3819ad..3d01e539 100644 --- a/Zennysoft.Game.Ma/src/enemy/EnemyModelView3D.cs +++ b/Zennysoft.Game.Ma/src/enemy/EnemyModelView3D.cs @@ -9,8 +9,6 @@ public partial class EnemyModelView3D : EnemyModelView { public override void _Notification(int what) => this.Notify(what); - [Export] public EnemyLoreInfo EnemyLoreInfo { get; set; } = default!; - [Node] private AnimationPlayer _animationPlayer { get; set; } = default!; [Node] public MeshInstance3D MeshInstance { get; set; } = default!; diff --git a/Zennysoft.Game.Ma/src/enemy/animation_state_machines/ActivateStateMachine.tres b/Zennysoft.Game.Ma/src/enemy/animation_state_machines/ActivateStateMachine.tres index e4bd2358..71713758 100644 --- a/Zennysoft.Game.Ma/src/enemy/animation_state_machines/ActivateStateMachine.tres +++ b/Zennysoft.Game.Ma/src/enemy/animation_state_machines/ActivateStateMachine.tres @@ -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"] animation = &"activate_back" @@ -14,7 +14,6 @@ animation = &"activate_right" [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ivy74"] advance_mode = 2 -advance_expression = "_enemyDirection == 2" [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_x7uye"] switch_mode = 1 @@ -92,18 +91,6 @@ advance_mode = 2 switch_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] states/End/position = Vector2(997, 236) states/Start/position = Vector2(201, 100) @@ -115,4 +102,4 @@ states/left/node = SubResource("AnimationNodeAnimation_djeua") states/left/position = Vector2(378, 179) states/right/node = SubResource("AnimationNodeAnimation_8wbs7") 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")] diff --git a/Zennysoft.Game.Ma/src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres b/Zennysoft.Game.Ma/src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres index aea6d217..226a85e2 100644 --- a/Zennysoft.Game.Ma/src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres +++ b/Zennysoft.Game.Ma/src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres @@ -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"] animation = &"primary_attack_back" @@ -14,7 +14,6 @@ animation = &"primary_attack_right" [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ivy74"] advance_mode = 2 -advance_expression = "_enemyDirection == 2" [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_x7uye"] switch_mode = 1 @@ -92,27 +91,15 @@ advance_mode = 2 switch_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] states/End/position = Vector2(996, 236) states/Start/position = Vector2(106, 236) states/back/node = SubResource("AnimationNodeAnimation_ivy74") states/back/position = Vector2(542, 276) 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/position = Vector2(378, 179) states/right/node = SubResource("AnimationNodeAnimation_8wbs7") 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")] diff --git a/Zennysoft.Game.Ma/src/enemy/animation_state_machines/SecondaryAttackStateMachine.tres b/Zennysoft.Game.Ma/src/enemy/animation_state_machines/SecondaryAttackStateMachine.tres index 7a2b6656..71fbfd77 100644 --- a/Zennysoft.Game.Ma/src/enemy/animation_state_machines/SecondaryAttackStateMachine.tres +++ b/Zennysoft.Game.Ma/src/enemy/animation_state_machines/SecondaryAttackStateMachine.tres @@ -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"] animation = &"secondary_attack_back" @@ -14,7 +14,6 @@ animation = &"secondary_attack_right" [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ivy74"] advance_mode = 2 -advance_expression = "_enemyDirection == 2" [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_x7uye"] switch_mode = 1 @@ -92,18 +91,6 @@ advance_mode = 2 switch_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] states/End/position = Vector2(996, 236) states/Start/position = Vector2(114, 219) @@ -115,4 +102,4 @@ states/left/node = SubResource("AnimationNodeAnimation_djeua") states/left/position = Vector2(378, 179) states/right/node = SubResource("AnimationNodeAnimation_8wbs7") 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")] diff --git a/Zennysoft.Game.Ma/src/enemy/animation_state_machines/WalkingStateMachine.tres b/Zennysoft.Game.Ma/src/enemy/animation_state_machines/WalkingStateMachine.tres index c152b7ad..424643ef 100644 --- a/Zennysoft.Game.Ma/src/enemy/animation_state_machines/WalkingStateMachine.tres +++ b/Zennysoft.Game.Ma/src/enemy/animation_state_machines/WalkingStateMachine.tres @@ -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"] animation = &"idle_back_walk" @@ -14,7 +14,6 @@ animation = &"idle_right_walk" [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ivy74"] advance_mode = 2 -advance_expression = "_enemyDirection == 2" [sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_x7uye"] switch_mode = 1 @@ -76,18 +75,6 @@ switch_mode = 1 advance_mode = 2 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] states/End/position = Vector2(910, 100) states/Start/position = Vector2(102, 111) @@ -99,5 +86,5 @@ states/left/node = SubResource("AnimationNodeAnimation_djeua") states/left/position = Vector2(378, 179) states/right/node = SubResource("AnimationNodeAnimation_8wbs7") 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) diff --git a/Zennysoft.Game.Ma/src/enemy/behaviors/FollowBehavior.cs b/Zennysoft.Game.Ma/src/enemy/behaviors/FollowBehavior.cs index c58d4d99..2ffdc810 100644 --- a/Zennysoft.Game.Ma/src/enemy/behaviors/FollowBehavior.cs +++ b/Zennysoft.Game.Ma/src/enemy/behaviors/FollowBehavior.cs @@ -36,11 +36,11 @@ public partial class FollowBehavior : Node3D, IBehavior SetPhysicsProcess(false); } - private void OnTimeout() => _navigationAgent.TargetPosition = _player.CurrentPosition; + private void OnTimeout() => _navigationAgent.TargetPosition = _player.GlobalPosition; public void StartFollow(NavigationAgent3D navigationAgent) { - _navigationAgent.TargetPosition = _player.CurrentPosition; + _navigationAgent.TargetPosition = _player.GlobalPosition; _thinkTimer.Start(); SetPhysicsProcess(true); } diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/01. sproingy/SproingyModelView.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/01. sproingy/SproingyModelView.tscn index 279f902b..c0b98d5a 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/01. sproingy/SproingyModelView.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/01. sproingy/SproingyModelView.tscn @@ -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="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="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="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"] @@ -68,6 +69,12 @@ Name = "Sproingy" Description = "He's smaller than I expected..." 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"] viewport_path = NodePath("Sprite3D/SubViewportContainer/SubViewport") @@ -819,8 +826,7 @@ transitions = ["Start", "Idle", SubResource("AnimationNodeStateMachineTransition [node name="EnemyModelView" type="Node3D"] script = ExtResource("1_oh25a") EnemyLoreInfo = SubResource("Resource_ivy74") -_upperThreshold = null -_lowerThreshold = null +AttackData = SubResource("Resource_8wbs7") [node name="Sprite3D" type="Sprite3D" parent="."] transform = Transform3D(6, 0, 0, 0, 6, 0, 0, 0, 6, 0, 0, 0) diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/03. filth_eater/FilthEaterModelView.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/03. filth_eater/FilthEaterModelView.tscn index 31793ba5..aed490b9 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/03. filth_eater/FilthEaterModelView.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/03. filth_eater/FilthEaterModelView.tscn @@ -1815,6 +1815,7 @@ states/Idle/position = Vector2(373, 100) "states/Primary Attack/position" = Vector2(373, 218) "states/Secondary Attack/node" = ExtResource("196_e0gee") "states/Secondary Attack/position" = Vector2(588, 218) +states/Start/position = Vector2(198, 100) states/Walking/node = ExtResource("197_mno7m") states/Walking/position = Vector2(588, 100) transitions = ["Start", "Idle", SubResource("AnimationNodeStateMachineTransition_u5xjp"), "Primary Attack", "Idle", SubResource("AnimationNodeStateMachineTransition_5cwnl"), "Idle", "Primary Attack", SubResource("AnimationNodeStateMachineTransition_e0gee"), "Idle", "Walking", SubResource("AnimationNodeStateMachineTransition_mno7m"), "Walking", "Idle", SubResource("AnimationNodeStateMachineTransition_4h5gj"), "Idle", "Secondary Attack", SubResource("AnimationNodeStateMachineTransition_e5pq0"), "Secondary Attack", "Idle", SubResource("AnimationNodeStateMachineTransition_wka7s"), "Walking", "Secondary Attack", SubResource("AnimationNodeStateMachineTransition_8jscc"), "Walking", "Primary Attack", SubResource("AnimationNodeStateMachineTransition_7vrs0")] diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/10. Eden Pillar/EdenPillar.cs b/Zennysoft.Game.Ma/src/enemy/enemy_types/10. Eden Pillar/EdenPillar.cs index 57388c02..6d4fa190 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/10. Eden Pillar/EdenPillar.cs +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/10. Eden Pillar/EdenPillar.cs @@ -81,7 +81,7 @@ public partial class EdenPillar : Enemy3D, IHasPrimaryAttack, IHasSecondaryAttac 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.RotateY(Rotation.Y + angleOffsetInRadians); return _rotation.Rotation.Y; diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm1.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm1.tscn index 4d6ad1d2..33423a27 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm1.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm1.tscn @@ -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="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"] @@ -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://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"] resource_name = "STONE" cull_mode = 2 @@ -1344,7 +1351,7 @@ tracks/22/path = NodePath("1_ R TELLERIC PROJECTILE ARM/Skeleton3D/BoneAttachmen tracks/22/interp = 1 tracks/22/loop_wrap = true tracks/22/keys = { -"times": PackedFloat32Array(0, 0.3, 2.26667), +"times": PackedFloat32Array(0, 0.3, 0.8), "transitions": PackedFloat32Array(1, 1, 1), "update": 1, "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/loop_wrap = true tracks/25/keys = { -"times": PackedFloat32Array(0.0666667, 0.858373, 2.26667), +"times": PackedFloat32Array(0.0666667, 0.858373, 1.36667), "transitions": PackedFloat32Array(1, 1, 1), "update": 1, "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/loop_wrap = true tracks/26/keys = { -"times": PackedFloat32Array(0.0666667, 1.4, 2.26667), +"times": PackedFloat32Array(0.0666667, 1.4, 1.9), "transitions": PackedFloat32Array(1, 1, 1), "update": 1, "values": [false, true, false] @@ -1953,7 +1960,7 @@ animations = [{ [node name="Arm1" type="Node3D"] script = ExtResource("2_w0a5p") -PrimaryAttackElementalType = 2 +AttackData = SubResource("Resource_crk52") [node name="Pivot" type="Node3D" parent="."] unique_name_in_owner = true @@ -1970,43 +1977,43 @@ bones/0/name = "Bone" 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/enabled = true -bones/0/position = Vector3(1.40784, -1.06997, -0.968705) -bones/0/rotation = Quaternion(0.0123396, 0.674013, 0.439247, 0.593815) +bones/0/position = Vector3(1.49292, -0.977413, -0.864047) +bones/0/rotation = Quaternion(-0.0232671, 0.62584, 0.764734, 0.151543) bones/0/scale = Vector3(1, 1, 1) bones/1/name = "Bone.001" 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/enabled = true 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/2/name = "Bone.002" 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/enabled = true 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/3/name = "Bone.003" 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/enabled = true 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/4/name = "Bone.004" 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/enabled = true 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/5/name = "Bone.005" 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/enabled = true 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/6/name = "Bone.006" 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/enabled = true 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/8/name = "Bone.008" 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/enabled = true 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/10/name = "Bone.010" 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/enabled = true 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/11/name = "Bone.011" 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/enabled = true 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/12/name = "Bone.012" 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/enabled = true 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/13/name = "Bone.013" 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/enabled = true 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/14/name = "Bone.014" 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/enabled = true 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/15/name = "Bone.015" 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/enabled = true 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/16/name = "Bone.016" 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/enabled = true 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/17/name = "Bone.017" 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/enabled = true 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/18/name = "Bone.018" 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/enabled = true 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/19/name = "Bone.019" 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/enabled = true 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/20/name = "Bone.020" 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/enabled = true 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/21/name = "Bone.021" 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/enabled = true -bones/21/position = Vector3(2.1845, -0.249322, -2.77981) -bones/21/rotation = Quaternion(0.725462, 0.0455603, 0.423981, 0.540249) +bones/21/position = Vector3(2.042, -0.451989, -2.88672) +bones/21/rotation = Quaternion(0.528824, 0.329629, 0.5801, 0.524571) bones/21/scale = Vector3(1, 1, 1) [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") [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_idx = 19 @@ -2214,6 +2221,7 @@ light_energy = 2.0 omni_range = 2.781 [node name="AnimationPlayer" type="AnimationPlayer" parent="Pivot/ARM1"] +unique_name_in_owner = true libraries = { &"": SubResource("AnimationLibrary_utjtd") } diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm2.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm2.tscn index f8ffbe64..3775b641 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm2.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm2.tscn @@ -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="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://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"] +[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"] resource_name = "STONE" cull_mode = 2 @@ -737,6 +744,7 @@ material = SubResource("ShaderMaterial_k4tl8") [node name="Arm2" type="Node3D"] script = ExtResource("1_jkuo4") +AttackData = SubResource("Resource_phvjc") [node name="Pivot" type="Node3D" parent="."] unique_name_in_owner = true @@ -753,155 +761,155 @@ bones/0/name = "Bone" 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/enabled = true -bones/0/position = Vector3(-2.04279, 0.628214, -1.77738) -bones/0/rotation = Quaternion(0.553646, -0.462054, -0.468912, 0.510004) +bones/0/position = Vector3(-1.71026, 0.829431, -1.5194) +bones/0/rotation = Quaternion(0.0740812, -0.451103, -0.66238, 0.593524) bones/0/scale = Vector3(1, 1, 1) bones/1/name = "Bone.001" 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/enabled = true 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/2/name = "Bone.002" 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/enabled = true 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/3/name = "Bone.003" 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/enabled = true 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/4/name = "Bone.004" 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/enabled = true 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/5/name = "Bone.005" 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/enabled = true 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/6/name = "Bone.006" 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/enabled = true 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/7/name = "Bone.007" 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/enabled = true 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/8/name = "Bone.008" 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/enabled = true 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/9/name = "Bone.009" 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/enabled = true 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/10/name = "Bone.010" 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/enabled = true 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/11/name = "Bone.011" 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/enabled = true 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/12/name = "Bone.012" 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/enabled = true 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/13/name = "Bone.013" 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/enabled = true 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/14/name = "Bone.014" 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/enabled = true 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/15/name = "Bone.015" 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/enabled = true 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/16/name = "Bone.016" 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/enabled = true 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/17/name = "Bone.017" 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/enabled = true 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/18/name = "Bone.018" 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/enabled = true 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/19/name = "Bone.019" 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/enabled = true 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/20/name = "Bone.020" 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/enabled = true 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/21/name = "Bone.021" 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/enabled = true -bones/21/position = Vector3(-2.06607, 0.879806, -3.83246) -bones/21/rotation = Quaternion(0.338171, -0.60599, -0.652831, 0.303692) +bones/21/position = Vector3(-2.25449, 0.699812, -3.51348) +bones/21/rotation = Quaternion(0.18431, -0.642888, -0.642625, 0.373842) bones/21/scale = Vector3(1, 1, 1) [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") [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_idx = 2 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm3.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm3.tscn index 6cf81fdb..1e3febb8 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm3.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm3.tscn @@ -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://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://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"] +[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"] resource_name = "STONE" cull_mode = 2 @@ -974,6 +981,7 @@ _data = { [node name="Arm3" type="Node3D"] script = ExtResource("1_fhrhk") +AttackData = SubResource("Resource_4acx4") [node name="ARM3" type="Node3D" parent="."] @@ -985,64 +993,64 @@ bones/0/name = "Bone" 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/enabled = true -bones/0/position = Vector3(-2.73775, 0.468596, -1.22531) -bones/0/rotation = Quaternion(0.200842, -0.392181, -0.716197, 0.54122) +bones/0/position = Vector3(-2.85148, 0.526529, -1.221) +bones/0/rotation = Quaternion(0.176403, -0.406312, -0.74143, 0.504057) bones/0/scale = Vector3(1, 1, 1) bones/1/name = "Bone.001" 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/enabled = true 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/2/name = "Bone.002" 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/enabled = true 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/3/name = "Bone.003" 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/enabled = true 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/4/name = "Bone.004" 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/enabled = true 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/5/name = "Bone.005" 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/enabled = true 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/6/name = "Bone.006" 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/enabled = true 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/7/name = "Bone.007" 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/enabled = true 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/8/name = "Bone.008" 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/enabled = true 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/9/name = "Bone.009" 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/enabled = true 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/11/name = "Bone.011" 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/enabled = true 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/12/name = "Bone.012" 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/enabled = true 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/13/name = "Bone.013" 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/enabled = true 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/15/name = "Bone.015" 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/enabled = true 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/16/name = "Bone.016" 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/enabled = true 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/19/name = "Bone.019" 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/enabled = true 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/20/name = "Bone.020" bones/20/parent = 19 @@ -1132,8 +1140,8 @@ bones/21/name = "Bone.021" 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/enabled = true -bones/21/position = Vector3(-2.97609, 1.07319, -3.25623) -bones/21/rotation = Quaternion(0.733612, -0.140555, -0.295156, 0.595769) +bones/21/position = Vector3(-3.00563, 1.12785, -3.26054) +bones/21/rotation = Quaternion(0.717367, -0.194, -0.335859, 0.578746) bones/21/scale = Vector3(1, 1, 1) [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="."] 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") -frame = 54 [node name="AnimationPlayer" type="AnimationPlayer" parent="."] libraries = { &"": SubResource("AnimationLibrary_4acx4") } -autoplay = "Wall Move VFX" [node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="."] diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm4.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm4.tscn index d54e9ddc..9aa76dee 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm4.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm4.tscn @@ -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="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://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"] @@ -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://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"] resource_name = "Material.002" cull_mode = 2 @@ -769,6 +776,7 @@ albedo_texture = ExtResource("9_el805") [node name="Arm4" type="Node3D"] script = ExtResource("1_nwywg") +AttackData = SubResource("Resource_wbqyb") [node name="ARM4" type="Node3D" parent="."] @@ -780,8 +788,8 @@ bones/0/name = "Bone" 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/enabled = true -bones/0/position = Vector3(-2.1996, -0.363059, -1.80911) -bones/0/rotation = Quaternion(0.105613, -0.507544, -0.459568, 0.72114) +bones/0/position = Vector3(-2.13039, -0.268787, -1.69886) +bones/0/rotation = Quaternion(0.0923062, -0.514227, -0.439319, 0.730787) bones/0/scale = Vector3(1, 1, 1) bones/1/name = "Bone.001" bones/1/parent = 0 @@ -934,8 +942,8 @@ bones/22/name = "Bone.021" 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/enabled = true -bones/22/position = Vector3(-2.00846, 0.925536, -3.63189) -bones/22/rotation = Quaternion(0.863091, -0.137402, -0.180787, 0.451121) +bones/22/position = Vector3(-2.0261, 0.838448, -3.63792) +bones/22/rotation = Quaternion(0.8414, -0.121862, -0.170241, 0.498211) bones/22/scale = Vector3(1, 1, 1) [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") [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_idx = 8 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm5.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm5.tscn index ef94eeca..dadabcfe 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm5.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm5.tscn @@ -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://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://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://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"] +[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"] resource_name = "Animation" length = 7.0137 @@ -1389,6 +1396,7 @@ transitions = ["Start", "idle", SubResource("AnimationNodeStateMachineTransition [node name="Arm5" type="Node3D"] script = ExtResource("1_j3ruw") +AttackData = SubResource("Resource_flp87") [node name="ROCK SMASH" type="Node3D" parent="."] 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("") [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") skeleton = NodePath("") @@ -1415,12 +1423,12 @@ mesh = SubResource("ArrayMesh_mf0fv") skeleton = NodePath("") [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") skeleton = NodePath("") [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") skeleton = NodePath("") @@ -1435,22 +1443,22 @@ mesh = SubResource("ArrayMesh_fugsc") skeleton = NodePath("") [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") skeleton = NodePath("") [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") skeleton = NodePath("") [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") skeleton = NodePath("") [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") skeleton = NodePath("") @@ -1479,29 +1487,29 @@ bones/0/name = "Bone" 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/enabled = true -bones/0/position = Vector3(2.62569, -0.0349066, -1.21983) -bones/0/rotation = Quaternion(0.288488, 0.553689, 0.652755, 0.429084) +bones/0/position = Vector3(2.61091, -0.168294, -1.43586) +bones/0/rotation = Quaternion(0.317499, 0.527284, 0.660757, 0.429611) bones/0/scale = Vector3(1, 1, 1) bones/1/name = "Bone.001" 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/enabled = true 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/2/name = "Bone.002" 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/enabled = true 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/3/name = "Bone.003" 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/enabled = true 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/4/name = "Bone.004" 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/enabled = true 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/6/name = "Bone.006" 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/enabled = true 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/10/name = "Bone.010" 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/enabled = true 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/14/name = "Bone.014" 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/enabled = true 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/18/name = "Bone.018" bones/18/parent = 17 @@ -1626,8 +1634,8 @@ bones/21/name = "Bone.021" 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/enabled = true -bones/21/position = Vector3(2.37565, -0.461888, -3.45993) -bones/21/rotation = Quaternion(0.541897, 0.478804, 0.337294, 0.602767) +bones/21/position = Vector3(2.37198, -0.370113, -3.46949) +bones/21/rotation = Quaternion(0.567172, 0.467662, 0.362014, 0.573196) bones/21/scale = Vector3(1, 1, 1) [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") [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_idx = 18 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm6.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm6.tscn index cc96cfee..26654863 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm6.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm6.tscn @@ -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="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://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"] +[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"] resource_name = "STONE" cull_mode = 2 @@ -501,7 +508,7 @@ transitions = ["attack", "idle", SubResource("AnimationNodeStateMachineTransitio [node name="Arm6" type="Node3D"] script = ExtResource("1_xefo1") -PrimaryAttackElementalType = 5 +AttackData = SubResource("Resource_h1jik") [node name="ARM6" type="Node3D" parent="."] @@ -513,29 +520,29 @@ bones/0/name = "Bone" 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/enabled = true -bones/0/position = Vector3(2.47058, -0.783689, -2.01448) -bones/0/rotation = Quaternion(0.213407, 0.661084, 0.344333, 0.631554) +bones/0/position = Vector3(2.33541, -0.688565, -1.91412) +bones/0/rotation = Quaternion(0.23455, 0.560847, 0.451655, 0.653027) bones/0/scale = Vector3(1, 1, 1) bones/1/name = "Bone.001" 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/enabled = true 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/2/name = "Bone.002" 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/enabled = true 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/3/name = "Bone.003" 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/enabled = true 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/4/name = "Bone.004" 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/enabled = true 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/6/name = "Bone.006" 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/enabled = true 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/7/name = "Bone.007" 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/enabled = true 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/11/name = "Bone.011" 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/enabled = true 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/15/name = "Bone.015" 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/enabled = true 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/18/name = "Bone.018" 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/enabled = true 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/19/name = "Bone.019" bones/19/parent = 18 @@ -660,8 +667,8 @@ bones/21/name = "Bone.021" 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/enabled = true -bones/21/position = Vector3(1.07427, -0.876382, -3.47631) -bones/21/rotation = Quaternion(0.66934, 0.413585, -0.110013, 0.607313) +bones/21/position = Vector3(1.20947, -0.971519, -3.57677) +bones/21/rotation = Quaternion(0.642522, 0.332355, -0.0570724, 0.688076) bones/21/scale = Vector3(1, 1, 1) [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") [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_idx = 20 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm7.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm7.tscn index bfdf119f..11c1599a 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm7.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm7.tscn @@ -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="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://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://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"] resource_name = "STONE" cull_mode = 2 @@ -588,7 +595,7 @@ transitions = ["idle", "attack", SubResource("AnimationNodeStateMachineTransitio [node name="Arm7" type="Node3D"] script = ExtResource("1_enq7k") -PrimaryAttackElementalType = 4 +AttackData = SubResource("Resource_v88k1") [node name="Pivot" type="Node3D" parent="."] unique_name_in_owner = true @@ -605,155 +612,155 @@ bones/0/name = "Bone" 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/enabled = true -bones/0/position = Vector3(2.27844, -0.57056, -1.48374) -bones/0/rotation = Quaternion(0.351014, 0.135407, 0.687436, 0.621197) +bones/0/position = Vector3(2.26558, -0.584002, -1.49189) +bones/0/rotation = Quaternion(0.291981, 0.220058, 0.656706, 0.65959) bones/0/scale = Vector3(1, 1, 1) bones/1/name = "Bone.001" 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/enabled = true 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/2/name = "Bone.002" 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/enabled = true 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/3/name = "Bone.003" 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/enabled = true 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/4/name = "Bone.004" 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/enabled = true 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/5/name = "Bone.005" 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/enabled = true 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/6/name = "Bone.006" 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/enabled = true 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/7/name = "Bone.007" 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/enabled = true 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/8/name = "Bone.008" 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/enabled = true 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/9/name = "Bone.009" 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/enabled = true 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/10/name = "Bone.010" 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/enabled = true 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/11/name = "Bone.011" 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/enabled = true 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/12/name = "Bone.012" 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/enabled = true 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/13/name = "Bone.013" 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/enabled = true 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/14/name = "Bone.014" 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/enabled = true 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/15/name = "Bone.015" 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/enabled = true 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/16/name = "Bone.016" 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/enabled = true 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/17/name = "Bone.017" 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/enabled = true 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/18/name = "Bone.018" 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/enabled = true 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/19/name = "Bone.019" 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/enabled = true 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/20/name = "Bone.020" 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/enabled = true 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/21/name = "Bone.021" 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/enabled = true -bones/21/position = Vector3(2.70805, 0.0321641, -3.41549) -bones/21/rotation = Quaternion(0.751096, 0.0858709, 0.285687, 0.588951) +bones/21/position = Vector3(2.72091, 0.045606, -3.40734) +bones/21/rotation = Quaternion(0.754269, 0.0780863, 0.289028, 0.584331) bones/21/scale = Vector3(1, 1, 1) [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") [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_idx = 1 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm8.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm8.tscn index 9790e3be..3bf5b7cb 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm8.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm8.tscn @@ -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="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://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"] +[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"] resource_name = "STONE" cull_mode = 2 @@ -515,6 +522,7 @@ transitions = ["attack", "idle", SubResource("AnimationNodeStateMachineTransitio [node name="Arm8" type="Node3D"] script = ExtResource("1_5tnjc") +AttackData = SubResource("Resource_yary7") [node name="ARM8" type="Node3D" parent="."] @@ -526,15 +534,15 @@ bones/0/name = "Bone" 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/enabled = true -bones/0/position = Vector3(-2.78023, 0.452504, -1.20746) -bones/0/rotation = Quaternion(0.0895743, -0.443005, -0.715414, 0.532828) +bones/0/position = Vector3(-2.86512, 0.708377, -1.20181) +bones/0/rotation = Quaternion(0.00582242, -0.587142, -0.714277, 0.38084) bones/0/scale = Vector3(1, 1, 1) bones/1/name = "Bone.001" 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/enabled = true 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/2/name = "Bone.002" bones/2/parent = 1 @@ -673,8 +681,8 @@ bones/21/name = "Bone.021" 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/enabled = true -bones/21/position = Vector3(-3.0806, 0.733435, -3.27408) -bones/21/rotation = Quaternion(0.627963, -0.256163, -0.403644, 0.614097) +bones/21/position = Vector3(-2.9957, 0.477562, -3.27973) +bones/21/rotation = Quaternion(0.525009, -0.401446, -0.408207, 0.629741) bones/21/scale = Vector3(1, 1, 1) [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") [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_idx = 12 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm9.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm9.tscn index a636ab7e..7739fcfe 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm9.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/Arm9.tscn @@ -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="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="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://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"] +[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"] atlas = ExtResource("2_fk886") region = Rect2(0, 0, 512, 512) @@ -1502,6 +1509,7 @@ transitions = ["Start", "idle", SubResource("AnimationNodeStateMachineTransition [node name="Arm9" type="Node3D"] script = ExtResource("1_fjfqv") +AttackData = SubResource("Resource_jltgb") [node name="AnimatedSprite3D" type="AnimatedSprite3D" parent="."] 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/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/position = Vector3(1.44441, -1.07471, -1.44808) -bones/0/rotation = Quaternion(0.0761007, 0.580784, 0.656085, 0.475868) +bones/0/position = Vector3(1.44496, -1.07463, -1.44783) +bones/0/rotation = Quaternion(0.0755964, 0.581819, 0.655697, 0.47522) bones/0/scale = Vector3(1, 1, 1) bones/1/name = "Bone.001" 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/enabled = true 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/2/name = "Bone.002" 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/enabled = true 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/3/name = "Bone.003" 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/enabled = true 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/4/name = "Bone.004" 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/enabled = true 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/5/name = "Bone.005" 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/enabled = true 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/6/name = "Bone.006" 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/enabled = true 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/7/name = "Bone.007" 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/enabled = true 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/8/name = "Bone.008" 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/enabled = true 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/9/name = "Bone.009" 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/enabled = true 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/10/name = "Bone.010" 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/enabled = true 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/11/name = "Bone.011" 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/enabled = true 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/12/name = "Bone.012" 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/enabled = true 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/13/name = "Bone.013" 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/enabled = true 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/14/name = "Bone.014" 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/enabled = true 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/15/name = "Bone.015" 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/enabled = true 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/16/name = "Bone.016" 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/enabled = true 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/17/name = "Bone.017" 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/enabled = true 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/18/name = "Bone.018" 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/enabled = true 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/19/name = "Bone.019" 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/enabled = true 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/20/name = "Bone.020" bones/20/parent = 19 @@ -1672,8 +1680,8 @@ bones/21/name = "Bone.021" 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/enabled = true -bones/21/position = Vector3(2.51503, -1.40955, -3.18659) -bones/21/rotation = Quaternion(0.497122, 0.108774, 0.414594, 0.75442) +bones/21/position = Vector3(2.51448, -1.40963, -3.18684) +bones/21/rotation = Quaternion(0.497287, 0.108962, 0.414333, 0.754428) bones/21/scale = Vector3(1, 1, 1) [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") [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_idx = 15 diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DemonWallArm.cs b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DemonWallArm.cs index 9bb7d498..facd54ce 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DemonWallArm.cs +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DemonWallArm.cs @@ -7,7 +7,7 @@ using Zennysoft.Ma.Adapter; namespace Zennysoft.Game.Ma; [Meta(typeof(IAutoNode))] -public partial class DemonWallArm : Node3D +public partial class DemonWallArm : EnemyModelView { 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().Single()); - [Node] public AnimationTree AnimationTree { 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().Travel(ATTACK); - public void OnReady() + public new void OnReady() { Hitbox.AreaEntered += Hitbox_AreaEntered; + base.OnReady(); } private void Hitbox_AreaEntered(Area3D area) { var target = area.GetOwner(); 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))); } } diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DemonWallModelView.cs b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DemonWallModelView.cs index 4208056e..fcccffa5 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DemonWallModelView.cs +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DemonWallModelView.cs @@ -12,6 +12,16 @@ public partial class DemonWallModelView : EnemyModelView3D, IEnemyModelView { 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().Single()); [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] 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() { _opposingWall.Show(); @@ -34,7 +52,6 @@ public partial class DemonWallModelView : EnemyModelView3D, IEnemyModelView public void OnPhysicsProcess(double delta) { - var direction = GlobalPosition.DirectionTo(_player.CurrentPosition).Normalized(); var rotationAngle = GetRotationAngle(_rotation); RotateToPlayer(Eye, rotationAngle, 1f); } @@ -59,22 +76,30 @@ public partial class DemonWallModelView : EnemyModelView3D, IEnemyModelView leftArm.PrimaryAttack(); rightArm.PrimaryAttack(); - var arm1 = GetNode("%Arm1"); - var arm2 = GetNode("%Arm2"); - var arm7 = GetNode("%Arm2"); + if (leftArm == Arm1) + { + 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) - await AimAtPlayer(arm1, 2.1); - if (leftArm == arm2) - await AimAtPlayer(arm2, 1.5); - if (leftArm == GetNode("%Arm3") && _opposingWall.Position.Z > -maximumWallMoveAmount) + if (leftArm == Arm3 && _opposingWall.Position.Z > -maximumWallMoveAmount) 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) { + var anim = new Animation(); var rotationAngle = GetRotationAngle(arm.GetNode("%Rotation")); RotateToPlayer(arm.GetNode("%Pivot"), rotationAngle, 0.3f); await ToSignal(GetTree().CreateTimer(animationLengthInSeconds), "timeout"); @@ -95,11 +120,11 @@ public partial class DemonWallModelView : EnemyModelView3D, IEnemyModelView 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.RotateY(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); } diff --git a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DemonWallModelView.tscn b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DemonWallModelView.tscn index cf306ff7..b9a70724 100644 --- a/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DemonWallModelView.tscn +++ b/Zennysoft.Game.Ma/src/enemy/enemy_types/16. demon wall/DemonWallModelView.tscn @@ -343,33 +343,42 @@ unique_name_in_owner = true [node name="Arm1" parent="LeftArms" instance=ExtResource("1_ell80")] unique_name_in_owner = true +AttackData = null [node name="Arm2" parent="LeftArms" instance=ExtResource("2_kblru")] unique_name_in_owner = true +AttackData = null [node name="Arm3" parent="LeftArms" instance=ExtResource("3_nqxqr")] unique_name_in_owner = true +AttackData = null [node name="Arm4" parent="LeftArms" instance=ExtResource("4_r5yku")] unique_name_in_owner = true +AttackData = null [node name="Arm5" parent="LeftArms" instance=ExtResource("5_5oa7x")] unique_name_in_owner = true +AttackData = null [node name="RightArms" type="Node3D" parent="."] unique_name_in_owner = true [node name="Arm6" parent="RightArms" instance=ExtResource("6_h1yna")] unique_name_in_owner = true +AttackData = null [node name="Arm7" parent="RightArms" instance=ExtResource("7_6s6sq")] unique_name_in_owner = true +AttackData = null [node name="Arm8" parent="RightArms" instance=ExtResource("8_e82oe")] unique_name_in_owner = true +AttackData = null [node name="Arm9" parent="RightArms" instance=ExtResource("9_c826n")] unique_name_in_owner = true +AttackData = null [node name="DEMON WALL BASE + PIPES" type="Node3D" parent="."] diff --git a/Zennysoft.Game.Ma/src/items/EffectService.cs b/Zennysoft.Game.Ma/src/items/EffectService.cs index 0c023090..6276840f 100644 --- a/Zennysoft.Game.Ma/src/items/EffectService.cs +++ b/Zennysoft.Game.Ma/src/items/EffectService.cs @@ -124,7 +124,7 @@ public class EffectService var currentEnemies = currentRoom.EnemiesInRoom; 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); } } diff --git a/Zennysoft.Game.Ma/src/items/Inventory.cs b/Zennysoft.Game.Ma/src/items/Inventory.cs index 0cbfb56d..4898d722 100644 --- a/Zennysoft.Game.Ma/src/items/Inventory.cs +++ b/Zennysoft.Game.Ma/src/items/Inventory.cs @@ -5,7 +5,6 @@ using Godot; using System.Collections.Generic; using System.Linq; using Zennysoft.Game.Abstractions; -using Zennysoft.Game.Implementation; using Zennysoft.Ma.Adapter; namespace Zennysoft.Game.Ma; @@ -47,11 +46,11 @@ public partial class Inventory : Node, IInventory public void Remove(InventoryItem inventoryItem) => Items.Remove(inventoryItem); - public void Sort() + public void Sort(EquipableItem currentWeapon, EquipableItem currentArmor, EquipableItem currentAccessory) { - var equippedWeapon = Items.OfType().Where(x => x.IsEquipped); - var equippedArmor = Items.OfType().Where(x => x.IsEquipped); - var equippedAccessory = Items.OfType().Where(x => x.IsEquipped); + var equippedWeapon = Items.OfType().Where(x => x == currentWeapon); + var equippedArmor = Items.OfType().Where(x => x == currentArmor); + var equippedAccessory = Items.OfType().Where(x => x == currentAccessory); var equippedItems = new List(); equippedItems.AddRange(equippedWeapon); equippedItems.AddRange(equippedArmor); @@ -80,10 +79,10 @@ public partial class Inventory : Node, IInventory { 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.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) { - if (x.Defense == y.Defense) + if (x.BonusDefense == y.BonusDefense) return x.ItemName.CompareTo(y.ItemName); - return x.Defense < y.Defense ? 1 : -1; + return x.BonusDefense < y.BonusDefense ? 1 : -1; } } diff --git a/Zennysoft.Game.Ma/src/items/InventoryItemStats.cs b/Zennysoft.Game.Ma/src/items/InventoryItemStats.cs index 0226962e..961f7e3d 100644 --- a/Zennysoft.Game.Ma/src/items/InventoryItemStats.cs +++ b/Zennysoft.Game.Ma/src/items/InventoryItemStats.cs @@ -10,22 +10,34 @@ namespace Zennysoft.Game.Ma; public abstract partial class InventoryItemStats : Resource { [Export] - public abstract string Name { get; set; } + public string Name { get; set; } [Export(PropertyHint.MultilineText)] - public abstract string Description { get; set; } + public string Description { get; set; } [Export(PropertyHint.Range, "0, 1, 0.01")] 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")] public float ThrowSpeed { get; set; } = 12.0f; [Export(PropertyHint.Range, "0, 999, 1")] - public int HealHPAmount { get; set; } + public int IncreaseMaxHPAmount { get; set; } [Export(PropertyHint.Range, "0, 999, 1")] - public int HealVTAmount { get; set; } + public int IncreaseMaxVTAmount { get; set; } [Export(PropertyHint.Range, "0, 999, 1")] public int ThrowDamage { get; set; } = 5; diff --git a/Zennysoft.Game.Ma/src/items/accessory/Accessory.cs b/Zennysoft.Game.Ma/src/items/accessory/Accessory.cs index 348203d0..5648aaa4 100644 --- a/Zennysoft.Game.Ma/src/items/accessory/Accessory.cs +++ b/Zennysoft.Game.Ma/src/items/accessory/Accessory.cs @@ -27,16 +27,6 @@ public partial class Accessory : EquipableItem 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 override ItemTag ItemTag => Stats.ItemTag; diff --git a/Zennysoft.Game.Ma/src/items/accessory/AccessoryStats.cs b/Zennysoft.Game.Ma/src/items/accessory/AccessoryStats.cs index 206d5003..c0376ba1 100644 --- a/Zennysoft.Game.Ma/src/items/accessory/AccessoryStats.cs +++ b/Zennysoft.Game.Ma/src/items/accessory/AccessoryStats.cs @@ -1,7 +1,6 @@ using Chickensoft.Introspection; using Chickensoft.Serialization; using Godot; -using Zennysoft.Game.Implementation; using Zennysoft.Ma.Adapter; namespace Zennysoft.Game.Ma; @@ -10,34 +9,6 @@ namespace Zennysoft.Game.Ma; [Meta, Id("accessory_stat_type")] 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] [Save("accessory_tag")] public AccessoryTag AccessoryTag { get; set; } = AccessoryTag.None; diff --git a/Zennysoft.Game.Ma/src/items/armor/Armor.cs b/Zennysoft.Game.Ma/src/items/armor/Armor.cs index 1279f60e..c14b49bd 100644 --- a/Zennysoft.Game.Ma/src/items/armor/Armor.cs +++ b/Zennysoft.Game.Ma/src/items/armor/Armor.cs @@ -28,9 +28,8 @@ public partial class Armor : EquipableItem 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; public void IncreaseArmorDefense(int bonus) => _bonusDefense += bonus; diff --git a/Zennysoft.Game.Ma/src/items/armor/ArmorStats.cs b/Zennysoft.Game.Ma/src/items/armor/ArmorStats.cs index 7c26d39a..b99c90b1 100644 --- a/Zennysoft.Game.Ma/src/items/armor/ArmorStats.cs +++ b/Zennysoft.Game.Ma/src/items/armor/ArmorStats.cs @@ -9,18 +9,6 @@ namespace Zennysoft.Game.Ma; [Meta, Id("armor_stats")] 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] [Save("armor_telluric_resistance")] private double _telluricResistance { get; set; } = 0; diff --git a/Zennysoft.Game.Ma/src/items/consumable/ConsumableItem.cs b/Zennysoft.Game.Ma/src/items/consumable/ConsumableItem.cs index 31ef597f..ce625394 100644 --- a/Zennysoft.Game.Ma/src/items/consumable/ConsumableItem.cs +++ b/Zennysoft.Game.Ma/src/items/consumable/ConsumableItem.cs @@ -32,9 +32,9 @@ public partial class ConsumableItem : InventoryItem 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; diff --git a/Zennysoft.Game.Ma/src/items/consumable/ConsumableItemStats.cs b/Zennysoft.Game.Ma/src/items/consumable/ConsumableItemStats.cs index fe117b31..7578812e 100644 --- a/Zennysoft.Game.Ma/src/items/consumable/ConsumableItemStats.cs +++ b/Zennysoft.Game.Ma/src/items/consumable/ConsumableItemStats.cs @@ -8,19 +8,17 @@ namespace Zennysoft.Game.Ma; [Meta, Id("consumable_item_stats")] public partial class ConsumableItemStats : InventoryItemStats { - [Export] - [Save("consumable_item_name")] - public override string Name { get; set; } = default!; + [Export(PropertyHint.Range, "0, 999, 1")] + public int HealHPAmount { get; set; } - [Export(PropertyHint.MultilineText)] - [Save("consumable_item_description")] - public override string Description { get; set; } = default!; + [Export(PropertyHint.Range, "0, 999, 1")] + public int HealVTAmount { get; set; } [Export] [Save("consumable_item_raise_hp")] - public int RaiseHPAmount { get; set; } = 0; + public int PermanentRaiseHPAmount { get; set; } = 0; [Export] [Save("consumable_item_raise_vt")] - public int RaiseVTAmount { get; set; } = 0; + public int PermanentRaiseVTAmount { get; set; } = 0; } diff --git a/Zennysoft.Game.Ma/src/items/dropped/DroppedItem.cs b/Zennysoft.Game.Ma/src/items/dropped/DroppedItem.cs index a4b7435c..af41c4e0 100644 --- a/Zennysoft.Game.Ma/src/items/dropped/DroppedItem.cs +++ b/Zennysoft.Game.Ma/src/items/dropped/DroppedItem.cs @@ -38,8 +38,8 @@ public partial class DroppedItem : RigidBody3D, IDroppedItem AddCollisionExceptionWith((Node)Player); Pickup.Monitorable = false; Pickup.Monitoring = false; - GlobalPosition = Player.CurrentPosition + Vector3.Up; - ApplyCentralImpulse(-Player.CurrentBasis.Z.Normalized() * 5.0f); + GlobalPosition = Player.GlobalPosition + Vector3.Up; + ApplyCentralImpulse(-Player.GlobalBasis.Z.Normalized() * 5.0f); await ToSignal(GetTree().CreateTimer(1), "timeout"); RemoveCollisionExceptionWith((Node)Player); Pickup.Monitorable = true; diff --git a/Zennysoft.Game.Ma/src/items/effect/EffectItemStats.cs b/Zennysoft.Game.Ma/src/items/effect/EffectItemStats.cs index bd7fa58c..122c6499 100644 --- a/Zennysoft.Game.Ma/src/items/effect/EffectItemStats.cs +++ b/Zennysoft.Game.Ma/src/items/effect/EffectItemStats.cs @@ -10,14 +10,6 @@ namespace Zennysoft.Game.Ma; [Meta, Id("effect_item_stats")] 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] [Save("effect_item_tag")] public UsableItemTag UsableItemTag { get; set; } = UsableItemTag.None; diff --git a/Zennysoft.Game.Ma/src/items/throwable/ThrowableItem.cs b/Zennysoft.Game.Ma/src/items/throwable/ThrowableItem.cs index c21b60ee..98f06c38 100644 --- a/Zennysoft.Game.Ma/src/items/throwable/ThrowableItem.cs +++ b/Zennysoft.Game.Ma/src/items/throwable/ThrowableItem.cs @@ -3,7 +3,6 @@ using Chickensoft.Introspection; using Chickensoft.Serialization; using Godot; using Zennysoft.Game.Abstractions; -using Zennysoft.Game.Implementation; using Zennysoft.Ma.Adapter; namespace Zennysoft.Game.Ma; diff --git a/Zennysoft.Game.Ma/src/items/throwable/ThrowableItemStats.cs b/Zennysoft.Game.Ma/src/items/throwable/ThrowableItemStats.cs index 120c1f6b..22621380 100644 --- a/Zennysoft.Game.Ma/src/items/throwable/ThrowableItemStats.cs +++ b/Zennysoft.Game.Ma/src/items/throwable/ThrowableItemStats.cs @@ -1,7 +1,6 @@ using Chickensoft.Introspection; using Chickensoft.Serialization; using Godot; -using Zennysoft.Game.Implementation; using Zennysoft.Ma.Adapter; namespace Zennysoft.Game.Ma; @@ -10,13 +9,11 @@ namespace Zennysoft.Game.Ma; [Meta, Id("throwable_item_stats")] public partial class ThrowableItemStats : InventoryItemStats { - [Export] - [Save("throwable_item_name")] - public override string Name { get; set; } = default!; + [Export(PropertyHint.Range, "0, 999, 1")] + public int HealHPAmount { get; set; } - [Export(PropertyHint.MultilineText)] - [Save("throwable_item_description")] - public override string Description { get; set; } = default!; + [Export(PropertyHint.Range, "0, 999, 1")] + public int HealVTAmount { get; set; } [Export] [Save("throwable_item_tag")] diff --git a/Zennysoft.Game.Ma/src/items/thrown/ThrownItem.cs b/Zennysoft.Game.Ma/src/items/thrown/ThrownItem.cs index e2b6e6b7..b5ee21f9 100644 --- a/Zennysoft.Game.Ma/src/items/thrown/ThrownItem.cs +++ b/Zennysoft.Game.Ma/src/items/thrown/ThrownItem.cs @@ -1,7 +1,6 @@ using Chickensoft.AutoInject; using Chickensoft.Introspection; using Godot; -using Zennysoft.Game.Implementation; using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter.Entity; @@ -28,7 +27,7 @@ public partial class ThrownItem : RigidBody3D { BodyEntered += ThrownItem_BodyEntered; Collision.AreaEntered += Collision_AreaEntered; - GlobalPosition = Player.CurrentPosition; + GlobalPosition = Player.GlobalPosition; Sprite.Texture = ItemThatIsThrown.GetTexture(); AddCollisionExceptionWith((Node)Player); Collision.SetCollisionLayerValue(3, false); @@ -60,7 +59,7 @@ public partial class ThrownItem : RigidBody3D public void Throw(EffectService effectService) { _effectService = effectService; - ApplyCentralImpulse(-Player.CurrentBasis.Z.Normalized() * ItemThatIsThrown.ThrowSpeed); + ApplyCentralImpulse(-Player.GlobalBasis.Z.Normalized() * ItemThatIsThrown.ThrowSpeed); } public void RescueItem() @@ -116,14 +115,14 @@ public partial class ThrownItem : RigidBody3D _effectService.TeleportToRandomRoom(enemy); break; 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); break; } } 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); } } diff --git a/Zennysoft.Game.Ma/src/items/weapons/Weapon.cs b/Zennysoft.Game.Ma/src/items/weapons/Weapon.cs index 73f360ac..e70e5dcc 100644 --- a/Zennysoft.Game.Ma/src/items/weapons/Weapon.cs +++ b/Zennysoft.Game.Ma/src/items/weapons/Weapon.cs @@ -38,14 +38,11 @@ public partial class Weapon : EquipableItem 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; - - [Save("weapon_bonus_damage")] - private int _bonusDamage { get; set; } = 0; + private int _extraDamage = 0; [Export] [Save("weapon_stats")] diff --git a/Zennysoft.Game.Ma/src/items/weapons/WeaponStats.cs b/Zennysoft.Game.Ma/src/items/weapons/WeaponStats.cs index 92b09868..c3b25f68 100644 --- a/Zennysoft.Game.Ma/src/items/weapons/WeaponStats.cs +++ b/Zennysoft.Game.Ma/src/items/weapons/WeaponStats.cs @@ -1,7 +1,6 @@ using Chickensoft.Introspection; using Chickensoft.Serialization; using Godot; -using Zennysoft.Game.Implementation; using Zennysoft.Ma.Adapter; namespace Zennysoft.Game.Ma; @@ -10,22 +9,6 @@ namespace Zennysoft.Game.Ma; [Meta, Id("weapon_stat_type")] 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] [Save("weapon_atk_speed")] public double AttackSpeed { get; set; } = 1; @@ -34,10 +17,6 @@ public partial class WeaponStats : InventoryItemStats [Save("weapon_element")] public ElementType WeaponElement { get; set; } = ElementType.None; - [Export] - [Save("weapon_elemental_damage_bonus")] - public double ElementalDamageBonus { get; set; } = 1.0; - [Export] [Save("weapon_tag")] public WeaponTag WeaponTag { get; set; } = WeaponTag.None; diff --git a/Zennysoft.Game.Ma/src/items/weapons/resources/Atonement.tres b/Zennysoft.Game.Ma/src/items/weapons/resources/Atonement.tres index d832f6d3..45d15192 100644 --- a/Zennysoft.Game.Ma/src/items/weapons/resources/Atonement.tres +++ b/Zennysoft.Game.Ma/src/items/weapons/resources/Atonement.tres @@ -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"] [resource] script = ExtResource("1_d2lw0") +AttackSpeed = 0.15 +WeaponElement = 0 +WeaponTag = 0 Name = "Atonement" 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. @@ -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. 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 +BonusAttack = 1000 +Defense = 0 +Luck = 0.05 ThrowSpeed = 12.0 -HealHPAmount = 0 -HealVTAmount = 0 +IncreaseMaxHPAmount = 0 +IncreaseMaxVTAmount = 0 ThrowDamage = 5 ItemTag = 0 metadata/_custom_type_script = "uid://cc7byqeolw5y4" diff --git a/Zennysoft.Game.Ma/src/items/weapons/resources/Jiblett.tres b/Zennysoft.Game.Ma/src/items/weapons/resources/Jiblett.tres index 3c067002..39215aea 100644 --- a/Zennysoft.Game.Ma/src/items/weapons/resources/Jiblett.tres +++ b/Zennysoft.Game.Ma/src/items/weapons/resources/Jiblett.tres @@ -1,21 +1,23 @@ [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="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] script = ExtResource("1_re512") -Damage = 3 -Luck = 0.05 AttackSpeed = 1.0 -TelluricDamageBonus = 0.0 -AeolicDamageBonus = 0.0 -BaseHydricDamageBonus = 0.0 -IgneousDamageBonus = 0.0 -FerrumDamageBonus = 0.0 -WeaponTags = [] +WeaponElement = 0 +WeaponTag = 0 Name = "Jiblett" Description = "+3 ATK A halberd for the tasteful." -Texture = ExtResource("1_ifm43") 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") diff --git a/Zennysoft.Game.Ma/src/items/weapons/resources/Katara.tres b/Zennysoft.Game.Ma/src/items/weapons/resources/Katara.tres index 767a618b..10d0a0c0 100644 --- a/Zennysoft.Game.Ma/src/items/weapons/resources/Katara.tres +++ b/Zennysoft.Game.Ma/src/items/weapons/resources/Katara.tres @@ -1,20 +1,22 @@ [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="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] script = ExtResource("2_3gdyl") -Damage = 1 -Luck = 0.05 AttackSpeed = 1.25 -TelluricDamageBonus = 0.0 -AeolicDamageBonus = 0.0 -BaseHydricDamageBonus = 0.0 -IgneousDamageBonus = 0.0 -FerrumDamageBonus = 0.0 -WeaponTags = [] +WeaponElement = 0 +WeaponTag = 0 Name = "Katara" Description = "+1 ATK, Fast" -Texture = ExtResource("1_3waom") 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") diff --git a/Zennysoft.Game.Ma/src/items/weapons/resources/Kubel.tres b/Zennysoft.Game.Ma/src/items/weapons/resources/Kubel.tres index 5628b289..039d285e 100644 --- a/Zennysoft.Game.Ma/src/items/weapons/resources/Kubel.tres +++ b/Zennysoft.Game.Ma/src/items/weapons/resources/Kubel.tres @@ -1,22 +1,24 @@ [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"] [resource] script = ExtResource("1_kbje7") -Damage = 9 -Luck = 0.05 AttackSpeed = 1.0 -TelluricDamageBonus = 0.0 -AeolicDamageBonus = 0.0 -BaseHydricDamageBonus = 0.0 -IgneousDamageBonus = 0.0 -FerrumDamageBonus = 0.0 -WeaponTags = [0] +WeaponElement = 0 +WeaponTag = 0 Name = "Kubel" Description = "+9 ATK A very powerful spear. For every hit, you lose 5 HP." -Texture = ExtResource("1_kwtbu") 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") diff --git a/Zennysoft.Game.Ma/src/items/weapons/resources/LoveJudgement.tres b/Zennysoft.Game.Ma/src/items/weapons/resources/LoveJudgement.tres index 51c41dfa..345be78b 100644 --- a/Zennysoft.Game.Ma/src/items/weapons/resources/LoveJudgement.tres +++ b/Zennysoft.Game.Ma/src/items/weapons/resources/LoveJudgement.tres @@ -1,21 +1,23 @@ [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="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] script = ExtResource("1_vroib") -Damage = 12 -Luck = 0.05 AttackSpeed = 1.0 -TelluricDamageBonus = 0.0 -AeolicDamageBonus = 25.0 -BaseHydricDamageBonus = 0.0 -IgneousDamageBonus = 0.0 -FerrumDamageBonus = 0.0 -WeaponTags = [] +WeaponElement = 0 +WeaponTag = 0 Name = "Love Judgement" Description = "+12 ATK A mace only wieldable by the strong of heart." -Texture = ExtResource("1_ivlxj") 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") diff --git a/Zennysoft.Game.Ma/src/items/weapons/resources/Palm of Heaven.tres b/Zennysoft.Game.Ma/src/items/weapons/resources/Palm of Heaven.tres index 7f0050e2..df244a42 100644 --- a/Zennysoft.Game.Ma/src/items/weapons/resources/Palm of Heaven.tres +++ b/Zennysoft.Game.Ma/src/items/weapons/resources/Palm of Heaven.tres @@ -1,22 +1,24 @@ [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="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] script = ExtResource("1_pwwg7") -Damage = 10 -Luck = 0.05 AttackSpeed = 1.0 -TelluricDamageBonus = 0.0 -AeolicDamageBonus = 0.0 -BaseHydricDamageBonus = 0.0 -IgneousDamageBonus = 0.0 -FerrumDamageBonus = 0.0 -WeaponTags = [3] +WeaponElement = 0 +WeaponTag = 0 Name = "Palm of Heaven" Description = "+10 ATK Very Powerful. Breaks upon leaving the floor." -Texture = ExtResource("1_hi6xm") 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") diff --git a/Zennysoft.Game.Ma/src/items/weapons/resources/Rondo.tres b/Zennysoft.Game.Ma/src/items/weapons/resources/Rondo.tres index e666f2e2..23fc03ec 100644 --- a/Zennysoft.Game.Ma/src/items/weapons/resources/Rondo.tres +++ b/Zennysoft.Game.Ma/src/items/weapons/resources/Rondo.tres @@ -1,21 +1,23 @@ [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="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] script = ExtResource("1_xfb0x") -Damage = 7 -Luck = 0.05 AttackSpeed = 1.333 -TelluricDamageBonus = 0.0 -AeolicDamageBonus = 0.0 -BaseHydricDamageBonus = 0.0 -IgneousDamageBonus = 0.0 -FerrumDamageBonus = 0.0 -WeaponTags = [1] +WeaponElement = 0 +WeaponTag = 0 Name = "Rondo" Description = "+7 ATK An eastern blade outside of time and reproach." -Texture = ExtResource("1_cvwbh") 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") diff --git a/Zennysoft.Game.Ma/src/items/weapons/resources/SealingRod.tres b/Zennysoft.Game.Ma/src/items/weapons/resources/SealingRod.tres index 18591a15..262d6cd2 100644 --- a/Zennysoft.Game.Ma/src/items/weapons/resources/SealingRod.tres +++ b/Zennysoft.Game.Ma/src/items/weapons/resources/SealingRod.tres @@ -1,26 +1,24 @@ [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"] [resource] script = ExtResource("1_40b5j") -Damage = 2 -Luck = 0.05 AttackSpeed = 1.0 -TelluricDamageBonus = 0.0 -AeolicDamageBonus = 0.0 -BaseHydricDamageBonus = 0.0 -IgneousDamageBonus = 0.0 -FerrumDamageBonus = 0.0 -WeaponTags = [] +WeaponElement = 0 +WeaponTag = 0 Name = "Sealing Rod" Description = "+2 ATK 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." -Texture = ExtResource("1_wiylj") SpawnRate = 0.5 +BonusAttack = 2 +Defense = 0 +Luck = 0.05 ThrowSpeed = 12.0 -HealHPAmount = 0 -HealVTAmount = 0 +IncreaseMaxHPAmount = 0 +IncreaseMaxVTAmount = 0 ThrowDamage = 5 +ItemTag = 0 +Texture = ExtResource("1_wiylj") diff --git a/Zennysoft.Game.Ma/src/items/weapons/resources/SpadedStaff.tres b/Zennysoft.Game.Ma/src/items/weapons/resources/SpadedStaff.tres index eec38528..c1d631e8 100644 --- a/Zennysoft.Game.Ma/src/items/weapons/resources/SpadedStaff.tres +++ b/Zennysoft.Game.Ma/src/items/weapons/resources/SpadedStaff.tres @@ -1,20 +1,22 @@ [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="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] script = ExtResource("2_w4n0u") -Damage = 5 -Luck = 0.1 AttackSpeed = 0.75 -TelluricDamageBonus = 0.0 -AeolicDamageBonus = 0.0 -BaseHydricDamageBonus = 0.0 -IgneousDamageBonus = 0.0 -FerrumDamageBonus = 0.0 -WeaponTags = [] +WeaponElement = 0 +WeaponTag = 0 Name = "Monk's Spade" Description = "+5 ATK, Slow" -Texture = ExtResource("1_6tifm") 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") diff --git a/Zennysoft.Game.Ma/src/items/weapons/resources/Swan Sword Odette.tres b/Zennysoft.Game.Ma/src/items/weapons/resources/Swan Sword Odette.tres index 17cbcf01..f9d4a655 100644 --- a/Zennysoft.Game.Ma/src/items/weapons/resources/Swan Sword Odette.tres +++ b/Zennysoft.Game.Ma/src/items/weapons/resources/Swan Sword Odette.tres @@ -5,21 +5,21 @@ [resource] script = ExtResource("1_cik6n") -Damage = 12 -Luck = 0.05 AttackSpeed = 1.25 WeaponElement = 0 -ElementalDamageBonus = 1.0 -WeaponTag = 0 +WeaponTag = 2 Name = "Swan Sword Odette" Description = "+12 ATK Ignores Affinity. The blade of a thousand faced heroine." -Texture = ExtResource("1_qc4eu") SpawnRate = 0.01 +BonusAttack = 12 +Defense = 0 +Luck = 0.05 ThrowSpeed = 12.0 -HealHPAmount = 0 -HealVTAmount = 0 +IncreaseMaxHPAmount = 0 +IncreaseMaxVTAmount = 0 ThrowDamage = 5 ItemTag = 0 +Texture = ExtResource("1_qc4eu") diff --git a/Zennysoft.Game.Ma/src/items/weapons/resources/Talwar.tres b/Zennysoft.Game.Ma/src/items/weapons/resources/Talwar.tres index 2500057e..800a8c77 100644 --- a/Zennysoft.Game.Ma/src/items/weapons/resources/Talwar.tres +++ b/Zennysoft.Game.Ma/src/items/weapons/resources/Talwar.tres @@ -1,20 +1,22 @@ [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="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] script = ExtResource("2_a7ln4") -Damage = 3 -Luck = 0.07 AttackSpeed = 1.0 -TelluricDamageBonus = 0.0 -AeolicDamageBonus = 0.0 -BaseHydricDamageBonus = 0.0 -IgneousDamageBonus = 0.0 -FerrumDamageBonus = 0.0 -WeaponTags = [] +WeaponElement = 0 +WeaponTag = 0 Name = "Talwar" Description = "+3 ATK" -Texture = ExtResource("1_8a832") 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") diff --git a/Zennysoft.Game.Ma/src/player/Player.cs b/Zennysoft.Game.Ma/src/player/Player.cs index 2f2b6a75..a513692a 100644 --- a/Zennysoft.Game.Ma/src/player/Player.cs +++ b/Zennysoft.Game.Ma/src/player/Player.cs @@ -4,7 +4,6 @@ using Chickensoft.Introspection; using Chickensoft.SaveFileBuilder; using Godot; using SimpleInjector; -using System; using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter.Entity; @@ -207,7 +206,7 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide 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 BonusDefense_Sync(int bonus) => DEFBonusLabel.Text = $"{bonus:+0;-#;\\.\\.\\.}"; - - public async Task RefreshInventoryScreen() { await ClearItems(); @@ -184,7 +186,7 @@ public partial class InventoryMenu : Control, IInventoryMenu 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) _currentIndex = inventory.Items.Count - 1; RefreshInventoryScreen(); @@ -239,11 +241,12 @@ public partial class InventoryMenu : Control, IInventoryMenu if (currentItem is EquipableItem equipable) { - UseButton.Text = equipable.IsEquipped ? "Unequip" : "Equip"; - ThrowButton.Disabled = equipable.IsEquipped; - ThrowButton.FocusMode = equipable.IsEquipped ? FocusModeEnum.None : FocusModeEnum.All; - DropButton.Disabled = equipable.IsEquipped; - DropButton.FocusMode = equipable.IsEquipped ? FocusModeEnum.None : FocusModeEnum.All; + var isItemEquipped = Player.EquipmentComponent.IsItemEquipped(equipable); + UseButton.Text = isItemEquipped ? "Unequip" : "Equip"; + ThrowButton.Disabled = isItemEquipped; + ThrowButton.FocusMode = isItemEquipped ? FocusModeEnum.None : FocusModeEnum.All; + DropButton.Disabled = isItemEquipped; + DropButton.FocusMode = isItemEquipped ? FocusModeEnum.None : FocusModeEnum.All; } else { @@ -309,14 +312,14 @@ public partial class InventoryMenu : Control, IInventoryMenu itemSlot.Item = item; ItemsPage.AddChildEx(itemSlot); - if (itemSlot.Item is EquipableItem equipable && equipable.IsEquipped) + if (Player.EquipmentComponent.IsItemEquipped(itemSlot.Item)) itemSlot.SetEquippedItemStyle(); } if (ItemSlots.Length != 0) { 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(); } } @@ -325,7 +328,7 @@ public partial class InventoryMenu : Control, IInventoryMenu { await ToSignal(GetTree().CreateTimer(0.1f), "timeout"); itemSlot.SetItemStyle(); - if (itemSlot.Item is EquipableItem equipable && equipable.IsEquipped) + if (Player.EquipmentComponent.IsItemEquipped(itemSlot.Item)) itemSlot.SetEquippedItemStyle(); } @@ -340,25 +343,25 @@ public partial class InventoryMenu : Control, IInventoryMenu private async Task EquipOrUnequipItem() { 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 = $"{itemSlot.Item.GetType()} unequipped."; - Player.EquipmentComponent.Unequip(equipableItem); - itemSlot.SetSelectedItemStyle(); - if (equipableItem.ItemTag == ItemTag.BreaksOnChange) - Player.Inventory.Remove(equipableItem); - } - else - { - ItemEffectLabel.Text = $"{itemSlot.Item.GetType()} equipped."; - Player.EquipmentComponent.Equip(equipableItem); - itemSlot.SetEquippedSelectedItemStyle(); - } - - RefreshUIAfterUserSelection(); + ItemEffectLabel.Text = $"{equippableItem.GetType().Name} unequipped."; + Player.EquipmentComponent.Unequip(equippableItem); + itemSlot.SetSelectedItemStyle(); + if (itemSlot.Item.ItemTag == ItemTag.BreaksOnChange) + Player.Inventory.Remove(equippableItem); } + else + { + ItemEffectLabel.Text = $"{equippableItem.GetType().Name} equipped."; + Player.EquipmentComponent.Equip(equippableItem); + itemSlot.SetEquippedSelectedItemStyle(); + } + + RefreshUIAfterUserSelection(); } private async void UseButtonPressed() diff --git a/Zennysoft.Game.Ma/src/ui/inventory_menu/ItemSlot.cs b/Zennysoft.Game.Ma/src/ui/inventory_menu/ItemSlot.cs index 014f3824..af98f2d3 100644 --- a/Zennysoft.Game.Ma/src/ui/inventory_menu/ItemSlot.cs +++ b/Zennysoft.Game.Ma/src/ui/inventory_menu/ItemSlot.cs @@ -61,14 +61,10 @@ public partial class ItemSlot : HBoxContainer, IItemSlot } public void SetSelectedItemStyle() { - if (Item is EquipableItem equipableItem && equipableItem.IsEquipped) - { + if (Player.EquipmentComponent.IsItemEquipped(Item)) ItemName.LabelSettings = SelectedEquippedItemFont; - } else - { ItemName.LabelSettings = SelectedItemFont; - } } public void SetEquippedItemStyle() { diff --git a/Zennysoft.Game.Ma/src/ui/pause_menu/PauseDebugMenu.cs b/Zennysoft.Game.Ma/src/ui/pause_menu/PauseDebugMenu.cs index 5f482ac0..b4f75f14 100644 --- a/Zennysoft.Game.Ma/src/ui/pause_menu/PauseDebugMenu.cs +++ b/Zennysoft.Game.Ma/src/ui/pause_menu/PauseDebugMenu.cs @@ -92,7 +92,7 @@ public partial class PauseDebugMenu : Control, IDebugMenu var enemyToSpawn = _spawnableEnemies.ElementAt((int)index); var loadedEnemy = GD.Load(enemyToSpawn).Instantiate(); 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) @@ -100,7 +100,7 @@ public partial class PauseDebugMenu : Control, IDebugMenu var itemToSpawn = _spawnableItems.ElementAt((int)index); var duplicated = itemToSpawn.Duplicate((int)DuplicateFlags.UseInstantiation) as Node3D; 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()