Beispiel #1
0
 public virtual void PrepareStructureForModification(Vector3 inputPosition, string structureName, StructureType structureType)
 {
     if (_structureData.GetType() == typeof(NullStructureSO) && structureType != StructureType.None)
     {
         _structureData = this._structureRepository.GetStructureData(structureName, structureType);
     }
 }
Beispiel #2
0
    private static void PrepareManufactureStructure(Vector3Int gridPosition, GridStructure grid)
    {
        PrepareNewStructure(gridPosition, grid);
        StructureBaseSO structureData = grid.GetStructureDataFromTheGrid(gridPosition);

        AddFacilityTypeToStructure(gridPosition, grid, structureData);
    }
Beispiel #3
0
 public StructureModificationHelper(StructureRepository structureRepository, GridStructure grid, IPlacementManager placementManager, IResourceManager resourceManager)
 {
     this._structureRepository = structureRepository;
     this._grid             = grid;
     this._placementManager = placementManager;
     this._resourceManager  = resourceManager;
     _structureData         = ScriptableObject.CreateInstance <NullStructureSO>();
 }
Beispiel #4
0
    public void PlaceStructureOnTheGrid(GameObject structure, Vector3 gridPosition, StructureBaseSO structureData)
    {
        var cellIndex = CalculateGridIndex(gridPosition);

        if (CheckIndexValidity(cellIndex))
        {
            grid[cellIndex.y, cellIndex.x].SetConstruction(structure, structureData);
        }
    }
Beispiel #5
0
 private void AddHealthcareToClient(StructureBaseSO nearByStructure)
 {
     if (facilityType == FacilityType.Healthcare && nearByStructure.requireHealthcare)
     {
         if (nearByStructure.AddHealthcareFacility(this))
         {
             _customers.Add(nearByStructure);
         }
     }
 }
Beispiel #6
0
 private void AddPowerFacilityToClient(StructureBaseSO nearByStructure)
 {
     if (facilityType == FacilityType.Power && nearByStructure.requirePower)
     {
         if (nearByStructure.AddPowerFacility(this))
         {
             _customers.Add(nearByStructure);
         }
     }
 }
Beispiel #7
0
 private void AddGarbageServiceToClient(StructureBaseSO nearByStructure)
 {
     if (facilityType == FacilityType.Garbage && nearByStructure.requireGarbageService)
     {
         if (nearByStructure.AddGarbageFacility(this))
         {
             _customers.Add(nearByStructure);
         }
     }
 }
Beispiel #8
0
 private void AddFireProtectionToClient(StructureBaseSO nearByStructure)
 {
     if (facilityType == FacilityType.FireProtection && nearByStructure.requireFireProtection)
     {
         if (nearByStructure.AddFireProtectionFacility(this))
         {
             _customers.Add(nearByStructure);
         }
     }
 }
Beispiel #9
0
 private void AddEducationServiceToClient(StructureBaseSO nearByStructure)
 {
     if (facilityType == FacilityType.Education && nearByStructure.requireEducationSerivce)
     {
         if (nearByStructure.AddEducationFacility(this))
         {
             _customers.Add(nearByStructure);
         }
     }
 }
Beispiel #10
0
 private void AddLawEnforcementToClient(StructureBaseSO nearByStructure)
 {
     if (facilityType == FacilityType.LawEnforcement && nearByStructure.requireLawEnforcement)
     {
         if (nearByStructure.AddLawEnforcementFacility(this))
         {
             _customers.Add(nearByStructure);
         }
     }
 }
Beispiel #11
0
 private void AddSiloToClient(StructureBaseSO nearByStructure)
 {
     if (facilityType == FacilityType.Silo && nearByStructure.requireSilo)
     {
         if (nearByStructure.AddSiloFacility(this))
         {
             _customers.Add(nearByStructure);
         }
     }
 }
