~ruther/NosSmooth

ecb4ceb20b0dbc5fc4a342415c109ccbb00996ca — Rutherther 2 years ago 8154990
chore: make updates to get rid of warnings
42 files changed, 90 insertions(+), 57 deletions(-)

M Core/NosSmooth.Core/Commands/Control/TakeControlCommandHandler.cs
M Core/NosSmooth.Game/Apis/NostaleChatPacketApi.cs
M Core/NosSmooth.Game/Apis/NostaleSkillsPacketApi.cs
M Core/NosSmooth.Game/Data/Characters/Character.cs
M Core/NosSmooth.Game/Data/Characters/Skill.cs
M Core/NosSmooth.Game/Data/Chat/Friend.cs
M Core/NosSmooth.Game/Data/Dialogs/Dialog.cs
M Core/NosSmooth.Game/Data/Entities/GroundItem.cs
M Core/NosSmooth.Game/Data/Entities/IEntity.cs
M Core/NosSmooth.Game/Data/Entities/LivingEntity.cs
M Core/NosSmooth.Game/Data/Entities/Monster.cs
M Core/NosSmooth.Game/Data/Entities/Npc.cs
M Core/NosSmooth.Game/Data/Entities/Player.cs
M Core/NosSmooth.Game/Data/Items/Equipment.cs
M Core/NosSmooth.Game/Data/Items/Fairy.cs
M Core/NosSmooth.Game/Data/Maps/Map.cs
M Core/NosSmooth.Game/Data/Maps/MapEntities.cs
M Core/NosSmooth.Game/Data/Maps/Miniland.cs
M Core/NosSmooth.Game/Data/Maps/MinilandObject.cs
M Core/NosSmooth.Game/Data/Maps/Portal.cs
M Core/NosSmooth.Game/Data/Maps/Timespace.cs
M Core/NosSmooth.Game/Data/Social/Family.cs
M Core/NosSmooth.Game/Events/Battle/AoESkillUsedEvent.cs
M Core/NosSmooth.Game/Events/Battle/SkillUsedEvent.cs
M Core/NosSmooth.Game/Events/Entities/EntityDiedEvent.cs
M Core/NosSmooth.Game/Events/Entities/EntityLeftMapEvent.cs
M Core/NosSmooth.Game/Game.cs
M Core/NosSmooth.Game/Helpers/EquipmentHelpers.cs
M Core/NosSmooth.Game/PacketHandlers/Characters/WalkResponder.cs
M Core/NosSmooth.Game/PacketHandlers/Entities/EqResponder.cs
M Core/NosSmooth.Game/PacketHandlers/Map/AtResponder.cs
M Core/NosSmooth.Game/PacketHandlers/Map/CMapResponder.cs
M Core/NosSmooth.Game/PacketHandlers/Map/DropResponder.cs
M Core/NosSmooth.Game/PacketHandlers/Map/MoveResponder.cs
M Core/NosSmooth.Game/PacketHandlers/Map/OutResponder.cs
M Data/NosSmooth.Data.Database/DatabaseMigrator.cs
M Extensions/NosSmooth.Extensions.Combat/CombatManager.cs
M Extensions/NosSmooth.Extensions.Combat/Errors/TargetNotSetError.cs
M Extensions/NosSmooth.Extensions.Combat/Operations/UseItemOperation.cs
M Extensions/NosSmooth.Extensions.Combat/Responders/CancelResponder.cs
M Extensions/NosSmooth.Extensions.Combat/Responders/SkillUseResponder.cs
M Extensions/NosSmooth.Extensions.Pathfinding/NosSmooth.Extensions.Pathfinding.csproj
M Core/NosSmooth.Core/Commands/Control/TakeControlCommandHandler.cs => Core/NosSmooth.Core/Commands/Control/TakeControlCommandHandler.cs +1 -1
@@ 57,7 57,7 @@ internal class TakeControlCommandHandler : ICommandHandler<TakeControlCommand>
                {
                    source.Cancel();
                }
                catch (Exception e)
                catch (Exception)
                {
                    // ignored
                }

