public override Boolean Do(ObjectEventArgs args) { if (args.Trigger.Holder.IsActive()) return false; if (!args.Trigger.Holder.DirectionHandler.IsFacing(args.Source.Holder)) return false; if (!SpeechManager.Instance.AddSpeech( ((Personnage)args.Source.Holder).SpeechHandler, (Personnage)args.Trigger.Holder)) return false; return true; }
public override Boolean Do(ObjectEventArgs args) { /* ParticleMapEffect effect = new ParticleMapEffect(); MapEffectManager.Instance.AddEffect(effect, new SFML.Window.Vector2f(args.Player.Center.X, args.Player.Bottom + 10F), args.Player.Z); args.Map.SetPhysicsIsRunning(false); args.Player.StopMove(); args.Player.TrySetState("Teleporting"); effect.OnStopping += new MapEffectEventHandler((sender, e) => { args.Map.SetPhysicsIsRunning(); args.Player.Stop();*/ args.Player.SetMap(MapName, WarpPointName); /*});*/ return true; }
public void CallEvent(ObjectEventType type, ObjectEventArgs args) { while (EventsToRemove.Count > 0) Events.Remove(EventsToRemove.Dequeue()); if (!IsActive) return; foreach (ObjectEvent evt in Events) { if (evt.Type != type) continue; evt.Call(args); } }
public virtual bool Call(ObjectEventArgs args) { if (!IsActive) return true; if (Actions.Count == 0) return false; if (ActionKeyMode && !Inputs.IsGameInput(ActionKey, true, Inputs.DEFAULT_INPUT_DELAY, true, true)) return false; Boolean interruptsEvents = false; foreach (Action action in Actions) if (action.Do(args) && action.InterruptsEvents) interruptsEvents = true; if (interruptsEvents) { args.Map.InterruptEvents(); args.Map.RefreshEvents(); args.Map.EventsAreInterrupted = true; } return true; }