feat: P14 — 반복 런·로비·영혼·도적·몬스터 랜덤성 (요청 17항목) #52

Merged
maple merged 11 commits from feature/p14-loop-lobby-soul into main 2026-06-14 01:50:20 +09:00
3 changed files with 73 additions and 45 deletions
Showing only changes of commit 8296775e21 - Show all commits

File diff suppressed because one or more lines are too long

View File

@@ -6,9 +6,10 @@
"kind": "Attack",
"damage": 6,
"desc": "피해 6",
"image": "a71b116807904ef2b38e1dc013e2f9a2",
"image": "e4acdf27d68549db8858d6082169c70c",
"class": "warrior",
"rarity": "normal"
"rarity": "normal",
"fx": "291b2298db88476f8ae3c6c78f53c9b7"
},
"Defend": {
"name": "아이언 바디",
@@ -16,7 +17,7 @@
"kind": "Skill",
"block": 5,
"desc": "방어도 5",
"image": "1ae9b6741c5947a8b528a0f515b50e3e",
"image": "7648c3b8e1ca44fc8ec353561207a670",
"class": "warrior",
"rarity": "normal"
},
@@ -26,9 +27,10 @@
"kind": "Attack",
"damage": 10,
"desc": "피해 10",
"image": "d5bc2953fcab4cfe9062af81c35aff86",
"image": "4cbbe8cfc3e840e4a76379498d8eb012",
"class": "warrior",
"rarity": "normal"
"rarity": "normal",
"fx": "863812c5c2f84132ac7465b50ec2283e"
},
"WarLeap": {
"name": "워 리프",
@@ -49,7 +51,8 @@
"desc": "피해 13",
"image": "21af4bccc5054a5dbc8245dfa7f08681",
"class": "warrior",
"rarity": "unique"
"rarity": "unique",
"fx": "e8a145a6c43d493f9ad50fab03b200aa"
},
"ChargedBlow": {
"name": "차지 블로우",
@@ -102,7 +105,8 @@
"hits": 2,
"desc": "피해 5 × 2회",
"image": "1bc3e52b330648faae9eafd5a205e37b",
"rarity": "unique"
"rarity": "unique",
"fx": "48754be05be344358cddd55aa8fe11f4"
},
"Berserk": {
"name": "버서크",
@@ -113,7 +117,7 @@
"value": 1,
"selfVuln": 1,
"desc": "매턴 에너지 +1, 취약 1 자가",
"image": "cef30ea340c74e768bcee4e2cbe0577a",
"image": "e2580523efc6457385114b78ad0d7cce",
"rarity": "legend"
},
"RisingAttack": {
@@ -123,8 +127,9 @@
"class": "fighter",
"damage": 12,
"desc": "피해 12",
"image": "3a3d4b8bb5bd4137847caf883e4bf38e",
"rarity": "unique"
"image": "115e309771604743853abad2d8d186bc",
"rarity": "unique",
"fx": "6f283d96d5804b4fb88009685a11c1f8"
},
"ThunderCharge": {
"name": "썬더 차지",
@@ -134,8 +139,9 @@
"damage": 7,
"weak": 1,
"desc": "피해 7, 약화 1",
"image": "f1b7e3041909411eb67af884b446e1e1",
"rarity": "unique"
"image": "b7030d8caedc4fbc9f38fe1e541d6e6b",
"rarity": "unique",
"fx": "997fa6999aa04dbb97a1dd99025fa2ba"
},
"BlizzardCharge": {
"name": "블리자드 차지",
@@ -145,8 +151,9 @@
"damage": 7,
"vuln": 1,
"desc": "피해 7, 취약 1",
"image": "7915c70952ad432f99519ad79bf929a4",
"rarity": "unique"
"image": "9aac955d159f49c1bc913ef96128e781",
"rarity": "unique",
"fx": "2799562e984c4a4da3b73e1f3431057c"
},
"PowerGuard": {
"name": "파워 가드",
@@ -166,8 +173,9 @@
"damage": 9,
"pierce": true,
"desc": "피해 9, 방어 무시",
"image": "e312e535a2bc4fed82d36f9c6027c9db",
"rarity": "unique"
"image": "251b6e12329048429490049a4f3cf564",
"rarity": "unique",
"fx": "1b0afc410a1a458598eb7ca2fb26e97d"
},
"IronWall": {
"name": "아이언 월",
@@ -197,8 +205,9 @@
"class": "magician",
"damage": 6,
"desc": "피해 6",
"image": "a1ee3069fce14498b92998542679ae40",
"rarity": "normal"
"image": "e84880eaf89442128d3af2be5c80a74f",
"rarity": "normal",
"fx": "1d5877e1120a42d0907f204c959888b1"
},
"MagicGuard": {
"name": "매직 가드",
@@ -218,8 +227,9 @@
"damage": 3,
"hits": 2,
"desc": "피해 3 × 2회",
"image": "d6e7c04c436f42f19e9806ac5b4401ae",
"rarity": "normal"
"image": "f3fcac2d460041b288cc1973caaaf30f",
"rarity": "normal",
"fx": "ba4ac7c8f24845b68b7e689b7effcc93"
},
"Teleport": {
"name": "텔레포트",
@@ -229,7 +239,7 @@
"block": 3,
"draw": 1,
"desc": "방어도 3, 드로 1",
"image": "80c98c8e032b4f6c8371a24b4e1d8f14",
"image": "7f70a9dc7e304433bb8121dd9c4df98b",
"rarity": "normal"
},
"Slow": {
@@ -239,7 +249,7 @@
"class": "magician",
"weak": 2,
"desc": "약화 2 부여",
"image": "16f79f571a964430bf1953edc9a14c73",
"image": "7224cd3f9b7e497d9dd65f32a50865e4",
"rarity": "normal"
},
"FireArrow": {
@@ -249,8 +259,9 @@
"class": "firepoison",
"damage": 8,
"desc": "피해 8",
"image": "78b9be4e711c440f84fc21e51e812bae",
"rarity": "unique"
"image": "6fa15fd3a0004b409ea516c11a67e533",
"rarity": "unique",
"fx": "4a937e208875468eb63d891806fba3cd"
},
"PoisonBreath": {
"name": "포이즌 브레스",
@@ -259,7 +270,7 @@
"class": "firepoison",
"poison": 4,
"desc": "독 4 부여",
"image": "b4e8bd7508b54d208e4f2ad7414f8c0a",
"image": "07200f3c74854022baa7ebbefdc4ad8c",
"rarity": "unique"
},
"ElementAmp": {
@@ -270,7 +281,7 @@
"powerEffect": "strengthPerTurn",
"value": 1,
"desc": "매 턴 힘 +1",
"image": "9859f3ab41b945f797d56cd83f95b25f",
"image": "06865473977849bebe79062dbd608944",
"rarity": "legend"
},
"ThunderBolt": {
@@ -282,7 +293,8 @@
"aoe": true,
"desc": "모든 적에게 피해 6",
"image": "c6685d33cb2641f09d11cfa2d5cc820c",
"rarity": "legend"
"rarity": "legend",
"fx": "7d52f5e389bd4d44a30cf7cc54538f8f"
},
"ColdBeam": {
"name": "콜드 빔",
@@ -302,7 +314,7 @@
"class": "icelightning",
"block": 8,
"desc": "방어도 8",
"image": "b2a7274d868241c78aa5780f2beecddf",
"image": "bef20873a68a4651a91d74be457c2cfc",
"rarity": "unique"
},
"Heal": {
@@ -312,7 +324,7 @@
"class": "cleric",
"heal": 10,
"desc": "HP 10 회복",
"image": "b4127c181e2942e38821d4a9a1f14596",
"image": "8b935b7d7066493cb462834bbe287c74",
"rarity": "unique"
},
"Bless": {
@@ -323,7 +335,7 @@
"strength": 1,
"block": 5,
"desc": "힘 +1, 방어도 5",
"image": "d45553db4a414011b67486dfa8a12fe5",
"image": "607fc5457c1c44a0993a5c2fe3fb0c68",
"rarity": "unique"
},
"HolyArrow": {
@@ -333,8 +345,9 @@
"class": "cleric",
"damage": 8,
"desc": "피해 8",
"image": "0265e103b4904f178b1c2bdcd54d5975",
"rarity": "unique"
"image": "a80127195bf7471f9545b70e491f4719",
"rarity": "unique",
"fx": "4faa7b78e09643cf86339b8b7cf2abac"
},
"LuckySeven": {
"name": "럭키 세븐",
@@ -344,7 +357,9 @@
"damage": 3,
"hits": 2,
"desc": "피해 3 × 2회",
"rarity": "normal"
"rarity": "normal",
"image": "0539ba559f8c413dac95c52992b436d9",
"fx": "aa499663a278414b914b8fb9b8382879"
},
"DoubleStab": {
"name": "더블 스탭",
@@ -354,7 +369,9 @@
"damage": 5,
"hits": 2,
"desc": "피해 5 × 2회",
"rarity": "normal"
"rarity": "normal",
"image": "92a5020c978c46bdabab910598118b86",
"fx": "a82d0aae7f5e4db6a19078537afbe80c"
},
"DarkSight": {
"name": "다크 사이트",
@@ -363,7 +380,8 @@
"class": "thief",
"block": 6,
"desc": "방어도 6",
"rarity": "normal"
"rarity": "normal",
"image": "0946f69d84464df29b24b94c744c868d"
},
"Haste": {
"name": "헤이스트",
@@ -373,7 +391,8 @@
"block": 3,
"draw": 1,
"desc": "방어도 3, 드로 1",
"rarity": "normal"
"rarity": "normal",
"image": "e65317856a914b8686f55e3351c3a24c"
},
"Drain": {
"name": "드레인",
@@ -393,7 +412,9 @@
"damage": 8,
"hits": 2,
"desc": "피해 8 × 2회",
"rarity": "unique"
"rarity": "unique",
"image": "1b0f2dc8abd0434990eee1befefcbe0d",
"fx": "23232336918d43f49fab19b888920f0c"
},
"ShadowStar": {
"name": "쉐도우 스타",
@@ -403,7 +424,9 @@
"damage": 6,
"weak": 1,
"desc": "피해 6, 약화 1",
"rarity": "unique"
"rarity": "unique",
"image": "2d394e08d95841028d3dc95fca200756",
"fx": "ab45ee74d258419096e1e132af68aeca"
},
"ClawMastery": {
"name": "클로 마스터리",
@@ -413,7 +436,8 @@
"powerEffect": "strengthPerTurn",
"value": 1,
"desc": "매 턴 힘 +1",
"rarity": "legend"
"rarity": "legend",
"image": "aa09741ae1e145a28d1e1c19aeb9e83c"
},
"SavageBlow": {
"name": "새비지 블로우",
@@ -423,7 +447,9 @@
"damage": 3,
"hits": 3,
"desc": "피해 3 × 3회",
"rarity": "unique"
"rarity": "unique",
"image": "92a5020c978c46bdabab910598118b86",
"fx": "a82d0aae7f5e4db6a19078537afbe80c"
},
"Steal": {
"name": "스틸",
@@ -433,7 +459,8 @@
"block": 4,
"draw": 1,
"desc": "방어도 4, 드로 1",
"rarity": "unique"
"rarity": "unique",
"image": "c1e19219745e44c39ae6ac2f77e347d9"
},
"MesoGuard": {
"name": "메소 가드",

View File

@@ -141,6 +141,7 @@ function luaCardsTable(cards) {
if (c.unplayable === true) fields.push('unplayable = true');
if (c.curse === true) fields.push('curse = true');
if (c.endTurnDamage != null) fields.push(`endTurnDamage = ${c.endTurnDamage}`);
if (c.fx != null) fields.push(`fx = ${luaStr(c.fx)}`);
if (c.image != null) fields.push(`image = ${luaStr(c.image)}`);
return `\t${id} = { ${fields.join(', ')} },`;
});
@@ -3369,9 +3370,9 @@ if c.kind == "Attack" then
total = total + self:CalcPlayerAttack(c.damage)
end
if c.aoe == true then
self:PlayAoeFx(c.image, total)
self:PlayAoeFx(c.fx or c.image, total)
else
self:PlayAttackFx(self.TargetIndex, c.image, total, c.pierce == true)
self:PlayAttackFx(self.TargetIndex, c.fx or c.image, total, c.pierce == true)
end
end
if c.block ~= nil then