Exemple #1
0
 /**
  * 返回农场的配置数据
  *
  *
  * @return var
  */
 public static function toArray()
 {
     $farm_config['BuildingConfig'] = BuildingConfig::toArray();
     $farm_config['ActivityConfig'] = ActivityConfig::toArray();
     $farm_config['StorageConfig'] = StorageConfig::toArray();
     $farm_config['ResourceConfig'] = ResourceConfig::toArray();
     $farm_config['JobConfig'] = JobConfig::toArray();
     $farm_config['BarsoConfig'] = BarsoConfig::toArray();
     //$farm_config['hall']   = HallConfig::toAllArray();
     //$farm_config['hall']   = HallConfig::toAllArray();
     //$farm_config['shop']   = ShopConfig::toAllArray();
     //$farm_config['wall']   = WallConfig::toAllArray();
     //$farm_config['gate']   = GateConfig::toAllArray();
     //$farm_config['golder'] = GolderConfig::toAllArray();
     //$farm_config['fooder'] = FooderConfig::toAllArray();
     //$farm_config['foodar'] = FoodarConfig::toAllArray();
     //$farm_config['farmar'] = FarmarConfig::toAllArray();
     //$farm_config['YearLong'] = self::getWorldConfig('YearLong');
     //$farm_config['SeasonLong'] = self::getWorldConfig('SeasonLong');
     //$farm_config['DayLong'] = self::getWorldConfig('DayLong');
     return $farm_config;
 }
Exemple #2
0
 /**
  * @param JobConfig $jobConfig
  * @return Job
  */
 public static function create(JobConfig $jobConfig)
 {
     $response = self::_postRequest(self::URL_CREATE, $jobConfig->getRequestBody(), 201);
     return new self(json_decode($response->getBody()->getContents()));
 }
 /**
  * @param JobConfig $jobConfig
  * @return Build
  */
 public function doRequest(JobConfig $jobConfig)
 {
     $content = json_decode(file_get_contents($jobConfig->toUrl()));
     return new Build($content);
 }
Exemple #4
0
 public function snap()
 {
     Utility::logInfo('Class::Activity.snap()');
     /*如果Activity中没有job,那么退出*/
     $jobs = $this->jobs;
     $jops =& $this->jops;
     $mode = $this->mode;
     $name = $job['name'];
     echo '--' . $name . '--';
     $jobCfg = JobConfig::getJob($name);
     if ($jobc <= 0) {
         return;
     }
     /*如果播放模式是Serial,那么我们就只对*/
     $now = time();
     switch ($mode) {
         case ActivityMode::LOOP:
             for ($i = 0; $i < $jobc; $i++) {
                 $job =& $jobs[$i];
                 $cost = $job['cost'];
                 $gain = $job['gain'];
                 $initime = $job['initime'];
                 $dura = $job['dura'];
                 $lastTime = $now - $initime;
                 $turn = intval($lastTime / $dura);
                 $job['initime'] += $dura * $turn;
                 $job['prog'] = $lastTime % $dura;
             }
             break;
         case ActivityMode::SERL:
             $lastTime = 1;
             while ($lastTime > 0) {
                 $job =& $jobs[0];
                 $initime = $job['initime'];
                 $lastTime = $now - $initime;
                 $state = $job['state'];
                 if ($state != JobState::DOING) {
                     return Utility::retFunc(false, 'Can not snap a none-DOING job in a SERL Activity');
                 }
                 $cost = $job['cost'];
                 $gain = $job['gain'];
                 $dura = $job['dura'];
                 if ($lastTime < $dura) {
                     $job['prog'] = $lastTime % $dura;
                     break;
                 } else {
                     array_push($jops, $job['name']);
                     //array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。
                     array_shift($jobs);
                     $jobc = count($jobs);
                     if ($jobc > 0) {
                         $jobs[0]['initime'] = $initime + $dura;
                         $jobs[0]['prog'] = 0;
                         $jobs[0]['state'] = JobState::DOING;
                     }
                     $lastTime -= $dura;
                 }
             }
             break;
         case ActivityMode::PARA:
             foreach ($jobs as $key => $value) {
                 $job =& $jobs[$key];
                 if ($job['state'] != JobState::DOING) {
                     return Utility::retFunc(false, 'Can not snap a none-DOING job in a PARA Activity');
                 }
                 $cost = $value['cost'];
                 $gain = $value['gain'];
                 $dura = $value['dura'];
                 $initime = $value['initime'];
                 $lastTime = $now - $initime;
                 if ($lastTime < $dura) {
                     $job['prog'] = $lastTime % $dura;
                 } else {
                     $job['state'] = JobState::DONE;
                 }
             }
             break;
         default:
             return Utility::retFunc(false, "failure! Bad mode " . $this->mode);
     }
 }