public void OnCharacterSettingsChange(CharacterSettings characterSettings) { if (RootBodyPartsLoaded == false) { RootBodyPartsLoaded = true; if (characterSettings == null) { characterSettings = new CharacterSettings(); } ThisCharacter = characterSettings; PlayerHealthData SetRace = null; foreach (var Race in RaceSOSingleton.Instance.Races) { if (Race.name == ThisCharacter.Species) { RaceBodyparts = Race; } } SetUpCharacter(characterSettings); livingHealthMasterBase.CirculatorySystem.SetBloodType(RaceBodyparts.Base.BloodType); SetupCharacterData(characterSettings); } }
public void OnCharacterSettingsChange(CharacterSettings characterSettings) { if (RootBodyPartsLoaded == false) { RootBodyPartsLoaded = true; if (characterSettings == null) { characterSettings = new CharacterSettings(); } ThisCharacter = characterSettings; foreach (var Race in RaceSOSingleton.Instance.Races) { if (Race.name == ThisCharacter.Species) { RaceBodyparts = Race; break; } } SetUpCharacter(); SetupSprites(); livingHealthMasterBase.CirculatorySystem.SetBloodType(RaceBodyparts.Base.BloodType); livingHealthMasterBase.InitialiseHunger(RaceBodyparts.Base.NumberOfMinutesBeforeStarving); } }
public PlayerData(PlayerController playerController) { PlayerHealthManager playerHealthManager = playerController.GetComponent <PlayerHealthManager>(); playerControllerData = new PlayerControllerData(playerController); playerHealthData = new PlayerHealthData(playerHealthManager); }
public void InitiateFresh(PlayerHealthData SetRace) { Cleanup(); //SelectedSpecies SelectedSpecies = 0; foreach (var Species in RaceSOSingleton.Instance.Races) { if (Species == SetRace) { break; } SelectedSpecies++; } AvailableBodyTypes = SetRace.Base.bodyTypeSettings.AvailableBodyTypes; ThisSetRace = SetRace; availableSkinColors = SetRace.Base.SkinColours; PlayerManager.CurrentCharacterSettings = currentCharacter; SetUpSpeciesBody(SetRace); PopulateAllDropdowns(SetRace); RefreshAll(); DoInitChecks(); }
private void LoadSettings(CharacterSettings inCharacterSettings) { Cleanup(); currentCharacter = inCharacterSettings; //If we are playing locally offline, init character settings if they're null if (currentCharacter == null) { currentCharacter = new CharacterSettings(); PlayerManager.CurrentCharacterSettings = currentCharacter; } PlayerHealthData SetRace = null; foreach (var Race in RaceSOSingleton.Instance.Races) { if (Race.name == currentCharacter.Species) { SetRace = Race; } } if (SetRace == null) { SetRace = RaceSOSingleton.Instance.Races.First(); } InitiateFresh(SetRace); currentCharacter.SkinTone = inCharacterSettings.SkinTone; }
public void SetUpSpeciesBody(PlayerHealthData Race) { BasedBodyPart(Race.Base.Torso); BasedBodyPart(Race.Base.Head); BasedBodyPart(Race.Base.ArmLeft); BasedBodyPart(Race.Base.ArmRight); BasedBodyPart(Race.Base.LegLeft); BasedBodyPart(Race.Base.LegRight); }
void LoadData() { // check if we have any saved data PlayerHealthData data = SaveLoadManager.GetInstance.saveData.healthData; if (data != null) { _numUpgrades = data.numHealthUpgrades; print("NUM HEALTH UPPGRADES : " + _numUpgrades); } }
private void PopulateAllDropdowns(PlayerHealthData Race) { //Checks what customisation settings the player's race has avaliable //Then spawns customisation dropdowns for cloth and other stuff. foreach (var customisation in Race.Base.CustomisationSettings) { var Customisation = Instantiate(customisationSubPart, ScrollList.transform); OpenCustomisation.Add(Customisation); Customisation.Setup(customisation.CustomisationGroup, this, customisation.CustomisationGroup.SpriteOrder); } }
private void RefreshRace() { raceText.text = currentCharacter.Species.ToString(); foreach (var Race in RaceSOSingleton.Instance.Races) { if (Race.name == currentCharacter.Species) { ThisSetRace = Race; } } }
/// <summary> /// Validates that the player's skintone. /// </summary> /// <param name="settings">The character sheet used to check what race the player is.</param> /// <returns>True if illegal.</returns> public static bool HasIllegalSkinTone(CharacterSettings settings) { PlayerHealthData SetRace = null; bool skinToneIsIllegal = false; foreach (var Race in RaceSOSingleton.Instance.Races) { if (Race.name == settings.Species) { SetRace = Race; } } List <Color> availableSkinColors = SetRace.Base.SkinColours; Color currentSkinColor; ColorUtility.TryParseHtmlString(settings.SkinTone, out currentSkinColor); if (availableSkinColors.Count > 0) { foreach (var skinColour in availableSkinColors) { if (Math.Abs(skinColour.a - currentSkinColor.a) < 0.01f && Math.Abs(skinColour.r - currentSkinColor.r) < 0.01f && Math.Abs(skinColour.g - currentSkinColor.g) < 0.01f && Math.Abs(skinColour.b - currentSkinColor.b) < 0.01f) { skinToneIsIllegal = false; break; } else { skinToneIsIllegal = true; } } } else { return(false); } if (skinToneIsIllegal == false) { if (currentSkinColor.a <= 0.99f) { skinToneIsIllegal = true; } } return(skinToneIsIllegal); }
private void LoadSettings(CharacterSettings inCharacterSettings) { currentCharacter = inCharacterSettings; //If we are playing locally offline, init character settings if they're null if (currentCharacter == null) { currentCharacter = new CharacterSettings(); PlayerManager.CurrentCharacterSettings = currentCharacter; } PlayerHealthData SetRace = null; foreach (var Race in RaceSOSingleton.Instance.Races) { if (Race.name == currentCharacter.Species) { SetRace = Race; } } if (SetRace == null) { SetRace = RaceSOSingleton.Instance.Races.First(); } //SelectedSpecies SelectedSpecies = 0; foreach (var Species in RaceSOSingleton.Instance.Races) { if (Species == SetRace) { break; } SelectedSpecies++; } AvailableBodyTypes = SetRace.Base.bodyTypeSettings.AvailableBodyTypes; ThisSetRace = SetRace; availableSkinColors = SetRace.Base.SkinColours; currentCharacter.SkinTone = inCharacterSettings.SkinTone; SetUpSpeciesBody(SetRace); PopulateAllDropdowns(SetRace); DoInitChecks(); }
public void OnCharacterSettingsChange(CharacterSettings characterSettings) { if (RootBodyPartsLoaded == false) { RootBodyPartsLoaded = true; if (characterSettings == null) { characterSettings = new CharacterSettings(); } ThisCharacter = characterSettings; foreach (var Race in RaceSOSingleton.Instance.Races) { if (Race.name == ThisCharacter.Species) { RaceBodyparts = Race; } } SetupCharacterData(characterSettings); } }
public void SetupsSprites() { foreach (var Root in livingHealthMasterBase.RootBodyPartContainers) { CustomisationStorage customisationStorage = null; foreach (var Custom in ThisCharacter.SerialisedBodyPartCustom) { if (Root.name == Custom.path) { customisationStorage = Custom; break; } } if (customisationStorage != null) { BodyPartDropDownOrgans.OnPlayerBodyDeserialise(null, Root, customisationStorage.Data, livingHealthMasterBase); } foreach (var Limb in Root.ContainsLimbs) { SubSetBodyPart(Limb, ""); } } PlayerHealthData SetRace = null; foreach (var Race in RaceSOSingleton.Instance.Races) { if (Race.name == ThisCharacter.Species) { SetRace = Race; } } List <uint> ToClient = new List <uint>(); foreach (var Customisation in SetRace.Base.CustomisationSettings) { ExternalCustomisation externalCustomisation = null; foreach (var EC in ThisCharacter.SerialisedExternalCustom) { if (EC.Key == Customisation.CustomisationGroup.name) { externalCustomisation = EC; } } if (externalCustomisation == null) { continue; } var SpriteHandlerNorder = Spawn.ServerPrefab(ToInstantiateSpriteCustomisation.gameObject, null, CustomisationSprites.transform) .GameObject.GetComponent <SpriteHandlerNorder>(); SpriteHandlerNorder.transform.localPosition = Vector3.zero; ToClient.Add(SpriteHandlerNorder.GetComponent <NetworkIdentity>().netId); OpenSprites.Add(SpriteHandlerNorder); //SubSetBodyPart foreach (var Sprite_s in Customisation.CustomisationGroup.PlayerCustomisations) { if (Sprite_s.Name == externalCustomisation.SerialisedValue.SelectedName) { SpriteHandlerNorder.SpriteHandler.SetSpriteSO(Sprite_s.SpriteEquipped); SpriteHandlerNorder.SetSpriteOrder(new SpriteOrder(Customisation.CustomisationGroup.SpriteOrder)); Color setColor = Color.black; ColorUtility.TryParseHtmlString(externalCustomisation.SerialisedValue.Colour, out setColor); SpriteHandlerNorder.SpriteHandler.SetColor(setColor); } } } this.GetComponent <RootBodyPartController>().UpdateCustomisations("", JsonConvert.SerializeObject(ToClient)); //TODOH //Fetch Race Health Pack // if(Character.Race == Race.Human) // { // // } //this is Target zone //Instantiates Sprites //TODOH //Race data contain sprites order //healing/Damage splits across body parts //needs a generate sprites dynamically //RaceBodyparts.Base.LegLeft.GetComponent<ItemStorage>() //RaceTexture = Spawn.RaceData["human"]; //Loop through dimrphic body parts //SetupBodySpritesByGender(); SetSurfaceColour(); OnDirectionChange(directional.CurrentDirection); }
public PlayerHealthController(PlayerHealthData playerHealthData) { _playerHealthData = playerHealthData; }
public void SetupSprites() { CustomisationStorage customisationStorage = null; if (ThisCharacter.SerialisedBodyPartCustom == null) { //TODO : (Max) - Fix SerialisedBodyPartCustom being null on Dummy players Logger.LogWarning($"{gameObject} has spawned with null bodyPart customizations. This error should only appear for Dummy players only."); return; } foreach (var Custom in ThisCharacter.SerialisedBodyPartCustom) { if (livingHealthMasterBase.name == Custom.path) { customisationStorage = Custom; break; } } if (customisationStorage != null) { BodyPartDropDownOrgans.PlayerBodyDeserialise(null, customisationStorage.Data, livingHealthMasterBase); } foreach (var bodyPart in livingHealthMasterBase.BodyPartList) { SubSetBodyPart(bodyPart, ""); } PlayerHealthData SetRace = null; foreach (var Race in RaceSOSingleton.Instance.Races) { if (Race.name == ThisCharacter.Species) { SetRace = Race; } } List <IntName> ToClient = new List <IntName>(); foreach (var Customisation in SetRace.Base.CustomisationSettings) { ExternalCustomisation externalCustomisation = null; foreach (var EC in ThisCharacter.SerialisedExternalCustom) { if (EC.Key == Customisation.CustomisationGroup.name) { externalCustomisation = EC; } } if (externalCustomisation == null) { continue; } var Net = SpriteHandlerManager.GetRecursivelyANetworkBehaviour(this.gameObject); var SpriteHandlerNorder = Instantiate(ToInstantiateSpriteCustomisation.gameObject, CustomisationSprites.transform) .GetComponent <SpriteHandlerNorder>(); SpriteHandlerManager.UnRegisterHandler(Net, SpriteHandlerNorder.SpriteHandler); SpriteHandlerNorder.transform.localPosition = Vector3.zero; SpriteHandlerNorder.name = Customisation.CustomisationGroup.ThisType.ToString(); SpriteHandlerManager.RegisterHandler(Net, SpriteHandlerNorder.SpriteHandler); var newone = new IntName(); newone.Int = CustomNetworkManager.Instance.IndexLookupSpawnablePrefabs[ToInstantiateSpriteCustomisation.gameObject]; newone.Name = Customisation.CustomisationGroup.ThisType.ToString(); ToClient.Add(newone); OpenSprites.Add(SpriteHandlerNorder); //SubSetBodyPart foreach (var Sprite_s in Customisation.CustomisationGroup.PlayerCustomisations) { if (Sprite_s.Name == externalCustomisation.SerialisedValue.SelectedName) { SpriteHandlerNorder.SpriteHandler.SetSpriteSO(Sprite_s.SpriteEquipped); SpriteHandlerNorder.SetSpriteOrder(new SpriteOrder(Customisation.CustomisationGroup.SpriteOrder)); newone.Data = JsonConvert.SerializeObject(new SpriteOrder(SpriteHandlerNorder.SpriteOrder)); Color setColor = Color.black; ColorUtility.TryParseHtmlString(externalCustomisation.SerialisedValue.Colour, out setColor); setColor.a = 1; SpriteHandlerNorder.SpriteHandler.SetColor(setColor); } } } GetComponent <RootBodyPartController>().PlayerSpritesData = JsonConvert.SerializeObject(ToClient); SetSurfaceColour(); OnDirectionChange(directional.CurrentDirection); }
//This is (going to be) a pretty long constructor, but it works public SaveData(LevelData levelData, PlayerHealthData playerHealthData) { this.levelData = levelData; this.playerHealthData = playerHealthData; }
public void SetupSprites() { CustomisationStorage customisationStorage = null; foreach (var Custom in ThisCharacter.SerialisedBodyPartCustom) { if (livingHealthMasterBase.name == Custom.path) { customisationStorage = Custom; break; } } if (customisationStorage != null) { BodyPartDropDownOrgans.OnPlayerBodyDeserialise(null, customisationStorage.Data, livingHealthMasterBase); } foreach (var bodyPart in livingHealthMasterBase.BodyPartList) { SubSetBodyPart(bodyPart, ""); //TODO: horrible, remove -- organ prefabs have bodyparts foreach (var organ in bodyPart.OrganList) { var bodyPartOrgan = organ.GetComponent <BodyPart>(); SubSetBodyPart(bodyPartOrgan, $"/{bodyPart.name}"); } } PlayerHealthData SetRace = null; foreach (var Race in RaceSOSingleton.Instance.Races) { if (Race.name == ThisCharacter.Species) { SetRace = Race; } } List <IntName> ToClient = new List <IntName>(); foreach (var Customisation in SetRace.Base.CustomisationSettings) { ExternalCustomisation externalCustomisation = null; foreach (var EC in ThisCharacter.SerialisedExternalCustom) { if (EC.Key == Customisation.CustomisationGroup.name) { externalCustomisation = EC; } } if (externalCustomisation == null) { continue; } var SpriteHandlerNorder = Spawn.ServerPrefab(ToInstantiateSpriteCustomisation.gameObject, null, CustomisationSprites.transform) .GameObject.GetComponent <SpriteHandlerNorder>(); SpriteHandlerNorder.transform.localPosition = Vector3.zero; SpriteHandlerNorder.name = Customisation.CustomisationGroup.ThisType.ToString(); var newone = new IntName(); newone.Int = CustomNetworkManager.Instance.IndexLookupSpawnablePrefabs[ToInstantiateSpriteCustomisation.gameObject]; newone.Name = Customisation.CustomisationGroup.ThisType.ToString(); ToClient.Add(newone); OpenSprites.Add(SpriteHandlerNorder); //SubSetBodyPart foreach (var Sprite_s in Customisation.CustomisationGroup.PlayerCustomisations) { if (Sprite_s.Name == externalCustomisation.SerialisedValue.SelectedName) { SpriteHandlerNorder.SpriteHandler.SetSpriteSO(Sprite_s.SpriteEquipped); SpriteHandlerNorder.SetSpriteOrder(new SpriteOrder(Customisation.CustomisationGroup.SpriteOrder)); newone.Data = JsonConvert.SerializeObject(new SpriteOrder(SpriteHandlerNorder.SpriteOrder)); Color setColor = Color.black; ColorUtility.TryParseHtmlString(externalCustomisation.SerialisedValue.Colour, out setColor); setColor.a = 1; SpriteHandlerNorder.SpriteHandler.SetColor(setColor); } } } GetComponent <RootBodyPartController>().PlayerSpritesData = JsonConvert.SerializeObject(ToClient); SetSurfaceColour(); OnDirectionChange(directional.CurrentDirection); }
public void UpdateImage(PlayerHealthData data) { healthBar.fillAmount = data.totalHealth; }
public void SetupsSprites() { foreach (var Root in livingHealthMasterBase.RootBodyPartContainers) { CustomisationStorage customisationStorage = null; foreach (var Custom in ThisCharacter.SerialisedBodyPartCustom) { if (Root.name == Custom.path) { customisationStorage = Custom; break; } } if (customisationStorage != null) { BodyPartDropDownOrgans.OnPlayerBodyDeserialise(null, Root, customisationStorage.Data, livingHealthMasterBase); } foreach (var Limb in Root.ContainsLimbs) { SubSetBodyPart(Limb, ""); } } PlayerHealthData SetRace = null; foreach (var Race in RaceSOSingleton.Instance.Races) { if (Race.name == ThisCharacter.Species) { SetRace = Race; } } List <uint> ToClient = new List <uint>(); foreach (var Customisation in SetRace.Base.CustomisationSettings) { ExternalCustomisation externalCustomisation = null; foreach (var EC in ThisCharacter.SerialisedExternalCustom) { if (EC.Key == Customisation.CustomisationGroup.name) { externalCustomisation = EC; } } if (externalCustomisation == null) { continue; } var SpriteHandlerNorder = Spawn.ServerPrefab(ToInstantiateSpriteCustomisation.gameObject, null, CustomisationSprites.transform) .GameObject.GetComponent <SpriteHandlerNorder>(); SpriteHandlerNorder.transform.localPosition = Vector3.zero; ToClient.Add(SpriteHandlerNorder.GetComponent <NetworkIdentity>().netId); OpenSprites.Add(SpriteHandlerNorder); //SubSetBodyPart foreach (var Sprite_s in Customisation.CustomisationGroup.PlayerCustomisations) { if (Sprite_s.Name == externalCustomisation.SerialisedValue.SelectedName) { SpriteHandlerNorder.SpriteHandler.SetSpriteSO(Sprite_s.SpriteEquipped); SpriteHandlerNorder.SetSpriteOrder(new SpriteOrder(Customisation.CustomisationGroup.SpriteOrder)); Color setColor = Color.black; ColorUtility.TryParseHtmlString(externalCustomisation.SerialisedValue.Colour, out setColor); setColor.a = 1; SpriteHandlerNorder.SpriteHandler.SetColor(setColor); } } } GetComponent <RootBodyPartController>().PlayerSpritesData = JsonConvert.SerializeObject(ToClient); SetSurfaceColour(); OnDirectionChange(directional.CurrentDirection); }