M Core/NosSmooth.Game/Apis/NostaleChatPacketApi.cs => Core/NosSmooth.Game/Apis/NostaleChatPacketApi.cs +1 -1
@@ 5,8 5,8 @@
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Core.Client;
using NosSmooth.Packets.Enums;
using NosSmooth.Packets.Enums.Chat;
using NosSmooth.Packets.Enums.Entities;
using NosSmooth.Packets.Server.Chat;
using Remora.Results;


M Core/NosSmooth.Game/Apis/NostaleSkillsPacketApi.cs => Core/NosSmooth.Game/Apis/NostaleSkillsPacketApi.cs +9 -9
@@ 9,7 9,7 @@ using NosSmooth.Game.Data.Characters;
using NosSmooth.Game.Data.Entities;
using NosSmooth.Game.Errors;
using NosSmooth.Packets.Client.Battle;
using NosSmooth.Packets.Enums;
using NosSmooth.Packets.Enums.Entities;
using Remora.Results;

namespace NosSmooth.Game.Apis;


@@ 35,7 35,7 @@ public class NostaleSkillsPacketApi
    /// </summary>
    /// <remarks>
    /// For skills that can be used only on self, use <paramref name="entityId"/> of the character.
    /// For skills that cannot be targeted on an entity, proceed to <see cref="UseSkillAt"/>.
    /// For skills that cannot be targeted on an entity, proceed to UseSkillAt.
    /// </remarks>
    /// <param name="castId">The cast id of the skill.</param>
    /// <param name="entityId">The id of the entity to use the skill on.</param>


@@ 72,8 72,8 @@ public class NostaleSkillsPacketApi
    /// Use the given (targetable) skill on specified entity.
    /// </summary>
    /// <remarks>
    /// For skills that can be used only on self, use <paramref name="entityId"/> of the character.
    /// For skills that cannot be targeted on an entity, proceed to <see cref="UseSkillAt"/>.
    /// For skills that can be used only on self, use <paramref name="entity"/> of the character.
    /// For skills that cannot be targeted on an entity, proceed to UseSkillAt.
    /// </remarks>
    /// <param name="castId">The cast id of the skill.</param>
    /// <param name="entity">The entity to use the skill on.</param>


@@ 109,8 109,8 @@ public class NostaleSkillsPacketApi
    /// </summary>
    /// <remarks>
    /// The skill won't be used if it is on cooldown.
    /// For skills that can be used only on self, use <paramref name="entityId"/> of the character.
    /// For skills that cannot be targeted on an entity, proceed to <see cref="UseSkillAt"/>.
    /// For skills that can be used only on self, use <paramref name="entity"/> of the character.
    /// For skills that cannot be targeted on an entity, proceed to UseSkillAt.
    /// </remarks>
    /// <param name="skill">The skill to use.</param>
    /// <param name="entity">The entity to use the skill on.</param>


@@ 156,7 156,7 @@ public class NostaleSkillsPacketApi
    /// </summary>
    /// <remarks>
    /// For skills that can be used only on self, use <paramref name="entityId"/> of the character.
    /// For skills that cannot be targeted on an entity, proceed to <see cref="UseSkillAt"/>.
    /// For skills that cannot be targeted on an entity, proceed to UseSkillAt.
    /// </remarks>
    /// <param name="skill">The skill to use.</param>
    /// <param name="entityId">The id of the entity to use the skill on.</param>


@@ 203,7 203,7 @@ public class NostaleSkillsPacketApi
    /// Use the given (aoe) skill on the specified place.
    /// </summary>
    /// <remarks>
    /// For skills that can have targets, proceed to <see cref="UseSkillOn"/>.
    /// For skills that can have targets, proceed to UseSkillOn.
    /// </remarks>
    /// <param name="skillVNum">The id of the skill.</param>
    /// <param name="mapX">The x coordinate to use the skill at.</param>


