Exemple #1
0
 private void OnTriggerStay(Collider other)
 {
     if (!TriggerList.Contains(other.gameObject))
     {
         TriggerList.Add(other.gameObject);
     }
 }
    public override void OnInspectorGUI()
    {
        serializedObject.Update();

        var anim = serializedObject.FindProperty("anim");

        EditorGUILayout.PropertyField(anim);

        if (IntList != null)
        {
            IntList.DoLayoutList();
        }
        if (FloatList != null)
        {
            FloatList.DoLayoutList();
        }
        if (BoolList != null)
        {
            BoolList.DoLayoutList();
        }
        if (TriggerList != null)
        {
            TriggerList.DoLayoutList();
        }

        serializedObject.ApplyModifiedProperties();
    }
Exemple #3
0
 public FreeRuleConfig()
 {
     this.triggers         = new TriggerList();
     this.commons          = new CommonActions();
     this.components       = new GameComponents();
     this.gameComponentMap = new GameComponentMap();
 }
Exemple #4
0
 public PChiaTaoFaKuoTriggerInstaller() : base("假道伐虢的记录")
 {
     TriggerList.Add(new PTrigger("假道伐虢[开始记录]")
     {
         IsLocked = true,
         Time     = PPeriod.StartTurn.During,
         Effect   = (PGame Game) => {
             Game.TagManager.PopTag <PChiaTaoFaKuoTag>(PChiaTaoFaKuoTag.TagName);
             Game.TagManager.CreateTag(new PChiaTaoFaKuoTag(new List <PPlayer>()));
         }
     });
     TriggerList.Add(new PTrigger("假道伐虢[经过土地]")
     {
         IsLocked = true,
         Time     = PTime.MovePositionTime,
         Effect   = (PGame Game) => {
             PTransportTag TransportTag = Game.TagManager.FindPeekTag <PTransportTag>(PTransportTag.TagName);
             PPlayer Lord = TransportTag.Destination.Lord;
             if (Lord != null && !Lord.Equals(Game.NowPlayer))
             {
                 PChiaTaoFaKuoTag ChiaTaoFaKuoTag = Game.TagManager.FindPeekTag <PChiaTaoFaKuoTag>(PChiaTaoFaKuoTag.TagName);
                 if (!ChiaTaoFaKuoTag.LordList.Contains(Lord))
                 {
                     ChiaTaoFaKuoTag.LordList.Add(Lord);
                 }
             }
         }
     });
 }
Exemple #5
0
 public PLockTriggerInstaller() : base("连环传递伤害")
 {
     TriggerList.Add(new PTrigger("连环传递伤害")
     {
         IsLocked  = true,
         Time      = PTime.Injure.EndSettle,
         Condition = (PGame Game) => {
             PInjureTag InjureTag = Game.TagManager.FindPeekTag <PInjureTag>(PInjureTag.TagName);
             return(InjureTag.ToPlayer != null && InjureTag.Injure > 0 && InjureTag.ToPlayer.Tags.ExistTag(PTag.LockedTag.Name));
         },
         Effect = (PGame Game) => {
             PInjureTag InjureTag = Game.TagManager.FindPeekTag <PInjureTag>(PInjureTag.TagName);
             InjureTag.ToPlayer.Tags.PopTag <PTag>(PTag.LockedTag.Name);
             bool Invoke = false;
             Game.Traverse((PPlayer _Player) => {
                 if (!Invoke && _Player.Tags.ExistTag(PTag.LockedTag.Name))
                 {
                     Invoke = true;
                     PNetworkManager.NetworkServer.TellClients(new PPushTextOrder(_Player.Index.ToString(), "触发连锁伤害", PPushType.Injure.Name));
                     Game.Injure(InjureTag.FromPlayer, _Player, InjureTag.Injure, InjureTag.InjureSource);
                 }
             }, Game.GetNextPlayer(InjureTag.ToPlayer));
         }
     });
 }
