Files
core/hwe/scenario/unit/ludo_rathowm.php
T
Hide_D 2869ba5c42 feat,refac: GameUnitConstraint 개념 추가
- GameUnitDetail의 요구 기술, 지역, 도시, 연도를 GameUnitConstraint로 통합
- GameUnitConstraint는 조건 검사, 설명 제공
- 병종 정의를 GameUnitConstraint 이용 재정의
- test 함수에 General 객체 요구,
- test 함수의 ownCities에 단순 도시 외 도시 정보 추가
- 변경된 값에 맞게 호출 함수 변경
2025-01-22 16:26:15 +00:00

443 lines
22 KiB
PHP

<?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;
protected static $typeData = [
self::T_FOOTMAN => '보병',
self::T_ARCHER => '궁병',
self::T_CAVALRY => '기동병',
self::T_WIZARD => '마법병',
self::T_SIEGE => '차병',
];
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
],
[
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
],
[
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
],
];
}
}