Files
2025-12-04 17:26:42 +07:00

111 lines
3.0 KiB
C#

using UnityEngine;
namespace BrewMonster.Scripts
{
///////////////////////////////////////////////////////////////////////////
//
// Class CECHPWorkSpell
//
///////////////////////////////////////////////////////////////////////////
public class CECHPWorkSpell : CECHPWork
{
public static class Spell_magic_state
{
public const int ST_INCANT = 0,
ST_SPELL = 1;
}
public CECHPWorkSpell(CECHPWorkMan pWorkMan) : base(Host_work_ID.WORK_SPELLOBJECT, pWorkMan)
{
m_dwMask = Work_mask.MASK_SPELLOBJECT;
m_dwTransMask = Work_mask.MASK_STAND | Work_mask.MASK_MOVETOPOS | Work_mask.MASK_TRACEOBJECT;
Reset();
}
public CECHPWorkSpell(int iWorkID, CECHPWorkMan pWorkMan) : base(iWorkID, pWorkMan)
{
}
protected CECSkill m_pSkill; // Skill object
protected CECCounter m_OverTimeCnt; // Over time counter
protected int m_iState;
protected int m_idTarget; // Target id
// On first tick
protected virtual void OnFirstTick()
{
//m_pHost.m_iMoveMode = CECHostPlayer::MOVE_STAND;
}
// Prepare cast
public void PrepareCast(int idTarget, CECSkill pSkill, int iIncantTime)
{
}
// Change state
public void ChangeState(int iState)
{
}
// Get state
public int GetState()
{
return m_iState;
}
public CECSkill GetSkill()
{
return m_pSkill;
}
// Tick routine
public virtual bool Tick(uint dwDeltaTime)
{
return false;
}
// Reset work
public virtual void Reset()
{
}
// Copy work data
public virtual bool CopyData(CECHPWork pWork)
{
return false;
}
// Cancel work
public virtual void Cancel()
{
}
}
///////////////////////////////////////////////////////////////////////////
//
// Class CECHPWorkSpellMatcher
//
///////////////////////////////////////////////////////////////////////////
// 根据技能 ID 匹配 CECHPWorkSpell
// Match CECHPWorkSpell based on skill ID
public class CECHPWorkSpellMatcher : CECHPWorkMatcher
{
private CECSkill m_pSkill;
public CECHPWorkSpellMatcher(CECSkill pSkill)
{
m_pSkill = pSkill;
}
public bool Match(CECHPWork pWork, int priority, bool isDelayWork)
{
bool bMatching = false;
if (pWork != null && pWork.GetWorkID() == CECHPWork.Host_work_ID.WORK_SPELLOBJECT)
{
CECHPWorkSpell pWorkSpell = pWork as CECHPWorkSpell;
if (pWorkSpell != null && m_pSkill == pWorkSpell.GetSkill())
{
bMatching = true;
}
}
return bMatching;
}
}
}