Chessistics/chessistics-engine/Commands/WorldCommand.cs
Samuel Bouchet e6eaae43ab Initial commit: Chessistics prototype v0.3
Black box sim engine (commands in, events out) with 3 piece types
(Rook, Bishop, Knight), cargo transfer system with social status
priority, collision detection, and victory/defeat conditions.

57 tests covering rules, simulation, loading, and solvability.
Godot 4 presentation layer scaffolding.
2026-04-10 14:58:03 +02:00

16 lines
494 B
C#

using Chessistics.Engine.Events;
using Chessistics.Engine.Model;
namespace Chessistics.Engine.Commands;
public abstract class WorldCommand : IWorldCommand
{
public void Apply(BoardState state, List<IWorldEvent> changeList)
{
AssertApplicationConditions(state);
state.ApplyCommand(DoApply, changeList);
}
protected abstract void DoApply(BoardState state, List<IWorldEvent> changeList);
public abstract void AssertApplicationConditions(BoardState state);
}