Esempio n. 1
0
 /**
  * @param City $city
  * @param $thing
  * @param array $price
  * @param $time
  * @return $this|bool
  */
 public function levelUp($city, Model $thing, array $price, $time)
 {
     $lack_resource = $city->hasEnoughResources($price);
     if (empty($lack_resource)) {
         $thing->level += 1;
         $thing->finished_at = Carbon::now()->addSeconds($time);
         $city->resources->subtract($price);
         $thing->save();
     }
     $messages = [];
     $resources = ['stone' => 'kő', 'lumber' => 'fa', 'food' => 'élelmiszer', 'iron' => 'vas'];
     foreach ($lack_resource as $key => $value) {
         $messages["not_enough_{$key}"] = "Még {$value} {$resources[$key]} hiányzik";
     }
     return redirect()->back()->withErrors($messages);
 }
 /**
  * Creates a new building
  *
  * @param $type @int                The type of the building.
  * @param City $city @int           The id of the city in which the building is built.
  * @param $slot_num @int            The number of the slot on which the building going to be built.
  * @param BuildingSlot $slot @int   The id of the slot on which the building is built.
  * @return $this
  */
 private function createBuilding($type, City $city, $slot_num)
 {
     $price = Building::$building_prices[$city->nation][$type];
     $lack_resource = $city->hasEnoughResources($price);
     if (empty($lack_resource)) {
         $finished = Carbon::now()->addSeconds(Building::$building_times[$city->nation][$type]);
         $slot = $city->building_slot;
         $building = Building::create(['type' => $type, 'city_id' => $city->id, 'slot' => $slot->id, 'nation' => $city->nation, 'finished_at' => $finished]);
         $slot->update(["slot{$slot_num}" => $building->id]);
         $city->resources->subtract($price);
     } else {
         $messages = [];
         $resources = ['stone' => 'kő', 'lumber' => 'fa', 'food' => 'élelmiszer', 'iron' => 'vas'];
         foreach ($lack_resource as $key => $value) {
             $messages["not_enough_{$key}"] = "Még {$value} {$resources[$key]} hiányzik";
         }
         return redirect("city/{$city->id}")->withErrors($messages);
     }
 }