diff --git a/.gitignore b/.gitignore index 32b9c3439..56620aa2c 100644 --- a/.gitignore +++ b/.gitignore @@ -233,7 +233,10 @@ PublishScripts/ # NuGet Symbol Packages *.snupkg # The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* + +# REMOVING THIS BECAUSE IT IGNORES PACKAGES LOL +# **/[Pp]ackages/* + # except build/, which is used as an MSBuild target. !**/[Pp]ackages/build/ # Uncomment if necessary however generally it will be regenerated when needed diff --git a/packages/core/src/protos/tank.proto b/packages/core/src/protos/tank.proto new file mode 100644 index 000000000..9379dea83 --- /dev/null +++ b/packages/core/src/protos/tank.proto @@ -0,0 +1,83 @@ +syntax = "proto2"; + +package blitzkit; + +message Tank { + required ModuleHealth turret_rotator_health = 1; + required ModuleHealth surveying_device_health = 2; + required ModuleHealth gun_health = 3; + required ModuleHealth chassis_health = 4; + required ModuleHealth ammo_bay_health = 5; + required ModuleHealth engine_health = 6; + required ModuleHealth fuel_tank_health = 7; + + map crew_healths = 8; + + required float max_health = 9; + required float concealment_stationary = 10; + required float concealment_moving = 11; + required float concealment_on_shot = 12; + + repeated PitchLimit up_pitch_limits = 13; + repeated PitchLimit down_pitch_limits = 14; + + required float turret_turn_rate = 15; + required float spotting_range = 16; + + repeated Shell shells = 17; + + required float reload_time = 18; + + required float dispersion_stationary = 19; + required float dispersion_turret_rotation = 20; + required float dispersion_moving = 21; + required float dispersion_hull_rotation = 22; + + required float gun_turn_rate = 23; + required float mass = 24; + required float engine_power = 25; + required float max_speed_forwards = 26; + required float max_speed_backwards = 27; + required float rotation_speed = 28; + + required float terrain_resistance_hard = 29; + required float terrain_resistance_medium = 30; + required float terrain_resistance_soft = 31; + + required float brake_force = 32; +} + +message Shell { + required float speed = 1; + required float armor_damage = 2; + required float module_damage = 3; + required float caliber = 4; + required float penetration = 5; + required float penetration_500m = 6; + required float normalization = 7; + required float range = 8; + required float ricochet = 9; + required float penetration_loss_by_distance = 10; + required float explosion_radius = 11; + required int32 max_count = 12; +} + +message PitchLimit { + required float angle = 1; + required float value = 2; +} + +message ModuleHealth { + // max health, assigned by default at the start of the battle + required float max = 1; + // max health reached as the module regenerates after breaking + required float max_regen = 2; + // the range from 0 to this where the module is "red" and doesn't function + // all the while healing; after surpassing this, the "yellow" phase is reached + required float hysteresis = 3; + // the heal rate (per second); this won't apply if the health is at or above + // max_regen hence always leaving it in the "yellow" phase until repaired + required float heal_rate = 4; + // damage received (per second) to the modules when caught on fire + required float burn_rate = 5; +} \ No newline at end of file