Compare commits

...

20 Commits

Author SHA1 Message Date
37ad0048d7 Small augment menu fix, fix hp regen rate 2026-02-17 10:20:54 -08:00
922d8fde59 Adjust altar scaling 2026-02-17 10:10:42 -08:00
d5e3f1b89b Fix dropped item texture issue 2026-02-17 01:21:53 -08:00
ac44803d71 the walk SFX stays pausable 2026-02-17 01:02:07 -08:00
02e6ee2f70 Test masks and finish implementing armor 2026-02-17 00:50:19 -08:00
0ec0ff2e23 Finish armor testing 2026-02-17 00:14:19 -08:00
1042b86d2b Fix really annoying bug on focus modes. i forgot what else i did but probably added armor 2026-02-16 23:56:16 -08:00
017be896f3 Weapons tested and general changes made to support the results of those tests 2026-02-16 16:44:36 -08:00
a2ceb8e650 Shrink clouds 2026-02-16 14:55:24 -08:00
366ed9f5e6 Beeg fixpack 2026-02-16 03:30:45 -08:00
f09d6ac8e8 Wave of item effects and implementation 2026-02-15 22:44:43 -08:00
5233da4225 Various cleanup 2026-02-15 20:35:05 -08:00
1a1e050dcc Update icons 2026-02-15 15:00:36 -08:00
Pal
7e56202e76 Merge branch 'main' of https://git.zenny.quest/zenayi/GameJamDungeon 2026-02-15 03:04:47 -08:00
Pal
fc04a93f58 Pixel Art Resizes Added + fix of 2 3D render icons 2026-02-15 03:04:42 -08:00
fa66ba24e2 Small inventory fixes 2026-02-15 02:58:10 -08:00
9c4c82af68 All items have an image 2026-02-15 02:56:26 -08:00
fe502debd1 Fix inventory sizes 2026-02-15 02:33:09 -08:00
33a58a2893 Fix box issue 2026-02-15 02:24:14 -08:00
69b25aacb9 Overhaul item and inventory and clean up bits and pieces 2026-02-15 01:19:27 -08:00
1004 changed files with 11589 additions and 9397 deletions

View File

@@ -5,21 +5,21 @@ using Zennysoft.Ma.Adapter.Entity;
namespace Zennysoft.Ma.Adapter; namespace Zennysoft.Ma.Adapter;
public interface IEquipmentComponent : IEntityComponent public interface IEquipmentComponent : IEntityComponent
{ {
public IAutoProp<EquipableItem> EquippedWeapon { get; } public IAutoProp<IWeapon> EquippedWeapon { get; }
public IAutoProp<EquipableItem> EquippedArmor { get; } public IAutoProp<IArmor> EquippedArmor { get; }
public IAutoProp<EquipableItem> EquippedAccessory { get; } public IAutoProp<IAccessory> EquippedAccessory { get; }
public IAutoProp<EquipableItem> EquippedAmmo { get; } public IAutoProp<IEquipableItem> EquippedAmmo { get; }
public void Equip(EquipableItem equipable); public void Equip(IEquipableItem equipable);
public void Unequip(EquipableItem equipable); public void Unequip(IEquipableItem equipable);
public bool IsItemEquipped(InventoryItem item); public bool IsItemEquipped(IEquipableItem item);
public void UpdateEquipment(EquipableItem equipable); public void UpdateEquipment(IEquipableItem equipable);
public bool AugmentableEquipmentExists(); public bool AugmentableEquipmentExists();
@@ -35,5 +35,5 @@ public interface IEquipmentComponent : IEntityComponent
public ElementalResistanceSet ElementalResistance { get; } public ElementalResistanceSet ElementalResistance { get; }
public event Action<EquipableItem> EquipmentChanged; public event Action<IEquipableItem> EquipmentChanged;
} }

View File

@@ -16,7 +16,13 @@ public interface IExperiencePointsComponent : IEntityComponent
public void Gain(int baseExpGain); public void Gain(int baseExpGain);
public void GainUnmodified(int flateRateExpGain);
public void LevelUp(); public void LevelUp();
public void LevelDown();
public event Action PlayerLevelUp; public event Action PlayerLevelUp;
public event Action PlayerLevelDown;
} }

View File

@@ -22,4 +22,6 @@ public interface IHealthComponent : IEntityComponent
public void SetMaximumHealth(int health); public void SetMaximumHealth(int health);
public void RaiseMaximumHP(int raiseAmount, bool restoreHP = false); public void RaiseMaximumHP(int raiseAmount, bool restoreHP = false);
public void LowerMaximumHP(int lowerAmount);
} }

View File

@@ -4,7 +4,11 @@ namespace Zennysoft.Ma.Adapter;
public interface ILuckComponent : IEntityComponent public interface ILuckComponent : IEntityComponent
{ {
public int InitialLuck { get; }
public IAutoProp<int> Luck { get; } public IAutoProp<int> Luck { get; }
public void IncreaseLuck(int value); public void IncreaseLuck(int value);
void DecreaseLuck(int value);
} }

View File

@@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://c7e5g8l6wuph"] [gd_scene load_steps=2 format=3]
[ext_resource type="Script" uid="uid://87d8kluait8y" path="res://src/enemy/behaviors/PatrolBehavior.cs" id="1_lobva"] [ext_resource type="Script" path="res://src/enemy/behaviors/PatrolBehavior.cs" id="1_lobva"]
[node name="NavigationAgent" type="NavigationAgent3D"] [node name="NavigationAgent" type="NavigationAgent3D"]
avoidance_enabled = true avoidance_enabled = true

View File

@@ -13,13 +13,6 @@ public class Augment
public IAugmentType AugmentType { get; set; } public IAugmentType AugmentType { get; set; }
} }
public interface IAugmentType
{
void Apply();
void Remove();
}
public class HPRecoverySpeedAugment : IAugmentType public class HPRecoverySpeedAugment : IAugmentType
{ {
private readonly IPlayer _player; private readonly IPlayer _player;

View File

@@ -1,28 +0,0 @@
using Chickensoft.Introspection;
using Chickensoft.Serialization;
using Zennysoft.Ma.Adapter.Entity;
namespace Zennysoft.Ma.Adapter;
[Meta, Id("equipable_item")]
public abstract partial class EquipableItem : InventoryItem
{
[Save("bonus_attack_stats")]
public virtual int BonusAttack { get; }
[Save("bonus_defense_stats")]
public virtual int BonusDefense { get; }
[Save("bonus_hp_stats")]
public virtual int BonusHP { get; }
[Save("bonus_vt_stats")]
public virtual int BonusVT { get; }
[Save("bonus_luck_stats")]
public virtual int BonusLuck { get; }
[Save("equipment_is_glued")]
public bool Glued { get; set; }
public virtual Augment? Augment { get; set; }
[Save("bonus_elemental_resist_stats")]
public virtual ElementalResistanceSet ElementalResistance { get; } = new ElementalResistanceSet(0, 0, 0, 0, 0, 0, 0);
}

View File

@@ -0,0 +1,6 @@
public interface IAugmentType
{
void Apply();
void Remove();
}

View File

@@ -1,26 +0,0 @@
using Chickensoft.Introspection;
using Chickensoft.Serialization;
using Godot;
namespace Zennysoft.Ma.Adapter;
[Meta, Id("inventory_item")]
public abstract partial class InventoryItem : Node3D
{
[Save("inventory_item_id")]
public Guid ID => Guid.NewGuid();
[Save("inventory_item_name")]
public abstract string ItemName { get; }
[Save("inventory_item_description")]
public abstract string Description { get; }
[Save("inventory_item_spawn_rate")]
public abstract float SpawnRate { get; }
[Save("inventory_item_throw_damage")]
public abstract int ThrowDamage { get; }
[Save("inventory_item_throw_speed")]
public abstract float ThrowSpeed { get; }
[Save("inventory_item_tag")]
public abstract ItemTag ItemTag { get; }
public abstract Texture2D GetTexture();
}

View File

@@ -4,5 +4,6 @@ public enum AccessoryTag
{ {
None, None,
HalfVTConsumption, HalfVTConsumption,
StatusEffectImmunity StatusEffectImmunity,
BoostEXPGainRate
} }

View File

@@ -0,0 +1,7 @@
namespace Zennysoft.Ma.Adapter;
public enum ArmorTag
{
None,
DegradeOnHit
}

View File

@@ -20,5 +20,6 @@ public enum ItemTag
RestrictUnequip, RestrictUnequip,
UnequipAllItems, UnequipAllItems,
EjectAllItems, EjectAllItems,
UseAllItems UseAllItems,
GlueOnEquip,
} }

View File

@@ -14,11 +14,23 @@ public enum UsableItemTag
DealElementalDamageToAllEnemiesInRoom, DealElementalDamageToAllEnemiesInRoom,
RaiseCurrentWeaponAttack, RaiseCurrentWeaponAttack,
RaiseCurrentDefenseArmor, RaiseCurrentDefenseArmor,
LowerCurrentDefenseArmor,
RaiseLevel, RaiseLevel,
LowerLevel,
RandomEffect, RandomEffect,
DoubleExp, DoubleExp,
LowerTargetTo1HP, LowerTargetTo1HP,
CanChangeAffinity, CanChangeAffinity,
TeleportToRandomLocation, TeleportToRandomLocation,
WarpToExitIfFound WarpToExitIfFound,
IncreaseDefense,
IncreaseLuck,
IncreaseAttack,
DecreaseDefense,
DecreaseLuck,
DecreaseAttack,
DecreaseAllStats,
Clone,
MeltAllEquipment,
RestoreStats
} }

View File

@@ -15,4 +15,4 @@ public enum WeaponTag
TripleAttack, TripleAttack,
ElementalProjectile, ElementalProjectile,
KineticProjectile KineticProjectile
} }

View File

@@ -16,11 +16,7 @@ public interface IGameRepo : IDisposable
event Action<string>? AnnounceMessageInInventoryEvent; event Action<string>? AnnounceMessageInInventoryEvent;
event Action<int>? DoubleExpTimeStart; event Action<IBaseInventoryItem>? RemoveItemFromInventoryEvent;
event Action? DoubleExpTimeEnd;
event Action<InventoryItem>? RemoveItemFromInventoryEvent;
event Action? PlayerAttack; event Action? PlayerAttack;
@@ -28,9 +24,9 @@ public interface IGameRepo : IDisposable
event Action? PlayerAttackedEnemy; event Action? PlayerAttackedEnemy;
event Action<EquipableItem>? EquippedItem; event Action<IEquipableItem>? EquippedItem;
event Action<EquipableItem>? UnequippedItem; event Action<IEquipableItem>? UnequippedItem;
event Action<IEnemy>? EnemyDied; event Action<IEnemy>? EnemyDied;
@@ -40,15 +36,11 @@ public interface IGameRepo : IDisposable
IAutoProp<bool> IsPaused { get; } IAutoProp<bool> IsPaused { get; }
public void StartDoubleEXP(TimeSpan lengthOfEffect);
public void EndDoubleExp();
public void AnnounceMessageOnMainScreen(string message); public void AnnounceMessageOnMainScreen(string message);
public void AnnounceMessageInInventory(string message); public void AnnounceMessageInInventory(string message);
public void RemoveItemFromInventory(InventoryItem item); public void RemoveItemFromInventory(IBaseInventoryItem item);
public void OnPlayerAttack(); public void OnPlayerAttack();
@@ -58,13 +50,11 @@ public interface IGameRepo : IDisposable
public void GameEnded(); public void GameEnded();
public void OnEquippedItem(EquipableItem item); public void OnEquippedItem(IEquipableItem item);
public void OnUnequippedItem(EquipableItem item); public void OnUnequippedItem(IEquipableItem item);
public void OnEnemyDied(IEnemy enemy); public void OnEnemyDied(IEnemy enemy);
public double ExpRate { get; }
} }
public class GameRepo : IGameRepo public class GameRepo : IGameRepo
@@ -73,26 +63,21 @@ public class GameRepo : IGameRepo
public event Action? CloseInventoryEvent; public event Action? CloseInventoryEvent;
public event Action<string>? AnnounceMessageOnMainScreenEvent; public event Action<string>? AnnounceMessageOnMainScreenEvent;
public event Action<string>? AnnounceMessageInInventoryEvent; public event Action<string>? AnnounceMessageInInventoryEvent;
public event Action<int>? DoubleExpTimeStart; public event Action<IBaseInventoryItem>? RemoveItemFromInventoryEvent;
public event Action? DoubleExpTimeEnd;
public event Action<InventoryItem>? RemoveItemFromInventoryEvent;
public event Action? PlayerAttack; public event Action? PlayerAttack;
public event Action? PlayerAttackedWall; public event Action? PlayerAttackedWall;
public event Action? PlayerAttackedEnemy; public event Action? PlayerAttackedEnemy;
public event Action<EquipableItem>? EquippedItem; public event Action<IEquipableItem>? EquippedItem;
public event Action<EquipableItem>? UnequippedItem; public event Action<IEquipableItem>? UnequippedItem;
public event Action<IEnemy>? EnemyDied; public event Action<IEnemy>? EnemyDied;
public IAutoProp<bool> IsPaused => _isPaused; public IAutoProp<bool> IsPaused => _isPaused;
private readonly AutoProp<bool> _isPaused; private readonly AutoProp<bool> _isPaused;
public double ExpRate { get; private set; }
private bool _disposedValue; private bool _disposedValue;
public GameRepo() public GameRepo()
{ {
_isPaused = new AutoProp<bool>(true); _isPaused = new AutoProp<bool>(true);
ExpRate = 1;
} }
public void Pause() public void Pause()
@@ -107,20 +92,6 @@ public class GameRepo : IGameRepo
GD.Print("Resume"); GD.Print("Resume");
} }
public void StartDoubleEXP(TimeSpan lengthOfEffect)
{
AnnounceMessageInInventory("Experience points temporarily doubled.");
DoubleExpTimeStart?.Invoke(lengthOfEffect.Seconds);
ExpRate *= 2;
}
public void EndDoubleExp()
{
AnnounceMessageOnMainScreen("Experience points effect wore off.");
DoubleExpTimeEnd?.Invoke();
ExpRate /= 2;
}
public void AnnounceMessageOnMainScreen(string message) public void AnnounceMessageOnMainScreen(string message)
{ {
AnnounceMessageOnMainScreenEvent?.Invoke(message); AnnounceMessageOnMainScreenEvent?.Invoke(message);
@@ -131,7 +102,7 @@ public class GameRepo : IGameRepo
AnnounceMessageInInventoryEvent?.Invoke(message); AnnounceMessageInInventoryEvent?.Invoke(message);
} }
public void RemoveItemFromInventory(InventoryItem item) public void RemoveItemFromInventory(IBaseInventoryItem item)
{ {
RemoveItemFromInventoryEvent?.Invoke(item); RemoveItemFromInventoryEvent?.Invoke(item);
} }
@@ -151,9 +122,9 @@ public class GameRepo : IGameRepo
CloseInventoryEvent?.Invoke(); CloseInventoryEvent?.Invoke();
} }
public void OnEquippedItem(EquipableItem item) => EquippedItem?.Invoke(item); public void OnEquippedItem(IEquipableItem item) => EquippedItem?.Invoke(item);
public void OnUnequippedItem(EquipableItem item) => UnequippedItem?.Invoke(item); public void OnUnequippedItem(IEquipableItem item) => UnequippedItem?.Invoke(item);
public void OnEnemyDied(IEnemy enemy) => EnemyDied?.Invoke(enemy); public void OnEnemyDied(IEnemy enemy) => EnemyDied?.Invoke(enemy);