Exemple #6
0
 public PResetTriggerInstaller() : base("重置武将牌")
 {
     TriggerList.Add(new PTrigger("翻面翻回")
     {
         IsLocked  = true,
         Time      = PPeriod.StartTurn.Before,
         Condition = (PGame Game) => {
             return(Game.NowPlayer.BackFace);
         },
         Effect = (PGame Game) => {
             Game.ChangeFace(Game.NowPlayer);
             Game.Monitor.EndTurnDirectly = true;
         }
     });
     TriggerList.Add(new PTrigger("移回游戏")
     {
         IsLocked  = true,
         Time      = PPeriod.StartTurn.Start,
         Condition = (PGame Game) => {
             return(Game.NowPlayer.OutOfGame);
         },
         Effect = (PGame Game) => {
             Game.NowPlayer.Tags.PopTag <PTag>(PTag.OutOfGameTag.Name);
         }
     });
 }
Exemple #7
0
        private void AddMouseMovementTriggerToList()
        {
            var triggerLayoutView = new TriggerLayoutView();

            inputNewTriggerEditor.SetMouseMovementTrigger(triggerLayoutView);
            TriggerList.Add(triggerLayoutView);
        }
 // Use this for initialization
 void Awake()
 {
     GameMan_Ref = GameObject.Find("GameManager").GetComponent <GameManager>();
     //P_Sword = GameMan_Ref.P_Sword;
     DamageTriggersScript = DamageCollider.gameObject.GetComponent <TriggerList>();
     SwordEquipped        = false;
 }
Exemple #9
0
 private void OnTriggerExit(Collider other)
 {
     if (TriggerList.Contains(other.gameObject))
     {
         TriggerList.Remove(other.gameObject);
     }
 }
Exemple #10
0
        private void AddTouchPadTriggerToList(Trigger trigger)
        {
            var newTouchpadTrigger = (TouchPressTrigger)trigger;
            var triggerLayoutView  = new TriggerLayoutView();

            inputNewTriggerEditor.SetTouchPadTrigger(newTouchpadTrigger.State, triggerLayoutView);
            TriggerList.Add(triggerLayoutView);
        }
Exemple #11
0
        private void AddMouseHoldTriggerToList(Trigger trigger)
        {
            var mouseHoldTrigger  = (MouseHoldTrigger)trigger;
            var triggerLayoutView = new TriggerLayoutView();

            inputNewTriggerEditor.SetMouseHoldTrigger(mouseHoldTrigger.Button, triggerLayoutView);
            TriggerList.Add(triggerLayoutView);
        }
Exemple #12
0
        private void AddMouseTriggerToList(Trigger trigger)
        {
            var newMouseTrigger   = (MouseButtonTrigger)trigger;
            var triggerLayoutView = new TriggerLayoutView();

            inputNewTriggerEditor.SetMouseButtonTrigger(newMouseTrigger.Button, newMouseTrigger.State,
                                                        triggerLayoutView);
            TriggerList.Add(triggerLayoutView);
        }
Exemple #13
0
        private void AddGamePadTriggerToList(Trigger trigger)
        {
            var newGamepadTrigger = (GamePadButtonTrigger)trigger;
            var triggerLayoutView = new TriggerLayoutView();

            inputNewTriggerEditor.SetGamePadTrigger(newGamepadTrigger.Button, newGamepadTrigger.State,
                                                    triggerLayoutView);
            TriggerList.Add(triggerLayoutView);
        }
Exemple #14
0
        private void AddKeyTriggerToList(Trigger trigger)
        {
            var newKeyTrigger     = (KeyTrigger)trigger;
            var triggerLayoutView = new TriggerLayoutView();

            inputNewTriggerEditor.SetKeyTrigger(newKeyTrigger.Key, newKeyTrigger.State,
                                                triggerLayoutView);
            TriggerList.Add(triggerLayoutView);
        }
    public override void OnInspectorGUI()
    {
        TriggerList ThisList = (TriggerList)target;

        base.DrawDefaultInspector();

        if (GUILayout.Button("Set Up Triggers"))
        {
            ThisList.SetTriggers();
        }
    }