Beispiel #12
0
 private void AddPostalServiceToClient(StructureBaseSO nearByStructure)
 {
     if (facilityType == FacilityType.Postal && nearByStructure.requirePostalService)
     {
         if (nearByStructure.AddPostalFacility(this))
         {
             _customers.Add(nearByStructure);
         }
     }
 }
Beispiel #13
0
 private void AddBankingServiceToClient(StructureBaseSO nearByStructure)
 {
     if (facilityType == FacilityType.Banking && nearByStructure.requireBankService)
     {
         if (nearByStructure.AddBankingFacility(this))
         {
             _customers.Add(nearByStructure);
         }
     }
 }
Beispiel #14
0
 private void CheckStructureToDisplayUpgradeAmountText(StructureBaseSO structure)
 {
     if (structure.upgradable == true)
     {
         SetText(upgradeAmountText, structure.GetUpgradePlacementCost() + "");
     }
     else
     {
         HideElement(upgradeAmountText.gameObject);
     }
 }
Beispiel #15
0
 private void CheckStructureToDisplayMaterialBuildTimeText(StructureBaseSO structure)
 {
     if (structure.GetType() == typeof(ManufacturerBaseSO))
     {
         SetText(materialBuildTimeText, ((ManufacturerBaseSO)structure).GetMaterialBuildTimer() + "'s");
     }
     else
     {
         HideElement(materialBuildTimeText.gameObject);
     }
 }
Beispiel #16
0
 private void CheckStructureToDisplayGarbageServiceToggle(StructureBaseSO structure)
 {
     if (structure.requireGarbageService)
     {
         SetToggle(garbageServiceToggle, structure.HasGarbageService());
     }
     else
     {
         HideElement(garbageServiceToggle.gameObject);
     }
 }
Beispiel #17
0
 private void CheckStructureToDisplayEducationServiceToggle(StructureBaseSO structure)
 {
     if (structure.requireEducationSerivce)
     {
         SetToggle(educationServiceToggle, structure.HasEducationService());
     }
     else
     {
         HideElement(educationServiceToggle.gameObject);
     }
 }
Beispiel #18
0
 private void CheckStructureToDisplayHealthcareToggle(StructureBaseSO structure)
 {
     if (structure.requireHealthcare)
     {
         SetToggle(heatlhcareToggle, structure.HasHealthcare());
     }
     else
     {
         HideElement(heatlhcareToggle.gameObject);
     }
 }
Beispiel #19
0
 private void CheckStructureToDisplayLawEnforcementToggle(StructureBaseSO structure)
 {
     if (structure.requireLawEnforcement)
     {
         SetToggle(lawEnforcementToggle, structure.HasLawEnforcement());
     }
     else
     {
         HideElement(lawEnforcementToggle.gameObject);
     }
 }
Beispiel #20
0
 private void CheckStructureToDisplayWaterToggle(StructureBaseSO structure)
 {
     if (structure.requireWater)
     {
         SetToggle(waterToggle, structure.HasWater());
     }
     else
     {
         HideElement(waterToggle.gameObject);
     }
 }
Beispiel #21
0
 private void CheckStructureToDisplaySiloToggle(StructureBaseSO structure)
 {
     if (structure.requireSilo)
     {
         SetToggle(siloToggle, structure.HasSilo());
     }
     else
     {
         HideElement(siloToggle.gameObject);
     }
 }
Beispiel #22
0
 private void CheckStructureToDisplayRoadToggle(StructureBaseSO structure)
 {
     if (structure.requireRoadAccess)
     {
         SetToggle(roadToggle, structure.HasRoadAccess());
     }
     else
     {
         HideElement(roadToggle.gameObject);
     }
 }
Beispiel #23
0
 public static void CheckStructureTypeForUpgradePreparation(Type structureType, StructureBaseSO structureData, Vector3Int gridPosition, GridStructure grid)
 {
     if (structureType == typeof(ZoneStructureSO))
     {
         PrepareZoneStructureForUpgrade(gridPosition, grid, structureData);
     }
     else if (structureType == typeof(SingleFacilitySO))
     {
         PrepareFacilityStructureForUpgrade(gridPosition, grid, structureData);
     }
 }
