Unholy Arts porn xxx game download cover

Unholy Arts

Game Description:

Passion, love and power are the cornerstones of the protagonists of Unholy Arts, an erotic fantasy dating sim where six women cooperate and compete to become the next Valley’s High Priestess, in an adventure full of yuri, romance and powerplay.

A Role-Playing Game, a Simulation and a “Choose Your Own Adventure” Game blended together to create an innovative system where each character makes their own choices according to their goals and desires, which in turn evolve along with their experiences. How will your actions change your companions and your relationships with them? Will they end up in your clutches? Or will you end up in theirs?​

  • Extract and run.
  • Dual Core Pentium or equivalent Processor.
  • Intel HD 2000 or equivalent Graphics.
  • 163.6 MB of free disk space (Recommended to have twice as much free disk space than this).

Walkthrough and Guide

Cheats:

Below is a list of a bunch of hacks I've made to the game. If you want to apply them to your game, open Unholy Arts v0.X.html in a text editor (I recommend VS Code) and follow my instructions for each one.

Restore back and forward arrows
- search and delete this line

JavaScript: Config.history.maxStates = 1;

Add bar refill buttons on left panel (click to refill bar, display updates on next scene)
- search for Character.prototype.getCharacterUIbarInfo, replace the function with this code

JavaScript:

Character.prototype.getCharacterUIbarInfo = function() { // Returns a string that generates the character's basic info when displayed on Sugarcube 2

var string = "<div align='center'> " + generateTitledName(this.varName) + " (" + this.getCharScreenButton("Status") + ")n";
if ( this.avatarL != null ) {
string += gCavatar(this.varName) + "n";
}
string += "</div> ";
string += this.textBars() + "n";

if ( this.varName == "chPlayerCharacter" ) {
string += this.getCharScreenCheatButton1("Refill Lust") + "n";
string += this.getCharScreenCheatButton2("Refill Willpower") + "n";
string += this.getCharScreenCheatButton3("Refill Energy") + "n";
string += this.getCharScreenCheatButton4("Refill Social Drive") + "n";
}

return string;
}
Character.prototype.getCharScreenCheatButton1 = function(handler) {
var text = '<<click "' + handler + '">>'
+ '<<' + 'script>>'
+ 'State.variables.chPlayerCharacter.lust.current = State.variables.chPlayerCharacter.lust.max;'
+ '<<' + '/script>>'
+ '<</click>>';
return text;
}

Character.prototype.getCharScreenCheatButton2 = function(handler) {
var text = '<<click "' + handler + '">>'
+ '<<' + 'script>>'
+ 'State.variables.chPlayerCharacter.willpower.current = State.variables.chPlayerCharacter.willpower.max; '
+ '<<' + '/script>>'
+ '<</click>>';
return text;
}

Character.prototype.getCharScreenCheatButton3 = function(handler) {
var text = '<<click "' + handler + '">>'
+ '<<' + 'script>>'
+ 'State.variables.chPlayerCharacter.energy.current = State.variables.chPlayerCharacter.energy.max; '
+ '<<' + '/script>>'
+ '<</click>>';
return text;
}

Character.prototype.getCharScreenCheatButton4 = function(handler) {
var text = '<<click "' + handler + '">>'
+ '<<' + 'script>>'
+ 'State.variables.chPlayerCharacter.socialdrive.current = State.variables.chPlayerCharacter.socialdrive.max; '
+ '<<' + '/script>>'
+ '<</click>>';
return text;
}


Custom starting stats and stat affinities
- search window.applyPcStatBonusesWeaknesses and replace the function with the code below. change values any way you like. on new game pick any boon, they don't do anything with this change

JavaScript:
window.applyPcStatBonusesWeaknesses = function() {

State.variables.chPlayerCharacter.physique.value += 4;
State.variables.chPlayerCharacter.physique.affinity += 10;

State.variables.chPlayerCharacter.agility.value += 4;
State.variables.chPlayerCharacter.agility.affinity += 10;

State.variables.chPlayerCharacter.resilience.value += 4;
State.variables.chPlayerCharacter.resilience.affinity += 10;

State.variables.chPlayerCharacter.will.value += 4;
State.variables.chPlayerCharacter.will.affinity += 10;

State.variables.chPlayerCharacter.intelligence.value += 4;
State.variables.chPlayerCharacter.intelligence.affinity += 10;

State.variables.chPlayerCharacter.perception.value += 4;
State.variables.chPlayerCharacter.perception.affinity += 10;

State.variables.chPlayerCharacter.empathy.value += 4;
State.variables.chPlayerCharacter.empathy.affinity += 10;

State.variables.chPlayerCharacter.charisma.value += 4;
State.variables.chPlayerCharacter.charisma.affinity += 10;

State.variables.chPlayerCharacter.luck.value += 4;
State.variables.chPlayerCharacter.luck.affinity += 10;

recalculateMaxBars("chPlayerCharacter");
// State.variables.chPlayerCharacter.recalculateMaxBars();
}

Learn all monster moves at start
- search for //You learned Hypnotic Glance (Socialization, Sex, Battle)// and replace the charactersLearnSceneActions line with the one below. pick the hypnosis choice at the start of the game

HTML:
charactersLearnSceneActions([&quot;chPlayerCharacter&quot;],[&quot;realHypnoticGlance&quot;,&quot;baHypnoticGlance&quot;,&quot;energyDrainingKiss&quot;,&quot;baDrainingKiss&quot;,&quot;baEnergyDrainingKiss&quot;,&quot;etherealChains&quot;,&quot;baEtherealChains&quot;]);

Ultra Instinct (always hit and always dodge)
- search return (new eva and add this code above it. first line is always hit, second line is always dodge.

JavaScript:

if (attacker.toString() == "chPlayerCharacter") { hit = true; }

if (attacker.toString() != "chPlayerCharacter" && target.toString() == "chPlayerCharacter") { hit = false; }


Super social hypnotic glance
- search // Hypnotic Glance and change socInt.weight = to a high value, 100 or higher, to get it offered most of the time
- search var mVector = new MoodVector(0,0,0,1,-1,3,0,-1); and change the 3 to increase how much submission target receives
- search var rVector = new RelationVector(0,0,0,0,3,0,-1); and change the 3 to increase how much relation submission the target receives

Bottom's submission gain is multiplied by amount of top's orgasms
- search gainedSubmission += gainedExtraSubmission and delete these lines

JavaScript:
gainedSubmission += gainedExtraSubmission;

gainedSubmission *= effectsMultiplier * (1 + ((- gC(charKey).mood.dominant + gC(charKey).mood.submissive) / 100));

- add these lines below the 4 gc(charKey) lines

JavaScript:
gainedSubmission += gainedExtraSubmission;

gainedSubmission = gainedSubmission * gC(charKey2).orgasmSceneCounter;
gainedSubmission *= effectsMultiplier * (1 + ((- gC(charKey).mood.dominant + gC(charKey).mood.submissive) / 100));