1
This commit is contained in:
parent
6fabf19c71
commit
863e1fbae2
@ -3823,12 +3823,22 @@ void Creature::InternalUseSkill()
|
||||
|
||||
void Creature::AddSkillHoldState(int skill_id)
|
||||
{
|
||||
|
||||
skill_hold_skill_id = skill_id;
|
||||
skill_hold_start_frameno = room->GetFrameNo();
|
||||
Skill* skill = GetSkill(skill_hold_skill_id);
|
||||
if (skill && skill->meta->skill_hold_buff()) {
|
||||
TryAddBuff(owner_,
|
||||
skill->meta->skill_hold_buff());
|
||||
}
|
||||
}
|
||||
|
||||
void Creature::ClearSkillHoldState()
|
||||
{
|
||||
if (skill_hold_skill_id != 0) {
|
||||
Skill* skill = GetSkill(skill_hold_skill_id);
|
||||
if (skill && skill->meta->skill_hold_buff()) {
|
||||
RemoveBuffById(skill->meta->skill_hold_buff());
|
||||
}
|
||||
skill_hold_skill_id = 0;
|
||||
skill_hold_start_frameno = 0;
|
||||
}
|
||||
|
@ -263,6 +263,14 @@ void Player::InternalUpdate(int delta_time)
|
||||
if (throw_bomb) {
|
||||
UpdateThrowBomb();
|
||||
}
|
||||
if (skill_hold) {
|
||||
if (skill_hold_skill_id && skill_hold_skill_id != skill_hold) {
|
||||
ClearSkillHoldState();
|
||||
}
|
||||
AddSkillHoldState(skill_hold);
|
||||
} else {
|
||||
ClearSkillHoldState();
|
||||
}
|
||||
#if 0
|
||||
if (moving) {
|
||||
UpdateMoving();
|
||||
@ -1186,6 +1194,7 @@ void Player::_CMMove(f8::MsgHdr* hdr, const cs::CMMove& msg)
|
||||
}
|
||||
last_cmmove_frameno = room->GetFrameNo();
|
||||
trace_target_uniid = msg.trace_target_uniid();
|
||||
skill_hold = msg.skill_hold();
|
||||
#ifdef MYDEBUG1
|
||||
a8::XPrintf("move_dir:%f %f frameno:%d %d moving:%d\n",
|
||||
{
|
||||
|
@ -91,6 +91,8 @@ class Player : public Human
|
||||
|
||||
std::vector<int> interaction_objids;
|
||||
|
||||
int skill_hold = 0;
|
||||
|
||||
virtual ~Player() override;
|
||||
virtual void Initialize() override;
|
||||
virtual void Update(int delta_time) override;
|
||||
|
Loading…
x
Reference in New Issue
Block a user