View File

@@ -0,0 +1,5 @@
using Zennysoft.Ma.Adapter;
public interface IAccessory : IEquipableItem, IAugmentableItem
{
}

View File

@@ -0,0 +1,10 @@
using Zennysoft.Ma.Adapter;
public interface IArmor : IEquipableItem, IAugmentableItem
{
public void IncreaseArmorDefense(int bonus);
public void DecreaseArmorDefense(int lowerAmount);
public ArmorTag ArmorTag { get; }
}

View File

@@ -1,7 +1,5 @@
namespace Zennysoft.Ma.Adapter public interface IAugmentItem : IBaseInventoryItem
{ {
public interface IAugmentItem
{ public IAugmentType Augment { get; }
public JewelTags Augment { get; }
}
} }

View File

@@ -0,0 +1,7 @@
namespace Zennysoft.Ma.Adapter
{
public interface IAugmentableItem
{
public Augment? Augment { get; }
}
}

View File

@@ -0,0 +1,15 @@
using Godot;
using Zennysoft.Ma.Adapter;
public interface IBaseInventoryItem
{
public string ItemName { get; }
public string Description { get; }
public float SpawnRate { get; }
public int ThrowDamage { get; }
public float ThrowSpeed { get; }
public ItemTag ItemTag { get; }
public abstract Texture2D GetTexture();
}

View File

@@ -4,6 +4,6 @@
{ {
void RescueItem(); void RescueItem();
public InventoryItem Item { get; } public IBaseInventoryItem Item { get; }
} }
} }

View File

@@ -0,0 +1,14 @@
using Zennysoft.Ma.Adapter.Entity;
public interface IEquipableItem : IBaseInventoryItem
{
public int BonusAttack { get; }
public int BonusDefense { get; }
public int BonusHP { get; }
public int BonusVT { get; }
public int BonusLuck { get; }
public bool Glued { get; set; }
public ElementalResistanceSet ElementalResistance { get; }
}

View File

@@ -2,17 +2,17 @@
public interface IInventory public interface IInventory
{ {
public bool PickUpItem(InventoryItem item); public bool PickUpItem(IBaseInventoryItem item);
public List<InventoryItem> Items { get; } public List<IBaseInventoryItem> Items { get; }
public bool TryAdd(InventoryItem inventoryItem); public bool TryAdd(IBaseInventoryItem inventoryItem);
public bool TryInsert(InventoryItem inventoryItem, int index); public bool TryInsert(IBaseInventoryItem inventoryItem, int index);
public void Remove(InventoryItem inventoryItem); public void Remove(IBaseInventoryItem inventoryItem);
public bool Sort(EquipableItem currentWeapon, EquipableItem currentArmor, EquipableItem currentAccessory, EquipableItem ammo); public bool Sort(IWeapon currentWeapon, IArmor currentArmor, IAccessory currentAccessory, IEquipableItem ammo);
public bool AtCapacity(); public bool AtCapacity();

View File

@@ -2,5 +2,5 @@
public interface IThrownItem public interface IThrownItem
{ {
public InventoryItem ItemThatIsThrown { get; set; } public IBaseInventoryItem ItemThatIsThrown { get; set; }
} }

View File

@@ -0,0 +1,5 @@
using Zennysoft.Ma.Adapter;
public interface IWeapon : IEquipableItem, IAugmentableItem
{
}

View File

@@ -7,10 +7,10 @@ namespace Zennysoft.Ma.Adapter;
public partial class RescuedItemDatabase public partial class RescuedItemDatabase
{ {
[Save("rescued_item_list")] [Save("rescued_item_list")]
public List<InventoryItem> Items { get; init; } public List<IBaseInventoryItem> Items { get; init; }
public RescuedItemDatabase() public RescuedItemDatabase()
{ {
Items = new List<InventoryItem>(); Items = new List<IBaseInventoryItem>();
} }
} }

View File

@@ -11,7 +11,5 @@ public interface IDungeonFloor : INode3D
public ImmutableList<IDungeonRoom> Rooms { get; } public ImmutableList<IDungeonRoom> Rooms { get; }
public void FadeOutAudio();
public bool FloorIsLoaded { get; set; } public bool FloorIsLoaded { get; set; }
} }

View File

@@ -20,15 +20,15 @@ public interface IPlayer : IKillable, ICharacterBody3D
public void TeleportPlayer((Vector3 Rotation, Vector3 Position) newTransform); public void TeleportPlayer((Vector3 Rotation, Vector3 Position) newTransform);
public void Equip(EquipableItem equipable); public void Equip(IEquipableItem equipable);
public void Unequip(EquipableItem equipable); public void Unequip(IEquipableItem equipable);
public void PlayJumpScareAnimation(); public void PlayJumpScareAnimation();
public void ApplyNewAugment(IAugmentItem jewel, EquipableItem equipableItem); public void ApplyNewAugment(IAugmentItem jewel, IAugmentableItem equipableItem);
public void IdentifyItem(InventoryItem unidentifiedItem); public void IdentifyItem(IBaseInventoryItem unidentifiedItem);
public IInventory Inventory { get; } public IInventory Inventory { get; }
@@ -63,5 +63,5 @@ public interface IPlayer : IKillable, ICharacterBody3D
public bool AutoIdentifyItems { get; set; } public bool AutoIdentifyItems { get; set; }
public event Action PlayerDied; public event Action PlayerDied;
public delegate InventoryItem RerollItem(InventoryItem item); public delegate IBaseInventoryItem RerollItem(IBaseInventoryItem item);
} }

View File

@@ -38,7 +38,7 @@ public partial class InGameUILogic
Output(new Output.AnnounceMessageInInventory(message)); Output(new Output.AnnounceMessageInInventory(message));
} }
private void OnRemoveItemFromInventory(InventoryItem item) => Output(new Output.RemoveItemFromInventory(item)); private void OnRemoveItemFromInventory(IBaseInventoryItem item) => Output(new Output.RemoveItemFromInventory(item));
} }
} }

View File

@@ -8,7 +8,7 @@ public partial class InGameUILogic
{ {
public readonly record struct AnnounceMessageOnMainScreen(string Message); public readonly record struct AnnounceMessageOnMainScreen(string Message);
public readonly record struct AnnounceMessageInInventory(string Message); public readonly record struct AnnounceMessageInInventory(string Message);
public readonly record struct RemoveItemFromInventory(InventoryItem Item); public readonly record struct RemoveItemFromInventory(IBaseInventoryItem Item);
public readonly record struct ShowInventory; public readonly record struct ShowInventory;
public readonly record struct HideInventory; public readonly record struct HideInventory;
} }

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=4 format=3 uid="uid://civ6shmka5e8u"] [gd_scene load_steps=4 format=3 uid="uid://ekf8y405ewyq"]
[ext_resource type="Script" uid="uid://klpiq4tk3t7a" path="res://addons/dialogue_manager/components/code_edit_syntax_highlighter.gd" id="1_58cfo"] [ext_resource type="Script" uid="uid://klpiq4tk3t7a" path="res://addons/dialogue_manager/components/code_edit_syntax_highlighter.gd" id="1_58cfo"]
[ext_resource type="Script" uid="uid://djeybvlb332mp" path="res://addons/dialogue_manager/components/code_edit.gd" id="1_g324i"] [ext_resource type="Script" uid="uid://djeybvlb332mp" path="res://addons/dialogue_manager/components/code_edit.gd" id="1_g324i"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=3 format=3 uid="uid://qdxrxv3c3hxk"] [gd_scene load_steps=3 format=3 uid="uid://cstps104wl17j"]
[ext_resource type="Script" uid="uid://kpwo418lb2t2" path="res://addons/dialogue_manager/components/download_update_panel.gd" id="1_4tm1k"] [ext_resource type="Script" uid="uid://kpwo418lb2t2" path="res://addons/dialogue_manager/components/download_update_panel.gd" id="1_4tm1k"]
[ext_resource type="Texture2D" uid="uid://d3baj6rygkb3f" path="res://addons/dialogue_manager/assets/update.svg" id="2_4o2m6"] [ext_resource type="Texture2D" uid="uid://d3baj6rygkb3f" path="res://addons/dialogue_manager/assets/update.svg" id="2_4o2m6"]

View File

@@ -1,8 +1,8 @@
[gd_scene load_steps=4 format=3 uid="uid://ycn6uaj7dsrh"] [gd_scene load_steps=4 format=3 uid="uid://bsal283gclopj"]
[ext_resource type="Script" uid="uid://dooe2pflnqtve" path="res://addons/dialogue_manager/components/editor_property/editor_property_control.gd" id="1_het12"] [ext_resource type="Script" uid="uid://dooe2pflnqtve" path="res://addons/dialogue_manager/components/editor_property/editor_property_control.gd" id="1_het12"]
[ext_resource type="PackedScene" uid="uid://b16uuqjuof3n5" path="res://addons/dialogue_manager/components/editor_property/resource_button.tscn" id="2_hh3d4"] [ext_resource type="PackedScene" path="res://addons/dialogue_manager/components/editor_property/resource_button.tscn" id="2_hh3d4"]
[ext_resource type="PackedScene" uid="uid://dnufpcdrreva3" path="res://addons/dialogue_manager/components/files_list.tscn" id="3_l8fp6"] [ext_resource type="PackedScene" path="res://addons/dialogue_manager/components/files_list.tscn" id="3_l8fp6"]
[node name="PropertyEditorButton" type="HBoxContainer"] [node name="PropertyEditorButton" type="HBoxContainer"]
offset_right = 40.0 offset_right = 40.0

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=2 format=3 uid="uid://b16uuqjuof3n5"] [gd_scene load_steps=2 format=3 uid="uid://bylecer7aexlb"]
[ext_resource type="Script" uid="uid://damhqta55t67c" path="res://addons/dialogue_manager/components/editor_property/resource_button.gd" id="1_7u2i7"] [ext_resource type="Script" uid="uid://damhqta55t67c" path="res://addons/dialogue_manager/components/editor_property/resource_button.gd" id="1_7u2i7"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=4 format=3 uid="uid://cs8pwrxr5vxix"] [gd_scene load_steps=4 format=3 uid="uid://c3pniua1enw8v"]
[ext_resource type="Script" uid="uid://d2l8nlb6hhrfp" path="res://addons/dialogue_manager/components/errors_panel.gd" id="1_nfm3c"] [ext_resource type="Script" uid="uid://d2l8nlb6hhrfp" path="res://addons/dialogue_manager/components/errors_panel.gd" id="1_nfm3c"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=3 format=3 uid="uid://dnufpcdrreva3"] [gd_scene load_steps=3 format=3 uid="uid://b21h8gsbo60xg"]
[ext_resource type="Script" uid="uid://dqa4a4wwoo0aa" path="res://addons/dialogue_manager/components/files_list.gd" id="1_cytii"] [ext_resource type="Script" uid="uid://dqa4a4wwoo0aa" path="res://addons/dialogue_manager/components/files_list.gd" id="1_cytii"]
[ext_resource type="Texture2D" uid="uid://d3lr2uas6ax8v" path="res://addons/dialogue_manager/assets/icon.svg" id="2_3ijx1"] [ext_resource type="Texture2D" uid="uid://d3lr2uas6ax8v" path="res://addons/dialogue_manager/assets/icon.svg" id="2_3ijx1"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=3 format=3 uid="uid://0n7hwviyyly4"] [gd_scene load_steps=3 format=3 uid="uid://c5to0aeerreb4"]
[ext_resource type="Script" uid="uid://q368fmxxa8sd" path="res://addons/dialogue_manager/components/find_in_files.gd" id="1_3xicy"] [ext_resource type="Script" uid="uid://q368fmxxa8sd" path="res://addons/dialogue_manager/components/find_in_files.gd" id="1_3xicy"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=2 format=3 uid="uid://gr8nakpbrhby"] [gd_scene load_steps=2 format=3 uid="uid://xnv1ojlgiss3"]
[ext_resource type="Script" uid="uid://cijsmjkq21cdq" path="res://addons/dialogue_manager/components/search_and_replace.gd" id="1_8oj1f"] [ext_resource type="Script" uid="uid://cijsmjkq21cdq" path="res://addons/dialogue_manager/components/search_and_replace.gd" id="1_8oj1f"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=2 format=3 uid="uid://ctns6ouwwd68i"] [gd_scene load_steps=2 format=3 uid="uid://b7v2agbddgaoi"]
[ext_resource type="Script" uid="uid://d0k2wndjj0ifm" path="res://addons/dialogue_manager/components/title_list.gd" id="1_5qqmd"] [ext_resource type="Script" uid="uid://d0k2wndjj0ifm" path="res://addons/dialogue_manager/components/title_list.gd" id="1_5qqmd"]

View File

@@ -1,7 +1,7 @@
[gd_scene load_steps=3 format=3 uid="uid://co8yl23idiwbi"] [gd_scene load_steps=3 format=3 uid="uid://c1dliyrsif5jj"]
[ext_resource type="Script" uid="uid://cr1tt12dh5ecr" path="res://addons/dialogue_manager/components/update_button.gd" id="1_d2tpb"] [ext_resource type="Script" uid="uid://cr1tt12dh5ecr" path="res://addons/dialogue_manager/components/update_button.gd" id="1_d2tpb"]
[ext_resource type="PackedScene" uid="uid://qdxrxv3c3hxk" path="res://addons/dialogue_manager/components/download_update_panel.tscn" id="2_iwm7r"] [ext_resource type="PackedScene" uid="uid://cstps104wl17j" path="res://addons/dialogue_manager/components/download_update_panel.tscn" id="2_iwm7r"]
[node name="UpdateButton" type="Button"] [node name="UpdateButton" type="Button"]
visible = false visible = false

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=2 format=3 uid="uid://ckvgyvclnwggo"] [gd_scene load_steps=2 format=3 uid="uid://b0sflwm2j27gu"]
[ext_resource type="Script" uid="uid://g32um0mltv5d" path="res://addons/dialogue_manager/dialogue_label.gd" id="1_cital"] [ext_resource type="Script" uid="uid://g32um0mltv5d" path="res://addons/dialogue_manager/dialogue_label.gd" id="1_cital"]

View File

@@ -1,7 +1,7 @@
[gd_scene load_steps=9 format=3 uid="uid://73jm5qjy52vq"] [gd_scene load_steps=9 format=3 uid="uid://bs44fggx87t73"]
[ext_resource type="Script" uid="uid://5b3w40kwakl3" path="res://addons/dialogue_manager/example_balloon/ExampleBalloon.cs" id="1_36de5"] [ext_resource type="Script" uid="uid://5b3w40kwakl3" path="res://addons/dialogue_manager/example_balloon/ExampleBalloon.cs" id="1_36de5"]
[ext_resource type="PackedScene" uid="uid://ckvgyvclnwggo" path="res://addons/dialogue_manager/dialogue_label.tscn" id="2_a8ve6"] [ext_resource type="PackedScene" path="res://addons/dialogue_manager/dialogue_label.tscn" id="2_a8ve6"]
[ext_resource type="Script" uid="uid://bb52rsfwhkxbn" path="res://addons/dialogue_manager/dialogue_responses_menu.gd" id="3_72ixx"] [ext_resource type="Script" uid="uid://bb52rsfwhkxbn" path="res://addons/dialogue_manager/dialogue_responses_menu.gd" id="3_72ixx"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_spyqn"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_spyqn"]

View File

