public void UpdateBrushesUI() { // TEMPORARY!!!!!:::::: selectedEssenceSlot = worldSpiritHubUI.selectedWorldSpiritSlot; selectedBrushLinkedSpiritOtherLayer = worldSpiritHubUI.selectedToolbarOtherLayer; selectedBrushLinkedSpiritTerrainLayer = worldSpiritHubUI.selectedToolbarTerrainLayer; selectedBrushVertebrateSpeciesID = worldSpiritHubUI.selectedWorldSpiritVertebrateSpeciesID; //animatorBrushesUI.SetBool("MinPanel", !isOpen); bool isDim = false; // * WPP: isDim is always false textBrushLinkedSpiritName.gameObject.SetActive(!isDim); textSelectedBrushDescription.gameObject.SetActive(!isDim); textSelectedBrushEffects.gameObject.SetActive(!isDim); textSelectedBrushName.gameObject.SetActive(!isDim); textInfluencePointsValue.gameObject.SetActive(!isDim); buttonSendToWorldHub.gameObject.SetActive(!isDim); imageInfluencePoints.gameObject.SetActive(!isDim); //panelBrushes.SetActive(isOpen); panelBrushPaletteSelect.SetActive(false); // isPaletteOpen); if (isOpen) { UpdateUI(); //UpdateBrushPaletteUI(); if (isPaletteOpen) { //UpdateBrushPaletteUI(); } } }
public TrophicLayersManager() // constructor { decomposersOn = true; // first pass -- temporary? algaeOn = true; plantsOn = true; zooplanktonOn = true; agentsOn = true; //terrainOn = false; foreach (var element in lookup.knowledgeMaps) { for (int i = 0; i < element.startingSlotCount; i++) { var slot = new TrophicSlot(element); allTrophicSlots.Add(slot); if (slot.id == KnowledgeMapId.Animals) { animalSlots.Add(slot); } } } //selectedTrophicSlotRef = terrainTier0.trophicSlots[0]; //isSelectedTrophicSlot = true; SetSlot(KnowledgeMapId.Animals); uiManager.worldSpiritHubUI.selectedWorldSpiritSlot = selectedSlot; //kingdomTerrain.trophicTiersList[0].trophicSlots[1]; uiManager.brushesUI.selectedEssenceSlot = selectedSlot; //kingdomTerrain.trophicTiersList[0].trophicSlots[1]; }
public void ClickWatcherCycleTargetNext() { TrophicSlot slotRef = uiManagerRef.worldSpiritHubUI.selectedWorldSpiritSlot; // ************* TEMP!!!!!!!!! if (slotRef.id == KnowledgeMapId.Plants) { VegetationManager veggieRef = simulationManager.vegetationManager; veggieRef.selectedPlantParticleIndex++; if (veggieRef.selectedPlantParticleIndex > veggieRef.plantParticlesCBuffer.count - 1) { veggieRef.selectedPlantParticleIndex = 0; veggieRef.isPlantParticleSelected = true; // ??? } } else if (slotRef.id == KnowledgeMapId.Microbes) { ZooplanktonManager zoopRef = simulationManager.zooplanktonManager; zoopRef.selectedAnimalParticleIndex++; if (zoopRef.selectedAnimalParticleIndex > zoopRef.animalParticlesCBuffer.count - 1) { zoopRef.selectedAnimalParticleIndex = 0; zoopRef.isAnimalParticleSelected = true; // ??? } } else if (slotRef.id == KnowledgeMapId.Animals) { //ClickNextAgent(); } }
public void SetTargetFromBrushesUI() { selectedWorldSpiritSlot = uiManagerRef.brushesUI.selectedEssenceSlot; //uiManagerRef.panelFocus = PanelFocus.WorldHub; isOpen = true; //animatorWorldHubUI.SetBool("_IsOpen", true); //isPaletteOpen = true; }
public void SetTargetFromWorldTree() { selectedEssenceSlot = uiManagerRef.worldSpiritHubUI.selectedWorldSpiritSlot; EnterCreationBrushMode(); isOpen = true; isPaletteOpen = false; }
public void ClickButtonBrushPalettePlants(TrophicLayerSO data) { TrophicSlot slot = trophicLayersManager.GetSlot(data); selectedEssenceSlot = slot; isPaletteOpen = false; EnterCreationBrushMode(); }
// Not interactable if locked public void ClickButtonBrushPaletteAlgae() { //TrophicSlot slot = trophicLayersManager.kingdomPlants.trophicTiersList[0].trophicSlots[0]; var slot = trophicLayersManager.GetSlot(KnowledgeMapId.Algae); selectedEssenceSlot = slot; isPaletteOpen = false; EnterCreationBrushMode(); }
public void ClickButtonBrushPaletteZooplankton() { //TrophicSlot slot = trophicLayersManager.kingdomAnimals.trophicTiersList[0].trophicSlots[0]; var slot = trophicLayersManager.GetSlot(KnowledgeMapId.Microbes); selectedEssenceSlot = slot; isPaletteOpen = false; EnterCreationBrushMode(); }
public void SetSlot(TrophicLayerSO data) { foreach (var slot in allTrophicSlots) { if (slot.data.id == data.id) { selectedSlot = slot; } } }
public void ClickButtonBrushPaletteAgent(TrophicLayerSO data) { TrophicSlot slot = trophicLayersManager.GetSlot(data); selectedEssenceSlot = slot; selectedBrushVertebrateSpeciesID = slot.linkedSpeciesID; // update this next selectedBrushLinkedSpiritVertebrateLayer = data.layerIndex; isPaletteOpen = false; EnterCreationBrushMode(); }
public void ClickWorldCreateNewSpecies(TrophicSlot slot) { // questionable code, possibly un-needed: trophicLayersManager.CreateTrophicSlotSpecies(slot, cameraManager.curCameraFocusPivotPos, simulationManager.simAgeTimeSteps); theRenderKing.baronVonWater.StartCursorClick(cameraManager.curCameraFocusPivotPos); //isAnnouncementTextOn = true; if (slot.kingdomID == KingdomId.Decomposers) { //panelPendingClickPrompt.Narrate("A new species of D3composer added!", colorDecomposersLayer); //panelPendingClickPrompt.GetComponentInChildren<Text>().text = "A new species of DEcomposer added!"; //uiManagerRef.panelPendingClickPrompt.GetComponentInChildren<Text>().color = uiManagerRef.colorDecomposersLayer; //panelPendingClickPrompt.GetComponent<Image>().raycastTarget = false; } /*else if (slot.kingdomID == KingdomId.Plants) { * if (slot.tierID == 0) { * //panelPendingClickPrompt.Narrate("A new species of Algae added!", colorAlgaeLayer); * } * else { /// BIG PLANTS: * //panelPendingClickPrompt.Narrate("A new species of PLANT added!", colorPlantsLayer); * } * * }*/ else if (slot.id == KnowledgeMapId.Animals) { //if(createSpecies) { // v v v Actually creates new speciesPool here::: //TrophicSlot slot = trophicLayersManager.selectedTrophicSlotRef; slot.speciesName = "Vertebrate " + (slot.slotID + 1); selectedWorldSpiritVertebrateSpeciesID = slot.linkedSpeciesID; // ??? //InitToolbarPortraitCritterData(slot); if (slot.slotID == 0) { //panelPendingClickPrompt.GetComponentInChildren<Text>().text = "These creatures start with randomly-generated brains\n and must evolve successful behavior\nthrough survival of the fittest"; uiManagerRef.isAnnouncementTextOn = false; // *** hacky... } } else if (slot.id == KnowledgeMapId.Microbes) { //panelPendingClickPrompt.Narrate("A new species of Zooplankton added!", colorVertebratesLayer); } //curToolbarWingPanelSelectID = 1; //timerAnnouncementTextCounter = 0; //recentlyCreatedSpecies = true; //recentlyCreatedSpeciesTimeStepCounter = 0; //UpdateSelectedSpeciesColorUI(); }
public void ClickButtonWorldSpiritHubTerrain(TrophicLayerSO data) { TrophicSlot slot = trophicLayersManager.GetSlot(data); selectedWorldSpiritSlot = slot; //selectedWorldSpiritVertebrateSpeciesID = slot.linkedSpeciesID; // update this next selectedToolbarTerrainLayer = data.layerIndex; //uiManagerRef.panelFocus = UIManager.PanelFocus.WorldHub; //isBrushSelected = false; }
public void ClickButtonWorldSpiritHubPlants(TrophicLayerSO data) { TrophicSlot slot = trophicLayersManager.GetSlot(data); selectedWorldSpiritSlot = slot; if (slot.status == TrophicSlotStatus.Unlocked) { ClickWorldCreateNewSpecies(slot); //ClickToolbarCreateNewSpecies(); } //uiManagerRef.panelFocus = UIManager.PanelFocus.WorldHub; }
public void ClickButtonWorldSpiritHubZooplankton(TrophicLayerSO data) { TrophicSlot slot = trophicLayersManager.GetSlot(data); selectedWorldSpiritSlot = slot; if (slot.status == TrophicSlotStatus.Unlocked) { //ClickToolbarCreateNewSpecies(); ClickWorldCreateNewSpecies(slot); } //uiManagerRef.panelFocus = UIManager.PanelFocus.WorldHub; //curActiveTool = ToolType.None; //isBrushSelected = false; }
//********************************************* public void ClickButtonBrushPaletteOther(TrophicLayerSO data) { TrophicSlot slot = trophicLayersManager.GetSlot(data); selectedEssenceSlot = slot; //trophicLayersManager.isSelectedTrophicSlot = true; //trophicLayersManager.selectedTrophicSlotRef = slot; selectedBrushVertebrateSpeciesID = slot.linkedSpeciesID; // update this next *** selectedBrushLinkedSpiritOtherLayer = data.layerIndex; //isBrushSelected = false; isPaletteOpen = false; EnterCreationBrushMode(); }
/*public TrophicSlot GetSlot(TrophicLayerSO mapData) * { * return GetKingdom(mapData.kingdom).trophicTiersList[mapData.listIndex].trophicSlots[mapData.slotIndex]; * } * * TrophicKingdom GetKingdom(KingdomId id) * { * switch (id) * { * case KingdomId.Decomposers: return kingdomDecomposers; * case KingdomId.Plants: return kingdomPlants; * case KingdomId.Animals: return kingdomAnimals; * case KingdomId.Terrain: return kingdomTerrain; * case KingdomId.Other: return kingdomOther; * default: Debug.LogError("Invalid kingdom " + id); return null; * } * }*/ public void CreateTrophicSlotSpecies(TrophicSlot addedSlot, Vector2 spawnPos, int timeStep) { // reset things, figure out which slot was created: //isSelectedTrophicSlot = false; addedSlot.status = TrophicSlotStatus.On; switch (addedSlot.data.id) { case KnowledgeMapId.Decomposers: TurnOnDecomposers(spawnPos, timeStep); break; case KnowledgeMapId.Algae: TurnOnAlgae(spawnPos, timeStep); break; case KnowledgeMapId.Plants: TurnOnPlants(spawnPos, timeStep); break; case KnowledgeMapId.Microbes: TurnOnZooplankton(spawnPos, timeStep); break; case KnowledgeMapId.Animals: TurnOnAgents(); break; } }
public void ClickButtonWorldSpiritHubAgent(TrophicLayerSO data) { TrophicSlot slot = trophicLayersManager.GetSlot(data); selectedWorldSpiritSlot = slot; //isToolbarDetailPanelOn = true; selectedWorldSpiritVertebrateSpeciesID = slot.linkedSpeciesID; // update this next if (slot.status == TrophicSlotStatus.Unlocked) { //ClickToolbarCreateNewSpecies(); // UNLOCKING!!!! *** need to address at some point!!!! *** ClickWorldCreateNewSpecies(slot); } if (selectedWorldSpiritSlot.status != TrophicSlotStatus.Unlocked) { //InitToolbarPortraitCritterData(trophicLayersManager.selectedTrophicSlotRef); // *** } //uiManagerRef.panelFocus = UIManager.PanelFocus.WorldHub; }
private void UpdateTerrainUI(TrophicSlot slotRef) { Color colorOptionA = Color.white; Color colorOptionB = Color.white; Color colorOptionC = Color.white; Color colorOptionD = Color.white; Color colorCur = Color.white; Color colorNew = Color.white; int selectedIndex = selectedToolbarMutationID; if (selectedIndex < 0) { selectedIndex = 0; panelNewMutationPreview.SetActive(false); } else { panelNewMutationPreview.SetActive(true); } if (slotRef.layerIndex == 0) { colorOptionA = baronVonTerrain.bedrockSlotGenomeMutations[0].color; colorOptionB = baronVonTerrain.bedrockSlotGenomeMutations[1].color; colorOptionC = baronVonTerrain.bedrockSlotGenomeMutations[2].color; colorOptionD = baronVonTerrain.bedrockSlotGenomeMutations[3].color; // *** make these Text objects into an array: colorCur = baronVonTerrain.bedrockSlotGenomeCurrent.color; colorNew = baronVonTerrain.bedrockSlotGenomeMutations[selectedIndex].color; textMutationPanelCur.text = baronVonTerrain.bedrockSlotGenomeCurrent.name; // "Properties: " + gameManager.theRenderKing.baronVonTerrain.bedrockSlotGenomeCurrent.elevationChange.ToString(); textMutationPanelNew.text = baronVonTerrain.bedrockSlotGenomeMutations[selectedIndex].textDescriptionMutation; } else if (slotRef.layerIndex == 1) { colorOptionA = baronVonTerrain.stoneSlotGenomeMutations[0].color; colorOptionB = baronVonTerrain.stoneSlotGenomeMutations[1].color; colorOptionC = baronVonTerrain.stoneSlotGenomeMutations[2].color; colorOptionD = baronVonTerrain.stoneSlotGenomeMutations[3].color; colorCur = baronVonTerrain.stoneSlotGenomeCurrent.color; colorNew = baronVonTerrain.stoneSlotGenomeMutations[selectedIndex].color; textMutationPanelCur.text = baronVonTerrain.stoneSlotGenomeCurrent.name; // "Properties: " + gameManager.theRenderKing.baronVonTerrain.stoneSlotGenomeCurrent.elevationChange.ToString(); textMutationPanelNew.text = baronVonTerrain.stoneSlotGenomeMutations[selectedIndex].textDescriptionMutation; } else if (slotRef.layerIndex == 2) { colorOptionA = baronVonTerrain.pebblesSlotGenomeMutations[0].color; colorOptionB = baronVonTerrain.pebblesSlotGenomeMutations[1].color; colorOptionC = baronVonTerrain.pebblesSlotGenomeMutations[2].color; colorOptionD = baronVonTerrain.pebblesSlotGenomeMutations[3].color; colorCur = baronVonTerrain.pebblesSlotGenomeCurrent.color; colorNew = baronVonTerrain.pebblesSlotGenomeMutations[selectedIndex].color; textMutationPanelCur.text = baronVonTerrain.pebblesSlotGenomeCurrent.name; // "Properties: " + gameManager.theRenderKing.baronVonTerrain.pebblesSlotGenomeCurrent.elevationChange.ToString(); textMutationPanelNew.text = baronVonTerrain.pebblesSlotGenomeMutations[selectedIndex].textDescriptionMutation; } else { colorOptionA = baronVonTerrain.sandSlotGenomeMutations[0].color; colorOptionB = baronVonTerrain.sandSlotGenomeMutations[1].color; colorOptionC = baronVonTerrain.sandSlotGenomeMutations[2].color; colorOptionD = baronVonTerrain.sandSlotGenomeMutations[3].color; colorCur = baronVonTerrain.sandSlotGenomeCurrent.color; colorNew = baronVonTerrain.sandSlotGenomeMutations[selectedIndex].color; textMutationPanelCur.text = baronVonTerrain.sandSlotGenomeCurrent.name; // "Properties: " + gameManager.theRenderKing.baronVonTerrain.sandSlotGenomeCurrent.elevationChange.ToString(); textMutationPanelNew.text = baronVonTerrain.sandSlotGenomeMutations[selectedIndex].textDescriptionMutation; } // **** v v v Make these into arrays during cleanup colorOptionA.a = 1f; colorOptionB.a = 1f; colorOptionC.a = 1f; colorOptionD.a = 1f; colorCur.a = 1f; imageMutationPanelThumbnailA.color = Color.white; //colorOptionA; imageMutationPanelThumbnailB.color = Color.white; //colorOptionB; imageMutationPanelThumbnailC.color = Color.white; //colorOptionC; imageMutationPanelThumbnailD.color = Color.white; //colorOptionD; imageMutationPanelCurPortrait.color = Color.white; //colorCur; //Cur Mat mutationThumbnailDecomposersMatCur.SetVector("_TintPri", colorCur); mutationThumbnailDecomposersMatCur.SetVector("_TintSec", colorCur); // New: mutationThumbnailDecomposersMatNew.SetVector("_TintPri", colorNew); mutationThumbnailDecomposersMatNew.SetVector("_TintSec", colorNew); mutationThumbnailDecomposersMatA.SetVector("_TintPri", colorOptionA); mutationThumbnailDecomposersMatA.SetVector("_TintSec", colorOptionA); //B: mutationThumbnailDecomposersMatB.SetVector("_TintPri", colorOptionB); mutationThumbnailDecomposersMatB.SetVector("_TintSec", colorOptionB); //C; mutationThumbnailDecomposersMatC.SetVector("_TintPri", colorOptionC); mutationThumbnailDecomposersMatC.SetVector("_TintSec", colorOptionC); //D: mutationThumbnailDecomposersMatD.SetVector("_TintPri", colorOptionD); mutationThumbnailDecomposersMatD.SetVector("_TintSec", colorOptionD); }
public void StartFollowingAnimalParticle() { cameraManager.SetFollowing(KnowledgeMapId.Microbes); watcherSelectedTrophicSlotRef = trophicLayersManager.GetSlot(KnowledgeMapId.Microbes); }
private void UpdateUI() { //TrophicSlot slotRef = uiManagerRef.gameManager.simulationManager.trophicLayersManager.selectedTrophicSlotRef; //panelKnowledgeInfoWorld.SetActive(false); panelKnowledgeInfoDecomposers.SetActive(false); panelKnowledgeInfoAlgae.SetActive(false); panelKnowledgeInfoPlants.SetActive(false); panelKnowledgeInfoZooplankton.SetActive(false); panelKnowledgeInfoVertebrates.SetActive(false); textKnowledgeSpeciesSummary.gameObject.SetActive(true); TrophicSlot slotRef = uiManagerRef.worldSpiritHubUI.selectedWorldSpiritSlot; textTargetLayer.text = slotRef.speciesName; textTargetLayer.color = uiManagerRef.worldSpiritHubUI.curIconColor; imageColorBar.color = uiManagerRef.worldSpiritHubUI.curIconColor; imageKnowledgeCurTarget.color = uiManagerRef.worldSpiritHubUI.curIconColor; imageKnowledgeCurTarget.sprite = uiManagerRef.worldSpiritHubUI.curIconSprite; imageKnowledgeMapTextureViewer.gameObject.SetActive(false); // * WPP: apply nested struct pattern to eliminate GetComponent in Update loop // + streamline button scaling and page activation buttonPageA.GetComponent <Image>().color = new Color(0.6f, 0.65f, 0.87f); buttonPageB.GetComponent <Image>().color = new Color(0.6f, 0.65f, 0.87f); buttonPageC.GetComponent <Image>().color = new Color(0.6f, 0.65f, 0.87f); if (curPage == Page.One) { groupMinimap.gameObject.SetActive(true); textCurPage.text = "WORLD MAP"; uiKnowledgeMapViewerMat.SetTexture("_AltitudeTex", baronVonTerrain.terrainHeightDataRT); uiKnowledgeMapViewerMat.SetTexture("_ResourceGridTex", vegetationManager.resourceGridRT1); uiKnowledgeMapViewerMat.SetFloat("_WaterLevel", SimulationManager._GlobalWaterLevel); //string summaryText = GetSpeciesDescriptionString(uiManagerRef.gameManager.simulationManager); textKnowledgeSpeciesSummary.text = "";// summaryText; buttonPageA.gameObject.transform.localScale = Vector3.one * 1.5f; buttonPageA.GetComponent <Image>().color = Color.white; buttonPageB.gameObject.transform.localScale = Vector3.one * 1f; buttonPageC.gameObject.transform.localScale = Vector3.one * 1f; panelPageOne.SetActive(true); panelPageTwo.SetActive(false); panelPageThree.SetActive(false); } else if (curPage == Page.Two) { groupMinimap.gameObject.SetActive(false); textCurPage.text = "STATISTICS"; buttonPageA.gameObject.transform.localScale = Vector3.one * 1f; buttonPageB.gameObject.transform.localScale = Vector3.one * 1.5f; buttonPageB.GetComponent <Image>().color = Color.white; buttonPageC.gameObject.transform.localScale = Vector3.one * 1f; panelPageOne.SetActive(false); panelPageTwo.SetActive(true); panelPageThree.SetActive(false); } else { groupMinimap.gameObject.SetActive(false); textCurPage.text = "MISC"; buttonPageA.gameObject.transform.localScale = Vector3.one * 1f; buttonPageB.gameObject.transform.localScale = Vector3.one * 1f; buttonPageC.gameObject.transform.localScale = Vector3.one * 1.5f; buttonPageC.GetComponent <Image>().color = Color.white; panelPageOne.SetActive(false); panelPageTwo.SetActive(false); panelPageThree.SetActive(true); } //knowledgeLockedTrophicSlotRef ---> worldSpiritSelectedSlotRef if (slotRef.kingdomID == KingdomId.Decomposers) { panelKnowledgeInfoDecomposers.SetActive(true); if (curPage == Page.One) { UpdateKnowledgeViewer(vegetationManager.resourceGridRT1, 1f, 2, true); } else if (curPage == Page.Two) { float metabolicRate = vegetationManager.decomposerSlotGenomeCurrent.metabolicRate; float efficiencyDecomp = vegetationManager.decomposerSlotGenomeCurrent.growthEfficiency; string decompInfoString = "Metabolic Rate: " + metabolicRate; decompInfoString += "\nGrowth Efficiency: " + efficiencyDecomp; textDecomposersPage2.text = decompInfoString; } } else if (slotRef.id == KnowledgeMapId.Algae) { UpdateKnowledgeViewer(vegetationManager.resourceGridRT1, 1f, 3, true, panelKnowledgeInfoAlgae); float metabolicRate = vegetationManager.algaeSlotGenomeCurrent.metabolicRate; float efficiencyDecomp = vegetationManager.algaeSlotGenomeCurrent.growthEfficiency; string decompInfoString = "Metabolic Rate: " + metabolicRate; decompInfoString += "\nGrowth Efficiency: " + efficiencyDecomp; textDecomposersPage2.text = decompInfoString; } else if (slotRef.id == KnowledgeMapId.Plants) { UpdateKnowledgeViewer(fluidManager._SourceColorRT, 1f, 0, false, panelKnowledgeInfoPlants); } else if (slotRef.id == KnowledgeMapId.Microbes) { UpdateKnowledgeViewer(fluidManager._SourceColorRT, 1f, 0, false, panelKnowledgeInfoZooplankton); } else if (slotRef.id == KnowledgeMapId.Animals) { UpdateKnowledgeViewer(fluidManager._SourceColorRT, 1f, 3, true, panelKnowledgeInfoVertebrates); } else if (slotRef.kingdomID == KingdomId.Terrain) { //panelKnowledgeInfoWorld.SetActive(true); // WORLD if (slotRef.layerIndex == 0) { UpdateKnowledgeViewer(baronVonTerrain.terrainHeightDataRT, 0.7f, 0, true); } // STONE else if (slotRef.layerIndex == 1) { UpdateKnowledgeViewer(baronVonTerrain.terrainHeightDataRT, 1f, 0, true); } // PEBBLES else if (slotRef.layerIndex == 2) { UpdateKnowledgeViewer(baronVonTerrain.terrainHeightDataRT, 1f, 1, true); } // SAND else { UpdateKnowledgeViewer(baronVonTerrain.terrainHeightDataRT, 1f, 2, true); } } else if (slotRef.kingdomID == KingdomId.Other) { //panelKnowledgeInfoWorld.SetActive(true); // Minerals if (slotRef.layerIndex == 0) { UpdateKnowledgeViewer(vegetationManager.resourceGridRT1, 1f, 0, true, panelKnowledgeInfoAlgae); } // Water else if (slotRef.layerIndex == 1) { UpdateKnowledgeViewer(baronVonWater.waterSurfaceDataRT0, 1f, 0, true); } // AIR else if (slotRef.layerIndex == 2) { UpdateKnowledgeViewer(baronVonWater.waterSurfaceDataRT0, .5f, 0, true); } } }
public void ClickMutationConfirm() { animatorMutationUI.SetTrigger("_TriggerMutate"); TrophicSlot slotRef = uiManagerRef.worldSpiritHubUI.selectedWorldSpiritSlot; if (slotRef.kingdomID == KingdomId.Decomposers) { vegetationManager.decomposerSlotGenomeCurrent = vegetationManager.decomposerSlotGenomeMutations[selectedToolbarMutationID]; //gameManager.simulationManager.vegetationManager.WorldLayerDecomposerGenomeStuff(ref decomposerSlotGenomeCurrent, 0f); vegetationManager.GenerateWorldLayerDecomposersGenomeMutationOptions(); } else if (slotRef.id == KnowledgeMapId.Algae) { vegetationManager.algaeSlotGenomeCurrent = simulationManager.vegetationManager.algaeSlotGenomeMutations[selectedToolbarMutationID]; vegetationManager.GenerateWorldLayerAlgaeGridGenomeMutationOptions(); } else if (slotRef.id == KnowledgeMapId.Plants) { vegetationManager.plantSlotGenomeCurrent.plantRepData = vegetationManager.plantSlotGenomeMutations[selectedToolbarMutationID].plantRepData; vegetationManager.plantSlotGenomeCurrent.textDescriptionMutation = vegetationManager.plantSlotGenomeMutations[selectedToolbarMutationID].textDescriptionMutation; vegetationManager.plantSlotGenomeCurrent.growthRate = vegetationManager.plantSlotGenomeMutations[selectedToolbarMutationID].growthRate; vegetationManager.ProcessPlantSlotMutation(); vegetationManager.GenerateWorldLayerPlantParticleGenomeMutationOptions(); } //gameManager.simulationManager.vegetationManager.ProcessSlotMutation(); //algaeRepData = gameManager.simulationManager.vegetationManager.algaeSlotGenomeCurrent.algaeRepData; else if (slotRef.id == KnowledgeMapId.Microbes) { zooplanktonManager.zooplanktonSlotGenomeCurrent = zooplanktonManager.zooplanktonSlotGenomeMutations[selectedToolbarMutationID]; zooplanktonManager.GenerateWorldLayerZooplanktonGenomeMutationOptions(); zooplanktonManager.ProcessSlotMutation(); } /* * else if (vertebrates) { * // *** REFERENCE ISSUE!!!!! * * AgentGenome parentGenome = uiManagerRef.gameManager.simulationManager.masterGenomePool.vertebrateSlotsGenomesMutationsArray[slotRef.slotID][selectedToolbarMutationID].representativeGenome; * //generate "mutated" genome copy with 0 mutationSize ??? workaround::::: *********** * uiManagerRef.gameManager.simulationManager.settingsManager.mutationSettingsVertebrates.mutationStrengthSlot = 0f; * * //vertebrateSlotsGenomesCurrentArray[slotID].representativeGenome // **** Use this genome as basis? * AgentGenome mutatedGenome = uiManagerRef.gameManager.simulationManager.masterGenomePool.completeSpeciesPoolsList[0].Mutate(parentGenome, true, true); // does speciesPoolIndex matter? * * uiManagerRef.gameManager.simulationManager.masterGenomePool.vertebrateSlotsGenomesCurrentArray[slotRef.slotID].representativeGenome = mutatedGenome; * uiManagerRef.gameManager.simulationManager.masterGenomePool.vertebrateSlotsGenomesCurrentArray[slotRef.slotID].name = uiManagerRef.gameManager.simulationManager.masterGenomePool.vertebrateSlotsGenomesMutationsArray[slotRef.slotID][selectedToolbarMutationID].name; * //gameManager.simulationManager.masterGenomePool.vertebrateSlotsGenomesMutationsArray[slotRef.slotID][selectedToolbarMutationID]; * //gameManager.simulationManager.masterGenomePool.vertebrateSlotsGenomesCurrentArray[slotRef.slotID].representativeGenome.bodyGenome.appearanceGenome.huePrimary = gameManager.simulationManager.masterGenomePool.vertebrateSlotsGenomesMutationsArray[slotRef.slotID][selectedToolbarMutationID].representativeGenome.bodyGenome.appearanceGenome.huePrimary; * * Debug.Log("CONFIR<M " + uiManagerRef.gameManager.simulationManager.masterGenomePool.vertebrateSlotsGenomesCurrentArray[slotRef.slotID].representativeGenome.bodyGenome.appearanceGenome.huePrimary.ToString()); * //gameManager.simulationManager.masterGenomePool. * //gameManager.simulationManager.masterGenomePool.completeSpeciesPoolsList[slotRef.linkedSpeciesID].representativeGenome = gameManager.simulationManager.masterGenomePool.vertebrateSlotsGenomesCurrentArray[slotRef.slotID].representativeGenome; * * uiManagerRef.gameManager.simulationManager.masterGenomePool.GenerateWorldLayerVertebrateGenomeMutationOptions(slotRef.slotID, slotRef.linkedSpeciesID); * uiManagerRef.gameManager.simulationManager.masterGenomePool.ProcessSlotMutation(slotRef.slotID, selectedToolbarMutationID, slotRef.linkedSpeciesID); * * uiManagerRef.InitToolbarPortraitCritterData(slotRef); * }*/ else if (slotRef.kingdomID == KingdomId.Terrain) { if (slotRef.layerIndex == 0) { baronVonTerrain.bedrockSlotGenomeCurrent = baronVonTerrain.bedrockSlotGenomeMutations[selectedToolbarMutationID]; } else if (slotRef.layerIndex == 1) { baronVonTerrain.stoneSlotGenomeCurrent = baronVonTerrain.stoneSlotGenomeMutations[selectedToolbarMutationID]; } else if (slotRef.layerIndex == 2) { baronVonTerrain.pebblesSlotGenomeCurrent = baronVonTerrain.pebblesSlotGenomeMutations[selectedToolbarMutationID]; } else if (slotRef.layerIndex == 3) // World { baronVonTerrain.sandSlotGenomeCurrent = baronVonTerrain.sandSlotGenomeMutations[selectedToolbarMutationID]; } // if terrain: baronVonTerrain.GenerateTerrainSlotGenomeMutationOptions(slotRef.layerIndex); //gameManager.theRenderKing.ClickTestTerrainUpdateMaps(false, 0.05f); // refresh color } Debug.Log("MUTATION!!! kingdom(" + slotRef.kingdomID + ")"); //selectedToolbarMutationID = 0; // Reset?? figure out what you want to do here }
private void UpdateUI(TrophicLayersManager layerManager) { //textToolbarWingPanelName.text = "Mutations:"; animatorMutationUI.SetBool("_IsOpen", isOpen); textMutationPanelOptionA.text = ""; // "Tiny"; textMutationPanelOptionB.text = ""; // "Small"; textMutationPanelOptionC.text = ""; // "Large"; textMutationPanelOptionD.text = ""; // "Huge"; textMutationPanelTitleCur.text = "CURRENT"; string[] titlesTxt = new string[4]; titlesTxt[0] = "TINY MUTATION"; titlesTxt[1] = "SMALL MUTATION"; titlesTxt[2] = "LARGE MUTATION"; titlesTxt[3] = "HUGE MUTATION"; textMutationPanelTitleNew.text = "MUTATION:";// titlesTxt[selectedToolbarMutationID]; imageMutationPanelThumbnailA.gameObject.SetActive(true); imageMutationPanelThumbnailB.gameObject.SetActive(true); imageMutationPanelThumbnailC.gameObject.SetActive(true); imageMutationPanelThumbnailD.gameObject.SetActive(true); buttonToolbarMutateConfirm.gameObject.SetActive(selectedToolbarMutationID >= 0); TrophicSlot slotRef = uiManagerRef.worldSpiritHubUI.selectedWorldSpiritSlot; textMutationTargetLayer.text = slotRef.speciesName; textMutationTargetLayer.color = uiManagerRef.worldSpiritHubUI.curIconColor; imageMutationCurTarget.color = uiManagerRef.worldSpiritHubUI.curIconColor; imageMutationCurTarget.sprite = uiManagerRef.worldSpiritHubUI.curIconSprite; imageMutationVertebrateRender.gameObject.SetActive(false); //imageMutationCurTarget.gameObject.SetActive(true); imageMutationPanelCurPortrait.gameObject.SetActive(true); imageMutationPanelNewPortrait.gameObject.SetActive(true); if (slotRef.kingdomID == KingdomId.Decomposers) { UpdateDecomposerUI(); } else if (slotRef.id == KnowledgeMapId.Algae) { UpdateAlgaeUI(layerManager); } else if (slotRef.id == KnowledgeMapId.Plants) { UpdatePlantsUI(); } else if (slotRef.id == KnowledgeMapId.Microbes) { UpdateZooplanktonUI(); } else if (slotRef.id == KnowledgeMapId.Animals) { imageMutationPanelThumbnailA.gameObject.SetActive(false); imageMutationPanelThumbnailB.gameObject.SetActive(false); imageMutationPanelThumbnailC.gameObject.SetActive(false); imageMutationPanelThumbnailD.gameObject.SetActive(false); } else if (slotRef.kingdomID == KingdomId.Terrain) { UpdateTerrainUI(slotRef); } }
/* * string[] strSpiritBrushDescriptionArray = new string[6]; // = "Decomposers break down the old so that new life can grow."; * strSpiritBrushDescriptionArray[0] = "Provides information about the world and its contents, and chronicles events through time"; * strSpiritBrushDescriptionArray[1] = "This spirit possesses limited control of life & existence itself"; * strSpiritBrushDescriptionArray[2] = "A mysterious Kelpie able to control the flow of water"; * strSpiritBrushDescriptionArray[3] = "A Watcher Spirit can track an organism's journey through space and time"; * strSpiritBrushDescriptionArray[4] = "Mutate... blah blah"; * strSpiritBrushDescriptionArray[5] = "Extra."; * * string[] strLinkedSpiritDescriptionArray = new string[12]; // = "Decomposers break down the old so that new life can grow."; * strLinkedSpiritDescriptionArray[0] = "The World Spirit provides the spark for a new universe"; * strLinkedSpiritDescriptionArray[1] = "Stone Spirits are some of the oldest known"; * strLinkedSpiritDescriptionArray[2] = "Pebble Spirits are usually found in rivers and streams"; * strLinkedSpiritDescriptionArray[3] = "Sand Spirits"; * strLinkedSpiritDescriptionArray[4] = "Mineral Spirits infuse nutrients into the earth."; * strLinkedSpiritDescriptionArray[5] = "Water Spirits"; * strLinkedSpiritDescriptionArray[6] = "Air Spirits"; * strLinkedSpiritDescriptionArray[7] = "Decomposers break down the old so that new life can grow."; * strLinkedSpiritDescriptionArray[8] = "Algae needs light and nutrients to grow."; * strLinkedSpiritDescriptionArray[9] = "Floating Plants that are a foodsource for Vertebrates"; * strLinkedSpiritDescriptionArray[10] = "Tiny Organisms that feed on Algae"; * strLinkedSpiritDescriptionArray[11] = "Animals that can feed on Plants, Zooplankton, or even other Vertebrates."; * */ public string GetSpeciesDescriptionString() { string str = ""; TrophicSlot slot = uiManager.worldSpiritHubUI.selectedWorldSpiritSlot; // * WPP: calculate values in simResourceManager, retrieve via function. Use switch statement. if (slot.kingdomID == KingdomId.Decomposers) { str = "Bacterial and Fungal organisms that recycle vital nutrients."; // \n\nUses: <b><color=#A97860FF>Waste</color></b>, <b><color=#8EDEEEFF>Oxygen</color></b>\n\nProduces: <b><color=#FBC653FF>Nutrients</color></b>"; str += "\n\n"; str += "<size=13><b>Total Biomass: " + simResourceManager.curGlobalDecomposers.ToString("F1") + "</b></size>\n\n"; str += "<color=#FBC653FF>Nutrient Production: <b>" + simResourceManager.nutrientsProducedByDecomposersLastFrame.ToString("F3") + "</b></color>\n"; str += "<color=#8EDEEEFF>Oxygen Usage: <b>" + simResourceManager.oxygenUsedByDecomposersLastFrame.ToString("F3") + "</b></color>\n"; str += "<color=#A97860FF>Waste Processed: <b>" + simResourceManager.detritusRemovedByDecomposersLastFrame.ToString("F3") + "</b></color>\n"; } else if (slot.id == KnowledgeMapId.Algae) { str = "Microscopic Plants that form the foundation of the ecosystem along with the Decomposers."; // \n\nUses: <b><color=#FBC653FF>Nutrients</color></b>\n\nProduces: <b><color=#8EDEEEFF>Oxygen</color></b>"; str += "\n\n"; str += "<size=13><b>Total Biomass: " + simResourceManager.curGlobalAlgaeReservoir.ToString("F1") + "</b></size>\n\n"; str += "<color=#8EDEEEFF>Oxygen Production: <b>" + simResourceManager.oxygenProducedByAlgaeReservoirLastFrame.ToString("F3") + "</b></color>\n"; str += "<color=#FBC653FF>Nutrient Usage: <b>" + simResourceManager.nutrientsUsedByAlgaeReservoirLastFrame.ToString("F3") + "</b></color>\n"; str += "<color=#A97860FF>Waste Generated: <b>" + simResourceManager.wasteProducedByAlgaeReservoirLastFrame.ToString("F3") + "</b></color>\n"; } else if (slot.id == KnowledgeMapId.Plants) { str = "Larger Plants."; // \n\nUses: <b><color=#FBC653FF>Nutrients</color></b>\n\nProduces: <b><color=#8EDEEEFF>Oxygen</color></b>"; str += "\n\nWelcome to the Big Leagues, chloroplasts"; str += "\n\n"; str += "<size=13><b>Total Biomass: " + simResourceManager.curGlobalPlantParticles.ToString("F1") + "</b></size>\n\n"; str += "<color=#8EDEEEFF>Oxygen Production: <b>" + simResourceManager.oxygenProducedByPlantParticlesLastFrame.ToString("F3") + "</b></color>\n"; str += "<color=#FBC653FF>Nutrient Usage: <b>" + simResourceManager.nutrientsUsedByPlantParticlesLastFrame.ToString("F3") + "</b></color>\n"; str += "<color=#A97860FF>Waste Generated: <b>" + simResourceManager.wasteProducedByPlantParticlesLastFrame.ToString("F3") + "</b></color>\n"; } else if (slot.id == KnowledgeMapId.Microbes) { str = "Tiny Animals that feed on Algae."; // \n\nUses: <b><color=#8EDEEEFF>Oxygen</color></b>\n\nProduces: <b><color=#A97860FF>Waste</color></b>"; str += "\n\n"; str += "<size=13><b>Total Biomass: " + simResourceManager.curGlobalAnimalParticles.ToString("F1") + "</b></size>\n\n"; str += "<color=#8EDEEEFF>Oxygen Usage: <b>" + simResourceManager.oxygenUsedByAnimalParticlesLastFrame.ToString("F3") + "</b></color>\n"; str += "<color=#A97860FF>Waste Generated: <b>" + simResourceManager.wasteProducedByAnimalParticlesLastFrame.ToString("F3") + "</b></color>\n"; } else if (slot.id == KnowledgeMapId.Animals) { str = "Simple Animal that feeds on Plants and Zooplankton."; // \n\nUses: <b><color=#8EDEEEFF>Oxygen</color></b>\n\nProduces: <b><color=#A97860FF>Waste</color></b>"; str += "\n\n"; /*float speciesMass = 0f; * if (slot.slotID == 0) { * speciesMass = simManager.simResourceManager.curGlobalAgentBiomass0; * } * else if(slot.slotID == 1) { * speciesMass = simManager.simResourceManager.curGlobalAgentBiomass1; * } * else if(slot.slotID == 2) { * speciesMass = simManager.simResourceManager.curGlobalAgentBiomass2; * } * else { * speciesMass = simManager.simResourceManager.curGlobalAgentBiomass3; * }*/ str += "<size=13><b>Total Biomass: " + simResourceManager.curGlobalAgentBiomass.ToString("F1") + "</b></size>\n\n";// simManager.simResourceManager.curGlobalAgentBiomass.ToString("F1") + "</b></size>\n\n"; SpeciesGenomePool GenomePool = simulationManager.masterGenomePool.completeSpeciesPoolsList[uiManagerRef.worldSpiritHubUI.selectedWorldSpiritSlot.linkedSpeciesID]; str += "<color=#8EDEEEFF>Oxygen Usage: <b>" + simResourceManager.oxygenUsedByAgentsLastFrame.ToString("F3") + "</b></color>\n"; str += "<color=#A97860FF>Waste Generated: <b>" + simResourceManager.wasteProducedByAgentsLastFrame.ToString("F3") + "</b></color>\n"; //str += "<color=#8BD06AFF>Avg Food Eaten: <b>" + (GenomePool.avgConsumptionPlant + GenomePool.avgConsumptionMeat).ToString("F3") + "</b></color>\n"; //str += "\n\n\nAvg Lifespan: <b>" + (GenomePool.avgLifespan / 1500f).ToString("F1") + " Years</b>\n\n"; /* * str += "Avg Body Size: <b>" + ((GenomePool.representativeCandidate.candidateGenome.bodyGenome.GetFullsizeBoundingBox().x + GenomePool.representativeCandidate.candidateGenome.bodyGenome.GetFullsizeBoundingBox().y) * 0.5f * GenomePool.representativeCandidate.candidateGenome.bodyGenome.GetFullsizeBoundingBox().z).ToString("F2") + "</b>\n"; * str += "Avg Brain Size: <b>" + ((GenomePool.avgNumNeurons + GenomePool.avgNumAxons) * 1f).ToString("F0") + "</b>\n"; * * str += "\nFOOD EATEN:\nPlants: <b>" + ((GenomePool.avgFoodEatenPlant) * 1f).ToString("F3") + "</b> [" + (GenomePool.avgFoodSpecPlant).ToString() + "]\n"; * str += "Meat: <b>" + ((GenomePool.avgFoodEatenZoop) * 1f).ToString("F3") + "</b> [" + (GenomePool.avgFoodSpecMeat).ToString() + "]\n"; * * str += "\nSPECIALIZATIONS:\nAttack: <b>" + ((GenomePool.avgSpecAttack) * 1f).ToString("F2") + "</b>\n"; * str += "Defend: <b>" + ((GenomePool.avgSpecDefend) * 1f).ToString("F2") + "</b>\n"; * str += "Speed: <b>" + ((GenomePool.avgSpecSpeed) * 1f).ToString("F2") + "</b>\n"; * str += "Utility: <b>" + ((GenomePool.avgSpecUtility) * 1f).ToString("F2") + "</b>\n";*/ } // * WPP: simplify, consider moving data to SO else if (slot.kingdomID == KingdomId.Terrain) { if (slot.layerIndex == 0) { str = "World"; str += "\n\nWorld Size: X square meters"; } else if (slot.layerIndex == 1) { str = "Stone"; str += "\n\nTotal Stone: Y lbs"; } else if (slot.layerIndex == 2) { str = "Pebbles"; } else { str = "Fine Sand"; } } else { if (slot.layerIndex == 0) { str = "Minerals"; } else if (slot.layerIndex == 1) { str = "Water"; } else if (slot.layerIndex == 2) { str = "Air"; } } return(str); }