Exemple #1
0
        public void Refresh()
        {
            string plotid;
            int    shipcap, shipmax, shipready;
            bool   isbuilding, canactivate;

            LuaCommands.GetBuildingInfo(BuildingId, out plotid, out canactivate, out shipcap, out shipready, out shipmax, out isbuilding);

            Maximum = shipcap;
            Pending = shipready;
            Pickup  = shipmax;
        }
Exemple #2
0
        public Building(int id)
        {
            Id    = id;
            Type  = GetBuildingTypeUsingId(Id);
            Level = GetBuildingUpgradeLevel(Id);
            Plot  = GetBuildingPlotSize(Type);
            HasFollowerWorking = GarrisonManager.BuildingIdsWithFollowerWorking.Contains(Id);

            WorkOrderType = WorkOrder.GetWorkorderType(Type);

            if (WorkOrderType != WorkOrderType.None)
            {
                WorkOrderObjectEntryId = WorkOrder.WorkOrderPickupEntryIds[WorkOrderType];
                WorkOrderObjectName    = WorkOrder.WorkOrderPickupNames[WorkOrderType];
                if (WorkOrderType == WorkOrderType.WarMillDwarvenBunker && Player.IsAlliance)
                {
                    WorkOrderObjectName = WorkOrder.WorkOrderPickupNames[WorkOrderType.DwarvenBunker];
                }
            }
            else
            {
                WorkOrderObjectEntryId = -1;
                WorkOrderObjectName    = String.Empty;
            }

            WorkOrderNpcEntryId = WorkOrder.GetWorkOrderNpcEntryId(Type, Player.IsAlliance);


            if (GarrisonManager.BuildingIDs.Contains(Id))
            {
                string plotid;
                bool   canActivate, isBuilding;
                int    shipTotal, shipCap, shipReady;

                LuaCommands.GetBuildingInfo(id, out plotid, out canActivate, out shipCap, out shipReady, out shipTotal, out isBuilding);
                if (WorkOrderType != WorkOrderType.None)
                {
                    _workorder = new WorkOrder(Id, Type, WorkOrderType, shipCap,
                                               WorkOrder.GetWorkOrderItemAndQuanityRequired(WorkOrderType), shipReady, shipTotal);
                }

                PlotId      = plotid.ToInt32();
                CanActivate = canActivate;
                IsBuilding  = isBuilding;

                SafeMovementPoint     = MovementCache.GetBuildingSafeMovementPoint(PlotId);
                EntranceMovementPoint = MovementCache.GetBuildingEntranceMovementPoint(PlotId);
            }
            else if (Type == BuildingType.HerbGarden || Type == BuildingType.Mines)
            {//if not completed first quest than we must insert temp info.
                PlotId                = Type == BuildingType.HerbGarden ? 63 : 59;
                SafeMovementPoint     = MovementCache.GetBuildingSafeMovementPoint(PlotId);
                EntranceMovementPoint = MovementCache.GetBuildingEntranceMovementPoint(PlotId);
                _workorder            = new WorkOrder(Id, Type, WorkOrderType, 0,
                                                      WorkOrder.GetWorkOrderItemAndQuanityRequired(WorkOrderType));
            }

            SpecialMovementPoints = MovementCache.GetSpecialMovementPoints(Type, PlotId, Level, Player.IsAlliance);

            int firstquestID = GetBuildingFirstQuestId(Type, Player.IsAlliance);

            if (firstquestID > 0)
            {
                FirstQuestId        = Convert.ToUInt32(firstquestID);
                FirstQuestCompleted = LuaCommands.IsQuestFlaggedCompleted(FirstQuestId.ToString());

                if (Type == BuildingType.TradingPost)
                {
                    FirstQuestNpcId = WorkOrderNpcEntryId;
                }
                else
                {
                    FirstQuestNpcId = GetBuildingFirstQuestNpcId(Type, Player.IsAlliance);
                }
            }
            else
            {
                FirstQuestId        = 0;
                FirstQuestNpcId     = 0;
                FirstQuestCompleted = true;
            }
        }