-
-
Notifications
You must be signed in to change notification settings - Fork 49
/
player_stats.proto
110 lines (97 loc) · 3.96 KB
/
player_stats.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
syntax = "proto2";
import "api/stats/stats.proto";
import "api/stats/events.proto";
import "api/stats/per_possession_stats.proto";
import "api/stats/rumble.proto";
import "api/stats/dropshot.proto";
package api.stats;
message Boost {
optional double boost_usage = 1;
optional int32 num_small_boosts = 2;
optional int32 num_large_boosts = 3;
// Collecting boost when near full
optional float wasted_collection = 4;
// Using boost when at max speed while on the ground
optional float wasted_usage = 5;
optional float time_full_boost = 6;
// Time when player has < 25 boost
optional float time_low_boost = 7;
// Time when player has 0 boost
optional float time_no_boost = 8;
// Number of the large boosts taken on the enemy side
optional int32 num_stolen_boosts = 9;
optional float average_boost_level = 10;
// Wasted boost from big boosts
optional float wasted_big = 11;
// Wasted boost from small boosts
optional float wasted_small = 12;
}
message Distance {
optional double ball_hit_forward = 1;
optional double ball_hit_backward = 2;
optional float time_closest_to_ball = 3;
optional float time_furthest_from_ball = 4;
optional float time_close_to_ball = 5; // only when player is < 500 units away
optional float time_closest_to_team_center = 6;
optional float time_furthest_from_team_center = 7;
}
message RelativePositioning {
// Uses same math as in front of ball and behind ball (y only)
optional float time_in_front_of_center_of_mass = 1;
optional float time_behind_center_of_mass = 2;
// Uses same math as in front of ball and behind ball (y only)
optional float time_most_forward_player = 3;
optional float time_most_back_player = 4;
optional float time_between_players = 5;
}
message PlayerStats {
optional Boost boost = 1;
optional Distance distance = 2;
optional api.stats.Possession possession = 3;
optional api.stats.PositionalTendencies positional_tendencies = 4;
optional api.stats.Averages averages = 5;
optional api.stats.HitCounts hit_counts = 6;
repeated api.stats.CameraChange camera_changes = 7;
optional Controller controller = 8;
optional api.stats.Speed speed = 9;
optional RelativePositioning relative_positioning = 10;
optional api.stats.PerPossessionStats per_possession_stats = 11;
optional api.stats.RumbleStats rumble_stats = 12;
optional CarryDribbles ball_carries = 13;
optional CumulativeKickoffStats kickoff_stats = 14;
optional api.stats.DropshotStats dropshot_stats = 15;
optional DemoStats demo_stats = 16;
}
message Controller {
optional bool is_keyboard = 1;
optional float analogue_steering_input_percent = 2;
optional float analogue_throttle_input_percent = 3;
optional float time_ballcam = 4;
optional float time_handbrake = 5;
}
// Stats for carrying
message CarryDribbles {
optional int32 total_carries = 1;
optional int32 total_flicks = 2;
optional float longest_carry = 3;
optional float furthest_carry = 4;
optional float total_carry_time = 5;
optional float average_carry_time = 6;
optional float fastest_carry_speed = 7; // Your speed along the ground while dribbling the ball
optional float total_carry_distance = 8; // Just adding up the start/end distances. It is NOT distance along path
optional DetailedCarryStats carry_stats = 9;
}
message CumulativeKickoffStats {
optional int32 total_kickoffs = 1; // In unranked players may not be there for all kickoffs in the game.
optional int32 num_time_boost = 2;
optional int32 num_time_cheat = 3;
optional int32 num_time_defend = 4;
optional int32 num_time_go_to_ball = 5;
optional int32 num_time_afk = 6;
optional int32 num_time_first_touch = 7;
optional float average_boost_used = 8; // The average amount of boost used over all kickoff events
}
message DemoStats {
optional int32 num_demos_inflicted = 1;
optional int32 num_demos_taken = 2;
}