Exemple #16
0
        public void UpdateTriggerList(string value)
        {
            selectedCommand = value;
            TriggerList.Clear();
            List <Trigger> triggersForSelectedCommand = availableCommands.GetAllTriggers(selectedCommand);

            foreach (var trigger in triggersForSelectedCommand)
            {
                CheckWhichTriggerToAdd(trigger);
            }
        }
Exemple #17
0
        private void RemoveSelectedTrigger()
        {
            if (SelectedTrigger == null || string.IsNullOrEmpty(SelectedCommand))
            {
                return;
            }
            var indexToRemove = TriggerList.IndexOf(SelectedTrigger);

            availableCommands.GetAllTriggers(selectedCommand).RemoveAt(indexToRemove);
            TriggerList.RemoveAt(indexToRemove);
        }
Exemple #18
0
    public void SendData(string title, bool neuromuscularProfileDo, bool translate,
                         bool cutByTriggers, TriggerList triggerList, EncoderGraphROptions.AnalysisModes analysisMode)
    {
        this.title = title;
        this.neuromuscularProfileDo = neuromuscularProfileDo;
        this.translate     = translate;
        this.cutByTriggers = cutByTriggers;
        this.triggerList   = triggerList;
        this.analysisMode  = analysisMode;

        CancelRScript = false;
    }
Exemple #19
0
 public PPeriodTriggerInstaller() : base("阶段切换")
 {
     foreach (PPeriod Period in TurnFlow)
     {
         TriggerList.Add(new PTrigger(Period.Name + "结束,进入下一阶段")
         {
             IsLocked = true,
             Time     = Period.Next,
             Effect   = ChangePeriod
         });
     }
 }
Exemple #20
0
 public void Merge(TriggerList triggers)
 {
     foreach (GameTrigger trigger in triggers)
     {
         if (trigger.GetKey() == FreeTriggerConstant.UNIT_TEST)
         {
             foreach (IGameAction action in trigger)
             {
                 this.order.actions.Add(action);
             }
         }
     }
 }
Exemple #21
0
        public void AddNewTrigger()
        {
            if (string.IsNullOrEmpty(SelectedCommand))
            {
                return;
            }
            var triggerLayoutView = new TriggerLayoutView();

            inputNewTriggerEditor.CreateNewTriggerBox(availableCommands, SelectedCommand,
                                                      triggerLayoutView);
            TriggerList.Add(triggerLayoutView);
            RaisePropertyChanged("TriggerList");
        }
Exemple #22
0
        /// <summary>
        /// Start a trigger group.
        /// For more information, see: https://osu.ppy.sh/help/wiki/Storyboard_Scripting/Compound_Commands
        /// </summary>
        /// <param name="startTime">Group start time.</param>
        /// <param name="endTime">Group end time.</param>
        /// <param name="triggerName">A valid trigger name.</param>
        public Trigger StartTrigger(int startTime, int endTime, string triggerName)
        {
            if (_isLooping || _isTriggering)
            {
                throw new Exception("You can not start another loop when the previous one isn't end.");
            }

            _isTriggering = true;
            var trig = new Trigger(startTime, endTime, triggerName);

            TriggerList.Add(trig);
            return(trig);
        }
Exemple #23
0
        /// <summary>
        /// Start a trigger group.
        /// For more information, see: https://osu.ppy.sh/help/wiki/Storyboard_Scripting/Compound_Commands
        /// </summary>
        /// <param name="startTime">Group start time.</param>
        /// <param name="endTime">Group end time.</param>
        /// <param name="triggerType">Trigger type. It can be specified in a flag form like TriggerType.HitSoundWhistle | TriggerType.HitSoundSoft.</param>
        /// <param name="listenSample">If use the listenSample, the trigger will listen to all hitsound in a track like HitsoundAllNormal.</param>
        /// <param name="customSampleSet">Listen to a specific track. 0 represents default track.</param>
        public Trigger StartTrigger(int startTime, int endTime, TriggerType triggerType, bool listenSample = false, uint?customSampleSet = null)
        {
            if (_isLooping || _isTriggering)
            {
                throw new Exception("You can not start another loop when the previous one isn't end.");
            }

            _isTriggering = true;
            var trig = new Trigger(startTime, endTime, triggerType, listenSample, customSampleSet);

            TriggerList.Add(trig);
            return(trig);
        }
