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); }
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(); } }