public static function applyPriceEffectUnits($building, $units)
 {
     switch ($building->Name) {
         case "Barracks":
             CityEffectApplier::applyBarracks($units);
             break;
         case "Archery Range":
             CityEffectApplier::applyArcheryRange($units);
             break;
     }
 }
 public function getAvailableUnits($id)
 {
     $file = file_get_contents("units.txt");
     $units = json_decode($file, true);
     $position = Position::find($id);
     $x = $position->x;
     $y = $position->y;
     $position = Position::where('y', $y)->where('x', $x)->get()->lists('id');
     $city = City::whereIn('position_id', $position)->get();
     if (count($city) == 0) {
         return $city;
     } else {
         switch ($city[0]->tier) {
             case 1:
                 $txt = 'tier1';
                 break;
             case 2:
                 $txt = 'tier2';
                 break;
         }
         $units = Unit::whereIn('Id', $units[$txt])->with('resource')->get();
         return \App\CityEffectApplier::modifyUnitPricesByCity($units, $city[0]);
     }
 }
Example #3
0
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id, Request $request)
 {
     $city = City::find($id);
     $buildingIds = $this->getIdArray($request->input('buildings'));
     $result = $this->arrayDiffNotUnique($buildingIds, $this->getIdArray($city->buildings));
     $city->buildings()->attach($result);
     $city->save();
     $building = Building::find($result);
     CityEffectApplier::applyBuildEffect($building[0], $city);
     $resource = $building[0]->resource;
     $cityResource = $city->resource;
     $cityResource->substractResource($resource);
     $cityResource->save();
     $return = City::find($id);
     $return->buildings;
     $return->resource;
     $return->income;
     return $return;
 }
 public static function getPricesForBuildings($buildings, $city)
 {
     $basePrices = array();
     foreach ($buildings as $building) {
         array_push($basePrices, $building->resource_id);
     }
     $basePrices = \App\Resource::whereIn('Id', $basePrices)->get();
     return \App\CityEffectApplier::modifyBuildingPricesByCity($basePrices, $city);
 }