Ejemplo n.º 1
0
    public override void OnClaim( )
    {
        //变更状态
        base.OnClaim();

        //注册监听器
        ConstantDefine.EnemyType[] types = new ConstantDefine.EnemyType[Targets.Count];
        for (int i = 0; i < types.Length; i++)
        {
            types[i] = Targets[i].targetType;
        }
        QuestManager.GetInstance().RegisterCrusadeQuestEventHandler(types, UpdateProgress);

        //UI不在这里
    }
Ejemplo n.º 2
0
    public override void OnClaim( )
    {
        //变更状态
        base.OnClaim();

        //注册监听器
        ConstantDefine.EnemyType[] types = new ConstantDefine.EnemyType[Targets.Count];
        for (int i = 0; i < types.Length; i++)
        {
            types[i] = Targets[i].targetType;
        }
        QuestManager.GetInstance().RegisterCrusadeQuestEventHandler(types, UpdateProgress);

        //UI不在这里
    }
Ejemplo n.º 3
0
    /// <summary>
    /// 监听任务所需击杀的敌人的死亡事件,注册在QuestManager
    /// </summary>
    protected void UpdateProgress(byte id, ConstantDefine.EnemyType type)
    {
        for (int i = 0; i < Targets.Count; i++)
        {
            if (Targets[i].targetType.Equals(type))
            {
                Targets[i].completedNumber++;
            }
        }

        //检查是否完成
        if (CheckCompletion())
        {
            OnCompleted();
        }
    }
Ejemplo n.º 4
0
 /// <summary>
 /// 当某个敌人死亡,此函数触发,并将事件转发给监听该敌人死亡的任务
 /// 场景中每出生一个敌人,这个敌人就注册该函数为其死亡事件的监听器
 /// </summary>
 /// <param name="enemyId">场景中敌人ID</param>
 /// <param name="enemyType">敌人类型</param>
 public void EnemyDeathEventHandler(byte enemyId, ConstantDefine.EnemyType enemyType)
 {
     m_enemyDeathHandlers[enemyType].Invoke(enemyId, enemyType);
 }