/** * 返回农场的配置数据 * * * @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; }
/** * @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); }
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); } }