feat: add siegetank unit set and implement messaging system
- Created a new unit set for "siegetank" with various crew types and their attributes. - Implemented a messaging system with types, payloads, and storage functionality. - Added tests for the messaging system to ensure correct behavior for different message types (private, national, public, diplomacy).
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import type { GameSessionTokenPayload } from '@sammo-ts/common';
|
||||
import type { Prisma } from '@prisma/client';
|
||||
|
||||
import type { TurnDaemonTransport } from './daemon/transport.js';
|
||||
|
||||
@@ -100,6 +101,7 @@ export interface NationRow {
|
||||
}
|
||||
|
||||
export interface DatabaseClient {
|
||||
$queryRaw<T = unknown>(query: Prisma.Sql): Promise<T>;
|
||||
worldState: {
|
||||
findFirst(args?: unknown): Promise<WorldStateRow | null>;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
import type { MessagePayload, MessageRecordDraft, MessageType } from '@sammo-ts/logic';
|
||||
|
||||
import type { DatabaseClient } from '../context.js';
|
||||
|
||||
export interface MessageView {
|
||||
id: number;
|
||||
msgType: MessageType;
|
||||
src: MessagePayload['src'];
|
||||
dest: MessagePayload['dest'] | null;
|
||||
text: string;
|
||||
option?: MessagePayload['option'] | null;
|
||||
time: string;
|
||||
}
|
||||
|
||||
interface MessageRow {
|
||||
id: number;
|
||||
mailbox: number;
|
||||
type: MessageType;
|
||||
src: number;
|
||||
dest: number;
|
||||
time: Date;
|
||||
valid_until: Date;
|
||||
message: unknown;
|
||||
}
|
||||
|
||||
const parsePayload = (value: unknown): MessagePayload => {
|
||||
if (typeof value === 'string') {
|
||||
return JSON.parse(value) as MessagePayload;
|
||||
}
|
||||
return value as MessagePayload;
|
||||
};
|
||||
|
||||
const formatMessageTime = (value: Date): string => {
|
||||
const pad = (input: number) => input.toString().padStart(2, '0');
|
||||
return `${value.getFullYear()}-${pad(value.getMonth() + 1)}-${pad(
|
||||
value.getDate()
|
||||
)} ${pad(value.getHours())}:${pad(value.getMinutes())}:${pad(value.getSeconds())}`;
|
||||
};
|
||||
|
||||
const toMessageView = (row: MessageRow): MessageView => {
|
||||
const payload = parsePayload(row.message);
|
||||
return {
|
||||
id: row.id,
|
||||
msgType: row.type,
|
||||
src: payload.src,
|
||||
dest: row.type === 'public' ? null : payload.dest,
|
||||
text: payload.text,
|
||||
option: payload.option ?? null,
|
||||
time: formatMessageTime(new Date(row.time)),
|
||||
};
|
||||
};
|
||||
|
||||
export const insertMessage = async (
|
||||
db: DatabaseClient,
|
||||
draft: MessageRecordDraft
|
||||
): Promise<number> => {
|
||||
const rows = await db.$queryRaw<Array<{ id: number }>>`
|
||||
INSERT INTO message (mailbox, type, src, dest, time, valid_until, message)
|
||||
VALUES (
|
||||
${draft.mailbox},
|
||||
${draft.msgType},
|
||||
${draft.srcId},
|
||||
${draft.destId},
|
||||
${draft.time},
|
||||
${draft.validUntil},
|
||||
CAST(${JSON.stringify(draft.payload)} AS jsonb)
|
||||
)
|
||||
RETURNING id
|
||||
`;
|
||||
const id = rows[0]?.id;
|
||||
if (!id) {
|
||||
throw new Error('Failed to insert message row.');
|
||||
}
|
||||
return id;
|
||||
};
|
||||
|
||||
export const fetchMessagesFromMailbox = async (params: {
|
||||
db: DatabaseClient;
|
||||
mailbox: number;
|
||||
msgType: MessageType;
|
||||
limit: number;
|
||||
fromSeq: number;
|
||||
}): Promise<MessageView[]> => {
|
||||
const fromSeq = Math.max(params.fromSeq, 0);
|
||||
const rows = await params.db.$queryRaw<MessageRow[]>`
|
||||
SELECT id, mailbox, type, src, dest, time, valid_until, message
|
||||
FROM message
|
||||
WHERE mailbox = ${params.mailbox}
|
||||
AND type = ${params.msgType}
|
||||
AND valid_until > NOW()
|
||||
AND id >= ${fromSeq}
|
||||
ORDER BY id DESC
|
||||
LIMIT ${params.limit}
|
||||
`;
|
||||
|
||||
return rows.map(toMessageView);
|
||||
};
|
||||
|
||||
export const fetchOldMessagesFromMailbox = async (params: {
|
||||
db: DatabaseClient;
|
||||
mailbox: number;
|
||||
msgType: MessageType;
|
||||
toSeq: number;
|
||||
limit: number;
|
||||
}): Promise<MessageView[]> => {
|
||||
const rows = await params.db.$queryRaw<MessageRow[]>`
|
||||
SELECT id, mailbox, type, src, dest, time, valid_until, message
|
||||
FROM message
|
||||
WHERE mailbox = ${params.mailbox}
|
||||
AND type = ${params.msgType}
|
||||
AND valid_until > NOW()
|
||||
AND id < ${params.toSeq}
|
||||
ORDER BY id DESC
|
||||
LIMIT ${params.limit}
|
||||
`;
|
||||
|
||||
return rows.map(toMessageView);
|
||||
};
|
||||
@@ -0,0 +1,50 @@
|
||||
import type { MessageTarget } from '@sammo-ts/logic';
|
||||
|
||||
import type { DatabaseClient, GeneralRow } from '../context.js';
|
||||
|
||||
const DEFAULT_NATION = {
|
||||
name: '재야',
|
||||
color: '#000000',
|
||||
};
|
||||
|
||||
export const resolveNationInfo = async (
|
||||
db: DatabaseClient,
|
||||
nationId: number
|
||||
): Promise<{ name: string; color: string }> => {
|
||||
if (nationId <= 0) {
|
||||
return DEFAULT_NATION;
|
||||
}
|
||||
const nation = await db.nation.findUnique({ where: { id: nationId } });
|
||||
if (!nation) {
|
||||
return DEFAULT_NATION;
|
||||
}
|
||||
return { name: nation.name, color: nation.color };
|
||||
};
|
||||
|
||||
export const buildTargetFromGeneral = async (
|
||||
db: DatabaseClient,
|
||||
general: GeneralRow
|
||||
): Promise<MessageTarget> => {
|
||||
const nation = await resolveNationInfo(db, general.nationId);
|
||||
return {
|
||||
generalId: general.id,
|
||||
generalName: general.name,
|
||||
nationId: general.nationId,
|
||||
nationName: nation.name,
|
||||
color: nation.color,
|
||||
icon: '',
|
||||
};
|
||||
};
|
||||
|
||||
export const buildNationTarget = (
|
||||
nationId: number,
|
||||
nationName: string,
|
||||
color: string
|
||||
): MessageTarget => ({
|
||||
generalId: 0,
|
||||
generalName: '',
|
||||
nationId,
|
||||
nationName,
|
||||
color,
|
||||
icon: '',
|
||||
});
|
||||
@@ -12,8 +12,24 @@ import {
|
||||
shiftGeneralTurns,
|
||||
shiftNationTurns,
|
||||
} from './turns/reservedTurns.js';
|
||||
import {
|
||||
MESSAGE_MAILBOX_NATIONAL_BASE,
|
||||
MESSAGE_MAILBOX_PUBLIC,
|
||||
sendMessage,
|
||||
type MessageDraft,
|
||||
type MessageRecordDraft,
|
||||
type MessageType,
|
||||
} from '@sammo-ts/logic';
|
||||
import { buildNationTarget, buildTargetFromGeneral, resolveNationInfo } from './messages/targets.js';
|
||||
import {
|
||||
fetchMessagesFromMailbox,
|
||||
fetchOldMessagesFromMailbox,
|
||||
insertMessage,
|
||||
type MessageView,
|
||||
} from './messages/store.js';
|
||||
|
||||
const zRunReason = z.enum(['schedule', 'manual', 'poke']);
|
||||
const zMessageType = z.enum(['private', 'public', 'national', 'diplomacy']);
|
||||
|
||||
const zTurnRunBudget = z.object({
|
||||
budgetMs: z.number().int().positive(),
|
||||
@@ -244,6 +260,266 @@ export const appRouter = router({
|
||||
}),
|
||||
}),
|
||||
}),
|
||||
messages: router({
|
||||
getRecent: authedProcedure
|
||||
.input(
|
||||
z.object({
|
||||
generalId: z.number().int().positive(),
|
||||
sequence: z.number().int().optional(),
|
||||
})
|
||||
)
|
||||
.query(async ({ ctx, input }) => {
|
||||
const general = await ctx.db.general.findUnique({
|
||||
where: { id: input.generalId },
|
||||
});
|
||||
if (!general) {
|
||||
throw new TRPCError({
|
||||
code: 'NOT_FOUND',
|
||||
message: 'General not found.',
|
||||
});
|
||||
}
|
||||
|
||||
const sequence = input.sequence ?? -1;
|
||||
const nationId = general.nationId;
|
||||
const mailboxes = {
|
||||
private: general.id,
|
||||
public: MESSAGE_MAILBOX_PUBLIC,
|
||||
national: MESSAGE_MAILBOX_NATIONAL_BASE + nationId,
|
||||
diplomacy: MESSAGE_MAILBOX_NATIONAL_BASE + nationId,
|
||||
} satisfies Record<MessageType, number>;
|
||||
|
||||
const [privateMessages, publicMessages, nationalMessages, diplomacyMessages] =
|
||||
await Promise.all([
|
||||
fetchMessagesFromMailbox({
|
||||
db: ctx.db,
|
||||
mailbox: mailboxes.private,
|
||||
msgType: 'private',
|
||||
limit: 15,
|
||||
fromSeq: sequence,
|
||||
}),
|
||||
fetchMessagesFromMailbox({
|
||||
db: ctx.db,
|
||||
mailbox: mailboxes.public,
|
||||
msgType: 'public',
|
||||
limit: 15,
|
||||
fromSeq: sequence,
|
||||
}),
|
||||
fetchMessagesFromMailbox({
|
||||
db: ctx.db,
|
||||
mailbox: mailboxes.national,
|
||||
msgType: 'national',
|
||||
limit: 15,
|
||||
fromSeq: sequence,
|
||||
}),
|
||||
fetchMessagesFromMailbox({
|
||||
db: ctx.db,
|
||||
mailbox: mailboxes.diplomacy,
|
||||
msgType: 'diplomacy',
|
||||
limit: 15,
|
||||
fromSeq: sequence,
|
||||
}),
|
||||
]);
|
||||
|
||||
const messageBuckets: Record<MessageType, MessageView[]> = {
|
||||
private: privateMessages,
|
||||
public: publicMessages,
|
||||
national: nationalMessages,
|
||||
diplomacy: diplomacyMessages,
|
||||
};
|
||||
|
||||
let nextSequence = sequence;
|
||||
let minSequence = sequence;
|
||||
let lastType: MessageType | null = null;
|
||||
const updateSequence = (type: MessageType, messages: Array<{ id: number }>) => {
|
||||
for (const message of messages) {
|
||||
if (message.id > nextSequence) {
|
||||
nextSequence = message.id;
|
||||
}
|
||||
if (message.id <= minSequence) {
|
||||
minSequence = message.id;
|
||||
lastType = type;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
updateSequence('private', privateMessages);
|
||||
updateSequence('public', publicMessages);
|
||||
updateSequence('national', nationalMessages);
|
||||
updateSequence('diplomacy', diplomacyMessages);
|
||||
|
||||
if (lastType === 'private' && messageBuckets.private.length > 0) {
|
||||
messageBuckets.private.pop();
|
||||
} else if (
|
||||
lastType === 'public' &&
|
||||
messageBuckets.public.length > 0
|
||||
) {
|
||||
messageBuckets.public.pop();
|
||||
} else if (
|
||||
lastType === 'national' &&
|
||||
messageBuckets.national.length > 0
|
||||
) {
|
||||
messageBuckets.national.pop();
|
||||
} else if (
|
||||
lastType === 'diplomacy' &&
|
||||
messageBuckets.diplomacy.length > 0
|
||||
) {
|
||||
messageBuckets.diplomacy.pop();
|
||||
}
|
||||
|
||||
return {
|
||||
result: true,
|
||||
...messageBuckets,
|
||||
sequence: nextSequence,
|
||||
nationId: nationId,
|
||||
generalName: general.name,
|
||||
latestRead: {
|
||||
diplomacy: 0,
|
||||
private: 0,
|
||||
},
|
||||
};
|
||||
}),
|
||||
getOld: authedProcedure
|
||||
.input(
|
||||
z.object({
|
||||
generalId: z.number().int().positive(),
|
||||
to: z.number().int().positive(),
|
||||
type: zMessageType,
|
||||
})
|
||||
)
|
||||
.query(async ({ ctx, input }) => {
|
||||
const general = await ctx.db.general.findUnique({
|
||||
where: { id: input.generalId },
|
||||
});
|
||||
if (!general) {
|
||||
throw new TRPCError({
|
||||
code: 'NOT_FOUND',
|
||||
message: 'General not found.',
|
||||
});
|
||||
}
|
||||
|
||||
const nationId = general.nationId;
|
||||
const mailboxes = {
|
||||
private: general.id,
|
||||
public: MESSAGE_MAILBOX_PUBLIC,
|
||||
national: MESSAGE_MAILBOX_NATIONAL_BASE + nationId,
|
||||
diplomacy: MESSAGE_MAILBOX_NATIONAL_BASE + nationId,
|
||||
} satisfies Record<MessageType, number>;
|
||||
|
||||
const messageBuckets: Record<MessageType, MessageView[]> = {
|
||||
private: [],
|
||||
public: [],
|
||||
national: [],
|
||||
diplomacy: [],
|
||||
};
|
||||
|
||||
const messages = await fetchOldMessagesFromMailbox({
|
||||
db: ctx.db,
|
||||
mailbox: mailboxes[input.type],
|
||||
msgType: input.type,
|
||||
toSeq: input.to,
|
||||
limit: 15,
|
||||
});
|
||||
messageBuckets[input.type] = messages;
|
||||
|
||||
return {
|
||||
result: true,
|
||||
keepRecent: true,
|
||||
sequence: 0,
|
||||
nationId,
|
||||
generalName: general.name,
|
||||
...messageBuckets,
|
||||
};
|
||||
}),
|
||||
send: authedProcedure
|
||||
.input(
|
||||
z.object({
|
||||
generalId: z.number().int().positive(),
|
||||
mailbox: z.number().int(),
|
||||
text: z.string().min(1),
|
||||
})
|
||||
)
|
||||
.mutation(async ({ ctx, input }) => {
|
||||
const general = await ctx.db.general.findUnique({
|
||||
where: { id: input.generalId },
|
||||
});
|
||||
if (!general) {
|
||||
throw new TRPCError({
|
||||
code: 'NOT_FOUND',
|
||||
message: 'General not found.',
|
||||
});
|
||||
}
|
||||
|
||||
const src = await buildTargetFromGeneral(ctx.db, general);
|
||||
const now = new Date();
|
||||
const validUntil = new Date('9999-12-31T00:00:00Z');
|
||||
|
||||
let msgType: MessageType;
|
||||
let dest = src;
|
||||
|
||||
if (input.mailbox === MESSAGE_MAILBOX_PUBLIC) {
|
||||
msgType = 'public';
|
||||
} else if (input.mailbox >= MESSAGE_MAILBOX_NATIONAL_BASE) {
|
||||
const destNationId =
|
||||
input.mailbox - MESSAGE_MAILBOX_NATIONAL_BASE;
|
||||
if (destNationId <= 0) {
|
||||
throw new TRPCError({
|
||||
code: 'BAD_REQUEST',
|
||||
message: 'Invalid nation mailbox.',
|
||||
});
|
||||
}
|
||||
const nationInfo = await resolveNationInfo(
|
||||
ctx.db,
|
||||
destNationId
|
||||
);
|
||||
dest = buildNationTarget(
|
||||
destNationId,
|
||||
nationInfo.name,
|
||||
nationInfo.color
|
||||
);
|
||||
msgType =
|
||||
destNationId === general.nationId
|
||||
? 'national'
|
||||
: 'diplomacy';
|
||||
} else if (input.mailbox > 0) {
|
||||
const destGeneral = await ctx.db.general.findUnique({
|
||||
where: { id: input.mailbox },
|
||||
});
|
||||
if (!destGeneral) {
|
||||
throw new TRPCError({
|
||||
code: 'NOT_FOUND',
|
||||
message: 'Destination general not found.',
|
||||
});
|
||||
}
|
||||
dest = await buildTargetFromGeneral(ctx.db, destGeneral);
|
||||
msgType = 'private';
|
||||
} else {
|
||||
throw new TRPCError({
|
||||
code: 'BAD_REQUEST',
|
||||
message: 'Invalid mailbox.',
|
||||
});
|
||||
}
|
||||
|
||||
const draft: MessageDraft = {
|
||||
msgType,
|
||||
src,
|
||||
dest,
|
||||
text: input.text,
|
||||
time: now,
|
||||
validUntil,
|
||||
option: {},
|
||||
};
|
||||
|
||||
const result = await sendMessage(
|
||||
{
|
||||
insertMessage: (draft: MessageRecordDraft) =>
|
||||
insertMessage(ctx.db, draft),
|
||||
},
|
||||
draft
|
||||
);
|
||||
|
||||
return { msgType, msgId: result.receiverId };
|
||||
}),
|
||||
}),
|
||||
turnDaemon: router({
|
||||
run: procedure
|
||||
.input(
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
{
|
||||
"che": {
|
||||
"1": "하북",
|
||||
"2": "중원",
|
||||
"3": "서북",
|
||||
"4": "서촉",
|
||||
"5": "남중",
|
||||
"6": "초",
|
||||
"7": "오월",
|
||||
"8": "동이"
|
||||
},
|
||||
"chess": {
|
||||
"1": "킹",
|
||||
"2": "퀸",
|
||||
"3": "룩",
|
||||
"4": "나이트",
|
||||
"5": "비숍",
|
||||
"6": "폰",
|
||||
"7": "빈칸"
|
||||
},
|
||||
"cr": {
|
||||
"1": "하북",
|
||||
"2": "중원",
|
||||
"3": "서북",
|
||||
"4": "서촉",
|
||||
"5": "남중",
|
||||
"6": "초",
|
||||
"7": "오월",
|
||||
"8": "동이"
|
||||
},
|
||||
"ludo_rathowm": {
|
||||
"1": "호넷 마인령",
|
||||
"2": "케이브리스 마인령",
|
||||
"3": "카라의 숲",
|
||||
"4": "샹그릴라",
|
||||
"5": "제스 북부",
|
||||
"6": "제스 남부",
|
||||
"7": "헬만 서부",
|
||||
"8": "헬만 동부",
|
||||
"9": "리자스 남부",
|
||||
"10": "리자스 북부",
|
||||
"11": "JAPAN",
|
||||
"12": "자유도시 동부",
|
||||
"13": "자유도시 서부",
|
||||
"14": "AL교"
|
||||
},
|
||||
"miniche": {
|
||||
"1": "하북",
|
||||
"2": "중원",
|
||||
"3": "서북",
|
||||
"4": "서촉",
|
||||
"5": "남중",
|
||||
"6": "초",
|
||||
"7": "오월",
|
||||
"8": "동이"
|
||||
},
|
||||
"miniche_b": {
|
||||
"1": "하북",
|
||||
"2": "중원",
|
||||
"3": "서북",
|
||||
"4": "서촉",
|
||||
"5": "남중",
|
||||
"6": "초",
|
||||
"7": "오월",
|
||||
"8": "동이"
|
||||
},
|
||||
"miniche_clean": {
|
||||
"1": "하북",
|
||||
"2": "중원",
|
||||
"3": "서북",
|
||||
"4": "서촉",
|
||||
"5": "남중",
|
||||
"6": "초",
|
||||
"7": "오월",
|
||||
"8": "동이"
|
||||
},
|
||||
"pokemon_v1": {
|
||||
"1": "관동 지방"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,263 @@
|
||||
{
|
||||
"id": "basic",
|
||||
"name": "basic",
|
||||
"defaultCrewTypeId": 1100,
|
||||
"armTypes": {
|
||||
"1": "보병",
|
||||
"2": "궁병",
|
||||
"3": "기병",
|
||||
"4": "귀병",
|
||||
"5": "차병"
|
||||
},
|
||||
"crewTypes": [
|
||||
{
|
||||
"id": 1000,
|
||||
"armType": 0,
|
||||
"name": "성벽",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 99,
|
||||
"rice": 9,
|
||||
"requirements": [],
|
||||
"attackCoef": [],
|
||||
"defenceCoef": {
|
||||
"1": 1.2
|
||||
},
|
||||
"info": [
|
||||
"성벽입니다.",
|
||||
"생성할 수 없습니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1100,
|
||||
"armType": 1,
|
||||
"name": "보병",
|
||||
"attack": 100,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 9,
|
||||
"rice": 9,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"표준적인 보병입니다.",
|
||||
"보병은 방어특화이며,",
|
||||
"상대가 회피하기 어렵습니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1200,
|
||||
"armType": 2,
|
||||
"name": "궁병",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 20,
|
||||
"magicCoef": 0,
|
||||
"cost": 10,
|
||||
"rice": 10,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"표준적인 궁병입니다.",
|
||||
"궁병은 회피특화입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1300,
|
||||
"armType": 3,
|
||||
"name": "기병",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 11,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"표준적인 기병입니다.",
|
||||
"기병은 공격특화입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1400,
|
||||
"armType": 4,
|
||||
"name": "귀병",
|
||||
"attack": 80,
|
||||
"defence": 80,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0.5,
|
||||
"cost": 9,
|
||||
"rice": 9,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"계략을 사용하는 병종입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1405,
|
||||
"armType": 4,
|
||||
"name": "남귀병",
|
||||
"attack": 60,
|
||||
"defence": 60,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0.8,
|
||||
"cost": 8,
|
||||
"rice": 8,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"전투를 포기하고 계략에 몰두합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1500,
|
||||
"armType": 5,
|
||||
"name": "정란",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 15,
|
||||
"rice": 5,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqMinRelYear",
|
||||
"year": 3
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 0.8,
|
||||
"2": 0.8,
|
||||
"3": 0.8,
|
||||
"4": 0.8,
|
||||
"0": 1.8
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"2": 1.2,
|
||||
"3": 1.2,
|
||||
"4": 1.2
|
||||
},
|
||||
"info": [
|
||||
"높은 구조물 위에서 공격합니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": [
|
||||
"che_성벽선제"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1501,
|
||||
"armType": 5,
|
||||
"name": "충차",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 20,
|
||||
"rice": 5,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqMinRelYear",
|
||||
"year": 3
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 0.8,
|
||||
"2": 0.8,
|
||||
"3": 0.8,
|
||||
"4": 0.8,
|
||||
"0": 2.4
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"2": 1.2,
|
||||
"3": 1.2,
|
||||
"4": 1.2
|
||||
},
|
||||
"info": [
|
||||
"엄청난 위력으로 성벽을 부수어버립니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,1358 @@
|
||||
{
|
||||
"id": "che",
|
||||
"name": "che",
|
||||
"defaultCrewTypeId": 1100,
|
||||
"armTypes": {
|
||||
"1": "보병",
|
||||
"2": "궁병",
|
||||
"3": "기병",
|
||||
"4": "귀병",
|
||||
"5": "차병"
|
||||
},
|
||||
"crewTypes": [
|
||||
{
|
||||
"id": 1000,
|
||||
"armType": 0,
|
||||
"name": "성벽",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 99,
|
||||
"rice": 9,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "Impossible"
|
||||
}
|
||||
],
|
||||
"attackCoef": [],
|
||||
"defenceCoef": {
|
||||
"1": 1.2
|
||||
},
|
||||
"info": [
|
||||
"성벽입니다.",
|
||||
"생성할 수 없습니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1100,
|
||||
"armType": 1,
|
||||
"name": "보병",
|
||||
"attack": 100,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 9,
|
||||
"rice": 9,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"표준적인 보병입니다.",
|
||||
"보병은 방어특화이며,",
|
||||
"상대가 회피하기 어렵습니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1101,
|
||||
"armType": 1,
|
||||
"name": "청주병",
|
||||
"attack": 100,
|
||||
"defence": 200,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 10,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"중원"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"저렴하고 튼튼합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1102,
|
||||
"armType": 1,
|
||||
"name": "수병",
|
||||
"attack": 150,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"오월"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"저렴하고 강력합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1103,
|
||||
"armType": 1,
|
||||
"name": "자객병",
|
||||
"attack": 100,
|
||||
"defence": 150,
|
||||
"speed": 8,
|
||||
"avoid": 20,
|
||||
"magicCoef": 0,
|
||||
"cost": 10,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"저"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"은밀하고 날쌥니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1104,
|
||||
"armType": 1,
|
||||
"name": "근위병",
|
||||
"attack": 150,
|
||||
"defence": 200,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"낙양"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"최강의 보병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1105,
|
||||
"armType": 1,
|
||||
"name": "등갑병",
|
||||
"attack": 100,
|
||||
"defence": 225,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"남중"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"등갑을 두른 보병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1106,
|
||||
"armType": 1,
|
||||
"name": "백이병",
|
||||
"attack": 175,
|
||||
"defence": 175,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"성도"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.1,
|
||||
"3": 0.9,
|
||||
"5": 1.1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.9,
|
||||
"3": 1.1,
|
||||
"5": 0.9
|
||||
},
|
||||
"info": [
|
||||
"정예 보병입니다. 불리한 싸움도 버텨냅니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1200,
|
||||
"armType": 2,
|
||||
"name": "궁병",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 10,
|
||||
"rice": 10,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"표준적인 궁병입니다.",
|
||||
"궁병은 선제사격을 하는 병종입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1201,
|
||||
"armType": 2,
|
||||
"name": "궁기병",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 8,
|
||||
"avoid": 20,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"동이"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.9,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.1,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"말을 타고 잘 피합니다. 특히 다른 궁병보다 보병에게 조금 더 강합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1202,
|
||||
"armType": 2,
|
||||
"name": "연노병",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 8,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"서촉"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"화살을 연사합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1203,
|
||||
"armType": 2,
|
||||
"name": "강궁병",
|
||||
"attack": 150,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"양양"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"강건한 궁병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1204,
|
||||
"armType": 2,
|
||||
"name": "석궁병",
|
||||
"attack": 200,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"건업"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"강력한 화살을 쏩니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1300,
|
||||
"armType": 3,
|
||||
"name": "기병",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 11,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"표준적인 기병입니다.",
|
||||
"기병은 공격특화입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1301,
|
||||
"armType": 3,
|
||||
"name": "백마병",
|
||||
"attack": 200,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"하북"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"백마의 위용을 보여줍니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1302,
|
||||
"armType": 3,
|
||||
"name": "중장기병",
|
||||
"attack": 150,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"서북"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"갑주를 두른 기병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1303,
|
||||
"armType": 3,
|
||||
"name": "돌격기병",
|
||||
"attack": 200,
|
||||
"defence": 100,
|
||||
"speed": 8,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"흉노"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"저돌적으로 공격합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1304,
|
||||
"armType": 3,
|
||||
"name": "철기병",
|
||||
"attack": 100,
|
||||
"defence": 250,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"강"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"철갑을 두른 기병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1305,
|
||||
"armType": 3,
|
||||
"name": "수렵기병",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 8,
|
||||
"avoid": 15,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"산월"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"날쎄고 빠른 기병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1306,
|
||||
"armType": 3,
|
||||
"name": "맹수병",
|
||||
"attack": 250,
|
||||
"defence": 175,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 16,
|
||||
"rice": 16,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"남만"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"어느 누구보다 강력합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1307,
|
||||
"armType": 3,
|
||||
"name": "호표기병",
|
||||
"attack": 200,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 14,
|
||||
"rice": 14,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"허창"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"정예 기병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1400,
|
||||
"armType": 4,
|
||||
"name": "귀병",
|
||||
"attack": 80,
|
||||
"defence": 80,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0.5,
|
||||
"cost": 9,
|
||||
"rice": 9,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"계략을 사용하는 병종입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1401,
|
||||
"armType": 4,
|
||||
"name": "신귀병",
|
||||
"attack": 80,
|
||||
"defence": 80,
|
||||
"speed": 7,
|
||||
"avoid": 20,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 10,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"초"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"신출귀몰한 귀병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1402,
|
||||
"armType": 4,
|
||||
"name": "백귀병",
|
||||
"attack": 80,
|
||||
"defence": 130,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 9,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"오환"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"저렴하고 튼튼합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1403,
|
||||
"armType": 4,
|
||||
"name": "흑귀병",
|
||||
"attack": 130,
|
||||
"defence": 80,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 11,
|
||||
"rice": 9,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"왜"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"저렴하고 강력합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1404,
|
||||
"armType": 4,
|
||||
"name": "악귀병",
|
||||
"attack": 130,
|
||||
"defence": 130,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"장안"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"백병전에도 능숙합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1405,
|
||||
"armType": 4,
|
||||
"name": "남귀병",
|
||||
"attack": 60,
|
||||
"defence": 60,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0.8,
|
||||
"cost": 8,
|
||||
"rice": 8,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"전투를 포기하고 계략에 몰두합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1406,
|
||||
"armType": 4,
|
||||
"name": "황귀병",
|
||||
"attack": 110,
|
||||
"defence": 110,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0.8,
|
||||
"cost": 13,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"낙양"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"고도로 훈련된 귀병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1407,
|
||||
"armType": 4,
|
||||
"name": "천귀병",
|
||||
"attack": 80,
|
||||
"defence": 130,
|
||||
"speed": 7,
|
||||
"avoid": 15,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 11,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"성도"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"갑주를 두른 귀병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1408,
|
||||
"armType": 4,
|
||||
"name": "마귀병",
|
||||
"attack": 130,
|
||||
"defence": 80,
|
||||
"speed": 7,
|
||||
"avoid": 15,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 12,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"업"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"날카로운 무기를 가진 귀병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1500,
|
||||
"armType": 5,
|
||||
"name": "정란",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 14,
|
||||
"rice": 5,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqMinRelYear",
|
||||
"year": 3
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.25,
|
||||
"2": 1.25,
|
||||
"3": 1.25,
|
||||
"4": 1.25,
|
||||
"0": 1.8,
|
||||
"1106": 1.112
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"2": 1.2,
|
||||
"3": 1.2,
|
||||
"4": 1.2,
|
||||
"1106": 1.067
|
||||
},
|
||||
"info": [
|
||||
"높은 구조물 위에서 공격합니다. 첫 공격은 성벽을 향합니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": [
|
||||
"che_성벽선제"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1501,
|
||||
"armType": 5,
|
||||
"name": "충차",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 18,
|
||||
"rice": 5,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqMinRelYear",
|
||||
"year": 3
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 0.8,
|
||||
"2": 0.8,
|
||||
"3": 0.8,
|
||||
"4": 0.8,
|
||||
"0": 2.4
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"2": 1.2,
|
||||
"3": 1.2,
|
||||
"4": 1.2
|
||||
},
|
||||
"info": [
|
||||
"엄청난 위력으로 성벽을 부수어버립니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1502,
|
||||
"armType": 5,
|
||||
"name": "벽력거",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 6,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 20,
|
||||
"rice": 5,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"업"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.25,
|
||||
"2": 1.25,
|
||||
"3": 1.25,
|
||||
"4": 1.25,
|
||||
"0": 1.8,
|
||||
"1106": 1.112
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"2": 1.2,
|
||||
"3": 1.2,
|
||||
"4": 1.2,
|
||||
"1106": 1.067
|
||||
},
|
||||
"info": [
|
||||
"상대에게 돌덩이를 날립니다. 첫 공격은 성벽을 향합니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": [
|
||||
"che_성벽선제"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1503,
|
||||
"armType": 5,
|
||||
"name": "목우",
|
||||
"attack": 50,
|
||||
"defence": 200,
|
||||
"speed": 5,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 15,
|
||||
"rice": 5,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"성도"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1,
|
||||
"2": 1,
|
||||
"3": 1,
|
||||
"4": 1,
|
||||
"0": 1.8
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1,
|
||||
"2": 1,
|
||||
"3": 1,
|
||||
"4": 1,
|
||||
"1106": 1
|
||||
},
|
||||
"info": [
|
||||
"상대를 저지하는 특수병기입니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": [
|
||||
"che_저지시도",
|
||||
"che_저지발동"
|
||||
],
|
||||
"iActionList": null
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,1315 @@
|
||||
{
|
||||
"id": "che_except_siege",
|
||||
"name": "che_except_siege",
|
||||
"defaultCrewTypeId": 1100,
|
||||
"armTypes": {
|
||||
"1": "보병",
|
||||
"2": "궁병",
|
||||
"3": "기병",
|
||||
"4": "귀병",
|
||||
"5": "차병"
|
||||
},
|
||||
"crewTypes": [
|
||||
{
|
||||
"id": 1000,
|
||||
"armType": 0,
|
||||
"name": "성벽",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 99,
|
||||
"rice": 9,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "Impossible"
|
||||
}
|
||||
],
|
||||
"attackCoef": [],
|
||||
"defenceCoef": {
|
||||
"1": 1.2
|
||||
},
|
||||
"info": [
|
||||
"성벽입니다.",
|
||||
"생성할 수 없습니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1100,
|
||||
"armType": 1,
|
||||
"name": "보병",
|
||||
"attack": 100,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 9,
|
||||
"rice": 9,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"표준적인 보병입니다.",
|
||||
"보병은 방어특화이며,",
|
||||
"상대가 회피하기 어렵습니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1101,
|
||||
"armType": 1,
|
||||
"name": "청주병",
|
||||
"attack": 100,
|
||||
"defence": 200,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 10,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"중원"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"저렴하고 튼튼합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1102,
|
||||
"armType": 1,
|
||||
"name": "수병",
|
||||
"attack": 150,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"오월"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"저렴하고 강력합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1103,
|
||||
"armType": 1,
|
||||
"name": "자객병",
|
||||
"attack": 100,
|
||||
"defence": 150,
|
||||
"speed": 8,
|
||||
"avoid": 20,
|
||||
"magicCoef": 0,
|
||||
"cost": 10,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"저"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"은밀하고 날쌥니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1104,
|
||||
"armType": 1,
|
||||
"name": "근위병",
|
||||
"attack": 150,
|
||||
"defence": 200,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"낙양"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"최강의 보병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1105,
|
||||
"armType": 1,
|
||||
"name": "등갑병",
|
||||
"attack": 100,
|
||||
"defence": 225,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"남중"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"등갑을 두른 보병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1106,
|
||||
"armType": 1,
|
||||
"name": "백이병",
|
||||
"attack": 175,
|
||||
"defence": 175,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"성도"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.1,
|
||||
"3": 0.9,
|
||||
"5": 1.1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.9,
|
||||
"3": 1.1,
|
||||
"5": 0.9
|
||||
},
|
||||
"info": [
|
||||
"정예 보병입니다. 불리한 싸움도 버텨냅니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1200,
|
||||
"armType": 2,
|
||||
"name": "궁병",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 10,
|
||||
"rice": 10,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"표준적인 궁병입니다.",
|
||||
"궁병은 선제사격을 하는 병종입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1201,
|
||||
"armType": 2,
|
||||
"name": "궁기병",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 8,
|
||||
"avoid": 20,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"동이"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.9,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.1,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"말을 타고 잘 피합니다. 특히 다른 궁병보다 보병에게 조금 더 강합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1202,
|
||||
"armType": 2,
|
||||
"name": "연노병",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 8,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"서촉"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"화살을 연사합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1203,
|
||||
"armType": 2,
|
||||
"name": "강궁병",
|
||||
"attack": 150,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"양양"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"강건한 궁병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1204,
|
||||
"armType": 2,
|
||||
"name": "석궁병",
|
||||
"attack": 200,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"건업"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"강력한 화살을 쏩니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1300,
|
||||
"armType": 3,
|
||||
"name": "기병",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 11,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"표준적인 기병입니다.",
|
||||
"기병은 공격특화입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1301,
|
||||
"armType": 3,
|
||||
"name": "백마병",
|
||||
"attack": 200,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"하북"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"백마의 위용을 보여줍니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1302,
|
||||
"armType": 3,
|
||||
"name": "중장기병",
|
||||
"attack": 150,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"서북"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"갑주를 두른 기병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1303,
|
||||
"armType": 3,
|
||||
"name": "돌격기병",
|
||||
"attack": 200,
|
||||
"defence": 100,
|
||||
"speed": 8,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"흉노"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"저돌적으로 공격합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1304,
|
||||
"armType": 3,
|
||||
"name": "철기병",
|
||||
"attack": 100,
|
||||
"defence": 200,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"강"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"철갑을 두른 기병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1305,
|
||||
"armType": 3,
|
||||
"name": "수렵기병",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 8,
|
||||
"avoid": 15,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"산월"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"날쎄고 빠른 기병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1306,
|
||||
"armType": 3,
|
||||
"name": "맹수병",
|
||||
"attack": 250,
|
||||
"defence": 175,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 16,
|
||||
"rice": 16,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"남만"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"어느 누구보다 강력합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1307,
|
||||
"armType": 3,
|
||||
"name": "호표기병",
|
||||
"attack": 200,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 14,
|
||||
"rice": 14,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"허창"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"정예 기병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1400,
|
||||
"armType": 4,
|
||||
"name": "귀병",
|
||||
"attack": 80,
|
||||
"defence": 80,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0.5,
|
||||
"cost": 9,
|
||||
"rice": 9,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"계략을 사용하는 병종입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1401,
|
||||
"armType": 4,
|
||||
"name": "신귀병",
|
||||
"attack": 80,
|
||||
"defence": 80,
|
||||
"speed": 7,
|
||||
"avoid": 20,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 10,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"초"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"신출귀몰한 귀병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1402,
|
||||
"armType": 4,
|
||||
"name": "백귀병",
|
||||
"attack": 80,
|
||||
"defence": 130,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 9,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"오환"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"저렴하고 튼튼합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1403,
|
||||
"armType": 4,
|
||||
"name": "흑귀병",
|
||||
"attack": 130,
|
||||
"defence": 80,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 11,
|
||||
"rice": 9,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"왜"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"저렴하고 강력합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1404,
|
||||
"armType": 4,
|
||||
"name": "악귀병",
|
||||
"attack": 130,
|
||||
"defence": 130,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"장안"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"백병전에도 능숙합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1405,
|
||||
"armType": 4,
|
||||
"name": "남귀병",
|
||||
"attack": 60,
|
||||
"defence": 60,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0.8,
|
||||
"cost": 8,
|
||||
"rice": 8,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"전투를 포기하고 계략에 몰두합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1406,
|
||||
"armType": 4,
|
||||
"name": "황귀병",
|
||||
"attack": 110,
|
||||
"defence": 110,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0.8,
|
||||
"cost": 13,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"낙양"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"고도로 훈련된 귀병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1407,
|
||||
"armType": 4,
|
||||
"name": "천귀병",
|
||||
"attack": 80,
|
||||
"defence": 130,
|
||||
"speed": 7,
|
||||
"avoid": 15,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 11,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"성도"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"갑주를 두른 귀병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1408,
|
||||
"armType": 4,
|
||||
"name": "마귀병",
|
||||
"attack": 130,
|
||||
"defence": 80,
|
||||
"speed": 7,
|
||||
"avoid": 15,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 12,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"업"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"날카로운 무기를 가진 귀병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1500,
|
||||
"armType": 5,
|
||||
"name": "정란",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 14,
|
||||
"rice": 5,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqMinRelYear",
|
||||
"year": 3
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.25,
|
||||
"2": 1.25,
|
||||
"3": 1.25,
|
||||
"4": 1.25,
|
||||
"0": 1.2,
|
||||
"1106": 1.112
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"2": 1.2,
|
||||
"3": 1.2,
|
||||
"4": 1.2,
|
||||
"1106": 1.067
|
||||
},
|
||||
"info": [
|
||||
"높은 구조물 위에서 공격합니다. 첫 공격은 성벽을 향합니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": [
|
||||
"che_성벽선제"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1502,
|
||||
"armType": 5,
|
||||
"name": "벽력거",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 6,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 20,
|
||||
"rice": 5,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"업"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.25,
|
||||
"2": 1.25,
|
||||
"3": 1.25,
|
||||
"4": 1.25,
|
||||
"0": 1.2,
|
||||
"1106": 1.112
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"2": 1.2,
|
||||
"3": 1.2,
|
||||
"4": 1.2,
|
||||
"1106": 1.067
|
||||
},
|
||||
"info": [
|
||||
"상대에게 돌덩이를 날립니다. 첫 공격은 성벽을 향합니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": [
|
||||
"che_성벽선제"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1503,
|
||||
"armType": 5,
|
||||
"name": "목우",
|
||||
"attack": 50,
|
||||
"defence": 200,
|
||||
"speed": 5,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 15,
|
||||
"rice": 5,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"성도"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1,
|
||||
"2": 1,
|
||||
"3": 1,
|
||||
"4": 1,
|
||||
"0": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1,
|
||||
"2": 1,
|
||||
"3": 1,
|
||||
"4": 1,
|
||||
"1106": 1
|
||||
},
|
||||
"info": [
|
||||
"상대를 저지하는 특수병기입니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": [
|
||||
"che_저지시도",
|
||||
"che_저지발동"
|
||||
],
|
||||
"iActionList": null
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,836 @@
|
||||
{
|
||||
"id": "cr",
|
||||
"name": "cr",
|
||||
"defaultCrewTypeId": 1100,
|
||||
"armTypes": {
|
||||
"1": "보병",
|
||||
"2": "궁병",
|
||||
"3": "기병",
|
||||
"4": "귀병",
|
||||
"5": "차병"
|
||||
},
|
||||
"crewTypes": [
|
||||
{
|
||||
"id": 1000,
|
||||
"armType": 0,
|
||||
"name": "성벽",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 99,
|
||||
"rice": 9,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "Impossible"
|
||||
}
|
||||
],
|
||||
"attackCoef": [],
|
||||
"defenceCoef": {
|
||||
"1": 1.2
|
||||
},
|
||||
"info": [
|
||||
"성벽입니다.",
|
||||
"생성할 수 없습니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1100,
|
||||
"armType": 1,
|
||||
"name": "보병",
|
||||
"attack": 100,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 9,
|
||||
"rice": 9,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"표준적인 보병입니다.",
|
||||
"보병은 방어특화이며,",
|
||||
"상대가 회피하기 어렵습니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1200,
|
||||
"armType": 2,
|
||||
"name": "궁병",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 10,
|
||||
"rice": 10,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"표준적인 궁병입니다.",
|
||||
"궁병은 선제사격을 하는 병종입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1300,
|
||||
"armType": 3,
|
||||
"name": "기병",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 11,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"표준적인 기병입니다.",
|
||||
"기병은 공격특화입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1104,
|
||||
"armType": 1,
|
||||
"name": "근위병",
|
||||
"attack": 150,
|
||||
"defence": 200,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"낙양"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"최강의 보병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1106,
|
||||
"armType": 1,
|
||||
"name": "백이병",
|
||||
"attack": 175,
|
||||
"defence": 175,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"성도"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.1,
|
||||
"3": 0.9,
|
||||
"5": 1.1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.9,
|
||||
"3": 1.1,
|
||||
"5": 0.9
|
||||
},
|
||||
"info": [
|
||||
"정예 보병입니다. 불리한 싸움도 버텨냅니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 97201,
|
||||
"armType": 2,
|
||||
"name": "화랑",
|
||||
"attack": 175,
|
||||
"defence": 150,
|
||||
"speed": 8,
|
||||
"avoid": 15,
|
||||
"magicCoef": 0.05,
|
||||
"cost": 13,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"한",
|
||||
"서라벌"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.9,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.1,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"특수한 궁병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1204,
|
||||
"armType": 2,
|
||||
"name": "석궁병",
|
||||
"attack": 200,
|
||||
"defence": 125,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"건업"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"강력한 화살을 쏩니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1303,
|
||||
"armType": 3,
|
||||
"name": "돌격기병",
|
||||
"attack": 200,
|
||||
"defence": 125,
|
||||
"speed": 8,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"서량",
|
||||
"안정"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"저돌적으로 공격합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1307,
|
||||
"armType": 3,
|
||||
"name": "호표기병",
|
||||
"attack": 200,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 14,
|
||||
"rice": 14,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"허창"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"정예 기병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1306,
|
||||
"armType": 3,
|
||||
"name": "맹수병",
|
||||
"attack": 250,
|
||||
"defence": 175,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 16,
|
||||
"rice": 16,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"운남"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"어느 누구보다 강력합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1400,
|
||||
"armType": 4,
|
||||
"name": "귀병",
|
||||
"attack": 80,
|
||||
"defence": 80,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0.5,
|
||||
"cost": 9,
|
||||
"rice": 9,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"계략을 사용하는 병종입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1405,
|
||||
"armType": 4,
|
||||
"name": "남귀병",
|
||||
"attack": 60,
|
||||
"defence": 60,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0.8,
|
||||
"cost": 8,
|
||||
"rice": 8,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"전투를 포기하고 계략에 몰두합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1404,
|
||||
"armType": 4,
|
||||
"name": "악귀병",
|
||||
"attack": 130,
|
||||
"defence": 130,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"장안"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"백병전에도 능숙합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1407,
|
||||
"armType": 4,
|
||||
"name": "천귀병",
|
||||
"attack": 90,
|
||||
"defence": 130,
|
||||
"speed": 7,
|
||||
"avoid": 15,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 11,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"성도"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"갑주를 두른 귀병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1500,
|
||||
"armType": 5,
|
||||
"name": "정란",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 14,
|
||||
"rice": 5,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqMinRelYear",
|
||||
"year": 3
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.25,
|
||||
"2": 1.25,
|
||||
"3": 1.25,
|
||||
"4": 1.25,
|
||||
"0": 1.8,
|
||||
"1106": 1.112
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"2": 1.2,
|
||||
"3": 1.2,
|
||||
"4": 1.2
|
||||
},
|
||||
"info": [
|
||||
"높은 구조물 위에서 공격합니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1501,
|
||||
"armType": 5,
|
||||
"name": "충차",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 20,
|
||||
"rice": 5,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqMinRelYear",
|
||||
"year": 3
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 0.8,
|
||||
"2": 0.8,
|
||||
"3": 0.8,
|
||||
"4": 0.8,
|
||||
"0": 2.4
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"2": 1.2,
|
||||
"3": 1.2,
|
||||
"4": 1.2
|
||||
},
|
||||
"info": [
|
||||
"엄청난 위력으로 성벽을 부수어버립니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1502,
|
||||
"armType": 5,
|
||||
"name": "벽력거",
|
||||
"attack": 135,
|
||||
"defence": 100,
|
||||
"speed": 6,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 20,
|
||||
"rice": 5,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"업"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.25,
|
||||
"2": 1.25,
|
||||
"3": 1.25,
|
||||
"4": 1.25,
|
||||
"0": 1.8,
|
||||
"1106": 1.112
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.833,
|
||||
"2": 0.833,
|
||||
"3": 0.833,
|
||||
"4": 0.833,
|
||||
"1106": 0.909
|
||||
},
|
||||
"info": [
|
||||
"상대에게 돌덩이를 날립니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 97101,
|
||||
"armType": 1,
|
||||
"name": "중장보병",
|
||||
"attack": 150,
|
||||
"defence": 175,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"전천후 보병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1202,
|
||||
"armType": 2,
|
||||
"name": "연노병",
|
||||
"attack": 150,
|
||||
"defence": 175,
|
||||
"speed": 8,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"화살을 연사합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1304,
|
||||
"armType": 3,
|
||||
"name": "철기병",
|
||||
"attack": 175,
|
||||
"defence": 175,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"철갑을 두른 기병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1401,
|
||||
"armType": 4,
|
||||
"name": "신귀병",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 20,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"신출귀몰한 귀병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,1974 @@
|
||||
{
|
||||
"id": "event_more_crewtype",
|
||||
"name": "event_more_crewtype",
|
||||
"defaultCrewTypeId": 1100,
|
||||
"armTypes": {
|
||||
"1": "보병",
|
||||
"2": "궁병",
|
||||
"3": "기병",
|
||||
"4": "귀병",
|
||||
"5": "차병"
|
||||
},
|
||||
"crewTypes": [
|
||||
{
|
||||
"id": 1000,
|
||||
"armType": 0,
|
||||
"name": "성벽",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 99,
|
||||
"rice": 9,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "Impossible"
|
||||
}
|
||||
],
|
||||
"attackCoef": [],
|
||||
"defenceCoef": {
|
||||
"1": 1.2
|
||||
},
|
||||
"info": [
|
||||
"성벽입니다.",
|
||||
"생성할 수 없습니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1100,
|
||||
"armType": 1,
|
||||
"name": "보병",
|
||||
"attack": 100,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 9,
|
||||
"rice": 9,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"표준적인 보병입니다.",
|
||||
"보병은 방어특화이며,",
|
||||
"상대가 회피하기 어렵습니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1101,
|
||||
"armType": 1,
|
||||
"name": "청주병",
|
||||
"attack": 100,
|
||||
"defence": 200,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 10,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"중원"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"저렴하고 튼튼합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1102,
|
||||
"armType": 1,
|
||||
"name": "수병",
|
||||
"attack": 150,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"오월"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"저렴하고 강력합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1103,
|
||||
"armType": 1,
|
||||
"name": "자객병",
|
||||
"attack": 100,
|
||||
"defence": 150,
|
||||
"speed": 8,
|
||||
"avoid": 20,
|
||||
"magicCoef": 0,
|
||||
"cost": 10,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"저"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"은밀하고 날쌥니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1104,
|
||||
"armType": 1,
|
||||
"name": "근위병",
|
||||
"attack": 150,
|
||||
"defence": 200,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"낙양"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"최강의 보병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1105,
|
||||
"armType": 1,
|
||||
"name": "등갑병",
|
||||
"attack": 100,
|
||||
"defence": 225,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"남중"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"등갑을 두른 보병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1106,
|
||||
"armType": 1,
|
||||
"name": "백이병",
|
||||
"attack": 175,
|
||||
"defence": 175,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"성도"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.1,
|
||||
"3": 0.9,
|
||||
"5": 1.1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.9,
|
||||
"3": 1.1,
|
||||
"5": 0.9
|
||||
},
|
||||
"info": [
|
||||
"정예 보병입니다. 불리한 싸움도 버텨냅니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 91100,
|
||||
"armType": 1,
|
||||
"name": "대검병",
|
||||
"attack": 150,
|
||||
"defence": 225,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 4000
|
||||
},
|
||||
{
|
||||
"type": "ReqCitiesWithCityLevel",
|
||||
"level": 8,
|
||||
"cities": [
|
||||
"완"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ReqNationAux",
|
||||
"key": "can_대검병사용",
|
||||
"op": "==",
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"대형 검을 사용합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 91101,
|
||||
"armType": 1,
|
||||
"name": "강습병",
|
||||
"attack": 175,
|
||||
"defence": 200,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 4000
|
||||
},
|
||||
{
|
||||
"type": "ReqCitiesWithCityLevel",
|
||||
"level": 8,
|
||||
"cities": [
|
||||
"북평"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"철퇴를 사용합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 91102,
|
||||
"armType": 1,
|
||||
"name": "극병",
|
||||
"attack": 250,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 18,
|
||||
"rice": 18,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 5000
|
||||
},
|
||||
{
|
||||
"type": "ReqCitiesWithCityLevel",
|
||||
"level": 8,
|
||||
"cities": [
|
||||
"저"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ReqNationAux",
|
||||
"key": "can_극병사용",
|
||||
"op": "==",
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"긴 극을 사용합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1200,
|
||||
"armType": 2,
|
||||
"name": "궁병",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 10,
|
||||
"rice": 10,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"표준적인 궁병입니다.",
|
||||
"궁병은 선제사격을 하는 병종입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1201,
|
||||
"armType": 2,
|
||||
"name": "궁기병",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 8,
|
||||
"avoid": 20,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"동이"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.9,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.1,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"말을 타고 잘 피합니다. 특히 다른 궁병보다 보병에게 조금 더 강합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1202,
|
||||
"armType": 2,
|
||||
"name": "연노병",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 8,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"서촉"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"화살을 연사합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1203,
|
||||
"armType": 2,
|
||||
"name": "강궁병",
|
||||
"attack": 150,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"양양"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"강건한 궁병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1204,
|
||||
"armType": 2,
|
||||
"name": "석궁병",
|
||||
"attack": 200,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"건업"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"강력한 화살을 쏩니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 91200,
|
||||
"armType": 2,
|
||||
"name": "화랑",
|
||||
"attack": 150,
|
||||
"defence": 150,
|
||||
"speed": 8,
|
||||
"avoid": 25,
|
||||
"magicCoef": 0,
|
||||
"cost": 14,
|
||||
"rice": 14,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 4000
|
||||
},
|
||||
{
|
||||
"type": "ReqCitiesWithCityLevel",
|
||||
"level": 8,
|
||||
"cities": [
|
||||
"위례"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"궁술 실력이 뛰어납니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 91201,
|
||||
"armType": 2,
|
||||
"name": "화시병",
|
||||
"attack": 225,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 14,
|
||||
"rice": 14,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 4000
|
||||
},
|
||||
{
|
||||
"type": "ReqCitiesWithCityLevel",
|
||||
"level": 8,
|
||||
"cities": [
|
||||
"장사"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ReqNationAux",
|
||||
"key": "can_화시병사용",
|
||||
"op": "==",
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"불이 붙은 화살을 날립니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 91202,
|
||||
"armType": 2,
|
||||
"name": "원융노병",
|
||||
"attack": 250,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 20,
|
||||
"rice": 19,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 5000
|
||||
},
|
||||
{
|
||||
"type": "ReqCitiesWithCityLevel",
|
||||
"level": 8,
|
||||
"cities": [
|
||||
"흉노"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ReqNationAux",
|
||||
"key": "can_원융노병사용",
|
||||
"op": "==",
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"먼 거리에서 적을 제압합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1300,
|
||||
"armType": 3,
|
||||
"name": "기병",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 11,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"표준적인 기병입니다.",
|
||||
"기병은 공격특화입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1301,
|
||||
"armType": 3,
|
||||
"name": "백마병",
|
||||
"attack": 200,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"하북"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"백마의 위용을 보여줍니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1302,
|
||||
"armType": 3,
|
||||
"name": "중장기병",
|
||||
"attack": 150,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"서북"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"갑주를 두른 기병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1303,
|
||||
"armType": 3,
|
||||
"name": "돌격기병",
|
||||
"attack": 200,
|
||||
"defence": 100,
|
||||
"speed": 8,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"흉노"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"저돌적으로 공격합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1304,
|
||||
"armType": 3,
|
||||
"name": "철기병",
|
||||
"attack": 100,
|
||||
"defence": 250,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"강"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"철갑을 두른 기병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1305,
|
||||
"armType": 3,
|
||||
"name": "수렵기병",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 8,
|
||||
"avoid": 15,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"산월"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"날쎄고 빠른 기병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1306,
|
||||
"armType": 3,
|
||||
"name": "맹수병",
|
||||
"attack": 250,
|
||||
"defence": 175,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 16,
|
||||
"rice": 16,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"남만"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"어느 누구보다 강력합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1307,
|
||||
"armType": 3,
|
||||
"name": "호표기병",
|
||||
"attack": 200,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 14,
|
||||
"rice": 14,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"허창"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"정예 기병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 91300,
|
||||
"armType": 3,
|
||||
"name": "양마기병",
|
||||
"attack": 200,
|
||||
"defence": 175,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 15,
|
||||
"rice": 15,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 4000
|
||||
},
|
||||
{
|
||||
"type": "ReqCitiesWithCityLevel",
|
||||
"level": 8,
|
||||
"cities": [
|
||||
"한중"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.1,
|
||||
"2": 0.9,
|
||||
"5": 1.1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.9,
|
||||
"2": 1.1,
|
||||
"5": 0.9
|
||||
},
|
||||
"info": [
|
||||
"험준한 지형에서 뛰어납니다.",
|
||||
"불리한 싸움도 버텨냅니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 91301,
|
||||
"armType": 3,
|
||||
"name": "산저병",
|
||||
"attack": 225,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 15,
|
||||
"rice": 15,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 4000
|
||||
},
|
||||
{
|
||||
"type": "ReqCitiesWithCityLevel",
|
||||
"level": 8,
|
||||
"cities": [
|
||||
"수춘"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ReqNationAux",
|
||||
"key": "can_산저병사용",
|
||||
"op": "==",
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"무식할 정도로 전장을 누빕니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 91302,
|
||||
"armType": 3,
|
||||
"name": "상병",
|
||||
"attack": 225,
|
||||
"defence": 250,
|
||||
"speed": 5,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 24,
|
||||
"rice": 24,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 5000
|
||||
},
|
||||
{
|
||||
"type": "ReqCitiesWithCityLevel",
|
||||
"level": 8,
|
||||
"cities": [
|
||||
"남만"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ReqNationAux",
|
||||
"key": "can_상병사용",
|
||||
"op": "==",
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"거대한 코끼리와 함께합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1400,
|
||||
"armType": 4,
|
||||
"name": "귀병",
|
||||
"attack": 80,
|
||||
"defence": 80,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0.5,
|
||||
"cost": 9,
|
||||
"rice": 9,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"계략을 사용하는 병종입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1401,
|
||||
"armType": 4,
|
||||
"name": "신귀병",
|
||||
"attack": 80,
|
||||
"defence": 80,
|
||||
"speed": 7,
|
||||
"avoid": 20,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 10,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"초"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"신출귀몰한 귀병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1402,
|
||||
"armType": 4,
|
||||
"name": "백귀병",
|
||||
"attack": 80,
|
||||
"defence": 130,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 9,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"오환"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"저렴하고 튼튼합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1403,
|
||||
"armType": 4,
|
||||
"name": "흑귀병",
|
||||
"attack": 130,
|
||||
"defence": 80,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 11,
|
||||
"rice": 9,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"왜"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"저렴하고 강력합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1404,
|
||||
"armType": 4,
|
||||
"name": "악귀병",
|
||||
"attack": 130,
|
||||
"defence": 130,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"장안"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"백병전에도 능숙합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1405,
|
||||
"armType": 4,
|
||||
"name": "남귀병",
|
||||
"attack": 60,
|
||||
"defence": 60,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0.8,
|
||||
"cost": 8,
|
||||
"rice": 8,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"전투를 포기하고 계략에 몰두합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1406,
|
||||
"armType": 4,
|
||||
"name": "황귀병",
|
||||
"attack": 110,
|
||||
"defence": 110,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0.8,
|
||||
"cost": 13,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"낙양"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"고도로 훈련된 귀병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1407,
|
||||
"armType": 4,
|
||||
"name": "천귀병",
|
||||
"attack": 80,
|
||||
"defence": 130,
|
||||
"speed": 7,
|
||||
"avoid": 15,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 11,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"성도"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"갑주를 두른 귀병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1408,
|
||||
"armType": 4,
|
||||
"name": "마귀병",
|
||||
"attack": 130,
|
||||
"defence": 80,
|
||||
"speed": 7,
|
||||
"avoid": 15,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 12,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"업"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"날카로운 무기를 가진 귀병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 91400,
|
||||
"armType": 4,
|
||||
"name": "음귀병",
|
||||
"attack": 110,
|
||||
"defence": 110,
|
||||
"speed": 7,
|
||||
"avoid": 15,
|
||||
"magicCoef": 0.7,
|
||||
"cost": 13,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 4000
|
||||
},
|
||||
{
|
||||
"type": "ReqCitiesWithCityLevel",
|
||||
"level": 8,
|
||||
"cities": [
|
||||
"강릉"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ReqNationAux",
|
||||
"key": "can_음귀병사용",
|
||||
"op": "==",
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"악기를 연주하여 적을 혼란시킵니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 91401,
|
||||
"armType": 4,
|
||||
"name": "향귀병",
|
||||
"attack": 100,
|
||||
"defence": 120,
|
||||
"speed": 8,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 4000
|
||||
},
|
||||
{
|
||||
"type": "ReqHighLevelCities",
|
||||
"level": 8,
|
||||
"count": 4
|
||||
},
|
||||
{
|
||||
"type": "ReqNotChief"
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"독특한 향을 피웁니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 91402,
|
||||
"armType": 4,
|
||||
"name": "무희",
|
||||
"attack": 180,
|
||||
"defence": 80,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 18,
|
||||
"rice": 17,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 5000
|
||||
},
|
||||
{
|
||||
"type": "ReqCitiesWithCityLevel",
|
||||
"level": 8,
|
||||
"cities": [
|
||||
"왜"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ReqNationAux",
|
||||
"key": "can_무희사용",
|
||||
"op": "==",
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"검무를 추는 귀병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1500,
|
||||
"armType": 5,
|
||||
"name": "정란",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 14,
|
||||
"rice": 5,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqMinRelYear",
|
||||
"year": 3
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.25,
|
||||
"2": 1.25,
|
||||
"3": 1.25,
|
||||
"4": 1.25,
|
||||
"0": 1.8,
|
||||
"1106": 1.112,
|
||||
"91300": 1.112
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"2": 1.2,
|
||||
"3": 1.2,
|
||||
"4": 1.2,
|
||||
"1106": 1.067,
|
||||
"91300": 1.112
|
||||
},
|
||||
"info": [
|
||||
"높은 구조물 위에서 공격합니다. 첫 공격은 성벽을 향합니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": [
|
||||
"che_성벽선제"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1501,
|
||||
"armType": 5,
|
||||
"name": "충차",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 18,
|
||||
"rice": 5,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqMinRelYear",
|
||||
"year": 3
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 0.8,
|
||||
"2": 0.8,
|
||||
"3": 0.8,
|
||||
"4": 0.8,
|
||||
"0": 2.4,
|
||||
"1106": 1.112,
|
||||
"91300": 1.112
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"2": 1.2,
|
||||
"3": 1.2,
|
||||
"4": 1.2,
|
||||
"1106": 1.067,
|
||||
"91300": 1.067
|
||||
},
|
||||
"info": [
|
||||
"엄청난 위력으로 성벽을 부수어버립니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1502,
|
||||
"armType": 5,
|
||||
"name": "벽력거",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 6,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 20,
|
||||
"rice": 5,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"업"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.25,
|
||||
"2": 1.25,
|
||||
"3": 1.25,
|
||||
"4": 1.25,
|
||||
"0": 1.8,
|
||||
"1106": 1.112,
|
||||
"91300": 1.112
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"2": 1.2,
|
||||
"3": 1.2,
|
||||
"4": 1.2,
|
||||
"1106": 1.067,
|
||||
"91300": 1.112
|
||||
},
|
||||
"info": [
|
||||
"상대에게 돌덩이를 날립니다. 첫 공격은 성벽을 향합니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": [
|
||||
"che_선제사격시도",
|
||||
"che_선제사격발동"
|
||||
],
|
||||
"iActionList": [
|
||||
"che_성벽선제"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1503,
|
||||
"armType": 5,
|
||||
"name": "목우",
|
||||
"attack": 50,
|
||||
"defence": 200,
|
||||
"speed": 5,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 15,
|
||||
"rice": 5,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"성도"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1,
|
||||
"2": 1,
|
||||
"3": 1,
|
||||
"4": 1,
|
||||
"0": 1.8
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1,
|
||||
"2": 1,
|
||||
"3": 1,
|
||||
"4": 1
|
||||
},
|
||||
"info": [
|
||||
"상대를 저지하는 특수병기입니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": [
|
||||
"che_저지시도",
|
||||
"che_저지발동"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 91500,
|
||||
"armType": 5,
|
||||
"name": "화륜차",
|
||||
"attack": 300,
|
||||
"defence": 0,
|
||||
"speed": 5,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 40,
|
||||
"rice": 5,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 5000
|
||||
},
|
||||
{
|
||||
"type": "ReqNationAux",
|
||||
"key": "did_특성초토화",
|
||||
"op": ">=",
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"type": "ReqChief"
|
||||
},
|
||||
{
|
||||
"type": "ReqNationAux",
|
||||
"key": "can_화륜차사용",
|
||||
"op": "==",
|
||||
"value": 1
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.25,
|
||||
"2": 1.25,
|
||||
"3": 1.25,
|
||||
"4": 1.25,
|
||||
"0": 1.25,
|
||||
"1106": 1.112,
|
||||
"91300": 1.112
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"2": 1.2,
|
||||
"3": 1.2,
|
||||
"4": 1.2,
|
||||
"1106": 1.067,
|
||||
"91300": 1.067
|
||||
},
|
||||
"info": [
|
||||
"불타는 바퀴로 적진을 붕괴시킵니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,1843 @@
|
||||
{
|
||||
"id": "ludo_rathowm",
|
||||
"name": "ludo_rathowm",
|
||||
"defaultCrewTypeId": 1100,
|
||||
"armTypes": {
|
||||
"1": "보병",
|
||||
"2": "궁병",
|
||||
"3": "기병",
|
||||
"4": "귀병",
|
||||
"5": "차병"
|
||||
},
|
||||
"crewTypes": [
|
||||
{
|
||||
"id": 1000,
|
||||
"armType": 0,
|
||||
"name": "성벽",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 99,
|
||||
"rice": 9,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "Impossible"
|
||||
}
|
||||
],
|
||||
"attackCoef": [],
|
||||
"defenceCoef": {
|
||||
"1": 1.2
|
||||
},
|
||||
"info": [
|
||||
"성벽입니다.",
|
||||
"생성할 수 없습니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217100,
|
||||
"armType": 1,
|
||||
"name": "보병",
|
||||
"attack": 100,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 9,
|
||||
"rice": 9,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"표준적인 보병입니다. 보병은 방어특화입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217101,
|
||||
"armType": 1,
|
||||
"name": "마물병",
|
||||
"attack": 110,
|
||||
"defence": 160,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 9,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"호넷 마인령",
|
||||
"케이브리스 마인령"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"마군 지역 기본병종입니다. 조금더 강하지만 쌀을 많이 소비합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217102,
|
||||
"armType": 1,
|
||||
"name": "중장보병",
|
||||
"attack": 100,
|
||||
"defence": 250,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"헬만 동부"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"헬만 특유의 견고한 보병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217103,
|
||||
"armType": 1,
|
||||
"name": "흑의 군 보병",
|
||||
"attack": 150,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"리자스 남부",
|
||||
"리자스 북부"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"흑의 군 전통의 체계적인 훈련으로 공격력을 보완했습니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217104,
|
||||
"armType": 1,
|
||||
"name": "용병",
|
||||
"attack": 125,
|
||||
"defence": 175,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"자유도시 동부"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"일반 보병보다 비싸지만 받은 만큼은 일해줍니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217105,
|
||||
"armType": 1,
|
||||
"name": "사메라이",
|
||||
"attack": 175,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"제스 남부"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"검으로 난무를 가하는 몬스터 보병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217106,
|
||||
"armType": 1,
|
||||
"name": "템플나이트병",
|
||||
"attack": 75,
|
||||
"defence": 275,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"AL교"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"공격을 포기하고 오직 방어에만 집중합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217107,
|
||||
"armType": 1,
|
||||
"name": "메이드병",
|
||||
"attack": 150,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 20,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"메이드의 묘지"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"켓셀링크 휘하의 날렵한 전투메이드입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217108,
|
||||
"armType": 1,
|
||||
"name": "요괴병",
|
||||
"attack": 150,
|
||||
"defence": 150,
|
||||
"speed": 8,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"오슈"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"단단한 육체를 믿고 적진을 돌파합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217109,
|
||||
"armType": 1,
|
||||
"name": "리자스 친위병",
|
||||
"attack": 150,
|
||||
"defence": 200,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"리자스성"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"여왕을 수호하는 리자스 최강의 보병 정예보병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217110,
|
||||
"armType": 1,
|
||||
"name": "케이브리스 마물병",
|
||||
"attack": 200,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 14,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"케이브리스의 성"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"케이브리스 직속의 마물 정예 전투보병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217111,
|
||||
"armType": 1,
|
||||
"name": "투신",
|
||||
"attack": 200,
|
||||
"defence": 300,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 28,
|
||||
"rice": 23,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 5000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"투신도시"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"성마교단 유적에서 발굴된 사상 최강의 보병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_방어력증가5p"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217200,
|
||||
"armType": 2,
|
||||
"name": "궁병",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 20,
|
||||
"magicCoef": 0,
|
||||
"cost": 10,
|
||||
"rice": 10,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"1": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"표준적인 궁병입니다. 궁병은 회피특화입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217201,
|
||||
"armType": 2,
|
||||
"name": "투척마물병",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"호넷 마인령"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"날렵함을 포기하고 도끼를 투척합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217202,
|
||||
"armType": 2,
|
||||
"name": "백의 군 궁병",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 8,
|
||||
"avoid": 30,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"리자스 남부"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"전략을 활용하여 치고 빠지기에 능합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217203,
|
||||
"armType": 2,
|
||||
"name": "벌레술사병",
|
||||
"attack": 100,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 20,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"호박성"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"벌레들을 부려 몸을 보호하는 궁병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217204,
|
||||
"armType": 2,
|
||||
"name": "저격암살병",
|
||||
"attack": 225,
|
||||
"defence": 75,
|
||||
"speed": 5,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 14,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"블라디보스토크"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"독을 바른 탄환으로 적의 목숨을 앗아갑니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217205,
|
||||
"armType": 2,
|
||||
"name": "호루스병",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 8,
|
||||
"avoid": 20,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"거대전함"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"민첩하게 파고드는 호루스족 궁병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217206,
|
||||
"armType": 2,
|
||||
"name": "튤립병",
|
||||
"attack": 200,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 20,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"커스텀"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"최첨단병기 튤립으로 적을 폭격합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217207,
|
||||
"armType": 2,
|
||||
"name": "아이스플레임 궁병",
|
||||
"attack": 150,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 20,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"라그나로크 아크"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"혁명을 성공으로 이끈 정예 게릴라 궁병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217208,
|
||||
"armType": 2,
|
||||
"name": "카라 궁병",
|
||||
"attack": 225,
|
||||
"defence": 225,
|
||||
"speed": 7,
|
||||
"avoid": 30,
|
||||
"magicCoef": 0,
|
||||
"cost": 25,
|
||||
"rice": 25,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 5000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"펜실 카우"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 0.8,
|
||||
"3": 1.2,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"3": 0.8,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"선조의 힘을 이어받은 최강의 카라 정예 궁병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217300,
|
||||
"armType": 3,
|
||||
"name": "기동병",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 11,
|
||||
"rice": 11,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"표준적인 기동병입니다. 기동병은 공격특화입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217301,
|
||||
"armType": 3,
|
||||
"name": "하치온나",
|
||||
"attack": 175,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 15,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"자유도시 서부"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"작은 몸으로 회피하며 따끔한 일격을 먹이는 몬스터 기동병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217302,
|
||||
"armType": 3,
|
||||
"name": "적의 군 기동병",
|
||||
"attack": 200,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 13,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"리자스 북부"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"리자스군의 자랑인 기동부대입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217303,
|
||||
"armType": 3,
|
||||
"name": "안드로이드 기동병",
|
||||
"attack": 175,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"악의 탑"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"파이아르가 개발한 최첨단 안드로이드 기동병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217304,
|
||||
"armType": 3,
|
||||
"name": "파란쵸 기동병",
|
||||
"attack": 200,
|
||||
"defence": 100,
|
||||
"speed": 8,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 13,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"파란쵸 왕국"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"적진을 일점돌파하는 파란쵸왕국의 돌격 기동병입니다. "
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217305,
|
||||
"armType": 3,
|
||||
"name": "비행마물병",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 8,
|
||||
"avoid": 15,
|
||||
"magicCoef": 0,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"죽음의 대지"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"비행마물에 올라탄 기동마물병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217306,
|
||||
"armType": 3,
|
||||
"name": "마물조련사병",
|
||||
"attack": 250,
|
||||
"defence": 200,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 16,
|
||||
"rice": 16,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"랑그바우"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"무시무시한 몬스터에 올라타서 싸우는 극강의 기동병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217307,
|
||||
"armType": 3,
|
||||
"name": "기마병",
|
||||
"attack": 200,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 14,
|
||||
"rice": 14,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"오와리"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"JAPAN 특유의 기마에 올라타 적을 짓밟는 기동병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217308,
|
||||
"armType": 3,
|
||||
"name": "엔젤나이트",
|
||||
"attack": 300,
|
||||
"defence": 200,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 25,
|
||||
"rice": 25,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 5000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"떨어진 궁도"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8,
|
||||
"5": 1.2,
|
||||
"217502": 1
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2,
|
||||
"5": 0.8,
|
||||
"217502": 1
|
||||
},
|
||||
"info": [
|
||||
"신의 명령으로 파멸을 내리기 위해 강림했습니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": [
|
||||
"che_기병병종전투"
|
||||
],
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217400,
|
||||
"armType": 4,
|
||||
"name": "마법병",
|
||||
"attack": 80,
|
||||
"defence": 80,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 9,
|
||||
"rice": 9,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"마법을 사용하는 병종입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217401,
|
||||
"armType": 4,
|
||||
"name": "마물 마법병",
|
||||
"attack": 90,
|
||||
"defence": 90,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 11,
|
||||
"rice": 9,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"호넷 마인령",
|
||||
"케이브리스 마인령"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"마군 지역 기본병종입니다. 조금더 강하지만 금을 많이 소비합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217402,
|
||||
"armType": 4,
|
||||
"name": "카라 마법병",
|
||||
"attack": 80,
|
||||
"defence": 80,
|
||||
"speed": 7,
|
||||
"avoid": 20,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 10,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"카라의 숲"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"신속히 움직이며 카라의 저주로 적을 공격합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217403,
|
||||
"armType": 4,
|
||||
"name": "제스 마법병",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 10,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"제스 북부"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"마법국가 제스의 전통있는 마법병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217404,
|
||||
"armType": 4,
|
||||
"name": "무녀",
|
||||
"attack": 80,
|
||||
"defence": 80,
|
||||
"speed": 8,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 10,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"JAPAN"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"신마법과 함께 신통한 춤으로 활력을 불어넣는 마법병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217405,
|
||||
"armType": 4,
|
||||
"name": "프로즌",
|
||||
"attack": 90,
|
||||
"defence": 70,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0.8,
|
||||
"cost": 10,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"헬만 서부"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"백병전에 불리한 연약한 몸으로 마법 사용에 집중하는 몬스터입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217406,
|
||||
"armType": 4,
|
||||
"name": "마소한 마법병",
|
||||
"attack": 70,
|
||||
"defence": 90,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0.8,
|
||||
"cost": 11,
|
||||
"rice": 10,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqRegions",
|
||||
"regions": [
|
||||
"케이브리스 마인령"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"로브를 여러겹 둘러입은 마물마법병입니다. 직접 전투보단 마법에 집중합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217407,
|
||||
"armType": 4,
|
||||
"name": "신관병",
|
||||
"attack": 80,
|
||||
"defence": 130,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 9,
|
||||
"rice": 11,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 2000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"카이즈"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"AL교의 전투신관입니다. 몸을 보호하는 성스러운 마법을 사용합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217408,
|
||||
"armType": 4,
|
||||
"name": "중장마법병",
|
||||
"attack": 80,
|
||||
"defence": 130,
|
||||
"speed": 7,
|
||||
"avoid": 15,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 11,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"로제스그라드"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"두터운 로브를 입고 불길한 주문을 읊습니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217409,
|
||||
"armType": 4,
|
||||
"name": "악마병",
|
||||
"attack": 130,
|
||||
"defence": 80,
|
||||
"speed": 7,
|
||||
"avoid": 15,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 11,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"올드제스"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"고대 제스 왕가의 계약에 따라 소환된 흑마법병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217410,
|
||||
"armType": 4,
|
||||
"name": "호넷 마물병",
|
||||
"attack": 130,
|
||||
"defence": 130,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0.6,
|
||||
"cost": 12,
|
||||
"rice": 12,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"구 마왕성"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"호넷 직속의 최강 마물 마법병입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217411,
|
||||
"armType": 4,
|
||||
"name": "Z가디언",
|
||||
"attack": 180,
|
||||
"defence": 180,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0.7,
|
||||
"cost": 28,
|
||||
"rice": 20,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 5000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"라그나로크 아크"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"5": 1.2
|
||||
},
|
||||
"defenceCoef": {
|
||||
"5": 0.8
|
||||
},
|
||||
"info": [
|
||||
"제스의 기술력이 집약된 최고의 마법병기입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217500,
|
||||
"armType": 5,
|
||||
"name": "정란",
|
||||
"attack": 150,
|
||||
"defence": 150,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 15,
|
||||
"rice": 5,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqMinRelYear",
|
||||
"year": 3
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 0.8,
|
||||
"2": 0.8,
|
||||
"3": 0.8,
|
||||
"4": 0.8,
|
||||
"0": 1.8
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"2": 1.2,
|
||||
"3": 1.2,
|
||||
"4": 1.2
|
||||
},
|
||||
"info": [
|
||||
"높은 구조물 위에서 공격합니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217501,
|
||||
"armType": 5,
|
||||
"name": "충차",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 20,
|
||||
"rice": 5,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqMinRelYear",
|
||||
"year": 3
|
||||
}
|
||||
],
|
||||
"attackCoef": {
|
||||
"1": 0.8,
|
||||
"2": 0.8,
|
||||
"3": 0.8,
|
||||
"4": 0.8,
|
||||
"0": 2.4
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 1.2,
|
||||
"2": 1.2,
|
||||
"3": 1.2,
|
||||
"4": 1.2
|
||||
},
|
||||
"info": [
|
||||
"엄청난 위력으로 성벽을 부수어버립니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 217502,
|
||||
"armType": 5,
|
||||
"name": "튤립3호",
|
||||
"attack": 275,
|
||||
"defence": 300,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 35,
|
||||
"rice": 15,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 5000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"커스텀"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": [],
|
||||
"defenceCoef": [],
|
||||
"info": [
|
||||
"파괴적인 위력과 정말 파괴적인 비용을 자랑하는 전차입니다. "
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,303 @@
|
||||
{
|
||||
"id": "siegetank",
|
||||
"name": "siegetank",
|
||||
"defaultCrewTypeId": 1100,
|
||||
"armTypes": {
|
||||
"1": "보병",
|
||||
"2": "궁병",
|
||||
"3": "기병",
|
||||
"4": "귀병",
|
||||
"5": "차병"
|
||||
},
|
||||
"crewTypes": [
|
||||
{
|
||||
"id": 1000,
|
||||
"armType": 0,
|
||||
"name": "성벽",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 99,
|
||||
"rice": 9,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "Impossible"
|
||||
}
|
||||
],
|
||||
"attackCoef": [],
|
||||
"defenceCoef": {
|
||||
"1": 1.2
|
||||
},
|
||||
"info": [
|
||||
"성벽입니다.",
|
||||
"생성할 수 없습니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1100,
|
||||
"armType": 1,
|
||||
"name": "보병",
|
||||
"attack": 100,
|
||||
"defence": 150,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0,
|
||||
"cost": 18,
|
||||
"rice": 18,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"2": 1.2,
|
||||
"3": 0.8
|
||||
},
|
||||
"defenceCoef": {
|
||||
"2": 0.8,
|
||||
"3": 1.2
|
||||
},
|
||||
"info": [
|
||||
"표준적인 보병입니다.",
|
||||
"보병은 방어특화이며,",
|
||||
"상대가 회피하기 어렵습니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1200,
|
||||
"armType": 2,
|
||||
"name": "궁병",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 20,
|
||||
"magicCoef": 0,
|
||||
"cost": 20,
|
||||
"rice": 20,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"3": 1.2,
|
||||
"1": 0.8
|
||||
},
|
||||
"defenceCoef": {
|
||||
"3": 0.8,
|
||||
"1": 1.2
|
||||
},
|
||||
"info": [
|
||||
"표준적인 궁병입니다.",
|
||||
"궁병은 회피특화입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1300,
|
||||
"armType": 3,
|
||||
"name": "기병",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0,
|
||||
"cost": 22,
|
||||
"rice": 22,
|
||||
"requirements": [],
|
||||
"attackCoef": {
|
||||
"1": 1.2,
|
||||
"2": 0.8
|
||||
},
|
||||
"defenceCoef": {
|
||||
"1": 0.8,
|
||||
"2": 1.2
|
||||
},
|
||||
"info": [
|
||||
"표준적인 기병입니다.",
|
||||
"기병은 공격특화입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1400,
|
||||
"armType": 4,
|
||||
"name": "귀병",
|
||||
"attack": 80,
|
||||
"defence": 80,
|
||||
"speed": 7,
|
||||
"avoid": 5,
|
||||
"magicCoef": 0.5,
|
||||
"cost": 18,
|
||||
"rice": 18,
|
||||
"requirements": [],
|
||||
"attackCoef": [],
|
||||
"defenceCoef": [],
|
||||
"info": [
|
||||
"계략을 사용하는 병종입니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1405,
|
||||
"armType": 4,
|
||||
"name": "남귀병",
|
||||
"attack": 60,
|
||||
"defence": 60,
|
||||
"speed": 7,
|
||||
"avoid": 10,
|
||||
"magicCoef": 0.8,
|
||||
"cost": 16,
|
||||
"rice": 16,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
}
|
||||
],
|
||||
"attackCoef": [],
|
||||
"defenceCoef": [],
|
||||
"info": [
|
||||
"전투를 포기하고 계략에 몰두합니다."
|
||||
],
|
||||
"initSkillTrigger": null,
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1500,
|
||||
"armType": 5,
|
||||
"name": "정란",
|
||||
"attack": 100,
|
||||
"defence": 100,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 7,
|
||||
"rice": 3,
|
||||
"requirements": [],
|
||||
"attackCoef": [
|
||||
1.8
|
||||
],
|
||||
"defenceCoef": [],
|
||||
"info": [
|
||||
"높은 구조물 위에서 공격합니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1501,
|
||||
"armType": 5,
|
||||
"name": "충차",
|
||||
"attack": 150,
|
||||
"defence": 100,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 10,
|
||||
"rice": 3,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 1000
|
||||
},
|
||||
{
|
||||
"type": "ReqMinRelYear",
|
||||
"year": 3
|
||||
}
|
||||
],
|
||||
"attackCoef": [
|
||||
2.4
|
||||
],
|
||||
"defenceCoef": [],
|
||||
"info": [
|
||||
"엄청난 위력으로 성벽을 부수어버립니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1502,
|
||||
"armType": 5,
|
||||
"name": "벽력거",
|
||||
"attack": 200,
|
||||
"defence": 100,
|
||||
"speed": 6,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 20,
|
||||
"rice": 4,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"업"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": [
|
||||
1.8
|
||||
],
|
||||
"defenceCoef": [],
|
||||
"info": [
|
||||
"상대에게 돌덩이를 날립니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
},
|
||||
{
|
||||
"id": 1503,
|
||||
"armType": 5,
|
||||
"name": "목우",
|
||||
"attack": 50,
|
||||
"defence": 200,
|
||||
"speed": 5,
|
||||
"avoid": 0,
|
||||
"magicCoef": 0,
|
||||
"cost": 15,
|
||||
"rice": 3,
|
||||
"requirements": [
|
||||
{
|
||||
"type": "ReqTech",
|
||||
"tech": 3000
|
||||
},
|
||||
{
|
||||
"type": "ReqCities",
|
||||
"cities": [
|
||||
"성도"
|
||||
]
|
||||
}
|
||||
],
|
||||
"attackCoef": [],
|
||||
"defenceCoef": [],
|
||||
"info": [
|
||||
"상대를 저지하는 특수병기입니다."
|
||||
],
|
||||
"initSkillTrigger": [
|
||||
"che_성벽부상무효"
|
||||
],
|
||||
"phaseSkillTrigger": null,
|
||||
"iActionList": null
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -3,6 +3,7 @@ export type { RandomGenerator } from '@sammo-ts/common';
|
||||
export * from './actions/index.js';
|
||||
export * from './constraints/index.js';
|
||||
export * from './logging/index.js';
|
||||
export * from './messages/index.js';
|
||||
export * from './ports/world.js';
|
||||
export * from './ports/worldSnapshot.js';
|
||||
export * from './scenario/index.js';
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
export * from './message.js';
|
||||
@@ -0,0 +1,168 @@
|
||||
export type MessageType = 'public' | 'private' | 'national' | 'diplomacy';
|
||||
|
||||
export const MESSAGE_MAILBOX_PUBLIC = 9999;
|
||||
export const MESSAGE_MAILBOX_NATIONAL_BASE = 9000;
|
||||
|
||||
export interface MessageTarget {
|
||||
generalId: number;
|
||||
generalName: string;
|
||||
nationId: number;
|
||||
nationName: string;
|
||||
color: string;
|
||||
icon: string;
|
||||
}
|
||||
|
||||
export type MessageOption = Record<string, unknown>;
|
||||
|
||||
export interface MessageDraft {
|
||||
msgType: MessageType;
|
||||
src: MessageTarget;
|
||||
dest: MessageTarget;
|
||||
text: string;
|
||||
time: Date;
|
||||
validUntil: Date;
|
||||
option?: MessageOption | null;
|
||||
}
|
||||
|
||||
export interface MessagePayload {
|
||||
src: MessageTarget;
|
||||
dest: MessageTarget;
|
||||
text: string;
|
||||
option?: MessageOption | null;
|
||||
}
|
||||
|
||||
export interface MessageRecordDraft {
|
||||
mailbox: number;
|
||||
msgType: MessageType;
|
||||
srcId: number;
|
||||
destId: number;
|
||||
time: Date;
|
||||
validUntil: Date;
|
||||
payload: MessagePayload;
|
||||
}
|
||||
|
||||
export interface MessageStore {
|
||||
insertMessage(draft: MessageRecordDraft): Promise<number>;
|
||||
}
|
||||
|
||||
export const isValidMailbox = (mailbox: number): boolean =>
|
||||
mailbox > 0 && mailbox <= MESSAGE_MAILBOX_PUBLIC;
|
||||
|
||||
export const resolveReceiverMailbox = (draft: MessageDraft): number => {
|
||||
switch (draft.msgType) {
|
||||
case 'public':
|
||||
return MESSAGE_MAILBOX_PUBLIC;
|
||||
case 'national':
|
||||
case 'diplomacy':
|
||||
return MESSAGE_MAILBOX_NATIONAL_BASE + draft.dest.nationId;
|
||||
case 'private':
|
||||
return draft.dest.generalId;
|
||||
}
|
||||
};
|
||||
|
||||
export const resolveSenderMailbox = (draft: MessageDraft): number | null => {
|
||||
switch (draft.msgType) {
|
||||
case 'public':
|
||||
return null;
|
||||
case 'private':
|
||||
return draft.src.generalId !== draft.dest.generalId
|
||||
? draft.src.generalId
|
||||
: null;
|
||||
case 'national':
|
||||
return draft.src.nationId !== draft.dest.nationId
|
||||
? MESSAGE_MAILBOX_NATIONAL_BASE + draft.src.nationId
|
||||
: null;
|
||||
case 'diplomacy':
|
||||
return MESSAGE_MAILBOX_NATIONAL_BASE + draft.src.nationId;
|
||||
}
|
||||
};
|
||||
|
||||
const buildPayload = (
|
||||
draft: MessageDraft,
|
||||
optionOverride?: MessageOption | null
|
||||
): MessagePayload => ({
|
||||
src: draft.src,
|
||||
dest: draft.dest,
|
||||
text: draft.text,
|
||||
option: optionOverride ?? draft.option ?? {},
|
||||
});
|
||||
|
||||
const buildRecord = (
|
||||
draft: MessageDraft,
|
||||
mailbox: number,
|
||||
optionOverride?: MessageOption | null
|
||||
): MessageRecordDraft => {
|
||||
const payload = buildPayload(draft, optionOverride);
|
||||
let srcId = draft.src.generalId;
|
||||
let destId = draft.dest.generalId;
|
||||
|
||||
if (draft.msgType === 'public') {
|
||||
destId = MESSAGE_MAILBOX_PUBLIC;
|
||||
} else if (draft.msgType === 'national' || draft.msgType === 'diplomacy') {
|
||||
srcId = MESSAGE_MAILBOX_NATIONAL_BASE + draft.src.nationId;
|
||||
destId = MESSAGE_MAILBOX_NATIONAL_BASE + draft.dest.nationId;
|
||||
}
|
||||
|
||||
return {
|
||||
mailbox,
|
||||
msgType: draft.msgType,
|
||||
srcId,
|
||||
destId,
|
||||
time: draft.time,
|
||||
validUntil: draft.validUntil,
|
||||
payload,
|
||||
};
|
||||
};
|
||||
|
||||
const buildSenderOption = (
|
||||
draft: MessageDraft,
|
||||
receiverId: number
|
||||
): MessageOption => {
|
||||
const option = {
|
||||
...(draft.option ?? {}),
|
||||
receiverMessageID: receiverId,
|
||||
};
|
||||
|
||||
if (draft.msgType === 'diplomacy' && 'action' in option) {
|
||||
const { action: _action, ...rest } = option;
|
||||
return rest;
|
||||
}
|
||||
|
||||
return option;
|
||||
};
|
||||
|
||||
// 메시지 전달 규칙(수신/송신 복사본)을 그대로 유지한다.
|
||||
export const sendMessage = async (
|
||||
store: MessageStore,
|
||||
draft: MessageDraft,
|
||||
options: { sendDestOnly?: boolean } = {}
|
||||
): Promise<{ receiverId: number; senderId?: number }> => {
|
||||
const receiverMailbox = resolveReceiverMailbox(draft);
|
||||
if (!isValidMailbox(receiverMailbox)) {
|
||||
throw new Error(`Invalid receiver mailbox: ${receiverMailbox}`);
|
||||
}
|
||||
|
||||
const receiverRecord = buildRecord(draft, receiverMailbox);
|
||||
const receiverId = await store.insertMessage(receiverRecord);
|
||||
if (!receiverId) {
|
||||
throw new Error('Failed to send receiver message.');
|
||||
}
|
||||
|
||||
if (options.sendDestOnly) {
|
||||
return { receiverId };
|
||||
}
|
||||
|
||||
const senderMailbox = resolveSenderMailbox(draft);
|
||||
if (!senderMailbox || senderMailbox === receiverMailbox) {
|
||||
return { receiverId };
|
||||
}
|
||||
|
||||
const senderRecord = buildRecord(
|
||||
draft,
|
||||
senderMailbox,
|
||||
buildSenderOption(draft, receiverId)
|
||||
);
|
||||
const senderId = await store.insertMessage(senderRecord);
|
||||
|
||||
return senderId ? { receiverId, senderId } : { receiverId };
|
||||
};
|
||||
@@ -0,0 +1,109 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
import {
|
||||
MESSAGE_MAILBOX_NATIONAL_BASE,
|
||||
MESSAGE_MAILBOX_PUBLIC,
|
||||
sendMessage,
|
||||
type MessageDraft,
|
||||
type MessageRecordDraft,
|
||||
type MessageStore,
|
||||
type MessageTarget,
|
||||
} from '../src/messages/message.js';
|
||||
|
||||
const buildTarget = (overrides: Partial<MessageTarget> = {}): MessageTarget => ({
|
||||
generalId: 1,
|
||||
generalName: '테스트',
|
||||
nationId: 1,
|
||||
nationName: '나라',
|
||||
color: '#000000',
|
||||
icon: '',
|
||||
...overrides,
|
||||
});
|
||||
|
||||
class InMemoryMessageStore implements MessageStore {
|
||||
private nextId = 1;
|
||||
public readonly records: Array<{ id: number; draft: MessageRecordDraft }> = [];
|
||||
|
||||
async insertMessage(draft: MessageRecordDraft): Promise<number> {
|
||||
const id = this.nextId++;
|
||||
this.records.push({ id, draft });
|
||||
return id;
|
||||
}
|
||||
}
|
||||
|
||||
const buildDraft = (overrides: Partial<MessageDraft> = {}): MessageDraft => ({
|
||||
msgType: 'private',
|
||||
src: buildTarget({ generalId: 10, nationId: 1 }),
|
||||
dest: buildTarget({ generalId: 20, nationId: 2 }),
|
||||
text: '안녕',
|
||||
time: new Date('2025-01-01T00:00:00Z'),
|
||||
validUntil: new Date('9999-12-31T00:00:00Z'),
|
||||
option: {},
|
||||
...overrides,
|
||||
});
|
||||
|
||||
describe('sendMessage', () => {
|
||||
it('sends a private message to receiver and sender', async () => {
|
||||
const store = new InMemoryMessageStore();
|
||||
const draft = buildDraft();
|
||||
|
||||
const result = await sendMessage(store, draft);
|
||||
|
||||
expect(result.receiverId).toBe(1);
|
||||
expect(result.senderId).toBe(2);
|
||||
expect(store.records).toHaveLength(2);
|
||||
expect(store.records[0].draft.mailbox).toBe(draft.dest.generalId);
|
||||
expect(store.records[1].draft.mailbox).toBe(draft.src.generalId);
|
||||
expect(store.records[0].draft.payload.option).not.toHaveProperty(
|
||||
'receiverMessageID'
|
||||
);
|
||||
expect(store.records[1].draft.payload.option).toMatchObject({
|
||||
receiverMessageID: 1,
|
||||
});
|
||||
});
|
||||
|
||||
it('sends only one national message when nations match', async () => {
|
||||
const store = new InMemoryMessageStore();
|
||||
const draft = buildDraft({
|
||||
msgType: 'national',
|
||||
dest: buildTarget({ generalId: 0, nationId: 1 }),
|
||||
});
|
||||
|
||||
const result = await sendMessage(store, draft);
|
||||
|
||||
expect(result.senderId).toBeUndefined();
|
||||
expect(store.records).toHaveLength(1);
|
||||
expect(store.records[0].draft.mailbox).toBe(
|
||||
MESSAGE_MAILBOX_NATIONAL_BASE + 1
|
||||
);
|
||||
});
|
||||
|
||||
it('keeps public messages in the shared mailbox only', async () => {
|
||||
const store = new InMemoryMessageStore();
|
||||
const draft = buildDraft({
|
||||
msgType: 'public',
|
||||
dest: buildTarget({ generalId: 0, nationId: 0 }),
|
||||
});
|
||||
|
||||
const result = await sendMessage(store, draft);
|
||||
|
||||
expect(result.senderId).toBeUndefined();
|
||||
expect(store.records).toHaveLength(1);
|
||||
expect(store.records[0].draft.mailbox).toBe(MESSAGE_MAILBOX_PUBLIC);
|
||||
});
|
||||
|
||||
it('removes diplomacy action from sender copy', async () => {
|
||||
const store = new InMemoryMessageStore();
|
||||
const draft = buildDraft({
|
||||
msgType: 'diplomacy',
|
||||
option: { action: 'test', payload: 1 },
|
||||
dest: buildTarget({ generalId: 0, nationId: 2 }),
|
||||
});
|
||||
|
||||
await sendMessage(store, draft);
|
||||
|
||||
const senderPayload = store.records[1].draft.payload.option ?? {};
|
||||
expect(senderPayload).not.toHaveProperty('action');
|
||||
expect(senderPayload).toMatchObject({ payload: 1 });
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user