This commit is contained in:
aozhiwei 2022-10-26 15:26:06 +08:00
parent 5502e876e2
commit 9c72db9856

View File

@ -285,11 +285,21 @@ void InternalShot(Creature* c,
if (!skill_meta) { if (!skill_meta) {
c->room->frame_event.AddShot(c->GetWeakPtrRef()); c->room->frame_event.AddShot(c->GetWeakPtrRef());
} }
if (weapon_meta->i->cast_time() > 0) { if (c->aiming) {
int buff_uniid = c->TryAddBuff(c, kVertigoBuffId); if (weapon_meta->i->aiming_cast_time() > 0) {
Buff* buff = c->GetBuffByUniId(buff_uniid); int buff_uniid = c->TryAddBuff(c, kVertigoBuffId);
if (buff && buff->remover_timer) { Buff* buff = c->GetBuffByUniId(buff_uniid);
c->room->xtimer.ModifyTimer(buff->remover_timer, weapon_meta->i->cast_time() / FRAME_RATE_MS); if (buff && buff->remover_timer) {
c->room->xtimer.ModifyTimer(buff->remover_timer, weapon_meta->i->aiming_cast_time() / FRAME_RATE_MS);
}
}
} else {
if (weapon_meta->i->cast_time() > 0) {
int buff_uniid = c->TryAddBuff(c, kVertigoBuffId);
Buff* buff = c->GetBuffByUniId(buff_uniid);
if (buff && buff->remover_timer) {
c->room->xtimer.ModifyTimer(buff->remover_timer, weapon_meta->i->cast_time() / FRAME_RATE_MS);
}
} }
} }
a8::Vec2 old_context_dir = c->context_dir; a8::Vec2 old_context_dir = c->context_dir;
@ -333,11 +343,21 @@ void InternalShot(Creature* c,
c->room->xtimer.ModifyTimer(buff->remover_timer, weapon_meta->lock_time / FRAME_RATE_MS); c->room->xtimer.ModifyTimer(buff->remover_timer, weapon_meta->lock_time / FRAME_RATE_MS);
} }
} }
if (weapon_meta->i->cast_time() > 0) { if (c->aiming) {
int buff_uniid = c->TryAddBuff(c, kVertigoBuffId); if (weapon_meta->i->aiming_cast_time() > 0) {
Buff* buff = c->GetBuffByUniId(buff_uniid); int buff_uniid = c->TryAddBuff(c, kVertigoBuffId);
if (buff && buff->remover_timer) { Buff* buff = c->GetBuffByUniId(buff_uniid);
c->room->xtimer.ModifyTimer(buff->remover_timer, weapon_meta->i->cast_time() / FRAME_RATE_MS); if (buff && buff->remover_timer) {
c->room->xtimer.ModifyTimer(buff->remover_timer, weapon_meta->i->aiming_cast_time() / FRAME_RATE_MS);
}
}
} else {
if (weapon_meta->i->cast_time() > 0) {
int buff_uniid = c->TryAddBuff(c, kVertigoBuffId);
Buff* buff = c->GetBuffByUniId(buff_uniid);
if (buff && buff->remover_timer) {
c->room->xtimer.ModifyTimer(buff->remover_timer, weapon_meta->i->cast_time() / FRAME_RATE_MS);
}
} }
} }
MetaData::HeroShotAnimation* shot_animi = c->GetHeroMeta() ? MetaData::HeroShotAnimation* shot_animi = c->GetHeroMeta() ?