More GPT Exploitation

This commit is contained in:
dazedanon 2025-08-28 23:34:50 -05:00
parent ba0ed77609
commit 60f53ad544
3 changed files with 211 additions and 93 deletions

View file

@ -13,7 +13,7 @@
"minTurns": 1,
"motion": 3,
"name": "Incapacitated",
"note": "ステート1番はHP0のときに付加されます。",
"note": "State 1 is applied when HP reaches 0.",
"overlay": 0,
"priority": 100,
"releaseByDamage": false,
@ -161,7 +161,7 @@
"minTurns": 1,
"motion": 0,
"name": "Labyrinth Absorption",
"note": "攻撃力と防御力が低下。\n毎ターン、発情値が上昇する。",
"note": "Attack and defense decrease.\nLust increases every turn.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -679,7 +679,7 @@
"minTurns": 3,
"motion": 0,
"name": "Innocent Justice",
"note": "勇者以外のクラスへの転職ができない。",
"note": "Cannot change to any class other than Hero.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": true,
@ -926,7 +926,7 @@
"minTurns": 4,
"motion": 0,
"name": "Phantom Lantern Sword",
"note": "攻撃力上昇×150",
"note": "Attack power up x150%",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -992,7 +992,7 @@
"minTurns": 1,
"motion": 1,
"name": "Arousal",
"note": "<estrus>\n毎ターン発情値上昇+3\n回避率低下-10\n「お腹が…『吸淫』でぞくぞくって、熱く…っ♥」",
"note": "<estrus>\nArousal increases by +3% every turn\nEvasion -10%\n\"My belly... 'Suck Lust' makes me all tingly and hot...♥\"",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -1078,7 +1078,7 @@
"minTurns": 3,
"motion": 0,
"name": "Breeding",
"note": "<breeding>\nシルシェ「ボクは…愛玩動物、なんかじゃ…っ」",
"note": "<breeding>\nSilshe: \"I'm... not some kind of pet...\"",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": true,
@ -1119,7 +1119,7 @@
"minTurns": 1,
"motion": 0,
"name": "Slime",
"note": "<mucus>\n回避率低下-30\n毎ターン発情値上昇+5%\n発情値上昇×3\n「ねば、ついて…火照って…",
"note": "<mucus>\nEvasion Rate Down -30%\nArousal increases by +5% every turn\nArousal gain x3%\n\"It's so sticky, clinging to me... I'm burning up...!\"",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -1210,7 +1210,7 @@
"minTurns": 1,
"motion": 0,
"name": "Restraint",
"note": "<restraint>\nシルシェ「からだの、自由が…っ!」",
"note": "<restraint>\nSilshe: \"My body's... I can't move!\"",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": true,
@ -1241,7 +1241,7 @@
"minTurns": 1,
"motion": 0,
"name": "Parasitism",
"note": "<parasitism>\nシルシェ「ボクの身体を…食べて、育って…」",
"note": "<parasitism>\nSilshe: \"Eat my body... grow inside me...\"",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": true,
@ -1277,7 +1277,7 @@
"minTurns": 1,
"motion": 0,
"name": "Proof of Defeat",
"note": "シルシェ「次は…次こそは、勝て…る…っ♥」",
"note": "Silshe: \"Next time... next time for sure, I'll... win...!♥\"",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -1682,7 +1682,7 @@
"minTurns": 1,
"motion": 0,
"name": "Submissive Desire",
"note": "攻撃力減少-5 \n性技上昇×3 \n「言いなりになれば…痛くない…っ♥」",
"note": "Attack Power -5%\nSex Technique Up x3%\n\"If you just do as you're told... it won't hurt...♥\"",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -1713,7 +1713,7 @@
"minTurns": 1,
"motion": 0,
"name": "Defeat Wish",
"note": "回避率-10\n「ここっ♥ ここが、弱いです…♥」",
"note": "Evasion -10%\n\"Right there♥ That's my weak spot...♥\"",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -1744,7 +1744,7 @@
"minTurns": 1,
"motion": 0,
"name": "Sensual Desire",
"note": "毎ターン発情値上昇+3\n「昔なら、この程度の痛み…なんでもなかったのに…」",
"note": "Lust increases by +3% every turn\n\"Back in the day, pain like this... was nothing to me...\"",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -1775,7 +1775,7 @@
"minTurns": 1,
"motion": 0,
"name": "The Trembling of the Female Legs",
"note": "回避率減少-10 \n「ぷるぷる震えて…っ♥ 逃げられ、なぃ…♥」",
"note": "Evasion Rate -10%\n\"Trembling all over...♥ You can't get away...♥\"",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -1811,7 +1811,7 @@
"minTurns": 1,
"motion": 0,
"name": "Tamed Mare",
"note": "攻撃力減少-5 \n性技上昇×3 \n「首輪をひかれる、飼われる感覚…っ♥」",
"note": "Attack Power -5%\nSex Technique Up x3%\n\"The feeling of being pulled by a collar, of being owned...♥\"",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -1842,7 +1842,7 @@
"minTurns": 1,
"motion": 0,
"name": "Loser Habit",
"note": "回避率-10\n「またっ♥ また…終わっちゃう…っ♥」",
"note": "Evasion -10%\n\"Again♥ Again... I'm gonna finish...♥\"",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -1873,7 +1873,7 @@
"minTurns": 1,
"motion": 0,
"name": "Masochistic Urge",
"note": "毎ターン発情値上昇+3\n「痛いのにっ♥ 痛くて苦しいだけなのに…っ♥」",
"note": "Lust increases by +3% every turn\n\"It hurts♥ Even though it just hurts and feels awful...♥\"",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -1909,7 +1909,7 @@
"minTurns": 1,
"motion": 0,
"name": "Loss of Will to Fight",
"note": "攻撃力減少-5 \n性技上昇×3 \n「戦わなきゃ…っ♥ 分かってる…のに…っ♥」",
"note": "Attack Power -5%\nSex Technique Up x3%\n\"I have to fight...♥ I know that... and yet...♥\"",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2072,7 +2072,7 @@
"minTurns": 1,
"motion": 0,
"name": "Developing Breasts",
"note": "敵の調教による快楽上昇×3",
"note": "Pleasure increase from enemy training x3%",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2103,7 +2103,7 @@
"minTurns": 1,
"motion": 0,
"name": "Developed Vagina Hole",
"note": "敵の調教による快楽上昇×3\n",
"note": "Pleasure increase from enemy training x3%\n",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2134,7 +2134,7 @@
"minTurns": 1,
"motion": 0,
"name": "Excavated Asshole",
"note": "敵の調教による快楽上昇×3\n",
"note": "Pleasure increase from enemy training x3%\n",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2165,7 +2165,7 @@
"minTurns": 1,
"motion": 0,
"name": "Broken Sense of Taste",
"note": "敵の調教による快楽上昇×3\n",
"note": "Pleasure increase from enemy training x3%\n",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2196,7 +2196,7 @@
"minTurns": 1,
"motion": 0,
"name": "Fully Developed A5 Grade Female Flesh",
"note": "敵の調教による快楽上昇×3\n",
"note": "Pleasure increase from enemy training x3%\n",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2227,7 +2227,7 @@
"minTurns": 1,
"motion": 0,
"name": "Prostitute's Soft Skin",
"note": "敵への娼婦スキル上昇×20",
"note": "Prostitute skill against enemies up x20%",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2258,7 +2258,7 @@
"minTurns": 1,
"motion": 0,
"name": "Prostitute's Ahegao",
"note": "敵への娼婦スキル上昇×20",
"note": "Prostitute skill against enemies up x20%",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2289,7 +2289,7 @@
"minTurns": 1,
"motion": 0,
"name": "Prostitute's Sidelong Glance",
"note": "敵への娼婦スキル上昇×20",
"note": "Prostitute skill against enemies up x20%",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2314,7 +2314,7 @@
"minTurns": 1,
"motion": 0,
"name": "Hardworking Prostitute",
"note": "娼婦レベルアップ連続回数+1",
"note": "Prostitute level up combo +1",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2339,7 +2339,7 @@
"minTurns": 1,
"motion": 0,
"name": "True Nature of Lewdness",
"note": "娼婦レベルアップ連続回数+1",
"note": "Prostitute level up combo +1",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2364,7 +2364,7 @@
"minTurns": 1,
"motion": 0,
"name": "Innate Prostitute",
"note": "娼婦レベルアップ連続回数+1",
"note": "Prostitute level up combo +1",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2389,7 +2389,7 @@
"minTurns": 1,
"motion": 0,
"name": "Abolished: Whore Who Licks Bugs",
"note": "\\I[370]永続\n+100% 蟲型の敵に娼婦スキル効果上昇。",
"note": "\\I[370]Permanent\n+100% Prostitute skill effect increase against insect-type enemies.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2414,7 +2414,7 @@
"minTurns": 1,
"motion": 0,
"name": "Abolished: Tamed Bitch",
"note": "\\I[370]永続\n+100% 亜人型の敵に娼婦スキル効果上昇。",
"note": "\\I[370]Permanent\n+100% Prostitute skill effect increase against demi-human type enemies.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2439,7 +2439,7 @@
"minTurns": 1,
"motion": 0,
"name": "Abolished: Swimmer of the Sea of Flesh",
"note": "\\I[370]永続\n+100% 触手型の敵に娼婦スキル効果上昇。",
"note": "\\I[370]Permanent\n+100% Courtesan skill effect against tentacle-type enemies.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2464,7 +2464,7 @@
"minTurns": 1,
"motion": 0,
"name": "Abolished: Penis Viking",
"note": "\\I[370]永続\n+100% 通常看守に娼婦スキル効果上昇。",
"note": "\\I[370]Permanent\n+100% Prostitute skill effects for regular guards increased.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2489,7 +2489,7 @@
"minTurns": 1,
"motion": 0,
"name": "Midograv's Scissor Wound",
"note": "娼婦レベルアップ連続回数1\nミドグラヴにご奉仕した。",
"note": "Prostitute level up combo +1\nServiced Midograve.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2514,7 +2514,7 @@
"minTurns": 1,
"motion": 0,
"name": "Brand of the Viborg",
"note": "娼婦レベルアップ連続回数1\nバイボーグにご奉仕した。",
"note": "Prostitute level up combo +1\nServiced a Viborg.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2539,7 +2539,7 @@
"minTurns": 1,
"motion": 0,
"name": "Octopede's Kiss Mark",
"note": "娼婦レベルアップ連続回数1\nオクトペドにご奉仕した。",
"note": "Prostitute level up combo +1\nYou serviced an Octoped.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2564,7 +2564,7 @@
"minTurns": 1,
"motion": 0,
"name": "Crest of Surductei",
"note": "娼婦レベルアップ連続回数1\nスルドクテイにご奉仕した。",
"note": "Prostitute level up combo +1\nYou serviced a Surductei.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2589,7 +2589,7 @@
"minTurns": 1,
"motion": 0,
"name": "Garumadus's Seal",
"note": "娼婦レベルアップ連続回数1\nガルマドゥスにご奉仕した。",
"note": "Prostitute level up combo +1\nYou serviced Garmadus.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2614,7 +2614,7 @@
"minTurns": 1,
"motion": 0,
"name": "Abolished: Warden's Semen",
"note": "取得娼婦レベル上昇+30\n臆病な見習い看守にご奉仕した。",
"note": "Prostitute Level Gain +30%\nYou serviced the Cowardly Apprentice Guard.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2639,7 +2639,7 @@
"minTurns": 1,
"motion": 0,
"name": "Abolished: Torturer's Whip Marks",
"note": "取得娼婦レベル上昇+30\n凶悪な拷問官にご奉仕した。",
"note": "Prostitute Level Gain +30%\nYou served the Brutal Torturer.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2664,7 +2664,7 @@
"minTurns": 1,
"motion": 0,
"name": "Abolished: Hallucinations of a Pervert",
"note": "取得娼婦レベル上昇+30\n変質した変質者にご奉仕した。",
"note": "Prostitute Level Gain +30%\nYou serviced a Corrupted Pervert.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2689,7 +2689,7 @@
"minTurns": 1,
"motion": 0,
"name": "Abolished: Torturer's Bite Marks",
"note": "取得娼婦レベル上昇+30\n凶悪な拷問官にご奉仕した。",
"note": "Prostitute Level Gain +30%\nYou served the Brutal Torturer.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2714,7 +2714,7 @@
"minTurns": 1,
"motion": 0,
"name": "Abolished: Phantom of the Pervert",
"note": "取得娼婦レベル上昇+30\n股這う変質者にご奉仕した。",
"note": "Prostitute level gain +30%\nYou serviced a Pervert Crawling Between the Legs.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2739,7 +2739,7 @@
"minTurns": 1,
"motion": 0,
"name": "Abolished: Torturer's Expansion Scars",
"note": "取得娼婦レベル上昇+30\n骨盤砕く拷問官にご奉仕した。",
"note": "Prostitute Level Gain +30%\nYou served the Pelvis-Crushing Torturer.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2764,7 +2764,7 @@
"minTurns": 1,
"motion": 0,
"name": "Abolished: Pervert's Collar",
"note": "取得娼婦レベル上昇+30\n牝犬飼いの変質者にご奉仕した。",
"note": "Prostitute level gain +30%\nYou served a pervert who keeps bitches.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2789,7 +2789,7 @@
"minTurns": 1,
"motion": 0,
"name": "Abolished: Medulla Eggshell",
"note": "取得娼婦レベル上昇+30\n辱牝奪胎メデュラにご奉仕した。",
"note": "Prostitute level gain +30%\nYou served Medula the Defiler and Womb Thief.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2814,7 +2814,7 @@
"minTurns": 1,
"motion": 0,
"name": "Abolished: Hotokamimushi's Kiss",
"note": "取得娼婦レベル上昇+30\nオオホトカミムシにご奉仕した。",
"note": "Prostitute Level Gain +30%\nYou serviced the Giant Vulva Bug.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2839,7 +2839,7 @@
"minTurns": 1,
"motion": 0,
"name": "Podoria's Slime",
"note": "娼婦レベルアップ連続回数1\n牝捕粘液ポドリアにご奉仕した。",
"note": "Prostitute level up streak +1\nYou serviced the Female-Capturing Slime Podria.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2889,7 +2889,7 @@
"minTurns": 1,
"motion": 0,
"name": "Worn-out Womb Pouch",
"note": "\\I[370]永続\n3% 敵の調教による快楽上昇",
"note": "\\I[370]Permanent\n3% increased pleasure from enemy training",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2914,7 +2914,7 @@
"minTurns": 1,
"motion": 0,
"name": "Mad Ovaries",
"note": "\\I[370]永続\n3% 敵の調教による快楽上昇",
"note": "\\I[370]Permanent\n3% increased pleasure from enemy training",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2939,7 +2939,7 @@
"minTurns": 1,
"motion": 0,
"name": "Abolished: Tentacle Strangulation Marks",
"note": "取得娼婦レベル上昇+30",
"note": "Prostitute Level Gain +30%",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2964,7 +2964,7 @@
"minTurns": 1,
"motion": 0,
"name": "Abolished: Warden's Thick Semen",
"note": "取得娼婦レベル上昇+30",
"note": "Prostitute Level Gain +30%",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -2989,7 +2989,7 @@
"minTurns": 1,
"motion": 0,
"name": "Clinging Vagina",
"note": "娼婦レベルアップ連続回数+1",
"note": "Prostitute level up combo +1",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -3014,7 +3014,7 @@
"minTurns": 1,
"motion": 0,
"name": "Persistent Vagina",
"note": "娼婦レベルアップ連続回数+1",
"note": "Prostitute level up combo +1",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -3039,7 +3039,7 @@
"minTurns": 1,
"motion": 0,
"name": "Rampaging Vagina",
"note": "娼婦レベルアップ連続回数+1",
"note": "Prostitute level up combo +1",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -3064,7 +3064,7 @@
"minTurns": 1,
"motion": 0,
"name": "Indomitable Vagina",
"note": "娼婦レベルアップ連続回数+1",
"note": "Prostitute level up combo +1",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -3114,7 +3114,7 @@
"minTurns": 1,
"motion": 0,
"name": "A state that is somehow applied automatically",
"note": "たぶんコピペミスで陵辱順応が複数設定されていたため\n",
"note": "Probably because of a copy-paste mistake, multiple rape adaptation settings were applied.\n",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -3145,7 +3145,7 @@
"minTurns": 1,
"motion": 0,
"name": "Body Addicted to Violation",
"note": "戦闘吸淫ダメージ減少-25\nああ、もっと……ほしいっ♥ \n チンポチンポチンポチンポ……♥",
"note": "Combat Suck Lust Damage -25%\n(Ah, more... I want more♥\nDick dick dick dick...♥)",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -3176,7 +3176,7 @@
"minTurns": 1,
"motion": 0,
"name": "Violent Assault Frenzy Poison",
"note": "戦闘吸淫ダメージ減少-25\nまだっ♥ まだまだっ♥ もっと♥\n もっとザーメン欲しいッ♥ まだ負けられないッ♥",
"note": "Combat Suck Lust Damage -25%\n(Not yet♥ Not yet♥ More♥\nI want more cum♥ I can't lose yet♥)",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -3201,7 +3201,7 @@
"minTurns": 1,
"motion": 0,
"name": "Pussy Service",
"note": "1名までの看守に挿入してもらってご奉仕できる。",
"note": "You can serve up to one guard by letting them insert.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -3226,7 +3226,7 @@
"minTurns": 1,
"motion": 0,
"name": "Oral Service",
"note": "同時に2名までの看守に挿入してもらってご奉仕できる。",
"note": "You can serve up to two guards at once by letting them both penetrate you.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -3251,7 +3251,7 @@
"minTurns": 1,
"motion": 0,
"name": "Anal Torture Service",
"note": "同時に3名までの看守に挿入してもらってご奉仕できる。",
"note": "You can serve up to three guards at once by letting them all penetrate you.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -3282,7 +3282,7 @@
"minTurns": 1,
"motion": 0,
"name": "Violation Adaptation",
"note": "戦闘吸淫ダメージ減少-25\nまだ……できる……セックス……♥ \n セックス、セックス、セックスぅ……♥\n\n",
"note": "Combat Suck Lust Damage -25%\n(I can still... keep going... sex...♥\nSex, sex, sex...♥)\n\n",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -3313,7 +3313,7 @@
"minTurns": 1,
"motion": 0,
"name": "Fragment of Courage",
"note": "攻撃力上昇×0.1\n「ボクは……負けない……",
"note": "Attack power up x0.1%\n\"I... won't lose...!\"",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -3344,7 +3344,7 @@
"minTurns": 1,
"motion": 0,
"name": "Fragment of Nielsen of the Raging Wind",
"note": "行動回数+1\n「烈風の双刃ニールセン、悪の噂がある場所に\n 躊躇なく駆ける姿はまさに風の如く」\n",
"note": "Action count +1\n\"Nielsen, the Twin Blades of the Gale, rushes without hesitation to any place rumored to harbor evil―truly like the wind itself.\"\n",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -3375,7 +3375,7 @@
"minTurns": 1,
"motion": 0,
"name": "Fragment of the Adamantine Neitlruka",
"note": "防御力×200\n「金剛の令嬢ネイトルカ、その鉄壁で\n 民を守った誇り高き守護者」",
"note": "Defense x200%\n\"Naitlka, the Diamond Lady―\nA proud guardian who protected her people with an unbreakable defense.\"",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -3406,7 +3406,7 @@
"minTurns": 1,
"motion": 0,
"name": "Shard of Nuvy the Scorcher",
"note": "攻撃力×200\n「灼滅の紅槍ヌヴィ、いつも笑顔を絶やさず、\n 弱き者を決して見捨てなかった『紅き太陽』」",
"note": "Attack x200%\n\"Nuvy, the Crimson Spear of Annihilation, who never lost her smile,\n and never abandoned the weak―'The Crimson Sun'\"",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -3442,7 +3442,7 @@
"minTurns": 1,
"motion": 0,
"name": "Fragment of Nanaria, Saint of Water",
"note": "最大HP×200\n最大MP×200\n「水聖の歌声ナナリア、精霊すら魅了する\n 歌声で人々を癒した」",
"note": "Max HP x200%\nMax MP x200%\n\"Nana Lia, the Songstress of the Water Saint, healed people with a voice so enchanting it captivated even the spirits.\"",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -3467,7 +3467,7 @@
"minTurns": 1,
"motion": 0,
"name": "Prison Hero",
"note": "――どれほど重い鎖でも、少女の心は縛れない。",
"note": "――No matter how heavy the chains, you can't bind a girl's heart.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -5333,7 +5333,7 @@
"minTurns": 1,
"motion": 0,
"name": "Icon of Benevolence",
"note": "魔法回避率上昇+5",
"note": "Magic Evasion Rate +5%",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -5364,7 +5364,7 @@
"minTurns": 1,
"motion": 0,
"name": "Oath of Benevolence",
"note": "魔法回避率上昇+5",
"note": "Magic Evasion Rate +5%",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -5395,7 +5395,7 @@
"minTurns": 1,
"motion": 0,
"name": "Hope of Benevolence",
"note": "魔法回避率上昇+5",
"note": "Magic Evasion Rate +5%",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -5426,7 +5426,7 @@
"minTurns": 1,
"motion": 0,
"name": "Hero's Courage",
"note": "攻撃力上昇×20",
"note": "Attack Power Up x20%",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -5457,7 +5457,7 @@
"minTurns": 1,
"motion": 0,
"name": "Hero's Pride",
"note": "攻撃力上昇×20",
"note": "Attack Power Up x20%",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -5488,7 +5488,7 @@
"minTurns": 1,
"motion": 0,
"name": "Hero's Pride",
"note": "攻撃力上昇×20",
"note": "Attack Power Up x20%",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -5524,7 +5524,7 @@
"minTurns": 1,
"motion": 0,
"name": "Godspeed Footwork",
"note": "物理回避率上昇+5\n敏捷性上昇×25",
"note": "Physical Evasion Rate +5%\nAgility +25%",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -5560,7 +5560,7 @@
"minTurns": 1,
"motion": 0,
"name": "Godspeed Sword Technique",
"note": "物理回避率上昇+5\n敏捷性上昇×25",
"note": "Physical Evasion Rate +5%\nAgility +25%",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -5596,7 +5596,7 @@
"minTurns": 1,
"motion": 0,
"name": "Sword Dance of Godspeed",
"note": "物理回避率上昇+5\n敏捷性上昇×25",
"note": "Physical Evasion Rate +5%\nAgility +25%",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -5627,7 +5627,7 @@
"minTurns": 1,
"motion": 0,
"name": "Maiden's Purity",
"note": "毎ターン発情値減少-5",
"note": "Lust decreases by 5% every turn.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -5658,7 +5658,7 @@
"minTurns": 1,
"motion": 0,
"name": "Maiden's Purity",
"note": "毎ターン発情値減少-5",
"note": "Lust decreases by 5% every turn.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -5689,7 +5689,7 @@
"minTurns": 1,
"motion": 0,
"name": "Maiden's Chastity",
"note": "毎ターン発情値減少-5",
"note": "Lust decreases by 5% every turn.",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": false,
@ -5860,7 +5860,7 @@
"minTurns": 3,
"motion": 0,
"name": "Breeding Ground",
"note": "<breeding>\nシルシェ「ボクは…愛玩動物、なんかじゃ…っ」",
"note": "<breeding>\nSilshe: \"I'm... not some kind of pet...\"",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": true,
@ -5922,7 +5922,7 @@
"minTurns": 1,
"motion": 0,
"name": "Insertion",
"note": "シルシェに挿入する一時ステート",
"note": "Temporary state: Insertion into Silshe",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": true,
@ -6007,7 +6007,7 @@
"minTurns": 1,
"motion": 0,
"name": "Debug",
"note": "ステート1番はHP0のときに付加されます。",
"note": "State 1 is applied when HP reaches 0.",
"overlay": 0,
"priority": 100,
"releaseByDamage": false,
@ -6177,7 +6177,7 @@
"minTurns": 1,
"motion": 0,
"name": "Endure",
"note": "このステートを持つ限り、\n敵は吸淫できない。\nRestrictionTargetSkill.jsで制御",
"note": "As long as you have this state,\nthe enemy cannot use Suck Lust.\nControlled by RestrictionTargetSkill.js",
"overlay": 0,
"priority": 50,
"removeAtBattleEnd": true,

