private void UpdateAnimalMoodGameState()
        {
            var moodChange = new AnimalMoodChange
            {
                AnimalName       = AnimalName,
                HappinessLevel   = HappinessLevel.Value,
                HungrinessLevel  = HungrinessLevel.Value,
                ThirstinessLevel = ThirstinessLevel.Value
            };

            var entityId = new EntityId(nameof(GameSession), GameName);

            Entity.Current.SignalEntity <IGameSession>(entityId,
                                                       proxy => proxy.UpdateAnimalMoodAsync(moodChange));
        }
Example #2
0
        public Task UpdateAnimalMoodAsync(AnimalMoodChange mood)
        {
            var state = AnimalStates[mood.AnimalName];

            state.HappinessLevel   = mood.HappinessLevel;
            state.HungrinessLevel  = mood.HungrinessLevel;
            state.ThirstinessLevel = mood.ThirstinessLevel;

            return(PublishEventAsync(new AnimalMoodChangedEvent
            {
                AnimalName = state.Name,
                HappinessLevel = state.HappinessLevel,
                HungrinessLevel = state.HungrinessLevel,
                ThirstinessLevel = state.ThirstinessLevel
            }));
        }