Exemple #24
0
    public PModeArch() : base("模式类成就")
    {
        TriggerList.Add(new PTrigger("独孤求败")
        {
            IsLocked = true,
            Time     = PTime.EndGameTime,
            Effect   = (PGame Game) => {
                Game.GetWinner().ForEach((PPlayer Player) => {
                    if (Game.GameMode is PMode8p)
                    {
                        Announce(Game, Player, "独孤求败");
                    }
                });
            }
        });
        string Juecfs = "绝处逢生";

        TriggerList.Add(new PTrigger("绝处逢生[达到条件]")
        {
            IsLocked = true,
            Time     = PTime.AfterDieTime,
            Effect   = (PGame Game) => {
                if (Game.GameMode is PMode4v4)
                {
                    Game.AlivePlayers().ForEach((PPlayer Player) => {
                        if (Game.Teammates(Player).Count == 1 && Game.Enemies(Player).Count == 4)
                        {
                            Player.Tags.CreateTag(new PTag(Juecfs)
                            {
                                Visible = false
                            });
                        }
                    });
                }
            }
        });
        TriggerList.Add(new PTrigger("绝处逢生")
        {
            IsLocked = true,
            Time     = PTime.EndGameTime,
            Effect   = (PGame Game) => {
                Game.GetWinner().ForEach((PPlayer Player) => {
                    if (Player.Tags.ExistTag(Juecfs))
                    {
                        Announce(Game, Player, "绝处逢生");
                    }
                });
            }
        });
    }
 public PWalkingTriggerInstaller() : base("行走")
 {
     TriggerList.Add(new PTrigger("行走")
     {
         IsLocked = true,
         Time     = PPeriod.WalkingStage.During,
         Effect   = (PGame Game) => {
             PStepCountTag Tag   = Game.TagManager.PopTag <PStepCountTag>(PStepCountTag.TagName);
             int RemainStepCount = (Tag != null ? Tag.StepCount : 0);
             Game.MoveForward(Game.NowPlayer, RemainStepCount);
             PNetworkManager.NetworkServer.TellClients(new PCloseDiceOrder());
         }
     });
 }
Exemple #26
0
 public PFreeTimeTriggerInstaller() : base("玩家空闲时间点")
 {
     foreach (PTime Time in new PTime[] { PPeriod.FirstFreeTime.During, PPeriod.SecondFreeTime.During })
     {
         TriggerList.Add(new PTrigger("玩家的空闲时间点")
         {
             IsLocked  = true,
             Time      = Time,
             Condition = (PGame Game) => Game.NowPlayer.IsUser,
             Effect    = (PGame Game) => {
                 Game.TagManager.CreateTag(PTag.FreeTimeOperationTag);
                 PThread.WaitUntil(() => !Game.TagManager.ExistTag(PTag.FreeTimeOperationTag.Name));
             }
         });
     }
 }
