Wave of item effects and implementation
This commit is contained in:
@@ -178,6 +178,12 @@ public class EffectService
|
||||
_player.ExperiencePointsComponent.GainUnmodified(expToNextLevel);
|
||||
}
|
||||
|
||||
public void LowerLevel()
|
||||
{
|
||||
var expToNextLevel = _player.ExperiencePointsComponent.ExpToNextLevel.Value - _player.ExperiencePointsComponent.CurrentExp.Value;
|
||||
_player.ExperiencePointsComponent.LevelDown();
|
||||
}
|
||||
|
||||
public void TeleportToRandomRoom(IEnemy enemy)
|
||||
{
|
||||
var currentFloor = _game.CurrentFloor;
|
||||
@@ -196,6 +202,44 @@ public class EffectService
|
||||
enemy.MoveEnemyToNewRoom(randomRoom);
|
||||
}
|
||||
|
||||
public void CloneEnemy(IEnemy enemy)
|
||||
{
|
||||
var enemyPosition = new Vector3(enemy.GlobalPosition.X, 0f, enemy.GlobalPosition.Z);
|
||||
var enemyType = EnemyTypeToEnemyConverter.Convert(enemy);
|
||||
var duplicatedEnemy = EnemyTypeToEnemyConverter.Convert(enemyType);
|
||||
duplicatedEnemy.Position = enemy.GlobalPosition + enemy.GlobalBasis.X;
|
||||
_map.AddChild(duplicatedEnemy);
|
||||
}
|
||||
|
||||
public void MeltAllEquipment(IPlayer player)
|
||||
{
|
||||
var weapon = player.EquipmentComponent.EquippedWeapon.Value;
|
||||
var armor = player.EquipmentComponent.EquippedArmor.Value;
|
||||
var accessory = player.EquipmentComponent.EquippedAccessory.Value;
|
||||
var ammo = player.EquipmentComponent.EquippedAmmo.Value;
|
||||
|
||||
if (weapon != null)
|
||||
{
|
||||
player.Unequip(weapon);
|
||||
player.Inventory.Remove(weapon);
|
||||
}
|
||||
if (armor != null)
|
||||
{
|
||||
player.Unequip(armor);
|
||||
player.Inventory.Remove(armor);
|
||||
}
|
||||
if (accessory != null)
|
||||
{
|
||||
player.Unequip(accessory);
|
||||
player.Inventory.Remove(accessory);
|
||||
}
|
||||
if (ammo != null)
|
||||
{
|
||||
player.Unequip(ammo);
|
||||
player.Inventory.Remove(ammo);
|
||||
}
|
||||
}
|
||||
|
||||
public void TeleportToRandomRoom(IPlayer player)
|
||||
{
|
||||
var currentFloor = _game.CurrentFloor;
|
||||
|
||||
Reference in New Issue
Block a user