@@ -1,7 +1,7 @@
[gd_scene load_steps=10 format=3 uid="uid://13s5spsk34qu"] [gd_scene load_steps=10 format=3 uid="uid://c4tqvq4mjcfv2"]
[ext_resource type="Script" uid="uid://5b3w40kwakl3" path="res://addons/dialogue_manager/example_balloon/ExampleBalloon.cs" id="1_s2gbs"] [ext_resource type="Script" uid="uid://5b3w40kwakl3" path="res://addons/dialogue_manager/example_balloon/ExampleBalloon.cs" id="1_s2gbs"]
[ext_resource type="PackedScene" uid="uid://ckvgyvclnwggo" path="res://addons/dialogue_manager/dialogue_label.tscn" id="2_hfvdi"] [ext_resource type="PackedScene" path="res://addons/dialogue_manager/dialogue_label.tscn" id="2_hfvdi"]
[ext_resource type="Script" uid="uid://bb52rsfwhkxbn" path="res://addons/dialogue_manager/dialogue_responses_menu.gd" id="3_1j1j0"] [ext_resource type="Script" uid="uid://bb52rsfwhkxbn" path="res://addons/dialogue_manager/dialogue_responses_menu.gd" id="3_1j1j0"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_235ry"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_235ry"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=2 format=3 uid="uid://ugd552efvil0"] [gd_scene load_steps=2 format=3 uid="uid://c3ty75yb1un26"]
[ext_resource type="Script" uid="uid://c8e16qdgu40wo" path="res://addons/dialogue_manager/test_scene.gd" id="1_yupoh"] [ext_resource type="Script" uid="uid://c8e16qdgu40wo" path="res://addons/dialogue_manager/test_scene.gd" id="1_yupoh"]

View File

@@ -1,15 +1,15 @@
[gd_scene load_steps=16 format=3 uid="uid://cbuf1q3xsse3q"] [gd_scene load_steps=16 format=3 uid="uid://b2lot8kdw2snd"]
[ext_resource type="Script" uid="uid://cipjcc7bkh1pc" path="res://addons/dialogue_manager/views/main_view.gd" id="1_h6qfq"] [ext_resource type="Script" uid="uid://cipjcc7bkh1pc" path="res://addons/dialogue_manager/views/main_view.gd" id="1_h6qfq"]
[ext_resource type="PackedScene" uid="uid://civ6shmka5e8u" path="res://addons/dialogue_manager/components/code_edit.tscn" id="2_f73fm"] [ext_resource type="PackedScene" uid="uid://ekf8y405ewyq" path="res://addons/dialogue_manager/components/code_edit.tscn" id="2_f73fm"]
[ext_resource type="PackedScene" uid="uid://dnufpcdrreva3" path="res://addons/dialogue_manager/components/files_list.tscn" id="2_npj2k"] [ext_resource type="PackedScene" uid="uid://b21h8gsbo60xg" path="res://addons/dialogue_manager/components/files_list.tscn" id="2_npj2k"]
[ext_resource type="PackedScene" uid="uid://ctns6ouwwd68i" path="res://addons/dialogue_manager/components/title_list.tscn" id="2_onb4i"] [ext_resource type="PackedScene" uid="uid://b7v2agbddgaoi" path="res://addons/dialogue_manager/components/title_list.tscn" id="2_onb4i"]
[ext_resource type="PackedScene" uid="uid://co8yl23idiwbi" path="res://addons/dialogue_manager/components/update_button.tscn" id="2_ph3vs"] [ext_resource type="PackedScene" uid="uid://c1dliyrsif5jj" path="res://addons/dialogue_manager/components/update_button.tscn" id="2_ph3vs"]
[ext_resource type="PackedScene" uid="uid://gr8nakpbrhby" path="res://addons/dialogue_manager/components/search_and_replace.tscn" id="6_ylh0t"] [ext_resource type="PackedScene" uid="uid://xnv1ojlgiss3" path="res://addons/dialogue_manager/components/search_and_replace.tscn" id="6_ylh0t"]
[ext_resource type="PackedScene" uid="uid://cs8pwrxr5vxix" path="res://addons/dialogue_manager/components/errors_panel.tscn" id="7_5cvl4"] [ext_resource type="PackedScene" uid="uid://c3pniua1enw8v" path="res://addons/dialogue_manager/components/errors_panel.tscn" id="7_5cvl4"]
[ext_resource type="Script" uid="uid://klpiq4tk3t7a" path="res://addons/dialogue_manager/components/code_edit_syntax_highlighter.gd" id="7_necsa"] [ext_resource type="Script" uid="uid://klpiq4tk3t7a" path="res://addons/dialogue_manager/components/code_edit_syntax_highlighter.gd" id="7_necsa"]
[ext_resource type="Texture2D" uid="uid://cnm67htuohhlo" path="res://addons/dialogue_manager/assets/banner.png" id="9_y6rqu"] [ext_resource type="Texture2D" uid="uid://cnm67htuohhlo" path="res://addons/dialogue_manager/assets/banner.png" id="9_y6rqu"]
[ext_resource type="PackedScene" uid="uid://0n7hwviyyly4" path="res://addons/dialogue_manager/components/find_in_files.tscn" id="10_yold3"] [ext_resource type="PackedScene" uid="uid://c5to0aeerreb4" path="res://addons/dialogue_manager/components/find_in_files.tscn" id="10_yold3"]
[sub_resource type="Image" id="Image_y6rqu"] [sub_resource type="Image" id="Image_y6rqu"]
data = { data = {

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=3 format=3 uid="uid://b7mst0qu7vjk1"] [gd_scene load_steps=3 format=3 uid="uid://bf5kpeg711bo8"]
[ext_resource type="Script" uid="uid://dcff0mowkn6km" path="res://addons/input_helper/components/download_update_panel.gd" id="1_4tm1k"] [ext_resource type="Script" uid="uid://dcff0mowkn6km" path="res://addons/input_helper/components/download_update_panel.gd" id="1_4tm1k"]
[ext_resource type="Texture2D" uid="uid://ddixs2ish5bi6" path="res://addons/input_helper/assets/update.svg" id="2_j7shv"] [ext_resource type="Texture2D" uid="uid://ddixs2ish5bi6" path="res://addons/input_helper/assets/update.svg" id="2_j7shv"]

View File

@@ -1,6 +1,6 @@
[gd_scene load_steps=3 format=3 uid="uid://bownbkcmm43gn"] [gd_scene load_steps=3 format=3 uid="uid://bsi3bm7ig32p"]
[ext_resource type="PackedScene" uid="uid://b7mst0qu7vjk1" path="res://addons/input_helper/components/download_update_panel.tscn" id="1_37q37"] [ext_resource type="PackedScene" uid="uid://bf5kpeg711bo8" path="res://addons/input_helper/components/download_update_panel.tscn" id="1_37q37"]
[ext_resource type="Script" uid="uid://1t3qhgrro2es" path="res://addons/input_helper/views/download_dialog.gd" id="1_ltktf"] [ext_resource type="Script" uid="uid://1t3qhgrro2es" path="res://addons/input_helper/views/download_dialog.gd" id="1_ltktf"]
[node name="DownloadDialog" type="AcceptDialog"] [node name="DownloadDialog" type="AcceptDialog"]

View File

@@ -1,9 +1,12 @@
[gd_resource type="AudioBusLayout" load_steps=4 format=3 uid="uid://c2mk6c27y0mdf"] [gd_resource type="AudioBusLayout" load_steps=5 format=3 uid="uid://c2mk6c27y0mdf"]
[sub_resource type="AudioEffectLimiter" id="AudioEffectLimiter_j3pel"] [sub_resource type="AudioEffectLimiter" id="AudioEffectLimiter_j3pel"]
resource_name = "Limiter" resource_name = "Limiter"
soft_clip_db = 1.0 soft_clip_db = 1.0
[sub_resource type="AudioEffectHardLimiter" id="AudioEffectHardLimiter_j3pel"]
resource_name = "HardLimiter"
[sub_resource type="AudioEffectReverb" id="AudioEffectReverb_j3pel"] [sub_resource type="AudioEffectReverb" id="AudioEffectReverb_j3pel"]
resource_name = "Reverb" resource_name = "Reverb"
room_size = 0.5 room_size = 0.5
@@ -20,7 +23,9 @@ soft_clip_db = 1.5
[resource] [resource]
bus/0/volume_db = -0.130497 bus/0/volume_db = -0.130497
bus/0/effect/0/effect = SubResource("AudioEffectLimiter_j3pel") bus/0/effect/0/effect = SubResource("AudioEffectLimiter_j3pel")
bus/0/effect/0/enabled = true bus/0/effect/0/enabled = false
bus/0/effect/1/effect = SubResource("AudioEffectHardLimiter_j3pel")
bus/0/effect/1/enabled = true
bus/1/name = &"AMBIENT" bus/1/name = &"AMBIENT"
bus/1/solo = false bus/1/solo = false
bus/1/mute = false bus/1/mute = false

View File

@@ -9,7 +9,7 @@ custom_features=""
export_filter="all_resources" export_filter="all_resources"
include_filter="" include_filter=""
exclude_filter="" exclude_filter=""
export_path="Export/Ma.exe" export_path="../../Export/Export.exe"
patches=PackedStringArray() patches=PackedStringArray()
encryption_include_filters="" encryption_include_filters=""
encryption_exclude_filters="" encryption_exclude_filters=""

View File

@@ -8,6 +8,10 @@
config_version=5 config_version=5
[animation]
warnings/check_invalid_track_paths=false
[application] [application]
config/name="Ma" config/name="Ma"

View File

@@ -1,4 +1,5 @@
using Chickensoft.Collections; using Chickensoft.Collections;
using Godot;
using System; using System;
using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter;
@@ -49,7 +50,7 @@ public class AttackComponent : IAttackComponent
public void RaiseMaximumAttack(int raiseAmount) public void RaiseMaximumAttack(int raiseAmount)
{ {
_maximumAttack.OnNext(raiseAmount); _maximumAttack.OnNext(_maximumAttack.Value + raiseAmount);
Restore(raiseAmount); Restore(raiseAmount);
} }
} }

View File

@@ -1,4 +1,5 @@
using Chickensoft.Collections; using Chickensoft.Collections;
using Godot;
using System; using System;
using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter;
@@ -49,7 +50,7 @@ public class DefenseComponent : IDefenseComponent
public void RaiseMaximumDefense(int raiseAmount) public void RaiseMaximumDefense(int raiseAmount)
{ {
_maximumDefense.OnNext(raiseAmount); _maximumDefense.OnNext(_maximumDefense.Value + raiseAmount);
Restore(raiseAmount); Restore(raiseAmount);
} }
} }

View File

@@ -6,23 +6,23 @@ using Zennysoft.Ma.Adapter.Entity;
namespace Zennysoft.Game.Ma; namespace Zennysoft.Game.Ma;
public class EquipmentComponent : IEquipmentComponent public class EquipmentComponent : IEquipmentComponent
{ {
public IAutoProp<EquipableItem> EquippedWeapon => _equippedWeapon; public IAutoProp<IWeapon> EquippedWeapon => _equippedWeapon;
public IAutoProp<EquipableItem> EquippedArmor => _equippedArmor; public IAutoProp<IArmor> EquippedArmor => _equippedArmor;
public IAutoProp<EquipableItem> EquippedAccessory => _equippedAccessory; public IAutoProp<IAccessory> EquippedAccessory => _equippedAccessory;
public IAutoProp<EquipableItem> EquippedAmmo => _equippedAmmo; public IAutoProp<IEquipableItem> EquippedAmmo => _equippedAmmo;
public AutoProp<EquipableItem> _equippedWeapon; public AutoProp<IWeapon> _equippedWeapon;
public AutoProp<EquipableItem> _equippedArmor; public AutoProp<IArmor> _equippedArmor;
public AutoProp<EquipableItem> _equippedAccessory; public AutoProp<IAccessory> _equippedAccessory;
public AutoProp<EquipableItem> _equippedAmmo; public AutoProp<IEquipableItem> _equippedAmmo;
public event Action<EquipableItem> EquipmentChanged; public event Action<IEquipableItem> EquipmentChanged;
public int BonusAttack => _equippedWeapon.Value.BonusAttack + _equippedArmor.Value.BonusAttack + _equippedAccessory.Value.BonusAttack; public int BonusAttack => _equippedWeapon.Value.BonusAttack + _equippedArmor.Value.BonusAttack + _equippedAccessory.Value.BonusAttack;
@@ -38,10 +38,10 @@ public class EquipmentComponent : IEquipmentComponent
public EquipmentComponent() public EquipmentComponent()
{ {
_equippedWeapon = new AutoProp<EquipableItem>(new Weapon()); _equippedWeapon = new AutoProp<IWeapon>(new Weapon());
_equippedArmor = new AutoProp<EquipableItem>(new Armor()); _equippedArmor = new AutoProp<IArmor>(new Armor());
_equippedAccessory = new AutoProp<EquipableItem>(new Accessory()); _equippedAccessory = new AutoProp<IAccessory>(new Accessory());
_equippedAmmo = new AutoProp<EquipableItem>(new Ammo()); _equippedAmmo = new AutoProp<IEquipableItem>(new Ammo());
} }
public void Reset() public void Reset()
@@ -52,7 +52,7 @@ public class EquipmentComponent : IEquipmentComponent
_equippedAmmo.OnNext(new Ammo()); _equippedAmmo.OnNext(new Ammo());
} }
public void Equip(EquipableItem equipable) public void Equip(IEquipableItem equipable)
{ {
if (equipable is Weapon weapon) if (equipable is Weapon weapon)
_equippedWeapon.OnNext(weapon); _equippedWeapon.OnNext(weapon);
@@ -65,7 +65,7 @@ public class EquipmentComponent : IEquipmentComponent
EquipmentChanged?.Invoke(equipable); EquipmentChanged?.Invoke(equipable);
} }
public void Unequip(EquipableItem equipable) public void Unequip(IEquipableItem equipable)
{ {
if (equipable is Weapon weapon) if (equipable is Weapon weapon)
_equippedWeapon.OnNext(new Weapon()); _equippedWeapon.OnNext(new Weapon());
@@ -78,15 +78,12 @@ public class EquipmentComponent : IEquipmentComponent
EquipmentChanged?.Invoke(equipable); EquipmentChanged?.Invoke(equipable);
} }
public bool IsItemEquipped(InventoryItem item) public bool IsItemEquipped(IEquipableItem item)
{ {
if (item is not EquipableItem)
return false;
return item == _equippedWeapon.Value || item == _equippedArmor.Value || item == _equippedAccessory.Value || item == _equippedAmmo.Value; return item == _equippedWeapon.Value || item == _equippedArmor.Value || item == _equippedAccessory.Value || item == _equippedAmmo.Value;
} }
public void UpdateEquipment(EquipableItem equipable) => EquipmentChanged?.Invoke(equipable); public void UpdateEquipment(IEquipableItem equipable) => EquipmentChanged?.Invoke(equipable);
public bool AugmentableEquipmentExists() public bool AugmentableEquipmentExists()
{ {

View File

@@ -1,4 +1,5 @@
using Chickensoft.Collections; using Chickensoft.Collections;
using Godot;
using System; using System;
using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter;
@@ -24,6 +25,8 @@ public class ExperiencePointsComponent : IExperiencePointsComponent
public event Action PlayerLevelUp; public event Action PlayerLevelUp;
public event Action PlayerLevelDown;
public ExperiencePointsComponent() public ExperiencePointsComponent()
{ {
var firstLevelExpRequirement = ExpToNextLevelCalculation(1); var firstLevelExpRequirement = ExpToNextLevelCalculation(1);
@@ -45,12 +48,19 @@ public class ExperiencePointsComponent : IExperiencePointsComponent
public void Gain(int baseExpGain) public void Gain(int baseExpGain)
{ {
var modifiedExpGain = baseExpGain * _expGainRate.Value; var modifiedExpGain = baseExpGain * _expGainRate.Value;
var newCurrentExpTotal = modifiedExpGain + _currentExp.Value; _currentExp.OnNext(Mathf.RoundToInt(modifiedExpGain + _currentExp.Value));
while (modifiedExpGain + _currentExp.Value >= _expToNextLevel.Value) while (_currentExp.Value >= _expToNextLevel.Value)
LevelUp(); LevelUp();
var cappedAmount = Math.Min(baseExpGain + _currentExp.Value, _expToNextLevel.Value);
_currentExp.OnNext(cappedAmount);
} }
public void GainUnmodified(int flatRateExp)
{
var newCurrentExpTotal = flatRateExp + _currentExp.Value;
_currentExp.OnNext(newCurrentExpTotal);
while (_currentExp.Value >= _expToNextLevel.Value)
LevelUp();
}
public void ModifyExpGainRate(double newRate) => _expGainRate.OnNext(newRate); public void ModifyExpGainRate(double newRate) => _expGainRate.OnNext(newRate);
public void LevelUp() public void LevelUp()
@@ -63,6 +73,21 @@ public class ExperiencePointsComponent : IExperiencePointsComponent
PlayerLevelUp?.Invoke(); PlayerLevelUp?.Invoke();
} }
public void LevelDown()
{
SfxDatabase.Instance.Play(SoundEffect.DecreaseStat);
_currentExp.OnNext(0);
if (_level.Value == 1)
return;
var newLevel = Mathf.Max(_level.Value - 1, 1);
_level.OnNext(newLevel);
var expToNextLevel = ExpToNextLevelCalculation(newLevel);
_expToNextLevel.OnNext(expToNextLevel);
PlayerLevelDown.Invoke();
}
private int ExpToNextLevelCalculation(int nextLevel) private int ExpToNextLevelCalculation(int nextLevel)
{ {
return (int)(6.5 * nextLevel + 4.5 * Math.Pow(nextLevel, 2) + Math.Pow(nextLevel, 3)); return (int)(6.5 * nextLevel + 4.5 * Math.Pow(nextLevel, 2) + Math.Pow(nextLevel, 3));

View File

@@ -1,4 +1,5 @@
using Chickensoft.Collections; using Chickensoft.Collections;
using Godot;
using System; using System;
using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter;
@@ -77,4 +78,11 @@ public class HealthComponent : IHealthComponent
if (restoreHP) if (restoreHP)
Heal(raiseAmount); Heal(raiseAmount);
} }
public void LowerMaximumHP(int lowerAmount)
{
_maximumHP.OnNext(Mathf.Max(_maximumHP.Value - lowerAmount, 1));
if (_currentHP.Value > _maximumHP.Value)
_currentHP.OnNext(_maximumHP.Value);
}
} }

