예제 #1
0
 // Update is called once per frame
 void Update()
 {
     if (Input.GetKeyDown(KeyCode.J))
     {
         MS.SendMessage(1, 3, 25);
         myIndividual.HealthChange(-14);
         //测试buff系统
         MS.SendMessage(2, 3, 0);
         MS.SendMessage(2, 3, 1);
         MS.SendMessage(2, 3, 2);
     }
 }
        public void SendMessage_Null_ArgumentNullException()
        {
            // Arrange
            MessageSystem messageSystem = new MessageSystem();

            // Act / Assert
            Assert.Throws <ArgumentNullException>(() => messageSystem.SendMessage <IMessage>(null));
        }
        public override IEnumerator ExecuteNode(NodeExecutionContext context)
        {
            string message = GetInputValue <string>(nameof(this.message), this.message);

            MessageSystem.SendMessage(message);

            yield return(null);
        }
예제 #4
0
 private void OnTriggerEnter(Collider other)
 {
     if (other.tag == "Tool")
     {
         HoldItem(other.GetComponent <SceneGameObject>());
         MessageSystem.SendMessage("Item Added " + data.id);
     }
 }
예제 #5
0
 public override void Hide()
 {
     base.Hide();
     if (m_mustSendCloseMessage)
     {
         MessageSystem.SendMessage(this, m_closeMessage, string.Empty);
     }
     m_mustSendCloseMessage = false;
 }
 public void SetCover()
 {
     if (!anyItem)
     {
         coverVisual.gameObject.SetActive(true);
         //MessageSystem.SendMessage(data.id + "Cover On");
         MessageSystem.SendMessage("Cover On");
     }
 }
    public void StartExecution()
    {
        MessageSystem.onMessageSent = null;

        SetUpForExecution();

        MessageSystem.SendMessage("Application Start");
        MessageSystem.SendMessage("Exercise Started");
    }
예제 #8
0
    private void OnTriggerEnter(Collider collison)
    {
        var collisonObject = collison.gameObject;

        //个体子弹
        if (!ifRange)
        {
            //子弹打到玩家、非个体单位
            if (collison.name == "PlayerHandle" || LayerMask.LayerToName(collisonObject.layer) != "Individual")
            {
                return;
            }

            //此处应该使用tower的消息系统来发消息
            MessageSystem messageSystem   = tower.GetComponent <MessageSystem>();
            Individual    otherIndividual = collisonObject.GetComponent <Individual>();

            messageSystem.SendMessage(1, otherIndividual.ID, tower.attack);

            if (buffID != 0)
            {
                messageSystem.SendMessage(2, otherIndividual.ID, buffID);
            }
        }
        //范围子弹 TODO
        else
        {
            Factory.TraversalIndividualsInCircle(
                (individual) => { tower.GetComponent <MessageSystem>().SendMessage(2, individual.ID, buffID); }
                , transform.position, range);
        }



        //特效对象产生
        if (dieEffect)
        {
            GameObject.Instantiate(dieEffect, transform.position, dieEffect.transform.rotation, transform.parent);
        }

        Destroy(gameObject);
    }
        void FixedUpdate()
        {
            UpdateMotor();                          // call ThirdPersonMotor methods
            UpdateAnimator();                       // update animations on the Animator and their methods
            UpdateHUD();                            // update HUD elements like health bar, texts, etc
            //ControlCameraState();			// change CameraStates

            if (speed > 0f && !stopMove)
            {
                MessageSystem.SendMessage(MessageType.CharacterMove, gameObject);
            }
        }
예제 #10
0
 public virtual void Show(QuestJournal questJournal)
 {
     this.questJournal = questJournal;
     print(questJournal);
     Show();
     Repaint();
     m_mustSendCloseMessage = ShouldSendOpenCloseMessage();
     if (ShouldSendOpenCloseMessage())
     {
         MessageSystem.SendMessage(this, m_openMessage, string.Empty);
     }
 }
        public void SendMessage_ValidMessage_MessageIsInPipeline()
        {
            // Arrange
            MessageSystem   messageSystem = new MessageSystem();
            UnitTestMessage message       = new UnitTestMessage();

            // Act
            messageSystem.SendMessage(message);

            // Assert
            Assert.Single(messageSystem.ActiveMessages);
            Assert.IsType <UnitTestMessage>(messageSystem.ActiveMessages.First());
        }
예제 #12
0
        public void Polymorph()
        {
            if (!HaveWand())
            {
                return;
            }
            var entity = GetComponent <QuestEntity>();

            MessageSystem.SendMessage(this, "Polymorph", ((entity != null) ? entity.entityType.name : name));
            AudioSource.PlayClipAtPoint(polymorphAudioClip, Camera.main.transform.position);
            Instantiate(polymorphInto, transform.position, transform.rotation);
            Die();
        }
    private void OnTriggerEnter(Collider other)
    {
        if (other.GetComponentInParent <VRTK.VRTK_AvatarHandController>() != null)
        {
            VRTK_AvatarHandController[] hands = FindObjectsOfType <VRTK_AvatarHandController>();

            foreach (var h in hands)
            {
                h.GetComponentInChildren <SkinnedMeshRenderer>().material.color = glovesColor;
            }
            //MessageSystem.SendMessage(data.id + "Gloves On");
            MessageSystem.SendMessage("Gloves On");
            gameObject.SetActive(false);
        }
    }
