Files
GameJamDungeon/Zennysoft.Game.Ma/src/player/PlayerEffectService.cs

35 lines
828 B
C#

using Godot;
using Zennysoft.Game.Ma;
using Zennysoft.Ma.Adapter;
using Zennysoft.Ma.Adapter.Entity;
internal class PlayerEffectService
{
private IPlayer _player;
public PlayerEffectService(IPlayer player)
{
_player = player;
}
public void TakeSelfDamage(int damage)
{
_player.TakeDamage(new AttackData(5, ElementType.None, true, true));
}
public void Instakill(IEnemy enemy)
{
var rng = new RandomNumberGenerator();
rng.Randomize();
var rand = rng.RandiRange(1, 100);
if (rand <= _player.TotalLuck)
enemy.Die();
}
public void Degrade()
{
var weapon = _player.EquipmentComponent.EquippedWeapon.Value as Weapon;
var newAttack = Mathf.Max(weapon.BonusAttack - 1, 0);
weapon.SetAttack(newAttack);
_player.EquipmentComponent.UpdateEquipment(weapon);
}
}