Beispiel #1
0
        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;
        }
Beispiel #2
0
        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;
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
0
        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;
        }