View File

@@ -1,4 +1,5 @@
using Chickensoft.Collections; using Chickensoft.Collections;
using System;
using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter;
namespace Zennysoft.Game.Ma; namespace Zennysoft.Game.Ma;
@@ -6,12 +7,14 @@ namespace Zennysoft.Game.Ma;
public class LuckComponent : ILuckComponent public class LuckComponent : ILuckComponent
{ {
public IAutoProp<int> Luck => _luck; public IAutoProp<int> Luck => _luck;
public int InitialLuck { get; }
private AutoProp<int> _luck; private readonly AutoProp<int> _luck;
private readonly int _initialValue; private readonly int _initialValue;
public LuckComponent(int initialLuck) public LuckComponent(int initialLuck)
{ {
InitialLuck = initialLuck;
_luck = new AutoProp<int>(initialLuck); _luck = new AutoProp<int>(initialLuck);
_initialValue = initialLuck; _initialValue = initialLuck;
} }
@@ -22,4 +25,6 @@ public class LuckComponent : ILuckComponent
} }
public void IncreaseLuck(int value) => _luck.OnNext(_luck.Value + value); public void IncreaseLuck(int value) => _luck.OnNext(_luck.Value + value);
public void DecreaseLuck(int value) => _luck.OnNext(Godot.Mathf.Max(_luck.Value - value, 0));
} }

View File

