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