Implement even more inventory/UI stuff
This commit is contained in:
@@ -50,8 +50,6 @@ public partial class Game : Node3D, IGame
|
||||
|
||||
private List<IDungeonFloor> Floors;
|
||||
|
||||
private int _currentFloor = -1;
|
||||
|
||||
public void Setup()
|
||||
{
|
||||
GameRepo = new GameRepo();
|
||||
@@ -88,7 +86,7 @@ public partial class Game : Node3D, IGame
|
||||
.Handle((in GameLogic.Output.LoadNextFloor _) =>
|
||||
{
|
||||
AnimationPlayer.Play("wait_and_load");
|
||||
var currentFloor = Floors.ElementAt(_currentFloor);
|
||||
var currentFloor = Floors.ElementAt(GameRepo.CurrentFloor);
|
||||
currentFloor.CallDeferred(MethodName.QueueFree, []);
|
||||
|
||||
if (GameRepo.EquippedWeapon.Value.WeaponInfo != null && GameRepo.EquippedWeapon.Value.WeaponInfo.WeaponTags.Contains(WeaponTag.BreaksOnChange))
|
||||
@@ -120,7 +118,7 @@ public partial class Game : Node3D, IGame
|
||||
|
||||
private void AnimationPlayer_AnimationStarted(StringName animName)
|
||||
{
|
||||
var newFloor = Floors.ElementAt(_currentFloor + 1);
|
||||
var newFloor = Floors.ElementAt(GameRepo.CurrentFloor + 1);
|
||||
newFloor.CallDeferred(nameof(newFloor.InitializeDungeon), []);
|
||||
newFloor.Show();
|
||||
}
|
||||
@@ -129,7 +127,7 @@ public partial class Game : Node3D, IGame
|
||||
{
|
||||
var spawnPoints = GetTree().GetNodesInGroup("Exit").OfType<Marker3D>();
|
||||
Teleport.GlobalPosition = spawnPoints.Last().GlobalPosition;
|
||||
_currentFloor++;
|
||||
GameRepo.CurrentFloor++;
|
||||
}
|
||||
|
||||
public override void _Process(double delta)
|
||||
|
||||
@@ -46,6 +46,8 @@ public interface IGameRepo : IDisposable
|
||||
public void EquipItem(IEquipable item);
|
||||
|
||||
public void UnequipItem(IEquipable item);
|
||||
|
||||
public int CurrentFloor { get; set; }
|
||||
}
|
||||
|
||||
public class GameRepo : IGameRepo
|
||||
@@ -86,6 +88,8 @@ public class GameRepo : IGameRepo
|
||||
|
||||
public AutoProp<PlayerStatInfo> PlayerStatInfo => _playerStatInfo;
|
||||
|
||||
public int CurrentFloor { get; set; } = -1;
|
||||
|
||||
public GameRepo()
|
||||
{
|
||||
_inventoryItems = new AutoProp<List<IInventoryItem>>([]);
|
||||
@@ -130,6 +134,17 @@ public class GameRepo : IGameRepo
|
||||
|
||||
public void OnAccessoryEquipped(Accessory equippedItem)
|
||||
{
|
||||
PlayerStatInfo.Value.BonusAttack -= _equippedAccessory.Value.AccessoryInfo.ATKUp;
|
||||
PlayerStatInfo.Value.BonusDefense -= _equippedAccessory.Value.AccessoryInfo.DEFUp;
|
||||
PlayerStatInfo.Value.MaximumHP -= _equippedAccessory.Value.AccessoryInfo.MaxHPUp;
|
||||
PlayerStatInfo.Value.MaximumVT -= _equippedAccessory.Value.AccessoryInfo.MaxVTUp;
|
||||
PlayerStatInfo.Value.Luck -= _equippedAccessory.Value.AccessoryInfo.LUCKUp;
|
||||
|
||||
PlayerStatInfo.Value.BonusAttack += equippedItem.AccessoryInfo.ATKUp;
|
||||
PlayerStatInfo.Value.BonusDefense += equippedItem.AccessoryInfo.DEFUp;
|
||||
PlayerStatInfo.Value.MaximumHP += equippedItem.AccessoryInfo.MaxHPUp;
|
||||
PlayerStatInfo.Value.MaximumVT += equippedItem.AccessoryInfo.MaxVTUp;
|
||||
PlayerStatInfo.Value.Luck += equippedItem.AccessoryInfo.LUCKUp;
|
||||
_equippedAccessory.OnNext(equippedItem);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user