@@ -146,7 +146,7 @@ public partial class App : Node, IApp
}) })
.Handle((in AppLogic.Output.SetupGameScene _) => .Handle((in AppLogic.Output.SetupGameScene _) =>
{ {
LoadingScreen.Show(); LoadingScreen.ShowLoadingScreen();
LoadGame(GAME_SCENE_PATH); LoadGame(GAME_SCENE_PATH);
}) })
.Handle((in AppLogic.Output.ShowMainMenu _) => .Handle((in AppLogic.Output.ShowMainMenu _) =>
@@ -155,7 +155,7 @@ public partial class App : Node, IApp
}) })
.Handle((in AppLogic.Output.CloseGame _) => .Handle((in AppLogic.Output.CloseGame _) =>
{ {
LoadingScreen.Hide(); LoadingScreen.HideLoadingScreen();
_game.GameExitRequested -= GameExitRequested; _game.GameExitRequested -= GameExitRequested;
MainMenu.StartGameButton.GrabFocus(); MainMenu.StartGameButton.GrabFocus();
_game.CallDeferred(MethodName.QueueFree, []); _game.CallDeferred(MethodName.QueueFree, []);
@@ -166,13 +166,13 @@ public partial class App : Node, IApp
}) })
.Handle((in AppLogic.Output.EnemyViewerOpened _) => .Handle((in AppLogic.Output.EnemyViewerOpened _) =>
{ {
LoadingScreen.Show(); LoadingScreen.ShowLoadingScreen();
MainMenu.Hide(); MainMenu.Hide();
LoadEnemyViewer(ENEMY_VIEWER_PATH); LoadEnemyViewer(ENEMY_VIEWER_PATH);
}) })
.Handle((in AppLogic.Output.EnemyViewerExited _) => .Handle((in AppLogic.Output.EnemyViewerExited _) =>
{ {
LoadingScreen.Hide(); LoadingScreen.HideLoadingScreen();
if (_enemyViewer != null && _enemyViewer is DataViewer enemyViewer) if (_enemyViewer != null && _enemyViewer is DataViewer enemyViewer)
enemyViewer.CallDeferred(MethodName.QueueFree); enemyViewer.CallDeferred(MethodName.QueueFree);
MainMenu.Show(); MainMenu.Show();
@@ -203,24 +203,22 @@ public partial class App : Node, IApp
_game = scene as IGame; _game = scene as IGame;
_game.GameLoaded += OnGameLoaded; _game.GameLoaded += OnGameLoaded;
_game.GameExitRequested += GameExitRequested; _game.GameExitRequested += GameExitRequested;
await ToSignal(GetTree().CreateTimer(0.8f), "timeout");
CallDeferred(MethodName.AddChild, scene); CallDeferred(MethodName.AddChild, scene);
} }
private void OnGameLoaded() => LoadingScreen.Hide(); private void OnGameLoaded() => LoadingScreen.HideLoadingScreen();
private async void LoadEnemyViewer(string sceneName) private async void LoadEnemyViewer(string sceneName)
{ {
var scene = await LoadSceneInternal(sceneName); var scene = await LoadSceneInternal(sceneName);
_enemyViewer = scene as IDataViewer; _enemyViewer = scene as IDataViewer;
await ToSignal(GetTree().CreateTimer(0.8f), "timeout");
CallDeferred(MethodName.AddChild, scene); CallDeferred(MethodName.AddChild, scene);
LoadingScreen.Hide(); LoadingScreen.HideLoadingScreen();
} }
private async Task<Node> LoadSceneInternal(string sceneName) private async Task<Node> LoadSceneInternal(string sceneName)
{ {
LoadingScreen.Show(); LoadingScreen.ShowLoadingScreen();
LoadingScreen.ProgressBar.Value = 0; LoadingScreen.ProgressBar.Value = 0;
var sceneLoader = new SceneLoader(); var sceneLoader = new SceneLoader();
CallDeferred(MethodName.AddChild, sceneLoader); CallDeferred(MethodName.AddChild, sceneLoader);

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=6 format=3 uid="uid://cagfc5ridmteu"] [gd_scene load_steps=6 format=3 uid="uid://bkhaksn82ws6h"]
[ext_resource type="Script" uid="uid://d1f8blk5ucqvq" path="res://src/app/App.cs" id="1_rt73h"] [ext_resource type="Script" uid="uid://d1f8blk5ucqvq" path="res://src/app/App.cs" id="1_rt73h"]
[ext_resource type="PackedScene" uid="uid://rfvnddfqufho" path="res://src/menu/MainMenu.tscn" id="2_1uiag"] [ext_resource type="PackedScene" uid="uid://rfvnddfqufho" path="res://src/menu/MainMenu.tscn" id="2_1uiag"]
@@ -10,9 +10,16 @@
process_mode = 3 process_mode = 3
script = ExtResource("1_rt73h") script = ExtResource("1_rt73h")
[node name="ColorRect" type="ColorRect" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 1)
[node name="MainMenu" parent="." instance=ExtResource("2_1uiag")] [node name="MainMenu" parent="." instance=ExtResource("2_1uiag")]
unique_name_in_owner = true unique_name_in_owner = true
visible = false
[node name="OptionsMenu" parent="." instance=ExtResource("2_v0mgf")] [node name="OptionsMenu" parent="." instance=ExtResource("2_v0mgf")]
unique_name_in_owner = true unique_name_in_owner = true
@@ -24,5 +31,6 @@ visible = false
[node name="LoadingScreen" parent="." instance=ExtResource("3_3st5l")] [node name="LoadingScreen" parent="." instance=ExtResource("3_3st5l")]
unique_name_in_owner = true unique_name_in_owner = true
visible = false
top_level = true top_level = true
z_index = 999 z_index = 999

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=26 format=3 uid="uid://brgi35xj3b4ud"] [gd_scene load_steps=27 format=3 uid="uid://brgi35xj3b4ud"]
[ext_resource type="Script" uid="uid://cw100tox0ufsy" path="res://src/audio/SfxDatabase.cs" id="1_ojkqd"] [ext_resource type="Script" uid="uid://cw100tox0ufsy" path="res://src/audio/SfxDatabase.cs" id="1_ojkqd"]
[ext_resource type="AudioStream" uid="uid://cye8wlqbx66h4" path="res://src/audio/sfx/player_heal.ogg" id="2_158j8"] [ext_resource type="AudioStream" uid="uid://cye8wlqbx66h4" path="res://src/audio/sfx/player_heal.ogg" id="2_158j8"]
@@ -9,6 +9,7 @@
[ext_resource type="AudioStream" uid="uid://c817txm4tmup7" path="res://src/audio/sfx/PLAYER_EQUIP.ogg" id="7_sew62"] [ext_resource type="AudioStream" uid="uid://c817txm4tmup7" path="res://src/audio/sfx/PLAYER_EQUIP.ogg" id="7_sew62"]
[ext_resource type="AudioStream" uid="uid://qxi7qto7hhgk" path="res://src/audio/sfx/PLAYER_UNEQUIP.ogg" id="8_rf1la"] [ext_resource type="AudioStream" uid="uid://qxi7qto7hhgk" path="res://src/audio/sfx/PLAYER_UNEQUIP.ogg" id="8_rf1la"]
[ext_resource type="AudioStream" uid="uid://doeefxilh0luj" path="res://src/audio/sfx/ITEM_SORT.ogg" id="9_l6w22"] [ext_resource type="AudioStream" uid="uid://doeefxilh0luj" path="res://src/audio/sfx/ITEM_SORT.ogg" id="9_l6w22"]
[ext_resource type="AudioStream" uid="uid://cyae4bt60m7p4" path="res://src/audio/sfx/item_plasma_sword.ogg" id="10_7th20"]
[ext_resource type="AudioStream" uid="uid://4mk4hlse81if" path="res://src/audio/sfx/player_losehealth.ogg" id="10_kac56"] [ext_resource type="AudioStream" uid="uid://4mk4hlse81if" path="res://src/audio/sfx/player_losehealth.ogg" id="10_kac56"]
[ext_resource type="AudioStream" uid="uid://dwp3ep3jddvrr" path="res://src/audio/sfx/UI_SELECT.ogg" id="10_nerso"] [ext_resource type="AudioStream" uid="uid://dwp3ep3jddvrr" path="res://src/audio/sfx/UI_SELECT.ogg" id="10_nerso"]
[ext_resource type="AudioStream" uid="uid://ilf2s8ct2stt" path="res://src/audio/sfx/PLAYER_slower_slash.ogg" id="10_vyvit"] [ext_resource type="AudioStream" uid="uid://ilf2s8ct2stt" path="res://src/audio/sfx/PLAYER_slower_slash.ogg" id="10_vyvit"]
@@ -33,21 +34,26 @@ script = ExtResource("1_ojkqd")
[node name="OpenInventorySound" type="AudioStreamPlayer" parent="UI"] [node name="OpenInventorySound" type="AudioStreamPlayer" parent="UI"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("5_p5cio") stream = ExtResource("5_p5cio")
bus = &"SFX" bus = &"SFX"
[node name="MoveSound" type="AudioStreamPlayer" parent="UI"] [node name="MoveSound" type="AudioStreamPlayer" parent="UI"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("6_r16t0") stream = ExtResource("6_r16t0")
max_polyphony = 5
bus = &"SFX" bus = &"SFX"
[node name="SelectSound" type="AudioStreamPlayer" parent="UI"] [node name="SelectSound" type="AudioStreamPlayer" parent="UI"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("10_nerso") stream = ExtResource("10_nerso")
bus = &"SFX" bus = &"SFX"
[node name="CancelSound" type="AudioStreamPlayer" parent="UI"] [node name="CancelSound" type="AudioStreamPlayer" parent="UI"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("11_rloay") stream = ExtResource("11_rloay")
bus = &"SFX" bus = &"SFX"
@@ -55,51 +61,67 @@ bus = &"SFX"
[node name="HealHPSound" type="AudioStreamPlayer" parent="Player"] [node name="HealHPSound" type="AudioStreamPlayer" parent="Player"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("2_158j8") stream = ExtResource("2_158j8")
bus = &"SFX" bus = &"SFX"
[node name="TakeDamageSound" type="AudioStreamPlayer" parent="Player"] [node name="TakeDamageSound" type="AudioStreamPlayer" parent="Player"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("10_kac56") stream = ExtResource("10_kac56")
bus = &"SFX" bus = &"SFX"
[node name="HealVTSound" type="AudioStreamPlayer" parent="Player"] [node name="HealVTSound" type="AudioStreamPlayer" parent="Player"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("3_kac56") stream = ExtResource("3_kac56")
bus = &"SFX" bus = &"SFX"
[node name="WeaponQuickSlashSound" type="AudioStreamPlayer" parent="Player"] [node name="WeaponQuickSlashSound" type="AudioStreamPlayer" parent="Player"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("13_fa8i8") stream = ExtResource("13_fa8i8")
bus = &"SFX" bus = &"SFX"
[node name="WeaponPlasmaSword" type="AudioStreamPlayer" parent="Player"]
unique_name_in_owner = true
process_mode = 3
stream = ExtResource("10_7th20")
bus = &"SFX"
[node name="WeaponSlowSlashSound" type="AudioStreamPlayer" parent="Player"] [node name="WeaponSlowSlashSound" type="AudioStreamPlayer" parent="Player"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("10_vyvit") stream = ExtResource("10_vyvit")
bus = &"SFX" bus = &"SFX"
[node name="CritSound" type="AudioStreamPlayer" parent="Player"] [node name="CritSound" type="AudioStreamPlayer" parent="Player"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("14_p5cio") stream = ExtResource("14_p5cio")
bus = &"SFX" bus = &"SFX"
[node name="PickupItemSound" type="AudioStreamPlayer" parent="Player"] [node name="PickupItemSound" type="AudioStreamPlayer" parent="Player"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("15_r16t0") stream = ExtResource("15_r16t0")
bus = &"SFX" bus = &"SFX"
[node name="LevelUpSound" type="AudioStreamPlayer" parent="Player"] [node name="LevelUpSound" type="AudioStreamPlayer" parent="Player"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("16_sew62") stream = ExtResource("16_sew62")
bus = &"SFX" bus = &"SFX"
[node name="EquipSound" type="AudioStreamPlayer" parent="Player"] [node name="EquipSound" type="AudioStreamPlayer" parent="Player"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("7_sew62") stream = ExtResource("7_sew62")
bus = &"SFX" bus = &"SFX"
[node name="UnequipSound" type="AudioStreamPlayer" parent="Player"] [node name="UnequipSound" type="AudioStreamPlayer" parent="Player"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("8_rf1la") stream = ExtResource("8_rf1la")
bus = &"SFX" bus = &"SFX"
@@ -107,50 +129,66 @@ bus = &"SFX"
[node name="TransferItemSound" type="AudioStreamPlayer" parent="Item"] [node name="TransferItemSound" type="AudioStreamPlayer" parent="Item"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("18_l6w22") stream = ExtResource("18_l6w22")
bus = &"SFX" bus = &"SFX"
[node name="IncreaseStatSound" type="AudioStreamPlayer" parent="Item"] [node name="IncreaseStatSound" type="AudioStreamPlayer" parent="Item"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("4_fa8i8")
bus = &"SFX"
[node name="DecreaseStatSound" type="AudioStreamPlayer" parent="Item"]
unique_name_in_owner = true
process_mode = 3
stream = ExtResource("4_fa8i8") stream = ExtResource("4_fa8i8")
bus = &"SFX" bus = &"SFX"
[node name="SortSound" type="AudioStreamPlayer" parent="Item"] [node name="SortSound" type="AudioStreamPlayer" parent="Item"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("9_l6w22") stream = ExtResource("9_l6w22")
bus = &"SFX" bus = &"SFX"
[node name="RecallEnemiesSound" type="AudioStreamPlayer" parent="Item"] [node name="RecallEnemiesSound" type="AudioStreamPlayer" parent="Item"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("19_nerso") stream = ExtResource("19_nerso")
bus = &"SFX" bus = &"SFX"
[node name="KillHalfEnemiesSound" type="AudioStreamPlayer" parent="Item"] [node name="KillHalfEnemiesSound" type="AudioStreamPlayer" parent="Item"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("20_rloay") stream = ExtResource("20_rloay")
bus = &"SFX" bus = &"SFX"
[node name="TeleportToRandomRoomSound" type="AudioStreamPlayer" parent="Item"] [node name="TeleportToRandomRoomSound" type="AudioStreamPlayer" parent="Item"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("21_6hsck") stream = ExtResource("21_6hsck")
bus = &"SFX" bus = &"SFX"
[node name="TeleportToExitSound" type="AudioStreamPlayer" parent="Item"] [node name="TeleportToExitSound" type="AudioStreamPlayer" parent="Item"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("22_3wq6u") stream = ExtResource("22_3wq6u")
bus = &"SFX" bus = &"SFX"
[node name="AbsorbHPFromAllEnemiesSound" type="AudioStreamPlayer" parent="Item"] [node name="AbsorbHPFromAllEnemiesSound" type="AudioStreamPlayer" parent="Item"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("23_aaerj") stream = ExtResource("23_aaerj")
bus = &"SFX" bus = &"SFX"
[node name="SwapHPAndVTSound" type="AudioStreamPlayer" parent="Item"] [node name="SwapHPAndVTSound" type="AudioStreamPlayer" parent="Item"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("23_jdwj3") stream = ExtResource("23_jdwj3")
bus = &"SFX" bus = &"SFX"
[node name="TurnAllEnemiesIntoHealingItemsSound" type="AudioStreamPlayer" parent="Item"] [node name="TurnAllEnemiesIntoHealingItemsSound" type="AudioStreamPlayer" parent="Item"]
unique_name_in_owner = true unique_name_in_owner = true
process_mode = 3
stream = ExtResource("24_jdwj3") stream = ExtResource("24_jdwj3")
bus = &"SFX" bus = &"SFX"

View File

@@ -24,6 +24,7 @@ public partial class SfxDatabase : Node
{SoundEffect.TakeDamage, TakeDamageSound }, {SoundEffect.TakeDamage, TakeDamageSound },
{SoundEffect.HealVT, HealVTSound }, {SoundEffect.HealVT, HealVTSound },
{SoundEffect.IncreaseStat, IncreaseStatSound }, {SoundEffect.IncreaseStat, IncreaseStatSound },
{SoundEffect.DecreaseStat, DecreaseStatSound },
{SoundEffect.Crit, CritSound }, {SoundEffect.Crit, CritSound },
{SoundEffect.PickupItem, PickupItemSound }, {SoundEffect.PickupItem, PickupItemSound },
{SoundEffect.OpenInventory, OpenInventorySound }, {SoundEffect.OpenInventory, OpenInventorySound },
@@ -43,6 +44,7 @@ public partial class SfxDatabase : Node
{SoundEffect.TurnAllEnemiesIntoHealingItems, TurnAllEnemiesIntoHealingItemsSound}, {SoundEffect.TurnAllEnemiesIntoHealingItems, TurnAllEnemiesIntoHealingItemsSound},
{SoundEffect.WeaponQuickSlash, WeaponQuickSlashSound }, {SoundEffect.WeaponQuickSlash, WeaponQuickSlashSound },
{SoundEffect.WeaponSlowSlash, WeaponSlowSlashSound }, {SoundEffect.WeaponSlowSlash, WeaponSlowSlashSound },
{SoundEffect.WeaponPlasmaSword, WeaponPlasmaSword },
}; };
} }
@@ -50,8 +52,11 @@ public partial class SfxDatabase : Node
[Node] private AudioStreamPlayer TakeDamageSound { get; set; } = default!; [Node] private AudioStreamPlayer TakeDamageSound { get; set; } = default!;
[Node] private AudioStreamPlayer HealVTSound { get; set; } = default!; [Node] private AudioStreamPlayer HealVTSound { get; set; } = default!;
[Node] private AudioStreamPlayer IncreaseStatSound { get; set; } = default!; [Node] private AudioStreamPlayer IncreaseStatSound { get; set; } = default!;
[Node] private AudioStreamPlayer DecreaseStatSound { get; set; } = default!;
[Node] private AudioStreamPlayer WeaponQuickSlashSound { get; set; } = default!; [Node] private AudioStreamPlayer WeaponQuickSlashSound { get; set; } = default!;
[Node] private AudioStreamPlayer WeaponSlowSlashSound { get; set; } = default!; [Node] private AudioStreamPlayer WeaponSlowSlashSound { get; set; } = default!;
[Node] private AudioStreamPlayer WeaponPlasmaSword { get; set; } = default!;
[Node] private AudioStreamPlayer CritSound { get; set; } = default!; [Node] private AudioStreamPlayer CritSound { get; set; } = default!;
[Node] private AudioStreamPlayer PickupItemSound { get; set; } = default!; [Node] private AudioStreamPlayer PickupItemSound { get; set; } = default!;
[Node] private AudioStreamPlayer OpenInventorySound { get; set; } [Node] private AudioStreamPlayer OpenInventorySound { get; set; }
@@ -87,6 +92,7 @@ public enum SoundEffect
TakeDamage, TakeDamage,
HealVT, HealVT,
IncreaseStat, IncreaseStat,
DecreaseStat,
Crit, Crit,
PickupItem, PickupItem,
OpenInventory, OpenInventory,
@@ -107,5 +113,6 @@ public enum SoundEffect
TurnAllEnemiesIntoHealingItems, TurnAllEnemiesIntoHealingItems,
WeaponQuickSlash, WeaponQuickSlash,
WeaponSlowSlash, WeaponSlowSlash,
WeaponPlasmaSword
} }

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=3 format=3 uid="uid://didc6vnf5ftlg"] [gd_scene load_steps=3 format=3 uid="uid://dqvlemme0iwa"]
[ext_resource type="Script" uid="uid://bb36q1wpe0tlw" path="res://src/camera/ShakeCamera.cs" id="1_ubmds"] [ext_resource type="Script" uid="uid://bb36q1wpe0tlw" path="res://src/camera/ShakeCamera.cs" id="1_ubmds"]

View File

@@ -1,17 +1,17 @@
[gd_scene load_steps=19 format=3 uid="uid://c7wjbgbrdivol"] [gd_scene load_steps=19 format=3 uid="uid://b02ykp0nm7cyw"]
[ext_resource type="Script" uid="uid://bgaflnnur26vk" path="res://src/data_viewer/DataViewer.cs" id="1_1qako"] [ext_resource type="Script" uid="uid://bgaflnnur26vk" path="res://src/data_viewer/DataViewer.cs" id="1_1qako"]
[ext_resource type="Texture2D" uid="uid://dsf5l6g8n1tkw" path="res://src/ui/rendered_assets/SCREEN_RENDERS_Viewer_720_16_9.png" id="2_hpkd1"] [ext_resource type="Texture2D" uid="uid://dsf5l6g8n1tkw" path="res://src/ui/rendered_assets/SCREEN_RENDERS_Viewer_720_16_9.png" id="2_hpkd1"]
[ext_resource type="Texture2D" uid="uid://bophm5or5opdf" path="res://src/data_viewer/bafkreicavupacvvhtig6ii2zb3svww7luvmuknyttza6s4doxm4oursnzm.jpg" id="3_hpkd1"] [ext_resource type="Texture2D" uid="uid://bophm5or5opdf" path="res://src/data_viewer/bafkreicavupacvvhtig6ii2zb3svww7luvmuknyttza6s4doxm4oursnzm.jpg" id="3_hpkd1"]
[ext_resource type="PackedScene" uid="uid://bimjnsu52y3xi" path="res://src/enemy/enemy_types/01. sproingy/SproingyModelView.tscn" id="3_vk1lh"] [ext_resource type="PackedScene" path="res://src/enemy/enemy_types/01. sproingy/SproingyModelView.tscn" id="3_vk1lh"]
[ext_resource type="Shader" uid="uid://o80s4yvp0rto" path="res://src/data_viewer/BlurSprite3D.gdshader" id="4_vk1lh"] [ext_resource type="Shader" uid="uid://o80s4yvp0rto" path="res://src/data_viewer/BlurSprite3D.gdshader" id="4_vk1lh"]
[ext_resource type="LabelSettings" uid="uid://b6f8ggy3ulonb" path="res://src/ui/label_settings/GeorgiaItalic.tres" id="6_vk1lh"] [ext_resource type="LabelSettings" uid="uid://b6f8ggy3ulonb" path="res://src/ui/label_settings/GeorgiaItalic.tres" id="6_vk1lh"]
[ext_resource type="FontFile" uid="uid://beh6d5lo5ihq0" path="res://src/ui/fonts/georgiai.ttf" id="7_dvixg"] [ext_resource type="FontFile" uid="uid://beh6d5lo5ihq0" path="res://src/ui/fonts/georgiai.ttf" id="7_dvixg"]
[ext_resource type="PackedScene" uid="uid://bjg8wyvp8q6oc" path="res://src/enemy/enemy_types/02. michael/MichaelModelView.tscn" id="8_ekqja"] [ext_resource type="PackedScene" path="res://src/enemy/enemy_types/02. michael/MichaelModelView.tscn" id="8_ekqja"]
[ext_resource type="PackedScene" uid="uid://c5xijwxkg4pf6" path="res://src/enemy/enemy_types/05. ballos/BallosModelView.tscn" id="11_icshd"] [ext_resource type="PackedScene" path="res://src/enemy/enemy_types/05. ballos/BallosModelView.tscn" id="11_icshd"]
[ext_resource type="PackedScene" uid="uid://bid6f48l0q58o" path="res://src/enemy/enemy_types/14. horse_head/HorseFaceModelView.tscn" id="19_qagkd"] [ext_resource type="PackedScene" path="res://src/enemy/enemy_types/14. horse_head/HorseFaceModelView.tscn" id="19_qagkd"]
[ext_resource type="PackedScene" uid="uid://dnomfbym36ivg" path="res://src/enemy/enemy_types/15. ox_face/OxFaceModelView.tscn" id="20_bw7jv"] [ext_resource type="PackedScene" path="res://src/enemy/enemy_types/15. ox_face/OxFaceModelView.tscn" id="20_bw7jv"]
[ext_resource type="PackedScene" uid="uid://l4413jwn0m8v" path="res://src/enemy/enemy_types/16. demon wall/DemonWallModelView.tscn" id="21_i7aes"] [ext_resource type="PackedScene" path="res://src/enemy/enemy_types/16. demon wall/DemonWallModelView.tscn" id="21_i7aes"]
[ext_resource type="StyleBox" uid="uid://bxuy4tnftibfq" path="res://src/options/SelectedOptionsBox.tres" id="25_gdy4a"] [ext_resource type="StyleBox" uid="uid://bxuy4tnftibfq" path="res://src/options/SelectedOptionsBox.tres" id="25_gdy4a"]
[ext_resource type="StyleBox" uid="uid://bl15q835s4ene" path="res://src/options/UnselectedOptionsBox.tres" id="26_br3ej"] [ext_resource type="StyleBox" uid="uid://bl15q835s4ene" path="res://src/options/UnselectedOptionsBox.tres" id="26_br3ej"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=4 format=3 uid="uid://t22s2y1t8ktc"] [gd_scene load_steps=4 format=3 uid="uid://0eo47mewhlit"]
[ext_resource type="Script" uid="uid://c4g3frcpt0h36" path="res://src/debug_info/DebugInfo.cs" id="1_6tk84"] [ext_resource type="Script" uid="uid://c4g3frcpt0h36" path="res://src/debug_info/DebugInfo.cs" id="1_6tk84"]
[ext_resource type="LabelSettings" uid="uid://b6f8ggy3ulonb" path="res://src/ui/label_settings/GeorgiaItalic.tres" id="1_i766g"] [ext_resource type="LabelSettings" uid="uid://b6f8ggy3ulonb" path="res://src/ui/label_settings/GeorgiaItalic.tres" id="1_i766g"]

View File

@@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="DialogueResource" load_steps=2 format=3 uid="uid://dlbsw423e12au"] [gd_resource type="Resource" script_class="DialogueResource" load_steps=2 format=3 uid="uid://dlbsw423e12au"]
[ext_resource type="Script" path="res://addons/dialogue_manager/dialogue_resource.gd" id="1_p1wx7"] [ext_resource type="Script" uid="uid://dbs4435dsf3ry" path="res://addons/dialogue_manager/dialogue_resource.gd" id="1_p1wx7"]
[resource] [resource]
script = ExtResource("1_p1wx7") script = ExtResource("1_p1wx7")

View File

@@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://kt5fg0it26cf"] [gd_scene load_steps=2 format=3 uid="uid://ci8272gtj7oj6"]
[ext_resource type="Script" path="res://addons/dialogue_manager/dialogue_label.gd" id="1_bkcfu"] [ext_resource type="Script" uid="uid://g32um0mltv5d" path="res://addons/dialogue_manager/dialogue_label.gd" id="1_bkcfu"]
[node name="Dialog" type="RichTextLabel"] [node name="Dialog" type="RichTextLabel"]
anchors_preset = 15 anchors_preset = 15

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=95 format=3 uid="uid://dpoonda2dwwic"] [gd_scene load_steps=95 format=3 uid="uid://cygwsc1gebeut"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_53wuj"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_53wuj"]
animation = &"idle_back" animation = &"idle_back"

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=2 format=3 uid="uid://br6dlxj36fw5i"] [gd_scene load_steps=2 format=3 uid="uid://bbc80e2421xlb"]
[sub_resource type="BoxShape3D" id="BoxShape3D_7056c"] [sub_resource type="BoxShape3D" id="BoxShape3D_7056c"]

View File

@@ -1,10 +1,12 @@
[gd_scene load_steps=4 format=3 uid="uid://dbvr8ewajja6a"] [gd_scene load_steps=4 format=3 uid="uid://dcj80fft8v6ww"]
[ext_resource type="Script" uid="uid://cp02ufnj6c7kg" path="res://src/enemy/EnemyDatabase.cs" id="1_ywy58"] [ext_resource type="PackedScene" uid="uid://xeuulxx1p702" path="res://src/enemy/enemy_types/02. michael/Michael.tscn" id="2_tja3j"]
[ext_resource type="PackedScene" uid="uid://b0gwivt7cw7nd" path="res://src/enemy/enemy_types/02. michael/Michael.tscn" id="2_tja3j"] [ext_resource type="PackedScene" uid="uid://ckow4bnkohxsj" path="res://src/enemy/enemy_types/04. sara/Sara.tscn" id="3_cpupr"]
[ext_resource type="PackedScene" uid="uid://bksq62muhk3h5" path="res://src/enemy/enemy_types/01. sproingy/Sproingy.tscn" id="3_cpupr"]
[sub_resource type="Resource" id="Resource_fevii"]
metadata/__load_path__ = "res://src/enemy/EnemyDatabase.cs"
[node name="EnemyDatabase" type="Node"] [node name="EnemyDatabase" type="Node"]
script = ExtResource("1_ywy58") script = SubResource("Resource_fevii")
EnemyList = Array[PackedScene]([ExtResource("2_tja3j"), ExtResource("3_cpupr")]) EnemyList = Array[PackedScene]([ExtResource("2_tja3j"), ExtResource("3_cpupr")])
SpawnRate = PackedFloat32Array(1, 1) SpawnRate = PackedFloat32Array(1, 1)

View File

@@ -1,5 +1,7 @@
using Godot; using Godot;
using System; using System;
using System.Collections.Generic;
using Zennysoft.Ma.Adapter.Entity;
namespace Zennysoft.Game.Ma; namespace Zennysoft.Game.Ma;
@@ -48,6 +50,45 @@ public static class EnemyTypeToEnemyConverter
} }
} }
public static EnemyType Convert(IEnemy enemy)
{
if (enemy is Sproingy)
return EnemyType.Sproingy;
if (enemy is Michael)
return EnemyType.Michael;
if (enemy is FilthEater)
return EnemyType.FilthEater;
if (enemy is Sara)
return EnemyType.Sara;
if (enemy is Ballos)
return EnemyType.Ballos;
if (enemy is Chariot)
return EnemyType.Chariot;
if (enemy is Chinthe)
return EnemyType.Chinthe;
if (enemy is Ambassador ambassador)
if (ambassador.Name == "Ambassador")
return EnemyType.AmbassadorGreen;
else if (ambassador.Name == "AmbassadorRed")
return EnemyType.AmbassadorRed;
else
return EnemyType.AmbassadorSteel;
if (enemy is AgniDemon)
return EnemyType.AgniDemon;
if (enemy is AqueousDemon)
return EnemyType.AqueousDemon;
if (enemy is EdenPillar)
return EnemyType.EdenPillar;
if (enemy is Palan)
return EnemyType.Palan;
if (enemy is ShieldOfHeaven)
return EnemyType.ShieldOfHeaven;
if (enemy is GoldSproingy)
return EnemyType.GoldSproingy;
throw new NotImplementedException("Cannot duplicate this type of enemy.");
}
private static Enemy InstantiateFromPath(string scenePath) private static Enemy InstantiateFromPath(string scenePath)
{ {
var enemyScene = GD.Load<PackedScene>(scenePath); var enemyScene = GD.Load<PackedScene>(scenePath);

View File

@@ -1,9 +1,10 @@
[gd_scene load_steps=2 format=3 uid="uid://p74f12fh5v0i"] [gd_scene load_steps=2 format=3 uid="uid://ddvhuhttr5q0m"]
[ext_resource type="Script" uid="uid://vjb6sjktj6m0" path="res://src/enemy/PatrolComponent.cs" id="1_dhoym"] [sub_resource type="Resource" id="Resource_g8n53"]
metadata/__load_path__ = "res://src/enemy/PatrolComponent.cs"
[node name="PatrolComponent" type="Node3D"] [node name="PatrolComponent" type="Node3D"]
script = ExtResource("1_dhoym") script = SubResource("Resource_g8n53")
[node name="Navigation" type="Node3D" parent="."] [node name="Navigation" type="Node3D" parent="."]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=171 format=3 uid="uid://diaxvpmwgl65u"] [gd_scene load_steps=171 format=3 uid="uid://3ax3e5uce27d"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_53wuj"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_53wuj"]
animation = &"idle_back" animation = &"idle_back"

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=2 format=3 uid="uid://8bcme8ao4axa"] [gd_scene load_steps=2 format=3 uid="uid://cmhem5xknjsvc"]
[ext_resource type="Script" uid="uid://bbe5nt3kpvk0f" path="res://src/enemy/behaviors/EngagePlayerBehavior.cs" id="1_7r6b3"] [ext_resource type="Script" uid="uid://bbe5nt3kpvk0f" path="res://src/enemy/behaviors/EngagePlayerBehavior.cs" id="1_7r6b3"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=2 format=3 uid="uid://g4cupevu280j"] [gd_scene load_steps=2 format=3 uid="uid://dld534cmm5twd"]
[ext_resource type="Script" uid="uid://drur3hx4p4du4" path="res://src/enemy/behaviors/FleeBehavior.cs" id="1_cty3c"] [ext_resource type="Script" uid="uid://drur3hx4p4du4" path="res://src/enemy/behaviors/FleeBehavior.cs" id="1_cty3c"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=2 format=3 uid="uid://mqj4jju3870v"] [gd_scene load_steps=2 format=3 uid="uid://cve5oouhowtff"]
[ext_resource type="Script" uid="uid://chfhmralfmwva" path="res://src/enemy/behaviors/FollowBehavior.cs" id="1_3rkk2"] [ext_resource type="Script" uid="uid://chfhmralfmwva" path="res://src/enemy/behaviors/FollowBehavior.cs" id="1_3rkk2"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=2 format=3 uid="uid://2nkvacxsd46b"] [gd_scene load_steps=2 format=3 uid="uid://cn4fv2gv6raql"]
[ext_resource type="Script" uid="uid://hpb1f5r17k5y" path="res://src/enemy/behaviors/PatrolBehavior.cs" id="1_lobva"] [ext_resource type="Script" uid="uid://hpb1f5r17k5y" path="res://src/enemy/behaviors/PatrolBehavior.cs" id="1_lobva"]

View File

@@ -1,10 +1,10 @@
[gd_scene load_steps=16 format=3 uid="uid://bs56ccgosmu47"] [gd_scene load_steps=16 format=3 uid="uid://crsy7gygjy317"]
[ext_resource type="Script" uid="uid://cq6b4ma3sy1en" path="res://src/enemy/enemy_types/01. sproingy/Sproingy.cs" id="1_xsluo"] [ext_resource type="Script" uid="uid://cq6b4ma3sy1en" path="res://src/enemy/enemy_types/01. sproingy/Sproingy.cs" id="1_xsluo"]
[ext_resource type="PackedScene" uid="uid://2nkvacxsd46b" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="4_drfkj"] [ext_resource type="PackedScene" uid="uid://cn4fv2gv6raql" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="4_drfkj"]
[ext_resource type="PackedScene" uid="uid://bimjnsu52y3xi" path="res://src/enemy/enemy_types/01. sproingy/SproingyModelView.tscn" id="4_o3b7p"] [ext_resource type="PackedScene" path="res://src/enemy/enemy_types/01. sproingy/SproingyModelView.tscn" id="4_o3b7p"]
[ext_resource type="PackedScene" uid="uid://8bcme8ao4axa" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="5_drfkj"] [ext_resource type="PackedScene" uid="uid://cmhem5xknjsvc" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="5_drfkj"]
[ext_resource type="PackedScene" uid="uid://mqj4jju3870v" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="6_moun4"] [ext_resource type="PackedScene" uid="uid://cve5oouhowtff" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="6_moun4"]
[ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_ungov"] [ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_ungov"]
[ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_ungov"] [ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_ungov"]
[ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_agkuf"] [ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_agkuf"]
@@ -109,7 +109,6 @@ _acquireTargetTime = 2.0
unique_name_in_owner = true unique_name_in_owner = true
avoidance_enabled = true avoidance_enabled = true
radius = 1.0 radius = 1.0
debug_enabled = true
[node name="SFX" type="Node3D" parent="."] [node name="SFX" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.0617, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.0617, 0)

View File

@@ -6,4 +6,11 @@
script = ExtResource("1_1ncna") script = ExtResource("1_1ncna")
Name = "Sproingy" Name = "Sproingy"
Description = "A guy who likes to have fun." Description = "A guy who likes to have fun."
MaximumHP = ""
ATK = ""
DEF = ""
Affinity = ""
Weakness = ""
Drop1 = ""
Drop2 = ""
metadata/_custom_type_script = ExtResource("1_1ncna") metadata/_custom_type_script = ExtResource("1_1ncna")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=80 format=3 uid="uid://bimjnsu52y3xi"] [gd_scene load_steps=80 format=3 uid="uid://bjcqrhtifpcvr"]
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_oh25a"] [ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_oh25a"]
[ext_resource type="Texture2D" uid="uid://dd0ia6isdqg61" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 1.png" id="1_pbx41"] [ext_resource type="Texture2D" uid="uid://dd0ia6isdqg61" path="res://src/enemy/enemy_types/01. sproingy/animations/ATTACK/Layer 1.png" id="1_pbx41"]

View File

@@ -1,12 +1,12 @@
[gd_scene load_steps=14 format=3 uid="uid://b0gwivt7cw7nd"] [gd_scene load_steps=14 format=3 uid="uid://xeuulxx1p702"]
[ext_resource type="Script" uid="uid://c4pdledq3bll3" path="res://src/enemy/enemy_types/02. michael/Michael.cs" id="1_lb5oy"] [ext_resource type="Script" uid="uid://c4pdledq3bll3" path="res://src/enemy/enemy_types/02. michael/Michael.cs" id="1_lb5oy"]
[ext_resource type="PackedScene" uid="uid://bjg8wyvp8q6oc" path="res://src/enemy/enemy_types/02. michael/MichaelModelView.tscn" id="3_wrps7"] [ext_resource type="PackedScene" uid="uid://uqle8gaeajg6" path="res://src/enemy/enemy_types/02. michael/MichaelModelView.tscn" id="3_wrps7"]
[ext_resource type="PackedScene" uid="uid://2nkvacxsd46b" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="5_fkx5j"] [ext_resource type="PackedScene" uid="uid://cn4fv2gv6raql" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="5_fkx5j"]
[ext_resource type="PackedScene" uid="uid://mqj4jju3870v" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="6_bun8r"] [ext_resource type="PackedScene" uid="uid://cve5oouhowtff" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="6_bun8r"]
[ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_x8mrp"] [ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_x8mrp"]
[ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_kwkfv"] [ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_kwkfv"]
[ext_resource type="PackedScene" uid="uid://8bcme8ao4axa" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="7_x8mrp"] [ext_resource type="PackedScene" uid="uid://cmhem5xknjsvc" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="7_x8mrp"]
[ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_upf7y"] [ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_upf7y"]
[ext_resource type="AudioStream" uid="uid://bn6ns3jxkw03b" path="res://src/audio/sfx/ENEMY_SPROING_death.ogg" id="9_fm627"] [ext_resource type="AudioStream" uid="uid://bn6ns3jxkw03b" path="res://src/audio/sfx/ENEMY_SPROING_death.ogg" id="9_fm627"]
@@ -32,6 +32,13 @@ axis_lock_angular_x = true
axis_lock_angular_z = true axis_lock_angular_z = true
motion_mode = 1 motion_mode = 1
script = ExtResource("1_lb5oy") script = ExtResource("1_lb5oy")
AeolicResistance = -20.0
HydricResistance = -20.0
IgenousResistance = -20.0
FerrumResistance = -20.0
TelluricResistance = -20.0
HolyResistance = -20.0
CurseResistance = -20.0
[node name="LineOfSight" type="Area3D" parent="."] [node name="LineOfSight" type="Area3D" parent="."]
unique_name_in_owner = true unique_name_in_owner = true

View File

@@ -1,9 +1,16 @@
[gd_resource type="Resource" script_class="EnemyLoreInfo" load_steps=2 format=3 uid="uid://6d7ivtna8dqb"] [gd_resource type="Resource" script_class="EnemyLoreInfo" load_steps=2 format=3 uid="uid://6d7ivtna8dqb"]
[ext_resource type="Script" path="res://src/enemy/EnemyLoreInfo.cs" id="1_xsclu"] [ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="1_xsclu"]
[resource] [resource]
script = ExtResource("1_xsclu") script = ExtResource("1_xsclu")
Name = "Michael" Name = "Michael"
Description = "This one doesn't like fun at all." Description = "This one doesn't like fun at all."
MaximumHP = ""
ATK = ""
DEF = ""
Affinity = ""
Weakness = ""
Drop1 = ""
Drop2 = ""
metadata/_custom_type_script = ExtResource("1_xsclu") metadata/_custom_type_script = ExtResource("1_xsclu")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=142 format=3 uid="uid://bjg8wyvp8q6oc"] [gd_scene load_steps=142 format=3 uid="uid://uqle8gaeajg6"]
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_o4cc2"] [ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_o4cc2"]
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_3eot4"] [ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_3eot4"]
@@ -71,7 +71,7 @@
[ext_resource type="Texture2D" uid="uid://vxphbifafq0q" path="res://src/enemy/enemy_types/02. michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (21).png" id="68_msiau"] [ext_resource type="Texture2D" uid="uid://vxphbifafq0q" path="res://src/enemy/enemy_types/02. michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (21).png" id="68_msiau"]
[ext_resource type="Texture2D" uid="uid://7r30bjydumon" path="res://src/enemy/enemy_types/02. michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (22).png" id="69_lec8c"] [ext_resource type="Texture2D" uid="uid://7r30bjydumon" path="res://src/enemy/enemy_types/02. michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (22).png" id="69_lec8c"]
[ext_resource type="Texture2D" uid="uid://djspx2smexhme" path="res://src/enemy/enemy_types/02. michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (23).png" id="70_f0jo7"] [ext_resource type="Texture2D" uid="uid://djspx2smexhme" path="res://src/enemy/enemy_types/02. michael/animations/IDLE_WALK/LEFT SIDE/Michael_IdleWalk_Left (23).png" id="70_f0jo7"]
[ext_resource type="PackedScene" uid="uid://dpoonda2dwwic" path="res://src/enemy/BasicEnemyAnimationTree.tscn" id="73_gby04"] [ext_resource type="PackedScene" path="res://src/enemy/BasicEnemyAnimationTree.tscn" id="73_gby04"]
[ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="74_fxhv6"] [ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="74_fxhv6"]
[ext_resource type="Texture2D" uid="uid://duygq1qfer5oa" path="res://src/vfx/Enemy/michael_attack.png" id="74_mip6u"] [ext_resource type="Texture2D" uid="uid://duygq1qfer5oa" path="res://src/vfx/Enemy/michael_attack.png" id="74_mip6u"]
[ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="74_pxi1p"] [ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="74_pxi1p"]

View File

@@ -1,11 +1,11 @@
[gd_scene load_steps=16 format=3 uid="uid://cvk007twac22c"] [gd_scene load_steps=16 format=3 uid="uid://bl426uws0i86l"]
[ext_resource type="Script" uid="uid://cohal8w5ceneg" path="res://src/enemy/enemy_types/03. filth_eater/FilthEater.cs" id="1_p438s"] [ext_resource type="Script" uid="uid://cohal8w5ceneg" path="res://src/enemy/enemy_types/03. filth_eater/FilthEater.cs" id="1_p438s"]
[ext_resource type="PackedScene" uid="uid://bup8c4x1na3aw" path="res://src/enemy/enemy_types/03. filth_eater/FilthEaterModelView.tscn" id="3_rrwed"] [ext_resource type="PackedScene" path="res://src/enemy/enemy_types/03. filth_eater/FilthEaterModelView.tscn" id="3_rrwed"]
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="4_5eid5"] [ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="4_5eid5"]
[ext_resource type="PackedScene" uid="uid://2nkvacxsd46b" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="5_pvjvo"] [ext_resource type="PackedScene" uid="uid://cn4fv2gv6raql" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="5_pvjvo"]
[ext_resource type="PackedScene" uid="uid://mqj4jju3870v" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="6_fccr3"] [ext_resource type="PackedScene" uid="uid://cve5oouhowtff" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="6_fccr3"]
[ext_resource type="PackedScene" uid="uid://8bcme8ao4axa" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="7_8l567"] [ext_resource type="PackedScene" uid="uid://cmhem5xknjsvc" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="7_8l567"]
[ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="7_qbmfg"] [ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="7_qbmfg"]
[ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="8_m7220"] [ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="8_m7220"]
[ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="9_g602r"] [ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="9_g602r"]

View File

@@ -6,4 +6,11 @@
script = ExtResource("1_hdamr") script = ExtResource("1_hdamr")
Name = "Filth Eater" Name = "Filth Eater"
Description = "Don't like this one" Description = "Don't like this one"
MaximumHP = ""
ATK = ""
DEF = ""
Affinity = ""
Weakness = ""
Drop1 = ""
Drop2 = ""
metadata/_custom_type_script = ExtResource("1_hdamr") metadata/_custom_type_script = ExtResource("1_hdamr")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=420 format=3 uid="uid://bup8c4x1na3aw"] [gd_scene load_steps=420 format=3 uid="uid://b6sa6ntu4rbrm"]
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_718m1"] [ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_718m1"]
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_krqul"] [ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_krqul"]
@@ -194,7 +194,7 @@
[ext_resource type="Texture2D" uid="uid://bxijhjyqvfrip" path="res://src/enemy/enemy_types/03. filth_eater/animations/Filth Side Attacks Frames/ATTACK 2 SIDE/frame_073_delay-0.01s.png" id="190_wg32o"] [ext_resource type="Texture2D" uid="uid://bxijhjyqvfrip" path="res://src/enemy/enemy_types/03. filth_eater/animations/Filth Side Attacks Frames/ATTACK 2 SIDE/frame_073_delay-0.01s.png" id="190_wg32o"]
[ext_resource type="AudioStream" uid="uid://dl818xjlcm7vu" path="res://src/audio/sfx/ENEMY_FILTH_ATTACK.ogg" id="193_4h5gj"] [ext_resource type="AudioStream" uid="uid://dl818xjlcm7vu" path="res://src/audio/sfx/ENEMY_FILTH_ATTACK.ogg" id="193_4h5gj"]
[ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="193_e5pq0"] [ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="193_e5pq0"]
[ext_resource type="PackedScene" uid="uid://diaxvpmwgl65u" path="res://src/enemy/TwoAttacksEnemyAnimationTree.tscn" id="193_krqul"] [ext_resource type="PackedScene" path="res://src/enemy/TwoAttacksEnemyAnimationTree.tscn" id="193_krqul"]
[ext_resource type="Texture2D" uid="uid://d0q5jru1am4v0" path="res://src/vfx/Enemy/FILTH_BLAST.png" id="194_pyy2h"] [ext_resource type="Texture2D" uid="uid://d0q5jru1am4v0" path="res://src/vfx/Enemy/FILTH_BLAST.png" id="194_pyy2h"]
[ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="194_u5xjp"] [ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="194_u5xjp"]
[ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="195_5cwnl"] [ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="195_5cwnl"]

View File

@@ -1,10 +1,10 @@
[gd_scene load_steps=15 format=3 uid="uid://bksq62muhk3h5"] [gd_scene load_steps=15 format=3 uid="uid://ckow4bnkohxsj"]
[ext_resource type="Script" uid="uid://jjulhqd5g3bd" path="res://src/enemy/enemy_types/04. sara/Sara.cs" id="1_3ejdn"] [ext_resource type="Script" uid="uid://jjulhqd5g3bd" path="res://src/enemy/enemy_types/04. sara/Sara.cs" id="1_3ejdn"]
[ext_resource type="PackedScene" uid="uid://2nkvacxsd46b" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="4_8ymq6"] [ext_resource type="PackedScene" uid="uid://cn4fv2gv6raql" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="4_8ymq6"]
[ext_resource type="PackedScene" uid="uid://bli0t0d6ommvi" path="res://src/enemy/enemy_types/04. sara/SaraModelView.tscn" id="4_82s0m"] [ext_resource type="PackedScene" path="res://src/enemy/enemy_types/04. sara/SaraModelView.tscn" id="4_82s0m"]
[ext_resource type="PackedScene" uid="uid://mqj4jju3870v" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="5_lxgpb"] [ext_resource type="PackedScene" uid="uid://cve5oouhowtff" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="5_lxgpb"]
[ext_resource type="PackedScene" uid="uid://8bcme8ao4axa" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="6_ddchx"] [ext_resource type="PackedScene" uid="uid://cmhem5xknjsvc" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="6_ddchx"]
[ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_lxgpb"] [ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_lxgpb"]
[ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_ddchx"] [ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_ddchx"]
[ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_746fv"] [ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_746fv"]

View File

@@ -6,4 +6,11 @@
script = ExtResource("1_220d4") script = ExtResource("1_220d4")
Name = "" Name = ""
Description = "" Description = ""
MaximumHP = ""
ATK = ""
DEF = ""
Affinity = ""
Weakness = ""
Drop1 = ""
Drop2 = ""
metadata/_custom_type_script = "uid://dlsgyx4i1jmp3" metadata/_custom_type_script = "uid://dlsgyx4i1jmp3"

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=232 format=3 uid="uid://bli0t0d6ommvi"] [gd_scene load_steps=232 format=3 uid="uid://g84hcmgo3gtl"]
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_oh25a"] [ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_oh25a"]
[ext_resource type="Texture2D" uid="uid://nps7rrvkgews" path="res://src/enemy/enemy_types/04. sara/animations/IDLE+MOVE/FRONT/0001.png" id="2_8j76g"] [ext_resource type="Texture2D" uid="uid://nps7rrvkgews" path="res://src/enemy/enemy_types/04. sara/animations/IDLE+MOVE/FRONT/0001.png" id="2_8j76g"]
@@ -162,7 +162,7 @@
[ext_resource type="Texture2D" uid="uid://n2c8kfwt6ve3" path="res://src/enemy/enemy_types/04. sara/animations/ATTACK2/SIDE R/0019.png" id="160_r8ggx"] [ext_resource type="Texture2D" uid="uid://n2c8kfwt6ve3" path="res://src/enemy/enemy_types/04. sara/animations/ATTACK2/SIDE R/0019.png" id="160_r8ggx"]
[ext_resource type="Texture2D" uid="uid://dykb4rwua8iyw" path="res://src/enemy/enemy_types/04. sara/animations/ATTACK2/SIDE R/0022.png" id="161_xafpd"] [ext_resource type="Texture2D" uid="uid://dykb4rwua8iyw" path="res://src/enemy/enemy_types/04. sara/animations/ATTACK2/SIDE R/0022.png" id="161_xafpd"]
[ext_resource type="AudioStream" uid="uid://b4bseex34nu6c" path="res://src/audio/sfx/ENEMY_APSARA_STRIKE.ogg" id="162_veo2p"] [ext_resource type="AudioStream" uid="uid://b4bseex34nu6c" path="res://src/audio/sfx/ENEMY_APSARA_STRIKE.ogg" id="162_veo2p"]
[ext_resource type="PackedScene" uid="uid://diaxvpmwgl65u" path="res://src/enemy/TwoAttacksEnemyAnimationTree.tscn" id="163_e6etm"] [ext_resource type="PackedScene" path="res://src/enemy/TwoAttacksEnemyAnimationTree.tscn" id="163_e6etm"]
[ext_resource type="AudioStream" uid="uid://dnnhfw6cgrca4" path="res://src/audio/sfx/enemy_sara_magic.ogg" id="163_xppqu"] [ext_resource type="AudioStream" uid="uid://dnnhfw6cgrca4" path="res://src/audio/sfx/enemy_sara_magic.ogg" id="163_xppqu"]
[ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="164_fc7i0"] [ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="164_fc7i0"]
[ext_resource type="Texture2D" uid="uid://cxibdrta6imfb" path="res://src/vfx/Enemy/nega.png" id="164_rrjme"] [ext_resource type="Texture2D" uid="uid://cxibdrta6imfb" path="res://src/vfx/Enemy/nega.png" id="164_rrjme"]

View File

@@ -1,10 +1,10 @@
[gd_scene load_steps=13 format=3 uid="uid://feegakykn3fv"] [gd_scene load_steps=13 format=3 uid="uid://da32nr35mpqrn"]
[ext_resource type="Script" uid="uid://dwfxs5yrf7i3v" path="res://src/enemy/enemy_types/05. ballos/Ballos.cs" id="1_iy2fp"] [ext_resource type="Script" uid="uid://dwfxs5yrf7i3v" path="res://src/enemy/enemy_types/05. ballos/Ballos.cs" id="1_iy2fp"]
[ext_resource type="PackedScene" uid="uid://c5xijwxkg4pf6" path="res://src/enemy/enemy_types/05. ballos/BallosModelView.tscn" id="2_v2urn"] [ext_resource type="PackedScene" path="res://src/enemy/enemy_types/05. ballos/BallosModelView.tscn" id="2_v2urn"]
[ext_resource type="PackedScene" uid="uid://2nkvacxsd46b" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="4_bjnvx"] [ext_resource type="PackedScene" uid="uid://cn4fv2gv6raql" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="4_bjnvx"]
[ext_resource type="PackedScene" uid="uid://mqj4jju3870v" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="5_55sdf"] [ext_resource type="PackedScene" uid="uid://cve5oouhowtff" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="5_55sdf"]
[ext_resource type="PackedScene" uid="uid://8bcme8ao4axa" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="6_2xj0s"] [ext_resource type="PackedScene" uid="uid://cmhem5xknjsvc" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="6_2xj0s"]
[ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_wpleu"] [ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_wpleu"]
[ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_vibb5"] [ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_vibb5"]
[ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_b4xgw"] [ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_b4xgw"]

View File

@@ -6,4 +6,11 @@
script = ExtResource("1_x720g") script = ExtResource("1_x720g")
Name = "Ballos" Name = "Ballos"
Description = "Round...." Description = "Round...."
MaximumHP = ""
ATK = ""
DEF = ""
Affinity = ""
Weakness = ""
Drop1 = ""
Drop2 = ""
metadata/_custom_type_script = ExtResource("1_x720g") metadata/_custom_type_script = ExtResource("1_x720g")

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=173 format=3 uid="uid://c5xijwxkg4pf6"] [gd_scene load_steps=173 format=3 uid="uid://dppmk4nx2le20"]
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_ueqp5"] [ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_ueqp5"]
[ext_resource type="Texture2D" uid="uid://bgkx485uy065" path="res://src/enemy/enemy_types/05. ballos/animations/WALK BACK/1.png" id="3_b3ny6"] [ext_resource type="Texture2D" uid="uid://bgkx485uy065" path="res://src/enemy/enemy_types/05. ballos/animations/WALK BACK/1.png" id="3_b3ny6"]

