public int GetRandoCandidatesByTemplate(template_random_profile rando) { if (rando.Template.task_random_profile_generator.profile_generate_any_random) { List <template_profile> randoCandidates = new List <template_profile>(); for (int i = 0; i < RandoProfileList.Count; ++i) { if (RandoProfileList[i].Template.profile_basic_data.profile_is_enabled && IsProfileModerate(RandoProfileList[i])) { randoCandidates.Add(RandoProfileList[i]); } else { continue; } } if (randoCandidates.Count > 0) { return(randoCandidates.Count); } else { Debug.LogError("RAN OUT OF RANDO PROFILES :'( pls tell writers to write more"); return(0); } } else { List <template_profile> randoCandidates = new List <template_profile>(); List <template_profile> targetRandoList = null; if (rando.Template.task_random_profile_generator.profile_generate_occupation == profile_occupation_selector.job_lasthuman) { targetRandoList = LastHumanProfileList; } else if (rando.Template.task_random_profile_generator.profile_generate_occupation == profile_occupation_selector.job_plant) { targetRandoList = PlantProfileList; } else { targetRandoList = RandoProfileList; } for (int i = 0; i < targetRandoList.Count; ++i) { if (!targetRandoList[i].Template.profile_basic_data.profile_is_enabled) { continue; } switch (rando.Template.task_random_profile_generator.profile_generate_spare_death_both) { case profile_generate_spare_death_both.profile_generate_death_only: // death { // death profile if (rando.Template.task_random_profile_generator.profile_generate_ecology_value_min != 0) { if (targetRandoList[i].Template.profile_death_data.profile_death_ecology_value < rando.Template.task_random_profile_generator.profile_generate_ecology_value_min) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_ecology_value_max != 0) { if (targetRandoList[i].Template.profile_death_data.profile_death_ecology_value > rando.Template.task_random_profile_generator.profile_generate_ecology_value_max) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_healthcare_value_min != 0) { if (targetRandoList[i].Template.profile_death_data.profile_death_healthcare_value < rando.Template.task_random_profile_generator.profile_generate_healthcare_value_min) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_healthcare_value_max != 0) { if (targetRandoList[i].Template.profile_death_data.profile_death_healthcare_value > rando.Template.task_random_profile_generator.profile_generate_healthcare_value_max) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_peace_value_min != 0) { if (targetRandoList[i].Template.profile_death_data.profile_death_peace_value < rando.Template.task_random_profile_generator.profile_generate_peace_value_min) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_peace_value_max != 0) { if (targetRandoList[i].Template.profile_death_data.profile_death_peace_value > rando.Template.task_random_profile_generator.profile_generate_peace_value_max) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_prosperity_value_min != 0) { if (targetRandoList[i].Template.profile_death_data.profile_death_prosperity_value < rando.Template.task_random_profile_generator.profile_generate_prosperity_value_min) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_prosperity_value_max != 0) { if (targetRandoList[i].Template.profile_death_data.profile_death_prosperity_value > rando.Template.task_random_profile_generator.profile_generate_prosperity_value_max) { continue; } } break; } case profile_generate_spare_death_both.profile_generate_spare_only: //spare { // spare profile if (rando.Template.task_random_profile_generator.profile_generate_ecology_value_min != 0) { if (targetRandoList[i].Template.profile_spare_data.profile_spare_ecology_value < rando.Template.task_random_profile_generator.profile_generate_ecology_value_min) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_ecology_value_max != 0) { if (targetRandoList[i].Template.profile_spare_data.profile_spare_ecology_value > rando.Template.task_random_profile_generator.profile_generate_ecology_value_max) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_healthcare_value_min != 0) { if (targetRandoList[i].Template.profile_spare_data.profile_spare_healthcare_value < rando.Template.task_random_profile_generator.profile_generate_healthcare_value_min) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_healthcare_value_max != 0) { if (targetRandoList[i].Template.profile_spare_data.profile_spare_healthcare_value > rando.Template.task_random_profile_generator.profile_generate_healthcare_value_max) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_peace_value_min != 0) { if (targetRandoList[i].Template.profile_spare_data.profile_spare_peace_value < rando.Template.task_random_profile_generator.profile_generate_peace_value_min) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_peace_value_max != 0) { if (targetRandoList[i].Template.profile_spare_data.profile_spare_peace_value > rando.Template.task_random_profile_generator.profile_generate_peace_value_max) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_prosperity_value_min != 0) { if (targetRandoList[i].Template.profile_spare_data.profile_spare_prosperity_value < rando.Template.task_random_profile_generator.profile_generate_prosperity_value_min) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_prosperity_value_max != 0) { if (targetRandoList[i].Template.profile_spare_data.profile_spare_prosperity_value > rando.Template.task_random_profile_generator.profile_generate_prosperity_value_max) { continue; } } break; } //case profile_generate_spare_death_both.profile_generate_both_death_spare: //both - i have no idea how the f**k imma do dis //{ // // death profile // if (rando.Template.task_random_profile_generator.profile_generate_ecology_value_min != 0) // { // if (targetRandoList[i].Template.profile_death_data.profile_death_ecology_value < rando.Template.task_random_profile_generator.profile_generate_ecology_value_min && // targetRandoList[i].Template.profile_spare_data.profile_spare_ecology_value < rando.Template.task_random_profile_generator.profile_generate_ecology_value_min) // { // continue; // } // } // if (rando.Template.task_random_profile_generator.profile_generate_ecology_value_max != 0) // { // if (targetRandoList[i].Template.profile_death_data.profile_death_ecology_value > rando.Template.task_random_profile_generator.profile_generate_ecology_value_max) // { // continue; // } // } // if (rando.Template.task_random_profile_generator.profile_generate_healthcare_value_min != 0) // { // if (targetRandoList[i].Template.profile_death_data.profile_death_healthcare_value < rando.Template.task_random_profile_generator.profile_generate_healthcare_value_min) // { // continue; // } // } // if (rando.Template.task_random_profile_generator.profile_generate_healthcare_value_max != 0) // { // if (targetRandoList[i].Template.profile_death_data.profile_death_healthcare_value > rando.Template.task_random_profile_generator.profile_generate_healthcare_value_max) // { // continue; // } // } // if (rando.Template.task_random_profile_generator.profile_generate_peace_value_min != 0) // { // if (targetRandoList[i].Template.profile_death_data.profile_death_peace_value < rando.Template.task_random_profile_generator.profile_generate_peace_value_min) // { // continue; // } // } // if (rando.Template.task_random_profile_generator.profile_generate_peace_value_max != 0) // { // if (targetRandoList[i].Template.profile_death_data.profile_death_peace_value > rando.Template.task_random_profile_generator.profile_generate_peace_value_max) // { // continue; // } // } // if (rando.Template.task_random_profile_generator.profile_generate_prosperity_value_min != 0) // { // if (targetRandoList[i].Template.profile_death_data.profile_death_prosperity_value < rando.Template.task_random_profile_generator.profile_generate_prosperity_value_min) // { // continue; // } // } // if (rando.Template.task_random_profile_generator.profile_generate_prosperity_value_max != 0) // { // if (targetRandoList[i].Template.profile_death_data.profile_death_prosperity_value > rando.Template.task_random_profile_generator.profile_generate_prosperity_value_max) // { // continue; // } // } // // break; //} } // basic profile if (rando.Template.task_random_profile_generator.profile_generate_occupation != 0) { if (targetRandoList[i].Template.profile_basic_data.profile_occupation_selector != rando.Template.task_random_profile_generator.profile_generate_occupation) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_younger_than != 0) { try { if (int.Parse(targetRandoList[i].Template.profile_basic_data.profile_age_value) > rando.Template.task_random_profile_generator.profile_generate_younger_than) { continue; } } catch { Debug.LogWarning("Could not parse profile age for: " + targetRandoList[i].Template.profile_basic_data.profile_name); continue; } } if (rando.Template.task_random_profile_generator.profile_generate_older_than != 0) { try { if (int.Parse(targetRandoList[i].Template.profile_basic_data.profile_age_value) < rando.Template.task_random_profile_generator.profile_generate_older_than) { continue; } } catch { Debug.LogWarning("Could not parse profile age for: " + targetRandoList[i].Template.profile_basic_data.profile_name); continue; } } randoCandidates.Add(targetRandoList[i]); } if (randoCandidates.Count > 0) { return(randoCandidates.Count); } else { Debug.LogError("No suitable rando for: '" + rando.DisplayName + "' found! Reason: No candidates matched conditions"); return(0); } } }
public template_profile RollProfileByRandoDefinition(template_random_profile rando) { template_profile rolledRando = null; if (RandoProfileList.Count == 0) { Debug.LogError("OUT OF RANDOS"); return(null); } if (rando.Template.task_random_profile_generator.profile_generate_any_random) { List <template_profile> randoCandidates = new List <template_profile>(); List <template_profile> randoCandidatesEnabled = new List <template_profile>(); for (int i = 0; i < RandoProfileList.Count; ++i) { if (RandoProfileList[i].Template.profile_basic_data.profile_is_enabled && IsProfileModerate(RandoProfileList[i])) { randoCandidates.Add(RandoProfileList[i]); if (SaveManager.instance.GetCurrentPlayerState().IsProfileEnabled(RandoProfileList[i])) { randoCandidatesEnabled.Add(RandoProfileList[i]); Debug.Log("ADDED ENABLED RANDO TO ROLL POOL"); // nudge the odds lololol //for (int x = 0; x < 15; ++x) //{ // randoCandidates.Add(RandoProfileList[i]); //} } } else { continue; } } if (randoCandidatesEnabled.Count > 0) { rolledRando = randoCandidatesEnabled[Random.Range(0, randoCandidatesEnabled.Count)]; Debug.Log("ROLLED ENABLED RANDO"); } else if (randoCandidates.Count > 0) { rolledRando = randoCandidates[Random.Range(0, randoCandidates.Count)]; } else { Debug.LogError("RAN OUT OF RANDO PROFILES :'( pls tell writers to write more"); } } else { List <template_profile> randoCandidates = new List <template_profile>(); List <template_profile> targetRandoList = null; if (rando.Template.task_random_profile_generator.profile_generate_occupation == profile_occupation_selector.job_lasthuman) { targetRandoList = LastHumanProfileList; } else if (rando.Template.task_random_profile_generator.profile_generate_occupation == profile_occupation_selector.job_plant) { targetRandoList = PlantProfileList; } else { targetRandoList = RandoProfileList; } for (int i = 0; i < targetRandoList.Count; ++i) { if (!targetRandoList[i].Template.profile_basic_data.profile_is_enabled) { continue; } switch (rando.Template.task_random_profile_generator.profile_generate_spare_death_both) { case profile_generate_spare_death_both.profile_generate_death_only: // death { // death profile if (rando.Template.task_random_profile_generator.profile_generate_ecology_value_min != 0) { if (targetRandoList[i].Template.profile_death_data.profile_death_ecology_value < rando.Template.task_random_profile_generator.profile_generate_ecology_value_min) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_ecology_value_max != 0) { if (targetRandoList[i].Template.profile_death_data.profile_death_ecology_value > rando.Template.task_random_profile_generator.profile_generate_ecology_value_max) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_healthcare_value_min != 0) { if (targetRandoList[i].Template.profile_death_data.profile_death_healthcare_value < rando.Template.task_random_profile_generator.profile_generate_healthcare_value_min) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_healthcare_value_max != 0) { if (targetRandoList[i].Template.profile_death_data.profile_death_healthcare_value > rando.Template.task_random_profile_generator.profile_generate_healthcare_value_max) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_peace_value_min != 0) { if (targetRandoList[i].Template.profile_death_data.profile_death_peace_value < rando.Template.task_random_profile_generator.profile_generate_peace_value_min) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_peace_value_max != 0) { if (targetRandoList[i].Template.profile_death_data.profile_death_peace_value > rando.Template.task_random_profile_generator.profile_generate_peace_value_max) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_prosperity_value_min != 0) { if (targetRandoList[i].Template.profile_death_data.profile_death_prosperity_value < rando.Template.task_random_profile_generator.profile_generate_prosperity_value_min) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_prosperity_value_max != 0) { if (targetRandoList[i].Template.profile_death_data.profile_death_prosperity_value > rando.Template.task_random_profile_generator.profile_generate_prosperity_value_max) { continue; } } break; } case profile_generate_spare_death_both.profile_generate_spare_only: //spare { // spare profile if (rando.Template.task_random_profile_generator.profile_generate_ecology_value_min != 0) { if (targetRandoList[i].Template.profile_spare_data.profile_spare_ecology_value < rando.Template.task_random_profile_generator.profile_generate_ecology_value_min) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_ecology_value_max != 0) { if (targetRandoList[i].Template.profile_spare_data.profile_spare_ecology_value > rando.Template.task_random_profile_generator.profile_generate_ecology_value_max) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_healthcare_value_min != 0) { if (targetRandoList[i].Template.profile_spare_data.profile_spare_healthcare_value < rando.Template.task_random_profile_generator.profile_generate_healthcare_value_min) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_healthcare_value_max != 0) { if (targetRandoList[i].Template.profile_spare_data.profile_spare_healthcare_value > rando.Template.task_random_profile_generator.profile_generate_healthcare_value_max) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_peace_value_min != 0) { if (targetRandoList[i].Template.profile_spare_data.profile_spare_peace_value < rando.Template.task_random_profile_generator.profile_generate_peace_value_min) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_peace_value_max != 0) { if (targetRandoList[i].Template.profile_spare_data.profile_spare_peace_value > rando.Template.task_random_profile_generator.profile_generate_peace_value_max) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_prosperity_value_min != 0) { if (targetRandoList[i].Template.profile_spare_data.profile_spare_prosperity_value < rando.Template.task_random_profile_generator.profile_generate_prosperity_value_min) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_prosperity_value_max != 0) { if (targetRandoList[i].Template.profile_spare_data.profile_spare_prosperity_value > rando.Template.task_random_profile_generator.profile_generate_prosperity_value_max) { continue; } } break; } //case profile_generate_spare_death_both.profile_generate_both_death_spare: //both - i have no idea how the f**k imma do dis //{ // // death profile // if (rando.Template.task_random_profile_generator.profile_generate_ecology_value_min != 0) // { // if (targetRandoList[i].Template.profile_death_data.profile_death_ecology_value < rando.Template.task_random_profile_generator.profile_generate_ecology_value_min && // targetRandoList[i].Template.profile_spare_data.profile_spare_ecology_value < rando.Template.task_random_profile_generator.profile_generate_ecology_value_min) // { // continue; // } // } // if (rando.Template.task_random_profile_generator.profile_generate_ecology_value_max != 0) // { // if (targetRandoList[i].Template.profile_death_data.profile_death_ecology_value > rando.Template.task_random_profile_generator.profile_generate_ecology_value_max) // { // continue; // } // } // if (rando.Template.task_random_profile_generator.profile_generate_healthcare_value_min != 0) // { // if (targetRandoList[i].Template.profile_death_data.profile_death_healthcare_value < rando.Template.task_random_profile_generator.profile_generate_healthcare_value_min) // { // continue; // } // } // if (rando.Template.task_random_profile_generator.profile_generate_healthcare_value_max != 0) // { // if (targetRandoList[i].Template.profile_death_data.profile_death_healthcare_value > rando.Template.task_random_profile_generator.profile_generate_healthcare_value_max) // { // continue; // } // } // if (rando.Template.task_random_profile_generator.profile_generate_peace_value_min != 0) // { // if (targetRandoList[i].Template.profile_death_data.profile_death_peace_value < rando.Template.task_random_profile_generator.profile_generate_peace_value_min) // { // continue; // } // } // if (rando.Template.task_random_profile_generator.profile_generate_peace_value_max != 0) // { // if (targetRandoList[i].Template.profile_death_data.profile_death_peace_value > rando.Template.task_random_profile_generator.profile_generate_peace_value_max) // { // continue; // } // } // if (rando.Template.task_random_profile_generator.profile_generate_prosperity_value_min != 0) // { // if (targetRandoList[i].Template.profile_death_data.profile_death_prosperity_value < rando.Template.task_random_profile_generator.profile_generate_prosperity_value_min) // { // continue; // } // } // if (rando.Template.task_random_profile_generator.profile_generate_prosperity_value_max != 0) // { // if (targetRandoList[i].Template.profile_death_data.profile_death_prosperity_value > rando.Template.task_random_profile_generator.profile_generate_prosperity_value_max) // { // continue; // } // } // // break; //} } // basic profile if (rando.Template.task_random_profile_generator.profile_generate_occupation != 0) { if (targetRandoList[i].Template.profile_basic_data.profile_occupation_selector != rando.Template.task_random_profile_generator.profile_generate_occupation) { continue; } } if (rando.Template.task_random_profile_generator.profile_generate_younger_than != 0) { try { if (int.Parse(targetRandoList[i].Template.profile_basic_data.profile_age_value) > rando.Template.task_random_profile_generator.profile_generate_younger_than) { continue; } } catch { Debug.LogWarning("Could not parse profile age for: " + targetRandoList[i].Template.profile_basic_data.profile_name); continue; } } if (rando.Template.task_random_profile_generator.profile_generate_older_than != 0) { try { if (int.Parse(targetRandoList[i].Template.profile_basic_data.profile_age_value) < rando.Template.task_random_profile_generator.profile_generate_older_than) { continue; } } catch { Debug.LogWarning("Could not parse profile age for: " + targetRandoList[i].Template.profile_basic_data.profile_name); continue; } } randoCandidates.Add(targetRandoList[i]); } if (randoCandidates.Count > 0) { rolledRando = randoCandidates[Random.Range(0, randoCandidates.Count)]; } else { Debug.LogError("No suitable rando for: '" + rando.DisplayName + "' found! Reason: No candidates matched conditions"); } } if (rolledRando != null) { SaveManager.instance.GetCurrentPlayerState().AddRolledRandoID(rolledRando.Id); RemoveRolledRandoFromPool(rolledRando); } else { Debug.LogError("No suitable rando found!"); } return(rolledRando); }
public override void InitManager() { base.InitManager(); instance = this; AllRandoTemplates = ArticyDatabase.GetAllOfType <template_random_profile>(); if (RandoProfilesReference.HasReference) { UserFolder randoFolder = RandoProfilesReference.GetObject <UserFolder>(); for (int i = 0; i < randoFolder.Children.Count; ++i) { UserFolder childRandoFolder = randoFolder.Children[i] as UserFolder; if (childRandoFolder != null) { for (int j = 0; j < childRandoFolder.Children.Count; ++j) { template_profile randoProfile = childRandoFolder.Children[j] as template_profile; //if (randoProfile.PreviewImage != null && randoProfile.PreviewImage.Asset != null) //{ // ImagePhoto.sprite = AssignedProfile.PreviewImage.Asset.LoadAssetAsSprite(); //} if (randoProfile != null && randoProfile.PreviewImage != null && randoProfile.PreviewImage.Asset != null) { RandoProfileList.Add(randoProfile); } } } } } //Debug.Log("Found " + RandoProfileList.Count + " rando profiles"); if (LastHumanProfilesReference.HasReference) { UserFolder randoFolderLastHumans = LastHumanProfilesReference.GetObject <UserFolder>(); for (int i = 0; i < randoFolderLastHumans.Children.Count; ++i) { template_profile randoProfile = randoFolderLastHumans.Children[i] as template_profile; if (randoProfile != null && randoProfile.PreviewImage != null && randoProfile.PreviewImage.Asset != null) { LastHumanProfileList.Add(randoProfile); } } } //Debug.Log("Found " + LastHumanProfileList.Count + " last human rando profiles"); if (DeveloperProfilesReference.HasReference) { UserFolder devFolder = DeveloperProfilesReference.GetObject <UserFolder>(); for (int j = 0; j < devFolder.Children.Count; ++j) { template_profile devProfile = devFolder.Children[j] as template_profile; DeveloperProfileList.Add(devProfile); } } //Debug.Log("Found " + DeveloperProfileList.Count + " dev profiles"); if (PlantProfilesReference.HasReference) { UserFolder randoFolderPlants = PlantProfilesReference.GetObject <UserFolder>(); for (int i = 0; i < randoFolderPlants.Children.Count; ++i) { template_profile randoProfile = randoFolderPlants.Children[i] as template_profile; if (randoProfile != null && randoProfile.PreviewImage != null && randoProfile.PreviewImage.Asset != null) { PlantProfileList.Add(randoProfile); } } } if (AnyRandomTemplateReference.HasReference) { AnyRandomTemplate = AnyRandomTemplateReference.GetObject <template_random_profile>(); } //Debug.Log("Found " + PlantProfileList.Count + " plant rando profiles"); for (int i = 0; i < SubplotProfileReferences.Count; ++i) { if (SubplotProfileReferences[i].HasReference) { template_profile subplotProfile = SubplotProfileReferences[i].GetObject <template_profile>(); if (subplotProfile != null) { SubplotProfiles.Add(subplotProfile); } } } //Debug.Log("Found " + SubplotProfiles.Count + " subplot profiles"); string trolo = ""; for (int i = 0; i < AllRandoTemplates.Count; ++i) { trolo += "Found " + GetRandoCandidatesByTemplate(AllRandoTemplates[i]) + " : " + AllRandoTemplates[i].DisplayName + "'s\n"; } //Debug.Log(trolo); List <template_profile> profiles = RandoProfileList; //ArticyDatabase.GetAllOfType<template_profile>(); int ecoPlusSpare = 0; int healthPlusSpare = 0; int peacePlusSpare = 0; int prosperityPlusSpare = 0; int ecoPlusDeath = 0; int healthPlusDeath = 0; int peacePlusDeath = 0; int prosperityPlusDeath = 0; int ecoMinusDeath = 0; int healthMinusDeath = 0; int peaceMinusDeath = 0; int prosperityMinusDeath = 0; int ecoMinusSpare = 0; int healthMinusSpare = 0; int peaceMinusSpare = 0; int prosperityMinusSpare = 0; for (int i = 0; i < profiles.Count; ++i) { if (profiles[i].Template.profile_death_data.profile_death_ecology_value > 0) { ecoPlusDeath += Mathf.RoundToInt(profiles[i].Template.profile_death_data.profile_death_ecology_value); } else { ecoMinusDeath += Mathf.RoundToInt(profiles[i].Template.profile_death_data.profile_death_ecology_value); } if (profiles[i].Template.profile_death_data.profile_death_peace_value > 0) { peacePlusDeath += Mathf.RoundToInt(profiles[i].Template.profile_death_data.profile_death_peace_value); } else { peaceMinusDeath += Mathf.RoundToInt(profiles[i].Template.profile_death_data.profile_death_peace_value); } if (profiles[i].Template.profile_death_data.profile_death_healthcare_value > 0) { healthPlusDeath += Mathf.RoundToInt(profiles[i].Template.profile_death_data.profile_death_healthcare_value); } else { healthMinusDeath += Mathf.RoundToInt(profiles[i].Template.profile_death_data.profile_death_healthcare_value); } if (profiles[i].Template.profile_death_data.profile_death_prosperity_value > 0) { prosperityPlusDeath += Mathf.RoundToInt(profiles[i].Template.profile_death_data.profile_death_prosperity_value); } else { prosperityMinusDeath += Mathf.RoundToInt(profiles[i].Template.profile_death_data.profile_death_prosperity_value); } if (profiles[i].Template.profile_spare_data.profile_spare_ecology_value > 0) { ecoPlusSpare += Mathf.RoundToInt(profiles[i].Template.profile_spare_data.profile_spare_ecology_value); } else { ecoMinusSpare += Mathf.RoundToInt(profiles[i].Template.profile_spare_data.profile_spare_ecology_value); } if (profiles[i].Template.profile_spare_data.profile_spare_peace_value > 0) { peacePlusSpare += Mathf.RoundToInt(profiles[i].Template.profile_spare_data.profile_spare_peace_value); } else { peaceMinusSpare += Mathf.RoundToInt(profiles[i].Template.profile_spare_data.profile_spare_peace_value); } if (profiles[i].Template.profile_spare_data.profile_spare_healthcare_value > 0) { healthPlusSpare += Mathf.RoundToInt(profiles[i].Template.profile_spare_data.profile_spare_healthcare_value); } else { healthMinusSpare += Mathf.RoundToInt(profiles[i].Template.profile_spare_data.profile_spare_healthcare_value); } if (profiles[i].Template.profile_spare_data.profile_spare_prosperity_value > 0) { prosperityPlusSpare += Mathf.RoundToInt(profiles[i].Template.profile_spare_data.profile_spare_prosperity_value); } else { prosperityMinusSpare += Mathf.RoundToInt(profiles[i].Template.profile_spare_data.profile_spare_prosperity_value); } } //Debug.Log("MEGASTATS\n" + // "Eco Plus Spare: " + ecoPlusSpare + "\n" + // "Health Plus Spare: " + healthPlusSpare + "\n" + // "Peace Plus Spare: " + peacePlusSpare + "\n" + // "Prosperity Plus Spare: " + prosperityPlusSpare + "\n" + // "Eco Minus Spare: " + ecoMinusSpare + "\n" + // "Health Minus Spare: " + healthMinusSpare + "\n" + // "Peace Minus Spare: " + peaceMinusSpare + "\n" + // "Prosperity Minus Spare: " + prosperityMinusSpare + "\n" + // "Eco Plus Death: " + ecoPlusDeath + "\n" + // "Health Plus Death: " + healthPlusDeath + "\n" + // "Peace Plus Death: " + peacePlusDeath + "\n" + // "Prosperity Plus Death: " + prosperityPlusDeath + "\n" + // "Eco Minus Death: " + ecoMinusDeath + "\n" + // "Health Minus Death: " + healthMinusDeath + "\n" + // "Peace Minus Death: " + peaceMinusDeath + "\n" + // "Prosperity Minus Death: " + prosperityMinusDeath + "\n" // ); }
public void RollDay(bool restoreFromSave) { List <template_profile> profiles = new List <template_profile>(); int currentDayIndex = SaveManager.instance.GetCurrentPlayerState().GetCurrentDayIndex(); if (restoreFromSave) { List <ProfileState> profileStates = SaveManager.instance.GetCurrentPlayerState().GetCurrentDayProfiles(); for (int i = 0; i < profileStates.Count; ++i) { template_profile profile = ArticyDatabase.GetObject(profileStates[i].ProfileID) as template_profile; if (profile != null) { profiles.Add(profile); } else { Debug.LogError("Invalid Profile ID: " + profileStates[i].ProfileID.ToString() + " saved for day: " + (currentDayIndex + 1)); } } } else { template_day day = GameManager.instance.GetCurrentDay(); if (day == null) { Debug.LogError("DAY NOT FOUND; PROBABLY GOING TO EXPLODE"); } template_day_task dayTask = day.Template.day.day_task_slot as template_day_task; if (dayTask == null) { Debug.LogError("DAY TASK NOT FOUND; PROBABLY GOING TO EXPLODE"); } dayTask.Template.task.task_profile_count.CallScript(); Debug.Log("Getting " + ArticyGlobalVariables.Default.day.profile_count + " profiles for day " + (currentDayIndex + 1) + "; Day Name: " + day.DisplayName); List <ArticyObject> dailyProfileTemplates = new List <ArticyObject>(dayTask.Template.task.task_daily_profiles); for (int j = 0; j < ArticyGlobalVariables.Default.day.profile_count; ++j) { int index = j; if (dayTask.Template.task.task_profile_shuffler) { index = UnityEngine.Random.Range(0, dailyProfileTemplates.Count); } else { } template_profile dailyProfile = dailyProfileTemplates[index] as template_profile; template_random_profile dailyRandomProfile = dailyProfileTemplates[index] as template_random_profile; if (dayTask.Template.task.task_profile_shuffler) { dailyProfileTemplates.RemoveAt(index); } if (dailyRandomProfile != null) { dailyProfile = ProfileManager.instance.RollProfileByRandoDefinition(dailyRandomProfile); } if (dailyProfile == null) { Debug.LogError("Rolled null profile for day " + (currentDayIndex + 1) + "!"); continue; } else if (!dailyProfile.Template.profile_basic_data.profile_is_enabled) { Debug.Log("Skipping un-enabled profile: " + dailyProfile.Template.profile_basic_data.profile_name + " for day: " + (currentDayIndex + 1) + "!"); } else { profiles.Add(dailyProfile); AllProfiles.Add(dailyProfile); } } int profileDelta = ArticyGlobalVariables.Default.day.profile_count - profiles.Count; for (int i = 0; i < profileDelta; ++i) { template_profile dailyProfile = null; dailyProfile = ProfileManager.instance.RollProfileByRandoDefinition(ProfileManager.instance.AnyRandomTemplate); if (dailyProfile == null) { Debug.LogError("Rolled null profile for day " + (currentDayIndex + 1) + "!"); continue; } else { profiles.Add(dailyProfile); AllProfiles.Add(dailyProfile); } } SaveManager.instance.GetCurrentPlayerState().SetCurrentDayProfiles(profiles); // grab only its general properties } List <ulong> profileIDs = new List <ulong>(); for (int i = 0; i < profiles.Count; ++i) { profileIDs.Add(profiles[i].Id); if (!restoreFromSave) { Phone.instance.AddNewsText(profiles[i].Template.profile_basic_data.profile_appearance_news_first); Phone.instance.AddNewsText(profiles[i].Template.profile_basic_data.profile_appearance_news_second); } } Debug.Log("Found " + profiles.Count + " profiles for day " + (currentDayIndex + 1)); if (!restoreFromSave) { SaveManager.instance.GetCurrentPlayerState().AddDailyProfiles(currentDayIndex + 1, profileIDs); } DailyProfiles.Add(currentDayIndex + 1, profiles); }