Files
blitzkit/packages/core/src/protos/tank_definitions.proto
T

244 lines
5.7 KiB
Protocol Buffer
Raw Normal View History

2024-10-05 15:24:54 -05:00
syntax = "proto2";
2024-09-28 21:07:00 -05:00
package blitzkit;
message TankDefinitions {
map<uint32, TankDefinition> tanks = 1;
}
message TankDefinition {
2024-10-05 15:24:54 -05:00
required uint32 id = 1;
2024-09-28 21:07:00 -05:00
map<uint32, uint32> roles = 2;
optional string description = 3;
2024-10-05 15:24:54 -05:00
required bool fixed_camouflage = 4;
2024-09-28 21:07:00 -05:00
repeated int32 camouflages = 5;
repeated int32 ancestors = 6;
repeated int32 successors = 7;
repeated Crew crew = 8;
2024-10-05 15:24:54 -05:00
required uint32 health = 9;
required string nation = 10;
required string name = 11;
2024-09-28 21:07:00 -05:00
optional string name_full = 12;
2024-10-05 15:24:54 -05:00
required TankType type = 13;
required uint32 max_consumables = 14;
required uint32 max_provisions = 15;
required Tier tier = 16;
required TankClass class = 17;
required bool testing = 18;
required bool deprecated = 19;
2024-09-28 21:07:00 -05:00
repeated TurretDefinition turrets = 20;
repeated EngineDefinition engines = 21;
repeated TrackDefinition tracks = 22;
2024-10-05 15:24:54 -05:00
required TankPrice price = 23;
2024-10-05 23:20:04 -05:00
optional ResearchCost research_cost = 24;
2024-10-05 15:24:54 -05:00
required float speed_forwards = 25;
required float speed_backwards = 26;
required float camouflage_still = 27;
required float camouflage_moving = 28;
required float camouflage_onFire = 29;
required string equipment_preset = 30;
required uint32 weight = 31;
2024-09-28 21:07:00 -05:00
}
2024-10-05 23:20:04 -05:00
message ResearchCost {
oneof research_cost_type {
uint32 xp = 1;
ResearchCostSeasonalTokens seasonal_tokens = 2;
}
}
message ResearchCostSeasonalTokens {
required uint32 season = 1;
required uint32 tokens = 2;
}
2024-09-28 21:07:00 -05:00
enum TankPriceType {
2024-09-30 22:35:37 -05:00
TANK_PRICE_TYPE_CREDITS = 0;
TANK_PRICE_TYPE_GOLD = 1;
2024-09-28 21:07:00 -05:00
}
message TankPrice {
2024-10-05 15:24:54 -05:00
required TankPriceType type = 1;
required uint32 value = 2;
2024-09-28 21:07:00 -05:00
}
message TrackDefinition {
2024-10-05 15:24:54 -05:00
required uint32 id = 1;
required Tier tier = 2;
required string name = 3;
required uint32 weight = 4;
required float traverse_speed = 5;
2024-10-05 23:20:04 -05:00
optional ResearchCost research_cost = 6;
2024-10-05 15:24:54 -05:00
required float dispersion_move = 7;
required float dispersion_traverse = 8;
required float resistance_hard = 9;
required float resistance_medium = 10;
required float resistance_soft = 11;
2024-09-28 21:07:00 -05:00
repeated Unlock unlocks = 12;
}
message EngineDefinition {
2024-10-05 15:24:54 -05:00
required uint32 id = 1;
required string name = 2;
2024-10-05 23:20:04 -05:00
optional ResearchCost research_cost = 3;
2024-10-05 15:24:54 -05:00
required Tier tier = 4;
2024-10-05 16:44:07 -05:00
required float fire_chance = 5;
2024-10-05 15:24:54 -05:00
required uint32 power = 6;
required uint32 weight = 7;
2024-09-28 21:07:00 -05:00
repeated Unlock unlocks = 8;
}
message TurretDefinition {
2024-10-05 15:24:54 -05:00
required uint32 id = 1;
required uint32 health = 2;
required uint32 view_range = 3;
required float traverse_speed = 4;
2024-10-05 23:20:04 -05:00
optional ResearchCost research_cost = 5;
2024-10-05 15:24:54 -05:00
required string name = 6;
required Tier tier = 7;
required uint32 weight = 8;
2024-09-28 21:07:00 -05:00
repeated GunDefinition guns = 9;
repeated Unlock unlocks = 10;
}
message GunDefinition {
oneof gun_type {
GunDefinitionRegular regular = 1;
GunDefinitionAutoLoader auto_loader = 2;
GunDefinitionAutoReloader auto_reloader = 3;
}
}
message GunDefinitionRegular {
2024-10-05 16:44:07 -05:00
required GunDefinitionBase base = 1;
required GunDefinitionRegularProperties extension = 2;
2024-09-28 21:07:00 -05:00
}
2024-09-29 20:56:52 -05:00
message GunDefinitionRegularProperties {
2024-10-05 15:24:54 -05:00
required float reload = 1;
2024-09-29 20:56:52 -05:00
}
2024-09-28 21:07:00 -05:00
message GunDefinitionAutoLoader {
2024-10-05 16:44:07 -05:00
required GunDefinitionBase base = 1;
required GunDefinitionAutoLoaderProperties extension = 2;
2024-09-28 21:07:00 -05:00
}
2024-09-29 20:56:52 -05:00
message GunDefinitionAutoLoaderProperties {
2024-10-05 15:24:54 -05:00
required float clip_reload = 1;
required float intra_clip = 2;
required float shell_count = 3;
2024-09-29 20:56:52 -05:00
}
2024-09-28 21:07:00 -05:00
message GunDefinitionAutoReloader {
2024-10-05 16:44:07 -05:00
required GunDefinitionBase base = 1;
required GunDefinitionAutoReloaderProperties extension = 2;
2024-09-28 21:07:00 -05:00
}
2024-09-29 20:56:52 -05:00
message GunDefinitionAutoReloaderProperties {
repeated float shell_reloads = 1;
2024-10-05 15:24:54 -05:00
required float intra_clip = 2;
required float shell_count = 3;
2024-09-29 20:56:52 -05:00
}
2024-09-28 21:07:00 -05:00
message GunDefinitionBase {
2024-10-05 15:24:54 -05:00
required uint32 id = 1;
required float rotation_speed = 2;
2024-10-05 23:20:04 -05:00
optional ResearchCost research_cost = 3;
2024-10-05 15:24:54 -05:00
required uint32 weight = 4;
required string name = 5;
required Tier tier = 6;
2024-09-28 21:07:00 -05:00
repeated ShellDefinition shells = 7;
2024-10-05 15:24:54 -05:00
required float camouflage_loss = 8;
required float aim_time = 9;
required float dispersion_base = 10;
required float dispersion_traverse = 11;
required float dispersion_shot = 12;
required float dispersion_damaged = 13;
2024-09-28 21:07:00 -05:00
repeated Unlock unlocks = 14;
}
message ShellDefinition {
2024-10-05 15:24:54 -05:00
required uint32 id = 1;
required string name = 2;
required uint32 velocity = 3;
required uint32 armor_damage = 4;
required uint32 module_damage = 5;
2024-10-05 23:20:04 -05:00
required float caliber = 6;
2024-10-05 15:24:54 -05:00
required string icon = 7;
required ShellPenetration penetration = 8;
required ShellType type = 9;
2024-10-05 23:20:04 -05:00
optional float normalization = 10;
optional float ricochet = 11;
optional float explosion_radius = 12;
2024-09-28 21:07:00 -05:00
}
enum ShellType {
2024-09-30 22:35:37 -05:00
SHELL_TYPE_AP = 0;
SHELL_TYPE_APCR = 1;
SHELL_TYPE_HEAT = 2;
SHELL_TYPE_HE = 3;
2024-09-28 21:07:00 -05:00
}
message ShellPenetration {
2024-10-05 23:20:04 -05:00
required float near = 1;
required float far = 2;
2024-09-28 21:07:00 -05:00
}
message Unlock {
2024-10-05 15:24:54 -05:00
required int32 id = 1;
required ModuleType type = 2;
required UnlockCost cost = 3;
2024-09-28 21:07:00 -05:00
}
message UnlockCost {
2024-10-05 15:24:54 -05:00
required string type = 1;
required int32 value = 2;
2024-09-28 21:07:00 -05:00
}
enum ModuleType {
2024-09-30 22:35:37 -05:00
MODULE_TYPE_VEHICLE = 0;
MODULE_TYPE_ENGINE = 1;
MODULE_TYPE_TRACKS = 2;
MODULE_TYPE_TURRET = 3;
MODULE_TYPE_GUN = 4;
2024-09-28 21:07:00 -05:00
}
enum TankClass {
2024-09-30 22:35:37 -05:00
TANK_CLASS_LIGHT = 0;
TANK_CLASS_MEDIUM = 1;
TANK_CLASS_HEAVY = 2;
TANK_CLASS_TANK_DESTROYER = 3;
2024-09-28 21:07:00 -05:00
}
enum Tier {
2024-09-30 22:35:37 -05:00
TIER_I = 0;
TIER_II = 1;
TIER_III = 2;
TIER_IV = 3;
TIER_V = 4;
TIER_VI = 5;
TIER_VII = 6;
TIER_VIII = 7;
TIER_IX = 8;
TIER_X = 9;
2024-09-28 21:07:00 -05:00
}
enum TankType {
2024-09-30 22:35:37 -05:00
TANK_TYPE_RESEARCHABLE = 0;
TANK_TYPE_PREMIUM = 1;
TANK_TYPE_COLLECTOR = 2;
2024-09-28 21:07:00 -05:00
}
message Crew {
2024-10-05 15:24:54 -05:00
required CrewType type = 1;
required uint32 count = 2;
2024-09-28 21:07:00 -05:00
repeated CrewType substitute = 3;
}
enum CrewType {
2024-09-30 22:35:37 -05:00
CREW_TYPE_COMMANDER = 0;
CREW_TYPE_RADIOMAN = 1;
CREW_TYPE_GUNNER = 2;
CREW_TYPE_DRIVER = 3;
CREW_TYPE_LOADER = 4;
2024-09-28 21:07:00 -05:00
}