Collaborative changes

This commit is contained in:
2026-04-22 21:26:21 -07:00
parent 6f79c64924
commit c6b958c577
39 changed files with 7634 additions and 1875 deletions

View File

@@ -113,6 +113,7 @@ public enum SoundEffect
TurnAllEnemiesIntoHealingItems, TurnAllEnemiesIntoHealingItems,
WeaponQuickSlash, WeaponQuickSlash,
WeaponSlowSlash, WeaponSlowSlash,
WeaponPlasmaSword WeaponPlasmaSword,
Eucharistia,
} }

View File

@@ -3,12 +3,12 @@
importer="oggvorbisstr" importer="oggvorbisstr"
type="AudioStreamOggVorbis" type="AudioStreamOggVorbis"
uid="uid://cgk17d8erskht" uid="uid://cgk17d8erskht"
path="res://.godot/imported/amb_ocean.ogg-01a11020be2db82b0e22d1423cb26aa3.oggvorbisstr" path="res://.godot/imported/amb_ocean.ogg-f4ee3d30caf9194f7881a02c6507d38a.oggvorbisstr"
[deps] [deps]
source_file="res://src/audio/amb/amb_ocean.ogg" source_file="res://src/audio/AMB/amb_ocean.ogg"
dest_files=["res://.godot/imported/amb_ocean.ogg-01a11020be2db82b0e22d1423cb26aa3.oggvorbisstr"] dest_files=["res://.godot/imported/amb_ocean.ogg-f4ee3d30caf9194f7881a02c6507d38a.oggvorbisstr"]
[params] [params]

View File

@@ -1,15 +1,27 @@
using Chickensoft.AutoInject; using Chickensoft.AutoInject;
using Chickensoft.Introspection; using Chickensoft.Introspection;
using Godot;
using System.Linq;
using Zennysoft.Game.Ma; using Zennysoft.Game.Ma;
using Zennysoft.Ma.Adapter;
[Meta(typeof(IAutoNode))] [Meta(typeof(IAutoNode))]
public partial class EdenPillarModelView : EnemyModelView3D public partial class EdenPillarModelView : EnemyModelView3D
{ {
public override void _Notification(int what) => this.Notify(what); public override void _Notification(int what) => this.Notify(what);
[Dependency] protected IPlayer _player => this.DependOn(() => GetParent().GetChildren().OfType<IPlayer>().Single());
[Node] public Node3D Pivot { get; set; }
public new void OnReady() public new void OnReady()
{ {
SetPhysicsProcess(true);
}
public void OnPhysicsProcess(double delta)
{
var rotationAngle = GetRotationAngle(Pivot);
} }
public override void PlayHitAnimation() public override void PlayHitAnimation()
@@ -21,4 +33,12 @@ public partial class EdenPillarModelView : EnemyModelView3D
{ {
_animationPlayer.Play("defeated"); _animationPlayer.Play("defeated");
} }
private float GetRotationAngle(Node3D rotationNode)
{
var target = new Vector3(_player.GlobalPosition.X, Position.Y, _player.GlobalPosition.Z);
rotationNode.LookAt(target, Vector3.Up, true);
rotationNode.RotateY(Rotation.Y);
return rotationNode.Rotation.Y;
}
} }

View File

