private void RandomizeEverything() { Profile = HumanoidCharacterProfile.Random(); UpdateSexControls(); UpdateAgeEdit(); UpdateNameEdit(); UpdateHairPickers(); }
public static Dictionary <NetUserId, HumanoidCharacterProfile> AddJob( this Dictionary <NetUserId, HumanoidCharacterProfile> inp, string jobId, JobPriority prio = JobPriority.Medium, int amount = 1) { for (var i = 0; i < amount; i++) { inp.Add(new NetUserId(Guid.NewGuid()), HumanoidCharacterProfile.Random().WithJobPriority(jobId, prio)); } return(inp); }
private void RandomizeEverything() { Profile = HumanoidCharacterProfile.Random(); UpdateSexControls(); UpdateGenderControls(); UpdateClothingControls(); UpdateAgeEdit(); UpdateNameEdit(); UpdateHairPickers(); UpdateEyePickers(); _skinColor.Value = _random.Next(0, 100); }
private void OnMapInit(EntityUid uid, RandomHumanoidAppearanceComponent component, MapInitEvent args) { if (TryComp <HumanoidAppearanceComponent>(uid, out var appearance)) { var profile = HumanoidCharacterProfile.Random(); _humanoidAppearance.UpdateFromProfile(uid, profile, appearance); if (component.RandomizeName) { var meta = MetaData(uid); meta.EntityName = profile.Name; } } }
public CharacterSetupGui( IEntityManager entityManager, IResourceCache resourceCache, IClientPreferencesManager preferencesManager, IPrototypeManager prototypeManager, IConfigurationManager configurationManager) { RobustXamlLoader.Load(this); _entityManager = entityManager; _prototypeManager = prototypeManager; _preferencesManager = preferencesManager; _configurationManager = configurationManager; var panelTex = resourceCache.GetTexture("/Textures/Interface/Nano/button.svg.96dpi.png"); var back = new StyleBoxTexture { Texture = panelTex, Modulate = new Color(37, 37, 42) }; back.SetPatchMargin(StyleBox.Margin.All, 10); BackgroundPanel.PanelOverride = back; _createNewCharacterButton = new Button { Text = Loc.GetString("character-setup-gui-create-new-character-button"), }; _createNewCharacterButton.OnPressed += args => { preferencesManager.CreateCharacter(HumanoidCharacterProfile.Random()); UpdateUI(); args.Event.Handle(); }; _humanoidProfileEditor = new HumanoidProfileEditor(preferencesManager, prototypeManager, entityManager, configurationManager); _humanoidProfileEditor.OnProfileChanged += ProfileChanged; CharEditor.AddChild(_humanoidProfileEditor); UpdateUI(); RulesButton.OnPressed += _ => new RulesAndInfoWindow().Open(); preferencesManager.OnServerDataLoaded += UpdateUI; }
public async Task CreateDeleteCreateTest() { var serverOptions = new ServerContentIntegrationOption { CVarOverrides = { [CCVars.GameDummyTicker.Name] = "false", [CCVars.GameLobbyEnabled.Name] = "true", [CVars.NetPVS.Name] = "false" } }; var(client, server) = await StartConnectedServerClientPair(serverOptions : serverOptions); var clientNetManager = client.ResolveDependency <IClientNetManager>(); var clientStateManager = client.ResolveDependency <IStateManager>(); var clientPrefManager = client.ResolveDependency <IClientPreferencesManager>(); var serverConfig = server.ResolveDependency <IConfigurationManager>(); var serverTicker = server.ResolveDependency <IEntitySystemManager>().GetEntitySystem <GameTicker>(); var serverPrefManager = server.ResolveDependency <IServerPreferencesManager>(); await server.WaitIdleAsync(); await client.WaitIdleAsync(); await server.WaitAssertion(() => { serverConfig.SetCVar(CCVars.GameDummyTicker, false); serverConfig.SetCVar(CCVars.GameLobbyEnabled, true); serverTicker.RestartRound(); Assert.That(serverTicker.RunLevel, Is.EqualTo(GameRunLevel.PreRoundLobby)); }); // Need to run them in sync to receive the messages. await RunTicksSync(client, server, 1); await WaitUntil(client, () => clientStateManager.CurrentState is LobbyState, 600); Assert.NotNull(clientNetManager.ServerChannel); var clientNetId = clientNetManager.ServerChannel.UserId; HumanoidCharacterProfile profile = null; await client.WaitAssertion(() => { clientPrefManager.SelectCharacter(0); var clientCharacters = clientPrefManager.Preferences?.Characters; Assert.That(clientCharacters, Is.Not.Null); Assert.That(clientCharacters.Count, Is.EqualTo(1)); Assert.That(clientStateManager.CurrentState, Is.TypeOf <LobbyState>()); profile = HumanoidCharacterProfile.Random(); clientPrefManager.CreateCharacter(profile); clientCharacters = clientPrefManager.Preferences?.Characters; Assert.That(clientCharacters, Is.Not.Null); Assert.That(clientCharacters.Count, Is.EqualTo(2)); Assert.That(clientCharacters[1].MemberwiseEquals(profile)); }); await WaitUntil(server, () => serverPrefManager.GetPreferences(clientNetId).Characters.Count == 2, maxTicks : 60); await server.WaitAssertion(() => { var serverCharacters = serverPrefManager.GetPreferences(clientNetId).Characters; Assert.That(serverCharacters.Count, Is.EqualTo(2)); Assert.That(serverCharacters[1].MemberwiseEquals(profile)); }); await client.WaitAssertion(() => { clientPrefManager.DeleteCharacter(1); var clientCharacters = clientPrefManager.Preferences?.Characters.Count; Assert.That(clientCharacters, Is.EqualTo(1)); }); await WaitUntil(server, () => serverPrefManager.GetPreferences(clientNetId).Characters.Count == 1, maxTicks : 60); await server.WaitAssertion(() => { var serverCharacters = serverPrefManager.GetPreferences(clientNetId).Characters.Count; Assert.That(serverCharacters, Is.EqualTo(1)); }); await client.WaitIdleAsync(); await client.WaitAssertion(() => { profile = HumanoidCharacterProfile.Random(); clientPrefManager.CreateCharacter(profile); var clientCharacters = clientPrefManager.Preferences?.Characters; Assert.That(clientCharacters, Is.Not.Null); Assert.That(clientCharacters.Count, Is.EqualTo(2)); Assert.That(clientCharacters[1].MemberwiseEquals(profile)); }); await WaitUntil(server, () => serverPrefManager.GetPreferences(clientNetId).Characters.Count == 2, maxTicks : 60); await server.WaitAssertion(() => { var serverCharacters = serverPrefManager.GetPreferences(clientNetId).Characters; Assert.That(serverCharacters.Count, Is.EqualTo(2)); Assert.That(serverCharacters[1].MemberwiseEquals(profile)); }); }
public async Task CreateDeleteCreateTest() { var(client, server) = await StartConnectedServerClientPair(); var clientNetManager = client.ResolveDependency <IClientNetManager>(); var clientStateManager = client.ResolveDependency <IStateManager>(); var clientPrefManager = client.ResolveDependency <IClientPreferencesManager>(); var serverConfig = server.ResolveDependency <IConfigurationManager>(); var serverTicker = server.ResolveDependency <IGameTicker>(); var serverPrefManager = server.ResolveDependency <IServerPreferencesManager>(); await server.WaitIdleAsync(); await client.WaitIdleAsync(); await server.WaitAssertion(() => { serverConfig.SetCVar(CCVars.GameLobbyEnabled, true); serverTicker.RestartRound(); }); Assert.That(serverTicker.RunLevel, Is.EqualTo(GameRunLevel.PreRoundLobby)); await WaitUntil(client, () => clientStateManager.CurrentState is LobbyState, maxTicks : 60); Assert.NotNull(clientNetManager.ServerChannel); var clientNetId = clientNetManager.ServerChannel.UserId; HumanoidCharacterProfile profile = null; await client.WaitAssertion(() => { clientPrefManager.SelectCharacter(0); var clientCharacters = clientPrefManager.Preferences.Characters; Assert.That(clientCharacters.Count, Is.EqualTo(1)); Assert.That(clientStateManager.CurrentState, Is.TypeOf <LobbyState>()); profile = HumanoidCharacterProfile.Random(); clientPrefManager.CreateCharacter(profile); clientCharacters = clientPrefManager.Preferences.Characters; Assert.That(clientCharacters.Count, Is.EqualTo(2)); Assert.That(clientCharacters[1].MemberwiseEquals(profile)); }); await WaitUntil(server, () => serverPrefManager.GetPreferences(clientNetId).Characters.Count == 2, maxTicks : 60); await server.WaitAssertion(() => { var serverCharacters = serverPrefManager.GetPreferences(clientNetId).Characters; Assert.That(serverCharacters.Count, Is.EqualTo(2)); Assert.That(serverCharacters[1].MemberwiseEquals(profile)); }); await client.WaitAssertion(() => { clientPrefManager.DeleteCharacter(1); var clientCharacters = clientPrefManager.Preferences.Characters.Count; Assert.That(clientCharacters, Is.EqualTo(1)); }); await WaitUntil(server, () => serverPrefManager.GetPreferences(clientNetId).Characters.Count == 1, maxTicks : 60); await server.WaitAssertion(() => { var serverCharacters = serverPrefManager.GetPreferences(clientNetId).Characters.Count; Assert.That(serverCharacters, Is.EqualTo(1)); }); await client.WaitIdleAsync(); await client.WaitAssertion(() => { profile = HumanoidCharacterProfile.Random(); clientPrefManager.CreateCharacter(profile); var clientCharacters = clientPrefManager.Preferences.Characters; Assert.That(clientCharacters.Count, Is.EqualTo(2)); Assert.That(clientCharacters[1].MemberwiseEquals(profile)); }); await WaitUntil(server, () => serverPrefManager.GetPreferences(clientNetId).Characters.Count == 2, maxTicks : 60); await server.WaitAssertion(() => { var serverCharacters = serverPrefManager.GetPreferences(clientNetId).Characters; Assert.That(serverCharacters.Count, Is.EqualTo(2)); Assert.That(serverCharacters[1].MemberwiseEquals(profile)); }); }
public async Task CreateDeleteCreateTest() { await using var pairTracker = await PoolManager.GetServerClient(new PoolSettings { InLobby = true }); var server = pairTracker.Pair.Server; var client = pairTracker.Pair.Client; var clientNetManager = client.ResolveDependency <IClientNetManager>(); var clientStateManager = client.ResolveDependency <IStateManager>(); var clientPrefManager = client.ResolveDependency <IClientPreferencesManager>(); var serverPrefManager = server.ResolveDependency <IServerPreferencesManager>(); // Need to run them in sync to receive the messages. await PoolManager.RunTicksSync(pairTracker.Pair, 1); await PoolManager.WaitUntil(client, () => clientStateManager.CurrentState is LobbyState, 600); Assert.NotNull(clientNetManager.ServerChannel); var clientNetId = clientNetManager.ServerChannel.UserId; HumanoidCharacterProfile profile = null; await client.WaitAssertion(() => { clientPrefManager.SelectCharacter(0); var clientCharacters = clientPrefManager.Preferences?.Characters; Assert.That(clientCharacters, Is.Not.Null); Assert.That(clientCharacters.Count, Is.EqualTo(1)); Assert.That(clientStateManager.CurrentState, Is.TypeOf <LobbyState>()); profile = HumanoidCharacterProfile.Random(); clientPrefManager.CreateCharacter(profile); clientCharacters = clientPrefManager.Preferences?.Characters; Assert.That(clientCharacters, Is.Not.Null); Assert.That(clientCharacters.Count, Is.EqualTo(2)); Assert.That(clientCharacters[1].MemberwiseEquals(profile)); }); await PoolManager.WaitUntil(server, () => serverPrefManager.GetPreferences(clientNetId).Characters.Count == 2, maxTicks : 60); await server.WaitAssertion(() => { var serverCharacters = serverPrefManager.GetPreferences(clientNetId).Characters; Assert.That(serverCharacters.Count, Is.EqualTo(2)); Assert.That(serverCharacters[1].MemberwiseEquals(profile)); }); await client.WaitAssertion(() => { clientPrefManager.DeleteCharacter(1); var clientCharacters = clientPrefManager.Preferences?.Characters.Count; Assert.That(clientCharacters, Is.EqualTo(1)); }); await PoolManager.WaitUntil(server, () => serverPrefManager.GetPreferences(clientNetId).Characters.Count == 1, maxTicks : 60); await server.WaitAssertion(() => { var serverCharacters = serverPrefManager.GetPreferences(clientNetId).Characters.Count; Assert.That(serverCharacters, Is.EqualTo(1)); }); await client.WaitIdleAsync(); await client.WaitAssertion(() => { profile = HumanoidCharacterProfile.Random(); clientPrefManager.CreateCharacter(profile); var clientCharacters = clientPrefManager.Preferences?.Characters; Assert.That(clientCharacters, Is.Not.Null); Assert.That(clientCharacters.Count, Is.EqualTo(2)); Assert.That(clientCharacters[1].MemberwiseEquals(profile)); }); await PoolManager.WaitUntil(server, () => serverPrefManager.GetPreferences(clientNetId).Characters.Count == 2, maxTicks : 60); await server.WaitAssertion(() => { var serverCharacters = serverPrefManager.GetPreferences(clientNetId).Characters; Assert.That(serverCharacters.Count, Is.EqualTo(2)); Assert.That(serverCharacters[1].MemberwiseEquals(profile)); }); await pairTracker.CleanReturnAsync(); }