示例#1
0
    override public bool LogicUpdate(uint elapsed)
    {
        if (!base.LogicUpdate(elapsed))
        {
            return(false);
        }

        for (int i = mList.Count - 1; i >= 0; --i)
        {
            NpcDeadTimer ndt = mList[i];
            if (ndt.npc == null)
            {
                mList.RemoveAt(i);
                continue;
            }

            ndt.timer += elapsed;
            if (ndt.timer > mWaitTime)
            {
                RemoveObject(ndt.npc.InstanceID);
                mList.RemoveAt(i);
                continue;
            }
        }

        return(true);
    }
示例#2
0
    override public void OnSpriteEnterZone(ObjectBase sprite, Zone zone)
    {
        base.OnSpriteEnterZone(sprite, zone);

        Npc npc = sprite as Npc;

        if (npc == null)
        {
            return;
        }

        if (string.Compare(npc.GetAlias(), "monster") != 0)
        {
            return;
        }

        npc.GetStateController().DoAction(mAnimParam);
        npc.SetWudi(true);

        NpcDeadTimer ndt = new NpcDeadTimer(npc, 0);

        mList.Add(ndt);

        mLife--;

        PopTipManager.Instance.AddNewTip(string.Format(StringHelper.GetString("td_notify", FontColor.Red), mLife));
        //PromptUIManager.Instance.AddNewPrompt(string.Format(StringHelper.GetString("td_notify"), mLife));

        Vector3 pos = new Vector3(GameConfig.TDEffectPosX, 0.0f, GameConfig.TDEffectPosZ);

        pos.y = GetHeight(pos.x, pos.z);
        CreateEffect(GameConfig.TDEffectId, Vector3.one, pos);

        EventSystem.Instance.PushEvent(new TDSceneLifeUpdateEvent(mLife));

        if (mLife < 1)
        {
            pass();
        }
    }