forked from devsam/core
Compare commits
9
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1f556cf88c | ||
|
|
76625cf472 | ||
|
|
84fee0f1f2 | ||
|
|
9f81c760d0 | ||
|
|
f26ac8c37b | ||
|
|
7cffa68d04 | ||
|
|
01094d376f | ||
|
|
77ec4c6572 | ||
|
|
3e5727a166 |
@@ -256,8 +256,11 @@ class che_징병 extends Command\GeneralCommand
|
||||
$ownCities = [];
|
||||
$ownRegions = [];
|
||||
|
||||
foreach (DB::db()->query('SELECT city, region from city where nation = %i', $general->getNationID()) as $city) {
|
||||
$ownCities[$city['city']] = 1;
|
||||
foreach (DB::db()->query('SELECT city, region, secu, level from city where nation = %i', $general->getNationID()) as $city) {
|
||||
$ownCities[$city['city']] = [
|
||||
'secu' => $city['secu'],
|
||||
'level' => $city['level'],
|
||||
];
|
||||
$ownRegions[$city['region']] = 1;
|
||||
}
|
||||
|
||||
@@ -273,23 +276,19 @@ class che_징병 extends Command\GeneralCommand
|
||||
'values' => [],
|
||||
];
|
||||
|
||||
$crewTypes = [];
|
||||
foreach (GameUnitConst::byType($armType) as $unit) {
|
||||
$crewObj = new \stdClass;
|
||||
|
||||
$crewObj->id = $unit->id;
|
||||
$crewObj->reqTech = $unit->reqTech;
|
||||
$crewObj->reqYear = $unit->reqYear;
|
||||
/** @var ?\sammo\GameUnitConstraints\ReqTech */
|
||||
$reqTechObj = $unit->reqConstraints['reqTech'] ?? null;
|
||||
$crewObj->reqTech = $reqTechObj ? $reqTechObj->reqTech : 0;
|
||||
|
||||
/*
|
||||
if ($unit->reqTech == 0) {
|
||||
$crewObj->bgcolor = 'green';
|
||||
} else {
|
||||
$crewObj->bgcolor = 'limegreen';
|
||||
}
|
||||
*/
|
||||
/** @var ?\sammo\GameUnitConstraint\ReqMinRelYear */
|
||||
$reqMinRelYearObj = $unit->reqConstraints['reqMinRelYear'] ?? null;
|
||||
$crewObj->reqYear = $reqMinRelYearObj ? $reqMinRelYearObj->reqMinRelYear : 0;
|
||||
|
||||
$crewObj->notAvailable = !$unit->isValid($ownCities, $ownRegions, $relativeYear, $tech);
|
||||
$crewObj->notAvailable = !$unit->isValid($general, $ownCities, $ownRegions, $relativeYear, $tech);
|
||||
|
||||
$crewObj->baseRice = $general->onCalcDomestic($this->getName(), 'rice', $unit->riceWithTech($tech), ['armType' => $unit->armType]);
|
||||
$crewObj->baseCost = $general->onCalcDomestic($this->getName(), 'cost', $unit->costWithTech($tech), ['armType' => $unit->armType]);
|
||||
|
||||
+333
-401
@@ -1,6 +1,13 @@
|
||||
<?php
|
||||
namespace sammo;
|
||||
|
||||
use sammo\GameUnitConstraint\Impossible;
|
||||
use sammo\GameUnitConstraint\ReqTech;
|
||||
use sammo\GameUnitConstraint\ReqCities;
|
||||
use sammo\GameUnitConstraint\ReqRegions;
|
||||
use sammo\GameUnitConstraint\ReqMinRelYear;
|
||||
|
||||
|
||||
class GameUnitConstBase{
|
||||
protected function __construct(){
|
||||
|
||||
@@ -21,8 +28,6 @@ class GameUnitConstBase{
|
||||
|
||||
protected static $constID = [];
|
||||
protected static $constName = [];
|
||||
protected static $constCity = [];
|
||||
protected static $constRegion = [];
|
||||
protected static $constType = [];
|
||||
|
||||
protected static $typeData = [
|
||||
@@ -33,319 +38,322 @@ class GameUnitConstBase{
|
||||
self::T_SIEGE => '차병',
|
||||
];
|
||||
|
||||
protected static $_buildData = [
|
||||
[
|
||||
1000, self::T_CASTLE, '성벽',
|
||||
100, 100, 7, 0, 0, 99, 9,
|
||||
999999, null, null, 999999,
|
||||
[],//성벽은 공격할 수 없다.
|
||||
[self::T_FOOTMAN=>1.2],
|
||||
['성벽입니다.','생성할 수 없습니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
|
||||
[
|
||||
1100, self::T_FOOTMAN, '보병',
|
||||
100, 150, 7, 10, 0, 9, 9,
|
||||
0, null, null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['표준적인 보병입니다.','보병은 방어특화이며,','상대가 회피하기 어렵습니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1101, self::T_FOOTMAN, '청주병',
|
||||
100, 200, 7, 10, 0, 10, 11,
|
||||
1000, null, ['중원'], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['저렴하고 튼튼합니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1102, self::T_FOOTMAN, '수병',
|
||||
150, 150, 7, 10, 0, 11, 10,
|
||||
1000, null, ['오월'], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['저렴하고 강력합니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1103, self::T_FOOTMAN, '자객병',
|
||||
100, 150, 8, 20, 0, 10, 10,
|
||||
2000, ['저'], null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['은밀하고 날쌥니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1104, self::T_FOOTMAN, '근위병',
|
||||
150, 200, 7, 10, 0, 12, 12,
|
||||
3000, ['낙양'], null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['최강의 보병입니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1105, self::T_FOOTMAN, '등갑병',
|
||||
100, 225, 7, 5, 0, 13, 10,
|
||||
1000, null, ['남중'], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['등갑을 두른 보병입니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1106, self::T_FOOTMAN, '백이병',
|
||||
175, 175, 7, 5, 0, 13, 11,
|
||||
3000, ['성도'], null, 0,
|
||||
[self::T_ARCHER=>1.1, self::T_CAVALRY=>0.9, self::T_SIEGE=>1.1],
|
||||
[self::T_ARCHER=>0.9, self::T_CAVALRY=>1.1, self::T_SIEGE=>0.9],
|
||||
['정예 보병입니다. 불리한 싸움도 버텨냅니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
|
||||
[
|
||||
1200, self::T_ARCHER, '궁병',
|
||||
100, 100, 7, 10, 0, 10, 10,
|
||||
0, null, null, 0,
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2, self::T_SIEGE=>0.8],
|
||||
['표준적인 궁병입니다.','궁병은 선제사격을 하는 병종입니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1201, self::T_ARCHER, '궁기병',
|
||||
100, 100, 8, 20, 0, 11, 12,
|
||||
1000, null, ['동이'], 0,
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.9, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.1, self::T_SIEGE=>0.8],
|
||||
['말을 타고 잘 피합니다. 특히 다른 궁병보다 보병에게 조금 더 강합니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1202, self::T_ARCHER, '연노병',
|
||||
150, 100, 8, 10, 0, 12, 11,
|
||||
1000, null, ['서촉'], 0,
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2, self::T_SIEGE=>0.8],
|
||||
['화살을 연사합니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1203, self::T_ARCHER, '강궁병',
|
||||
150, 150, 7, 10, 0, 13, 13,
|
||||
3000, ['양양'], null, 0,
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2, self::T_SIEGE=>0.8],
|
||||
['강건한 궁병입니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1204, self::T_ARCHER, '석궁병',
|
||||
200, 100, 7, 10, 0, 13, 13,
|
||||
3000, ['건업'], null, 0,
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2, self::T_SIEGE=>0.8],
|
||||
['강력한 화살을 쏩니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
|
||||
[
|
||||
1300, self::T_CAVALRY, '기병',
|
||||
150, 100, 7, 5, 0, 11, 11,
|
||||
0, null, null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['표준적인 기병입니다.','기병은 공격특화입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1301, self::T_CAVALRY, '백마병',
|
||||
200, 100, 7, 5, 0, 12, 13,
|
||||
1000, null, ['하북'], 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['백마의 위용을 보여줍니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1302, self::T_CAVALRY, '중장기병',
|
||||
150, 150, 7, 5, 0, 13, 12,
|
||||
1000, null, ['서북'], 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['갑주를 두른 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1303, self::T_CAVALRY, '돌격기병',
|
||||
200, 100, 8, 5, 0, 13, 11,
|
||||
2000, ['흉노'], null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['저돌적으로 공격합니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1304, self::T_CAVALRY, '철기병',
|
||||
100, 250, 7, 5, 0, 11, 13,
|
||||
2000, ['강'], null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['철갑을 두른 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1305, self::T_CAVALRY, '수렵기병',
|
||||
150, 100, 8, 15, 0, 12, 12,
|
||||
2000, ['산월'], null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['날쎄고 빠른 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1306, self::T_CAVALRY, '맹수병',
|
||||
250, 175, 6, 0, 0, 16, 16,
|
||||
2000, ['남만'], null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['어느 누구보다 강력합니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1307, self::T_CAVALRY, '호표기병',
|
||||
200, 150, 7, 5, 0, 14, 14,
|
||||
3000, ['허창'], null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['정예 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
|
||||
[
|
||||
1400, self::T_WIZARD, '귀병',
|
||||
80, 80, 7, 5, 0.5, 9, 9,
|
||||
0, null, null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['계략을 사용하는 병종입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1401, self::T_WIZARD, '신귀병',
|
||||
80, 80, 7, 20, 0.6, 10, 10,
|
||||
1000, null, ['초'], 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['신출귀몰한 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1402, self::T_WIZARD, '백귀병',
|
||||
80, 130, 7, 5, 0.6, 9, 11,
|
||||
2000, ['오환'], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['저렴하고 튼튼합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1403, self::T_WIZARD, '흑귀병',
|
||||
130, 80, 7, 5, 0.6, 11, 9,
|
||||
2000, ['왜'], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['저렴하고 강력합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1404, self::T_WIZARD, '악귀병',
|
||||
130, 130, 7, 0, 0.6, 12, 12,
|
||||
3000, ['장안'], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['백병전에도 능숙합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1405, self::T_WIZARD, '남귀병',
|
||||
60, 60, 7, 10, 0.8, 8, 8,
|
||||
1000, null, null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['전투를 포기하고 계략에 몰두합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1406, self::T_WIZARD, '황귀병',
|
||||
110, 110, 7, 0, 0.8, 13, 10,
|
||||
3000, ['낙양'], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['고도로 훈련된 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1407, self::T_WIZARD, '천귀병',
|
||||
80, 130, 7, 15, 0.6, 11, 12,
|
||||
3000, ['성도'], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['갑주를 두른 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1408, self::T_WIZARD, '마귀병',
|
||||
130, 80, 7, 15, 0.6, 12, 11,
|
||||
3000, ['업'], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['날카로운 무기를 가진 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
|
||||
[
|
||||
1500, self::T_SIEGE, '정란',
|
||||
100, 100, 6, 0, 0, 14, 5,
|
||||
0, null, null, 3,
|
||||
[self::T_FOOTMAN=>1.25, self::T_ARCHER=>1.25, self::T_CAVALRY=>1.25, self::T_WIZARD=>1.25, self::T_CASTLE=>1.8, 1106=>1.112],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2, 1106=>1.067],
|
||||
['높은 구조물 위에서 공격합니다. 첫 공격은 성벽을 향합니다.'],
|
||||
['che_성벽부상무효'], ['che_선제사격시도', 'che_선제사격발동'], ['che_성벽선제']
|
||||
],
|
||||
[
|
||||
1501, self::T_SIEGE, '충차',
|
||||
150, 100, 6, 0, 0, 18, 5,
|
||||
1000, null, null, 3,
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>2.4],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2],
|
||||
['엄청난 위력으로 성벽을 부수어버립니다.'],
|
||||
['che_성벽부상무효'], null, null
|
||||
],
|
||||
[
|
||||
1502, self::T_SIEGE, '벽력거',
|
||||
150, 100, 6, 5, 0, 20, 5,
|
||||
3000, ['업'], null, 0,
|
||||
[self::T_FOOTMAN=>1.25, self::T_ARCHER=>1.25, self::T_CAVALRY=>1.25, self::T_WIZARD=>1.25, self::T_CASTLE=>1.8, 1106=>1.112],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2, 1106=>1.067],
|
||||
['상대에게 돌덩이를 날립니다. 첫 공격은 성벽을 향합니다.'],
|
||||
['che_성벽부상무효'], ['che_선제사격시도', 'che_선제사격발동'], ['che_성벽선제']
|
||||
],
|
||||
[
|
||||
1503, self::T_SIEGE, '목우',
|
||||
50, 200, 5, 0, 0, 15, 5,
|
||||
3000, ['성도'], null, 0,
|
||||
[self::T_FOOTMAN=>1, self::T_ARCHER=>1, self::T_CAVALRY=>1, self::T_WIZARD=>1, self::T_CASTLE=>1.8],
|
||||
[self::T_FOOTMAN=>1, self::T_ARCHER=>1, self::T_CAVALRY=>1, self::T_WIZARD=>1, 1106=>1],
|
||||
['상대를 저지하는 특수병기입니다.'],
|
||||
['che_성벽부상무효'], ['che_저지시도', 'che_저지발동'], null
|
||||
]
|
||||
];
|
||||
protected static function getBuildData(): array {
|
||||
return [
|
||||
[
|
||||
1000, self::T_CASTLE, '성벽',
|
||||
100, 100, 7, 0, 0, 99, 9,
|
||||
[new Impossible()],
|
||||
[], // 성벽은 공격할 수 없다.
|
||||
[self::T_FOOTMAN=>1.2],
|
||||
['성벽입니다.','생성할 수 없습니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
|
||||
[
|
||||
1100, self::T_FOOTMAN, '보병',
|
||||
100, 150, 7, 10, 0, 9, 9,
|
||||
[],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['표준적인 보병입니다.','보병은 방어특화이며,','상대가 회피하기 어렵습니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1101, self::T_FOOTMAN, '청주병',
|
||||
100, 200, 7, 10, 0, 10, 11,
|
||||
[new ReqTech(1000), new ReqRegions('중원')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['저렴하고 튼튼합니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1102, self::T_FOOTMAN, '수병',
|
||||
150, 150, 7, 10, 0, 11, 10,
|
||||
[new ReqTech(1000), new ReqRegions('오월')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['저렴하고 강력합니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1103, self::T_FOOTMAN, '자객병',
|
||||
100, 150, 8, 20, 0, 10, 10,
|
||||
[new ReqTech(2000), new ReqCities('저')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['은밀하고 날쌥니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1104, self::T_FOOTMAN, '근위병',
|
||||
150, 200, 7, 10, 0, 12, 12,
|
||||
[new ReqTech(3000), new ReqCities('낙양')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['최강의 보병입니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1105, self::T_FOOTMAN, '등갑병',
|
||||
100, 225, 7, 5, 0, 13, 10,
|
||||
[new ReqTech(1000), new ReqRegions('남중')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['등갑을 두른 보병입니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1106, self::T_FOOTMAN, '백이병',
|
||||
175, 175, 7, 5, 0, 13, 11,
|
||||
[new ReqTech(3000), new ReqCities('성도')],
|
||||
[self::T_ARCHER=>1.1, self::T_CAVALRY=>0.9, self::T_SIEGE=>1.1],
|
||||
[self::T_ARCHER=>0.9, self::T_CAVALRY=>1.1, self::T_SIEGE=>0.9],
|
||||
['정예 보병입니다. 불리한 싸움도 버텨냅니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
|
||||
[
|
||||
1200, self::T_ARCHER, '궁병',
|
||||
100, 100, 7, 10, 0, 10, 10,
|
||||
[],
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2, self::T_SIEGE=>0.8],
|
||||
['표준적인 궁병입니다.','궁병은 선제사격을 하는 병종입니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1201, self::T_ARCHER, '궁기병',
|
||||
100, 100, 8, 20, 0, 11, 12,
|
||||
[new ReqTech(1000), new ReqRegions('동이')],
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.9, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.1, self::T_SIEGE=>0.8],
|
||||
['말을 타고 잘 피합니다. 특히 다른 궁병보다 보병에게 조금 더 강합니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1202, self::T_ARCHER, '연노병',
|
||||
150, 100, 8, 10, 0, 12, 11,
|
||||
[new ReqTech(1000), new ReqRegions('서촉')],
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2, self::T_SIEGE=>0.8],
|
||||
['화살을 연사합니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1203, self::T_ARCHER, '강궁병',
|
||||
150, 150, 7, 10, 0, 13, 13,
|
||||
[new ReqTech(3000), new ReqCities('양양')],
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2, self::T_SIEGE=>0.8],
|
||||
['강건한 궁병입니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1204, self::T_ARCHER, '석궁병',
|
||||
200, 100, 7, 10, 0, 13, 13,
|
||||
[new ReqTech(3000), new ReqCities('건업')],
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2, self::T_SIEGE=>0.8],
|
||||
['강력한 화살을 쏩니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
|
||||
[
|
||||
1300, self::T_CAVALRY, '기병',
|
||||
150, 100, 7, 5, 0, 11, 11,
|
||||
[],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['표준적인 기병입니다.','기병은 공격특화입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1301, self::T_CAVALRY, '백마병',
|
||||
200, 100, 7, 5, 0, 12, 13,
|
||||
[new ReqTech(1000), new ReqRegions('하북')],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['백마의 위용을 보여줍니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1302, self::T_CAVALRY, '중장기병',
|
||||
150, 150, 7, 5, 0, 13, 12,
|
||||
[new ReqTech(1000), new ReqRegions('서북')],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['갑주를 두른 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1303, self::T_CAVALRY, '돌격기병',
|
||||
200, 100, 8, 5, 0, 13, 11,
|
||||
[new ReqTech(2000), new ReqCities('흉노')],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['저돌적으로 공격합니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1304, self::T_CAVALRY, '철기병',
|
||||
100, 250, 7, 5, 0, 11, 13,
|
||||
[new ReqTech(2000), new ReqCities('강')],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['철갑을 두른 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1305, self::T_CAVALRY, '수렵기병',
|
||||
150, 100, 8, 15, 0, 12, 12,
|
||||
[new ReqTech(2000), new ReqCities('산월')],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['날쎄고 빠른 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1306, self::T_CAVALRY, '맹수병',
|
||||
250, 175, 6, 0, 0, 16, 16,
|
||||
[new ReqTech(2000), new ReqCities('남만')],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['어느 누구보다 강력합니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1307, self::T_CAVALRY, '호표기병',
|
||||
200, 150, 7, 5, 0, 14, 14,
|
||||
[new ReqTech(3000), new ReqCities('허창')],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['정예 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
|
||||
[
|
||||
1400, self::T_WIZARD, '귀병',
|
||||
80, 80, 7, 5, 0.5, 9, 9,
|
||||
[],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['계략을 사용하는 병종입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1401, self::T_WIZARD, '신귀병',
|
||||
80, 80, 7, 20, 0.6, 10, 10,
|
||||
[new ReqTech(1000), new ReqRegions('초')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['신출귀몰한 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1402, self::T_WIZARD, '백귀병',
|
||||
80, 130, 7, 5, 0.6, 9, 11,
|
||||
[new ReqTech(2000), new ReqCities('오환')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['저렴하고 튼튼합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1403, self::T_WIZARD, '흑귀병',
|
||||
130, 80, 7, 5, 0.6, 11, 9,
|
||||
[new ReqTech(2000), new ReqCities('왜')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['저렴하고 강력합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1404, self::T_WIZARD, '악귀병',
|
||||
130, 130, 7, 0, 0.6, 12, 12,
|
||||
[new ReqTech(3000), new ReqCities('장안')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['백병전에도 능숙합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1405, self::T_WIZARD, '남귀병',
|
||||
60, 60, 7, 10, 0.8, 8, 8,
|
||||
[new ReqTech(1000)],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['전투를 포기하고 계략에 몰두합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1406, self::T_WIZARD, '황귀병',
|
||||
110, 110, 7, 0, 0.8, 13, 10,
|
||||
[new ReqTech(3000), new ReqCities('낙양')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['고도로 훈련된 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1407, self::T_WIZARD, '천귀병',
|
||||
80, 130, 7, 15, 0.6, 11, 12,
|
||||
[new ReqTech(3000), new ReqCities('성도')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['갑주를 두른 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1408, self::T_WIZARD, '마귀병',
|
||||
130, 80, 7, 15, 0.6, 12, 11,
|
||||
[new ReqTech(3000), new ReqCities('업')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['날카로운 무기를 가진 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
|
||||
[
|
||||
1500, self::T_SIEGE, '정란',
|
||||
100, 100, 6, 0, 0, 14, 5,
|
||||
[new ReqMinRelYear(3)],
|
||||
[self::T_FOOTMAN=>1.25, self::T_ARCHER=>1.25, self::T_CAVALRY=>1.25, self::T_WIZARD=>1.25, self::T_CASTLE=>1.8, 1106=>1.112],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2, 1106=>1.067],
|
||||
['높은 구조물 위에서 공격합니다. 첫 공격은 성벽을 향합니다.'],
|
||||
['che_성벽부상무효'], ['che_선제사격시도', 'che_선제사격발동'], ['che_성벽선제']
|
||||
],
|
||||
[
|
||||
1501, self::T_SIEGE, '충차',
|
||||
150, 100, 6, 0, 0, 18, 5,
|
||||
[new ReqTech(1000), new ReqMinRelYear(3)],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>2.4],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2],
|
||||
['엄청난 위력으로 성벽을 부수어버립니다.'],
|
||||
['che_성벽부상무효'], null, null
|
||||
],
|
||||
[
|
||||
1502, self::T_SIEGE, '벽력거',
|
||||
150, 100, 6, 5, 0, 20, 5,
|
||||
[new ReqTech(3000), new ReqCities('업')],
|
||||
[self::T_FOOTMAN=>1.25, self::T_ARCHER=>1.25, self::T_CAVALRY=>1.25, self::T_WIZARD=>1.25, self::T_CASTLE=>1.8, 1106=>1.112],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2, 1106=>1.067],
|
||||
['상대에게 돌덩이를 날립니다. 첫 공격은 성벽을 향합니다.'],
|
||||
['che_성벽부상무효'], ['che_선제사격시도', 'che_선제사격발동'], ['che_성벽선제']
|
||||
],
|
||||
[
|
||||
1503, self::T_SIEGE, '목우',
|
||||
50, 200, 5, 0, 0, 15, 5,
|
||||
[new ReqTech(3000), new ReqCities('성도')],
|
||||
[self::T_FOOTMAN=>1, self::T_ARCHER=>1, self::T_CAVALRY=>1, self::T_WIZARD=>1, self::T_CASTLE=>1.8],
|
||||
[self::T_FOOTMAN=>1, self::T_ARCHER=>1, self::T_CAVALRY=>1, self::T_WIZARD=>1, 1106=>1],
|
||||
['상대를 저지하는 특수병기입니다.'],
|
||||
['che_성벽부상무효'], ['che_저지시도', 'che_저지발동'], null
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
public static function addGameUnit(GameUnitDetail $unitType){
|
||||
static::_generate();
|
||||
@@ -357,22 +365,6 @@ class GameUnitConstBase{
|
||||
static::$constType[$unitType->armType] = [];
|
||||
}
|
||||
static::$constType[$unitType->armType][] = $unitType;
|
||||
|
||||
foreach($unitType->reqCities as $reqCity){
|
||||
if(!key_exists($reqCity, static::$constCity)){
|
||||
static::$constCity[$reqCity] = [];
|
||||
}
|
||||
static::$constCity[$reqCity][] = $unitType;
|
||||
}
|
||||
|
||||
if($unitType->reqRegions){
|
||||
foreach($unitType->reqRegions as $reqRegion){
|
||||
if(!key_exists($reqRegion, static::$constRegion)){
|
||||
static::$constRegion[$reqRegion] = [];
|
||||
}
|
||||
static::$constRegion[$reqRegion][] = $unitType;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -400,22 +392,6 @@ class GameUnitConstBase{
|
||||
return static::$constName[$name]??null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \sammo\GameUnitDetail[]
|
||||
*/
|
||||
public static function byCity(int $city): array{
|
||||
static::_generate();
|
||||
return static::$constCity[$city]??[];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \sammo\GameUnitDetail[]
|
||||
*/
|
||||
public static function byRegion(int $region): array{
|
||||
static::_generate();
|
||||
return static::$constRegion[$region]??[];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return \sammo\GameUnitDetail[]
|
||||
@@ -435,17 +411,17 @@ class GameUnitConstBase{
|
||||
|
||||
protected static function _generate(){
|
||||
|
||||
if(static::$constID || static::$constName || static::$constCity || static::$constRegion || static::$constType){
|
||||
if(static::$constID || static::$constName || static::$constType){
|
||||
return;
|
||||
}
|
||||
|
||||
$constID = [];
|
||||
$constName = [];
|
||||
$constCity = [];
|
||||
$constRegion = [];
|
||||
$constType = [];
|
||||
|
||||
foreach(static::$_buildData as $rawUnit){
|
||||
$buildData = static::getBuildData();
|
||||
|
||||
foreach($buildData as $rawUnit){
|
||||
[
|
||||
$id,
|
||||
$armType,
|
||||
@@ -457,10 +433,7 @@ class GameUnitConstBase{
|
||||
$magicCoef,
|
||||
$cost,
|
||||
$rice,
|
||||
$reqTech,
|
||||
$reqCities,
|
||||
$reqRegions,
|
||||
$reqYear,
|
||||
$reqConstraints,
|
||||
$attackCoef,
|
||||
$defenceCoef,
|
||||
$info,
|
||||
@@ -469,26 +442,9 @@ class GameUnitConstBase{
|
||||
$iActionList,
|
||||
] = $rawUnit;
|
||||
|
||||
if($reqYear > 0){
|
||||
$info[] = "{$reqYear}년 경과 후 사용 가능";
|
||||
}
|
||||
|
||||
if($reqTech > 0){
|
||||
$info[] = "기술력 {$reqTech} 이상 필요";
|
||||
}
|
||||
|
||||
if($reqCities !== null){
|
||||
$reqCities = array_map(function($reqCity) use (&$info){
|
||||
$info[] = "{$reqCity} 소유시 가능";
|
||||
return CityConst::byName($reqCity)->id;
|
||||
}, $reqCities);
|
||||
}
|
||||
|
||||
if($reqRegions !== null){
|
||||
$reqRegions = array_map(function($reqRegion) use (&$info){
|
||||
$info[] = "{$reqRegion} 지역 소유시 가능";
|
||||
return CityConst::$regionMap[$reqRegion];
|
||||
}, $reqRegions);
|
||||
foreach($reqConstraints as $constraint){
|
||||
/** @var \sammo\GameUnitConstraint\BaseGameUnitConstraint $constraint */
|
||||
$info[] = $constraint->getInfo();
|
||||
}
|
||||
|
||||
$unit = new GameUnitDetail(
|
||||
@@ -502,16 +458,13 @@ class GameUnitConstBase{
|
||||
$magicCoef,
|
||||
$cost,
|
||||
$rice,
|
||||
$reqTech,
|
||||
$reqCities,
|
||||
$reqRegions,
|
||||
$reqYear,
|
||||
$reqConstraints,
|
||||
$attackCoef,
|
||||
$defenceCoef,
|
||||
$info,
|
||||
$initSkillTrigger,
|
||||
$phaseSkillTrigger,
|
||||
$iActionList,
|
||||
$iActionList
|
||||
);
|
||||
|
||||
$constID[$id] = $unit;
|
||||
@@ -521,31 +474,10 @@ class GameUnitConstBase{
|
||||
}
|
||||
$constType[$armType][$id] = $unit;
|
||||
|
||||
if($unit->reqCities){
|
||||
foreach($unit->reqCities as $reqCity){
|
||||
if(!key_exists($reqCity, $constCity)){
|
||||
$constCity[$reqCity] = [];
|
||||
}
|
||||
$constCity[$reqCity][$id] = $unit;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if($unit->reqRegions){
|
||||
foreach($unit->reqRegions as $reqRegion){
|
||||
if(!key_exists($reqRegion, $constRegion)){
|
||||
$constRegion[$reqRegion] = [];
|
||||
}
|
||||
$constRegion[$reqRegion][$id] = $unit;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static::$constID = $constID;
|
||||
static::$constName = $constName;
|
||||
static::$constCity = $constCity;
|
||||
static::$constRegion = $constRegion;
|
||||
static::$constType = $constType;
|
||||
|
||||
static::_generateOptional();
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace sammo\GameUnitConstraint;
|
||||
|
||||
use sammo\General;
|
||||
|
||||
abstract class BaseGameUnitConstraint {
|
||||
public abstract function test(General $general, array $ownCities, array $ownRegions, int $relativeYear, int $tech, array $nationAux): bool;
|
||||
|
||||
public abstract function getInfo(): string;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace sammo\GameUnitConstraint;
|
||||
|
||||
use sammo\General;
|
||||
|
||||
class Impossible extends BaseGameUnitConstraint {
|
||||
|
||||
public function test(General $general, array $ownCities, array $ownRegions, int $relativeYear, int $tech, array $nationAux): bool
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public function getInfo(): string
|
||||
{
|
||||
return "불가능";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace sammo\GameUnitConstraint;
|
||||
|
||||
use sammo\CityConst;
|
||||
use sammo\General;
|
||||
|
||||
class ReqCities extends BaseGameUnitConstraint
|
||||
{
|
||||
|
||||
public readonly array $reqCities;
|
||||
public function __construct(...$reqCities)
|
||||
{
|
||||
$dstReqCities = [];
|
||||
if (count($reqCities) == 0) {
|
||||
$this->reqCities = [];
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($reqCities as $city) {
|
||||
$dstReqCities[CityConst::byName($city)->id] = $city;
|
||||
}
|
||||
$this->reqCities = $dstReqCities;
|
||||
}
|
||||
|
||||
public function test(General $general, array $ownCities, array $ownRegions, int $relativeYear, int $tech, array $nationAux): bool
|
||||
{
|
||||
foreach ($this->reqCities as $cityID => $cityName) {
|
||||
if (key_exists($cityID, $ownCities)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function getInfo(): string
|
||||
{
|
||||
$cityNameText = implode(', ', $this->reqCities);
|
||||
return "{$cityNameText} 소유시 가능";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace sammo\GameUnitConstraint;
|
||||
|
||||
use sammo\General;
|
||||
|
||||
class ReqMinRelYear extends BaseGameUnitConstraint {
|
||||
|
||||
public function __construct(public readonly int $reqMinRelYear)
|
||||
{
|
||||
}
|
||||
|
||||
public function test(General $general, array $ownCities, array $ownRegions, int $relativeYear, int $tech, array $nationAux): bool
|
||||
{
|
||||
return $relativeYear >= $this->reqMinRelYear;
|
||||
}
|
||||
|
||||
public function getInfo(): string
|
||||
{
|
||||
return "{$this->reqMinRelYear}년 경과 후 사용 가능";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace sammo\GameUnitConstraint;
|
||||
|
||||
use sammo\CityConst;
|
||||
use sammo\General;
|
||||
|
||||
class ReqRegions extends BaseGameUnitConstraint
|
||||
{
|
||||
|
||||
public readonly array $reqRegions;
|
||||
public function __construct(...$reqRegions)
|
||||
{
|
||||
$dstReqRegions = [];
|
||||
if (count($reqRegions) == 0) {
|
||||
$this->reqRegions = [];
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($reqRegions as $region) {
|
||||
$dstReqRegions[CityConst::$regionMap[$region]] = $region;
|
||||
}
|
||||
|
||||
$this->reqRegions = $dstReqRegions;
|
||||
}
|
||||
|
||||
public function test(General $general, array $ownCities, array $ownRegions, int $relativeYear, int $tech, array $nationAux): bool
|
||||
{
|
||||
foreach ($this->reqRegions as $regionID => $regionText) {
|
||||
if (key_exists($regionID, $ownRegions)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function getInfo(): string
|
||||
{
|
||||
$regionNameText = implode(', ', $this->reqRegions);
|
||||
return "{$regionNameText} 지역 소유시 가능";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace sammo\GameUnitConstraint;
|
||||
|
||||
use sammo\General;
|
||||
use sammo\KVStorage;
|
||||
|
||||
class ReqTech extends BaseGameUnitConstraint {
|
||||
|
||||
public function __construct(public readonly int $reqTech)
|
||||
{
|
||||
}
|
||||
|
||||
public function test(General $general, array $ownCities, array $ownRegions, int $relativeYear, int $tech, array $nationAux): bool
|
||||
{
|
||||
if ($tech < $this->reqTech) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getInfo(): string
|
||||
{
|
||||
return "기술력 {$this->reqTech} 이상 필요";
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
namespace sammo;
|
||||
|
||||
use sammo\GameUnitConstraint\BaseGameUnitConstraint;
|
||||
|
||||
class GameUnitDetail implements iAction
|
||||
{
|
||||
use DefaultAction;
|
||||
@@ -16,17 +18,14 @@ class GameUnitDetail implements iAction
|
||||
public $magicCoef;
|
||||
public $cost;
|
||||
public $rice;
|
||||
public $reqTech;
|
||||
public $reqCities;
|
||||
public $reqRegions;
|
||||
public $reqYear;
|
||||
public $attackCoef;
|
||||
public $defenceCoef;
|
||||
public $info;
|
||||
public $initSkillTrigger;
|
||||
public $phaseSkillTrigger;
|
||||
/** @var iAction[]|null iActionList */
|
||||
public $iActionList;
|
||||
public array $reqConstraints;
|
||||
|
||||
|
||||
public function __construct(
|
||||
int $id,
|
||||
@@ -39,13 +38,10 @@ class GameUnitDetail implements iAction
|
||||
float $magicCoef,
|
||||
int $cost,
|
||||
int $rice,
|
||||
int $reqTech,
|
||||
?array $reqCities,
|
||||
?array $reqRegions,
|
||||
int $reqYear,
|
||||
array $reqConstraints,
|
||||
array $attackCoef,
|
||||
array $defenceCoef,
|
||||
array $info,
|
||||
public readonly array $info,
|
||||
?array $initSkillTrigger,
|
||||
?array $phaseSkillTrigger,
|
||||
?array $iActionList,
|
||||
@@ -60,13 +56,13 @@ class GameUnitDetail implements iAction
|
||||
$this->magicCoef = $magicCoef;
|
||||
$this->cost = $cost;
|
||||
$this->rice = $rice;
|
||||
$this->reqTech = $reqTech;
|
||||
$this->reqCities = $reqCities;
|
||||
$this->reqRegions = $reqRegions;
|
||||
$this->reqYear = $reqYear;
|
||||
$this->reqConstraints = [];
|
||||
foreach($reqConstraints as $constraint){
|
||||
$className = Util::getClassNameFromObj($constraint);
|
||||
$this->reqConstraints[$className] = $constraint;
|
||||
}
|
||||
$this->attackCoef = $attackCoef;
|
||||
$this->defenceCoef = $defenceCoef;
|
||||
$this->info = $info;
|
||||
$this->initSkillTrigger = $initSkillTrigger;
|
||||
$this->phaseSkillTrigger = $phaseSkillTrigger;
|
||||
$this->iActionList = [];
|
||||
@@ -193,41 +189,13 @@ class GameUnitDetail implements iAction
|
||||
return $defaultWar;
|
||||
}
|
||||
|
||||
public function isValid($ownCities, $ownRegions, $relativeYear, $tech)
|
||||
public function isValid(General $general, $ownCities, $ownRegions, $relativeYear, $tech, $nationAux = [])
|
||||
{
|
||||
//음수 없음
|
||||
$relativeYear = max(0, $relativeYear);
|
||||
|
||||
if ($relativeYear < $this->reqYear) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($tech < $this->reqTech) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->reqCities !== null) {
|
||||
$valid = false;
|
||||
foreach ($this->reqCities as $reqCity) {
|
||||
if (\key_exists($reqCity, $ownCities)) {
|
||||
$valid = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$valid) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->reqRegions !== null) {
|
||||
$valid = false;
|
||||
foreach ($this->reqRegions as $reqRegion) {
|
||||
if (\key_exists($reqRegion, $ownRegions)) {
|
||||
$valid = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!$valid) {
|
||||
foreach($this->reqConstraints as $constraint){
|
||||
if(!$constraint->test($general, $ownCities, $ownRegions, $relativeYear, $tech, $nationAux)){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
+16
-9
@@ -2558,8 +2558,11 @@ class GeneralAI
|
||||
$cities = [];
|
||||
$regions = [];
|
||||
|
||||
foreach ($db->queryAllLists('SELECT city, region FROM city WHERE nation = %i', $nationID) as [$cityID, $regionID]) {
|
||||
$cities[$cityID] = true;
|
||||
foreach ($db->queryAllLists('SELECT city, region, secu, level FROM city WHERE nation = %i', $nationID) as [$cityID, $regionID, $secu, $level]) {
|
||||
$cities[$cityID] = [
|
||||
'secu' => $secu,
|
||||
'level' => $level,
|
||||
];
|
||||
$regions[$regionID] = true;
|
||||
}
|
||||
$relYear = Util::valueFit($env['year'] - $env['startyear'], 0);
|
||||
@@ -2567,7 +2570,7 @@ class GeneralAI
|
||||
|
||||
$types = [];
|
||||
foreach (GameUnitConst::byType($armType) as $crewtype) {
|
||||
if ($crewtype->isValid($cities, $regions, $relYear, $tech)) {
|
||||
if ($crewtype->isValid($general, $cities, $regions, $relYear, $tech)) {
|
||||
$score = $crewtype->pickScore($tech);
|
||||
$types[$crewtype->id] = $score;
|
||||
}
|
||||
@@ -2581,12 +2584,16 @@ class GeneralAI
|
||||
|
||||
if ($this->generalPolicy->can고급병종) {
|
||||
$currCrewType = $general->getCrewTypeObj();
|
||||
if ($currCrewType->isValid($cities, $regions, $relYear, $tech)) {
|
||||
if ($currCrewType->reqTech >= 2000) {
|
||||
$type = $currCrewType->id;
|
||||
} else if ($currCrewType->armType != $armType && $currCrewType->reqTech >= 1000) {
|
||||
//굳이 뽑은 이유가 있겠지
|
||||
$type = $currCrewType->id;
|
||||
if ($currCrewType->isValid($general, $cities, $regions, $relYear, $tech)) {
|
||||
$reqTechObj = $currCrewType->reqConstraints['reqTech'] ?? null;
|
||||
if($reqTechObj){
|
||||
$reqTech = $reqTechObj->getValue($tech);
|
||||
if ($reqTech >= 2000) {
|
||||
$type = $currCrewType->id;
|
||||
} else if ($currCrewType->armType != $armType && $reqTech >= 1000) {
|
||||
//굳이 뽑은 이유가 있겠지
|
||||
$type = $currCrewType->id;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+79
-74
@@ -1,87 +1,92 @@
|
||||
<?php
|
||||
namespace sammo;
|
||||
|
||||
use sammo\GameUnitConstraint\ReqMinRelYear;
|
||||
use sammo\GameUnitConstraint\ReqTech;
|
||||
|
||||
class GameUnitConst extends GameUnitConstBase
|
||||
{
|
||||
const DEFAULT_CREWTYPE = 1100;
|
||||
|
||||
protected static $_buildData = [
|
||||
[
|
||||
1000, self::T_CASTLE, '성벽',
|
||||
100, 100, 7, 0, 0, 99, 9,
|
||||
999999, null, null, 999999,
|
||||
[],//성벽은 공격할 수 없다.
|
||||
[self::T_FOOTMAN=>1.2],
|
||||
['성벽입니다.','생성할 수 없습니다.'],
|
||||
null, null, null
|
||||
],
|
||||
protected static function getBuildData(): array {
|
||||
return [
|
||||
[
|
||||
1000, self::T_CASTLE, '성벽',
|
||||
100, 100, 7, 0, 0, 99, 9,
|
||||
[],
|
||||
[], // 성벽은 공격할 수 없다.
|
||||
[self::T_FOOTMAN=>1.2],
|
||||
['성벽입니다.','생성할 수 없습니다.'],
|
||||
null, null, null
|
||||
],
|
||||
|
||||
[
|
||||
1100, self::T_FOOTMAN, '보병',
|
||||
100, 150, 7, 10, 0, 9, 9,
|
||||
0, null, null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['표준적인 보병입니다.','보병은 방어특화이며,','상대가 회피하기 어렵습니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1100, self::T_FOOTMAN, '보병',
|
||||
100, 150, 7, 10, 0, 9, 9,
|
||||
[],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['표준적인 보병입니다.','보병은 방어특화이며,','상대가 회피하기 어렵습니다.'],
|
||||
null, null, null
|
||||
],
|
||||
|
||||
[
|
||||
1200, self::T_ARCHER, '궁병',
|
||||
100, 100, 7, 20, 0, 10, 10,
|
||||
0, null, null, 0,
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2, self::T_SIEGE=>0.8],
|
||||
['표준적인 궁병입니다.','궁병은 회피특화입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1200, self::T_ARCHER, '궁병',
|
||||
100, 100, 7, 20, 0, 10, 10,
|
||||
[],
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2, self::T_SIEGE=>0.8],
|
||||
['표준적인 궁병입니다.','궁병은 회피특화입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
|
||||
[
|
||||
1300, self::T_CAVALRY, '기병',
|
||||
150, 100, 7, 5, 0, 11, 11,
|
||||
0, null, null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['표준적인 기병입니다.','기병은 공격특화입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1300, self::T_CAVALRY, '기병',
|
||||
150, 100, 7, 5, 0, 11, 11,
|
||||
[],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['표준적인 기병입니다.','기병은 공격특화입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
|
||||
[
|
||||
1400, self::T_WIZARD, '귀병',
|
||||
80, 80, 7, 5, 0.5, 9, 9,
|
||||
0, null, null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['계략을 사용하는 병종입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1405, self::T_WIZARD, '남귀병',
|
||||
60, 60, 7, 10, 0.8, 8, 8,
|
||||
1000, null, null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['전투를 포기하고 계략에 몰두합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1400, self::T_WIZARD, '귀병',
|
||||
80, 80, 7, 5, 0.5, 9, 9,
|
||||
[],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['계략을 사용하는 병종입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1405, self::T_WIZARD, '남귀병',
|
||||
60, 60, 7, 10, 0.8, 8, 8,
|
||||
[],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['전투를 포기하고 계략에 몰두합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
|
||||
[
|
||||
1500, self::T_SIEGE, '정란',
|
||||
100, 100, 6, 0, 0, 15, 5,
|
||||
0, null, null, 3,
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>1.8],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2],
|
||||
['높은 구조물 위에서 공격합니다.'],
|
||||
['che_성벽부상무효'], null, ['che_성벽선제']
|
||||
],
|
||||
[
|
||||
1501, self::T_SIEGE, '충차',
|
||||
150, 100, 6, 0, 0, 20, 5,
|
||||
1000, null, null, 3,
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>2.4],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2],
|
||||
['엄청난 위력으로 성벽을 부수어버립니다.'],
|
||||
['che_성벽부상무효'], null, null
|
||||
]
|
||||
];
|
||||
[
|
||||
1500, self::T_SIEGE, '정란',
|
||||
100, 100, 6, 0, 0, 15, 5,
|
||||
[new ReqMinRelYear(3)],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>1.8],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2],
|
||||
['높은 구조물 위에서 공격합니다.'],
|
||||
['che_성벽부상무효'], null, ['che_성벽선제']
|
||||
],
|
||||
[
|
||||
1501, self::T_SIEGE, '충차',
|
||||
150, 100, 6, 0, 0, 20, 5,
|
||||
[new ReqTech(1000), new ReqMinRelYear(3)],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>2.4],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2],
|
||||
['엄청난 위력으로 성벽을 부수어버립니다.'],
|
||||
['che_성벽부상무효'], null, null
|
||||
]
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -1,310 +1,318 @@
|
||||
<?php
|
||||
namespace sammo;
|
||||
|
||||
use sammo\GameUnitConstraint\Impossible;
|
||||
use sammo\GameUnitConstraint\ReqCities;
|
||||
use sammo\GameUnitConstraint\ReqMinRelYear;
|
||||
use sammo\GameUnitConstraint\ReqRegions;
|
||||
use sammo\GameUnitConstraint\ReqTech;
|
||||
|
||||
class GameUnitConst extends GameUnitConstBase
|
||||
{
|
||||
protected static $_buildData = [
|
||||
[
|
||||
1000, self::T_CASTLE, '성벽',
|
||||
100, 100, 7, 0, 0, 99, 9,
|
||||
999999, null, null, 999999,
|
||||
[],//성벽은 공격할 수 없다.
|
||||
[self::T_FOOTMAN=>1.2],
|
||||
['성벽입니다.','생성할 수 없습니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
protected static function getBuildData(): array {
|
||||
return [
|
||||
[
|
||||
1000, self::T_CASTLE, '성벽',
|
||||
100, 100, 7, 0, 0, 99, 9,
|
||||
[new Impossible()],
|
||||
[], // 성벽은 공격할 수 없다.
|
||||
[self::T_FOOTMAN=>1.2],
|
||||
['성벽입니다.','생성할 수 없습니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
|
||||
[
|
||||
1100, self::T_FOOTMAN, '보병',
|
||||
100, 150, 7, 10, 0, 9, 9,
|
||||
0, null, null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['표준적인 보병입니다.','보병은 방어특화이며,','상대가 회피하기 어렵습니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1101, self::T_FOOTMAN, '청주병',
|
||||
100, 200, 7, 10, 0, 10, 11,
|
||||
1000, null, ['중원'], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['저렴하고 튼튼합니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1102, self::T_FOOTMAN, '수병',
|
||||
150, 150, 7, 10, 0, 11, 10,
|
||||
1000, null, ['오월'], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['저렴하고 강력합니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1103, self::T_FOOTMAN, '자객병',
|
||||
100, 150, 8, 20, 0, 10, 10,
|
||||
2000, ['저'], null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['은밀하고 날쌥니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1104, self::T_FOOTMAN, '근위병',
|
||||
150, 200, 7, 10, 0, 12, 12,
|
||||
3000, ['낙양'], null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['최강의 보병입니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1105, self::T_FOOTMAN, '등갑병',
|
||||
100, 225, 7, 5, 0, 13, 10,
|
||||
1000, null, ['남중'], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['등갑을 두른 보병입니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1106, self::T_FOOTMAN, '백이병',
|
||||
175, 175, 7, 5, 0, 13, 11,
|
||||
3000, ['성도'], null, 0,
|
||||
[self::T_ARCHER=>1.1, self::T_CAVALRY=>0.9, self::T_SIEGE=>1.1],
|
||||
[self::T_ARCHER=>0.9, self::T_CAVALRY=>1.1, self::T_SIEGE=>0.9],
|
||||
['정예 보병입니다. 불리한 싸움도 버텨냅니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1100, self::T_FOOTMAN, '보병',
|
||||
100, 150, 7, 10, 0, 9, 9,
|
||||
[],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['표준적인 보병입니다.','보병은 방어특화이며,','상대가 회피하기 어렵습니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1101, self::T_FOOTMAN, '청주병',
|
||||
100, 200, 7, 10, 0, 10, 11,
|
||||
[new ReqTech(1000), new ReqRegions('중원')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['저렴하고 튼튼합니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1102, self::T_FOOTMAN, '수병',
|
||||
150, 150, 7, 10, 0, 11, 10,
|
||||
[new ReqTech(1000), new ReqRegions('오월')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['저렴하고 강력합니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1103, self::T_FOOTMAN, '자객병',
|
||||
100, 150, 8, 20, 0, 10, 10,
|
||||
[new ReqTech(2000), new ReqCities('저')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['은밀하고 날쌥니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1104, self::T_FOOTMAN, '근위병',
|
||||
150, 200, 7, 10, 0, 12, 12,
|
||||
[new ReqTech(3000), new ReqCities('낙양')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['최강의 보병입니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1105, self::T_FOOTMAN, '등갑병',
|
||||
100, 225, 7, 5, 0, 13, 10,
|
||||
[new ReqTech(1000), new ReqRegions('남중')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8],
|
||||
['등갑을 두른 보병입니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1106, self::T_FOOTMAN, '백이병',
|
||||
175, 175, 7, 5, 0, 13, 11,
|
||||
[new ReqTech(3000), new ReqCities('성도')],
|
||||
[self::T_ARCHER=>1.1, self::T_CAVALRY=>0.9, self::T_SIEGE=>1.1],
|
||||
[self::T_ARCHER=>0.9, self::T_CAVALRY=>1.1, self::T_SIEGE=>0.9],
|
||||
['정예 보병입니다. 불리한 싸움도 버텨냅니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
|
||||
[
|
||||
1200, self::T_ARCHER, '궁병',
|
||||
100, 100, 7, 10, 0, 10, 10,
|
||||
0, null, null, 0,
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2, self::T_SIEGE=>0.8],
|
||||
['표준적인 궁병입니다.','궁병은 선제사격을 하는 병종입니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1201, self::T_ARCHER, '궁기병',
|
||||
100, 100, 8, 20, 0, 11, 12,
|
||||
1000, null, ['동이'], 0,
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.9, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.1, self::T_SIEGE=>0.8],
|
||||
['말을 타고 잘 피합니다. 특히 다른 궁병보다 보병에게 조금 더 강합니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1202, self::T_ARCHER, '연노병',
|
||||
150, 100, 8, 10, 0, 12, 11,
|
||||
1000, null, ['서촉'], 0,
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2, self::T_SIEGE=>0.8],
|
||||
['화살을 연사합니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1203, self::T_ARCHER, '강궁병',
|
||||
150, 150, 7, 10, 0, 13, 13,
|
||||
3000, ['양양'], null, 0,
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2, self::T_SIEGE=>0.8],
|
||||
['강건한 궁병입니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1204, self::T_ARCHER, '석궁병',
|
||||
200, 100, 7, 10, 0, 13, 13,
|
||||
3000, ['건업'], null, 0,
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2, self::T_SIEGE=>0.8],
|
||||
['강력한 화살을 쏩니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1200, self::T_ARCHER, '궁병',
|
||||
100, 100, 7, 10, 0, 10, 10,
|
||||
[],
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2, self::T_SIEGE=>0.8],
|
||||
['표준적인 궁병입니다.','궁병은 선제사격을 하는 병종입니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1201, self::T_ARCHER, '궁기병',
|
||||
100, 100, 8, 20, 0, 11, 12,
|
||||
[new ReqTech(1000), new ReqRegions('동이')],
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.9, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.1, self::T_SIEGE=>0.8],
|
||||
['말을 타고 잘 피합니다. 특히 다른 궁병보다 보병에게 조금 더 강합니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1202, self::T_ARCHER, '연노병',
|
||||
150, 100, 8, 10, 0, 12, 11,
|
||||
[new ReqTech(1000), new ReqRegions('서촉')],
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2, self::T_SIEGE=>0.8],
|
||||
['화살을 연사합니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1203, self::T_ARCHER, '강궁병',
|
||||
150, 150, 7, 10, 0, 13, 13,
|
||||
[new ReqTech(3000), new ReqCities('양양')],
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2, self::T_SIEGE=>0.8],
|
||||
['강건한 궁병입니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1204, self::T_ARCHER, '석궁병',
|
||||
200, 100, 7, 10, 0, 13, 13,
|
||||
[new ReqTech(3000), new ReqCities('건업')],
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2, self::T_SIEGE=>0.8],
|
||||
['강력한 화살을 쏩니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
|
||||
[
|
||||
1300, self::T_CAVALRY, '기병',
|
||||
150, 100, 7, 5, 0, 11, 11,
|
||||
0, null, null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['표준적인 기병입니다.','기병은 공격특화입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1301, self::T_CAVALRY, '백마병',
|
||||
200, 100, 7, 5, 0, 12, 13,
|
||||
1000, null, ['하북'], 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['백마의 위용을 보여줍니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1302, self::T_CAVALRY, '중장기병',
|
||||
150, 150, 7, 5, 0, 13, 12,
|
||||
1000, null, ['서북'], 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['갑주를 두른 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1303, self::T_CAVALRY, '돌격기병',
|
||||
200, 100, 8, 5, 0, 13, 11,
|
||||
2000, ['흉노'], null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['저돌적으로 공격합니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1304, self::T_CAVALRY, '철기병',
|
||||
100, 200, 7, 5, 0, 11, 13,
|
||||
2000, ['강'], null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['철갑을 두른 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1305, self::T_CAVALRY, '수렵기병',
|
||||
150, 100, 8, 15, 0, 12, 12,
|
||||
2000, ['산월'], null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['날쎄고 빠른 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1306, self::T_CAVALRY, '맹수병',
|
||||
250, 175, 6, 0, 0, 16, 16,
|
||||
2000, ['남만'], null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['어느 누구보다 강력합니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1307, self::T_CAVALRY, '호표기병',
|
||||
200, 150, 7, 5, 0, 14, 14,
|
||||
3000, ['허창'], null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['정예 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1300, self::T_CAVALRY, '기병',
|
||||
150, 100, 7, 5, 0, 11, 11,
|
||||
[],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['표준적인 기병입니다.','기병은 공격특화입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1301, self::T_CAVALRY, '백마병',
|
||||
200, 100, 7, 5, 0, 12, 13,
|
||||
[new ReqTech(1000), new ReqRegions('하북')],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['백마의 위용을 보여줍니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1302, self::T_CAVALRY, '중장기병',
|
||||
150, 150, 7, 5, 0, 13, 12,
|
||||
[new ReqTech(1000), new ReqRegions('서북')],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['갑주를 두른 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1303, self::T_CAVALRY, '돌격기병',
|
||||
200, 100, 8, 5, 0, 13, 11,
|
||||
[new ReqTech(2000), new ReqCities('흉노')],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['저돌적으로 공격합니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1304, self::T_CAVALRY, '철기병',
|
||||
100, 200, 7, 5, 0, 11, 13,
|
||||
[new ReqTech(2000), new ReqCities('강')],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['철갑을 두른 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1305, self::T_CAVALRY, '수렵기병',
|
||||
150, 100, 8, 15, 0, 12, 12,
|
||||
[new ReqTech(2000), new ReqCities('산월')],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['날쎄고 빠른 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1306, self::T_CAVALRY, '맹수병',
|
||||
250, 175, 6, 0, 0, 16, 16,
|
||||
[new ReqTech(2000), new ReqCities('남만')],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['어느 누구보다 강력합니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1307, self::T_CAVALRY, '호표기병',
|
||||
200, 150, 7, 5, 0, 14, 14,
|
||||
[new ReqTech(3000), new ReqCities('허창')],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8],
|
||||
['정예 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
|
||||
[
|
||||
1400, self::T_WIZARD, '귀병',
|
||||
80, 80, 7, 5, 0.5, 9, 9,
|
||||
0, null, null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['계략을 사용하는 병종입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1401, self::T_WIZARD, '신귀병',
|
||||
80, 80, 7, 20, 0.6, 10, 10,
|
||||
1000, null, ['초'], 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['신출귀몰한 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1402, self::T_WIZARD, '백귀병',
|
||||
80, 130, 7, 5, 0.6, 9, 11,
|
||||
2000, ['오환'], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['저렴하고 튼튼합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1403, self::T_WIZARD, '흑귀병',
|
||||
130, 80, 7, 5, 0.6, 11, 9,
|
||||
2000, ['왜'], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['저렴하고 강력합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1404, self::T_WIZARD, '악귀병',
|
||||
130, 130, 7, 0, 0.6, 12, 12,
|
||||
3000, ['장안'], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['백병전에도 능숙합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1405, self::T_WIZARD, '남귀병',
|
||||
60, 60, 7, 10, 0.8, 8, 8,
|
||||
1000, null, null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['전투를 포기하고 계략에 몰두합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1406, self::T_WIZARD, '황귀병',
|
||||
110, 110, 7, 0, 0.8, 13, 10,
|
||||
3000, ['낙양'], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['고도로 훈련된 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1407, self::T_WIZARD, '천귀병',
|
||||
80, 130, 7, 15, 0.6, 11, 12,
|
||||
3000, ['성도'], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['갑주를 두른 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1408, self::T_WIZARD, '마귀병',
|
||||
130, 80, 7, 15, 0.6, 12, 11,
|
||||
3000, ['업'], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['날카로운 무기를 가진 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1400, self::T_WIZARD, '귀병',
|
||||
80, 80, 7, 5, 0.5, 9, 9,
|
||||
[],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['계략을 사용하는 병종입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1401, self::T_WIZARD, '신귀병',
|
||||
80, 80, 7, 20, 0.6, 10, 10,
|
||||
[new ReqTech(1000), new ReqRegions('초')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['신출귀몰한 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1402, self::T_WIZARD, '백귀병',
|
||||
80, 130, 7, 5, 0.6, 9, 11,
|
||||
[new ReqTech(2000), new ReqCities('오환')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['저렴하고 튼튼합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1403, self::T_WIZARD, '흑귀병',
|
||||
130, 80, 7, 5, 0.6, 11, 9,
|
||||
[new ReqTech(2000), new ReqCities('왜')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['저렴하고 강력합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1404, self::T_WIZARD, '악귀병',
|
||||
130, 130, 7, 0, 0.6, 12, 12,
|
||||
[new ReqTech(3000), new ReqCities('장안')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['백병전에도 능숙합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1405, self::T_WIZARD, '남귀병',
|
||||
60, 60, 7, 10, 0.8, 8, 8,
|
||||
[new ReqTech(1000)],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['전투를 포기하고 계략에 몰두합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1406, self::T_WIZARD, '황귀병',
|
||||
110, 110, 7, 0, 0.8, 13, 10,
|
||||
[new ReqTech(3000), new ReqCities('낙양')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['고도로 훈련된 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1407, self::T_WIZARD, '천귀병',
|
||||
80, 130, 7, 15, 0.6, 11, 12,
|
||||
[new ReqTech(3000), new ReqCities('성도')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['갑주를 두른 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1408, self::T_WIZARD, '마귀병',
|
||||
130, 80, 7, 15, 0.6, 12, 11,
|
||||
[new ReqTech(3000), new ReqCities('업')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
['날카로운 무기를 가진 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
|
||||
[
|
||||
1500, self::T_SIEGE, '정란',
|
||||
100, 100, 6, 0, 0, 14, 5,
|
||||
0, null, null, 3,
|
||||
[self::T_FOOTMAN=>1.25, self::T_ARCHER=>1.25, self::T_CAVALRY=>1.25, self::T_WIZARD=>1.25, self::T_CASTLE=>1.2, 1106=>1.112],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2, 1106=>1.067],
|
||||
['높은 구조물 위에서 공격합니다. 첫 공격은 성벽을 향합니다.'],
|
||||
['che_성벽부상무효'], ['che_선제사격시도', 'che_선제사격발동'], ['che_성벽선제']
|
||||
],
|
||||
[
|
||||
1502, self::T_SIEGE, '벽력거',
|
||||
150, 100, 6, 5, 0, 20, 5,
|
||||
3000, ['업'], null, 0,
|
||||
[self::T_FOOTMAN=>1.25, self::T_ARCHER=>1.25, self::T_CAVALRY=>1.25, self::T_WIZARD=>1.25, self::T_CASTLE=>1.2, 1106=>1.112],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2, 1106=>1.067],
|
||||
['상대에게 돌덩이를 날립니다. 첫 공격은 성벽을 향합니다.'],
|
||||
['che_성벽부상무효'], ['che_선제사격시도', 'che_선제사격발동'], ['che_성벽선제']
|
||||
],
|
||||
[
|
||||
1503, self::T_SIEGE, '목우',
|
||||
50, 200, 5, 0, 0, 15, 5,
|
||||
3000, ['성도'], null, 0,
|
||||
[self::T_FOOTMAN=>1, self::T_ARCHER=>1, self::T_CAVALRY=>1, self::T_WIZARD=>1, self::T_CASTLE=>1.2],
|
||||
[self::T_FOOTMAN=>1, self::T_ARCHER=>1, self::T_CAVALRY=>1, self::T_WIZARD=>1, 1106=>1],
|
||||
['상대를 저지하는 특수병기입니다.'],
|
||||
['che_성벽부상무효'], ['che_저지시도', 'che_저지발동'], null
|
||||
]
|
||||
];
|
||||
[
|
||||
1500, self::T_SIEGE, '정란',
|
||||
100, 100, 6, 0, 0, 14, 5,
|
||||
[new ReqMinRelYear(3)],
|
||||
[self::T_FOOTMAN=>1.25, self::T_ARCHER=>1.25, self::T_CAVALRY=>1.25, self::T_WIZARD=>1.25, self::T_CASTLE=>1.2, 1106=>1.112],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2, 1106=>1.067],
|
||||
['높은 구조물 위에서 공격합니다. 첫 공격은 성벽을 향합니다.'],
|
||||
['che_성벽부상무효'], ['che_선제사격시도', 'che_선제사격발동'], ['che_성벽선제']
|
||||
],
|
||||
[
|
||||
1502, self::T_SIEGE, '벽력거',
|
||||
150, 100, 6, 5, 0, 20, 5,
|
||||
[new ReqTech(3000), new ReqCities('업')],
|
||||
[self::T_FOOTMAN=>1.25, self::T_ARCHER=>1.25, self::T_CAVALRY=>1.25, self::T_WIZARD=>1.25, self::T_CASTLE=>1.2, 1106=>1.112],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2, 1106=>1.067],
|
||||
['상대에게 돌덩이를 날립니다. 첫 공격은 성벽을 향합니다.'],
|
||||
['che_성벽부상무효'], ['che_선제사격시도', 'che_선제사격발동'], ['che_성벽선제']
|
||||
],
|
||||
[
|
||||
1503, self::T_SIEGE, '목우',
|
||||
50, 200, 5, 0, 0, 15, 5,
|
||||
[new ReqTech(3000), new ReqCities('성도')],
|
||||
[self::T_FOOTMAN=>1, self::T_ARCHER=>1, self::T_CAVALRY=>1, self::T_WIZARD=>1, self::T_CASTLE=>1.2],
|
||||
[self::T_FOOTMAN=>1, self::T_ARCHER=>1, self::T_CAVALRY=>1, self::T_WIZARD=>1, 1106=>1],
|
||||
['상대를 저지하는 특수병기입니다.'],
|
||||
['che_성벽부상무효'], ['che_저지시도', 'che_저지발동'], null
|
||||
]
|
||||
];
|
||||
}
|
||||
}
|
||||
+209
-200
@@ -2,209 +2,218 @@
|
||||
|
||||
namespace sammo;
|
||||
|
||||
use sammo\GameUnitConstraint\Impossible;
|
||||
use sammo\GameUnitConstraint\ReqCities;
|
||||
use sammo\GameUnitConstraint\ReqMinRelYear;
|
||||
use sammo\GameUnitConstraint\ReqRegions;
|
||||
use sammo\GameUnitConstraint\ReqTech;
|
||||
|
||||
class GameUnitConst extends GameUnitConstBase
|
||||
{
|
||||
const DEFAULT_CREWTYPE = 1100;
|
||||
|
||||
protected static $_buildData = [
|
||||
[
|
||||
1000, self::T_CASTLE, '성벽',
|
||||
100, 100, 7, 0, 0, 99, 9,
|
||||
999999, null, null, 999999,
|
||||
[], //성벽은 공격할 수 없다.
|
||||
[self::T_FOOTMAN => 1.2],
|
||||
['성벽입니다.', '생성할 수 없습니다.'],
|
||||
null, null, null
|
||||
],
|
||||
protected static function getBuildData(): array
|
||||
{
|
||||
return [
|
||||
[
|
||||
1000, self::T_CASTLE, '성벽',
|
||||
100, 100, 7, 0, 0, 99, 9,
|
||||
[new Impossible()],
|
||||
[], //성벽은 공격할 수 없다.
|
||||
[self::T_FOOTMAN => 1.2],
|
||||
['성벽입니다.', '생성할 수 없습니다.'],
|
||||
null, null, null
|
||||
],
|
||||
|
||||
[
|
||||
1100, self::T_FOOTMAN, '보병',
|
||||
100, 150, 7, 10, 0, 9, 9,
|
||||
0, null, null, 0,
|
||||
[self::T_ARCHER => 1.2, self::T_CAVALRY => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_ARCHER => 0.8, self::T_CAVALRY => 1.2, self::T_SIEGE => 0.8],
|
||||
['표준적인 보병입니다.', '보병은 방어특화이며,', '상대가 회피하기 어렵습니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1200, self::T_ARCHER, '궁병',
|
||||
100, 100, 7, 10, 0, 10, 10,
|
||||
0, null, null, 0,
|
||||
[self::T_CAVALRY => 1.2, self::T_FOOTMAN => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_CAVALRY => 0.8, self::T_FOOTMAN => 1.2, self::T_SIEGE => 0.8],
|
||||
['표준적인 궁병입니다.', '궁병은 선제사격을 하는 병종입니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1300, self::T_CAVALRY, '기병',
|
||||
150, 100, 7, 5, 0, 11, 11,
|
||||
0, null, null, 0,
|
||||
[self::T_FOOTMAN => 1.2, self::T_ARCHER => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_FOOTMAN => 0.8, self::T_ARCHER => 1.2, self::T_SIEGE => 0.8],
|
||||
['표준적인 기병입니다.', '기병은 공격특화입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1104, self::T_FOOTMAN, '근위병',
|
||||
150, 200, 7, 10, 0, 12, 12,
|
||||
2000, ['낙양'], null, 0,
|
||||
[self::T_ARCHER => 1.2, self::T_CAVALRY => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_ARCHER => 0.8, self::T_CAVALRY => 1.2, self::T_SIEGE => 0.8],
|
||||
['최강의 보병입니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1106, self::T_FOOTMAN, '백이병',
|
||||
175, 175, 7, 5, 0, 13, 11,
|
||||
2000, ['성도'], null, 0,
|
||||
[self::T_ARCHER => 1.1, self::T_CAVALRY => 0.9, self::T_SIEGE => 1.1],
|
||||
[self::T_ARCHER => 0.9, self::T_CAVALRY => 1.1, self::T_SIEGE => 0.9],
|
||||
['정예 보병입니다. 불리한 싸움도 버텨냅니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
97201, self::T_ARCHER, '화랑',
|
||||
175, 150, 8, 15, 0.05, 13, 13,
|
||||
2000, ['한', '서라벌'], null, 0,
|
||||
[self::T_CAVALRY => 1.2, self::T_FOOTMAN => 0.9, self::T_SIEGE => 1.2],
|
||||
[self::T_CAVALRY => 0.8, self::T_FOOTMAN => 1.1, self::T_SIEGE => 0.8],
|
||||
['특수한 궁병입니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1204, self::T_ARCHER, '석궁병',
|
||||
200, 125, 7, 10, 0, 13, 13,
|
||||
2000, ['건업'], null, 0,
|
||||
[self::T_CAVALRY => 1.2, self::T_FOOTMAN => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_CAVALRY => 0.8, self::T_FOOTMAN => 1.2, self::T_SIEGE => 0.8],
|
||||
['강력한 화살을 쏩니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1303, self::T_CAVALRY, '돌격기병',
|
||||
200, 125, 8, 10, 0, 13, 12,
|
||||
2000, ['서량', '안정'], null, 0,
|
||||
[self::T_FOOTMAN => 1.2, self::T_ARCHER => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_FOOTMAN => 0.8, self::T_ARCHER => 1.2, self::T_SIEGE => 0.8],
|
||||
['저돌적으로 공격합니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1307, self::T_CAVALRY, '호표기병',
|
||||
200, 150, 7, 5, 0, 14, 14,
|
||||
2000, ['허창'], null, 0,
|
||||
[self::T_FOOTMAN => 1.2, self::T_ARCHER => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_FOOTMAN => 0.8, self::T_ARCHER => 1.2, self::T_SIEGE => 0.8],
|
||||
['정예 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1306, self::T_CAVALRY, '맹수병',
|
||||
250, 175, 6, 0, 0, 16, 16,
|
||||
2000, ['운남'], null, 0,
|
||||
[self::T_FOOTMAN => 1.2, self::T_ARCHER => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_FOOTMAN => 0.8, self::T_ARCHER => 1.2, self::T_SIEGE => 0.8],
|
||||
['어느 누구보다 강력합니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1400, self::T_WIZARD, '귀병',
|
||||
80, 80, 7, 5, 0.5, 9, 9,
|
||||
0, null, null, 0,
|
||||
[self::T_SIEGE => 1.2],
|
||||
[self::T_SIEGE => 0.8],
|
||||
['계략을 사용하는 병종입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1405, self::T_WIZARD, '남귀병',
|
||||
60, 60, 7, 10, 0.8, 8, 8,
|
||||
1000, null, null, 0,
|
||||
[self::T_SIEGE => 1.2],
|
||||
[self::T_SIEGE => 0.8],
|
||||
['전투를 포기하고 계략에 몰두합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1404, self::T_WIZARD, '악귀병',
|
||||
130, 130, 7, 0, 0.6, 12, 12,
|
||||
2000, ['장안'], null, 0,
|
||||
[self::T_SIEGE => 1.2],
|
||||
[self::T_SIEGE => 0.8],
|
||||
['백병전에도 능숙합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1407, self::T_WIZARD, '천귀병',
|
||||
90, 130, 7, 15, 0.6, 11, 12,
|
||||
2000, ['성도'], null, 0,
|
||||
[self::T_SIEGE => 1.2],
|
||||
[self::T_SIEGE => 0.8],
|
||||
['갑주를 두른 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1500, self::T_SIEGE, '정란',
|
||||
100, 100, 6, 0, 0, 14, 5,
|
||||
0, null, null, 3,
|
||||
[self::T_FOOTMAN => 1.25, self::T_ARCHER => 1.25, self::T_CAVALRY => 1.25, self::T_WIZARD => 1.25, self::T_CASTLE => 1.8, 1106 => 1.112],
|
||||
[self::T_FOOTMAN => 1.2, self::T_ARCHER => 1.2, self::T_CAVALRY => 1.2, self::T_WIZARD => 1.2],
|
||||
['높은 구조물 위에서 공격합니다.'],
|
||||
['che_성벽부상무효'], ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1501, self::T_SIEGE, '충차',
|
||||
150, 100, 6, 0, 0, 20, 5,
|
||||
1000, null, null, 3,
|
||||
[self::T_FOOTMAN => 0.8, self::T_ARCHER => 0.8, self::T_CAVALRY => 0.8, self::T_WIZARD => 0.8, self::T_CASTLE => 2.4],
|
||||
[self::T_FOOTMAN => 1.2, self::T_ARCHER => 1.2, self::T_CAVALRY => 1.2, self::T_WIZARD => 1.2],
|
||||
['엄청난 위력으로 성벽을 부수어버립니다.'],
|
||||
['che_성벽부상무효'], null, null
|
||||
],
|
||||
[
|
||||
1502, self::T_SIEGE, '벽력거',
|
||||
135, 100, 6, 5, 0, 20, 5,
|
||||
2000, ['업'], null, 0,
|
||||
[self::T_FOOTMAN => 1.25, self::T_ARCHER => 1.25, self::T_CAVALRY => 1.25, self::T_WIZARD => 1.25, self::T_CASTLE => 1.8, 1106 => 1.112],
|
||||
[self::T_FOOTMAN => 0.833, self::T_ARCHER => 0.833, self::T_CAVALRY => 0.833, self::T_WIZARD => 0.833, 1106 => 0.909],
|
||||
['상대에게 돌덩이를 날립니다.'],
|
||||
['che_성벽부상무효'], ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
97101, self::T_FOOTMAN, '중장보병',
|
||||
150, 175, 7, 10, 0, 12, 12,
|
||||
3000, null, null, 0,
|
||||
[self::T_ARCHER => 1.2, self::T_CAVALRY => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_ARCHER => 0.8, self::T_CAVALRY => 1.2, self::T_SIEGE => 0.8],
|
||||
['전천후 보병입니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1202, self::T_ARCHER, '연노병',
|
||||
150, 175, 8, 10, 0, 12, 12,
|
||||
3000, null, null, 0,
|
||||
[self::T_CAVALRY => 1.2, self::T_FOOTMAN => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_CAVALRY => 0.8, self::T_FOOTMAN => 1.2, self::T_SIEGE => 0.8],
|
||||
['화살을 연사합니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1304, self::T_CAVALRY, '철기병',
|
||||
175, 175, 7, 5, 0, 13, 13,
|
||||
3000, null, null, 0,
|
||||
[self::T_FOOTMAN => 1.2, self::T_ARCHER => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_FOOTMAN => 0.8, self::T_ARCHER => 1.2, self::T_SIEGE => 0.8],
|
||||
['철갑을 두른 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1401, self::T_WIZARD, '신귀병',
|
||||
100, 100, 7, 20, 0.6, 12, 12,
|
||||
3000, null, null, 0,
|
||||
[self::T_SIEGE => 1.2],
|
||||
[self::T_SIEGE => 0.8],
|
||||
['신출귀몰한 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
];
|
||||
[
|
||||
1100, self::T_FOOTMAN, '보병',
|
||||
100, 150, 7, 10, 0, 9, 9,
|
||||
[],
|
||||
[self::T_ARCHER => 1.2, self::T_CAVALRY => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_ARCHER => 0.8, self::T_CAVALRY => 1.2, self::T_SIEGE => 0.8],
|
||||
['표준적인 보병입니다.', '보병은 방어특화이며,', '상대가 회피하기 어렵습니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1200, self::T_ARCHER, '궁병',
|
||||
100, 100, 7, 10, 0, 10, 10,
|
||||
[],
|
||||
[self::T_CAVALRY => 1.2, self::T_FOOTMAN => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_CAVALRY => 0.8, self::T_FOOTMAN => 1.2, self::T_SIEGE => 0.8],
|
||||
['표준적인 궁병입니다.', '궁병은 선제사격을 하는 병종입니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1300, self::T_CAVALRY, '기병',
|
||||
150, 100, 7, 5, 0, 11, 11,
|
||||
[],
|
||||
[self::T_FOOTMAN => 1.2, self::T_ARCHER => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_FOOTMAN => 0.8, self::T_ARCHER => 1.2, self::T_SIEGE => 0.8],
|
||||
['표준적인 기병입니다.', '기병은 공격특화입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1104, self::T_FOOTMAN, '근위병',
|
||||
150, 200, 7, 10, 0, 12, 12,
|
||||
[new ReqTech(2000), new ReqCities('낙양')],
|
||||
[self::T_ARCHER => 1.2, self::T_CAVALRY => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_ARCHER => 0.8, self::T_CAVALRY => 1.2, self::T_SIEGE => 0.8],
|
||||
['최강의 보병입니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1106, self::T_FOOTMAN, '백이병',
|
||||
175, 175, 7, 5, 0, 13, 11,
|
||||
[new ReqTech(2000), new ReqCities('성도')],
|
||||
[self::T_ARCHER => 1.1, self::T_CAVALRY => 0.9, self::T_SIEGE => 1.1],
|
||||
[self::T_ARCHER => 0.9, self::T_CAVALRY => 1.1, self::T_SIEGE => 0.9],
|
||||
['정예 보병입니다. 불리한 싸움도 버텨냅니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
97201, self::T_ARCHER, '화랑',
|
||||
175, 150, 8, 15, 0.05, 13, 13,
|
||||
[new ReqTech(2000), new ReqCities('한', '서라벌')],
|
||||
[self::T_CAVALRY => 1.2, self::T_FOOTMAN => 0.9, self::T_SIEGE => 1.2],
|
||||
[self::T_CAVALRY => 0.8, self::T_FOOTMAN => 1.1, self::T_SIEGE => 0.8],
|
||||
['특수한 궁병입니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1204, self::T_ARCHER, '석궁병',
|
||||
200, 125, 7, 10, 0, 13, 13,
|
||||
[new ReqTech(2000), new ReqCities('건업')],
|
||||
[self::T_CAVALRY => 1.2, self::T_FOOTMAN => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_CAVALRY => 0.8, self::T_FOOTMAN => 1.2, self::T_SIEGE => 0.8],
|
||||
['강력한 화살을 쏩니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1303, self::T_CAVALRY, '돌격기병',
|
||||
200, 125, 8, 10, 0, 13, 12,
|
||||
[new ReqTech(2000), new ReqCities('서량', '안정')],
|
||||
[self::T_FOOTMAN => 1.2, self::T_ARCHER => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_FOOTMAN => 0.8, self::T_ARCHER => 1.2, self::T_SIEGE => 0.8],
|
||||
['저돌적으로 공격합니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1307, self::T_CAVALRY, '호표기병',
|
||||
200, 150, 7, 5, 0, 14, 14,
|
||||
[new ReqTech(2000), new ReqCities('허창')],
|
||||
[self::T_FOOTMAN => 1.2, self::T_ARCHER => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_FOOTMAN => 0.8, self::T_ARCHER => 1.2, self::T_SIEGE => 0.8],
|
||||
['정예 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1306, self::T_CAVALRY, '맹수병',
|
||||
250, 175, 6, 0, 0, 16, 16,
|
||||
[new ReqTech(2000), new ReqCities('운남')],
|
||||
[self::T_FOOTMAN => 1.2, self::T_ARCHER => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_FOOTMAN => 0.8, self::T_ARCHER => 1.2, self::T_SIEGE => 0.8],
|
||||
['어느 누구보다 강력합니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1400, self::T_WIZARD, '귀병',
|
||||
80, 80, 7, 5, 0.5, 9, 9,
|
||||
[],
|
||||
[self::T_SIEGE => 1.2],
|
||||
[self::T_SIEGE => 0.8],
|
||||
['계략을 사용하는 병종입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1405, self::T_WIZARD, '남귀병',
|
||||
60, 60, 7, 10, 0.8, 8, 8,
|
||||
[new ReqTech(1000)],
|
||||
[self::T_SIEGE => 1.2],
|
||||
[self::T_SIEGE => 0.8],
|
||||
['전투를 포기하고 계략에 몰두합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1404, self::T_WIZARD, '악귀병',
|
||||
130, 130, 7, 0, 0.6, 12, 12,
|
||||
[new ReqTech(2000), new ReqCities('장안')],
|
||||
[self::T_SIEGE => 1.2],
|
||||
[self::T_SIEGE => 0.8],
|
||||
['백병전에도 능숙합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1407, self::T_WIZARD, '천귀병',
|
||||
90, 130, 7, 15, 0.6, 11, 12,
|
||||
[new ReqTech(2000), new ReqCities('성도')],
|
||||
[self::T_SIEGE => 1.2],
|
||||
[self::T_SIEGE => 0.8],
|
||||
['갑주를 두른 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1500, self::T_SIEGE, '정란',
|
||||
100, 100, 6, 0, 0, 14, 5,
|
||||
[new ReqMinRelYear(3)],
|
||||
[self::T_FOOTMAN => 1.25, self::T_ARCHER => 1.25, self::T_CAVALRY => 1.25, self::T_WIZARD => 1.25, self::T_CASTLE => 1.8, 1106 => 1.112],
|
||||
[self::T_FOOTMAN => 1.2, self::T_ARCHER => 1.2, self::T_CAVALRY => 1.2, self::T_WIZARD => 1.2],
|
||||
['높은 구조물 위에서 공격합니다.'],
|
||||
['che_성벽부상무효'], ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1501, self::T_SIEGE, '충차',
|
||||
150, 100, 6, 0, 0, 20, 5,
|
||||
[new ReqTech(1000), new ReqMinRelYear(3)],
|
||||
[self::T_FOOTMAN => 0.8, self::T_ARCHER => 0.8, self::T_CAVALRY => 0.8, self::T_WIZARD => 0.8, self::T_CASTLE => 2.4],
|
||||
[self::T_FOOTMAN => 1.2, self::T_ARCHER => 1.2, self::T_CAVALRY => 1.2, self::T_WIZARD => 1.2],
|
||||
['엄청난 위력으로 성벽을 부수어버립니다.'],
|
||||
['che_성벽부상무효'], null, null
|
||||
],
|
||||
[
|
||||
1502, self::T_SIEGE, '벽력거',
|
||||
135, 100, 6, 5, 0, 20, 5,
|
||||
[new ReqTech(2000), new ReqCities('업')],
|
||||
[self::T_FOOTMAN => 1.25, self::T_ARCHER => 1.25, self::T_CAVALRY => 1.25, self::T_WIZARD => 1.25, self::T_CASTLE => 1.8, 1106 => 1.112],
|
||||
[self::T_FOOTMAN => 0.833, self::T_ARCHER => 0.833, self::T_CAVALRY => 0.833, self::T_WIZARD => 0.833, 1106 => 0.909],
|
||||
['상대에게 돌덩이를 날립니다.'],
|
||||
['che_성벽부상무효'], ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
97101, self::T_FOOTMAN, '중장보병',
|
||||
150, 175, 7, 10, 0, 12, 12,
|
||||
[new ReqTech(3000)],
|
||||
[self::T_ARCHER => 1.2, self::T_CAVALRY => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_ARCHER => 0.8, self::T_CAVALRY => 1.2, self::T_SIEGE => 0.8],
|
||||
['전천후 보병입니다.'],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
1202, self::T_ARCHER, '연노병',
|
||||
150, 175, 8, 10, 0, 12, 12,
|
||||
[new ReqTech(3000)],
|
||||
[self::T_CAVALRY => 1.2, self::T_FOOTMAN => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_CAVALRY => 0.8, self::T_FOOTMAN => 1.2, self::T_SIEGE => 0.8],
|
||||
['화살을 연사합니다.'],
|
||||
null, ['che_선제사격시도', 'che_선제사격발동'], null
|
||||
],
|
||||
[
|
||||
1304, self::T_CAVALRY, '철기병',
|
||||
175, 175, 7, 5, 0, 13, 13,
|
||||
[new ReqTech(3000)],
|
||||
[self::T_FOOTMAN => 1.2, self::T_ARCHER => 0.8, self::T_SIEGE => 1.2],
|
||||
[self::T_FOOTMAN => 0.8, self::T_ARCHER => 1.2, self::T_SIEGE => 0.8],
|
||||
['철갑을 두른 기병입니다.'],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
1401, self::T_WIZARD, '신귀병',
|
||||
100, 100, 7, 20, 0.6, 12, 12,
|
||||
[new ReqTech(3000)],
|
||||
[self::T_SIEGE => 1.2],
|
||||
[self::T_SIEGE => 0.8],
|
||||
['신출귀몰한 귀병입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
+425
-421
@@ -1,6 +1,12 @@
|
||||
<?php
|
||||
namespace sammo;
|
||||
|
||||
use sammo\GameUnitConstraint\Impossible;
|
||||
use sammo\GameUnitConstraint\ReqTech;
|
||||
use sammo\GameUnitConstraint\ReqCities;
|
||||
use sammo\GameUnitConstraint\ReqRegions;
|
||||
use sammo\GameUnitConstraint\ReqMinRelYear;
|
||||
|
||||
class GameUnitConst extends GameUnitConstBase
|
||||
{
|
||||
const DEFAULT_CREWTYPE = 217100;
|
||||
@@ -13,427 +19,425 @@ class GameUnitConst extends GameUnitConstBase
|
||||
self::T_SIEGE => '차병',
|
||||
];
|
||||
|
||||
protected static $_buildData = [
|
||||
[
|
||||
1000, self::T_CASTLE, '성벽',
|
||||
100, 100, 7, 0, 0, 99, 9,
|
||||
999999, null, null, 999999,
|
||||
[],//성벽은 공격할 수 없다.
|
||||
[self::T_FOOTMAN=>1.2],
|
||||
['성벽입니다.','생성할 수 없습니다.'],
|
||||
null, null, null
|
||||
],
|
||||
protected static function getBuildData(): array
|
||||
{
|
||||
return [
|
||||
[
|
||||
1000, self::T_CASTLE, '성벽',
|
||||
100, 100, 7, 0, 0, 99, 9,
|
||||
[new Impossible()],
|
||||
[], //성벽은 공격할 수 없다.
|
||||
[self::T_FOOTMAN=>1.2],
|
||||
['성벽입니다.','생성할 수 없습니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217100, self::T_FOOTMAN, '보병',
|
||||
100, 150, 7, 10, 0, 9, 9,
|
||||
[],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["표준적인 보병입니다. 보병은 방어특화입니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217101, self::T_FOOTMAN, '마물병',
|
||||
110, 160, 7, 10, 0, 9, 10,
|
||||
[new ReqRegions('호넷 마인령', '케이브리스 마인령')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["마군 지역 기본병종입니다. 조금더 강하지만 쌀을 많이 소비합니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217102, self::T_FOOTMAN, '중장보병',
|
||||
100, 250, 7, 5, 0, 13, 10,
|
||||
[new ReqTech(1000), new ReqRegions('헬만 동부')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["헬만 특유의 견고한 보병입니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217103, self::T_FOOTMAN, '흑의 군 보병',
|
||||
150, 150, 7, 10, 0, 12, 11,
|
||||
[new ReqTech(1000), new ReqRegions('리자스 남부', '리자스 북부')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["흑의 군 전통의 체계적인 훈련으로 공격력을 보완했습니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217104, self::T_FOOTMAN, '용병',
|
||||
125, 175, 7, 10, 0, 12, 11,
|
||||
[new ReqTech(1000), new ReqRegions('자유도시 동부')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["일반 보병보다 비싸지만 받은 만큼은 일해줍니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217105, self::T_FOOTMAN, '사메라이',
|
||||
175, 150, 7, 0, 0, 11, 10,
|
||||
[new ReqTech(1000), new ReqRegions('제스 남부')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["검으로 난무를 가하는 몬스터 보병입니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217106, self::T_FOOTMAN, '템플나이트병',
|
||||
75, 275, 7, 0, 0, 11, 12,
|
||||
[new ReqTech(1000), new ReqRegions('AL교')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["공격을 포기하고 오직 방어에만 집중합니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217107, self::T_FOOTMAN, '메이드병',
|
||||
150, 150, 7, 20, 0, 13, 11,
|
||||
[new ReqTech(2000), new ReqCities('메이드의 묘지')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["켓셀링크 휘하의 날렵한 전투메이드입니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217108, self::T_FOOTMAN, '요괴병',
|
||||
150, 150, 8, 0, 0, 11, 13,
|
||||
[new ReqTech(2000), new ReqCities('오슈')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["단단한 육체를 믿고 적진을 돌파합니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217109, self::T_FOOTMAN, '리자스 친위병',
|
||||
150, 200, 7, 10, 0, 12, 12,
|
||||
[new ReqTech(3000), new ReqCities('리자스성')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["여왕을 수호하는 리자스 최강의 보병 정예보병입니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217110, self::T_FOOTMAN, '케이브리스 마물병',
|
||||
200, 150, 7, 5, 0, 13, 14,
|
||||
[new ReqTech(3000), new ReqCities('케이브리스의 성')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["케이브리스 직속의 마물 정예 전투보병입니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217111, self::T_FOOTMAN, '투신',
|
||||
200, 300, 7, 5, 0, 28, 23,
|
||||
[new ReqTech(5000), new ReqCities('투신도시')],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["성마교단 유적에서 발굴된 사상 최강의 보병입니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217200, self::T_ARCHER, '궁병',
|
||||
100, 100, 7, 20, 0, 10, 10,
|
||||
[],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["표준적인 궁병입니다. 궁병은 회피특화입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217201, self::T_ARCHER, '투척마물병',
|
||||
150, 100, 7, 10, 0, 11, 12,
|
||||
[new ReqTech(1000), new ReqRegions('호넷 마인령')],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["날렵함을 포기하고 도끼를 투척합니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217202, self::T_ARCHER, '백의 군 궁병',
|
||||
100, 100, 8, 30, 0, 11, 11,
|
||||
[new ReqTech(1000), new ReqRegions('리자스 남부')],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["전략을 활용하여 치고 빠지기에 능합니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217203, self::T_ARCHER, '벌레술사병',
|
||||
100, 150, 7, 20, 0, 12, 12,
|
||||
[new ReqTech(2000), new ReqCities('호박성')],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["벌레들을 부려 몸을 보호하는 궁병입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217204, self::T_ARCHER, '저격암살병',
|
||||
225, 75, 5, 10, 0, 14, 11,
|
||||
[new ReqTech(2000), new ReqCities('블라디보스토크')],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["독을 바른 탄환으로 적의 목숨을 앗아갑니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217205, self::T_ARCHER, '호루스병',
|
||||
150, 100, 8, 20, 0, 11, 12,
|
||||
[new ReqTech(2000), new ReqCities('거대전함')],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["민첩하게 파고드는 호루스족 궁병입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217206, self::T_ARCHER, '튤립병',
|
||||
200, 100, 7, 20, 0, 13, 13,
|
||||
[new ReqTech(3000), new ReqCities('커스텀')],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["최첨단병기 튤립으로 적을 폭격합니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217207, self::T_ARCHER, '아이스플레임 궁병',
|
||||
150, 150, 7, 20, 0, 13, 13,
|
||||
[new ReqTech(3000), new ReqCities('라그나로크 아크')],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["혁명을 성공으로 이끈 정예 게릴라 궁병입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217208, self::T_ARCHER, '카라 궁병',
|
||||
225, 225, 7, 30, 0, 25, 25,
|
||||
[new ReqTech(5000), new ReqCities('펜실 카우')],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["선조의 힘을 이어받은 최강의 카라 정예 궁병입니다."],
|
||||
null, null, null
|
||||
],
|
||||
|
||||
[
|
||||
217100, self::T_FOOTMAN, '보병',
|
||||
100, 150, 7, 10, 0, 9, 9,
|
||||
0, null, null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["표준적인 보병입니다. 보병은 방어특화입니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217101, self::T_FOOTMAN, '마물병',
|
||||
110, 160, 7, 10, 0, 9, 10,
|
||||
0, null, ["호넷 마인령","케이브리스 마인령"], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["마군 지역 기본병종입니다. 조금더 강하지만 쌀을 많이 소비합니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217102, self::T_FOOTMAN, '중장보병',
|
||||
100, 250, 7, 5, 0, 13, 10,
|
||||
1000, null, ["헬만 동부"], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["헬만 특유의 견고한 보병입니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217103, self::T_FOOTMAN, '흑의 군 보병',
|
||||
150, 150, 7, 10, 0, 12, 11,
|
||||
1000, null, ["리자스 남부","리자스 북부"], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["흑의 군 전통의 체계적인 훈련으로 공격력을 보완했습니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217104, self::T_FOOTMAN, '용병',
|
||||
125, 175, 7, 10, 0, 12, 11,
|
||||
1000, null, ["자유도시 동부"], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["일반 보병보다 비싸지만 받은 만큼은 일해줍니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217105, self::T_FOOTMAN, '사메라이',
|
||||
175, 150, 7, 0, 0, 11, 10,
|
||||
1000, null, ["제스 남부"], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["검으로 난무를 가하는 몬스터 보병입니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217106, self::T_FOOTMAN, '템플나이트병',
|
||||
75, 275, 7, 0, 0, 11, 12,
|
||||
1000, null, ["AL교"], 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["공격을 포기하고 오직 방어에만 집중합니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217107, self::T_FOOTMAN, '메이드병',
|
||||
150, 150, 7, 20, 0, 13, 11,
|
||||
2000, ["메이드의 묘지"], null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["켓셀링크 휘하의 날렵한 전투메이드입니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217108, self::T_FOOTMAN, '요괴병',
|
||||
150, 150, 8, 0, 0, 11, 13,
|
||||
2000, ["오슈"], null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["단단한 육체를 믿고 적진을 돌파합니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217109, self::T_FOOTMAN, '리자스 친위병',
|
||||
150, 200, 7, 10, 0, 12, 12,
|
||||
3000, ["리자스성"], null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["여왕을 수호하는 리자스 최강의 보병 정예보병입니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217110, self::T_FOOTMAN, '케이브리스 마물병',
|
||||
200, 150, 7, 5, 0, 13, 14,
|
||||
3000, ["케이브리스의 성"], null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["케이브리스 직속의 마물 정예 전투보병입니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217111, self::T_FOOTMAN, '투신',
|
||||
200, 300, 7, 5, 0, 28, 23,
|
||||
5000, ["투신도시"], null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["성마교단 유적에서 발굴된 사상 최강의 보병입니다."],
|
||||
null, ['che_방어력증가5p'], null
|
||||
],
|
||||
[
|
||||
217300, self::T_CAVALRY, '기동병',
|
||||
150, 100, 7, 5, 0, 11, 11,
|
||||
[],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["표준적인 기동병입니다. 기동병은 공격특화입니다."],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
217301, self::T_CAVALRY, '하치온나',
|
||||
175, 100, 7, 15, 0, 12, 12,
|
||||
[new ReqTech(1000), new ReqRegions('자유도시 서부')],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["작은 몸으로 회피하며 따끔한 일격을 먹이는 몬스터 기동병입니다."],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
217302, self::T_CAVALRY, '적의 군 기동병',
|
||||
200, 100, 7, 5, 0, 12, 13,
|
||||
[new ReqTech(1000), new ReqRegions('리자스 북부')],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["리자스군의 자랑인 기동부대입니다."],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
217303, self::T_CAVALRY, '안드로이드 기동병',
|
||||
175, 150, 7, 10, 0, 13, 12,
|
||||
[new ReqTech(2000), new ReqCities('악의 탑')],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["파이아르가 개발한 최첨단 안드로이드 기동병입니다."],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
217304, self::T_CAVALRY, '파란쵸 기동병',
|
||||
200, 100, 8, 5, 0, 13, 11,
|
||||
[new ReqTech(2000), new ReqCities('파란쵸 왕국')],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["적진을 일점돌파하는 파란쵸왕국의 돌격 기동병입니다. "],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
217305, self::T_CAVALRY, '비행마물병',
|
||||
150, 100, 8, 15, 0, 12, 12,
|
||||
[new ReqTech(2000), new ReqCities('죽음의 대지')],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["비행마물에 올라탄 기동마물병입니다."],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
217306, self::T_CAVALRY, '마물조련사병',
|
||||
250, 200, 6, 0, 0, 16, 16,
|
||||
[new ReqTech(3000), new ReqCities('랑그바우')],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["무시무시한 몬스터에 올라타서 싸우는 극강의 기동병입니다."],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
217307, self::T_CAVALRY, '기마병',
|
||||
200, 150, 7, 5, 0, 14, 14,
|
||||
[new ReqTech(3000), new ReqCities('오와리')],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["JAPAN 특유의 기마에 올라타 적을 짓밟는 기동병입니다."],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
217308, self::T_CAVALRY, '엔젤나이트',
|
||||
300, 200, 7, 5, 0, 25, 25,
|
||||
[new ReqTech(5000), new ReqCities('떨어진 궁도')],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["신의 명령으로 파멸을 내리기 위해 강림했습니다."],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
|
||||
[
|
||||
217200, self::T_ARCHER, '궁병',
|
||||
100, 100, 7, 20, 0, 10, 10,
|
||||
0, null, null, 0,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["표준적인 궁병입니다. 궁병은 회피특화입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217201, self::T_ARCHER, '투척마물병',
|
||||
150, 100, 7, 10, 0, 11, 12,
|
||||
1000, null, ["호넷 마인령"], 0,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["날렵함을 포기하고 도끼를 투척합니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217202, self::T_ARCHER, '백의 군 궁병',
|
||||
100, 100, 8, 30, 0, 11, 11,
|
||||
1000, null, ["리자스 남부"], 0,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["전략을 활용하여 치고 빠지기에 능합니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217203, self::T_ARCHER, '벌레술사병',
|
||||
100, 150, 7, 20, 0, 12, 12,
|
||||
2000, ["호박성"], null, 0,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["벌레들을 부려 몸을 보호하는 궁병입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217204, self::T_ARCHER, '저격암살병',
|
||||
225, 75, 5, 10, 0, 14, 11,
|
||||
2000, ["블라디보스토크"], null, 0,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["독을 바른 탄환으로 적의 목숨을 앗아갑니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217205, self::T_ARCHER, '호루스병',
|
||||
150, 100, 8, 20, 0, 11, 12,
|
||||
2000, ["거대전함"], null, 0,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["민첩하게 파고드는 호루스족 궁병입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217206, self::T_ARCHER, '튤립병',
|
||||
200, 100, 7, 20, 0, 13, 13,
|
||||
3000, ["커스텀"], null, 0,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["최첨단병기 튤립으로 적을 폭격합니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217207, self::T_ARCHER, '아이스플레임 궁병',
|
||||
150, 150, 7, 20, 0, 13, 13,
|
||||
3000, ["라그나로크 아크"], null, 0,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["혁명을 성공으로 이끈 정예 게릴라 궁병입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217208, self::T_ARCHER, '카라 궁병',
|
||||
225, 225, 7, 30, 0, 25, 25,
|
||||
5000, ["펜실 카우"], null, 0,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_CAVALRY=>1.2, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_CAVALRY=>0.8, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["선조의 힘을 이어받은 최강의 카라 정예 궁병입니다."],
|
||||
null, null, null
|
||||
],
|
||||
|
||||
[
|
||||
217300, self::T_CAVALRY, '기동병',
|
||||
150, 100, 7, 5, 0, 11, 11,
|
||||
0, null, null, 0,
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["표준적인 기동병입니다. 기동병은 공격특화입니다."],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
217301, self::T_CAVALRY, '하치온나',
|
||||
175, 100, 7, 15, 0, 12, 12,
|
||||
1000, null, ["자유도시 서부"], 0,
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["작은 몸으로 회피하며 따끔한 일격을 먹이는 몬스터 기동병입니다."],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
217302, self::T_CAVALRY, '적의 군 기동병',
|
||||
200, 100, 7, 5, 0, 12, 13,
|
||||
1000, null, ["리자스 북부"], 0,
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["리자스군의 자랑인 기동부대입니다."],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
217303, self::T_CAVALRY, '안드로이드 기동병',
|
||||
175, 150, 7, 10, 0, 13, 12,
|
||||
2000, ["악의 탑"], null, 0,
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["파이아르가 개발한 최첨단 안드로이드 기동병입니다."],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
217304, self::T_CAVALRY, '파란쵸 기동병',
|
||||
200, 100, 8, 5, 0, 13, 11,
|
||||
2000, ["파란쵸 왕국"], null, 0,
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["적진을 일점돌파하는 파란쵸왕국의 돌격 기동병입니다. "],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
217305, self::T_CAVALRY, '비행마물병',
|
||||
150, 100, 8, 15, 0, 12, 12,
|
||||
2000, ["죽음의 대지"], null, 0,
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["비행마물에 올라탄 기동마물병입니다."],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
217306, self::T_CAVALRY, '마물조련사병',
|
||||
250, 200, 6, 0, 0, 16, 16,
|
||||
3000, ["랑그바우"], null, 0,
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["무시무시한 몬스터에 올라타서 싸우는 극강의 기동병입니다."],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
217307, self::T_CAVALRY, '기마병',
|
||||
200, 150, 7, 5, 0, 14, 14,
|
||||
3000, ["오와리"], null, 0,
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["JAPAN 특유의 기마에 올라타 적을 짓밟는 기동병입니다."],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
[
|
||||
217308, self::T_CAVALRY, '엔젤나이트',
|
||||
300, 200, 7, 5, 0, 25, 25,
|
||||
5000, ["떨어진 궁도"], null, 0,
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8, self::T_SIEGE=>1.2, 217502=>1],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2, self::T_SIEGE=>0.8, 217502=>1],
|
||||
["신의 명령으로 파멸을 내리기 위해 강림했습니다."],
|
||||
null, ['che_기병병종전투'], null
|
||||
],
|
||||
|
||||
[
|
||||
217400, self::T_WIZARD, '마법병',
|
||||
80, 80, 7, 5, 0.6, 9, 9,
|
||||
0, null, null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["마법을 사용하는 병종입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217401, self::T_WIZARD, '마물 마법병',
|
||||
90, 90, 7, 0, 0.6, 11, 9,
|
||||
0, null, ["호넷 마인령","케이브리스 마인령"], 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["마군 지역 기본병종입니다. 조금더 강하지만 금을 많이 소비합니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217402, self::T_WIZARD, '카라 마법병',
|
||||
80, 80, 7, 20, 0.6, 10, 10,
|
||||
1000, null, ["카라의 숲"], 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["신속히 움직이며 카라의 저주로 적을 공격합니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217403, self::T_WIZARD, '제스 마법병',
|
||||
100, 100, 7, 0, 0.6, 10, 10,
|
||||
1000, null, ["제스 북부"], 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["마법국가 제스의 전통있는 마법병입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217404, self::T_WIZARD, '무녀',
|
||||
80, 80, 8, 10, 0.6, 10, 10,
|
||||
1000, null, ["JAPAN"], 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["신마법과 함께 신통한 춤으로 활력을 불어넣는 마법병입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217405, self::T_WIZARD, '프로즌',
|
||||
90, 70, 7, 10, 0.8, 10, 10,
|
||||
1000, null, ["헬만 서부"], 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["백병전에 불리한 연약한 몸으로 마법 사용에 집중하는 몬스터입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217406, self::T_WIZARD, '마소한 마법병',
|
||||
70, 90, 7, 10, 0.8, 11, 10,
|
||||
1000, null, ["케이브리스 마인령"], 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["로브를 여러겹 둘러입은 마물마법병입니다. 직접 전투보단 마법에 집중합니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217407, self::T_WIZARD, '신관병',
|
||||
80, 130, 7, 5, 0.6, 9, 11,
|
||||
2000, ["카이즈"], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["AL교의 전투신관입니다. 몸을 보호하는 성스러운 마법을 사용합니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217408, self::T_WIZARD, '중장마법병',
|
||||
80, 130, 7, 15, 0.6, 11, 12,
|
||||
3000, ["로제스그라드"], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["두터운 로브를 입고 불길한 주문을 읊습니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217409, self::T_WIZARD, '악마병',
|
||||
130, 80, 7, 15, 0.6, 11, 12,
|
||||
3000, ["올드제스"], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["고대 제스 왕가의 계약에 따라 소환된 흑마법병입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217410, self::T_WIZARD, '호넷 마물병',
|
||||
130, 130, 7, 0, 0.6, 12, 12,
|
||||
3000, ["구 마왕성"], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["호넷 직속의 최강 마물 마법병입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217411, self::T_WIZARD, 'Z가디언',
|
||||
180, 180, 7, 0, 0.7, 28, 20,
|
||||
5000, ["라그나로크 아크"], null, 0,
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["제스의 기술력이 집약된 최고의 마법병기입니다."],
|
||||
null, null, null
|
||||
],
|
||||
|
||||
[
|
||||
217500, self::T_SIEGE, '정란',
|
||||
150, 150, 6, 0, 0, 15, 5,
|
||||
0, null, null, 3,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>1.8],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2],
|
||||
["높은 구조물 위에서 공격합니다."],
|
||||
['che_성벽부상무효'], null, null
|
||||
],
|
||||
[
|
||||
217501, self::T_SIEGE, '충차',
|
||||
150, 100, 6, 0, 0, 20, 5,
|
||||
1000, null, null, 3,
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>2.4],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2],
|
||||
["엄청난 위력으로 성벽을 부수어버립니다."],
|
||||
['che_성벽부상무효'], null, null
|
||||
],
|
||||
[
|
||||
217502, self::T_SIEGE, '튤립3호',
|
||||
275, 300, 6, 0, 0, 35, 15,
|
||||
5000, ["커스텀"], null, 0,
|
||||
[ ],
|
||||
[ ],
|
||||
["파괴적인 위력과 정말 파괴적인 비용을 자랑하는 전차입니다. "],
|
||||
['che_성벽부상무효'], null, null
|
||||
],
|
||||
|
||||
|
||||
];
|
||||
[
|
||||
217400, self::T_WIZARD, '마법병',
|
||||
80, 80, 7, 5, 0.6, 9, 9,
|
||||
[],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["마법을 사용하는 병종입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217401, self::T_WIZARD, '마물 마법병',
|
||||
90, 90, 7, 0, 0.6, 11, 9,
|
||||
[new ReqRegions('호넷 마인령', '케이브리스 마인령')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["마군 지역 기본병종입니다. 조금더 강하지만 금을 많이 소비합니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217402, self::T_WIZARD, '카라 마법병',
|
||||
80, 80, 7, 20, 0.6, 10, 10,
|
||||
[new ReqTech(1000), new ReqRegions('카라의 숲')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["신속히 움직이며 카라의 저주로 적을 공격합니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217403, self::T_WIZARD, '제스 마법병',
|
||||
100, 100, 7, 0, 0.6, 10, 10,
|
||||
[new ReqTech(1000), new ReqRegions('제스 북부')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["마법국가 제스의 전통있는 마법병입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217404, self::T_WIZARD, '무녀',
|
||||
80, 80, 8, 10, 0.6, 10, 10,
|
||||
[new ReqTech(1000), new ReqRegions('JAPAN')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["신마법과 함께 신통한 춤으로 활력을 불어넣는 마법병입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217405, self::T_WIZARD, '프로즌',
|
||||
90, 70, 7, 10, 0.8, 10, 10,
|
||||
[new ReqTech(1000), new ReqRegions('헬만 서부')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["백병전에 불리한 연약한 몸으로 마법 사용에 집중하는 몬스터입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217406, self::T_WIZARD, '마소한 마법병',
|
||||
70, 90, 7, 10, 0.8, 11, 10,
|
||||
[new ReqTech(1000), new ReqRegions('케이브리스 마인령')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["로브를 여러겹 둘러입은 마물마법병입니다. 직접 전투보단 마법에 집중합니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217407, self::T_WIZARD, '신관병',
|
||||
80, 130, 7, 5, 0.6, 9, 11,
|
||||
[new ReqTech(2000), new ReqCities('카이즈')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["AL교의 전투신관입니다. 몸을 보호하는 성스러운 마법을 사용합니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217408, self::T_WIZARD, '중장마법병',
|
||||
80, 130, 7, 15, 0.6, 11, 12,
|
||||
[new ReqTech(3000), new ReqCities('로제스그라드')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["두터운 로브를 입고 불길한 주문을 읊습니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217409, self::T_WIZARD, '악마병',
|
||||
130, 80, 7, 15, 0.6, 11, 12,
|
||||
[new ReqTech(3000), new ReqCities('올드제스')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["고대 제스 왕가의 계약에 따라 소환된 흑마법병입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217410, self::T_WIZARD, '호넷 마물병',
|
||||
130, 130, 7, 0, 0.6, 12, 12,
|
||||
[new ReqTech(3000), new ReqCities('구 마왕성')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["호넷 직속의 최강 마물 마법병입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217411, self::T_WIZARD, 'Z가디언',
|
||||
180, 180, 7, 0, 0.7, 28, 20,
|
||||
[new ReqTech(5000), new ReqCities('라그나로크 아크')],
|
||||
[self::T_SIEGE=>1.2],
|
||||
[self::T_SIEGE=>0.8],
|
||||
["제스의 기술력이 집약된 최고의 마법병기입니다."],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
217500, self::T_SIEGE, '정란',
|
||||
150, 150, 6, 0, 0, 15, 5,
|
||||
[new ReqMinRelYear(3)],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>1.8],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2],
|
||||
["높은 구조물 위에서 공격합니다."],
|
||||
['che_성벽부상무효'], null, null
|
||||
],
|
||||
[
|
||||
217501, self::T_SIEGE, '충차',
|
||||
150, 100, 6, 0, 0, 20, 5,
|
||||
[new ReqTech(1000), new ReqMinRelYear(3)],
|
||||
[ self::T_FOOTMAN=>0.8, self::T_ARCHER=>0.8, self::T_CAVALRY=>0.8, self::T_WIZARD=>0.8, self::T_CASTLE=>2.4],
|
||||
[ self::T_FOOTMAN=>1.2, self::T_ARCHER=>1.2, self::T_CAVALRY=>1.2, self::T_WIZARD=>1.2],
|
||||
["엄청난 위력으로 성벽을 부수어버립니다."],
|
||||
['che_성벽부상무효'], null, null
|
||||
],
|
||||
[
|
||||
217502, self::T_SIEGE, '튤립3호',
|
||||
275, 300, 6, 0, 0, 35, 15,
|
||||
[new ReqTech(5000), new ReqCities('커스텀')],
|
||||
[],
|
||||
[],
|
||||
["파괴적인 위력과 정말 파괴적인 비용을 자랑하는 전차입니다. "],
|
||||
['che_성벽부상무효'], null, null
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
+101
-96
@@ -1,104 +1,109 @@
|
||||
<?php
|
||||
namespace sammo;
|
||||
|
||||
use sammo\GameUnitConstraint\Impossible;
|
||||
use sammo\GameUnitConstraint\ReqTech;
|
||||
use sammo\GameUnitConstraint\ReqCities;
|
||||
use sammo\GameUnitConstraint\ReqRegions;
|
||||
use sammo\GameUnitConstraint\ReqMinRelYear;
|
||||
|
||||
class GameUnitConst extends GameUnitConstBase
|
||||
{
|
||||
const DEFAULT_CREWTYPE = 1500;
|
||||
|
||||
protected static $_buildData = [
|
||||
[
|
||||
1000, self::T_CASTLE, '성벽',
|
||||
100, 100, 7, 0, 0, 99, 9,
|
||||
999999, null, null, 999999,
|
||||
[],//성벽은 공격할 수 없다.
|
||||
[self::T_FOOTMAN=>1.2],
|
||||
['성벽입니다.','생성할 수 없습니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1100, self::T_FOOTMAN, '보병',
|
||||
100, 150, 7, 10, 0, 18, 18,
|
||||
0, null, null, 0,
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2],
|
||||
['표준적인 보병입니다.','보병은 방어특화이며,','상대가 회피하기 어렵습니다.'],
|
||||
null, null, null
|
||||
],
|
||||
|
||||
[
|
||||
1200, self::T_ARCHER, '궁병',
|
||||
100, 100, 7, 20, 0, 20, 20,
|
||||
0, null, null, 0,
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2],
|
||||
['표준적인 궁병입니다.','궁병은 회피특화입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
|
||||
[
|
||||
1300, self::T_CAVALRY, '기병',
|
||||
150, 100, 7, 5, 0, 22, 22,
|
||||
0, null, null, 0,
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2],
|
||||
['표준적인 기병입니다.','기병은 공격특화입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
|
||||
[
|
||||
1400, self::T_WIZARD, '귀병',
|
||||
80, 80, 7, 5, 0.5, 18, 18,
|
||||
0, null, null, 0,
|
||||
[],
|
||||
[],
|
||||
['계략을 사용하는 병종입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1405, self::T_WIZARD, '남귀병',
|
||||
60, 60, 7, 10, 0.8, 16, 16,
|
||||
1000, null, null, 0,
|
||||
[],
|
||||
[],
|
||||
['전투를 포기하고 계략에 몰두합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
|
||||
[
|
||||
1500, self::T_SIEGE, '정란',
|
||||
100, 100, 6, 0, 0, 7, 3,
|
||||
0, null, null, 0,
|
||||
[self::T_CASTLE=>1.8],
|
||||
[],
|
||||
['높은 구조물 위에서 공격합니다.'],
|
||||
['che_성벽부상무효'], null, null
|
||||
],
|
||||
[
|
||||
1501, self::T_SIEGE, '충차',
|
||||
150, 100, 6, 0, 0, 10, 3,
|
||||
1000, null, null, 3,
|
||||
[self::T_CASTLE=>2.4],
|
||||
[],
|
||||
['엄청난 위력으로 성벽을 부수어버립니다.'],
|
||||
['che_성벽부상무효'], null, null
|
||||
],
|
||||
[
|
||||
1502, self::T_SIEGE, '벽력거',
|
||||
200, 100, 6, 0, 0, 20, 4,
|
||||
3000, ['업'], null, 0,
|
||||
[self::T_CASTLE=>1.8],
|
||||
[],
|
||||
['상대에게 돌덩이를 날립니다.'],
|
||||
['che_성벽부상무효'], null, null
|
||||
],
|
||||
[
|
||||
1503, self::T_SIEGE, '목우',
|
||||
50, 200, 5, 0, 0, 15, 3,
|
||||
3000, ['성도'], null, 0,
|
||||
[],
|
||||
[],
|
||||
['상대를 저지하는 특수병기입니다.'],
|
||||
['che_성벽부상무효'], null, null
|
||||
]
|
||||
];
|
||||
protected static function getBuildData(): array
|
||||
{
|
||||
return [
|
||||
[
|
||||
1000, self::T_CASTLE, '성벽',
|
||||
100, 100, 7, 0, 0, 99, 9,
|
||||
[new Impossible()],
|
||||
[], //성벽은 공격할 수 없다.
|
||||
[self::T_FOOTMAN=>1.2],
|
||||
['성벽입니다.','생성할 수 없습니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1100, self::T_FOOTMAN, '보병',
|
||||
100, 150, 7, 10, 0, 18, 18,
|
||||
[],
|
||||
[self::T_ARCHER=>1.2, self::T_CAVALRY=>0.8],
|
||||
[self::T_ARCHER=>0.8, self::T_CAVALRY=>1.2],
|
||||
['표준적인 보병입니다.','보병은 방어특화이며,','상대가 회피하기 어렵습니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1200, self::T_ARCHER, '궁병',
|
||||
100, 100, 7, 20, 0, 20, 20,
|
||||
[],
|
||||
[self::T_CAVALRY=>1.2, self::T_FOOTMAN=>0.8],
|
||||
[self::T_CAVALRY=>0.8, self::T_FOOTMAN=>1.2],
|
||||
['표준적인 궁병입니다.','궁병은 회피특화입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1300, self::T_CAVALRY, '기병',
|
||||
150, 100, 7, 5, 0, 22, 22,
|
||||
[],
|
||||
[self::T_FOOTMAN=>1.2, self::T_ARCHER=>0.8],
|
||||
[self::T_FOOTMAN=>0.8, self::T_ARCHER=>1.2],
|
||||
['표준적인 기병입니다.','기병은 공격특화입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1400, self::T_WIZARD, '귀병',
|
||||
80, 80, 7, 5, 0.5, 18, 18,
|
||||
[],
|
||||
[],
|
||||
[],
|
||||
['계략을 사용하는 병종입니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1405, self::T_WIZARD, '남귀병',
|
||||
60, 60, 7, 10, 0.8, 16, 16,
|
||||
[new ReqTech(1000)],
|
||||
[],
|
||||
[],
|
||||
['전투를 포기하고 계략에 몰두합니다.'],
|
||||
null, null, null
|
||||
],
|
||||
[
|
||||
1500, self::T_SIEGE, '정란',
|
||||
100, 100, 6, 0, 0, 7, 3,
|
||||
[],
|
||||
[self::T_CASTLE=>1.8],
|
||||
[],
|
||||
['높은 구조물 위에서 공격합니다.'],
|
||||
['che_성벽부상무효'], null, null
|
||||
],
|
||||
[
|
||||
1501, self::T_SIEGE, '충차',
|
||||
150, 100, 6, 0, 0, 10, 3,
|
||||
[new ReqTech(1000), new ReqMinRelYear(3)],
|
||||
[self::T_CASTLE=>2.4],
|
||||
[],
|
||||
['엄청난 위력으로 성벽을 부수어버립니다.'],
|
||||
['che_성벽부상무효'], null, null
|
||||
],
|
||||
[
|
||||
1502, self::T_SIEGE, '벽력거',
|
||||
200, 100, 6, 0, 0, 20, 4,
|
||||
[new ReqTech(3000), new ReqCities('업')],
|
||||
[self::T_CASTLE=>1.8],
|
||||
[],
|
||||
['상대에게 돌덩이를 날립니다.'],
|
||||
['che_성벽부상무효'], null, null
|
||||
],
|
||||
[
|
||||
1503, self::T_SIEGE, '목우',
|
||||
50, 200, 5, 0, 0, 15, 3,
|
||||
[new ReqTech(3000), new ReqCities('성도')],
|
||||
[],
|
||||
[],
|
||||
['상대를 저지하는 특수병기입니다.'],
|
||||
['che_성벽부상무효'], null, null
|
||||
]
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -176,10 +176,7 @@ export type GameUnitType = {
|
||||
magicCoef: number;
|
||||
cost: number;
|
||||
rice: number;
|
||||
reqTech: number;
|
||||
reqCities: CityID[] | null;
|
||||
reqRegions: MapRegionID[] | null;
|
||||
reqYear: number;
|
||||
reqConstraints: Record<string, unknown>[];
|
||||
attackCoef: Record<CrewTypeID | ArmTypeID, number> | null | [];
|
||||
defenceCoef: Record<CrewTypeID | ArmTypeID, number> | null | [];
|
||||
info: string | string[];
|
||||
|
||||
Reference in New Issue
Block a user