示例#1
0
    public void NodeClicked(GameNode node)
    {
        if (lastClicked != null)
        {
            lastClicked.SetState(NodeStates.VISITED);
        }

        NodeStates state = node.GetState();

        if (state == NodeStates.UNKNOWN)
        {
            curEncounterLevel += encounterTickForNewNode;
            AddEnergy(-energyCostForNewNode);
        }
        else if (state == NodeStates.VISITED)
        {
            curEncounterLevel += encounterTickForOldNode;
            AddEnergy(-energyCostForOldNode);
        }
        else if (state == NodeStates.HELP)
        {
            curLevelPoints += pointsPerHelp;
            AddEnergy(-energyCostForNewNode);
        }
        else if (state == NodeStates.EXIT)
        {
            curPoints += curLevelPoints;
            AddEnergy(-energyCostForNewNode);
            SceneManager.LoadScene(0);
        }
        else
        {
            AddEnergy(-energyCostForOldNode);
        }
        node.SetState(NodeStates.CURRENT);
        lastClicked = node;
        RefreshText();
        if (curEncounterLevel > encounterThreshold)
        {
            DoEncounter();
        }
    }