Beispiel #24
0
 private void CheckStructureToDisplayBankingServiceToggle(StructureBaseSO structure)
 {
     if (structure.requireBankService)
     {
         SetToggle(bankingServiceToggle, structure.HasBankingService());
     }
     else
     {
         HideElement(bankingServiceToggle.gameObject);
     }
 }
Beispiel #25
0
 private void CheckStructureToDisplayFireProtectionToggle(StructureBaseSO structure)
 {
     if (structure.requireFireProtection)
     {
         SetToggle(fireProtectionToggle, structure.HasFireProtection());
     }
     else
     {
         HideElement(fireProtectionToggle.gameObject);
     }
 }
Beispiel #26
0
 //display all the data
 public void DisplayBasicStructureInfo(StructureBaseSO data)
 {
     Show();
     HideElement(clientsTxt.gameObject);
     HideElement(powerToggle.gameObject);
     HideElement(waterToggle.gameObject);
     HideElement(roadToggle.gameObject);
     SetText(nameTxt, data.buildingName);
     SetText(incomeTxt, data.GetIncome() + "");
     SetText(upkeepTxt, data.upkeepCost + "");
 }
Beispiel #27
0
 private void CheckStructureToDisplayPostalServiceToggle(StructureBaseSO structure)
 {
     if (structure.requirePostalService)
     {
         SetToggle(postalServiceToggle, structure.HasPostalService());
     }
     else
     {
         HideElement(postalServiceToggle.gameObject);
     }
 }
Beispiel #28
0
 private void CheckStructureToDisplayUpgradeToggle(StructureBaseSO structure)
 {
     SetToggle(upgradeToggle, structure.HasFullyUpgraded());
     if (structure.HasFullyUpgraded() == true)
     {
         HideElement(upgradeAmountText.gameObject);
     }
     else
     {
         HideElement(upgradeToggle.gameObject);
     }
 }
 private static bool DoesStructureRequireAnyResources(StructureBaseSO structureData)
 {
     return((structureData.requirePower && structureData.HasPower() == false) ||
            (structureData.requireWater && structureData.HasWater() == false) ||
            (structureData.requireSilo && structureData.HasSilo() == false) ||
            (structureData.requireHealthcare && structureData.HasHealthcare() == false) ||
            (structureData.requireLawEnforcement && structureData.HasLawEnforcement() == false) ||
            (structureData.requireFireProtection && structureData.HasFireProtection() == false) ||
            (structureData.requirePostalService && structureData.HasPostalService() == false) ||
            (structureData.requireBankService && structureData.HasBankingService() == false) ||
            (structureData.requireGarbageService && structureData.HasGarbageService() == false));
 }
Beispiel #30
0
    public void RemoveClient(StructureBaseSO client)
    {
        if (_customers.Contains(client))
        {
            switch (facilityType)
            {
            case FacilityType.Water:
                client.RemoveWaterFacility();
                break;

            case FacilityType.Power:
                client.RemovePowerFacility();
                break;

            case FacilityType.Silo:
                client.RemoveSiloFacility();
                break;

            case FacilityType.Healthcare:
                client.RemoveHealthcareFacility();
                break;

            case FacilityType.LawEnforcement:
                client.RemoveLawEnforcementFacility();
                break;

            case FacilityType.FireProtection:
                client.RemoveFireProtectionFacility();
                break;

            case FacilityType.Postal:
                client.RemovePostalFacility();
                break;

            case FacilityType.Banking:
                client.RemoveBankingFacility();
                break;

            case FacilityType.Garbage:
                client.RemoveGarbageFacility();
                break;

            case FacilityType.Education:
                client.RemoveEducationFacility();
                break;
            }
            _customers.Remove(client);
        }
    }