syntax = "proto3";

option java_package = "emu.grasscutter.net.proto";

import "AbilityIdentifier.proto";
import "HitCollision.proto";
import "Vector.proto";
import "AttackHitEffectResult.proto";

message AttackResult {
	uint32 attacker_id = 1;
	uint32 defense_id = 2;
	string anim_event_id = 3;
	AbilityIdentifier ability_identifier = 4;
	float damage = 6;
	bool is_crit = 7;
	HitCollision hit_collision = 8;
	uint32 hit_pos_type = 9;
	uint32 endure_break = 10;
	Vector resolved_dir = 11;
	int32 hit_retreat_angle_compat = 12;
	AttackHitEffectResult hit_eff_result = 13;
	uint32 element_type = 14;
	bool use_gadget_damage_action = 19;
	uint32 gadget_damage_action_idx = 20;
	bool is_resist_text = 22;
	uint32 critical_rand = 23;
	float element_amplify_rate = 24;
	float damage_shield = 26;
	bool mute_element_hurt = 27;
	uint32 amplify_reaction_type = 30;
	uint32 addhurt_reaction_type = 31;
	uint32 bullet_fly_time_ms = 32;
	uint32 attack_count = 33;
	uint32 hashed_anim_event_id = 34;
	uint32 attack_timestamp_ms = 36;
	float endure_delta = 37;
	uint32 target_type = 38;
	float element_durability_attenuation = 39;
}