team.pb.go 30 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096
  1. // message结构的属性名请使用 驼峰小写字母开始
  2. // Code generated by protoc-gen-go. DO NOT EDIT.
  3. // versions:
  4. // protoc-gen-go v1.36.8
  5. // protoc v6.31.1
  6. // source: team.proto
  7. package pb
  8. import (
  9. protoreflect "google.golang.org/protobuf/reflect/protoreflect"
  10. protoimpl "google.golang.org/protobuf/runtime/protoimpl"
  11. reflect "reflect"
  12. sync "sync"
  13. unsafe "unsafe"
  14. )
  15. const (
  16. // Verify that this generated code is sufficiently up-to-date.
  17. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
  18. // Verify that runtime/protoimpl is sufficiently up-to-date.
  19. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
  20. )
  21. // 队伍列表
  22. type Teams struct {
  23. state protoimpl.MessageState `protogen:"open.v1"`
  24. List []*Team `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
  25. unknownFields protoimpl.UnknownFields
  26. sizeCache protoimpl.SizeCache
  27. }
  28. func (x *Teams) Reset() {
  29. *x = Teams{}
  30. mi := &file_team_proto_msgTypes[0]
  31. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  32. ms.StoreMessageInfo(mi)
  33. }
  34. func (x *Teams) String() string {
  35. return protoimpl.X.MessageStringOf(x)
  36. }
  37. func (*Teams) ProtoMessage() {}
  38. func (x *Teams) ProtoReflect() protoreflect.Message {
  39. mi := &file_team_proto_msgTypes[0]
  40. if x != nil {
  41. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  42. if ms.LoadMessageInfo() == nil {
  43. ms.StoreMessageInfo(mi)
  44. }
  45. return ms
  46. }
  47. return mi.MessageOf(x)
  48. }
  49. // Deprecated: Use Teams.ProtoReflect.Descriptor instead.
  50. func (*Teams) Descriptor() ([]byte, []int) {
  51. return file_team_proto_rawDescGZIP(), []int{0}
  52. }
  53. func (x *Teams) GetList() []*Team {
  54. if x != nil {
  55. return x.List
  56. }
  57. return nil
  58. }
  59. // 队伍
  60. type Team struct {
  61. state protoimpl.MessageState `protogen:"open.v1"`
  62. // 队伍 ID
  63. TeamID int32 `protobuf:"varint,1,opt,name=teamID,proto3" json:"teamID,omitempty"`
  64. // 队伍成员
  65. Members []*TeamMember `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"`
  66. // 队伍状态 0未知 1待命 2外派
  67. State int32 `protobuf:"varint,3,opt,name=state,proto3" json:"state,omitempty"`
  68. // 负重
  69. Weight int32 `protobuf:"varint,4,opt,name=weight,proto3" json:"weight,omitempty"`
  70. // 是否自动补兵
  71. AutoAddTroops bool `protobuf:"varint,5,opt,name=autoAddTroops,proto3" json:"autoAddTroops,omitempty"`
  72. // 激活羁绊ID Y-英雄-羁绊表ID
  73. FetterIDs []int32 `protobuf:"varint,6,rep,packed,name=fetterIDs,proto3" json:"fetterIDs,omitempty"`
  74. // 行军对象ID
  75. MarchObjectID int64 `protobuf:"varint,7,opt,name=marchObjectID,proto3" json:"marchObjectID,omitempty"`
  76. unknownFields protoimpl.UnknownFields
  77. sizeCache protoimpl.SizeCache
  78. }
  79. func (x *Team) Reset() {
  80. *x = Team{}
  81. mi := &file_team_proto_msgTypes[1]
  82. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  83. ms.StoreMessageInfo(mi)
  84. }
  85. func (x *Team) String() string {
  86. return protoimpl.X.MessageStringOf(x)
  87. }
  88. func (*Team) ProtoMessage() {}
  89. func (x *Team) ProtoReflect() protoreflect.Message {
  90. mi := &file_team_proto_msgTypes[1]
  91. if x != nil {
  92. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  93. if ms.LoadMessageInfo() == nil {
  94. ms.StoreMessageInfo(mi)
  95. }
  96. return ms
  97. }
  98. return mi.MessageOf(x)
  99. }
  100. // Deprecated: Use Team.ProtoReflect.Descriptor instead.
  101. func (*Team) Descriptor() ([]byte, []int) {
  102. return file_team_proto_rawDescGZIP(), []int{1}
  103. }
  104. func (x *Team) GetTeamID() int32 {
  105. if x != nil {
  106. return x.TeamID
  107. }
  108. return 0
  109. }
  110. func (x *Team) GetMembers() []*TeamMember {
  111. if x != nil {
  112. return x.Members
  113. }
  114. return nil
  115. }
  116. func (x *Team) GetState() int32 {
  117. if x != nil {
  118. return x.State
  119. }
  120. return 0
  121. }
  122. func (x *Team) GetWeight() int32 {
  123. if x != nil {
  124. return x.Weight
  125. }
  126. return 0
  127. }
  128. func (x *Team) GetAutoAddTroops() bool {
  129. if x != nil {
  130. return x.AutoAddTroops
  131. }
  132. return false
  133. }
  134. func (x *Team) GetFetterIDs() []int32 {
  135. if x != nil {
  136. return x.FetterIDs
  137. }
  138. return nil
  139. }
  140. func (x *Team) GetMarchObjectID() int64 {
  141. if x != nil {
  142. return x.MarchObjectID
  143. }
  144. return 0
  145. }
  146. // 队伍成员
  147. type TeamMember struct {
  148. state protoimpl.MessageState `protogen:"open.v1"`
  149. // 队伍位置 (1-3) 默认1为主将位置
  150. TeamIndex int32 `protobuf:"varint,1,opt,name=teamIndex,proto3" json:"teamIndex,omitempty"`
  151. // 阵容位置(0-5)
  152. Index int32 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
  153. // 英雄唯一 ID
  154. HeroGUID int64 `protobuf:"varint,3,opt,name=heroGUID,proto3" json:"heroGUID,omitempty"`
  155. // 上阵士兵ID 士兵-等级表士兵ID
  156. TroopsID int32 `protobuf:"varint,4,opt,name=troopsID,proto3" json:"troopsID,omitempty"`
  157. // 兵力数量
  158. TroopsNum int32 `protobuf:"varint,5,opt,name=troopsNum,proto3" json:"troopsNum,omitempty"`
  159. // 伤兵数量
  160. Wounded int32 `protobuf:"varint,6,opt,name=wounded,proto3" json:"wounded,omitempty"`
  161. unknownFields protoimpl.UnknownFields
  162. sizeCache protoimpl.SizeCache
  163. }
  164. func (x *TeamMember) Reset() {
  165. *x = TeamMember{}
  166. mi := &file_team_proto_msgTypes[2]
  167. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  168. ms.StoreMessageInfo(mi)
  169. }
  170. func (x *TeamMember) String() string {
  171. return protoimpl.X.MessageStringOf(x)
  172. }
  173. func (*TeamMember) ProtoMessage() {}
  174. func (x *TeamMember) ProtoReflect() protoreflect.Message {
  175. mi := &file_team_proto_msgTypes[2]
  176. if x != nil {
  177. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  178. if ms.LoadMessageInfo() == nil {
  179. ms.StoreMessageInfo(mi)
  180. }
  181. return ms
  182. }
  183. return mi.MessageOf(x)
  184. }
  185. // Deprecated: Use TeamMember.ProtoReflect.Descriptor instead.
  186. func (*TeamMember) Descriptor() ([]byte, []int) {
  187. return file_team_proto_rawDescGZIP(), []int{2}
  188. }
  189. func (x *TeamMember) GetTeamIndex() int32 {
  190. if x != nil {
  191. return x.TeamIndex
  192. }
  193. return 0
  194. }
  195. func (x *TeamMember) GetIndex() int32 {
  196. if x != nil {
  197. return x.Index
  198. }
  199. return 0
  200. }
  201. func (x *TeamMember) GetHeroGUID() int64 {
  202. if x != nil {
  203. return x.HeroGUID
  204. }
  205. return 0
  206. }
  207. func (x *TeamMember) GetTroopsID() int32 {
  208. if x != nil {
  209. return x.TroopsID
  210. }
  211. return 0
  212. }
  213. func (x *TeamMember) GetTroopsNum() int32 {
  214. if x != nil {
  215. return x.TroopsNum
  216. }
  217. return 0
  218. }
  219. func (x *TeamMember) GetWounded() int32 {
  220. if x != nil {
  221. return x.Wounded
  222. }
  223. return 0
  224. }
  225. // [请求] 队伍上阵英雄
  226. type TeamUpRequest struct {
  227. state protoimpl.MessageState `protogen:"open.v1"`
  228. // 英雄 GUID
  229. HeroGUID int64 `protobuf:"varint,1,opt,name=heroGUID,proto3" json:"heroGUID,omitempty"`
  230. // 队伍 ID
  231. TeamID int32 `protobuf:"varint,2,opt,name=teamID,proto3" json:"teamID,omitempty"`
  232. // 队伍位置 (1-3) 默认1为主将位置
  233. TeamIndex int32 `protobuf:"varint,3,opt,name=teamIndex,proto3" json:"teamIndex,omitempty"`
  234. // 阵容位置 (0-5)
  235. Index int32 `protobuf:"varint,4,opt,name=index,proto3" json:"index,omitempty"`
  236. unknownFields protoimpl.UnknownFields
  237. sizeCache protoimpl.SizeCache
  238. }
  239. func (x *TeamUpRequest) Reset() {
  240. *x = TeamUpRequest{}
  241. mi := &file_team_proto_msgTypes[3]
  242. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  243. ms.StoreMessageInfo(mi)
  244. }
  245. func (x *TeamUpRequest) String() string {
  246. return protoimpl.X.MessageStringOf(x)
  247. }
  248. func (*TeamUpRequest) ProtoMessage() {}
  249. func (x *TeamUpRequest) ProtoReflect() protoreflect.Message {
  250. mi := &file_team_proto_msgTypes[3]
  251. if x != nil {
  252. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  253. if ms.LoadMessageInfo() == nil {
  254. ms.StoreMessageInfo(mi)
  255. }
  256. return ms
  257. }
  258. return mi.MessageOf(x)
  259. }
  260. // Deprecated: Use TeamUpRequest.ProtoReflect.Descriptor instead.
  261. func (*TeamUpRequest) Descriptor() ([]byte, []int) {
  262. return file_team_proto_rawDescGZIP(), []int{3}
  263. }
  264. func (x *TeamUpRequest) GetHeroGUID() int64 {
  265. if x != nil {
  266. return x.HeroGUID
  267. }
  268. return 0
  269. }
  270. func (x *TeamUpRequest) GetTeamID() int32 {
  271. if x != nil {
  272. return x.TeamID
  273. }
  274. return 0
  275. }
  276. func (x *TeamUpRequest) GetTeamIndex() int32 {
  277. if x != nil {
  278. return x.TeamIndex
  279. }
  280. return 0
  281. }
  282. func (x *TeamUpRequest) GetIndex() int32 {
  283. if x != nil {
  284. return x.Index
  285. }
  286. return 0
  287. }
  288. // [请求] 队伍英雄交换
  289. type TeamChangeRequest struct {
  290. state protoimpl.MessageState `protogen:"open.v1"`
  291. // 源队伍ID和成员队伍位置 (1-3)
  292. SrcTeamID int32 `protobuf:"varint,1,opt,name=srcTeamID,proto3" json:"srcTeamID,omitempty"`
  293. SrcTeamIndex int32 `protobuf:"varint,2,opt,name=srcTeamIndex,proto3" json:"srcTeamIndex,omitempty"`
  294. // 目标队伍ID、成员队伍位置 (1-3)和阵容位置 (0-5)
  295. DstTeamID int32 `protobuf:"varint,3,opt,name=dstTeamID,proto3" json:"dstTeamID,omitempty"`
  296. DstTeamIndex int32 `protobuf:"varint,4,opt,name=dstTeamIndex,proto3" json:"dstTeamIndex,omitempty"`
  297. DstIndex int32 `protobuf:"varint,5,opt,name=dstIndex,proto3" json:"dstIndex,omitempty"`
  298. unknownFields protoimpl.UnknownFields
  299. sizeCache protoimpl.SizeCache
  300. }
  301. func (x *TeamChangeRequest) Reset() {
  302. *x = TeamChangeRequest{}
  303. mi := &file_team_proto_msgTypes[4]
  304. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  305. ms.StoreMessageInfo(mi)
  306. }
  307. func (x *TeamChangeRequest) String() string {
  308. return protoimpl.X.MessageStringOf(x)
  309. }
  310. func (*TeamChangeRequest) ProtoMessage() {}
  311. func (x *TeamChangeRequest) ProtoReflect() protoreflect.Message {
  312. mi := &file_team_proto_msgTypes[4]
  313. if x != nil {
  314. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  315. if ms.LoadMessageInfo() == nil {
  316. ms.StoreMessageInfo(mi)
  317. }
  318. return ms
  319. }
  320. return mi.MessageOf(x)
  321. }
  322. // Deprecated: Use TeamChangeRequest.ProtoReflect.Descriptor instead.
  323. func (*TeamChangeRequest) Descriptor() ([]byte, []int) {
  324. return file_team_proto_rawDescGZIP(), []int{4}
  325. }
  326. func (x *TeamChangeRequest) GetSrcTeamID() int32 {
  327. if x != nil {
  328. return x.SrcTeamID
  329. }
  330. return 0
  331. }
  332. func (x *TeamChangeRequest) GetSrcTeamIndex() int32 {
  333. if x != nil {
  334. return x.SrcTeamIndex
  335. }
  336. return 0
  337. }
  338. func (x *TeamChangeRequest) GetDstTeamID() int32 {
  339. if x != nil {
  340. return x.DstTeamID
  341. }
  342. return 0
  343. }
  344. func (x *TeamChangeRequest) GetDstTeamIndex() int32 {
  345. if x != nil {
  346. return x.DstTeamIndex
  347. }
  348. return 0
  349. }
  350. func (x *TeamChangeRequest) GetDstIndex() int32 {
  351. if x != nil {
  352. return x.DstIndex
  353. }
  354. return 0
  355. }
  356. // [请求] 同队伍队伍位置交换
  357. type TeamInnerChangeRequest struct {
  358. state protoimpl.MessageState `protogen:"open.v1"`
  359. // 队伍ID
  360. TeamID int32 `protobuf:"varint,1,opt,name=teamID,proto3" json:"teamID,omitempty"`
  361. // 源队伍位置
  362. SrcTeamIndex int32 `protobuf:"varint,2,opt,name=srcTeamIndex,proto3" json:"srcTeamIndex,omitempty"`
  363. // 目标队伍位置
  364. DstTeamIndex int32 `protobuf:"varint,3,opt,name=dstTeamIndex,proto3" json:"dstTeamIndex,omitempty"`
  365. unknownFields protoimpl.UnknownFields
  366. sizeCache protoimpl.SizeCache
  367. }
  368. func (x *TeamInnerChangeRequest) Reset() {
  369. *x = TeamInnerChangeRequest{}
  370. mi := &file_team_proto_msgTypes[5]
  371. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  372. ms.StoreMessageInfo(mi)
  373. }
  374. func (x *TeamInnerChangeRequest) String() string {
  375. return protoimpl.X.MessageStringOf(x)
  376. }
  377. func (*TeamInnerChangeRequest) ProtoMessage() {}
  378. func (x *TeamInnerChangeRequest) ProtoReflect() protoreflect.Message {
  379. mi := &file_team_proto_msgTypes[5]
  380. if x != nil {
  381. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  382. if ms.LoadMessageInfo() == nil {
  383. ms.StoreMessageInfo(mi)
  384. }
  385. return ms
  386. }
  387. return mi.MessageOf(x)
  388. }
  389. // Deprecated: Use TeamInnerChangeRequest.ProtoReflect.Descriptor instead.
  390. func (*TeamInnerChangeRequest) Descriptor() ([]byte, []int) {
  391. return file_team_proto_rawDescGZIP(), []int{5}
  392. }
  393. func (x *TeamInnerChangeRequest) GetTeamID() int32 {
  394. if x != nil {
  395. return x.TeamID
  396. }
  397. return 0
  398. }
  399. func (x *TeamInnerChangeRequest) GetSrcTeamIndex() int32 {
  400. if x != nil {
  401. return x.SrcTeamIndex
  402. }
  403. return 0
  404. }
  405. func (x *TeamInnerChangeRequest) GetDstTeamIndex() int32 {
  406. if x != nil {
  407. return x.DstTeamIndex
  408. }
  409. return 0
  410. }
  411. // [请求] 队伍调整阵容
  412. type TeamLineupRequest struct {
  413. state protoimpl.MessageState `protogen:"open.v1"`
  414. // 队伍ID
  415. TeamID int32 `protobuf:"varint,1,opt,name=teamID,proto3" json:"teamID,omitempty"`
  416. // 队伍成员阵容位置
  417. Index int32 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
  418. // 转换到阵容位置
  419. ToIndex int32 `protobuf:"varint,3,opt,name=toIndex,proto3" json:"toIndex,omitempty"`
  420. unknownFields protoimpl.UnknownFields
  421. sizeCache protoimpl.SizeCache
  422. }
  423. func (x *TeamLineupRequest) Reset() {
  424. *x = TeamLineupRequest{}
  425. mi := &file_team_proto_msgTypes[6]
  426. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  427. ms.StoreMessageInfo(mi)
  428. }
  429. func (x *TeamLineupRequest) String() string {
  430. return protoimpl.X.MessageStringOf(x)
  431. }
  432. func (*TeamLineupRequest) ProtoMessage() {}
  433. func (x *TeamLineupRequest) ProtoReflect() protoreflect.Message {
  434. mi := &file_team_proto_msgTypes[6]
  435. if x != nil {
  436. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  437. if ms.LoadMessageInfo() == nil {
  438. ms.StoreMessageInfo(mi)
  439. }
  440. return ms
  441. }
  442. return mi.MessageOf(x)
  443. }
  444. // Deprecated: Use TeamLineupRequest.ProtoReflect.Descriptor instead.
  445. func (*TeamLineupRequest) Descriptor() ([]byte, []int) {
  446. return file_team_proto_rawDescGZIP(), []int{6}
  447. }
  448. func (x *TeamLineupRequest) GetTeamID() int32 {
  449. if x != nil {
  450. return x.TeamID
  451. }
  452. return 0
  453. }
  454. func (x *TeamLineupRequest) GetIndex() int32 {
  455. if x != nil {
  456. return x.Index
  457. }
  458. return 0
  459. }
  460. func (x *TeamLineupRequest) GetToIndex() int32 {
  461. if x != nil {
  462. return x.ToIndex
  463. }
  464. return 0
  465. }
  466. // [请求] 英雄队伍补充兵力
  467. type TeamTroopsRequest struct {
  468. state protoimpl.MessageState `protogen:"open.v1"`
  469. // 队伍 ID
  470. TeamID int32 `protobuf:"varint,1,opt,name=teamID,proto3" json:"teamID,omitempty"`
  471. // 队伍成员补兵列表
  472. MemberTroops []*TeamMemberTroops `protobuf:"bytes,3,rep,name=memberTroops,proto3" json:"memberTroops,omitempty"`
  473. unknownFields protoimpl.UnknownFields
  474. sizeCache protoimpl.SizeCache
  475. }
  476. func (x *TeamTroopsRequest) Reset() {
  477. *x = TeamTroopsRequest{}
  478. mi := &file_team_proto_msgTypes[7]
  479. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  480. ms.StoreMessageInfo(mi)
  481. }
  482. func (x *TeamTroopsRequest) String() string {
  483. return protoimpl.X.MessageStringOf(x)
  484. }
  485. func (*TeamTroopsRequest) ProtoMessage() {}
  486. func (x *TeamTroopsRequest) ProtoReflect() protoreflect.Message {
  487. mi := &file_team_proto_msgTypes[7]
  488. if x != nil {
  489. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  490. if ms.LoadMessageInfo() == nil {
  491. ms.StoreMessageInfo(mi)
  492. }
  493. return ms
  494. }
  495. return mi.MessageOf(x)
  496. }
  497. // Deprecated: Use TeamTroopsRequest.ProtoReflect.Descriptor instead.
  498. func (*TeamTroopsRequest) Descriptor() ([]byte, []int) {
  499. return file_team_proto_rawDescGZIP(), []int{7}
  500. }
  501. func (x *TeamTroopsRequest) GetTeamID() int32 {
  502. if x != nil {
  503. return x.TeamID
  504. }
  505. return 0
  506. }
  507. func (x *TeamTroopsRequest) GetMemberTroops() []*TeamMemberTroops {
  508. if x != nil {
  509. return x.MemberTroops
  510. }
  511. return nil
  512. }
  513. // 部队补兵详情
  514. type TeamMemberTroops struct {
  515. state protoimpl.MessageState `protogen:"open.v1"`
  516. // 成员队伍位置 (1-3)
  517. TeamIndex int32 `protobuf:"varint,1,opt,name=teamIndex,proto3" json:"teamIndex,omitempty"`
  518. // 补充士兵ID 士兵-等级表士兵ID
  519. TroopsID int32 `protobuf:"varint,2,opt,name=troopsID,proto3" json:"troopsID,omitempty"`
  520. // 补兵数量
  521. TroopsNum int32 `protobuf:"varint,3,opt,name=troopsNum,proto3" json:"troopsNum,omitempty"`
  522. unknownFields protoimpl.UnknownFields
  523. sizeCache protoimpl.SizeCache
  524. }
  525. func (x *TeamMemberTroops) Reset() {
  526. *x = TeamMemberTroops{}
  527. mi := &file_team_proto_msgTypes[8]
  528. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  529. ms.StoreMessageInfo(mi)
  530. }
  531. func (x *TeamMemberTroops) String() string {
  532. return protoimpl.X.MessageStringOf(x)
  533. }
  534. func (*TeamMemberTroops) ProtoMessage() {}
  535. func (x *TeamMemberTroops) ProtoReflect() protoreflect.Message {
  536. mi := &file_team_proto_msgTypes[8]
  537. if x != nil {
  538. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  539. if ms.LoadMessageInfo() == nil {
  540. ms.StoreMessageInfo(mi)
  541. }
  542. return ms
  543. }
  544. return mi.MessageOf(x)
  545. }
  546. // Deprecated: Use TeamMemberTroops.ProtoReflect.Descriptor instead.
  547. func (*TeamMemberTroops) Descriptor() ([]byte, []int) {
  548. return file_team_proto_rawDescGZIP(), []int{8}
  549. }
  550. func (x *TeamMemberTroops) GetTeamIndex() int32 {
  551. if x != nil {
  552. return x.TeamIndex
  553. }
  554. return 0
  555. }
  556. func (x *TeamMemberTroops) GetTroopsID() int32 {
  557. if x != nil {
  558. return x.TroopsID
  559. }
  560. return 0
  561. }
  562. func (x *TeamMemberTroops) GetTroopsNum() int32 {
  563. if x != nil {
  564. return x.TroopsNum
  565. }
  566. return 0
  567. }
  568. // 部队城外征兵
  569. type TeamOutsideTroops struct {
  570. state protoimpl.MessageState `protogen:"open.v1"`
  571. // 队伍ID
  572. TeamID int32 `protobuf:"varint,1,opt,name=teamID,proto3" json:"teamID,omitempty"`
  573. // 征兵数量 key 队伍位置 (1-3) value 征兵数量
  574. TroopsNums []*I32I32 `protobuf:"bytes,2,rep,name=troopsNums,proto3" json:"troopsNums,omitempty"`
  575. unknownFields protoimpl.UnknownFields
  576. sizeCache protoimpl.SizeCache
  577. }
  578. func (x *TeamOutsideTroops) Reset() {
  579. *x = TeamOutsideTroops{}
  580. mi := &file_team_proto_msgTypes[9]
  581. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  582. ms.StoreMessageInfo(mi)
  583. }
  584. func (x *TeamOutsideTroops) String() string {
  585. return protoimpl.X.MessageStringOf(x)
  586. }
  587. func (*TeamOutsideTroops) ProtoMessage() {}
  588. func (x *TeamOutsideTroops) ProtoReflect() protoreflect.Message {
  589. mi := &file_team_proto_msgTypes[9]
  590. if x != nil {
  591. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  592. if ms.LoadMessageInfo() == nil {
  593. ms.StoreMessageInfo(mi)
  594. }
  595. return ms
  596. }
  597. return mi.MessageOf(x)
  598. }
  599. // Deprecated: Use TeamOutsideTroops.ProtoReflect.Descriptor instead.
  600. func (*TeamOutsideTroops) Descriptor() ([]byte, []int) {
  601. return file_team_proto_rawDescGZIP(), []int{9}
  602. }
  603. func (x *TeamOutsideTroops) GetTeamID() int32 {
  604. if x != nil {
  605. return x.TeamID
  606. }
  607. return 0
  608. }
  609. func (x *TeamOutsideTroops) GetTroopsNums() []*I32I32 {
  610. if x != nil {
  611. return x.TroopsNums
  612. }
  613. return nil
  614. }
  615. // 部队城外征兵取消
  616. type TeamOutsideTroopsCancel struct {
  617. state protoimpl.MessageState `protogen:"open.v1"`
  618. // 队伍ID
  619. TeamID int32 `protobuf:"varint,1,opt,name=teamID,proto3" json:"teamID,omitempty"`
  620. // 需要取消的队伍位置 (1-3)
  621. TeamIndexs []int32 `protobuf:"varint,2,rep,packed,name=teamIndexs,proto3" json:"teamIndexs,omitempty"`
  622. unknownFields protoimpl.UnknownFields
  623. sizeCache protoimpl.SizeCache
  624. }
  625. func (x *TeamOutsideTroopsCancel) Reset() {
  626. *x = TeamOutsideTroopsCancel{}
  627. mi := &file_team_proto_msgTypes[10]
  628. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  629. ms.StoreMessageInfo(mi)
  630. }
  631. func (x *TeamOutsideTroopsCancel) String() string {
  632. return protoimpl.X.MessageStringOf(x)
  633. }
  634. func (*TeamOutsideTroopsCancel) ProtoMessage() {}
  635. func (x *TeamOutsideTroopsCancel) ProtoReflect() protoreflect.Message {
  636. mi := &file_team_proto_msgTypes[10]
  637. if x != nil {
  638. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  639. if ms.LoadMessageInfo() == nil {
  640. ms.StoreMessageInfo(mi)
  641. }
  642. return ms
  643. }
  644. return mi.MessageOf(x)
  645. }
  646. // Deprecated: Use TeamOutsideTroopsCancel.ProtoReflect.Descriptor instead.
  647. func (*TeamOutsideTroopsCancel) Descriptor() ([]byte, []int) {
  648. return file_team_proto_rawDescGZIP(), []int{10}
  649. }
  650. func (x *TeamOutsideTroopsCancel) GetTeamID() int32 {
  651. if x != nil {
  652. return x.TeamID
  653. }
  654. return 0
  655. }
  656. func (x *TeamOutsideTroopsCancel) GetTeamIndexs() []int32 {
  657. if x != nil {
  658. return x.TeamIndexs
  659. }
  660. return nil
  661. }
  662. // 部队城外征兵信息列表
  663. type TeamOutsideTroopsList struct {
  664. state protoimpl.MessageState `protogen:"open.v1"`
  665. // 征兵信息列表
  666. List []*TeamOutsideTroopsInfo `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
  667. unknownFields protoimpl.UnknownFields
  668. sizeCache protoimpl.SizeCache
  669. }
  670. func (x *TeamOutsideTroopsList) Reset() {
  671. *x = TeamOutsideTroopsList{}
  672. mi := &file_team_proto_msgTypes[11]
  673. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  674. ms.StoreMessageInfo(mi)
  675. }
  676. func (x *TeamOutsideTroopsList) String() string {
  677. return protoimpl.X.MessageStringOf(x)
  678. }
  679. func (*TeamOutsideTroopsList) ProtoMessage() {}
  680. func (x *TeamOutsideTroopsList) ProtoReflect() protoreflect.Message {
  681. mi := &file_team_proto_msgTypes[11]
  682. if x != nil {
  683. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  684. if ms.LoadMessageInfo() == nil {
  685. ms.StoreMessageInfo(mi)
  686. }
  687. return ms
  688. }
  689. return mi.MessageOf(x)
  690. }
  691. // Deprecated: Use TeamOutsideTroopsList.ProtoReflect.Descriptor instead.
  692. func (*TeamOutsideTroopsList) Descriptor() ([]byte, []int) {
  693. return file_team_proto_rawDescGZIP(), []int{11}
  694. }
  695. func (x *TeamOutsideTroopsList) GetList() []*TeamOutsideTroopsInfo {
  696. if x != nil {
  697. return x.List
  698. }
  699. return nil
  700. }
  701. // 部队城外征兵信息
  702. type TeamOutsideTroopsInfo struct {
  703. state protoimpl.MessageState `protogen:"open.v1"`
  704. // 队伍ID
  705. TeamID int32 `protobuf:"varint,1,opt,name=teamID,proto3" json:"teamID,omitempty"`
  706. // 是否自动征兵
  707. AutoTroops bool `protobuf:"varint,2,opt,name=autoTroops,proto3" json:"autoTroops,omitempty"`
  708. // 队伍成员征兵数据
  709. MemberTroops []*TeamMemberOutsideTroops `protobuf:"bytes,3,rep,name=memberTroops,proto3" json:"memberTroops,omitempty"`
  710. unknownFields protoimpl.UnknownFields
  711. sizeCache protoimpl.SizeCache
  712. }
  713. func (x *TeamOutsideTroopsInfo) Reset() {
  714. *x = TeamOutsideTroopsInfo{}
  715. mi := &file_team_proto_msgTypes[12]
  716. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  717. ms.StoreMessageInfo(mi)
  718. }
  719. func (x *TeamOutsideTroopsInfo) String() string {
  720. return protoimpl.X.MessageStringOf(x)
  721. }
  722. func (*TeamOutsideTroopsInfo) ProtoMessage() {}
  723. func (x *TeamOutsideTroopsInfo) ProtoReflect() protoreflect.Message {
  724. mi := &file_team_proto_msgTypes[12]
  725. if x != nil {
  726. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  727. if ms.LoadMessageInfo() == nil {
  728. ms.StoreMessageInfo(mi)
  729. }
  730. return ms
  731. }
  732. return mi.MessageOf(x)
  733. }
  734. // Deprecated: Use TeamOutsideTroopsInfo.ProtoReflect.Descriptor instead.
  735. func (*TeamOutsideTroopsInfo) Descriptor() ([]byte, []int) {
  736. return file_team_proto_rawDescGZIP(), []int{12}
  737. }
  738. func (x *TeamOutsideTroopsInfo) GetTeamID() int32 {
  739. if x != nil {
  740. return x.TeamID
  741. }
  742. return 0
  743. }
  744. func (x *TeamOutsideTroopsInfo) GetAutoTroops() bool {
  745. if x != nil {
  746. return x.AutoTroops
  747. }
  748. return false
  749. }
  750. func (x *TeamOutsideTroopsInfo) GetMemberTroops() []*TeamMemberOutsideTroops {
  751. if x != nil {
  752. return x.MemberTroops
  753. }
  754. return nil
  755. }
  756. // 部队成员城外征兵信息
  757. type TeamMemberOutsideTroops struct {
  758. state protoimpl.MessageState `protogen:"open.v1"`
  759. // 队伍位置 (1-3)
  760. TeamIndex int32 `protobuf:"varint,1,opt,name=teamIndex,proto3" json:"teamIndex,omitempty"`
  761. // 当前已征兵数量
  762. TroopsCount int32 `protobuf:"varint,2,opt,name=troopsCount,proto3" json:"troopsCount,omitempty"`
  763. // 总征兵数量
  764. TotalTroopsCount int32 `protobuf:"varint,3,opt,name=totalTroopsCount,proto3" json:"totalTroopsCount,omitempty"`
  765. // 征兵结束时间戳 单位秒
  766. EndTime int64 `protobuf:"varint,4,opt,name=endTime,proto3" json:"endTime,omitempty"`
  767. unknownFields protoimpl.UnknownFields
  768. sizeCache protoimpl.SizeCache
  769. }
  770. func (x *TeamMemberOutsideTroops) Reset() {
  771. *x = TeamMemberOutsideTroops{}
  772. mi := &file_team_proto_msgTypes[13]
  773. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  774. ms.StoreMessageInfo(mi)
  775. }
  776. func (x *TeamMemberOutsideTroops) String() string {
  777. return protoimpl.X.MessageStringOf(x)
  778. }
  779. func (*TeamMemberOutsideTroops) ProtoMessage() {}
  780. func (x *TeamMemberOutsideTroops) ProtoReflect() protoreflect.Message {
  781. mi := &file_team_proto_msgTypes[13]
  782. if x != nil {
  783. ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  784. if ms.LoadMessageInfo() == nil {
  785. ms.StoreMessageInfo(mi)
  786. }
  787. return ms
  788. }
  789. return mi.MessageOf(x)
  790. }
  791. // Deprecated: Use TeamMemberOutsideTroops.ProtoReflect.Descriptor instead.
  792. func (*TeamMemberOutsideTroops) Descriptor() ([]byte, []int) {
  793. return file_team_proto_rawDescGZIP(), []int{13}
  794. }
  795. func (x *TeamMemberOutsideTroops) GetTeamIndex() int32 {
  796. if x != nil {
  797. return x.TeamIndex
  798. }
  799. return 0
  800. }
  801. func (x *TeamMemberOutsideTroops) GetTroopsCount() int32 {
  802. if x != nil {
  803. return x.TroopsCount
  804. }
  805. return 0
  806. }
  807. func (x *TeamMemberOutsideTroops) GetTotalTroopsCount() int32 {
  808. if x != nil {
  809. return x.TotalTroopsCount
  810. }
  811. return 0
  812. }
  813. func (x *TeamMemberOutsideTroops) GetEndTime() int64 {
  814. if x != nil {
  815. return x.EndTime
  816. }
  817. return 0
  818. }
  819. var File_team_proto protoreflect.FileDescriptor
  820. const file_team_proto_rawDesc = "" +
  821. "\n" +
  822. "\n" +
  823. "team.proto\x12\x02pb\x1a\x0fbase_type.proto\"%\n" +
  824. "\x05Teams\x12\x1c\n" +
  825. "\x04list\x18\x01 \x03(\v2\b.pb.TeamR\x04list\"\xe0\x01\n" +
  826. "\x04Team\x12\x16\n" +
  827. "\x06teamID\x18\x01 \x01(\x05R\x06teamID\x12(\n" +
  828. "\amembers\x18\x02 \x03(\v2\x0e.pb.TeamMemberR\amembers\x12\x14\n" +
  829. "\x05state\x18\x03 \x01(\x05R\x05state\x12\x16\n" +
  830. "\x06weight\x18\x04 \x01(\x05R\x06weight\x12$\n" +
  831. "\rautoAddTroops\x18\x05 \x01(\bR\rautoAddTroops\x12\x1c\n" +
  832. "\tfetterIDs\x18\x06 \x03(\x05R\tfetterIDs\x12$\n" +
  833. "\rmarchObjectID\x18\a \x01(\x03R\rmarchObjectID\"\xb0\x01\n" +
  834. "\n" +
  835. "TeamMember\x12\x1c\n" +
  836. "\tteamIndex\x18\x01 \x01(\x05R\tteamIndex\x12\x14\n" +
  837. "\x05index\x18\x02 \x01(\x05R\x05index\x12\x1a\n" +
  838. "\bheroGUID\x18\x03 \x01(\x03R\bheroGUID\x12\x1a\n" +
  839. "\btroopsID\x18\x04 \x01(\x05R\btroopsID\x12\x1c\n" +
  840. "\ttroopsNum\x18\x05 \x01(\x05R\ttroopsNum\x12\x18\n" +
  841. "\awounded\x18\x06 \x01(\x05R\awounded\"w\n" +
  842. "\rTeamUpRequest\x12\x1a\n" +
  843. "\bheroGUID\x18\x01 \x01(\x03R\bheroGUID\x12\x16\n" +
  844. "\x06teamID\x18\x02 \x01(\x05R\x06teamID\x12\x1c\n" +
  845. "\tteamIndex\x18\x03 \x01(\x05R\tteamIndex\x12\x14\n" +
  846. "\x05index\x18\x04 \x01(\x05R\x05index\"\xb3\x01\n" +
  847. "\x11TeamChangeRequest\x12\x1c\n" +
  848. "\tsrcTeamID\x18\x01 \x01(\x05R\tsrcTeamID\x12\"\n" +
  849. "\fsrcTeamIndex\x18\x02 \x01(\x05R\fsrcTeamIndex\x12\x1c\n" +
  850. "\tdstTeamID\x18\x03 \x01(\x05R\tdstTeamID\x12\"\n" +
  851. "\fdstTeamIndex\x18\x04 \x01(\x05R\fdstTeamIndex\x12\x1a\n" +
  852. "\bdstIndex\x18\x05 \x01(\x05R\bdstIndex\"x\n" +
  853. "\x16TeamInnerChangeRequest\x12\x16\n" +
  854. "\x06teamID\x18\x01 \x01(\x05R\x06teamID\x12\"\n" +
  855. "\fsrcTeamIndex\x18\x02 \x01(\x05R\fsrcTeamIndex\x12\"\n" +
  856. "\fdstTeamIndex\x18\x03 \x01(\x05R\fdstTeamIndex\"[\n" +
  857. "\x11TeamLineupRequest\x12\x16\n" +
  858. "\x06teamID\x18\x01 \x01(\x05R\x06teamID\x12\x14\n" +
  859. "\x05index\x18\x02 \x01(\x05R\x05index\x12\x18\n" +
  860. "\atoIndex\x18\x03 \x01(\x05R\atoIndex\"e\n" +
  861. "\x11TeamTroopsRequest\x12\x16\n" +
  862. "\x06teamID\x18\x01 \x01(\x05R\x06teamID\x128\n" +
  863. "\fmemberTroops\x18\x03 \x03(\v2\x14.pb.TeamMemberTroopsR\fmemberTroops\"j\n" +
  864. "\x10TeamMemberTroops\x12\x1c\n" +
  865. "\tteamIndex\x18\x01 \x01(\x05R\tteamIndex\x12\x1a\n" +
  866. "\btroopsID\x18\x02 \x01(\x05R\btroopsID\x12\x1c\n" +
  867. "\ttroopsNum\x18\x03 \x01(\x05R\ttroopsNum\"W\n" +
  868. "\x11TeamOutsideTroops\x12\x16\n" +
  869. "\x06teamID\x18\x01 \x01(\x05R\x06teamID\x12*\n" +
  870. "\n" +
  871. "troopsNums\x18\x02 \x03(\v2\n" +
  872. ".pb.I32I32R\n" +
  873. "troopsNums\"Q\n" +
  874. "\x17TeamOutsideTroopsCancel\x12\x16\n" +
  875. "\x06teamID\x18\x01 \x01(\x05R\x06teamID\x12\x1e\n" +
  876. "\n" +
  877. "teamIndexs\x18\x02 \x03(\x05R\n" +
  878. "teamIndexs\"F\n" +
  879. "\x15TeamOutsideTroopsList\x12-\n" +
  880. "\x04list\x18\x01 \x03(\v2\x19.pb.TeamOutsideTroopsInfoR\x04list\"\x90\x01\n" +
  881. "\x15TeamOutsideTroopsInfo\x12\x16\n" +
  882. "\x06teamID\x18\x01 \x01(\x05R\x06teamID\x12\x1e\n" +
  883. "\n" +
  884. "autoTroops\x18\x02 \x01(\bR\n" +
  885. "autoTroops\x12?\n" +
  886. "\fmemberTroops\x18\x03 \x03(\v2\x1b.pb.TeamMemberOutsideTroopsR\fmemberTroops\"\x9f\x01\n" +
  887. "\x17TeamMemberOutsideTroops\x12\x1c\n" +
  888. "\tteamIndex\x18\x01 \x01(\x05R\tteamIndex\x12 \n" +
  889. "\vtroopsCount\x18\x02 \x01(\x05R\vtroopsCount\x12*\n" +
  890. "\x10totalTroopsCount\x18\x03 \x01(\x05R\x10totalTroopsCount\x12\x18\n" +
  891. "\aendTime\x18\x04 \x01(\x03R\aendTimeB\x05Z\x03/pbb\x06proto3"
  892. var (
  893. file_team_proto_rawDescOnce sync.Once
  894. file_team_proto_rawDescData []byte
  895. )
  896. func file_team_proto_rawDescGZIP() []byte {
  897. file_team_proto_rawDescOnce.Do(func() {
  898. file_team_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_team_proto_rawDesc), len(file_team_proto_rawDesc)))
  899. })
  900. return file_team_proto_rawDescData
  901. }
  902. var file_team_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
  903. var file_team_proto_goTypes = []any{
  904. (*Teams)(nil), // 0: pb.Teams
  905. (*Team)(nil), // 1: pb.Team
  906. (*TeamMember)(nil), // 2: pb.TeamMember
  907. (*TeamUpRequest)(nil), // 3: pb.TeamUpRequest
  908. (*TeamChangeRequest)(nil), // 4: pb.TeamChangeRequest
  909. (*TeamInnerChangeRequest)(nil), // 5: pb.TeamInnerChangeRequest
  910. (*TeamLineupRequest)(nil), // 6: pb.TeamLineupRequest
  911. (*TeamTroopsRequest)(nil), // 7: pb.TeamTroopsRequest
  912. (*TeamMemberTroops)(nil), // 8: pb.TeamMemberTroops
  913. (*TeamOutsideTroops)(nil), // 9: pb.TeamOutsideTroops
  914. (*TeamOutsideTroopsCancel)(nil), // 10: pb.TeamOutsideTroopsCancel
  915. (*TeamOutsideTroopsList)(nil), // 11: pb.TeamOutsideTroopsList
  916. (*TeamOutsideTroopsInfo)(nil), // 12: pb.TeamOutsideTroopsInfo
  917. (*TeamMemberOutsideTroops)(nil), // 13: pb.TeamMemberOutsideTroops
  918. (*I32I32)(nil), // 14: pb.I32I32
  919. }
  920. var file_team_proto_depIdxs = []int32{
  921. 1, // 0: pb.Teams.list:type_name -> pb.Team
  922. 2, // 1: pb.Team.members:type_name -> pb.TeamMember
  923. 8, // 2: pb.TeamTroopsRequest.memberTroops:type_name -> pb.TeamMemberTroops
  924. 14, // 3: pb.TeamOutsideTroops.troopsNums:type_name -> pb.I32I32
  925. 12, // 4: pb.TeamOutsideTroopsList.list:type_name -> pb.TeamOutsideTroopsInfo
  926. 13, // 5: pb.TeamOutsideTroopsInfo.memberTroops:type_name -> pb.TeamMemberOutsideTroops
  927. 6, // [6:6] is the sub-list for method output_type
  928. 6, // [6:6] is the sub-list for method input_type
  929. 6, // [6:6] is the sub-list for extension type_name
  930. 6, // [6:6] is the sub-list for extension extendee
  931. 0, // [0:6] is the sub-list for field type_name
  932. }
  933. func init() { file_team_proto_init() }
  934. func file_team_proto_init() {
  935. if File_team_proto != nil {
  936. return
  937. }
  938. file_base_type_proto_init()
  939. type x struct{}
  940. out := protoimpl.TypeBuilder{
  941. File: protoimpl.DescBuilder{
  942. GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  943. RawDescriptor: unsafe.Slice(unsafe.StringData(file_team_proto_rawDesc), len(file_team_proto_rawDesc)),
  944. NumEnums: 0,
  945. NumMessages: 14,
  946. NumExtensions: 0,
  947. NumServices: 0,
  948. },
  949. GoTypes: file_team_proto_goTypes,
  950. DependencyIndexes: file_team_proto_depIdxs,
  951. MessageInfos: file_team_proto_msgTypes,
  952. }.Build()
  953. File_team_proto = out.File
  954. file_team_proto_goTypes = nil
  955. file_team_proto_depIdxs = nil
  956. }