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")); } } } }