Esempio n. 1
0
 public function process($time)
 {
     $trainData = $this->trainingModel->getProcessData($time);
     foreach ($trainData as $single) {
         if ($single->timestamp2 < $time + $single->eachtime) {
             $diff = $time - $single->timestamp2;
             $amount = floor($diff / $single->eachtime);
             if ($amount > $single->amt) {
                 $amount = $single->amt;
             }
             $remaining = $single->amt - $amount;
             if ($remaining < 1) {
                 $this->trainingModel->delete($single->id);
             } else {
                 $this->trainingModel->update($single->id, ['amt' => $remaining, 'timestamp2' => $single->timestamp2 + $single->eachtime * $amount]);
             }
             /** @var \stdClass $units */
             $units = $this->unitsModel->get($single->vref);
             $unitName = 'u' . $single->unit;
             if ($units) {
                 $unitAmount = $units['u' . $single->unit] + $amount;
                 $this->unitsModel->update($units['vref'], [$unitName => $unitAmount]);
             } else {
                 $this->unitsModel->add([$unitName => $amount]);
             }
         }
     }
 }
Esempio n. 2
0
 /**
  * Handle all related to create new user.
  *
  * @param \stdClass $data
  */
 public function createUser($data)
 {
     $user = $this->registerUser($data);
     /** @var \stdClass $field */
     $field = $this->WDataModel->getRandom($data->position);
     $this->WDataModel->setFieldTaken($field->id);
     $villageName = $this->villageService->getNewVillageName($user);
     $vid = $this->VDataModel->addVillageForUser($user, $field, $villageName);
     $this->FDataModel->addResourceFields($field->fieldtype, $vid);
     $this->unitsModel->add(['vref' => $vid]);
     $this->TDataModel->add(['vref' => $vid]);
     $this->ABDataModel->add(['vref' => $vid]);
 }
Esempio n. 3
0
 /**
  * @param int $id
  * @param int $oasisType
  */
 public function saveOasisUnits($id, $oasisType)
 {
     $unitsData = ['vref' => $id];
     switch ($oasisType) {
         case 1:
         case 2:
             //+25% lumber oasis
             $unitsData['u35'] = rand(5, 10);
             $unitsData['u36'] = rand(0, 5);
             $unitsData['u37'] = rand(0, 5);
             break;
         case 3:
             //+25% lumber and +25% crop oasis
             $unitsData['u35'] = rand(5, 15);
             $unitsData['u36'] = rand(0, 5);
             $unitsData['u37'] = rand(0, 5);
             break;
         case 4:
         case 5:
             //+25% clay oasis
             $unitsData['u31'] = rand(10, 15);
             $unitsData['u32'] = rand(5, 15);
             $unitsData['u35'] = rand(0, 10);
             break;
         case 6:
             //+25% clay and +25% crop oasis
             $unitsData['u31'] = rand(15, 20);
             $unitsData['u32'] = rand(10, 15);
             $unitsData['u35'] = rand(0, 10);
             break;
         case 7:
         case 8:
             //+25% iron oasis
             $unitsData['u31'] = rand(10, 15);
             $unitsData['u32'] = rand(5, 15);
             $unitsData['u34'] = rand(0, 10);
             break;
         case 9:
             //+25% iron and +25% crop oasis
             $unitsData['u31'] = rand(15, 20);
             $unitsData['u32'] = rand(10, 15);
             $unitsData['u34'] = rand(0, 10);
             break;
         case 10:
         case 11:
             //+25% crop oasis
             $unitsData['u31'] = rand(5, 15);
             $unitsData['u33'] = rand(5, 10);
             $unitsData['u37'] = rand(0, 10);
             $unitsData['u39'] = rand(0, 5);
             break;
         case 12:
             //+50% crop oasis
             $unitsData['u31'] = rand(10, 15);
             $unitsData['u33'] = rand(5, 10);
             $unitsData['u38'] = rand(0, 10);
             $unitsData['u39'] = rand(0, 5);
             break;
     }
     $this->unitsModel->add($unitsData);
 }