载入中...
搜索中...
未找到
ComboGraph.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
6#include "common/Result.h"
7#include "common/Identity.h"
8
9#include <cstdint>
10#include <map>
11#include <string>
12#include <vector>
13
14namespace eve::combat {
15
20 std::string requiredInput;
21 std::int32_t priority = 0;
23 bool requiresComboWindow = false;
24
26 [[nodiscard]] Result<void> validate() const;
27};
28
33 std::string input;
34 std::int32_t priority = 0;
35};
36
44public:
46 [[nodiscard]] Result<void> addEdge(ComboGraphEdge edge);
48 void clear() noexcept { edges_.clear(); }
54 [[nodiscard]] Result<ComboGraphMatch> match(const LogicalId& from, std::string_view input, bool allowCancel,
55 bool allowCombo) const;
57 [[nodiscard]] std::size_t edgeCount() const noexcept { return edges_.size(); }
58
59private:
60 std::vector<ComboGraphEdge> edges_;
61};
62
63} // namespace eve::combat
std::string from
EvpackChunkInput input
Definition Evpack.cpp:170
#define EVENGINE_API_BACKENDS
Definition Export.h:108
Strong identity values shared by persistence, content and logical-name APIs.
Move-only, checked operation results for the common layer.
const RoadEdge * edge
Human-readable, scoped identifier in the form namespace:name.
Definition Identity.h:411
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Deterministic directed graph of combat ability transitions.
Definition ComboGraph.h:43
std::size_t edgeCount() const noexcept
Number of stored edges.
Definition ComboGraph.h:57
void clear() noexcept
Remove all edges.
Definition ComboGraph.h:48
Edge that may cancel from one ability into another.
Definition ComboGraph.h:17
Result< void > validate() const
Validate non-nil ids and non-empty input when required.
Definition ComboGraph.cpp:9
Owning match produced by the combo graph.
Definition ComboGraph.h:30