@@ 229,7 229,7 @@ public class NostaleSkillsPacketApi
    /// Use the given (aoe) skill on the specified place.
    /// </summary>
    /// <remarks>
    /// For skills that can have targets, proceed to <see cref="UseSkillOn"/>.
    /// For skills that can have targets, proceed to UseSkillOn.
    /// </remarks>
    /// <param name="skill">The skill to use.</param>
    /// <param name="mapX">The x coordinate to use the skill at.</param>

M Core/NosSmooth.Game/Data/Characters/Character.cs => Core/NosSmooth.Game/Data/Characters/Character.cs +0 -2
@@ 8,8 8,6 @@ using NosSmooth.Game.Data.Chat;
using NosSmooth.Game.Data.Entities;
using NosSmooth.Game.Data.Info;
using NosSmooth.Game.Data.Social;
using NosSmooth.Packets.Enums;
using NosSmooth.Packets.Enums.Players;

namespace NosSmooth.Game.Data.Characters;


M Core/NosSmooth.Game/Data/Characters/Skill.cs => Core/NosSmooth.Game/Data/Characters/Skill.cs +1 -0
@@ 13,6 13,7 @@ namespace NosSmooth.Game.Data.Characters;
/// </summary>
/// <param name="SkillVNum">The vnum of the skill.</param>
/// <param name="Level">The level of the skill. Unknown feature.</param>
/// <param name="Info">The information obtained from Data assembly.</param>
public record Skill(int SkillVNum, int? Level = default, ISkillInfo? Info = default)
{
    /// <summary>

M Core/NosSmooth.Game/Data/Chat/Friend.cs => Core/NosSmooth.Game/Data/Chat/Friend.cs +3 -3
@@ 16,9 16,9 @@ public class Friend
    /// </summary>
    public long CharacterId { get; internal set; }

    /// <summary>
    /// The type of the relation.
    /// </summary>
    // <summary>
    // The type of the relation.
    // </summary>
    // public CharacterRelationType RelationType { get; internal set; }