View File

@@ -1,11 +1,11 @@
[gd_scene load_steps=14 format=3 uid="uid://dlw5cvutvypxn"] [gd_scene load_steps=14 format=3 uid="uid://cd12cj1g37bn4"]
[ext_resource type="Script" uid="uid://djx5x5bhkku85" path="res://src/enemy/enemy_types/06. chariot/Chariot.cs" id="1_q1q0f"] [ext_resource type="Script" uid="uid://djx5x5bhkku85" path="res://src/enemy/enemy_types/06. chariot/Chariot.cs" id="1_q1q0f"]
[ext_resource type="PackedScene" uid="uid://dcm53j3rncxdm" path="res://src/enemy/enemy_types/06. chariot/ChariotModelView.tscn" id="3_q1q0f"] [ext_resource type="PackedScene" path="res://src/enemy/enemy_types/06. chariot/ChariotModelView.tscn" id="3_q1q0f"]
[ext_resource type="PackedScene" uid="uid://2nkvacxsd46b" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="4_ee8v4"] [ext_resource type="PackedScene" uid="uid://cn4fv2gv6raql" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="4_ee8v4"]
[ext_resource type="PackedScene" uid="uid://mqj4jju3870v" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="5_uv8in"] [ext_resource type="PackedScene" uid="uid://cve5oouhowtff" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="5_uv8in"]
[ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_582pa"] [ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_582pa"]
[ext_resource type="PackedScene" uid="uid://8bcme8ao4axa" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="6_cfqmf"] [ext_resource type="PackedScene" uid="uid://cmhem5xknjsvc" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="6_cfqmf"]
[ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_jemva"] [ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_jemva"]
[ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_ave6n"] [ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_ave6n"]
[ext_resource type="AudioStream" uid="uid://daye7334d7rfe" path="res://src/audio/sfx/ENEMY_CHARIOT_DEATH.ogg" id="9_cfqmf"] [ext_resource type="AudioStream" uid="uid://daye7334d7rfe" path="res://src/audio/sfx/ENEMY_CHARIOT_DEATH.ogg" id="9_cfqmf"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=1244 format=3 uid="uid://dcm53j3rncxdm"] [gd_scene load_steps=1244 format=3 uid="uid://dwgq2bxolnx8l"]
[ext_resource type="Script" uid="uid://ckxqmb4tu4rml" path="res://src/enemy/enemy_types/06. chariot/ChariotModelView.cs" id="1_behrq"] [ext_resource type="Script" uid="uid://ckxqmb4tu4rml" path="res://src/enemy/enemy_types/06. chariot/ChariotModelView.cs" id="1_behrq"]
[ext_resource type="Texture2D" uid="uid://2gwychj1wbtx" path="res://src/enemy/enemy_types/06. chariot/animations/APPEAR/F/0051.png" id="2_1844k"] [ext_resource type="Texture2D" uid="uid://2gwychj1wbtx" path="res://src/enemy/enemy_types/06. chariot/animations/APPEAR/F/0051.png" id="2_1844k"]

