コード例 #1
0
        public uint Unknown3 { get; set; } //FF FF FF FF

        public override void Execute(Level level)
        {
            GameObject go = level.GameObjectManager.GetGameObjectByID(BuildingId);
            if(Count > 0)
            {
                Building b = (Building)go;
                UnitProductionComponent c = b.GetUnitProductionComponent();
                CombatItemData cid = (CombatItemData)ObjectManager.DataTables.GetDataById(UnitType);
                do
                {
                    if (!c.CanAddUnitToQueue(cid))
                        break;
                    ResourceData trainingResource = cid.GetTrainingResource();
                    ClientAvatar ca = level.GetHomeOwnerAvatar();
                    int trainingCost = cid.GetTrainingCost(ca.GetUnitUpgradeLevel(cid));
                    if (!ca.HasEnoughResources(trainingResource, trainingCost))
                        break;
                    ca.SetResourceCount(trainingResource, ca.GetResourceCount(trainingResource) - trainingCost);
                    c.AddUnitToProductionQueue(cid);
                    Count--;
                }
                while (Count > 0);
            }
        }