1+ syntax = "proto3" ;
2+
3+ package ScriptsOfTributeGRPC ;
4+
5+ import "enums.proto" ;
6+
7+ message PatronStates {
8+ map <int32 , PlayerEnum > all = 1 ;
9+ }
10+
11+ message Effect {
12+ EffectType Type = 1 ;
13+ int32 Amount = 2 ;
14+ int32 Combo = 3 ;
15+ Card ParentCard = 4 ;
16+ }
17+
18+ message EffectOr {
19+ Effect Left = 1 ;
20+ Effect Right = 2 ;
21+ Card ParentCard = 3 ;
22+ }
23+
24+ message EffectAnd {
25+ Effect Left = 1 ;
26+ Effect Right = 2 ;
27+ Card ParentCard = 3 ;
28+ }
29+
30+ message ComplexEffect
31+ {
32+ optional Effect SingleEffect = 1 ;
33+ optional EffectOr AlternativeEffect = 2 ;
34+ optional EffectAnd CompositeEffect = 3 ;
35+ }
36+
37+ message ComboState {
38+ repeated Effect All = 1 ;
39+ int32 CurrentCombo = 2 ;
40+ }
41+
42+ message ComboStates {
43+ map <int32 , ComboState > All = 1 ;
44+ }
45+
46+ message Card {
47+ int32 UniqueId = 1 ;
48+ string Name = 2 ;
49+ PatronId Deck = 3 ;
50+ CardId CommonId = 4 ;
51+ int32 Cost = 5 ;
52+ CardType Type = 6 ;
53+ optional int32 HP = 7 ;
54+ repeated ComplexEffect Effects = 8 ;
55+ int32 Hash = 9 ;
56+ CardId Family = 10 ;
57+ bool Taunt = 11 ;
58+ int32 Copies = 12 ;
59+ }
60+
61+ message Agent {
62+ int32 CurrentHp = 1 ;
63+ Card RepresentingCard = 2 ;
64+ bool Activated = 3 ;
65+ }
66+
67+ message EndGameState {
68+ PlayerEnum Winner = 1 ;
69+ string Reason = 2 ;
70+ string AdditionalContext = 3 ;
71+ }
72+
73+ message Player {
74+ PlayerEnum PlayerId = 1 ;
75+ repeated Card Hand = 2 ;
76+ repeated Card CooldownPile = 3 ;
77+ repeated Card Played = 4 ;
78+ repeated Card KnownUpcomingDraws = 5 ;
79+ repeated Agent Agents = 6 ;
80+ int32 Power = 7 ;
81+ int32 PatronCalls = 8 ;
82+ int32 Coins = 9 ;
83+ int32 Prestige = 10 ;
84+ repeated Card DrawPile = 11 ;
85+ }
86+
87+ message EnemyPlayer
88+ {
89+ PlayerEnum PlayerId = 1 ;
90+ repeated Agent Agents = 2 ;
91+ int32 Power = 3 ;
92+ int32 Coins = 4 ;
93+ int32 Prestige = 5 ;
94+ repeated Card HandAndDraw = 6 ;
95+ repeated Card Played = 7 ;
96+ repeated Card CooldownPile = 8 ;
97+ }
98+
99+ message CompletedAction {
100+ PlayerEnum PlayerId = 1 ;
101+ CompletedActionType Type = 2 ;
102+ Card SourceCard = 3 ;
103+ Card TargetCard = 4 ;
104+ PatronId SourcePatron = 5 ;
105+ int32 Combo = 6 ;
106+ int32 Amount = 7 ;
107+ }
108+
109+ message ChoiceContext
110+ {
111+ optional PatronId PatronSource = 1 ;
112+ optional Card CardSource = 2 ;
113+ optional ChoiceType ChoiceType = 3 ;
114+ int32 Combo = 4 ;
115+ }
116+
117+ message Choice
118+ {
119+ int32 MaxChoices = 1 ;
120+ int32 MinChoices = 2 ;
121+ ChoiceContext Context = 3 ;
122+ ChoiceFollowUp ChoiceFollowUp = 4 ;
123+ ChoiceDataType Type = 5 ;
124+ repeated Card PossibleCards = 6 ;
125+ repeated Effect PossibleEffects = 7 ;
126+ }
127+
128+ message Move {
129+ oneof moveType {
130+ BasicMove Basic = 1 ;
131+ SimpleCardMove CardMove = 2 ;
132+ SimplePatronMove PatronMove = 3 ;
133+ MakeChoiceMoveUniqueCard CardChoiceMove = 4 ;
134+ MakeChoiceMoveUniqueEffect EffectChoiceMove = 5 ;
135+ }
136+ }
137+
138+ message BasicMove {
139+ MoveEnum command = 1 ;
140+ }
141+
142+ message SimpleCardMove {
143+ MoveEnum command = 1 ;
144+ Card card = 2 ;
145+ }
146+
147+ message SimplePatronMove {
148+ MoveEnum command = 1 ;
149+ PatronId patronId = 2 ;
150+ }
151+
152+ message MakeChoiceMoveUniqueCard {
153+ MoveEnum command = 1 ;
154+ repeated Card cards = 2 ;
155+ }
156+
157+ message MakeChoiceMoveUniqueEffect {
158+ MoveEnum command = 1 ;
159+ repeated Effect effects = 2 ;
160+ }
0 commit comments