View File

@@ -6,4 +6,11 @@
script = ExtResource("1_2xvhx") script = ExtResource("1_2xvhx")
Name = "Chinte" Name = "Chinte"
Description = "That's puppy" Description = "That's puppy"
MaximumHP = ""
ATK = ""
DEF = ""
Affinity = ""
Weakness = ""
Drop1 = ""
Drop2 = ""
metadata/_custom_type_script = ExtResource("1_2xvhx") metadata/_custom_type_script = ExtResource("1_2xvhx")

View File

@@ -1,11 +1,11 @@
[gd_scene load_steps=14 format=3 uid="uid://c6tqt27ql8s35"] [gd_scene load_steps=14 format=3 uid="uid://b5mesmb7gn64o"]
[ext_resource type="Script" uid="uid://fwtjthix6awv" path="res://src/enemy/enemy_types/07. chinthe/Chinthe.cs" id="1_120m2"] [ext_resource type="Script" uid="uid://fwtjthix6awv" path="res://src/enemy/enemy_types/07. chinthe/Chinthe.cs" id="1_120m2"]
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="3_567xa"] [ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="3_567xa"]
[ext_resource type="PackedScene" uid="uid://byd7cwxq1be6f" path="res://src/enemy/enemy_types/07. chinthe/ChintheModelView.tscn" id="3_ncr2e"] [ext_resource type="PackedScene" path="res://src/enemy/enemy_types/07. chinthe/ChintheModelView.tscn" id="3_ncr2e"]
[ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_24q6i"] [ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_24q6i"]
[ext_resource type="PackedScene" uid="uid://mqj4jju3870v" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="6_t7elt"] [ext_resource type="PackedScene" uid="uid://cve5oouhowtff" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="6_t7elt"]
[ext_resource type="PackedScene" uid="uid://8bcme8ao4axa" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="7_24q6i"] [ext_resource type="PackedScene" uid="uid://cmhem5xknjsvc" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="7_24q6i"]
[ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_q6h01"] [ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_q6h01"]
[ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_a4ku4"] [ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_a4ku4"]
@@ -21,6 +21,13 @@ radius = 1.0
script = ExtResource("3_567xa") script = ExtResource("3_567xa")
Name = "Chinthe" Name = "Chinthe"
Description = "pupy" Description = "pupy"
MaximumHP = ""
ATK = ""
DEF = ""
Affinity = ""
Weakness = ""
Drop1 = ""
Drop2 = ""
metadata/_custom_type_script = "uid://dlsgyx4i1jmp3" metadata/_custom_type_script = "uid://dlsgyx4i1jmp3"
[sub_resource type="SphereShape3D" id="SphereShape3D_8vcnq"] [sub_resource type="SphereShape3D" id="SphereShape3D_8vcnq"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=503 format=3 uid="uid://byd7cwxq1be6f"] [gd_scene load_steps=503 format=3 uid="uid://de6e8yv6mv4fe"]
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_6dej3"] [ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_6dej3"]
[ext_resource type="Texture2D" uid="uid://dnd6d5cx7x7i8" path="res://src/enemy/enemy_types/07. chinthe/animations/CHINTHE - RERENDER/BACK/0400.png" id="2_3sdh3"] [ext_resource type="Texture2D" uid="uid://dnd6d5cx7x7i8" path="res://src/enemy/enemy_types/07. chinthe/animations/CHINTHE - RERENDER/BACK/0400.png" id="2_3sdh3"]