View file

@ -72,6 +72,58 @@
const NOTICE_TEXT_ALBUM = "0900-067-n067-0";
//========================================================================
// Helpers (English word wrapping)
//========================================================================
/**
* Wrap text into lines that fit within maxWidth (pixels) using bitmap font.
* Preserves newlines; falls back to char-splitting for long tokens.
* @param {string} text
* @param {Bitmap} bitmap
* @param {number} maxWidth
* @returns {string[]}
*/
function wrapTextToWidth_IM(text, bitmap, maxWidth) {
if (!text) return [""];
const out = [];
const rawLines = String(text).replace(/\r\n?|\u2028/g, "\n").split("\n");
for (const raw of rawLines) {
const tokens = raw.split(/(\s+)/); // keep spaces
let cur = "";
for (const tk of tokens) {
const next = cur + tk;
if (bitmap.measureTextWidth(next) <= maxWidth) {
cur = next;
} else if (!cur) {
const parts = splitLongTokenByChars_IM(tk, bitmap, maxWidth);
for (let i = 0; i < parts.length - 1; i++) out.push(parts[i]);
cur = parts[parts.length - 1];
} else {
if (cur.trim().length > 0) out.push(cur.trimEnd());
const parts = splitLongTokenByChars_IM(tk, bitmap, maxWidth);
for (let i = 0; i < parts.length - 1; i++) out.push(parts[i]);
cur = parts[parts.length - 1];
}
}
out.push(cur.trimEnd());
}
return out.length ? out : [""];
}
function splitLongTokenByChars_IM(token, bitmap, maxWidth) {
const chunks = [];
let buf = "";
for (const ch of token) {
const next = buf + ch;
if (bitmap.measureTextWidth(next) <= maxWidth) buf = next; else {
if (buf) chunks.push(buf);
buf = ch;
}
}
if (buf) chunks.push(buf);
return chunks.length ? chunks : [token];
}
//========================================================================
// クラス定義 (Window_CustomMenuCommand)
//========================================================================
@ -348,8 +400,20 @@
const baseText = state.note;
// タグを除去
const regexp = /<([^<>:]+)(:?)([^>]*)>\n?/g;
const text = PluginUtils.splitText(baseText.replace(regexp, ""), 21, false).join('\n');
this._helpWindow.setText(text);
const raw = baseText.replace(regexp, "").trim();
// Wrap by pixel width using an English-friendly font
const tmp = new Bitmap(1, 1);
tmp.fontFace = 'MPLUS1Code-Regular';
tmp.fontSize = 26;
tmp.outlineWidth = 0;
// Estimate help rect width (matches helpWindowRect: width 570 minus padding)
const helpWidth = 570 - (this._helpWindow?.padding ?? 12) * 2;
const lines = wrapTextToWidth_IM(raw, tmp, Math.max(200, helpWidth));
this._helpWindow.contents.fontFace = tmp.fontFace;
this._helpWindow.contents.fontSize = tmp.fontSize;
this._helpWindow.setText(lines.join('\n'));
}
}