    /// <summary>

M Core/NosSmooth.Game/Data/Dialogs/Dialog.cs => Core/NosSmooth.Game/Data/Dialogs/Dialog.cs +2 -3
@@ 9,9 9,8 @@ namespace NosSmooth.Game.Data.Dialogs;
/// <summary>
/// Represents dialog sent by the server
/// </summary>
/// <param name="AcceptCommand"></param>
/// <param name="Message"></param>
/// <param name="Parameters"></param>
/// <param name="AcceptCommand">The accept command sent upon accept.</param>
/// <param name="Parameters">The parameters of the dialog.</param>
public record Dialog
(
    string AcceptCommand,

M Core/NosSmooth.Game/Data/Entities/GroundItem.cs => Core/NosSmooth.Game/Data/Entities/GroundItem.cs +1 -1
@@ 6,7 6,7 @@

using NosSmooth.Data.Abstractions.Infos;
using NosSmooth.Game.Data.Info;
using NosSmooth.Packets.Enums;
using NosSmooth.Packets.Enums.Entities;

namespace NosSmooth.Game.Data.Entities;


M Core/NosSmooth.Game/Data/Entities/IEntity.cs => Core/NosSmooth.Game/Data/Entities/IEntity.cs +1 -1
@@ 5,7 5,7 @@
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Game.Data.Info;
using NosSmooth.Packets.Enums;
using NosSmooth.Packets.Enums.Entities;

namespace NosSmooth.Game.Data.Entities;


M Core/NosSmooth.Game/Data/Entities/LivingEntity.cs => Core/NosSmooth.Game/Data/Entities/LivingEntity.cs +1 -1
@@ 5,7 5,7 @@
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Game.Data.Info;
using NosSmooth.Packets.Enums;
using NosSmooth.Packets.Enums.Entities;

namespace NosSmooth.Game.Data.Entities;


M Core/NosSmooth.Game/Data/Entities/Monster.cs => Core/NosSmooth.Game/Data/Entities/Monster.cs +1 -1
@@ 6,7 6,7 @@

using NosSmooth.Data.Abstractions.Infos;
using NosSmooth.Game.Data.Info;
using NosSmooth.Packets.Enums;
using NosSmooth.Packets.Enums.Entities;

namespace NosSmooth.Game.Data.Entities;


M Core/NosSmooth.Game/Data/Entities/Npc.cs => Core/NosSmooth.Game/Data/Entities/Npc.cs +1 -1
@@ 6,7 6,7 @@

using NosSmooth.Data.Abstractions.Infos;
using NosSmooth.Game.Data.Info;
using NosSmooth.Packets.Enums;
using NosSmooth.Packets.Enums.Entities;

namespace NosSmooth.Game.Data.Entities;


M Core/NosSmooth.Game/Data/Entities/Player.cs => Core/NosSmooth.Game/Data/Entities/Player.cs +1 -1
@@ 7,7 7,7 @@
using NosSmooth.Game.Data.Info;
using NosSmooth.Game.Data.Items;
using NosSmooth.Game.Data.Social;
using NosSmooth.Packets.Enums;
using NosSmooth.Packets.Enums.Entities;
using NosSmooth.Packets.Enums.Players;

namespace NosSmooth.Game.Data.Entities;

M Core/NosSmooth.Game/Data/Items/Equipment.cs => Core/NosSmooth.Game/Data/Items/Equipment.cs +13 -0
@@ 6,6 6,19 @@

namespace NosSmooth.Game.Data.Items;

/// <summary>
/// Information about character's equipment.
/// </summary>
/// <param name="Hat">The hat.</param>
/// <param name="Armor">The armor.</param>
/// <param name="MainWeapon">The main weapon.</param>
/// <param name="SecondaryWeapon">The secondary weapon.</param>
/// <param name="Mask">The mask.</param>
/// <param name="Fairy">The fairy.</param>
/// <param name="CostumeSuit">The costume suit.</param>
/// <param name="CostumeHat">The costume hat.</param>
/// <param name="WeaponSkin">The weapon skin.</param>
/// <param name="WingSkin">The wing skin.</param>
public record Equipment
(
     Item? Hat,

M Core/NosSmooth.Game/Data/Items/Fairy.cs => Core/NosSmooth.Game/Data/Items/Fairy.cs +6 -0
@@ 9,4 9,10 @@ using NosSmooth.Packets.Enums;

namespace NosSmooth.Game.Data.Items;

/// <summary>
/// Information about a fairy.
/// </summary>
/// <param name="ItemVNum">The fairy vnum.</param>
/// <param name="Element">The element of the fairy.</param>
/// <param name="Info">The item information from data assembly.</param>
public record Fairy(int ItemVNum, Element Element, IItemInfo? Info) : Item(ItemVNum, Info);
\ No newline at end of file

M Core/NosSmooth.Game/Data/Maps/Map.cs => Core/NosSmooth.Game/Data/Maps/Map.cs +5 -0
@@ 13,6 13,11 @@ namespace NosSmooth.Game.Data.Maps;
/// <summary>
/// Represents nostale map.
/// </summary>
/// <param name="Id">The id of the map.</param>
/// <param name="Type">The type of the map.</param>
/// <param name="Info">The information about the map obtained from data assembly.</param>
/// <param name="Entities">The entities on the map.</param>
/// <param name="Portals">The portals on the map.</param>
public record Map
(
    long Id,

M Core/NosSmooth.Game/Data/Maps/MapEntities.cs => Core/NosSmooth.Game/Data/Maps/MapEntities.cs +0 -1
@@ 7,7 7,6 @@
using System.Collections.Concurrent;
using NosSmooth.Game.Data.Characters;
using NosSmooth.Game.Data.Entities;
using NosSmooth.Packets.Enums;

namespace NosSmooth.Game.Data.Maps;


M Core/NosSmooth.Game/Data/Maps/Miniland.cs => Core/NosSmooth.Game/Data/Maps/Miniland.cs +6 -1
@@ 11,7 11,12 @@ namespace NosSmooth.Game.Data.Maps;
/// <summary>
/// Represents Miniland map that can contain miniland objects.
/// </summary>
/// <param name="Objects">The objects in the miniland.</param>
/// <param name="Id">The id of the miniland map.</param>
/// <param name="Type">The type of the miniland map.</param>
/// <param name="Info">The information about the map obtained from data assembly.</param>
/// <param name="Entities">The entities on the map.</param>
/// <param name="Portals">The portals on the map.</param>
/// <param name="Objects">The miniland objects on the map.</param>
public record Miniland
(
    long Id,

M Core/NosSmooth.Game/Data/Maps/MinilandObject.cs => Core/NosSmooth.Game/Data/Maps/MinilandObject.cs +3 -0
@@ 6,4 6,7 @@

namespace NosSmooth.Game.Data.Maps;

/// <summary>
/// An object in miniland.
/// </summary>
public record MinilandObject();
\ No newline at end of file

M Core/NosSmooth.Game/Data/Maps/Portal.cs => Core/NosSmooth.Game/Data/Maps/Portal.cs +2 -0
@@ 15,6 15,8 @@ namespace NosSmooth.Game.Data.Maps;
/// <param name="PortalId">The portal id.</param>
/// <param name="Position">The position of the portal.</param>
/// <param name="TargetMapId">The id of the target map.</param>
/// <param name="PortalType">The visual type of the portal.</param>
/// <param name="IsDisabled">Whether the portal is disabled (locked) and thus cannot be used.</param>
public record Portal
(
    long PortalId,

M Core/NosSmooth.Game/Data/Maps/Timespace.cs => Core/NosSmooth.Game/Data/Maps/Timespace.cs +3 -0
@@ 6,4 6,7 @@

namespace NosSmooth.Game.Data.Maps;

/// <summary>
/// Information about a TimeSpace.
/// </summary>
public record Timespace();
\ No newline at end of file

M Core/NosSmooth.Game/Data/Social/Family.cs => Core/NosSmooth.Game/Data/Social/Family.cs +2 -0
@@ 10,8 10,10 @@ namespace NosSmooth.Game.Data.Social;
/// Represents nostale family entity.
/// </summary>
/// <param name="Id">The id of the family.</param>
/// <param name="Title">The family's title.</param>
/// <param name="Name">The name of the family.</param>
/// <param name="Level">The level of the entity.</param>
/// <param name="Icons">What icons the family has activated.</param>
public record Family
(
    string? Id,

M Core/NosSmooth.Game/Events/Battle/AoESkillUsedEvent.cs => Core/NosSmooth.Game/Events/Battle/AoESkillUsedEvent.cs +0 -1
@@ 7,7 7,6 @@
using NosSmooth.Game.Data.Characters;
using NosSmooth.Game.Data.Entities;
using NosSmooth.Game.Data.Info;
using NosSmooth.Packets.Enums.Battle;

namespace NosSmooth.Game.Events.Battle;


M Core/NosSmooth.Game/Events/Battle/SkillUsedEvent.cs => Core/NosSmooth.Game/Events/Battle/SkillUsedEvent.cs +0 -1
@@ 17,7 17,6 @@ namespace NosSmooth.Game.Events.Battle;
/// <param name="Caster">The caster entity of the skill.</param>
/// <param name="Target">The target entity of the skill.</param>
/// <param name="Skill">The skill that has been used with the information about the skill.</param>
/// <param name="SkillVNum">The vnum of the skill.</param>
/// <param name="TargetPosition">The position of the target.</param>
/// <param name="Hit"></param>
/// <param name="Damage"></param>

M Core/NosSmooth.Game/Events/Entities/EntityDiedEvent.cs => Core/NosSmooth.Game/Events/Entities/EntityDiedEvent.cs +1 -1
@@ 6,7 6,6 @@

using NosSmooth.Game.Data.Characters;
using NosSmooth.Game.Data.Entities;
using NosSmooth.Game.Events.Characters;

namespace NosSmooth.Game.Events.Entities;



@@ 15,6 14,7 @@ namespace NosSmooth.Game.Events.Entities;
/// </summary>
/// <remarks>
/// Is not emitted for the character, see <see cref="CharacterDiedEvent"/>.
/// TODO figure CharacterDiedEvent out.
/// </remarks>
/// <param name="Entity">The entity that has died.</param>
/// <param name="KillSkill">The skill that was used to kill the entity, if known.</param>

M Core/NosSmooth.Game/Events/Entities/EntityLeftMapEvent.cs => Core/NosSmooth.Game/Events/Entities/EntityLeftMapEvent.cs +2 -0
@@ 13,6 13,8 @@ namespace NosSmooth.Game.Events.Entities;
/// An entity has left the map.
/// </summary>
/// <param name="Entity">The entity that has left.</param>
/// <param name="Portal">The portal that was probably used to leave the map. (This may not be accurate, the character may as well have left or )</param>
/// <param name="Died">Whether the entity has died. (This may not be accurate.)</param>
public record EntityLeftMapEvent
(
    IEntity Entity,

M Core/NosSmooth.Game/Game.cs => Core/NosSmooth.Game/Game.cs +0 -1
@@ 5,7 5,6 @@
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using Microsoft.Extensions.Options;
using NosSmooth.Core.Client;
using NosSmooth.Core.Stateful;
using NosSmooth.Game.Data.Characters;
using NosSmooth.Game.Data.Maps;

M Core/NosSmooth.Game/Helpers/EquipmentHelpers.cs => Core/NosSmooth.Game/Helpers/EquipmentHelpers.cs +0 -2
@@ 4,12 4,10 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System.Reflection;
using NosSmooth.Data.Abstractions;
using NosSmooth.Game.Data.Items;
using NosSmooth.Packets.Server.Maps;
using NosSmooth.Packets.Server.Weapons;
using Remora.Results;

namespace NosSmooth.Game.Helpers;


M Core/NosSmooth.Game/PacketHandlers/Characters/WalkResponder.cs => Core/NosSmooth.Game/PacketHandlers/Characters/WalkResponder.cs +0 -2
@@ 60,7 60,5 @@ public class WalkResponder : IPacketResponder<WalkPacket>
            new EntityMovedEvent(character, oldPosition, character.Position!.Value),
            ct
        );

        return Result.FromSuccess();
    }
}
\ No newline at end of file

M Core/NosSmooth.Game/PacketHandlers/Entities/EqResponder.cs => Core/NosSmooth.Game/PacketHandlers/Entities/EqResponder.cs +1 -2
@@ 7,9 7,8 @@
using NosSmooth.Core.Packets;
using NosSmooth.Data.Abstractions;
using NosSmooth.Game.Data.Entities;
using NosSmooth.Game.Data.Items;
using NosSmooth.Game.Helpers;
using NosSmooth.Packets.Server.Entities;
using NosSmooth.Packets.Server.Inventory;
using Remora.Results;

namespace NosSmooth.Game.PacketHandlers.Entities;

M Core/NosSmooth.Game/PacketHandlers/Map/AtResponder.cs => Core/NosSmooth.Game/PacketHandlers/Map/AtResponder.cs +5 -4
@@ 30,11 30,11 @@ public class AtResponder : IPacketResponder<AtPacket>
    }

    /// <inheritdoc />
    public Task<Result> Respond(PacketEventArgs<AtPacket> packetArgs, CancellationToken ct = default)
    public async Task<Result> Respond(PacketEventArgs<AtPacket> packetArgs, CancellationToken ct = default)
    {
        var packet = packetArgs.Packet;

        _game.CreateOrUpdateCharacterAsync
        await _game.CreateOrUpdateCharacterAsync
        (
            () => new Character()
            {


@@ 45,9 45,10 @@ public class AtResponder : IPacketResponder<AtPacket>
            {
                c.Position = new Position(packet.X, packet.Y);
                return c;
            }
            },
            ct: ct
        );

        return Task.FromResult(Result.FromSuccess());
        return Result.FromSuccess();
    }
}
\ No newline at end of file

M Core/NosSmooth.Game/PacketHandlers/Map/CMapResponder.cs => Core/NosSmooth.Game/PacketHandlers/Map/CMapResponder.cs +0 -2
@@ 4,12 4,10 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System.Collections.Concurrent;
using Microsoft.Extensions.Logging;
using NosSmooth.Core.Extensions;
using NosSmooth.Core.Packets;
using NosSmooth.Data.Abstractions;
using NosSmooth.Game.Data.Entities;
using NosSmooth.Game.Data.Maps;
using NosSmooth.Packets.Server.Maps;
using Remora.Results;

M Core/NosSmooth.Game/PacketHandlers/Map/DropResponder.cs => Core/NosSmooth.Game/PacketHandlers/Map/DropResponder.cs +0 -1
@@ 12,7 12,6 @@ using NosSmooth.Game.Data.Entities;
using NosSmooth.Game.Data.Info;
using NosSmooth.Game.Events.Core;
using NosSmooth.Game.Events.Entities;
using NosSmooth.Packets.Server.Entities;
using NosSmooth.Packets.Server.Maps;
using Remora.Results;


M Core/NosSmooth.Game/PacketHandlers/Map/MoveResponder.cs => Core/NosSmooth.Game/PacketHandlers/Map/MoveResponder.cs +3 -4
@@ 4,7 4,6 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System.Collections.Concurrent;
using NosSmooth.Core.Packets;
using NosSmooth.Game.Data.Entities;
using NosSmooth.Game.Data.Info;


@@ 30,7 29,7 @@ public class MoveResponder : IPacketResponder<MovePacket>
    }

    /// <inheritdoc />
    public async Task<Result> Respond(PacketEventArgs<MovePacket> packetArgs, CancellationToken ct = default)
    public Task<Result> Respond(PacketEventArgs<MovePacket> packetArgs, CancellationToken ct = default)
    {
        var packet = packetArgs.Packet;
        var map = _game.CurrentMap;


@@ 38,7 37,7 @@ public class MoveResponder : IPacketResponder<MovePacket>
        // TODO: store entities somewhere else so we can store them even if the map is still null?
        if (map is null)
        {
            return Result.FromSuccess();
            return Task.FromResult(Result.FromSuccess());
        }

        var entity = map.Entities.GetEntity<ILivingEntity>(packet.EntityId);


@@ 48,6 47,6 @@ public class MoveResponder : IPacketResponder<MovePacket>
            entity.Speed = packet.Speed;
        }

        return Result.FromSuccess();
        return Task.FromResult(Result.FromSuccess());
    }
}
\ No newline at end of file

