feat: start of tank proto

This commit is contained in:
tresabhi committed 2025-01-26 21:51:35 -06:00
1 parent d178c458df
commit 1714028e83
2 files changed
+87 -1

No files matched your search

+4 -1
View File
@@ -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
+83
View File
@@ -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<string, CrewHealth> 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;
}