コード例 #1
0
        /// <summary>
        ///     Executes this command.
        /// </summary>
        public override int Execute(LogicLevel level)
        {
            int villageType = level.GetVillageType();

            if (this._villageType != -1)
            {
                villageType = this._villageType;
            }

            int freeWorkers = level.GetWorkerManagerAt(villageType).GetFreeWorkers();

            if (freeWorkers == 0)
            {
                if (level.GetWorkerManagerAt(villageType).FinishTaskOfOneWorker())
                {
                    if (this._command != null)
                    {
                        int commandType = this._command.GetCommandType();

                        if (commandType < 1000)
                        {
                            if (commandType >= 500 && commandType < 700)
                            {
                                this._command.Execute(level);
                            }
                        }
                    }

                    return(0);
                }
            }

            return(-1);
        }
コード例 #2
0
        /// <summary>
        ///     Gets the worker cost.
        /// </summary>
        public int GetWorkerCost(LogicLevel level)
        {
            int totalWorkers = level.GetWorkerManagerAt(level.GetVillageType()).GetTotalWorkers() + level.GetUnplacedObjectCount(LogicDataTables.GetWorkerData());

            switch (totalWorkers)
            {
            case 1: return(this._workerCostSecondBuildCost);

            case 2: return(this._workerCostThirdBuildCost);

            case 3: return(this._workerCostFourthBuildCost);

            case 4: return(this._workerCostFifthBuildCost);

            default: return(this._workerCostFifthBuildCost);
            }
        }