M Core/NosSmooth.Game/PacketHandlers/Map/OutResponder.cs => Core/NosSmooth.Game/PacketHandlers/Map/OutResponder.cs +1 -2
@@ 10,7 10,6 @@ using NosSmooth.Game.Data.Maps;
using NosSmooth.Game.Events.Core;
using NosSmooth.Game.Events.Entities;
using NosSmooth.Game.Helpers;
using NosSmooth.Packets.Enums;
using NosSmooth.Packets.Server.Maps;
using Remora.Results;



@@ 51,7 50,7 @@ public class OutResponder : IPacketResponder<OutPacket>
            (packet.EntityType, packet.EntityId);

        var position = entity.Position;
        if (position is not null)
        if (entity is Player && position is not null)
        {
            map.IsOnPortal(position.Value, out portal);
        }

M Data/NosSmooth.Data.Database/DatabaseMigrator.cs => Data/NosSmooth.Data.Database/DatabaseMigrator.cs +2 -2
@@ 82,7 82,7 @@ public class DatabaseMigrator
        return Result.FromSuccess();
    }

    private async Task<Result> MigrateTranslations(NostaleDataContext context, NostaleData data)
    private Task<Result> MigrateTranslations(NostaleDataContext context, NostaleData data)
    {
        foreach (var languageTranslation in data.Translations)
        {


@@ 102,7 102,7 @@ public class DatabaseMigrator
            }
        }

        return Result.FromSuccess();
        return Task.FromResult(Result.FromSuccess());
    }

    private Task<Result> MigrateItems(NostaleDataContext dbContext, NostaleData data)

M Extensions/NosSmooth.Extensions.Combat/CombatManager.cs => Extensions/NosSmooth.Extensions.Combat/CombatManager.cs +1 -1
@@ 158,7 158,7 @@ public class CombatManager : IStatefulEntity
    }

    /// <summary>
    /// Unregister the given cancellation token registered using <see cref="RegisterSkillCancellationToken"/>.
    /// Unregister the given cancellation token registered using RegisterSkillCancellationToken.
    /// </summary>
    /// <param name="tokenSource">The token source to unregister.</param>
    /// <param name="ct">The cancellation token for cancelling the operation.</param>

M Extensions/NosSmooth.Extensions.Combat/Errors/TargetNotSetError.cs => Extensions/NosSmooth.Extensions.Combat/Errors/TargetNotSetError.cs +3 -0
@@ 8,4 8,7 @@ using Remora.Results;

namespace NosSmooth.Extensions.Combat.Errors;

/// <summary>
/// The combat technique set target to null, the combat cannot continue.
/// </summary>
public record TargetNotSetError() : ResultError("The current target is not set, the operation cannot complete.");
\ No newline at end of file

M Extensions/NosSmooth.Extensions.Combat/Operations/UseItemOperation.cs => Extensions/NosSmooth.Extensions.Combat/Operations/UseItemOperation.cs +4 -1
@@ 9,7 9,10 @@ using Remora.Results;

