Example #1
0
    public void DeselectSpecies()
    {
        UnitActions.DisableAllSelectionGraphics();
        HideSpeciesLightbeams();
        //SetTargetsToNull();
        FreePan();

        cameraController.zoomType = "in";
        speciesInfoPanel.Hide();
        selectedSpecies = null;
    }
    public static GMState NextState()
    {
        GameManager gm = GameManager.gameManager;

        switch (gm.gameState)
        {
        case GMState.FreeSelection: {
            if (gm.IsObjectSelected())
            {
                gm.SelectObject(); gm.HideSpeciesSelectionPanel();
                return(GMState.ObjectSelection);
            }
            if (gm.IsSpeciesSelected())
            {
                gm.SelectSpecies(); gm.HideSpeciesSelectionPanel();
                return(GMState.SpeciesSelection);
            }
            if (gm.IsUnitSelected())
            {
                gm.SelectUnit(); gm.HideSpeciesSelectionPanel();
                return(GMState.UnitSelection);
            }
            if (gm.selectedSpecies != gm.previousSelectedSpecies)
            {
                gm.SelectSpecies();
                gm.HideSpeciesSelectionPanel(); return(GMState.SpeciesSelection);
            }
            break;
        }

        case GMState.ObjectSelection: {
            if (gm.forcePanelExit)
            {
                gm.FreePan(); gm.HideObjectSelection(); gm.DeselectCurrentObject();
                gm.ShowSpeciesSelectionPanel(); return(GMState.FreeSelection);
            }

            if (gm.isDragging)
            {
                gm.FreePan(); gm.HideObjectSelection(); gm.ShowSpeciesSelectionPanel();
                gm.DeselectCurrentObject(); return(GMState.FreeSelection);
            }
            if (gm.NewObjectSelected())
            {
                gm.DeselectCurrentObject(); gm.SelectObject(); return(GMState.ObjectSelection);
            }
            if (gm.IsObjectSelected())
            {
                gm.SelectObject(); return(GMState.ObjectSelection);
            }

            if (gm.IsUnitSelected())
            {
                gm.DeselectCurrentObject(); gm.SelectUnit(); gm.HideObjectSelection(); return(GMState.UnitSelection);
            }
            break;
        }

        case GMState.UnitSelection: {
            if (gm.forcePanelExit)
            {
                gm.FreePan(); gm.DeselectUnit(); gm.ShowSpeciesSelectionPanel(); return(GMState.FreeSelection);
            }
            if (gm.isDragging)
            {
                gm.FreePan(); return(GMState.UnitSelection);
            }
            if (gm.IsObjectSelected())
            {
                gm.DeselectUnit(); gm.SelectObject(); return(GMState.ObjectSelection);
            }
            if (gm.NewUnitSelected())
            {
                UnitActions.DisableAllSelectionGraphics(); gm.SelectUnit(); return(GMState.UnitSelection);
            }
            if (gm.openSpeciesAttributes)
            {
                gm.ShowSpeciesAttributes(); gm.DeselectUnit();
                gm.FreePan(); return(GMState.SpeciesAttributes);
            }
            break;
        }

        case GMState.SpeciesSelection: {
            if (gm.isDragging)
            {
                gm.FreePan(); return(GMState.SpeciesSelection);
            }
            if (gm.forcePanelExit)
            {
                gm.DeselectSpecies(); gm.ShowSpeciesSelectionPanel();
                return(GMState.FreeSelection);
            }
            if (gm.IsObjectSelected())
            {
                gm.SetHabitatTargets(); return(GMState.SpeciesSelection);
            }
            if (gm.PointSelected())
            {
                gm.ShowTargetSelectionGraphic(); gm.OverrideSelectedSpeciesUnitTargets(); return(GMState.SpeciesSelection);
            }
            //if (gm.IsObjectSelected()) { gm.DeselectSpecies(); gm.TargetObject(); return GMState.ObjectSelection; }

            if (gm.newSpeciesSelected)
            {
                gm.SelectSpecies(); return(GMState.SpeciesSelection);
            }
            if (gm.IsUnitSelected())
            {
                gm.SelectUnit(); gm.DeselectSpecies(); return(GMState.UnitSelection);
            }
            //todo: is base selected

            break;
        }

        case GMState.SpeciesAttributes: {
            if (gm.forcePanelExit)
            {
                gm.ShowSpeciesSelectionPanel(); return(GMState.FreeSelection);
            }
            break;
        }
        }
        //gm.SetTargetsToNull();
        return(gm.gameState);
    }