@@ -552,7 +552,6 @@ _data = {
[sub_resource type="SphereShape3D" id="SphereShape3D_5g3vy"] [sub_resource type="SphereShape3D" id="SphereShape3D_5g3vy"]
[node name="EdenProjectile" type="RigidBody3D"] [node name="EdenProjectile" type="RigidBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
collision_layer = 0 collision_layer = 0
gravity_scale = 0.0 gravity_scale = 0.0
contact_monitor = true contact_monitor = true
@@ -570,7 +569,7 @@ texture_filter = 0
render_priority = 100 render_priority = 100
sprite_frames = SubResource("SpriteFrames_sqw6w") sprite_frames = SubResource("SpriteFrames_sqw6w")
autoplay = "default" autoplay = "default"
frame_progress = 0.924353 frame_progress = 0.692412
[node name="Area3D" type="Area3D" parent="Bullet/AnimatedSprite3D"] [node name="Area3D" type="Area3D" parent="Bullet/AnimatedSprite3D"]
unique_name_in_owner = true unique_name_in_owner = true

View File

@@ -472,7 +472,7 @@ public partial class Game : Node3D, IGame
case ItemTag.DamagesPlayer: case ItemTag.DamagesPlayer:
_effectService.DamagesPlayer(boxItem.Stats.DamageToPlayer); _effectService.DamagesPlayer(boxItem.Stats.DamageToPlayer);
InventoryEventNotification.Invoke($"{boxItem.Stats.DamageToPlayer} damage done to self."); InventoryEventNotification.Invoke($"{boxItem.Stats.DamageToPlayer} damage done to self.");
await ToSignal(GetTree().CreateTimer(2f), "timeout"); await ToSignal(GetTree().CreateTimer(0.5f), "timeout");
GameRepo.CloseInventory(); GameRepo.CloseInventory();
break; break;
case ItemTag.ContainsAccessory: case ItemTag.ContainsAccessory:
@@ -560,15 +560,39 @@ public partial class Game : Node3D, IGame
foreach (var item in _player.Inventory.Items.ToList()) foreach (var item in _player.Inventory.Items.ToList())
ThrowItem(item); ThrowItem(item);
_player.Inventory.Items.Clear(); _player.Inventory.Items.Clear();
InventoryEventNotification.Invoke($"All items have been ejected from inventory.");
await ToSignal(GetTree().CreateTimer(2f), "timeout");
GameRepo.CloseInventory(); GameRepo.CloseInventory();
BroadcastMessage($"All items have been ejected from inventory.");
break; break;
} }
} }
private void EnactConsumableItemEffects(ConsumableItem consumableItem) private void EnactConsumableItemEffects(ConsumableItem consumableItem)
{ {
if (consumableItem.HealHPAmount > 0 && consumableItem.HealVTAmount > 0)
{
SfxDatabase.Instance.Play(SoundEffect.Eucharistia);
if (_player.HealthComponent.AtFullHealth && _player.VTComponent.AtFullVT)
{
_player.HealthComponent.RaiseMaximumHP(consumableItem.RaiseHPAmount, true);
_player.VTComponent.RaiseMaximumVT(consumableItem.RaiseVTAmount, true);
InventoryEventNotification.Invoke($"Raised maximum HP by {consumableItem.RaiseHPAmount}." + System.Environment.NewLine + $"Raised maximum VT by {consumableItem.RaiseVTAmount}.");
}
else
{
_player.HealthComponent.Heal(consumableItem.HealHPAmount);
_player.VTComponent.Restore(consumableItem.HealVTAmount);
InventoryEventNotification.Invoke($"Restored {consumableItem.RaiseHPAmount}HP." + System.Environment.NewLine + $"Restored {consumableItem.RaiseVTAmount}VT.");
}
if (_player.StatusEffectComponent.Rust.Value)
{
_player.StatusEffectComponent.Reset();
InventoryEventNotification.Invoke($"All status afflictments have faded.");
}
return;
}
if (_player.HealthComponent.AtFullHealth && consumableItem.RaiseHPAmount > 0) if (_player.HealthComponent.AtFullHealth && consumableItem.RaiseHPAmount > 0)
{ {
_player.HealthComponent.RaiseMaximumHP(consumableItem.RaiseHPAmount, true); _player.HealthComponent.RaiseMaximumHP(consumableItem.RaiseHPAmount, true);
@@ -586,13 +610,13 @@ public partial class Game : Node3D, IGame
var currentHP = _player.HealthComponent.CurrentHP; var currentHP = _player.HealthComponent.CurrentHP;
_player.HealthComponent.Heal(consumableItem.HealHPAmount); _player.HealthComponent.Heal(consumableItem.HealHPAmount);
SfxDatabase.Instance.Play(SoundEffect.HealHP); SfxDatabase.Instance.Play(SoundEffect.HealHP);
InventoryEventNotification.Invoke($"Restored {consumableItem.HealHPAmount} HP."); InventoryEventNotification.Invoke($"Restored {consumableItem.HealHPAmount}HP.");
} }
else if (consumableItem.HealVTAmount > 0) else if (consumableItem.HealVTAmount > 0)
{ {
_player.VTComponent.Restore(consumableItem.HealVTAmount); _player.VTComponent.Restore(consumableItem.HealVTAmount);
SfxDatabase.Instance.Play(SoundEffect.HealVT); SfxDatabase.Instance.Play(SoundEffect.HealVT);
InventoryEventNotification.Invoke($"Restored {consumableItem.HealVTAmount} VT."); InventoryEventNotification.Invoke($"Restored {consumableItem.HealVTAmount}VT.");
} }
if (consumableItem.Stats.HealsStatusAilments) if (consumableItem.Stats.HealsStatusAilments)
@@ -607,78 +631,74 @@ public partial class Game : Node3D, IGame
switch (effectItem.UsableItemTag) switch (effectItem.UsableItemTag)
{ {
case UsableItemTag.TeleportAllEnemiesToRoom: case UsableItemTag.TeleportAllEnemiesToRoom:
_effectService.TeleportEnemiesToCurrentRoom(GetTree().GetNodesInGroup("enemy").OfType<IEnemy>().ToList()); _effectService.TeleportEnemiesToCurrentRoom([.. GetTree().GetNodesInGroup("enemy").OfType<IEnemy>()]);
SfxDatabase.Instance.Play(SoundEffect.RecallEnemies); SfxDatabase.Instance.Play(SoundEffect.RecallEnemies);
InventoryEventNotification.Invoke($"All enemies have been summoned.");
await ToSignal(GetTree().CreateTimer(2f), "timeout");
GameRepo.CloseInventory(); GameRepo.CloseInventory();
BroadcastMessage($"All entities have been summoned.");
_player.PlaySpellFX(SpellFXEnum.DivinityRecall); _player.PlaySpellFX(SpellFXEnum.DivinityRecall);
break; break;
case UsableItemTag.KillHalfEnemiesInRoom: case UsableItemTag.KillHalfEnemiesInRoom:
_effectService.KillHalfEnemiesInRoom(); _effectService.KillHalfEnemiesInRoom();
InventoryEventNotification.Invoke($"The balance has been achieved.");
await ToSignal(GetTree().CreateTimer(2f), "timeout");
GameRepo.CloseInventory(); GameRepo.CloseInventory();
BroadcastMessage($"The balance has been achieved.");
break; break;
case UsableItemTag.TurnAllEnemiesIntoHealingItem: case UsableItemTag.TurnAllEnemiesIntoHealingItem:
_effectService.TurnAllEnemiesInRoomIntoHealingItem(); _effectService.TurnAllEnemiesInRoomIntoHealingItem();
InventoryEventNotification.Invoke($"Enemies in current room have been converted.");
await ToSignal(GetTree().CreateTimer(2f), "timeout");
GameRepo.CloseInventory(); GameRepo.CloseInventory();
BroadcastMessage($"Entities in current room have been converted.");
break; break;
case UsableItemTag.HealsAllInRoomToMaxHP: case UsableItemTag.HealsAllInRoomToMaxHP:
_effectService.HealAllEnemiesAndPlayerInRoomToFull(); _effectService.HealAllEnemiesAndPlayerInRoomToFull();
InventoryEventNotification.Invoke($"All present have been renewed.");
await ToSignal(GetTree().CreateTimer(2f), "timeout");
GameRepo.CloseInventory(); GameRepo.CloseInventory();
BroadcastMessage($"All present have been renewed.");
break; break;
case UsableItemTag.AbsorbHPFromAllEnemiesInRoom: case UsableItemTag.AbsorbHPFromAllEnemiesInRoom:
var hpAbsorbed = _effectService.AbsorbHPFromAllEnemiesInRoom(); var hpAbsorbed = _effectService.AbsorbHPFromAllEnemiesInRoom();
if (hpAbsorbed == 0) if (hpAbsorbed == 0)
{ {
InventoryEventNotification.Invoke($"No enemies present to absorb from or invalid location.");
await ToSignal(GetTree().CreateTimer(2f), "timeout");
GameRepo.CloseInventory(); GameRepo.CloseInventory();
BroadcastMessage($"No entities present to absorb from or invalid location.");
return; return;
} }
_player.HealthComponent.Heal(hpAbsorbed); _player.HealthComponent.Heal(hpAbsorbed);
InventoryEventNotification.Invoke($"Enemies have surrendered {hpAbsorbed} to you.");
await ToSignal(GetTree().CreateTimer(2f), "timeout");
GameRepo.CloseInventory(); GameRepo.CloseInventory();
BroadcastMessage($"Entities have surrendered {hpAbsorbed}HP to you.");
_player.PlaySpellFX(SpellFXEnum.Kyuuketsuki); _player.PlaySpellFX(SpellFXEnum.Kyuuketsuki);
break; break;
case UsableItemTag.DealElementalDamageToAllEnemiesInRoom: case UsableItemTag.DealElementalDamageToAllEnemiesInRoom:
_effectService.DealElementalDamageToAllEnemiesInRoom(effectItem.Stats.ElementalDamageType); _effectService.DealElementalDamageToAllEnemiesInRoom(effectItem.Stats.ElementalDamageType);
InventoryEventNotification.Invoke($"All enemies present have taken {effectItem.Stats.ElementalDamageType} to you.");
await ToSignal(GetTree().CreateTimer(2f), "timeout");
GameRepo.CloseInventory(); GameRepo.CloseInventory();
BroadcastMessage($"All entities present have taken {effectItem.Stats.ElementalDamageType} to you.");
break; break;
case UsableItemTag.SwapHPAndVT: case UsableItemTag.SwapHPAndVT:
_effectService.SwapHPandVT(); _effectService.SwapHPandVT();
InventoryEventNotification.Invoke($"HP and VT have been traded."); InventoryEventNotification.Invoke($"HP and VT have been traded.");
await ToSignal(GetTree().CreateTimer(2f), "timeout"); await ToSignal(GetTree().CreateTimer(0.5f), "timeout");
GameRepo.CloseInventory();
break; break;
case UsableItemTag.RaiseCurrentWeaponAttack: case UsableItemTag.RaiseCurrentWeaponAttack:
if (string.IsNullOrEmpty(_player.EquipmentComponent.EquippedWeapon.Value.ItemName)) if (string.IsNullOrEmpty(_player.EquipmentComponent.EquippedWeapon.Value.ItemName))
return; return;
_effectService.RaiseCurrentWeaponAttack(); _effectService.RaiseCurrentWeaponAttack();
InventoryEventNotification.Invoke($"{_player.EquipmentComponent.EquippedWeapon.Value}'s attack has risen by 1."); InventoryEventNotification.Invoke($"{_player.EquipmentComponent.EquippedWeapon.Value}'s attack has risen by 1.");
await ToSignal(GetTree().CreateTimer(0.5f), "timeout");
break; break;
case UsableItemTag.RaiseCurrentDefenseArmor: case UsableItemTag.RaiseCurrentDefenseArmor:
if (string.IsNullOrEmpty(_player.EquipmentComponent.EquippedArmor.Value.ItemName)) if (string.IsNullOrEmpty(_player.EquipmentComponent.EquippedArmor.Value.ItemName))
return; return;
_effectService.RaiseCurrentArmorDefense(); _effectService.RaiseCurrentArmorDefense();
InventoryEventNotification.Invoke($"{_player.EquipmentComponent.EquippedArmor.Value}'s defense has risen by 1."); InventoryEventNotification.Invoke($"{_player.EquipmentComponent.EquippedArmor.Value}'s defense has risen by 1.");
await ToSignal(GetTree().CreateTimer(0.5f), "timeout");
break; break;
case UsableItemTag.RaiseLevel: case UsableItemTag.RaiseLevel:
_effectService.RaiseLevel(); _effectService.RaiseLevel();
InventoryEventNotification.Invoke($"Level increased to {_player.ExperiencePointsComponent.Level.Value}"); InventoryEventNotification.Invoke($"Level increased to {_player.ExperiencePointsComponent.Level.Value}");
await ToSignal(GetTree().CreateTimer(0.5f), "timeout");
break; break;
case UsableItemTag.LowerLevel: case UsableItemTag.LowerLevel:
_effectService.LowerLevel(); _effectService.LowerLevel();
InventoryEventNotification.Invoke($"Level decreased to {_player.ExperiencePointsComponent.Level.Value}"); InventoryEventNotification.Invoke($"Level decreased to {_player.ExperiencePointsComponent.Level.Value}");
await ToSignal(GetTree().CreateTimer(0.5f), "timeout");
break; break;
case UsableItemTag.LowerCurrentDefenseArmor: case UsableItemTag.LowerCurrentDefenseArmor:
if (string.IsNullOrEmpty(_player.EquipmentComponent.EquippedArmor.Value.ItemName)) if (string.IsNullOrEmpty(_player.EquipmentComponent.EquippedArmor.Value.ItemName))
@@ -706,7 +726,7 @@ public partial class Game : Node3D, IGame
InventoryEventNotification.Invoke($"Moved to exit room."); InventoryEventNotification.Invoke($"Moved to exit room.");
else else
InventoryEventNotification.Invoke($"Unable to locate exit room."); InventoryEventNotification.Invoke($"Unable to locate exit room.");
await ToSignal(GetTree().CreateTimer(2f), "timeout"); await ToSignal(GetTree().CreateTimer(0.5f), "timeout");
GameRepo.CloseInventory(); GameRepo.CloseInventory();
break; break;
case UsableItemTag.IncreaseAttack: case UsableItemTag.IncreaseAttack:

View File

@@ -134,14 +134,12 @@ public class EffectService
public void RandomEffect() public void RandomEffect()
{ {
var spells = _player.Inventory.Items.OfType<EffectItem>().Where(x => x.UsableItemTag != UsableItemTag.RandomEffect).ToList(); var randomEffects = Enum.GetValues(typeof(UsableItemTag)).Cast<UsableItemTag>().Except([UsableItemTag.RandomEffect, UsableItemTag.None]).ToList();
if (spells.Count > 0)
{
var rng = new RandomNumberGenerator(); var rng = new RandomNumberGenerator();
rng.Randomize(); rng.Randomize();
var index = rng.RandiRange(0, spells.Count - 1); var index = rng.RandiRange(0, randomEffects.Count - 1);
_game.UseItem(spells[index]); var randomItem = new EffectItem() { Stats = new EffectItemStats() { UsableItemTag = randomEffects[index], BonusAttack = 1, BonusDefense = 1, BonusLuck = 10 } };
} _game.UseItem(randomItem);
} }
public void DoubleExp() public void DoubleExp()

View File

@@ -12,7 +12,7 @@ _igneousResistance = 0.0
_ferrumResistance = 0.0 _ferrumResistance = 0.0
_holyResistance = 0.0 _holyResistance = 0.0
_curseResistance = 0.0 _curseResistance = 0.0
ArmorTag = 0 ArmorTag = 1
Name = "Holy Barrier" Name = "Holy Barrier"
StatDescription = "Loses 1 DEF every time the wearer is hit." StatDescription = "Loses 1 DEF every time the wearer is hit."
FlavorText = "Armor from a country of renowned spell casters. FlavorText = "Armor from a country of renowned spell casters.

View File

@@ -1,13 +1,15 @@
using Chickensoft.AutoInject; using Chickensoft.AutoInject;
using Chickensoft.Collections;
using Chickensoft.Introspection; using Chickensoft.Introspection;
using Chickensoft.Serialization; using Chickensoft.Serialization;
using Godot; using Godot;
using Zennysoft.Game.Implementation;
using Zennysoft.Ma.Adapter; using Zennysoft.Ma.Adapter;
namespace Zennysoft.Game.Ma; namespace Zennysoft.Game.Ma;
[Meta(typeof(IAutoNode)), Id("effect_item")] [Meta(typeof(IAutoNode)), Id("effect_item")]
public partial class EffectItem : Node3D, IBaseInventoryItem public partial class EffectItem : Node3D, IBaseInventoryItem, IStackable
{ {
public override void _Notification(int what) => this.Notify(what); public override void _Notification(int what) => this.Notify(what);
@@ -16,6 +18,7 @@ public partial class EffectItem : Node3D, IBaseInventoryItem
public override void _Ready() public override void _Ready()
{ {
_sprite.Texture = Stats.Texture; _sprite.Texture = Stats.Texture;
Count = new AutoProp<int>(Stats.InitialCount);
} }
public string ItemName => Stats.Name; public string ItemName => Stats.Name;
@@ -41,5 +44,9 @@ public partial class EffectItem : Node3D, IBaseInventoryItem
[Save("effect_item_stats")] [Save("effect_item_stats")]
public EffectItemStats Stats { get; set; } = new EffectItemStats(); public EffectItemStats Stats { get; set; } = new EffectItemStats();
[Save("ammo_item_count")]
public AutoProp<int> Count { get; private set; } = new AutoProp<int>(3);
public Texture2D GetTexture() => Stats.Texture; public Texture2D GetTexture() => Stats.Texture;
public void SetCount(int count) => Count.OnNext(count);
} }

View File

@@ -17,4 +17,8 @@ public partial class EffectItemStats : InventoryItemStats
[Export] [Export]
[Save("effect_item_element")] [Save("effect_item_element")]
public ElementType ElementalDamageType { get; set; } public ElementType ElementalDamageType { get; set; }
[Export]
[Save("effect_item_initial_count")]
public int InitialCount { get; set; } = 0;
} }

View File

@@ -7,6 +7,7 @@
script = ExtResource("2_7dbb6") script = ExtResource("2_7dbb6")
UsableItemTag = 17 UsableItemTag = 17
ElementalDamageType = 0 ElementalDamageType = 0
InitialCount = 3
Name = "Spell Sign: Ablution" Name = "Spell Sign: Ablution"
StatDescription = "Lowers user or target to 1 HP." StatDescription = "Lowers user or target to 1 HP."
FlavorText = "A spell that induces extreme vulnerability and a return to a purer state. FlavorText = "A spell that induces extreme vulnerability and a return to a purer state.

View File

@@ -7,6 +7,7 @@
script = ExtResource("2_n24ed") script = ExtResource("2_n24ed")
UsableItemTag = 33 UsableItemTag = 33
ElementalDamageType = 0 ElementalDamageType = 0
InitialCount = 1
Name = "Spell Sign: Anamnesis" Name = "Spell Sign: Anamnesis"
StatDescription = "Randomly identifies one held unidentified item." StatDescription = "Randomly identifies one held unidentified item."
FlavorText = "A spell that traverses the metaphysical tree of genetic memory in search of answers. FlavorText = "A spell that traverses the metaphysical tree of genetic memory in search of answers.

View File

@@ -7,6 +7,7 @@
script = ExtResource("2_7c6oa") script = ExtResource("2_7c6oa")
UsableItemTag = 27 UsableItemTag = 27
ElementalDamageType = 0 ElementalDamageType = 0
InitialCount = 1
Name = "Spell Sign: Cell Degradation" Name = "Spell Sign: Cell Degradation"
StatDescription = "Lowers all stats." StatDescription = "Lowers all stats."
FlavorText = "A spell for breaking down one's enemies on a cellular level. FlavorText = "A spell for breaking down one's enemies on a cellular level.

View File

@@ -7,6 +7,7 @@
script = ExtResource("2_o41ik") script = ExtResource("2_o41ik")
UsableItemTag = 11 UsableItemTag = 11
ElementalDamageType = 0 ElementalDamageType = 0
InitialCount = 1
Name = "Spell Sign: Cloth Resolution" Name = "Spell Sign: Cloth Resolution"
StatDescription = "Raises the effectiveness of currently equipped armor." StatDescription = "Raises the effectiveness of currently equipped armor."
FlavorText = "A spell for strengthening armor. FlavorText = "A spell for strengthening armor.

View File

@@ -7,6 +7,7 @@
script = ExtResource("2_n1557") script = ExtResource("2_n1557")
UsableItemTag = 13 UsableItemTag = 13
ElementalDamageType = 0 ElementalDamageType = 0
InitialCount = 1
Name = "Spell Sign: Cosmos" Name = "Spell Sign: Cosmos"
StatDescription = "Increases the users level." StatDescription = "Increases the users level."
FlavorText = "A summoning spell that draws energy from the harmony of the solar system in order to bolster one's soul. FlavorText = "A summoning spell that draws energy from the harmony of the solar system in order to bolster one's soul.

View File

@@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="JewelStats" load_steps=3 format=3 uid="uid://c60ej6ce8s1ox"]
[ext_resource type="Texture2D" uid="uid://esqaln68twiw" path="res://src/items/Icons/Unidentified Item.png" id="1_ne34t"]
[ext_resource type="Script" uid="uid://btikba31yb0tl" path="res://src/items/jewels/JewelStats.cs" id="2_nwwms"]
[resource]
script = ExtResource("2_nwwms")
JewelTag = 0
Name = "Unidentified Jewel"
StatDescription = ""
FlavorText = ""
SpawnRate = 0.15
BonusAttack = 0
BonusDefense = 0
BonusLuck = 0
BonusHP = 0
BonusVT = 0
AeolicResistance = 0
TelluricResistance = 0
HydricResistance = 0
IgneousResistance = 0
FerrumResistance = 0
HolyResistance = 0
CurseResistance = 0
ThrowSpeed = 12.0
ThrowDamage = 5
ItemTag = 2
Texture = ExtResource("1_ne34t")
metadata/_custom_type_script = "uid://btikba31yb0tl"

View File

@@ -0,0 +1,32 @@
[gd_resource type="Resource" script_class="WeaponStats" load_steps=3 format=3 uid="uid://b3t6govsnap4p"]
[ext_resource type="Texture2D" uid="uid://dfpc2ighwlxjk" path="res://src/items/weapons/textures/joyeuse.png" id="1_yuqyb"]
[ext_resource type="Script" uid="uid://cc7byqeolw5y4" path="res://src/items/weapons/WeaponStats.cs" id="2_fr8u4"]
[resource]
script = ExtResource("2_fr8u4")
AttackSpeed = 1.0
WeaponElement = 3
WeaponTag = 0
SelfDamage = 0
SoundEffect = 23
Name = "Joyeuse"
StatDescription = "Attacks twice."
FlavorText = "Placeholder text, something about blade found in the midst of a devil's whirlpool"
SpawnRate = 0.008
BonusAttack = 6
BonusDefense = 0
BonusLuck = 5
BonusHP = 0
BonusVT = 0
AeolicResistance = 0
TelluricResistance = 0
HydricResistance = 0
IgneousResistance = 0
FerrumResistance = 0
HolyResistance = 0
CurseResistance = 0
ThrowSpeed = 12.0
ThrowDamage = 5
ItemTag = 0
Texture = ExtResource("1_yuqyb")

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://bl4xempufmgr5" uid="uid://bl4xempufmgr5"
path.bptc="res://.godot/imported/PALM OF HEAVEN.PNG-35554a412a9c4bc09647efa86e6b581e.bptc.ctex" path.bptc="res://.godot/imported/palm of heaven.png-8afcb54f797720ff29f3c00c68c0f579.bptc.ctex"
metadata={ metadata={
"imported_formats": ["s3tc_bptc"], "imported_formats": ["s3tc_bptc"],
"vram_texture": true "vram_texture": true
@@ -11,8 +11,8 @@ metadata={
[deps] [deps]
source_file="res://src/items/weapons/textures/PALM OF HEAVEN.PNG" source_file="res://src/items/weapons/textures/palm of heaven.png"
dest_files=["res://.godot/imported/PALM OF HEAVEN.PNG-35554a412a9c4bc09647efa86e6b581e.bptc.ctex"] dest_files=["res://.godot/imported/palm of heaven.png-8afcb54f797720ff29f3c00c68c0f579.bptc.ctex"]
[params] [params]

View File

@@ -0,0 +1,38 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ctqq1mno0dr5i"
path.bptc="res://.godot/imported/gossip_stele.png-ed5ae96280085586f545cfcd8b22a0ec.bptc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
generator_parameters={
"md5": "ff59a608ede4fdbedd3064233dea6cd3"
}
[deps]
source_file="res://src/map/assets/gossip_stele.png"
dest_files=["res://.godot/imported/gossip_stele.png-ed5ae96280085586f545cfcd8b22a0ec.bptc.ctex"]
[params]
compress/mode=2
compress/high_quality=true
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cp0er3xxxjkr5" uid="uid://cp0er3xxxjkr5"
path="res://.godot/imported/a2-puer_AREA_2_MAIN_222STONE.png-139f243ac630853348798dfe584da1e0.ctex" path="res://.godot/imported/A2-Puer_AREA_2_MAIN_222STONE.png-992459ef9849c39922a9b9e0c7774a4a.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_AREA_2_MAIN_222STONE.png" source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_222STONE.png"
dest_files=["res://.godot/imported/a2-puer_AREA_2_MAIN_222STONE.png-139f243ac630853348798dfe584da1e0.ctex"] dest_files=["res://.godot/imported/A2-Puer_AREA_2_MAIN_222STONE.png-992459ef9849c39922a9b9e0c7774a4a.ctex"]
[params] [params]

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://5r16swvuqjjg" uid="uid://5r16swvuqjjg"
path="res://.godot/imported/a2-puer_AREA_2_MAIN_STONE.png-986249227e569ea1e40b4825b7f05c47.ctex" path="res://.godot/imported/A2-Puer_AREA_2_MAIN_STONE.png-2267bd7e464cdc2e03c8954de01941bf.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_AREA_2_MAIN_STONE.png" source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_STONE.png"
dest_files=["res://.godot/imported/a2-puer_AREA_2_MAIN_STONE.png-986249227e569ea1e40b4825b7f05c47.ctex"] dest_files=["res://.godot/imported/A2-Puer_AREA_2_MAIN_STONE.png-2267bd7e464cdc2e03c8954de01941bf.ctex"]
[params] [params]

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cvnpxln2mmtkp" uid="uid://cvnpxln2mmtkp"
path="res://.godot/imported/a2-puer_COLUMN_WHITE.png-0b80d510851319464b2ef729d8868892.ctex" path="res://.godot/imported/A2-Puer_COLUMN_WHITE.png-18037c22b966bb159d05cb7acac1bc53.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_COLUMN_WHITE.png" source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_COLUMN_WHITE.png"
dest_files=["res://.godot/imported/a2-puer_COLUMN_WHITE.png-0b80d510851319464b2ef729d8868892.ctex"] dest_files=["res://.godot/imported/A2-Puer_COLUMN_WHITE.png-18037c22b966bb159d05cb7acac1bc53.ctex"]
[params] [params]

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://tjtjbktl51kd" uid="uid://tjtjbktl51kd"
path="res://.godot/imported/a2-puer_GREENBIT.png-e1ed395f917a2fe57ed6288185af0729.ctex" path="res://.godot/imported/A2-Puer_GREENBIT.png-40a9ca6a0efc569a5f329f19b3c3e572.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_GREENBIT.png" source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_GREENBIT.png"
dest_files=["res://.godot/imported/a2-puer_GREENBIT.png-e1ed395f917a2fe57ed6288185af0729.ctex"] dest_files=["res://.godot/imported/A2-Puer_GREENBIT.png-40a9ca6a0efc569a5f329f19b3c3e572.ctex"]
[params] [params]

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://dqfdyguq83bhs" uid="uid://dqfdyguq83bhs"
path="res://.godot/imported/a2-puer_M13_14.png-ed8b29b0af1c2b973bfaee62e57cab14.ctex" path="res://.godot/imported/A2-Puer_M13_14.png-e781478f15895763a566a64ff37db311.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_M13_14.png" source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_14.png"
dest_files=["res://.godot/imported/a2-puer_M13_14.png-ed8b29b0af1c2b973bfaee62e57cab14.ctex"] dest_files=["res://.godot/imported/A2-Puer_M13_14.png-e781478f15895763a566a64ff37db311.ctex"]
[params] [params]

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://dorqwrqy03rim" uid="uid://dorqwrqy03rim"
path="res://.godot/imported/a2-puer_M13_49.png-86429b5a3cd80a9159f32ded99a631bc.ctex" path="res://.godot/imported/A2-Puer_M13_49.png-44faadb5ae300e9ecea145cfe1949536.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_M13_49.png" source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_49.png"
dest_files=["res://.godot/imported/a2-puer_M13_49.png-86429b5a3cd80a9159f32ded99a631bc.ctex"] dest_files=["res://.godot/imported/A2-Puer_M13_49.png-44faadb5ae300e9ecea145cfe1949536.ctex"]
[params] [params]

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://nl3bwenfa8fi" uid="uid://nl3bwenfa8fi"
path="res://.godot/imported/a2-puer_RUBBLE_1.png-c7185e2aad2613007d1951f1515ef882.ctex" path="res://.godot/imported/A2-Puer_RUBBLE_1.png-72d7ff861d1df58d800502546da8d607.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_RUBBLE_1.png" source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_RUBBLE_1.png"
dest_files=["res://.godot/imported/a2-puer_RUBBLE_1.png-c7185e2aad2613007d1951f1515ef882.ctex"] dest_files=["res://.godot/imported/A2-Puer_RUBBLE_1.png-72d7ff861d1df58d800502546da8d607.ctex"]
[params] [params]

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://0p6suo7fpxum" uid="uid://0p6suo7fpxum"
path="res://.godot/imported/a2-puer_STUCCO_DECAL_BIG.png-882b477f490f6ddbf5bffb3a6f8904e1.ctex" path="res://.godot/imported/A2-Puer_STUCCO_DECAL_BIG.png-015d9f8dd06372231a1f422979d3604e.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_STUCCO_DECAL_BIG.png" source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_STUCCO_DECAL_BIG.png"
dest_files=["res://.godot/imported/a2-puer_STUCCO_DECAL_BIG.png-882b477f490f6ddbf5bffb3a6f8904e1.ctex"] dest_files=["res://.godot/imported/A2-Puer_STUCCO_DECAL_BIG.png-015d9f8dd06372231a1f422979d3604e.ctex"]
[params] [params]

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://ct3mkni0v0y3g" uid="uid://ct3mkni0v0y3g"
path="res://.godot/imported/a2-puer_Tile 4.png-9d089a32db3fc38a0c5dee6cdb6d3495.ctex" path="res://.godot/imported/A2-Puer_Tile 4.png-0cfd085ec5fcea35eb2d1373e4717f77.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_Tile 4.png" source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_Tile 4.png"
dest_files=["res://.godot/imported/a2-puer_Tile 4.png-9d089a32db3fc38a0c5dee6cdb6d3495.ctex"] dest_files=["res://.godot/imported/A2-Puer_Tile 4.png-0cfd085ec5fcea35eb2d1373e4717f77.ctex"]
[params] [params]

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://b40fbcriycpp5" uid="uid://b40fbcriycpp5"
path="res://.godot/imported/a2-puer_imag2esnormal.jpg-d6e063b2785344af34fa3bb45d47aa2f.ctex" path="res://.godot/imported/A2-Puer_imag2esnormal.jpg-be023c8af9ff59eedfb3ede232c75195.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_imag2esnormal.jpg" source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_imag2esnormal.jpg"
dest_files=["res://.godot/imported/a2-puer_imag2esnormal.jpg-d6e063b2785344af34fa3bb45d47aa2f.ctex"] dest_files=["res://.godot/imported/A2-Puer_imag2esnormal.jpg-be023c8af9ff59eedfb3ede232c75195.ctex"]
[params] [params]

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://b25r6gysyhu3e" uid="uid://b25r6gysyhu3e"
path="res://.godot/imported/a2-puer_inner_rock2.png-943622742770f7b55d1e40645d07d057.ctex" path="res://.godot/imported/A2-Puer_inner_rock2.png-7c99975de214e5dddd3507f87212b910.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_inner_rock2.png" source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_inner_rock2.png"
dest_files=["res://.godot/imported/a2-puer_inner_rock2.png-943622742770f7b55d1e40645d07d057.ctex"] dest_files=["res://.godot/imported/A2-Puer_inner_rock2.png-7c99975de214e5dddd3507f87212b910.ctex"]
[params] [params]

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://cw4hq3kofjowa" uid="uid://cw4hq3kofjowa"
path="res://.godot/imported/a2-puer_lime_hand_relief.png-85b73e808337e8b8841453cbda0e78cd.ctex" path="res://.godot/imported/A2-Puer_lime_hand_relief.png-825857ea33249fe0361c829ba37bbfdb.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_lime_hand_relief.png" source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_lime_hand_relief.png"
dest_files=["res://.godot/imported/a2-puer_lime_hand_relief.png-85b73e808337e8b8841453cbda0e78cd.ctex"] dest_files=["res://.godot/imported/A2-Puer_lime_hand_relief.png-825857ea33249fe0361c829ba37bbfdb.ctex"]
[params] [params]

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://bqrsde28o867s" uid="uid://bqrsde28o867s"
path="res://.godot/imported/a2-puer_mother_GREEN.png-7bb7d8dd57027953ba1e08ed0c256c8b.ctex" path="res://.godot/imported/A2-Puer_mother_GREEN.png-ba1f3d21981ed19fc5cc87868e04808c.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_mother_GREEN.png" source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_mother_GREEN.png"
dest_files=["res://.godot/imported/a2-puer_mother_GREEN.png-7bb7d8dd57027953ba1e08ed0c256c8b.ctex"] dest_files=["res://.godot/imported/A2-Puer_mother_GREEN.png-ba1f3d21981ed19fc5cc87868e04808c.ctex"]
[params] [params]

View File

@@ -3,7 +3,7 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://4aq3a26dliyg" uid="uid://4aq3a26dliyg"
path="res://.godot/imported/a2-puer_swirled_column _AREA222.png-6f90c188eae5b7e81110f39984d5d43f.ctex" path="res://.godot/imported/A2-Puer_swirled_column _AREA222.png-4842b180cffdbc0274ecb9cbbbbc8221.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
@@ -13,8 +13,8 @@ generator_parameters={
[deps] [deps]
source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_swirled_column _AREA222.png" source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_swirled_column _AREA222.png"
dest_files=["res://.godot/imported/a2-puer_swirled_column _AREA222.png-6f90c188eae5b7e81110f39984d5d43f.ctex"] dest_files=["res://.godot/imported/A2-Puer_swirled_column _AREA222.png-4842b180cffdbc0274ecb9cbbbbc8221.ctex"]
[params] [params]

View File

@@ -666,14 +666,6 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
PlayAttackAnimation(); PlayAttackAnimation();
if (PlayerIsHittingGeometry())
{
await ToSignal(GetTree().CreateTimer(0.15f), "timeout");
WeaponAnimations.Stop();
WeaponAnimations.Play("Hit Wall");
return;
}
if (weapon.WeaponTag == WeaponTag.DegradeOnSwing) if (weapon.WeaponTag == WeaponTag.DegradeOnSwing)
_playerEffectService.Degrade(); _playerEffectService.Degrade();
else if (weapon.WeaponTag == WeaponTag.SelfDamage) else if (weapon.WeaponTag == WeaponTag.SelfDamage)

View File

@@ -27,8 +27,12 @@ public partial class InventoryMenu : Control, IInventoryMenu
[Node] public Label ItemStats { get; set; } [Node] public Label ItemStats { get; set; }
[Node] public Label Augment { get; set; }
[Node] public Label ItemAugment { get; set; } [Node] public Label ItemAugment { get; set; }
[Node] public Label ItemAugmentTitle { get; set; }
[Node] public TextureRect ItemAugmentTexture { get; set; } [Node] public TextureRect ItemAugmentTexture { get; set; }
[Node] public ActionPanel ActionPanel { get; set; } [Node] public ActionPanel ActionPanel { get; set; }
@@ -149,7 +153,9 @@ public partial class InventoryMenu : Control, IInventoryMenu
ItemStats.Text = selectedItem.Item.Value.StatDescription; ItemStats.Text = selectedItem.Item.Value.StatDescription;
ItemStats.Visible = !string.IsNullOrEmpty(ItemStats.Text); ItemStats.Visible = !string.IsNullOrEmpty(ItemStats.Text);
ItemAugmentTexture.Texture = null; ItemAugmentTexture.Texture = null;
Augment.Text = GetAugmentSubtitle(selectedItem.Item.Value);
ItemAugment.Text = GetAugmentText(selectedItem.Item.Value); ItemAugment.Text = GetAugmentText(selectedItem.Item.Value);
ItemAugmentTitle.Text = GetAugmentTitleText(selectedItem.Item.Value);
} }
private void ResetInventoryState() private void ResetInventoryState()
@@ -178,7 +184,7 @@ public partial class InventoryMenu : Control, IInventoryMenu
ItemActionResultContainer.Show(); ItemActionResultContainer.Show();
ItemActionResultContainer.GrabFocus(); ItemActionResultContainer.GrabFocus();
ItemActionResultLabel.Text = obj; ItemActionResultLabel.Text = obj;
await ToSignal(GetTree().CreateTimer(2f), "timeout"); await ToSignal(GetTree().CreateTimer(1f), "timeout");
ItemActionResultContainer.Hide(); ItemActionResultContainer.Hide();
ItemActionResultLabel.Text = string.Empty; ItemActionResultLabel.Text = string.Empty;
_blocking = false; _blocking = false;
@@ -240,6 +246,56 @@ public partial class InventoryMenu : Control, IInventoryMenu
} }
private string GetAugmentText(IBaseInventoryItem item) private string GetAugmentText(IBaseInventoryItem item)
{
if (item is IAugmentableItem augmentable && augmentable.Augment != null)
{
ItemAugmentTexture.Texture = augmentable.Augment.AugmentTexture;
return $"{augmentable.Augment.AugmentDescription}";
}
return string.Empty;
}
private string GetAugmentSubtitle(IBaseInventoryItem item)
{
if (item is IAugmentableItem augmentable && augmentable.Augment != null)
{
return $"Augment";
}
return string.Empty;
}
private string GetAugmentTitleText(IBaseInventoryItem item)
{
if (item is IAugmentableItem augmentable && augmentable.Augment != null)
return $"{augmentable.Augment.AugmentName}";
return string.Empty;
}
private string GetAugmentText(Weapon item)
{
if (item is IAugmentableItem augmentable && augmentable.Augment != null)
{
ItemAugmentTexture.Texture = augmentable.Augment.AugmentTexture;
return $"{augmentable.Augment.AugmentName}{System.Environment.NewLine}{augmentable.Augment.AugmentDescription}";
}
return string.Empty;
}
private string GetAugmentText(Armor item)
{
if (item is IAugmentableItem augmentable && augmentable.Augment != null)
{
ItemAugmentTexture.Texture = augmentable.Augment.AugmentTexture;
return $"{augmentable.Augment.AugmentName}{System.Environment.NewLine}{augmentable.Augment.AugmentDescription}";
}
return string.Empty;
}
private string GetAugmentText(Accessory item)
{ {
if (item is IAugmentableItem augmentable && augmentable.Augment != null) if (item is IAugmentableItem augmentable && augmentable.Augment != null)
{ {

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
[gd_scene load_steps=7 format=3 uid="uid://c005nd0m2eim"] [gd_scene load_steps=7 format=3 uid="uid://c005nd0m2eim"]
[ext_resource type="Script" uid="uid://cglxk7v8hpesn" path="res://src/ui/inventory_menu/ItemSlot.cs" id="1_yttxt"] [ext_resource type="Script" uid="uid://cglxk7v8hpesn" path="res://src/ui/inventory_menu/ItemSlot.cs" id="1_yttxt"]
[ext_resource type="Texture2D" uid="uid://c4m6m3pv8704k" path="res://src/items/weapons/textures/kubel.png" id="3_t6dim"] [ext_resource type="Texture2D" uid="uid://c4m6m3pv8704k" path="res://src/items/weapons/textures/KUBEL.PNG" id="3_t6dim"]
[ext_resource type="StyleBox" uid="uid://bxuy4tnftibfq" path="res://src/options/SelectedOptionsBox.tres" id="4_lt1pw"] [ext_resource type="StyleBox" uid="uid://bxuy4tnftibfq" path="res://src/options/SelectedOptionsBox.tres" id="4_lt1pw"]
[ext_resource type="StyleBox" uid="uid://bl15q835s4ene" path="res://src/options/UnselectedOptionsBox.tres" id="4_rf22b"] [ext_resource type="StyleBox" uid="uid://bl15q835s4ene" path="res://src/options/UnselectedOptionsBox.tres" id="4_rf22b"]
[ext_resource type="FontFile" uid="uid://0syyay37admf" path="res://src/ui/fonts/georgiab.ttf" id="4_t6dim"] [ext_resource type="FontFile" uid="uid://0syyay37admf" path="res://src/ui/fonts/georgiab.ttf" id="4_t6dim"]
@@ -35,6 +35,7 @@ vertical_alignment = 1
[node name="ItemTexture" type="TextureRect" parent="ItemInfo"] [node name="ItemTexture" type="TextureRect" parent="ItemInfo"]
unique_name_in_owner = true unique_name_in_owner = true
texture_filter = 2
custom_minimum_size = Vector2(50, 50) custom_minimum_size = Vector2(50, 50)
layout_mode = 2 layout_mode = 2
texture = ExtResource("3_t6dim") texture = ExtResource("3_t6dim")
@@ -69,7 +70,8 @@ text = "Cross Sword"
[node name="AugmentTexture" type="TextureRect" parent="ItemInfo/Control"] [node name="AugmentTexture" type="TextureRect" parent="ItemInfo/Control"]
unique_name_in_owner = true unique_name_in_owner = true
custom_minimum_size = Vector2(50, 50) texture_filter = 2
custom_minimum_size = Vector2(30, 30)
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 4 size_flags_horizontal = 4
size_flags_vertical = 4 size_flags_vertical = 4

File diff suppressed because one or more lines are too long