void OnRequestNewStatus(Request_NewStatus e) { if (e.IsMainRequest && (e.NewStatus == RequestStatus.Finished)) { var req = _request.Get(e.Id); var user = req.Owner; var client = user.Client; var change = _rules.CalculateClientMoodChange(user.Mood); _logger.MessageFormat("Update client {0} mood to: {1} (from user mood: {2})", client, change, user.Mood); _client.UpdateMood(client, change); var newMood = _client.Get(client)?.Mood; _logger.MessageFormat("New client {0} mood is {1}", client, newMood); if (newMood <= 0) { _client.RemoveClient(client); } } }
void OnNewStatus(Request_NewStatus e) { var id = e.Id; var view = GetOrSpawnView(id); if (view == null) { return; } switch (e.NewStatus) { case RequestStatus.Outgoing: { view.EndPos = view.StartPos; view.StartPos = view.transform.position; } break; case RequestStatus.Finished: { ObjectPool.Recycle(view); _views.Remove(id); } break; } }