Add protolint to pre-commit (#2409)

* add protolint and do some fixes

* add protolint and do some fixes

* 2 space indent

* back to 4

* add some more linters

* a couple more

* seems like a good set


Former-commit-id: f7d9dc5aa2a98a21920780b5631f70900b2fa549
This commit is contained in:
2022-12-13 07:50:21 -08:00
committed by GitHub
parent cf96a106a4
commit 0dbd12ee86
94 changed files with 1237 additions and 1072 deletions
+172
View File
@@ -0,0 +1,172 @@
---
# Lint directives.
lint:
# Linter files to ignore.
ignores:
- id: MESSAGE_NAMES_UPPER_CAMEL_CASE
files:
# NOTE: UNIX paths will be properly accepted by both UNIX and Windows.
- _example/proto/simple.proto
- id: ENUM_NAMES_UPPER_CAMEL_CASE
files:
- path/to/foo.proto
# Linter files to walk.
files:
# The specific files to exclude.
exclude:
# NOTE: UNIX paths will be properly accepted by both UNIX and Windows.
- path/to/file
# Linter directories to walk.
directories:
# The specific directories to exclude.
exclude:
# NOTE: UNIX paths will be properly accepted by both UNIX and Windows.
- path/to/dir
# Linter rules.
# Run `protolint list` to see all available rules.
rules:
# Determines whether or not to include the default set of linters.
no_default: true
# The specific linters to add.
add:
- FIELD_NAMES_LOWER_SNAKE_CASE
- MESSAGE_NAMES_UPPER_CAMEL_CASE
- INDENT
- FILE_NAMES_LOWER_SNAKE_CASE
- IMPORTS_SORTED
- PACKAGE_NAME_LOWER_CASE
- ORDER
- PROTO3_FIELDS_AVOID_REQUIRED
- PROTO3_GROUPS_AVOID
- SYNTAX_CONSISTENT
- QUOTE_CONSISTENT
# - REPEATED_FIELD_NAMES_PLURALIZED
# - ENUMS_HAVE_COMMENT
# - ENUM_FIELDS_HAVE_COMMENT
# - RPC_NAMES_CASE
# - FILE_HAS_COMMENT
# - MAX_LINE_LENGTH
# - SERVICE_NAMES_END_WITH
# - FIELD_NAMES_EXCLUDE_PREPOSITIONS
# - MESSAGE_NAMES_EXCLUDE_PREPOSITIONS
# - MESSAGES_HAVE_COMMENT
# - SERVICES_HAVE_COMMENT
# - RPCS_HAVE_COMMENT
# - FIELDS_HAVE_COMMENT
# The specific linters to remove.
remove:
- RPC_NAMES_UPPER_CAMEL_CASE
# Linter rules option.
rules_option:
# MAX_LINE_LENGTH rule option.
max_line_length:
# Enforces a maximum line length
max_chars: 120
# Specifies the character count for tab characters
tab_chars: 2
# INDENT rule option.
indent:
# Available styles are 4(4-spaces), 2(2-spaces) or tab.
style: 4
# Specifies if it should stop considering and inserting new lines at the appropriate positions
# when the inner elements are on the same line. Default is false.
not_insert_newline: true
# FILE_NAMES_LOWER_SNAKE_CASE rule option.
file_names_lower_snake_case:
excludes:
- ../proto/invalidFileName.proto
# QUOTE_CONSISTENT rule option.
quote_consistent:
# Available quote are "double" or "single".
quote: double
# ENUM_FIELD_NAMES_ZERO_VALUE_END_WITH rule option.
enum_field_names_zero_value_end_with:
suffix: INVALID
# SERVICE_NAMES_END_WITH rule option.
service_names_end_with:
text: Service
# FIELD_NAMES_EXCLUDE_PREPOSITIONS rule option.
field_names_exclude_prepositions:
# The specific prepositions to determine if the field name includes.
prepositions:
- for
- at
- of
# The specific keywords including prepositions to ignore. E.g. end_of_support is a term you would like to use, and skip checking.
excludes:
- end_of_support
# REPEATED_FIELD_NAMES_PLURALIZED rule option.
## The spec for each rules follows the implementation of https://github.com/gertd/go-pluralize.
## Plus, you can refer to this rule's test code.
repeated_field_names_pluralized:
uncountable_rules:
- paper
irregular_rules:
Irregular: Regular
# MESSAGE_NAMES_EXCLUDE_PREPOSITIONS rule option.
message_names_exclude_prepositions:
# The specific prepositions to determine if the message name includes.
prepositions:
- With
- For
- Of
# The specific keywords including prepositions to ignore. E.g. EndOfSupport is a term you would like to use, and skip checking.
excludes:
- EndOfSupport
-
# RPC_NAMES_CASE rule option.
rpc_names_case:
# The specific convention the name should conforms to.
## Available conventions are "lower_camel_case", "upper_snake_case", or "lower_snake_case".
convention: upper_snake_case
# MESSAGES_HAVE_COMMENT rule option.
messages_have_comment:
# Comments need to begin with the name of the thing being described. default is false.
should_follow_golang_style: true
# SERVICES_HAVE_COMMENT rule option.
services_have_comment:
# Comments need to begin with the name of the thing being described. default is false.
should_follow_golang_style: true
# RPCS_HAVE_COMMENT rule option.
rpcs_have_comment:
# Comments need to begin with the name of the thing being described. default is false.
should_follow_golang_style: true
# FIELDS_HAVE_COMMENT rule option.
fields_have_comment:
# Comments need to begin with the name of the thing being described. default is false.
should_follow_golang_style: true
# ENUMS_HAVE_COMMENT rule option.
enums_have_comment:
# Comments need to begin with the name of the thing being described. default is false.
should_follow_golang_style: true
# ENUM_FIELDS_HAVE_COMMENT rule option.
enum_fields_have_comment:
# Comments need to begin with the name of the thing being described. default is false.
should_follow_golang_style: true
# SYNTAX_CONSISTENT rule option.
syntax_consistent:
# Default is proto3.
version: proto3
@@ -4,15 +4,15 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.common;
import "google/protobuf/wrappers.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.common"; option java_package = "net.eagle0.common";
option java_outer_classname = "Unit"; option java_outer_classname = "Unit";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.common;
import "google/protobuf/wrappers.proto";
message CommonUnit { message CommonUnit {
int32 eagle_player_id = 1; int32 eagle_player_id = 1;
CommonHero hero = 2; CommonHero hero = 2;
@@ -4,27 +4,27 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.common;
import "src/main/protobuf/net/eagle0/common/player_info.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.common"; option java_package = "net.eagle0.common";
option java_outer_classname = "GameSetupInfo"; option java_outer_classname = "GameSetupInfo";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.common;
import "src/main/protobuf/net/eagle0/common/player_info.proto";
message GameSetupInfo { message GameSetupInfo {
int32 known_result_count = 1; int32 known_result_count = 1;
bytes current_game_state = 2; bytes current_game_state = 2;
NewGameRequest new_game_request = 3; NewGameRequest new_game_request = 3;
} }
message NewGameRequest { message NewGameRequest {
string game_id = 1; string game_id = 1;
string hex_map_name = 2; string hex_map_name = 2;
int32 month = 4; int32 month = 4;
bytes custom_map_bytes = 5; bytes custom_map_bytes = 5;
repeated PlayerSetupInfo user_infos = 3; repeated PlayerSetupInfo user_infos = 3;
int64 eagle_game_id = 6; int64 eagle_game_id = 6;
} }
@@ -4,17 +4,17 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.common;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.common"; option java_package = "net.eagle0.common";
option java_outer_classname = "Hostility"; option java_outer_classname = "Hostility";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.common;
enum Hostility { enum Hostility {
UNKNOWN_HOSTILITY = 0; UNKNOWN_HOSTILITY = 0;
SELF_HOSTILITY = 1; SELF_HOSTILITY = 1;
ALLIED_HOSTILITY = 2; ALLIED_HOSTILITY = 2;
UNCONTROLLED_HOSTILITY = 3; UNCONTROLLED_HOSTILITY = 3;
ENEMY_HOSTILITY = 4; ENEMY_HOSTILITY = 4;
} }
@@ -4,16 +4,16 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.common";
option java_outer_classname = "PlayerInfo";
option objc_class_prefix = "E0G";
package net.eagle0.common; package net.eagle0.common;
import "src/main/protobuf/net/eagle0/common/common_unit.proto"; import "src/main/protobuf/net/eagle0/common/common_unit.proto";
import "src/main/protobuf/net/eagle0/common/victory_condition.proto"; import "src/main/protobuf/net/eagle0/common/victory_condition.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.common";
option java_outer_classname = "PlayerInfo";
option objc_class_prefix = "E0G";
message PlayerSetupInfo { message PlayerSetupInfo {
enum PlayerType { enum PlayerType {
UNKNOWN = 0; UNKNOWN = 0;
@@ -41,4 +41,4 @@ message PlayerResolutionInfo {
int32 eagle_faction_id = 1; int32 eagle_faction_id = 1;
repeated .net.eagle0.common.ResolvedUnit units = 2; repeated .net.eagle0.common.ResolvedUnit units = 2;
.net.eagle0.common.EndGameCondition end_game_condition = 3; .net.eagle0.common.EndGameCondition end_game_condition = 3;
} }
@@ -4,15 +4,15 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.common;
import "src/main/protobuf/net/eagle0/common/common_unit.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.common"; option java_package = "net.eagle0.common";
option java_outer_classname = "RandomUnits"; option java_outer_classname = "RandomUnits";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.common;
import "src/main/protobuf/net/eagle0/common/common_unit.proto";
message RandomUnits { message RandomUnits {
repeated CommonUnit units = 1; repeated CommonUnit units = 1;
} }
@@ -4,11 +4,6 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.common";
option java_outer_classname = "EagleInterface";
option objc_class_prefix = "E0G";
package net.eagle0.common; package net.eagle0.common;
import "src/main/protobuf/net/eagle0/common/game_setup_info.proto"; import "src/main/protobuf/net/eagle0/common/game_setup_info.proto";
@@ -19,6 +14,11 @@ import "src/main/protobuf/net/eagle0/shardok/api/placement_command.proto";
import "src/main/protobuf/net/eagle0/shardok/common/hex_map.proto"; import "src/main/protobuf/net/eagle0/shardok/common/hex_map.proto";
import "src/main/protobuf/net/eagle0/shardok/storage/action_result.proto"; import "src/main/protobuf/net/eagle0/shardok/storage/action_result.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.common";
option java_outer_classname = "EagleInterface";
option objc_class_prefix = "E0G";
service ShardokInternalInterface { service ShardokInternalInterface {
rpc PostCommand(PostCommandRequest) returns (GameStatusResponse) {} rpc PostCommand(PostCommandRequest) returns (GameStatusResponse) {}
rpc PostPlacementCommands(PlacementCommandsRequest) returns (GameStatusResponse) {} rpc PostPlacementCommands(PlacementCommandsRequest) returns (GameStatusResponse) {}
@@ -90,4 +90,4 @@ message HexMapRequest {
message HexMapResponse { message HexMapResponse {
.net.eagle0.shardok.common.HexMap map = 1; .net.eagle0.shardok.common.HexMap map = 1;
} }
@@ -4,13 +4,13 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.common;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.common"; option java_package = "net.eagle0.common";
option java_outer_classname = "VictoryCondition"; option java_outer_classname = "VictoryCondition";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.common;
message EndGameCondition { message EndGameCondition {
oneof condition { oneof condition {
VictoryCondition victory = 1; VictoryCondition victory = 1;
@@ -48,4 +48,3 @@ enum DrawType {
DRAW_AFTER_MAX_ROUNDS = 1; DRAW_AFTER_MAX_ROUNDS = 1;
} }
@@ -4,11 +4,6 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "ActionResultView";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.api; package net.eagle0.eagle.api;
import "google/protobuf/wrappers.proto"; import "google/protobuf/wrappers.proto";
@@ -16,6 +11,11 @@ import "src/main/protobuf/net/eagle0/eagle/api/game_state_view.proto";
import "src/main/protobuf/net/eagle0/eagle/common/action_result_notification_details.proto"; import "src/main/protobuf/net/eagle0/eagle/common/action_result_notification_details.proto";
import "src/main/protobuf/net/eagle0/eagle/common/action_result_type.proto"; import "src/main/protobuf/net/eagle0/eagle/common/action_result_type.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "ActionResultView";
option objc_class_prefix = "E0G";
message ActionResultView { message ActionResultView {
.net.eagle0.eagle.common.ActionResultType type = 1; .net.eagle0.eagle.common.ActionResultType type = 1;
.google.protobuf.Int32Value player = 2; .google.protobuf.Int32Value player = 2;
@@ -4,15 +4,15 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.api;
import "src/main/protobuf/net/eagle0/eagle/common/combat_unit.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api"; option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "ArmyView"; option java_outer_classname = "ArmyView";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.api;
import "src/main/protobuf/net/eagle0/eagle/common/combat_unit.proto";
message ArmyView { message ArmyView {
int32 faction_id = 1; int32 faction_id = 1;
repeated .net.eagle0.eagle.common.CombatUnit units = 2; repeated .net.eagle0.eagle.common.CombatUnit units = 2;
@@ -4,15 +4,9 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "AvailableCommand";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.api; package net.eagle0.eagle.api;
import "google/protobuf/wrappers.proto"; import "google/protobuf/wrappers.proto";
import "src/main/protobuf/net/eagle0/eagle/api/hero_view.proto";
import "src/main/protobuf/net/eagle0/eagle/api/command/util/appropriate_battalions.proto"; import "src/main/protobuf/net/eagle0/eagle/api/command/util/appropriate_battalions.proto";
import "src/main/protobuf/net/eagle0/eagle/api/command/util/army_stats.proto"; import "src/main/protobuf/net/eagle0/eagle/api/command/util/army_stats.proto";
import "src/main/protobuf/net/eagle0/eagle/api/command/util/attack_decision_type.proto"; import "src/main/protobuf/net/eagle0/eagle/api/command/util/attack_decision_type.proto";
@@ -24,6 +18,7 @@ import "src/main/protobuf/net/eagle0/eagle/api/command/util/expanded_combat_unit
import "src/main/protobuf/net/eagle0/eagle/api/command/util/expanded_unaffiliated_hero.proto"; import "src/main/protobuf/net/eagle0/eagle/api/command/util/expanded_unaffiliated_hero.proto";
import "src/main/protobuf/net/eagle0/eagle/api/command/util/improvement_type.proto"; import "src/main/protobuf/net/eagle0/eagle/api/command/util/improvement_type.proto";
import "src/main/protobuf/net/eagle0/eagle/api/command/util/province_orders.proto"; import "src/main/protobuf/net/eagle0/eagle/api/command/util/province_orders.proto";
import "src/main/protobuf/net/eagle0/eagle/api/hero_view.proto";
import "src/main/protobuf/net/eagle0/eagle/common/battalion_type.proto"; import "src/main/protobuf/net/eagle0/eagle/common/battalion_type.proto";
import "src/main/protobuf/net/eagle0/eagle/common/combat_unit.proto"; import "src/main/protobuf/net/eagle0/eagle/common/combat_unit.proto";
import "src/main/protobuf/net/eagle0/eagle/common/invitation.proto"; import "src/main/protobuf/net/eagle0/eagle/common/invitation.proto";
@@ -31,6 +26,11 @@ import "src/main/protobuf/net/eagle0/eagle/common/province_order_type.proto";
import "src/main/protobuf/net/eagle0/eagle/common/treaty_offer.proto"; import "src/main/protobuf/net/eagle0/eagle/common/treaty_offer.proto";
import "src/main/protobuf/net/eagle0/eagle/common/tribute_amount.proto"; import "src/main/protobuf/net/eagle0/eagle/common/tribute_amount.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "AvailableCommand";
option objc_class_prefix = "E0G";
message AvailableCommand { message AvailableCommand {
// These values must be kept in sync with the corresponding values in selected_command.proto // These values must be kept in sync with the corresponding values in selected_command.proto
oneof sealed_value { oneof sealed_value {
@@ -325,8 +325,8 @@ message TributeAndFaction {
int32 demanding_faction_id = 1; int32 demanding_faction_id = 1;
.net.eagle0.eagle.common.TributeAmount tribute_demanded = 2; .net.eagle0.eagle.common.TributeAmount tribute_demanded = 2;
int32 heroCount = 3; int32 hero_count = 3;
int32 troopCount = 4; int32 troop_count = 4;
} }
message ResolveTributeAvailableCommand { message ResolveTributeAvailableCommand {
@@ -4,16 +4,16 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "BattalionView";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.api; package net.eagle0.eagle.api;
import "google/protobuf/wrappers.proto"; import "google/protobuf/wrappers.proto";
import "src/main/protobuf/net/eagle0/eagle/common/battalion_type.proto"; import "src/main/protobuf/net/eagle0/eagle/common/battalion_type.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "BattalionView";
option objc_class_prefix = "E0G";
message BattalionView { message BattalionView {
int32 id = 1; int32 id = 1;
.net.eagle0.eagle.common.BattalionTypeId type = 2; .net.eagle0.eagle.common.BattalionTypeId type = 2;
@@ -33,4 +33,4 @@ message BattalionViewDiff {
.google.protobuf.DoubleValue new_morale = 3; .google.protobuf.DoubleValue new_morale = 3;
.google.protobuf.DoubleValue new_training = 4; .google.protobuf.DoubleValue new_training = 4;
.google.protobuf.DoubleValue new_armament = 5; .google.protobuf.DoubleValue new_armament = 5;
} }
@@ -4,23 +4,23 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.api;
import "src/main/protobuf/net/eagle0/eagle/api/available_command.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api"; option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "Command"; option java_outer_classname = "Command";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.api;
import "src/main/protobuf/net/eagle0/eagle/api/available_command.proto";
message OneProvinceAvailableCommands { message OneProvinceAvailableCommands {
int32 province_id = 1; int32 province_id = 1;
repeated AvailableCommand commands = 2; repeated AvailableCommand commands = 2;
int32 suggested_command_index = 3; int32 suggested_command_index = 3;
} }
message AvailableCommands { message AvailableCommands {
int64 token = 1; int64 token = 1;
map<int32, OneProvinceAvailableCommands> commands_by_province = 2; map<int32, OneProvinceAvailableCommands> commands_by_province = 2;
int32 suggested_province_id = 3; int32 suggested_province_id = 3;
} }
@@ -4,13 +4,13 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.api.command.util;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api.command.util"; option java_package = "net.eagle0.eagle.api.command.util";
option java_outer_classname = "AppropriateBattalions"; option java_outer_classname = "AppropriateBattalions";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.api.command.util;
message SuitableBattalions { message SuitableBattalions {
enum SuitabilityLevel { enum SuitabilityLevel {
UNKNOWN = 0; UNKNOWN = 0;
@@ -4,14 +4,14 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.api.command.util;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api.command.util"; option java_package = "net.eagle0.eagle.api.command.util";
option java_outer_classname = "ArmedBattalion"; option java_outer_classname = "ArmedBattalion";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.api.command.util;
message ArmedBattalion { message ArmedBattalion {
int32 id = 1; int32 id = 1;
int32 new_armament = 2; int32 new_armament = 2;
} }
@@ -4,15 +4,15 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.api.command.util;
import "src/main/protobuf/net/eagle0/common/hostility.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api.command.util"; option java_package = "net.eagle0.eagle.api.command.util";
option java_outer_classname = "ArmyStats"; option java_outer_classname = "ArmyStats";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.api.command.util;
import "src/main/protobuf/net/eagle0/common/hostility.proto";
message ArmyStats { message ArmyStats {
int32 faction_id = 1; int32 faction_id = 1;
int32 hero_count = 2; int32 hero_count = 2;
@@ -4,13 +4,13 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.api.command.util;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api.command.util"; option java_package = "net.eagle0.eagle.api.command.util";
option java_outer_classname = "AttackDecisionTypes"; option java_outer_classname = "AttackDecisionTypes";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.api.command.util;
enum AttackDecisionType { enum AttackDecisionType {
UNKNOWN_ATTACK_DECISION = 0; UNKNOWN_ATTACK_DECISION = 0;
ADVANCE_DECISION = 1; ADVANCE_DECISION = 1;
@@ -4,14 +4,14 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.api.command.util;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api.command.util"; option java_package = "net.eagle0.eagle.api.command.util";
option java_outer_classname = "BattalionWithFoodCost"; option java_outer_classname = "BattalionWithFoodCost";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.api.command.util;
message BattalionWithFoodCost { message BattalionWithFoodCost {
int32 battalion_id = 1; int32 battalion_id = 1;
double monthly_food = 2; double monthly_food = 2;
} }
@@ -4,18 +4,18 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.api.command.util;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api.command.util"; option java_package = "net.eagle0.eagle.api.command.util";
option java_outer_classname = "CapturedHeroOption"; option java_outer_classname = "CapturedHeroOption";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.api.command.util;
enum CapturedHeroOption { enum CapturedHeroOption {
UNKNOWN_CAPTURED_HERO_OPTION = 0; UNKNOWN_CAPTURED_HERO_OPTION = 0;
RECRUIT_CAPTURED_HERO_OPTION = 1; RECRUIT_CAPTURED_HERO_OPTION = 1;
IMPRISON_CAPTURED_HERO_OPTION = 2; IMPRISON_CAPTURED_HERO_OPTION = 2;
EXILE_CAPTURED_HERO_OPTION = 3; EXILE_CAPTURED_HERO_OPTION = 3;
EXECUTE_CAPTURED_HERO_OPTION = 4; EXECUTE_CAPTURED_HERO_OPTION = 4;
RETURN_CAPTURED_HERO_OPTION = 5; RETURN_CAPTURED_HERO_OPTION = 5;
} }
@@ -4,17 +4,17 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.api.command.util;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api.command.util"; option java_package = "net.eagle0.eagle.api.command.util";
option java_outer_classname = "ControlWeatherType"; option java_outer_classname = "ControlWeatherType";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.api.command.util;
enum ControlWeatherType { enum ControlWeatherType {
CONTROL_WEATHER_UNKNOWN = 0; CONTROL_WEATHER_UNKNOWN = 0;
CONTROL_WEATHER_START_BLIZZARD = 1; CONTROL_WEATHER_START_BLIZZARD = 1;
CONTROL_WEATHER_END_BLIZZARD = 2; CONTROL_WEATHER_END_BLIZZARD = 2;
CONTROL_WEATHER_START_DROUGHT = 3; CONTROL_WEATHER_START_DROUGHT = 3;
CONTROL_WEATHER_END_DROUGHT = 4; CONTROL_WEATHER_END_DROUGHT = 4;
} }
@@ -4,15 +4,15 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.api.command.util;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api.command.util"; option java_package = "net.eagle0.eagle.api.command.util";
option java_outer_classname = "DiplomacyOptionType"; option java_outer_classname = "DiplomacyOptionType";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.api.command.util;
enum DiplomacyOptionType { enum DiplomacyOptionType {
UNKNOWN_DIPLOMACY_OPTION = 0; UNKNOWN_DIPLOMACY_OPTION = 0;
TREATY_OPTION = 1; TREATY_OPTION = 1;
INVITATION_OPTION = 2; INVITATION_OPTION = 2;
} }
@@ -4,16 +4,16 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api.command.util";
option java_outer_classname = "ExpandedCombatUnit";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.api.command.util; package net.eagle0.eagle.api.command.util;
import "src/main/protobuf/net/eagle0/eagle/api/battalion_view.proto"; import "src/main/protobuf/net/eagle0/eagle/api/battalion_view.proto";
import "src/main/protobuf/net/eagle0/eagle/api/hero_view.proto"; import "src/main/protobuf/net/eagle0/eagle/api/hero_view.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api.command.util";
option java_outer_classname = "ExpandedCombatUnit";
option objc_class_prefix = "E0G";
message ExpandedCombatUnit { message ExpandedCombatUnit {
.net.eagle0.eagle.api.HeroView hero = 1; .net.eagle0.eagle.api.HeroView hero = 1;
.net.eagle0.eagle.api.BattalionView battalion = 2; .net.eagle0.eagle.api.BattalionView battalion = 2;
@@ -4,17 +4,17 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api.command.util";
option java_outer_classname = "ExpandedUnaffiliatedHero";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.api.command.util; package net.eagle0.eagle.api.command.util;
import "src/main/protobuf/net/eagle0/eagle/api/hero_view.proto"; import "src/main/protobuf/net/eagle0/eagle/api/hero_view.proto";
import "src/main/protobuf/net/eagle0/eagle/common/unaffiliated_hero.proto"; import "src/main/protobuf/net/eagle0/eagle/common/unaffiliated_hero.proto";
import "src/main/protobuf/net/eagle0/eagle/common/unaffiliated_hero_quest.proto"; import "src/main/protobuf/net/eagle0/eagle/common/unaffiliated_hero_quest.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api.command.util";
option java_outer_classname = "ExpandedUnaffiliatedHero";
option objc_class_prefix = "E0G";
message ExpandedUnaffiliatedHero { message ExpandedUnaffiliatedHero {
.net.eagle0.eagle.api.HeroView hero = 1; .net.eagle0.eagle.api.HeroView hero = 1;
.net.eagle0.eagle.common.UnaffiliatedHero.Type type = 2; .net.eagle0.eagle.common.UnaffiliatedHero.Type type = 2;
@@ -4,17 +4,17 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.api.command.util;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api.command.util"; option java_package = "net.eagle0.eagle.api.command.util";
option java_outer_classname = "ImprovementType"; option java_outer_classname = "ImprovementType";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.api.command.util;
enum ImprovementType { enum ImprovementType {
UNKNOWN = 0; UNKNOWN = 0;
ECONOMY = 1; ECONOMY = 1;
AGRICULTURE = 2; AGRICULTURE = 2;
INFRASTRUCTURE = 3; INFRASTRUCTURE = 3;
DEVASTATION = 4; DEVASTATION = 4;
} }
@@ -4,16 +4,16 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.api.command.util;
import "src/main/protobuf/net/eagle0/eagle/common/province_order_type.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api.command.util"; option java_package = "net.eagle0.eagle.api.command.util";
option java_outer_classname = "ProvinceOrders"; option java_outer_classname = "ProvinceOrders";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.api.command.util;
import "src/main/protobuf/net/eagle0/eagle/common/province_order_type.proto";
message ProvinceOrders { message ProvinceOrders {
int32 province_id = 1; int32 province_id = 1;
.net.eagle0.eagle.common.ProvinceOrderType orders = 2; .net.eagle0.eagle.common.ProvinceOrderType orders = 2;
} }
@@ -4,23 +4,23 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "EagleProto";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.api; package net.eagle0.eagle.api;
import "google/protobuf/wrappers.proto";
import "src/main/protobuf/net/eagle0/common/game_setup_info.proto";
import "src/main/protobuf/net/eagle0/eagle/api/action_result_view.proto"; import "src/main/protobuf/net/eagle0/eagle/api/action_result_view.proto";
import "src/main/protobuf/net/eagle0/eagle/api/command.proto"; import "src/main/protobuf/net/eagle0/eagle/api/command.proto";
import "src/main/protobuf/net/eagle0/eagle/api/selected_command.proto";
import "src/main/protobuf/net/eagle0/eagle/api/game_state_view.proto"; import "src/main/protobuf/net/eagle0/eagle/api/game_state_view.proto";
import "src/main/protobuf/net/eagle0/eagle/api/selected_command.proto";
import "src/main/protobuf/net/eagle0/eagle/common/profession.proto"; import "src/main/protobuf/net/eagle0/eagle/common/profession.proto";
import "src/main/protobuf/net/eagle0/shardok/api/action_result_view.proto"; import "src/main/protobuf/net/eagle0/shardok/api/action_result_view.proto";
import "src/main/protobuf/net/eagle0/shardok/api/command_descriptor.proto"; import "src/main/protobuf/net/eagle0/shardok/api/command_descriptor.proto";
import "src/main/protobuf/net/eagle0/shardok/common/hex_map.proto"; import "src/main/protobuf/net/eagle0/shardok/common/hex_map.proto";
import "src/main/protobuf/net/eagle0/common/game_setup_info.proto";
import "google/protobuf/wrappers.proto"; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "EagleProto";
option objc_class_prefix = "E0G";
service Eagle { service Eagle {
rpc EnterLobby (GamesRequest) returns (stream GamesReply) {} rpc EnterLobby (GamesRequest) returns (stream GamesReply) {}
@@ -4,17 +4,17 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "FactionView";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.api; package net.eagle0.eagle.api;
import "google/protobuf/wrappers.proto"; import "google/protobuf/wrappers.proto";
import "src/main/protobuf/net/eagle0/eagle/common/treaty.proto"; import "src/main/protobuf/net/eagle0/eagle/common/treaty.proto";
import "src/main/protobuf/net/eagle0/eagle/common/treaty_offer.proto"; import "src/main/protobuf/net/eagle0/eagle/common/treaty_offer.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "FactionView";
option objc_class_prefix = "E0G";
message FactionView { message FactionView {
int32 id = 1; int32 id = 1;
int32 faction_head_id = 2; int32 faction_head_id = 2;
@@ -4,11 +4,6 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "GameStateView";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.api; package net.eagle0.eagle.api;
import "google/protobuf/wrappers.proto"; import "google/protobuf/wrappers.proto";
@@ -22,6 +17,11 @@ import "src/main/protobuf/net/eagle0/eagle/common/battalion_type.proto";
import "src/main/protobuf/net/eagle0/eagle/common/date.proto"; import "src/main/protobuf/net/eagle0/eagle/common/date.proto";
import "src/main/protobuf/net/eagle0/eagle/common/round_phase.proto"; import "src/main/protobuf/net/eagle0/eagle/common/round_phase.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "GameStateView";
option objc_class_prefix = "E0G";
message GameStateView { message GameStateView {
int32 current_round_id = 1; int32 current_round_id = 1;
.net.eagle0.eagle.common.RoundPhase current_phase = 2; .net.eagle0.eagle.common.RoundPhase current_phase = 2;
@@ -4,17 +4,17 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.api;
import "google/protobuf/wrappers.proto";
import "src/main/protobuf/net/eagle0/eagle/api/stat_with_condition.proto";
import "src/main/protobuf/net/eagle0/eagle/common/profession.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api"; option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "HeroView"; option java_outer_classname = "HeroView";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.api;
import "google/protobuf/wrappers.proto";
import "src/main/protobuf/net/eagle0/eagle/common/profession.proto";
import "src/main/protobuf/net/eagle0/eagle/api/stat_with_condition.proto";
message HeroView { message HeroView {
int32 id = 1; int32 id = 1;
.google.protobuf.Int32Value faction_id = 2; .google.protobuf.Int32Value faction_id = 2;
@@ -97,4 +97,4 @@ message HeroViewDiff {
.google.protobuf.BoolValue new_start_fire_capable = 26; .google.protobuf.BoolValue new_start_fire_capable = 26;
.google.protobuf.StringValue new_image_path = 27; .google.protobuf.StringValue new_image_path = 27;
} }
@@ -4,13 +4,13 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.api;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api"; option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "UnderAttackInfo"; option java_outer_classname = "UnderAttackInfo";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.api;
message IncomingArmyView { message IncomingArmyView {
int32 faction_id = 1; int32 faction_id = 1;
int32 hero_count = 2; int32 hero_count = 2;
@@ -4,18 +4,13 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "ProvinceView";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.api; package net.eagle0.eagle.api;
import "google/protobuf/wrappers.proto"; import "google/protobuf/wrappers.proto";
import "src/main/protobuf/net/eagle0/eagle/api/army_view.proto"; import "src/main/protobuf/net/eagle0/eagle/api/army_view.proto";
import "src/main/protobuf/net/eagle0/eagle/api/battalion_view.proto"; import "src/main/protobuf/net/eagle0/eagle/api/battalion_view.proto";
import "src/main/protobuf/net/eagle0/eagle/api/stat_with_condition.proto";
import "src/main/protobuf/net/eagle0/eagle/api/incoming_army_view.proto"; import "src/main/protobuf/net/eagle0/eagle/api/incoming_army_view.proto";
import "src/main/protobuf/net/eagle0/eagle/api/stat_with_condition.proto";
import "src/main/protobuf/net/eagle0/eagle/common/date.proto"; import "src/main/protobuf/net/eagle0/eagle/common/date.proto";
import "src/main/protobuf/net/eagle0/eagle/common/profession.proto"; import "src/main/protobuf/net/eagle0/eagle/common/profession.proto";
import "src/main/protobuf/net/eagle0/eagle/common/province_event.proto"; import "src/main/protobuf/net/eagle0/eagle/common/province_event.proto";
@@ -23,6 +18,11 @@ import "src/main/protobuf/net/eagle0/eagle/common/province_order_type.proto";
import "src/main/protobuf/net/eagle0/eagle/common/recruitment_info.proto"; import "src/main/protobuf/net/eagle0/eagle/common/recruitment_info.proto";
import "src/main/protobuf/net/eagle0/eagle/common/unaffiliated_hero.proto"; import "src/main/protobuf/net/eagle0/eagle/common/unaffiliated_hero.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "ProvinceView";
option objc_class_prefix = "E0G";
message ProvinceView { message ProvinceView {
int32 id = 1; int32 id = 1;
string name = 6; string name = 6;
@@ -67,7 +67,7 @@ message FullProvinceInfo {
StatWithCondition support = 13; StatWithCondition support = 13;
bool rulerIsTraveling = 15; bool ruler_is_traveling = 15;
int32 food_consumption = 16; int32 food_consumption = 16;
@@ -146,4 +146,4 @@ message FullProvinceInfoDiff {
repeated UnaffiliatedHeroBasics added_unaffiliated_heroes = 34; repeated UnaffiliatedHeroBasics added_unaffiliated_heroes = 34;
repeated int32 removed_unaffiliated_hero_ids = 35; repeated int32 removed_unaffiliated_hero_ids = 35;
} }
@@ -4,11 +4,6 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "AvailableCommand";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.api; package net.eagle0.eagle.api;
import "google/protobuf/wrappers.proto"; import "google/protobuf/wrappers.proto";
@@ -24,204 +19,209 @@ import "src/main/protobuf/net/eagle0/eagle/common/combat_unit.proto";
import "src/main/protobuf/net/eagle0/eagle/common/diplomacy_offer_status.proto"; import "src/main/protobuf/net/eagle0/eagle/common/diplomacy_offer_status.proto";
import "src/main/protobuf/net/eagle0/eagle/common/tribute_amount.proto"; import "src/main/protobuf/net/eagle0/eagle/common/tribute_amount.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "AvailableCommand";
option objc_class_prefix = "E0G";
message SelectedCommand { message SelectedCommand {
// These values must be kept in sync with the corresponding values in available_command.proto // These values must be kept in sync with the corresponding values in available_command.proto
oneof sealed_value { oneof sealed_value {
AlmsSelectedCommand alms_command = 1; AlmsSelectedCommand alms_command = 1;
ApprehendOutlawSelectedCommand apprehend_outlaw_selected_command = 2; ApprehendOutlawSelectedCommand apprehend_outlaw_selected_command = 2;
ArmTroopsSelectedCommand arm_troops_command = 3; ArmTroopsSelectedCommand arm_troops_command = 3;
AttackDecisionSelectedCommand attack_decision_command = 4; AttackDecisionSelectedCommand attack_decision_command = 4;
ControlWeatherSelectedCommand control_weather_selected_command = 5; ControlWeatherSelectedCommand control_weather_selected_command = 5;
DefendSelectedCommand defend_command = 6; DefendSelectedCommand defend_command = 6;
DiplomacySelectedCommand diplomacy_command = 7; DiplomacySelectedCommand diplomacy_command = 7;
DivineSelectedCommand divine_command = 8; DivineSelectedCommand divine_command = 8;
ExileVassalSelectedCommand exile_vassal_command = 9; ExileVassalSelectedCommand exile_vassal_command = 9;
FeastSelectedCommand feast_command = 10; FeastSelectedCommand feast_command = 10;
FreeForAllDecisionSelectedCommand free_for_all_decision_command = 11; FreeForAllDecisionSelectedCommand free_for_all_decision_command = 11;
HandleCapturedHeroSelectedCommand handle_captured_hero_command = 12; HandleCapturedHeroSelectedCommand handle_captured_hero_command = 12;
HandleRiotCrackDownSelectedCommand handle_riot_crack_down_selected_command = 13; HandleRiotCrackDownSelectedCommand handle_riot_crack_down_selected_command = 13;
HandleRiotDoNothingSelectedCommand handle_riot_do_nothing_selected_command = 14; HandleRiotDoNothingSelectedCommand handle_riot_do_nothing_selected_command = 14;
HandleRiotGiveSelectedCommand handle_riot_give_selected_command = 15; HandleRiotGiveSelectedCommand handle_riot_give_selected_command = 15;
HeroGiftSelectedCommand hero_gift_command = 16; HeroGiftSelectedCommand hero_gift_command = 16;
ImproveSelectedCommand improve_command = 17; ImproveSelectedCommand improve_command = 17;
IssueOrdersSelectedCommand issue_orders_command = 18; IssueOrdersSelectedCommand issue_orders_command = 18;
JailbreakSelectedCommand jailbreak_command = 19; JailbreakSelectedCommand jailbreak_command = 19;
MarchSelectedCommand march_command = 20; MarchSelectedCommand march_command = 20;
OrganizeTroopsSelectedCommand organize_troops_command = 21; OrganizeTroopsSelectedCommand organize_troops_command = 21;
PleaseRecruitMeSelectedCommand please_recruit_me_command = 22; PleaseRecruitMeSelectedCommand please_recruit_me_command = 22;
ReconSelectedCommand recon_selected_command = 23; ReconSelectedCommand recon_selected_command = 23;
RecruitHeroesSelectedCommand recruit_heroes_command = 24; RecruitHeroesSelectedCommand recruit_heroes_command = 24;
ResolveInvitationSelectedCommand resolve_invitation_command = 25; ResolveInvitationSelectedCommand resolve_invitation_command = 25;
ResolveTreatyOfferSelectedCommand resolve_treaty_offer_command = 26; ResolveTreatyOfferSelectedCommand resolve_treaty_offer_command = 26;
ResolveTributeSelectedCommand resolve_tribute_command = 27; ResolveTributeSelectedCommand resolve_tribute_command = 27;
RestSelectedCommand rest_selected_command = 28; RestSelectedCommand rest_selected_command = 28;
ReturnSelectedCommand return_selected_command = 29; ReturnSelectedCommand return_selected_command = 29;
SendSuppliesSelectedCommand send_supplies_command = 30; SendSuppliesSelectedCommand send_supplies_command = 30;
StartEpidemicSelectedCommand start_epidemic_selected_command = 31; StartEpidemicSelectedCommand start_epidemic_selected_command = 31;
SuppressBrigandsSelectedCommand suppress_brigands_command = 32; SuppressBrigandsSelectedCommand suppress_brigands_command = 32;
SwearBrotherhoodSelectedCommand swear_brotherhood_command = 33; SwearBrotherhoodSelectedCommand swear_brotherhood_command = 33;
TradeSelectedCommand trade_command = 34; TradeSelectedCommand trade_command = 34;
TrainSelectedCommand train_command = 35; TrainSelectedCommand train_command = 35;
TravelSelectedCommand travel_command = 36; TravelSelectedCommand travel_command = 36;
} }
} }
message AlmsSelectedCommand { message AlmsSelectedCommand {
int32 amount = 1; int32 amount = 1;
int32 acting_hero_id = 2; int32 acting_hero_id = 2;
} }
message ApprehendOutlawSelectedCommand { message ApprehendOutlawSelectedCommand {
int32 hero_id_to_apprehend = 1; int32 hero_id_to_apprehend = 1;
.google.protobuf.Int32Value battalion_id = 2; .google.protobuf.Int32Value battalion_id = 2;
int32 acting_hero_id = 3; int32 acting_hero_id = 3;
} }
message ArmTroopsSelectedCommand { message ArmTroopsSelectedCommand {
repeated .net.eagle0.eagle.api.command.util.ArmedBattalion armed_battalions = 1; repeated .net.eagle0.eagle.api.command.util.ArmedBattalion armed_battalions = 1;
} }
message AttackDecisionSelectedCommand { message AttackDecisionSelectedCommand {
.net.eagle0.eagle.api.command.util.AttackDecisionType decision = 1; .net.eagle0.eagle.api.command.util.AttackDecisionType decision = 1;
.net.eagle0.eagle.common.TributeAmount tribute = 2; .net.eagle0.eagle.common.TributeAmount tribute = 2;
} }
message ControlWeatherSelectedCommand { message ControlWeatherSelectedCommand {
.net.eagle0.eagle.api.command.util.ControlWeatherType selected_type = 1; .net.eagle0.eagle.api.command.util.ControlWeatherType selected_type = 1;
int32 selected_province_id = 2; int32 selected_province_id = 2;
int32 acting_hero_id = 3; int32 acting_hero_id = 3;
} }
message DefendSelectedCommand { message DefendSelectedCommand {
int32 flee_province_id = 1; int32 flee_province_id = 1;
repeated .net.eagle0.eagle.common.CombatUnit defending_units = 2; repeated .net.eagle0.eagle.common.CombatUnit defending_units = 2;
} }
message DiplomacySelectedCommand { message DiplomacySelectedCommand {
.net.eagle0.eagle.api.command.util.DiplomacyOptionType type = 1; .net.eagle0.eagle.api.command.util.DiplomacyOptionType type = 1;
int32 target_faction_id = 2; int32 target_faction_id = 2;
int32 sent_hero_id = 3; int32 sent_hero_id = 3;
} }
message DivineSelectedCommand { message DivineSelectedCommand {
repeated int32 hero_ids = 1; repeated int32 hero_ids = 1;
} }
message ExileVassalSelectedCommand { message ExileVassalSelectedCommand {
int32 exiled_hero_id = 1; int32 exiled_hero_id = 1;
} }
message FeastSelectedCommand { message FeastSelectedCommand {
} }
message FreeForAllDecisionSelectedCommand { message FreeForAllDecisionSelectedCommand {
int32 province_id = 1; int32 province_id = 1;
.net.eagle0.eagle.api.command.util.AttackDecisionType decision = 2; .net.eagle0.eagle.api.command.util.AttackDecisionType decision = 2;
} }
message HandleCapturedHeroSelectedCommand { message HandleCapturedHeroSelectedCommand {
int32 hero_id = 1; int32 hero_id = 1;
.net.eagle0.eagle.api.command.util.CapturedHeroOption selected_option = 2; .net.eagle0.eagle.api.command.util.CapturedHeroOption selected_option = 2;
} }
message HandleRiotCrackDownSelectedCommand { message HandleRiotCrackDownSelectedCommand {
int32 hero_id = 1; int32 hero_id = 1;
.google.protobuf.Int32Value battalion_id = 2; .google.protobuf.Int32Value battalion_id = 2;
int32 acting_hero_id = 3; int32 acting_hero_id = 3;
} }
message HandleRiotDoNothingSelectedCommand { message HandleRiotDoNothingSelectedCommand {
} }
message HandleRiotGiveSelectedCommand { message HandleRiotGiveSelectedCommand {
int32 food_amount = 1; int32 food_amount = 1;
int32 gold_amount = 2; int32 gold_amount = 2;
} }
message HeroGiftSelectedCommand { message HeroGiftSelectedCommand {
int32 recipient_hero_id = 1; int32 recipient_hero_id = 1;
int32 amount = 2; int32 amount = 2;
} }
message ImproveSelectedCommand { message ImproveSelectedCommand {
.net.eagle0.eagle.api.command.util.ImprovementType improvement_type = 1; .net.eagle0.eagle.api.command.util.ImprovementType improvement_type = 1;
int32 acting_hero_id = 2; int32 acting_hero_id = 2;
} }
message JailbreakSelectedCommand { message JailbreakSelectedCommand {
int32 gold = 1; int32 gold = 1;
repeated int32 hero_ids = 2; repeated int32 hero_ids = 2;
int32 destination_province_id = 3; int32 destination_province_id = 3;
} }
message MarchSelectedCommand { message MarchSelectedCommand {
int32 gold = 1; int32 gold = 1;
int32 food = 2; int32 food = 2;
int32 origin_province = 3; int32 origin_province = 3;
int32 destination_province_id = 4; int32 destination_province_id = 4;
repeated .net.eagle0.eagle.common.CombatUnit marching_units = 5; repeated .net.eagle0.eagle.common.CombatUnit marching_units = 5;
} }
message IssueOrdersSelectedCommand { message IssueOrdersSelectedCommand {
repeated .net.eagle0.eagle.api.command.util.ProvinceOrders new_orders = 1; repeated .net.eagle0.eagle.api.command.util.ProvinceOrders new_orders = 1;
// Clears the focus province if not set // Clears the focus province if not set
.google.protobuf.Int32Value new_focus_province = 2; .google.protobuf.Int32Value new_focus_province = 2;
} }
message OrganizeTroopsSelectedCommand { message OrganizeTroopsSelectedCommand {
message TroopsFromOtherBattalion { message TroopsFromOtherBattalion {
int32 from_battalion_id = 1; int32 from_battalion_id = 1;
int32 count_moved = 2; int32 count_moved = 2;
} }
message ChangedBattalion { message ChangedBattalion {
int32 id = 1; int32 id = 1;
repeated TroopsFromOtherBattalion troops_from_other_battalion = 2; repeated TroopsFromOtherBattalion troops_from_other_battalion = 2;
int32 new_troops = 3; int32 new_troops = 3;
int32 dismissed_troops = 4; int32 dismissed_troops = 4;
} }
message NewBattalion { message NewBattalion {
.net.eagle0.eagle.common.BattalionTypeId type = 1; .net.eagle0.eagle.common.BattalionTypeId type = 1;
repeated TroopsFromOtherBattalion troops_from_other_battalion = 2; repeated TroopsFromOtherBattalion troops_from_other_battalion = 2;
int32 new_troops = 3; int32 new_troops = 3;
} }
repeated ChangedBattalion changed_battalions = 1; repeated ChangedBattalion changed_battalions = 1;
repeated NewBattalion new_battalions = 2; repeated NewBattalion new_battalions = 2;
} }
message PleaseRecruitMeSelectedCommand { message PleaseRecruitMeSelectedCommand {
int32 province_id = 1; int32 province_id = 1;
int32 hero_id = 2; int32 hero_id = 2;
bool accept = 3; bool accept = 3;
} }
message ReconSelectedCommand { message ReconSelectedCommand {
int32 acting_hero_id = 1; int32 acting_hero_id = 1;
int32 target_province_id = 2; int32 target_province_id = 2;
} }
message RecruitHeroesSelectedCommand { message RecruitHeroesSelectedCommand {
repeated int32 hero_ids = 1; repeated int32 hero_ids = 1;
} }
message ResolveInvitationSelectedCommand { message ResolveInvitationSelectedCommand {
int32 originating_faction_id = 1; int32 originating_faction_id = 1;
net.eagle0.eagle.common.DiplomacyOfferStatus resolution = 2; net.eagle0.eagle.common.DiplomacyOfferStatus resolution = 2;
} }
message ResolveTreatyOfferSelectedCommand { message ResolveTreatyOfferSelectedCommand {
int32 originating_faction_id = 1; int32 originating_faction_id = 1;
net.eagle0.eagle.common.DiplomacyOfferStatus resolution = 2; net.eagle0.eagle.common.DiplomacyOfferStatus resolution = 2;
} }
message ResolveTributeSelectedCommand { message ResolveTributeSelectedCommand {
int32 demanding_faction_id = 1; int32 demanding_faction_id = 1;
bool paid = 2; bool paid = 2;
} }
message RestSelectedCommand { message RestSelectedCommand {
@@ -231,39 +231,39 @@ message ReturnSelectedCommand {
} }
message SendSuppliesSelectedCommand { message SendSuppliesSelectedCommand {
int32 gold = 1; int32 gold = 1;
int32 food = 2; int32 food = 2;
int32 acting_hero_id = 3; int32 acting_hero_id = 3;
int32 destination_province_id = 4; int32 destination_province_id = 4;
} }
message StartEpidemicSelectedCommand { message StartEpidemicSelectedCommand {
int32 selected_province_id = 1; int32 selected_province_id = 1;
int32 acting_hero_id = 2; int32 acting_hero_id = 2;
} }
message SuppressBrigandsSelectedCommand { message SuppressBrigandsSelectedCommand {
int32 hero_id = 1; int32 hero_id = 1;
.google.protobuf.Int32Value battalion_id = 2; .google.protobuf.Int32Value battalion_id = 2;
} }
message SwearBrotherhoodSelectedCommand { message SwearBrotherhoodSelectedCommand {
int32 new_brother_hero_id = 1; int32 new_brother_hero_id = 1;
} }
message TradeSelectedCommand { message TradeSelectedCommand {
enum TradeType { enum TradeType {
UNKNOWN = 0; UNKNOWN = 0;
BUY_FOOD = 1; BUY_FOOD = 1;
SELL_FOOD = 2; SELL_FOOD = 2;
} }
TradeType trade_type = 1; TradeType trade_type = 1;
int32 amount = 2; int32 amount = 2;
} }
message TrainSelectedCommand { message TrainSelectedCommand {
int32 acting_hero_id = 1; int32 acting_hero_id = 1;
} }
message TravelSelectedCommand {} message TravelSelectedCommand {}
@@ -4,16 +4,16 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "ShardokBattleView";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.api; package net.eagle0.eagle.api;
import "google/protobuf/wrappers.proto"; import "google/protobuf/wrappers.proto";
import "src/main/protobuf/net/eagle0/common/hostility.proto"; import "src/main/protobuf/net/eagle0/common/hostility.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "ShardokBattleView";
option objc_class_prefix = "E0G";
message ShardokBattlePlayerInfo { message ShardokBattlePlayerInfo {
int32 player_id = 1; int32 player_id = 1;
int32 eagle_faction_id = 2; int32 eagle_faction_id = 2;
@@ -4,13 +4,13 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.api;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.api"; option java_package = "net.eagle0.eagle.api";
option java_outer_classname = "EagleProto"; option java_outer_classname = "EagleProto";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.api;
message StatWithCondition { message StatWithCondition {
int32 stat = 1; int32 stat = 1;
@@ -15,145 +15,145 @@ option java_outer_classname = "ActionResultNotificationDetails";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
message HeroBasics { message HeroBasics {
int32 id = 1; int32 id = 1;
string name = 2; string name = 2;
} }
message JailbreakDetails { message JailbreakDetails {
repeated HeroBasics freed_heroes = 1; repeated HeroBasics freed_heroes = 1;
repeated HeroBasics captured_heroes = 2; repeated HeroBasics captured_heroes = 2;
repeated HeroBasics remaining_prisoners = 3; repeated HeroBasics remaining_prisoners = 3;
} }
message BattleDetails { message BattleDetails {
int32 defending_faction_id = 1; int32 defending_faction_id = 1;
int32 attacking_faction_id = 2; int32 attacking_faction_id = 2;
bool attacker_victory = 3; bool attacker_victory = 3;
} }
message WithdrewForTreatyDetails { message WithdrewForTreatyDetails {
int32 withdrawing_faction_id = 1; int32 withdrawing_faction_id = 1;
int32 withdrew_from_faction_id = 2; int32 withdrew_from_faction_id = 2;
int32 withdrew_from_province_id = 3; int32 withdrew_from_province_id = 3;
int32 withdrew_to_province_id = 4; int32 withdrew_to_province_id = 4;
} }
message InvitationDetails { message InvitationDetails {
int32 offering_faction_id = 1; int32 offering_faction_id = 1;
int32 invited_faction_id = 2; int32 invited_faction_id = 2;
bool accepted = 3; bool accepted = 3;
} }
message QuestFulfilledDetails { message QuestFulfilledDetails {
int32 hero_id = 1; int32 hero_id = 1;
Quest fulfilled_quest = 2; Quest fulfilled_quest = 2;
} }
message QuestFailedDetails { message QuestFailedDetails {
int32 hero_id = 1; int32 hero_id = 1;
Quest failed_quest = 2; Quest failed_quest = 2;
} }
message ShatteredArmyDetails { message ShatteredArmyDetails {
int32 faction_id = 1; int32 faction_id = 1;
int32 province_id = 2; int32 province_id = 2;
enum Reason { enum Reason {
SHATTERED_ARMY_REASON_UNKNOWN_UNSPECIFIED = 0; SHATTERED_ARMY_REASON_UNKNOWN_UNSPECIFIED = 0;
SHATTERED_ARMY_REASON_BLIZZARD = 1; SHATTERED_ARMY_REASON_BLIZZARD = 1;
SHATTERED_ARMY_REASON_WITHDRAW = 2; SHATTERED_ARMY_REASON_WITHDRAW = 2;
} }
Reason reason = 3; Reason reason = 3;
} }
message VassalExiledDetails { message VassalExiledDetails {
int32 faction_id = 1; int32 faction_id = 1;
int32 province_id = 2; int32 province_id = 2;
int32 exiled_hero_id = 3; int32 exiled_hero_id = 3;
} }
message OutlawApprehendedDetails { message OutlawApprehendedDetails {
int32 faction_id = 1; int32 faction_id = 1;
int32 province_id = 2; int32 province_id = 2;
int32 apprehended_hero_id = 3; int32 apprehended_hero_id = 3;
} }
message OutlawSpottedDetails { message OutlawSpottedDetails {
int32 outlaw_hero_id = 1; int32 outlaw_hero_id = 1;
int32 province_id = 2; int32 province_id = 2;
} }
message CapturedHeroExiledDetails { message CapturedHeroExiledDetails {
int32 captured_from_faction_id = 1; int32 captured_from_faction_id = 1;
int32 province_id = 2; int32 province_id = 2;
int32 exiled_hero_id = 3; int32 exiled_hero_id = 3;
int32 exiling_faction_id = 4; int32 exiling_faction_id = 4;
} }
message CapturedHeroExecutedDetails { message CapturedHeroExecutedDetails {
int32 captured_from_faction_id = 1; int32 captured_from_faction_id = 1;
int32 province_id = 2; int32 province_id = 2;
int32 executed_hero_id = 3; int32 executed_hero_id = 3;
int32 executing_faction_id = 4; int32 executing_faction_id = 4;
} }
message CapturedHeroImprisonedDetails { message CapturedHeroImprisonedDetails {
int32 captured_from_faction_id = 1; int32 captured_from_faction_id = 1;
int32 province_id = 2; int32 province_id = 2;
int32 imprisoned_hero_id = 3; int32 imprisoned_hero_id = 3;
int32 imprisoning_faction_id = 4; int32 imprisoning_faction_id = 4;
} }
message CapturedHeroReturnedDetails { message CapturedHeroReturnedDetails {
int32 captured_from_faction_id = 1; int32 captured_from_faction_id = 1;
int32 province_id = 2; int32 province_id = 2;
int32 returned_hero_id = 3; int32 returned_hero_id = 3;
int32 returning_faction_id = 4; int32 returning_faction_id = 4;
} }
message SwearBrotherhoodDetails { message SwearBrotherhoodDetails {
int32 faction_id = 1; int32 faction_id = 1;
int32 new_brother_hero_id = 2; int32 new_brother_hero_id = 2;
} }
message SuppressBeastsDetails { message SuppressBeastsDetails {
int32 hero_id = 1; int32 hero_id = 1;
int32 province_id = 2; int32 province_id = 2;
BeastType beast_type = 3; BeastType beast_type = 3;
} }
message ProvinceHeldDetails { message ProvinceHeldDetails {
int32 province_id = 1; int32 province_id = 1;
repeated int32 attacking_faction_ids = 2; repeated int32 attacking_faction_ids = 2;
int32 defending_faction_id = 3; int32 defending_faction_id = 3;
} }
message PrisonerExchangeDetails { message PrisonerExchangeDetails {
int32 hero1_id = 1; int32 hero1_id = 1;
int32 hero1_faction_id = 2; int32 hero1_faction_id = 2;
int32 hero2_id = 3; int32 hero2_id = 3;
int32 hero2_faction_id = 4; int32 hero2_faction_id = 4;
} }
message NotificationDetails { message NotificationDetails {
oneof sealed_value { oneof sealed_value {
JailbreakDetails jailbreak = 1; JailbreakDetails jailbreak = 1;
BattleDetails battle = 2; BattleDetails battle = 2;
WithdrewForTreatyDetails withdrew_for_treaty = 3; WithdrewForTreatyDetails withdrew_for_treaty = 3;
InvitationDetails invitation = 4; InvitationDetails invitation = 4;
QuestFulfilledDetails quest_fulfilled = 5; QuestFulfilledDetails quest_fulfilled = 5;
QuestFailedDetails quest_failed = 6; QuestFailedDetails quest_failed = 6;
ShatteredArmyDetails shattered_army_details = 7; ShatteredArmyDetails shattered_army_details = 7;
VassalExiledDetails vassal_exiled_details = 8; VassalExiledDetails vassal_exiled_details = 8;
OutlawApprehendedDetails outlaw_apprehended_details = 9; OutlawApprehendedDetails outlaw_apprehended_details = 9;
OutlawSpottedDetails outlaw_spotted_details = 10; OutlawSpottedDetails outlaw_spotted_details = 10;
CapturedHeroExiledDetails captured_hero_exiled_details = 11; CapturedHeroExiledDetails captured_hero_exiled_details = 11;
CapturedHeroExecutedDetails captured_hero_executed_details = 12; CapturedHeroExecutedDetails captured_hero_executed_details = 12;
CapturedHeroImprisonedDetails captured_hero_imprisoned_details = 16; CapturedHeroImprisonedDetails captured_hero_imprisoned_details = 16;
CapturedHeroReturnedDetails captured_hero_returned_details = 18; CapturedHeroReturnedDetails captured_hero_returned_details = 18;
SwearBrotherhoodDetails swear_brotherhood_details = 13; SwearBrotherhoodDetails swear_brotherhood_details = 13;
SuppressBeastsDetails suppress_beasts_details = 14; SuppressBeastsDetails suppress_beasts_details = 14;
ProvinceHeldDetails province_held_details = 15; ProvinceHeldDetails province_held_details = 15;
PrisonerExchangeDetails prisoner_exchange_details = 17; PrisonerExchangeDetails prisoner_exchange_details = 17;
} }
} }
@@ -12,126 +12,126 @@ option java_outer_classname = "ActionResultType";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
enum ActionResultType { enum ActionResultType {
UNKNOWN_ACTION_UNSPECIFIED = 0; UNKNOWN_ACTION_UNSPECIFIED = 0;
END_PRISONER_EXCHANGE_PHASE = 113; END_PRISONER_EXCHANGE_PHASE = 113;
END_PROVINCE_EVENTS_PHASE = 1; END_PROVINCE_EVENTS_PHASE = 1;
END_UNAFFILIATED_HERO_ACTIONS_PHASE = 2; END_UNAFFILIATED_HERO_ACTIONS_PHASE = 2;
END_VASSAL_COMMANDS_PHASE = 3; END_VASSAL_COMMANDS_PHASE = 3;
END_PLAYER_COMMANDS_PHASE = 4; END_PLAYER_COMMANDS_PHASE = 4;
END_BATTLE_REQUEST_PHASE = 32; END_BATTLE_REQUEST_PHASE = 32;
END_BATTLE_COMMENCEMENT_PHASE = 26; END_BATTLE_COMMENCEMENT_PHASE = 26;
END_RESOLUTION_PHASE = 5; END_RESOLUTION_PHASE = 5;
END_AFTERMATH_PHASE = 44; END_AFTERMATH_PHASE = 44;
MARCH_ACTION = 6; MARCH_ACTION = 6;
START_BATTLE = 7; START_BATTLE = 7;
DEFEND = 8; DEFEND = 8;
FLEE = 9; FLEE = 9;
GAME_START = 10; GAME_START = 10;
REST = 11; REST = 11;
TRAIN = 12; TRAIN = 12;
BATTLE_ENDED = 13; BATTLE_ENDED = 13;
ORGANIZE_TROOPS = 14; ORGANIZE_TROOPS = 14;
NEW_ROUND_ACTION = 15; NEW_ROUND_ACTION = 15;
NEW_YEAR_ACTION = 16; NEW_YEAR_ACTION = 16;
IMPROVE = 17; IMPROVE = 17;
TRAVEL = 18; TRAVEL = 18;
RETURN = 19; RETURN = 19;
ARM_TROOPS = 20; ARM_TROOPS = 20;
RECRUIT_HEROES = 21; RECRUIT_HEROES = 21;
TRADE = 22; TRADE = 22;
HERO_APPEARS = 23; HERO_APPEARS = 23;
HERO_MOVED = 24; HERO_MOVED = 24;
PROVINCE_CONQUERED = 25; PROVINCE_CONQUERED = 25;
PROVINCE_HELD = 27; PROVINCE_HELD = 27;
FRIENDLY_MOVE = 28; FRIENDLY_MOVE = 28;
HERO_CHANGED = 29; HERO_CHANGED = 29;
PRISONER_ESCAPED = 30; PRISONER_ESCAPED = 30;
REQUEST_BATTLE = 31; REQUEST_BATTLE = 31;
ASSIGN_LEADERS = 33; ASSIGN_LEADERS = 33;
ORDERS_ISSUED = 34; ORDERS_ISSUED = 34;
SENT_SUPPLIES = 35; SENT_SUPPLIES = 35;
GIFTED_HERO = 36; GIFTED_HERO = 36;
HEROES_DEPARTED = 37; HEROES_DEPARTED = 37;
FEAST = 38; FEAST = 38;
SWEAR_BROTHERHOOD = 39; SWEAR_BROTHERHOOD = 39;
FAILED_SWEAR_BROTHERHOOD = 40; FAILED_SWEAR_BROTHERHOOD = 40;
END_HERO_DEPARTURE_PHASE = 41; END_HERO_DEPARTURE_PHASE = 41;
SHIPMENT_ARRIVED = 42; SHIPMENT_ARRIVED = 42;
GIFTED_PROVINCE = 43; GIFTED_PROVINCE = 43;
CAPTURED_HERO_EXILED = 45; CAPTURED_HERO_EXILED = 45;
CAPTURED_HERO_EXECUTED = 46; CAPTURED_HERO_EXECUTED = 46;
CAPTURED_HERO_IMPRISONED = 47; CAPTURED_HERO_IMPRISONED = 47;
FACTION_DESTROYED = 48; FACTION_DESTROYED = 48;
FACTION_LEADER_REMOVED = 49; FACTION_LEADER_REMOVED = 49;
GAME_ENDED = 50; GAME_ENDED = 50;
END_DEFENSE_DECISION_PHASE = 51; END_DEFENSE_DECISION_PHASE = 51;
HERO_REJOINED = 52; HERO_REJOINED = 52;
FOOD_CONSUMED = 53; FOOD_CONSUMED = 53;
SUPPRESSED_BRIGANDS = 54; SUPPRESSED_BRIGANDS = 54;
PROVINCE_EVENTS_CHANGED = 55; PROVINCE_EVENTS_CHANGED = 55;
SUPPRESS_BRIGANDS_FAILED = 56; SUPPRESS_BRIGANDS_FAILED = 56;
NEW_QUESTS = 57; NEW_QUESTS = 57;
QUEST_FULFILLED = 58; QUEST_FULFILLED = 58;
DIVINED = 59; DIVINED = 59;
TREATY_OFFERED = 60; TREATY_OFFERED = 60;
END_DIPLOMACY_RESOLUTION_PHASE = 61; END_DIPLOMACY_RESOLUTION_PHASE = 61;
TREATY_ACCEPTED = 62; TREATY_ACCEPTED = 62;
TREATY_REJECTED = 63; TREATY_REJECTED = 63;
WITHDRAWAL_FOR_TREATY = 64; WITHDRAWAL_FOR_TREATY = 64;
END_RECON_RESOLUTION_PHASE = 65; END_RECON_RESOLUTION_PHASE = 65;
RECON_STARTED = 66; RECON_STARTED = 66;
RECON_SUCCEEDED = 67; RECON_SUCCEEDED = 67;
JAILBREAK_STARTED = 68; JAILBREAK_STARTED = 68;
JAILBREAK_EXECUTED = 69; JAILBREAK_EXECUTED = 69;
END_JAILBREAK_RESOLUTION_PHASE = 70; END_JAILBREAK_RESOLUTION_PHASE = 70;
END_PLEASE_RECRUIT_ME_PHASE = 71; END_PLEASE_RECRUIT_ME_PHASE = 71;
RESOLVE_PLEASE_RECRUIT_ME = 72; RESOLVE_PLEASE_RECRUIT_ME = 72;
TRIBUTE_PAID = 73; TRIBUTE_PAID = 73;
TRIBUTE_REFUSED = 74; TRIBUTE_REFUSED = 74;
END_ATTACK_DECISION_PHASE = 75; END_ATTACK_DECISION_PHASE = 75;
TRIBUTE_DEMANDED = 76; TRIBUTE_DEMANDED = 76;
ARMY_WITHDREW = 77; ARMY_WITHDREW = 77;
ARMY_ADVANCED = 78; ARMY_ADVANCED = 78;
END_FREE_FOR_ALL_DECISION_PHASE = 79; END_FREE_FOR_ALL_DECISION_PHASE = 79;
END_FREE_FOR_ALL_BATTLE_REQUEST_PHASE = 80; END_FREE_FOR_ALL_BATTLE_REQUEST_PHASE = 80;
END_FREE_FOR_ALL_BATTLE_RESOLUTION_PHASE = 81; END_FREE_FOR_ALL_BATTLE_RESOLUTION_PHASE = 81;
END_SALLY_DECISION_PHASE = 82; END_SALLY_DECISION_PHASE = 82;
END_SALLY_BATTLE_REQUEST_PHASE = 83; END_SALLY_BATTLE_REQUEST_PHASE = 83;
END_SALLY_BATTLE_RESOLUTION_PHASE = 84; END_SALLY_BATTLE_RESOLUTION_PHASE = 84;
ARMY_ADVANCED_TO_FREE_FOR_ALL = 85; ARMY_ADVANCED_TO_FREE_FOR_ALL = 85;
ARMY_WITHDREW_FROM_FREE_FOR_ALL = 86; ARMY_WITHDREW_FROM_FREE_FOR_ALL = 86;
WITHDRAWN_ARMY_RETURNS = 87; WITHDRAWN_ARMY_RETURNS = 87;
WON_FREE_FOR_ALL = 88; WON_FREE_FOR_ALL = 88;
FREE_FOR_ALL_DRAW = 89; FREE_FOR_ALL_DRAW = 89;
END_UNCONTESTED_CONQUEST_PHASE = 90; END_UNCONTESTED_CONQUEST_PHASE = 90;
INVITATION_ACCEPTED = 91; INVITATION_ACCEPTED = 91;
INVITATION_REJECTED = 92; INVITATION_REJECTED = 92;
FACTION_INVITED = 93; FACTION_INVITED = 93;
QUEST_FAILED = 94; QUEST_FAILED = 94;
ARMY_SHATTERED = 95; ARMY_SHATTERED = 95;
AMBASSADOR_IMPRISONED = 96; AMBASSADOR_IMPRISONED = 96;
VASSAL_EXILED = 97; VASSAL_EXILED = 97;
OUTLAW_APPREHENDED = 98; OUTLAW_APPREHENDED = 98;
RIOT_AVERTED = 99; RIOT_AVERTED = 99;
RIOT_OCCURRED = 100; RIOT_OCCURRED = 100;
END_HANDLE_RIOTS_PHASE = 101; END_HANDLE_RIOTS_PHASE = 101;
RIOT_SUPPRESSED = 102; RIOT_SUPPRESSED = 102;
END_FORCED_TURN_BACK_PHASE = 103; END_FORCED_TURN_BACK_PHASE = 103;
WEATHER_FORCED_TURN_BACK = 104; WEATHER_FORCED_TURN_BACK = 104;
WEATHER_FORCED_SUPPLIES_BACK = 105; WEATHER_FORCED_SUPPLIES_BACK = 105;
WEATHER_FORCED_SUPPLIES_LOST = 106; WEATHER_FORCED_SUPPLIES_LOST = 106;
FESTIVAL_ENDED = 108; FESTIVAL_ENDED = 108;
WEATHER_ALTERED = 109; WEATHER_ALTERED = 109;
WEATHER_TOOK_EFFECT = 110; WEATHER_TOOK_EFFECT = 110;
EPIDEMIC_STARTED = 111; EPIDEMIC_STARTED = 111;
EPIDEMIC_TOOK_EFFECT = 112; EPIDEMIC_TOOK_EFFECT = 112;
PRISONERS_EXCHANGED = 114; PRISONERS_EXCHANGED = 114;
OFFER_INVALIDATED = 115; OFFER_INVALIDATED = 115;
OFFER_RESOLVED = 116; OFFER_RESOLVED = 116;
INVITATION_RESOLVED = 117; INVITATION_RESOLVED = 117;
RIOT_AVERSION_FAILED = 118; RIOT_AVERSION_FAILED = 118;
END_TREATY_TURN_BACK_PHASE = 119; END_TREATY_TURN_BACK_PHASE = 119;
SET_UP_HOSTILE_ARMIES = 120; SET_UP_HOSTILE_ARMIES = 120;
QUEST_INVALIDATED = 121; QUEST_INVALIDATED = 121;
CAPTURED_HERO_RETURNED = 122; CAPTURED_HERO_RETURNED = 122;
} }
@@ -4,13 +4,13 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.common;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common"; option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "BattalionType"; option java_outer_classname = "BattalionType";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.common;
enum BattalionTypeId { enum BattalionTypeId {
LIGHT_INFANTRY = 0; LIGHT_INFANTRY = 0;
HEAVY_INFANTRY = 1; HEAVY_INFANTRY = 1;
@@ -4,36 +4,36 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.common;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common"; option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "BeastType"; option java_outer_classname = "BeastType";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.common;
enum BeastType { enum BeastType {
UNKNOWN = 0; UNKNOWN = 0;
BRIGANDS = 1; BRIGANDS = 1;
RACOONS = 2; RACOONS = 2;
WOLVES = 3; WOLVES = 3;
CHIMPANZEES = 4; CHIMPANZEES = 4;
TIGERS = 5; TIGERS = 5;
LIONS = 6; LIONS = 6;
BEARS = 7; BEARS = 7;
HIPPOPATAMUSES = 8; HIPPOPATAMUSES = 8;
CROCODILES = 9; CROCODILES = 9;
HIPPOGRYPHS = 10; HIPPOGRYPHS = 10;
DRAGONS = 11; DRAGONS = 11;
ASSHOLES = 12; ASSHOLES = 12;
BANDITS = 13; BANDITS = 13;
HIGHWAYMEN = 14; HIGHWAYMEN = 14;
DACOITS = 15; DACOITS = 15;
DESPERADOES = 16; DESPERADOES = 16;
RUFFIANS = 17; RUFFIANS = 17;
PIRATES = 18; PIRATES = 18;
MARAUDERS = 19; MARAUDERS = 19;
FREEBOOTERS = 20; FREEBOOTERS = 20;
SPIDERS = 21; SPIDERS = 21;
NEER_DO_WELLS = 22; NEER_DO_WELLS = 22;
SCALAWAGS = 23; SCALAWAGS = 23;
} }
@@ -4,15 +4,15 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.common;
import "google/protobuf/wrappers.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common"; option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "Unit"; option java_outer_classname = "Unit";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.common;
import "google/protobuf/wrappers.proto";
message CombatUnit { message CombatUnit {
int32 faction_id = 1; int32 faction_id = 1;
int32 hero_id = 2; int32 hero_id = 2;
@@ -4,15 +4,15 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.common;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common"; option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "Date"; option java_outer_classname = "Date";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.common;
message Date { message Date {
// Month is just an int value from 1-12. Clients can interpret with the appropriate month name. // Month is just an int value from 1-12. Clients can interpret with the appropriate month name.
int32 month = 1; int32 month = 1;
int32 year = 2; int32 year = 2;
} }
@@ -4,17 +4,17 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.common;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common"; option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "DiplomacyOfferStatus"; option java_outer_classname = "DiplomacyOfferStatus";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.common;
enum DiplomacyOfferStatus { enum DiplomacyOfferStatus {
DIPLOMACY_OFFER_STATUS_UNKNOWN = 0; DIPLOMACY_OFFER_STATUS_UNKNOWN = 0;
DIPLOMACY_OFFER_STATUS_UNRESOLVED = 1; DIPLOMACY_OFFER_STATUS_UNRESOLVED = 1;
DIPLOMACY_OFFER_STATUS_ACCEPTED = 2; DIPLOMACY_OFFER_STATUS_ACCEPTED = 2;
DIPLOMACY_OFFER_STATUS_REJECTED = 3; DIPLOMACY_OFFER_STATUS_REJECTED = 3;
DIPLOMACY_OFFER_STATUS_IMPRISONED = 4; DIPLOMACY_OFFER_STATUS_IMPRISONED = 4;
} }
@@ -4,15 +4,15 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.common;
import "src/main/protobuf/net/eagle0/eagle/common/diplomacy_offer_status.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common"; option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "InviteOffer"; option java_outer_classname = "InviteOffer";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.common;
import "src/main/protobuf/net/eagle0/eagle/common/diplomacy_offer_status.proto";
message Invitation { message Invitation {
int32 originating_faction_id = 1; int32 originating_faction_id = 1;
int32 target_faction_id = 2; int32 target_faction_id = 2;
@@ -4,13 +4,13 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.common;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common"; option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "Profession"; option java_outer_classname = "Profession";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.common;
enum Profession { enum Profession {
UNKNOWN_PROFESSION = 0; UNKNOWN_PROFESSION = 0;
MAGE = 1; MAGE = 1;
@@ -4,11 +4,6 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "ProvinceEvent";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.common; package net.eagle0.eagle.common;
import "src/main/protobuf/scalapb/scalapb.proto"; import "src/main/protobuf/scalapb/scalapb.proto";
@@ -16,6 +11,11 @@ import "src/main/protobuf/scalapb/scalapb.proto";
import "src/main/protobuf/net/eagle0/eagle/common/beast_type.proto"; import "src/main/protobuf/net/eagle0/eagle/common/beast_type.proto";
import "src/main/protobuf/net/eagle0/eagle/common/date.proto"; import "src/main/protobuf/net/eagle0/eagle/common/date.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "ProvinceEvent";
option objc_class_prefix = "E0G";
message BeastsEvent { message BeastsEvent {
int32 count = 1; int32 count = 1;
Date start_date = 2 [(scalapb.field).no_box = true]; Date start_date = 2 [(scalapb.field).no_box = true];
@@ -4,13 +4,13 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.common;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common"; option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "ProvinceOrderType"; option java_outer_classname = "ProvinceOrderType";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.common;
enum ProvinceOrderType { enum ProvinceOrderType {
UNKNOWN_ORDERS = 0; UNKNOWN_ORDERS = 0;
ENTRUST = 1; ENTRUST = 1;
@@ -1,14 +1,14 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.common;
import "src/main/protobuf/net/eagle0/eagle/common/unaffiliated_hero_quest.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common"; option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "RecruitmentInfo"; option java_outer_classname = "RecruitmentInfo";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.common;
import "src/main/protobuf/net/eagle0/eagle/common/unaffiliated_hero_quest.proto";
message RecruitmentInfo { message RecruitmentInfo {
RecruitmentStatus status = 1; RecruitmentStatus status = 1;
.net.eagle0.eagle.common.Quest quest = 2; .net.eagle0.eagle.common.Quest quest = 2;
@@ -4,13 +4,13 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.common;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common"; option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "RoundPhase"; option java_outer_classname = "RoundPhase";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.common;
enum RoundPhase { enum RoundPhase {
UNKNOWN_PHASE = 0; UNKNOWN_PHASE = 0;
NEW_ROUND = 1; NEW_ROUND = 1;
@@ -43,4 +43,4 @@ enum RoundPhase {
message NewRoundPhase { message NewRoundPhase {
.net.eagle0.eagle.common.RoundPhase value = 1; .net.eagle0.eagle.common.RoundPhase value = 1;
} }
@@ -4,17 +4,17 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "Treaty";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.common; package net.eagle0.eagle.common;
import "src/main/protobuf/net/eagle0/eagle/common/date.proto"; import "src/main/protobuf/net/eagle0/eagle/common/date.proto";
import "src/main/protobuf/scalapb/scalapb.proto"; import "src/main/protobuf/scalapb/scalapb.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "Treaty";
option objc_class_prefix = "E0G";
message Treaty { message Treaty {
int32 target_faction_id = 1; int32 target_faction_id = 1;
.net.eagle0.eagle.common.Date end_date = 2 [(scalapb.field).no_box = true]; .net.eagle0.eagle.common.Date end_date = 2 [(scalapb.field).no_box = true];
} }
@@ -4,17 +4,17 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "TreatyOffer";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.common; package net.eagle0.eagle.common;
import "src/main/protobuf/net/eagle0/eagle/common/date.proto"; import "src/main/protobuf/net/eagle0/eagle/common/date.proto";
import "src/main/protobuf/net/eagle0/eagle/common/diplomacy_offer_status.proto"; import "src/main/protobuf/net/eagle0/eagle/common/diplomacy_offer_status.proto";
import "src/main/protobuf/scalapb/scalapb.proto"; import "src/main/protobuf/scalapb/scalapb.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "TreatyOffer";
option objc_class_prefix = "E0G";
message TreatyOffer { message TreatyOffer {
int32 originating_faction_id = 1; int32 originating_faction_id = 1;
int32 target_faction_id = 2; int32 target_faction_id = 2;
@@ -23,4 +23,3 @@ message TreatyOffer {
int32 messenger_origin_province_id = 5; int32 messenger_origin_province_id = 5;
DiplomacyOfferStatus status = 6; DiplomacyOfferStatus status = 6;
} }
@@ -4,14 +4,14 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.common;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common"; option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "TributeAmount"; option java_outer_classname = "TributeAmount";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.common;
message TributeAmount { message TributeAmount {
int32 gold = 1; int32 gold = 1;
int32 food = 2; int32 food = 2;
} }
@@ -1,16 +1,16 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "UnaffiliatedHero";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.common; package net.eagle0.eagle.common;
import "google/protobuf/wrappers.proto"; import "google/protobuf/wrappers.proto";
import "src/main/protobuf/net/eagle0/eagle/common/date.proto"; import "src/main/protobuf/net/eagle0/eagle/common/date.proto";
import "src/main/protobuf/net/eagle0/eagle/common/recruitment_info.proto"; import "src/main/protobuf/net/eagle0/eagle/common/recruitment_info.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "UnaffiliatedHero";
option objc_class_prefix = "E0G";
message UnaffiliatedHero { message UnaffiliatedHero {
enum Type { enum Type {
UNKNOWN = 0; UNKNOWN = 0;
@@ -40,4 +40,4 @@ message CapturedHero {
int32 hero_id = 1; int32 hero_id = 1;
bool recruitment_attempted = 2; bool recruitment_attempted = 2;
int32 previous_faction_id = 3; int32 previous_faction_id = 3;
} }
@@ -1,14 +1,14 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.common;
import "src/main/protobuf/net/eagle0/eagle/common/battalion_type.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.common"; option java_package = "net.eagle0.eagle.common";
option java_outer_classname = "UnaffiliatedHeroQuest"; option java_outer_classname = "UnaffiliatedHeroQuest";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.common;
import "src/main/protobuf/net/eagle0/eagle/common/battalion_type.proto";
message Quest { message Quest {
int32 component_count = 1; int32 component_count = 1;
int32 components_fulfilled = 2; int32 components_fulfilled = 2;
@@ -94,4 +94,4 @@ message TreatyWithFactionQuest {
message TreatyCountQuest { message TreatyCountQuest {
int32 treaty_count = 1; int32 treaty_count = 1;
} }
@@ -4,11 +4,6 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "ActionResult";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.internal; package net.eagle0.eagle.internal;
import "google/protobuf/wrappers.proto"; import "google/protobuf/wrappers.proto";
@@ -27,6 +22,11 @@ import "src/main/protobuf/net/eagle0/eagle/internal/hero.proto";
import "src/main/protobuf/net/eagle0/eagle/internal/province.proto"; import "src/main/protobuf/net/eagle0/eagle/internal/province.proto";
import "src/main/protobuf/net/eagle0/eagle/internal/shardok_battle.proto"; import "src/main/protobuf/net/eagle0/eagle/internal/shardok_battle.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "ActionResult";
option objc_class_prefix = "E0G";
message ActionResult { message ActionResult {
.net.eagle0.eagle.common.ActionResultType type = 1; .net.eagle0.eagle.common.ActionResultType type = 1;
.google.protobuf.Int32Value player = 2; .google.protobuf.Int32Value player = 2;
@@ -70,4 +70,3 @@ message ActionResult {
repeated .net.eagle0.eagle.common.BattalionType new_battalion_types = 32; repeated .net.eagle0.eagle.common.BattalionType new_battalion_types = 32;
} }
@@ -4,11 +4,6 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "Army";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.internal; package net.eagle0.eagle.internal;
import "google/protobuf/wrappers.proto"; import "google/protobuf/wrappers.proto";
@@ -16,6 +11,11 @@ import "src/main/protobuf/net/eagle0/eagle/common/combat_unit.proto";
import "src/main/protobuf/net/eagle0/eagle/common/tribute_amount.proto"; import "src/main/protobuf/net/eagle0/eagle/common/tribute_amount.proto";
import "src/main/protobuf/net/eagle0/eagle/internal/supplies.proto"; import "src/main/protobuf/net/eagle0/eagle/internal/supplies.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "Army";
option objc_class_prefix = "E0G";
message Army { message Army {
int32 faction_id = 1; int32 faction_id = 1;
repeated .net.eagle0.eagle.common.CombatUnit units = 2; repeated .net.eagle0.eagle.common.CombatUnit units = 2;
@@ -64,4 +64,3 @@ message TributePaid {
} }
message Attacking {} message Attacking {}
message Withdrawing {} message Withdrawing {}
@@ -4,15 +4,15 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.internal;
import "src/main/protobuf/net/eagle0/eagle/common/battalion_type.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal"; option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "Battalion"; option java_outer_classname = "Battalion";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.internal;
import "src/main/protobuf/net/eagle0/eagle/common/battalion_type.proto";
message Battalion { message Battalion {
int32 id = 1; int32 id = 1;
.net.eagle0.eagle.common.BattalionTypeId type = 2; .net.eagle0.eagle.common.BattalionTypeId type = 2;
@@ -24,4 +24,3 @@ message Battalion {
string name = 7; string name = 7;
} }
@@ -4,21 +4,21 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.internal;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal"; option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "BattleRevelation"; option java_outer_classname = "BattleRevelation";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.internal;
message BattleRevelation { message BattleRevelation {
enum RevelationType { enum RevelationType {
UNKNOWN = 0; UNKNOWN = 0;
WITHDREW = 1; WITHDREW = 1;
DID_BATTLE = 2; DID_BATTLE = 2;
} }
int32 province_id = 1; int32 province_id = 1;
int32 revealed_to_faction_id = 2; int32 revealed_to_faction_id = 2;
RevelationType revelation_type = 3; RevelationType revelation_type = 3;
} }
@@ -4,11 +4,6 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "ChangedFaction";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.internal; package net.eagle0.eagle.internal;
import "google/protobuf/wrappers.proto"; import "google/protobuf/wrappers.proto";
@@ -18,6 +13,11 @@ import "src/main/protobuf/net/eagle0/eagle/common/treaty.proto";
import "src/main/protobuf/net/eagle0/eagle/common/treaty_offer.proto"; import "src/main/protobuf/net/eagle0/eagle/common/treaty_offer.proto";
import "src/main/protobuf/net/eagle0/eagle/internal/faction.proto"; import "src/main/protobuf/net/eagle0/eagle/internal/faction.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "ChangedFaction";
option objc_class_prefix = "E0G";
message TrustLevelUpdate { message TrustLevelUpdate {
int32 target_faction_id = 1; int32 target_faction_id = 1;
int32 delta = 2; int32 delta = 2;
@@ -59,4 +59,4 @@ message ChangedFaction {
.google.protobuf.Int32Value new_last_acted_province_id = 22; .google.protobuf.Int32Value new_last_acted_province_id = 22;
bool clear_last_acted_province_id = 23; bool clear_last_acted_province_id = 23;
} }
@@ -4,15 +4,15 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.internal;
import "google/protobuf/wrappers.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal"; option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "ChangedHero"; option java_outer_classname = "ChangedHero";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.internal;
import "google/protobuf/wrappers.proto";
message ChangedHero { message ChangedHero {
int32 id = 1; int32 id = 1;
@@ -34,4 +34,4 @@ message ChangedHero {
.google.protobuf.Int32Value charisma_xp_delta = 11; .google.protobuf.Int32Value charisma_xp_delta = 11;
.google.protobuf.Int32Value wisdom_xp_delta = 13; .google.protobuf.Int32Value wisdom_xp_delta = 13;
.google.protobuf.Int32Value constitution_xp_delta = 12; .google.protobuf.Int32Value constitution_xp_delta = 12;
} }
@@ -4,11 +4,6 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "ChangedProvince";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.internal; package net.eagle0.eagle.internal;
import "google/protobuf/wrappers.proto"; import "google/protobuf/wrappers.proto";
@@ -21,6 +16,11 @@ import "src/main/protobuf/net/eagle0/eagle/internal/deferred_change.proto";
import "src/main/protobuf/net/eagle0/eagle/internal/province.proto"; import "src/main/protobuf/net/eagle0/eagle/internal/province.proto";
import "src/main/protobuf/net/eagle0/eagle/internal/supplies.proto"; import "src/main/protobuf/net/eagle0/eagle/internal/supplies.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "ChangedProvince";
option objc_class_prefix = "E0G";
message ChangedProvince { message ChangedProvince {
int32 id = 1; int32 id = 1;
@@ -97,4 +97,4 @@ message ChangedProvince {
repeated BattleRevelation added_battle_revelations = 49; repeated BattleRevelation added_battle_revelations = 49;
repeated BattleRevelation removed_battle_revelations = 50; repeated BattleRevelation removed_battle_revelations = 50;
} }
@@ -4,41 +4,41 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.internal;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal"; option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "DeferredChange"; option java_outer_classname = "DeferredChange";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.internal;
message DeferredChange { message DeferredChange {
oneof sealed_value { oneof sealed_value {
BlizzardStarted blizzard_started = 1; BlizzardStarted blizzard_started = 1;
BlizzardEnded blizzard_ended = 2; BlizzardEnded blizzard_ended = 2;
EpidemicStarted epidemic_started = 3; EpidemicStarted epidemic_started = 3;
DroughtStarted drought_started = 4; DroughtStarted drought_started = 4;
DroughtEnded drought_ended = 5; DroughtEnded drought_ended = 5;
} }
} }
message BlizzardStarted { message BlizzardStarted {
int32 responsible_faction = 1; int32 responsible_faction = 1;
int32 duration_months = 2; int32 duration_months = 2;
} }
message BlizzardEnded { message BlizzardEnded {
int32 responsible_faction = 1; int32 responsible_faction = 1;
} }
message EpidemicStarted { message EpidemicStarted {
int32 responsible_faction = 1; int32 responsible_faction = 1;
} }
message DroughtStarted { message DroughtStarted {
int32 responsible_faction = 1; int32 responsible_faction = 1;
int32 duration_months = 2; int32 duration_months = 2;
} }
message DroughtEnded { message DroughtEnded {
int32 responsible_faction = 1; int32 responsible_faction = 1;
} }
@@ -4,20 +4,20 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "Faction";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.internal; package net.eagle0.eagle.internal;
import "google/protobuf/wrappers.proto";
import "src/main/protobuf/net/eagle0/eagle/api/province_view.proto"; import "src/main/protobuf/net/eagle0/eagle/api/province_view.proto";
import "src/main/protobuf/net/eagle0/eagle/common/action_result_notification_details.proto"; import "src/main/protobuf/net/eagle0/eagle/common/action_result_notification_details.proto";
import "src/main/protobuf/net/eagle0/eagle/common/invitation.proto"; import "src/main/protobuf/net/eagle0/eagle/common/invitation.proto";
import "src/main/protobuf/net/eagle0/eagle/common/treaty.proto"; import "src/main/protobuf/net/eagle0/eagle/common/treaty.proto";
import "src/main/protobuf/net/eagle0/eagle/common/treaty_offer.proto"; import "src/main/protobuf/net/eagle0/eagle/common/treaty_offer.proto";
import "src/main/protobuf/net/eagle0/eagle/internal/faction_trust_level.proto"; import "src/main/protobuf/net/eagle0/eagle/internal/faction_trust_level.proto";
import "google/protobuf/wrappers.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "Faction";
option objc_class_prefix = "E0G";
message PrestigeModifier { message PrestigeModifier {
enum Type { enum Type {
@@ -4,14 +4,14 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.internal;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal"; option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "FactionTrustLevel"; option java_outer_classname = "FactionTrustLevel";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.internal;
message FactionTrustLevel { message FactionTrustLevel {
int32 target_faction_id = 1; int32 target_faction_id = 1;
int32 value = 2; int32 value = 2;
} }
@@ -4,16 +4,16 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.internal;
import "src/main/protobuf/net/eagle0/eagle/internal/action_result.proto";
import "src/main/protobuf/net/eagle0/eagle/internal/game_state.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal"; option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "Game"; option java_outer_classname = "Game";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.internal;
import "src/main/protobuf/net/eagle0/eagle/internal/game_state.proto";
import "src/main/protobuf/net/eagle0/eagle/internal/action_result.proto";
message PartialGame { message PartialGame {
int64 starting_index = 1; int64 starting_index = 1;
GameState starting_state = 2; GameState starting_state = 2;
@@ -4,17 +4,17 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "GameParameters";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.internal; package net.eagle0.eagle.internal;
import "src/main/protobuf/net/eagle0/eagle/common/battalion_type.proto"; import "src/main/protobuf/net/eagle0/eagle/common/battalion_type.proto";
import "src/main/protobuf/net/eagle0/eagle/common/province_order_type.proto"; import "src/main/protobuf/net/eagle0/eagle/common/province_order_type.proto";
import "src/main/protobuf/net/eagle0/eagle/internal/battalion.proto"; import "src/main/protobuf/net/eagle0/eagle/internal/battalion.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "GameParameters";
option objc_class_prefix = "E0G";
message ProvinceOverrides { message ProvinceOverrides {
int32 province_id = 1; // can be 0 for a generic int32 province_id = 1; // can be 0 for a generic
@@ -59,4 +59,3 @@ message GameParameters {
repeated SetFaction set_factions = 5; repeated SetFaction set_factions = 5;
} }
@@ -4,24 +4,24 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "GameState";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.internal; package net.eagle0.eagle.internal;
import "google/protobuf/wrappers.proto"; import "google/protobuf/wrappers.proto";
import "src/main/protobuf/scalapb/scalapb.proto"; import "src/main/protobuf/scalapb/scalapb.proto";
import "src/main/protobuf/net/eagle0/eagle/common/battalion_type.proto";
import "src/main/protobuf/net/eagle0/eagle/common/date.proto";
import "src/main/protobuf/net/eagle0/eagle/common/round_phase.proto";
import "src/main/protobuf/net/eagle0/eagle/internal/battalion.proto"; import "src/main/protobuf/net/eagle0/eagle/internal/battalion.proto";
import "src/main/protobuf/net/eagle0/eagle/internal/faction.proto"; import "src/main/protobuf/net/eagle0/eagle/internal/faction.proto";
import "src/main/protobuf/net/eagle0/eagle/internal/hero.proto"; import "src/main/protobuf/net/eagle0/eagle/internal/hero.proto";
import "src/main/protobuf/net/eagle0/eagle/internal/province.proto"; import "src/main/protobuf/net/eagle0/eagle/internal/province.proto";
import "src/main/protobuf/net/eagle0/eagle/internal/shardok_battle.proto"; import "src/main/protobuf/net/eagle0/eagle/internal/shardok_battle.proto";
import "src/main/protobuf/net/eagle0/eagle/common/battalion_type.proto";
import "src/main/protobuf/net/eagle0/eagle/common/round_phase.proto"; option java_multiple_files = true;
import "src/main/protobuf/net/eagle0/eagle/common/date.proto"; option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "GameState";
option objc_class_prefix = "E0G";
enum RunStatus { enum RunStatus {
UKNOWN = 0; UKNOWN = 0;
@@ -4,16 +4,16 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "Hero";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.internal; package net.eagle0.eagle.internal;
import "google/protobuf/wrappers.proto"; import "google/protobuf/wrappers.proto";
import "src/main/protobuf/net/eagle0/eagle/common/profession.proto"; import "src/main/protobuf/net/eagle0/eagle/common/profession.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "Hero";
option objc_class_prefix = "E0G";
message Hero { message Hero {
int32 id = 1; int32 id = 1;
.google.protobuf.Int32Value faction_id = 2; .google.protobuf.Int32Value faction_id = 2;
@@ -4,11 +4,6 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "Province";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.internal; package net.eagle0.eagle.internal;
import "google/protobuf/wrappers.proto"; import "google/protobuf/wrappers.proto";
@@ -23,6 +18,11 @@ import "src/main/protobuf/net/eagle0/eagle/internal/battle_revelation.proto";
import "src/main/protobuf/net/eagle0/eagle/internal/deferred_change.proto"; import "src/main/protobuf/net/eagle0/eagle/internal/deferred_change.proto";
import "src/main/protobuf/net/eagle0/eagle/internal/supplies.proto"; import "src/main/protobuf/net/eagle0/eagle/internal/supplies.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "Province";
option objc_class_prefix = "E0G";
message IncomingEndTurnAction { message IncomingEndTurnAction {
int32 from_faction_id = 1; int32 from_faction_id = 1;
int32 from_province_id = 2; int32 from_province_id = 2;
@@ -4,13 +4,13 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.internal;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal"; option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "RunningGames"; option java_outer_classname = "RunningGames";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.internal;
message RunningGame { message RunningGame {
int64 game_id = 1; int64 game_id = 1;
map<string, int32> user_to_pid = 2; map<string, int32> user_to_pid = 2;
@@ -19,4 +19,4 @@ message RunningGame {
message RunningGames { message RunningGames {
repeated RunningGame running_games = 1; repeated RunningGame running_games = 1;
} }
@@ -4,16 +4,16 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "ActionResult";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.internal; package net.eagle0.eagle.internal;
import "src/main/protobuf/net/eagle0/common/victory_condition.proto"; import "src/main/protobuf/net/eagle0/common/victory_condition.proto";
import "src/main/protobuf/net/eagle0/eagle/internal/army.proto"; import "src/main/protobuf/net/eagle0/eagle/internal/army.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "ActionResult";
option objc_class_prefix = "E0G";
message ShardokPlayer { message ShardokPlayer {
int32 eagle_fid = 1; int32 eagle_fid = 1;
bool is_defender = 2; bool is_defender = 2;
@@ -42,4 +42,4 @@ message ShardokBattle {
} }
BattleType battle_type = 8; BattleType battle_type = 8;
} }
@@ -4,30 +4,30 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "ShardokResults";
option objc_class_prefix = "E0G";
package net.eagle0.eagle.internal; package net.eagle0.eagle.internal;
import "src/main/protobuf/net/eagle0/shardok/api/action_result_view.proto"; import "src/main/protobuf/net/eagle0/shardok/api/action_result_view.proto";
import "src/main/protobuf/net/eagle0/shardok/api/command_descriptor.proto"; import "src/main/protobuf/net/eagle0/shardok/api/command_descriptor.proto";
import "src/main/protobuf/net/eagle0/shardok/storage/action_result.proto"; import "src/main/protobuf/net/eagle0/shardok/storage/action_result.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "ShardokResults";
option objc_class_prefix = "E0G";
message ShardokResults { message ShardokResults {
string shardok_game_id = 1; string shardok_game_id = 1;
repeated .net.eagle0.shardok.storage.ActionResult results = 2; repeated .net.eagle0.shardok.storage.ActionResult results = 2;
message OnePlayerViews { message OnePlayerViews {
int32 faction_id = 1; int32 faction_id = 1;
repeated .net.eagle0.shardok.api.ActionResultView result_views = 2; repeated .net.eagle0.shardok.api.ActionResultView result_views = 2;
.net.eagle0.shardok.api.AvailableCommands available_commands = 3; .net.eagle0.shardok.api.AvailableCommands available_commands = 3;
} }
repeated OnePlayerViews player_views = 3; repeated OnePlayerViews player_views = 3;
int32 eagle_round_id = 4; int32 eagle_round_id = 4;
bytes currentGameState = 5; bytes current_game_state = 5;
} }
@@ -4,15 +4,15 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.eagle.internal;
import "google/protobuf/wrappers.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.eagle.internal"; option java_package = "net.eagle0.eagle.internal";
option java_outer_classname = "Supplies"; option java_outer_classname = "Supplies";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.eagle.internal;
import "google/protobuf/wrappers.proto";
message Supplies { message Supplies {
int32 food = 1; int32 food = 1;
int32 gold = 2; int32 gold = 2;
@@ -4,18 +4,18 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.shardok.api;
import "google/protobuf/wrappers.proto";
import "src/main/protobuf/net/eagle0/shardok/api/game_state_view.proto";
import "src/main/protobuf/net/eagle0/shardok/common/action_type.proto";
import "src/main/protobuf/net/eagle0/shardok/common/coords.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.shardok.api"; option java_package = "net.eagle0.shardok.api";
option java_outer_classname = "ActionResult"; option java_outer_classname = "ActionResult";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.shardok.api;
import "src/main/protobuf/net/eagle0/shardok/api/game_state_view.proto";
import "src/main/protobuf/net/eagle0/shardok/common/action_type.proto";
import "src/main/protobuf/net/eagle0/shardok/common/coords.proto";
import "google/protobuf/wrappers.proto";
message ActionResultView { message ActionResultView {
.net.eagle0.shardok.common.ActionType type = 1; .net.eagle0.shardok.common.ActionType type = 1;
.google.protobuf.Int32Value player = 2; // optional; PlayerId who carried out action .google.protobuf.Int32Value player = 2; // optional; PlayerId who carried out action
@@ -4,18 +4,18 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.shardok.api;
import "google/protobuf/wrappers.proto";
import "src/main/protobuf/net/eagle0/shardok/api/odds_view.proto";
import "src/main/protobuf/net/eagle0/shardok/common/command_type.proto";
import "src/main/protobuf/net/eagle0/shardok/common/coords.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.shardok.api"; option java_package = "net.eagle0.shardok.api";
option java_outer_classname = "CommandDescriptor"; option java_outer_classname = "CommandDescriptor";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
import "src/main/protobuf/net/eagle0/shardok/api/odds_view.proto";
import "src/main/protobuf/net/eagle0/shardok/common/coords.proto";
import "src/main/protobuf/net/eagle0/shardok/common/command_type.proto";
import "google/protobuf/wrappers.proto";
package net.eagle0.shardok.api;
message CommandDescriptor { message CommandDescriptor {
int32 player = 1; int32 player = 1;
.net.eagle0.shardok.common.CommandType type = 2; .net.eagle0.shardok.common.CommandType type = 2;
@@ -39,7 +39,7 @@ message CommandDescriptor {
} }
message AvailableCommands { message AvailableCommands {
// int64 token = 1; // int64 token = 1;
// Commands that can be posted now // Commands that can be posted now
repeated CommandDescriptor current_command = 2; repeated CommandDescriptor current_command = 2;
// Commands that client may display, but aren't currently postable, ie placement commands // Commands that client may display, but aren't currently postable, ie placement commands
@@ -4,20 +4,20 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.shardok.api";
option java_outer_classname = "GameStateView";
option objc_class_prefix = "E0G";
package net.eagle0.shardok.api; package net.eagle0.shardok.api;
import "google/protobuf/wrappers.proto";
import "src/main/protobuf/net/eagle0/shardok/api/unit_view.proto"; import "src/main/protobuf/net/eagle0/shardok/api/unit_view.proto";
import "src/main/protobuf/net/eagle0/shardok/common/game_status.proto"; import "src/main/protobuf/net/eagle0/shardok/common/game_status.proto";
import "src/main/protobuf/net/eagle0/shardok/common/hex_map.proto"; import "src/main/protobuf/net/eagle0/shardok/common/hex_map.proto";
import "src/main/protobuf/net/eagle0/shardok/common/player_info.proto"; import "src/main/protobuf/net/eagle0/shardok/common/player_info.proto";
import "src/main/protobuf/net/eagle0/shardok/common/tile_modifier_with_coords.proto"; import "src/main/protobuf/net/eagle0/shardok/common/tile_modifier_with_coords.proto";
import "src/main/protobuf/net/eagle0/shardok/common/weather.proto"; import "src/main/protobuf/net/eagle0/shardok/common/weather.proto";
import "google/protobuf/wrappers.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.shardok.api";
option java_outer_classname = "GameStateView";
option objc_class_prefix = "E0G";
message PlayerTotals { message PlayerTotals {
int32 player_id = 1; int32 player_id = 1;
@@ -4,13 +4,13 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.shardok.api;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.shardok.api"; option java_package = "net.eagle0.shardok.api";
option java_outer_classname = "OddsView"; option java_outer_classname = "OddsView";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.shardok.api;
message OddsView { message OddsView {
int32 base_difficulty = 1; int32 base_difficulty = 1;
int32 terrain_factor = 2; int32 terrain_factor = 2;
@@ -4,13 +4,13 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.shardok.api;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.shardok.api"; option java_package = "net.eagle0.shardok.api";
option java_outer_classname = "PlacementCommand"; option java_outer_classname = "PlacementCommand";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.shardok.api;
message PlacementCommand { message PlacementCommand {
int32 unit_id = 1; int32 unit_id = 1;
int32 row = 2; int32 row = 2;
@@ -4,17 +4,17 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.shardok.api;
import "google/protobuf/wrappers.proto";
import "src/main/protobuf/net/eagle0/shardok/common/coords.proto";
import "src/main/protobuf/net/eagle0/shardok/common/hostility.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.shardok.api"; option java_package = "net.eagle0.shardok.api";
option java_outer_classname = "Unit"; option java_outer_classname = "Unit";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.shardok.api;
import "src/main/protobuf/net/eagle0/shardok/common/hostility.proto";
import "src/main/protobuf/net/eagle0/shardok/common/coords.proto";
import "google/protobuf/wrappers.proto";
message HeroView { message HeroView {
message ProfessionSpecificInfo { message ProfessionSpecificInfo {
enum MultiroundMagicState { enum MultiroundMagicState {
@@ -4,13 +4,13 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.shardok.common;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.shardok.common"; option java_package = "net.eagle0.shardok.common";
option java_outer_classname = "ActionType"; option java_outer_classname = "ActionType";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.shardok.common;
enum ActionType { enum ActionType {
UNKNOWN_ACTION = 0; UNKNOWN_ACTION = 0;
MELEE_ATTACK = 1; MELEE_ATTACK = 1;
@@ -1,12 +1,12 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.shardok.common;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.shardok.common"; option java_package = "net.eagle0.shardok.common";
option java_outer_classname = "CommandType"; option java_outer_classname = "CommandType";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.shardok.common;
enum CommandType { enum CommandType {
UNKNOWN_COMMAND = 0; UNKNOWN_COMMAND = 0;
MELEE_COMMAND = 1; MELEE_COMMAND = 1;
@@ -4,14 +4,14 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.shardok.common;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.shardok.common"; option java_package = "net.eagle0.shardok.common";
option java_outer_classname = "Coords"; option java_outer_classname = "Coords";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.shardok.common;
message Coords { message Coords {
int32 row = 1; int32 row = 1;
int32 column = 2; int32 column = 2;
} }
@@ -4,15 +4,15 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.shardok.common;
import "src/main/protobuf/net/eagle0/shardok/common/victory_condition.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.shardok.common"; option java_package = "net.eagle0.shardok.common";
option java_outer_classname = "GameStatus"; option java_outer_classname = "GameStatus";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.shardok.common;
import "src/main/protobuf/net/eagle0/shardok/common/victory_condition.proto";
message GameStatus { message GameStatus {
enum State { enum State {
UNKNOWN = 0; UNKNOWN = 0;
@@ -4,16 +4,16 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.shardok.common";
option java_outer_classname = "HexMap";
option objc_class_prefix = "E0G";
package net.eagle0.shardok.common; package net.eagle0.shardok.common;
import "src/main/protobuf/net/eagle0/shardok/common/coords.proto"; import "src/main/protobuf/net/eagle0/shardok/common/coords.proto";
import "src/main/protobuf/net/eagle0/shardok/common/terrain.proto"; import "src/main/protobuf/net/eagle0/shardok/common/terrain.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.shardok.common";
option java_outer_classname = "HexMap";
option objc_class_prefix = "E0G";
message StartingPositionList { message StartingPositionList {
repeated Coords positions = 1; repeated Coords positions = 1;
} }
@@ -4,13 +4,13 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.shardok.common;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.shardok.common"; option java_package = "net.eagle0.shardok.common";
option java_outer_classname = "HexMapDirection"; option java_outer_classname = "HexMapDirection";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.shardok.common;
enum HexMapDirection { enum HexMapDirection {
NORTHEAST = 0; NORTHEAST = 0;
EAST = 1; EAST = 1;
@@ -18,4 +18,4 @@ enum HexMapDirection {
SOUTHWEST = 3; SOUTHWEST = 3;
WEST = 4; WEST = 4;
NORTHWEST = 5; NORTHWEST = 5;
} }
@@ -4,17 +4,17 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.shardok.common;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.shardok.common"; option java_package = "net.eagle0.shardok.common";
option java_outer_classname = "Hostility"; option java_outer_classname = "Hostility";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.shardok.common;
enum Hostility { enum Hostility {
UNKNOWN_HOSTILITY = 0; UNKNOWN_HOSTILITY = 0;
SELF_HOSTILITY = 1; SELF_HOSTILITY = 1;
ALLIED_HOSTILITY = 2; ALLIED_HOSTILITY = 2;
UNCONTROLLED_HOSTILITY = 3; UNCONTROLLED_HOSTILITY = 3;
ENEMY_HOSTILITY = 4; ENEMY_HOSTILITY = 4;
} }
@@ -4,15 +4,15 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.shardok.common;
import "src/main/protobuf/net/eagle0/shardok/common/victory_condition.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.shardok.common"; option java_package = "net.eagle0.shardok.common";
option java_outer_classname = "PlayerInfo"; option java_outer_classname = "PlayerInfo";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.shardok.common;
import "src/main/protobuf/net/eagle0/shardok/common/victory_condition.proto";
message PlayerInfo { message PlayerInfo {
int32 player_id = 1; int32 player_id = 1;
bool is_defender = 2; bool is_defender = 2;
@@ -4,15 +4,15 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.shardok.common;
import "src/main/protobuf/net/eagle0/shardok/common/tile_modifier.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.shardok.common"; option java_package = "net.eagle0.shardok.common";
option java_outer_classname = "HexMap"; option java_outer_classname = "HexMap";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.shardok.common;
import "src/main/protobuf/net/eagle0/shardok/common/tile_modifier.proto";
message Terrain { message Terrain {
enum Type { enum Type {
UNKNOWN = 0; UNKNOWN = 0;
@@ -28,4 +28,4 @@ message Terrain {
}; };
Type type = 1; Type type = 1;
TileModifier modifier = 2; TileModifier modifier = 2;
} }
@@ -4,15 +4,15 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.shardok.common;
import "google/protobuf/wrappers.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.shardok.common"; option java_package = "net.eagle0.shardok.common";
option java_outer_classname = "TileModifier"; option java_outer_classname = "TileModifier";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.shardok.common;
import "google/protobuf/wrappers.proto";
message TileModifier { message TileModifier {
message SingleModifier { message SingleModifier {
.google.protobuf.DoubleValue integrity = 1; .google.protobuf.DoubleValue integrity = 1;
@@ -22,4 +22,4 @@ message TileModifier {
SingleModifier ice = 3; SingleModifier ice = 3;
SingleModifier castle = 4; SingleModifier castle = 4;
SingleModifier snow = 5; SingleModifier snow = 5;
} }
@@ -4,17 +4,17 @@
syntax = "proto3"; syntax = "proto3";
option java_multiple_files = true;
option java_package = "net.eagle0.shardok.common";
option java_outer_classname = "TileModifierWithCoords";
option objc_class_prefix = "E0G";
package net.eagle0.shardok.common; package net.eagle0.shardok.common;
import "src/main/protobuf/net/eagle0/shardok/common/coords.proto"; import "src/main/protobuf/net/eagle0/shardok/common/coords.proto";
import "src/main/protobuf/net/eagle0/shardok/common/tile_modifier.proto"; import "src/main/protobuf/net/eagle0/shardok/common/tile_modifier.proto";
option java_multiple_files = true;
option java_package = "net.eagle0.shardok.common";
option java_outer_classname = "TileModifierWithCoords";
option objc_class_prefix = "E0G";
message TileModifierWithCoords { message TileModifierWithCoords {
.net.eagle0.shardok.common.TileModifier modifiers = 1; .net.eagle0.shardok.common.TileModifier modifiers = 1;
.net.eagle0.shardok.common.Coords coords = 2; .net.eagle0.shardok.common.Coords coords = 2;
} }
@@ -4,13 +4,13 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.shardok.common;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.shardok.common"; option java_package = "net.eagle0.shardok.common";
option java_outer_classname = "VictoryCondition"; option java_outer_classname = "VictoryCondition";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.shardok.common;
message EndGameCondition { message EndGameCondition {
oneof condition { oneof condition {
VictoryCondition victory = 1; VictoryCondition victory = 1;
@@ -48,4 +48,3 @@ enum DrawType {
DRAW_AFTER_MAX_ROUNDS = 1; DRAW_AFTER_MAX_ROUNDS = 1;
} }
@@ -4,15 +4,15 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.shardok.common;
import "src/main/protobuf/net/eagle0/shardok/common/hex_map_direction.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.shardok.common"; option java_package = "net.eagle0.shardok.common";
option java_outer_classname = "Weather"; option java_outer_classname = "Weather";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.shardok.common;
import "src/main/protobuf/net/eagle0/shardok/common/hex_map_direction.proto";
message Weather { message Weather {
enum Conditions { enum Conditions {
UNKNOWN = 0; UNKNOWN = 0;
@@ -4,21 +4,21 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.shardok.storage;
import "google/protobuf/wrappers.proto";
import "src/main/protobuf/net/eagle0/shardok/common/action_type.proto";
import "src/main/protobuf/net/eagle0/shardok/common/coords.proto";
import "src/main/protobuf/net/eagle0/shardok/common/game_status.proto";
import "src/main/protobuf/net/eagle0/shardok/common/tile_modifier_with_coords.proto";
import "src/main/protobuf/net/eagle0/shardok/common/weather.proto";
import "src/main/protobuf/net/eagle0/shardok/storage/odds.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.shardok.storage"; option java_package = "net.eagle0.shardok.storage";
option java_outer_classname = "ActionResult"; option java_outer_classname = "ActionResult";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.shardok.storage;
import "src/main/protobuf/net/eagle0/shardok/common/coords.proto";
import "src/main/protobuf/net/eagle0/shardok/common/tile_modifier_with_coords.proto";
import "src/main/protobuf/net/eagle0/shardok/common/weather.proto";
import "src/main/protobuf/net/eagle0/shardok/common/game_status.proto";
import "src/main/protobuf/net/eagle0/shardok/common/action_type.proto";
import "src/main/protobuf/net/eagle0/shardok/storage/odds.proto";
import "google/protobuf/wrappers.proto";
// Represents a unit that was removed from the game, by capture, retreat, or flight. // Represents a unit that was removed from the game, by capture, retreat, or flight.
message ResolvedUnit { message ResolvedUnit {
enum UnitStatus { enum UnitStatus {
@@ -50,7 +50,7 @@ message ActionResult {
repeated .net.eagle0.shardok.common.TileModifierWithCoords changed_tile_modifiers = 11; repeated .net.eagle0.shardok.common.TileModifierWithCoords changed_tile_modifiers = 11;
repeated bytes changed_units_fb = 12; // changed units as flatbuffers, for memcpy in repeated bytes changed_units_fb = 12; // changed units as flatbuffers, for memcpy in
// These are automatically removed from reserve units, if applicable // These are automatically removed from reserve units, if applicable
repeated ResolvedUnit resolved_units = 13; // Units that started the battle that are since removed repeated ResolvedUnit resolved_units = 13; // Units that started the battle that are since removed
repeated int32 became_hidden_units = 14; repeated int32 became_hidden_units = 14;
@@ -4,15 +4,15 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.shardok.storage;
import "src/main/protobuf/net/eagle0/shardok/storage/action_result.proto";
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.shardok"; option java_package = "net.eagle0.shardok";
option java_outer_classname = "ActionWithResultingState"; option java_outer_classname = "ActionWithResultingState";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.shardok.storage;
import "src/main/protobuf/net/eagle0/shardok/storage/action_result.proto";
message ShardokActionWithResultingState { message ShardokActionWithResultingState {
ActionResult action_result = 1; ActionResult action_result = 1;
bytes state_after_fb = 2; bytes state_after_fb = 2;
@@ -4,13 +4,13 @@
syntax = "proto3"; syntax = "proto3";
package net.eagle0.shardok.storage;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "net.eagle0.shardok.storage"; option java_package = "net.eagle0.shardok.storage";
option java_outer_classname = "Odds"; option java_outer_classname = "Odds";
option objc_class_prefix = "E0G"; option objc_class_prefix = "E0G";
package net.eagle0.shardok.storage;
message Odds { message Odds {
int32 base_difficulty = 1; int32 base_difficulty = 1;
int32 terrain_factor = 2; int32 terrain_factor = 2;
+240 -240
View File
@@ -2,6 +2,8 @@ syntax = "proto2";
package scalapb; package scalapb;
import "google/protobuf/descriptor.proto";
option java_package = "scalapb.options"; option java_package = "scalapb.options";
option (options) = { option (options) = {
@@ -9,367 +11,365 @@ option (options) = {
flat_package: true flat_package: true
}; };
import "google/protobuf/descriptor.proto";
message ScalaPbOptions { message ScalaPbOptions {
// If set then it overrides the java_package and package. // If set then it overrides the java_package and package.
optional string package_name = 1; optional string package_name = 1;
// If true, the compiler does not append the proto base file name // If true, the compiler does not append the proto base file name
// into the generated package name. If false (the default), the // into the generated package name. If false (the default), the
// generated scala package name is the package_name.basename where // generated scala package name is the package_name.basename where
// basename is the proto file name without the .proto extension. // basename is the proto file name without the .proto extension.
optional bool flat_package = 2; optional bool flat_package = 2;
// Adds the following imports at the top of the file (this is meant // Adds the following imports at the top of the file (this is meant
// to provide implicit TypeMappers) // to provide implicit TypeMappers)
repeated string import = 3; repeated string import = 3;
// Text to add to the generated scala file. This can be used only // Text to add to the generated scala file. This can be used only
// when single_file is true. // when single_file is true.
repeated string preamble = 4; repeated string preamble = 4;
// If true, all messages and enums (but not services) will be written // If true, all messages and enums (but not services) will be written
// to a single Scala file. // to a single Scala file.
optional bool single_file = 5; optional bool single_file = 5;
// By default, wrappers defined at // By default, wrappers defined at
// https://github.com/google/protobuf/blob/master/src/google/protobuf/wrappers.proto, // https://github.com/google/protobuf/blob/master/src/google/protobuf/wrappers.proto,
// are mapped to an Option[T] where T is a primitive type. When this field // are mapped to an Option[T] where T is a primitive type. When this field
// is set to true, we do not perform this transformation. // is set to true, we do not perform this transformation.
optional bool no_primitive_wrappers = 7; optional bool no_primitive_wrappers = 7;
// DEPRECATED. In ScalaPB <= 0.5.47, it was necessary to explicitly enable // DEPRECATED. In ScalaPB <= 0.5.47, it was necessary to explicitly enable
// primitive_wrappers. This field remains here for backwards compatibility, // primitive_wrappers. This field remains here for backwards compatibility,
// but it has no effect on generated code. It is an error to set both // but it has no effect on generated code. It is an error to set both
// `primitive_wrappers` and `no_primitive_wrappers`. // `primitive_wrappers` and `no_primitive_wrappers`.
optional bool primitive_wrappers = 6; optional bool primitive_wrappers = 6;
// Scala type to be used for repeated fields. If unspecified, // Scala type to be used for repeated fields. If unspecified,
// `scala.collection.Seq` will be used. // `scala.collection.Seq` will be used.
optional string collection_type = 8; optional string collection_type = 8;
// If set to true, all generated messages in this file will preserve unknown // If set to true, all generated messages in this file will preserve unknown
// fields. // fields.
optional bool preserve_unknown_fields = 9 [default=true]; optional bool preserve_unknown_fields = 9 [default=true];
// If defined, sets the name of the file-level object that would be generated. This // If defined, sets the name of the file-level object that would be generated. This
// object extends `GeneratedFileObject` and contains descriptors, and list of message // object extends `GeneratedFileObject` and contains descriptors, and list of message
// and enum companions. // and enum companions.
optional string object_name = 10; optional string object_name = 10;
// Whether to apply the options only to this file, or for the entire package (and its subpackages) // Whether to apply the options only to this file, or for the entire package (and its subpackages)
enum OptionsScope { enum OptionsScope {
// Apply the options for this file only (default) // Apply the options for this file only (default)
FILE = 0; FILE = 0;
// Apply the options for the entire package and its subpackages. // Apply the options for the entire package and its subpackages.
PACKAGE = 1; PACKAGE = 1;
} }
// Experimental: scope to apply the given options. // Experimental: scope to apply the given options.
optional OptionsScope scope = 11; optional OptionsScope scope = 11;
// If true, lenses will be generated. // If true, lenses will be generated.
optional bool lenses = 12 [default=true]; optional bool lenses = 12 [default=true];
// If true, then source-code info information will be included in the // If true, then source-code info information will be included in the
// generated code - normally the source code info is cleared out to reduce // generated code - normally the source code info is cleared out to reduce
// code size. The source code info is useful for extracting source code // code size. The source code info is useful for extracting source code
// location from the descriptors as well as comments. // location from the descriptors as well as comments.
optional bool retain_source_code_info = 13; optional bool retain_source_code_info = 13;
// Scala type to be used for maps. If unspecified, // Scala type to be used for maps. If unspecified,
// `scala.collection.immutable.Map` will be used. // `scala.collection.immutable.Map` will be used.
optional string map_type = 14; optional string map_type = 14;
// If true, no default values will be generated in message constructors. // If true, no default values will be generated in message constructors.
// This setting can be overridden at the message-level and for individual // This setting can be overridden at the message-level and for individual
// fields. // fields.
optional bool no_default_values_in_constructor = 15; optional bool no_default_values_in_constructor = 15;
/* Naming convention for generated enum values */ /* Naming convention for generated enum values */
enum EnumValueNaming { enum EnumValueNaming {
AS_IN_PROTO = 0; // Enum value names in Scala use the same name as in the proto AS_IN_PROTO = 0; // Enum value names in Scala use the same name as in the proto
CAMEL_CASE = 1; // Convert enum values to CamelCase in Scala. CAMEL_CASE = 1; // Convert enum values to CamelCase in Scala.
} }
optional EnumValueNaming enum_value_naming = 16; optional EnumValueNaming enum_value_naming = 16;
// Indicate if prefix (enum name + optional underscore) should be removed in scala code // Indicate if prefix (enum name + optional underscore) should be removed in scala code
// Strip is applied before enum value naming changes. // Strip is applied before enum value naming changes.
optional bool enum_strip_prefix = 17 [default=false]; optional bool enum_strip_prefix = 17 [default=false];
// Scala type to use for bytes fields. // Scala type to use for bytes fields.
optional string bytes_type = 21; optional string bytes_type = 21;
// Enable java conversions for this file. // Enable java conversions for this file.
optional bool java_conversions = 23; optional bool java_conversions = 23;
// AuxMessageOptions enables you to set message-level options through package-scoped options. // AuxMessageOptions enables you to set message-level options through package-scoped options.
// This is useful when you can't add a dependency on scalapb.proto from the proto file that // This is useful when you can't add a dependency on scalapb.proto from the proto file that
// defines the message. // defines the message.
message AuxMessageOptions { message AuxMessageOptions {
// The fully-qualified name of the message in the proto name space. // The fully-qualified name of the message in the proto name space.
optional string target = 1; optional string target = 1;
// Options to apply to the message. If there are any options defined on the target message // Options to apply to the message. If there are any options defined on the target message
// they take precedence over the options. // they take precedence over the options.
optional MessageOptions options = 2; optional MessageOptions options = 2;
} }
// AuxFieldOptions enables you to set field-level options through package-scoped options. // AuxFieldOptions enables you to set field-level options through package-scoped options.
// This is useful when you can't add a dependency on scalapb.proto from the proto file that // This is useful when you can't add a dependency on scalapb.proto from the proto file that
// defines the field. // defines the field.
message AuxFieldOptions { message AuxFieldOptions {
// The fully-qualified name of the field in the proto name space. // The fully-qualified name of the field in the proto name space.
optional string target = 1; optional string target = 1;
// Options to apply to the field. If there are any options defined on the target message // Options to apply to the field. If there are any options defined on the target message
// they take precedence over the options. // they take precedence over the options.
optional FieldOptions options = 2; optional FieldOptions options = 2;
} }
// AuxEnumOptions enables you to set enum-level options through package-scoped options. // AuxEnumOptions enables you to set enum-level options through package-scoped options.
// This is useful when you can't add a dependency on scalapb.proto from the proto file that // This is useful when you can't add a dependency on scalapb.proto from the proto file that
// defines the enum. // defines the enum.
message AuxEnumOptions { message AuxEnumOptions {
// The fully-qualified name of the enum in the proto name space. // The fully-qualified name of the enum in the proto name space.
optional string target = 1; optional string target = 1;
// Options to apply to the enum. If there are any options defined on the target enum // Options to apply to the enum. If there are any options defined on the target enum
// they take precedence over the options. // they take precedence over the options.
optional EnumOptions options = 2; optional EnumOptions options = 2;
} }
// AuxEnumValueOptions enables you to set enum value level options through package-scoped // AuxEnumValueOptions enables you to set enum value level options through package-scoped
// options. This is useful when you can't add a dependency on scalapb.proto from the proto // options. This is useful when you can't add a dependency on scalapb.proto from the proto
// file that defines the enum. // file that defines the enum.
message AuxEnumValueOptions { message AuxEnumValueOptions {
// The fully-qualified name of the enum value in the proto name space. // The fully-qualified name of the enum value in the proto name space.
optional string target = 1; optional string target = 1;
// Options to apply to the enum value. If there are any options defined on // Options to apply to the enum value. If there are any options defined on
// the target enum value they take precedence over the options. // the target enum value they take precedence over the options.
optional EnumValueOptions options = 2; optional EnumValueOptions options = 2;
} }
// List of message options to apply to some messages. // List of message options to apply to some messages.
repeated AuxMessageOptions aux_message_options = 18; repeated AuxMessageOptions aux_message_options = 18;
// List of message options to apply to some fields. // List of message options to apply to some fields.
repeated AuxFieldOptions aux_field_options = 19; repeated AuxFieldOptions aux_field_options = 19;
// List of message options to apply to some enums. // List of message options to apply to some enums.
repeated AuxEnumOptions aux_enum_options = 20; repeated AuxEnumOptions aux_enum_options = 20;
// List of enum value options to apply to some enum values. // List of enum value options to apply to some enum values.
repeated AuxEnumValueOptions aux_enum_value_options = 22; repeated AuxEnumValueOptions aux_enum_value_options = 22;
// List of preprocessors to apply. // List of preprocessors to apply.
repeated string preprocessors = 24; repeated string preprocessors = 24;
repeated FieldTransformation field_transformations = 25; repeated FieldTransformation field_transformations = 25;
// Ignores all transformations for this file. This is meant to allow specific files to // Ignores all transformations for this file. This is meant to allow specific files to
// opt out from transformations inherited through package-scoped options. // opt out from transformations inherited through package-scoped options.
optional bool ignore_all_transformations = 26; optional bool ignore_all_transformations = 26;
// If true, getters will be generated. // If true, getters will be generated.
optional bool getters = 27 [default=true]; optional bool getters = 27 [default=true];
// For use in tests only. Inhibit Java conversions even when when generator parameters // For use in tests only. Inhibit Java conversions even when when generator parameters
// request for it. // request for it.
optional bool test_only_no_java_conversions = 999; optional bool test_only_no_java_conversions = 999;
extensions 1000 to max; extensions 1000 to max;
} }
extend google.protobuf.FileOptions { extend google.protobuf.FileOptions {
// File-level optionals for ScalaPB. // File-level optionals for ScalaPB.
// Extension number officially assigned by protobuf-global-extension-registry@google.com // Extension number officially assigned by protobuf-global-extension-registry@google.com
optional ScalaPbOptions options = 1020; optional ScalaPbOptions options = 1020;
} }
message MessageOptions { message MessageOptions {
// Additional classes and traits to mix in to the case class. // Additional classes and traits to mix in to the case class.
repeated string extends = 1; repeated string extends = 1;
// Additional classes and traits to mix in to the companion object. // Additional classes and traits to mix in to the companion object.
repeated string companion_extends = 2; repeated string companion_extends = 2;
// Custom annotations to add to the generated case class. // Custom annotations to add to the generated case class.
repeated string annotations = 3; repeated string annotations = 3;
// All instances of this message will be converted to this type. An implicit TypeMapper // All instances of this message will be converted to this type. An implicit TypeMapper
// must be present. // must be present.
optional string type = 4; optional string type = 4;
// Custom annotations to add to the companion object of the generated class. // Custom annotations to add to the companion object of the generated class.
repeated string companion_annotations = 5; repeated string companion_annotations = 5;
// Additional classes and traits to mix in to generated sealed_oneof base trait. // Additional classes and traits to mix in to generated sealed_oneof base trait.
repeated string sealed_oneof_extends = 6; repeated string sealed_oneof_extends = 6;
// If true, when this message is used as an optional field, do not wrap it in an `Option`. // If true, when this message is used as an optional field, do not wrap it in an `Option`.
// This is equivalent of setting `(field).no_box` to true on each field with the message type. // This is equivalent of setting `(field).no_box` to true on each field with the message type.
optional bool no_box = 7; optional bool no_box = 7;
// Custom annotations to add to the generated `unknownFields` case class field. // Custom annotations to add to the generated `unknownFields` case class field.
repeated string unknown_fields_annotations = 8; repeated string unknown_fields_annotations = 8;
// If true, no default values will be generated in message constructors. // If true, no default values will be generated in message constructors.
// If set (to true or false), the message-level setting overrides the // If set (to true or false), the message-level setting overrides the
// file-level value, and can be overridden by the field-level setting. // file-level value, and can be overridden by the field-level setting.
optional bool no_default_values_in_constructor = 9; optional bool no_default_values_in_constructor = 9;
extensions 1000 to max; extensions 1000 to max;
} }
extend google.protobuf.MessageOptions { extend google.protobuf.MessageOptions {
// Message-level optionals for ScalaPB. // Message-level optionals for ScalaPB.
// Extension number officially assigned by protobuf-global-extension-registry@google.com // Extension number officially assigned by protobuf-global-extension-registry@google.com
optional MessageOptions message = 1020; optional MessageOptions message = 1020;
} }
// Represents a custom Collection type in Scala. This allows ScalaPB to integrate with // Represents a custom Collection type in Scala. This allows ScalaPB to integrate with
// collection types that are different enough from the ones in the standard library. // collection types that are different enough from the ones in the standard library.
message Collection { message Collection {
// Type of the collection // Type of the collection
optional string type = 1; optional string type = 1;
// Set to true if this collection type is not allowed to be empty, for example // Set to true if this collection type is not allowed to be empty, for example
// cats.data.NonEmptyList. When true, ScalaPB will not generate `clearX` for the repeated // cats.data.NonEmptyList. When true, ScalaPB will not generate `clearX` for the repeated
// field and not provide a default argument in the constructor. // field and not provide a default argument in the constructor.
optional bool non_empty = 2; optional bool non_empty = 2;
// An Adapter is a Scala object available at runtime that provides certain static methods // An Adapter is a Scala object available at runtime that provides certain static methods
// that can operate on this collection type. // that can operate on this collection type.
optional string adapter = 3; optional string adapter = 3;
} }
message FieldOptions { message FieldOptions {
optional string type = 1; optional string type = 1;
optional string scala_name = 2; optional string scala_name = 2;
// Can be specified only if this field is repeated. If unspecified, // Can be specified only if this field is repeated. If unspecified,
// it falls back to the file option named `collection_type`, which defaults // it falls back to the file option named `collection_type`, which defaults
// to `scala.collection.Seq`. // to `scala.collection.Seq`.
optional string collection_type = 3; optional string collection_type = 3;
optional Collection collection = 8; optional Collection collection = 8;
// If the field is a map, you can specify custom Scala types for the key // If the field is a map, you can specify custom Scala types for the key
// or value. // or value.
optional string key_type = 4; optional string key_type = 4;
optional string value_type = 5; optional string value_type = 5;
// Custom annotations to add to the field. // Custom annotations to add to the field.
repeated string annotations = 6; repeated string annotations = 6;
// Can be specified only if this field is a map. If unspecified, // Can be specified only if this field is a map. If unspecified,
// it falls back to the file option named `map_type` which defaults to // it falls back to the file option named `map_type` which defaults to
// `scala.collection.immutable.Map` // `scala.collection.immutable.Map`
optional string map_type = 7; optional string map_type = 7;
// If true, no default value will be generated for this field in the message // If true, no default value will be generated for this field in the message
// constructor. If this field is set, it has the highest precedence and overrides the // constructor. If this field is set, it has the highest precedence and overrides the
// values at the message-level and file-level. // values at the message-level and file-level.
optional bool no_default_value_in_constructor = 9; optional bool no_default_value_in_constructor = 9;
// Do not box this value in Option[T]. If set, this overrides MessageOptions.no_box // Do not box this value in Option[T]. If set, this overrides MessageOptions.no_box
optional bool no_box = 30; optional bool no_box = 30;
// Like no_box it does not box a value in Option[T], but also fails parsing when a value // Like no_box it does not box a value in Option[T], but also fails parsing when a value
// is not provided. This enables to emulate required fields in proto3. // is not provided. This enables to emulate required fields in proto3.
optional bool required = 31; optional bool required = 31;
extensions 1000 to max; extensions 1000 to max;
} }
extend google.protobuf.FieldOptions { extend google.protobuf.FieldOptions {
// Field-level optionals for ScalaPB. // Field-level optionals for ScalaPB.
// Extension number officially assigned by protobuf-global-extension-registry@google.com // Extension number officially assigned by protobuf-global-extension-registry@google.com
optional FieldOptions field = 1020; optional FieldOptions field = 1020;
} }
message EnumOptions { message EnumOptions {
// Additional classes and traits to mix in to the base trait // Additional classes and traits to mix in to the base trait
repeated string extends = 1; repeated string extends = 1;
// Additional classes and traits to mix in to the companion object. // Additional classes and traits to mix in to the companion object.
repeated string companion_extends = 2; repeated string companion_extends = 2;
// All instances of this enum will be converted to this type. An implicit TypeMapper // All instances of this enum will be converted to this type. An implicit TypeMapper
// must be present. // must be present.
optional string type = 3; optional string type = 3;
// Custom annotations to add to the generated enum's base class. // Custom annotations to add to the generated enum's base class.
repeated string base_annotations = 4; repeated string base_annotations = 4;
// Custom annotations to add to the generated trait. // Custom annotations to add to the generated trait.
repeated string recognized_annotations = 5; repeated string recognized_annotations = 5;
// Custom annotations to add to the generated Unrecognized case class. // Custom annotations to add to the generated Unrecognized case class.
repeated string unrecognized_annotations = 6; repeated string unrecognized_annotations = 6;
extensions 1000 to max; extensions 1000 to max;
} }
extend google.protobuf.EnumOptions { extend google.protobuf.EnumOptions {
// Enum-level optionals for ScalaPB. // Enum-level optionals for ScalaPB.
// Extension number officially assigned by protobuf-global-extension-registry@google.com // Extension number officially assigned by protobuf-global-extension-registry@google.com
// //
// The field is called enum_options and not enum since enum is not allowed in Java. // The field is called enum_options and not enum since enum is not allowed in Java.
optional EnumOptions enum_options = 1020; optional EnumOptions enum_options = 1020;
} }
message EnumValueOptions { message EnumValueOptions {
// Additional classes and traits to mix in to an individual enum value. // Additional classes and traits to mix in to an individual enum value.
repeated string extends = 1; repeated string extends = 1;
// Name in Scala to use for this enum value. // Name in Scala to use for this enum value.
optional string scala_name = 2; optional string scala_name = 2;
// Custom annotations to add to the generated case object for this enum value. // Custom annotations to add to the generated case object for this enum value.
repeated string annotations = 3; repeated string annotations = 3;
extensions 1000 to max; extensions 1000 to max;
} }
extend google.protobuf.EnumValueOptions { extend google.protobuf.EnumValueOptions {
// Enum-level optionals for ScalaPB. // Enum-level optionals for ScalaPB.
// Extension number officially assigned by protobuf-global-extension-registry@google.com // Extension number officially assigned by protobuf-global-extension-registry@google.com
optional EnumValueOptions enum_value = 1020; optional EnumValueOptions enum_value = 1020;
} }
message OneofOptions { message OneofOptions {
// Additional traits to mix in to a oneof. // Additional traits to mix in to a oneof.
repeated string extends = 1; repeated string extends = 1;
// Name in Scala to use for this oneof field. // Name in Scala to use for this oneof field.
optional string scala_name = 2; optional string scala_name = 2;
extensions 1000 to max; extensions 1000 to max;
} }
extend google.protobuf.OneofOptions { extend google.protobuf.OneofOptions {
// Enum-level optionals for ScalaPB. // Enum-level optionals for ScalaPB.
// Extension number officially assigned by protobuf-global-extension-registry@google.com // Extension number officially assigned by protobuf-global-extension-registry@google.com
optional OneofOptions oneof = 1020; optional OneofOptions oneof = 1020;
} }
enum MatchType { enum MatchType {
CONTAINS = 0; CONTAINS = 0;
EXACT = 1; EXACT = 1;
PRESENCE = 2; PRESENCE = 2;
} }
message FieldTransformation { message FieldTransformation {
optional google.protobuf.FieldDescriptorProto when = 1; optional google.protobuf.FieldDescriptorProto when = 1;
optional MatchType match_type = 2 [default=CONTAINS]; optional MatchType match_type = 2 [default=CONTAINS];
optional google.protobuf.FieldOptions set = 3; optional google.protobuf.FieldOptions set = 3;
} }
message PreprocessorOutput { message PreprocessorOutput {
map<string, ScalaPbOptions> options_by_file = 1; map<string, ScalaPbOptions> options_by_file = 1;
} }