示例#1
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();
    }