예제 #14
0
    public void TogglePause(object sender, ControllerInteractionEventArgs e)
    {
        menu.gameObject.SetActive(!menu.activeInHierarchy);

        if (menu.gameObject.activeInHierarchy)
        {
            MessageSystem.SendMessage("Pause");
            ExerciseFileLogger.Instance.LogMessage("Se ha abierto el menú principal", true);
        }
        else
        {
            MessageSystem.SendMessage("Resume");
            ExerciseFileLogger.Instance.LogMessage("Se ha cerrado el menú principal", true);
        }
    }
        public async void ProcessMessages_Successful()
        {
            // Arrange
            MessageSystem   messageSystem = new MessageSystem();
            UnitTestMessage message       = new UnitTestMessage();

            messageSystem.RegisterReceiver <UnitTestMessage>(HandleMessage);
            messageSystem.SendMessage(message);

            // Act
            await messageSystem.ProcessMessagesAsync();

            // Assert
            Assert.Empty(messageSystem.ActiveMessages);
            Assert.True(callbackExecuted);
        }
예제 #16
0
        protected virtual void ExecuteActions()
        {
            if (actions == null)
            {
                return;
            }
            for (int i = 0; i < actions.Count; i++)
            {
                if (actions[i] != null)
                {
                    actions[i].Execute();
                }
            }

            if (groupNumber != ButtonQuestContent.NoGroup)
            {
                MessageSystem.SendMessage(this, QuestMachineMessages.GroupButtonClickedMessage, string.Empty, groupNumber);
            }
        }
예제 #17
0
 public void SetValue(int newValue, QuestCounterSetValueMode setValueMode = QuestCounterSetValueMode.InformListeners)
 {
     m_currentValue = Mathf.Clamp(newValue, minValue, maxValue);
     if (setValueMode != QuestCounterSetValueMode.DontInformListeners)
     {
         var informDataSync = (updateMode == QuestCounterUpdateMode.DataSync) && (setValueMode != QuestCounterSetValueMode.DontInformDataSync);
         if (informDataSync)
         {
             MessageSystem.SendMessage(this, DataSynchronizer.RequestDataSourceChangeValueMessage, name, currentValue);
         }
         QuestMachineMessages.QuestCounterChanged(this, questID, name, currentValue);
         try
         {
             changed(this);
         }
         catch (Exception e) // Don't let exceptions in user-added events break our code.
         {
             if (Debug.isDebugBuild)
             {
                 Debug.LogException(e);
             }
         }
     }
 }
예제 #18
0
 /// <summary>
 /// Sends a message to the MessageSystem with a parameter and int value.
 /// </summary>
 /// <param name="message">Message.</param>
 /// <param name="parameter">Parameter.</param>
 /// <param name="value">Int value.</param>
 public void SendMessageSystemInt(string message, string parameter, double value)
 {
     MessageSystem.SendMessage(this, message, parameter, (int)value);
 }
예제 #19
0
 /// <summary>
 /// Sends a message to the MessageSystem with a parameter and string value.
 /// </summary>
 /// <param name="message">Message.</param>
 /// <param name="parameter">Parameter.</param>
 /// <param name="value">String value.</param>
 public void SendMessageSystemString(string message, string parameter, string value)
 {
     MessageSystem.SendMessage(this, message, parameter, value);
 }
예제 #20
0
 /// <summary>
 /// Sends a message to the MessageSystem with a parameter.
 /// </summary>
 /// <param name="message">Message.</param>
 /// <param name="parameter">Parameter.</param>
 public void SendMessageSystem(string message, string parameter)
 {
     MessageSystem.SendMessage(this, message, parameter);
 }
 public override IEnumerator ExecuteNode(NodeExecutionContext context)
 {
     MessageSystem.SendMessage("Fail Session /" + (GetValue() != null ? GetValue() : grade));
     yield return(null);
 }
 public static void DespawnSpawner(StringField spawnerName)
 {
     MessageSystem.SendMessage(QuestMachineConfiguration.instance, DespawnSpawnerMessage, spawnerName);
 }
 public static void QuestAlert(object sender, StringField questID, List <QuestContent> contents)
 {
     MessageSystem.SendMessage(sender, QuestAlertMessage, questID, contents);
 }
 public static void IncrementQuestCounter(object sender, StringField questID, StringField counterName, int amount)
 {
     MessageSystem.SendMessage(sender, IncrementQuestCounterMessage, questID, counterName, amount);
 }
 public static void QuestAbandoned(object sender, StringField questID)
 {
     MessageSystem.SendMessage(sender, QuestAbandonedMessage, questID);
 }
 public static void QuestTrackToggleChanged(object sender, StringField questID, bool state)
 {
     MessageSystem.SendMessage(sender, QuestTrackToggleChangedMessage, questID, state);
 }
 public static void QuestNodeStateChanged(object sender, StringField questID, StringField questNodeID, QuestNodeState state)
 {
     MessageSystem.SendMessage(sender, QuestStateChangedMessage, questID, questNodeID, state);
 }
 public static void RefreshUIs(object sender)
 {
     MessageSystem.SendMessage(sender, RefreshUIsMessage, string.Empty);
 }
 public static void SetQuestCounter(object sender, StringField questID, StringField counterName, int counterValue)
 {
     MessageSystem.SendMessage(sender, SetQuestCounterMessage, questID, counterName, counterValue);
 }
예제 #30
0
 private void ObjectGrabbed(object sender, InteractableObjectEventArgs e)
 {
     MessageSystem.SendMessage(data.id + "Grabbed");
 }