/**
  * Update the level up data
  * @param Dragon $dragon
  * @param int $level
  * @param mixed[] $requestData
  */
 protected function updateLevelUpData($dragon, $level, $requestData)
 {
     $levelUpData = $dragon->levelUp->data->where('level', $level)->first();
     if (!$levelUpData) {
         $levelUpData = new LevelUpData(['level' => $level]);
         $dragon->levelUp->data()->save($levelUpData);
     }
     $levelUpData->fish = isset($requestData['level_up_fish_divided']) && $requestData['level_up_fish_divided'] ? $requestData['level_up_fish_divided'] * $requestData['fish_multiplier'] : null;
     foreach (['time', 'wood', 'iron'] as $field) {
         $levelUpData->{$field} = isset($requestData['level_up_' . $field]) && $requestData['level_up_' . $field] ? $requestData['level_up_' . $field] : null;
     }
     $levelUpData->touch();
     $fishMultiplier = FishMultiplier::findOrNew($level);
     // Because level is the primary key, we need to set it...
     if (!$fishMultiplier->exists) {
         $fishMultiplier->level = $level;
     }
     $fishMultiplier->multiplier = isset($requestData['fish_multiplier']) && $requestData['fish_multiplier'] ? $requestData['fish_multiplier'] : null;
     $fishMultiplier->touch();
 }
Ejemplo n.º 2
0
 public function level($level)
 {
     $levelDetails = (object) $this->defaultLevel;
     $cTime = $this->collectTime->data->where('level', $level)->first();
     if ($cTime) {
         $levelDetails->collect_time = $cTime->time;
     }
     if ($this->wood_start_level <= $level) {
         $woodC = $this->collectRateWood->data->where('level', $level)->first();
         if ($woodC) {
             $levelDetails->wood_collect = $woodC->rate;
         }
     }
     if ($this->fish_start_level <= $level) {
         $fishC = $this->collectRateFish->data->where('level', $level)->first();
         if ($fishC) {
             $levelDetails->fish_collect = $fishC->rate;
         }
     }
     $multiplier = FishMultiplier::findOrNew($level);
     $levelDetails->fish_multiplier = $multiplier->multiplier;
     $levelUpData = $this->levelUp->data->where('level', $level)->first();
     if ($levelUpData) {
         $levelDetails->level_up_fish = $levelUpData->fish;
         $levelDetails->level_up_wood = $levelUpData->wood;
         $levelDetails->level_up_iron = $levelUpData->iron;
         $levelDetails->level_up_time = $levelUpData->time;
         if ($multiplier->multiplier) {
             $levelDetails->level_up_fish_divided = $levelUpData->fish / $multiplier->multiplier;
         }
     }
     if ($this->iron_start_level <= $level) {
         $collectIronData = $this->collectIronData->where('level', $level)->first();
         if ($collectIronData) {
             $levelDetails->iron_collect_time = $collectIronData->time;
             $levelDetails->iron_collect_rate = $collectIronData->rate;
             $levelDetails->iron_collect_wood = $collectIronData->wood;
             $levelDetails->iron_collect_fish = $collectIronData->fish;
         }
     }
     return $levelDetails;
 }