示例#1
0
    void LeftMouseClick()
    {
        if (actionBase.inProgress)
        {
            if (actionBase.localInvestCounter == actionBase.nBenefit)
            {
                actionBase.ConcludeAction();
                ActionEvents.Instance.investComplete.Raise();
            }
            else if (actionBase.localInvestCounter < actionBase.nBenefit)
            {
                ActionEvents.Instance.useAllBenefits.Raise();
            }
            return;
        }

        if (!actionBase.Validate())
        {
            return;
        }

        actionBase.SaveStateToUndo();

        if (actionBase.nBenefit < actionBase.gameData.investCounter)
        {
            actionCounter.ResetBenefits();
            actionBase.gameData.investCounter = 0;
            actionBase.gameData.investments   = new bool[4];
            actionBase.resources.GetComponent <ResourceManager>().UpdateHighlight();
        }

        ActionEvents.Instance.investStarted.Raise();
        actionBase.Activate();
    }
示例#2
0
    void LeftMouseClick()
    {
        if (actionBase.inProgress)
        {
            if (actionBase.gameData.productCounter == actionBase.nBenefit)
            {
                actionBase.ConcludeAction();
                actionBase.gameData.AddProductResources();
                ActionEvents.Instance.productionComplete.Raise();
            }
            else if (actionBase.gameData.productCounter < actionBase.nBenefit)
            {
                ActionEvents.Instance.useAllBenefits.Raise();
            }
            return;
        }

        if (!actionBase.Validate())
        {
            return;
        }

        if (actionBase.needInvestment)
        {
            if (actionBase.CheckInvestmentsNeeded())
            {
                ActionEvents.Instance.needToInvest.Raise();
                return;
            }

            int investmentsFinded = 0;
            for (int i = 0; i < investmentNeeded.Length; i++)
            {
                if (investmentNeeded[i] == true && investmentNeeded[i] == actionBase.gameData.investments[i])
                {
                    investmentsFinded++;
                }
            }

            if (investmentsFinded == 0)
            {
                ActionEvents.Instance.needCorrectInvest.Raise();
                return;
            }
        }

        actionBase.SaveStateToUndo();

        ActionEvents.Instance.productionStarted.Raise();
        actionBase.Activate();
    }