This commit is contained in:
aozhiwei 2022-10-11 09:37:09 +08:00
parent e56703821e
commit fcc4a1a522

View File

@ -385,58 +385,36 @@ void InternalShot(Creature* c,
}
}
{
BulletInfo* bullet_info = new BulletInfo();
bullet_info->c = c->GetWeakPtrRef();
bullet_info->weapon_uniid = weapon_uniid;
bullet_info->weapon_meta = weapon_meta;
bullet_info->skill_meta = skill_meta;
bullet_info->bullet_meta = bullet_meta;
bullet_info->bullet_born_pos = bullet_born_pos;
bullet_info->bullet_dir = bullet_dir;
bullet_info->fly_distance = fly_distance;
bullet_info->delay_time = std::get<3>(tuple);
bullet_info->recoil_force = std::get<4>(tuple);
bullet_info->invincible_buff_uniid = invincible_buff_uniid;
bullet_info->trace_target_uniid = trace_target_uniid;
bullet_info->keep_shot_animi_timer_ptr = keep_shot_animi_timer_ptr;
bullet_info->shot_animi_time = shot_animi_time;
BulletInfo bullet_info;
bullet_info.c = c->GetWeakPtrRef();
bullet_info.weapon_uniid = weapon_uniid;
bullet_info.weapon_meta = weapon_meta;
bullet_info.skill_meta = skill_meta;
bullet_info.bullet_meta = bullet_meta;
bullet_info.bullet_born_pos = bullet_born_pos;
bullet_info.bullet_dir = bullet_dir;
bullet_info.fly_distance = fly_distance;
bullet_info.delay_time = std::get<3>(tuple);
bullet_info.recoil_force = std::get<4>(tuple);
bullet_info.invincible_buff_uniid = invincible_buff_uniid;
bullet_info.trace_target_uniid = trace_target_uniid;
bullet_info.keep_shot_animi_timer_ptr = keep_shot_animi_timer_ptr;
bullet_info.shot_animi_time = shot_animi_time;
if (skill_meta &&
(skill_meta->GetMagicId() == MAGIC_AXXF ||
skill_meta->GetMagicId() == MAGIC_HJHX)) {
bullet_info->trace_target_uniid = c->GetSkillTargetId();
bullet_info.trace_target_uniid = c->GetSkillTargetId();
}
if (weapon_meta->i->double_gun() &&
bulletIdx > (int)(bulletNum / 2)) {
bullet_info->hand = 1;
bullet_info.hand = 1;
}
#ifdef DEBUG
if (bullet_info->trace_target_uniid) {
a8::XPrintf("bullet trace_target_uniid:%d\n", {bullet_info->trace_target_uniid});
if (bullet_info.trace_target_uniid) {
a8::XPrintf("bullet trace_target_uniid:%d\n", {bullet_info.trace_target_uniid});
}
#endif
#if 1
InternalCreateBullet(*bullet_info);
delete bullet_info;
bullet_info = nullptr;
#else
c->room->xtimer.AddDeadLineTimerAndAttach
(
shot_animi_time / FRAME_RATE_MS,
a8::XParams()
.SetSender(bullet_info),
[] (const a8::XParams& param)
{
BulletInfo* bullet_info = (BulletInfo*)param.sender.GetUserData();
InternalCreateBullet(*bullet_info);
},
&c->xtimer_attacher.timer_list_,
[] (const a8::XParams& param)
{
BulletInfo* bullet_info = (BulletInfo*)param.sender.GetUserData();
delete bullet_info;
}
);
#endif
InternalCreateBullet(bullet_info);
}
}
c->GetTrigger()->Shot(weapon_meta);