public void HandleEffects(List <Name> _events)
    {
        foreach (var ev in _events)
        {
            _player.Perceive(ev);
            _agentControllers.ForEach(x => x.RPC.Perceive(ev));
        }

        if (_wm != null)
        {
            var effects = _wm.Simulate(_events.ToArray());


            foreach (var eff in effects)
            {
                Debug.Log("Effect: " + eff.PropertyName + " " + eff.NewValue + " " + eff.ObserverAgent);

                if (eff.ObserverAgent.ToString() == _player.CharacterName.ToString())
                {
                    _player.Perceive(EventHelper.PropertyChange(eff.PropertyName, eff.NewValue, (Name)"World"));
                }
                else if (eff.ObserverAgent.IsUniversal)
                {
                    _player.Perceive(EventHelper.PropertyChange(eff.PropertyName, eff.NewValue, (Name)"World"));
                    _agentControllers.ForEach(x => x.RPC.Perceive(EventHelper.PropertyChange(eff.PropertyName, eff.NewValue, (Name)"World")));
                }
                else
                {
                    {
                        _agentControllers.Find(x => x.RPC.CharacterName == eff.ObserverAgent).RPC.Perceive(EventHelper.PropertyChange(eff.PropertyName, eff.NewValue, (Name)"World"));
                    }
                }
            }
        }
    }
    public void HandleEffects(List <Name> _events)
    {
        Player.Perceive(_events);
        _agentController.RPC.Perceive(_events);
        _agentController.UpdateEmotionExpression();

        if (_wm != null)
        {
            var effects = _wm.Simulate(_events.ToArray());

            foreach (var eff in effects)
            {
                //     Debug.Log("Effect: " + eff.PropertyName + " " + eff.NewValue + " " + eff.ObserverAgent);
                if (eff.ObserverAgent.ToString() == "Player")
                {
                    Player.Perceive(EventHelper.PropertyChange(eff.PropertyName, eff.NewValue, (Name)"World"));
                }
                else if (eff.ObserverAgent.ToString() == _agentController.RPC.CharacterName.ToString())
                {
                    _agentController.RPC.Perceive(EventHelper.PropertyChange(eff.PropertyName, eff.NewValue, (Name)"World"));
                }

                else if (eff.ObserverAgent.IsUniversal)
                {
                    Player.Perceive(EventHelper.PropertyChange(eff.PropertyName, eff.NewValue, (Name)"World"));
                    _agentController.RPC.Perceive(EventHelper.PropertyChange(eff.PropertyName, eff.NewValue, (Name)"World"));
                }
            }
        }
    }