Beispiel #1
0
    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();
            }
        }
    }
Beispiel #2
0
    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];
    }
Beispiel #3
0
    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();
        }
    }
Beispiel #4
0
 public void SetTargetFromBrushesUI()
 {
     selectedWorldSpiritSlot = uiManagerRef.brushesUI.selectedEssenceSlot;
     //uiManagerRef.panelFocus = PanelFocus.WorldHub;
     isOpen = true;
     //animatorWorldHubUI.SetBool("_IsOpen", true);
     //isPaletteOpen = true;
 }
Beispiel #5
0
    public void SetTargetFromWorldTree()
    {
        selectedEssenceSlot = uiManagerRef.worldSpiritHubUI.selectedWorldSpiritSlot;

        EnterCreationBrushMode();
        isOpen        = true;
        isPaletteOpen = false;
    }
Beispiel #6
0
    public void ClickButtonBrushPalettePlants(TrophicLayerSO data)
    {
        TrophicSlot slot = trophicLayersManager.GetSlot(data);

        selectedEssenceSlot = slot;
        isPaletteOpen       = false;
        EnterCreationBrushMode();
    }
Beispiel #7
0
    // 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();
    }
Beispiel #8
0
    public void ClickButtonBrushPaletteZooplankton()
    {
        //TrophicSlot slot = trophicLayersManager.kingdomAnimals.trophicTiersList[0].trophicSlots[0];
        var slot = trophicLayersManager.GetSlot(KnowledgeMapId.Microbes);

        selectedEssenceSlot = slot;
        isPaletteOpen       = false;
        EnterCreationBrushMode();
    }
Beispiel #9
0
 public void SetSlot(TrophicLayerSO data)
 {
     foreach (var slot in allTrophicSlots)
     {
         if (slot.data.id == data.id)
         {
             selectedSlot = slot;
         }
     }
 }
Beispiel #10
0
    public void ClickButtonBrushPaletteAgent(TrophicLayerSO data)
    {
        TrophicSlot slot = trophicLayersManager.GetSlot(data);

        selectedEssenceSlot = slot;

        selectedBrushVertebrateSpeciesID         = slot.linkedSpeciesID; // update this next
        selectedBrushLinkedSpiritVertebrateLayer = data.layerIndex;
        isPaletteOpen = false;
        EnterCreationBrushMode();
    }
Beispiel #11
0
    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();
    }
Beispiel #12
0
    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;
    }
Beispiel #13
0
    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;
    }
Beispiel #14
0
    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;
    }
Beispiel #15
0
    //*********************************************
    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();
    }
Beispiel #16
0
    /*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;
        }
    }
Beispiel #17
0
    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;
    }
Beispiel #18
0
    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);
    }
Beispiel #19
0
 public void StartFollowingAnimalParticle()
 {
     cameraManager.SetFollowing(KnowledgeMapId.Microbes);
     watcherSelectedTrophicSlotRef = trophicLayersManager.GetSlot(KnowledgeMapId.Microbes);
 }
Beispiel #20
0
    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);
            }
        }
    }
Beispiel #21
0
    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
    }
Beispiel #22
0
    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);
        }
    }
Beispiel #23
0
    /*
     *  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);
    }