This commit is contained in:
aozhiwei 2023-04-03 10:53:00 +08:00
parent ed9c40349a
commit 5005b6dbda
6 changed files with 23 additions and 2 deletions

View File

@ -147,6 +147,11 @@ void CallFuncBuff::Activate()
ClearSummonObstacle();
}
break;
case BuffCallFunc_e::kResetSkillCd:
{
ResetSkillCd();
}
break;
default:
{
}
@ -775,3 +780,12 @@ void CallFuncBuff::ClearSummonObstacle()
float num = meta->GetBuffParam3(this);
owner->RemoveSurplusObstacle(id, num);
}
void CallFuncBuff::ResetSkillCd()
{
int skill_id = meta->_int_buff_param2;
Skill* skill = owner->GetSkill(skill_id);
if (skill) {
skill->ResetSkillCd();
}
}

View File

@ -24,6 +24,7 @@ A8_DECLARE_CLASS_ENUM(BuffCallFunc_e, int,
kSummonObstacleSepcPoint = 24,
kSummonObstacleSpecDistance = 25,
kClearSummonObstacle = 26,
kResetSkillCd = 27
);
@ -51,6 +52,7 @@ class CallFuncBuff : public Buff
void SummonObstacleSpecPoint();
void SummonObstacleSpecDistance();
void ClearSummonObstacle();
void ResetSkillCd();
float hold_param2_ = 0.0;
};

View File

@ -13,9 +13,11 @@ GridCell::GridCell()
{
entitys_.reserve(MAX_ROOM_IDX);
creatures_.reserve(MAX_ROOM_IDX);
obstacles_.reserve(MAX_ROOM_IDX);
for (int i = 0; i < MAX_ROOM_IDX; ++i) {
entitys_.push_back(std::set<Entity*>());
creatures_.push_back(std::set<Creature*>());
obstacles_.push_back(std::set<Obstacle*>());
}
}
@ -24,6 +26,7 @@ void GridCell::ClearRoomData(Room* room)
{
entitys_[room->GetRoomIdx()].clear();
creatures_[room->GetRoomIdx()].clear();
obstacles_[room->GetRoomIdx()].clear();
}
void GridCell::TraverseHumanList(std::function<void (Human*, bool&)> func,

View File

@ -529,6 +529,7 @@ void MapInstance::MarkMapAreaPolys()
int ext_flag = 0;
dtPoly* poly = &tile->polys[i];
if ((poly->flags & SAMPLE_POLYFLAGS_SWIM) == SAMPLE_POLYFLAGS_SWIM) {
#if 0
const mt::MapArea* last_area_meta = nullptr;
for (int ii = 0; ii < poly->vertCount; ++ii) {
const float* vc = &tile->verts[poly->verts[ii]*3];
@ -573,6 +574,7 @@ void MapInstance::MarkMapAreaPolys()
}
break;
}
#endif
} else if ((poly->flags & SAMPLE_POLYFLAGS_GLASS) == SAMPLE_POLYFLAGS_GLASS) {
for (int ii = 0; ii < poly->vertCount; ++ii) {
const float* vc = &tile->verts[poly->verts[ii]*3];

View File

@ -976,7 +976,7 @@ float BattleDataContext::GetBrainLifePct()
float BattleDataContext::GetSkillCdPct()
{
return hero_ability_->GetSkillCdPct();
return hero_ability_->GetSkillCdPct() + owner_.Get()->GetAbility()->GetAttrAddition(kHAT_SkillTime);
}
float BattleDataContext::GetRescueTimePct()

View File

@ -58,7 +58,7 @@ int Skill::GetCd()
meta->skill_type() == kPassiveSkill) {
return meta->skill_cd() * 1000;
} else {
return meta->skill_cd() * 1000 * (1 + owner->GetBattleContext()->GetSkillCdPct());
return meta->skill_cd() * 1000 * (1 - owner->GetBattleContext()->GetSkillCdPct());
}
}