using MultiversalDiplomacy.Orders; using MultiversalDiplomacy.Model; namespace MultiversalDiplomacy.Adjudicate; /// /// An input handler for game phases. /// public interface IPhaseAdjudicator { /// /// Given a list of orders, determine which orders are valid for this adjudicator and /// which should be rejected before adjudication. Adjudication should be performed on /// all orders in the output for which is true. /// /// The global game state. /// Orders to validate for adjudication. /// /// A list of order validation results. Note that this list may be longer than the input /// list if illegal orders were replaced with hold orders, as there will be an invalid /// result for the illegal order and a valid result for the replacement order. /// public List ValidateOrders(World world, List orders); /// /// Given a list of valid orders, adjudicate the success and failure of the orders. The world /// will be updated with new seasons and unit positions and returned alongside the adjudication /// results. /// public (List results, World updated) AdjudicateOrders( World world, List orders); }