Exemple #27
0
        public void RemoveTriggerRecord(TriggerRecord trigger)
        {
            if (TriggerList == null)
            {
                return;
            }
            TriggerList.Remove(trigger);
            //remove from TriggerSystem
            long   nowTick  = DateTime.Now.Ticks;
            double interval = (nowTick - _lastStepTick) / TimeSpan.TicksPerMillisecond;

            if (interval < 50)
            {
                ((TriggerSystem)_currentView.MainTriggerSystem).UnregisterTrigger(trigger);
            }
        }
 public PTransportTriggerInstaller() : base("移动位置")
 {
     TriggerList.Add(new PTrigger("移动位置")
     {
         IsLocked = true,
         Time     = PTime.MovePositionTime,
         Effect   = (PGame Game) => {
             PTransportTag Tag = Game.TagManager.FindPeekTag <PTransportTag>(PTransportTag.TagName);
             if (Tag.Player != null && Tag.Destination != null)
             {
                 Tag.Player.Position = Tag.Destination;
                 PNetworkManager.NetworkServer.TellClients(new PMovePositionOrder(Tag.Player.Index.ToString(), Tag.Destination.Index.ToString()));
             }
         }
     });
 }
Exemple #29
0
        public void AddTriggerRecord(TriggerRecord trigger)
        {
            if (TriggerList == null)
            {
                TriggerList = new List <TriggerRecord>();
            }
            trigger.ParentActor = this;
            TriggerList.Add(trigger);
            //add into TriggerSystem
            long   nowTick  = DateTime.Now.Ticks;
            double interval = (nowTick - _lastStepTick) / TimeSpan.TicksPerMillisecond;

            if (interval < 50)
            {
                ((TriggerSystem)_currentView.MainTriggerSystem).RegisterTrigger(trigger);
            }
        }
Exemple #30
0
 public void Merge(TriggerList triggers)
 {
     foreach (GameTrigger trigger in triggers)
     {
         if (trigger.GetKey() == FreeTriggerConstant.UNIT_TEST)
         {
             foreach (IGameAction action in trigger)
             {
                 if (action is OneCaseAction)
                 {
                     OneCaseAction one = (OneCaseAction)action;
                     one.trigger = trigger;
                     this.order.actions.Add(one);
                 }
             }
         }
     }
 }
Exemple #31
0
 private string TriggerPreRender(TriggerList triggers, string name)
 {
     List<string> trigs = new List<string>();
     foreach(ServerSideTrigger trig in triggers)
     {
         ClientSideTrigger cst = trig as ClientSideTrigger;
         if(cst != null)
         {
             Control ctrl = Util.FindControlRecursiveOut(this, cst.ControlID, null);
             if(ctrl != null)
                 trigs.Add(string.Format("{{control:\"{0}\",event:\"{1}\",cancel:{2}}}", ctrl.ClientID, cst.Event, cst.CancelEvent.ToString().ToLower()));
             else
                 trigs.Add(string.Format("{{control:\"{0}\",event:\"{1}\",cancel:{2}}}", cst.ControlID, cst.Event, cst.CancelEvent.ToString().ToLower()));
         }
     }
     return string.Format("{0}:[{1}]", name, string.Join(",", trigs));
 }
Exemple #32
0
        private bool TriggerInUpdatePanel(TriggerList triggers)
        {
            if(triggers != null)
            {
                List<string> trigs = new List<string>();
                foreach(ServerSideTrigger trig in triggers)
                {
                    ClientSideTrigger cst = trig as ClientSideTrigger;
                    if(cst != null)
                    {
                        Control ctrl = Util.FindControlRecursiveOut(this, cst.ControlID, null);
                        if(ctrl != null)
                        {
                            if(Util.InUpdatePanel(ctrl))
                                return true;
                        }
                    }
                }
            }

            return false;
        }
Exemple #33
0
 /// <summary>
 /// Internal constructor for a task, used by <see cref="ScheduledTasks"/>.
 /// </summary>
 /// <param name="iTask">Instance of an ITask.</param>
 /// <param name="taskName">Name of the task.</param>
 internal Task(ITask iTask, string taskName)
 {
     this.iTask = iTask;
     if (taskName.EndsWith(".job"))
         name = taskName.Substring(0, taskName.Length-4);
     else
         name = taskName;
     triggers = null;
     this.Hidden = GetHiddenFileAttr();
 }
 public Interaction(string name)
 {
     Name = name;
     triggerList = new TriggerList();
     responses = null;
 }