More GPT Exploitation
This commit is contained in:
parent
ba0ed77609
commit
60f53ad544
3 changed files with 211 additions and 93 deletions
170
data/States.json
170
data/States.json
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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'));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
}
|
||||
})();
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue