~ruther/NosSmooth

1b8ecea55cb0a459511990af5f46b20f1ea2fa40 — František Boháček 3 years ago 2205630
feat: add events for character skills
A Core/NosSmooth.Game/Errors/SkillOnCooldownError.cs => Core/NosSmooth.Game/Errors/SkillOnCooldownError.cs +15 -0
@@ 0,0 1,15 @@
//
//  SkillOnCooldownError.cs
//
//  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 NosSmooth.Game.Data.Characters;
using Remora.Results;

namespace NosSmooth.Game.Errors;

/// <summary>
/// Acts as an error specifying the skill is on cooldown.
/// </summary>
public record SkillOnCooldownError(Skill skill) : ResultError("The skill is on cooldown.");
\ No newline at end of file

A Core/NosSmooth.Game/Events/Characters/ReceivedCharacterDataEvent.cs => Core/NosSmooth.Game/Events/Characters/ReceivedCharacterDataEvent.cs +20 -0
@@ 0,0 1,20 @@
//
//  ReceivedCharacterDataEvent.cs
//
//  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 NosSmooth.Game.Data.Characters;

namespace NosSmooth.Game.Events.Characters;

/// <summary>
/// Represents received new updated character data.
/// </summary>
/// <param name="OldCharacter">The old data.</param>
/// <param name="Character">The newly received data.</param>
public record ReceivedCharacterDataEvent
(
    Character? OldCharacter,
    Character Character
) : IGameEvent;
\ No newline at end of file

A Core/NosSmooth.Game/Events/Characters/SkillReadyEvent.cs => Core/NosSmooth.Game/Events/Characters/SkillReadyEvent.cs +14 -0
@@ 0,0 1,14 @@
//
//  SkillReadyEvent.cs
//
//  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 NosSmooth.Game.Data.Characters;

namespace NosSmooth.Game.Events.Characters;

/// <summary>
/// The skill cooldown has been up.
/// </summary>
public record SkillReadyEvent(Skill? Skill, long SkillVNum) : IGameEvent;
\ No newline at end of file

A Core/NosSmooth.Game/Events/Characters/SkillsReceivedEvent.cs => Core/NosSmooth.Game/Events/Characters/SkillsReceivedEvent.cs +11 -0
@@ 0,0 1,11 @@
//
//  SkillsReceivedEvent.cs
//
//  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 NosSmooth.Game.Data.Characters;

namespace NosSmooth.Game.Events.Characters;

public record SkillsReceivedEvent(Skills Skills) : IGameEvent;
\ No newline at end of file

A Core/NosSmooth.Game/Events/Players/SkillUsedEvent.cs => Core/NosSmooth.Game/Events/Players/SkillUsedEvent.cs +13 -0
@@ 0,0 1,13 @@
//
//  SkillUsedEvent.cs
//
//  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 NosSmooth.Game.Data.Characters;
using NosSmooth.Game.Data.Entities;
using NosSmooth.Game.Data.Info;

namespace NosSmooth.Game.Events.Players;

public record SkillUsedEvent(ILivingEntity? Entity, long EntityId, Skill? Skill, long SkillVNum, long TargetId, Position? TargetPosition) : IGameEvent;
\ No newline at end of file

Do not follow this link