Beeg fixpack
This commit is contained in:
@@ -15,6 +15,4 @@ public interface IAttackComponent : IEntityComponent
|
|||||||
public void SetAttack(int attack);
|
public void SetAttack(int attack);
|
||||||
|
|
||||||
public void RaiseMaximumAttack(int raiseAmount);
|
public void RaiseMaximumAttack(int raiseAmount);
|
||||||
|
|
||||||
public void LowerMaximumAttack(int lowerAmount);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,4 @@ public interface IDefenseComponent : IEntityComponent
|
|||||||
public void SetDefense(int attack);
|
public void SetDefense(int attack);
|
||||||
|
|
||||||
public void RaiseMaximumDefense(int raiseAmount);
|
public void RaiseMaximumDefense(int raiseAmount);
|
||||||
|
|
||||||
public void LowerMaximumDefense(int lowerAmount);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ 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);
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ public enum UsableItemTag
|
|||||||
DealElementalDamageToAllEnemiesInRoom,
|
DealElementalDamageToAllEnemiesInRoom,
|
||||||
RaiseCurrentWeaponAttack,
|
RaiseCurrentWeaponAttack,
|
||||||
RaiseCurrentDefenseArmor,
|
RaiseCurrentDefenseArmor,
|
||||||
|
LowerCurrentDefenseArmor,
|
||||||
RaiseLevel,
|
RaiseLevel,
|
||||||
LowerLevel,
|
LowerLevel,
|
||||||
RandomEffect,
|
RandomEffect,
|
||||||
@@ -30,5 +31,6 @@ public enum UsableItemTag
|
|||||||
DecreaseAttack,
|
DecreaseAttack,
|
||||||
DecreaseAllStats,
|
DecreaseAllStats,
|
||||||
Clone,
|
Clone,
|
||||||
MeltAllEquipment
|
MeltAllEquipment,
|
||||||
|
RestoreStats
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,10 +16,6 @@ public interface IGameRepo : IDisposable
|
|||||||
|
|
||||||
event Action<string>? AnnounceMessageInInventoryEvent;
|
event Action<string>? AnnounceMessageInInventoryEvent;
|
||||||
|
|
||||||
event Action<int>? DoubleExpTimeStart;
|
|
||||||
|
|
||||||
event Action? DoubleExpTimeEnd;
|
|
||||||
|
|
||||||
event Action<IBaseInventoryItem>? RemoveItemFromInventoryEvent;
|
event Action<IBaseInventoryItem>? RemoveItemFromInventoryEvent;
|
||||||
|
|
||||||
event Action? PlayerAttack;
|
event Action? PlayerAttack;
|
||||||
@@ -40,10 +36,6 @@ 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);
|
||||||
@@ -63,8 +55,6 @@ public interface IGameRepo : IDisposable
|
|||||||
public void OnUnequippedItem(IEquipableItem 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,8 +63,6 @@ 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? DoubleExpTimeEnd;
|
|
||||||
public event Action<IBaseInventoryItem>? RemoveItemFromInventoryEvent;
|
public event Action<IBaseInventoryItem>? RemoveItemFromInventoryEvent;
|
||||||
public event Action? PlayerAttack;
|
public event Action? PlayerAttack;
|
||||||
public event Action? PlayerAttackedWall;
|
public event Action? PlayerAttackedWall;
|
||||||
@@ -85,14 +73,11 @@ public class GameRepo : IGameRepo
|
|||||||
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);
|
||||||
|
|||||||
@@ -2,4 +2,7 @@
|
|||||||
|
|
||||||
public interface IArmor : IEquipableItem, IAugmentableItem
|
public interface IArmor : IEquipableItem, IAugmentableItem
|
||||||
{
|
{
|
||||||
|
public void IncreaseArmorDefense(int bonus);
|
||||||
|
|
||||||
|
public void DecreaseArmorDefense(int lowerAmount);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,11 +53,4 @@ public class AttackComponent : IAttackComponent
|
|||||||
_maximumAttack.OnNext(_maximumAttack.Value + raiseAmount);
|
_maximumAttack.OnNext(_maximumAttack.Value + raiseAmount);
|
||||||
Restore(raiseAmount);
|
Restore(raiseAmount);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LowerMaximumAttack(int lowerAmount)
|
|
||||||
{
|
|
||||||
_maximumAttack.OnNext(Mathf.Max(_maximumAttack.Value + lowerAmount, 0));
|
|
||||||
if (_currentAttack.Value > _maximumAttack.Value)
|
|
||||||
_currentAttack.OnNext(_maximumAttack.Value);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,11 +53,4 @@ public class DefenseComponent : IDefenseComponent
|
|||||||
_maximumDefense.OnNext(_maximumDefense.Value + raiseAmount);
|
_maximumDefense.OnNext(_maximumDefense.Value + raiseAmount);
|
||||||
Restore(raiseAmount);
|
Restore(raiseAmount);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LowerMaximumDefense(int lowerAmount)
|
|
||||||
{
|
|
||||||
_maximumDefense.OnNext(Mathf.Max(_maximumDefense.Value + lowerAmount, 0));
|
|
||||||
if (_currentDefense.Value > _maximumDefense.Value)
|
|
||||||
_currentDefense.OnNext(_maximumDefense.Value);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,20 +48,17 @@ 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)
|
public void GainUnmodified(int flatRateExp)
|
||||||
{
|
{
|
||||||
var newCurrentExpTotal = flatRateExp + _currentExp.Value;
|
var newCurrentExpTotal = flatRateExp + _currentExp.Value;
|
||||||
while (flatRateExp + _currentExp.Value >= _expToNextLevel.Value)
|
_currentExp.OnNext(newCurrentExpTotal);
|
||||||
|
while (_currentExp.Value >= _expToNextLevel.Value)
|
||||||
LevelUp();
|
LevelUp();
|
||||||
var cappedAmount = Math.Min(flatRateExp + _currentExp.Value, _expToNextLevel.Value);
|
|
||||||
_currentExp.OnNext(cappedAmount);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ModifyExpGainRate(double newRate) => _expGainRate.OnNext(newRate);
|
public void ModifyExpGainRate(double newRate) => _expGainRate.OnNext(newRate);
|
||||||
|
|||||||
@@ -7,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 readonly 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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,22 +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
|
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"
|
||||||
|
|
||||||
@@ -57,56 +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"]
|
[node name="WeaponPlasmaSword" type="AudioStreamPlayer" parent="Player"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
process_mode = 3
|
||||||
stream = ExtResource("10_7th20")
|
stream = ExtResource("10_7th20")
|
||||||
bus = &"SFX"
|
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"
|
||||||
|
|
||||||
@@ -114,55 +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")
|
stream = ExtResource("4_fa8i8")
|
||||||
bus = &"SFX"
|
bus = &"SFX"
|
||||||
|
|
||||||
[node name="DecreaseStatSound" type="AudioStreamPlayer" parent="Item"]
|
[node name="DecreaseStatSound" type="AudioStreamPlayer" parent="Item"]
|
||||||
unique_name_in_owner = true
|
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"
|
||||||
|
|||||||
@@ -77,6 +77,8 @@ public partial class Game : Node3D, IGame
|
|||||||
private IPlayer _player;
|
private IPlayer _player;
|
||||||
private IMap _map;
|
private IMap _map;
|
||||||
|
|
||||||
|
private Timer _doubleExpTimer;
|
||||||
|
|
||||||
[Signal] private delegate void OnLoadLevelRequestEventHandler();
|
[Signal] private delegate void OnLoadLevelRequestEventHandler();
|
||||||
|
|
||||||
public Game()
|
public Game()
|
||||||
@@ -184,22 +186,17 @@ public partial class Game : Node3D, IGame
|
|||||||
|
|
||||||
PauseMenu.ExitGamePressed += OnQuit;
|
PauseMenu.ExitGamePressed += OnQuit;
|
||||||
|
|
||||||
|
_doubleExpTimer = new Timer();
|
||||||
|
_doubleExpTimer.WaitTime = 30;
|
||||||
|
_doubleExpTimer.Timeout += EndDoubleExpTimer;
|
||||||
|
AddChild(_doubleExpTimer);
|
||||||
|
|
||||||
GameRepo.IsPaused.Sync += IsPaused_Sync;
|
GameRepo.IsPaused.Sync += IsPaused_Sync;
|
||||||
InGameUI.PlayerInfoUI.Activate();
|
InGameUI.PlayerInfoUI.Activate();
|
||||||
InGameUI.Show();
|
InGameUI.Show();
|
||||||
GameRepo.Resume();
|
GameRepo.Resume();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void GameRepo_EnemyDied(IEnemy obj)
|
|
||||||
{
|
|
||||||
DropRestorative(obj.GlobalPosition);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void BroadcastMessage(string obj)
|
|
||||||
{
|
|
||||||
InGameUI.InventoryMessageUI.DisplayMessage(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void LoadExistingGame() => SaveFile.Load().ContinueWith((_) => CallDeferred(nameof(FinishedLoadingSaveFile)));
|
public void LoadExistingGame() => SaveFile.Load().ContinueWith((_) => CallDeferred(nameof(FinishedLoadingSaveFile)));
|
||||||
|
|
||||||
public async Task InitializeGame()
|
public async Task InitializeGame()
|
||||||
@@ -264,6 +261,15 @@ public partial class Game : Node3D, IGame
|
|||||||
RemoveItemOrSubtractFromItemCount(item);
|
RemoveItemOrSubtractFromItemCount(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void DoubleExp()
|
||||||
|
{
|
||||||
|
GameRepo.AnnounceMessageOnMainScreen("Experience points temporarily doubled.");
|
||||||
|
if (_doubleExpTimer.TimeLeft == 0)
|
||||||
|
_player.ExperiencePointsComponent.ModifyExpGainRate(_player.ExperiencePointsComponent.ExpGainRate.Value * 2);
|
||||||
|
|
||||||
|
_doubleExpTimer.Start();
|
||||||
|
}
|
||||||
|
|
||||||
public IDungeonFloor CurrentFloor => _map.CurrentFloor;
|
public IDungeonFloor CurrentFloor => _map.CurrentFloor;
|
||||||
|
|
||||||
public async void GameOver()
|
public async void GameOver()
|
||||||
@@ -315,6 +321,7 @@ public partial class Game : Node3D, IGame
|
|||||||
GameRepo.Pause();
|
GameRepo.Pause();
|
||||||
InGameUI.InventoryMenu.Show();
|
InGameUI.InventoryMenu.Show();
|
||||||
InGameUI.InventoryMenu.SetProcessInput(true);
|
InGameUI.InventoryMenu.SetProcessInput(true);
|
||||||
|
SfxDatabase.Instance.Play(SoundEffect.OpenInventory);
|
||||||
})
|
})
|
||||||
.Handle((in GameState.Output.CloseInventoryMenu _) =>
|
.Handle((in GameState.Output.CloseInventoryMenu _) =>
|
||||||
{
|
{
|
||||||
@@ -549,11 +556,14 @@ public partial class Game : Node3D, IGame
|
|||||||
case UsableItemTag.LowerLevel:
|
case UsableItemTag.LowerLevel:
|
||||||
_effectService.LowerLevel();
|
_effectService.LowerLevel();
|
||||||
break;
|
break;
|
||||||
|
case UsableItemTag.LowerCurrentDefenseArmor:
|
||||||
|
_effectService.LowerCurrentArmorDefense();
|
||||||
|
break;
|
||||||
case UsableItemTag.RandomEffect:
|
case UsableItemTag.RandomEffect:
|
||||||
_effectService.RandomEffect(effectItem);
|
_effectService.RandomEffect(effectItem);
|
||||||
break;
|
break;
|
||||||
case UsableItemTag.DoubleExp:
|
case UsableItemTag.DoubleExp:
|
||||||
GameRepo.StartDoubleEXP(TimeSpan.FromSeconds(30));
|
_effectService.DoubleExp();
|
||||||
GameRepo.CloseInventory();
|
GameRepo.CloseInventory();
|
||||||
break;
|
break;
|
||||||
case UsableItemTag.TeleportToRandomLocation:
|
case UsableItemTag.TeleportToRandomLocation:
|
||||||
@@ -577,11 +587,11 @@ public partial class Game : Node3D, IGame
|
|||||||
SfxDatabase.Instance.Play(SoundEffect.IncreaseStat);
|
SfxDatabase.Instance.Play(SoundEffect.IncreaseStat);
|
||||||
break;
|
break;
|
||||||
case UsableItemTag.DecreaseAttack:
|
case UsableItemTag.DecreaseAttack:
|
||||||
_player.AttackComponent.LowerMaximumAttack(effectItem.Stats.BonusAttack);
|
_player.AttackComponent.Reduce(effectItem.Stats.BonusAttack);
|
||||||
SfxDatabase.Instance.Play(SoundEffect.DecreaseStat);
|
SfxDatabase.Instance.Play(SoundEffect.DecreaseStat);
|
||||||
break;
|
break;
|
||||||
case UsableItemTag.DecreaseDefense:
|
case UsableItemTag.DecreaseDefense:
|
||||||
_player.DefenseComponent.LowerMaximumDefense(effectItem.Stats.BonusDefense);
|
_player.DefenseComponent.Reduce(effectItem.Stats.BonusDefense);
|
||||||
SfxDatabase.Instance.Play(SoundEffect.DecreaseStat);
|
SfxDatabase.Instance.Play(SoundEffect.DecreaseStat);
|
||||||
break;
|
break;
|
||||||
case UsableItemTag.DecreaseLuck:
|
case UsableItemTag.DecreaseLuck:
|
||||||
@@ -589,8 +599,8 @@ public partial class Game : Node3D, IGame
|
|||||||
SfxDatabase.Instance.Play(SoundEffect.DecreaseStat);
|
SfxDatabase.Instance.Play(SoundEffect.DecreaseStat);
|
||||||
break;
|
break;
|
||||||
case UsableItemTag.DecreaseAllStats:
|
case UsableItemTag.DecreaseAllStats:
|
||||||
_player.AttackComponent.LowerMaximumAttack(effectItem.Stats.BonusAttack);
|
_player.AttackComponent.Reduce(effectItem.Stats.BonusAttack);
|
||||||
_player.DefenseComponent.LowerMaximumDefense(effectItem.Stats.BonusDefense);
|
_player.DefenseComponent.Reduce(effectItem.Stats.BonusDefense);
|
||||||
_player.LuckComponent.DecreaseLuck(effectItem.Stats.BonusLuck);
|
_player.LuckComponent.DecreaseLuck(effectItem.Stats.BonusLuck);
|
||||||
SfxDatabase.Instance.Play(SoundEffect.DecreaseStat);
|
SfxDatabase.Instance.Play(SoundEffect.DecreaseStat);
|
||||||
break;
|
break;
|
||||||
@@ -598,6 +608,10 @@ public partial class Game : Node3D, IGame
|
|||||||
_effectService.MeltAllEquipment(_player);
|
_effectService.MeltAllEquipment(_player);
|
||||||
SfxDatabase.Instance.Play(SoundEffect.DecreaseStat);
|
SfxDatabase.Instance.Play(SoundEffect.DecreaseStat);
|
||||||
break;
|
break;
|
||||||
|
case UsableItemTag.RestoreStats:
|
||||||
|
_effectService.RestoreParameters(_player);
|
||||||
|
SfxDatabase.Instance.Play(SoundEffect.IncreaseStat);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -611,6 +625,23 @@ public partial class Game : Node3D, IGame
|
|||||||
|
|
||||||
public void ShowDebugInfo(bool show) => InGameUI.DebugInfo.Visible = show;
|
public void ShowDebugInfo(bool show) => InGameUI.DebugInfo.Visible = show;
|
||||||
|
|
||||||
|
private void EndDoubleExpTimer()
|
||||||
|
{
|
||||||
|
GameRepo.AnnounceMessageOnMainScreen("Experience points effect wore off.");
|
||||||
|
SfxDatabase.Instance.Play(SoundEffect.MoveUI);
|
||||||
|
_player.ExperiencePointsComponent.ModifyExpGainRate(_player.ExperiencePointsComponent.ExpGainRate.Value / 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void GameRepo_EnemyDied(IEnemy obj)
|
||||||
|
{
|
||||||
|
DropRestorative(obj.GlobalPosition);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BroadcastMessage(string obj)
|
||||||
|
{
|
||||||
|
InGameUI.InventoryMessageUI.DisplayMessage(obj);
|
||||||
|
}
|
||||||
|
|
||||||
private void MovePlayer((Vector3 Rotation, Vector3 Position) spawnPoint) => _player.TeleportPlayer(spawnPoint);
|
private void MovePlayer((Vector3 Rotation, Vector3 Position) spawnPoint) => _player.TeleportPlayer(spawnPoint);
|
||||||
|
|
||||||
private void OnNewGame()
|
private void OnNewGame()
|
||||||
|
|||||||
@@ -34,6 +34,8 @@ public interface IGame : IProvide<IGame>, IProvide<IGameRepo>, IProvide<IPlayer>
|
|||||||
|
|
||||||
public void ShowDebugInfo(bool show);
|
public void ShowDebugInfo(bool show);
|
||||||
|
|
||||||
|
public void DoubleExp();
|
||||||
|
|
||||||
public ItemRescueMenu ItemRescueMenu { get; }
|
public ItemRescueMenu ItemRescueMenu { get; }
|
||||||
|
|
||||||
public QuestData QuestData { get; }
|
public QuestData QuestData { get; }
|
||||||
|
|||||||
@@ -152,6 +152,11 @@ public class EffectService
|
|||||||
_game.UseItem(item);
|
_game.UseItem(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void DoubleExp()
|
||||||
|
{
|
||||||
|
_game.DoubleExp();
|
||||||
|
}
|
||||||
|
|
||||||
public void RaiseCurrentWeaponAttack()
|
public void RaiseCurrentWeaponAttack()
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(_player.EquipmentComponent.EquippedWeapon.Value.ItemName))
|
if (string.IsNullOrEmpty(_player.EquipmentComponent.EquippedWeapon.Value.ItemName))
|
||||||
@@ -172,6 +177,34 @@ public class EffectService
|
|||||||
SfxDatabase.Instance.Play(SoundEffect.IncreaseStat);
|
SfxDatabase.Instance.Play(SoundEffect.IncreaseStat);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void LowerCurrentArmorDefense()
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(_player.EquipmentComponent.EquippedArmor.Value.ItemName))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var currentArmor = (Armor)_player.EquipmentComponent.EquippedArmor.Value;
|
||||||
|
currentArmor.DecreaseArmorDefense(1);
|
||||||
|
SfxDatabase.Instance.Play(SoundEffect.DecreaseStat);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RestoreParameters(IPlayer player)
|
||||||
|
{
|
||||||
|
var hpToRestore = player.HealthComponent.MaximumHP.Value;
|
||||||
|
player.HealthComponent.SetCurrentHealth(hpToRestore);
|
||||||
|
|
||||||
|
var vtToRestore = player.VTComponent.MaximumVT.Value;
|
||||||
|
player.VTComponent.SetVT(vtToRestore);
|
||||||
|
|
||||||
|
var attackToRestore = player.AttackComponent.MaximumAttack.Value - player.AttackComponent.CurrentAttack.Value;
|
||||||
|
player.AttackComponent.Restore(attackToRestore);
|
||||||
|
|
||||||
|
var defenseToRestore = player.DefenseComponent.MaximumDefense.Value - player.DefenseComponent.CurrentDefense.Value;
|
||||||
|
player.DefenseComponent.Restore(defenseToRestore);
|
||||||
|
|
||||||
|
if (player.LuckComponent.Luck.Value < player.LuckComponent.InitialLuck)
|
||||||
|
player.LuckComponent.IncreaseLuck(player.LuckComponent.InitialLuck - player.LuckComponent.Luck.Value);
|
||||||
|
}
|
||||||
|
|
||||||
public void RaiseLevel()
|
public void RaiseLevel()
|
||||||
{
|
{
|
||||||
var expToNextLevel = _player.ExperiencePointsComponent.ExpToNextLevel.Value - _player.ExperiencePointsComponent.CurrentExp.Value;
|
var expToNextLevel = _player.ExperiencePointsComponent.ExpToNextLevel.Value - _player.ExperiencePointsComponent.CurrentExp.Value;
|
||||||
|
|||||||
@@ -64,6 +64,8 @@ public partial class Armor : Node3D, IArmor
|
|||||||
|
|
||||||
public void IncreaseArmorDefense(int bonus) => _bonusDefense += bonus;
|
public void IncreaseArmorDefense(int bonus) => _bonusDefense += bonus;
|
||||||
|
|
||||||
|
public void DecreaseArmorDefense(int lowerAmount) => _bonusDefense = Mathf.Max(_bonusDefense - lowerAmount, 0);
|
||||||
|
|
||||||
public ItemTag ItemTag => Stats.ItemTag;
|
public ItemTag ItemTag => Stats.ItemTag;
|
||||||
|
|
||||||
[Save("armor_stats")]
|
[Save("armor_stats")]
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ collision_mask = 0
|
|||||||
|
|
||||||
[node name="Sprite" type="Sprite3D" parent="Pickup"]
|
[node name="Sprite" type="Sprite3D" parent="Pickup"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
pixel_size = 0.005
|
||||||
billboard = 2
|
billboard = 2
|
||||||
double_sided = false
|
double_sided = false
|
||||||
alpha_cut = 1
|
alpha_cut = 1
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ collision_mask = 0
|
|||||||
|
|
||||||
[node name="Sprite" type="Sprite3D" parent="Pickup"]
|
[node name="Sprite" type="Sprite3D" parent="Pickup"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
pixel_size = 0.005
|
||||||
billboard = 2
|
billboard = 2
|
||||||
shaded = true
|
shaded = true
|
||||||
texture_filter = 0
|
texture_filter = 0
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ collision_mask = 0
|
|||||||
[node name="Sprite" type="Sprite3D" parent="Pickup"]
|
[node name="Sprite" type="Sprite3D" parent="Pickup"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0322805, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0322805, 0)
|
||||||
|
pixel_size = 0.005
|
||||||
billboard = 2
|
billboard = 2
|
||||||
shaded = true
|
shaded = true
|
||||||
double_sided = false
|
double_sided = false
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ shape = SubResource("BoxShape3D_03cqg")
|
|||||||
[node name="Sprite" type="Sprite3D" parent="Pickup"]
|
[node name="Sprite" type="Sprite3D" parent="Pickup"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(0.999973, 0.00489444, -0.00548299, -0.00488109, 0.999985, 0.00244357, 0.00549488, -0.00241672, 0.999982, 0, 0, 0)
|
transform = Transform3D(0.999973, 0.00489444, -0.00548299, -0.00488109, 0.999985, 0.00244357, 0.00549488, -0.00241672, 0.999982, 0, 0, 0)
|
||||||
|
pixel_size = 0.005
|
||||||
billboard = 2
|
billboard = 2
|
||||||
shaded = true
|
shaded = true
|
||||||
texture_filter = 0
|
texture_filter = 0
|
||||||
|
|||||||
@@ -5,14 +5,14 @@
|
|||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("2_cjlom")
|
script = ExtResource("2_cjlom")
|
||||||
UsableItemTag = 15
|
UsableItemTag = 17
|
||||||
ElementalDamageType = 0
|
ElementalDamageType = 0
|
||||||
Name = "Spell Sign: Ablution"
|
Name = "Spell Sign: Ablution"
|
||||||
Description = "Lowers HP to 1."
|
Description = "Lowers HP to 1."
|
||||||
SpawnRate = 0.5
|
SpawnRate = 0.5
|
||||||
BonusAttack = 0
|
BonusAttack = 0
|
||||||
BonusDefense = 0
|
BonusDefense = 0
|
||||||
BonusLuck = 0.05
|
BonusLuck = 5
|
||||||
BonusHP = 0
|
BonusHP = 0
|
||||||
BonusVT = 0
|
BonusVT = 0
|
||||||
AeolicResistance = 0
|
AeolicResistance = 0
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("1_3gj16")
|
script = ExtResource("1_3gj16")
|
||||||
UsableItemTag = 14
|
UsableItemTag = 16
|
||||||
ElementalDamageType = 0
|
ElementalDamageType = 0
|
||||||
Name = "An Bradán Feasa"
|
Name = "An Bradán Feasa"
|
||||||
Description = "Doubles EXP temporarily."
|
Description = "Doubles EXP temporarily."
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("2_mhyhg")
|
script = ExtResource("2_mhyhg")
|
||||||
UsableItemTag = 22
|
UsableItemTag = 24
|
||||||
ElementalDamageType = 0
|
ElementalDamageType = 0
|
||||||
Name = "Spell Sign: Atomization"
|
Name = "Spell Sign: Atomization"
|
||||||
Description = "Permanently Lowers Defense by 1."
|
Description = "Permanently Lowers Defense by 1."
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
[gd_resource type="Resource" script_class="EffectItemStats" load_steps=3 format=3 uid="uid://c3a2pvu1xwn26"]
|
[gd_resource type="Resource" script_class="EffectItemStats" load_steps=3 format=3 uid="uid://c3a2pvu1xwn26"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://b4brs6e73yjlq" path="res://src/items/effect/textures/Green Talisman.png" id="1_5si68"]
|
[ext_resource type="Texture2D" uid="uid://bmsp3k1inb55m" path="res://src/items/effect/textures/Blue Talisman.png" id="1_5si68"]
|
||||||
[ext_resource type="Script" uid="uid://b5w4iw4iqmxtn" path="res://src/items/effect/EffectItemStats.cs" id="2_pkr04"]
|
[ext_resource type="Script" uid="uid://b5w4iw4iqmxtn" path="res://src/items/effect/EffectItemStats.cs" id="2_pkr04"]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("2_pkr04")
|
script = ExtResource("2_pkr04")
|
||||||
UsableItemTag = 19
|
UsableItemTag = 21
|
||||||
ElementalDamageType = 0
|
ElementalDamageType = 0
|
||||||
Name = "Blue Talisman"
|
Name = "Blue Talisman"
|
||||||
Description = "Permanently Increases DEF by 1."
|
Description = "Permanently Increases DEF by 1."
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("2_13loo")
|
script = ExtResource("2_13loo")
|
||||||
UsableItemTag = 25
|
UsableItemTag = 27
|
||||||
ElementalDamageType = 0
|
ElementalDamageType = 0
|
||||||
Name = "Spell Sign: Cell Degradation"
|
Name = "Spell Sign: Cell Degradation"
|
||||||
Description = "Permanently Lowers All Parameters by 1."
|
Description = "Permanently Lowers All Parameters by 1."
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("2_b16hc")
|
script = ExtResource("2_b16hc")
|
||||||
UsableItemTag = 26
|
UsableItemTag = 28
|
||||||
ElementalDamageType = 0
|
ElementalDamageType = 0
|
||||||
Name = "Spell Sign: Clone"
|
Name = "Spell Sign: Clone"
|
||||||
Description = "Creates another enemy when thrown.
|
Description = "Creates another enemy when thrown.
|
||||||
|
|||||||
@@ -5,14 +5,14 @@
|
|||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("2_n1557")
|
script = ExtResource("2_n1557")
|
||||||
UsableItemTag = 12
|
UsableItemTag = 13
|
||||||
ElementalDamageType = 0
|
ElementalDamageType = 0
|
||||||
Name = "Spell Sign: Cosmos"
|
Name = "Spell Sign: Cosmos"
|
||||||
Description = "Raises current Level by 1."
|
Description = "Raises current Level by 1."
|
||||||
SpawnRate = 0.5
|
SpawnRate = 0.5
|
||||||
BonusAttack = 0
|
BonusAttack = 0
|
||||||
BonusDefense = 0
|
BonusDefense = 0
|
||||||
BonusLuck = 0.05
|
BonusLuck = 5
|
||||||
BonusHP = 0
|
BonusHP = 0
|
||||||
BonusVT = 0
|
BonusVT = 0
|
||||||
AeolicResistance = 0
|
AeolicResistance = 0
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("2_vs32u")
|
script = ExtResource("2_vs32u")
|
||||||
UsableItemTag = 24
|
UsableItemTag = 26
|
||||||
ElementalDamageType = 0
|
ElementalDamageType = 0
|
||||||
Name = "Spell Sign: Dullness"
|
Name = "Spell Sign: Dullness"
|
||||||
Description = "Permanently Lowers Attack by 1."
|
Description = "Permanently Lowers Attack by 1."
|
||||||
|
|||||||
@@ -5,14 +5,14 @@
|
|||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("1_3l06v")
|
script = ExtResource("1_3l06v")
|
||||||
UsableItemTag = 13
|
UsableItemTag = 15
|
||||||
ElementalDamageType = 0
|
ElementalDamageType = 0
|
||||||
Name = "Spell Sign: Entropic Seal"
|
Name = "Spell Sign: Entropic Seal"
|
||||||
Description = "Random effect."
|
Description = "Random effect."
|
||||||
SpawnRate = 0.5
|
SpawnRate = 0.5
|
||||||
BonusAttack = 0
|
BonusAttack = 0
|
||||||
BonusDefense = 0
|
BonusDefense = 0
|
||||||
BonusLuck = 0.05
|
BonusLuck = 5
|
||||||
BonusHP = 0
|
BonusHP = 0
|
||||||
BonusVT = 0
|
BonusVT = 0
|
||||||
AeolicResistance = 0
|
AeolicResistance = 0
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("1_4oq2l")
|
script = ExtResource("1_4oq2l")
|
||||||
UsableItemTag = 18
|
UsableItemTag = 20
|
||||||
ElementalDamageType = 0
|
ElementalDamageType = 0
|
||||||
Name = "Scripture Sign: Gospel of Dimension"
|
Name = "Scripture Sign: Gospel of Dimension"
|
||||||
Description = "Warps target to the exit. No effect on player if exit has not been found."
|
Description = "Warps target to the exit. No effect on player if exit has not been found."
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("2_axhfw")
|
script = ExtResource("2_axhfw")
|
||||||
UsableItemTag = 17
|
UsableItemTag = 19
|
||||||
ElementalDamageType = 0
|
ElementalDamageType = 0
|
||||||
Name = "Scripture Sign: Gospel of Paths"
|
Name = "Scripture Sign: Gospel of Paths"
|
||||||
Description = "Teleports target to a random location."
|
Description = "Teleports target to a random location."
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("2_mnvt1")
|
script = ExtResource("2_mnvt1")
|
||||||
UsableItemTag = 20
|
UsableItemTag = 22
|
||||||
ElementalDamageType = 0
|
ElementalDamageType = 0
|
||||||
Name = "Green Talisman"
|
Name = "Green Talisman"
|
||||||
Description = "Permanently Increases Luck."
|
Description = "Permanently Increases Luck."
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("2_tlglo")
|
script = ExtResource("2_tlglo")
|
||||||
UsableItemTag = 23
|
UsableItemTag = 25
|
||||||
ElementalDamageType = 0
|
ElementalDamageType = 0
|
||||||
Name = "Spell Sign: Grudge"
|
Name = "Spell Sign: Grudge"
|
||||||
Description = "Permanently Lowers Luck."
|
Description = "Permanently Lowers Luck."
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
[gd_resource type="Resource" script_class="EffectItemStats" load_steps=3 format=3 uid="uid://c3qkrtgmngetc"]
|
[gd_resource type="Resource" script_class="EffectItemStats" load_steps=3 format=3 uid="uid://c3qkrtgmngetc"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://ddw0tkd6bt1rx" path="res://src/items/effect/textures/Grudge.png" id="1_kik76"]
|
[ext_resource type="Texture2D" uid="uid://ri5h1p4e10gl" path="res://src/items/effect/textures/Meltical Wave.png" id="1_kik76"]
|
||||||
[ext_resource type="Script" uid="uid://b5w4iw4iqmxtn" path="res://src/items/effect/EffectItemStats.cs" id="2_2sema"]
|
[ext_resource type="Script" uid="uid://b5w4iw4iqmxtn" path="res://src/items/effect/EffectItemStats.cs" id="2_2sema"]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("2_2sema")
|
script = ExtResource("2_2sema")
|
||||||
UsableItemTag = 28
|
UsableItemTag = 29
|
||||||
ElementalDamageType = 0
|
ElementalDamageType = 0
|
||||||
Name = "Spell Sign: Meltical Wave"
|
Name = "Spell Sign: Meltical Wave"
|
||||||
Description = "Melts all currently equipped items."
|
Description = "Melts all currently equipped items."
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
[gd_resource type="Resource" script_class="EffectItemStats" load_steps=3 format=3 uid="uid://cv8p0egs52jaq"]
|
[gd_resource type="Resource" script_class="EffectItemStats" load_steps=3 format=3 uid="uid://cv8p0egs52jaq"]
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://b4brs6e73yjlq" path="res://src/items/effect/textures/Green Talisman.png" id="1_4jur3"]
|
[ext_resource type="Texture2D" uid="uid://6fcjbqispxwq" path="res://src/items/effect/textures/Red Talisman.png" id="1_4jur3"]
|
||||||
[ext_resource type="Script" uid="uid://b5w4iw4iqmxtn" path="res://src/items/effect/EffectItemStats.cs" id="2_as50m"]
|
[ext_resource type="Script" uid="uid://b5w4iw4iqmxtn" path="res://src/items/effect/EffectItemStats.cs" id="2_as50m"]
|
||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("2_as50m")
|
script = ExtResource("2_as50m")
|
||||||
UsableItemTag = 21
|
UsableItemTag = 23
|
||||||
ElementalDamageType = 0
|
ElementalDamageType = 0
|
||||||
Name = "Red Talisman"
|
Name = "Red Talisman"
|
||||||
Description = "Permanently Increases Attack by 1."
|
Description = "Permanently Increases Attack by 1."
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
[resource]
|
[resource]
|
||||||
script = ExtResource("2_nyxl3")
|
script = ExtResource("2_nyxl3")
|
||||||
UsableItemTag = 13
|
UsableItemTag = 14
|
||||||
ElementalDamageType = 0
|
ElementalDamageType = 0
|
||||||
Name = "Spell Sign: Regression"
|
Name = "Spell Sign: Regression"
|
||||||
Description = "Lowers current Level by 1."
|
Description = "Lowers current Level by 1."
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
[gd_resource type="Resource" script_class="EffectItemStats" load_steps=3 format=3 uid="uid://di2r6s4duri7g"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://5w5hgs6gm032" path="res://src/items/effect/textures/Spellsign; Reprieval Wave.png" id="1_r2g4a"]
|
||||||
|
[ext_resource type="Script" uid="uid://b5w4iw4iqmxtn" path="res://src/items/effect/EffectItemStats.cs" id="2_rv4ut"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("2_rv4ut")
|
||||||
|
UsableItemTag = 30
|
||||||
|
ElementalDamageType = 0
|
||||||
|
Name = "Scripture Sign: Reprieval Wave"
|
||||||
|
Description = "Restores All Parameters."
|
||||||
|
SpawnRate = 0.5
|
||||||
|
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 = 0
|
||||||
|
ItemTag = 0
|
||||||
|
Texture = ExtResource("1_r2g4a")
|
||||||
|
metadata/_custom_type_script = "uid://b5w4iw4iqmxtn"
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
[gd_resource type="Resource" script_class="EffectItemStats" load_steps=3 format=3 uid="uid://cc5utcc7ge2xd"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://borohnknxtl81" path="res://src/items/effect/textures/Rust Inducer.png" id="1_56ucr"]
|
||||||
|
[ext_resource type="Script" uid="uid://b5w4iw4iqmxtn" path="res://src/items/effect/EffectItemStats.cs" id="2_4hxg1"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("2_4hxg1")
|
||||||
|
UsableItemTag = 12
|
||||||
|
ElementalDamageType = 0
|
||||||
|
Name = "Spell Sign: Rust Indicator"
|
||||||
|
Description = "Lowers Currently Equipped Armor's Defense."
|
||||||
|
SpawnRate = 0.5
|
||||||
|
BonusAttack = 0
|
||||||
|
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_56ucr")
|
||||||
|
metadata/_custom_type_script = "uid://b5w4iw4iqmxtn"
|
||||||
BIN
Zennysoft.Game.Ma/src/items/effect/textures/Blue Talisman.png
Normal file
BIN
Zennysoft.Game.Ma/src/items/effect/textures/Blue Talisman.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.6 KiB |
@@ -0,0 +1,35 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://bmsp3k1inb55m"
|
||||||
|
path.bptc="res://.godot/imported/Blue Talisman.png-285c9b1bb181f7362a9c9ab7331979c4.bptc.ctex"
|
||||||
|
metadata={
|
||||||
|
"imported_formats": ["s3tc_bptc"],
|
||||||
|
"vram_texture": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://src/items/effect/textures/Blue Talisman.png"
|
||||||
|
dest_files=["res://.godot/imported/Blue Talisman.png-285c9b1bb181f7362a9c9ab7331979c4.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=false
|
||||||
|
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
|
||||||
@@ -29,6 +29,7 @@ collision_mask = 0
|
|||||||
[node name="Sprite" type="Sprite3D" parent="Pickup"]
|
[node name="Sprite" type="Sprite3D" parent="Pickup"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.370004, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.370004, 0)
|
||||||
|
pixel_size = 0.005
|
||||||
billboard = 2
|
billboard = 2
|
||||||
texture_filter = 0
|
texture_filter = 0
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ collision_mask = 0
|
|||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.272665, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.272665, 0)
|
||||||
layers = 5
|
layers = 5
|
||||||
pixel_size = 0.05
|
pixel_size = 0.005
|
||||||
billboard = 2
|
billboard = 2
|
||||||
double_sided = false
|
double_sided = false
|
||||||
alpha_antialiasing_mode = 1
|
alpha_antialiasing_mode = 1
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.190116, 0)
|
|||||||
shape = SubResource("CapsuleShape3D_o8f22")
|
shape = SubResource("CapsuleShape3D_o8f22")
|
||||||
|
|
||||||
[node name="AnimatedSprite3D" type="AnimatedSprite3D" parent="."]
|
[node name="AnimatedSprite3D" type="AnimatedSprite3D" parent="."]
|
||||||
|
pixel_size = 0.0075
|
||||||
billboard = 1
|
billboard = 1
|
||||||
texture_filter = 0
|
texture_filter = 0
|
||||||
render_priority = 100
|
render_priority = 100
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ shape = SubResource("BoxShape3D_03cqg")
|
|||||||
|
|
||||||
[node name="Sprite" type="Sprite3D" parent="Pickup"]
|
[node name="Sprite" type="Sprite3D" parent="Pickup"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
pixel_size = 0.005
|
||||||
billboard = 2
|
billboard = 2
|
||||||
texture_filter = 0
|
texture_filter = 0
|
||||||
render_priority = 100
|
render_priority = 100
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ shape = SubResource("SphereShape3D_xxdqr")
|
|||||||
|
|
||||||
[node name="Sprite3D" type="Sprite3D" parent="."]
|
[node name="Sprite3D" type="Sprite3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.1, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.1, 0)
|
||||||
|
pixel_size = 0.005
|
||||||
billboard = 2
|
billboard = 2
|
||||||
texture_filter = 0
|
texture_filter = 0
|
||||||
texture = SubResource("ViewportTexture_xxdqr")
|
texture = SubResource("ViewportTexture_xxdqr")
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
[gd_scene load_steps=4 format=3 uid="uid://bg3654q6tmtbk"]
|
[gd_scene load_steps=5 format=3 uid="uid://bg3654q6tmtbk"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://bq8aaf1ae4afh" path="res://src/items/weapons/Weapon.cs" id="1_7pkyf"]
|
[ext_resource type="Script" uid="uid://bq8aaf1ae4afh" path="res://src/items/weapons/Weapon.cs" id="1_7pkyf"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://bnkshsssabl0" path="res://src/items/weapons/textures/Air Sword.png" id="2_udu2u"]
|
||||||
|
|
||||||
[sub_resource type="CylinderShape3D" id="CylinderShape3D_1051i"]
|
[sub_resource type="CylinderShape3D" id="CylinderShape3D_1051i"]
|
||||||
height = 0.725098
|
height = 0.725098
|
||||||
@@ -28,8 +29,10 @@ collision_mask = 0
|
|||||||
|
|
||||||
[node name="Sprite" type="Sprite3D" parent="Pickup"]
|
[node name="Sprite" type="Sprite3D" parent="Pickup"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
pixel_size = 0.005
|
||||||
billboard = 2
|
billboard = 2
|
||||||
texture_filter = 0
|
texture_filter = 0
|
||||||
|
texture = ExtResource("2_udu2u")
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Pickup"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Pickup"]
|
||||||
shape = SubResource("CapsuleShape3D_wll7p")
|
shape = SubResource("CapsuleShape3D_wll7p")
|
||||||
|
|||||||
@@ -622,21 +622,21 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<IPlayer>
|
|||||||
var weapon = (Weapon)EquipmentComponent.EquippedWeapon.Value;
|
var weapon = (Weapon)EquipmentComponent.EquippedWeapon.Value;
|
||||||
SfxDatabase.Instance.Play(weapon.SoundEffect);
|
SfxDatabase.Instance.Play(weapon.SoundEffect);
|
||||||
WeaponAnimations.SetSpeedScale((float)weapon.AttackSpeed);
|
WeaponAnimations.SetSpeedScale((float)weapon.AttackSpeed);
|
||||||
var potentialAnimName = weapon.Stats.Name?.Replace(" ", string.Empty);
|
var potentialAnimName = weapon.Stats.Name;
|
||||||
if (WeaponAnimations.HasAnimation(potentialAnimName))
|
if (WeaponAnimations.HasAnimation(potentialAnimName))
|
||||||
WeaponAnimations.Play(potentialAnimName);
|
WeaponAnimations.Play(potentialAnimName);
|
||||||
else if (weapon.WeaponElement == ElementType.Aeolic)
|
else if (weapon.WeaponElement == ElementType.Aeolic)
|
||||||
WeaponAnimations.Play("AirSlash");
|
WeaponAnimations.Play("Air Slash");
|
||||||
else if (weapon.WeaponElement == ElementType.Hydric)
|
else if (weapon.WeaponElement == ElementType.Hydric)
|
||||||
WeaponAnimations.Play("WaterSlash");
|
WeaponAnimations.Play("Water Slash");
|
||||||
else if (weapon.WeaponElement == ElementType.Igneous)
|
else if (weapon.WeaponElement == ElementType.Igneous)
|
||||||
WeaponAnimations.Play("FireSlash");
|
WeaponAnimations.Play("Fire Slash");
|
||||||
else if (weapon.WeaponElement == ElementType.Telluric)
|
else if (weapon.WeaponElement == ElementType.Telluric)
|
||||||
WeaponAnimations.Play("EarthSlash");
|
WeaponAnimations.Play("Earth Slash");
|
||||||
else if (string.IsNullOrWhiteSpace(potentialAnimName))
|
else if (string.IsNullOrWhiteSpace(potentialAnimName))
|
||||||
WeaponAnimations.Play("Unarmed");
|
WeaponAnimations.Play("Unarmed");
|
||||||
else
|
else
|
||||||
WeaponAnimations.Play("NormalSlash");
|
WeaponAnimations.Play("Normal Slash");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PlayerFXAnimations_AnimationFinished(StringName animName)
|
private void PlayerFXAnimations_AnimationFinished(StringName animName)
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -63,6 +63,7 @@ public partial class ActionPanel : Panel
|
|||||||
{
|
{
|
||||||
GetViewport().SetInputAsHandled();
|
GetViewport().SetInputAsHandled();
|
||||||
HideActionPanel();
|
HideActionPanel();
|
||||||
|
SfxDatabase.Instance.Play(SoundEffect.CancelUI);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=11 format=3 uid="uid://tpqh7q0xh63c"]
|
[gd_scene load_steps=16 format=3 uid="uid://tpqh7q0xh63c"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://c005nd0m2eim" path="res://src/ui/inventory_menu/ItemSlot.tscn" id="1_a5r0f"]
|
[ext_resource type="PackedScene" uid="uid://c005nd0m2eim" path="res://src/ui/inventory_menu/ItemSlot.tscn" id="1_a5r0f"]
|
||||||
[ext_resource type="Script" uid="uid://brtic4hw6thox" path="res://src/ui/inventory_menu/AugmentableItemsMenu.cs" id="1_ukqf2"]
|
[ext_resource type="Script" uid="uid://brtic4hw6thox" path="res://src/ui/inventory_menu/AugmentableItemsMenu.cs" id="1_ukqf2"]
|
||||||
@@ -6,12 +6,28 @@
|
|||||||
[ext_resource type="FontFile" uid="uid://0syyay37admf" path="res://src/ui/fonts/georgiab.ttf" id="3_qtvkp"]
|
[ext_resource type="FontFile" uid="uid://0syyay37admf" path="res://src/ui/fonts/georgiab.ttf" id="3_qtvkp"]
|
||||||
[ext_resource type="StyleBox" uid="uid://bxuy4tnftibfq" path="res://src/options/SelectedOptionsBox.tres" id="4_p84pf"]
|
[ext_resource type="StyleBox" uid="uid://bxuy4tnftibfq" path="res://src/options/SelectedOptionsBox.tres" id="4_p84pf"]
|
||||||
[ext_resource type="StyleBox" uid="uid://bl15q835s4ene" path="res://src/options/UnselectedOptionsBox.tres" id="5_rxojm"]
|
[ext_resource type="StyleBox" uid="uid://bl15q835s4ene" path="res://src/options/UnselectedOptionsBox.tres" id="5_rxojm"]
|
||||||
|
[ext_resource type="LabelSettings" uid="uid://b6f8ggy3ulonb" path="res://src/ui/label_settings/GeorgiaItalic.tres" id="7_qtvkp"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_l0byb"]
|
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_l0byb"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7co7g"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7co7g"]
|
||||||
bg_color = Color(0, 0, 0, 0.745098)
|
bg_color = Color(0, 0, 0, 0.745098)
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ukqf2"]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_qtvkp"]
|
||||||
|
bg_color = Color(0, 0, 0, 0.745098)
|
||||||
|
|
||||||
|
[sub_resource type="LabelSettings" id="LabelSettings_p84pf"]
|
||||||
|
line_spacing = 1.0
|
||||||
|
font = ExtResource("3_qtvkp")
|
||||||
|
font_size = 50
|
||||||
|
outline_size = 3
|
||||||
|
outline_color = Color(0, 0, 0, 1)
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_p84pf"]
|
||||||
|
bg_color = Color(0, 0, 0, 0.745098)
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_unikd"]
|
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_unikd"]
|
||||||
bg_color = Color(0, 0, 0, 1)
|
bg_color = Color(0, 0, 0, 1)
|
||||||
|
|
||||||
@@ -144,6 +160,99 @@ layout_mode = 2
|
|||||||
[node name="AugmentableSlot19" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")]
|
[node name="AugmentableSlot19" parent="CenterContainer2/AugmentableItemsList/Panel/MarginContainer2/Inventory" instance=ExtResource("1_a5r0f")]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="TitleContainer" type="MarginContainer" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
offset_right = 450.0
|
||||||
|
offset_bottom = 160.0
|
||||||
|
theme_override_constants/margin_left = 50
|
||||||
|
theme_override_constants/margin_top = 60
|
||||||
|
|
||||||
|
[node name="TitlePanelContainer" type="PanelContainer" parent="TitleContainer"]
|
||||||
|
custom_minimum_size = Vector2(400, 100)
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_styles/panel = SubResource("StyleBoxEmpty_ukqf2")
|
||||||
|
|
||||||
|
[node name="AugmentTitlePanel" type="Panel" parent="TitleContainer/TitlePanelContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_styles/panel = SubResource("StyleBoxFlat_qtvkp")
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="TitleContainer/TitlePanelContainer/AugmentTitlePanel"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme_override_constants/margin_left = 10
|
||||||
|
theme_override_constants/margin_top = 10
|
||||||
|
theme_override_constants/margin_right = 10
|
||||||
|
theme_override_constants/margin_bottom = 10
|
||||||
|
|
||||||
|
[node name="ReferenceRect" type="ReferenceRect" parent="TitleContainer/TitlePanelContainer/AugmentTitlePanel/MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
border_color = Color(1, 1, 1, 1)
|
||||||
|
border_width = 2.0
|
||||||
|
editor_only = false
|
||||||
|
|
||||||
|
[node name="AugmentLabel" type="Label" parent="TitleContainer/TitlePanelContainer/AugmentTitlePanel/MarginContainer/ReferenceRect"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 8
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_left = -148.0
|
||||||
|
offset_top = -28.5
|
||||||
|
offset_right = 148.0
|
||||||
|
offset_bottom = 28.5
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme_override_font_sizes/font_size = 15
|
||||||
|
text = "AUGMENT"
|
||||||
|
label_settings = SubResource("LabelSettings_p84pf")
|
||||||
|
horizontal_alignment = 1
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="DescriptionContainer" type="MarginContainer" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 4
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
offset_top = -250.0
|
||||||
|
offset_right = 500.0
|
||||||
|
offset_bottom = 150.0
|
||||||
|
grow_vertical = 2
|
||||||
|
theme_override_constants/margin_left = 50
|
||||||
|
|
||||||
|
[node name="ItemDescriptionPanelContainer" type="PanelContainer" parent="DescriptionContainer"]
|
||||||
|
custom_minimum_size = Vector2(300, 300)
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="ItemDescriptionBox" type="Panel" parent="DescriptionContainer/ItemDescriptionPanelContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_styles/panel = SubResource("StyleBoxFlat_p84pf")
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="DescriptionContainer/ItemDescriptionPanelContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/margin_left = 5
|
||||||
|
theme_override_constants/margin_top = 5
|
||||||
|
theme_override_constants/margin_right = 5
|
||||||
|
theme_override_constants/margin_bottom = 5
|
||||||
|
|
||||||
|
[node name="ReferenceRect" type="ReferenceRect" parent="DescriptionContainer/ItemDescriptionPanelContainer/MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
border_color = Color(1, 1, 1, 1)
|
||||||
|
border_width = 2.0
|
||||||
|
editor_only = false
|
||||||
|
|
||||||
|
[node name="CenterContainer" type="CenterContainer" parent="DescriptionContainer/ItemDescriptionPanelContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="DescriptionContainer/ItemDescriptionPanelContainer/CenterContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Select an item to augment."
|
||||||
|
label_settings = ExtResource("7_qtvkp")
|
||||||
|
|
||||||
[node name="ConfirmAugmentContainer" type="Panel" parent="."]
|
[node name="ConfirmAugmentContainer" type="Panel" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
visible = false
|
visible = false
|
||||||
|
|||||||
@@ -31,6 +31,12 @@ public partial class InventoryMenu : Control, IInventoryMenu
|
|||||||
|
|
||||||
[Node] public AugmentableItemsMenu AugmentMenu { get; set; }
|
[Node] public AugmentableItemsMenu AugmentMenu { get; set; }
|
||||||
|
|
||||||
|
[Node] public Label PlayerATKLabel { get; set; }
|
||||||
|
|
||||||
|
[Node] public Label PlayerDEFLabel { get; set; }
|
||||||
|
|
||||||
|
[Node] public Label StatusLabel { get; set; }
|
||||||
|
|
||||||
private List<IItemSlot> ItemSlots;
|
private List<IItemSlot> ItemSlots;
|
||||||
|
|
||||||
private IItemSlot _currentlySelected;
|
private IItemSlot _currentlySelected;
|
||||||
@@ -46,15 +52,29 @@ public partial class InventoryMenu : Control, IInventoryMenu
|
|||||||
ActionPanel.AugmentMenuRequested += ActionPanel_AugmentMenuRequested;
|
ActionPanel.AugmentMenuRequested += ActionPanel_AugmentMenuRequested;
|
||||||
AugmentMenu.AugmentMenuClosing += AugmentMenu_AugmentMenuClosing;
|
AugmentMenu.AugmentMenuClosing += AugmentMenu_AugmentMenuClosing;
|
||||||
AugmentMenu.FocusMode = FocusModeEnum.None;
|
AugmentMenu.FocusMode = FocusModeEnum.None;
|
||||||
|
_player.AttackComponent.CurrentAttack.Changed += AttackChanged;
|
||||||
|
_player.AttackComponent.MaximumAttack.Changed += AttackChanged;
|
||||||
|
_player.DefenseComponent.CurrentDefense.Changed += DefenseChanged;
|
||||||
|
_player.DefenseComponent.MaximumDefense.Changed += DefenseChanged;
|
||||||
ClearDescriptionBox();
|
ClearDescriptionBox();
|
||||||
|
AttackChanged(0);
|
||||||
|
DefenseChanged(0);
|
||||||
|
StatusLabel.Text = string.Empty;
|
||||||
|
Hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void AttackChanged(int obj) => PlayerATKLabel.Text = $"{_player.AttackComponent.CurrentAttack.Value:D2}/{_player.AttackComponent.MaximumAttack.Value:D2}+{_player.EquipmentComponent.BonusAttack}";
|
||||||
|
|
||||||
|
private void DefenseChanged(int obj) => PlayerDEFLabel.Text = $"{_player.DefenseComponent.CurrentDefense.Value:D2}/{_player.DefenseComponent.MaximumDefense.Value:D2}+{_player.EquipmentComponent.BonusDefense}";
|
||||||
|
|
||||||
public override void _Input(InputEvent @event)
|
public override void _Input(InputEvent @event)
|
||||||
{
|
{
|
||||||
if (Input.IsActionJustPressed(GameInputs.MoveUp) && _currentlySelected != ItemSlots.First())
|
if (Input.IsActionJustPressed(GameInputs.MoveUp) && _currentlySelected != ItemSlots.First())
|
||||||
SfxDatabase.Instance.Play(SoundEffect.MoveUI);
|
SfxDatabase.Instance.Play(SoundEffect.MoveUI);
|
||||||
if (Input.IsActionJustPressed(GameInputs.MoveDown) && _currentlySelected != ItemSlots.Last(x => x.Item.Value != null))
|
if (Input.IsActionJustPressed(GameInputs.MoveDown) && _currentlySelected != ItemSlots.Last(x => x.Item.Value != null))
|
||||||
SfxDatabase.Instance.Play(SoundEffect.MoveUI);
|
SfxDatabase.Instance.Play(SoundEffect.MoveUI);
|
||||||
|
if (Input.IsActionJustPressed(GameInputs.Interact))
|
||||||
|
SfxDatabase.Instance.Play(SoundEffect.CancelUI);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ActionPanel_AugmentMenuRequested()
|
private void ActionPanel_AugmentMenuRequested()
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
[gd_scene load_steps=15 format=3 uid="uid://cbxw70qa7gifp"]
|
[gd_scene load_steps=16 format=3 uid="uid://cbxw70qa7gifp"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://yh8qxmn058w2" path="res://src/ui/inventory_menu/InventoryMenu.cs" id="1_unikd"]
|
[ext_resource type="Script" uid="uid://yh8qxmn058w2" path="res://src/ui/inventory_menu/InventoryMenu.cs" id="1_unikd"]
|
||||||
[ext_resource type="PackedScene" uid="uid://b648lhohtue70" path="res://src/ui/inventory_menu/ActionPanel.tscn" id="3_7co7g"]
|
[ext_resource type="PackedScene" uid="uid://b648lhohtue70" path="res://src/ui/inventory_menu/ActionPanel.tscn" id="3_7co7g"]
|
||||||
|
[ext_resource type="FontFile" uid="uid://tfskthaq7tmi" path="res://src/ui/fonts/georgia.ttf" id="3_unikd"]
|
||||||
[ext_resource type="FontFile" uid="uid://0syyay37admf" path="res://src/ui/fonts/georgiab.ttf" id="6_ldqki"]
|
[ext_resource type="FontFile" uid="uid://0syyay37admf" path="res://src/ui/fonts/georgiab.ttf" id="6_ldqki"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c005nd0m2eim" path="res://src/ui/inventory_menu/ItemSlot.tscn" id="6_unikd"]
|
[ext_resource type="PackedScene" uid="uid://c005nd0m2eim" path="res://src/ui/inventory_menu/ItemSlot.tscn" id="6_unikd"]
|
||||||
[ext_resource type="PackedScene" uid="uid://tpqh7q0xh63c" path="res://src/ui/inventory_menu/AugmentableItemsMenu.tscn" id="6_xwkpe"]
|
[ext_resource type="PackedScene" uid="uid://tpqh7q0xh63c" path="res://src/ui/inventory_menu/AugmentableItemsMenu.tscn" id="6_xwkpe"]
|
||||||
@@ -33,7 +34,6 @@ bg_color = Color(0, 0, 0, 0.745098)
|
|||||||
|
|
||||||
[node name="InventoryMenu" type="PanelContainer"]
|
[node name="InventoryMenu" type="PanelContainer"]
|
||||||
process_mode = 2
|
process_mode = 2
|
||||||
visible = false
|
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
@@ -114,6 +114,112 @@ label_settings = SubResource("LabelSettings_ejvue")
|
|||||||
horizontal_alignment = 1
|
horizontal_alignment = 1
|
||||||
vertical_alignment = 1
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="StatsPanelContainer" type="PanelContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel"]
|
||||||
|
custom_minimum_size = Vector2(400, 100)
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = -1
|
||||||
|
anchor_top = 0.121
|
||||||
|
anchor_right = 0.28
|
||||||
|
anchor_bottom = 0.218
|
||||||
|
offset_top = 0.369995
|
||||||
|
offset_right = -0.399994
|
||||||
|
offset_bottom = 0.459991
|
||||||
|
|
||||||
|
[node name="StatsPanel" type="Panel" parent="Panel/MarginContainer/PanelContainer/MenuPanel/StatsPanelContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_styles/panel = SubResource("StyleBoxFlat_cq2sk")
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/StatsPanelContainer/StatsPanel"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme_override_constants/margin_left = 10
|
||||||
|
theme_override_constants/margin_top = 10
|
||||||
|
theme_override_constants/margin_right = 10
|
||||||
|
theme_override_constants/margin_bottom = 10
|
||||||
|
|
||||||
|
[node name="ReferenceRect" type="ReferenceRect" parent="Panel/MarginContainer/PanelContainer/MenuPanel/StatsPanelContainer/StatsPanel/MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
border_color = Color(1, 1, 1, 1)
|
||||||
|
border_width = 2.0
|
||||||
|
editor_only = false
|
||||||
|
|
||||||
|
[node name="MarginContainer" type="MarginContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/StatsPanelContainer/StatsPanel/MarginContainer/ReferenceRect"]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
theme_override_constants/margin_left = 15
|
||||||
|
theme_override_constants/margin_top = 5
|
||||||
|
theme_override_constants/margin_right = 5
|
||||||
|
theme_override_constants/margin_bottom = 5
|
||||||
|
|
||||||
|
[node name="HBoxContainer" type="HBoxContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/StatsPanelContainer/StatsPanel/MarginContainer/ReferenceRect/MarginContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_constants/separation = 20
|
||||||
|
|
||||||
|
[node name="StatsContainer" type="VBoxContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/StatsPanelContainer/StatsPanel/MarginContainer/ReferenceRect/MarginContainer/HBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="HBoxContainer" type="HBoxContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/StatsPanelContainer/StatsPanel/MarginContainer/ReferenceRect/MarginContainer/HBoxContainer/StatsContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="ATKName" type="Label" parent="Panel/MarginContainer/PanelContainer/MenuPanel/StatsPanelContainer/StatsPanel/MarginContainer/ReferenceRect/MarginContainer/HBoxContainer/StatsContainer/HBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_fonts/font = ExtResource("3_unikd")
|
||||||
|
theme_override_font_sizes/font_size = 25
|
||||||
|
text = "ATK:"
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="PlayerATKLabel" type="Label" parent="Panel/MarginContainer/PanelContainer/MenuPanel/StatsPanelContainer/StatsPanel/MarginContainer/ReferenceRect/MarginContainer/HBoxContainer/StatsContainer/HBoxContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_fonts/font = ExtResource("3_unikd")
|
||||||
|
theme_override_font_sizes/font_size = 25
|
||||||
|
text = "15/15"
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="HBoxContainer2" type="HBoxContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/StatsPanelContainer/StatsPanel/MarginContainer/ReferenceRect/MarginContainer/HBoxContainer/StatsContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="DEFName" type="Label" parent="Panel/MarginContainer/PanelContainer/MenuPanel/StatsPanelContainer/StatsPanel/MarginContainer/ReferenceRect/MarginContainer/HBoxContainer/StatsContainer/HBoxContainer2"]
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_fonts/font = ExtResource("3_unikd")
|
||||||
|
theme_override_font_sizes/font_size = 25
|
||||||
|
text = "DEF:"
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="PlayerDEFLabel" type="Label" parent="Panel/MarginContainer/PanelContainer/MenuPanel/StatsPanelContainer/StatsPanel/MarginContainer/ReferenceRect/MarginContainer/HBoxContainer/StatsContainer/HBoxContainer2"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
theme_override_fonts/font = ExtResource("3_unikd")
|
||||||
|
theme_override_font_sizes/font_size = 25
|
||||||
|
text = "15/15"
|
||||||
|
vertical_alignment = 1
|
||||||
|
|
||||||
|
[node name="StatusEffectContainer" type="VBoxContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/StatsPanelContainer/StatsPanel/MarginContainer/ReferenceRect/MarginContainer/HBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
alignment = 1
|
||||||
|
|
||||||
|
[node name="HBoxContainer" type="HBoxContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel/StatsPanelContainer/StatsPanel/MarginContainer/ReferenceRect/MarginContainer/HBoxContainer/StatusEffectContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
|
||||||
|
[node name="StatusName" type="Label" parent="Panel/MarginContainer/PanelContainer/MenuPanel/StatsPanelContainer/StatsPanel/MarginContainer/ReferenceRect/MarginContainer/HBoxContainer/StatusEffectContainer/HBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Status:"
|
||||||
|
label_settings = ExtResource("7_we8a6")
|
||||||
|
|
||||||
|
[node name="StatusLabel" type="Label" parent="Panel/MarginContainer/PanelContainer/MenuPanel/StatsPanelContainer/StatsPanel/MarginContainer/ReferenceRect/MarginContainer/HBoxContainer/StatusEffectContainer/HBoxContainer"]
|
||||||
|
unique_name_in_owner = true
|
||||||
|
layout_mode = 2
|
||||||
|
text = "Rust"
|
||||||
|
label_settings = ExtResource("7_we8a6")
|
||||||
|
|
||||||
[node name="ActionPanelContainer" type="PanelContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel"]
|
[node name="ActionPanelContainer" type="PanelContainer" parent="Panel/MarginContainer/PanelContainer/MenuPanel"]
|
||||||
layout_mode = 1
|
layout_mode = 1
|
||||||
anchors_preset = 2
|
anchors_preset = 2
|
||||||
|
|||||||
@@ -38,7 +38,8 @@ unique_name_in_owner = true
|
|||||||
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")
|
||||||
expand_mode = 2
|
expand_mode = 1
|
||||||
|
stretch_mode = 5
|
||||||
|
|
||||||
[node name="Control" type="HBoxContainer" parent="ItemInfo"]
|
[node name="Control" type="HBoxContainer" parent="ItemInfo"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
@@ -68,12 +69,12 @@ 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(15, 20)
|
custom_minimum_size = Vector2(50, 50)
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
size_flags_vertical = 4
|
size_flags_vertical = 4
|
||||||
texture = ExtResource("5_lt1pw")
|
texture = ExtResource("5_lt1pw")
|
||||||
stretch_mode = 2
|
expand_mode = 1
|
||||||
|
|
||||||
[node name="ItemCountLabel" type="Label" parent="."]
|
[node name="ItemCountLabel" type="Label" parent="."]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
|
|||||||
Reference in New Issue
Block a user