protected override void HandleMessage(EntityActorMessageContext messageContext, DefaultEntityActorStateContainer state, EntityActorInitializationSuccessMessage message) { //We should send ourselves the level initialization message because it takes care of stats CharacterDataInstance entity = InitialCharacterDataMappable.RetrieveEntity(state.EntityGuid); IEntityDataFieldContainer entityDataFieldContainer = state.EntityData; entityDataFieldContainer.SetFieldValue((int)PlayerObjectField.PLAYER_TOTAL_EXPERIENCE, entity.Experience); //Set the level from the initial experience data. messageContext.Entity.Tell(new SetEntityActorLevelMessage(LevelStrategy.ComputeLevelFromExperience(entity.Experience))); }
private void InitializeCharacterLevel([NotNull] NetworkEntityGuid guid, [NotNull] IUICharacterSlot button) { if (guid == null) { throw new ArgumentNullException(nameof(guid)); } if (button == null) { throw new ArgumentNullException(nameof(button)); } CharacterDataInstance dataInstance = InitialCharacterDataMappable.RetrieveEntity(guid); button.LevelText.Text = $"Level {LevelStrategy.ComputeLevelFromExperience(dataInstance.Experience).ToString()}"; }