View file

@ -44,27 +44,81 @@
// 既存の制御文字を最初に処理
text = _convertEscapeCharacters.call(this, text);
// \SKILL[n] — スキル説明欄を挿入
text = text.replace(/\x1bSKILL\[(\d+)]/gi, (_, p1) => {
// \SKILL[n] — スキル説明欄を挿入(英語向けに幅で折り返し)
text = text.replace(/\x1bSKILL\[(\d+)]/gi, (_, p1) => {
const id = Number(p1);
const skill = $dataSkills[id];
if (skill && typeof skill.description === 'string') {
return skill.description.replace(TAG_REGEX, '').trim();
const raw = skill.description.replace(TAG_REGEX, '').trim();
const tmp = new Bitmap(1, 1);
tmp.fontFace = 'MPLUS1Code-Regular';
tmp.fontSize = 26;
const pad = this?.padding ?? 12;
const maxWidth = Math.max(200, (this?.innerWidth ?? 480) - pad * 2);
return wrapTextToWidth_CC(raw, tmp, maxWidth);
}
return '';
});
// \STATE[n] — ステートメモ欄を挿入(既存機能)
text = text.replace(/\x1bSTATE\[(\d+)]/gi, (_, p1) => {
// \STATE[n] — ステートメモ欄を挿入(英語向けに幅で折り返し
text = text.replace(/\x1bSTATE\[(\d+)]/gi, (_, p1) => {
const id = Number(p1);
const state = $dataStates[id];
if (state && typeof state.note === 'string') {
return state.note.replace(TAG_REGEX, '').trim();
const raw = state.note.replace(TAG_REGEX, '').trim();
const tmp = new Bitmap(1, 1);
tmp.fontFace = 'MPLUS1Code-Regular';
tmp.fontSize = 26;
const pad = this?.padding ?? 12;
const maxWidth = Math.max(200, (this?.innerWidth ?? 480) - pad * 2);
return wrapTextToWidth_CC(raw, tmp, maxWidth);
}
return '';
});
return text;
};
//============================================================
// Optional: English-friendly wrapping helpers
//============================================================
function wrapTextToWidth_CC(text, bitmap, maxWidth) {
if (!text) return '';
const lines = [];
const rawLines = String(text).replace(/\r\n?|\u2028/g, "\n").split('\n');
for (const raw of rawLines) {
const toks = raw.split(/(\s+)/);
let cur = '';
for (const tk of toks) {
const next = cur + tk;
if (bitmap.measureTextWidth(next) <= maxWidth) cur = next; else if (!cur) {
const parts = splitChars_CC(tk, bitmap, maxWidth);
for (let i = 0; i < parts.length - 1; i++) lines.push(parts[i]);
cur = parts[parts.length - 1];
} else {
if (cur.trim()) lines.push(cur.trimEnd());
const parts = splitChars_CC(tk, bitmap, maxWidth);
for (let i = 0; i < parts.length - 1; i++) lines.push(parts[i]);
cur = parts[parts.length - 1];
}
}
lines.push(cur.trimEnd());
}
return lines.join('\n');
}
function splitChars_CC(token, bitmap, maxWidth) {
const out = [];
let buf = '';
for (const ch of token) {
const next = buf + ch;
if (bitmap.measureTextWidth(next) <= maxWidth) buf = next; else {
if (buf) out.push(buf);
buf = ch;
}
}
if (buf) out.push(buf);
return out.length ? out : [token];
}
})();