More work on states, added bot
This commit is contained in:
1 parent
66e93d46f4
commit
5e9a663812
25 files changed
+1595
-740
No files matched your search
@@ -94,8 +94,51 @@ struct AppendChatMessageCommand {
|
||||
};
|
||||
struct SetTaxiCalledCommand { bool called; };
|
||||
struct StartTaxiCommand { std::string locationId; };
|
||||
struct ResetTaxiCommand { std::string locationId; };
|
||||
struct SetLocationCameraCommand {
|
||||
std::string locationId;
|
||||
float azimuth;
|
||||
float inclination;
|
||||
};
|
||||
struct SetLocationTargetsCommand {
|
||||
std::string locationId;
|
||||
std::string interactiveObjectId;
|
||||
std::string npcId;
|
||||
std::string teleportZoneId;
|
||||
};
|
||||
struct SwitchLocationNavigationCommand {
|
||||
std::string locationId;
|
||||
int index;
|
||||
};
|
||||
struct SetNavigationAreaAvailableCommand {
|
||||
std::string locationId;
|
||||
std::string areaName;
|
||||
bool available;
|
||||
};
|
||||
struct AddNavigationObstacleCommand {
|
||||
std::string locationId;
|
||||
std::string name;
|
||||
std::vector<Eigen::Vector2f> polygon;
|
||||
};
|
||||
struct AddInventoryItemCommand { std::string itemId; };
|
||||
struct RemoveInventoryItemCommand { std::string itemId; };
|
||||
struct UnlockQuestCommand { std::string questId; };
|
||||
struct CompleteQuestCommand { std::string questId; };
|
||||
struct FailQuestCommand { std::string questId; };
|
||||
struct SetQuestObjectiveCompletedCommand {
|
||||
std::string questId;
|
||||
std::string objectiveId;
|
||||
bool completed;
|
||||
};
|
||||
struct SetQuestObjectiveVisibleCommand {
|
||||
std::string questId;
|
||||
std::string objectiveId;
|
||||
bool visible;
|
||||
};
|
||||
struct SetQuestActiveObjectiveCommand {
|
||||
std::string questId;
|
||||
int objectiveIndex;
|
||||
};
|
||||
struct SetGlobalIntCommand { std::string key; int value; };
|
||||
struct SetGlobalFloatCommand { std::string key; float value; };
|
||||
struct SetCharacterTransformCommand {
|
||||
@@ -188,8 +231,20 @@ using GameCommand = std::variant<
|
||||
AppendChatMessageCommand,
|
||||
SetTaxiCalledCommand,
|
||||
StartTaxiCommand,
|
||||
ResetTaxiCommand,
|
||||
SetLocationCameraCommand,
|
||||
SetLocationTargetsCommand,
|
||||
SwitchLocationNavigationCommand,
|
||||
SetNavigationAreaAvailableCommand,
|
||||
AddNavigationObstacleCommand,
|
||||
AddInventoryItemCommand,
|
||||
RemoveInventoryItemCommand,
|
||||
UnlockQuestCommand,
|
||||
CompleteQuestCommand,
|
||||
FailQuestCommand,
|
||||
SetQuestObjectiveCompletedCommand,
|
||||
SetQuestObjectiveVisibleCommand,
|
||||
SetQuestActiveObjectiveCommand,
|
||||
SetGlobalIntCommand,
|
||||
SetGlobalFloatCommand,
|
||||
SetCharacterTransformCommand,
|
||||
@@ -209,13 +264,24 @@ using GameCommand = std::variant<
|
||||
SetTriggerZoneEnabledCommand,
|
||||
ReloadQuestDefinitionsCommand>;
|
||||
|
||||
struct InventoryItemAddedEvent { std::string itemId; };
|
||||
struct InventoryItemRemovedEvent { std::string itemId; };
|
||||
|
||||
using GameServerEvent = std::variant<
|
||||
InventoryItemAddedEvent,
|
||||
InventoryItemRemovedEvent,
|
||||
Quest::QuestEvent>;
|
||||
|
||||
class IGameServer {
|
||||
public:
|
||||
virtual ~IGameServer() = default;
|
||||
|
||||
// Each returned object is immutable and remains valid after later commands.
|
||||
virtual std::shared_ptr<const GameSnapshot> snapshot() const = 0;
|
||||
// Client-relative identity assigned by this server connection.
|
||||
virtual const std::string& localPlayerId() const = 0;
|
||||
virtual void submit(const GameCommand& command) = 0;
|
||||
virtual std::vector<GameServerEvent> drainEvents() = 0;
|
||||
virtual void update(std::int64_t deltaMs) = 0;
|
||||
|
||||
// Persistence stays server-side. The JSON shape is GameState's established
|
||||
|
||||
Reference in new issue
Block a user