add escape button (changed a61)

This commit is contained in:
NguyenVanDat
2026-01-09 09:38:51 +07:00
parent 67908e80fc
commit 570455afce
5 changed files with 147 additions and 3 deletions
+95
View File
@@ -500,6 +500,7 @@ namespace BrewMonster
case int value when value == EC_MsgDef.MSG_PM_PLAYERGATHER: OnMsgPlayerGather(Msg); break;
case int value when value == EC_MsgDef.MSG_HST_COOLTIMEDATA: OnMsgHstCoolTimeData(Msg); break;
case int value when value == EC_MsgDef.MSG_HST_SETCOOLTIME: OnMsgHstSetCoolTime(Msg); break;
case int value when value == EC_MsgDef.MSG_HST_PRESSCANCEL: OnMsgHstPressCancel(Msg); break;
}
@@ -6110,5 +6111,99 @@ namespace BrewMonster
}
}
}
private void OnMsgHstPressCancel(ECMSG Msg)
{
CECHPWork pCurWork = null;
pCurWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_TRACEOBJECT);
if (pCurWork is CECHPWorkTrace workTrace)
{
workTrace.PressCancel();
return;
}
pCurWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_HACKOBJECT);
if (pCurWork != null)
{
UnityGameSession.c2s_CmdCancelAction();
return;
}
pCurWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_USEITEM);
if (pCurWork != null)
{
UnityGameSession.c2s_CmdCancelAction();
return;
}
pCurWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_SPELLOBJECT);
if (pCurWork != null)
{
int iState = ((CECHPWorkSpell)pCurWork).GetState();
if (iState == CECHPWorkSpell.Spell_magic_state.ST_INCANT)
{
UnityGameSession.c2s_CmdCancelAction();
return;
}
}
pCurWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_PICKUP);
if (pCurWork != null)
{
if (((EC_HPWorkPick)pCurWork).IsGather())
{
UnityGameSession.c2s_CmdCancelAction();
return;
}
}
//todo: handle this part
// pCurWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_CONCENTRATE);
// if (pCurWork !=null){
// if (IsOperatingPet()){
// UnityGameSession.c2s_CmdCancelAction();
// return;
// }
// }
// pCurWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_CONGREGATE);
// if (pCurWork !=null){
// if (IsCongregating()){
// UnityGameSession.c2s_CmdCancelAction();
// return;
// }
// }
if (m_bUsingTrashBox || DoingSessionPose())
{
UnityGameSession.c2s_CmdCancelAction();
return;
}
// Cancel current selection
if (m_idSelTarget >0)
{
SelectTarget(0);
return;
}
// Some work have lower priority
pCurWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_MOVETOPOS);
if (pCurWork != null)
{
((CECHPWorkMove)pCurWork).PressCancel();
return;
}
}
// Is doing session pose ?
private bool DoingSessionPose()
{
var pCurWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_STAND);
if (pCurWork !=null){
if (((CECHPWorkStand)pCurWork).DoingSessionPose()){
return true;
}
}
return false;
}
}
}