Started implementation of information about item used screen

This commit is contained in:
2026-03-02 01:57:43 -08:00
parent 46f0e78405
commit bc010a7d82
8 changed files with 182 additions and 38 deletions

View File

@@ -88,12 +88,12 @@ public class EffectService
SfxDatabase.Instance.Play(SoundEffect.HealHP);
}
public void AbsorbHPFromAllEnemiesInRoom()
public int AbsorbHPFromAllEnemiesInRoom()
{
var currentRoom = _map.GetPlayersCurrentRoom();
if (currentRoom is not MonsterRoom)
return;
return 0;
var currentEnemies = currentRoom.EnemiesInRoom;
var hpToAbsorb = 0.0;
@@ -104,9 +104,7 @@ public class EffectService
hpToAbsorb += absorbAmount;
enemy.OnAbsorb();
}
_player.HealthComponent.Heal((int)hpToAbsorb);
_player.PlaySpellFX(SpellFXEnum.Kyuuketsuki);
GD.Print("HP to absorb: " + hpToAbsorb);
return (int)hpToAbsorb;
}
public void DealElementalDamageToAllEnemiesInRoom(ElementType elementType)
@@ -306,7 +304,7 @@ public class EffectService
SfxDatabase.Instance.Play(SoundEffect.TeleportToRandomRoom);
}
public void WarpToExit()
public bool WarpToExit()
{
var exitRoom = _game.CurrentFloor.Rooms.OfType<ExitRoom>().Single();
if (exitRoom.PlayerDiscoveredRoom)
@@ -314,7 +312,9 @@ public class EffectService
SfxDatabase.Instance.Play(SoundEffect.TeleportToExit);
var exitPoint = exitRoom.PlayerSpawn.GlobalPosition;
_player.TeleportPlayer((exitRoom.PlayerSpawn.Rotation, new Vector3(exitPoint.X, _player.GlobalPosition.Y, exitPoint.Z)));
return true;
}
return false;
}
public void DamagesPlayer(int damage)
@@ -341,11 +341,11 @@ public class EffectService
_game.UseItem(item);
}
public void DropTo1HPAndGainRareItem<T>()
public T DropTo1HPAndGainRareItem<T>()
where T : IBaseInventoryItem
{
_player.HealthComponent.SetCurrentHealth(1);
_player.Inventory.TryAdd(ItemDatabase.Instance.PickRareItem<T>());
return ItemDatabase.Instance.PickRareItem<T>();
}
public void TradeRandomItem<T>(BoxItem box)
@@ -373,7 +373,7 @@ public class EffectService
return newInventory;
}
public void GetUnobtainedItem()
public IBaseInventoryItem GetUnobtainedItem()
{
var pickableItems = ItemDatabase.Instance.Items.Except(_player.Inventory.Items).ToList();
var rng = new RandomNumberGenerator();
@@ -384,12 +384,12 @@ public class EffectService
if (selectedItem is ThrowableItem throwableItem)
throwableItem.SetCount(rng.RandiRange(throwableItem.Stats.MinimumCount, throwableItem.Stats.MaximumCount));
_player.Inventory.TryAdd(selectedItem);
return selectedItem;
}
public void GetBasicItem<T>()
public T GetBasicItem<T>()
where T : IBaseInventoryItem
{
_player.Inventory.TryAdd(ItemDatabase.Instance.PickBasicItem<T>());
return ItemDatabase.Instance.PickBasicItem<T>();
}
}