import "networkbasetypes.proto";

enum ECsgoGameEvents {
	GE_PlayerAnimEventId = 450;
	GE_RadioIconEventId = 451;
	GE_FireBulletsId = 452;
	GE_PlayerBulletHitId = 453;
}

message CMsgTEPlayerAnimEvent {
	optional fixed32 player = 1 [default = 16777215];
	optional uint32 event = 2;
	optional int32 data = 3;
}

message CMsgTERadioIcon {
	optional fixed32 player = 1 [default = 16777215];
}

message CMsgTEFireBullets {
	message Extra {
		optional .CMsgQAngle aim_punch = 1;
		optional int32 attack_tick_count = 2;
		optional float attack_tick_frac = 3;
		optional int32 render_tick_count = 4;
		optional float render_tick_frac = 5;
		optional float inaccuracy_move = 6;
		optional float inaccuracy_air = 7;
		optional int32 type = 8;
	}

	optional .CMsgVector origin = 1;
	optional .CMsgQAngle angles = 2;
	optional uint32 weapon_id = 3 [default = 16777215];
	optional uint32 mode = 4;
	optional uint32 seed = 5;
	optional fixed32 player = 6 [default = 16777215];
	optional float inaccuracy = 7;
	optional float recoil_index = 8;
	optional float spread = 9;
	optional int32 sound_type = 10;
	optional uint32 item_def_index = 11;
	optional fixed32 sound_dsp_effect = 12;
	optional .CMsgVector ent_origin = 13;
	optional uint32 num_bullets_remaining = 14;
	optional uint32 attack_type = 15;
	optional bool player_inair = 17;
	optional bool player_scoped = 18;
	optional int32 tick = 19;
	optional .CMsgTEFireBullets.Extra extra = 16;
}

message CMsgPlayerBulletHit {
	optional int32 attacker_slot = 1 [default = -1];
	optional int32 victim_slot = 2 [default = -1];
	optional .CMsgVector victim_pos = 3;
	optional int32 hit_group = 4;
	optional int32 damage = 5;
	optional int32 penetration_count = 6;
	optional bool is_kill = 7;
}
