Some other suggestions:
1. Ive made an example for the UI (using AI) that I think could be fitting as well. All CSS-based. One of the problems I have with the UI is that I have to scroll a lot, because my screen isnt super big. It doesn't auto-size to my screen.
2. Another thing to note is that there are a lot of spelling mistakes that keep re-occuring. Might be good to run a spell check, or work together with some supporters to check the language.
3. Could be cool to adjust dialogue based on the notoriety.
Examples:
Code:
:: Raid Encounter – Iria the Unyielding
<<if $notoriety >= 50>>
The ground trembles. Smoke rises from the ruined portcullis.
A cloaked figure steps through the haze, sword drawn, gaze burning with fury.
''Iria the Unyielding'':
"Your corruption ends today, monster. I’ve watched villages fall, comrades perish. I won’t let another soul be taken."
You chuckle from the shadows. ''"They say a beast is born from the sins of men. What does that make *you*, Iria?"''
<<else>>
The ground trembles. Smoke rises from the ruined portcullis.
A cloaked figure steps through the haze, sword drawn, gaze burning with fury.
''Iria the Unyielding'':
"Your corruption ends today, monster. I’ve watched villages fall, comrades perish. I won’t let another soul be taken."
You step into the torchlight. ''"You’re brave… but misguided. Leave now, and your soul may yet be spared."''
<</if>>
<<link "Fight Her">>
<<goto "FightIria">>
<</link>>
<<link "Attempt to Corrupt">>
<<goto "CorruptIria">>
<</link>>
Code:
:: Ending – Betrayal at the Throne
The throne room burns. Adventurers lie dead. Victory is within your grasp.
But then...
Lucien steps forward. Your most loyal warlock. His eyes no longer glow with obedience—but clarity.
''Lucien'':
"I believed in your vision, your strength. But now I see… you’ve become the very chaos you sought to control."
He raises his staff. Your guards hesitate.
<<if $corruption >= 75>>
You smirk. ''"And yet… you still serve, don't you?"''
<<set $lucienTurned = false>>
<<goto "LucienMindControl">>
<<else>>
You hesitate. Lucien strikes.
<<set $gameOver = true>>
<<goto "GameOver">>
<</if>>
Code:
:: Broken Knight – Interrogation
Sir Aldric, once a proud paladin, kneels before you, bloodied and bound. Yet his eyes burn with the same fire.
''Aldric'':
"I swore my sword to light, not to... this. I don't fear your chains. But I fear forgetting who I am."
<<if $corruption < 40>>
You pause. "Then perhaps you haven't lost everything."
<<link "Offer redemption">>
<<goto "AldricRedemption">>
<</link>>
<<link "Let him go">>
<<goto "AldricFreed">>
<</link>>
<</if>>
<<if $corruption >= 40>>
You lean in. "What you fear isn’t forgetting. It’s remembering what you *crave* in the dark."
<<link "Twist the knife — remind him of his failings">>
<<goto "AldricBreaks">>
<</link>>
<<link "Give him the illusion of choice">>
<<goto "AldricChoiceIllusion">>
<</link>>
<</if>>
Code:
:: Vaelora – Emotional Collapse
''Vaelora'':
"I don’t know what’s worse. What you’ve done... or how a part of me doesn’t hate you anymore."
She clenches her fists, trembling — not from fear, but from conflict.
<<if $trust_Vaelora >= 50 and $corruption < 50>>
You step closer, your voice low.
"Then choose. Hate me, or follow me. But don’t lie to yourself."
<<link "Offer her a chance to fight beside you">>
<<goto "VaeloraAllyPath">>
<</link>>
<<link "Let her go with your blessing">>
<<goto "VaeloraReleased">>
<</link>>
<</if>>
<<if $corruption >= 70>>
You trace her jaw with a shadow-wreathed hand.
"That warmth you feel? That’s surrender… and it’s beautiful."
<<link "Push her into full submission">>
<<goto "VaeloraSubmits">>
<</link>>
<<link "Toy with her emotion">>
<<goto "VaeloraBroken">>
<</link>>
<</if>>
4. I did read you will change the battle mechanics as it is, but as shown in the image the UI could use a little improvement as well. I also noticed that magic attacks dont really become better, while power strikes do. I end up using trance over 5 times to break a mind, while I can just heavy strike twice to kill a bandit. (same number in the level of power/magic)
Here's what I think could be improved (is kinda subjective because it works as intended)
- Static turn-based system (you → enemy → repeat)
- Little/no visual or statistical feedback (hit/miss, crit, block, status)
- Spells and attacks don’t change based on character growth or story
- No synergy between corruption, enemy fear, or morale
You could introduce the following:
Feature | Description |
---|
Damage Variance | Instead of fixed damage, add RNG: e.g., 8-12 instead of 10 |
Crits / Misses | Add chance to miss or crit (bonus damage or effects) |
Status Effects | Bleed, fear, stunned — simple turn-limited debuffs |
Enemy Type Bonuses | Certain spells more effective on specific enemies (e.g., "Terrify" vs humans) |
Simple Cooldowns | Prevent spell-spamming (e.g., 3-turn cooldowns) |
Turn Log Feedback | Visual log with bolded or color-coded actions for clarity |
Feature | Description |
---|
Morale / Fear System | Enemy morale drops with corruption/ally deaths → may flee/surrender |
Energy/Mana Regeneration | Encourage planning over spamming spells |
Spell Combos | Chaining certain spell pairs grants bonuses (e.g., “Terrify” + “Drain” = Panic Feed) |
Dynamic Initiative | Speed stat or status affects turn order |
Battle Traits | Enemies or player may have random traits: "Resilient", "Coward", "Blessed" etc. |
Mechanic | Description |
---|
Corruption Infusion | Your corruption level influences available abilities or alters spell effects |
Domination Threshold | When enemy health + morale drop below a threshold, you can corrupt/dominate instead of kill |
Betrayal Mechanics | If morale of an enemy is too low and they are similar to a previously corrupted NPC, they might betray their team |
Loyalty Triggers | Corrupted former heroes fight for you mid-battle based on conditions |
Ritual Slots | Instead of normal turns, prepare high-cost rituals over 2-3 rounds with huge payoffs |
Element | Description |
---|
Hover Tooltips on Spells | Show mana cost, cooldown, effect type |
Animated Feedback | Shake for hits, glow for crits, grayscale for stunned |
Battle Log (Scroll Panel) | Text updates with color coding & timestamps |
Enemy Emotion/Status Display | Small UI showing fear, resolve, status effects visually |
As shown in the example image below, a battle UI like this would also remove multiple unnecessary clicks (like on next during battle, you could also show the "activity" inside the battle log, so it is more seamless)
Rather than just HP/Lust:
- Willpower: Shields from instant domination but can be drained
- Arousal: Builds separately and affects decision-making or control
- Clothing Integrity: Spells or attacks can strip armor, raising vulnerability
Bring a corrupted ally (Alice/Lucy) into battle:
- You can use them to block, distract, or cast tag-team spells
- Tag-team finishers: e.g. "Bind & Spank" or “Double Drain”
Use Twine macros to trigger:
- Dialogue tree with choices: “Make them beg?”, “Mark them?”, “Release them?”
- Cutscene with timed effects and choices
Real-time emotional feedback:
Code:
<<if $enemyLust >= 70>>
''Enemy'': “Why... why does this feel so... good?!”
<</if>>
<<if $enemyMorale <= 20>>
''Enemy'': “I... I can't fight anymore. Please… just take me.”
<</if>>
Behavior Type | Twine |
---|
Morale drops → flee/surrender | <<if $enemyMorale < 20>> Enemy begs for mercy <<link “Dominate”>>...<</if>> |
Fear of corrupted allies | <<if $allyCorrupted is true>> Enemy flinches, loses next turn<</if>> |
Taunts provoke mistakes | <<if $usedTaunt is true>> 30% chance enemy makes a reckless attack<</if>> |
Lust > 70 → skip turn | Create a flag like $lustLevel >= 70 and use <<if>> logic to skip |
Code:
::EnemyTurn
<<if $enemyMorale < 25 and $enemyFear > 30>>
The enemy trembles... then turns to run!
<<set $enemyState = "flee">>
<<goto "Victory">>
<<elseif $enemyLust > 80>>
The enemy moans helplessly, too distracted to fight.
<<set $enemyState = "aroused">>
<<elseif $enemyHP < 30>>
The enemy fights harder, desperately!
<<set $enemyAttack = $enemyAttack + 5>>
<<else>>
The enemy slashes at you!
<<set $playerHP -= 10>>
<</if>>
<<link "Continue">><<goto "PlayerTurn">><</link>>