namespace NosSmooth.Extensions.Combat.Operations;

// TODO: first inventory has to be made
/// <summary>
/// A combat operation to use an item.
/// </summary>
/// <param name="Item">The item to use.</param>
public record UseItemOperation(Item Item) : ICombatOperation
{
    /// <inheritdoc />

M Extensions/NosSmooth.Extensions.Combat/Responders/CancelResponder.cs => Extensions/NosSmooth.Extensions.Combat/Responders/CancelResponder.cs +1 -1
@@ 29,7 29,7 @@ public class CancelResponder : IPacketResponder<CancelPacket>
    /// <inheritdoc />
    public Task<Result> Respond(PacketEventArgs<CancelPacket> packetArgs, CancellationToken ct = default)
    {
        _combatManager.CancelSkillTokensAsync(ct);
        Task.Run(() => _combatManager.CancelSkillTokensAsync(default));
        return Task.FromResult(Result.FromSuccess());
    }
}
\ No newline at end of file

M Extensions/NosSmooth.Extensions.Combat/Responders/SkillUseResponder.cs => Extensions/NosSmooth.Extensions.Combat/Responders/SkillUseResponder.cs +2 -2
@@ 35,7 35,7 @@ public class SuResponder : IPacketResponder<SuPacket>, IPacketResponder<BsPacket
    {
        if (packetArgs.Packet.CasterEntityId == _game.Character?.Id)
        {
            _combatManager.CancelSkillTokensAsync(ct);
            Task.Run(() => _combatManager.CancelSkillTokensAsync(default));
        }
        return Task.FromResult(Result.FromSuccess());
    }


@@ 45,7 45,7 @@ public class SuResponder : IPacketResponder<SuPacket>, IPacketResponder<BsPacket
    {
        if (packetArgs.Packet.CasterEntityId == _game.Character?.Id)
        {
            _combatManager.CancelSkillTokensAsync(ct);
            Task.Run(() => _combatManager.CancelSkillTokensAsync(default));
        }
        return Task.FromResult(Result.FromSuccess());
    }

M Extensions/NosSmooth.Extensions.Pathfinding/NosSmooth.Extensions.Pathfinding.csproj => Extensions/NosSmooth.Extensions.Pathfinding/NosSmooth.Extensions.Pathfinding.csproj +1 -0
@@ 23,6 23,7 @@

    <ItemGroup>
      <ProjectReference Include="..\..\Core\NosSmooth.Core\NosSmooth.Core.csproj" />
      <ProjectReference Include="..\..\Data\NosSmooth.Data.Abstractions\NosSmooth.Data.Abstractions.csproj" />
    </ItemGroup>

</Project>

Do not follow this link