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; }