111 lines
3.0 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|