View File

@@ -1,10 +1,10 @@
[gd_scene load_steps=15 format=3 uid="uid://fosk3kt7vp8d"] [gd_scene load_steps=15 format=3 uid="uid://c80m2fklb7ob2"]
[ext_resource type="Script" uid="uid://dauir5q616wyq" path="res://src/enemy/enemy_types/08a. Ambassador/Ambassador.cs" id="1_m2guv"] [ext_resource type="Script" uid="uid://dauir5q616wyq" path="res://src/enemy/enemy_types/08a. Ambassador/Ambassador.cs" id="1_m2guv"]
[ext_resource type="PackedScene" uid="uid://2nkvacxsd46b" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="4_hqy0f"] [ext_resource type="PackedScene" uid="uid://cn4fv2gv6raql" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="4_hqy0f"]
[ext_resource type="PackedScene" uid="uid://c2i8ylr3y0bri" path="res://src/enemy/enemy_types/08a. Ambassador/AmbassadorModelView.tscn" id="4_pjmem"] [ext_resource type="PackedScene" uid="uid://7eo16vsbrgi3" path="res://src/enemy/enemy_types/08a. Ambassador/AmbassadorModelView.tscn" id="4_pjmem"]
[ext_resource type="PackedScene" uid="uid://mqj4jju3870v" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="5_gy5yi"] [ext_resource type="PackedScene" uid="uid://cve5oouhowtff" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="5_gy5yi"]
[ext_resource type="PackedScene" uid="uid://8bcme8ao4axa" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="6_7f1qq"] [ext_resource type="PackedScene" uid="uid://cmhem5xknjsvc" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="6_7f1qq"]
[ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_sjoyv"] [ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_sjoyv"]
[ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_e5lq0"] [ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_e5lq0"]
[ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_qyfut"] [ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_qyfut"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=300 format=3 uid="uid://c2i8ylr3y0bri"] [gd_scene load_steps=300 format=3 uid="uid://7eo16vsbrgi3"]
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_h27bt"] [ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_h27bt"]
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_yyynn"] [ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_yyynn"]
@@ -260,7 +260,7 @@
[ext_resource type="Texture2D" uid="uid://jcs07eo1xqtj" path="res://src/enemy/enemy_types/08a. Ambassador/animations/SIDE/Layer 171.png" id="258_q2wum"] [ext_resource type="Texture2D" uid="uid://jcs07eo1xqtj" path="res://src/enemy/enemy_types/08a. Ambassador/animations/SIDE/Layer 171.png" id="258_q2wum"]
[ext_resource type="Texture2D" uid="uid://btrum7jo404t0" path="res://src/enemy/enemy_types/08a. Ambassador/animations/SIDE/Layer 172.png" id="259_br04c"] [ext_resource type="Texture2D" uid="uid://btrum7jo404t0" path="res://src/enemy/enemy_types/08a. Ambassador/animations/SIDE/Layer 172.png" id="259_br04c"]
[ext_resource type="AudioStream" uid="uid://bgumf0x52xmby" path="res://src/audio/sfx/enemy_ambassador_kick.ogg" id="260_dcx20"] [ext_resource type="AudioStream" uid="uid://bgumf0x52xmby" path="res://src/audio/sfx/enemy_ambassador_kick.ogg" id="260_dcx20"]
[ext_resource type="PackedScene" uid="uid://diaxvpmwgl65u" path="res://src/enemy/TwoAttacksEnemyAnimationTree.tscn" id="261_a705x"] [ext_resource type="PackedScene" path="res://src/enemy/TwoAttacksEnemyAnimationTree.tscn" id="261_a705x"]
[ext_resource type="AudioStream" uid="uid://ugc77goiwht0" path="res://src/audio/sfx/enemy_ambassador_punch.ogg" id="261_evddb"] [ext_resource type="AudioStream" uid="uid://ugc77goiwht0" path="res://src/audio/sfx/enemy_ambassador_punch.ogg" id="261_evddb"]
[ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="262_rmbbl"] [ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="262_rmbbl"]
[ext_resource type="AnimationNodeStateMachine" uid="uid://cy2ngl55c0rws" path="res://src/enemy/animation_state_machines/WalkingStateMachine.tres" id="263_312rt"] [ext_resource type="AnimationNodeStateMachine" uid="uid://cy2ngl55c0rws" path="res://src/enemy/animation_state_machines/WalkingStateMachine.tres" id="263_312rt"]

View File

@@ -1,11 +1,11 @@
[gd_scene load_steps=15 format=3 uid="uid://c5gbaybqm4cuk"] [gd_scene load_steps=15 format=3 uid="uid://dxxs80o40exdi"]
[ext_resource type="Script" uid="uid://dauir5q616wyq" path="res://src/enemy/enemy_types/08a. Ambassador/Ambassador.cs" id="1_4nav4"] [ext_resource type="Script" uid="uid://dauir5q616wyq" path="res://src/enemy/enemy_types/08a. Ambassador/Ambassador.cs" id="1_4nav4"]
[ext_resource type="PackedScene" uid="uid://72lbcmp4bcx4" path="res://src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorSmallModelView.tscn" id="4_hqkeq"] [ext_resource type="PackedScene" uid="uid://d02te8cwjistl" path="res://src/enemy/enemy_types/08b. Ambassador (red)/AmbassadorSmallModelView.tscn" id="4_hqkeq"]
[ext_resource type="PackedScene" uid="uid://2nkvacxsd46b" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="5_65xvc"] [ext_resource type="PackedScene" uid="uid://cn4fv2gv6raql" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="5_65xvc"]
[ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_a21yr"] [ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_a21yr"]
[ext_resource type="PackedScene" uid="uid://mqj4jju3870v" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="6_v4xmn"] [ext_resource type="PackedScene" uid="uid://cve5oouhowtff" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="6_v4xmn"]
[ext_resource type="PackedScene" uid="uid://8bcme8ao4axa" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="7_a21yr"] [ext_resource type="PackedScene" uid="uid://cmhem5xknjsvc" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="7_a21yr"]
[ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_o0cbq"] [ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_o0cbq"]
[ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_u6pfl"] [ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_u6pfl"]
[ext_resource type="AudioStream" uid="uid://bu3up7dn13xyo" path="res://src/audio/sfx/enemy_ambassador_death.ogg" id="9_v4xmn"] [ext_resource type="AudioStream" uid="uid://bu3up7dn13xyo" path="res://src/audio/sfx/enemy_ambassador_death.ogg" id="9_v4xmn"]

View File

@@ -1,4 +1,4 @@
[gd_scene load_steps=300 format=3 uid="uid://72lbcmp4bcx4"] [gd_scene load_steps=300 format=3 uid="uid://d02te8cwjistl"]
[ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_a8qtn"] [ext_resource type="Script" uid="uid://cvr1qimxpignl" path="res://src/enemy/EnemyModelView2D.cs" id="1_a8qtn"]
[ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_xa3ug"] [ext_resource type="Script" uid="uid://dlsgyx4i1jmp3" path="res://src/enemy/EnemyLoreInfo.cs" id="2_xa3ug"]
@@ -262,7 +262,7 @@
[ext_resource type="Texture2D" uid="uid://by2vqyh68egwr" path="res://src/enemy/enemy_types/08b. Ambassador (red)/animations/SIDE/0199.png" id="260_jtq5d"] [ext_resource type="Texture2D" uid="uid://by2vqyh68egwr" path="res://src/enemy/enemy_types/08b. Ambassador (red)/animations/SIDE/0199.png" id="260_jtq5d"]
[ext_resource type="AudioStream" uid="uid://bgumf0x52xmby" path="res://src/audio/sfx/enemy_ambassador_kick.ogg" id="261_qerwx"] [ext_resource type="AudioStream" uid="uid://bgumf0x52xmby" path="res://src/audio/sfx/enemy_ambassador_kick.ogg" id="261_qerwx"]
[ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="261_xxvov"] [ext_resource type="Texture2D" uid="uid://dafpnwkwcukp4" path="res://src/vfx/shadow_test_1.png" id="261_xxvov"]
[ext_resource type="PackedScene" uid="uid://diaxvpmwgl65u" path="res://src/enemy/TwoAttacksEnemyAnimationTree.tscn" id="262_a3dro"] [ext_resource type="PackedScene" path="res://src/enemy/TwoAttacksEnemyAnimationTree.tscn" id="262_a3dro"]
[ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="263_qerwx"] [ext_resource type="AnimationNodeStateMachine" uid="uid://co7lshemjrro8" path="res://src/enemy/animation_state_machines/IdleStateMachine.tres" id="263_qerwx"]
[ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="264_xxvov"] [ext_resource type="AnimationNodeStateMachine" uid="uid://cbq8xog50cjjy" path="res://src/enemy/animation_state_machines/PrimaryAttackStateMachine.tres" id="264_xxvov"]
[ext_resource type="AnimationNodeStateMachine" uid="uid://clybvwx3itfeo" path="res://src/enemy/animation_state_machines/SecondaryAttackStateMachine.tres" id="265_pta34"] [ext_resource type="AnimationNodeStateMachine" uid="uid://clybvwx3itfeo" path="res://src/enemy/animation_state_machines/SecondaryAttackStateMachine.tres" id="265_pta34"]

View File

@@ -1,11 +1,11 @@
[gd_scene load_steps=15 format=3 uid="uid://b4oliop60eghn"] [gd_scene load_steps=15 format=3 uid="uid://dbgecijg766m6"]
[ext_resource type="Script" uid="uid://dauir5q616wyq" path="res://src/enemy/enemy_types/08a. Ambassador/Ambassador.cs" id="1_ln0kc"] [ext_resource type="Script" uid="uid://dauir5q616wyq" path="res://src/enemy/enemy_types/08a. Ambassador/Ambassador.cs" id="1_ln0kc"]
[ext_resource type="PackedScene" uid="uid://lc5koiqn1sca" path="res://src/enemy/enemy_types/08c. Ambassador (steel)/AmbassadorSteelModelView.tscn" id="4_kdt1g"] [ext_resource type="PackedScene" uid="uid://g8km112r1lqa" path="res://src/enemy/enemy_types/08c. Ambassador (steel)/AmbassadorSteelModelView.tscn" id="4_kdt1g"]
[ext_resource type="PackedScene" uid="uid://2nkvacxsd46b" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="5_fmnae"] [ext_resource type="PackedScene" uid="uid://cn4fv2gv6raql" path="res://src/enemy/behaviors/PatrolBehavior.tscn" id="5_fmnae"]
[ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_5r3ee"] [ext_resource type="AudioStream" uid="uid://ba8xendacec6" path="res://src/audio/sfx/item_kyuu_layer_2.ogg" id="6_5r3ee"]
[ext_resource type="PackedScene" uid="uid://mqj4jju3870v" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="6_g5uri"] [ext_resource type="PackedScene" uid="uid://cve5oouhowtff" path="res://src/enemy/behaviors/FollowBehavior.tscn" id="6_g5uri"]
[ext_resource type="PackedScene" uid="uid://8bcme8ao4axa" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="7_5r3ee"] [ext_resource type="PackedScene" uid="uid://cmhem5xknjsvc" path="res://src/enemy/behaviors/EngagePlayerBehavior.tscn" id="7_5r3ee"]
[ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_6o7lk"] [ext_resource type="AudioStream" uid="uid://b7ycb6qvitpmw" path="res://src/audio/sfx/player_HITENEMY_3.ogg" id="7_6o7lk"]
[ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_3p55n"] [ext_resource type="AudioStream" uid="uid://bf7adfdd857hw" path="res://src/audio/sfx/enemy_morph.ogg" id="8_3p55n"]
[ext_resource type="AudioStream" uid="uid://bu3up7dn13xyo" path="res://src/audio/sfx/enemy_ambassador_death.ogg" id="9_g5uri"] [ext_resource type="AudioStream" uid="uid://bu3up7dn13xyo" path="res://src/audio/sfx/enemy_ambassador_death.ogg" id="9_g5uri"]

Some files were not shown because too many files have changed in this diff Show More