Refine NPC interactions and runtime item generation
This commit is contained in:
@@ -102,7 +102,7 @@ const BASE_HOSTILE_NPC_PRESETS: Array<
|
||||
die: rowAnimation(976, 61, 4, 11),
|
||||
},
|
||||
baseStats: { attackRange: 1.3, speed: 6.8, hp: 102, maxHp: 102 },
|
||||
habitatTags: ['鍦板', '鑽掓潙', '瀵哄簷', '閬楄抗'],
|
||||
habitatTags: ['地宫', '荒村', '废寺', '遗迹'],
|
||||
},
|
||||
{
|
||||
id: 'monster-04',
|
||||
@@ -121,7 +121,7 @@ const BASE_HOSTILE_NPC_PRESETS: Array<
|
||||
die: rowAnimation(870, 58, 3, 15),
|
||||
},
|
||||
baseStats: { attackRange: 1.1, speed: 4.8, hp: 152, maxHp: 152 },
|
||||
habitatTags: ['鐭抽樁', '娓″彛', '妗?', '闆箔'],
|
||||
habitatTags: ['石阶', '渡口', '古桥', '山门'],
|
||||
},
|
||||
{
|
||||
id: 'monster-06',
|
||||
@@ -140,7 +140,7 @@ const BASE_HOSTILE_NPC_PRESETS: Array<
|
||||
die: rowAnimation(1606, 73, 3, 11),
|
||||
},
|
||||
baseStats: { attackRange: 1.2, speed: 5.8, hp: 140, maxHp: 140 },
|
||||
habitatTags: ['鐭块亾', '鐭抽樁', '搴熷煄', '鍦板'],
|
||||
habitatTags: ['矿道', '石阶', '废城', '地宫'],
|
||||
},
|
||||
{
|
||||
id: 'monster-07',
|
||||
@@ -159,7 +159,7 @@ const BASE_HOSTILE_NPC_PRESETS: Array<
|
||||
die: rowAnimation(1444, 76, 3, 11),
|
||||
},
|
||||
baseStats: { attackRange: 1.1, speed: 6.1, hp: 108, maxHp: 108 },
|
||||
habitatTags: ['闆炬灄', '鑽掓潙', '瀵哄簷', '灞辫矾'],
|
||||
habitatTags: ['雾林', '荒村', '废寺', '山路'],
|
||||
},
|
||||
{
|
||||
id: 'monster-08',
|
||||
@@ -178,7 +178,7 @@ const BASE_HOSTILE_NPC_PRESETS: Array<
|
||||
die: rowAnimation(950, 50, 3, 17),
|
||||
},
|
||||
baseStats: { attackRange: 1.0, speed: 6.7, hp: 118, maxHp: 118 },
|
||||
habitatTags: ['绔规灄', '闆炬灄', '娌兼辰', '鑽掗噹'],
|
||||
habitatTags: ['竹林', '雾林', '沼泽', '荒野'],
|
||||
},
|
||||
{
|
||||
id: 'monster-11',
|
||||
@@ -197,7 +197,7 @@ const BASE_HOSTILE_NPC_PRESETS: Array<
|
||||
die: rowAnimation(770, 70, 3, 10),
|
||||
},
|
||||
baseStats: { attackRange: 1.4, speed: 7.4, hp: 124, maxHp: 124 },
|
||||
habitatTags: ['闀胯', '钀ュ湴', '鏂灒', '瀹嫅'],
|
||||
habitatTags: ['长街', '营地', '断垣', '宫苑'],
|
||||
},
|
||||
{
|
||||
id: 'monster-13',
|
||||
@@ -214,7 +214,7 @@ const BASE_HOSTILE_NPC_PRESETS: Array<
|
||||
attack: rowAnimation(1056, 66, 1, 15),
|
||||
},
|
||||
baseStats: { attackRange: 1.7, speed: 8.2, hp: 96, maxHp: 96 },
|
||||
habitatTags: ['绔规灄', '闆炬灄', '灞辫矾', '鑺卞洯'],
|
||||
habitatTags: ['竹林', '雾林', '山路', '花圃'],
|
||||
},
|
||||
{
|
||||
id: 'monster-18',
|
||||
@@ -233,7 +233,7 @@ const BASE_HOSTILE_NPC_PRESETS: Array<
|
||||
die: rowAnimation(1771, 77, 1, 17),
|
||||
},
|
||||
baseStats: { attackRange: 1.8, speed: 4.4, hp: 186, maxHp: 186 },
|
||||
habitatTags: ['鐭块亾', '閾稿潑', '搴熷煄', '杈瑰叧'],
|
||||
habitatTags: ['矿道', '铸坊', '废城', '边关'],
|
||||
},
|
||||
{
|
||||
id: 'monster-02',
|
||||
@@ -252,7 +252,7 @@ const BASE_HOSTILE_NPC_PRESETS: Array<
|
||||
die: rowAnimation(688, 43, 4, 7),
|
||||
},
|
||||
baseStats: { attackRange: 1.4, speed: 7.3, hp: 112, maxHp: 112 },
|
||||
habitatTags: ['浠欓棬', '闀垮粖', '閬楄抗', '绁潧'],
|
||||
habitatTags: ['仙门', '长廊', '遗迹', '祭坛'],
|
||||
},
|
||||
{
|
||||
id: 'monster-05',
|
||||
@@ -271,7 +271,7 @@ const BASE_HOSTILE_NPC_PRESETS: Array<
|
||||
die: rowAnimation(840, 60, 4, 14),
|
||||
},
|
||||
baseStats: { attackRange: 1.6, speed: 7.0, hp: 126, maxHp: 126 },
|
||||
habitatTags: ['濡栭浘', '娲炲ぉ', '璋峰湴', '绉樻'],
|
||||
habitatTags: ['妖雾', '洞天', '谷地', '秘境'],
|
||||
},
|
||||
{
|
||||
id: 'monster-10',
|
||||
@@ -290,7 +290,7 @@ const BASE_HOSTILE_NPC_PRESETS: Array<
|
||||
die: rowAnimation(720, 48, 3, 15),
|
||||
},
|
||||
baseStats: { attackRange: 1.2, speed: 5.0, hp: 136, maxHp: 136 },
|
||||
habitatTags: ['娲炲ぉ', '璋峰湴', '鏈堟箹', '鐭垮潙'],
|
||||
habitatTags: ['洞天', '谷地', '月湖', '石坑'],
|
||||
},
|
||||
{
|
||||
id: 'monster-12',
|
||||
@@ -309,7 +309,7 @@ const BASE_HOSTILE_NPC_PRESETS: Array<
|
||||
die: rowAnimation(506, 46, 3, 11),
|
||||
},
|
||||
baseStats: { attackRange: 1.6, speed: 7.8, hp: 120, maxHp: 120 },
|
||||
habitatTags: ['娲炲ぉ', '宕?', '浠欏矝', '鍙よ抗'],
|
||||
habitatTags: ['洞天', '崖壁', '仙岛', '古迹'],
|
||||
},
|
||||
{
|
||||
id: 'monster-14',
|
||||
@@ -328,7 +328,7 @@ const BASE_HOSTILE_NPC_PRESETS: Array<
|
||||
die: rowAnimation(671, 61, 4, 11),
|
||||
},
|
||||
baseStats: { attackRange: 1.7, speed: 7.1, hp: 128, maxHp: 128 },
|
||||
habitatTags: ['鏈堟箹', '澶╂渤', '浠欐床', '鐏垫硥'],
|
||||
habitatTags: ['月湖', '天河', '仙洲', '灵泉'],
|
||||
},
|
||||
{
|
||||
id: 'monster-15',
|
||||
@@ -346,7 +346,7 @@ const BASE_HOSTILE_NPC_PRESETS: Array<
|
||||
die: rowAnimation(2400, 75, 2, 17),
|
||||
},
|
||||
baseStats: { attackRange: 1.5, speed: 4.6, hp: 168, maxHp: 168 },
|
||||
habitatTags: ['鑺卞渻', '绁炴湪', '璋峰湴', '绉樺'],
|
||||
habitatTags: ['花圃', '神木', '谷地', '秘境'],
|
||||
},
|
||||
{
|
||||
id: 'monster-16',
|
||||
@@ -365,7 +365,7 @@ const BASE_HOSTILE_NPC_PRESETS: Array<
|
||||
die: rowAnimation(728, 52, 3, 9),
|
||||
},
|
||||
baseStats: { attackRange: 1.8, speed: 6.9, hp: 130, maxHp: 130 },
|
||||
habitatTags: ['濡栭浘', '浠欓棬', '椋炵€?', '鎮┖'],
|
||||
habitatTags: ['妖雾', '仙门', '星舟', '悬空'],
|
||||
},
|
||||
{
|
||||
id: 'monster-20',
|
||||
@@ -383,7 +383,7 @@ const BASE_HOSTILE_NPC_PRESETS: Array<
|
||||
attack: rowAnimation(804, 67, 2, 12),
|
||||
},
|
||||
baseStats: { attackRange: 1.4, speed: 6.4, hp: 138, maxHp: 138 },
|
||||
habitatTags: ['鏈堟箹', '鐏垫硥', '澶╂渤', '瀵掔帀'],
|
||||
habitatTags: ['月湖', '灵泉', '天河', '寒玉'],
|
||||
},
|
||||
];
|
||||
|
||||
@@ -394,12 +394,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.74,
|
||||
buildHostileNpcLootItem(
|
||||
'script-fragment',
|
||||
'鏉愭枡',
|
||||
'娈嬮〉纰庣墖',
|
||||
'材料',
|
||||
'残页碎片',
|
||||
'common',
|
||||
['material'],
|
||||
2,
|
||||
'鏁h惤鐨勪功椤靛拰鏄撶鐨勭鐗囷紝浠嶆畫鐣欑潃鎶ょ澧ㄦ按鐨勭棔杩广€?',
|
||||
'散落的书页和易碎纸片上,还残留着护符墨水的痕迹。',
|
||||
),
|
||||
),
|
||||
buildHostileNpcLootEntry(
|
||||
@@ -407,12 +407,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.24,
|
||||
buildHostileNpcLootItem(
|
||||
'archive-sigil',
|
||||
'閬楃墿',
|
||||
'妗f鍗拌',
|
||||
'稀有品',
|
||||
'档案印记',
|
||||
'rare',
|
||||
['relic', 'mana'],
|
||||
1,
|
||||
'涓€涓偓娴殑鍗拌锛屽瓨鍌ㄧ潃鍛ㄥ洿鐨勭伒鏂囥€?',
|
||||
'一枚悬浮的印记,内部储着周围灵文的回响。',
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -422,12 +422,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.74,
|
||||
buildHostileNpcLootItem(
|
||||
'bone-dust',
|
||||
'鏉愭枡',
|
||||
'楠ㄥ皹',
|
||||
'材料',
|
||||
'骨尘',
|
||||
'common',
|
||||
['material'],
|
||||
2,
|
||||
'鐮寸骞界伒鐣欎笅鐨勭矇鏈姸娈嬮銆?',
|
||||
'破碎骨灵散落下来的粉末状残渣。',
|
||||
),
|
||||
),
|
||||
buildHostileNpcLootEntry(
|
||||
@@ -435,12 +435,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.22,
|
||||
buildHostileNpcLootItem(
|
||||
'whisper-ember',
|
||||
'閬楃墿',
|
||||
'浣庤浣欑儸',
|
||||
'稀有品',
|
||||
'低语余烬',
|
||||
'rare',
|
||||
['relic', 'mana'],
|
||||
1,
|
||||
'寰急鐨勭伀鑺憋紝浠嶅甫鐫€涓嶅畨鐨勯榄傝兘閲忓棥鍡′綔鍝嶃€?',
|
||||
'微弱的火星里还带着不安魂力的回响。',
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -450,12 +450,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.7,
|
||||
buildHostileNpcLootItem(
|
||||
'stone-shell-shard',
|
||||
'鏉愭枡',
|
||||
'鐭冲3纰庣墖',
|
||||
'材料',
|
||||
'石壳碎片',
|
||||
'uncommon',
|
||||
['material'],
|
||||
2,
|
||||
'浠庣埇琛岀煶鑳屾帬椋熻€呰韩涓婂墺钀界殑鐮寸鎶ょ敳鐗囥€?',
|
||||
'从石背蜗怪身上剥落下来的坚硬护壳碎片。',
|
||||
),
|
||||
),
|
||||
buildHostileNpcLootEntry(
|
||||
@@ -463,12 +463,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.32,
|
||||
buildHostileNpcLootItem(
|
||||
'venom-gland',
|
||||
'鏉愭枡',
|
||||
'姣掕吅',
|
||||
'材料',
|
||||
'毒腺',
|
||||
'uncommon',
|
||||
['material'],
|
||||
1,
|
||||
'浠嶅甫鐫€浣欐俯鐨勫瘑灏佹瘨鍥娿€?',
|
||||
'仍带着余温的密封毒囊。',
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -478,12 +478,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.68,
|
||||
buildHostileNpcLootItem(
|
||||
'watcher-tendon',
|
||||
'鏉愭枡',
|
||||
'瀹堟湜鑰呰倢鑵?',
|
||||
'材料',
|
||||
'守望筋丝',
|
||||
'common',
|
||||
['material'],
|
||||
2,
|
||||
'浠庢紓娴溂 stalker 韬笂鎵笅鐨勭粏涓濄€?',
|
||||
'从漂浮妖眼身上扯下的细丝筋络。',
|
||||
),
|
||||
),
|
||||
buildHostileNpcLootEntry(
|
||||
@@ -491,12 +491,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.3,
|
||||
buildHostileNpcLootItem(
|
||||
'blood-lens',
|
||||
'閬楃墿',
|
||||
'琛€鏅堕€忛暅',
|
||||
'稀有品',
|
||||
'血瞳透镜',
|
||||
'rare',
|
||||
['relic', 'mana'],
|
||||
1,
|
||||
'缁忚繃鎶涘厜鐨勭溂鏅讹紝鍙寮烘晫鎰忓嚌瑙嗘妧宸с€?',
|
||||
'经由打磨的眼晶,可放大敌意与凝视类术式。',
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -506,12 +506,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.38,
|
||||
buildHostileNpcLootItem(
|
||||
'carapace-plate',
|
||||
'鎶ょ敳',
|
||||
'鐢插3鏉?',
|
||||
'护甲',
|
||||
'甲壳板',
|
||||
'rare',
|
||||
['armor', 'material'],
|
||||
1,
|
||||
'鍙噸閾镐负閲嶅瀷闃叉姢鐨勮嚧瀵嗙敳澹炦ి€?',
|
||||
'可重铸成重型防具的致密甲板。',
|
||||
),
|
||||
),
|
||||
buildHostileNpcLootEntry(
|
||||
@@ -519,12 +519,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.18,
|
||||
buildHostileNpcLootItem(
|
||||
'guard-core',
|
||||
'閬楃墿',
|
||||
'瀹堝崼鏍稿績',
|
||||
'稀有品',
|
||||
'守御核心',
|
||||
'rare',
|
||||
['relic'],
|
||||
1,
|
||||
'钑村惈閲庢€ч槻寰℃湰鑳界殑鏍稿績锛屽潥涓嶅彲鎽ං€?',
|
||||
'蕴着本能防御意志的核心,坚实得近乎难摧。',
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -534,12 +534,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.72,
|
||||
buildHostileNpcLootItem(
|
||||
'spore-pouch',
|
||||
'鏉愭枡',
|
||||
'瀛㈠泭',
|
||||
'材料',
|
||||
'孢囊',
|
||||
'uncommon',
|
||||
['material'],
|
||||
2,
|
||||
'瑁呮弧涓嶇ǔ瀹氳槕鑿囧瀛愮殑鍥婅銆?',
|
||||
'装满不稳定菌孢的鼓胀囊袋。',
|
||||
),
|
||||
),
|
||||
buildHostileNpcLootEntry(
|
||||
@@ -547,12 +547,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.28,
|
||||
buildHostileNpcLootItem(
|
||||
'burst-cap',
|
||||
'娑堣€楀搧',
|
||||
'鐖嗚弴甯?',
|
||||
'消耗品',
|
||||
'爆菇帽',
|
||||
'uncommon',
|
||||
['healing'],
|
||||
1,
|
||||
'鍙姞宸ヤ负鎴樺湴鑽墏鐨勬尌鍙戞€ц弴甯姐€?',
|
||||
'可加工成战地药剂的挥发菌帽。',
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -562,12 +562,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.76,
|
||||
buildHostileNpcLootItem(
|
||||
'vine-tendril',
|
||||
'鏉愭枡',
|
||||
'钘ら』',
|
||||
'材料',
|
||||
'藤须',
|
||||
'common',
|
||||
['material'],
|
||||
2,
|
||||
'浠庝紡鍑昏棨钄撲笂鑾峰彇鐨勫潥闊х氦缁淬€?',
|
||||
'从枯藤伏虫身上取得的韧性藤丝。',
|
||||
),
|
||||
),
|
||||
buildHostileNpcLootEntry(
|
||||
@@ -575,12 +575,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.2,
|
||||
buildHostileNpcLootItem(
|
||||
'ambush-fang',
|
||||
'姝﹀櫒',
|
||||
'浼忓嚮鐗?',
|
||||
'武器',
|
||||
'伏袭牙刃',
|
||||
'rare',
|
||||
['weapon', 'material'],
|
||||
1,
|
||||
'杩戞垬鐚庝汉鐝嶈鐨勫ぉ鐒跺皷鍒€¢€?',
|
||||
'近战猎手格外珍视的天然尖牙刃。',
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -590,12 +590,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.72,
|
||||
buildHostileNpcLootItem(
|
||||
'spirit-slime',
|
||||
'鏉愭枡',
|
||||
'鐏佃厫榛忔恫',
|
||||
'材料',
|
||||
'灵腐黏液',
|
||||
'common',
|
||||
['material'],
|
||||
2,
|
||||
'鍦ㄩ粦鏆椾腑缂撴參鍙戝厜鐨勭矘绋犳畫鐣欑墿銆?',
|
||||
'在黑暗中微微发光的腐灵残液。',
|
||||
),
|
||||
),
|
||||
buildHostileNpcLootEntry(
|
||||
@@ -603,12 +603,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.2,
|
||||
buildHostileNpcLootItem(
|
||||
'marsh-core',
|
||||
'閬楃墿',
|
||||
'娌兼辰鏍稿績',
|
||||
'稀有品',
|
||||
'沼泽核心',
|
||||
'rare',
|
||||
['relic', 'mana'],
|
||||
1,
|
||||
'娌兼辰鐏垫皵涓庢畫鐣欑槾姘旂殑鍑濊仛鑺傜偣銆?',
|
||||
'沼气与阴湿灵力凝成的核心结节。',
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -618,12 +618,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.58,
|
||||
buildHostileNpcLootItem(
|
||||
'night-fang',
|
||||
'鏉愭枡',
|
||||
'澶滅墮',
|
||||
'材料',
|
||||
'夜牙',
|
||||
'uncommon',
|
||||
['material'],
|
||||
1,
|
||||
'閫傚悎鍒朵綔姣掕嵂鎴栭櫡闃辩殑鍒€鍒冪姸鐛犵墮銆?',
|
||||
'适合炼毒与设陷的刃状兽牙。',
|
||||
),
|
||||
),
|
||||
buildHostileNpcLootEntry(
|
||||
@@ -631,12 +631,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.24,
|
||||
buildHostileNpcLootItem(
|
||||
'shadow-pelt',
|
||||
'鎶ょ敳',
|
||||
'鏆楀奖鐨?',
|
||||
'护甲',
|
||||
'暗影兽皮',
|
||||
'rare',
|
||||
['armor', 'material'],
|
||||
1,
|
||||
'绌挎埓鏃跺彲娑堝辑鍔ㄩ潤鐨勬繁鑹插吔鐨€?',
|
||||
'披戴后能稍稍融入夜色的深色皮膜。',
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -646,12 +646,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.64,
|
||||
buildHostileNpcLootItem(
|
||||
'ember-wing',
|
||||
'鏉愭枡',
|
||||
'鐑考',
|
||||
'材料',
|
||||
'烬翼',
|
||||
'uncommon',
|
||||
['material'],
|
||||
2,
|
||||
'浠嶅湪鏁h惤鏆栫伆鐨勭儳鐒︾繀缈肩鐗囥€?',
|
||||
'仍散着余热灰烬的焦脆翼片。',
|
||||
),
|
||||
),
|
||||
buildHostileNpcLootEntry(
|
||||
@@ -659,12 +659,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.22,
|
||||
buildHostileNpcLootItem(
|
||||
'ashfire-feather',
|
||||
'閬楃墿',
|
||||
'鐏扮儸鐏窘',
|
||||
'稀有品',
|
||||
'灰焰翎',
|
||||
'rare',
|
||||
['relic', 'mana'],
|
||||
1,
|
||||
'钑村惈寰皬浣嗘寔涔呯殑鐑伒鐨勭窘灏栥€?',
|
||||
'羽尖里封着微弱却持久的灼灵余火。',
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -674,12 +674,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.66,
|
||||
buildHostileNpcLootItem(
|
||||
'serpent-venom-sac',
|
||||
'鏉愭枡',
|
||||
'铔囨瘨鍥?',
|
||||
'材料',
|
||||
'蛇毒囊',
|
||||
'uncommon',
|
||||
['material'],
|
||||
1,
|
||||
'鐐奸噾甯堜笌鍒哄閮界弽瑙嗙殑姣掔礌鍥娿€?',
|
||||
'炼药师与刺客都很看重的高浓毒囊。',
|
||||
),
|
||||
),
|
||||
buildHostileNpcLootEntry(
|
||||
@@ -687,12 +687,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.16,
|
||||
buildHostileNpcLootItem(
|
||||
'serpent-eye',
|
||||
'閬楃墿',
|
||||
'铔囩溂',
|
||||
'稀有品',
|
||||
'蛇瞳',
|
||||
'rare',
|
||||
['relic', 'mana'],
|
||||
1,
|
||||
'鍗充娇闈欐涔熻兘杩借釜闄勮繎鍔ㄩ潤鐨勮寮傜溂鏅躲€?',
|
||||
'即使静止不动,也像仍在追索附近的活物。',
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -702,12 +702,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.7,
|
||||
buildHostileNpcLootItem(
|
||||
'tide-ink',
|
||||
'鏉愭枡',
|
||||
'娼ⅷ',
|
||||
'材料',
|
||||
'潮墨',
|
||||
'uncommon',
|
||||
['material'],
|
||||
2,
|
||||
'鐢ㄤ簬灏佸嵃銆侀櫡闃变笌姘村睘鎬х绠撶殑娴撶榛戞恫銆?',
|
||||
'适合封印、符阵与水属术式的浓黑灵墨。',
|
||||
),
|
||||
),
|
||||
buildHostileNpcLootEntry(
|
||||
@@ -715,12 +715,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.18,
|
||||
buildHostileNpcLootItem(
|
||||
'lake-pearl',
|
||||
'閬楃墿',
|
||||
'婀栫彔',
|
||||
'稀有品',
|
||||
'湖珠',
|
||||
'rare',
|
||||
['relic', 'mana'],
|
||||
1,
|
||||
'钑村惈鏈堝厜婀挎皵鐨勫厜婊戠弽鐝犮€?',
|
||||
'裹着月华水气的光润珍珠。',
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -730,12 +730,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.46,
|
||||
buildHostileNpcLootItem(
|
||||
'thorn-nectar',
|
||||
'Consumable',
|
||||
'Thorn Nectar',
|
||||
'消耗品',
|
||||
'棘露蜜浆',
|
||||
'uncommon',
|
||||
['healing', 'material'],
|
||||
1,
|
||||
'Sticky sap that can be refined into emergency recovery tonic.',
|
||||
'黏稠树露可炼成紧急疗伤的回生药浆。',
|
||||
),
|
||||
),
|
||||
buildHostileNpcLootEntry(
|
||||
@@ -743,12 +743,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.12,
|
||||
buildHostileNpcLootItem(
|
||||
'devour-bloom',
|
||||
'Relic',
|
||||
'Devour Bloom',
|
||||
'稀有品',
|
||||
'噬灵花核',
|
||||
'epic',
|
||||
['relic'],
|
||||
1,
|
||||
'A predatory blossom that stores concentrated life force.',
|
||||
'会掠食灵机的妖花花核,积着浓缩生机。',
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -758,12 +758,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.72,
|
||||
buildHostileNpcLootItem(
|
||||
'mist-wing',
|
||||
'Material',
|
||||
'Mist Wing',
|
||||
'材料',
|
||||
'雾翼膜',
|
||||
'common',
|
||||
['material'],
|
||||
2,
|
||||
'Thin membrane steeped in drifting fog and static charge.',
|
||||
'浸着游雾与静电的轻薄翼膜。',
|
||||
),
|
||||
),
|
||||
buildHostileNpcLootEntry(
|
||||
@@ -771,12 +771,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.2,
|
||||
buildHostileNpcLootItem(
|
||||
'chase-rune',
|
||||
'Relic',
|
||||
'Chase Rune',
|
||||
'稀有品',
|
||||
'追猎符印',
|
||||
'rare',
|
||||
['relic'],
|
||||
1,
|
||||
'A pursuit mark that resonates with speed and pressure.',
|
||||
'能与速度和压迫感共鸣的追索印记。',
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -786,12 +786,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.62,
|
||||
buildHostileNpcLootItem(
|
||||
'ancient-hide',
|
||||
'Armor',
|
||||
'Ancient Hide',
|
||||
'护甲',
|
||||
'古苔兽皮',
|
||||
'uncommon',
|
||||
['armor', 'material'],
|
||||
1,
|
||||
'Thick hide layered with old dust, moss, and impact scars.',
|
||||
'厚重皮层间压着旧尘、苔痕与碰撞裂纹。',
|
||||
),
|
||||
),
|
||||
buildHostileNpcLootEntry(
|
||||
@@ -799,12 +799,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.14,
|
||||
buildHostileNpcLootItem(
|
||||
'ruin-heart',
|
||||
'Relic',
|
||||
'Ruin Heart',
|
||||
'稀有品',
|
||||
'遗墟之心',
|
||||
'epic',
|
||||
['relic'],
|
||||
1,
|
||||
'A heavy core pulsing with the stubborn will of abandoned ruins.',
|
||||
'沉重的核心里跳着废墟不肯坍塌的执念。',
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -814,12 +814,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.44,
|
||||
buildHostileNpcLootItem(
|
||||
'spring-essence',
|
||||
'Consumable',
|
||||
'Spring Essence',
|
||||
'消耗品',
|
||||
'灵泉精露',
|
||||
'uncommon',
|
||||
['mana'],
|
||||
1,
|
||||
'A cool droplet that restores focus and spiritual rhythm.',
|
||||
'清凉的泉露能稳住心神与灵息运转。',
|
||||
),
|
||||
),
|
||||
buildHostileNpcLootEntry(
|
||||
@@ -827,12 +827,12 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
0.11,
|
||||
buildHostileNpcLootItem(
|
||||
'tide-mother-core',
|
||||
'Relic',
|
||||
'Tide Mother Core',
|
||||
'稀有品',
|
||||
'潮母灵核',
|
||||
'epic',
|
||||
['relic', 'mana'],
|
||||
1,
|
||||
'A refined water-heart formed only in the deepest luminous springs.',
|
||||
'只有在最深的明泉里才会凝出的水华灵核。',
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -841,22 +841,22 @@ const BASE_HOSTILE_NPC_LOOT_TABLES: Record<string, MonsterLootEntry[]> = {
|
||||
const HOSTILE_NPC_OVERRIDES = hostileNpcOverridesJson as Record<string, HostileNpcPresetOverride>;
|
||||
|
||||
const BASE_HOSTILE_NPC_COMBAT_TAGS: Record<string, string[]> = {
|
||||
'monster-03': ['闀囬偑', '鎺у満', '鏈哄姩'],
|
||||
'monster-04': ['閲嶇敳', '瀹堝尽', '鍙嶅嚮'],
|
||||
'monster-06': ['閲嶇敳', '瀹堝尽', '鍘嬪埗'],
|
||||
'monster-07': ['鎺у満', '鍥炲', '鐐艰嵂'],
|
||||
'monster-08': ['蹇', '杩藉嚮', '鏈哄姩'],
|
||||
'monster-11': ['蹇', '绐佽繘', '鍘嬪埗'],
|
||||
'monster-13': ['蹇', '杩藉嚮', '椋庤'],
|
||||
'monster-18': ['閲嶅嚮', '瀹堝尽', '鍫″瀿'],
|
||||
'monster-02': ['娉曚慨', '绗﹂樀', '鎺у満'],
|
||||
'monster-05': ['鎺у満', '娉曚慨', '闀囬偑'],
|
||||
'monster-10': ['娉曞姏', '鍥炲', '鎶や綋'],
|
||||
'monster-12': ['鏈哄姩', '杩滃皠', '椋庤'],
|
||||
'monster-14': ['娉曞姏', '绗﹂樀', '鍥炲'],
|
||||
'monster-15': ['鍥炲', '鎶や綋', '閲嶇敳'],
|
||||
'monster-16': ['闆锋硶', '鏈哄姩', '杩囪浇'],
|
||||
'monster-20': ['娉曞姏', '鍥炲', '闀囬偑'],
|
||||
'monster-03': ['镇邪', '控场', '机动'],
|
||||
'monster-04': ['重甲', '守御', '反击'],
|
||||
'monster-06': ['重甲', '守御', '压制'],
|
||||
'monster-07': ['控场', '回复', '炼药'],
|
||||
'monster-08': ['快袭', '追击', '机动'],
|
||||
'monster-11': ['快袭', '突进', '压制'],
|
||||
'monster-13': ['快袭', '追击', '风行'],
|
||||
'monster-18': ['重击', '守御', '堡垒'],
|
||||
'monster-02': ['法修', '符阵', '控场'],
|
||||
'monster-05': ['控场', '法修', '镇邪'],
|
||||
'monster-10': ['法力', '回复', '护体'],
|
||||
'monster-12': ['机动', '远射', '风行'],
|
||||
'monster-14': ['法力', '符阵', '回复'],
|
||||
'monster-15': ['回复', '护体', '重甲'],
|
||||
'monster-16': ['雷法', '机动', '过载'],
|
||||
'monster-20': ['法力', '回复', '镇邪'],
|
||||
};
|
||||
|
||||
function mergeHostileNpcPreset(
|
||||
@@ -894,7 +894,7 @@ function buildHostileNpcBehaviorVectors(preset: {
|
||||
combatTags: string[];
|
||||
baseStats: Pick<SceneHostileNpc, 'attackRange' | 'speed' | 'maxHp'>;
|
||||
}) {
|
||||
const controlBias = preset.combatTags.some(tag => ['鎺у満', '绗﹂樀', '娉曞姏'].includes(tag)) ? 0.28 : 0.12;
|
||||
const controlBias = preset.combatTags.some(tag => ['控场', '符阵', '法力'].includes(tag)) ? 0.28 : 0.12;
|
||||
const mobilityBias = preset.baseStats.speed >= 7 ? 0.34 : 0.16;
|
||||
const pressureBias = preset.baseStats.attackRange >= 1.5 ? 0.32 : 0.18;
|
||||
const enduranceBias = preset.baseStats.maxHp >= 150 ? 0.3 : 0.16;
|
||||
@@ -902,7 +902,7 @@ function buildHostileNpcBehaviorVectors(preset: {
|
||||
return [
|
||||
{
|
||||
id: `${preset.id}:predatory-strike`,
|
||||
name: `${preset.name}鐨勬湰鑳藉帇杩玚`,
|
||||
name: `${preset.name}的本能压迫`,
|
||||
category: 'combat' as const,
|
||||
baseScore: 0.52,
|
||||
intentVector: buildDefaultAxisVector({
|
||||
@@ -974,12 +974,20 @@ export function rollHostileNpcLoot(
|
||||
`monster-loot:${monster.id}:${monster.name}`,
|
||||
{
|
||||
count: 2,
|
||||
categories: ['鏉愭枡', '娑堣€楀搧', '绋€鏈夊搧', '涓撳睘鐗?'],
|
||||
categories: ['材料', '消耗品', '稀有品', '专属品'],
|
||||
},
|
||||
));
|
||||
}
|
||||
|
||||
return defeatedHostileNpcs.flatMap(monster => {
|
||||
const preset = getHostileNpcPresetById(state.worldType!, monster.id);
|
||||
const presetLoot = preset
|
||||
? preset.lootTable
|
||||
.filter(entry => Math.random() <= entry.dropRate)
|
||||
.map(entry => ({
|
||||
...entry.item,
|
||||
}))
|
||||
: [];
|
||||
const context = buildRuntimeItemGenerationContext({
|
||||
state,
|
||||
generationChannel: 'monster_drop',
|
||||
@@ -1000,17 +1008,6 @@ export function rollHostileNpcLoot(
|
||||
fixedPermanence: ['resource', 'timed'],
|
||||
});
|
||||
const runtimeItems = flattenDirectedRuntimeRewardItems(directedReward);
|
||||
if (runtimeItems.length > 0) {
|
||||
return runtimeItems;
|
||||
}
|
||||
|
||||
const preset = getHostileNpcPresetById(state.worldType!, monster.id);
|
||||
if (!preset) return [];
|
||||
|
||||
return preset.lootTable
|
||||
.filter(entry => Math.random() <= entry.dropRate)
|
||||
.map(entry => ({
|
||||
...entry.item,
|
||||
}));
|
||||
return [...presetLoot, ...runtimeItems];
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user