public void InterpetMessage(NPCUnit ally, UnitMessage message)
 {
     switch (message)
     {
     case UnitMessage.HostileFound:
         OnHostileFound(ally);
         break;
         // add more cases as necessary
     }
 }
Пример #2
0
    // process certain unit messages in order to message other units in the "alliance"
    private void OnUnitMessageReceived(NPCUnit ally, UnitMessage message)
    {
        switch (message)
        {
        case UnitMessage.HostileFound:
        case UnitMessage.PlayerObjectiveInProgress:
        case UnitMessage.PlayerObjectiveCompleted:
            OnAllianceMessageSent?.Invoke(ally, message);
            break;

        default:
            break;
        }
    }
 private void OnAllianceMessageReceived(NPCUnit ally, UnitMessage message)
 {
     // don't override state if this was the sender
     if (ally == _unit)
     {
         return;
     }
     // retrieve the appropriate state
     if (!_messageOverrideStates.TryGetValue(message, out AIState nextState))
     {
         return;
     }
     _messageInterpeter.InterpetMessage(ally, message);
     OnReadyToTransitionState(nextState);
 }
Пример #4
0
 protected virtual void OnAllianceMessageSent(NPCUnit unit, UnitMessage message)
 {
     OnUnitMessageReceived?.Invoke(unit, message);
 }
Пример #5
0
 public void SendMessage(UnitMessage message)
 {
     OnUnitMessageSent?.Invoke(this, message);
 }
Пример #6
0
 private void Awake()
 {
     message = (UnitMessage)FindObjectOfType(typeof(UnitMessage));
 }